ZGlmZiAtLWdpdCBhL2J1aWxkL29yZy5lY2xpcHNlLmNkdC5tYWtlLnVpL3NyYy9vcmcvZWNsaXBzZS9jZHQvbWFrZS9pbnRlcm5hbC91aS90ZXh0L21ha2VmaWxlL01hY3JvRGVmaW5pdGlvblJ1bGUuamF2YSBiL2J1aWxkL29yZy5lY2xpcHNlLmNkdC5tYWtlLnVpL3NyYy9vcmcvZWNsaXBzZS9jZHQvbWFrZS9pbnRlcm5hbC91aS90ZXh0L21ha2VmaWxlL01hY3JvRGVmaW5pdGlvblJ1bGUuamF2YQppbmRleCAyZDU3YjFkLi4xM2EyMTI4IDEwMDY0NAotLS0gYS9idWlsZC9vcmcuZWNsaXBzZS5jZHQubWFrZS51aS9zcmMvb3JnL2VjbGlwc2UvY2R0L21ha2UvaW50ZXJuYWwvdWkvdGV4dC9tYWtlZmlsZS9NYWNyb0RlZmluaXRpb25SdWxlLmphdmEKKysrIGIvYnVpbGQvb3JnLmVjbGlwc2UuY2R0Lm1ha2UudWkvc3JjL29yZy9lY2xpcHNlL2NkdC9tYWtlL2ludGVybmFsL3VpL3RleHQvbWFrZWZpbGUvTWFjcm9EZWZpbml0aW9uUnVsZS5qYXZhCkBAIC0xNjAsNyArMTYwLDcgQEAKIAogCXByb3RlY3RlZCBib29sZWFuIGlzVmFsaWRDaGFyYWN0ZXIoaW50IGMpIHsKIAkJLy8gRnJvbSBHTlVNYWtlZmlsZSBtYW51YWw6Ci0JCS8vIEEgdmFyaWFibGUgbmFtZSBtYXkgYmUgYW55IHNlcXVlbmNlIG9mIGNoYXJhY3RlcnMgbm90IGNvbnRhaW5pbmcgkTqSLCCRI5IsIJE9kiwgb3IgbGVhZGluZyBvciB0cmFpbGluZyB3aGl0ZXNwYWNlLgorCQkvLyBBIHZhcmlhYmxlIG5hbWUgbWF5IGJlIGFueSBzZXF1ZW5jZSBvZiBjaGFyYWN0ZXJzIG5vdCBjb250YWluaW5nICc6JywgJyMnLCAnPScsIG9yIGxlYWRpbmcgb3IgdHJhaWxpbmcgd2hpdGVzcGFjZS4KIAkJLy8gSG93ZXZlciwgdmFyaWFibGUgbmFtZXMgY29udGFpbmluZyBjaGFyYWN0ZXJzIG90aGVyIHRoYW4gbGV0dGVycywgbnVtYmVycywgYW5kIHVuZGVyc2NvcmVzIHNob3VsZCBiZSBhdm9pZGVkLAogCQkvLyBhcyB0aGV5IG1heSBiZSBnaXZlbiBzcGVjaWFsIG1lYW5pbmdzIGluIHRoZSBmdXR1cmUsIGFuZCB3aXRoIHNvbWUgc2hlbGxzIHRoZXkgY2Fubm90IGJlIHBhc3NlZCB0aHJvdWdoIHRoZSBlbnZpcm9ubWVudCB0byBhIHN1Yi1tYWtlCiAJCXJldHVybiAhQ2hhcmFjdGVyLmlzV2hpdGVzcGFjZShjKSAmJiBjICE9ICc6JyAmJiBjICE9ICcjJyAmJiBjICE9ICc9JzsKZGlmZiAtLWdpdCBhL2NvcmUvb3JnLmVjbGlwc2UuY2R0LmNvcmUudGVzdHMvbWlzYy9vcmcvZWNsaXBzZS9jZHQvY29yZS9pbnRlcm5hbC9lcnJvcnBhcnNlcnMvdGVzdHMvR0NDRXJyb3JQYXJzZXJUZXN0cy5qYXZhIGIvY29yZS9vcmcuZWNsaXBzZS5jZHQuY29yZS50ZXN0cy9taXNjL29yZy9lY2xpcHNlL2NkdC9jb3JlL2ludGVybmFsL2Vycm9ycGFyc2Vycy90ZXN0cy9HQ0NFcnJvclBhcnNlclRlc3RzLmphdmEKaW5kZXggOGI1NmVlNy4uNmY2MDhmZiAxMDA2NDQKLS0tIGEvY29yZS9vcmcuZWNsaXBzZS5jZHQuY29yZS50ZXN0cy9taXNjL29yZy9lY2xpcHNlL2NkdC9jb3JlL2ludGVybmFsL2Vycm9ycGFyc2Vycy90ZXN0cy9HQ0NFcnJvclBhcnNlclRlc3RzLmphdmEKKysrIGIvY29yZS9vcmcuZWNsaXBzZS5jZHQuY29yZS50ZXN0cy9taXNjL29yZy9lY2xpcHNlL2NkdC9jb3JlL2ludGVybmFsL2Vycm9ycGFyc2Vycy90ZXN0cy9HQ0NFcnJvclBhcnNlclRlc3RzLmphdmEKQEAgLTIwMSw3ICsyMDEsNyBAQAogCXB1YmxpYyB2b2lkIHRlc3RHY2NFcnJvck1lc3NhZ2VzX1JlcXVpcmVkRnJvbUhlcmUoKSB0aHJvd3MgSU9FeGNlcHRpb24gewogCQlydW5QYXJzZXJUZXN0KAogCQkJCW5ldyBTdHJpbmdbXSB7Ci0JCQkJCQkidXRpbHMvYmFyLmhwcDo2MTo3OiByZXF1aXJlZCBmcm9tIJFzdGF0aWMgdm9pZCBPcGVuQ1ZVdGlsczo6c2hvd19jb250b3Vyc19kKHN0ZDo6c3RyaW5nLCBjdjo6TWF0JiwgY29uc3Qgc3RkOjp2ZWN0b3I8c3RkOjp2ZWN0b3I8Y3Y6OlBvaW50XzxfVHA+ID4gPiYsIGJvb2wsIGNvbnN0IFNjYWxhciYsIGludCwgaW50LCBpbnQpIFt3aXRoIFQgPSBpbnQ7IHN0ZDo6c3RyaW5nID0gc3RkOjpiYXNpY19zdHJpbmc8Y2hhcj47IGN2OjpTY2FsYXIgPSBjdjo6U2NhbGFyXzxkb3VibGU+XZIiLAorCQkJCQkJInV0aWxzL2Jhci5ocHA6NjE6NzogcmVxdWlyZWQgZnJvbSAnc3RhdGljIHZvaWQgT3BlbkNWVXRpbHM6OnNob3dfY29udG91cnNfZChzdGQ6OnN0cmluZywgY3Y6Ok1hdCYsIGNvbnN0IHN0ZDo6dmVjdG9yPHN0ZDo6dmVjdG9yPGN2OjpQb2ludF88X1RwPiA+ID4mLCBib29sLCBjb25zdCBTY2FsYXImLCBpbnQsIGludCwgaW50KSBbd2l0aCBUID0gaW50OyBzdGQ6OnN0cmluZyA9IHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXI+OyBjdjo6U2NhbGFyID0gY3Y6OlNjYWxhcl88ZG91YmxlPl0nIiwKIAkJCQkJCSJ1dGlscy9mb28uY3BwOjExNzo5NjogcmVxdWlyZWQgZnJvbSBoZXJlIiwKIAkJCQkJfSwKIAkJCQkwLCAvLyBlcnJvcnMKQEAgLTIxMiw3ICsyMTIsNyBAQAogCQkJCQkJImZvby5jcHAiLAogCQkJCX0sCiAJCQkJbmV3IFN0cmluZ1tdIHsKLQkJCQkJCSJyZXF1aXJlZCBmcm9tIJFzdGF0aWMgdm9pZCBPcGVuQ1ZVdGlsczo6c2hvd19jb250b3Vyc19kKHN0ZDo6c3RyaW5nLCBjdjo6TWF0JiwgY29uc3Qgc3RkOjp2ZWN0b3I8c3RkOjp2ZWN0b3I8Y3Y6OlBvaW50XzxfVHA+ID4gPiYsIGJvb2wsIGNvbnN0IFNjYWxhciYsIGludCwgaW50LCBpbnQpIFt3aXRoIFQgPSBpbnQ7IHN0ZDo6c3RyaW5nID0gc3RkOjpiYXNpY19zdHJpbmc8Y2hhcj47IGN2OjpTY2FsYXIgPSBjdjo6U2NhbGFyXzxkb3VibGU+XZIiLAorCQkJCQkJInJlcXVpcmVkIGZyb20gJ3N0YXRpYyB2b2lkIE9wZW5DVlV0aWxzOjpzaG93X2NvbnRvdXJzX2Qoc3RkOjpzdHJpbmcsIGN2OjpNYXQmLCBjb25zdCBzdGQ6OnZlY3RvcjxzdGQ6OnZlY3Rvcjxjdjo6UG9pbnRfPF9UcD4gPiA+JiwgYm9vbCwgY29uc3QgU2NhbGFyJiwgaW50LCBpbnQsIGludCkgW3dpdGggVCA9IGludDsgc3RkOjpzdHJpbmcgPSBzdGQ6OmJhc2ljX3N0cmluZzxjaGFyPjsgY3Y6OlNjYWxhciA9IGN2OjpTY2FsYXJfPGRvdWJsZT5dJyIsCiAJCQkJCQkicmVxdWlyZWQgZnJvbSBoZXJlIiwKIAkJCQl9LAogCQkJCW5ldyBTdHJpbmdbXSB7R0NDX0VSUk9SX1BBUlNFUl9JRH0KZGlmZiAtLWdpdCBhL2xsdm0vb3JnLmVjbGlwc2UuY2R0Lm1hbmFnZWRidWlsZGVyLmxsdm0udWkvc3JjL29yZy9lY2xpcHNlL2NkdC9tYW5hZ2VkYnVpbGRlci9sbHZtL3V0aWwvTGx2bVRvb2xPcHRpb25QYXRoVXRpbC5qYXZhIGIvbGx2bS9vcmcuZWNsaXBzZS5jZHQubWFuYWdlZGJ1aWxkZXIubGx2bS51aS9zcmMvb3JnL2VjbGlwc2UvY2R0L21hbmFnZWRidWlsZGVyL2xsdm0vdXRpbC9MbHZtVG9vbE9wdGlvblBhdGhVdGlsLmphdmEKaW5kZXggMTBjZThlNC4uODI0Mjc2NyAxMDA3NTUKLS0tIGEvbGx2bS9vcmcuZWNsaXBzZS5jZHQubWFuYWdlZGJ1aWxkZXIubGx2bS51aS9zcmMvb3JnL2VjbGlwc2UvY2R0L21hbmFnZWRidWlsZGVyL2xsdm0vdXRpbC9MbHZtVG9vbE9wdGlvblBhdGhVdGlsLmphdmEKKysrIGIvbGx2bS9vcmcuZWNsaXBzZS5jZHQubWFuYWdlZGJ1aWxkZXIubGx2bS51aS9zcmMvb3JnL2VjbGlwc2UvY2R0L21hbmFnZWRidWlsZGVyL2xsdm0vdXRpbC9MbHZtVG9vbE9wdGlvblBhdGhVdGlsLmphdmEKQEAgLTMyMCw3ICszMjAsNyBAQAogCQkJcmV0dXJuIGNvbmZpZ3VyYXRpb25zOwogCQl9CiAJCS8vaW5mbyBjYW4gYmUgbnVsbCBmb3IgcHJvamVjdHMgd2l0aG91dCBidWlsZCBpbmZvLiBGb3IgZXhhbXBsZSwgd2hlbiBjcmVhdGluZyBhIHByb2plY3QKLQkJLy9mcm9tIEltcG9ydCA+77+9Qy9DKysgRXhlY3V0YWJsZQorCQkvL2Zyb20gSW1wb3J0ID4gQy9DKysgRXhlY3V0YWJsZQogCQlpZihpbmZvID09IG51bGwpIHsKIAkJCXJldHVybiBjb25maWd1cmF0aW9uczsKIAkJfQpkaWZmIC0tZ2l0IGEvcG9tLnhtbCBiL3BvbS54bWwKaW5kZXggY2I1Zjk5Ny4uMTBlOGM3MiAxMDA2NDQKLS0tIGEvcG9tLnhtbAorKysgYi9wb20ueG1sCkBAIC0yNjgsNiArMjY4LDE2IEBACiAJCTwvcGx1Z2luUmVwb3NpdG9yeT4KICAgCTwvcGx1Z2luUmVwb3NpdG9yaWVzPgogCTxwcm9maWxlcz4KKwkJPCEtLSBUdXJuIG9mZiBkb2NsaW50IGJlY2F1c2UgamF2YWRvY3MgYXJlIGluY29tcGxldGUgLS0+CisJCTxwcm9maWxlPgorCQkJPGlkPmRpc2FibGUtamF2YTgtZG9jbGludDwvaWQ+CisJCQk8YWN0aXZhdGlvbj4KKwkJCQk8amRrPlsxLjgsKTwvamRrPgorCQkJPC9hY3RpdmF0aW9uPgorCQkJPHByb3BlcnRpZXM+CisJCQkJPGRvY2xpbnQ+bm9uZTwvZG9jbGludD4KKwkJCTwvcHJvcGVydGllcz4KKwkJPC9wcm9maWxlPgogCQk8cHJvZmlsZT4KIAkJCTxpZD5jZHRSZXBvPC9pZD4KIAkJCTxyZXBvc2l0b3JpZXM+Cg==