From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 From: Jan Zarsky To: git-commits@fedoraproject.org Subject: [tests/selinux] pr775-checkpolicy-revdeps: Remove obsolete tests Date: Fri, 11 Sep 2026 13:17:15 GMT Message-ID: <178913263545.1.6529530145951758661.tests-selinux-fc51578a219a@fedoraproject.org> List-ID: X-Git-Repo: tests/selinux X-Git-Branch: pr775-checkpolicy-revdeps X-Git-Rev: fc51578a219a03cbb3f1a034b4354e8eaa406941 ICAgICAgICAgICAgQSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KCiAgICAgICAgICAgIFJl cG8gICA6IHRlc3RzL3NlbGludXgKICAgICAgICAgICAgQnJhbmNoIDogcHI3NzUtY2hlY2twb2xp Y3ktcmV2ZGVwcwogICAgICAgICAgICBDb21taXQgOiBmYzUxNTc4YTIxOWEwM2NiYjNmMWEwMzRi NDM1NGU4ZWFhNDA2OTQxCiAgICAgICAgICAgIEF1dGhvciA6IEphbiBaYXJza3kgPGp6YXJza3lA cmVkaGF0LmNvbT4KICAgICAgICAgICAgRGF0ZSAgIDogMjAxOC0wNC0yN1QxNDoyMjozMyswMjow MAogICAgICAgICAgICBTdGF0cyAgOiArMC8tMjI0MCBpbiAzOSBmaWxlKHMpCiAgICAgICAgICAg IFVSTCAgICA6IGh0dHBzOi8vc3JjLmZlZG9yYXByb2plY3Qub3JnL3Rlc3RzL3NlbGludXgvYy9m YzUxNTc4YTIxOWEwM2NiYjNmMWEwMzRiNDM1NGU4ZWFhNDA2OTQxP2JyYW5jaD1wcjc3NS1jaGVj a3BvbGljeS1yZXZkZXBzCgogICAgICAgICAgICBMb2c6CiAgICAgICAgICAgIFJlbW92ZSBvYnNv bGV0ZSB0ZXN0cwoKVGVzdHMgc2VtYW5hZ2UtaGFuZGxlLWZ1bmN0aW9ucyBhbmQgc2VtYW5hZ2Ut c2V1c2VyLWZ1bmN0aW9ucyBhcmUKY292ZXJlZCBpbiB0ZXN0IHNhbml0eS10ZXN0cy4KCi0tLQpk aWZmIC0tZ2l0IGEvbGlic2VtYW5hZ2Uvc2VtYW5hZ2UtaGFuZGxlLWZ1bmN0aW9ucy9NYWtlZmls ZSBiL2xpYnNlbWFuYWdlL3NlbWFuYWdlLWhhbmRsZS1mdW5jdGlvbnMvTWFrZWZpbGUKZGVsZXRl ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGM0OWRiZTAuLjAwMDAwMDAKLS0tIGEvbGlic2VtYW5h Z2Uvc2VtYW5hZ2UtaGFuZGxlLWZ1bmN0aW9ucy9NYWtlZmlsZQorKysgL2Rldi9udWxsCkBAIC0x LDYzICswLDAgQEAKLSMgfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KLSMKLSMgICBNYWtlZmlsZSBvZiAvQ29yZU9TL2xp YnNlbWFuYWdlL1Nhbml0eS9zZW1hbmFnZS1oYW5kbGUtZnVuY3Rpb25zCi0jICAgRGVzY3JpcHRp b246IFRlc3QgZnVuY3Rpb25zIGZyb20gaGFuZGxlLmgKLSMgICBBdXRob3I6IEphbiBaYXJza3kg PGp6YXJza3lAcmVkaGF0LmNvbT4KLSMKLSMgfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KLSMKLSMgICBDb3B5cmlnaHQg KGMpIDIwMTcgUmVkIEhhdCwgSW5jLgotIwotIyAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3 YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSMgICBtb2RpZnkgaXQgdW5kZXIg dGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcwotIyAgIHB1Ymxp c2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAyIG9m Ci0jICAgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24u Ci0jCi0jICAgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQg d2lsbCBiZQotIyAgIHVzZWZ1bCwgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2 ZW4gdGhlIGltcGxpZWQKLSMgICB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVT UyBGT1IgQSBQQVJUSUNVTEFSCi0jICAgUFVSUE9TRS4gIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVi bGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSMKLSMgICBZb3Ugc2hvdWxkIGhhdmUgcmVj ZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotIyAgIGFsb25n IHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5z ZXMvLgotIwotIyB+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgotCi1leHBvcnQgVEVTVD0vQ29yZU9TL2xpYnNlbWFuYWdl L1Nhbml0eS9zZW1hbmFnZS1oYW5kbGUtZnVuY3Rpb25zCi1leHBvcnQgVEVTVFZFUlNJT049MS4w Ci0KLUJVSUxUX0ZJTEVTPQotCi1GSUxFUz0kKE1FVEFEQVRBKSBydW50ZXN0LnNoIE1ha2VmaWxl IFBVUlBPU0UgZnVuY3Rpb25zLmMgdGVzdF8qLmMKLQotLlBIT05ZOiBhbGwgaW5zdGFsbCBkb3du bG9hZCBjbGVhbgotCi1ydW46ICQoRklMRVMpIGJ1aWxkCi0JLi9ydW50ZXN0LnNoCi0KLWJ1aWxk OiAkKEJVSUxUX0ZJTEVTKQotCXRlc3QgLXggcnVudGVzdC5zaCB8fCBjaG1vZCBhK3ggcnVudGVz dC5zaAotCi1jbGVhbjoKLQlybSAtZiAqfiAkKEJVSUxUX0ZJTEVTKQotCi0KLWluY2x1ZGUgL3Vz ci9zaGFyZS9yaHRzL2xpYi9yaHRzLW1ha2UuaW5jbHVkZQotCi0kKE1FVEFEQVRBKTogTWFrZWZp bGUKLQlAZWNobyAiT3duZXI6ICAgICAgICAgICBKYW4gWmFyc2t5IDxqemFyc2t5QHJlZGhhdC5j b20+IiA+ICQoTUVUQURBVEEpCi0JQGVjaG8gIk5hbWU6ICAgICAgICAgICAgJChURVNUKSIgPj4g JChNRVRBREFUQSkKLQlAZWNobyAiVGVzdFZlcnNpb246ICAgICAkKFRFU1RWRVJTSU9OKSIgPj4g JChNRVRBREFUQSkKLQlAZWNobyAiUGF0aDogICAgICAgICAgICAkKFRFU1RfRElSKSIgPj4gJChN RVRBREFUQSkKLQlAZWNobyAiRGVzY3JpcHRpb246ICAgICBUZXN0IGZ1bmN0aW9ucyBmcm9tIGhh bmRsZS5oIiA+PiAkKE1FVEFEQVRBKQotCUBlY2hvICJUeXBlOiAgICAgICAgICAgIFNhbml0eSIg Pj4gJChNRVRBREFUQSkKLQlAZWNobyAiVGVzdFRpbWU6ICAgICAgICA1bSIgPj4gJChNRVRBREFU QSkKLQlAZWNobyAiUnVuRm9yOiAgICAgICAgICBsaWJzZW1hbmFnZSIgPj4gJChNRVRBREFUQSkK LQlAZWNobyAiUmVxdWlyZXM6ICAgICAgICBsaWJzZW1hbmFnZSBsaWJzZW1hbmFnZS1kZXZlbCBn bGliYyBnY2MiID4+ICQoTUVUQURBVEEpCi0JQGVjaG8gIlByaW9yaXR5OiAgICAgICAgTm9ybWFs IiA+PiAkKE1FVEFEQVRBKQotCUBlY2hvICJMaWNlbnNlOiAgICAgICAgIEdQTHYyKyIgPj4gJChN RVRBREFUQSkKLQlAZWNobyAiQ29uZmlkZW50aWFsOiAgICBubyIgPj4gJChNRVRBREFUQSkKLQlA ZWNobyAiRGVzdHJ1Y3RpdmU6ICAgICBubyIgPj4gJChNRVRBREFUQSkKLQlAZWNobyAiUmVsZWFz ZXM6ICAgICAgICAtUkhFTDQgLVJIRUxDbGllbnQ1IC1SSEVMU2VydmVyNSIgPj4gJChNRVRBREFU QSkKLQotCXJodHMtbGludCAkKE1FVEFEQVRBKQoKZGlmZiAtLWdpdCBhL2xpYnNlbWFuYWdlL3Nl bWFuYWdlLWhhbmRsZS1mdW5jdGlvbnMvUFVSUE9TRSBiL2xpYnNlbWFuYWdlL3NlbWFuYWdlLWhh bmRsZS1mdW5jdGlvbnMvUFVSUE9TRQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDlh OGUxOS4uMDAwMDAwMAotLS0gYS9saWJzZW1hbmFnZS9zZW1hbmFnZS1oYW5kbGUtZnVuY3Rpb25z L1BVUlBPU0UKKysrIC9kZXYvbnVsbApAQCAtMSwzICswLDAgQEAKLVBVUlBPU0Ugb2YgL0NvcmVP Uy9saWJzZW1hbmFnZS9TYW5pdHkvc2VtYW5hZ2UtaGFuZGxlLWZ1bmN0aW9ucwotRGVzY3JpcHRp b246IFRlc3QgZnVuY3Rpb25zIGZyb20gaGFuZGxlLmgKLUF1dGhvcjogSmFuIFphcnNreSA8anph cnNreUByZWRoYXQuY29tPgoKZGlmZiAtLWdpdCBhL2xpYnNlbWFuYWdlL3NlbWFuYWdlLWhhbmRs ZS1mdW5jdGlvbnMvZnVuY3Rpb25zLmMgYi9saWJzZW1hbmFnZS9zZW1hbmFnZS1oYW5kbGUtZnVu Y3Rpb25zL2Z1bmN0aW9ucy5jCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3NzIyYzA5 Li4wMDAwMDAwCi0tLSBhL2xpYnNlbWFuYWdlL3NlbWFuYWdlLWhhbmRsZS1mdW5jdGlvbnMvZnVu Y3Rpb25zLmMKKysrIC9kZXYvbnVsbApAQCAtMSwxMzIgKzAsMCBAQAotI2luY2x1ZGUgPHN0ZGlv Lmg+Ci0jaW5jbHVkZSA8c3RkbGliLmg+Ci0jaW5jbHVkZSA8c3RyaW5nLmg+Ci0jaW5jbHVkZSA8 ZXJybm8uaD4KLSNpbmNsdWRlIDxzZW1hbmFnZS9zZW1hbmFnZS5oPgotCi12b2lkIGNoZWNrX3Jl c3VsdF9pbnQoY29uc3QgY2hhciAqZXhwZWN0ZWQsIGludCByZWFsKSB7Ci0gICAgaW50IGV4cCA9 IHN0cnRvbChleHBlY3RlZCwgTlVMTCwgMTApOwotCi0gICAgaWYgKGV4cCAhPSByZWFsKSB7Ci0g ICAgICAgIGZwcmludGYoc3RkZXJyLCAiRXhwZWN0ZWQgJWQgYnV0IGdvdCAlZFxuIiwgZXhwLCBy ZWFsKTsKLSAgICAgICAgZXhpdCgxKTsKLSAgICB9Ci19Ci0KLXNlbWFuYWdlX2hhbmRsZV90ICp0 ZXN0X2hhbmRsZV9jcmVhdGUoKSB7Ci0gICAgc2VtYW5hZ2VfaGFuZGxlX3QgKnNoID0gTlVMTDsK LQotICAgIHNoID0gc2VtYW5hZ2VfaGFuZGxlX2NyZWF0ZSgpOwotICAgIHByaW50Zigic2VtYW5h Z2VfaGFuZGxlX2NyZWF0ZSgpOiAlcFxuIiwgKHZvaWQgKikgc2gpOwotCi0gICAgaWYgKHNoID09 IE5VTEwpIHsKLSAgICAgICAgcGVycm9yKCJzZW1hbmFnZV9oYW5kbGVfY3JlYXRlIik7Ci0gICAg ICAgIGV4aXQoMSk7Ci0gICAgfQotCi0gICAgcmV0dXJuIHNoOwotfQotCi1pbnQgdGVzdF9jb25u ZWN0KHNlbWFuYWdlX2hhbmRsZV90ICpzaCkgewotICAgIGludCByZXN1bHQgPSBzZW1hbmFnZV9j b25uZWN0KHNoKTsKLSAgICBwcmludGYoInNlbWFuYWdlX2Nvbm5lY3QoJXApOiAlZFxuIiwgKHZv aWQgKikgc2gsIHJlc3VsdCk7Ci0KLSAgICBpZiAocmVzdWx0ICE9IDApIHsKLSAgICAgICAgcGVy cm9yKCJzZW1hbmFnZV9jb25uZWN0Iik7Ci0gICAgICAgIGV4aXQoMSk7Ci0gICAgfQotCi0gICAg cmV0dXJuIHJlc3VsdDsKLX0KLQotaW50IHRlc3RfZGlzY29ubmVjdChzZW1hbmFnZV9oYW5kbGVf dCAqc2gpIHsKLSAgICBpbnQgcmVzdWx0ID0gc2VtYW5hZ2VfZGlzY29ubmVjdChzaCk7Ci0gICAg cHJpbnRmKCJzZW1hbmFnZV9kaXNjb25uZWN0KCVwKTogJWRcbiIsICh2b2lkICopIHNoLCByZXN1 bHQpOwotCi0gICAgaWYgKHJlc3VsdCAhPSAwKSB7Ci0gICAgICAgIHBlcnJvcigic2VtYW5hZ2Vf ZGlzY29ubmVjdCIpOwotICAgICAgICBleGl0KDEpOwotICAgIH0KLQotICAgIHJldHVybiByZXN1 bHQ7Ci19Ci0KLWludCB0ZXN0X2JlZ2luX3RyYW5zYWN0aW9uKHNlbWFuYWdlX2hhbmRsZV90ICpz aCkgewotICAgIGludCByZXN1bHQgPSBzZW1hbmFnZV9iZWdpbl90cmFuc2FjdGlvbihzaCk7Ci0g ICAgcHJpbnRmKCJzZW1hbmFnZV9iZWdpbl90cmFuc2FjdGlvbiglcCk6ICVkXG4iLCAodm9pZCAq KSBzaCwgcmVzdWx0KTsKLQotICAgIGlmIChyZXN1bHQgIT0gMCkgewotICAgICAgICBwZXJyb3Io InNlbWFuYWdlX2JlZ2luX3RyYW5zYWN0aW9uIik7Ci0gICAgICAgIGV4aXQoMSk7Ci0gICAgfQot Ci0gICAgcmV0dXJuIHJlc3VsdDsKLX0KLQotaW50IHRlc3RfY29tbWl0KHNlbWFuYWdlX2hhbmRs ZV90ICpzaCkgewotICAgIGludCByZXN1bHQgPSBzZW1hbmFnZV9jb21taXQoc2gpOwotICAgIHBy aW50Zigic2VtYW5hZ2VfY29tbWl0KCVwKTogJWRcbiIsICh2b2lkICopIHNoLCByZXN1bHQpOwot Ci0gICAgaWYgKHJlc3VsdCAhPSAwKSB7Ci0gICAgICAgIHBlcnJvcigic2VtYW5hZ2VfY29tbWl0 Iik7Ci0gICAgICAgIGV4aXQoMSk7Ci0gICAgfQotCi0gICAgcmV0dXJuIHJlc3VsdDsKLX0KLQot I2RlZmluZSBTVEFURV9JTklUICAgICAgMQotI2RlZmluZSBTVEFURV9IQU5ETEUgICAgMgotI2Rl ZmluZSBTVEFURV9DT05OICAgICAgMwotI2RlZmluZSBTVEFURV9UUkFOUyAgICAgNAotCi1pbnQg Z2V0X3N0YXRlKGNvbnN0IGNoYXIgKnN0YXRlX3N0cikgewotICAgIGlmIChzdHJjbXAoc3RhdGVf c3RyLCAiaW5pdCIpID09IDApCi0gICAgICAgIHJldHVybiBTVEFURV9JTklUOwotICAgIGlmIChz dHJjbXAoc3RhdGVfc3RyLCAiaGFuZGxlIikgPT0gMCkKLSAgICAgICAgcmV0dXJuIFNUQVRFX0hB TkRMRTsKLSAgICBpZiAoc3RyY21wKHN0YXRlX3N0ciwgImNvbm4iKSA9PSAwKQotICAgICAgICBy ZXR1cm4gU1RBVEVfQ09OTjsKLSAgICBpZiAoc3RyY21wKHN0YXRlX3N0ciwgInRyYW5zIikgPT0g MCkKLSAgICAgICAgcmV0dXJuIFNUQVRFX1RSQU5TOwotCi0gICAgcmV0dXJuIDA7Ci19Ci0KLXNl bWFuYWdlX2hhbmRsZV90ICogZ2V0X2hhbmRsZShjb25zdCBjaGFyICpzdGF0ZV9zdHIpIHsKLSAg ICBpbnQgc3RhdGU7Ci0gICAgc2VtYW5hZ2VfaGFuZGxlX3QgKnNoID0gTlVMTDsKLQotICAgIHN0 YXRlID0gZ2V0X3N0YXRlKHN0YXRlX3N0cik7Ci0KLSAgICBpZiAoc3RhdGUgPj0gU1RBVEVfSU5J VCkKLSAgICAgICAgc2ggPSBOVUxMOwotCi0gICAgaWYgKHN0YXRlID49IFNUQVRFX0hBTkRMRSkK LSAgICAgICAgc2ggPSB0ZXN0X2hhbmRsZV9jcmVhdGUoKTsKLQotICAgIGlmIChzdGF0ZSA+PSBT VEFURV9DT05OKQotICAgICAgICB0ZXN0X2Nvbm5lY3Qoc2gpOwotCi0gICAgaWYgKHN0YXRlID49 IFNUQVRFX1RSQU5TKQotICAgICAgICB0ZXN0X2JlZ2luX3RyYW5zYWN0aW9uKHNoKTsKLQotICAg IHJldHVybiBzaDsKLX0KLQotdm9pZCBkZXN0cm95X2hhbmRsZShzZW1hbmFnZV9oYW5kbGVfdCAq c2gsIGNvbnN0IGNoYXIgKnN0YXRlX3N0cikgewotICAgIGludCBzdGF0ZTsKLQotICAgIHN0YXRl ID0gZ2V0X3N0YXRlKHN0YXRlX3N0cik7Ci0KLSAgICBpZiAoc3RhdGUgPj0gU1RBVEVfVFJBTlMp Ci0gICAgICAgIHRlc3RfY29tbWl0KHNoKTsKLQotICAgIGlmIChzdGF0ZSA+PSBTVEFURV9DT05O KQotICAgICAgICB0ZXN0X2Rpc2Nvbm5lY3Qoc2gpOwotCi0gICAgaWYgKHN0YXRlID49IFNUQVRF X0hBTkRMRSkgewotICAgICAgICBzZW1hbmFnZV9oYW5kbGVfZGVzdHJveShzaCk7Ci0gICAgICAg IHByaW50Zigic2VtYW5hZ2VfaGFuZGxlX2Rlc3Ryb3koJXApXG4iLCAodm9pZCAqKSBzaCk7Ci0g ICAgfQotfQoKZGlmZiAtLWdpdCBhL2xpYnNlbWFuYWdlL3NlbWFuYWdlLWhhbmRsZS1mdW5jdGlv bnMvcGxhbi50eHQgYi9saWJzZW1hbmFnZS9zZW1hbmFnZS1oYW5kbGUtZnVuY3Rpb25zL3BsYW4u dHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1MjFhOTE0Li4wMDAwMDAwCi0tLSBh L2xpYnNlbWFuYWdlL3NlbWFuYWdlLWhhbmRsZS1mdW5jdGlvbnMvcGxhbi50eHQKKysrIC9kZXYv bnVsbApAQCAtMSwyOSArMCwwIEBACi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgaW5pdCAgICBoYW5kbGUgIGNvbm4gICAgdHJhbnMKLXNlbWFuYWdlX3NldF9yb290ICAg ICAgICAgICAgICAgICAgIHggICBvayAgICAgIG9rICAgICAgb2sgICAgICAtCi1zZW1hbmFnZV9y b290ICAgICAgICAgICAgICAgICAgICAgICB4ICAgb2sgICAgICBvayAgICAgIG9rICAgICAgLQot c2VtYW5hZ2VfaGFuZGxlX2NyZWF0ZSAgICAgICAgICAgICAgeCAgIG9rICAgICAgLSAgICAgICAt ICAgICAgIC0gICAgICAgIAotc2VtYW5hZ2Vfc2V0X3JlYnVpbGQgICAgICAgICAgICAgICAgICAg IGZhaWwgICAgb2sgICAgICBvayAgICAgIC0KLXNlbWFuYWdlX3NldF9yZWxvYWQgICAgICAgICAg ICAgICAgICAgICBmYWlsICAgIG9rICAgICAgb2sgICAgICAtCi1zZW1hbmFnZV9nZXRfaGxsX2Nv bXBpbGVyX3BhdGggICAgICAgICAgZmFpbCAgICA/ICAgICAgID8gICAgICAgLQotc2VtYW5hZ2Vf c2V0X2NyZWF0ZV9zdG9yZSAgICAgICAgICAgICAgIGZhaWwgICAgb2sgICAgICBvayAgICAgIC0g ICAgICAgc2hvdWxkIGJlIGNhbGxlZCBhZnRlciBjb25uZWN0Ci1zZW1hbmFnZV9nZXRfZGlzYWJs ZV9kb250YXVkaXQgICAgICAgICAgZmFpbCAgICA/ICAgICAgID8gICAgICAgLQotc2VtYW5hZ2Vf c2V0X2Rpc2FibGVfZG9udGF1ZGl0ICAgICAgICAgIGZhaWwgICAgPyAgICAgICA/ICAgICAgIC0K LXNlbWFuYWdlX2dldF9wcmVzZXJ2ZV90dW5hYmxlcyAgICAgICAgICBmYWlsICAgID8gICAgICAg PyAgICAgICAtCi1zZW1hbmFnZV9zZXRfcHJlc2VydmVfdHVuYWJsZXMgICAgICAgICAgZmFpbCAg ICA/ICAgICAgID8gICAgICAgLQotc2VtYW5hZ2VfZ2V0X2lnbm9yZV9tb2R1bGVfY2FjaGUgICAg ICAgIGZhaWwgICAgPyAgICAgICA/ICAgICAgIC0KLXNlbWFuYWdlX3NldF9pZ25vcmVfbW9kdWxl X2NhY2hlICAgICAgICBmYWlsICAgID8gICAgICAgPyAgICAgICAtCi1zZW1hbmFnZV9zZXRfY2hl Y2tfY29udGV4dHMgICAgICAgICAgICAgZmFpbCAgICBvayAgICAgIG9rICAgICAgLQotc2VtYW5h Z2VfZ2V0X2RlZmF1bHRfcHJpb3JpdHkgICAgICAgICAgIGZhaWwgICAgb2sgICAgICBvayAgICAg IC0KLXNlbWFuYWdlX3NldF9kZWZhdWx0X3ByaW9yaXR5ICAgICAgICAgICBmYWlsICAgIG9rICAg ICAgb2sgICAgICAtCi1zZW1hbmFnZV9pc19jb25uZWN0ZWQgICAgICAgICAgICAgICB4ICAgZmFp bCAgICBvayAgICAgIG9rICAgICAgLQotc2VtYW5hZ2Vfc2VsZWN0X3N0b3JlICAgICAgICAgICAg ICAgICAgIGZhaWwgICAgb2sgICAgICBvayAgICAgIC0gICAgICAgc2hvdWxkIGJlIGNhbGxlZCBi ZWZvcmUgY29ubmVjdAotc2VtYW5hZ2Vfc2V0X3N0b3JlX3Jvb3QgICAgICAgICAgICAgICAgIGZh aWwgICAgb2sgICAgICBvayAgICAgIC0KLXNlbWFuYWdlX2lzX21hbmFnZWQgICAgICAgICAgICAg ICAgIHggICBmYWlsICAgIG9rICAgICAgZmFpbCAgICAtCi1zZW1hbmFnZV9tbHNfZW5hYmxlZCAg ICAgICAgICAgICAgICB4ICAgZmFpbCAgICA/ICAgICAgIG9rICAgICAgLQotc2VtYW5hZ2VfY29u bmVjdCAgICAgICAgICAgICAgICAgICAgeCAgIGZhaWwgICAgb2sgICAgICA/ICAgICAgIC0KLXNl bWFuYWdlX2FjY2Vzc19jaGVjayAgICAgICAgICAgICAgIHggICBmYWlsICAgIG9rICAgICAgPyAg ICAgICAtCi1zZW1hbmFnZV9kaXNjb25uZWN0ICAgICAgICAgICAgICAgICB4ICAgZmFpbCAgICBm YWlsICAgIG9rICAgICAgLSAgICAgICBvayB3aGVuIGRpc2Nvbm5lY3RlZCB0d2ljZQotc2VtYW5h Z2VfaGFuZGxlX2Rlc3Ryb3kgICAgICAgICAgICAgeCAgIGZhaWwgICAgb2sgICAgICBvayAgICAg IC0KLXNlbWFuYWdlX2JlZ2luX3RyYW5zYWN0aW9uICAgICAgICAgIHggICBmYWlsICAgIGZhaWwg ICAgb2sgICAgICBvayAgICAgIG9rIHdoZW4gYmVnaW4gdHdpY2UKLXNlbWFuYWdlX2NvbW1pdCAg ICAgICAgICAgICAgICAgICAgIHggICBmYWlsICAgIGZhaWwgICAgZmFpbCAgICBvawotc2VtYW5h Z2VfcmVsb2FkX3BvbGljeSAgICAgICAgICAgICAgICAgIGZhaWwgICAgPyAgICAgICA/ICAgICAg ID8KCmRpZmYgLS1naXQgYS9saWJzZW1hbmFnZS9zZW1hbmFnZS1oYW5kbGUtZnVuY3Rpb25zL3J1 bnRlc3Quc2ggYi9saWJzZW1hbmFnZS9zZW1hbmFnZS1oYW5kbGUtZnVuY3Rpb25zL3J1bnRlc3Qu c2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDgwMWFhZTcuLjAwMDAwMDAKLS0tIGEv bGlic2VtYW5hZ2Uvc2VtYW5hZ2UtaGFuZGxlLWZ1bmN0aW9ucy9ydW50ZXN0LnNoCisrKyAvZGV2 L251bGwKQEAgLTEsMTIyICswLDAgQEAKLSMhL2Jpbi9iYXNoCi0jIHZpbTogZGljdCs9L3Vzci9z aGFyZS9iZWFrZXJsaWIvZGljdGlvbmFyeS52aW0gY3B0PS4sdyxiLHUsdCxpLGsKLSMgfn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn4KLSMKLSMgICBydW50ZXN0LnNoIG9mIC9Db3JlT1MvbGlic2VtYW5hZ2UvU2FuaXR5L3Nl bWFuYWdlLWhhbmRsZS1mdW5jdGlvbnMKLSMgICBEZXNjcmlwdGlvbjogVGVzdCBmdW5jdGlvbnMg ZnJvbSBoYW5kbGUuaAotIyAgIEF1dGhvcjogSmFuIFphcnNreSA8anphcnNreUByZWRoYXQuY29t PgotIwotIyB+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fgotIwotIyAgIENvcHlyaWdodCAoYykgMjAxNyBSZWQgSGF0LCBJ bmMuCi0jCi0jICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0 cmlidXRlIGl0IGFuZC9vcgotIyAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdO VSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzCi0jICAgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNv ZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDIgb2YKLSMgICB0aGUgTGljZW5zZSwg b3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSMKLSMgICBUaGlzIHByb2dy YW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlCi0jICAgdXNlZnVs LCBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZAotIyAg IHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK LSMgICBQVVJQT1NFLiAgU2VlIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9y ZSBkZXRhaWxzLgotIwotIyAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhl IEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0jICAgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0u IElmIG5vdCwgc2VlIGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8uCi0jCi0jIH5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+Ci0KLSMgSW5jbHVkZSBCZWFrZXIgZW52aXJvbm1lbnQKLS4gL3Vzci9iaW4vcmh0cy1lbnZp cm9ubWVudC5zaCB8fCBleGl0IDEKLS4gL3Vzci9zaGFyZS9iZWFrZXJsaWIvYmVha2VybGliLnNo IHx8IGV4aXQgMQotCi1QQUNLQUdFPSJsaWJzZW1hbmFnZSIKLQotcmxKb3VybmFsU3RhcnQKLSAg ICBybFBoYXNlU3RhcnRTZXR1cAotICAgICAgICBybEFzc2VydFJwbSAke1BBQ0tBR0V9Ci0gICAg ICAgIHJsQXNzZXJ0UnBtICR7UEFDS0FHRX0tZGV2ZWwKLSAgICAgICAgcmxBc3NlcnRScG0gImds aWJjIgotICAgICAgICBybEFzc2VydFJwbSAiZ2NjIgotCi0gICAgICAgIGlmIHJsSXNSSEVMICI+ PTciIHx8IHJsSXNGZWRvcmE7IHRoZW4KLSAgICAgICAgICAgIHJsUnVuIC1sICJnY2MgdGVzdF9y b290LmMgICAgICAgICAgIC1vIHRlc3Rfcm9vdCAgICAgICAgICAgIC1sc2VtYW5hZ2UgLVdhbGwg LVdleHRyYSAtc3RkPWM5OSIKLSAgICAgICAgZmkKLQotICAgICAgICBybFJ1biAtbCAiZ2NjIHRl c3RfaGFuZGxlX2NyZWF0ZS5jICAtbyB0ZXN0X2hhbmRsZV9jcmVhdGUgICAtbHNlbWFuYWdlIC1X YWxsIC1XZXh0cmEgLVduby11bnVzZWQtcGFyYW1ldGVyIC1zdGQ9Yzk5IgotICAgICAgICBybFJ1 biAtbCAiZ2NjIHRlc3RfYWNjZXNzX2NoZWNrLmMgICAtbyB0ZXN0X2FjY2Vzc19jaGVjayAgICAt bHNlbWFuYWdlIC1XYWxsIC1XZXh0cmEgLXN0ZD1jOTkiCi0gICAgICAgIHJsUnVuIC1sICJnY2Mg dGVzdF9pc19tYW5hZ2VkLmMgICAgIC1vIHRlc3RfaXNfbWFuYWdlZCAgICAgIC1sc2VtYW5hZ2Ug LVdhbGwgLVdleHRyYSAtc3RkPWM5OSIKLSAgICAgICAgcmxSdW4gLWwgImdjYyB0ZXN0X2Nvbm5l Y3QuYyAgICAgICAgLW8gdGVzdF9jb25uZWN0ICAgICAgICAgLWxzZW1hbmFnZSAtV2FsbCAtV2V4 dHJhIC1zdGQ9Yzk5IgotICAgICAgICBybFJ1biAtbCAiZ2NjIHRlc3RfaXNfY29ubmVjdGVkLmMg ICAtbyB0ZXN0X2lzX2Nvbm5lY3RlZCAgICAtbHNlbWFuYWdlIC1XYWxsIC1XZXh0cmEgLXN0ZD1j OTkiCi0gICAgICAgIHJsUnVuIC1sICJnY2MgdGVzdF9tbHNfZW5hYmxlZC5jICAgIC1vIHRlc3Rf bWxzX2VuYWJsZWQgICAgIC1sc2VtYW5hZ2UgLVdhbGwgLVdleHRyYSAtc3RkPWM5OSIKLSAgICAg ICAgcmxSdW4gLWwgImdjYyB0ZXN0X3RyYW5zYWN0aW9uLmMgICAgLW8gdGVzdF90cmFuc2FjdGlv biAgICAgLWxzZW1hbmFnZSAtV2FsbCAtV2V4dHJhIC1zdGQ9Yzk5IgotCi0gICAgICAgIEVSUl9G QUlMPTEKLSAgICAgICAgRVJSX0FCT1JUPTEzNAotICAgIHJsUGhhc2VFbmQKLQotICAgIGlmIHJs SXNSSEVMICI+PTciIHx8IHJsSXNGZWRvcmE7IHRoZW4KLSAgICBybFBoYXNlU3RhcnRUZXN0ICJz ZW1hbmFnZV9yb290LCBzZW1hbmFnZV90ZXN0X3Jvb3QiCi0gICAgICAgIHJsUnVuICIuL3Rlc3Rf cm9vdCBpbml0IgotICAgICAgICBybFJ1biAiLi90ZXN0X3Jvb3QgaGFuZGxlIgotICAgICAgICBy bFJ1biAiLi90ZXN0X3Jvb3QgY29ubiIKLSAgICAgICAgcmxSdW4gIi4vdGVzdF9yb290IGluaXQg L3NvbWVwYXRoIgotICAgICAgICBybFJ1biAiLi90ZXN0X3Jvb3QgaGFuZGxlIC9zb21lcGF0aCIK LSAgICAgICAgcmxSdW4gIi4vdGVzdF9yb290IGNvbm4gL3NvbWVwYXRoIgotICAgIHJsUGhhc2VF bmQKLSAgICBmaQotCi0gICAgcmxQaGFzZVN0YXJ0VGVzdCAic2VtYW5hZ2VfaGFuZGxlX2NyZWF0 ZSwgc2VtYW5hZ2VfaGFuZGxlX2Rlc3Ryb3kiCi0gICAgICAgIHJsUnVuICIuL3Rlc3RfaGFuZGxl X2NyZWF0ZSBpbml0IgotICAgIHJsUGhhc2VFbmQKLQotICAgIHJsUGhhc2VTdGFydFRlc3QgInNl bWFuYWdlX2FjY2Vzc19jaGVjayIKLSAgICAgICAgcmxSdW4gIi4vdGVzdF9hY2Nlc3NfY2hlY2sg aW5pdCIgJEVSUl9BQk9SVAotICAgICAgICBybFJ1biAiLi90ZXN0X2FjY2Vzc19jaGVjayBoYW5k bGUgMiIKLSAgICAgICAgcmxSdW4gIi4vdGVzdF9hY2Nlc3NfY2hlY2sgY29ubiAyIgotICAgIHJs UGhhc2VFbmQKLQotICAgIHJsUGhhc2VTdGFydFRlc3QgInNlbWFuYWdlX2lzX21hbmFnZWQiCi0g ICAgICAgIHJsUnVuICIuL3Rlc3RfaXNfbWFuYWdlZCBpbml0IiAkRVJSX0FCT1JUCi0gICAgICAg IHJsUnVuICIuL3Rlc3RfaXNfbWFuYWdlZCBoYW5kbGUgMSIKLSAgICAgICAgcmxSdW4gIi4vdGVz dF9pc19tYW5hZ2VkIGNvbm4iICRFUlJfRkFJTAotICAgIHJsUGhhc2VFbmQKLQotICAgIHJsUGhh c2VTdGFydFRlc3QgInNlbWFuYWdlX2Nvbm5lY3QsIHNlbWFuYWdlX2Rpc2Nvbm5lY3QiCi0gICAg ICAgIHJsUnVuICIuL3Rlc3RfY29ubmVjdCBpbml0IiAkRVJSX0FCT1JUCi0gICAgICAgIHJsUnVu ICIuL3Rlc3RfY29ubmVjdCBpbml0IHJldmVyc2VkIiAkRVJSX0FCT1JUCi0gICAgICAgIHJsUnVu ICIuL3Rlc3RfY29ubmVjdCBoYW5kbGUiCi0gICAgICAgIHJsUnVuICIuL3Rlc3RfY29ubmVjdCBo YW5kbGUgdHdpY2UiCi0gICAgICAgIHJsUnVuICIuL3Rlc3RfY29ubmVjdCBoYW5kbGUgcmV2ZXJz ZWQiICRFUlJfQUJPUlQKLSAgICAgICAgIyB3aHkgZG9lcyBpdCB3b3JrPz8KLSAgICAgICAgcmxS dW4gIi4vdGVzdF9jb25uZWN0IGNvbm4iCi0gICAgcmxQaGFzZUVuZAotCi0gICAgcmxQaGFzZVN0 YXJ0VGVzdCAic2VtYW5hZ2VfaXNfY29ubmVjdGVkIgotICAgICAgICBybFJ1biAiLi90ZXN0X2lz X2Nvbm5lY3RlZCBpbml0IiAkRVJSX0FCT1JUCi0gICAgICAgIHJsUnVuICIuL3Rlc3RfaXNfY29u bmVjdGVkIGhhbmRsZSAwIgotICAgICAgICBybFJ1biAiLi90ZXN0X2lzX2Nvbm5lY3RlZCBjb25u IDEiCi0gICAgcmxQaGFzZUVuZAotCi0gICAgcmxQaGFzZVN0YXJ0VGVzdCAic2VtYW5hZ2VfbWxz X2VuYWJsZWQiCi0gICAgICAgIHJsUnVuICIuL3Rlc3RfbWxzX2VuYWJsZWQgaW5pdCIgJEVSUl9B Qk9SVAotICAgICAgICBybFJ1biAiLi90ZXN0X21sc19lbmFibGVkIGhhbmRsZSIgJEVSUl9BQk9S VAotICAgICAgICBybFJ1biAiLi90ZXN0X21sc19lbmFibGVkIGNvbm4gMSIKLSAgICBybFBoYXNl RW5kCi0KLSAgICBybFBoYXNlU3RhcnRUZXN0ICJzZW1hbmFnZV9iZWdpbl90cmFuc2FjdGlvbiwg c2VtYW5hZ2VfY29tbWl0IgotICAgICAgICBybFJ1biAiLi90ZXN0X3RyYW5zYWN0aW9uIGluaXQi ICRFUlJfQUJPUlQKLSAgICAgICAgcmxSdW4gIi4vdGVzdF90cmFuc2FjdGlvbiBpbml0IHJldmVy c2VkIiAkRVJSX0FCT1JUCi0gICAgICAgIHJsUnVuICIuL3Rlc3RfdHJhbnNhY3Rpb24gaGFuZGxl IiAkRVJSX0FCT1JUCi0gICAgICAgIHJsUnVuICIuL3Rlc3RfdHJhbnNhY3Rpb24gaGFuZGxlIHJl dmVyc2VkIiAkRVJSX0FCT1JUCi0gICAgICAgIHJsUnVuICIuL3Rlc3RfdHJhbnNhY3Rpb24gY29u biIKLSAgICAgICAgcmxSdW4gIi4vdGVzdF90cmFuc2FjdGlvbiBjb25uIHR3aWNlIgotICAgICAg ICBybFJ1biAiLi90ZXN0X3RyYW5zYWN0aW9uIGNvbm4gcmV2ZXJzZWQiICRFUlJfRkFJTAotICAg IHJsUGhhc2VFbmQKLQotICAgIHJsUGhhc2VTdGFydENsZWFudXAKLSAgICAgICAgcmxSdW4gInJt IC1mIG91dHB1dCB0ZXN0X3Jvb3QgdGVzdF9oYW5kbGVfY3JlYXRlIHRlc3RfYWNjZXNzX2NoZWNr IFwKLSAgICAgICAgICAgICAgIHRlc3RfaXNfbWFuYWdlZCB0ZXN0X2Nvbm5lY3QgdGVzdF9pc19j b25uZWN0ZWQgXAotICAgICAgICAgICAgICAgdGVzdF9tbHNfZW5hYmxlZCB0ZXN0X3RyYW5zYWN0 aW9uIgotICAgIHJsUGhhc2VFbmQKLXJsSm91cm5hbFByaW50VGV4dAotcmxKb3VybmFsRW5kCgpk aWZmIC0tZ2l0IGEvbGlic2VtYW5hZ2Uvc2VtYW5hZ2UtaGFuZGxlLWZ1bmN0aW9ucy90ZXN0X2Fj Y2Vzc19jaGVjay5jIGIvbGlic2VtYW5hZ2Uvc2VtYW5hZ2UtaGFuZGxlLWZ1bmN0aW9ucy90ZXN0 X2FjY2Vzc19jaGVjay5jCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4ZWIyNTMwLi4w MDAwMDAwCi0tLSBhL2xpYnNlbWFuYWdlL3NlbWFuYWdlLWhhbmRsZS1mdW5jdGlvbnMvdGVzdF9h Y2Nlc3NfY2hlY2suYworKysgL2Rldi9udWxsCkBAIC0xLDMyICswLDAgQEAKLSNpbmNsdWRlIDxz dGRpby5oPgotI2luY2x1ZGUgPHN0ZGxpYi5oPgotI2luY2x1ZGUgPHN0cmluZy5oPgotI2luY2x1 ZGUgPGVycm5vLmg+Ci0jaW5jbHVkZSA8c2VtYW5hZ2Uvc2VtYW5hZ2UuaD4KLQotI2luY2x1ZGUg ImZ1bmN0aW9ucy5jIgotCi1pbnQgbWFpbiAoaW50IGFyZ2MsIGNoYXIgKiphcmd2KSB7Ci0gICAg c2VtYW5hZ2VfaGFuZGxlX3QgKnNoOwotCi0gICAgaWYgKGFyZ2MgPCAyKQotICAgICAgICBleGl0 KDEpOwotICAgIAotICAgIHNoID0gZ2V0X2hhbmRsZShhcmd2WzFdKTsKLQotICAgIGludCByZXN1 bHQgPSBzZW1hbmFnZV9hY2Nlc3NfY2hlY2soc2gpOwotICAgIHByaW50Zigic2VtYW5hZ2VfYWNj ZXNzX2NoZWNrKCVwKTogJWRcbiIsICh2b2lkICopIHNoLCByZXN1bHQpOwotICAgIAotICAgIGlm IChyZXN1bHQgPCAwIHx8IChyZXN1bHQgIT0gMCAmJiByZXN1bHQgIT0gU0VNQU5BR0VfQ0FOX1JF QUQKLSAgICAgICAgICAgICAgICAgICAgICAgJiYgcmVzdWx0ICE9IFNFTUFOQUdFX0NBTl9XUklU RSkpIHsKLSAgICAgICAgcGVycm9yKCJzZW1hbmFnZV9hY2Nlc3NfY2hlY2siKTsKLSAgICAgICAg ZXhpdCgxKTsKLSAgICB9Ci0KLSAgICBpZiAoYXJnYyA+PSAzKQotICAgICAgICBjaGVja19yZXN1 bHRfaW50KGFyZ3ZbMl0sIHJlc3VsdCk7Ci0KLSAgICBkZXN0cm95X2hhbmRsZShzaCwgYXJndlsx XSk7Ci0KLSAgICBleGl0KDApOwotfQoKZGlmZiAtLWdpdCBhL2xpYnNlbWFuYWdlL3NlbWFuYWdl LWhhbmRsZS1mdW5jdGlvbnMvdGVzdF9jb25uZWN0LmMgYi9saWJzZW1hbmFnZS9zZW1hbmFnZS1o YW5kbGUtZnVuY3Rpb25zL3Rlc3RfY29ubmVjdC5jCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp bmRleCBkZjQwM2UwLi4wMDAwMDAwCi0tLSBhL2xpYnNlbWFuYWdlL3NlbWFuYWdlLWhhbmRsZS1m dW5jdGlvbnMvdGVzdF9jb25uZWN0LmMKKysrIC9kZXYvbnVsbApAQCAtMSwzMyArMCwwIEBACi0j aW5jbHVkZSA8c3RkaW8uaD4KLSNpbmNsdWRlIDxzdGRsaWIuaD4KLSNpbmNsdWRlIDxzdHJpbmcu aD4KLSNpbmNsdWRlIDxlcnJuby5oPgotI2luY2x1ZGUgPHNlbWFuYWdlL3NlbWFuYWdlLmg+Ci0K LSNpbmNsdWRlICJmdW5jdGlvbnMuYyIKLQotaW50IG1haW4gKGludCBhcmdjLCBjaGFyICoqYXJn dikgewotICAgIHNlbWFuYWdlX2hhbmRsZV90ICpzaDsKLSAgICAKLSAgICBpZiAoYXJnYyA8IDIp Ci0gICAgICAgIGV4aXQoMSk7Ci0gICAgCi0gICAgc2ggPSBnZXRfaGFuZGxlKGFyZ3ZbMV0pOwot ICAgIAotICAgIGlmIChhcmdjID49IDMgJiYgc3RyY21wKGFyZ3ZbMl0sICJyZXZlcnNlZCIpID09 IDApIHsKLSAgICAgICAgdGVzdF9kaXNjb25uZWN0KHNoKTsKLSAgICAgICAgdGVzdF9jb25uZWN0 KHNoKTsKLSAgICB9Ci0gICAgZWxzZSB7Ci0gICAgICAgIHRlc3RfY29ubmVjdChzaCk7Ci0gICAg ICAgIHRlc3RfZGlzY29ubmVjdChzaCk7Ci0gICAgfQotCi0gICAgaWYgKGFyZ2MgPj0gMyAmJiBz dHJjbXAoYXJndlsyXSwgInR3aWNlIikgPT0gMCkgewotICAgICAgICB0ZXN0X2Rpc2Nvbm5lY3Qo c2gpOwotICAgIH0KLQotICAgIGRlc3Ryb3lfaGFuZGxlKHNoLCBhcmd2WzFdKTsKLQotICAgIGV4 aXQoMCk7Ci19CgpkaWZmIC0tZ2l0IGEvbGlic2VtYW5hZ2Uvc2VtYW5hZ2UtaGFuZGxlLWZ1bmN0 aW9ucy90ZXN0X2hhbmRsZV9jcmVhdGUuYyBiL2xpYnNlbWFuYWdlL3NlbWFuYWdlLWhhbmRsZS1m dW5jdGlvbnMvdGVzdF9oYW5kbGVfY3JlYXRlLmMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDY1ZDE2NGUuLjAwMDAwMDAKLS0tIGEvbGlic2VtYW5hZ2Uvc2VtYW5hZ2UtaGFuZGxlLWZ1 bmN0aW9ucy90ZXN0X2hhbmRsZV9jcmVhdGUuYworKysgL2Rldi9udWxsCkBAIC0xLDE1ICswLDAg QEAKLSNpbmNsdWRlIDxzdGRpby5oPgotI2luY2x1ZGUgPHN0ZGxpYi5oPgotI2luY2x1ZGUgPHN0 cmluZy5oPgotI2luY2x1ZGUgPGVycm5vLmg+Ci0jaW5jbHVkZSA8c2VtYW5hZ2Uvc2VtYW5hZ2Uu aD4KLQotI2luY2x1ZGUgImZ1bmN0aW9ucy5jIgotCi1pbnQgbWFpbiAoaW50IGFyZ2MsIGNoYXIg Kiphcmd2KSB7Ci0gICAgc2VtYW5hZ2VfaGFuZGxlX3QgKnNoID0gdGVzdF9oYW5kbGVfY3JlYXRl KCk7Ci0KLSAgICBzZW1hbmFnZV9oYW5kbGVfZGVzdHJveShzaCk7Ci0KLSAgICBleGl0KDApOwot fQoKZGlmZiAtLWdpdCBhL2xpYnNlbWFuYWdlL3NlbWFuYWdlLWhhbmRsZS1mdW5jdGlvbnMvdGVz dF9pc19jb25uZWN0ZWQuYyBiL2xpYnNlbWFuYWdlL3NlbWFuYWdlLWhhbmRsZS1mdW5jdGlvbnMv dGVzdF9pc19jb25uZWN0ZWQuYwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDQyOGU0 OC4uMDAwMDAwMAotLS0gYS9saWJzZW1hbmFnZS9zZW1hbmFnZS1oYW5kbGUtZnVuY3Rpb25zL3Rl c3RfaXNfY29ubmVjdGVkLmMKKysrIC9kZXYvbnVsbApAQCAtMSwzMiArMCwwIEBACi0jaW5jbHVk ZSA8c3RkaW8uaD4KLSNpbmNsdWRlIDxzdGRsaWIuaD4KLSNpbmNsdWRlIDxzdHJpbmcuaD4KLSNp bmNsdWRlIDxlcnJuby5oPgotI2luY2x1ZGUgPHNlbWFuYWdlL3NlbWFuYWdlLmg+Ci0KLSNpbmNs dWRlICJmdW5jdGlvbnMuYyIKLQotaW50IG1haW4gKGludCBhcmdjLCBjaGFyICoqYXJndikgewot ICAgIHNlbWFuYWdlX2hhbmRsZV90ICpzaDsKLSAgICBpbnQgcmVzdWx0OwotICAgIAotICAgIGlm IChhcmdjIDwgMikKLSAgICAgICAgZXhpdCgxKTsKLSAgICAKLSAgICBzaCA9IGdldF9oYW5kbGUo YXJndlsxXSk7Ci0KLSAgICByZXN1bHQgPSBzZW1hbmFnZV9pc19jb25uZWN0ZWQoc2gpOwotICAg IHByaW50Zigic2VtYW5hZ2VfaXNfY29ubmVjdGVkKCVwKTogJWRcbiIsICh2b2lkICopIHNoLCBy ZXN1bHQpOwotCi0gICAgaWYgKHJlc3VsdCAhPSAwICYmIHJlc3VsdCAhPSAxKSB7Ci0gICAgICAg IHBlcnJvcigic2VtYW5hZ2VfaXNfY29ubmVjdGVkIik7Ci0gICAgICAgIGV4aXQoMSk7Ci0gICAg fQotCi0gICAgaWYgKGFyZ2MgPj0gMykKLSAgICAgICAgY2hlY2tfcmVzdWx0X2ludChhcmd2WzJd LCByZXN1bHQpOwotCi0gICAgZGVzdHJveV9oYW5kbGUoc2gsIGFyZ3ZbMV0pOwotCi0gICAgZXhp dCgwKTsKLX0KCmRpZmYgLS1naXQgYS9saWJzZW1hbmFnZS9zZW1hbmFnZS1oYW5kbGUtZnVuY3Rp b25zL3Rlc3RfaXNfbWFuYWdlZC5jIGIvbGlic2VtYW5hZ2Uvc2VtYW5hZ2UtaGFuZGxlLWZ1bmN0 aW9ucy90ZXN0X2lzX21hbmFnZWQuYwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNGQx MWNiMC4uMDAwMDAwMAotLS0gYS9saWJzZW1hbmFnZS9zZW1hbmFnZS1oYW5kbGUtZnVuY3Rpb25z L3Rlc3RfaXNfbWFuYWdlZC5jCisrKyAvZGV2L251bGwKQEAgLTEsMzIgKzAsMCBAQAotI2luY2x1 ZGUgPHN0ZGlvLmg+Ci0jaW5jbHVkZSA8c3RkbGliLmg+Ci0jaW5jbHVkZSA8c3RyaW5nLmg+Ci0j aW5jbHVkZSA8ZXJybm8uaD4KLSNpbmNsdWRlIDxzZW1hbmFnZS9zZW1hbmFnZS5oPgotCi0jaW5j bHVkZSAiZnVuY3Rpb25zLmMiCi0KLWludCBtYWluIChpbnQgYXJnYywgY2hhciAqKmFyZ3YpIHsK LSAgICBzZW1hbmFnZV9oYW5kbGVfdCAqc2g7Ci0gICAgaW50IHJlc3VsdDsKLQotICAgIGlmIChh cmdjIDwgMikKLSAgICAgICAgZXhpdCgxKTsKLSAgICAKLSAgICBzaCA9IGdldF9oYW5kbGUoYXJn dlsxXSk7Ci0gICAgCi0gICAgcmVzdWx0ID0gc2VtYW5hZ2VfaXNfbWFuYWdlZChzaCk7Ci0gICAg cHJpbnRmKCJzZW1hbmFnZV9pc19tYW5hZ2VkKCVwKTogJWRcbiIsICh2b2lkICopIHNoLCByZXN1 bHQpOwotCi0gICAgaWYgKHJlc3VsdCAhPSAwICYmIHJlc3VsdCAhPSAxKSB7Ci0gICAgICAgIHBl cnJvcigic2VtYW5hZ2VfaXNfbWFuYWdlZCIpOwotICAgICAgICBleGl0KDEpOwotICAgIH0KLQot ICAgIGlmIChhcmdjID49IDMpCi0gICAgICAgIGNoZWNrX3Jlc3VsdF9pbnQoYXJndlsyXSwgcmVz dWx0KTsKLQotICAgIGRlc3Ryb3lfaGFuZGxlKHNoLCBhcmd2WzFdKTsKLQotICAgIGV4aXQoMCk7 Ci19CgpkaWZmIC0tZ2l0IGEvbGlic2VtYW5hZ2Uvc2VtYW5hZ2UtaGFuZGxlLWZ1bmN0aW9ucy90 ZXN0X21sc19lbmFibGVkLmMgYi9saWJzZW1hbmFnZS9zZW1hbmFnZS1oYW5kbGUtZnVuY3Rpb25z L3Rlc3RfbWxzX2VuYWJsZWQuYwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggN2U5NDNm MC4uMDAwMDAwMAotLS0gYS9saWJzZW1hbmFnZS9zZW1hbmFnZS1oYW5kbGUtZnVuY3Rpb25zL3Rl c3RfbWxzX2VuYWJsZWQuYworKysgL2Rldi9udWxsCkBAIC0xLDMyICswLDAgQEAKLSNpbmNsdWRl IDxzdGRpby5oPgotI2luY2x1ZGUgPHN0ZGxpYi5oPgotI2luY2x1ZGUgPHN0cmluZy5oPgotI2lu Y2x1ZGUgPGVycm5vLmg+Ci0jaW5jbHVkZSA8c2VtYW5hZ2Uvc2VtYW5hZ2UuaD4KLQotI2luY2x1 ZGUgImZ1bmN0aW9ucy5jIgotCi1pbnQgbWFpbiAoaW50IGFyZ2MsIGNoYXIgKiphcmd2KSB7Ci0g ICAgc2VtYW5hZ2VfaGFuZGxlX3QgKnNoOwotICAgIGludCByZXN1bHQ7Ci0gICAgCi0gICAgaWYg KGFyZ2MgPCAyKQotICAgICAgICBleGl0KDEpOwotICAgIAotICAgIHNoID0gZ2V0X2hhbmRsZShh cmd2WzFdKTsKLQotICAgIHJlc3VsdCA9IHNlbWFuYWdlX21sc19lbmFibGVkKHNoKTsKLSAgICBw cmludGYoInNlbWFuYWdlX21sc19lbmFibGVkKCVwKTogJWRcbiIsICh2b2lkICopIHNoLCByZXN1 bHQpOwotCi0gICAgaWYgKHJlc3VsdCAhPSAwICYmIHJlc3VsdCAhPSAxKSB7Ci0gICAgICAgIHBl cnJvcigic2VtYW5hZ2VfbWxzX2VuYWJsZWQiKTsKLSAgICAgICAgZXhpdCgxKTsKLSAgICB9Ci0K LSAgICBpZiAoYXJnYyA+PSA0KQotICAgICAgICBjaGVja19yZXN1bHRfaW50KGFyZ3ZbM10sIHJl c3VsdCk7Ci0KLSAgICBkZXN0cm95X2hhbmRsZShzaCwgYXJndlsxXSk7Ci0KLSAgICBleGl0KDAp OwotfQoKZGlmZiAtLWdpdCBhL2xpYnNlbWFuYWdlL3NlbWFuYWdlLWhhbmRsZS1mdW5jdGlvbnMv dGVzdF9yb290LmMgYi9saWJzZW1hbmFnZS9zZW1hbmFnZS1oYW5kbGUtZnVuY3Rpb25zL3Rlc3Rf cm9vdC5jCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1Nzg2MzQ4Li4wMDAwMDAwCi0t LSBhL2xpYnNlbWFuYWdlL3NlbWFuYWdlLWhhbmRsZS1mdW5jdGlvbnMvdGVzdF9yb290LmMKKysr IC9kZXYvbnVsbApAQCAtMSw1MyArMCwwIEBACi0jaW5jbHVkZSA8c3RkaW8uaD4KLSNpbmNsdWRl IDxzdGRsaWIuaD4KLSNpbmNsdWRlIDxzdHJpbmcuaD4KLSNpbmNsdWRlIDxlcnJuby5oPgotI2lu Y2x1ZGUgPHNlbWFuYWdlL3NlbWFuYWdlLmg+Ci0KLSNpbmNsdWRlICJmdW5jdGlvbnMuYyIKLQot aW50IG1haW4gKGludCBhcmdjLCBjaGFyICoqYXJndikgewotICAgIHNlbWFuYWdlX2hhbmRsZV90 ICpzaDsKLSAgICBjb25zdCBjaGFyICpyb290OwotICAgIGludCByZXN1bHQ7Ci0KLSAgICBpZiAo YXJnYyA8IDIpCi0gICAgICAgIGV4aXQoMSk7Ci0gICAgCi0gICAgc2ggPSBnZXRfaGFuZGxlKGFy Z3ZbMV0pOwotCi0gICAgcm9vdCA9IHNlbWFuYWdlX3Jvb3QoKTsKLSAgICBwcmludGYoInNlbWFu YWdlX3Jvb3QoKTogJXNcbiIsIHJvb3QpOwotCi0gICAgaWYgKHJvb3QgPT0gTlVMTCkgewotICAg ICAgICBwZXJyb3IoInNlbWFuYWdlX3Jvb3QiKTsKLSAgICAgICAgZXhpdCgxKTsKLSAgICB9Ci0K LSAgICBpZiAoYXJnYyA+PSAzKSB7Ci0gICAgICAgIHJlc3VsdCA9IHNlbWFuYWdlX3NldF9yb290 KGFyZ3ZbMl0pOwotICAgICAgICBwcmludGYoInNlbWFuYWdlX3NldF9yb290KFwiJXNcIik6ICVk XG4iLCBhcmd2WzJdLCByZXN1bHQpOwotCi0gICAgICAgIGlmIChyb290ID09IE5VTEwpIHsKLSAg ICAgICAgICAgIHBlcnJvcigic2VtYW5hZ2Vfc2V0X3Jvb3QiKTsKLSAgICAgICAgICAgIGV4aXQo MSk7Ci0gICAgICAgIH0KLQotICAgICAgICByb290ID0gc2VtYW5hZ2Vfcm9vdCgpOwotICAgICAg ICBwcmludGYoInNlbWFuYWdlX3Jvb3QoKTogJXNcbiIsIHJvb3QpOwotCi0gICAgICAgIGlmIChy ZXN1bHQgIT0gMCkgewotICAgICAgICAgICAgcGVycm9yKCJzZW1hbmFnZV9yb290Iik7Ci0gICAg ICAgICAgICBleGl0KDEpOwotICAgICAgICB9Ci0KLSAgICAgICAgaWYgKHN0cmNtcChyb290LCBh cmd2WzJdKSAhPSAwKSB7Ci0gICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIkV4cGVjdGVkIFwi JXNcIiBidXQgZ290IFwiJXNcIlxuIiwgYXJndlsyXSwgcm9vdCk7Ci0gICAgICAgICAgICBleGl0 KDEpOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgZGVzdHJveV9oYW5kbGUoc2gsIGFyZ3ZbMV0p OwotCi0gICAgZXhpdCgwKTsKLX0KCmRpZmYgLS1naXQgYS9saWJzZW1hbmFnZS9zZW1hbmFnZS1o YW5kbGUtZnVuY3Rpb25zL3Rlc3RfdHJhbnNhY3Rpb24uYyBiL2xpYnNlbWFuYWdlL3NlbWFuYWdl LWhhbmRsZS1mdW5jdGlvbnMvdGVzdF90cmFuc2FjdGlvbi5jCmRlbGV0ZWQgZmlsZSBtb2RlIDEw MDY0NAppbmRleCBmMWIwZTEwLi4wMDAwMDAwCi0tLSBhL2xpYnNlbWFuYWdlL3NlbWFuYWdlLWhh bmRsZS1mdW5jdGlvbnMvdGVzdF90cmFuc2FjdGlvbi5jCisrKyAvZGV2L251bGwKQEAgLTEsMzQg KzAsMCBAQAotI2luY2x1ZGUgPHN0ZGlvLmg+Ci0jaW5jbHVkZSA8c3RkbGliLmg+Ci0jaW5jbHVk ZSA8c3RyaW5nLmg+Ci0jaW5jbHVkZSA8ZXJybm8uaD4KLSNpbmNsdWRlIDxzZW1hbmFnZS9zZW1h bmFnZS5oPgotCi0jaW5jbHVkZSAiZnVuY3Rpb25zLmMiCi0KLWludCBtYWluIChpbnQgYXJnYywg Y2hhciAqKmFyZ3YpIHsKLSAgICBzZW1hbmFnZV9oYW5kbGVfdCAqc2g7Ci0gICAgCi0gICAgaWYg KGFyZ2MgPCAyKQotICAgICAgICBleGl0KDEpOwotICAgIAotICAgIHNoID0gZ2V0X2hhbmRsZShh cmd2WzFdKTsKLSAgICAKLSAgICBpZiAoYXJnYyA+PSAzICYmIHN0cmNtcChhcmd2WzJdLCAicmV2 ZXJzZWQiKSA9PSAwKSB7Ci0gICAgICAgIHRlc3RfY29tbWl0KHNoKTsKLSAgICAgICAgdGVzdF9i ZWdpbl90cmFuc2FjdGlvbihzaCk7Ci0gICAgfQotICAgIGVsc2UgaWYgKGFyZ2MgPj0gMyAmJiBz dHJjbXAoYXJndlsyXSwgInR3aWNlIikgPT0gMCkgewotICAgICAgICB0ZXN0X2JlZ2luX3RyYW5z YWN0aW9uKHNoKTsKLSAgICAgICAgdGVzdF9iZWdpbl90cmFuc2FjdGlvbihzaCk7Ci0gICAgICAg IHRlc3RfY29tbWl0KHNoKTsKLSAgICB9Ci0gICAgZWxzZSB7Ci0gICAgICAgIHRlc3RfYmVnaW5f dHJhbnNhY3Rpb24oc2gpOwotICAgICAgICB0ZXN0X2NvbW1pdChzaCk7Ci0gICAgfQotCi0gICAg ZGVzdHJveV9oYW5kbGUoc2gsIGFyZ3ZbMV0pOwotCi0gICAgZXhpdCgwKTsKLX0KCmRpZmYgLS1n aXQgYS9saWJzZW1hbmFnZS9zZW1hbmFnZS1zZXVzZXItZnVuY3Rpb25zL01ha2VmaWxlIGIvbGli c2VtYW5hZ2Uvc2VtYW5hZ2Utc2V1c2VyLWZ1bmN0aW9ucy9NYWtlZmlsZQpkZWxldGVkIGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggZDcyMDJmNC4uMDAwMDAwMAotLS0gYS9saWJzZW1hbmFnZS9zZW1h bmFnZS1zZXVzZXItZnVuY3Rpb25zL01ha2VmaWxlCisrKyAvZGV2L251bGwKQEAgLTEsNjMgKzAs MCBAQAotIyB+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fgotIwotIyAgIE1ha2VmaWxlIG9mIC9Db3JlT1MvbGlic2VtYW5h Z2UvU2FuaXR5L3NlbWFuYWdlLXNldXNlci1mdW5jdGlvbnMKLSMgICBEZXNjcmlwdGlvbjogVGVz dCBzZW1hbmFnZV9zZXVzZXJfKiBmdW5jdGlvbnMKLSMgICBBdXRob3I6IEphbiBaYXJza3kgPGp6 YXJza3lAcmVkaGF0LmNvbT4KLSMKLSMgfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KLSMKLSMgICBDb3B5cmlnaHQgKGMp IDIwMTcgUmVkIEhhdCwgSW5jLgotIwotIyAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJl OiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSMgICBtb2RpZnkgaXQgdW5kZXIgdGhl IHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcwotIyAgIHB1Ymxpc2hl ZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAyIG9mCi0j ICAgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0j Ci0jICAgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2ls bCBiZQotIyAgIHVzZWZ1bCwgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4g dGhlIGltcGxpZWQKLSMgICB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBG T1IgQSBQQVJUSUNVTEFSCi0jICAgUFVSUE9TRS4gIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGlj IExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSMKLSMgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2 ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotIyAgIGFsb25nIHdp dGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMv LgotIwotIyB+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fgotCi1leHBvcnQgVEVTVD0vQ29yZU9TL2xpYnNlbWFuYWdlL1Nh bml0eS9zZW1hbmFnZS1zZXVzZXItZnVuY3Rpb25zCi1leHBvcnQgVEVTVFZFUlNJT049MS4wCi0K LUJVSUxUX0ZJTEVTPQotCi1GSUxFUz0kKE1FVEFEQVRBKSBydW50ZXN0LnNoIE1ha2VmaWxlIFBV UlBPU0UgZnVuY3Rpb25zLmMgdGVzdF8qLmMKLQotLlBIT05ZOiBhbGwgaW5zdGFsbCBkb3dubG9h ZCBjbGVhbgotCi1ydW46ICQoRklMRVMpIGJ1aWxkCi0JLi9ydW50ZXN0LnNoCi0KLWJ1aWxkOiAk KEJVSUxUX0ZJTEVTKQotCXRlc3QgLXggcnVudGVzdC5zaCB8fCBjaG1vZCBhK3ggcnVudGVzdC5z aAotCi1jbGVhbjoKLQlybSAtZiAqfiAkKEJVSUxUX0ZJTEVTKQotCi0KLWluY2x1ZGUgL3Vzci9z aGFyZS9yaHRzL2xpYi9yaHRzLW1ha2UuaW5jbHVkZQotCi0kKE1FVEFEQVRBKTogTWFrZWZpbGUK LQlAZWNobyAiT3duZXI6ICAgICAgICAgICBKYW4gWmFyc2t5IDxqemFyc2t5QHJlZGhhdC5jb20+ IiA+ICQoTUVUQURBVEEpCi0JQGVjaG8gIk5hbWU6ICAgICAgICAgICAgJChURVNUKSIgPj4gJChN RVRBREFUQSkKLQlAZWNobyAiVGVzdFZlcnNpb246ICAgICAkKFRFU1RWRVJTSU9OKSIgPj4gJChN RVRBREFUQSkKLQlAZWNobyAiUGF0aDogICAgICAgICAgICAkKFRFU1RfRElSKSIgPj4gJChNRVRB REFUQSkKLQlAZWNobyAiRGVzY3JpcHRpb246ICAgICBUZXN0IHNlbWFuYWdlX3NldXNlcl8qIGZ1 bmN0aW9ucyIgPj4gJChNRVRBREFUQSkKLQlAZWNobyAiVHlwZTogICAgICAgICAgICBTYW5pdHki ID4+ICQoTUVUQURBVEEpCi0JQGVjaG8gIlRlc3RUaW1lOiAgICAgICAgNW0iID4+ICQoTUVUQURB VEEpCi0JQGVjaG8gIlJ1bkZvcjogICAgICAgICAgbGlic2VtYW5hZ2UiID4+ICQoTUVUQURBVEEp Ci0JQGVjaG8gIlJlcXVpcmVzOiAgICAgICAgbGlic2VtYW5hZ2UgbGlic2VtYW5hZ2UtZGV2ZWwg Z2xpYmMgZ2NjIiA+PiAkKE1FVEFEQVRBKQotCUBlY2hvICJQcmlvcml0eTogICAgICAgIE5vcm1h bCIgPj4gJChNRVRBREFUQSkKLQlAZWNobyAiTGljZW5zZTogICAgICAgICBHUEx2MisiID4+ICQo TUVUQURBVEEpCi0JQGVjaG8gIkNvbmZpZGVudGlhbDogICAgbm8iID4+ICQoTUVUQURBVEEpCi0J QGVjaG8gIkRlc3RydWN0aXZlOiAgICAgbm8iID4+ICQoTUVUQURBVEEpCi0JQGVjaG8gIlJlbGVh c2VzOiAgICAgICAgLVJIRUw0IC1SSEVMQ2xpZW50NSAtUkhFTFNlcnZlcjUiID4+ICQoTUVUQURB VEEpCi0KLQlyaHRzLWxpbnQgJChNRVRBREFUQSkKCmRpZmYgLS1naXQgYS9saWJzZW1hbmFnZS9z ZW1hbmFnZS1zZXVzZXItZnVuY3Rpb25zL1BVUlBPU0UgYi9saWJzZW1hbmFnZS9zZW1hbmFnZS1z ZXVzZXItZnVuY3Rpb25zL1BVUlBPU0UKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDZi NTIwMWEuLjAwMDAwMDAKLS0tIGEvbGlic2VtYW5hZ2Uvc2VtYW5hZ2Utc2V1c2VyLWZ1bmN0aW9u cy9QVVJQT1NFCisrKyAvZGV2L251bGwKQEAgLTEsMyArMCwwIEBACi1QVVJQT1NFIG9mIC9Db3Jl T1MvbGlic2VtYW5hZ2UvU2FuaXR5L3NlbWFuYWdlLXNldXNlci1mdW5jdGlvbnMKLURlc2NyaXB0 aW9uOiBUZXN0IHNlbWFuYWdlX3NldXNlcl8qIGZ1bmN0aW9ucwotQXV0aG9yOiBKYW4gWmFyc2t5 IDxqemFyc2t5QHJlZGhhdC5jb20+CgpkaWZmIC0tZ2l0IGEvbGlic2VtYW5hZ2Uvc2VtYW5hZ2Ut c2V1c2VyLWZ1bmN0aW9ucy9mdW5jdGlvbnMuYyBiL2xpYnNlbWFuYWdlL3NlbWFuYWdlLXNldXNl ci1mdW5jdGlvbnMvZnVuY3Rpb25zLmMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGVj ZGUxNWQuLjAwMDAwMDAKLS0tIGEvbGlic2VtYW5hZ2Uvc2VtYW5hZ2Utc2V1c2VyLWZ1bmN0aW9u cy9mdW5jdGlvbnMuYworKysgL2Rldi9udWxsCkBAIC0xLDI2MyArMCwwIEBACi0jaW5jbHVkZSA8 c3RkaW8uaD4KLSNpbmNsdWRlIDxzdGRsaWIuaD4KLSNpbmNsdWRlIDxzdHJpbmcuaD4KLSNpbmNs dWRlIDxlcnJuby5oPgotI2luY2x1ZGUgPHNlbWFuYWdlL3NlbWFuYWdlLmg+Ci0KLXZvaWQgY2hl Y2tfcmVzdWx0X2ludChjb25zdCBjaGFyICpleHBlY3RlZCwgaW50IHJlYWwpIHsKLSAgICBpbnQg ZXhwID0gc3RydG9sKGV4cGVjdGVkLCBOVUxMLCAxMCk7Ci0KLSAgICBpZiAoZXhwICE9IHJlYWwp IHsKLSAgICAgICAgZnByaW50ZihzdGRlcnIsICJFeHBlY3RlZCAlZCBidXQgZ290ICVkXG4iLCBl eHAsIHJlYWwpOwotICAgICAgICBleGl0KDEpOwotICAgIH0KLX0KLQotc2VtYW5hZ2VfaGFuZGxl X3QgKnRlc3RfaGFuZGxlX2NyZWF0ZSgpIHsKLSAgICBzZW1hbmFnZV9oYW5kbGVfdCAqc2ggPSBO VUxMOwotCi0gICAgc2ggPSBzZW1hbmFnZV9oYW5kbGVfY3JlYXRlKCk7Ci0gICAgcHJpbnRmKCJz ZW1hbmFnZV9oYW5kbGVfY3JlYXRlKCk6ICVwXG4iLCAodm9pZCAqKSBzaCk7Ci0KLSAgICBpZiAo c2ggPT0gTlVMTCkgewotICAgICAgICBwZXJyb3IoInNlbWFuYWdlX2hhbmRsZV9jcmVhdGUiKTsK LSAgICAgICAgZXhpdCgyKTsKLSAgICB9Ci0KLSAgICByZXR1cm4gc2g7Ci19Ci0KLWludCB0ZXN0 X2Nvbm5lY3Qoc2VtYW5hZ2VfaGFuZGxlX3QgKnNoKSB7Ci0gICAgaW50IHJlc3VsdCA9IHNlbWFu YWdlX2Nvbm5lY3Qoc2gpOwotICAgIHByaW50Zigic2VtYW5hZ2VfY29ubmVjdCglcCk6ICVkXG4i LCAodm9pZCAqKSBzaCwgcmVzdWx0KTsKLQotICAgIGlmIChyZXN1bHQgIT0gMCkgewotICAgICAg ICBwZXJyb3IoInNlbWFuYWdlX2Nvbm5lY3QiKTsKLSAgICAgICAgZXhpdCgyKTsKLSAgICB9Ci0K LSAgICByZXR1cm4gcmVzdWx0OwotfQotCi1pbnQgdGVzdF9kaXNjb25uZWN0KHNlbWFuYWdlX2hh bmRsZV90ICpzaCkgewotICAgIGludCByZXN1bHQgPSBzZW1hbmFnZV9kaXNjb25uZWN0KHNoKTsK LSAgICBwcmludGYoInNlbWFuYWdlX2Rpc2Nvbm5lY3QoJXApOiAlZFxuIiwgKHZvaWQgKikgc2gs IHJlc3VsdCk7Ci0KLSAgICBpZiAocmVzdWx0ICE9IDApIHsKLSAgICAgICAgcGVycm9yKCJzZW1h bmFnZV9kaXNjb25uZWN0Iik7Ci0gICAgICAgIGV4aXQoMik7Ci0gICAgfQotCi0gICAgcmV0dXJu IHJlc3VsdDsKLX0KLQotaW50IHRlc3RfYmVnaW5fdHJhbnNhY3Rpb24oc2VtYW5hZ2VfaGFuZGxl X3QgKnNoKSB7Ci0gICAgaW50IHJlc3VsdCA9IHNlbWFuYWdlX2JlZ2luX3RyYW5zYWN0aW9uKHNo KTsKLSAgICBwcmludGYoInNlbWFuYWdlX2JlZ2luX3RyYW5zYWN0aW9uKCVwKTogJWRcbiIsICh2 b2lkICopIHNoLCByZXN1bHQpOwotCi0gICAgaWYgKHJlc3VsdCAhPSAwKSB7Ci0gICAgICAgIHBl cnJvcigic2VtYW5hZ2VfYmVnaW5fdHJhbnNhY3Rpb24iKTsKLSAgICAgICAgZXhpdCgyKTsKLSAg ICB9Ci0KLSAgICByZXR1cm4gcmVzdWx0OwotfQotCi1pbnQgdGVzdF9jb21taXQoc2VtYW5hZ2Vf aGFuZGxlX3QgKnNoKSB7Ci0gICAgaW50IHJlc3VsdCA9IHNlbWFuYWdlX2NvbW1pdChzaCk7Ci0g ICAgcHJpbnRmKCJzZW1hbmFnZV9jb21taXQoJXApOiAlZFxuIiwgKHZvaWQgKikgc2gsIHJlc3Vs dCk7Ci0KLSAgICBpZiAocmVzdWx0ICE9IDApIHsKLSAgICAgICAgcGVycm9yKCJzZW1hbmFnZV9j b21taXQiKTsKLSAgICAgICAgZXhpdCgyKTsKLSAgICB9Ci0KLSAgICByZXR1cm4gcmVzdWx0Owot fQotCi1zZW1hbmFnZV9zZXVzZXJfa2V5X3QgKnRlc3RfZ2V0X2tleShzZW1hbmFnZV9oYW5kbGVf dCAqc2gsIGNvbnN0IGNoYXIgKm5hbWUpIHsKLSAgICBzZW1hbmFnZV9zZXVzZXJfa2V5X3QgKmtl eTsKLSAgICBpbnQgcmVzdWx0ID0gc2VtYW5hZ2Vfc2V1c2VyX2tleV9jcmVhdGUoc2gsIG5hbWUs ICZrZXkpOwotICAgIHByaW50Zigic2VtYW5hZ2Vfc2V1c2VyX2tleV9jcmVhdGUoJXAsICVzLCAl cCk6ICVkXG4iLAotICAgICAgICAgICAodm9pZCAqKSBzaCwgbmFtZSwgKHZvaWQgKikgJmtleSwg cmVzdWx0KTsKLQotICAgIGlmIChrZXkgPT0gTlVMTCB8fCByZXN1bHQgPCAwKSB7Ci0gICAgICAg IHBlcnJvcigic2VtYW5hZ2Vfc2V1c2VyX2tleV9jcmVhdGUiKTsKLSAgICAgICAgZXhpdCgyKTsK LSAgICB9Ci0KLSAgICByZXR1cm4ga2V5OwotfQotCi1zZW1hbmFnZV9zZXVzZXJfdCAqdGVzdF9n ZXRfc2V1c2VyX250aChzZW1hbmFnZV9oYW5kbGVfdCAqc2gsIHVuc2lnbmVkIGludCBpbmRleCkg ewotICAgIGludCByZXN1bHQ7Ci0gICAgc2VtYW5hZ2Vfc2V1c2VyX3QgKipyZWNvcmRzOwotICAg IHVuc2lnbmVkIGludCBjb3VudDsKLQotICAgIHJlc3VsdCA9IHNlbWFuYWdlX3NldXNlcl9saXN0 KHNoLCAmcmVjb3JkcywgJmNvdW50KTsKLSAgICBwcmludGYoInNlbWFuYWdlX3NldXNlcl9saXN0 KCVwLCAlcCwgJXApOiAlZFxuIiwKLSAgICAgICAgICAgKHZvaWQgKikgc2gsICh2b2lkICopICZy ZWNvcmRzLCAodm9pZCAqKSAmY291bnQsIHJlc3VsdCk7Ci0gICAgCi0gICAgaWYgKHJlc3VsdCA8 IDApIHsKLSAgICAgICAgcGVycm9yKCJzZW1hbmFnZV9zZXVzZXJfbGlzdCIpOwotICAgICAgICBl eGl0KDIpOwotICAgIH0KLQotICAgIGlmIChjb3VudCA8IGluZGV4ICsgMSkKLSAgICAgICAgZXhp dCgyKTsKLQotICAgIHJldHVybiByZWNvcmRzW2luZGV4XTsKLX0KLQotc2VtYW5hZ2Vfc2V1c2Vy X3QgKnRlc3RfZ2V0X3NldXNlcl9uZXcoc2VtYW5hZ2VfaGFuZGxlX3QgKnNoKSB7Ci0gICAgaW50 IHJlc3VsdDsKLSAgICBzZW1hbmFnZV9zZXVzZXJfdCAqc2V1c2VyOwotCi0gICAgcmVzdWx0ID0g c2VtYW5hZ2Vfc2V1c2VyX2NyZWF0ZShzaCwgJnNldXNlcik7Ci0gICAgcHJpbnRmKCJzZW1hbmFn ZV9zZXVzZXJfY3JlYXRlKCVwLCAlcCk6ICVkXG4iLAotICAgICAgICAgICAodm9pZCAqKSBzaCwg KHZvaWQgKikgc2V1c2VyLCByZXN1bHQpOwotICAgIAotICAgIGlmIChyZXN1bHQgPCAwKSB7Ci0g ICAgICAgIHBlcnJvcigic2VtYW5hZ2Vfc2V1c2VyX2NyZWF0ZSIpOwotICAgICAgICBleGl0KDIp OwotICAgIH0KLQotICAgIHJldHVybiBzZXVzZXI7Ci19Ci0KLXNlbWFuYWdlX3NldXNlcl90ICp0 ZXN0X2dldF9zZXVzZXIoc2VtYW5hZ2VfaGFuZGxlX3QgKnNoLCBjb25zdCBjaGFyICpwYXJhbSkg ewotICAgIGlmIChzdHJjbXAocGFyYW0sICJuZXciKSA9PSAwKQotICAgICAgICByZXR1cm4gdGVz dF9nZXRfc2V1c2VyX25ldyhzaCk7Ci0gICAgCi0gICAgaWYgKHN0cmNtcChwYXJhbSwgImZpcnN0 IikgPT0gMCkKLSAgICAgICAgcmV0dXJuIHRlc3RfZ2V0X3NldXNlcl9udGgoc2gsIDApOwotCi0g ICAgaWYgKHN0cmNtcChwYXJhbSwgInNlY29uZCIpID09IDApCi0gICAgICAgIHJldHVybiB0ZXN0 X2dldF9zZXVzZXJfbnRoKHNoLCAxKTsKLQotICAgIGZwcmludGYoc3RkZXJyLCAiVW5rbm93biBz ZXVzZXIgXCIlc1wiIHNwZWNpZmllZFxuIiwgcGFyYW0pOwotICAgIGV4aXQoMik7Ci19Ci0KLXZv aWQgdGVzdF9hZGRfbG9jYWxfc2V1c2VyKHNlbWFuYWdlX2hhbmRsZV90ICpzaCwgc2VtYW5hZ2Vf c2V1c2VyX3QgKnNldXNlcikgewotICAgIGludCByZXN1bHQ7Ci0gICAgc2VtYW5hZ2Vfc2V1c2Vy X2tleV90ICprZXk7Ci0KLSAgICByZXN1bHQgPSBzZW1hbmFnZV9zZXVzZXJfa2V5X2V4dHJhY3Qo c2gsIHNldXNlciwgJmtleSk7Ci0gICAgcHJpbnRmKCJzZW1hbmFnZV9zZXVzZXJfa2V5X2V4dHJh Y3QoJXAsICVwLCAlcCk6ICVkXG4iLAotICAgICAgICAgICAodm9pZCAqKSBzaCwgKHZvaWQgKikg c2V1c2VyLCAodm9pZCAqKSAma2V5LCByZXN1bHQpOwotCi0gICAgaWYgKHJlc3VsdCA8IDApIHsK LSAgICAgICAgcGVycm9yKCJzZW1hbmFnZV9zZXVzZXJfa2V5X2V4dHJhY3QiKTsKLSAgICAgICAg ZXhpdCgyKTsKLSAgICB9Ci0KLSAgICByZXN1bHQgPSBzZW1hbmFnZV9zZXVzZXJfbW9kaWZ5X2xv Y2FsKHNoLCBrZXksIHNldXNlcik7Ci0gICAgcHJpbnRmKCJzZW1hbmFnZV9zZXVzZXJfbW9kaWZ5 X2xvY2FsKCVwLCAlcCwgJXApOiAlZFxuIiwKLSAgICAgICAgICAgKHZvaWQgKikgc2V1c2VyLCAo dm9pZCAqKSBrZXksICh2b2lkICopIHNldXNlciwgcmVzdWx0KTsKLQotICAgIGlmIChyZXN1bHQg PCAwKSB7Ci0gICAgICAgIHBlcnJvcigic2VtYW5hZ2Vfc2V1c2VyX21vZGlmeV9sb2NhbCIpOwot ICAgICAgICBleGl0KDIpOwotICAgIH0KLX0KLQotdm9pZCB0ZXN0X2RlbF9sb2NhbF9zZXVzZXIo c2VtYW5hZ2VfaGFuZGxlX3QgKnNoLCBzZW1hbmFnZV9zZXVzZXJfdCAqc2V1c2VyKSB7Ci0gICAg aW50IHJlc3VsdDsKLSAgICBzZW1hbmFnZV9zZXVzZXJfa2V5X3QgKmtleTsKLQotICAgIHJlc3Vs dCA9IHNlbWFuYWdlX3NldXNlcl9rZXlfZXh0cmFjdChzaCwgc2V1c2VyLCAma2V5KTsKLSAgICBw cmludGYoInNlbWFuYWdlX3NldXNlcl9rZXlfZXh0cmFjdCglcCwgJXAsICVwKTogJWRcbiIsCi0g ICAgICAgICAgICh2b2lkICopIHNoLCAodm9pZCAqKSBzZXVzZXIsICh2b2lkICopICZrZXksIHJl c3VsdCk7Ci0KLSAgICBpZiAocmVzdWx0IDwgMCkgewotICAgICAgICBwZXJyb3IoInNlbWFuYWdl X3NldXNlcl9rZXlfZXh0cmFjdCIpOwotICAgICAgICBleGl0KDIpOwotICAgIH0KLQotICAgIHJl c3VsdCA9IHNlbWFuYWdlX3NldXNlcl9kZWxfbG9jYWwoc2gsIGtleSk7Ci0gICAgcHJpbnRmKCJz ZW1hbmFnZV9zZXVzZXJfZGVsX2xvY2FsKCVwLCAlcCk6ICVkXG4iLAotICAgICAgICAgICAodm9p ZCAqKSBzZXVzZXIsICh2b2lkICopIGtleSwgcmVzdWx0KTsKLQotICAgIGlmIChyZXN1bHQgPCAw KSB7Ci0gICAgICAgIHBlcnJvcigic2VtYW5hZ2Vfc2V1c2VyX2RlbF9sb2NhbCIpOwotICAgICAg ICBleGl0KDIpOwotICAgIH0KLX0KLQotI2RlZmluZSBTVEFURV9JTklUICAgICAgMQotI2RlZmlu ZSBTVEFURV9IQU5ETEUgICAgMgotI2RlZmluZSBTVEFURV9DT05OICAgICAgMwotI2RlZmluZSBT VEFURV9UUkFOUyAgICAgNAotCi1pbnQgZ2V0X3N0YXRlKGNvbnN0IGNoYXIgKnN0YXRlX3N0cikg ewotICAgIGlmIChzdHJjbXAoc3RhdGVfc3RyLCAiaW5pdCIpID09IDApCi0gICAgICAgIHJldHVy biBTVEFURV9JTklUOwotICAgIGlmIChzdHJjbXAoc3RhdGVfc3RyLCAiaGFuZGxlIikgPT0gMCkK LSAgICAgICAgcmV0dXJuIFNUQVRFX0hBTkRMRTsKLSAgICBpZiAoc3RyY21wKHN0YXRlX3N0ciwg ImNvbm4iKSA9PSAwKQotICAgICAgICByZXR1cm4gU1RBVEVfQ09OTjsKLSAgICBpZiAoc3RyY21w KHN0YXRlX3N0ciwgInRyYW5zIikgPT0gMCkKLSAgICAgICAgcmV0dXJuIFNUQVRFX1RSQU5TOwot Ci0gICAgcmV0dXJuIDA7Ci19Ci0KLXNlbWFuYWdlX2hhbmRsZV90ICogZ2V0X2hhbmRsZShjb25z dCBjaGFyICpzdGF0ZV9zdHIpIHsKLSAgICBpbnQgc3RhdGU7Ci0gICAgc2VtYW5hZ2VfaGFuZGxl X3QgKnNoID0gTlVMTDsKLQotICAgIHN0YXRlID0gZ2V0X3N0YXRlKHN0YXRlX3N0cik7Ci0KLSAg ICBpZiAoc3RhdGUgPj0gU1RBVEVfSU5JVCkKLSAgICAgICAgc2ggPSBOVUxMOwotCi0gICAgaWYg KHN0YXRlID49IFNUQVRFX0hBTkRMRSkKLSAgICAgICAgc2ggPSB0ZXN0X2hhbmRsZV9jcmVhdGUo KTsKLQotICAgIGlmIChzdGF0ZSA+PSBTVEFURV9DT05OKQotICAgICAgICB0ZXN0X2Nvbm5lY3Qo c2gpOwotCi0gICAgaWYgKHN0YXRlID49IFNUQVRFX1RSQU5TKQotICAgICAgICB0ZXN0X2JlZ2lu X3RyYW5zYWN0aW9uKHNoKTsKLQotICAgIHJldHVybiBzaDsKLX0KLQotdm9pZCBkZXN0cm95X2hh bmRsZShzZW1hbmFnZV9oYW5kbGVfdCAqc2gsIGNvbnN0IGNoYXIgKnN0YXRlX3N0cikgewotICAg IGludCBzdGF0ZTsKLQotICAgIHN0YXRlID0gZ2V0X3N0YXRlKHN0YXRlX3N0cik7Ci0KLSAgICBp ZiAoc3RhdGUgPj0gU1RBVEVfVFJBTlMpCi0gICAgICAgIHRlc3RfY29tbWl0KHNoKTsKLQotICAg IGlmIChzdGF0ZSA+PSBTVEFURV9DT05OKQotICAgICAgICB0ZXN0X2Rpc2Nvbm5lY3Qoc2gpOwot Ci0gICAgaWYgKHN0YXRlID49IFNUQVRFX0hBTkRMRSkgewotICAgICAgICBzZW1hbmFnZV9oYW5k bGVfZGVzdHJveShzaCk7Ci0gICAgICAgIHByaW50Zigic2VtYW5hZ2VfaGFuZGxlX2Rlc3Ryb3ko JXApXG4iLCAodm9pZCAqKSBzaCk7Ci0gICAgfQotfQotCi1pbnQgc3RyY21wX251bGwoY29uc3Qg Y2hhciAqc3RyMSwgY29uc3QgY2hhciAqc3RyMikgewotICAgIGlmIChzdHIxID09IE5VTEwgJiYg c3RyMiA9PSBOVUxMKQotICAgICAgICByZXR1cm4gMDsKLQotICAgIGlmIChzdHIxID09IE5VTEwp IHsKLSAgICAgICAgaWYgKHN0cmNtcChzdHIyLCAiTlVMTCIpID09IDApCi0gICAgICAgICAgICBy ZXR1cm4gMDsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgcmV0dXJuIC0xOwotICAgIH0KLQot ICAgIGlmIChzdHIyID09IE5VTEwpIHsKLSAgICAgICAgaWYgKHN0cmNtcChzdHIxLCAiTlVMTCIp ID09IDApCi0gICAgICAgICAgICByZXR1cm4gMDsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAg cmV0dXJuIDE7Ci0gICAgfQotCi0gICAgcmV0dXJuIHN0cmNtcChzdHIxLCBzdHIyKTsKLX0KCmRp ZmYgLS1naXQgYS9saWJzZW1hbmFnZS9zZW1hbmFnZS1zZXVzZXItZnVuY3Rpb25zL21haW4uZm1m IGIvbGlic2VtYW5hZ2Uvc2VtYW5hZ2Utc2V1c2VyLWZ1bmN0aW9ucy9tYWluLmZtZgpkZWxldGVk IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjhiOTYzYy4uMDAwMDAwMAotLS0gYS9saWJzZW1hbmFn ZS9zZW1hbmFnZS1zZXVzZXItZnVuY3Rpb25zL21haW4uZm1mCisrKyAvZGV2L251bGwKQEAgLTEg KzAsMCBAQAotdGFnczogW1RpZXIxXQoKZGlmZiAtLWdpdCBhL2xpYnNlbWFuYWdlL3NlbWFuYWdl LXNldXNlci1mdW5jdGlvbnMvcnVudGVzdC5zaCBiL2xpYnNlbWFuYWdlL3NlbWFuYWdlLXNldXNl ci1mdW5jdGlvbnMvcnVudGVzdC5zaApkZWxldGVkIGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggYTFi Y2JiNy4uMDAwMDAwMAotLS0gYS9saWJzZW1hbmFnZS9zZW1hbmFnZS1zZXVzZXItZnVuY3Rpb25z L3J1bnRlc3Quc2gKKysrIC9kZXYvbnVsbApAQCAtMSwyNTUgKzAsMCBAQAotIyEvYmluL2Jhc2gK LSMgdmltOiBkaWN0Kz0vdXNyL3NoYXJlL2JlYWtlcmxpYi9kaWN0aW9uYXJ5LnZpbSBjcHQ9Lix3 LGIsdSx0LGksawotIyB+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgotIwotIyAgIHJ1bnRlc3Quc2ggb2YgL0NvcmVPUy9s aWJzZW1hbmFnZS9TYW5pdHkvc2VtYW5hZ2Utc2V1c2VyLWZ1bmN0aW9ucwotIyAgIERlc2NyaXB0 aW9uOiBUZXN0IHNlbWFuYWdlX3NldXNlcl8qIGZ1bmN0aW9ucwotIyAgIEF1dGhvcjogSmFuIFph cnNreSA8anphcnNreUByZWRoYXQuY29tPgotIwotIyB+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgotIwotIyAgIENvcHly aWdodCAoYykgMjAxNyBSZWQgSGF0LCBJbmMuCi0jCi0jICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUg c29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotIyAgIG1vZGlmeSBpdCB1 bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzCi0jICAg cHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9u IDIgb2YKLSMgICB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVy c2lvbi4KLSMKLSMgICBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhh dCBpdCB3aWxsIGJlCi0jICAgdXNlZnVsLCBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhv dXQgZXZlbiB0aGUgaW1wbGllZAotIyAgIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBG SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSMgICBQVVJQT1NFLiAgU2VlIHRoZSBHTlUgR2VuZXJh bCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotIwotIyAgIFlvdSBzaG91bGQgaGF2 ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0jICAg YWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uIElmIG5vdCwgc2VlIGh0dHA6Ly93d3cuZ251Lm9yZy9s aWNlbnNlcy8uCi0jCi0jIH5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+Ci0KLSMgSW5jbHVkZSBCZWFrZXIgZW52aXJvbm1l bnQKLS4gL3Vzci9iaW4vcmh0cy1lbnZpcm9ubWVudC5zaCB8fCBleGl0IDEKLS4gL3Vzci9zaGFy ZS9iZWFrZXJsaWIvYmVha2VybGliLnNoIHx8IGV4aXQgMQotCi1QQUNLQUdFPSJsaWJzZW1hbmFn ZSIKLQotcmxKb3VybmFsU3RhcnQKLSAgICBybFBoYXNlU3RhcnRTZXR1cAotICAgICAgICBybEFz c2VydFJwbSAke1BBQ0tBR0V9Ci0gICAgICAgIHJsQXNzZXJ0UnBtICR7UEFDS0FHRX0tZGV2ZWwK LSAgICAgICAgcmxBc3NlcnRScG0gImdsaWJjIgotICAgICAgICBybEFzc2VydFJwbSAiZ2NjIgot Ci0gICAgICAgIGZvciBmIGluIHRlc3RfKi5jIDsgZG8gCi0gICAgICAgICAgICBvdXQ9JChlY2hv IC1uICRmIHwgY3V0IC1kJy4nIC1mMSkKLSAgICAgICAgICAgIHJsUnVuICJnY2MgJGYgLW8gJG91 dCAtbHNlbWFuYWdlIC1XYWxsIC1XZXh0cmEgLVdlcnJvciAtc3RkPWM5OSIKLSAgICAgICAgZG9u ZQotCi0gICAgICAgIFBPTElDWV9UWVBFPSIkKGdyZXAgLUUgJ15TRUxJTlVYVFlQRT0nIC9ldGMv c2VsaW51eC9jb25maWcgfCBjdXQgLWQnPScgLWYyIHwgdHIgJ1s6dXBwZXI6XScgJ1s6bG93ZXI6 XScgfCB0ciAtZCAnICcpIgotCi0gICAgICAgIGlmIHJsSXNGZWRvcmE7IHRoZW4KLSAgICAgICAg ICAgIFNFVVNFUlNfUEFUSD0iL3Zhci9saWIvc2VsaW51eC8kUE9MSUNZX1RZUEUvYWN0aXZlL3Nl dXNlcnMiCi0gICAgICAgIGVsaWYgcmxJc1JIRUwgJz49Nyc7IHRoZW4KLSAgICAgICAgICAgIFNF VVNFUlNfUEFUSD0iL2V0Yy9zZWxpbnV4LyRQT0xJQ1lfVFlQRS9hY3RpdmUvc2V1c2VycyIKLSAg ICAgICAgZWxzZQotICAgICAgICAgICAgU0VVU0VSU19QQVRIPSIvZXRjL3NlbGludXgvJFBPTElD WV9UWVBFL3NldXNlcnMiCi0gICAgICAgIGZpCi0KLSAgICAgICAgcmxSdW4gImNhdCAkU0VVU0VS U19QQVRIIgotCi0gICAgICAgIFNFVVNFUlNfQ09VTlQ9IiQoY2F0ICRTRVVTRVJTX1BBVEggfCBn cmVwIC12RSAnXiN8XiQnIHwgd2MgLWwpIgotICAgICAgICBybFJ1biAiW1sgXCIkU0VVU0VSU19D T1VOVFwiIC1ndCAwIF1dIgotCi0gICAgICAgIFNFVVNFUlM9IiQoY2F0ICRTRVVTRVJTX1BBVEgg fCBncmVwIC12RSAnXiN8XiQnIHwgY3V0IC1kJzonIC1mMSB8IHRyICdcbicgJyAnKSIKLSAgICAg ICAgcmxSdW4gIltbIC1uIFwiJFNFVVNFUlNcIiBdXSIKLQotICAgICAgICBmaXJzdF9saW5lPSIk KGNhdCAkU0VVU0VSU19QQVRIIHwgZ3JlcCAtdkUgJ14jfF4kJyB8IGhlYWQgLW4gMSkiCi0gICAg ICAgIFNFVVNFUj0iJChlY2hvIC1uICRmaXJzdF9saW5lIHwgY3V0IC1kJzonIC1mMSkiCi0gICAg ICAgIHJsUnVuICJbWyAtbiBcIiRTRVVTRVJcIiBdXSIKLSAgICAgICAgU0VVU0VSX1NFTkFNRT0i JChlY2hvIC1uICRmaXJzdF9saW5lIHwgY3V0IC1kJzonIC1mMikiCi0gICAgICAgIHJsUnVuICJb WyAtbiBcIiRTRVVTRVJfU0VOQU1FXCIgXV0iCi0gICAgICAgIFNFVVNFUl9NTFNSQU5HRT0iJChl Y2hvIC1uICRmaXJzdF9saW5lIHwgY3V0IC1kJzonIC1mMy00KSIKLSAgICAgICAgcmxSdW4gIltb IC1uIFwiJFNFVVNFUl9NTFNSQU5HRVwiIF1dIgotCi0gICAgICAgIFNFVVNFUl9OT05FWElTVEVO VD0ibm9udXNlciIKLSAgICAgICAgU0VVU0VSX0RFRkFVTFQ9Il9fZGVmYXVsdF9fIgotCi0gICAg ICAgIEVSUl9GQUlMPTEKLSAgICAgICAgRVJSX0FCT1JUPTEzNAotICAgICAgICBFUlJfU0VHRkFV TFQ9MTM5Ci0KLSAgICAgICAgIyBub3RlOiBlYWNoIHRlc3RfKi5jIHByb2dyYW0gdGFrZXMgZmly c3QgYXJndW1lbnQgd2hpY2ggc3BlY2lmaWVzIHNldHVwCi0gICAgICAgICMgICAgICAgYmVmb3Jl IGV4ZWN1dGluZyBzcGVjaWZpZWQgZnVuY3Rpb24KLSAgICAgICAgIyAgICAgICBpbml0ICAgICAg c2VtYW5hZ2UgaGFuZGxlID09IE5VTEwKLSAgICAgICAgIyAgICAgICBoYW5kbGUgICAgc2VtYW5h Z2UgaGFuZGxlIG9idGFpbmVkIHZpYSBzZW1hbmFnZV9oYW5kbGVfY3JlYXRlCi0gICAgICAgICMg ICAgICAgY29ubiAgICAgIGNvbm5lY3RlZCB2aWEgc2VtYW5hZ2VfY29ubmVjdAotICAgICAgICAj ICAgICAgIHRyYW5zICAgICBpbnNpZGUgdHJhbnNhY3Rpb24sIHZpYSBzZW1hbmFnZV9iZWdpbl90 cmFuc2FjdGlvbgotICAgICAgICAjIHByb2dyYW0gcmV0dXJucyAxIG9uIGVycm9yIGluIGZ1bmN0 aW9uLCAyIG9uIGVycm9yIGluIHNldHVwCi0gICAgcmxQaGFzZUVuZAotCi0gICAgcmxQaGFzZVN0 YXJ0VGVzdCAic2VtYW5hZ2Vfc2V1c2VyX2tleV9jcmVhdGUsIHNlbWFuYWdlX3NldXNlcl9rZXlf ZnJlZSIKLSAgICAgICAgIyBGSVhNRQotICAgICAgICAjIHJsUnVuICIuL3Rlc3Rfa2V5X2NyZWF0 ZSBpbml0ICAgJFNFVVNFUiIgJEVSUl9BQk9SVCwkRVJSX1NFR0ZBVUxUCi0gICAgICAgICMgcmxS dW4gIi4vdGVzdF9rZXlfY3JlYXRlIGhhbmRsZSAkU0VVU0VSIiAkRVJSX0ZBSUwKLSAgICAgICAg cmxSdW4gIi4vdGVzdF9rZXlfY3JlYXRlIGNvbm4gICAkU0VVU0VSIgotICAgICAgICBybFJ1biAi Li90ZXN0X2tleV9jcmVhdGUgdHJhbnMgICRTRVVTRVIiCi0gICAgcmxQaGFzZUVuZAotCi0gICAg cmxQaGFzZVN0YXJ0VGVzdCAic2VtYW5hZ2Vfc2V1c2VyX2tleV9leHRyYWN0IgotICAgICAgICAj IEZJWE1FCi0gICAgICAgICNybFJ1biAiLi90ZXN0X2tleV9leHRyYWN0IGNvbm4gIG5ldyIKLSAg ICAgICAgcmxSdW4gIi4vdGVzdF9rZXlfZXh0cmFjdCBjb25uICBmaXJzdCIKLSAgICAgICAgIyBG SVhNRQotICAgICAgICAjcmxSdW4gIi4vdGVzdF9rZXlfZXh0cmFjdCB0cmFucyBuZXciCi0gICAg ICAgIHJsUnVuICIuL3Rlc3Rfa2V5X2V4dHJhY3QgdHJhbnMgZmlyc3QiCi0gICAgcmxQaGFzZUVu ZAotCi0gICAgcmxQaGFzZVN0YXJ0VGVzdCAic2VtYW5hZ2Vfc2V1c2VyX2NvbXBhcmUiCi0gICAg ICAgIHJsUnVuICIuL3Rlc3RfY29tcGFyZSBjb25uICAkU0VVU0VSICAgICAgICAgICAgIHNhbWUi Ci0gICAgICAgIHJsUnVuICIuL3Rlc3RfY29tcGFyZSBjb25uICAkU0VVU0VSX05PTkVYSVNURU5U IGRpZmZlcmVudCIKLSAgICAgICAgcmxSdW4gIi4vdGVzdF9jb21wYXJlIHRyYW5zICRTRVVTRVIg ICAgICAgICAgICAgc2FtZSIKLSAgICAgICAgcmxSdW4gIi4vdGVzdF9jb21wYXJlIHRyYW5zICRT RVVTRVJfTk9ORVhJU1RFTlQgZGlmZmVyZW50IgotICAgIHJsUGhhc2VFbmQKLQotICAgIHJsUGhh c2VTdGFydFRlc3QgInNlbWFuYWdlX3NldXNlcl9jb21wYXJlMiIKLSAgICAgICAgcmxSdW4gIi4v dGVzdF9jb21wYXJlMiBjb25uICBOVUxMIDAiICAgICRFUlJfQUJPUlQsJEVSUl9TRUdGQVVMVAot ICAgICAgICBybFJ1biAiLi90ZXN0X2NvbXBhcmUyIGNvbm4gIDAgICAgTlVMTCIgJEVSUl9BQk9S VCwkRVJSX1NFR0ZBVUxUCi0gICAgICAgIHJsUnVuICIuL3Rlc3RfY29tcGFyZTIgY29ubiAgTlVM TCBOVUxMIiAkRVJSX0FCT1JULCRFUlJfU0VHRkFVTFQKLSAgICAgICAgcmxSdW4gIi4vdGVzdF9j b21wYXJlMiBjb25uICAwICAgIDAiCi0gICAgICAgIHJsUnVuICIuL3Rlc3RfY29tcGFyZTIgY29u biAgMCAgICAxIgotICAgICAgICBybFJ1biAiLi90ZXN0X2NvbXBhcmUyIHRyYW5zIE5VTEwgMCIg ICAgJEVSUl9BQk9SVCwkRVJSX1NFR0ZBVUxUCi0gICAgICAgIHJsUnVuICIuL3Rlc3RfY29tcGFy ZTIgdHJhbnMgMCAgICBOVUxMIiAkRVJSX0FCT1JULCRFUlJfU0VHRkFVTFQKLSAgICAgICAgcmxS dW4gIi4vdGVzdF9jb21wYXJlMiB0cmFucyBOVUxMIE5VTEwiICRFUlJfQUJPUlQsJEVSUl9TRUdG QVVMVAotICAgICAgICBybFJ1biAiLi90ZXN0X2NvbXBhcmUyIHRyYW5zIDAgICAgMCIKLSAgICAg ICAgcmxSdW4gIi4vdGVzdF9jb21wYXJlMiB0cmFucyAwICAgIDEiCi0gICAgcmxQaGFzZUVuZAot Ci0gICAgcmxQaGFzZVN0YXJ0VGVzdCAic2VtYW5hZ2Vfc2V1c2VyX2NvdW50IgotICAgICAgICBy bFJ1biAiLi90ZXN0X2NvdW50IGluaXQiICAgJEVSUl9BQk9SVCwkRVJSX1NFR0ZBVUxUCi0gICAg ICAgIHJsUnVuICIuL3Rlc3RfY291bnQgaGFuZGxlIiAkRVJSX0ZBSUwKLSAgICAgICAgcmxSdW4g Ii4vdGVzdF9jb3VudCBjb25uICAkU0VVU0VSU19DT1VOVCIKLSAgICAgICAgcmxSdW4gIi4vdGVz dF9jb3VudCB0cmFucyAkU0VVU0VSU19DT1VOVCIKLSAgICBybFBoYXNlRW5kCi0KLSAgICBybFBo YXNlU3RhcnRUZXN0ICJzZW1hbmFnZV9zZXVzZXJfbGlzdCIKLSAgICAgICAgcmxSdW4gIi4vdGVz dF9saXN0IGluaXQiICAgJEVSUl9BQk9SVCwkRVJSX1NFR0ZBVUxUCi0gICAgICAgIHJsUnVuICIu L3Rlc3RfbGlzdCBoYW5kbGUiICRFUlJfRkFJTAotICAgICAgICBybFJ1biAiLi90ZXN0X2xpc3Qg Y29ubiAgJFNFVVNFUlNfQ09VTlQgJFNFVVNFUlMiCi0gICAgICAgIHJsUnVuICIuL3Rlc3RfbGlz dCB0cmFucyAkU0VVU0VSU19DT1VOVCAkU0VVU0VSUyIKLSAgICBybFBoYXNlRW5kCi0KLSAgICBy bFBoYXNlU3RhcnRUZXN0ICJzZW1hbmFnZV9zZXVzZXJfaXRlcmF0ZSIKLSAgICAgICAgcmxSdW4g Ii4vdGVzdF9pdGVyYXRlIGluaXQiICAgJEVSUl9BQk9SVCwkRVJSX1NFR0ZBVUxUCi0gICAgICAg IHJsUnVuICIuL3Rlc3RfaXRlcmF0ZSBoYW5kbGUiICRFUlJfRkFJTAotICAgICAgICBybFJ1biAi Li90ZXN0X2l0ZXJhdGUgY29ubiAgJFNFVVNFUlMiCi0gICAgICAgIHJsUnVuICIuL3Rlc3RfaXRl cmF0ZSB0cmFucyAkU0VVU0VSUyIKLSAgICBybFBoYXNlRW5kCi0KLSAgICBybFBoYXNlU3RhcnRU ZXN0ICJzZW1hbmFnZV9zZXVzZXJfZXhpc3RzIgotICAgICAgICBybFJ1biAiLi90ZXN0X2V4aXN0 cyBjb25uICAkU0VVU0VSX05PTkVYSVNURU5UIDAiCi0gICAgICAgIHJsUnVuICIuL3Rlc3RfZXhp c3RzIGNvbm4gICRTRVVTRVJfREVGQVVMVCAgICAgMSIKLSAgICAgICAgcmxSdW4gIi4vdGVzdF9l eGlzdHMgY29ubiAgJFVTRVIgICAgICAgICAgICAgICAxIgotICAgICAgICBybFJ1biAiLi90ZXN0 X2V4aXN0cyB0cmFucyAkU0VVU0VSX05PTkVYSVNURU5UIDAiCi0gICAgICAgIHJsUnVuICIuL3Rl c3RfZXhpc3RzIHRyYW5zICRTRVVTRVJfREVGQVVMVCAgICAgMSIKLSAgICAgICAgcmxSdW4gIi4v dGVzdF9leGlzdHMgdHJhbnMgJFNFVVNFUiAgICAgICAgICAgICAxIgotICAgIHJsUGhhc2VFbmQK LQotICAgIHJsUGhhc2VTdGFydFRlc3QgInNlbWFuYWdlX3NldXNlcl9xdWVyeSIKLSAgICAgICAg cmxSdW4gIi4vdGVzdF9xdWVyeSBjb25uICAkU0VVU0VSX05PTkVYSVNURU5UIiAkRVJSX0ZBSUwK LSAgICAgICAgcmxSdW4gIi4vdGVzdF9xdWVyeSBjb25uICAkU0VVU0VSX0RFRkFVTFQiCi0gICAg ICAgIHJsUnVuICIuL3Rlc3RfcXVlcnkgY29ubiAgJFNFVVNFUiIKLSAgICAgICAgcmxSdW4gIi4v dGVzdF9xdWVyeSB0cmFucyAkU0VVU0VSX05PTkVYSVNURU5UIiAkRVJSX0ZBSUwKLSAgICAgICAg cmxSdW4gIi4vdGVzdF9xdWVyeSB0cmFucyAkU0VVU0VSX0RFRkFVTFQiCi0gICAgICAgIHJsUnVu ICIuL3Rlc3RfcXVlcnkgdHJhbnMgJFNFVVNFUiIKLSAgICBybFBoYXNlRW5kCi0KLSAgICBybFBo YXNlU3RhcnRUZXN0ICJzZW1hbmFnZV9zZXVzZXJfZ2V0X25hbWUiCi0gICAgICAgIHJsUnVuICIu L3Rlc3RfZ2V0X25hbWUgY29ubiAgbmV3ICAgTlVMTCIKLSAgICAgICAgcmxSdW4gIi4vdGVzdF9n ZXRfbmFtZSBjb25uICBmaXJzdCAkU0VVU0VSIgotICAgICAgICBybFJ1biAiLi90ZXN0X2dldF9u YW1lIHRyYW5zIG5ldyAgIE5VTEwiCi0gICAgICAgIHJsUnVuICIuL3Rlc3RfZ2V0X25hbWUgdHJh bnMgZmlyc3QgJFNFVVNFUiIKLSAgICBybFBoYXNlRW5kCi0KLSAgICBybFBoYXNlU3RhcnRUZXN0 ICJzZW1hbmFnZV9zZXVzZXJfc2V0X25hbWUiCi0gICAgICAgIG5hbWU9InNvbWV1c2VyIgotICAg ICAgICBybFJ1biAiLi90ZXN0X3NldF9uYW1lIGNvbm4gICRuYW1lIgotICAgICAgICBybFJ1biAi Li90ZXN0X3NldF9uYW1lIHRyYW5zICRuYW1lIgotICAgIHJsUGhhc2VFbmQKLQotICAgIHJsUGhh c2VTdGFydFRlc3QgInNlbWFuYWdlX3NldXNlcl9nZXRfc2VuYW1lIgotICAgICAgICBybFJ1biAi Li90ZXN0X2dldF9zZW5hbWUgY29ubiAgbmV3ICAgTlVMTCIKLSAgICAgICAgcmxSdW4gIi4vdGVz dF9nZXRfc2VuYW1lIGNvbm4gIGZpcnN0ICRTRVVTRVJfU0VOQU1FIgotICAgICAgICBybFJ1biAi Li90ZXN0X2dldF9zZW5hbWUgdHJhbnMgbmV3ICAgTlVMTCIKLSAgICAgICAgcmxSdW4gIi4vdGVz dF9nZXRfc2VuYW1lIHRyYW5zIGZpcnN0ICRTRVVTRVJfU0VOQU1FIgotICAgIHJsUGhhc2VFbmQK LQotICAgIHJsUGhhc2VTdGFydFRlc3QgInNlbWFuYWdlX3NldXNlcl9zZXRfc2VuYW1lIgotICAg ICAgICBzZW5hbWU9InNvbWV1c2VyX3UiCi0gICAgICAgIHJsUnVuICIuL3Rlc3Rfc2V0X3NlbmFt ZSBjb25uICAkc2VuYW1lIgotICAgICAgICBybFJ1biAiLi90ZXN0X3NldF9zZW5hbWUgdHJhbnMg JHNlbmFtZSIKLSAgICBybFBoYXNlRW5kCi0KLSAgICBybFBoYXNlU3RhcnRUZXN0ICJzZW1hbmFn ZV9zZXVzZXJfZ2V0X21sc3JhbmdlIgotICAgICAgICBybFJ1biAiLi90ZXN0X2dldF9tbHNyYW5n ZSBjb25uICBuZXcgICBOVUxMIgotICAgICAgICBybFJ1biAiLi90ZXN0X2dldF9tbHNyYW5nZSBj b25uICBmaXJzdCAkU0VVU0VSX01MU1JBTkdFIgotICAgICAgICBybFJ1biAiLi90ZXN0X2dldF9t bHNyYW5nZSB0cmFucyBuZXcgICBOVUxMIgotICAgICAgICBybFJ1biAiLi90ZXN0X2dldF9tbHNy YW5nZSB0cmFucyBmaXJzdCAkU0VVU0VSX01MU1JBTkdFIgotICAgIHJsUGhhc2VFbmQKLQotICAg IHJsUGhhc2VTdGFydFRlc3QgInNlbWFuYWdlX3NldXNlcl9zZXRfbWxzcmFuZ2UiCi0gICAgICAg IG1sc3JhbmdlPSJjMC1zMTpjMC5jNDIiCi0gICAgICAgIHJsUnVuICIuL3Rlc3Rfc2V0X21sc3Jh bmdlIGNvbm4gICRtbHNyYW5nZSIKLSAgICAgICAgcmxSdW4gIi4vdGVzdF9zZXRfbWxzcmFuZ2Ug dHJhbnMgJG1sc3JhbmdlIgotICAgIHJsUGhhc2VFbmQKLQotICAgIHJsUGhhc2VTdGFydFRlc3Qg InNlbWFuYWdlX3NldXNlcl9jbG9uZSIKLSAgICAgICAgIyBGSVhNRQotICAgICAgICAjcmxSdW4g Ii4vdGVzdF9jbG9uZSBjb25uICBuZXciCi0gICAgICAgIHJsUnVuICIuL3Rlc3RfY2xvbmUgY29u biAgZmlyc3QiCi0gICAgICAgICMgRklYTUUKLSAgICAgICAgI3JsUnVuICIuL3Rlc3RfY2xvbmUg dHJhbnMgbmV3IgotICAgICAgICBybFJ1biAiLi90ZXN0X2Nsb25lIHRyYW5zIGZpcnN0IgotICAg IHJsUGhhc2VFbmQKLQotICAgIHJsUGhhc2VTdGFydFRlc3QgInNlbWFuYWdlX3NldXNlcl9jcmVh dGUiCi0gICAgICAgICMgRklYTUUKLSAgICAgICAgI3JsUnVuICIuL3Rlc3RfY3JlYXRlIGluaXQi ICRFUlJfQUJPUlQsJEVSUl9TRUdGQVVMVAotICAgICAgICAjcmxSdW4gIi4vdGVzdF9jcmVhdGUg aGFuZGxlIiAkRVJSX0FCT1JULCRFUlJfU0VHRkFVTFQKLSAgICAgICAgcmxSdW4gIi4vdGVzdF9j cmVhdGUgY29ubiIKLSAgICAgICAgcmxSdW4gIi4vdGVzdF9jcmVhdGUgdHJhbnMiCi0gICAgcmxQ aGFzZUVuZAotCi0gICAgcmxQaGFzZVN0YXJ0VGVzdCAic2VtYW5hZ2Vfc2V1c2VyX21vZGlmeV9s b2NhbCIKLSAgICAgICAgIyBmdW5jdGlvbiByZXF1aXJlcyB0cmFuc2FjdGlvbgotICAgICAgICAj cmxSdW4gIi4vdGVzdF9tb2RpZnlfbG9jYWwgY29ubiAgbmV3IiAgICRFUlJfRkFJTAotICAgICAg ICAjcmxSdW4gIi4vdGVzdF9tb2RpZnlfbG9jYWwgY29ubiAgZmlyc3QiICRFUlJfRkFJTAotICAg ICAgICAjcmxSdW4gIi4vdGVzdF9tb2RpZnlfbG9jYWwgdHJhbnMgbmV3IiAgICRFUlJfRkFJTAot ICAgICAgICBybFJ1biAiLi90ZXN0X21vZGlmeV9sb2NhbCB0cmFucyBmaXJzdCIKLSAgICBybFBo YXNlRW5kCi0gICAgCi0gICAgcmxQaGFzZVN0YXJ0VGVzdCAic2VtYW5hZ2Vfc2V1c2VyX2RlbF9s b2NhbCIKLSAgICAgICAgIyBhZGRpbmcgbG9jYWwgc2V1c2VyIHJlcXVpcmVzIHRyYW5zYWN0aW9u Ci0gICAgICAgICMgRklYTUUKLSAgICAgICAgI3JsUnVuICIuL3Rlc3RfZGVsX2xvY2FsIHRyYW5z IGZpcnN0IG5ldyIKLSAgICAgICAgI3JsUnVuICIuL3Rlc3RfZGVsX2xvY2FsIHRyYW5zIGZpcnN0 IHNlY29uZCIKLSAgICAgICAgcmxSdW4gIi4vdGVzdF9kZWxfbG9jYWwgdHJhbnMgZmlyc3QgZmly c3QiCi0gICAgcmxQaGFzZUVuZAotCi0gICAgcmxQaGFzZVN0YXJ0VGVzdCAic2VtYW5hZ2Vfc2V1 c2VyX2V4aXN0c19sb2NhbCIKLSAgICAgICAgIyBhZGRpbmcgbG9jYWwgc2V1c2VyIHJlcXVpcmVz IHRyYW5zYWN0aW9uCi0gICAgICAgIHJsUnVuICIuL3Rlc3RfZXhpc3RzX2xvY2FsIHRyYW5zIGZp cnN0IGZpcnN0ICAxIgotICAgICAgICBybFJ1biAiLi90ZXN0X2V4aXN0c19sb2NhbCB0cmFucyBm aXJzdCBzZWNvbmQgMCIKLSAgICBybFBoYXNlRW5kCi0KLSAgICBybFBoYXNlU3RhcnRUZXN0ICJz ZW1hbmFnZV9zZXVzZXJfY291bnRfbG9jYWwiCi0gICAgICAgICMgYWRkaW5nIGxvY2FsIHNldXNl ciByZXF1aXJlcyB0cmFuc2FjdGlvbgotICAgICAgICAjIEZJWE1FCi0gICAgICAgICNybFJ1biAi Li90ZXN0X2NvdW50X2xvY2FsIHRyYW5zIDAiCi0gICAgICAgIHJsUnVuICIuL3Rlc3RfY291bnRf bG9jYWwgdHJhbnMgMSIKLSAgICAgICAgcmxSdW4gIi4vdGVzdF9jb3VudF9sb2NhbCB0cmFucyAy IgotICAgIHJsUGhhc2VFbmQKLQotICAgIHJsUGhhc2VTdGFydENsZWFudXAKLSAgICAgICAgdGVz dGZpbGVzPSIkKGxzIC0xIHRlc3RfKiB8IGdyZXAgLXYgJ1wuYycgfCB0ciAnXG4nICcgJykiCi0g ICAgICAgIHJsUnVuICJybSAtZiAkdGVzdGZpbGVzIgotICAgIHJsUGhhc2VFbmQKLXJsSm91cm5h bFByaW50VGV4dAotcmxKb3VybmFsRW5kCgpkaWZmIC0tZ2l0IGEvbGlic2VtYW5hZ2Uvc2VtYW5h Z2Utc2V1c2VyLWZ1bmN0aW9ucy90ZXN0X2Nsb25lLmMgYi9saWJzZW1hbmFnZS9zZW1hbmFnZS1z ZXVzZXItZnVuY3Rpb25zL3Rlc3RfY2xvbmUuYwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggOGMyNTU0Zi4uMDAwMDAwMAotLS0gYS9saWJzZW1hbmFnZS9zZW1hbmFnZS1zZXVzZXItZnVu Y3Rpb25zL3Rlc3RfY2xvbmUuYworKysgL2Rldi9udWxsCkBAIC0xLDYwICswLDAgQEAKLSNpbmNs dWRlIDxzdGRpby5oPgotI2luY2x1ZGUgPHN0ZGxpYi5oPgotI2luY2x1ZGUgPHN0cmluZy5oPgot I2luY2x1ZGUgPGVycm5vLmg+Ci0jaW5jbHVkZSA8c2VtYW5hZ2Uvc2VtYW5hZ2UuaD4KLQotI2lu Y2x1ZGUgImZ1bmN0aW9ucy5jIgotCi1pbnQgbWFpbiAoaW50IGFyZ2MsIGNoYXIgKiphcmd2KSB7 Ci0gICAgc2VtYW5hZ2VfaGFuZGxlX3QgKnNoOwotICAgIHNlbWFuYWdlX3NldXNlcl90ICpzZXVz ZXI7Ci0gICAgc2VtYW5hZ2Vfc2V1c2VyX3QgKnNldXNlcl9jbG9uZTsKLSAgICBpbnQgcmVzdWx0 OwotICAgIGNvbnN0IGNoYXIgKnN0cjsKLSAgICBjb25zdCBjaGFyICpzdHJfY2xvbmU7Ci0gICAg Ci0gICAgaWYgKGFyZ2MgPCAzKQotICAgICAgICBleGl0KDIpOwotICAgIAotICAgIHNoID0gZ2V0 X2hhbmRsZShhcmd2WzFdKTsKLQotICAgIHNldXNlciA9IHRlc3RfZ2V0X3NldXNlcihzaCwgYXJn dlsyXSk7Ci0KLSAgICByZXN1bHQgPSBzZW1hbmFnZV9zZXVzZXJfY2xvbmUoc2gsIHNldXNlciwg JnNldXNlcl9jbG9uZSk7Ci0gICAgcHJpbnRmKCJzZW1hbmFnZV9zZXVzZXJfY2xvbmUoJXAsICVw KTogJWRcbiIsCi0gICAgICAgICAgICh2b2lkICopIHNldXNlciwgKHZvaWQgKikgc2V1c2VyX2Ns b25lLCByZXN1bHQpOwotCi0gICAgaWYgKHJlc3VsdCA8IDApIHsKLSAgICAgICAgcGVycm9yKCJz ZW1hbmFnZV9zZXVzZXJfY2xvbmUiKTsKLSAgICAgICAgZXhpdCgxKTsKLSAgICB9Ci0KLSAgICBz dHIgPSBzZW1hbmFnZV9zZXVzZXJfZ2V0X25hbWUoc2V1c2VyKTsKLSAgICBzdHJfY2xvbmUgPSBz ZW1hbmFnZV9zZXVzZXJfZ2V0X25hbWUoc2V1c2VyX2Nsb25lKTsKLQotICAgIGlmIChzdHJjbXAo c3RyLCBzdHJfY2xvbmUpICE9IDApIHsKLSAgICAgICAgZnByaW50ZihzdGRlcnIsICJEaWZmZXJl bnQgaW4gZ2V0X25hbWVcbiIpOwotICAgICAgICBleGl0KDEpOwotICAgIH0KLQotICAgIHN0ciA9 IHNlbWFuYWdlX3NldXNlcl9nZXRfc2VuYW1lKHNldXNlcik7Ci0gICAgc3RyX2Nsb25lID0gc2Vt YW5hZ2Vfc2V1c2VyX2dldF9zZW5hbWUoc2V1c2VyX2Nsb25lKTsKLQotICAgIGlmIChzdHJjbXAo c3RyLCBzdHJfY2xvbmUpICE9IDApIHsKLSAgICAgICAgZnByaW50ZihzdGRlcnIsICJEaWZmZXJl bnQgaW4gZ2V0X3NlbmFtZVxuIik7Ci0gICAgICAgIGV4aXQoMSk7Ci0gICAgfQotCi0gICAgc3Ry ID0gc2VtYW5hZ2Vfc2V1c2VyX2dldF9tbHNyYW5nZShzZXVzZXIpOwotICAgIHN0cl9jbG9uZSA9 IHNlbWFuYWdlX3NldXNlcl9nZXRfbWxzcmFuZ2Uoc2V1c2VyX2Nsb25lKTsKLQotICAgIGlmIChz dHJjbXAoc3RyLCBzdHJfY2xvbmUpICE9IDApIHsKLSAgICAgICAgZnByaW50ZihzdGRlcnIsICJE aWZmZXJlbnQgaW4gZ2V0X21sc3JhbmdlXG4iKTsKLSAgICAgICAgZXhpdCgxKTsKLSAgICB9Ci0K LSAgICBkZXN0cm95X2hhbmRsZShzaCwgYXJndlsxXSk7Ci0KLSAgICBleGl0KDApOwotfQoKZGlm ZiAtLWdpdCBhL2xpYnNlbWFuYWdlL3NlbWFuYWdlLXNldXNlci1mdW5jdGlvbnMvdGVzdF9jb21w YXJlLmMgYi9saWJzZW1hbmFnZS9zZW1hbmFnZS1zZXVzZXItZnVuY3Rpb25zL3Rlc3RfY29tcGFy ZS5jCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1NjE1NDYzLi4wMDAwMDAwCi0tLSBh L2xpYnNlbWFuYWdlL3NlbWFuYWdlLXNldXNlci1mdW5jdGlvbnMvdGVzdF9jb21wYXJlLmMKKysr IC9kZXYvbnVsbApAQCAtMSw0NCArMCwwIEBACi0jaW5jbHVkZSA8c3RkaW8uaD4KLSNpbmNsdWRl IDxzdGRsaWIuaD4KLSNpbmNsdWRlIDxzdHJpbmcuaD4KLSNpbmNsdWRlIDxlcnJuby5oPgotI2lu Y2x1ZGUgPHNlbWFuYWdlL3NlbWFuYWdlLmg+Ci0KLSNpbmNsdWRlICJmdW5jdGlvbnMuYyIKLQot aW50IG1haW4gKGludCBhcmdjLCBjaGFyICoqYXJndikgewotICAgIHNlbWFuYWdlX2hhbmRsZV90 ICpzaDsKLSAgICBzZW1hbmFnZV9zZXVzZXJfdCAqc2V1c2VyOwotICAgIHNlbWFuYWdlX3NldXNl cl9rZXlfdCAqa2V5OwotICAgIGludCByZXN1bHQ7Ci0gICAgCi0gICAgaWYgKGFyZ2MgPCAzKQot ICAgICAgICBleGl0KDIpOwotICAgIAotICAgIHNoID0gZ2V0X2hhbmRsZShhcmd2WzFdKTsKLQot ICAgIHNldXNlciA9IHRlc3RfZ2V0X3NldXNlcihzaCwgImZpcnN0Iik7Ci0KLSAgICBrZXkgPSB0 ZXN0X2dldF9rZXkoc2gsIGFyZ3ZbMl0pOwotCi0gICAgcmVzdWx0ID0gc2VtYW5hZ2Vfc2V1c2Vy X2NvbXBhcmUoc2V1c2VyLCBrZXkpOwotICAgIHByaW50Zigic2VtYW5hZ2Vfc2V1c2VyX2NvbXBh cmUoJXAsICVwKTogJWRcbiIsCi0gICAgICAgICAgICh2b2lkICopIHNldXNlciwgKHZvaWQgKikg a2V5LCByZXN1bHQpOwotCi0gICAgaWYgKGFyZ2MgPj0gNCkgewotICAgICAgICBpZiAoc3RyY21w KGFyZ3ZbM10sICJzYW1lIikgPT0gMCAmJiByZXN1bHQgIT0gMCkgewotICAgICAgICAgICAgZnBy aW50ZihzdGRlcnIsICJFeHBlY3RlZCBzYW1lIGJ1dCBnb3QgZGlmZmVyZW50XG4iKTsKLSAgICAg ICAgICAgIGV4aXQoMSk7Ci0gICAgICAgIH0KLSAgICAgICAgZWxzZSBpZiAoc3RyY21wKGFyZ3Zb M10sICJkaWZmZXJlbnQiKSA9PSAwICYmIHJlc3VsdCA9PSAwKSB7Ci0gICAgICAgICAgICBmcHJp bnRmKHN0ZGVyciwgIkV4cGVjdGVkIGRpZmZlcmVudCBidXQgZ290IHNhbWVcbiIpOwotICAgICAg ICAgICAgZXhpdCgxKTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIHNlbWFuYWdlX3NldXNlcl9r ZXlfZnJlZShrZXkpOwotCi0gICAgZGVzdHJveV9oYW5kbGUoc2gsIGFyZ3ZbMV0pOwotCi0gICAg ZXhpdCgwKTsKLX0KCmRpZmYgLS1naXQgYS9saWJzZW1hbmFnZS9zZW1hbmFnZS1zZXVzZXItZnVu Y3Rpb25zL3Rlc3RfY29tcGFyZTIuYyBiL2xpYnNlbWFuYWdlL3NlbWFuYWdlLXNldXNlci1mdW5j dGlvbnMvdGVzdF9jb21wYXJlMi5jCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhZmVl YzA3Li4wMDAwMDAwCi0tLSBhL2xpYnNlbWFuYWdlL3NlbWFuYWdlLXNldXNlci1mdW5jdGlvbnMv dGVzdF9jb21wYXJlMi5jCisrKyAvZGV2L251bGwKQEAgLTEsNTQgKzAsMCBAQAotI2luY2x1ZGUg PHN0ZGlvLmg+Ci0jaW5jbHVkZSA8c3RkbGliLmg+Ci0jaW5jbHVkZSA8c3RyaW5nLmg+Ci0jaW5j bHVkZSA8ZXJybm8uaD4KLSNpbmNsdWRlIDxzZW1hbmFnZS9zZW1hbmFnZS5oPgotCi0jaW5jbHVk ZSAiZnVuY3Rpb25zLmMiCi0KLWludCBtYWluIChpbnQgYXJnYywgY2hhciAqKmFyZ3YpIHsKLSAg ICBzZW1hbmFnZV9oYW5kbGVfdCAqc2g7Ci0gICAgc2VtYW5hZ2Vfc2V1c2VyX3QgKnNldXNlcjsK LSAgICBzZW1hbmFnZV9zZXVzZXJfdCAqc2V1c2VyMjsKLSAgICBpbnQgcmVzdWx0OwotICAgIGlu dCBmaXJzdCA9IC0xOwotICAgIGludCBzZWNvbmQgPSAtMTsKLSAgICAKLSAgICBpZiAoYXJnYyA8 IDQpCi0gICAgICAgIGV4aXQoMik7Ci0gICAgCi0gICAgc2ggPSBnZXRfaGFuZGxlKGFyZ3ZbMV0p OwotCi0gICAgaWYgKHN0cmNtcChhcmd2WzJdLCAiTlVMTCIpID09IDApIHsKLSAgICAgICAgc2V1 c2VyID0gTlVMTDsKLSAgICB9Ci0gICAgZWxzZSB7Ci0gICAgICAgIGZpcnN0ID0gc3RydG9sKGFy Z3ZbMl0sIE5VTEwsIDEwKTsKLSAgICAgICAgc2V1c2VyID0gdGVzdF9nZXRfc2V1c2VyX250aChz aCwgZmlyc3QpOwotICAgIH0KLQotICAgIGlmIChzdHJjbXAoYXJndlszXSwgIk5VTEwiKSA9PSAw KSB7Ci0gICAgICAgIHNldXNlcjIgPSBOVUxMOwotICAgIH0KLSAgICBlbHNlIHsKLSAgICAgICAg c2Vjb25kID0gc3RydG9sKGFyZ3ZbM10sIE5VTEwsIDEwKTsKLSAgICAgICAgc2V1c2VyMiA9IHRl c3RfZ2V0X3NldXNlcl9udGgoc2gsIHNlY29uZCk7Ci0gICAgfQotCi0gICAgcmVzdWx0ID0gc2Vt YW5hZ2Vfc2V1c2VyX2NvbXBhcmUyKHNldXNlciwgc2V1c2VyMik7Ci0gICAgcHJpbnRmKCJzZW1h bmFnZV9zZXVzZXJfY29tcGFyZSglcCwgJXApOiAlZFxuIiwKLSAgICAgICAgICAgKHZvaWQgKikg c2V1c2VyLCAodm9pZCAqKSBzZXVzZXIyLCByZXN1bHQpOwotCi0gICAgaWYgKGZpcnN0ID09IHNl Y29uZCAmJiByZXN1bHQgIT0gMCkgewotICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIkV4cGVjdGVk IHNhbWUgYnV0IGdvdCBkaWZmZXJlbnRcbiIpOwotICAgICAgICBleGl0KDEpOwotICAgIH0KLSAg ICBlbHNlIGlmIChmaXJzdCAhPSBzZWNvbmQgJiYgcmVzdWx0ID09IDApIHsKLSAgICAgICAgZnBy aW50ZihzdGRlcnIsICJFeHBlY3RlZCBkaWZmZXJlbnQgYnV0IGdvdCBzYW1lXG4iKTsKLSAgICAg ICAgZXhpdCgxKTsKLSAgICB9Ci0KLSAgICBkZXN0cm95X2hhbmRsZShzaCwgYXJndlsxXSk7Ci0K LSAgICBleGl0KDApOwotfQoKZGlmZiAtLWdpdCBhL2xpYnNlbWFuYWdlL3NlbWFuYWdlLXNldXNl ci1mdW5jdGlvbnMvdGVzdF9jb3VudC5jIGIvbGlic2VtYW5hZ2Uvc2VtYW5hZ2Utc2V1c2VyLWZ1 bmN0aW9ucy90ZXN0X2NvdW50LmMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDdmYWJl NGIuLjAwMDAwMDAKLS0tIGEvbGlic2VtYW5hZ2Uvc2VtYW5hZ2Utc2V1c2VyLWZ1bmN0aW9ucy90 ZXN0X2NvdW50LmMKKysrIC9kZXYvbnVsbApAQCAtMSwzNCArMCwwIEBACi0jaW5jbHVkZSA8c3Rk aW8uaD4KLSNpbmNsdWRlIDxzdGRsaWIuaD4KLSNpbmNsdWRlIDxzdHJpbmcuaD4KLSNpbmNsdWRl IDxlcnJuby5oPgotI2luY2x1ZGUgPHNlbWFuYWdlL3NlbWFuYWdlLmg+Ci0KLSNpbmNsdWRlICJm dW5jdGlvbnMuYyIKLQotaW50IG1haW4gKGludCBhcmdjLCBjaGFyICoqYXJndikgewotICAgIHNl bWFuYWdlX2hhbmRsZV90ICpzaDsKLSAgICB1bnNpZ25lZCBpbnQgcmVzcG9uc2U7Ci0gICAgaW50 IHJlc3VsdDsKLSAgICAKLSAgICBpZiAoYXJnYyA8IDIpCi0gICAgICAgIGV4aXQoMik7Ci0gICAg Ci0gICAgc2ggPSBnZXRfaGFuZGxlKGFyZ3ZbMV0pOwotCi0gICAgcmVzdWx0ID0gc2VtYW5hZ2Vf c2V1c2VyX2NvdW50KHNoLCAmcmVzcG9uc2UpOwotICAgIHByaW50Zigic2VtYW5hZ2Vfc2V1c2Vy X2NvdW50KCVwLCAlcCk6ICVkLCByZXNwb25zZTogJXVcbiIsCi0gICAgICAgICAgICh2b2lkICop IHNoLCAodm9pZCAqKSAmcmVzcG9uc2UsIHJlc3VsdCwgcmVzcG9uc2UpOwotICAgIAotICAgIGlm IChyZXN1bHQgPCAwKSB7Ci0gICAgICAgIHBlcnJvcigic2VtYW5hZ2Vfc2V1c2VyX2NvdW50Iik7 Ci0gICAgICAgIGV4aXQoMSk7Ci0gICAgfQotCi0gICAgaWYgKGFyZ2MgPj0gMykKLSAgICAgICAg Y2hlY2tfcmVzdWx0X2ludChhcmd2WzJdLCByZXNwb25zZSk7Ci0KLSAgICBkZXN0cm95X2hhbmRs ZShzaCwgYXJndlsxXSk7Ci0KLSAgICBleGl0KDApOwotfQoKZGlmZiAtLWdpdCBhL2xpYnNlbWFu YWdlL3NlbWFuYWdlLXNldXNlci1mdW5jdGlvbnMvdGVzdF9jb3VudF9sb2NhbC5jIGIvbGlic2Vt YW5hZ2Uvc2VtYW5hZ2Utc2V1c2VyLWZ1bmN0aW9ucy90ZXN0X2NvdW50X2xvY2FsLmMKZGVsZXRl ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGYyNWFiNmQuLjAwMDAwMDAKLS0tIGEvbGlic2VtYW5h Z2Uvc2VtYW5hZ2Utc2V1c2VyLWZ1bmN0aW9ucy90ZXN0X2NvdW50X2xvY2FsLmMKKysrIC9kZXYv bnVsbApAQCAtMSw0NiArMCwwIEBACi0jaW5jbHVkZSA8c3RkaW8uaD4KLSNpbmNsdWRlIDxzdGRs aWIuaD4KLSNpbmNsdWRlIDxzdHJpbmcuaD4KLSNpbmNsdWRlIDxlcnJuby5oPgotI2luY2x1ZGUg PHNlbWFuYWdlL3NlbWFuYWdlLmg+Ci0KLSNpbmNsdWRlICJmdW5jdGlvbnMuYyIKLQotaW50IG1h aW4gKGludCBhcmdjLCBjaGFyICoqYXJndikgewotICAgIHNlbWFuYWdlX2hhbmRsZV90ICpzaDsK LSAgICBzZW1hbmFnZV9zZXVzZXJfdCAqc2V1c2VyOwotICAgIGludCByZXN1bHQ7Ci0gICAgdW5z aWduZWQgaW50IHJlc3BvbnNlOwotICAgIGludCBudW07Ci0gICAgCi0gICAgaWYgKGFyZ2MgPCAy KQotICAgICAgICBleGl0KDIpOwotICAgIAotICAgIHNoID0gZ2V0X2hhbmRsZShhcmd2WzFdKTsK LQotICAgIG51bSA9IHN0cnRvbChhcmd2WzJdLCBOVUxMLCAxMCk7Ci0KLSAgICBmb3IgKGludCBp ID0gMDsgaSA8IG51bTsgaSsrKSB7Ci0gICAgICAgIHNldXNlciA9IHRlc3RfZ2V0X3NldXNlcl9u dGgoc2gsIGkpOwotCi0gICAgICAgIHRlc3RfYWRkX2xvY2FsX3NldXNlcihzaCwgc2V1c2VyKTsK LSAgICB9Ci0KLSAgICByZXN1bHQgPSBzZW1hbmFnZV9zZXVzZXJfY291bnRfbG9jYWwoc2gsICZy ZXNwb25zZSk7Ci0gICAgcHJpbnRmKCJzZW1hbmFnZV9zZXVzZXJfY291bnRfbG9jYWwoJXAsICVw KTogJWQsIHJlc3BvbnNlOiAlZFxuIiwKLSAgICAgICAgICAgKHZvaWQgKikgc2gsICh2b2lkICop ICZyZXNwb25zZSwgcmVzdWx0LCByZXNwb25zZSk7Ci0KLSAgICBpZiAocmVzdWx0IDwgMCkgewot ICAgICAgICBwZXJyb3IoInNlbWFuYWdlX3NldXNlcl9jb3VudF9sb2NhbCIpOwotICAgICAgICBl eGl0KDEpOwotICAgIH0KLQotICAgIGlmIChhcmdjID49IDMpCi0gICAgICAgIGNoZWNrX3Jlc3Vs dF9pbnQoYXJndlsyXSwgcmVzcG9uc2UpOwotCi0gICAgdGVzdF9kZWxfbG9jYWxfc2V1c2VyKHNo LCBzZXVzZXIpOwotCi0gICAgZGVzdHJveV9oYW5kbGUoc2gsIGFyZ3ZbMV0pOwotCi0gICAgZXhp dCgwKTsKLX0KCmRpZmYgLS1naXQgYS9saWJzZW1hbmFnZS9zZW1hbmFnZS1zZXVzZXItZnVuY3Rp b25zL3Rlc3RfY3JlYXRlLmMgYi9saWJzZW1hbmFnZS9zZW1hbmFnZS1zZXVzZXItZnVuY3Rpb25z L3Rlc3RfY3JlYXRlLmMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGE1MTkxYTAuLjAw MDAwMDAKLS0tIGEvbGlic2VtYW5hZ2Uvc2VtYW5hZ2Utc2V1c2VyLWZ1bmN0aW9ucy90ZXN0X2Ny ZWF0ZS5jCisrKyAvZGV2L251bGwKQEAgLTEsNTMgKzAsMCBAQAotI2luY2x1ZGUgPHN0ZGlvLmg+ Ci0jaW5jbHVkZSA8c3RkbGliLmg+Ci0jaW5jbHVkZSA8c3RyaW5nLmg+Ci0jaW5jbHVkZSA8ZXJy bm8uaD4KLSNpbmNsdWRlIDxzZW1hbmFnZS9zZW1hbmFnZS5oPgotCi0jaW5jbHVkZSAiZnVuY3Rp b25zLmMiCi0KLWludCBtYWluIChpbnQgYXJnYywgY2hhciAqKmFyZ3YpIHsKLSAgICBzZW1hbmFn ZV9oYW5kbGVfdCAqc2g7Ci0gICAgc2VtYW5hZ2Vfc2V1c2VyX3QgKnNldXNlcjsKLSAgICBpbnQg cmVzdWx0OwotICAgIGNvbnN0IGNoYXIgKnN0cjsKLSAgICAKLSAgICBpZiAoYXJnYyA8IDIpCi0g ICAgICAgIGV4aXQoMik7Ci0gICAgCi0gICAgc2ggPSBnZXRfaGFuZGxlKGFyZ3ZbMV0pOwotCi0g ICAgcmVzdWx0ID0gc2VtYW5hZ2Vfc2V1c2VyX2NyZWF0ZShzaCwgJnNldXNlcik7Ci0gICAgcHJp bnRmKCJzZW1hbmFnZV9zZXVzZXJfY3JlYXRlKCVwLCAlcCk6ICVkXG4iLAotICAgICAgICAgICAo dm9pZCAqKSBzaCwgKHZvaWQgKikgc2V1c2VyLCByZXN1bHQpOwotCi0gICAgaWYgKHJlc3VsdCA8 IDApIHsKLSAgICAgICAgcGVycm9yKCJzZW1hbmFnZV9zZXVzZXJfY3JlYXRlIik7Ci0gICAgICAg IGV4aXQoMSk7Ci0gICAgfQotCi0gICAgc3RyID0gc2VtYW5hZ2Vfc2V1c2VyX2dldF9uYW1lKHNl dXNlcik7Ci0KLSAgICBpZiAoc3RyICE9IE5VTEwpIHsKLSAgICAgICAgZnByaW50ZihzdGRlcnIs ICJFeHBlY3RlZCBuYW1lID09IE5VTEwsIGdvdCAlc1xuIiwgc3RyKTsKLSAgICAgICAgZXhpdCgx KTsKLSAgICB9Ci0KLSAgICBzdHIgPSBzZW1hbmFnZV9zZXVzZXJfZ2V0X3NlbmFtZShzZXVzZXIp OwotCi0gICAgaWYgKHN0ciAhPSBOVUxMKSB7Ci0gICAgICAgIGZwcmludGYoc3RkZXJyLCAiRXhw ZWN0ZWQgc2VuYW1lID09IE5VTEwsIGdvdCAlc1xuIiwgc3RyKTsKLSAgICAgICAgZXhpdCgxKTsK LSAgICB9Ci0KLSAgICBzdHIgPSBzZW1hbmFnZV9zZXVzZXJfZ2V0X21sc3JhbmdlKHNldXNlcik7 Ci0KLSAgICBpZiAoc3RyICE9IE5VTEwpIHsKLSAgICAgICAgZnByaW50ZihzdGRlcnIsICJFeHBl Y3RlZCBtbHNyYW5nZSA9PSBOVUxMLCBnb3QgJXNcbiIsIHN0cik7Ci0gICAgICAgIGV4aXQoMSk7 Ci0gICAgfQotCi0gICAgZGVzdHJveV9oYW5kbGUoc2gsIGFyZ3ZbMV0pOwotCi0gICAgZXhpdCgw KTsKLX0KCmRpZmYgLS1naXQgYS9saWJzZW1hbmFnZS9zZW1hbmFnZS1zZXVzZXItZnVuY3Rpb25z L3Rlc3RfZGVsX2xvY2FsLmMgYi9saWJzZW1hbmFnZS9zZW1hbmFnZS1zZXVzZXItZnVuY3Rpb25z L3Rlc3RfZGVsX2xvY2FsLmMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGVjZWQ3NGEu LjAwMDAwMDAKLS0tIGEvbGlic2VtYW5hZ2Uvc2VtYW5hZ2Utc2V1c2VyLWZ1bmN0aW9ucy90ZXN0 X2RlbF9sb2NhbC5jCisrKyAvZGV2L251bGwKQEAgLTEsNjQgKzAsMCBAQAotI2luY2x1ZGUgPHN0 ZGlvLmg+Ci0jaW5jbHVkZSA8c3RkbGliLmg+Ci0jaW5jbHVkZSA8c3RyaW5nLmg+Ci0jaW5jbHVk ZSA8ZXJybm8uaD4KLSNpbmNsdWRlIDxzZW1hbmFnZS9zZW1hbmFnZS5oPgotCi0jaW5jbHVkZSAi ZnVuY3Rpb25zLmMiCi0KLWludCBtYWluIChpbnQgYXJnYywgY2hhciAqKmFyZ3YpIHsKLSAgICBz ZW1hbmFnZV9oYW5kbGVfdCAqc2g7Ci0gICAgc2VtYW5hZ2Vfc2V1c2VyX3QgKnNldXNlcjsKLSAg ICBzZW1hbmFnZV9zZXVzZXJfdCAqc2V1c2VyX2RlbDsKLSAgICBzZW1hbmFnZV9zZXVzZXJfa2V5 X3QgKmtleTsKLSAgICBzZW1hbmFnZV9zZXVzZXJfdCAqKnJlY29yZHM7Ci0gICAgaW50IHJlc3Vs dDsKLSAgICB1bnNpZ25lZCBpbnQgY291bnQ7Ci0gICAgCi0gICAgaWYgKGFyZ2MgPCA0KQotICAg ICAgICBleGl0KDIpOwotICAgIAotICAgIHNoID0gZ2V0X2hhbmRsZShhcmd2WzFdKTsKLQotICAg IHNldXNlciA9IHRlc3RfZ2V0X3NldXNlcihzaCwgYXJndlsyXSk7Ci0KLSAgICB0ZXN0X2FkZF9s b2NhbF9zZXVzZXIoc2gsIHNldXNlcik7Ci0KLSAgICBzZXVzZXJfZGVsID0gdGVzdF9nZXRfc2V1 c2VyKHNoLCBhcmd2WzNdKTsKLQotICAgIHJlc3VsdCA9IHNlbWFuYWdlX3NldXNlcl9rZXlfZXh0 cmFjdChzaCwgc2V1c2VyX2RlbCwgJmtleSk7Ci0gICAgcHJpbnRmKCJzZW1hbmFnZV9zZXVzZXJf a2V5X2V4dHJhY3QoJXAsICVwLCAlcCk6ICVkXG4iLAotICAgICAgICAgICAodm9pZCAqKSBzaCwg KHZvaWQgKikgc2V1c2VyX2RlbCwgKHZvaWQgKikgJmtleSwgcmVzdWx0KTsKLQotICAgIGlmIChy ZXN1bHQgPCAwKSB7Ci0gICAgICAgIHBlcnJvcigic2VtYW5hZ2Vfc2V1c2VyX2tleV9leHRyYWN0 Iik7Ci0gICAgICAgIGV4aXQoMik7Ci0gICAgfQotCi0gICAgcmVzdWx0ID0gc2VtYW5hZ2Vfc2V1 c2VyX2RlbF9sb2NhbChzaCwga2V5KTsKLSAgICBwcmludGYoInNlbWFuYWdlX3NldXNlcl9kZWxf bG9jYWwoJXAsICVwKTogJWRcbiIsCi0gICAgICAgICAgICh2b2lkICopIHNldXNlciwgKHZvaWQg Kikga2V5LCByZXN1bHQpOwotCi0gICAgaWYgKHJlc3VsdCA8IDApIHsKLSAgICAgICAgcGVycm9y KCJzZW1hbmFnZV9zZXVzZXJfZGVsX2xvY2FsIik7Ci0gICAgICAgIGV4aXQoMSk7Ci0gICAgfQot Ci0gICAgcmVzdWx0ID0gc2VtYW5hZ2Vfc2V1c2VyX2xpc3RfbG9jYWwoc2gsICZyZWNvcmRzLCAm Y291bnQpOwotICAgIHByaW50Zigic2VtYW5hZ2Vfc2V1c2VyX2xpc3RfbG9jYWwoJXAsICVwLCAl cCk6ICVkXG4iLAotICAgICAgICAgICAodm9pZCAqKSBzaCwgKHZvaWQgKikgJnJlY29yZHMsICh2 b2lkICopICZjb3VudCwgcmVzdWx0KTsKLSAgICAKLSAgICBpZiAocmVzdWx0IDwgMCkgewotICAg ICAgICBwZXJyb3IoInNlbWFuYWdlX3NldXNlcl9saXN0X2xvY2FsIik7Ci0gICAgICAgIGV4aXQo Mik7Ci0gICAgfQotCi0gICAgaWYgKGNvdW50ICE9IDApIHsKLSAgICAgICAgZnByaW50ZihzdGRl cnIsICJOdW1iZXIgb2YgbG9jYWwgc2V1c2VycyBpcyBub3QgMCFcbiIpOwotICAgICAgICBleGl0 KDEpOwotICAgIH0KLQotICAgIGRlc3Ryb3lfaGFuZGxlKHNoLCBhcmd2WzFdKTsKLQotICAgIGV4 aXQoMCk7Ci19CgpkaWZmIC0tZ2l0IGEvbGlic2VtYW5hZ2Uvc2VtYW5hZ2Utc2V1c2VyLWZ1bmN0 aW9ucy90ZXN0X2V4aXN0cy5jIGIvbGlic2VtYW5hZ2Uvc2VtYW5hZ2Utc2V1c2VyLWZ1bmN0aW9u cy90ZXN0X2V4aXN0cy5jCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjMGFmM2IyLi4w MDAwMDAwCi0tLSBhL2xpYnNlbWFuYWdlL3NlbWFuYWdlLXNldXNlci1mdW5jdGlvbnMvdGVzdF9l eGlzdHMuYworKysgL2Rldi9udWxsCkBAIC0xLDM3ICswLDAgQEAKLSNpbmNsdWRlIDxzdGRpby5o PgotI2luY2x1ZGUgPHN0ZGxpYi5oPgotI2luY2x1ZGUgPHN0cmluZy5oPgotI2luY2x1ZGUgPGVy cm5vLmg+Ci0jaW5jbHVkZSA8c2VtYW5hZ2Uvc2VtYW5hZ2UuaD4KLQotI2luY2x1ZGUgImZ1bmN0 aW9ucy5jIgotCi1pbnQgbWFpbiAoaW50IGFyZ2MsIGNoYXIgKiphcmd2KSB7Ci0gICAgc2VtYW5h Z2VfaGFuZGxlX3QgKnNoOwotICAgIHNlbWFuYWdlX3NldXNlcl9rZXlfdCAqa2V5OwotICAgIGlu dCByZXN1bHQ7Ci0gICAgaW50IHJlc3BvbnNlOwotICAgIAotICAgIGlmIChhcmdjIDwgMykKLSAg ICAgICAgZXhpdCgyKTsKLSAgICAKLSAgICBzaCA9IGdldF9oYW5kbGUoYXJndlsxXSk7Ci0KLSAg ICBrZXkgPSB0ZXN0X2dldF9rZXkoc2gsIGFyZ3ZbMl0pOwotCi0gICAgcmVzdWx0ID0gc2VtYW5h Z2Vfc2V1c2VyX2V4aXN0cyhzaCwga2V5LCAmcmVzcG9uc2UpOwotICAgIHByaW50Zigic2VtYW5h Z2Vfc2V1c2VyX2V4aXN0cyglcCwgJXAsICVwKTogJWQsIHJlc3BvbnNlOiAlZFxuIiwKLSAgICAg ICAgICAgKHZvaWQgKikgc2gsICh2b2lkICopIGtleSwgKHZvaWQgKikgJnJlc3BvbnNlLCByZXN1 bHQsIHJlc3BvbnNlKTsKLSAgICAKLSAgICBpZiAocmVzdWx0IDwgMCkgewotICAgICAgICBwZXJy b3IoInNlbWFuYWdlX3NldXNlcl9leGlzdHMiKTsKLSAgICAgICAgZXhpdCgxKTsKLSAgICB9Ci0K LSAgICBpZiAoYXJnYyA+PSA0KQotICAgICAgICBjaGVja19yZXN1bHRfaW50KGFyZ3ZbM10sIHJl c3BvbnNlKTsKLQotICAgIGRlc3Ryb3lfaGFuZGxlKHNoLCBhcmd2WzFdKTsKLQotICAgIGV4aXQo MCk7Ci19CgpkaWZmIC0tZ2l0IGEvbGlic2VtYW5hZ2Uvc2VtYW5hZ2Utc2V1c2VyLWZ1bmN0aW9u cy90ZXN0X2V4aXN0c19sb2NhbC5jIGIvbGlic2VtYW5hZ2Uvc2VtYW5hZ2Utc2V1c2VyLWZ1bmN0 aW9ucy90ZXN0X2V4aXN0c19sb2NhbC5jCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAx NjVkNWIzLi4wMDAwMDAwCi0tLSBhL2xpYnNlbWFuYWdlL3NlbWFuYWdlLXNldXNlci1mdW5jdGlv bnMvdGVzdF9leGlzdHNfbG9jYWwuYworKysgL2Rldi9udWxsCkBAIC0xLDU5ICswLDAgQEAKLSNp bmNsdWRlIDxzdGRpby5oPgotI2luY2x1ZGUgPHN0ZGxpYi5oPgotI2luY2x1ZGUgPHN0cmluZy5o PgotI2luY2x1ZGUgPGVycm5vLmg+Ci0jaW5jbHVkZSA8c2VtYW5hZ2Uvc2VtYW5hZ2UuaD4KLQot I2luY2x1ZGUgImZ1bmN0aW9ucy5jIgotCi1pbnQgbWFpbiAoaW50IGFyZ2MsIGNoYXIgKiphcmd2 KSB7Ci0gICAgc2VtYW5hZ2VfaGFuZGxlX3QgKnNoOwotICAgIHNlbWFuYWdlX3NldXNlcl90ICpz ZXVzZXI7Ci0gICAgc2VtYW5hZ2Vfc2V1c2VyX3QgKnNldXNlcl9leGlzdHM7Ci0gICAgc2VtYW5h Z2Vfc2V1c2VyX2tleV90ICprZXk7Ci0gICAgaW50IHJlc3VsdDsKLSAgICBpbnQgcmVzcG9uc2U7 Ci0gICAgaW50IGV4cDsKLSAgICAKLSAgICBpZiAoYXJnYyA8IDQpCi0gICAgICAgIGV4aXQoMik7 Ci0gICAgCi0gICAgc2ggPSBnZXRfaGFuZGxlKGFyZ3ZbMV0pOwotCi0gICAgc2V1c2VyID0gdGVz dF9nZXRfc2V1c2VyKHNoLCBhcmd2WzJdKTsKLSAgICBzZXVzZXJfZXhpc3RzID0gdGVzdF9nZXRf c2V1c2VyKHNoLCBhcmd2WzNdKTsKLQotICAgIHRlc3RfYWRkX2xvY2FsX3NldXNlcihzaCwgc2V1 c2VyKTsKLQotICAgIHJlc3VsdCA9IHNlbWFuYWdlX3NldXNlcl9rZXlfZXh0cmFjdChzaCwgc2V1 c2VyX2V4aXN0cywgJmtleSk7Ci0gICAgcHJpbnRmKCJzZW1hbmFnZV9zZXVzZXJfa2V5X2V4dHJh Y3QoJXAsICVwLCAlcCk6ICVkXG4iLAotICAgICAgICAgICAodm9pZCAqKSBzaCwgKHZvaWQgKikg c2V1c2VyX2V4aXN0cywgKHZvaWQgKikgJmtleSwgcmVzdWx0KTsgCi0gICAgaWYgKHJlc3VsdCA8 IDApIHsKLSAgICAgICAgcGVycm9yKCJzZW1hbmFnZV9zZXVzZXJfa2V5X2V4dHJhY3QiKTsKLSAg ICAgICAgZXhpdCgyKTsKLSAgICB9Ci0KLSAgICByZXN1bHQgPSBzZW1hbmFnZV9zZXVzZXJfZXhp c3RzX2xvY2FsKHNoLCBrZXksICZyZXNwb25zZSk7Ci0gICAgcHJpbnRmKCJzZW1hbmFnZV9zZXVz ZXJfZXhpc3RzX2xvY2FsKCVwLCAlcCwgJXApOiAlZFxuIiwKLSAgICAgICAgICAgKHZvaWQgKikg c2gsICh2b2lkICopIGtleSwgKHZvaWQgKikgJnJlc3BvbnNlLCByZXN1bHQpOwotCi0gICAgaWYg KHJlc3VsdCA8IDApIHsKLSAgICAgICAgcGVycm9yKCJzZW1hbmFnZV9zZXVzZXJfZXhpc3RzX2xv Y2FsIik7Ci0gICAgICAgIGV4aXQoMSk7Ci0gICAgfQotCi0gICAgaWYgKGFyZ2MgPj0gNSkgewot ICAgICAgICBleHAgPSBzdHJ0b2woYXJndls0XSwgTlVMTCwgMTApOwotCi0gICAgICAgIGlmIChy ZXNwb25zZSAhPSBleHApIHsKLSAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiRXhwZWN0ZWQg JWQgYnV0IGdvdCAlZFxuIiwgZXhwLCByZXNwb25zZSk7Ci0gICAgICAgICAgICBleGl0KDEpOwot ICAgICAgICB9Ci0gICAgfQotCi0gICAgdGVzdF9kZWxfbG9jYWxfc2V1c2VyKHNoLCBzZXVzZXIp OwotCi0gICAgZGVzdHJveV9oYW5kbGUoc2gsIGFyZ3ZbMV0pOwotCi0gICAgZXhpdCgwKTsKLX0K CmRpZmYgLS1naXQgYS9saWJzZW1hbmFnZS9zZW1hbmFnZS1zZXVzZXItZnVuY3Rpb25zL3Rlc3Rf Z2V0X21sc3JhbmdlLmMgYi9saWJzZW1hbmFnZS9zZW1hbmFnZS1zZXVzZXItZnVuY3Rpb25zL3Rl c3RfZ2V0X21sc3JhbmdlLmMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDk3MTcyZGMu LjAwMDAwMDAKLS0tIGEvbGlic2VtYW5hZ2Uvc2VtYW5hZ2Utc2V1c2VyLWZ1bmN0aW9ucy90ZXN0 X2dldF9tbHNyYW5nZS5jCisrKyAvZGV2L251bGwKQEAgLTEsMzIgKzAsMCBAQAotI2luY2x1ZGUg PHN0ZGlvLmg+Ci0jaW5jbHVkZSA8c3RkbGliLmg+Ci0jaW5jbHVkZSA8c3RyaW5nLmg+Ci0jaW5j bHVkZSA8ZXJybm8uaD4KLSNpbmNsdWRlIDxzZW1hbmFnZS9zZW1hbmFnZS5oPgotCi0jaW5jbHVk ZSAiZnVuY3Rpb25zLmMiCi0KLWludCBtYWluIChpbnQgYXJnYywgY2hhciAqKmFyZ3YpIHsKLSAg ICBzZW1hbmFnZV9oYW5kbGVfdCAqc2g7Ci0gICAgc2VtYW5hZ2Vfc2V1c2VyX3QgKnNldXNlcjsK LSAgICAKLSAgICBpZiAoYXJnYyA8IDQpCi0gICAgICAgIGV4aXQoMik7Ci0gICAgCi0gICAgc2gg PSBnZXRfaGFuZGxlKGFyZ3ZbMV0pOwotCi0gICAgc2V1c2VyID0gdGVzdF9nZXRfc2V1c2VyKHNo LCBhcmd2WzJdKTsKLQotICAgIGNvbnN0IGNoYXIgKm5hbWUgPSBzZW1hbmFnZV9zZXVzZXJfZ2V0 X21sc3JhbmdlKHNldXNlcik7Ci0gICAgcHJpbnRmKCJzZW1hbmFnZV9zZXVzZXJfZ2V0X21sc3Jh bmdlKCVwKTogJXNcbiIsCi0gICAgICAgICAgICh2b2lkICopIHNldXNlciwgbmFtZSk7Ci0KLSAg ICBpZiAoc3RyY21wX251bGwoYXJndlszXSwgbmFtZSkgIT0gMCkgewotICAgICAgICBmcHJpbnRm KHN0ZGVyciwgIkV4cGVjdGVkICVzIGJ1dCBnb3QgJXNcbiIsIGFyZ3ZbMl0sIG5hbWUpOwotICAg ICAgICBleGl0KDEpOwotICAgIH0KLQotICAgIGRlc3Ryb3lfaGFuZGxlKHNoLCBhcmd2WzFdKTsK LQotICAgIGV4aXQoMCk7Ci19CgpkaWZmIC0tZ2l0IGEvbGlic2VtYW5hZ2Uvc2VtYW5hZ2Utc2V1 c2VyLWZ1bmN0aW9ucy90ZXN0X2dldF9uYW1lLmMgYi9saWJzZW1hbmFnZS9zZW1hbmFnZS1zZXVz ZXItZnVuY3Rpb25zL3Rlc3RfZ2V0X25hbWUuYwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggOTVkOTAyNS4uMDAwMDAwMAotLS0gYS9saWJzZW1hbmFnZS9zZW1hbmFnZS1zZXVzZXItZnVu Y3Rpb25zL3Rlc3RfZ2V0X25hbWUuYworKysgL2Rldi9udWxsCkBAIC0xLDMyICswLDAgQEAKLSNp bmNsdWRlIDxzdGRpby5oPgotI2luY2x1ZGUgPHN0ZGxpYi5oPgotI2luY2x1ZGUgPHN0cmluZy5o PgotI2luY2x1ZGUgPGVycm5vLmg+Ci0jaW5jbHVkZSA8c2VtYW5hZ2Uvc2VtYW5hZ2UuaD4KLQot I2luY2x1ZGUgImZ1bmN0aW9ucy5jIgotCi1pbnQgbWFpbiAoaW50IGFyZ2MsIGNoYXIgKiphcmd2 KSB7Ci0gICAgc2VtYW5hZ2VfaGFuZGxlX3QgKnNoOwotICAgIHNlbWFuYWdlX3NldXNlcl90ICpz ZXVzZXI7Ci0gICAgCi0gICAgaWYgKGFyZ2MgPCA0KQotICAgICAgICBleGl0KDIpOwotICAgIAot ICAgIHNoID0gZ2V0X2hhbmRsZShhcmd2WzFdKTsKLQotICAgIHNldXNlciA9IHRlc3RfZ2V0X3Nl dXNlcihzaCwgYXJndlsyXSk7Ci0KLSAgICBjb25zdCBjaGFyICpuYW1lID0gc2VtYW5hZ2Vfc2V1 c2VyX2dldF9uYW1lKHNldXNlcik7Ci0gICAgcHJpbnRmKCJzZW1hbmFnZV9zZXVzZXJfZ2V0X25h bWUoJXApOiAlc1xuIiwKLSAgICAgICAgICAgKHZvaWQgKikgc2V1c2VyLCBuYW1lKTsKLQotICAg IGlmIChzdHJjbXBfbnVsbChhcmd2WzNdLCBuYW1lKSAhPSAwKSB7Ci0gICAgICAgIGZwcmludGYo c3RkZXJyLCAiRXhwZWN0ZWQgJXMgYnV0IGdvdCAlc1xuIiwgYXJndlsyXSwgbmFtZSk7Ci0gICAg ICAgIGV4aXQoMSk7Ci0gICAgfQotCi0gICAgZGVzdHJveV9oYW5kbGUoc2gsIGFyZ3ZbMV0pOwot Ci0gICAgZXhpdCgwKTsKLX0KCmRpZmYgLS1naXQgYS9saWJzZW1hbmFnZS9zZW1hbmFnZS1zZXVz ZXItZnVuY3Rpb25zL3Rlc3RfZ2V0X3NlbmFtZS5jIGIvbGlic2VtYW5hZ2Uvc2VtYW5hZ2Utc2V1 c2VyLWZ1bmN0aW9ucy90ZXN0X2dldF9zZW5hbWUuYwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggMWVkNzI0OC4uMDAwMDAwMAotLS0gYS9saWJzZW1hbmFnZS9zZW1hbmFnZS1zZXVzZXIt ZnVuY3Rpb25zL3Rlc3RfZ2V0X3NlbmFtZS5jCisrKyAvZGV2L251bGwKQEAgLTEsMzIgKzAsMCBA QAotI2luY2x1ZGUgPHN0ZGlvLmg+Ci0jaW5jbHVkZSA8c3RkbGliLmg+Ci0jaW5jbHVkZSA8c3Ry aW5nLmg+Ci0jaW5jbHVkZSA8ZXJybm8uaD4KLSNpbmNsdWRlIDxzZW1hbmFnZS9zZW1hbmFnZS5o PgotCi0jaW5jbHVkZSAiZnVuY3Rpb25zLmMiCi0KLWludCBtYWluIChpbnQgYXJnYywgY2hhciAq KmFyZ3YpIHsKLSAgICBzZW1hbmFnZV9oYW5kbGVfdCAqc2g7Ci0gICAgc2VtYW5hZ2Vfc2V1c2Vy X3QgKnNldXNlcjsKLSAgICAKLSAgICBpZiAoYXJnYyA8IDQpCi0gICAgICAgIGV4aXQoMik7Ci0g ICAgCi0gICAgc2ggPSBnZXRfaGFuZGxlKGFyZ3ZbMV0pOwotCi0gICAgc2V1c2VyID0gdGVzdF9n ZXRfc2V1c2VyKHNoLCBhcmd2WzJdKTsKLQotICAgIGNvbnN0IGNoYXIgKm5hbWUgPSBzZW1hbmFn ZV9zZXVzZXJfZ2V0X3NlbmFtZShzZXVzZXIpOwotICAgIHByaW50Zigic2VtYW5hZ2Vfc2V1c2Vy X2dldF9zZW5hbWUoJXApOiAlc1xuIiwKLSAgICAgICAgICAgKHZvaWQgKikgc2V1c2VyLCBuYW1l KTsKLQotICAgIGlmIChzdHJjbXBfbnVsbChhcmd2WzNdLCBuYW1lKSAhPSAwKSB7Ci0gICAgICAg IGZwcmludGYoc3RkZXJyLCAiRXhwZWN0ZWQgJXMgYnV0IGdvdCAlc1xuIiwgYXJndlsyXSwgbmFt ZSk7Ci0gICAgICAgIGV4aXQoMSk7Ci0gICAgfQotCi0gICAgZGVzdHJveV9oYW5kbGUoc2gsIGFy Z3ZbMV0pOwotCi0gICAgZXhpdCgwKTsKLX0KCmRpZmYgLS1naXQgYS9saWJzZW1hbmFnZS9zZW1h bmFnZS1zZXVzZXItZnVuY3Rpb25zL3Rlc3RfaXRlcmF0ZS5jIGIvbGlic2VtYW5hZ2Uvc2VtYW5h Z2Utc2V1c2VyLWZ1bmN0aW9ucy90ZXN0X2l0ZXJhdGUuYwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggNTMzMDg3YS4uMDAwMDAwMAotLS0gYS9saWJzZW1hbmFnZS9zZW1hbmFnZS1zZXVz ZXItZnVuY3Rpb25zL3Rlc3RfaXRlcmF0ZS5jCisrKyAvZGV2L251bGwKQEAgLTEsNDkgKzAsMCBA QAotI2luY2x1ZGUgPHN0ZGlvLmg+Ci0jaW5jbHVkZSA8c3RkbGliLmg+Ci0jaW5jbHVkZSA8c3Ry aW5nLmg+Ci0jaW5jbHVkZSA8ZXJybm8uaD4KLSNpbmNsdWRlIDxzZW1hbmFnZS9zZW1hbmFnZS5o PgotCi0jaW5jbHVkZSAiZnVuY3Rpb25zLmMiCi0KLWludCBjb3VudGVyID0gMDsKLQotaW50IGhh bmRsZXIoY29uc3Qgc2VtYW5hZ2Vfc2V1c2VyX3QgKnJlY29yZCwgdm9pZCAqdmFyZykgewotICAg IGNoYXIgKiphcmdzID0gKGNoYXIgKiopIHZhcmc7Ci0gICAgCi0gICAgY29uc3QgY2hhciAqbmFt ZSA9IHNlbWFuYWdlX3NldXNlcl9nZXRfbmFtZShyZWNvcmQpOwotCi0gICAgaWYgKHN0cmNtcChu YW1lLCBhcmdzWzIgKyBjb3VudGVyKytdKSAhPSAwKQotICAgICAgICByZXR1cm4gLTE7Ci0KLSAg ICByZXR1cm4gMDsKLX0KLQotaW50IG1haW4gKGludCBhcmdjLCBjaGFyICoqYXJndikgewotICAg IHNlbWFuYWdlX2hhbmRsZV90ICpzaDsKLSAgICBpbnQgcmVzdWx0OwotICAgIAotICAgIGlmIChh cmdjIDwgMikKLSAgICAgICAgZXhpdCgyKTsKLSAgICAKLSAgICBzaCA9IGdldF9oYW5kbGUoYXJn dlsxXSk7Ci0KLSAgICBjaGFyICoqcGFyYW0gPSBOVUxMOwotCi0gICAgaWYgKGFyZ2MgPj0gMykg ewotICAgICAgICBwYXJhbSA9IGFyZ3Y7Ci0gICAgfQotCi0gICAgcmVzdWx0ID0gc2VtYW5hZ2Vf c2V1c2VyX2l0ZXJhdGUoc2gsICZoYW5kbGVyLCAodm9pZCAqKSBwYXJhbSk7Ci0gICAgcHJpbnRm KCJzZW1hbmFnZV9zZXVzZXJfaXRlcmF0ZSglcCwgJXAsICVwKTogJWRcbiIsCi0gICAgICAgICAg ICh2b2lkICopIHNoLCAodm9pZCAqKSAmaGFuZGxlciwgKHZvaWQgKikgcGFyYW0sIHJlc3VsdCk7 Ci0gICAgCi0gICAgaWYgKHJlc3VsdCA8IDApIHsKLSAgICAgICAgcGVycm9yKCJzZW1hbmFnZV9z ZXVzZXJfaXRlcmF0ZSIpOwotICAgICAgICBleGl0KDEpOwotICAgIH0KLQotICAgIGRlc3Ryb3lf aGFuZGxlKHNoLCBhcmd2WzFdKTsKLQotICAgIGV4aXQoMCk7Ci19CgpkaWZmIC0tZ2l0IGEvbGli c2VtYW5hZ2Uvc2VtYW5hZ2Utc2V1c2VyLWZ1bmN0aW9ucy90ZXN0X2tleV9jcmVhdGUuYyBiL2xp YnNlbWFuYWdlL3NlbWFuYWdlLXNldXNlci1mdW5jdGlvbnMvdGVzdF9rZXlfY3JlYXRlLmMKZGVs ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDhmM2FhZjUuLjAwMDAwMDAKLS0tIGEvbGlic2Vt YW5hZ2Uvc2VtYW5hZ2Utc2V1c2VyLWZ1bmN0aW9ucy90ZXN0X2tleV9jcmVhdGUuYworKysgL2Rl di9udWxsCkBAIC0xLDM5ICswLDAgQEAKLSNpbmNsdWRlIDxzdGRpby5oPgotI2luY2x1ZGUgPHN0 ZGxpYi5oPgotI2luY2x1ZGUgPHN0cmluZy5oPgotI2luY2x1ZGUgPGVycm5vLmg+Ci0jaW5jbHVk ZSA8c2VtYW5hZ2Uvc2VtYW5hZ2UuaD4KLQotI2luY2x1ZGUgImZ1bmN0aW9ucy5jIgotCi1pbnQg bWFpbiAoaW50IGFyZ2MsIGNoYXIgKiphcmd2KSB7Ci0gICAgc2VtYW5hZ2VfaGFuZGxlX3QgKnNo OwotICAgIHNlbWFuYWdlX3NldXNlcl9rZXlfdCAqa2V5OwotICAgIGNvbnN0IGNoYXIgKm5hbWU7 Ci0gICAgaW50IHJlc3VsdDsKLSAgICAKLSAgICBpZiAoYXJnYyA8IDMpCi0gICAgICAgIGV4aXQo Mik7Ci0gICAgCi0gICAgc2ggPSBnZXRfaGFuZGxlKGFyZ3ZbMV0pOwotCi0gICAgaWYgKHN0cmNt cChhcmd2WzJdLCAiTlVMTCIpID09IDApCi0gICAgICAgIG5hbWUgPSBOVUxMOwotICAgIGVsc2UK LSAgICAgICAgbmFtZSA9IGFyZ3ZbMl07Ci0KLSAgICByZXN1bHQgPSBzZW1hbmFnZV9zZXVzZXJf a2V5X2NyZWF0ZShzaCwgbmFtZSwgJmtleSk7Ci0gICAgcHJpbnRmKCJzZW1hbmFnZV9zZXVzZXJf a2V5X2NyZWF0ZSglcCwgJXMsICVwKTogJWRcbiIsCi0gICAgICAgICAgICh2b2lkICopIHNoLCBu YW1lLCAodm9pZCAqKSAma2V5LCByZXN1bHQpOwotCi0gICAgaWYgKHJlc3VsdCA8IDAgfHwga2V5 ID09IE5VTEwpIHsKLSAgICAgICAgcGVycm9yKCJzZW1hbmFnZV9zZXVzZXJfa2V5X2NyZWF0ZSIp OwotICAgICAgICBleGl0KDEpOwotICAgIH0KLQotICAgIHNlbWFuYWdlX3NldXNlcl9rZXlfZnJl ZShrZXkpOwotCi0gICAgZGVzdHJveV9oYW5kbGUoc2gsIGFyZ3ZbMV0pOwotCi0gICAgZXhpdCgw KTsKLX0KCmRpZmYgLS1naXQgYS9saWJzZW1hbmFnZS9zZW1hbmFnZS1zZXVzZXItZnVuY3Rpb25z L3Rlc3Rfa2V5X2V4dHJhY3QuYyBiL2xpYnNlbWFuYWdlL3NlbWFuYWdlLXNldXNlci1mdW5jdGlv bnMvdGVzdF9rZXlfZXh0cmFjdC5jCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1MDY1 OGRjLi4wMDAwMDAwCi0tLSBhL2xpYnNlbWFuYWdlL3NlbWFuYWdlLXNldXNlci1mdW5jdGlvbnMv dGVzdF9rZXlfZXh0cmFjdC5jCisrKyAvZGV2L251bGwKQEAgLTEsNDUgKzAsMCBAQAotI2luY2x1 ZGUgPHN0ZGlvLmg+Ci0jaW5jbHVkZSA8c3RkbGliLmg+Ci0jaW5jbHVkZSA8c3RyaW5nLmg+Ci0j aW5jbHVkZSA8ZXJybm8uaD4KLSNpbmNsdWRlIDxzZW1hbmFnZS9zZW1hbmFnZS5oPgotCi0jaW5j bHVkZSAiZnVuY3Rpb25zLmMiCi0KLWludCBtYWluIChpbnQgYXJnYywgY2hhciAqKmFyZ3YpIHsK LSAgICBzZW1hbmFnZV9oYW5kbGVfdCAqc2g7Ci0gICAgc2VtYW5hZ2Vfc2V1c2VyX3QgKnNldXNl cjsKLSAgICBzZW1hbmFnZV9zZXVzZXJfa2V5X3QgKmtleTsKLSAgICBpbnQgcmVzdWx0OwotICAg IAotICAgIGlmIChhcmdjIDwgMykKLSAgICAgICAgZXhpdCgyKTsKLSAgICAKLSAgICBzaCA9IGdl dF9oYW5kbGUoYXJndlsxXSk7Ci0KLSAgICBzZXVzZXIgPSB0ZXN0X2dldF9zZXVzZXIoc2gsIGFy Z3ZbMl0pOwotCi0gICAgcmVzdWx0ID0gc2VtYW5hZ2Vfc2V1c2VyX2tleV9leHRyYWN0KHNoLCBz ZXVzZXIsICZrZXkpOwotICAgIHByaW50Zigic2VtYW5hZ2Vfc2V1c2VyX2tleV9leHRyYWN0KCVw LCAlcCwgJXApOiAlZFxuIiwKLSAgICAgICAgICAgKHZvaWQgKikgc2gsICh2b2lkICopIHNldXNl ciwgKHZvaWQgKikgJmtleSwgcmVzdWx0KTsKLQotICAgIGlmIChyZXN1bHQgPCAwKSB7Ci0gICAg ICAgIHBlcnJvcigic2VtYW5hZ2Vfc2V1c2VyX2tleV9leHRyYWN0Iik7Ci0gICAgICAgIGV4aXQo MSk7Ci0gICAgfQotCi0gICAgcmVzdWx0ID0gc2VtYW5hZ2Vfc2V1c2VyX2NvbXBhcmUoc2V1c2Vy LCBrZXkpOwotICAgIHByaW50Zigic2VtYW5hZ2Vfc2V1c2VyX2NvbXBhcmUoJXAsICVwKTogJWRc biIsCi0gICAgICAgICAgICh2b2lkICopIHNldXNlciwgKHZvaWQgKikga2V5LCByZXN1bHQpOwot Ci0gICAgaWYgKHJlc3VsdCAhPSAwKSB7Ci0gICAgICAgIHBlcnJvcigic2VtYW5hZ2Vfc2V1c2Vy X2NvbXBhcmUiKTsKLSAgICAgICAgZXhpdCgxKTsKLSAgICB9Ci0KLSAgICBzZW1hbmFnZV9zZXVz ZXJfa2V5X2ZyZWUoa2V5KTsKLQotICAgIGRlc3Ryb3lfaGFuZGxlKHNoLCBhcmd2WzFdKTsKLQot ICAgIGV4aXQoMCk7Ci19CgpkaWZmIC0tZ2l0IGEvbGlic2VtYW5hZ2Uvc2VtYW5hZ2Utc2V1c2Vy LWZ1bmN0aW9ucy90ZXN0X2xpc3QuYyBiL2xpYnNlbWFuYWdlL3NlbWFuYWdlLXNldXNlci1mdW5j dGlvbnMvdGVzdF9saXN0LmMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGFlMDYxODcu LjAwMDAwMDAKLS0tIGEvbGlic2VtYW5hZ2Uvc2VtYW5hZ2Utc2V1c2VyLWZ1bmN0aW9ucy90ZXN0 X2xpc3QuYworKysgL2Rldi9udWxsCkBAIC0xLDYzICswLDAgQEAKLSNpbmNsdWRlIDxzdGRpby5o PgotI2luY2x1ZGUgPHN0ZGxpYi5oPgotI2luY2x1ZGUgPHN0cmluZy5oPgotI2luY2x1ZGUgPGVy cm5vLmg+Ci0jaW5jbHVkZSA8c2VtYW5hZ2Uvc2VtYW5hZ2UuaD4KLQotI2luY2x1ZGUgImZ1bmN0 aW9ucy5jIgotCi1pbnQgbWFpbiAoaW50IGFyZ2MsIGNoYXIgKiphcmd2KSB7Ci0gICAgc2VtYW5h Z2VfaGFuZGxlX3QgKnNoOwotICAgIHNlbWFuYWdlX3NldXNlcl90ICoqcmVjb3JkczsKLSAgICB1 bnNpZ25lZCBpbnQgY291bnQ7Ci0gICAgaW50IHJlc3VsdDsKLSAgICAKLSAgICBpZiAoYXJnYyA8 IDIpCi0gICAgICAgIGV4aXQoMik7Ci0gICAgCi0gICAgc2ggPSBnZXRfaGFuZGxlKGFyZ3ZbMV0p OwotCi0gICAgcmVzdWx0ID0gc2VtYW5hZ2Vfc2V1c2VyX2xpc3Qoc2gsICZyZWNvcmRzLCAmY291 bnQpOwotICAgIHByaW50Zigic2VtYW5hZ2Vfc2V1c2VyX2xpc3QoJXAsICVwLCAlcCk6ICVkIiwK LSAgICAgICAgICAgKHZvaWQgKikgc2gsICh2b2lkICopICZyZWNvcmRzLCAodm9pZCAqKSAmY291 bnQsIHJlc3VsdCk7Ci0gICAgCi0gICAgaWYgKHJlc3VsdCA8IDApIHsKLSAgICAgICAgcGVycm9y KCJzZW1hbmFnZV9zZXVzZXJfbGlzdCIpOwotICAgICAgICBleGl0KDEpOwotICAgIH0KLQotICAg IHByaW50ZigiLCBjb3VudDogJXUsIHJlY29yZHM6ICIsIGNvdW50KTsKLQotICAgIGNvbnN0IGNo YXIgKm5hbWU7Ci0KLSAgICBmb3IgKHVuc2lnbmVkIGludCBpID0gMDsgaSA8IGNvdW50OyBpKysp IHsKLSAgICAgICAgbmFtZSA9IHNlbWFuYWdlX3NldXNlcl9nZXRfbmFtZShyZWNvcmRzW2ldKTsK LSAgICAgICAgcHJpbnRmKCIlcCAoJXMpLCAiLCAodm9pZCAqKSByZWNvcmRzW2ldLCBuYW1lKTsK LSAgICB9Ci0KLSAgICBwcmludGYoIlxuIik7Ci0KLSAgICBpZiAoYXJnYyA+PSAzKSB7Ci0gICAg ICAgIHVuc2lnbmVkIGludCBleHBfY291bnQgPSBzdHJ0b3VsKGFyZ3ZbMl0sIE5VTEwsIDEwKTsK LSAgICAgICAgCi0gICAgICAgIGlmIChjb3VudCAhPSBleHBfY291bnQpIHsKLSAgICAgICAgICAg IHByaW50ZigiRXhwZWN0ZWQgJXUgYnV0IGdvdCAldVxuIiwgZXhwX2NvdW50LCBjb3VudCk7Ci0g ICAgICAgICAgICBleGl0KDEpOwotICAgICAgICB9Ci0KLSAgICAgICAgY29uc3QgY2hhciAqbmFt ZTsKLQotICAgICAgICBmb3IgKHVuc2lnbmVkIGludCBpID0gMDsgaSA8IGNvdW50OyBpKyspIHsK LSAgICAgICAgICAgIG5hbWUgPSBzZW1hbmFnZV9zZXVzZXJfZ2V0X25hbWUocmVjb3Jkc1tpXSk7 Ci0KLSAgICAgICAgICAgIGlmIChzdHJjbXAobmFtZSwgYXJndlszICsgaV0pICE9IDApIHsKLSAg ICAgICAgICAgICAgICBwcmludGYoIkV4cGVjdGVkICVzIGJ1dCBnb3QgJXNcbiIsIG5hbWUsIGFy Z3ZbMyArIGldKTsKLSAgICAgICAgICAgICAgICBleGl0KDEpOwotICAgICAgICAgICAgfQotICAg ICAgICB9Ci0gICAgfQotCi0gICAgZGVzdHJveV9oYW5kbGUoc2gsIGFyZ3ZbMV0pOwotCi0gICAg ZXhpdCgwKTsKLX0KCmRpZmYgLS1naXQgYS9saWJzZW1hbmFnZS9zZW1hbmFnZS1zZXVzZXItZnVu Y3Rpb25zL3Rlc3RfbW9kaWZ5X2xvY2FsLmMgYi9saWJzZW1hbmFnZS9zZW1hbmFnZS1zZXVzZXIt ZnVuY3Rpb25zL3Rlc3RfbW9kaWZ5X2xvY2FsLmMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDUzYTExZjUuLjAwMDAwMDAKLS0tIGEvbGlic2VtYW5hZ2Uvc2VtYW5hZ2Utc2V1c2VyLWZ1 bmN0aW9ucy90ZXN0X21vZGlmeV9sb2NhbC5jCisrKyAvZGV2L251bGwKQEAgLTEsNjQgKzAsMCBA QAotI2luY2x1ZGUgPHN0ZGlvLmg+Ci0jaW5jbHVkZSA8c3RkbGliLmg+Ci0jaW5jbHVkZSA8c3Ry aW5nLmg+Ci0jaW5jbHVkZSA8ZXJybm8uaD4KLSNpbmNsdWRlIDxzZW1hbmFnZS9zZW1hbmFnZS5o PgotCi0jaW5jbHVkZSAiZnVuY3Rpb25zLmMiCi0KLWludCBtYWluIChpbnQgYXJnYywgY2hhciAq KmFyZ3YpIHsKLSAgICBzZW1hbmFnZV9oYW5kbGVfdCAqc2g7Ci0gICAgc2VtYW5hZ2Vfc2V1c2Vy X3QgKnNldXNlcjsKLSAgICBzZW1hbmFnZV9zZXVzZXJfa2V5X3QgKmtleTsKLSAgICBzZW1hbmFn ZV9zZXVzZXJfdCAqKnJlY29yZHM7Ci0gICAgaW50IHJlc3VsdDsKLSAgICB1bnNpZ25lZCBpbnQg Y291bnQ7Ci0gICAgCi0gICAgaWYgKGFyZ2MgPCAzKQotICAgICAgICBleGl0KDIpOwotICAgIAot ICAgIHNoID0gZ2V0X2hhbmRsZShhcmd2WzFdKTsKLQotICAgIHNldXNlciA9IHRlc3RfZ2V0X3Nl dXNlcihzaCwgYXJndlsyXSk7Ci0KLSAgICByZXN1bHQgPSBzZW1hbmFnZV9zZXVzZXJfa2V5X2V4 dHJhY3Qoc2gsIHNldXNlciwgJmtleSk7Ci0gICAgcHJpbnRmKCJzZW1hbmFnZV9zZXVzZXJfa2V5 X2V4dHJhY3QoJXAsICVwLCAlcCk6ICVkXG4iLAotICAgICAgICAgICAodm9pZCAqKSBzaCwgKHZv aWQgKikgc2V1c2VyLCAodm9pZCAqKSAma2V5LCByZXN1bHQpOwotCi0gICAgaWYgKHJlc3VsdCA8 IDApIHsKLSAgICAgICAgcGVycm9yKCJzZW1hbmFnZV9zZXVzZXJfa2V5X2V4dHJhY3QiKTsKLSAg ICAgICAgZXhpdCgyKTsKLSAgICB9Ci0KLSAgICByZXN1bHQgPSBzZW1hbmFnZV9zZXVzZXJfbW9k aWZ5X2xvY2FsKHNoLCBrZXksIHNldXNlcik7Ci0gICAgcHJpbnRmKCJzZW1hbmFnZV9zZXVzZXJf bW9kaWZ5X2xvY2FsKCVwLCAlcCwgJXApOiAlZFxuIiwKLSAgICAgICAgICAgKHZvaWQgKikgc2V1 c2VyLCAodm9pZCAqKSBrZXksICh2b2lkICopIHNldXNlciwgcmVzdWx0KTsKLQotICAgIGlmIChy ZXN1bHQgPCAwKSB7Ci0gICAgICAgIHBlcnJvcigic2VtYW5hZ2Vfc2V1c2VyX21vZGlmeV9sb2Nh bCIpOwotICAgICAgICBleGl0KDEpOwotICAgIH0KLQotICAgIHJlc3VsdCA9IHNlbWFuYWdlX3Nl dXNlcl9saXN0X2xvY2FsKHNoLCAmcmVjb3JkcywgJmNvdW50KTsKLSAgICBwcmludGYoInNlbWFu YWdlX3NldXNlcl9saXN0X2xvY2FsKCVwLCAlcCwgJXApOiAlZFxuIiwKLSAgICAgICAgICAgKHZv aWQgKikgc2gsICh2b2lkICopICZyZWNvcmRzLCAodm9pZCAqKSAmY291bnQsIHJlc3VsdCk7Ci0g ICAgCi0gICAgaWYgKHJlc3VsdCA8IDApIHsKLSAgICAgICAgcGVycm9yKCJzZW1hbmFnZV9zZXVz ZXJfbGlzdF9sb2NhbCIpOwotICAgICAgICBleGl0KDIpOwotICAgIH0KLQotICAgIGlmIChjb3Vu dCAhPSAxKSB7Ci0gICAgICAgIGZwcmludGYoc3RkZXJyLCAiTnVtYmVyIG9mIGxvY2FsIHNldXNl cnMgaXMgJXUsIGV4cGVjdGVkIDEhXG4iLCBjb3VudCk7Ci0gICAgICAgIGV4aXQoMSk7Ci0gICAg fQotCi0gICAgaWYgKHNlbWFuYWdlX3NldXNlcl9jb21wYXJlKHJlY29yZHNbMF0sIGtleSkgIT0g MCkgewotICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIkxvY2FsIHNldXNlciBpcyBkaWZmZXJlbnQh XG4iKTsKLSAgICAgICAgZXhpdCgxKTsKLSAgICB9Ci0KLSAgICBkZXN0cm95X2hhbmRsZShzaCwg YXJndlsxXSk7Ci0KLSAgICBleGl0KDApOwotfQoKZGlmZiAtLWdpdCBhL2xpYnNlbWFuYWdlL3Nl bWFuYWdlLXNldXNlci1mdW5jdGlvbnMvdGVzdF9xdWVyeS5jIGIvbGlic2VtYW5hZ2Uvc2VtYW5h Z2Utc2V1c2VyLWZ1bmN0aW9ucy90ZXN0X3F1ZXJ5LmMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDEwYjRlMjcuLjAwMDAwMDAKLS0tIGEvbGlic2VtYW5hZ2Uvc2VtYW5hZ2Utc2V1c2Vy LWZ1bmN0aW9ucy90ZXN0X3F1ZXJ5LmMKKysrIC9kZXYvbnVsbApAQCAtMSw1MCArMCwwIEBACi0j aW5jbHVkZSA8c3RkaW8uaD4KLSNpbmNsdWRlIDxzdGRsaWIuaD4KLSNpbmNsdWRlIDxzdHJpbmcu aD4KLSNpbmNsdWRlIDxlcnJuby5oPgotI2luY2x1ZGUgPHNlbWFuYWdlL3NlbWFuYWdlLmg+Ci0K LSNpbmNsdWRlICJmdW5jdGlvbnMuYyIKLQotaW50IG1haW4gKGludCBhcmdjLCBjaGFyICoqYXJn dikgewotICAgIHNlbWFuYWdlX2hhbmRsZV90ICpzaDsKLSAgICBzZW1hbmFnZV9zZXVzZXJfa2V5 X3QgKmtleTsKLSAgICBzZW1hbmFnZV9zZXVzZXJfdCAqcmVzcG9uc2U7Ci0gICAgaW50IHJlc3Vs dDsKLSAgICAKLSAgICBpZiAoYXJnYyA8IDMpCi0gICAgICAgIGV4aXQoMik7Ci0gICAgCi0gICAg c2ggPSBnZXRfaGFuZGxlKGFyZ3ZbMV0pOwotCi0gICAgcmVzdWx0ID0gc2VtYW5hZ2Vfc2V1c2Vy X2tleV9jcmVhdGUoc2gsIGFyZ3ZbMl0sICZrZXkpOwotICAgIHByaW50Zigic2VtYW5hZ2Vfc2V1 c2VyX2tleV9jcmVhdGUoJXAsICVzLCAlcCk6ICVkXG4iLAotICAgICAgICAgICAodm9pZCAqKSBz aCwgYXJndlsyXSwgKHZvaWQgKikgJmtleSwgcmVzdWx0KTsKLQotICAgIGlmIChyZXN1bHQgPCAw IHx8IGtleSA9PSBOVUxMKSB7Ci0gICAgICAgIHBlcnJvcigic2VtYW5hZ2Vfc2V1c2VyX2tleV9j cmVhdGUiKTsKLSAgICAgICAgZXhpdCgyKTsKLSAgICB9Ci0KLSAgICByZXN1bHQgPSBzZW1hbmFn ZV9zZXVzZXJfcXVlcnkoc2gsIGtleSwgJnJlc3BvbnNlKTsKLSAgICBwcmludGYoInNlbWFuYWdl X3NldXNlcl9xdWVyeSglcCwgJXAsICVwKTogJWQsIHJlc3BvbnNlOiAlcFxuIiwKLSAgICAgICAg ICAgKHZvaWQgKikgc2gsICh2b2lkICopIGtleSwgKHZvaWQgKikgJnJlc3BvbnNlLCByZXN1bHQs ICh2b2lkICopIHJlc3BvbnNlKTsKLSAgICAKLSAgICBpZiAocmVzdWx0IDwgMCkgewotICAgICAg ICBwZXJyb3IoInNlbWFuYWdlX3NldXNlcl9xdWVyeSIpOwotICAgICAgICBleGl0KDEpOwotICAg IH0KLQotICAgIGNvbnN0IGNoYXIgKm5hbWUgPSBzZW1hbmFnZV9zZXVzZXJfZ2V0X25hbWUocmVz cG9uc2UpOwotICAgIHByaW50Zigic2VtYW5hZ2Vfc2V1c2VyX2dldF9uYW1lKCVwKTogJXNcbiIs Ci0gICAgICAgICAgICh2b2lkICopIHJlc3BvbnNlLCBuYW1lKTsKLQotICAgIGlmIChzdHJjbXAo YXJndlsyXSwgbmFtZSkgIT0gMCkgewotICAgICAgICBwZXJyb3IoInNlbWFuYWdlX3NldXNlcl9n ZXRfbmFtZSIpOwotICAgICAgICBleGl0KDIpOwotICAgIH0KLQotICAgIGRlc3Ryb3lfaGFuZGxl KHNoLCBhcmd2WzFdKTsKLQotICAgIGV4aXQoMCk7Ci19CgpkaWZmIC0tZ2l0IGEvbGlic2VtYW5h Z2Uvc2VtYW5hZ2Utc2V1c2VyLWZ1bmN0aW9ucy90ZXN0X3NldF9tbHNyYW5nZS5jIGIvbGlic2Vt YW5hZ2Uvc2VtYW5hZ2Utc2V1c2VyLWZ1bmN0aW9ucy90ZXN0X3NldF9tbHNyYW5nZS5jCmRlbGV0 ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0ODQ0MGFjLi4wMDAwMDAwCi0tLSBhL2xpYnNlbWFu YWdlL3NlbWFuYWdlLXNldXNlci1mdW5jdGlvbnMvdGVzdF9zZXRfbWxzcmFuZ2UuYworKysgL2Rl di9udWxsCkBAIC0xLDYyICswLDAgQEAKLSNpbmNsdWRlIDxzdGRpby5oPgotI2luY2x1ZGUgPHN0 ZGxpYi5oPgotI2luY2x1ZGUgPHN0cmluZy5oPgotI2luY2x1ZGUgPGVycm5vLmg+Ci0jaW5jbHVk ZSA8c2VtYW5hZ2Uvc2VtYW5hZ2UuaD4KLQotI2luY2x1ZGUgImZ1bmN0aW9ucy5jIgotCi1pbnQg bWFpbiAoaW50IGFyZ2MsIGNoYXIgKiphcmd2KSB7Ci0gICAgc2VtYW5hZ2VfaGFuZGxlX3QgKnNo OwotICAgIHNlbWFuYWdlX3NldXNlcl90ICp1c2VyOwotICAgIGludCByZXN1bHQ7Ci0gICAgY29u c3QgY2hhciAqbWxzcmFuZ2U7Ci0gICAgCi0gICAgaWYgKGFyZ2MgPCAzKQotICAgICAgICBleGl0 KDIpOwotICAgIAotICAgIHNoID0gZ2V0X2hhbmRsZShhcmd2WzFdKTsKLQotICAgIHVzZXIgPSB0 ZXN0X2dldF9zZXVzZXIoc2gsICJmaXJzdCIpOwotCi0gICAgaWYgKHN0cmNtcChhcmd2WzJdLCAi TlVMTCIpID09IDApCi0gICAgICAgIG1sc3JhbmdlID0gTlVMTDsKLSAgICBlbHNlIAotICAgICAg ICBtbHNyYW5nZSA9IGFyZ3ZbMl07Ci0KLSAgICBjb25zdCBjaGFyICpvbGRfbWxzcmFuZ2UgPSBz ZW1hbmFnZV9zZXVzZXJfZ2V0X21sc3JhbmdlKHVzZXIpOwotICAgIHByaW50Zigic2VtYW5hZ2Vf c2V1c2VyX2dldF9tbHNyYW5nZSglcCk6ICVzXG4iLAotICAgICAgICAgICAodm9pZCAqKSB1c2Vy LCBvbGRfbWxzcmFuZ2UpOwotCi0gICAgaWYgKG9sZF9tbHNyYW5nZSA9PSBOVUxMKSB7Ci0gICAg ICAgIHBlcnJvcigic2VtYW5hZ2Vfc2V1c2VyX2dldF9tbHNyYW5nZSIpOwotICAgICAgICBleGl0 KDIpOwotICAgIH0KLQotICAgIGlmIChzdHJjbXAob2xkX21sc3JhbmdlLCBtbHNyYW5nZSkgPT0g MCkgewotICAgICAgICBwcmludGYoIk5ldyBtbHNyYW5nZSBpcyB0aGUgc2FtZVxuIik7Ci0gICAg ICAgIGV4aXQoMik7Ci0gICAgfQotCi0gICAgcmVzdWx0ID0gc2VtYW5hZ2Vfc2V1c2VyX3NldF9t bHNyYW5nZShzaCwgdXNlciwgbWxzcmFuZ2UpOwotICAgIHByaW50Zigic2VtYW5hZ2Vfc2V1c2Vy X3NldF9tbHNyYW5nZSglcCwgJXAsICVzKTogJWRcbiIsCi0gICAgICAgICAgICh2b2lkICopIHNo LCAodm9pZCAqKSB1c2VyLCBtbHNyYW5nZSwgcmVzdWx0KTsKLQotICAgIGlmIChyZXN1bHQgPCAw KSB7Ci0gICAgICAgIHBlcnJvcigic2VtYW5hZ2Vfc2V1c2VyX3NldF9tbHNyYW5nZSIpOwotICAg ICAgICBleGl0KDEpOwotICAgIH0KLQotICAgIGNvbnN0IGNoYXIgKm5ld19tbHNyYW5nZSA9IHNl bWFuYWdlX3NldXNlcl9nZXRfbWxzcmFuZ2UodXNlcik7Ci0gICAgcHJpbnRmKCJzZW1hbmFnZV9z ZXVzZXJfZ2V0X21sc3JhbmdlKCVwKTogJXNcbiIsCi0gICAgICAgICAgICh2b2lkICopIHVzZXIs IG5ld19tbHNyYW5nZSk7Ci0KLSAgICBpZiAoc3RyY21wKG5ld19tbHNyYW5nZSwgbWxzcmFuZ2Up ICE9IDApIHsKLSAgICAgICAgcGVycm9yKCJzZW1hbmFnZV9zZXVzZXJfZ2V0X21sc3JhbmdlIik7 Ci0gICAgICAgIGV4aXQoMSk7Ci0gICAgfQotCi0gICAgZGVzdHJveV9oYW5kbGUoc2gsIGFyZ3Zb MV0pOwotCi0gICAgZXhpdCgwKTsKLX0KCmRpZmYgLS1naXQgYS9saWJzZW1hbmFnZS9zZW1hbmFn ZS1zZXVzZXItZnVuY3Rpb25zL3Rlc3Rfc2V0X25hbWUuYyBiL2xpYnNlbWFuYWdlL3NlbWFuYWdl LXNldXNlci1mdW5jdGlvbnMvdGVzdF9zZXRfbmFtZS5jCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAzZTQ0OGU4Li4wMDAwMDAwCi0tLSBhL2xpYnNlbWFuYWdlL3NlbWFuYWdlLXNldXNl ci1mdW5jdGlvbnMvdGVzdF9zZXRfbmFtZS5jCisrKyAvZGV2L251bGwKQEAgLTEsNjIgKzAsMCBA QAotI2luY2x1ZGUgPHN0ZGlvLmg+Ci0jaW5jbHVkZSA8c3RkbGliLmg+Ci0jaW5jbHVkZSA8c3Ry aW5nLmg+Ci0jaW5jbHVkZSA8ZXJybm8uaD4KLSNpbmNsdWRlIDxzZW1hbmFnZS9zZW1hbmFnZS5o PgotCi0jaW5jbHVkZSAiZnVuY3Rpb25zLmMiCi0KLWludCBtYWluIChpbnQgYXJnYywgY2hhciAq KmFyZ3YpIHsKLSAgICBzZW1hbmFnZV9oYW5kbGVfdCAqc2g7Ci0gICAgc2VtYW5hZ2Vfc2V1c2Vy X3QgKnVzZXI7Ci0gICAgaW50IHJlc3VsdDsKLSAgICBjb25zdCBjaGFyICpuYW1lOwotICAgIAot ICAgIGlmIChhcmdjIDwgMykKLSAgICAgICAgZXhpdCgyKTsKLSAgICAKLSAgICBzaCA9IGdldF9o YW5kbGUoYXJndlsxXSk7Ci0KLSAgICB1c2VyID0gdGVzdF9nZXRfc2V1c2VyKHNoLCAiZmlyc3Qi KTsKLQotICAgIGlmIChzdHJjbXAoYXJndlsyXSwgIk5VTEwiKSA9PSAwKQotICAgICAgICBuYW1l ID0gTlVMTDsKLSAgICBlbHNlIAotICAgICAgICBuYW1lID0gYXJndlsyXTsKLQotICAgIGNvbnN0 IGNoYXIgKm9sZF9uYW1lID0gc2VtYW5hZ2Vfc2V1c2VyX2dldF9uYW1lKHVzZXIpOwotICAgIHBy aW50Zigic2VtYW5hZ2Vfc2V1c2VyX2dldF9uYW1lKCVwKTogJXNcbiIsCi0gICAgICAgICAgICh2 b2lkICopIHVzZXIsIG9sZF9uYW1lKTsKLQotICAgIGlmIChvbGRfbmFtZSA9PSBOVUxMKSB7Ci0g ICAgICAgIHBlcnJvcigic2VtYW5hZ2Vfc2V1c2VyX2dldF9uYW1lIik7Ci0gICAgICAgIGV4aXQo Mik7Ci0gICAgfQotCi0gICAgaWYgKHN0cmNtcChvbGRfbmFtZSwgbmFtZSkgPT0gMCkgewotICAg ICAgICBwcmludGYoIk5ldyBuYW1lIGlzIHRoZSBzYW1lXG4iKTsKLSAgICAgICAgZXhpdCgyKTsK LSAgICB9Ci0KLSAgICByZXN1bHQgPSBzZW1hbmFnZV9zZXVzZXJfc2V0X25hbWUoc2gsIHVzZXIs IG5hbWUpOwotICAgIHByaW50Zigic2VtYW5hZ2Vfc2V1c2VyX3NldF9uYW1lKCVwLCAlcCwgJXMp OiAlZFxuIiwKLSAgICAgICAgICAgKHZvaWQgKikgc2gsICh2b2lkICopIHVzZXIsIG5hbWUsIHJl c3VsdCk7Ci0KLSAgICBpZiAocmVzdWx0IDwgMCkgewotICAgICAgICBwZXJyb3IoInNlbWFuYWdl X3NldXNlcl9zZXRfbmFtZSIpOwotICAgICAgICBleGl0KDEpOwotICAgIH0KLQotICAgIGNvbnN0 IGNoYXIgKm5ld19uYW1lID0gc2VtYW5hZ2Vfc2V1c2VyX2dldF9uYW1lKHVzZXIpOwotICAgIHBy aW50Zigic2VtYW5hZ2Vfc2V1c2VyX2dldF9uYW1lKCVwKTogJXNcbiIsCi0gICAgICAgICAgICh2 b2lkICopIHVzZXIsIG5ld19uYW1lKTsKLQotICAgIGlmIChzdHJjbXAobmV3X25hbWUsIG5hbWUp ICE9IDApIHsKLSAgICAgICAgcGVycm9yKCJzZW1hbmFnZV9zZXVzZXJfZ2V0X25hbWUiKTsKLSAg ICAgICAgZXhpdCgxKTsKLSAgICB9Ci0KLSAgICBkZXN0cm95X2hhbmRsZShzaCwgYXJndlsxXSk7 Ci0KLSAgICBleGl0KDApOwotfQoKZGlmZiAtLWdpdCBhL2xpYnNlbWFuYWdlL3NlbWFuYWdlLXNl dXNlci1mdW5jdGlvbnMvdGVzdF9zZXRfc2VuYW1lLmMgYi9saWJzZW1hbmFnZS9zZW1hbmFnZS1z ZXVzZXItZnVuY3Rpb25zL3Rlc3Rfc2V0X3NlbmFtZS5jCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCA0MDJjNWI3Li4wMDAwMDAwCi0tLSBhL2xpYnNlbWFuYWdlL3NlbWFuYWdlLXNldXNl ci1mdW5jdGlvbnMvdGVzdF9zZXRfc2VuYW1lLmMKKysrIC9kZXYvbnVsbApAQCAtMSw2MiArMCww IEBACi0jaW5jbHVkZSA8c3RkaW8uaD4KLSNpbmNsdWRlIDxzdGRsaWIuaD4KLSNpbmNsdWRlIDxz dHJpbmcuaD4KLSNpbmNsdWRlIDxlcnJuby5oPgotI2luY2x1ZGUgPHNlbWFuYWdlL3NlbWFuYWdl Lmg+Ci0KLSNpbmNsdWRlICJmdW5jdGlvbnMuYyIKLQotaW50IG1haW4gKGludCBhcmdjLCBjaGFy ICoqYXJndikgewotICAgIHNlbWFuYWdlX2hhbmRsZV90ICpzaDsKLSAgICBzZW1hbmFnZV9zZXVz ZXJfdCAqdXNlcjsKLSAgICBpbnQgcmVzdWx0OwotICAgIGNvbnN0IGNoYXIgKm5hbWU7Ci0gICAg Ci0gICAgaWYgKGFyZ2MgPCAzKQotICAgICAgICBleGl0KDIpOwotICAgIAotICAgIHNoID0gZ2V0 X2hhbmRsZShhcmd2WzFdKTsKLQotICAgIHVzZXIgPSB0ZXN0X2dldF9zZXVzZXIoc2gsICJmaXJz dCIpOwotCi0gICAgaWYgKHN0cmNtcChhcmd2WzJdLCAiTlVMTCIpID09IDApCi0gICAgICAgIG5h bWUgPSBOVUxMOwotICAgIGVsc2UgCi0gICAgICAgIG5hbWUgPSBhcmd2WzJdOwotCi0gICAgY29u c3QgY2hhciAqb2xkX25hbWUgPSBzZW1hbmFnZV9zZXVzZXJfZ2V0X3NlbmFtZSh1c2VyKTsKLSAg ICBwcmludGYoInNlbWFuYWdlX3NldXNlcl9nZXRfc2VuYW1lKCVwKTogJXNcbiIsCi0gICAgICAg ICAgICh2b2lkICopIHVzZXIsIG9sZF9uYW1lKTsKLQotICAgIGlmIChvbGRfbmFtZSA9PSBOVUxM KSB7Ci0gICAgICAgIHBlcnJvcigic2VtYW5hZ2Vfc2V1c2VyX2dldF9zZW5hbWUiKTsKLSAgICAg ICAgZXhpdCgyKTsKLSAgICB9Ci0KLSAgICBpZiAoc3RyY21wKG9sZF9uYW1lLCBuYW1lKSA9PSAw KSB7Ci0gICAgICAgIHByaW50ZigiTmV3IG5hbWUgaXMgdGhlIHNhbWVcbiIpOwotICAgICAgICBl eGl0KDIpOwotICAgIH0KLQotICAgIHJlc3VsdCA9IHNlbWFuYWdlX3NldXNlcl9zZXRfc2VuYW1l KHNoLCB1c2VyLCBuYW1lKTsKLSAgICBwcmludGYoInNlbWFuYWdlX3NldXNlcl9zZXRfc2VuYW1l KCVwLCAlcCwgJXMpOiAlZFxuIiwKLSAgICAgICAgICAgKHZvaWQgKikgc2gsICh2b2lkICopIHVz ZXIsIG5hbWUsIHJlc3VsdCk7Ci0KLSAgICBpZiAocmVzdWx0IDwgMCkgewotICAgICAgICBwZXJy b3IoInNlbWFuYWdlX3NldXNlcl9zZXRfc2VuYW1lIik7Ci0gICAgICAgIGV4aXQoMSk7Ci0gICAg fQotCi0gICAgY29uc3QgY2hhciAqbmV3X25hbWUgPSBzZW1hbmFnZV9zZXVzZXJfZ2V0X3NlbmFt ZSh1c2VyKTsKLSAgICBwcmludGYoInNlbWFuYWdlX3NldXNlcl9nZXRfc2VuYW1lKCVwKTogJXNc biIsCi0gICAgICAgICAgICh2b2lkICopIHVzZXIsIG5ld19uYW1lKTsKLQotICAgIGlmIChzdHJj bXAobmV3X25hbWUsIG5hbWUpICE9IDApIHsKLSAgICAgICAgcGVycm9yKCJzZW1hbmFnZV9zZXVz ZXJfZ2V0X3NlbmFtZSIpOwotICAgICAgICBleGl0KDEpOwotICAgIH0KLQotICAgIGRlc3Ryb3lf aGFuZGxlKHNoLCBhcmd2WzFdKTsKLQotICAgIGV4aXQoMCk7Ci19Cg==