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: Milos Malik To: git-commits@fedoraproject.org Subject: [tests/selinux] pr775-checkpolicy-revdeps: move more downstream tests to upstream repository Date: Fri, 11 Sep 2026 13:21:35 GMT Message-ID: <178913289512.1.11165770297398158045.tests-selinux-674ade6166c9@fedoraproject.org> List-ID: X-Git-Repo: tests/selinux X-Git-Branch: pr775-checkpolicy-revdeps X-Git-Rev: 674ade6166c9586a741a20ade5cf45d0ddc6fc74 ICAgICAgICAgICAgQSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KCiAgICAgICAgICAgIFJl cG8gICA6IHRlc3RzL3NlbGludXgKICAgICAgICAgICAgQnJhbmNoIDogcHI3NzUtY2hlY2twb2xp Y3ktcmV2ZGVwcwogICAgICAgICAgICBDb21taXQgOiA2NzRhZGU2MTY2Yzk1ODZhNzQxYTIwYWRl NWNmNDVkMGRkYzZmYzc0CiAgICAgICAgICAgIEF1dGhvciA6IE1pbG9zIE1hbGlrIDxtbWFsaWtA cmVkaGF0LmNvbT4KICAgICAgICAgICAgRGF0ZSAgIDogMjAyNC0wNC0xN1QxMTowNDo1MCswMjow MAogICAgICAgICAgICBTdGF0cyAgOiArMjMwMi8tMCBpbiA0MCBmaWxlKHMpCiAgICAgICAgICAg IFVSTCAgICA6IGh0dHBzOi8vc3JjLmZlZG9yYXByb2plY3Qub3JnL3Rlc3RzL3NlbGludXgvYy82 NzRhZGU2MTY2Yzk1ODZhNzQxYTIwYWRlNWNmNDVkMGRkYzZmYzc0P2JyYW5jaD1wcjc3NS1jaGVj a3BvbGljeS1yZXZkZXBzCgogICAgICAgICAgICBMb2c6CiAgICAgICAgICAgIG1vdmUgbW9yZSBk b3duc3RyZWFtIHRlc3RzIHRvIHVwc3RyZWFtIHJlcG9zaXRvcnkKClRoZSBmb2xsb3dpbmcgYXV0 b21hdGVkIHRlc3RzIGFyZSBpbXBvcnRhbnQgZm9yIHVwc3RyZWFtIHRlc3RpbmcKdG9vIGFuZCB0 aGF0J3Mgd2h5IHRoZXkgc2hvdWxkIGJlIG1vdmVkIGZyb20gdGhlIGRvd25zdHJlYW0gcmVwbwp0 byB0aGUgdXBzdHJlYW0gb25lLgoKLS0tCmRpZmYgLS1naXQgYS9saWJzZW1hbmFnZS9zZW1hbmFn ZS1oYW5kbGUtZnVuY3Rpb25zL01ha2VmaWxlIGIvbGlic2VtYW5hZ2Uvc2VtYW5hZ2UtaGFuZGxl LWZ1bmN0aW9ucy9NYWtlZmlsZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5j NDlkYmUwCi0tLSAvZGV2L251bGwKKysrIGIvbGlic2VtYW5hZ2Uvc2VtYW5hZ2UtaGFuZGxlLWZ1 bmN0aW9ucy9NYWtlZmlsZQpAQCAtMCwwICsxLDYzIEBACisjIH5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CisjCisjICAg TWFrZWZpbGUgb2YgL0NvcmVPUy9saWJzZW1hbmFnZS9TYW5pdHkvc2VtYW5hZ2UtaGFuZGxlLWZ1 bmN0aW9ucworIyAgIERlc2NyaXB0aW9uOiBUZXN0IGZ1bmN0aW9ucyBmcm9tIGhhbmRsZS5oCisj ICAgQXV0aG9yOiBKYW4gWmFyc2t5IDxqemFyc2t5QHJlZGhhdC5jb20+CisjCisjIH5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+CisjCisjICAgQ29weXJpZ2h0IChjKSAyMDE3IFJlZCBIYXQsIEluYy4KKyMKKyMgICBUaGlz IHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29y CisjICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGlj IExpY2Vuc2UgYXMKKyMgICBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlv biwgZWl0aGVyIHZlcnNpb24gMiBvZgorIyAgIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRp b24pIGFueSBsYXRlciB2ZXJzaW9uLgorIworIyAgIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRl ZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUKKyMgICB1c2VmdWwsIGJ1dCBXSVRIT1VUIEFO WSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkCisjICAgd2FycmFudHkgb2YgTUVS Q0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorIyAgIFBVUlBPU0UuICBT ZWUgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisjCisj ICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVi bGljIExpY2Vuc2UKKyMgICBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gSWYgbm90LCBzZWUgaHR0 cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLy4KKyMKKyMgfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KKworZXhwb3J0IFRF U1Q9L0NvcmVPUy9saWJzZW1hbmFnZS9TYW5pdHkvc2VtYW5hZ2UtaGFuZGxlLWZ1bmN0aW9ucwor ZXhwb3J0IFRFU1RWRVJTSU9OPTEuMAorCitCVUlMVF9GSUxFUz0KKworRklMRVM9JChNRVRBREFU QSkgcnVudGVzdC5zaCBNYWtlZmlsZSBQVVJQT1NFIGZ1bmN0aW9ucy5jIHRlc3RfKi5jCisKKy5Q SE9OWTogYWxsIGluc3RhbGwgZG93bmxvYWQgY2xlYW4KKworcnVuOiAkKEZJTEVTKSBidWlsZAor CS4vcnVudGVzdC5zaAorCitidWlsZDogJChCVUlMVF9GSUxFUykKKwl0ZXN0IC14IHJ1bnRlc3Qu c2ggfHwgY2htb2QgYSt4IHJ1bnRlc3Quc2gKKworY2xlYW46CisJcm0gLWYgKn4gJChCVUlMVF9G SUxFUykKKworCitpbmNsdWRlIC91c3Ivc2hhcmUvcmh0cy9saWIvcmh0cy1tYWtlLmluY2x1ZGUK KworJChNRVRBREFUQSk6IE1ha2VmaWxlCisJQGVjaG8gIk93bmVyOiAgICAgICAgICAgSmFuIFph cnNreSA8anphcnNreUByZWRoYXQuY29tPiIgPiAkKE1FVEFEQVRBKQorCUBlY2hvICJOYW1lOiAg ICAgICAgICAgICQoVEVTVCkiID4+ICQoTUVUQURBVEEpCisJQGVjaG8gIlRlc3RWZXJzaW9uOiAg ICAgJChURVNUVkVSU0lPTikiID4+ICQoTUVUQURBVEEpCisJQGVjaG8gIlBhdGg6ICAgICAgICAg ICAgJChURVNUX0RJUikiID4+ICQoTUVUQURBVEEpCisJQGVjaG8gIkRlc2NyaXB0aW9uOiAgICAg VGVzdCBmdW5jdGlvbnMgZnJvbSBoYW5kbGUuaCIgPj4gJChNRVRBREFUQSkKKwlAZWNobyAiVHlw ZTogICAgICAgICAgICBTYW5pdHkiID4+ICQoTUVUQURBVEEpCisJQGVjaG8gIlRlc3RUaW1lOiAg ICAgICAgNW0iID4+ICQoTUVUQURBVEEpCisJQGVjaG8gIlJ1bkZvcjogICAgICAgICAgbGlic2Vt YW5hZ2UiID4+ICQoTUVUQURBVEEpCisJQGVjaG8gIlJlcXVpcmVzOiAgICAgICAgbGlic2VtYW5h Z2UgbGlic2VtYW5hZ2UtZGV2ZWwgZ2xpYmMgZ2NjIiA+PiAkKE1FVEFEQVRBKQorCUBlY2hvICJQ cmlvcml0eTogICAgICAgIE5vcm1hbCIgPj4gJChNRVRBREFUQSkKKwlAZWNobyAiTGljZW5zZTog ICAgICAgICBHUEx2MisiID4+ICQoTUVUQURBVEEpCisJQGVjaG8gIkNvbmZpZGVudGlhbDogICAg bm8iID4+ICQoTUVUQURBVEEpCisJQGVjaG8gIkRlc3RydWN0aXZlOiAgICAgbm8iID4+ICQoTUVU QURBVEEpCisJQGVjaG8gIlJlbGVhc2VzOiAgICAgICAgLVJIRUw0IC1SSEVMQ2xpZW50NSAtUkhF TFNlcnZlcjUiID4+ICQoTUVUQURBVEEpCisKKwlyaHRzLWxpbnQgJChNRVRBREFUQSkKCmRpZmYg LS1naXQgYS9saWJzZW1hbmFnZS9zZW1hbmFnZS1oYW5kbGUtZnVuY3Rpb25zL1BVUlBPU0UgYi9s aWJzZW1hbmFnZS9zZW1hbmFnZS1oYW5kbGUtZnVuY3Rpb25zL1BVUlBPU0UKbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDlhOGUxOQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnNl bWFuYWdlL3NlbWFuYWdlLWhhbmRsZS1mdW5jdGlvbnMvUFVSUE9TRQpAQCAtMCwwICsxLDMgQEAK K1BVUlBPU0Ugb2YgL0NvcmVPUy9saWJzZW1hbmFnZS9TYW5pdHkvc2VtYW5hZ2UtaGFuZGxlLWZ1 bmN0aW9ucworRGVzY3JpcHRpb246IFRlc3QgZnVuY3Rpb25zIGZyb20gaGFuZGxlLmgKK0F1dGhv cjogSmFuIFphcnNreSA8anphcnNreUByZWRoYXQuY29tPgoKZGlmZiAtLWdpdCBhL2xpYnNlbWFu YWdlL3NlbWFuYWdlLWhhbmRsZS1mdW5jdGlvbnMvZnVuY3Rpb25zLmMgYi9saWJzZW1hbmFnZS9z ZW1hbmFnZS1oYW5kbGUtZnVuY3Rpb25zL2Z1bmN0aW9ucy5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAuLjc3MjJjMDkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJzZW1hbmFnZS9z ZW1hbmFnZS1oYW5kbGUtZnVuY3Rpb25zL2Z1bmN0aW9ucy5jCkBAIC0wLDAgKzEsMTMyIEBACisj aW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDxzdGRsaWIuaD4KKyNpbmNsdWRlIDxzdHJpbmcu aD4KKyNpbmNsdWRlIDxlcnJuby5oPgorI2luY2x1ZGUgPHNlbWFuYWdlL3NlbWFuYWdlLmg+CisK K3ZvaWQgY2hlY2tfcmVzdWx0X2ludChjb25zdCBjaGFyICpleHBlY3RlZCwgaW50IHJlYWwpIHsK KyAgICBpbnQgZXhwID0gc3RydG9sKGV4cGVjdGVkLCBOVUxMLCAxMCk7CisKKyAgICBpZiAoZXhw ICE9IHJlYWwpIHsKKyAgICAgICAgZnByaW50ZihzdGRlcnIsICJFeHBlY3RlZCAlZCBidXQgZ290 ICVkXG4iLCBleHAsIHJlYWwpOworICAgICAgICBleGl0KDEpOworICAgIH0KK30KKworc2VtYW5h Z2VfaGFuZGxlX3QgKnRlc3RfaGFuZGxlX2NyZWF0ZSgpIHsKKyAgICBzZW1hbmFnZV9oYW5kbGVf dCAqc2ggPSBOVUxMOworCisgICAgc2ggPSBzZW1hbmFnZV9oYW5kbGVfY3JlYXRlKCk7CisgICAg cHJpbnRmKCJzZW1hbmFnZV9oYW5kbGVfY3JlYXRlKCk6ICVwXG4iLCAodm9pZCAqKSBzaCk7CisK KyAgICBpZiAoc2ggPT0gTlVMTCkgeworICAgICAgICBwZXJyb3IoInNlbWFuYWdlX2hhbmRsZV9j cmVhdGUiKTsKKyAgICAgICAgZXhpdCgxKTsKKyAgICB9CisKKyAgICByZXR1cm4gc2g7Cit9CisK K2ludCB0ZXN0X2Nvbm5lY3Qoc2VtYW5hZ2VfaGFuZGxlX3QgKnNoKSB7CisgICAgaW50IHJlc3Vs dCA9IHNlbWFuYWdlX2Nvbm5lY3Qoc2gpOworICAgIHByaW50Zigic2VtYW5hZ2VfY29ubmVjdCgl cCk6ICVkXG4iLCAodm9pZCAqKSBzaCwgcmVzdWx0KTsKKworICAgIGlmIChyZXN1bHQgIT0gMCkg eworICAgICAgICBwZXJyb3IoInNlbWFuYWdlX2Nvbm5lY3QiKTsKKyAgICAgICAgZXhpdCgxKTsK KyAgICB9CisKKyAgICByZXR1cm4gcmVzdWx0OworfQorCitpbnQgdGVzdF9kaXNjb25uZWN0KHNl bWFuYWdlX2hhbmRsZV90ICpzaCkgeworICAgIGludCByZXN1bHQgPSBzZW1hbmFnZV9kaXNjb25u ZWN0KHNoKTsKKyAgICBwcmludGYoInNlbWFuYWdlX2Rpc2Nvbm5lY3QoJXApOiAlZFxuIiwgKHZv aWQgKikgc2gsIHJlc3VsdCk7CisKKyAgICBpZiAocmVzdWx0ICE9IDApIHsKKyAgICAgICAgcGVy cm9yKCJzZW1hbmFnZV9kaXNjb25uZWN0Iik7CisgICAgICAgIGV4aXQoMSk7CisgICAgfQorCisg ICAgcmV0dXJuIHJlc3VsdDsKK30KKworaW50IHRlc3RfYmVnaW5fdHJhbnNhY3Rpb24oc2VtYW5h Z2VfaGFuZGxlX3QgKnNoKSB7CisgICAgaW50IHJlc3VsdCA9IHNlbWFuYWdlX2JlZ2luX3RyYW5z YWN0aW9uKHNoKTsKKyAgICBwcmludGYoInNlbWFuYWdlX2JlZ2luX3RyYW5zYWN0aW9uKCVwKTog JWRcbiIsICh2b2lkICopIHNoLCByZXN1bHQpOworCisgICAgaWYgKHJlc3VsdCAhPSAwKSB7Cisg ICAgICAgIHBlcnJvcigic2VtYW5hZ2VfYmVnaW5fdHJhbnNhY3Rpb24iKTsKKyAgICAgICAgZXhp dCgxKTsKKyAgICB9CisKKyAgICByZXR1cm4gcmVzdWx0OworfQorCitpbnQgdGVzdF9jb21taXQo c2VtYW5hZ2VfaGFuZGxlX3QgKnNoKSB7CisgICAgaW50IHJlc3VsdCA9IHNlbWFuYWdlX2NvbW1p dChzaCk7CisgICAgcHJpbnRmKCJzZW1hbmFnZV9jb21taXQoJXApOiAlZFxuIiwgKHZvaWQgKikg c2gsIHJlc3VsdCk7CisKKyAgICBpZiAocmVzdWx0ICE9IDApIHsKKyAgICAgICAgcGVycm9yKCJz ZW1hbmFnZV9jb21taXQiKTsKKyAgICAgICAgZXhpdCgxKTsKKyAgICB9CisKKyAgICByZXR1cm4g cmVzdWx0OworfQorCisjZGVmaW5lIFNUQVRFX0lOSVQgICAgICAxCisjZGVmaW5lIFNUQVRFX0hB TkRMRSAgICAyCisjZGVmaW5lIFNUQVRFX0NPTk4gICAgICAzCisjZGVmaW5lIFNUQVRFX1RSQU5T ICAgICA0CisKK2ludCBnZXRfc3RhdGUoY29uc3QgY2hhciAqc3RhdGVfc3RyKSB7CisgICAgaWYg KHN0cmNtcChzdGF0ZV9zdHIsICJpbml0IikgPT0gMCkKKyAgICAgICAgcmV0dXJuIFNUQVRFX0lO SVQ7CisgICAgaWYgKHN0cmNtcChzdGF0ZV9zdHIsICJoYW5kbGUiKSA9PSAwKQorICAgICAgICBy ZXR1cm4gU1RBVEVfSEFORExFOworICAgIGlmIChzdHJjbXAoc3RhdGVfc3RyLCAiY29ubiIpID09 IDApCisgICAgICAgIHJldHVybiBTVEFURV9DT05OOworICAgIGlmIChzdHJjbXAoc3RhdGVfc3Ry LCAidHJhbnMiKSA9PSAwKQorICAgICAgICByZXR1cm4gU1RBVEVfVFJBTlM7CisKKyAgICByZXR1 cm4gMDsKK30KKworc2VtYW5hZ2VfaGFuZGxlX3QgKiBnZXRfaGFuZGxlKGNvbnN0IGNoYXIgKnN0 YXRlX3N0cikgeworICAgIGludCBzdGF0ZTsKKyAgICBzZW1hbmFnZV9oYW5kbGVfdCAqc2ggPSBO VUxMOworCisgICAgc3RhdGUgPSBnZXRfc3RhdGUoc3RhdGVfc3RyKTsKKworICAgIGlmIChzdGF0 ZSA+PSBTVEFURV9JTklUKQorICAgICAgICBzaCA9IE5VTEw7CisKKyAgICBpZiAoc3RhdGUgPj0g U1RBVEVfSEFORExFKQorICAgICAgICBzaCA9IHRlc3RfaGFuZGxlX2NyZWF0ZSgpOworCisgICAg aWYgKHN0YXRlID49IFNUQVRFX0NPTk4pCisgICAgICAgIHRlc3RfY29ubmVjdChzaCk7CisKKyAg ICBpZiAoc3RhdGUgPj0gU1RBVEVfVFJBTlMpCisgICAgICAgIHRlc3RfYmVnaW5fdHJhbnNhY3Rp b24oc2gpOworCisgICAgcmV0dXJuIHNoOworfQorCit2b2lkIGRlc3Ryb3lfaGFuZGxlKHNlbWFu YWdlX2hhbmRsZV90ICpzaCwgY29uc3QgY2hhciAqc3RhdGVfc3RyKSB7CisgICAgaW50IHN0YXRl OworCisgICAgc3RhdGUgPSBnZXRfc3RhdGUoc3RhdGVfc3RyKTsKKworICAgIGlmIChzdGF0ZSA+ PSBTVEFURV9UUkFOUykKKyAgICAgICAgdGVzdF9jb21taXQoc2gpOworCisgICAgaWYgKHN0YXRl ID49IFNUQVRFX0NPTk4pCisgICAgICAgIHRlc3RfZGlzY29ubmVjdChzaCk7CisKKyAgICBpZiAo c3RhdGUgPj0gU1RBVEVfSEFORExFKSB7CisgICAgICAgIHNlbWFuYWdlX2hhbmRsZV9kZXN0cm95 KHNoKTsKKyAgICAgICAgcHJpbnRmKCJzZW1hbmFnZV9oYW5kbGVfZGVzdHJveSglcClcbiIsICh2 b2lkICopIHNoKTsKKyAgICB9Cit9CgpkaWZmIC0tZ2l0IGEvbGlic2VtYW5hZ2Uvc2VtYW5hZ2Ut aGFuZGxlLWZ1bmN0aW9ucy9tYWluLmZtZiBiL2xpYnNlbWFuYWdlL3NlbWFuYWdlLWhhbmRsZS1m dW5jdGlvbnMvbWFpbi5mbWYKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2Iz ZTFkNwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnNlbWFuYWdlL3NlbWFuYWdlLWhhbmRsZS1mdW5j dGlvbnMvbWFpbi5mbWYKQEAgLTAsMCArMSwzNCBAQAorc3VtbWFyeTogVGVzdCBmdW5jdGlvbnMg ZnJvbSBoYW5kbGUuaAorZGVzY3JpcHRpb246ICcnCitjb250YWN0OiBNaWxvcyBNYWxpayA8bW1h bGlrQHJlZGhhdC5jb20+Citjb21wb25lbnQ6CisgIC0gbGlic2VtYW5hZ2UKK3Rlc3Q6IC4vcnVu dGVzdC5zaAorZnJhbWV3b3JrOiBiZWFrZXJsaWIKK3JlY29tbWVuZDoKKyAgLSBsaWJzZW1hbmFn ZQorICAtIGxpYnNlbWFuYWdlLWRldmVsCisgIC0gZ2xpYmMKKyAgLSBnY2MKK2R1cmF0aW9uOiA1 bQorZW5hYmxlZDogdHJ1ZQordGFnOgorICAtIE5vUkhFTDQKKyAgLSBOb1JIRUw1CisgIC0gVGll cjEKKyAgLSBUaWVyMXNlCisgIC0gZjMxZnJpZW5kbHkKKyAgLSBmMzJmcmllbmRseQorICAtIHJo ZWw4LWJ1aWxkcm9vdAorICAtIHJoZWw5LWJ1aWxkcm9vdAordGllcjogJzEnCitsaW5rOgorICAt IHJlbGF0ZXM6IGh0dHBzOi8vYnVnemlsbGEucmVkaGF0LmNvbS9zaG93X2J1Zy5jZ2k/aWQ9MTY0 MjMwNQorICAtIHJlbGF0ZXM6IGh0dHBzOi8vYnVnemlsbGEucmVkaGF0LmNvbS9zaG93X2J1Zy5j Z2k/aWQ9MTc4MTA5NworYWRqdXN0OgorICAtIGVuYWJsZWQ6IGZhbHNlCisgICAgd2hlbjogZGlz dHJvID09IHJoZWwtNCwgcmhlbC01CisgICAgY29udGludWU6IGZhbHNlCitleHRyYS1uaXRyYXRl OiBUQyMwNTQ2MjIwCitleHRyYS1zdW1tYXJ5OiAvQ29yZU9TL2xpYnNlbWFuYWdlL1Nhbml0eS9z ZW1hbmFnZS1oYW5kbGUtZnVuY3Rpb25zCitleHRyYS10YXNrOiAvQ29yZU9TL2xpYnNlbWFuYWdl L1Nhbml0eS9zZW1hbmFnZS1oYW5kbGUtZnVuY3Rpb25zCgpkaWZmIC0tZ2l0IGEvbGlic2VtYW5h Z2Uvc2VtYW5hZ2UtaGFuZGxlLWZ1bmN0aW9ucy9wbGFuLnR4dCBiL2xpYnNlbWFuYWdlL3NlbWFu YWdlLWhhbmRsZS1mdW5jdGlvbnMvcGxhbi50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMC4uNTIxYTkxNAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnNlbWFuYWdlL3NlbWFuYWdl LWhhbmRsZS1mdW5jdGlvbnMvcGxhbi50eHQKQEAgLTAsMCArMSwyOSBAQAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluaXQgICAgaGFuZGxlICBjb25uICAgIHRyYW5z CitzZW1hbmFnZV9zZXRfcm9vdCAgICAgICAgICAgICAgICAgICB4ICAgb2sgICAgICBvayAgICAg IG9rICAgICAgLQorc2VtYW5hZ2Vfcm9vdCAgICAgICAgICAgICAgICAgICAgICAgeCAgIG9rICAg ICAgb2sgICAgICBvayAgICAgIC0KK3NlbWFuYWdlX2hhbmRsZV9jcmVhdGUgICAgICAgICAgICAg IHggICBvayAgICAgIC0gICAgICAgLSAgICAgICAtICAgICAgICAKK3NlbWFuYWdlX3NldF9yZWJ1 aWxkICAgICAgICAgICAgICAgICAgICBmYWlsICAgIG9rICAgICAgb2sgICAgICAtCitzZW1hbmFn ZV9zZXRfcmVsb2FkICAgICAgICAgICAgICAgICAgICAgZmFpbCAgICBvayAgICAgIG9rICAgICAg LQorc2VtYW5hZ2VfZ2V0X2hsbF9jb21waWxlcl9wYXRoICAgICAgICAgIGZhaWwgICAgPyAgICAg ICA/ICAgICAgIC0KK3NlbWFuYWdlX3NldF9jcmVhdGVfc3RvcmUgICAgICAgICAgICAgICBmYWls ICAgIG9rICAgICAgb2sgICAgICAtICAgICAgIHNob3VsZCBiZSBjYWxsZWQgYWZ0ZXIgY29ubmVj dAorc2VtYW5hZ2VfZ2V0X2Rpc2FibGVfZG9udGF1ZGl0ICAgICAgICAgIGZhaWwgICAgPyAgICAg ICA/ICAgICAgIC0KK3NlbWFuYWdlX3NldF9kaXNhYmxlX2RvbnRhdWRpdCAgICAgICAgICBmYWls ICAgID8gICAgICAgPyAgICAgICAtCitzZW1hbmFnZV9nZXRfcHJlc2VydmVfdHVuYWJsZXMgICAg ICAgICAgZmFpbCAgICA/ICAgICAgID8gICAgICAgLQorc2VtYW5hZ2Vfc2V0X3ByZXNlcnZlX3R1 bmFibGVzICAgICAgICAgIGZhaWwgICAgPyAgICAgICA/ICAgICAgIC0KK3NlbWFuYWdlX2dldF9p Z25vcmVfbW9kdWxlX2NhY2hlICAgICAgICBmYWlsICAgID8gICAgICAgPyAgICAgICAtCitzZW1h bmFnZV9zZXRfaWdub3JlX21vZHVsZV9jYWNoZSAgICAgICAgZmFpbCAgICA/ICAgICAgID8gICAg ICAgLQorc2VtYW5hZ2Vfc2V0X2NoZWNrX2NvbnRleHRzICAgICAgICAgICAgIGZhaWwgICAgb2sg ICAgICBvayAgICAgIC0KK3NlbWFuYWdlX2dldF9kZWZhdWx0X3ByaW9yaXR5ICAgICAgICAgICBm YWlsICAgIG9rICAgICAgb2sgICAgICAtCitzZW1hbmFnZV9zZXRfZGVmYXVsdF9wcmlvcml0eSAg ICAgICAgICAgZmFpbCAgICBvayAgICAgIG9rICAgICAgLQorc2VtYW5hZ2VfaXNfY29ubmVjdGVk ICAgICAgICAgICAgICAgeCAgIGZhaWwgICAgb2sgICAgICBvayAgICAgIC0KK3NlbWFuYWdlX3Nl bGVjdF9zdG9yZSAgICAgICAgICAgICAgICAgICBmYWlsICAgIG9rICAgICAgb2sgICAgICAtICAg ICAgIHNob3VsZCBiZSBjYWxsZWQgYmVmb3JlIGNvbm5lY3QKK3NlbWFuYWdlX3NldF9zdG9yZV9y b290ICAgICAgICAgICAgICAgICBmYWlsICAgIG9rICAgICAgb2sgICAgICAtCitzZW1hbmFnZV9p c19tYW5hZ2VkICAgICAgICAgICAgICAgICB4ICAgZmFpbCAgICBvayAgICAgIGZhaWwgICAgLQor c2VtYW5hZ2VfbWxzX2VuYWJsZWQgICAgICAgICAgICAgICAgeCAgIGZhaWwgICAgPyAgICAgICBv ayAgICAgIC0KK3NlbWFuYWdlX2Nvbm5lY3QgICAgICAgICAgICAgICAgICAgIHggICBmYWlsICAg IG9rICAgICAgPyAgICAgICAtCitzZW1hbmFnZV9hY2Nlc3NfY2hlY2sgICAgICAgICAgICAgICB4 ICAgZmFpbCAgICBvayAgICAgID8gICAgICAgLQorc2VtYW5hZ2VfZGlzY29ubmVjdCAgICAgICAg ICAgICAgICAgeCAgIGZhaWwgICAgZmFpbCAgICBvayAgICAgIC0gICAgICAgb2sgd2hlbiBkaXNj b25uZWN0ZWQgdHdpY2UKK3NlbWFuYWdlX2hhbmRsZV9kZXN0cm95ICAgICAgICAgICAgIHggICBm YWlsICAgIG9rICAgICAgb2sgICAgICAtCitzZW1hbmFnZV9iZWdpbl90cmFuc2FjdGlvbiAgICAg ICAgICB4ICAgZmFpbCAgICBmYWlsICAgIG9rICAgICAgb2sgICAgICBvayB3aGVuIGJlZ2luIHR3 aWNlCitzZW1hbmFnZV9jb21taXQgICAgICAgICAgICAgICAgICAgICB4ICAgZmFpbCAgICBmYWls ICAgIGZhaWwgICAgb2sKK3NlbWFuYWdlX3JlbG9hZF9wb2xpY3kgICAgICAgICAgICAgICAgICBm YWlsICAgID8gICAgICAgPyAgICAgICA/CgpkaWZmIC0tZ2l0IGEvbGlic2VtYW5hZ2Uvc2VtYW5h Z2UtaGFuZGxlLWZ1bmN0aW9ucy9ydW50ZXN0LnNoIGIvbGlic2VtYW5hZ2Uvc2VtYW5hZ2UtaGFu ZGxlLWZ1bmN0aW9ucy9ydW50ZXN0LnNoCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAw MDAuLmI3ZmQ2ZjAKLS0tIC9kZXYvbnVsbAorKysgYi9saWJzZW1hbmFnZS9zZW1hbmFnZS1oYW5k bGUtZnVuY3Rpb25zL3J1bnRlc3Quc2gKQEAgLTAsMCArMSwxMjEgQEAKKyMhL2Jpbi9iYXNoCisj IHZpbTogZGljdCs9L3Vzci9zaGFyZS9iZWFrZXJsaWIvZGljdGlvbmFyeS52aW0gY3B0PS4sdyxi LHUsdCxpLGsKKyMgfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KKyMKKyMgICBydW50ZXN0LnNoIG9mIC9Db3JlT1MvbGli c2VtYW5hZ2UvU2FuaXR5L3NlbWFuYWdlLWhhbmRsZS1mdW5jdGlvbnMKKyMgICBEZXNjcmlwdGlv bjogVGVzdCBmdW5jdGlvbnMgZnJvbSBoYW5kbGUuaAorIyAgIEF1dGhvcjogSmFuIFphcnNreSA8 anphcnNreUByZWRoYXQuY29tPgorIworIyB+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgorIworIyAgIENvcHlyaWdodCAo YykgMjAxNyBSZWQgSGF0LCBJbmMuCisjCisjICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdh cmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorIyAgIG1vZGlmeSBpdCB1bmRlciB0 aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzCisjICAgcHVibGlz aGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDIgb2YK KyMgICB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4K KyMKKyMgICBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3 aWxsIGJlCisjICAgdXNlZnVsLCBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZl biB0aGUgaW1wbGllZAorIyAgIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNT IEZPUiBBIFBBUlRJQ1VMQVIKKyMgICBQVVJQT1NFLiAgU2VlIHRoZSBHTlUgR2VuZXJhbCBQdWJs aWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorIworIyAgIFlvdSBzaG91bGQgaGF2ZSByZWNl aXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisjICAgYWxvbmcg d2l0aCB0aGlzIHByb2dyYW0uIElmIG5vdCwgc2VlIGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNl cy8uCisjCisjIH5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+CisKKyMgSW5jbHVkZSBCZWFrZXIgZW52aXJvbm1lbnQKKy4g L3Vzci9zaGFyZS9iZWFrZXJsaWIvYmVha2VybGliLnNoIHx8IGV4aXQgMQorCitQQUNLQUdFPSJs aWJzZW1hbmFnZSIKKworcmxKb3VybmFsU3RhcnQKKyAgICBybFBoYXNlU3RhcnRTZXR1cAorICAg ICAgICBybEFzc2VydFJwbSAke1BBQ0tBR0V9CisgICAgICAgIHJsQXNzZXJ0UnBtICR7UEFDS0FH RX0tZGV2ZWwKKyAgICAgICAgcmxBc3NlcnRScG0gImdsaWJjIgorICAgICAgICBybEFzc2VydFJw bSAiZ2NjIgorCisgICAgICAgIGlmIHJsSXNSSEVMICI+PTciIHx8IHJsSXNGZWRvcmE7IHRoZW4K KyAgICAgICAgICAgIHJsUnVuIC1sICJnY2MgdGVzdF9yb290LmMgICAgICAgICAgIC1vIHRlc3Rf cm9vdCAgICAgICAgICAgIC1sc2VtYW5hZ2UgLVdhbGwgLVdleHRyYSAtc3RkPWM5OSIKKyAgICAg ICAgZmkKKworICAgICAgICBybFJ1biAtbCAiZ2NjIHRlc3RfaGFuZGxlX2NyZWF0ZS5jICAtbyB0 ZXN0X2hhbmRsZV9jcmVhdGUgICAtbHNlbWFuYWdlIC1XYWxsIC1XZXh0cmEgLVduby11bnVzZWQt cGFyYW1ldGVyIC1zdGQ9Yzk5IgorICAgICAgICBybFJ1biAtbCAiZ2NjIHRlc3RfYWNjZXNzX2No ZWNrLmMgICAtbyB0ZXN0X2FjY2Vzc19jaGVjayAgICAtbHNlbWFuYWdlIC1XYWxsIC1XZXh0cmEg LXN0ZD1jOTkiCisgICAgICAgIHJsUnVuIC1sICJnY2MgdGVzdF9pc19tYW5hZ2VkLmMgICAgIC1v IHRlc3RfaXNfbWFuYWdlZCAgICAgIC1sc2VtYW5hZ2UgLVdhbGwgLVdleHRyYSAtc3RkPWM5OSIK KyAgICAgICAgcmxSdW4gLWwgImdjYyB0ZXN0X2Nvbm5lY3QuYyAgICAgICAgLW8gdGVzdF9jb25u ZWN0ICAgICAgICAgLWxzZW1hbmFnZSAtV2FsbCAtV2V4dHJhIC1zdGQ9Yzk5IgorICAgICAgICBy bFJ1biAtbCAiZ2NjIHRlc3RfaXNfY29ubmVjdGVkLmMgICAtbyB0ZXN0X2lzX2Nvbm5lY3RlZCAg ICAtbHNlbWFuYWdlIC1XYWxsIC1XZXh0cmEgLXN0ZD1jOTkiCisgICAgICAgIHJsUnVuIC1sICJn Y2MgdGVzdF9tbHNfZW5hYmxlZC5jICAgIC1vIHRlc3RfbWxzX2VuYWJsZWQgICAgIC1sc2VtYW5h Z2UgLVdhbGwgLVdleHRyYSAtc3RkPWM5OSIKKyAgICAgICAgcmxSdW4gLWwgImdjYyB0ZXN0X3Ry YW5zYWN0aW9uLmMgICAgLW8gdGVzdF90cmFuc2FjdGlvbiAgICAgLWxzZW1hbmFnZSAtV2FsbCAt V2V4dHJhIC1zdGQ9Yzk5IgorCisgICAgICAgIEVSUl9GQUlMPTEKKyAgICAgICAgRVJSX0FCT1JU PTEzNAorICAgIHJsUGhhc2VFbmQKKworICAgIGlmIHJsSXNSSEVMICI+PTciIHx8IHJsSXNGZWRv cmE7IHRoZW4KKyAgICBybFBoYXNlU3RhcnRUZXN0ICJzZW1hbmFnZV9yb290LCBzZW1hbmFnZV90 ZXN0X3Jvb3QiCisgICAgICAgIHJsUnVuICIuL3Rlc3Rfcm9vdCBpbml0IgorICAgICAgICBybFJ1 biAiLi90ZXN0X3Jvb3QgaGFuZGxlIgorICAgICAgICBybFJ1biAiLi90ZXN0X3Jvb3QgY29ubiIK KyAgICAgICAgcmxSdW4gIi4vdGVzdF9yb290IGluaXQgL3NvbWVwYXRoIgorICAgICAgICBybFJ1 biAiLi90ZXN0X3Jvb3QgaGFuZGxlIC9zb21lcGF0aCIKKyAgICAgICAgcmxSdW4gIi4vdGVzdF9y b290IGNvbm4gL3NvbWVwYXRoIgorICAgIHJsUGhhc2VFbmQKKyAgICBmaQorCisgICAgcmxQaGFz ZVN0YXJ0VGVzdCAic2VtYW5hZ2VfaGFuZGxlX2NyZWF0ZSwgc2VtYW5hZ2VfaGFuZGxlX2Rlc3Ry b3kiCisgICAgICAgIHJsUnVuICIuL3Rlc3RfaGFuZGxlX2NyZWF0ZSBpbml0IgorICAgIHJsUGhh c2VFbmQKKworICAgIHJsUGhhc2VTdGFydFRlc3QgInNlbWFuYWdlX2FjY2Vzc19jaGVjayIKKyAg ICAgICAgcmxSdW4gIi4vdGVzdF9hY2Nlc3NfY2hlY2sgaW5pdCIgJEVSUl9BQk9SVAorICAgICAg ICBybFJ1biAiLi90ZXN0X2FjY2Vzc19jaGVjayBoYW5kbGUgMiIKKyAgICAgICAgcmxSdW4gIi4v dGVzdF9hY2Nlc3NfY2hlY2sgY29ubiAyIgorICAgIHJsUGhhc2VFbmQKKworICAgIHJsUGhhc2VT dGFydFRlc3QgInNlbWFuYWdlX2lzX21hbmFnZWQiCisgICAgICAgIHJsUnVuICIuL3Rlc3RfaXNf bWFuYWdlZCBpbml0IiAkRVJSX0FCT1JUCisgICAgICAgIHJsUnVuICIuL3Rlc3RfaXNfbWFuYWdl ZCBoYW5kbGUgMSIKKyAgICAgICAgcmxSdW4gIi4vdGVzdF9pc19tYW5hZ2VkIGNvbm4iICRFUlJf RkFJTAorICAgIHJsUGhhc2VFbmQKKworICAgIHJsUGhhc2VTdGFydFRlc3QgInNlbWFuYWdlX2Nv bm5lY3QsIHNlbWFuYWdlX2Rpc2Nvbm5lY3QiCisgICAgICAgIHJsUnVuICIuL3Rlc3RfY29ubmVj dCBpbml0IiAkRVJSX0FCT1JUCisgICAgICAgIHJsUnVuICIuL3Rlc3RfY29ubmVjdCBpbml0IHJl dmVyc2VkIiAkRVJSX0FCT1JUCisgICAgICAgIHJsUnVuICIuL3Rlc3RfY29ubmVjdCBoYW5kbGUi CisgICAgICAgIHJsUnVuICIuL3Rlc3RfY29ubmVjdCBoYW5kbGUgdHdpY2UiCisgICAgICAgIHJs UnVuICIuL3Rlc3RfY29ubmVjdCBoYW5kbGUgcmV2ZXJzZWQiICRFUlJfQUJPUlQKKyAgICAgICAg IyB3aHkgZG9lcyBpdCB3b3JrPz8KKyAgICAgICAgcmxSdW4gIi4vdGVzdF9jb25uZWN0IGNvbm4i CisgICAgcmxQaGFzZUVuZAorCisgICAgcmxQaGFzZVN0YXJ0VGVzdCAic2VtYW5hZ2VfaXNfY29u bmVjdGVkIgorICAgICAgICBybFJ1biAiLi90ZXN0X2lzX2Nvbm5lY3RlZCBpbml0IiAkRVJSX0FC T1JUCisgICAgICAgIHJsUnVuICIuL3Rlc3RfaXNfY29ubmVjdGVkIGhhbmRsZSAwIgorICAgICAg ICBybFJ1biAiLi90ZXN0X2lzX2Nvbm5lY3RlZCBjb25uIDEiCisgICAgcmxQaGFzZUVuZAorCisg ICAgcmxQaGFzZVN0YXJ0VGVzdCAic2VtYW5hZ2VfbWxzX2VuYWJsZWQiCisgICAgICAgIHJsUnVu ICIuL3Rlc3RfbWxzX2VuYWJsZWQgaW5pdCIgJEVSUl9BQk9SVAorICAgICAgICBybFJ1biAiLi90 ZXN0X21sc19lbmFibGVkIGhhbmRsZSIgJEVSUl9BQk9SVAorICAgICAgICBybFJ1biAiLi90ZXN0 X21sc19lbmFibGVkIGNvbm4gMSIKKyAgICBybFBoYXNlRW5kCisKKyAgICBybFBoYXNlU3RhcnRU ZXN0ICJzZW1hbmFnZV9iZWdpbl90cmFuc2FjdGlvbiwgc2VtYW5hZ2VfY29tbWl0IgorICAgICAg ICBybFJ1biAiLi90ZXN0X3RyYW5zYWN0aW9uIGluaXQiICRFUlJfQUJPUlQKKyAgICAgICAgcmxS dW4gIi4vdGVzdF90cmFuc2FjdGlvbiBpbml0IHJldmVyc2VkIiAkRVJSX0FCT1JUCisgICAgICAg IHJsUnVuICIuL3Rlc3RfdHJhbnNhY3Rpb24gaGFuZGxlIiAkRVJSX0FCT1JUCisgICAgICAgIHJs UnVuICIuL3Rlc3RfdHJhbnNhY3Rpb24gaGFuZGxlIHJldmVyc2VkIiAkRVJSX0FCT1JUCisgICAg ICAgIHJsUnVuICIuL3Rlc3RfdHJhbnNhY3Rpb24gY29ubiIKKyAgICAgICAgcmxSdW4gIi4vdGVz dF90cmFuc2FjdGlvbiBjb25uIHR3aWNlIgorICAgICAgICBybFJ1biAiLi90ZXN0X3RyYW5zYWN0 aW9uIGNvbm4gcmV2ZXJzZWQiICRFUlJfRkFJTAorICAgIHJsUGhhc2VFbmQKKworICAgIHJsUGhh c2VTdGFydENsZWFudXAKKyAgICAgICAgcmxSdW4gInJtIC1mIG91dHB1dCB0ZXN0X3Jvb3QgdGVz dF9oYW5kbGVfY3JlYXRlIHRlc3RfYWNjZXNzX2NoZWNrIFwKKyAgICAgICAgICAgICAgIHRlc3Rf aXNfbWFuYWdlZCB0ZXN0X2Nvbm5lY3QgdGVzdF9pc19jb25uZWN0ZWQgXAorICAgICAgICAgICAg ICAgdGVzdF9tbHNfZW5hYmxlZCB0ZXN0X3RyYW5zYWN0aW9uIgorICAgIHJsUGhhc2VFbmQKK3Js Sm91cm5hbFByaW50VGV4dAorcmxKb3VybmFsRW5kCgpkaWZmIC0tZ2l0IGEvbGlic2VtYW5hZ2Uv c2VtYW5hZ2UtaGFuZGxlLWZ1bmN0aW9ucy90ZXN0X2FjY2Vzc19jaGVjay5jIGIvbGlic2VtYW5h Z2Uvc2VtYW5hZ2UtaGFuZGxlLWZ1bmN0aW9ucy90ZXN0X2FjY2Vzc19jaGVjay5jCm5ldyBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhlYjI1MzAKLS0tIC9kZXYvbnVsbAorKysgYi9s aWJzZW1hbmFnZS9zZW1hbmFnZS1oYW5kbGUtZnVuY3Rpb25zL3Rlc3RfYWNjZXNzX2NoZWNrLmMK QEAgLTAsMCArMSwzMiBAQAorI2luY2x1ZGUgPHN0ZGlvLmg+CisjaW5jbHVkZSA8c3RkbGliLmg+ CisjaW5jbHVkZSA8c3RyaW5nLmg+CisjaW5jbHVkZSA8ZXJybm8uaD4KKyNpbmNsdWRlIDxzZW1h bmFnZS9zZW1hbmFnZS5oPgorCisjaW5jbHVkZSAiZnVuY3Rpb25zLmMiCisKK2ludCBtYWluIChp bnQgYXJnYywgY2hhciAqKmFyZ3YpIHsKKyAgICBzZW1hbmFnZV9oYW5kbGVfdCAqc2g7CisKKyAg ICBpZiAoYXJnYyA8IDIpCisgICAgICAgIGV4aXQoMSk7CisgICAgCisgICAgc2ggPSBnZXRfaGFu ZGxlKGFyZ3ZbMV0pOworCisgICAgaW50IHJlc3VsdCA9IHNlbWFuYWdlX2FjY2Vzc19jaGVjayhz aCk7CisgICAgcHJpbnRmKCJzZW1hbmFnZV9hY2Nlc3NfY2hlY2soJXApOiAlZFxuIiwgKHZvaWQg Kikgc2gsIHJlc3VsdCk7CisgICAgCisgICAgaWYgKHJlc3VsdCA8IDAgfHwgKHJlc3VsdCAhPSAw ICYmIHJlc3VsdCAhPSBTRU1BTkFHRV9DQU5fUkVBRAorICAgICAgICAgICAgICAgICAgICAgICAm JiByZXN1bHQgIT0gU0VNQU5BR0VfQ0FOX1dSSVRFKSkgeworICAgICAgICBwZXJyb3IoInNlbWFu YWdlX2FjY2Vzc19jaGVjayIpOworICAgICAgICBleGl0KDEpOworICAgIH0KKworICAgIGlmIChh cmdjID49IDMpCisgICAgICAgIGNoZWNrX3Jlc3VsdF9pbnQoYXJndlsyXSwgcmVzdWx0KTsKKwor ICAgIGRlc3Ryb3lfaGFuZGxlKHNoLCBhcmd2WzFdKTsKKworICAgIGV4aXQoMCk7Cit9CgpkaWZm IC0tZ2l0IGEvbGlic2VtYW5hZ2Uvc2VtYW5hZ2UtaGFuZGxlLWZ1bmN0aW9ucy90ZXN0X2Nvbm5l Y3QuYyBiL2xpYnNlbWFuYWdlL3NlbWFuYWdlLWhhbmRsZS1mdW5jdGlvbnMvdGVzdF9jb25uZWN0 LmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGY0MDNlMAotLS0gL2Rldi9u dWxsCisrKyBiL2xpYnNlbWFuYWdlL3NlbWFuYWdlLWhhbmRsZS1mdW5jdGlvbnMvdGVzdF9jb25u ZWN0LmMKQEAgLTAsMCArMSwzMyBAQAorI2luY2x1ZGUgPHN0ZGlvLmg+CisjaW5jbHVkZSA8c3Rk bGliLmg+CisjaW5jbHVkZSA8c3RyaW5nLmg+CisjaW5jbHVkZSA8ZXJybm8uaD4KKyNpbmNsdWRl IDxzZW1hbmFnZS9zZW1hbmFnZS5oPgorCisjaW5jbHVkZSAiZnVuY3Rpb25zLmMiCisKK2ludCBt YWluIChpbnQgYXJnYywgY2hhciAqKmFyZ3YpIHsKKyAgICBzZW1hbmFnZV9oYW5kbGVfdCAqc2g7 CisgICAgCisgICAgaWYgKGFyZ2MgPCAyKQorICAgICAgICBleGl0KDEpOworICAgIAorICAgIHNo ID0gZ2V0X2hhbmRsZShhcmd2WzFdKTsKKyAgICAKKyAgICBpZiAoYXJnYyA+PSAzICYmIHN0cmNt cChhcmd2WzJdLCAicmV2ZXJzZWQiKSA9PSAwKSB7CisgICAgICAgIHRlc3RfZGlzY29ubmVjdChz aCk7CisgICAgICAgIHRlc3RfY29ubmVjdChzaCk7CisgICAgfQorICAgIGVsc2UgeworICAgICAg ICB0ZXN0X2Nvbm5lY3Qoc2gpOworICAgICAgICB0ZXN0X2Rpc2Nvbm5lY3Qoc2gpOworICAgIH0K KworICAgIGlmIChhcmdjID49IDMgJiYgc3RyY21wKGFyZ3ZbMl0sICJ0d2ljZSIpID09IDApIHsK KyAgICAgICAgdGVzdF9kaXNjb25uZWN0KHNoKTsKKyAgICB9CisKKyAgICBkZXN0cm95X2hhbmRs ZShzaCwgYXJndlsxXSk7CisKKyAgICBleGl0KDApOworfQoKZGlmZiAtLWdpdCBhL2xpYnNlbWFu YWdlL3NlbWFuYWdlLWhhbmRsZS1mdW5jdGlvbnMvdGVzdF9oYW5kbGVfY3JlYXRlLmMgYi9saWJz ZW1hbmFnZS9zZW1hbmFnZS1oYW5kbGUtZnVuY3Rpb25zL3Rlc3RfaGFuZGxlX2NyZWF0ZS5jCm5l dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY1ZDE2NGUKLS0tIC9kZXYvbnVsbAor KysgYi9saWJzZW1hbmFnZS9zZW1hbmFnZS1oYW5kbGUtZnVuY3Rpb25zL3Rlc3RfaGFuZGxlX2Ny ZWF0ZS5jCkBAIC0wLDAgKzEsMTUgQEAKKyNpbmNsdWRlIDxzdGRpby5oPgorI2luY2x1ZGUgPHN0 ZGxpYi5oPgorI2luY2x1ZGUgPHN0cmluZy5oPgorI2luY2x1ZGUgPGVycm5vLmg+CisjaW5jbHVk ZSA8c2VtYW5hZ2Uvc2VtYW5hZ2UuaD4KKworI2luY2x1ZGUgImZ1bmN0aW9ucy5jIgorCitpbnQg bWFpbiAoaW50IGFyZ2MsIGNoYXIgKiphcmd2KSB7CisgICAgc2VtYW5hZ2VfaGFuZGxlX3QgKnNo ID0gdGVzdF9oYW5kbGVfY3JlYXRlKCk7CisKKyAgICBzZW1hbmFnZV9oYW5kbGVfZGVzdHJveShz aCk7CisKKyAgICBleGl0KDApOworfQoKZGlmZiAtLWdpdCBhL2xpYnNlbWFuYWdlL3NlbWFuYWdl LWhhbmRsZS1mdW5jdGlvbnMvdGVzdF9pc19jb25uZWN0ZWQuYyBiL2xpYnNlbWFuYWdlL3NlbWFu YWdlLWhhbmRsZS1mdW5jdGlvbnMvdGVzdF9pc19jb25uZWN0ZWQuYwpuZXcgZmlsZSBtb2RlIDEw MDY0NAppbmRleCAwMDAwMDAwLi5kNDI4ZTQ4Ci0tLSAvZGV2L251bGwKKysrIGIvbGlic2VtYW5h Z2Uvc2VtYW5hZ2UtaGFuZGxlLWZ1bmN0aW9ucy90ZXN0X2lzX2Nvbm5lY3RlZC5jCkBAIC0wLDAg KzEsMzIgQEAKKyNpbmNsdWRlIDxzdGRpby5oPgorI2luY2x1ZGUgPHN0ZGxpYi5oPgorI2luY2x1 ZGUgPHN0cmluZy5oPgorI2luY2x1ZGUgPGVycm5vLmg+CisjaW5jbHVkZSA8c2VtYW5hZ2Uvc2Vt YW5hZ2UuaD4KKworI2luY2x1ZGUgImZ1bmN0aW9ucy5jIgorCitpbnQgbWFpbiAoaW50IGFyZ2Ms IGNoYXIgKiphcmd2KSB7CisgICAgc2VtYW5hZ2VfaGFuZGxlX3QgKnNoOworICAgIGludCByZXN1 bHQ7CisgICAgCisgICAgaWYgKGFyZ2MgPCAyKQorICAgICAgICBleGl0KDEpOworICAgIAorICAg IHNoID0gZ2V0X2hhbmRsZShhcmd2WzFdKTsKKworICAgIHJlc3VsdCA9IHNlbWFuYWdlX2lzX2Nv bm5lY3RlZChzaCk7CisgICAgcHJpbnRmKCJzZW1hbmFnZV9pc19jb25uZWN0ZWQoJXApOiAlZFxu IiwgKHZvaWQgKikgc2gsIHJlc3VsdCk7CisKKyAgICBpZiAocmVzdWx0ICE9IDAgJiYgcmVzdWx0 ICE9IDEpIHsKKyAgICAgICAgcGVycm9yKCJzZW1hbmFnZV9pc19jb25uZWN0ZWQiKTsKKyAgICAg ICAgZXhpdCgxKTsKKyAgICB9CisKKyAgICBpZiAoYXJnYyA+PSAzKQorICAgICAgICBjaGVja19y ZXN1bHRfaW50KGFyZ3ZbMl0sIHJlc3VsdCk7CisKKyAgICBkZXN0cm95X2hhbmRsZShzaCwgYXJn dlsxXSk7CisKKyAgICBleGl0KDApOworfQoKZGlmZiAtLWdpdCBhL2xpYnNlbWFuYWdlL3NlbWFu YWdlLWhhbmRsZS1mdW5jdGlvbnMvdGVzdF9pc19tYW5hZ2VkLmMgYi9saWJzZW1hbmFnZS9zZW1h bmFnZS1oYW5kbGUtZnVuY3Rpb25zL3Rlc3RfaXNfbWFuYWdlZC5jCm5ldyBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDAwMDAwMDAuLjRkMTFjYjAKLS0tIC9kZXYvbnVsbAorKysgYi9saWJzZW1hbmFn ZS9zZW1hbmFnZS1oYW5kbGUtZnVuY3Rpb25zL3Rlc3RfaXNfbWFuYWdlZC5jCkBAIC0wLDAgKzEs MzIgQEAKKyNpbmNsdWRlIDxzdGRpby5oPgorI2luY2x1ZGUgPHN0ZGxpYi5oPgorI2luY2x1ZGUg PHN0cmluZy5oPgorI2luY2x1ZGUgPGVycm5vLmg+CisjaW5jbHVkZSA8c2VtYW5hZ2Uvc2VtYW5h Z2UuaD4KKworI2luY2x1ZGUgImZ1bmN0aW9ucy5jIgorCitpbnQgbWFpbiAoaW50IGFyZ2MsIGNo YXIgKiphcmd2KSB7CisgICAgc2VtYW5hZ2VfaGFuZGxlX3QgKnNoOworICAgIGludCByZXN1bHQ7 CisKKyAgICBpZiAoYXJnYyA8IDIpCisgICAgICAgIGV4aXQoMSk7CisgICAgCisgICAgc2ggPSBn ZXRfaGFuZGxlKGFyZ3ZbMV0pOworICAgIAorICAgIHJlc3VsdCA9IHNlbWFuYWdlX2lzX21hbmFn ZWQoc2gpOworICAgIHByaW50Zigic2VtYW5hZ2VfaXNfbWFuYWdlZCglcCk6ICVkXG4iLCAodm9p ZCAqKSBzaCwgcmVzdWx0KTsKKworICAgIGlmIChyZXN1bHQgIT0gMCAmJiByZXN1bHQgIT0gMSkg eworICAgICAgICBwZXJyb3IoInNlbWFuYWdlX2lzX21hbmFnZWQiKTsKKyAgICAgICAgZXhpdCgx KTsKKyAgICB9CisKKyAgICBpZiAoYXJnYyA+PSAzKQorICAgICAgICBjaGVja19yZXN1bHRfaW50 KGFyZ3ZbMl0sIHJlc3VsdCk7CisKKyAgICBkZXN0cm95X2hhbmRsZShzaCwgYXJndlsxXSk7CisK KyAgICBleGl0KDApOworfQoKZGlmZiAtLWdpdCBhL2xpYnNlbWFuYWdlL3NlbWFuYWdlLWhhbmRs ZS1mdW5jdGlvbnMvdGVzdF9tbHNfZW5hYmxlZC5jIGIvbGlic2VtYW5hZ2Uvc2VtYW5hZ2UtaGFu ZGxlLWZ1bmN0aW9ucy90ZXN0X21sc19lbmFibGVkLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggMDAwMDAwMC4uN2U5NDNmMAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnNlbWFuYWdlL3NlbWFu YWdlLWhhbmRsZS1mdW5jdGlvbnMvdGVzdF9tbHNfZW5hYmxlZC5jCkBAIC0wLDAgKzEsMzIgQEAK KyNpbmNsdWRlIDxzdGRpby5oPgorI2luY2x1ZGUgPHN0ZGxpYi5oPgorI2luY2x1ZGUgPHN0cmlu Zy5oPgorI2luY2x1ZGUgPGVycm5vLmg+CisjaW5jbHVkZSA8c2VtYW5hZ2Uvc2VtYW5hZ2UuaD4K KworI2luY2x1ZGUgImZ1bmN0aW9ucy5jIgorCitpbnQgbWFpbiAoaW50IGFyZ2MsIGNoYXIgKiph cmd2KSB7CisgICAgc2VtYW5hZ2VfaGFuZGxlX3QgKnNoOworICAgIGludCByZXN1bHQ7CisgICAg CisgICAgaWYgKGFyZ2MgPCAyKQorICAgICAgICBleGl0KDEpOworICAgIAorICAgIHNoID0gZ2V0 X2hhbmRsZShhcmd2WzFdKTsKKworICAgIHJlc3VsdCA9IHNlbWFuYWdlX21sc19lbmFibGVkKHNo KTsKKyAgICBwcmludGYoInNlbWFuYWdlX21sc19lbmFibGVkKCVwKTogJWRcbiIsICh2b2lkICop IHNoLCByZXN1bHQpOworCisgICAgaWYgKHJlc3VsdCAhPSAwICYmIHJlc3VsdCAhPSAxKSB7Cisg ICAgICAgIHBlcnJvcigic2VtYW5hZ2VfbWxzX2VuYWJsZWQiKTsKKyAgICAgICAgZXhpdCgxKTsK KyAgICB9CisKKyAgICBpZiAoYXJnYyA+PSA0KQorICAgICAgICBjaGVja19yZXN1bHRfaW50KGFy Z3ZbM10sIHJlc3VsdCk7CisKKyAgICBkZXN0cm95X2hhbmRsZShzaCwgYXJndlsxXSk7CisKKyAg ICBleGl0KDApOworfQoKZGlmZiAtLWdpdCBhL2xpYnNlbWFuYWdlL3NlbWFuYWdlLWhhbmRsZS1m dW5jdGlvbnMvdGVzdF9yb290LmMgYi9saWJzZW1hbmFnZS9zZW1hbmFnZS1oYW5kbGUtZnVuY3Rp b25zL3Rlc3Rfcm9vdC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU3ODYz NDgKLS0tIC9kZXYvbnVsbAorKysgYi9saWJzZW1hbmFnZS9zZW1hbmFnZS1oYW5kbGUtZnVuY3Rp b25zL3Rlc3Rfcm9vdC5jCkBAIC0wLDAgKzEsNTMgQEAKKyNpbmNsdWRlIDxzdGRpby5oPgorI2lu Y2x1ZGUgPHN0ZGxpYi5oPgorI2luY2x1ZGUgPHN0cmluZy5oPgorI2luY2x1ZGUgPGVycm5vLmg+ CisjaW5jbHVkZSA8c2VtYW5hZ2Uvc2VtYW5hZ2UuaD4KKworI2luY2x1ZGUgImZ1bmN0aW9ucy5j IgorCitpbnQgbWFpbiAoaW50IGFyZ2MsIGNoYXIgKiphcmd2KSB7CisgICAgc2VtYW5hZ2VfaGFu ZGxlX3QgKnNoOworICAgIGNvbnN0IGNoYXIgKnJvb3Q7CisgICAgaW50IHJlc3VsdDsKKworICAg IGlmIChhcmdjIDwgMikKKyAgICAgICAgZXhpdCgxKTsKKyAgICAKKyAgICBzaCA9IGdldF9oYW5k bGUoYXJndlsxXSk7CisKKyAgICByb290ID0gc2VtYW5hZ2Vfcm9vdCgpOworICAgIHByaW50Zigi c2VtYW5hZ2Vfcm9vdCgpOiAlc1xuIiwgcm9vdCk7CisKKyAgICBpZiAocm9vdCA9PSBOVUxMKSB7 CisgICAgICAgIHBlcnJvcigic2VtYW5hZ2Vfcm9vdCIpOworICAgICAgICBleGl0KDEpOworICAg IH0KKworICAgIGlmIChhcmdjID49IDMpIHsKKyAgICAgICAgcmVzdWx0ID0gc2VtYW5hZ2Vfc2V0 X3Jvb3QoYXJndlsyXSk7CisgICAgICAgIHByaW50Zigic2VtYW5hZ2Vfc2V0X3Jvb3QoXCIlc1wi KTogJWRcbiIsIGFyZ3ZbMl0sIHJlc3VsdCk7CisKKyAgICAgICAgaWYgKHJvb3QgPT0gTlVMTCkg eworICAgICAgICAgICAgcGVycm9yKCJzZW1hbmFnZV9zZXRfcm9vdCIpOworICAgICAgICAgICAg ZXhpdCgxKTsKKyAgICAgICAgfQorCisgICAgICAgIHJvb3QgPSBzZW1hbmFnZV9yb290KCk7Cisg ICAgICAgIHByaW50Zigic2VtYW5hZ2Vfcm9vdCgpOiAlc1xuIiwgcm9vdCk7CisKKyAgICAgICAg aWYgKHJlc3VsdCAhPSAwKSB7CisgICAgICAgICAgICBwZXJyb3IoInNlbWFuYWdlX3Jvb3QiKTsK KyAgICAgICAgICAgIGV4aXQoMSk7CisgICAgICAgIH0KKworICAgICAgICBpZiAoc3RyY21wKHJv b3QsIGFyZ3ZbMl0pICE9IDApIHsKKyAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiRXhwZWN0 ZWQgXCIlc1wiIGJ1dCBnb3QgXCIlc1wiXG4iLCBhcmd2WzJdLCByb290KTsKKyAgICAgICAgICAg IGV4aXQoMSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBkZXN0cm95X2hhbmRsZShzaCwgYXJn dlsxXSk7CisKKyAgICBleGl0KDApOworfQoKZGlmZiAtLWdpdCBhL2xpYnNlbWFuYWdlL3NlbWFu YWdlLWhhbmRsZS1mdW5jdGlvbnMvdGVzdF90cmFuc2FjdGlvbi5jIGIvbGlic2VtYW5hZ2Uvc2Vt YW5hZ2UtaGFuZGxlLWZ1bmN0aW9ucy90ZXN0X3RyYW5zYWN0aW9uLmMKbmV3IGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggMDAwMDAwMC4uZjFiMGUxMAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnNlbWFu YWdlL3NlbWFuYWdlLWhhbmRsZS1mdW5jdGlvbnMvdGVzdF90cmFuc2FjdGlvbi5jCkBAIC0wLDAg KzEsMzQgQEAKKyNpbmNsdWRlIDxzdGRpby5oPgorI2luY2x1ZGUgPHN0ZGxpYi5oPgorI2luY2x1 ZGUgPHN0cmluZy5oPgorI2luY2x1ZGUgPGVycm5vLmg+CisjaW5jbHVkZSA8c2VtYW5hZ2Uvc2Vt YW5hZ2UuaD4KKworI2luY2x1ZGUgImZ1bmN0aW9ucy5jIgorCitpbnQgbWFpbiAoaW50IGFyZ2Ms IGNoYXIgKiphcmd2KSB7CisgICAgc2VtYW5hZ2VfaGFuZGxlX3QgKnNoOworICAgIAorICAgIGlm IChhcmdjIDwgMikKKyAgICAgICAgZXhpdCgxKTsKKyAgICAKKyAgICBzaCA9IGdldF9oYW5kbGUo YXJndlsxXSk7CisgICAgCisgICAgaWYgKGFyZ2MgPj0gMyAmJiBzdHJjbXAoYXJndlsyXSwgInJl dmVyc2VkIikgPT0gMCkgeworICAgICAgICB0ZXN0X2NvbW1pdChzaCk7CisgICAgICAgIHRlc3Rf YmVnaW5fdHJhbnNhY3Rpb24oc2gpOworICAgIH0KKyAgICBlbHNlIGlmIChhcmdjID49IDMgJiYg c3RyY21wKGFyZ3ZbMl0sICJ0d2ljZSIpID09IDApIHsKKyAgICAgICAgdGVzdF9iZWdpbl90cmFu c2FjdGlvbihzaCk7CisgICAgICAgIHRlc3RfYmVnaW5fdHJhbnNhY3Rpb24oc2gpOworICAgICAg ICB0ZXN0X2NvbW1pdChzaCk7CisgICAgfQorICAgIGVsc2UgeworICAgICAgICB0ZXN0X2JlZ2lu X3RyYW5zYWN0aW9uKHNoKTsKKyAgICAgICAgdGVzdF9jb21taXQoc2gpOworICAgIH0KKworICAg IGRlc3Ryb3lfaGFuZGxlKHNoLCBhcmd2WzFdKTsKKworICAgIGV4aXQoMCk7Cit9CgpkaWZmIC0t Z2l0IGEvbGlic2VtYW5hZ2Uvc2VtYW5hZ2Utc2V1c2VyLWZ1bmN0aW9ucy9NYWtlZmlsZSBiL2xp YnNlbWFuYWdlL3NlbWFuYWdlLXNldXNlci1mdW5jdGlvbnMvTWFrZWZpbGUKbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDcyMDJmNAotLS0gL2Rldi9udWxsCisrKyBiL2xpYnNl bWFuYWdlL3NlbWFuYWdlLXNldXNlci1mdW5jdGlvbnMvTWFrZWZpbGUKQEAgLTAsMCArMSw2MyBA QAorIyB+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fgorIworIyAgIE1ha2VmaWxlIG9mIC9Db3JlT1MvbGlic2VtYW5hZ2Uv U2FuaXR5L3NlbWFuYWdlLXNldXNlci1mdW5jdGlvbnMKKyMgICBEZXNjcmlwdGlvbjogVGVzdCBz ZW1hbmFnZV9zZXVzZXJfKiBmdW5jdGlvbnMKKyMgICBBdXRob3I6IEphbiBaYXJza3kgPGp6YXJz a3lAcmVkaGF0LmNvbT4KKyMKKyMgfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KKyMKKyMgICBDb3B5cmlnaHQgKGMpIDIw MTcgUmVkIEhhdCwgSW5jLgorIworIyAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOiB5 b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyMgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRl cm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcworIyAgIHB1Ymxpc2hlZCBi eSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAyIG9mCisjICAg dGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisjCisj ICAgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBi ZQorIyAgIHVzZWZ1bCwgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhl IGltcGxpZWQKKyMgICB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1Ig QSBQQVJUSUNVTEFSCisjICAgUFVSUE9TRS4gIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExp Y2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyMKKyMgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQg YSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorIyAgIGFsb25nIHdpdGgg dGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvLgor IworIyB+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fgorCitleHBvcnQgVEVTVD0vQ29yZU9TL2xpYnNlbWFuYWdlL1Nhbml0 eS9zZW1hbmFnZS1zZXVzZXItZnVuY3Rpb25zCitleHBvcnQgVEVTVFZFUlNJT049MS4wCisKK0JV SUxUX0ZJTEVTPQorCitGSUxFUz0kKE1FVEFEQVRBKSBydW50ZXN0LnNoIE1ha2VmaWxlIFBVUlBP U0UgZnVuY3Rpb25zLmMgdGVzdF8qLmMKKworLlBIT05ZOiBhbGwgaW5zdGFsbCBkb3dubG9hZCBj bGVhbgorCitydW46ICQoRklMRVMpIGJ1aWxkCisJLi9ydW50ZXN0LnNoCisKK2J1aWxkOiAkKEJV SUxUX0ZJTEVTKQorCXRlc3QgLXggcnVudGVzdC5zaCB8fCBjaG1vZCBhK3ggcnVudGVzdC5zaAor CitjbGVhbjoKKwlybSAtZiAqfiAkKEJVSUxUX0ZJTEVTKQorCisKK2luY2x1ZGUgL3Vzci9zaGFy ZS9yaHRzL2xpYi9yaHRzLW1ha2UuaW5jbHVkZQorCiskKE1FVEFEQVRBKTogTWFrZWZpbGUKKwlA ZWNobyAiT3duZXI6ICAgICAgICAgICBKYW4gWmFyc2t5IDxqemFyc2t5QHJlZGhhdC5jb20+IiA+ ICQoTUVUQURBVEEpCisJQGVjaG8gIk5hbWU6ICAgICAgICAgICAgJChURVNUKSIgPj4gJChNRVRB REFUQSkKKwlAZWNobyAiVGVzdFZlcnNpb246ICAgICAkKFRFU1RWRVJTSU9OKSIgPj4gJChNRVRB REFUQSkKKwlAZWNobyAiUGF0aDogICAgICAgICAgICAkKFRFU1RfRElSKSIgPj4gJChNRVRBREFU QSkKKwlAZWNobyAiRGVzY3JpcHRpb246ICAgICBUZXN0IHNlbWFuYWdlX3NldXNlcl8qIGZ1bmN0 aW9ucyIgPj4gJChNRVRBREFUQSkKKwlAZWNobyAiVHlwZTogICAgICAgICAgICBTYW5pdHkiID4+ ICQoTUVUQURBVEEpCisJQGVjaG8gIlRlc3RUaW1lOiAgICAgICAgNW0iID4+ICQoTUVUQURBVEEp CisJQGVjaG8gIlJ1bkZvcjogICAgICAgICAgbGlic2VtYW5hZ2UiID4+ICQoTUVUQURBVEEpCisJ QGVjaG8gIlJlcXVpcmVzOiAgICAgICAgbGlic2VtYW5hZ2UgbGlic2VtYW5hZ2UtZGV2ZWwgZ2xp YmMgZ2NjIiA+PiAkKE1FVEFEQVRBKQorCUBlY2hvICJQcmlvcml0eTogICAgICAgIE5vcm1hbCIg Pj4gJChNRVRBREFUQSkKKwlAZWNobyAiTGljZW5zZTogICAgICAgICBHUEx2MisiID4+ICQoTUVU QURBVEEpCisJQGVjaG8gIkNvbmZpZGVudGlhbDogICAgbm8iID4+ICQoTUVUQURBVEEpCisJQGVj aG8gIkRlc3RydWN0aXZlOiAgICAgbm8iID4+ICQoTUVUQURBVEEpCisJQGVjaG8gIlJlbGVhc2Vz OiAgICAgICAgLVJIRUw0IC1SSEVMQ2xpZW50NSAtUkhFTFNlcnZlcjUiID4+ICQoTUVUQURBVEEp CisKKwlyaHRzLWxpbnQgJChNRVRBREFUQSkKCmRpZmYgLS1naXQgYS9saWJzZW1hbmFnZS9zZW1h bmFnZS1zZXVzZXItZnVuY3Rpb25zL1BVUlBPU0UgYi9saWJzZW1hbmFnZS9zZW1hbmFnZS1zZXVz ZXItZnVuY3Rpb25zL1BVUlBPU0UKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u NmI1MjAxYQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnNlbWFuYWdlL3NlbWFuYWdlLXNldXNlci1m dW5jdGlvbnMvUFVSUE9TRQpAQCAtMCwwICsxLDMgQEAKK1BVUlBPU0Ugb2YgL0NvcmVPUy9saWJz ZW1hbmFnZS9TYW5pdHkvc2VtYW5hZ2Utc2V1c2VyLWZ1bmN0aW9ucworRGVzY3JpcHRpb246IFRl c3Qgc2VtYW5hZ2Vfc2V1c2VyXyogZnVuY3Rpb25zCitBdXRob3I6IEphbiBaYXJza3kgPGp6YXJz a3lAcmVkaGF0LmNvbT4KCmRpZmYgLS1naXQgYS9saWJzZW1hbmFnZS9zZW1hbmFnZS1zZXVzZXIt ZnVuY3Rpb25zL2Z1bmN0aW9ucy5jIGIvbGlic2VtYW5hZ2Uvc2VtYW5hZ2Utc2V1c2VyLWZ1bmN0 aW9ucy9mdW5jdGlvbnMuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iNDE1 MmVkCi0tLSAvZGV2L251bGwKKysrIGIvbGlic2VtYW5hZ2Uvc2VtYW5hZ2Utc2V1c2VyLWZ1bmN0 aW9ucy9mdW5jdGlvbnMuYwpAQCAtMCwwICsxLDI2MyBAQAorI2luY2x1ZGUgPHN0ZGlvLmg+Cisj aW5jbHVkZSA8c3RkbGliLmg+CisjaW5jbHVkZSA8c3RyaW5nLmg+CisjaW5jbHVkZSA8ZXJybm8u aD4KKyNpbmNsdWRlIDxzZW1hbmFnZS9zZW1hbmFnZS5oPgorCit2b2lkIGNoZWNrX3Jlc3VsdF9p bnQoY29uc3QgY2hhciAqZXhwZWN0ZWQsIGludCByZWFsKSB7CisgICAgaW50IGV4cCA9IHN0cnRv bChleHBlY3RlZCwgTlVMTCwgMTApOworCisgICAgaWYgKGV4cCAhPSByZWFsKSB7CisgICAgICAg IGZwcmludGYoc3RkZXJyLCAiRXhwZWN0ZWQgJWQgYnV0IGdvdCAlZFxuIiwgZXhwLCByZWFsKTsK KyAgICAgICAgZXhpdCgxKTsKKyAgICB9Cit9CisKK3NlbWFuYWdlX2hhbmRsZV90ICp0ZXN0X2hh bmRsZV9jcmVhdGUoKSB7CisgICAgc2VtYW5hZ2VfaGFuZGxlX3QgKnNoID0gTlVMTDsKKworICAg IHNoID0gc2VtYW5hZ2VfaGFuZGxlX2NyZWF0ZSgpOworICAgIHByaW50Zigic2VtYW5hZ2VfaGFu ZGxlX2NyZWF0ZSgpOiAlcFxuIiwgKHZvaWQgKikgc2gpOworCisgICAgaWYgKHNoID09IE5VTEwp IHsKKyAgICAgICAgcGVycm9yKCJzZW1hbmFnZV9oYW5kbGVfY3JlYXRlIik7CisgICAgICAgIGV4 aXQoMik7CisgICAgfQorCisgICAgcmV0dXJuIHNoOworfQorCitpbnQgdGVzdF9jb25uZWN0KHNl bWFuYWdlX2hhbmRsZV90ICpzaCkgeworICAgIGludCByZXN1bHQgPSBzZW1hbmFnZV9jb25uZWN0 KHNoKTsKKyAgICBwcmludGYoInNlbWFuYWdlX2Nvbm5lY3QoJXApOiAlZFxuIiwgKHZvaWQgKikg c2gsIHJlc3VsdCk7CisKKyAgICBpZiAocmVzdWx0ICE9IDApIHsKKyAgICAgICAgcGVycm9yKCJz ZW1hbmFnZV9jb25uZWN0Iik7CisgICAgICAgIGV4aXQoMik7CisgICAgfQorCisgICAgcmV0dXJu IHJlc3VsdDsKK30KKworaW50IHRlc3RfZGlzY29ubmVjdChzZW1hbmFnZV9oYW5kbGVfdCAqc2gp IHsKKyAgICBpbnQgcmVzdWx0ID0gc2VtYW5hZ2VfZGlzY29ubmVjdChzaCk7CisgICAgcHJpbnRm KCJzZW1hbmFnZV9kaXNjb25uZWN0KCVwKTogJWRcbiIsICh2b2lkICopIHNoLCByZXN1bHQpOwor CisgICAgaWYgKHJlc3VsdCAhPSAwKSB7CisgICAgICAgIHBlcnJvcigic2VtYW5hZ2VfZGlzY29u bmVjdCIpOworICAgICAgICBleGl0KDIpOworICAgIH0KKworICAgIHJldHVybiByZXN1bHQ7Cit9 CisKK2ludCB0ZXN0X2JlZ2luX3RyYW5zYWN0aW9uKHNlbWFuYWdlX2hhbmRsZV90ICpzaCkgewor ICAgIGludCByZXN1bHQgPSBzZW1hbmFnZV9iZWdpbl90cmFuc2FjdGlvbihzaCk7CisgICAgcHJp bnRmKCJzZW1hbmFnZV9iZWdpbl90cmFuc2FjdGlvbiglcCk6ICVkXG4iLCAodm9pZCAqKSBzaCwg cmVzdWx0KTsKKworICAgIGlmIChyZXN1bHQgIT0gMCkgeworICAgICAgICBwZXJyb3IoInNlbWFu YWdlX2JlZ2luX3RyYW5zYWN0aW9uIik7CisgICAgICAgIGV4aXQoMik7CisgICAgfQorCisgICAg cmV0dXJuIHJlc3VsdDsKK30KKworaW50IHRlc3RfY29tbWl0KHNlbWFuYWdlX2hhbmRsZV90ICpz aCkgeworICAgIGludCByZXN1bHQgPSBzZW1hbmFnZV9jb21taXQoc2gpOworICAgIHByaW50Zigi c2VtYW5hZ2VfY29tbWl0KCVwKTogJWRcbiIsICh2b2lkICopIHNoLCByZXN1bHQpOworCisgICAg aWYgKHJlc3VsdCA8IDApIHsKKyAgICAgICAgcGVycm9yKCJzZW1hbmFnZV9jb21taXQiKTsKKyAg ICAgICAgZXhpdCgyKTsKKyAgICB9CisKKyAgICByZXR1cm4gcmVzdWx0OworfQorCitzZW1hbmFn ZV9zZXVzZXJfa2V5X3QgKnRlc3RfZ2V0X2tleShzZW1hbmFnZV9oYW5kbGVfdCAqc2gsIGNvbnN0 IGNoYXIgKm5hbWUpIHsKKyAgICBzZW1hbmFnZV9zZXVzZXJfa2V5X3QgKmtleTsKKyAgICBpbnQg cmVzdWx0ID0gc2VtYW5hZ2Vfc2V1c2VyX2tleV9jcmVhdGUoc2gsIG5hbWUsICZrZXkpOworICAg IHByaW50Zigic2VtYW5hZ2Vfc2V1c2VyX2tleV9jcmVhdGUoJXAsICVzLCAlcCk6ICVkXG4iLAor ICAgICAgICAgICAodm9pZCAqKSBzaCwgbmFtZSwgKHZvaWQgKikgJmtleSwgcmVzdWx0KTsKKwor ICAgIGlmIChrZXkgPT0gTlVMTCB8fCByZXN1bHQgPCAwKSB7CisgICAgICAgIHBlcnJvcigic2Vt YW5hZ2Vfc2V1c2VyX2tleV9jcmVhdGUiKTsKKyAgICAgICAgZXhpdCgyKTsKKyAgICB9CisKKyAg ICByZXR1cm4ga2V5OworfQorCitzZW1hbmFnZV9zZXVzZXJfdCAqdGVzdF9nZXRfc2V1c2VyX250 aChzZW1hbmFnZV9oYW5kbGVfdCAqc2gsIHVuc2lnbmVkIGludCBpbmRleCkgeworICAgIGludCBy ZXN1bHQ7CisgICAgc2VtYW5hZ2Vfc2V1c2VyX3QgKipyZWNvcmRzOworICAgIHVuc2lnbmVkIGlu dCBjb3VudDsKKworICAgIHJlc3VsdCA9IHNlbWFuYWdlX3NldXNlcl9saXN0KHNoLCAmcmVjb3Jk cywgJmNvdW50KTsKKyAgICBwcmludGYoInNlbWFuYWdlX3NldXNlcl9saXN0KCVwLCAlcCwgJXAp OiAlZFxuIiwKKyAgICAgICAgICAgKHZvaWQgKikgc2gsICh2b2lkICopICZyZWNvcmRzLCAodm9p ZCAqKSAmY291bnQsIHJlc3VsdCk7CisgICAgCisgICAgaWYgKHJlc3VsdCA8IDApIHsKKyAgICAg ICAgcGVycm9yKCJzZW1hbmFnZV9zZXVzZXJfbGlzdCIpOworICAgICAgICBleGl0KDIpOworICAg IH0KKworICAgIGlmIChjb3VudCA8IGluZGV4ICsgMSkKKyAgICAgICAgZXhpdCgyKTsKKworICAg IHJldHVybiByZWNvcmRzW2luZGV4XTsKK30KKworc2VtYW5hZ2Vfc2V1c2VyX3QgKnRlc3RfZ2V0 X3NldXNlcl9uZXcoc2VtYW5hZ2VfaGFuZGxlX3QgKnNoKSB7CisgICAgaW50IHJlc3VsdDsKKyAg ICBzZW1hbmFnZV9zZXVzZXJfdCAqc2V1c2VyOworCisgICAgcmVzdWx0ID0gc2VtYW5hZ2Vfc2V1 c2VyX2NyZWF0ZShzaCwgJnNldXNlcik7CisgICAgcHJpbnRmKCJzZW1hbmFnZV9zZXVzZXJfY3Jl YXRlKCVwLCAlcCk6ICVkXG4iLAorICAgICAgICAgICAodm9pZCAqKSBzaCwgKHZvaWQgKikgc2V1 c2VyLCByZXN1bHQpOworICAgIAorICAgIGlmIChyZXN1bHQgPCAwKSB7CisgICAgICAgIHBlcnJv cigic2VtYW5hZ2Vfc2V1c2VyX2NyZWF0ZSIpOworICAgICAgICBleGl0KDIpOworICAgIH0KKwor ICAgIHJldHVybiBzZXVzZXI7Cit9CisKK3NlbWFuYWdlX3NldXNlcl90ICp0ZXN0X2dldF9zZXVz ZXIoc2VtYW5hZ2VfaGFuZGxlX3QgKnNoLCBjb25zdCBjaGFyICpwYXJhbSkgeworICAgIGlmIChz dHJjbXAocGFyYW0sICJuZXciKSA9PSAwKQorICAgICAgICByZXR1cm4gdGVzdF9nZXRfc2V1c2Vy X25ldyhzaCk7CisgICAgCisgICAgaWYgKHN0cmNtcChwYXJhbSwgImZpcnN0IikgPT0gMCkKKyAg ICAgICAgcmV0dXJuIHRlc3RfZ2V0X3NldXNlcl9udGgoc2gsIDApOworCisgICAgaWYgKHN0cmNt cChwYXJhbSwgInNlY29uZCIpID09IDApCisgICAgICAgIHJldHVybiB0ZXN0X2dldF9zZXVzZXJf bnRoKHNoLCAxKTsKKworICAgIGZwcmludGYoc3RkZXJyLCAiVW5rbm93biBzZXVzZXIgXCIlc1wi IHNwZWNpZmllZFxuIiwgcGFyYW0pOworICAgIGV4aXQoMik7Cit9CisKK3ZvaWQgdGVzdF9hZGRf bG9jYWxfc2V1c2VyKHNlbWFuYWdlX2hhbmRsZV90ICpzaCwgc2VtYW5hZ2Vfc2V1c2VyX3QgKnNl dXNlcikgeworICAgIGludCByZXN1bHQ7CisgICAgc2VtYW5hZ2Vfc2V1c2VyX2tleV90ICprZXk7 CisKKyAgICByZXN1bHQgPSBzZW1hbmFnZV9zZXVzZXJfa2V5X2V4dHJhY3Qoc2gsIHNldXNlciwg JmtleSk7CisgICAgcHJpbnRmKCJzZW1hbmFnZV9zZXVzZXJfa2V5X2V4dHJhY3QoJXAsICVwLCAl cCk6ICVkXG4iLAorICAgICAgICAgICAodm9pZCAqKSBzaCwgKHZvaWQgKikgc2V1c2VyLCAodm9p ZCAqKSAma2V5LCByZXN1bHQpOworCisgICAgaWYgKHJlc3VsdCA8IDApIHsKKyAgICAgICAgcGVy cm9yKCJzZW1hbmFnZV9zZXVzZXJfa2V5X2V4dHJhY3QiKTsKKyAgICAgICAgZXhpdCgyKTsKKyAg ICB9CisKKyAgICByZXN1bHQgPSBzZW1hbmFnZV9zZXVzZXJfbW9kaWZ5X2xvY2FsKHNoLCBrZXks IHNldXNlcik7CisgICAgcHJpbnRmKCJzZW1hbmFnZV9zZXVzZXJfbW9kaWZ5X2xvY2FsKCVwLCAl cCwgJXApOiAlZFxuIiwKKyAgICAgICAgICAgKHZvaWQgKikgc2V1c2VyLCAodm9pZCAqKSBrZXks ICh2b2lkICopIHNldXNlciwgcmVzdWx0KTsKKworICAgIGlmIChyZXN1bHQgPCAwKSB7CisgICAg ICAgIHBlcnJvcigic2VtYW5hZ2Vfc2V1c2VyX21vZGlmeV9sb2NhbCIpOworICAgICAgICBleGl0 KDIpOworICAgIH0KK30KKwordm9pZCB0ZXN0X2RlbF9sb2NhbF9zZXVzZXIoc2VtYW5hZ2VfaGFu ZGxlX3QgKnNoLCBzZW1hbmFnZV9zZXVzZXJfdCAqc2V1c2VyKSB7CisgICAgaW50IHJlc3VsdDsK KyAgICBzZW1hbmFnZV9zZXVzZXJfa2V5X3QgKmtleTsKKworICAgIHJlc3VsdCA9IHNlbWFuYWdl X3NldXNlcl9rZXlfZXh0cmFjdChzaCwgc2V1c2VyLCAma2V5KTsKKyAgICBwcmludGYoInNlbWFu YWdlX3NldXNlcl9rZXlfZXh0cmFjdCglcCwgJXAsICVwKTogJWRcbiIsCisgICAgICAgICAgICh2 b2lkICopIHNoLCAodm9pZCAqKSBzZXVzZXIsICh2b2lkICopICZrZXksIHJlc3VsdCk7CisKKyAg ICBpZiAocmVzdWx0IDwgMCkgeworICAgICAgICBwZXJyb3IoInNlbWFuYWdlX3NldXNlcl9rZXlf ZXh0cmFjdCIpOworICAgICAgICBleGl0KDIpOworICAgIH0KKworICAgIHJlc3VsdCA9IHNlbWFu YWdlX3NldXNlcl9kZWxfbG9jYWwoc2gsIGtleSk7CisgICAgcHJpbnRmKCJzZW1hbmFnZV9zZXVz ZXJfZGVsX2xvY2FsKCVwLCAlcCk6ICVkXG4iLAorICAgICAgICAgICAodm9pZCAqKSBzZXVzZXIs ICh2b2lkICopIGtleSwgcmVzdWx0KTsKKworICAgIGlmIChyZXN1bHQgPCAwKSB7CisgICAgICAg IHBlcnJvcigic2VtYW5hZ2Vfc2V1c2VyX2RlbF9sb2NhbCIpOworICAgICAgICBleGl0KDIpOwor ICAgIH0KK30KKworI2RlZmluZSBTVEFURV9JTklUICAgICAgMQorI2RlZmluZSBTVEFURV9IQU5E TEUgICAgMgorI2RlZmluZSBTVEFURV9DT05OICAgICAgMworI2RlZmluZSBTVEFURV9UUkFOUyAg ICAgNAorCitpbnQgZ2V0X3N0YXRlKGNvbnN0IGNoYXIgKnN0YXRlX3N0cikgeworICAgIGlmIChz dHJjbXAoc3RhdGVfc3RyLCAiaW5pdCIpID09IDApCisgICAgICAgIHJldHVybiBTVEFURV9JTklU OworICAgIGlmIChzdHJjbXAoc3RhdGVfc3RyLCAiaGFuZGxlIikgPT0gMCkKKyAgICAgICAgcmV0 dXJuIFNUQVRFX0hBTkRMRTsKKyAgICBpZiAoc3RyY21wKHN0YXRlX3N0ciwgImNvbm4iKSA9PSAw KQorICAgICAgICByZXR1cm4gU1RBVEVfQ09OTjsKKyAgICBpZiAoc3RyY21wKHN0YXRlX3N0ciwg InRyYW5zIikgPT0gMCkKKyAgICAgICAgcmV0dXJuIFNUQVRFX1RSQU5TOworCisgICAgcmV0dXJu IDA7Cit9CisKK3NlbWFuYWdlX2hhbmRsZV90ICogZ2V0X2hhbmRsZShjb25zdCBjaGFyICpzdGF0 ZV9zdHIpIHsKKyAgICBpbnQgc3RhdGU7CisgICAgc2VtYW5hZ2VfaGFuZGxlX3QgKnNoID0gTlVM TDsKKworICAgIHN0YXRlID0gZ2V0X3N0YXRlKHN0YXRlX3N0cik7CisKKyAgICBpZiAoc3RhdGUg Pj0gU1RBVEVfSU5JVCkKKyAgICAgICAgc2ggPSBOVUxMOworCisgICAgaWYgKHN0YXRlID49IFNU QVRFX0hBTkRMRSkKKyAgICAgICAgc2ggPSB0ZXN0X2hhbmRsZV9jcmVhdGUoKTsKKworICAgIGlm IChzdGF0ZSA+PSBTVEFURV9DT05OKQorICAgICAgICB0ZXN0X2Nvbm5lY3Qoc2gpOworCisgICAg aWYgKHN0YXRlID49IFNUQVRFX1RSQU5TKQorICAgICAgICB0ZXN0X2JlZ2luX3RyYW5zYWN0aW9u KHNoKTsKKworICAgIHJldHVybiBzaDsKK30KKwordm9pZCBkZXN0cm95X2hhbmRsZShzZW1hbmFn ZV9oYW5kbGVfdCAqc2gsIGNvbnN0IGNoYXIgKnN0YXRlX3N0cikgeworICAgIGludCBzdGF0ZTsK KworICAgIHN0YXRlID0gZ2V0X3N0YXRlKHN0YXRlX3N0cik7CisKKyAgICBpZiAoc3RhdGUgPj0g U1RBVEVfVFJBTlMpCisgICAgICAgIHRlc3RfY29tbWl0KHNoKTsKKworICAgIGlmIChzdGF0ZSA+ PSBTVEFURV9DT05OKQorICAgICAgICB0ZXN0X2Rpc2Nvbm5lY3Qoc2gpOworCisgICAgaWYgKHN0 YXRlID49IFNUQVRFX0hBTkRMRSkgeworICAgICAgICBzZW1hbmFnZV9oYW5kbGVfZGVzdHJveShz aCk7CisgICAgICAgIHByaW50Zigic2VtYW5hZ2VfaGFuZGxlX2Rlc3Ryb3koJXApXG4iLCAodm9p ZCAqKSBzaCk7CisgICAgfQorfQorCitpbnQgc3RyY21wX251bGwoY29uc3QgY2hhciAqc3RyMSwg Y29uc3QgY2hhciAqc3RyMikgeworICAgIGlmIChzdHIxID09IE5VTEwgJiYgc3RyMiA9PSBOVUxM KQorICAgICAgICByZXR1cm4gMDsKKworICAgIGlmIChzdHIxID09IE5VTEwpIHsKKyAgICAgICAg aWYgKHN0cmNtcChzdHIyLCAiTlVMTCIpID09IDApCisgICAgICAgICAgICByZXR1cm4gMDsKKyAg ICAgICAgZWxzZQorICAgICAgICAgICAgcmV0dXJuIC0xOworICAgIH0KKworICAgIGlmIChzdHIy ID09IE5VTEwpIHsKKyAgICAgICAgaWYgKHN0cmNtcChzdHIxLCAiTlVMTCIpID09IDApCisgICAg ICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgcmV0dXJuIDE7Cisg ICAgfQorCisgICAgcmV0dXJuIHN0cmNtcChzdHIxLCBzdHIyKTsKK30KCmRpZmYgLS1naXQgYS9s aWJzZW1hbmFnZS9zZW1hbmFnZS1zZXVzZXItZnVuY3Rpb25zL21haW4uZm1mIGIvbGlic2VtYW5h Z2Uvc2VtYW5hZ2Utc2V1c2VyLWZ1bmN0aW9ucy9tYWluLmZtZgpuZXcgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwMDAwMDAwLi41ZDQyYmUwCi0tLSAvZGV2L251bGwKKysrIGIvbGlic2VtYW5hZ2Uv c2VtYW5hZ2Utc2V1c2VyLWZ1bmN0aW9ucy9tYWluLmZtZgpAQCAtMCwwICsxLDI4IEBACitzdW1t YXJ5OiBUZXN0IHNlbWFuYWdlX3NldXNlcl8qIGZ1bmN0aW9ucworZGVzY3JpcHRpb246ICcnCitj b250YWN0OiBNaWxvcyBNYWxpayA8bW1hbGlrQHJlZGhhdC5jb20+Citjb21wb25lbnQ6CisgIC0g bGlic2VtYW5hZ2UKK3Rlc3Q6IC4vcnVudGVzdC5zaAorZnJhbWV3b3JrOiBiZWFrZXJsaWIKK3Jl Y29tbWVuZDoKKyAgLSBsaWJzZW1hbmFnZQorICAtIGxpYnNlbWFuYWdlLWRldmVsCisgIC0gZ2xp YmMKKyAgLSBnY2MKK2R1cmF0aW9uOiA1bQorZW5hYmxlZDogdHJ1ZQordGFnOgorICAtIE5vUkhF TDQKKyAgLSBOb1JIRUw1CisgIC0gZjMyZnJpZW5kbHkKKyAgLSBmMzNmcmllbmRseQorICAtIHJo ZWw4LWJ1aWxkcm9vdAorICAtIHRhcmdldGVkCithZGp1c3Q6CisgIC0gZW5hYmxlZDogZmFsc2UK KyAgICB3aGVuOiBkaXN0cm8gPT0gcmhlbC00LCByaGVsLTUKKyAgICBjb250aW51ZTogZmFsc2UK K2V4dHJhLW5pdHJhdGU6IFRDIzA1NDY3NTAKK2V4dHJhLXN1bW1hcnk6IC9Db3JlT1MvbGlic2Vt YW5hZ2UvU2FuaXR5L3NlbWFuYWdlLXNldXNlci1mdW5jdGlvbnMKK2V4dHJhLXRhc2s6IC9Db3Jl T1MvbGlic2VtYW5hZ2UvU2FuaXR5L3NlbWFuYWdlLXNldXNlci1mdW5jdGlvbnMKCmRpZmYgLS1n aXQgYS9saWJzZW1hbmFnZS9zZW1hbmFnZS1zZXVzZXItZnVuY3Rpb25zL3J1bnRlc3Quc2ggYi9s aWJzZW1hbmFnZS9zZW1hbmFnZS1zZXVzZXItZnVuY3Rpb25zL3J1bnRlc3Quc2gKbmV3IGZpbGUg bW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMWI4N2M4ZQotLS0gL2Rldi9udWxsCisrKyBiL2xp YnNlbWFuYWdlL3NlbWFuYWdlLXNldXNlci1mdW5jdGlvbnMvcnVudGVzdC5zaApAQCAtMCwwICsx LDI1NyBAQAorIyEvYmluL2Jhc2gKKyMgdmltOiBkaWN0Kz0vdXNyL3NoYXJlL2JlYWtlcmxpYi9k aWN0aW9uYXJ5LnZpbSBjcHQ9Lix3LGIsdSx0LGksaworIyB+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgorIworIyAgIHJ1 bnRlc3Quc2ggb2YgL0NvcmVPUy9saWJzZW1hbmFnZS9TYW5pdHkvc2VtYW5hZ2Utc2V1c2VyLWZ1 bmN0aW9ucworIyAgIERlc2NyaXB0aW9uOiBUZXN0IHNlbWFuYWdlX3NldXNlcl8qIGZ1bmN0aW9u cworIyAgIEF1dGhvcjogSmFuIFphcnNreSA8anphcnNreUByZWRoYXQuY29tPgorIworIyB+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fgorIworIyAgIENvcHlyaWdodCAoYykgMjAxNyBSZWQgSGF0LCBJbmMuCisjCisjICAg VGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFu ZC9vcgorIyAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1 YmxpYyBMaWNlbnNlIGFzCisjICAgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5k YXRpb24sIGVpdGhlciB2ZXJzaW9uIDIgb2YKKyMgICB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIg b3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyMKKyMgICBUaGlzIHByb2dyYW0gaXMgZGlzdHJp YnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlCisjICAgdXNlZnVsLCBidXQgV0lUSE9V VCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZAorIyAgIHdhcnJhbnR5IG9m IE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyMgICBQVVJQT1NF LiAgU2VlIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgor IworIyAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFs IFB1YmxpYyBMaWNlbnNlCisjICAgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uIElmIG5vdCwgc2Vl IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8uCisjCisjIH5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CisKKyMgSW5j bHVkZSBCZWFrZXIgZW52aXJvbm1lbnQKKy4gL3Vzci9zaGFyZS9iZWFrZXJsaWIvYmVha2VybGli LnNoIHx8IGV4aXQgMQorCitQQUNLQUdFPSJsaWJzZW1hbmFnZSIKKworcmxKb3VybmFsU3RhcnQK KyAgICBybFBoYXNlU3RhcnRTZXR1cAorICAgICAgICBybEFzc2VydFJwbSAke1BBQ0tBR0V9Cisg ICAgICAgIHJsQXNzZXJ0UnBtICR7UEFDS0FHRX0tZGV2ZWwKKyAgICAgICAgcmxBc3NlcnRScG0g ImdsaWJjIgorICAgICAgICBybEFzc2VydFJwbSAiZ2NjIgorCisgICAgICAgIGZvciBmIGluIHRl c3RfKi5jIDsgZG8gCisgICAgICAgICAgICBvdXQ9JChlY2hvIC1uICRmIHwgY3V0IC1kJy4nIC1m MSkKKyAgICAgICAgICAgIHJsUnVuICJnY2MgJGYgLW8gJG91dCAtbHNlbWFuYWdlIC1XYWxsIC1X ZXh0cmEgLVdlcnJvciAtc3RkPWM5OSIKKyAgICAgICAgZG9uZQorCisgICAgICAgIFBPTElDWV9U WVBFPSIkKGdyZXAgLUUgJ15TRUxJTlVYVFlQRT0nIC9ldGMvc2VsaW51eC9jb25maWcgfCBjdXQg LWQnPScgLWYyIHwgdHIgJ1s6dXBwZXI6XScgJ1s6bG93ZXI6XScgfCB0ciAtZCAnICcpIgorCisg ICAgICAgIGlmIHJsSXNGZWRvcmE7IHRoZW4KKyAgICAgICAgICAgIFNFVVNFUlNfUEFUSD0iL3Zh ci9saWIvc2VsaW51eC8kUE9MSUNZX1RZUEUvYWN0aXZlL3NldXNlcnMiCisgICAgICAgIGVsaWYg cmxJc1JIRUwgJzw9Nyc7IHRoZW4KKyAgICAgICAgICAgIFNFVVNFUlNfUEFUSD0iL2V0Yy9zZWxp bnV4LyRQT0xJQ1lfVFlQRS9hY3RpdmUvc2V1c2VycyIKKyAgICAgICAgICAgIGlmIHJsSXNSSEVM ICc8PTYnOyB0aGVuCisgICAgICAgICAgICAgIFNFVVNFUlNfUEFUSD0iL2V0Yy9zZWxpbnV4LyRQ T0xJQ1lfVFlQRS9zZXVzZXJzIgorICAgICAgICAgICAgZmkKKyAgICAgICAgZWxpZiBybElzUkhF TCAnPj04JzsgdGhlbgorICAgICAgICAgICAgU0VVU0VSU19QQVRIPSIvdmFyL2xpYi9zZWxpbnV4 LyRQT0xJQ1lfVFlQRS9hY3RpdmUvc2V1c2VycyIKKyAgICAgICAgZmkKKworICAgICAgICBybFJ1 biAiY2F0ICRTRVVTRVJTX1BBVEgiCisKKyAgICAgICAgU0VVU0VSU19DT1VOVD0iJChjYXQgJFNF VVNFUlNfUEFUSCB8IGdyZXAgLXZFICdeI3xeJCcgfCB3YyAtbCkiCisgICAgICAgIHJsUnVuICJb WyBcIiRTRVVTRVJTX0NPVU5UXCIgLWd0IDAgXV0iCisKKyAgICAgICAgU0VVU0VSUz0iJChjYXQg JFNFVVNFUlNfUEFUSCB8IGdyZXAgLXZFICdeI3xeJCcgfCBjdXQgLWQnOicgLWYxIHwgdHIgJ1xu JyAnICcpIgorICAgICAgICBybFJ1biAiW1sgLW4gXCIkU0VVU0VSU1wiIF1dIgorCisgICAgICAg IGZpcnN0X2xpbmU9IiQoY2F0ICRTRVVTRVJTX1BBVEggfCBncmVwIC12RSAnXiN8XiQnIHwgaGVh ZCAtbiAxKSIKKyAgICAgICAgU0VVU0VSPSIkKGVjaG8gLW4gJGZpcnN0X2xpbmUgfCBjdXQgLWQn OicgLWYxKSIKKyAgICAgICAgcmxSdW4gIltbIC1uIFwiJFNFVVNFUlwiIF1dIgorICAgICAgICBT RVVTRVJfU0VOQU1FPSIkKGVjaG8gLW4gJGZpcnN0X2xpbmUgfCBjdXQgLWQnOicgLWYyKSIKKyAg ICAgICAgcmxSdW4gIltbIC1uIFwiJFNFVVNFUl9TRU5BTUVcIiBdXSIKKyAgICAgICAgU0VVU0VS X01MU1JBTkdFPSIkKGVjaG8gLW4gJGZpcnN0X2xpbmUgfCBjdXQgLWQnOicgLWYzLTQpIgorICAg ICAgICBybFJ1biAiW1sgLW4gXCIkU0VVU0VSX01MU1JBTkdFXCIgXV0iCisKKyAgICAgICAgU0VV U0VSX05PTkVYSVNURU5UPSJub251c2VyIgorICAgICAgICBTRVVTRVJfREVGQVVMVD0iX19kZWZh dWx0X18iCisKKyAgICAgICAgRVJSX0ZBSUw9MQorICAgICAgICBFUlJfQUJPUlQ9MTM0CisgICAg ICAgIEVSUl9TRUdGQVVMVD0xMzkKKworICAgICAgICAjIG5vdGU6IGVhY2ggdGVzdF8qLmMgcHJv Z3JhbSB0YWtlcyBmaXJzdCBhcmd1bWVudCB3aGljaCBzcGVjaWZpZXMgc2V0dXAKKyAgICAgICAg IyAgICAgICBiZWZvcmUgZXhlY3V0aW5nIHNwZWNpZmllZCBmdW5jdGlvbgorICAgICAgICAjICAg ICAgIGluaXQgICAgICBzZW1hbmFnZSBoYW5kbGUgPT0gTlVMTAorICAgICAgICAjICAgICAgIGhh bmRsZSAgICBzZW1hbmFnZSBoYW5kbGUgb2J0YWluZWQgdmlhIHNlbWFuYWdlX2hhbmRsZV9jcmVh dGUKKyAgICAgICAgIyAgICAgICBjb25uICAgICAgY29ubmVjdGVkIHZpYSBzZW1hbmFnZV9jb25u ZWN0CisgICAgICAgICMgICAgICAgdHJhbnMgICAgIGluc2lkZSB0cmFuc2FjdGlvbiwgdmlhIHNl bWFuYWdlX2JlZ2luX3RyYW5zYWN0aW9uCisgICAgICAgICMgcHJvZ3JhbSByZXR1cm5zIDEgb24g ZXJyb3IgaW4gZnVuY3Rpb24sIDIgb24gZXJyb3IgaW4gc2V0dXAKKyAgICBybFBoYXNlRW5kCisK KyAgICBybFBoYXNlU3RhcnRUZXN0ICJzZW1hbmFnZV9zZXVzZXJfa2V5X2NyZWF0ZSwgc2VtYW5h Z2Vfc2V1c2VyX2tleV9mcmVlIgorICAgICAgICAjIEZJWE1FCisgICAgICAgICMgcmxSdW4gIi4v dGVzdF9rZXlfY3JlYXRlIGluaXQgICAkU0VVU0VSIiAkRVJSX0FCT1JULCRFUlJfU0VHRkFVTFQK KyAgICAgICAgIyBybFJ1biAiLi90ZXN0X2tleV9jcmVhdGUgaGFuZGxlICRTRVVTRVIiICRFUlJf RkFJTAorICAgICAgICBybFJ1biAiLi90ZXN0X2tleV9jcmVhdGUgY29ubiAgICRTRVVTRVIiCisg ICAgICAgIHJsUnVuICIuL3Rlc3Rfa2V5X2NyZWF0ZSB0cmFucyAgJFNFVVNFUiIKKyAgICBybFBo YXNlRW5kCisKKyAgICBybFBoYXNlU3RhcnRUZXN0ICJzZW1hbmFnZV9zZXVzZXJfa2V5X2V4dHJh Y3QiCisgICAgICAgICMgRklYTUUKKyAgICAgICAgI3JsUnVuICIuL3Rlc3Rfa2V5X2V4dHJhY3Qg Y29ubiAgbmV3IgorICAgICAgICBybFJ1biAiLi90ZXN0X2tleV9leHRyYWN0IGNvbm4gIGZpcnN0 IgorICAgICAgICAjIEZJWE1FCisgICAgICAgICNybFJ1biAiLi90ZXN0X2tleV9leHRyYWN0IHRy YW5zIG5ldyIKKyAgICAgICAgcmxSdW4gIi4vdGVzdF9rZXlfZXh0cmFjdCB0cmFucyBmaXJzdCIK KyAgICBybFBoYXNlRW5kCisKKyAgICBybFBoYXNlU3RhcnRUZXN0ICJzZW1hbmFnZV9zZXVzZXJf Y29tcGFyZSIKKyAgICAgICAgcmxSdW4gIi4vdGVzdF9jb21wYXJlIGNvbm4gICRTRVVTRVIgICAg ICAgICAgICAgc2FtZSIKKyAgICAgICAgcmxSdW4gIi4vdGVzdF9jb21wYXJlIGNvbm4gICRTRVVT RVJfTk9ORVhJU1RFTlQgZGlmZmVyZW50IgorICAgICAgICBybFJ1biAiLi90ZXN0X2NvbXBhcmUg dHJhbnMgJFNFVVNFUiAgICAgICAgICAgICBzYW1lIgorICAgICAgICBybFJ1biAiLi90ZXN0X2Nv bXBhcmUgdHJhbnMgJFNFVVNFUl9OT05FWElTVEVOVCBkaWZmZXJlbnQiCisgICAgcmxQaGFzZUVu ZAorCisgICAgcmxQaGFzZVN0YXJ0VGVzdCAic2VtYW5hZ2Vfc2V1c2VyX2NvbXBhcmUyIgorICAg ICAgICBybFJ1biAiLi90ZXN0X2NvbXBhcmUyIGNvbm4gIE5VTEwgMCIgICAgJEVSUl9BQk9SVCwk RVJSX1NFR0ZBVUxUCisgICAgICAgIHJsUnVuICIuL3Rlc3RfY29tcGFyZTIgY29ubiAgMCAgICBO VUxMIiAkRVJSX0FCT1JULCRFUlJfU0VHRkFVTFQKKyAgICAgICAgcmxSdW4gIi4vdGVzdF9jb21w YXJlMiBjb25uICBOVUxMIE5VTEwiICRFUlJfQUJPUlQsJEVSUl9TRUdGQVVMVAorICAgICAgICBy bFJ1biAiLi90ZXN0X2NvbXBhcmUyIGNvbm4gIDAgICAgMCIKKyAgICAgICAgcmxSdW4gIi4vdGVz dF9jb21wYXJlMiBjb25uICAwICAgIDEiCisgICAgICAgIHJsUnVuICIuL3Rlc3RfY29tcGFyZTIg dHJhbnMgTlVMTCAwIiAgICAkRVJSX0FCT1JULCRFUlJfU0VHRkFVTFQKKyAgICAgICAgcmxSdW4g Ii4vdGVzdF9jb21wYXJlMiB0cmFucyAwICAgIE5VTEwiICRFUlJfQUJPUlQsJEVSUl9TRUdGQVVM VAorICAgICAgICBybFJ1biAiLi90ZXN0X2NvbXBhcmUyIHRyYW5zIE5VTEwgTlVMTCIgJEVSUl9B Qk9SVCwkRVJSX1NFR0ZBVUxUCisgICAgICAgIHJsUnVuICIuL3Rlc3RfY29tcGFyZTIgdHJhbnMg MCAgICAwIgorICAgICAgICBybFJ1biAiLi90ZXN0X2NvbXBhcmUyIHRyYW5zIDAgICAgMSIKKyAg ICBybFBoYXNlRW5kCisKKyAgICBybFBoYXNlU3RhcnRUZXN0ICJzZW1hbmFnZV9zZXVzZXJfY291 bnQiCisgICAgICAgIHJsUnVuICIuL3Rlc3RfY291bnQgaW5pdCIgICAkRVJSX0FCT1JULCRFUlJf U0VHRkFVTFQKKyAgICAgICAgcmxSdW4gIi4vdGVzdF9jb3VudCBoYW5kbGUiICRFUlJfRkFJTAor ICAgICAgICBybFJ1biAiLi90ZXN0X2NvdW50IGNvbm4gICRTRVVTRVJTX0NPVU5UIgorICAgICAg ICBybFJ1biAiLi90ZXN0X2NvdW50IHRyYW5zICRTRVVTRVJTX0NPVU5UIgorICAgIHJsUGhhc2VF bmQKKworICAgIHJsUGhhc2VTdGFydFRlc3QgInNlbWFuYWdlX3NldXNlcl9saXN0IgorICAgICAg ICBybFJ1biAiLi90ZXN0X2xpc3QgaW5pdCIgICAkRVJSX0FCT1JULCRFUlJfU0VHRkFVTFQKKyAg ICAgICAgcmxSdW4gIi4vdGVzdF9saXN0IGhhbmRsZSIgJEVSUl9GQUlMCisgICAgICAgIHJsUnVu ICIuL3Rlc3RfbGlzdCBjb25uICAkU0VVU0VSU19DT1VOVCAkU0VVU0VSUyIKKyAgICAgICAgcmxS dW4gIi4vdGVzdF9saXN0IHRyYW5zICRTRVVTRVJTX0NPVU5UICRTRVVTRVJTIgorICAgIHJsUGhh c2VFbmQKKworICAgIHJsUGhhc2VTdGFydFRlc3QgInNlbWFuYWdlX3NldXNlcl9pdGVyYXRlIgor ICAgICAgICBybFJ1biAiLi90ZXN0X2l0ZXJhdGUgaW5pdCIgICAkRVJSX0FCT1JULCRFUlJfU0VH RkFVTFQKKyAgICAgICAgcmxSdW4gIi4vdGVzdF9pdGVyYXRlIGhhbmRsZSIgJEVSUl9GQUlMCisg ICAgICAgIHJsUnVuICIuL3Rlc3RfaXRlcmF0ZSBjb25uICAkU0VVU0VSUyIKKyAgICAgICAgcmxS dW4gIi4vdGVzdF9pdGVyYXRlIHRyYW5zICRTRVVTRVJTIgorICAgIHJsUGhhc2VFbmQKKworICAg IHJsUGhhc2VTdGFydFRlc3QgInNlbWFuYWdlX3NldXNlcl9leGlzdHMiCisgICAgICAgIHJsUnVu ICIuL3Rlc3RfZXhpc3RzIGNvbm4gICRTRVVTRVJfTk9ORVhJU1RFTlQgMCIKKyAgICAgICAgcmxS dW4gIi4vdGVzdF9leGlzdHMgY29ubiAgJFNFVVNFUl9ERUZBVUxUICAgICAxIgorICAgICAgICBy bFJ1biAiLi90ZXN0X2V4aXN0cyBjb25uICAkVVNFUiAgICAgICAgICAgICAgIDEiCisgICAgICAg IHJsUnVuICIuL3Rlc3RfZXhpc3RzIHRyYW5zICRTRVVTRVJfTk9ORVhJU1RFTlQgMCIKKyAgICAg ICAgcmxSdW4gIi4vdGVzdF9leGlzdHMgdHJhbnMgJFNFVVNFUl9ERUZBVUxUICAgICAxIgorICAg ICAgICBybFJ1biAiLi90ZXN0X2V4aXN0cyB0cmFucyAkU0VVU0VSICAgICAgICAgICAgIDEiCisg ICAgcmxQaGFzZUVuZAorCisgICAgcmxQaGFzZVN0YXJ0VGVzdCAic2VtYW5hZ2Vfc2V1c2VyX3F1 ZXJ5IgorICAgICAgICBybFJ1biAiLi90ZXN0X3F1ZXJ5IGNvbm4gICRTRVVTRVJfTk9ORVhJU1RF TlQiICRFUlJfRkFJTAorICAgICAgICBybFJ1biAiLi90ZXN0X3F1ZXJ5IGNvbm4gICRTRVVTRVJf REVGQVVMVCIKKyAgICAgICAgcmxSdW4gIi4vdGVzdF9xdWVyeSBjb25uICAkU0VVU0VSIgorICAg ICAgICBybFJ1biAiLi90ZXN0X3F1ZXJ5IHRyYW5zICRTRVVTRVJfTk9ORVhJU1RFTlQiICRFUlJf RkFJTAorICAgICAgICBybFJ1biAiLi90ZXN0X3F1ZXJ5IHRyYW5zICRTRVVTRVJfREVGQVVMVCIK KyAgICAgICAgcmxSdW4gIi4vdGVzdF9xdWVyeSB0cmFucyAkU0VVU0VSIgorICAgIHJsUGhhc2VF bmQKKworICAgIHJsUGhhc2VTdGFydFRlc3QgInNlbWFuYWdlX3NldXNlcl9nZXRfbmFtZSIKKyAg ICAgICAgcmxSdW4gIi4vdGVzdF9nZXRfbmFtZSBjb25uICBuZXcgICBOVUxMIgorICAgICAgICBy bFJ1biAiLi90ZXN0X2dldF9uYW1lIGNvbm4gIGZpcnN0ICRTRVVTRVIiCisgICAgICAgIHJsUnVu ICIuL3Rlc3RfZ2V0X25hbWUgdHJhbnMgbmV3ICAgTlVMTCIKKyAgICAgICAgcmxSdW4gIi4vdGVz dF9nZXRfbmFtZSB0cmFucyBmaXJzdCAkU0VVU0VSIgorICAgIHJsUGhhc2VFbmQKKworICAgIHJs UGhhc2VTdGFydFRlc3QgInNlbWFuYWdlX3NldXNlcl9zZXRfbmFtZSIKKyAgICAgICAgbmFtZT0i c29tZXVzZXIiCisgICAgICAgIHJsUnVuICIuL3Rlc3Rfc2V0X25hbWUgY29ubiAgJG5hbWUiCisg ICAgICAgIHJsUnVuICIuL3Rlc3Rfc2V0X25hbWUgdHJhbnMgJG5hbWUiCisgICAgcmxQaGFzZUVu ZAorCisgICAgcmxQaGFzZVN0YXJ0VGVzdCAic2VtYW5hZ2Vfc2V1c2VyX2dldF9zZW5hbWUiCisg ICAgICAgIHJsUnVuICIuL3Rlc3RfZ2V0X3NlbmFtZSBjb25uICBuZXcgICBOVUxMIgorICAgICAg ICBybFJ1biAiLi90ZXN0X2dldF9zZW5hbWUgY29ubiAgZmlyc3QgJFNFVVNFUl9TRU5BTUUiCisg ICAgICAgIHJsUnVuICIuL3Rlc3RfZ2V0X3NlbmFtZSB0cmFucyBuZXcgICBOVUxMIgorICAgICAg ICBybFJ1biAiLi90ZXN0X2dldF9zZW5hbWUgdHJhbnMgZmlyc3QgJFNFVVNFUl9TRU5BTUUiCisg ICAgcmxQaGFzZUVuZAorCisgICAgcmxQaGFzZVN0YXJ0VGVzdCAic2VtYW5hZ2Vfc2V1c2VyX3Nl dF9zZW5hbWUiCisgICAgICAgIHNlbmFtZT0ic29tZXVzZXJfdSIKKyAgICAgICAgcmxSdW4gIi4v dGVzdF9zZXRfc2VuYW1lIGNvbm4gICRzZW5hbWUiCisgICAgICAgIHJsUnVuICIuL3Rlc3Rfc2V0 X3NlbmFtZSB0cmFucyAkc2VuYW1lIgorICAgIHJsUGhhc2VFbmQKKworICAgIHJsUGhhc2VTdGFy dFRlc3QgInNlbWFuYWdlX3NldXNlcl9nZXRfbWxzcmFuZ2UiCisgICAgICAgIHJsUnVuICIuL3Rl c3RfZ2V0X21sc3JhbmdlIGNvbm4gIG5ldyAgIE5VTEwiCisgICAgICAgIHJsUnVuICIuL3Rlc3Rf Z2V0X21sc3JhbmdlIGNvbm4gIGZpcnN0ICRTRVVTRVJfTUxTUkFOR0UiCisgICAgICAgIHJsUnVu ICIuL3Rlc3RfZ2V0X21sc3JhbmdlIHRyYW5zIG5ldyAgIE5VTEwiCisgICAgICAgIHJsUnVuICIu L3Rlc3RfZ2V0X21sc3JhbmdlIHRyYW5zIGZpcnN0ICRTRVVTRVJfTUxTUkFOR0UiCisgICAgcmxQ aGFzZUVuZAorCisgICAgcmxQaGFzZVN0YXJ0VGVzdCAic2VtYW5hZ2Vfc2V1c2VyX3NldF9tbHNy YW5nZSIKKyAgICAgICAgbWxzcmFuZ2U9ImMwLXMxOmMwLmM0MiIKKyAgICAgICAgcmxSdW4gIi4v dGVzdF9zZXRfbWxzcmFuZ2UgY29ubiAgJG1sc3JhbmdlIgorICAgICAgICBybFJ1biAiLi90ZXN0 X3NldF9tbHNyYW5nZSB0cmFucyAkbWxzcmFuZ2UiCisgICAgcmxQaGFzZUVuZAorCisgICAgcmxQ aGFzZVN0YXJ0VGVzdCAic2VtYW5hZ2Vfc2V1c2VyX2Nsb25lIgorICAgICAgICAjIEZJWE1FCisg ICAgICAgICNybFJ1biAiLi90ZXN0X2Nsb25lIGNvbm4gIG5ldyIKKyAgICAgICAgcmxSdW4gIi4v dGVzdF9jbG9uZSBjb25uICBmaXJzdCIKKyAgICAgICAgIyBGSVhNRQorICAgICAgICAjcmxSdW4g Ii4vdGVzdF9jbG9uZSB0cmFucyBuZXciCisgICAgICAgIHJsUnVuICIuL3Rlc3RfY2xvbmUgdHJh bnMgZmlyc3QiCisgICAgcmxQaGFzZUVuZAorCisgICAgcmxQaGFzZVN0YXJ0VGVzdCAic2VtYW5h Z2Vfc2V1c2VyX2NyZWF0ZSIKKyAgICAgICAgIyBGSVhNRQorICAgICAgICAjcmxSdW4gIi4vdGVz dF9jcmVhdGUgaW5pdCIgJEVSUl9BQk9SVCwkRVJSX1NFR0ZBVUxUCisgICAgICAgICNybFJ1biAi Li90ZXN0X2NyZWF0ZSBoYW5kbGUiICRFUlJfQUJPUlQsJEVSUl9TRUdGQVVMVAorICAgICAgICBy bFJ1biAiLi90ZXN0X2NyZWF0ZSBjb25uIgorICAgICAgICBybFJ1biAiLi90ZXN0X2NyZWF0ZSB0 cmFucyIKKyAgICBybFBoYXNlRW5kCisKKyAgICBybFBoYXNlU3RhcnRUZXN0ICJzZW1hbmFnZV9z ZXVzZXJfbW9kaWZ5X2xvY2FsIgorICAgICAgICAjIGZ1bmN0aW9uIHJlcXVpcmVzIHRyYW5zYWN0 aW9uCisgICAgICAgICNybFJ1biAiLi90ZXN0X21vZGlmeV9sb2NhbCBjb25uICBuZXciICAgJEVS Ul9GQUlMCisgICAgICAgICNybFJ1biAiLi90ZXN0X21vZGlmeV9sb2NhbCBjb25uICBmaXJzdCIg JEVSUl9GQUlMCisgICAgICAgICNybFJ1biAiLi90ZXN0X21vZGlmeV9sb2NhbCB0cmFucyBuZXci ICAgJEVSUl9GQUlMCisgICAgICAgIHJsUnVuICIuL3Rlc3RfbW9kaWZ5X2xvY2FsIHRyYW5zIGZp cnN0IgorICAgIHJsUGhhc2VFbmQKKyAgICAKKyAgICBybFBoYXNlU3RhcnRUZXN0ICJzZW1hbmFn ZV9zZXVzZXJfZGVsX2xvY2FsIgorICAgICAgICAjIGFkZGluZyBsb2NhbCBzZXVzZXIgcmVxdWly ZXMgdHJhbnNhY3Rpb24KKyAgICAgICAgIyBGSVhNRQorICAgICAgICAjcmxSdW4gIi4vdGVzdF9k ZWxfbG9jYWwgdHJhbnMgZmlyc3QgbmV3IgorICAgICAgICAjcmxSdW4gIi4vdGVzdF9kZWxfbG9j YWwgdHJhbnMgZmlyc3Qgc2Vjb25kIgorICAgICAgICBybFJ1biAiLi90ZXN0X2RlbF9sb2NhbCB0 cmFucyBmaXJzdCBmaXJzdCIKKyAgICBybFBoYXNlRW5kCisKKyAgICBybFBoYXNlU3RhcnRUZXN0 ICJzZW1hbmFnZV9zZXVzZXJfZXhpc3RzX2xvY2FsIgorICAgICAgICAjIGFkZGluZyBsb2NhbCBz ZXVzZXIgcmVxdWlyZXMgdHJhbnNhY3Rpb24KKyAgICAgICAgcmxSdW4gIi4vdGVzdF9leGlzdHNf bG9jYWwgdHJhbnMgZmlyc3QgZmlyc3QgIDEiCisgICAgICAgIHJsUnVuICIuL3Rlc3RfZXhpc3Rz X2xvY2FsIHRyYW5zIGZpcnN0IHNlY29uZCAwIgorICAgIHJsUGhhc2VFbmQKKworICAgIHJsUGhh c2VTdGFydFRlc3QgInNlbWFuYWdlX3NldXNlcl9jb3VudF9sb2NhbCIKKyAgICAgICAgIyBhZGRp bmcgbG9jYWwgc2V1c2VyIHJlcXVpcmVzIHRyYW5zYWN0aW9uCisgICAgICAgICMgRklYTUUKKyAg ICAgICAgI3JsUnVuICIuL3Rlc3RfY291bnRfbG9jYWwgdHJhbnMgMCIKKyAgICAgICAgcmxSdW4g Ii4vdGVzdF9jb3VudF9sb2NhbCB0cmFucyAxIgorICAgICAgICBybFJ1biAiLi90ZXN0X2NvdW50 X2xvY2FsIHRyYW5zIDIiCisgICAgcmxQaGFzZUVuZAorCisgICAgcmxQaGFzZVN0YXJ0Q2xlYW51 cAorICAgICAgICB0ZXN0ZmlsZXM9IiQobHMgLTEgdGVzdF8qIHwgZ3JlcCAtdiAnXC5jJyB8IHRy ICdcbicgJyAnKSIKKyAgICAgICAgcmxSdW4gInJtIC1mICR0ZXN0ZmlsZXMiCisgICAgcmxQaGFz ZUVuZAorcmxKb3VybmFsUHJpbnRUZXh0CitybEpvdXJuYWxFbmQKCmRpZmYgLS1naXQgYS9saWJz ZW1hbmFnZS9zZW1hbmFnZS1zZXVzZXItZnVuY3Rpb25zL3Rlc3RfY2xvbmUuYyBiL2xpYnNlbWFu YWdlL3NlbWFuYWdlLXNldXNlci1mdW5jdGlvbnMvdGVzdF9jbG9uZS5jCm5ldyBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhjMjU1NGYKLS0tIC9kZXYvbnVsbAorKysgYi9saWJzZW1h bmFnZS9zZW1hbmFnZS1zZXVzZXItZnVuY3Rpb25zL3Rlc3RfY2xvbmUuYwpAQCAtMCwwICsxLDYw IEBACisjaW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDxzdGRsaWIuaD4KKyNpbmNsdWRlIDxz dHJpbmcuaD4KKyNpbmNsdWRlIDxlcnJuby5oPgorI2luY2x1ZGUgPHNlbWFuYWdlL3NlbWFuYWdl Lmg+CisKKyNpbmNsdWRlICJmdW5jdGlvbnMuYyIKKworaW50IG1haW4gKGludCBhcmdjLCBjaGFy ICoqYXJndikgeworICAgIHNlbWFuYWdlX2hhbmRsZV90ICpzaDsKKyAgICBzZW1hbmFnZV9zZXVz ZXJfdCAqc2V1c2VyOworICAgIHNlbWFuYWdlX3NldXNlcl90ICpzZXVzZXJfY2xvbmU7CisgICAg aW50IHJlc3VsdDsKKyAgICBjb25zdCBjaGFyICpzdHI7CisgICAgY29uc3QgY2hhciAqc3RyX2Ns b25lOworICAgIAorICAgIGlmIChhcmdjIDwgMykKKyAgICAgICAgZXhpdCgyKTsKKyAgICAKKyAg ICBzaCA9IGdldF9oYW5kbGUoYXJndlsxXSk7CisKKyAgICBzZXVzZXIgPSB0ZXN0X2dldF9zZXVz ZXIoc2gsIGFyZ3ZbMl0pOworCisgICAgcmVzdWx0ID0gc2VtYW5hZ2Vfc2V1c2VyX2Nsb25lKHNo LCBzZXVzZXIsICZzZXVzZXJfY2xvbmUpOworICAgIHByaW50Zigic2VtYW5hZ2Vfc2V1c2VyX2Ns b25lKCVwLCAlcCk6ICVkXG4iLAorICAgICAgICAgICAodm9pZCAqKSBzZXVzZXIsICh2b2lkICop IHNldXNlcl9jbG9uZSwgcmVzdWx0KTsKKworICAgIGlmIChyZXN1bHQgPCAwKSB7CisgICAgICAg IHBlcnJvcigic2VtYW5hZ2Vfc2V1c2VyX2Nsb25lIik7CisgICAgICAgIGV4aXQoMSk7CisgICAg fQorCisgICAgc3RyID0gc2VtYW5hZ2Vfc2V1c2VyX2dldF9uYW1lKHNldXNlcik7CisgICAgc3Ry X2Nsb25lID0gc2VtYW5hZ2Vfc2V1c2VyX2dldF9uYW1lKHNldXNlcl9jbG9uZSk7CisKKyAgICBp ZiAoc3RyY21wKHN0ciwgc3RyX2Nsb25lKSAhPSAwKSB7CisgICAgICAgIGZwcmludGYoc3RkZXJy LCAiRGlmZmVyZW50IGluIGdldF9uYW1lXG4iKTsKKyAgICAgICAgZXhpdCgxKTsKKyAgICB9CisK KyAgICBzdHIgPSBzZW1hbmFnZV9zZXVzZXJfZ2V0X3NlbmFtZShzZXVzZXIpOworICAgIHN0cl9j bG9uZSA9IHNlbWFuYWdlX3NldXNlcl9nZXRfc2VuYW1lKHNldXNlcl9jbG9uZSk7CisKKyAgICBp ZiAoc3RyY21wKHN0ciwgc3RyX2Nsb25lKSAhPSAwKSB7CisgICAgICAgIGZwcmludGYoc3RkZXJy LCAiRGlmZmVyZW50IGluIGdldF9zZW5hbWVcbiIpOworICAgICAgICBleGl0KDEpOworICAgIH0K KworICAgIHN0ciA9IHNlbWFuYWdlX3NldXNlcl9nZXRfbWxzcmFuZ2Uoc2V1c2VyKTsKKyAgICBz dHJfY2xvbmUgPSBzZW1hbmFnZV9zZXVzZXJfZ2V0X21sc3JhbmdlKHNldXNlcl9jbG9uZSk7CisK KyAgICBpZiAoc3RyY21wKHN0ciwgc3RyX2Nsb25lKSAhPSAwKSB7CisgICAgICAgIGZwcmludGYo c3RkZXJyLCAiRGlmZmVyZW50IGluIGdldF9tbHNyYW5nZVxuIik7CisgICAgICAgIGV4aXQoMSk7 CisgICAgfQorCisgICAgZGVzdHJveV9oYW5kbGUoc2gsIGFyZ3ZbMV0pOworCisgICAgZXhpdCgw KTsKK30KCmRpZmYgLS1naXQgYS9saWJzZW1hbmFnZS9zZW1hbmFnZS1zZXVzZXItZnVuY3Rpb25z L3Rlc3RfY29tcGFyZS5jIGIvbGlic2VtYW5hZ2Uvc2VtYW5hZ2Utc2V1c2VyLWZ1bmN0aW9ucy90 ZXN0X2NvbXBhcmUuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41NjE1NDYz Ci0tLSAvZGV2L251bGwKKysrIGIvbGlic2VtYW5hZ2Uvc2VtYW5hZ2Utc2V1c2VyLWZ1bmN0aW9u cy90ZXN0X2NvbXBhcmUuYwpAQCAtMCwwICsxLDQ0IEBACisjaW5jbHVkZSA8c3RkaW8uaD4KKyNp bmNsdWRlIDxzdGRsaWIuaD4KKyNpbmNsdWRlIDxzdHJpbmcuaD4KKyNpbmNsdWRlIDxlcnJuby5o PgorI2luY2x1ZGUgPHNlbWFuYWdlL3NlbWFuYWdlLmg+CisKKyNpbmNsdWRlICJmdW5jdGlvbnMu YyIKKworaW50IG1haW4gKGludCBhcmdjLCBjaGFyICoqYXJndikgeworICAgIHNlbWFuYWdlX2hh bmRsZV90ICpzaDsKKyAgICBzZW1hbmFnZV9zZXVzZXJfdCAqc2V1c2VyOworICAgIHNlbWFuYWdl X3NldXNlcl9rZXlfdCAqa2V5OworICAgIGludCByZXN1bHQ7CisgICAgCisgICAgaWYgKGFyZ2Mg PCAzKQorICAgICAgICBleGl0KDIpOworICAgIAorICAgIHNoID0gZ2V0X2hhbmRsZShhcmd2WzFd KTsKKworICAgIHNldXNlciA9IHRlc3RfZ2V0X3NldXNlcihzaCwgImZpcnN0Iik7CisKKyAgICBr ZXkgPSB0ZXN0X2dldF9rZXkoc2gsIGFyZ3ZbMl0pOworCisgICAgcmVzdWx0ID0gc2VtYW5hZ2Vf c2V1c2VyX2NvbXBhcmUoc2V1c2VyLCBrZXkpOworICAgIHByaW50Zigic2VtYW5hZ2Vfc2V1c2Vy X2NvbXBhcmUoJXAsICVwKTogJWRcbiIsCisgICAgICAgICAgICh2b2lkICopIHNldXNlciwgKHZv aWQgKikga2V5LCByZXN1bHQpOworCisgICAgaWYgKGFyZ2MgPj0gNCkgeworICAgICAgICBpZiAo c3RyY21wKGFyZ3ZbM10sICJzYW1lIikgPT0gMCAmJiByZXN1bHQgIT0gMCkgeworICAgICAgICAg ICAgZnByaW50ZihzdGRlcnIsICJFeHBlY3RlZCBzYW1lIGJ1dCBnb3QgZGlmZmVyZW50XG4iKTsK KyAgICAgICAgICAgIGV4aXQoMSk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSBpZiAoc3RyY21w KGFyZ3ZbM10sICJkaWZmZXJlbnQiKSA9PSAwICYmIHJlc3VsdCA9PSAwKSB7CisgICAgICAgICAg ICBmcHJpbnRmKHN0ZGVyciwgIkV4cGVjdGVkIGRpZmZlcmVudCBidXQgZ290IHNhbWVcbiIpOwor ICAgICAgICAgICAgZXhpdCgxKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHNlbWFuYWdlX3Nl dXNlcl9rZXlfZnJlZShrZXkpOworCisgICAgZGVzdHJveV9oYW5kbGUoc2gsIGFyZ3ZbMV0pOwor CisgICAgZXhpdCgwKTsKK30KCmRpZmYgLS1naXQgYS9saWJzZW1hbmFnZS9zZW1hbmFnZS1zZXVz ZXItZnVuY3Rpb25zL3Rlc3RfY29tcGFyZTIuYyBiL2xpYnNlbWFuYWdlL3NlbWFuYWdlLXNldXNl ci1mdW5jdGlvbnMvdGVzdF9jb21wYXJlMi5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAuLmFmZWVjMDcKLS0tIC9kZXYvbnVsbAorKysgYi9saWJzZW1hbmFnZS9zZW1hbmFnZS1z ZXVzZXItZnVuY3Rpb25zL3Rlc3RfY29tcGFyZTIuYwpAQCAtMCwwICsxLDU0IEBACisjaW5jbHVk ZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDxzdGRsaWIuaD4KKyNpbmNsdWRlIDxzdHJpbmcuaD4KKyNp bmNsdWRlIDxlcnJuby5oPgorI2luY2x1ZGUgPHNlbWFuYWdlL3NlbWFuYWdlLmg+CisKKyNpbmNs dWRlICJmdW5jdGlvbnMuYyIKKworaW50IG1haW4gKGludCBhcmdjLCBjaGFyICoqYXJndikgewor ICAgIHNlbWFuYWdlX2hhbmRsZV90ICpzaDsKKyAgICBzZW1hbmFnZV9zZXVzZXJfdCAqc2V1c2Vy OworICAgIHNlbWFuYWdlX3NldXNlcl90ICpzZXVzZXIyOworICAgIGludCByZXN1bHQ7CisgICAg aW50IGZpcnN0ID0gLTE7CisgICAgaW50IHNlY29uZCA9IC0xOworICAgIAorICAgIGlmIChhcmdj IDwgNCkKKyAgICAgICAgZXhpdCgyKTsKKyAgICAKKyAgICBzaCA9IGdldF9oYW5kbGUoYXJndlsx XSk7CisKKyAgICBpZiAoc3RyY21wKGFyZ3ZbMl0sICJOVUxMIikgPT0gMCkgeworICAgICAgICBz ZXVzZXIgPSBOVUxMOworICAgIH0KKyAgICBlbHNlIHsKKyAgICAgICAgZmlyc3QgPSBzdHJ0b2wo YXJndlsyXSwgTlVMTCwgMTApOworICAgICAgICBzZXVzZXIgPSB0ZXN0X2dldF9zZXVzZXJfbnRo KHNoLCBmaXJzdCk7CisgICAgfQorCisgICAgaWYgKHN0cmNtcChhcmd2WzNdLCAiTlVMTCIpID09 IDApIHsKKyAgICAgICAgc2V1c2VyMiA9IE5VTEw7CisgICAgfQorICAgIGVsc2UgeworICAgICAg ICBzZWNvbmQgPSBzdHJ0b2woYXJndlszXSwgTlVMTCwgMTApOworICAgICAgICBzZXVzZXIyID0g dGVzdF9nZXRfc2V1c2VyX250aChzaCwgc2Vjb25kKTsKKyAgICB9CisKKyAgICByZXN1bHQgPSBz ZW1hbmFnZV9zZXVzZXJfY29tcGFyZTIoc2V1c2VyLCBzZXVzZXIyKTsKKyAgICBwcmludGYoInNl bWFuYWdlX3NldXNlcl9jb21wYXJlKCVwLCAlcCk6ICVkXG4iLAorICAgICAgICAgICAodm9pZCAq KSBzZXVzZXIsICh2b2lkICopIHNldXNlcjIsIHJlc3VsdCk7CisKKyAgICBpZiAoZmlyc3QgPT0g c2Vjb25kICYmIHJlc3VsdCAhPSAwKSB7CisgICAgICAgIGZwcmludGYoc3RkZXJyLCAiRXhwZWN0 ZWQgc2FtZSBidXQgZ290IGRpZmZlcmVudFxuIik7CisgICAgICAgIGV4aXQoMSk7CisgICAgfQor ICAgIGVsc2UgaWYgKGZpcnN0ICE9IHNlY29uZCAmJiByZXN1bHQgPT0gMCkgeworICAgICAgICBm cHJpbnRmKHN0ZGVyciwgIkV4cGVjdGVkIGRpZmZlcmVudCBidXQgZ290IHNhbWVcbiIpOworICAg ICAgICBleGl0KDEpOworICAgIH0KKworICAgIGRlc3Ryb3lfaGFuZGxlKHNoLCBhcmd2WzFdKTsK KworICAgIGV4aXQoMCk7Cit9CgpkaWZmIC0tZ2l0IGEvbGlic2VtYW5hZ2Uvc2VtYW5hZ2Utc2V1 c2VyLWZ1bmN0aW9ucy90ZXN0X2NvdW50LmMgYi9saWJzZW1hbmFnZS9zZW1hbmFnZS1zZXVzZXIt ZnVuY3Rpb25zL3Rlc3RfY291bnQuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw Li43ZmFiZTRiCi0tLSAvZGV2L251bGwKKysrIGIvbGlic2VtYW5hZ2Uvc2VtYW5hZ2Utc2V1c2Vy LWZ1bmN0aW9ucy90ZXN0X2NvdW50LmMKQEAgLTAsMCArMSwzNCBAQAorI2luY2x1ZGUgPHN0ZGlv Lmg+CisjaW5jbHVkZSA8c3RkbGliLmg+CisjaW5jbHVkZSA8c3RyaW5nLmg+CisjaW5jbHVkZSA8 ZXJybm8uaD4KKyNpbmNsdWRlIDxzZW1hbmFnZS9zZW1hbmFnZS5oPgorCisjaW5jbHVkZSAiZnVu Y3Rpb25zLmMiCisKK2ludCBtYWluIChpbnQgYXJnYywgY2hhciAqKmFyZ3YpIHsKKyAgICBzZW1h bmFnZV9oYW5kbGVfdCAqc2g7CisgICAgdW5zaWduZWQgaW50IHJlc3BvbnNlOworICAgIGludCBy ZXN1bHQ7CisgICAgCisgICAgaWYgKGFyZ2MgPCAyKQorICAgICAgICBleGl0KDIpOworICAgIAor ICAgIHNoID0gZ2V0X2hhbmRsZShhcmd2WzFdKTsKKworICAgIHJlc3VsdCA9IHNlbWFuYWdlX3Nl dXNlcl9jb3VudChzaCwgJnJlc3BvbnNlKTsKKyAgICBwcmludGYoInNlbWFuYWdlX3NldXNlcl9j b3VudCglcCwgJXApOiAlZCwgcmVzcG9uc2U6ICV1XG4iLAorICAgICAgICAgICAodm9pZCAqKSBz aCwgKHZvaWQgKikgJnJlc3BvbnNlLCByZXN1bHQsIHJlc3BvbnNlKTsKKyAgICAKKyAgICBpZiAo cmVzdWx0IDwgMCkgeworICAgICAgICBwZXJyb3IoInNlbWFuYWdlX3NldXNlcl9jb3VudCIpOwor ICAgICAgICBleGl0KDEpOworICAgIH0KKworICAgIGlmIChhcmdjID49IDMpCisgICAgICAgIGNo ZWNrX3Jlc3VsdF9pbnQoYXJndlsyXSwgcmVzcG9uc2UpOworCisgICAgZGVzdHJveV9oYW5kbGUo c2gsIGFyZ3ZbMV0pOworCisgICAgZXhpdCgwKTsKK30KCmRpZmYgLS1naXQgYS9saWJzZW1hbmFn ZS9zZW1hbmFnZS1zZXVzZXItZnVuY3Rpb25zL3Rlc3RfY291bnRfbG9jYWwuYyBiL2xpYnNlbWFu YWdlL3NlbWFuYWdlLXNldXNlci1mdW5jdGlvbnMvdGVzdF9jb3VudF9sb2NhbC5jCm5ldyBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmYyNWFiNmQKLS0tIC9kZXYvbnVsbAorKysgYi9s aWJzZW1hbmFnZS9zZW1hbmFnZS1zZXVzZXItZnVuY3Rpb25zL3Rlc3RfY291bnRfbG9jYWwuYwpA QCAtMCwwICsxLDQ2IEBACisjaW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDxzdGRsaWIuaD4K KyNpbmNsdWRlIDxzdHJpbmcuaD4KKyNpbmNsdWRlIDxlcnJuby5oPgorI2luY2x1ZGUgPHNlbWFu YWdlL3NlbWFuYWdlLmg+CisKKyNpbmNsdWRlICJmdW5jdGlvbnMuYyIKKworaW50IG1haW4gKGlu dCBhcmdjLCBjaGFyICoqYXJndikgeworICAgIHNlbWFuYWdlX2hhbmRsZV90ICpzaDsKKyAgICBz ZW1hbmFnZV9zZXVzZXJfdCAqc2V1c2VyOworICAgIGludCByZXN1bHQ7CisgICAgdW5zaWduZWQg aW50IHJlc3BvbnNlOworICAgIGludCBudW07CisgICAgCisgICAgaWYgKGFyZ2MgPCAyKQorICAg ICAgICBleGl0KDIpOworICAgIAorICAgIHNoID0gZ2V0X2hhbmRsZShhcmd2WzFdKTsKKworICAg IG51bSA9IHN0cnRvbChhcmd2WzJdLCBOVUxMLCAxMCk7CisKKyAgICBmb3IgKGludCBpID0gMDsg aSA8IG51bTsgaSsrKSB7CisgICAgICAgIHNldXNlciA9IHRlc3RfZ2V0X3NldXNlcl9udGgoc2gs IGkpOworCisgICAgICAgIHRlc3RfYWRkX2xvY2FsX3NldXNlcihzaCwgc2V1c2VyKTsKKyAgICB9 CisKKyAgICByZXN1bHQgPSBzZW1hbmFnZV9zZXVzZXJfY291bnRfbG9jYWwoc2gsICZyZXNwb25z ZSk7CisgICAgcHJpbnRmKCJzZW1hbmFnZV9zZXVzZXJfY291bnRfbG9jYWwoJXAsICVwKTogJWQs IHJlc3BvbnNlOiAlZFxuIiwKKyAgICAgICAgICAgKHZvaWQgKikgc2gsICh2b2lkICopICZyZXNw b25zZSwgcmVzdWx0LCByZXNwb25zZSk7CisKKyAgICBpZiAocmVzdWx0IDwgMCkgeworICAgICAg ICBwZXJyb3IoInNlbWFuYWdlX3NldXNlcl9jb3VudF9sb2NhbCIpOworICAgICAgICBleGl0KDEp OworICAgIH0KKworICAgIGlmIChhcmdjID49IDMpCisgICAgICAgIGNoZWNrX3Jlc3VsdF9pbnQo YXJndlsyXSwgcmVzcG9uc2UpOworCisgICAgdGVzdF9kZWxfbG9jYWxfc2V1c2VyKHNoLCBzZXVz ZXIpOworCisgICAgZGVzdHJveV9oYW5kbGUoc2gsIGFyZ3ZbMV0pOworCisgICAgZXhpdCgwKTsK K30KCmRpZmYgLS1naXQgYS9saWJzZW1hbmFnZS9zZW1hbmFnZS1zZXVzZXItZnVuY3Rpb25zL3Rl c3RfY3JlYXRlLmMgYi9saWJzZW1hbmFnZS9zZW1hbmFnZS1zZXVzZXItZnVuY3Rpb25zL3Rlc3Rf Y3JlYXRlLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTUxOTFhMAotLS0g L2Rldi9udWxsCisrKyBiL2xpYnNlbWFuYWdlL3NlbWFuYWdlLXNldXNlci1mdW5jdGlvbnMvdGVz dF9jcmVhdGUuYwpAQCAtMCwwICsxLDUzIEBACisjaW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRl IDxzdGRsaWIuaD4KKyNpbmNsdWRlIDxzdHJpbmcuaD4KKyNpbmNsdWRlIDxlcnJuby5oPgorI2lu Y2x1ZGUgPHNlbWFuYWdlL3NlbWFuYWdlLmg+CisKKyNpbmNsdWRlICJmdW5jdGlvbnMuYyIKKwor aW50IG1haW4gKGludCBhcmdjLCBjaGFyICoqYXJndikgeworICAgIHNlbWFuYWdlX2hhbmRsZV90 ICpzaDsKKyAgICBzZW1hbmFnZV9zZXVzZXJfdCAqc2V1c2VyOworICAgIGludCByZXN1bHQ7Cisg ICAgY29uc3QgY2hhciAqc3RyOworICAgIAorICAgIGlmIChhcmdjIDwgMikKKyAgICAgICAgZXhp dCgyKTsKKyAgICAKKyAgICBzaCA9IGdldF9oYW5kbGUoYXJndlsxXSk7CisKKyAgICByZXN1bHQg PSBzZW1hbmFnZV9zZXVzZXJfY3JlYXRlKHNoLCAmc2V1c2VyKTsKKyAgICBwcmludGYoInNlbWFu YWdlX3NldXNlcl9jcmVhdGUoJXAsICVwKTogJWRcbiIsCisgICAgICAgICAgICh2b2lkICopIHNo LCAodm9pZCAqKSBzZXVzZXIsIHJlc3VsdCk7CisKKyAgICBpZiAocmVzdWx0IDwgMCkgeworICAg ICAgICBwZXJyb3IoInNlbWFuYWdlX3NldXNlcl9jcmVhdGUiKTsKKyAgICAgICAgZXhpdCgxKTsK KyAgICB9CisKKyAgICBzdHIgPSBzZW1hbmFnZV9zZXVzZXJfZ2V0X25hbWUoc2V1c2VyKTsKKwor ICAgIGlmIChzdHIgIT0gTlVMTCkgeworICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIkV4cGVjdGVk IG5hbWUgPT0gTlVMTCwgZ290ICVzXG4iLCBzdHIpOworICAgICAgICBleGl0KDEpOworICAgIH0K KworICAgIHN0ciA9IHNlbWFuYWdlX3NldXNlcl9nZXRfc2VuYW1lKHNldXNlcik7CisKKyAgICBp ZiAoc3RyICE9IE5VTEwpIHsKKyAgICAgICAgZnByaW50ZihzdGRlcnIsICJFeHBlY3RlZCBzZW5h bWUgPT0gTlVMTCwgZ290ICVzXG4iLCBzdHIpOworICAgICAgICBleGl0KDEpOworICAgIH0KKwor ICAgIHN0ciA9IHNlbWFuYWdlX3NldXNlcl9nZXRfbWxzcmFuZ2Uoc2V1c2VyKTsKKworICAgIGlm IChzdHIgIT0gTlVMTCkgeworICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIkV4cGVjdGVkIG1sc3Jh bmdlID09IE5VTEwsIGdvdCAlc1xuIiwgc3RyKTsKKyAgICAgICAgZXhpdCgxKTsKKyAgICB9CisK KyAgICBkZXN0cm95X2hhbmRsZShzaCwgYXJndlsxXSk7CisKKyAgICBleGl0KDApOworfQoKZGlm ZiAtLWdpdCBhL2xpYnNlbWFuYWdlL3NlbWFuYWdlLXNldXNlci1mdW5jdGlvbnMvdGVzdF9kZWxf bG9jYWwuYyBiL2xpYnNlbWFuYWdlL3NlbWFuYWdlLXNldXNlci1mdW5jdGlvbnMvdGVzdF9kZWxf bG9jYWwuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lY2VkNzRhCi0tLSAv ZGV2L251bGwKKysrIGIvbGlic2VtYW5hZ2Uvc2VtYW5hZ2Utc2V1c2VyLWZ1bmN0aW9ucy90ZXN0 X2RlbF9sb2NhbC5jCkBAIC0wLDAgKzEsNjQgQEAKKyNpbmNsdWRlIDxzdGRpby5oPgorI2luY2x1 ZGUgPHN0ZGxpYi5oPgorI2luY2x1ZGUgPHN0cmluZy5oPgorI2luY2x1ZGUgPGVycm5vLmg+Cisj aW5jbHVkZSA8c2VtYW5hZ2Uvc2VtYW5hZ2UuaD4KKworI2luY2x1ZGUgImZ1bmN0aW9ucy5jIgor CitpbnQgbWFpbiAoaW50IGFyZ2MsIGNoYXIgKiphcmd2KSB7CisgICAgc2VtYW5hZ2VfaGFuZGxl X3QgKnNoOworICAgIHNlbWFuYWdlX3NldXNlcl90ICpzZXVzZXI7CisgICAgc2VtYW5hZ2Vfc2V1 c2VyX3QgKnNldXNlcl9kZWw7CisgICAgc2VtYW5hZ2Vfc2V1c2VyX2tleV90ICprZXk7CisgICAg c2VtYW5hZ2Vfc2V1c2VyX3QgKipyZWNvcmRzOworICAgIGludCByZXN1bHQ7CisgICAgdW5zaWdu ZWQgaW50IGNvdW50OworICAgIAorICAgIGlmIChhcmdjIDwgNCkKKyAgICAgICAgZXhpdCgyKTsK KyAgICAKKyAgICBzaCA9IGdldF9oYW5kbGUoYXJndlsxXSk7CisKKyAgICBzZXVzZXIgPSB0ZXN0 X2dldF9zZXVzZXIoc2gsIGFyZ3ZbMl0pOworCisgICAgdGVzdF9hZGRfbG9jYWxfc2V1c2VyKHNo LCBzZXVzZXIpOworCisgICAgc2V1c2VyX2RlbCA9IHRlc3RfZ2V0X3NldXNlcihzaCwgYXJndlsz XSk7CisKKyAgICByZXN1bHQgPSBzZW1hbmFnZV9zZXVzZXJfa2V5X2V4dHJhY3Qoc2gsIHNldXNl cl9kZWwsICZrZXkpOworICAgIHByaW50Zigic2VtYW5hZ2Vfc2V1c2VyX2tleV9leHRyYWN0KCVw LCAlcCwgJXApOiAlZFxuIiwKKyAgICAgICAgICAgKHZvaWQgKikgc2gsICh2b2lkICopIHNldXNl cl9kZWwsICh2b2lkICopICZrZXksIHJlc3VsdCk7CisKKyAgICBpZiAocmVzdWx0IDwgMCkgewor ICAgICAgICBwZXJyb3IoInNlbWFuYWdlX3NldXNlcl9rZXlfZXh0cmFjdCIpOworICAgICAgICBl eGl0KDIpOworICAgIH0KKworICAgIHJlc3VsdCA9IHNlbWFuYWdlX3NldXNlcl9kZWxfbG9jYWwo c2gsIGtleSk7CisgICAgcHJpbnRmKCJzZW1hbmFnZV9zZXVzZXJfZGVsX2xvY2FsKCVwLCAlcCk6 ICVkXG4iLAorICAgICAgICAgICAodm9pZCAqKSBzZXVzZXIsICh2b2lkICopIGtleSwgcmVzdWx0 KTsKKworICAgIGlmIChyZXN1bHQgPCAwKSB7CisgICAgICAgIHBlcnJvcigic2VtYW5hZ2Vfc2V1 c2VyX2RlbF9sb2NhbCIpOworICAgICAgICBleGl0KDEpOworICAgIH0KKworICAgIHJlc3VsdCA9 IHNlbWFuYWdlX3NldXNlcl9saXN0X2xvY2FsKHNoLCAmcmVjb3JkcywgJmNvdW50KTsKKyAgICBw cmludGYoInNlbWFuYWdlX3NldXNlcl9saXN0X2xvY2FsKCVwLCAlcCwgJXApOiAlZFxuIiwKKyAg ICAgICAgICAgKHZvaWQgKikgc2gsICh2b2lkICopICZyZWNvcmRzLCAodm9pZCAqKSAmY291bnQs IHJlc3VsdCk7CisgICAgCisgICAgaWYgKHJlc3VsdCA8IDApIHsKKyAgICAgICAgcGVycm9yKCJz ZW1hbmFnZV9zZXVzZXJfbGlzdF9sb2NhbCIpOworICAgICAgICBleGl0KDIpOworICAgIH0KKwor ICAgIGlmIChjb3VudCAhPSAwKSB7CisgICAgICAgIGZwcmludGYoc3RkZXJyLCAiTnVtYmVyIG9m IGxvY2FsIHNldXNlcnMgaXMgbm90IDAhXG4iKTsKKyAgICAgICAgZXhpdCgxKTsKKyAgICB9CisK KyAgICBkZXN0cm95X2hhbmRsZShzaCwgYXJndlsxXSk7CisKKyAgICBleGl0KDApOworfQoKZGlm ZiAtLWdpdCBhL2xpYnNlbWFuYWdlL3NlbWFuYWdlLXNldXNlci1mdW5jdGlvbnMvdGVzdF9leGlz dHMuYyBiL2xpYnNlbWFuYWdlL3NlbWFuYWdlLXNldXNlci1mdW5jdGlvbnMvdGVzdF9leGlzdHMu YwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jMGFmM2IyCi0tLSAvZGV2L251 bGwKKysrIGIvbGlic2VtYW5hZ2Uvc2VtYW5hZ2Utc2V1c2VyLWZ1bmN0aW9ucy90ZXN0X2V4aXN0 cy5jCkBAIC0wLDAgKzEsMzcgQEAKKyNpbmNsdWRlIDxzdGRpby5oPgorI2luY2x1ZGUgPHN0ZGxp Yi5oPgorI2luY2x1ZGUgPHN0cmluZy5oPgorI2luY2x1ZGUgPGVycm5vLmg+CisjaW5jbHVkZSA8 c2VtYW5hZ2Uvc2VtYW5hZ2UuaD4KKworI2luY2x1ZGUgImZ1bmN0aW9ucy5jIgorCitpbnQgbWFp biAoaW50IGFyZ2MsIGNoYXIgKiphcmd2KSB7CisgICAgc2VtYW5hZ2VfaGFuZGxlX3QgKnNoOwor ICAgIHNlbWFuYWdlX3NldXNlcl9rZXlfdCAqa2V5OworICAgIGludCByZXN1bHQ7CisgICAgaW50 IHJlc3BvbnNlOworICAgIAorICAgIGlmIChhcmdjIDwgMykKKyAgICAgICAgZXhpdCgyKTsKKyAg ICAKKyAgICBzaCA9IGdldF9oYW5kbGUoYXJndlsxXSk7CisKKyAgICBrZXkgPSB0ZXN0X2dldF9r ZXkoc2gsIGFyZ3ZbMl0pOworCisgICAgcmVzdWx0ID0gc2VtYW5hZ2Vfc2V1c2VyX2V4aXN0cyhz aCwga2V5LCAmcmVzcG9uc2UpOworICAgIHByaW50Zigic2VtYW5hZ2Vfc2V1c2VyX2V4aXN0cygl cCwgJXAsICVwKTogJWQsIHJlc3BvbnNlOiAlZFxuIiwKKyAgICAgICAgICAgKHZvaWQgKikgc2gs ICh2b2lkICopIGtleSwgKHZvaWQgKikgJnJlc3BvbnNlLCByZXN1bHQsIHJlc3BvbnNlKTsKKyAg ICAKKyAgICBpZiAocmVzdWx0IDwgMCkgeworICAgICAgICBwZXJyb3IoInNlbWFuYWdlX3NldXNl cl9leGlzdHMiKTsKKyAgICAgICAgZXhpdCgxKTsKKyAgICB9CisKKyAgICBpZiAoYXJnYyA+PSA0 KQorICAgICAgICBjaGVja19yZXN1bHRfaW50KGFyZ3ZbM10sIHJlc3BvbnNlKTsKKworICAgIGRl c3Ryb3lfaGFuZGxlKHNoLCBhcmd2WzFdKTsKKworICAgIGV4aXQoMCk7Cit9CgpkaWZmIC0tZ2l0 IGEvbGlic2VtYW5hZ2Uvc2VtYW5hZ2Utc2V1c2VyLWZ1bmN0aW9ucy90ZXN0X2V4aXN0c19sb2Nh bC5jIGIvbGlic2VtYW5hZ2Uvc2VtYW5hZ2Utc2V1c2VyLWZ1bmN0aW9ucy90ZXN0X2V4aXN0c19s b2NhbC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE2NWQ1YjMKLS0tIC9k ZXYvbnVsbAorKysgYi9saWJzZW1hbmFnZS9zZW1hbmFnZS1zZXVzZXItZnVuY3Rpb25zL3Rlc3Rf ZXhpc3RzX2xvY2FsLmMKQEAgLTAsMCArMSw1OSBAQAorI2luY2x1ZGUgPHN0ZGlvLmg+CisjaW5j bHVkZSA8c3RkbGliLmg+CisjaW5jbHVkZSA8c3RyaW5nLmg+CisjaW5jbHVkZSA8ZXJybm8uaD4K KyNpbmNsdWRlIDxzZW1hbmFnZS9zZW1hbmFnZS5oPgorCisjaW5jbHVkZSAiZnVuY3Rpb25zLmMi CisKK2ludCBtYWluIChpbnQgYXJnYywgY2hhciAqKmFyZ3YpIHsKKyAgICBzZW1hbmFnZV9oYW5k bGVfdCAqc2g7CisgICAgc2VtYW5hZ2Vfc2V1c2VyX3QgKnNldXNlcjsKKyAgICBzZW1hbmFnZV9z ZXVzZXJfdCAqc2V1c2VyX2V4aXN0czsKKyAgICBzZW1hbmFnZV9zZXVzZXJfa2V5X3QgKmtleTsK KyAgICBpbnQgcmVzdWx0OworICAgIGludCByZXNwb25zZTsKKyAgICBpbnQgZXhwOworICAgIAor ICAgIGlmIChhcmdjIDwgNCkKKyAgICAgICAgZXhpdCgyKTsKKyAgICAKKyAgICBzaCA9IGdldF9o YW5kbGUoYXJndlsxXSk7CisKKyAgICBzZXVzZXIgPSB0ZXN0X2dldF9zZXVzZXIoc2gsIGFyZ3Zb Ml0pOworICAgIHNldXNlcl9leGlzdHMgPSB0ZXN0X2dldF9zZXVzZXIoc2gsIGFyZ3ZbM10pOwor CisgICAgdGVzdF9hZGRfbG9jYWxfc2V1c2VyKHNoLCBzZXVzZXIpOworCisgICAgcmVzdWx0ID0g c2VtYW5hZ2Vfc2V1c2VyX2tleV9leHRyYWN0KHNoLCBzZXVzZXJfZXhpc3RzLCAma2V5KTsKKyAg ICBwcmludGYoInNlbWFuYWdlX3NldXNlcl9rZXlfZXh0cmFjdCglcCwgJXAsICVwKTogJWRcbiIs CisgICAgICAgICAgICh2b2lkICopIHNoLCAodm9pZCAqKSBzZXVzZXJfZXhpc3RzLCAodm9pZCAq KSAma2V5LCByZXN1bHQpOyAKKyAgICBpZiAocmVzdWx0IDwgMCkgeworICAgICAgICBwZXJyb3Io InNlbWFuYWdlX3NldXNlcl9rZXlfZXh0cmFjdCIpOworICAgICAgICBleGl0KDIpOworICAgIH0K KworICAgIHJlc3VsdCA9IHNlbWFuYWdlX3NldXNlcl9leGlzdHNfbG9jYWwoc2gsIGtleSwgJnJl c3BvbnNlKTsKKyAgICBwcmludGYoInNlbWFuYWdlX3NldXNlcl9leGlzdHNfbG9jYWwoJXAsICVw LCAlcCk6ICVkXG4iLAorICAgICAgICAgICAodm9pZCAqKSBzaCwgKHZvaWQgKikga2V5LCAodm9p ZCAqKSAmcmVzcG9uc2UsIHJlc3VsdCk7CisKKyAgICBpZiAocmVzdWx0IDwgMCkgeworICAgICAg ICBwZXJyb3IoInNlbWFuYWdlX3NldXNlcl9leGlzdHNfbG9jYWwiKTsKKyAgICAgICAgZXhpdCgx KTsKKyAgICB9CisKKyAgICBpZiAoYXJnYyA+PSA1KSB7CisgICAgICAgIGV4cCA9IHN0cnRvbChh cmd2WzRdLCBOVUxMLCAxMCk7CisKKyAgICAgICAgaWYgKHJlc3BvbnNlICE9IGV4cCkgeworICAg ICAgICAgICAgZnByaW50ZihzdGRlcnIsICJFeHBlY3RlZCAlZCBidXQgZ290ICVkXG4iLCBleHAs IHJlc3BvbnNlKTsKKyAgICAgICAgICAgIGV4aXQoMSk7CisgICAgICAgIH0KKyAgICB9CisKKyAg ICB0ZXN0X2RlbF9sb2NhbF9zZXVzZXIoc2gsIHNldXNlcik7CisKKyAgICBkZXN0cm95X2hhbmRs ZShzaCwgYXJndlsxXSk7CisKKyAgICBleGl0KDApOworfQoKZGlmZiAtLWdpdCBhL2xpYnNlbWFu YWdlL3NlbWFuYWdlLXNldXNlci1mdW5jdGlvbnMvdGVzdF9nZXRfbWxzcmFuZ2UuYyBiL2xpYnNl bWFuYWdlL3NlbWFuYWdlLXNldXNlci1mdW5jdGlvbnMvdGVzdF9nZXRfbWxzcmFuZ2UuYwpuZXcg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45NzE3MmRjCi0tLSAvZGV2L251bGwKKysr IGIvbGlic2VtYW5hZ2Uvc2VtYW5hZ2Utc2V1c2VyLWZ1bmN0aW9ucy90ZXN0X2dldF9tbHNyYW5n ZS5jCkBAIC0wLDAgKzEsMzIgQEAKKyNpbmNsdWRlIDxzdGRpby5oPgorI2luY2x1ZGUgPHN0ZGxp Yi5oPgorI2luY2x1ZGUgPHN0cmluZy5oPgorI2luY2x1ZGUgPGVycm5vLmg+CisjaW5jbHVkZSA8 c2VtYW5hZ2Uvc2VtYW5hZ2UuaD4KKworI2luY2x1ZGUgImZ1bmN0aW9ucy5jIgorCitpbnQgbWFp biAoaW50IGFyZ2MsIGNoYXIgKiphcmd2KSB7CisgICAgc2VtYW5hZ2VfaGFuZGxlX3QgKnNoOwor ICAgIHNlbWFuYWdlX3NldXNlcl90ICpzZXVzZXI7CisgICAgCisgICAgaWYgKGFyZ2MgPCA0KQor ICAgICAgICBleGl0KDIpOworICAgIAorICAgIHNoID0gZ2V0X2hhbmRsZShhcmd2WzFdKTsKKwor ICAgIHNldXNlciA9IHRlc3RfZ2V0X3NldXNlcihzaCwgYXJndlsyXSk7CisKKyAgICBjb25zdCBj aGFyICpuYW1lID0gc2VtYW5hZ2Vfc2V1c2VyX2dldF9tbHNyYW5nZShzZXVzZXIpOworICAgIHBy aW50Zigic2VtYW5hZ2Vfc2V1c2VyX2dldF9tbHNyYW5nZSglcCk6ICVzXG4iLAorICAgICAgICAg ICAodm9pZCAqKSBzZXVzZXIsIG5hbWUpOworCisgICAgaWYgKHN0cmNtcF9udWxsKGFyZ3ZbM10s IG5hbWUpICE9IDApIHsKKyAgICAgICAgZnByaW50ZihzdGRlcnIsICJFeHBlY3RlZCAlcyBidXQg Z290ICVzXG4iLCBhcmd2WzJdLCBuYW1lKTsKKyAgICAgICAgZXhpdCgxKTsKKyAgICB9CisKKyAg ICBkZXN0cm95X2hhbmRsZShzaCwgYXJndlsxXSk7CisKKyAgICBleGl0KDApOworfQoKZGlmZiAt LWdpdCBhL2xpYnNlbWFuYWdlL3NlbWFuYWdlLXNldXNlci1mdW5jdGlvbnMvdGVzdF9nZXRfbmFt ZS5jIGIvbGlic2VtYW5hZ2Uvc2VtYW5hZ2Utc2V1c2VyLWZ1bmN0aW9ucy90ZXN0X2dldF9uYW1l LmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTVkOTAyNQotLS0gL2Rldi9u dWxsCisrKyBiL2xpYnNlbWFuYWdlL3NlbWFuYWdlLXNldXNlci1mdW5jdGlvbnMvdGVzdF9nZXRf bmFtZS5jCkBAIC0wLDAgKzEsMzIgQEAKKyNpbmNsdWRlIDxzdGRpby5oPgorI2luY2x1ZGUgPHN0 ZGxpYi5oPgorI2luY2x1ZGUgPHN0cmluZy5oPgorI2luY2x1ZGUgPGVycm5vLmg+CisjaW5jbHVk ZSA8c2VtYW5hZ2Uvc2VtYW5hZ2UuaD4KKworI2luY2x1ZGUgImZ1bmN0aW9ucy5jIgorCitpbnQg bWFpbiAoaW50IGFyZ2MsIGNoYXIgKiphcmd2KSB7CisgICAgc2VtYW5hZ2VfaGFuZGxlX3QgKnNo OworICAgIHNlbWFuYWdlX3NldXNlcl90ICpzZXVzZXI7CisgICAgCisgICAgaWYgKGFyZ2MgPCA0 KQorICAgICAgICBleGl0KDIpOworICAgIAorICAgIHNoID0gZ2V0X2hhbmRsZShhcmd2WzFdKTsK KworICAgIHNldXNlciA9IHRlc3RfZ2V0X3NldXNlcihzaCwgYXJndlsyXSk7CisKKyAgICBjb25z dCBjaGFyICpuYW1lID0gc2VtYW5hZ2Vfc2V1c2VyX2dldF9uYW1lKHNldXNlcik7CisgICAgcHJp bnRmKCJzZW1hbmFnZV9zZXVzZXJfZ2V0X25hbWUoJXApOiAlc1xuIiwKKyAgICAgICAgICAgKHZv aWQgKikgc2V1c2VyLCBuYW1lKTsKKworICAgIGlmIChzdHJjbXBfbnVsbChhcmd2WzNdLCBuYW1l KSAhPSAwKSB7CisgICAgICAgIGZwcmludGYoc3RkZXJyLCAiRXhwZWN0ZWQgJXMgYnV0IGdvdCAl c1xuIiwgYXJndlsyXSwgbmFtZSk7CisgICAgICAgIGV4aXQoMSk7CisgICAgfQorCisgICAgZGVz dHJveV9oYW5kbGUoc2gsIGFyZ3ZbMV0pOworCisgICAgZXhpdCgwKTsKK30KCmRpZmYgLS1naXQg YS9saWJzZW1hbmFnZS9zZW1hbmFnZS1zZXVzZXItZnVuY3Rpb25zL3Rlc3RfZ2V0X3NlbmFtZS5j IGIvbGlic2VtYW5hZ2Uvc2VtYW5hZ2Utc2V1c2VyLWZ1bmN0aW9ucy90ZXN0X2dldF9zZW5hbWUu YwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xZWQ3MjQ4Ci0tLSAvZGV2L251 bGwKKysrIGIvbGlic2VtYW5hZ2Uvc2VtYW5hZ2Utc2V1c2VyLWZ1bmN0aW9ucy90ZXN0X2dldF9z ZW5hbWUuYwpAQCAtMCwwICsxLDMyIEBACisjaW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDxz dGRsaWIuaD4KKyNpbmNsdWRlIDxzdHJpbmcuaD4KKyNpbmNsdWRlIDxlcnJuby5oPgorI2luY2x1 ZGUgPHNlbWFuYWdlL3NlbWFuYWdlLmg+CisKKyNpbmNsdWRlICJmdW5jdGlvbnMuYyIKKworaW50 IG1haW4gKGludCBhcmdjLCBjaGFyICoqYXJndikgeworICAgIHNlbWFuYWdlX2hhbmRsZV90ICpz aDsKKyAgICBzZW1hbmFnZV9zZXVzZXJfdCAqc2V1c2VyOworICAgIAorICAgIGlmIChhcmdjIDwg NCkKKyAgICAgICAgZXhpdCgyKTsKKyAgICAKKyAgICBzaCA9IGdldF9oYW5kbGUoYXJndlsxXSk7 CisKKyAgICBzZXVzZXIgPSB0ZXN0X2dldF9zZXVzZXIoc2gsIGFyZ3ZbMl0pOworCisgICAgY29u c3QgY2hhciAqbmFtZSA9IHNlbWFuYWdlX3NldXNlcl9nZXRfc2VuYW1lKHNldXNlcik7CisgICAg cHJpbnRmKCJzZW1hbmFnZV9zZXVzZXJfZ2V0X3NlbmFtZSglcCk6ICVzXG4iLAorICAgICAgICAg ICAodm9pZCAqKSBzZXVzZXIsIG5hbWUpOworCisgICAgaWYgKHN0cmNtcF9udWxsKGFyZ3ZbM10s IG5hbWUpICE9IDApIHsKKyAgICAgICAgZnByaW50ZihzdGRlcnIsICJFeHBlY3RlZCAlcyBidXQg Z290ICVzXG4iLCBhcmd2WzJdLCBuYW1lKTsKKyAgICAgICAgZXhpdCgxKTsKKyAgICB9CisKKyAg ICBkZXN0cm95X2hhbmRsZShzaCwgYXJndlsxXSk7CisKKyAgICBleGl0KDApOworfQoKZGlmZiAt LWdpdCBhL2xpYnNlbWFuYWdlL3NlbWFuYWdlLXNldXNlci1mdW5jdGlvbnMvdGVzdF9pdGVyYXRl LmMgYi9saWJzZW1hbmFnZS9zZW1hbmFnZS1zZXVzZXItZnVuY3Rpb25zL3Rlc3RfaXRlcmF0ZS5j Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjUzMzA4N2EKLS0tIC9kZXYvbnVs bAorKysgYi9saWJzZW1hbmFnZS9zZW1hbmFnZS1zZXVzZXItZnVuY3Rpb25zL3Rlc3RfaXRlcmF0 ZS5jCkBAIC0wLDAgKzEsNDkgQEAKKyNpbmNsdWRlIDxzdGRpby5oPgorI2luY2x1ZGUgPHN0ZGxp Yi5oPgorI2luY2x1ZGUgPHN0cmluZy5oPgorI2luY2x1ZGUgPGVycm5vLmg+CisjaW5jbHVkZSA8 c2VtYW5hZ2Uvc2VtYW5hZ2UuaD4KKworI2luY2x1ZGUgImZ1bmN0aW9ucy5jIgorCitpbnQgY291 bnRlciA9IDA7CisKK2ludCBoYW5kbGVyKGNvbnN0IHNlbWFuYWdlX3NldXNlcl90ICpyZWNvcmQs IHZvaWQgKnZhcmcpIHsKKyAgICBjaGFyICoqYXJncyA9IChjaGFyICoqKSB2YXJnOworICAgIAor ICAgIGNvbnN0IGNoYXIgKm5hbWUgPSBzZW1hbmFnZV9zZXVzZXJfZ2V0X25hbWUocmVjb3JkKTsK KworICAgIGlmIChzdHJjbXAobmFtZSwgYXJnc1syICsgY291bnRlcisrXSkgIT0gMCkKKyAgICAg ICAgcmV0dXJuIC0xOworCisgICAgcmV0dXJuIDA7Cit9CisKK2ludCBtYWluIChpbnQgYXJnYywg Y2hhciAqKmFyZ3YpIHsKKyAgICBzZW1hbmFnZV9oYW5kbGVfdCAqc2g7CisgICAgaW50IHJlc3Vs dDsKKyAgICAKKyAgICBpZiAoYXJnYyA8IDIpCisgICAgICAgIGV4aXQoMik7CisgICAgCisgICAg c2ggPSBnZXRfaGFuZGxlKGFyZ3ZbMV0pOworCisgICAgY2hhciAqKnBhcmFtID0gTlVMTDsKKwor ICAgIGlmIChhcmdjID49IDMpIHsKKyAgICAgICAgcGFyYW0gPSBhcmd2OworICAgIH0KKworICAg IHJlc3VsdCA9IHNlbWFuYWdlX3NldXNlcl9pdGVyYXRlKHNoLCAmaGFuZGxlciwgKHZvaWQgKikg cGFyYW0pOworICAgIHByaW50Zigic2VtYW5hZ2Vfc2V1c2VyX2l0ZXJhdGUoJXAsICVwLCAlcCk6 ICVkXG4iLAorICAgICAgICAgICAodm9pZCAqKSBzaCwgKHZvaWQgKikgJmhhbmRsZXIsICh2b2lk ICopIHBhcmFtLCByZXN1bHQpOworICAgIAorICAgIGlmIChyZXN1bHQgPCAwKSB7CisgICAgICAg IHBlcnJvcigic2VtYW5hZ2Vfc2V1c2VyX2l0ZXJhdGUiKTsKKyAgICAgICAgZXhpdCgxKTsKKyAg ICB9CisKKyAgICBkZXN0cm95X2hhbmRsZShzaCwgYXJndlsxXSk7CisKKyAgICBleGl0KDApOwor fQoKZGlmZiAtLWdpdCBhL2xpYnNlbWFuYWdlL3NlbWFuYWdlLXNldXNlci1mdW5jdGlvbnMvdGVz dF9rZXlfY3JlYXRlLmMgYi9saWJzZW1hbmFnZS9zZW1hbmFnZS1zZXVzZXItZnVuY3Rpb25zL3Rl c3Rfa2V5X2NyZWF0ZS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhmM2Fh ZjUKLS0tIC9kZXYvbnVsbAorKysgYi9saWJzZW1hbmFnZS9zZW1hbmFnZS1zZXVzZXItZnVuY3Rp b25zL3Rlc3Rfa2V5X2NyZWF0ZS5jCkBAIC0wLDAgKzEsMzkgQEAKKyNpbmNsdWRlIDxzdGRpby5o PgorI2luY2x1ZGUgPHN0ZGxpYi5oPgorI2luY2x1ZGUgPHN0cmluZy5oPgorI2luY2x1ZGUgPGVy cm5vLmg+CisjaW5jbHVkZSA8c2VtYW5hZ2Uvc2VtYW5hZ2UuaD4KKworI2luY2x1ZGUgImZ1bmN0 aW9ucy5jIgorCitpbnQgbWFpbiAoaW50IGFyZ2MsIGNoYXIgKiphcmd2KSB7CisgICAgc2VtYW5h Z2VfaGFuZGxlX3QgKnNoOworICAgIHNlbWFuYWdlX3NldXNlcl9rZXlfdCAqa2V5OworICAgIGNv bnN0IGNoYXIgKm5hbWU7CisgICAgaW50IHJlc3VsdDsKKyAgICAKKyAgICBpZiAoYXJnYyA8IDMp CisgICAgICAgIGV4aXQoMik7CisgICAgCisgICAgc2ggPSBnZXRfaGFuZGxlKGFyZ3ZbMV0pOwor CisgICAgaWYgKHN0cmNtcChhcmd2WzJdLCAiTlVMTCIpID09IDApCisgICAgICAgIG5hbWUgPSBO VUxMOworICAgIGVsc2UKKyAgICAgICAgbmFtZSA9IGFyZ3ZbMl07CisKKyAgICByZXN1bHQgPSBz ZW1hbmFnZV9zZXVzZXJfa2V5X2NyZWF0ZShzaCwgbmFtZSwgJmtleSk7CisgICAgcHJpbnRmKCJz ZW1hbmFnZV9zZXVzZXJfa2V5X2NyZWF0ZSglcCwgJXMsICVwKTogJWRcbiIsCisgICAgICAgICAg ICh2b2lkICopIHNoLCBuYW1lLCAodm9pZCAqKSAma2V5LCByZXN1bHQpOworCisgICAgaWYgKHJl c3VsdCA8IDAgfHwga2V5ID09IE5VTEwpIHsKKyAgICAgICAgcGVycm9yKCJzZW1hbmFnZV9zZXVz ZXJfa2V5X2NyZWF0ZSIpOworICAgICAgICBleGl0KDEpOworICAgIH0KKworICAgIHNlbWFuYWdl X3NldXNlcl9rZXlfZnJlZShrZXkpOworCisgICAgZGVzdHJveV9oYW5kbGUoc2gsIGFyZ3ZbMV0p OworCisgICAgZXhpdCgwKTsKK30KCmRpZmYgLS1naXQgYS9saWJzZW1hbmFnZS9zZW1hbmFnZS1z ZXVzZXItZnVuY3Rpb25zL3Rlc3Rfa2V5X2V4dHJhY3QuYyBiL2xpYnNlbWFuYWdlL3NlbWFuYWdl LXNldXNlci1mdW5jdGlvbnMvdGVzdF9rZXlfZXh0cmFjdC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAuLjUwNjU4ZGMKLS0tIC9kZXYvbnVsbAorKysgYi9saWJzZW1hbmFnZS9z ZW1hbmFnZS1zZXVzZXItZnVuY3Rpb25zL3Rlc3Rfa2V5X2V4dHJhY3QuYwpAQCAtMCwwICsxLDQ1 IEBACisjaW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDxzdGRsaWIuaD4KKyNpbmNsdWRlIDxz dHJpbmcuaD4KKyNpbmNsdWRlIDxlcnJuby5oPgorI2luY2x1ZGUgPHNlbWFuYWdlL3NlbWFuYWdl Lmg+CisKKyNpbmNsdWRlICJmdW5jdGlvbnMuYyIKKworaW50IG1haW4gKGludCBhcmdjLCBjaGFy ICoqYXJndikgeworICAgIHNlbWFuYWdlX2hhbmRsZV90ICpzaDsKKyAgICBzZW1hbmFnZV9zZXVz ZXJfdCAqc2V1c2VyOworICAgIHNlbWFuYWdlX3NldXNlcl9rZXlfdCAqa2V5OworICAgIGludCBy ZXN1bHQ7CisgICAgCisgICAgaWYgKGFyZ2MgPCAzKQorICAgICAgICBleGl0KDIpOworICAgIAor ICAgIHNoID0gZ2V0X2hhbmRsZShhcmd2WzFdKTsKKworICAgIHNldXNlciA9IHRlc3RfZ2V0X3Nl dXNlcihzaCwgYXJndlsyXSk7CisKKyAgICByZXN1bHQgPSBzZW1hbmFnZV9zZXVzZXJfa2V5X2V4 dHJhY3Qoc2gsIHNldXNlciwgJmtleSk7CisgICAgcHJpbnRmKCJzZW1hbmFnZV9zZXVzZXJfa2V5 X2V4dHJhY3QoJXAsICVwLCAlcCk6ICVkXG4iLAorICAgICAgICAgICAodm9pZCAqKSBzaCwgKHZv aWQgKikgc2V1c2VyLCAodm9pZCAqKSAma2V5LCByZXN1bHQpOworCisgICAgaWYgKHJlc3VsdCA8 IDApIHsKKyAgICAgICAgcGVycm9yKCJzZW1hbmFnZV9zZXVzZXJfa2V5X2V4dHJhY3QiKTsKKyAg ICAgICAgZXhpdCgxKTsKKyAgICB9CisKKyAgICByZXN1bHQgPSBzZW1hbmFnZV9zZXVzZXJfY29t cGFyZShzZXVzZXIsIGtleSk7CisgICAgcHJpbnRmKCJzZW1hbmFnZV9zZXVzZXJfY29tcGFyZSgl cCwgJXApOiAlZFxuIiwKKyAgICAgICAgICAgKHZvaWQgKikgc2V1c2VyLCAodm9pZCAqKSBrZXks IHJlc3VsdCk7CisKKyAgICBpZiAocmVzdWx0ICE9IDApIHsKKyAgICAgICAgcGVycm9yKCJzZW1h bmFnZV9zZXVzZXJfY29tcGFyZSIpOworICAgICAgICBleGl0KDEpOworICAgIH0KKworICAgIHNl bWFuYWdlX3NldXNlcl9rZXlfZnJlZShrZXkpOworCisgICAgZGVzdHJveV9oYW5kbGUoc2gsIGFy Z3ZbMV0pOworCisgICAgZXhpdCgwKTsKK30KCmRpZmYgLS1naXQgYS9saWJzZW1hbmFnZS9zZW1h bmFnZS1zZXVzZXItZnVuY3Rpb25zL3Rlc3RfbGlzdC5jIGIvbGlic2VtYW5hZ2Uvc2VtYW5hZ2Ut c2V1c2VyLWZ1bmN0aW9ucy90ZXN0X2xpc3QuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwLi5hZTA2MTg3Ci0tLSAvZGV2L251bGwKKysrIGIvbGlic2VtYW5hZ2Uvc2VtYW5hZ2Ut c2V1c2VyLWZ1bmN0aW9ucy90ZXN0X2xpc3QuYwpAQCAtMCwwICsxLDYzIEBACisjaW5jbHVkZSA8 c3RkaW8uaD4KKyNpbmNsdWRlIDxzdGRsaWIuaD4KKyNpbmNsdWRlIDxzdHJpbmcuaD4KKyNpbmNs dWRlIDxlcnJuby5oPgorI2luY2x1ZGUgPHNlbWFuYWdlL3NlbWFuYWdlLmg+CisKKyNpbmNsdWRl ICJmdW5jdGlvbnMuYyIKKworaW50IG1haW4gKGludCBhcmdjLCBjaGFyICoqYXJndikgeworICAg IHNlbWFuYWdlX2hhbmRsZV90ICpzaDsKKyAgICBzZW1hbmFnZV9zZXVzZXJfdCAqKnJlY29yZHM7 CisgICAgdW5zaWduZWQgaW50IGNvdW50OworICAgIGludCByZXN1bHQ7CisgICAgCisgICAgaWYg KGFyZ2MgPCAyKQorICAgICAgICBleGl0KDIpOworICAgIAorICAgIHNoID0gZ2V0X2hhbmRsZShh cmd2WzFdKTsKKworICAgIHJlc3VsdCA9IHNlbWFuYWdlX3NldXNlcl9saXN0KHNoLCAmcmVjb3Jk cywgJmNvdW50KTsKKyAgICBwcmludGYoInNlbWFuYWdlX3NldXNlcl9saXN0KCVwLCAlcCwgJXAp OiAlZCIsCisgICAgICAgICAgICh2b2lkICopIHNoLCAodm9pZCAqKSAmcmVjb3JkcywgKHZvaWQg KikgJmNvdW50LCByZXN1bHQpOworICAgIAorICAgIGlmIChyZXN1bHQgPCAwKSB7CisgICAgICAg IHBlcnJvcigic2VtYW5hZ2Vfc2V1c2VyX2xpc3QiKTsKKyAgICAgICAgZXhpdCgxKTsKKyAgICB9 CisKKyAgICBwcmludGYoIiwgY291bnQ6ICV1LCByZWNvcmRzOiAiLCBjb3VudCk7CisKKyAgICBj b25zdCBjaGFyICpuYW1lOworCisgICAgZm9yICh1bnNpZ25lZCBpbnQgaSA9IDA7IGkgPCBjb3Vu dDsgaSsrKSB7CisgICAgICAgIG5hbWUgPSBzZW1hbmFnZV9zZXVzZXJfZ2V0X25hbWUocmVjb3Jk c1tpXSk7CisgICAgICAgIHByaW50ZigiJXAgKCVzKSwgIiwgKHZvaWQgKikgcmVjb3Jkc1tpXSwg bmFtZSk7CisgICAgfQorCisgICAgcHJpbnRmKCJcbiIpOworCisgICAgaWYgKGFyZ2MgPj0gMykg eworICAgICAgICB1bnNpZ25lZCBpbnQgZXhwX2NvdW50ID0gc3RydG91bChhcmd2WzJdLCBOVUxM LCAxMCk7CisgICAgICAgIAorICAgICAgICBpZiAoY291bnQgIT0gZXhwX2NvdW50KSB7CisgICAg ICAgICAgICBwcmludGYoIkV4cGVjdGVkICV1IGJ1dCBnb3QgJXVcbiIsIGV4cF9jb3VudCwgY291 bnQpOworICAgICAgICAgICAgZXhpdCgxKTsKKyAgICAgICAgfQorCisgICAgICAgIGNvbnN0IGNo YXIgKm5hbWU7CisKKyAgICAgICAgZm9yICh1bnNpZ25lZCBpbnQgaSA9IDA7IGkgPCBjb3VudDsg aSsrKSB7CisgICAgICAgICAgICBuYW1lID0gc2VtYW5hZ2Vfc2V1c2VyX2dldF9uYW1lKHJlY29y ZHNbaV0pOworCisgICAgICAgICAgICBpZiAoc3RyY21wKG5hbWUsIGFyZ3ZbMyArIGldKSAhPSAw KSB7CisgICAgICAgICAgICAgICAgcHJpbnRmKCJFeHBlY3RlZCAlcyBidXQgZ290ICVzXG4iLCBu YW1lLCBhcmd2WzMgKyBpXSk7CisgICAgICAgICAgICAgICAgZXhpdCgxKTsKKyAgICAgICAgICAg IH0KKyAgICAgICAgfQorICAgIH0KKworICAgIGRlc3Ryb3lfaGFuZGxlKHNoLCBhcmd2WzFdKTsK KworICAgIGV4aXQoMCk7Cit9CgpkaWZmIC0tZ2l0IGEvbGlic2VtYW5hZ2Uvc2VtYW5hZ2Utc2V1 c2VyLWZ1bmN0aW9ucy90ZXN0X21vZGlmeV9sb2NhbC5jIGIvbGlic2VtYW5hZ2Uvc2VtYW5hZ2Ut c2V1c2VyLWZ1bmN0aW9ucy90ZXN0X21vZGlmeV9sb2NhbC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAuLjUzYTExZjUKLS0tIC9kZXYvbnVsbAorKysgYi9saWJzZW1hbmFnZS9z ZW1hbmFnZS1zZXVzZXItZnVuY3Rpb25zL3Rlc3RfbW9kaWZ5X2xvY2FsLmMKQEAgLTAsMCArMSw2 NCBAQAorI2luY2x1ZGUgPHN0ZGlvLmg+CisjaW5jbHVkZSA8c3RkbGliLmg+CisjaW5jbHVkZSA8 c3RyaW5nLmg+CisjaW5jbHVkZSA8ZXJybm8uaD4KKyNpbmNsdWRlIDxzZW1hbmFnZS9zZW1hbmFn ZS5oPgorCisjaW5jbHVkZSAiZnVuY3Rpb25zLmMiCisKK2ludCBtYWluIChpbnQgYXJnYywgY2hh ciAqKmFyZ3YpIHsKKyAgICBzZW1hbmFnZV9oYW5kbGVfdCAqc2g7CisgICAgc2VtYW5hZ2Vfc2V1 c2VyX3QgKnNldXNlcjsKKyAgICBzZW1hbmFnZV9zZXVzZXJfa2V5X3QgKmtleTsKKyAgICBzZW1h bmFnZV9zZXVzZXJfdCAqKnJlY29yZHM7CisgICAgaW50IHJlc3VsdDsKKyAgICB1bnNpZ25lZCBp bnQgY291bnQ7CisgICAgCisgICAgaWYgKGFyZ2MgPCAzKQorICAgICAgICBleGl0KDIpOworICAg IAorICAgIHNoID0gZ2V0X2hhbmRsZShhcmd2WzFdKTsKKworICAgIHNldXNlciA9IHRlc3RfZ2V0 X3NldXNlcihzaCwgYXJndlsyXSk7CisKKyAgICByZXN1bHQgPSBzZW1hbmFnZV9zZXVzZXJfa2V5 X2V4dHJhY3Qoc2gsIHNldXNlciwgJmtleSk7CisgICAgcHJpbnRmKCJzZW1hbmFnZV9zZXVzZXJf a2V5X2V4dHJhY3QoJXAsICVwLCAlcCk6ICVkXG4iLAorICAgICAgICAgICAodm9pZCAqKSBzaCwg KHZvaWQgKikgc2V1c2VyLCAodm9pZCAqKSAma2V5LCByZXN1bHQpOworCisgICAgaWYgKHJlc3Vs dCA8IDApIHsKKyAgICAgICAgcGVycm9yKCJzZW1hbmFnZV9zZXVzZXJfa2V5X2V4dHJhY3QiKTsK KyAgICAgICAgZXhpdCgyKTsKKyAgICB9CisKKyAgICByZXN1bHQgPSBzZW1hbmFnZV9zZXVzZXJf bW9kaWZ5X2xvY2FsKHNoLCBrZXksIHNldXNlcik7CisgICAgcHJpbnRmKCJzZW1hbmFnZV9zZXVz ZXJfbW9kaWZ5X2xvY2FsKCVwLCAlcCwgJXApOiAlZFxuIiwKKyAgICAgICAgICAgKHZvaWQgKikg c2V1c2VyLCAodm9pZCAqKSBrZXksICh2b2lkICopIHNldXNlciwgcmVzdWx0KTsKKworICAgIGlm IChyZXN1bHQgPCAwKSB7CisgICAgICAgIHBlcnJvcigic2VtYW5hZ2Vfc2V1c2VyX21vZGlmeV9s b2NhbCIpOworICAgICAgICBleGl0KDEpOworICAgIH0KKworICAgIHJlc3VsdCA9IHNlbWFuYWdl X3NldXNlcl9saXN0X2xvY2FsKHNoLCAmcmVjb3JkcywgJmNvdW50KTsKKyAgICBwcmludGYoInNl bWFuYWdlX3NldXNlcl9saXN0X2xvY2FsKCVwLCAlcCwgJXApOiAlZFxuIiwKKyAgICAgICAgICAg KHZvaWQgKikgc2gsICh2b2lkICopICZyZWNvcmRzLCAodm9pZCAqKSAmY291bnQsIHJlc3VsdCk7 CisgICAgCisgICAgaWYgKHJlc3VsdCA8IDApIHsKKyAgICAgICAgcGVycm9yKCJzZW1hbmFnZV9z ZXVzZXJfbGlzdF9sb2NhbCIpOworICAgICAgICBleGl0KDIpOworICAgIH0KKworICAgIGlmIChj b3VudCAhPSAxKSB7CisgICAgICAgIGZwcmludGYoc3RkZXJyLCAiTnVtYmVyIG9mIGxvY2FsIHNl dXNlcnMgaXMgJXUsIGV4cGVjdGVkIDEhXG4iLCBjb3VudCk7CisgICAgICAgIGV4aXQoMSk7Cisg ICAgfQorCisgICAgaWYgKHNlbWFuYWdlX3NldXNlcl9jb21wYXJlKHJlY29yZHNbMF0sIGtleSkg IT0gMCkgeworICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIkxvY2FsIHNldXNlciBpcyBkaWZmZXJl bnQhXG4iKTsKKyAgICAgICAgZXhpdCgxKTsKKyAgICB9CisKKyAgICBkZXN0cm95X2hhbmRsZShz aCwgYXJndlsxXSk7CisKKyAgICBleGl0KDApOworfQoKZGlmZiAtLWdpdCBhL2xpYnNlbWFuYWdl L3NlbWFuYWdlLXNldXNlci1mdW5jdGlvbnMvdGVzdF9xdWVyeS5jIGIvbGlic2VtYW5hZ2Uvc2Vt YW5hZ2Utc2V1c2VyLWZ1bmN0aW9ucy90ZXN0X3F1ZXJ5LmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggMDAwMDAwMC4uMTBiNGUyNwotLS0gL2Rldi9udWxsCisrKyBiL2xpYnNlbWFuYWdlL3Nl bWFuYWdlLXNldXNlci1mdW5jdGlvbnMvdGVzdF9xdWVyeS5jCkBAIC0wLDAgKzEsNTAgQEAKKyNp bmNsdWRlIDxzdGRpby5oPgorI2luY2x1ZGUgPHN0ZGxpYi5oPgorI2luY2x1ZGUgPHN0cmluZy5o PgorI2luY2x1ZGUgPGVycm5vLmg+CisjaW5jbHVkZSA8c2VtYW5hZ2Uvc2VtYW5hZ2UuaD4KKwor I2luY2x1ZGUgImZ1bmN0aW9ucy5jIgorCitpbnQgbWFpbiAoaW50IGFyZ2MsIGNoYXIgKiphcmd2 KSB7CisgICAgc2VtYW5hZ2VfaGFuZGxlX3QgKnNoOworICAgIHNlbWFuYWdlX3NldXNlcl9rZXlf dCAqa2V5OworICAgIHNlbWFuYWdlX3NldXNlcl90ICpyZXNwb25zZTsKKyAgICBpbnQgcmVzdWx0 OworICAgIAorICAgIGlmIChhcmdjIDwgMykKKyAgICAgICAgZXhpdCgyKTsKKyAgICAKKyAgICBz aCA9IGdldF9oYW5kbGUoYXJndlsxXSk7CisKKyAgICByZXN1bHQgPSBzZW1hbmFnZV9zZXVzZXJf a2V5X2NyZWF0ZShzaCwgYXJndlsyXSwgJmtleSk7CisgICAgcHJpbnRmKCJzZW1hbmFnZV9zZXVz ZXJfa2V5X2NyZWF0ZSglcCwgJXMsICVwKTogJWRcbiIsCisgICAgICAgICAgICh2b2lkICopIHNo LCBhcmd2WzJdLCAodm9pZCAqKSAma2V5LCByZXN1bHQpOworCisgICAgaWYgKHJlc3VsdCA8IDAg fHwga2V5ID09IE5VTEwpIHsKKyAgICAgICAgcGVycm9yKCJzZW1hbmFnZV9zZXVzZXJfa2V5X2Ny ZWF0ZSIpOworICAgICAgICBleGl0KDIpOworICAgIH0KKworICAgIHJlc3VsdCA9IHNlbWFuYWdl X3NldXNlcl9xdWVyeShzaCwga2V5LCAmcmVzcG9uc2UpOworICAgIHByaW50Zigic2VtYW5hZ2Vf c2V1c2VyX3F1ZXJ5KCVwLCAlcCwgJXApOiAlZCwgcmVzcG9uc2U6ICVwXG4iLAorICAgICAgICAg ICAodm9pZCAqKSBzaCwgKHZvaWQgKikga2V5LCAodm9pZCAqKSAmcmVzcG9uc2UsIHJlc3VsdCwg KHZvaWQgKikgcmVzcG9uc2UpOworICAgIAorICAgIGlmIChyZXN1bHQgPCAwKSB7CisgICAgICAg IHBlcnJvcigic2VtYW5hZ2Vfc2V1c2VyX3F1ZXJ5Iik7CisgICAgICAgIGV4aXQoMSk7CisgICAg fQorCisgICAgY29uc3QgY2hhciAqbmFtZSA9IHNlbWFuYWdlX3NldXNlcl9nZXRfbmFtZShyZXNw b25zZSk7CisgICAgcHJpbnRmKCJzZW1hbmFnZV9zZXVzZXJfZ2V0X25hbWUoJXApOiAlc1xuIiwK KyAgICAgICAgICAgKHZvaWQgKikgcmVzcG9uc2UsIG5hbWUpOworCisgICAgaWYgKHN0cmNtcChh cmd2WzJdLCBuYW1lKSAhPSAwKSB7CisgICAgICAgIHBlcnJvcigic2VtYW5hZ2Vfc2V1c2VyX2dl dF9uYW1lIik7CisgICAgICAgIGV4aXQoMik7CisgICAgfQorCisgICAgZGVzdHJveV9oYW5kbGUo c2gsIGFyZ3ZbMV0pOworCisgICAgZXhpdCgwKTsKK30KCmRpZmYgLS1naXQgYS9saWJzZW1hbmFn ZS9zZW1hbmFnZS1zZXVzZXItZnVuY3Rpb25zL3Rlc3Rfc2V0X21sc3JhbmdlLmMgYi9saWJzZW1h bmFnZS9zZW1hbmFnZS1zZXVzZXItZnVuY3Rpb25zL3Rlc3Rfc2V0X21sc3JhbmdlLmMKbmV3IGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDg0NDBhYwotLS0gL2Rldi9udWxsCisrKyBi L2xpYnNlbWFuYWdlL3NlbWFuYWdlLXNldXNlci1mdW5jdGlvbnMvdGVzdF9zZXRfbWxzcmFuZ2Uu YwpAQCAtMCwwICsxLDYyIEBACisjaW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDxzdGRsaWIu aD4KKyNpbmNsdWRlIDxzdHJpbmcuaD4KKyNpbmNsdWRlIDxlcnJuby5oPgorI2luY2x1ZGUgPHNl bWFuYWdlL3NlbWFuYWdlLmg+CisKKyNpbmNsdWRlICJmdW5jdGlvbnMuYyIKKworaW50IG1haW4g KGludCBhcmdjLCBjaGFyICoqYXJndikgeworICAgIHNlbWFuYWdlX2hhbmRsZV90ICpzaDsKKyAg ICBzZW1hbmFnZV9zZXVzZXJfdCAqdXNlcjsKKyAgICBpbnQgcmVzdWx0OworICAgIGNvbnN0IGNo YXIgKm1sc3JhbmdlOworICAgIAorICAgIGlmIChhcmdjIDwgMykKKyAgICAgICAgZXhpdCgyKTsK KyAgICAKKyAgICBzaCA9IGdldF9oYW5kbGUoYXJndlsxXSk7CisKKyAgICB1c2VyID0gdGVzdF9n ZXRfc2V1c2VyKHNoLCAiZmlyc3QiKTsKKworICAgIGlmIChzdHJjbXAoYXJndlsyXSwgIk5VTEwi KSA9PSAwKQorICAgICAgICBtbHNyYW5nZSA9IE5VTEw7CisgICAgZWxzZSAKKyAgICAgICAgbWxz cmFuZ2UgPSBhcmd2WzJdOworCisgICAgY29uc3QgY2hhciAqb2xkX21sc3JhbmdlID0gc2VtYW5h Z2Vfc2V1c2VyX2dldF9tbHNyYW5nZSh1c2VyKTsKKyAgICBwcmludGYoInNlbWFuYWdlX3NldXNl cl9nZXRfbWxzcmFuZ2UoJXApOiAlc1xuIiwKKyAgICAgICAgICAgKHZvaWQgKikgdXNlciwgb2xk X21sc3JhbmdlKTsKKworICAgIGlmIChvbGRfbWxzcmFuZ2UgPT0gTlVMTCkgeworICAgICAgICBw ZXJyb3IoInNlbWFuYWdlX3NldXNlcl9nZXRfbWxzcmFuZ2UiKTsKKyAgICAgICAgZXhpdCgyKTsK KyAgICB9CisKKyAgICBpZiAoc3RyY21wKG9sZF9tbHNyYW5nZSwgbWxzcmFuZ2UpID09IDApIHsK KyAgICAgICAgcHJpbnRmKCJOZXcgbWxzcmFuZ2UgaXMgdGhlIHNhbWVcbiIpOworICAgICAgICBl eGl0KDIpOworICAgIH0KKworICAgIHJlc3VsdCA9IHNlbWFuYWdlX3NldXNlcl9zZXRfbWxzcmFu Z2Uoc2gsIHVzZXIsIG1sc3JhbmdlKTsKKyAgICBwcmludGYoInNlbWFuYWdlX3NldXNlcl9zZXRf bWxzcmFuZ2UoJXAsICVwLCAlcyk6ICVkXG4iLAorICAgICAgICAgICAodm9pZCAqKSBzaCwgKHZv aWQgKikgdXNlciwgbWxzcmFuZ2UsIHJlc3VsdCk7CisKKyAgICBpZiAocmVzdWx0IDwgMCkgewor ICAgICAgICBwZXJyb3IoInNlbWFuYWdlX3NldXNlcl9zZXRfbWxzcmFuZ2UiKTsKKyAgICAgICAg ZXhpdCgxKTsKKyAgICB9CisKKyAgICBjb25zdCBjaGFyICpuZXdfbWxzcmFuZ2UgPSBzZW1hbmFn ZV9zZXVzZXJfZ2V0X21sc3JhbmdlKHVzZXIpOworICAgIHByaW50Zigic2VtYW5hZ2Vfc2V1c2Vy X2dldF9tbHNyYW5nZSglcCk6ICVzXG4iLAorICAgICAgICAgICAodm9pZCAqKSB1c2VyLCBuZXdf bWxzcmFuZ2UpOworCisgICAgaWYgKHN0cmNtcChuZXdfbWxzcmFuZ2UsIG1sc3JhbmdlKSAhPSAw KSB7CisgICAgICAgIHBlcnJvcigic2VtYW5hZ2Vfc2V1c2VyX2dldF9tbHNyYW5nZSIpOworICAg ICAgICBleGl0KDEpOworICAgIH0KKworICAgIGRlc3Ryb3lfaGFuZGxlKHNoLCBhcmd2WzFdKTsK KworICAgIGV4aXQoMCk7Cit9CgpkaWZmIC0tZ2l0IGEvbGlic2VtYW5hZ2Uvc2VtYW5hZ2Utc2V1 c2VyLWZ1bmN0aW9ucy90ZXN0X3NldF9uYW1lLmMgYi9saWJzZW1hbmFnZS9zZW1hbmFnZS1zZXVz ZXItZnVuY3Rpb25zL3Rlc3Rfc2V0X25hbWUuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwLi4zZTQ0OGU4Ci0tLSAvZGV2L251bGwKKysrIGIvbGlic2VtYW5hZ2Uvc2VtYW5hZ2Ut c2V1c2VyLWZ1bmN0aW9ucy90ZXN0X3NldF9uYW1lLmMKQEAgLTAsMCArMSw2MiBAQAorI2luY2x1 ZGUgPHN0ZGlvLmg+CisjaW5jbHVkZSA8c3RkbGliLmg+CisjaW5jbHVkZSA8c3RyaW5nLmg+Cisj aW5jbHVkZSA8ZXJybm8uaD4KKyNpbmNsdWRlIDxzZW1hbmFnZS9zZW1hbmFnZS5oPgorCisjaW5j bHVkZSAiZnVuY3Rpb25zLmMiCisKK2ludCBtYWluIChpbnQgYXJnYywgY2hhciAqKmFyZ3YpIHsK KyAgICBzZW1hbmFnZV9oYW5kbGVfdCAqc2g7CisgICAgc2VtYW5hZ2Vfc2V1c2VyX3QgKnVzZXI7 CisgICAgaW50IHJlc3VsdDsKKyAgICBjb25zdCBjaGFyICpuYW1lOworICAgIAorICAgIGlmIChh cmdjIDwgMykKKyAgICAgICAgZXhpdCgyKTsKKyAgICAKKyAgICBzaCA9IGdldF9oYW5kbGUoYXJn dlsxXSk7CisKKyAgICB1c2VyID0gdGVzdF9nZXRfc2V1c2VyKHNoLCAiZmlyc3QiKTsKKworICAg IGlmIChzdHJjbXAoYXJndlsyXSwgIk5VTEwiKSA9PSAwKQorICAgICAgICBuYW1lID0gTlVMTDsK KyAgICBlbHNlIAorICAgICAgICBuYW1lID0gYXJndlsyXTsKKworICAgIGNvbnN0IGNoYXIgKm9s ZF9uYW1lID0gc2VtYW5hZ2Vfc2V1c2VyX2dldF9uYW1lKHVzZXIpOworICAgIHByaW50Zigic2Vt YW5hZ2Vfc2V1c2VyX2dldF9uYW1lKCVwKTogJXNcbiIsCisgICAgICAgICAgICh2b2lkICopIHVz ZXIsIG9sZF9uYW1lKTsKKworICAgIGlmIChvbGRfbmFtZSA9PSBOVUxMKSB7CisgICAgICAgIHBl cnJvcigic2VtYW5hZ2Vfc2V1c2VyX2dldF9uYW1lIik7CisgICAgICAgIGV4aXQoMik7CisgICAg fQorCisgICAgaWYgKHN0cmNtcChvbGRfbmFtZSwgbmFtZSkgPT0gMCkgeworICAgICAgICBwcmlu dGYoIk5ldyBuYW1lIGlzIHRoZSBzYW1lXG4iKTsKKyAgICAgICAgZXhpdCgyKTsKKyAgICB9CisK KyAgICByZXN1bHQgPSBzZW1hbmFnZV9zZXVzZXJfc2V0X25hbWUoc2gsIHVzZXIsIG5hbWUpOwor ICAgIHByaW50Zigic2VtYW5hZ2Vfc2V1c2VyX3NldF9uYW1lKCVwLCAlcCwgJXMpOiAlZFxuIiwK KyAgICAgICAgICAgKHZvaWQgKikgc2gsICh2b2lkICopIHVzZXIsIG5hbWUsIHJlc3VsdCk7CisK KyAgICBpZiAocmVzdWx0IDwgMCkgeworICAgICAgICBwZXJyb3IoInNlbWFuYWdlX3NldXNlcl9z ZXRfbmFtZSIpOworICAgICAgICBleGl0KDEpOworICAgIH0KKworICAgIGNvbnN0IGNoYXIgKm5l d19uYW1lID0gc2VtYW5hZ2Vfc2V1c2VyX2dldF9uYW1lKHVzZXIpOworICAgIHByaW50Zigic2Vt YW5hZ2Vfc2V1c2VyX2dldF9uYW1lKCVwKTogJXNcbiIsCisgICAgICAgICAgICh2b2lkICopIHVz ZXIsIG5ld19uYW1lKTsKKworICAgIGlmIChzdHJjbXAobmV3X25hbWUsIG5hbWUpICE9IDApIHsK KyAgICAgICAgcGVycm9yKCJzZW1hbmFnZV9zZXVzZXJfZ2V0X25hbWUiKTsKKyAgICAgICAgZXhp dCgxKTsKKyAgICB9CisKKyAgICBkZXN0cm95X2hhbmRsZShzaCwgYXJndlsxXSk7CisKKyAgICBl eGl0KDApOworfQoKZGlmZiAtLWdpdCBhL2xpYnNlbWFuYWdlL3NlbWFuYWdlLXNldXNlci1mdW5j dGlvbnMvdGVzdF9zZXRfc2VuYW1lLmMgYi9saWJzZW1hbmFnZS9zZW1hbmFnZS1zZXVzZXItZnVu Y3Rpb25zL3Rlc3Rfc2V0X3NlbmFtZS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw MDAuLjQwMmM1YjcKLS0tIC9kZXYvbnVsbAorKysgYi9saWJzZW1hbmFnZS9zZW1hbmFnZS1zZXVz ZXItZnVuY3Rpb25zL3Rlc3Rfc2V0X3NlbmFtZS5jCkBAIC0wLDAgKzEsNjIgQEAKKyNpbmNsdWRl IDxzdGRpby5oPgorI2luY2x1ZGUgPHN0ZGxpYi5oPgorI2luY2x1ZGUgPHN0cmluZy5oPgorI2lu Y2x1ZGUgPGVycm5vLmg+CisjaW5jbHVkZSA8c2VtYW5hZ2Uvc2VtYW5hZ2UuaD4KKworI2luY2x1 ZGUgImZ1bmN0aW9ucy5jIgorCitpbnQgbWFpbiAoaW50IGFyZ2MsIGNoYXIgKiphcmd2KSB7Cisg ICAgc2VtYW5hZ2VfaGFuZGxlX3QgKnNoOworICAgIHNlbWFuYWdlX3NldXNlcl90ICp1c2VyOwor ICAgIGludCByZXN1bHQ7CisgICAgY29uc3QgY2hhciAqbmFtZTsKKyAgICAKKyAgICBpZiAoYXJn YyA8IDMpCisgICAgICAgIGV4aXQoMik7CisgICAgCisgICAgc2ggPSBnZXRfaGFuZGxlKGFyZ3Zb MV0pOworCisgICAgdXNlciA9IHRlc3RfZ2V0X3NldXNlcihzaCwgImZpcnN0Iik7CisKKyAgICBp ZiAoc3RyY21wKGFyZ3ZbMl0sICJOVUxMIikgPT0gMCkKKyAgICAgICAgbmFtZSA9IE5VTEw7Cisg ICAgZWxzZSAKKyAgICAgICAgbmFtZSA9IGFyZ3ZbMl07CisKKyAgICBjb25zdCBjaGFyICpvbGRf bmFtZSA9IHNlbWFuYWdlX3NldXNlcl9nZXRfc2VuYW1lKHVzZXIpOworICAgIHByaW50Zigic2Vt YW5hZ2Vfc2V1c2VyX2dldF9zZW5hbWUoJXApOiAlc1xuIiwKKyAgICAgICAgICAgKHZvaWQgKikg dXNlciwgb2xkX25hbWUpOworCisgICAgaWYgKG9sZF9uYW1lID09IE5VTEwpIHsKKyAgICAgICAg cGVycm9yKCJzZW1hbmFnZV9zZXVzZXJfZ2V0X3NlbmFtZSIpOworICAgICAgICBleGl0KDIpOwor ICAgIH0KKworICAgIGlmIChzdHJjbXAob2xkX25hbWUsIG5hbWUpID09IDApIHsKKyAgICAgICAg cHJpbnRmKCJOZXcgbmFtZSBpcyB0aGUgc2FtZVxuIik7CisgICAgICAgIGV4aXQoMik7CisgICAg fQorCisgICAgcmVzdWx0ID0gc2VtYW5hZ2Vfc2V1c2VyX3NldF9zZW5hbWUoc2gsIHVzZXIsIG5h bWUpOworICAgIHByaW50Zigic2VtYW5hZ2Vfc2V1c2VyX3NldF9zZW5hbWUoJXAsICVwLCAlcyk6 ICVkXG4iLAorICAgICAgICAgICAodm9pZCAqKSBzaCwgKHZvaWQgKikgdXNlciwgbmFtZSwgcmVz dWx0KTsKKworICAgIGlmIChyZXN1bHQgPCAwKSB7CisgICAgICAgIHBlcnJvcigic2VtYW5hZ2Vf c2V1c2VyX3NldF9zZW5hbWUiKTsKKyAgICAgICAgZXhpdCgxKTsKKyAgICB9CisKKyAgICBjb25z dCBjaGFyICpuZXdfbmFtZSA9IHNlbWFuYWdlX3NldXNlcl9nZXRfc2VuYW1lKHVzZXIpOworICAg IHByaW50Zigic2VtYW5hZ2Vfc2V1c2VyX2dldF9zZW5hbWUoJXApOiAlc1xuIiwKKyAgICAgICAg ICAgKHZvaWQgKikgdXNlciwgbmV3X25hbWUpOworCisgICAgaWYgKHN0cmNtcChuZXdfbmFtZSwg bmFtZSkgIT0gMCkgeworICAgICAgICBwZXJyb3IoInNlbWFuYWdlX3NldXNlcl9nZXRfc2VuYW1l Iik7CisgICAgICAgIGV4aXQoMSk7CisgICAgfQorCisgICAgZGVzdHJveV9oYW5kbGUoc2gsIGFy Z3ZbMV0pOworCisgICAgZXhpdCgwKTsKK30K