ZGlmZiAtLWdpdCBhL01hYy9zY3JpcHRzL2Z1bGxidWlsZC5weSBiL01hYy9zY3JpcHRzL2Z1bGxidWlsZC5weQppbmRleCA0MjJhMWM5Li43MWVkYjU1IDEwMDY0NAotLS0gYS9NYWMvc2NyaXB0cy9mdWxsYnVpbGQucHkKKysrIGIvTWFjL3NjcmlwdHMvZnVsbGJ1aWxkLnB5CkBAIC0xMyw2ICsxMyw3IEBACiBpbXBvcnQgc3lzCiBpbXBvcnQgbWFjZnMKIGltcG9ydCBNYWNPUworaW1wb3J0IEVhc3lEaWFsb2dzCiAKIGltcG9ydCBhZGRwYWNrCiBpbXBvcnQgYWV0b29scwpAQCAtMjcsMTEgKzI4LDE0IEBACiBjbGFzcyBNd1NoZWxsKGFldG9vbHMuVGFsa1RvLCBNZXRyb3dlcmtzX1NoZWxsX1N1aXRlLCBSZXF1aXJlZF9TdWl0ZSk6CiAJcGFzcwogCitSVU5OSU5HPVtdCiAKIGRlZiBidWlsZG13cHJvamVjdCh0b3AsIGNyZWF0b3IsIHByb2plY3RzKToKIAkiIiJCdWlsZCBwcm9qZWN0cyB3aXRoIGFuIE1XIGNvbXBpbGVyIiIiCi0JcHJpbnQgJ1BsZWFzZSBzdGFydCBwcm9qZWN0IG1nciB3aXRoIHNpZ25hdHVyZScsIGNyZWF0b3IsJy0nCi0Jc3lzLnN0ZGluLnJlYWRsaW5lKCkKKwlpZiBub3QgY3JlYXRvciBpbiBSVU5OSU5HOgorCQlwcmludCAnUGxlYXNlIHN0YXJ0IHByb2plY3QgbWdyIHdpdGggc2lnbmF0dXJlJywgY3JlYXRvciwnLScKKwkJc3lzLnN0ZGluLnJlYWRsaW5lKCkKKwkJUlVOTklORy5hcHBlbmQoY3JlYXRvcikKIAl0cnk6CiAJCW1nciA9IE13U2hlbGwoY3JlYXRvcikKIAlleGNlcHQgJ2Zvbyc6CkBAIC00OSw3ICs1Myw3IEBACiAJCWV4Y2VwdCBNYWNPUy5FcnJvciwgYXJnOgogCQkJcHJpbnQgJyoqIEZhaWxlZC4gUG9zc2libGUgZXJyb3I6JywgYXJnCiAJCW1nci5DbG9zZV9Qcm9qZWN0KCkKLQltZ3IucXVpdCgpCisjIwltZ3IucXVpdCgpCiAJCiBkZWYgYnVpbGRhcHBsZXQodG9wLCBkdW1teSwgbGlzdCk6CiAJIiIiQ3JlYXRlIGEgUFBDIHB5dGhvbiBhcHBsZXQiIiIKQEAgLTcwLDIxICs3NCwyOSBAQAogIwogIyBUaGUgYnVpbGQgaW5zdHJ1Y3Rpb25zLiBFbnRyaWVzIGFyZSAocm91dGluZSwgYXJnLCBsaXN0LW9mLWZpbGVzKQogIyBYWFhYIFdlIGNvdWxkIGFsc28gaW5jbHVkZSB0aGUgYnVpbGRzIGZvciBzdGR3aW4gYW5kIHN1Y2ggaGVyZS4uLgotSU5TVFJVQ1RJT05TPVsKK1BQQ19JTlNUUlVDVElPTlM9WwogCShidWlsZG13cHJvamVjdCwgIkNXSUUiLCBbCiAJCSI6YnVpbGQubWFjcHBjLnNoYXJlZDpQeXRob25Db3JlLrUiLAogCQkiOmJ1aWxkLm1hY3BwYy5zaGFyZWQ6UHl0aG9uUFBDLrUiLAogCQkiOmJ1aWxkLm1hY3BwYy5zaGFyZWQ6UHl0aG9uQXBwbGV0LrUiLAotCisJXSkKK10KK1BMVUdJTl9JTlNUUlVDVElPTlM9WworCShidWlsZG13cHJvamVjdCwgIkNXSUUiLCBbCiAJCSI6UGx1Z0luczpjdGJtb2R1bGUutSIsCiAJCSI6UGx1Z0luczppbWdtb2R1bGVzLrUiLAogCQkiOlBsdWdJbnM6bWFjc3BlZWNobW9kdWxlLrUiLAogCQkiOlBsdWdJbnM6bWFjdGNwbW9kdWxlcy61IiwKIAkJIjpQbHVnSW5zOnN0ZHdpbm1vZHVsZS61IiwKIAkJIjpQbHVnSW5zOnRvb2xib3htb2R1bGVzLrUiLAotCisJXSkKK10KK002OEtfSU5TVFJVQ1RJT05TPVsKKwkoYnVpbGRtd3Byb2plY3QsICJDV0lFIiwgWwogCQkiOmJ1aWxkLm1hYzY4ay5zdGFuZDpQeXRob242OEsutSIsCi0JXSksCisJXSkKK10KK0FQUExFVF9JTlNUUlVDVElPTlM9WwogCShidWlsZGFwcGxldCwgTm9uZSwgWwogCQkiOk1hYzpzY3JpcHRzOkVkaXRQeXRob25QcmVmcy5weSIsCiAJCSI6TWFjOnNjcmlwdHM6bWthcHBsZXQucHkiLApAQCAtOTIsMTIgKzEwNCwyNiBAQAogCQkiOk1hYzpzY3JpcHRzOk1rUGx1Z2luQWxpYXNlcy5weSIKIAldKQogXQorCitBTExJTlNUPVsKKwkoIlBQQyBzaGFyZWQgZXhlY3V0YWJsZSIsIFBQQ19JTlNUUlVDVElPTlMpLAorCSgiUFBDIHBsdWdpbiBtb2R1bGVzIiwgUExVR0lOX0lOU1RSVUNUSU9OUyksCisJKCI2OEsgZXhlY3V0YWJsZSIsIE02OEtfSU5TVFJVQ1RJT05TKSwKKwkoIlBQQyBhcHBsZXRzIiwgQVBQTEVUX0lOU1RSVUNUSU9OUykKK10KIAkJCQkKIGRlZiBtYWluKCk6CiAJZGlyLCBvayA9IG1hY2ZzLkdldERpcmVjdG9yeSgnUHl0aG9uIHNvdXJjZSBmb2xkZXI6JykKIAlpZiBub3Qgb2s6CiAJCXN5cy5leGl0KDApCiAJZGlyID0gZGlyLmFzX3BhdGhuYW1lKCkKKwlJTlNUUlVDVElPTlMgPSBbXQorCWZvciBzdHJpbmcsIGluc3QgaW4gQUxMSU5TVDoKKwkJYW5zd2VyID0gRWFzeURpYWxvZ3MuQXNrWWVzTm9DYW5jZWwoIkJ1aWxkICVzPyIlc3RyaW5nLCAxKQorCQlpZiBhbnN3ZXIgPCAwOgorCQkJc3lzLmV4aXQoMCkKKwkJaWYgYW5zd2VyOgorCQkJSU5TVFJVQ1RJT05TID0gSU5TVFJVQ1RJT05TICsgaW5zdAogCWZvciByb3V0aW5lLCBhcmcsIGxpc3QgaW4gSU5TVFJVQ1RJT05TOgogCQlyb3V0aW5lKGRpciwgYXJnLCBsaXN0KQogCXByaW50ICJBbGwgZG9uZSEiCg==