ZGlmZiAtLWdpdCBhL2FuYWx5c2VzL29yZy5lY2xpcHNlLnRyYWNlY29tcGFzcy5pbmN1YmF0b3Iuc2NyaXB0aW5nLmNvcmUvTUVUQS1JTkYvTUFOSUZFU1QuTUYgYi9hbmFseXNlcy9vcmcuZWNsaXBzZS50cmFjZWNvbXBhc3MuaW5jdWJhdG9yLnNjcmlwdGluZy5jb3JlL01FVEEtSU5GL01BTklGRVNULk1GCmluZGV4IDk0MmVhNjQuLjdjODQ0OWQgMTAwNjQ0Ci0tLSBhL2FuYWx5c2VzL29yZy5lY2xpcHNlLnRyYWNlY29tcGFzcy5pbmN1YmF0b3Iuc2NyaXB0aW5nLmNvcmUvTUVUQS1JTkYvTUFOSUZFU1QuTUYKKysrIGIvYW5hbHlzZXMvb3JnLmVjbGlwc2UudHJhY2Vjb21wYXNzLmluY3ViYXRvci5zY3JpcHRpbmcuY29yZS9NRVRBLUlORi9NQU5JRkVTVC5NRgpAQCAtMTksOSArMTksMTEgQEAKICBvcmcuZWNsaXBzZS50cmFjZWNvbXBhc3Muc3RhdGVzeXN0ZW0uY29yZSwKICBvcmcuZWNsaXBzZS50cmFjZWNvbXBhc3MuYW5hbHlzaXMub3MubGludXguY29yZSwKICBvcmcuZWNsaXBzZS50cmFjZWNvbXBhc3MudG1mLmFuYWx5c2lzLnhtbC5jb3JlLAotIG9yZy5lY2xpcHNlLnRyYWNlY29tcGFzcy5pbmN1YmF0b3IuZmlsdGVycy5jb3JlO3Jlc29sdXRpb246PW9wdGlvbmFsCisgb3JnLmVjbGlwc2UudHJhY2Vjb21wYXNzLmluY3ViYXRvci5maWx0ZXJzLmNvcmU7cmVzb2x1dGlvbjo9b3B0aW9uYWwsCisgb3JnLmVjbGlwc2UudHJhY2Vjb21wYXNzLnRtZi5jbGkuY29yZQogRXhwb3J0LVBhY2thZ2U6IG9yZy5lY2xpcHNlLnRyYWNlY29tcGFzcy5pbmN1YmF0b3IuaW50ZXJuYWwuc2NyaXB0aW5nLmNvcmU7eC1mcmllbmRzOj0ib3JnLmVjbGlwc2UudHJhY2Vjb21wYXNzLmluY3ViYXRvci5zY3JpcHRpbmcuY29yZS50ZXN0cyxvcmcuZWNsaXBzZS50cmFjZWNvbXBhc3MuaW5jdWJhdG9yLnNjcmlwdGluZy51aS50ZXN0cyIsCiAgb3JnLmVjbGlwc2UudHJhY2Vjb21wYXNzLmluY3ViYXRvci5pbnRlcm5hbC5zY3JpcHRpbmcuY29yZS5hbmFseXNpczt4LWZyaWVuZHM6PSJvcmcuZWNsaXBzZS50cmFjZWNvbXBhc3MuaW5jdWJhdG9yLnNjcmlwdGluZy5jb3JlLnRlc3RzLG9yZy5lY2xpcHNlLnRyYWNlY29tcGFzcy5pbmN1YmF0b3Iuc2NyaXB0aW5nLnVpIiwKKyBvcmcuZWNsaXBzZS50cmFjZWNvbXBhc3MuaW5jdWJhdG9yLmludGVybmFsLnNjcmlwdGluZy5jb3JlLmNsaTt4LWludGVybmFsOj10cnVlLAogIG9yZy5lY2xpcHNlLnRyYWNlY29tcGFzcy5pbmN1YmF0b3IuaW50ZXJuYWwuc2NyaXB0aW5nLmNvcmUuZGF0YS5wcm92aWRlcjt4LWZyaWVuZHM6PSJvcmcuZWNsaXBzZS50cmFjZWNvbXBhc3MuaW5jdWJhdG9yLnNjcmlwdGluZy5jb3JlLnRlc3RzLG9yZy5lY2xpcHNlLnRyYWNlY29tcGFzcy5pbmN1YmF0b3Iuc2NyaXB0aW5nLnVpIiwKICBvcmcuZWNsaXBzZS50cmFjZWNvbXBhc3MuaW5jdWJhdG9yLmludGVybmFsLnNjcmlwdGluZy5jb3JlLnRyYWNlO3gtZnJpZW5kczo9Im9yZy5lY2xpcHNlLnRyYWNlY29tcGFzcy5pbmN1YmF0b3Iuc2NyaXB0aW5nLmNvcmUudGVzdHMsb3JnLmVjbGlwc2UudHJhY2Vjb21wYXNzLmluY3ViYXRvci5zY3JpcHRpbmcudWkiLAogIG9yZy5lY2xpcHNlLnRyYWNlY29tcGFzcy5pbmN1YmF0b3Iuc2NyaXB0aW5nLmNvcmUsCmRpZmYgLS1naXQgYS9hbmFseXNlcy9vcmcuZWNsaXBzZS50cmFjZWNvbXBhc3MuaW5jdWJhdG9yLnNjcmlwdGluZy5jb3JlL3BsdWdpbi54bWwgYi9hbmFseXNlcy9vcmcuZWNsaXBzZS50cmFjZWNvbXBhc3MuaW5jdWJhdG9yLnNjcmlwdGluZy5jb3JlL3BsdWdpbi54bWwKaW5kZXggZmRiMjkyNS4uZGNkNGQ0MyAxMDA2NDQKLS0tIGEvYW5hbHlzZXMvb3JnLmVjbGlwc2UudHJhY2Vjb21wYXNzLmluY3ViYXRvci5zY3JpcHRpbmcuY29yZS9wbHVnaW4ueG1sCisrKyBiL2FuYWx5c2VzL29yZy5lY2xpcHNlLnRyYWNlY29tcGFzcy5pbmN1YmF0b3Iuc2NyaXB0aW5nLmNvcmUvcGx1Z2luLnhtbApAQCAtNjEsNCArNjEsMTEgQEAKICAgICAgICAgICAgIGlkPSJvcmcuZWNsaXBzZS50cmFjZWNvbXBhc3MuaW5jdWJhdG9yLnNjcmlwdGluZy5kYXRhcHJvdmlkZXIiPgogICAgICAgPC9kYXRhUHJvdmlkZXJGYWN0b3J5PgogICAgPC9leHRlbnNpb24+CisgICA8ZXh0ZW5zaW9uCisgICAgICAgICBwb2ludD0ib3JnLmVjbGlwc2UudHJhY2Vjb21wYXNzLnRtZi5jbGkucGFyc2VyLmV4dGVuc2lvbiI+CisgICAgICA8cGFyc2VyCisgICAgICAgICAgICBjbGFzcz0ib3JnLmVjbGlwc2UudHJhY2Vjb21wYXNzLmluY3ViYXRvci5pbnRlcm5hbC5zY3JpcHRpbmcuY29yZS5jbGkuU2NyaXB0Q2xpUGFyc2VyIgorICAgICAgICAgICAgcHJpb3JpdHk9IjgiPgorICAgICAgPC9wYXJzZXI+CisgICA8L2V4dGVuc2lvbj4KIDwvcGx1Z2luPgpkaWZmIC0tZ2l0IGEvYW5hbHlzZXMvb3JnLmVjbGlwc2UudHJhY2Vjb21wYXNzLmluY3ViYXRvci5zY3JpcHRpbmcuY29yZS9zcmMvb3JnL2VjbGlwc2UvdHJhY2Vjb21wYXNzL2luY3ViYXRvci9pbnRlcm5hbC9zY3JpcHRpbmcvY29yZS9jbGkvTWVzc2FnZXMuamF2YSBiL2FuYWx5c2VzL29yZy5lY2xpcHNlLnRyYWNlY29tcGFzcy5pbmN1YmF0b3Iuc2NyaXB0aW5nLmNvcmUvc3JjL29yZy9lY2xpcHNlL3RyYWNlY29tcGFzcy9pbmN1YmF0b3IvaW50ZXJuYWwvc2NyaXB0aW5nL2NvcmUvY2xpL01lc3NhZ2VzLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzcwNTlmOQotLS0gL2Rldi9udWxsCisrKyBiL2FuYWx5c2VzL29yZy5lY2xpcHNlLnRyYWNlY29tcGFzcy5pbmN1YmF0b3Iuc2NyaXB0aW5nLmNvcmUvc3JjL29yZy9lY2xpcHNlL3RyYWNlY29tcGFzcy9pbmN1YmF0b3IvaW50ZXJuYWwvc2NyaXB0aW5nL2NvcmUvY2xpL01lc3NhZ2VzLmphdmEKQEAgLTAsMCArMSwzNSBAQAorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoYykgMjAxOSDDiWNvbGUgUG9seXRlY2huaXF1ZSBkZSBNb250csOpYWwKKyAqCisgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzIGFyZQorICogbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAgd2hpY2gKKyAqIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0CisgKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKK3BhY2thZ2Ugb3JnLmVjbGlwc2UudHJhY2Vjb21wYXNzLmluY3ViYXRvci5pbnRlcm5hbC5zY3JpcHRpbmcuY29yZS5jbGk7CisKK2ltcG9ydCBvcmcuZWNsaXBzZS5qZHQuYW5ub3RhdGlvbi5OdWxsYWJsZTsKK2ltcG9ydCBvcmcuZWNsaXBzZS5vc2dpLnV0aWwuTkxTOworCisvKioKKyAqIE1lc3NhZ2VzIGZvciB0aGUgY29tbWFuZCBsaW5lIHBhcnNlcgorICoKKyAqIEBhdXRob3IgR2VuZXZpw6h2ZSBCYXN0aWVuCisgKi8KK3B1YmxpYyBjbGFzcyBNZXNzYWdlcyBleHRlbmRzIE5MUyB7CisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIEJVTkRMRV9OQU1FID0gTWVzc2FnZXMuY2xhc3MuZ2V0UGFja2FnZSgpLmdldE5hbWUoKSArICIubWVzc2FnZXMiOyAvLyROT04tTkxTLTEkCisKKyAgICAvKiogUnVuIHNjcmlwdCBjb21tYW5kIGRlc2NyaXB0aW9uICovCisgICAgcHVibGljIHN0YXRpYyBATnVsbGFibGUgU3RyaW5nIENsaVBhcnNlcl9SdW5TY3JpcHREZXNjcmlwdGlvbjsKKyAgICAvKiogTWVzc2FnZSB3aGVuIHNjcmlwdCBkb2VzIG5vdCBlbmQgcHJvcGVybHkgKi8KKyAgICBwdWJsaWMgc3RhdGljIEBOdWxsYWJsZSBTdHJpbmcgQ2xpUGFyc2VyX1NjcmlwdEV4ZWN1dGlvbkVycm9yOworCisgICAgc3RhdGljIHsKKyAgICAgICAgLy8gaW5pdGlhbGl6ZSByZXNvdXJjZSBidW5kbGUKKyAgICAgICAgTkxTLmluaXRpYWxpemVNZXNzYWdlcyhCVU5ETEVfTkFNRSwgTWVzc2FnZXMuY2xhc3MpOworICAgIH0KKworICAgIHByaXZhdGUgTWVzc2FnZXMoKSB7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvYW5hbHlzZXMvb3JnLmVjbGlwc2UudHJhY2Vjb21wYXNzLmluY3ViYXRvci5zY3JpcHRpbmcuY29yZS9zcmMvb3JnL2VjbGlwc2UvdHJhY2Vjb21wYXNzL2luY3ViYXRvci9pbnRlcm5hbC9zY3JpcHRpbmcvY29yZS9jbGkvU2NyaXB0Q2xpUGFyc2VyLmphdmEgYi9hbmFseXNlcy9vcmcuZWNsaXBzZS50cmFjZWNvbXBhc3MuaW5jdWJhdG9yLnNjcmlwdGluZy5jb3JlL3NyYy9vcmcvZWNsaXBzZS90cmFjZWNvbXBhc3MvaW5jdWJhdG9yL2ludGVybmFsL3NjcmlwdGluZy9jb3JlL2NsaS9TY3JpcHRDbGlQYXJzZXIuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kODNjZWZiCi0tLSAvZGV2L251bGwKKysrIGIvYW5hbHlzZXMvb3JnLmVjbGlwc2UudHJhY2Vjb21wYXNzLmluY3ViYXRvci5zY3JpcHRpbmcuY29yZS9zcmMvb3JnL2VjbGlwc2UvdHJhY2Vjb21wYXNzL2luY3ViYXRvci9pbnRlcm5hbC9zY3JpcHRpbmcvY29yZS9jbGkvU2NyaXB0Q2xpUGFyc2VyLmphdmEKQEAgLTAsMCArMSw2OCBAQAorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIENvcHlyaWdodCAoYykgMjAxOSDDiWNvbGUgUG9seXRlY2huaXF1ZSBkZSBNb250csOpYWwKKyAqCisgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzIGFyZQorICogbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAgd2hpY2gKKyAqIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0CisgKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKK3BhY2thZ2Ugb3JnLmVjbGlwc2UudHJhY2Vjb21wYXNzLmluY3ViYXRvci5pbnRlcm5hbC5zY3JpcHRpbmcuY29yZS5jbGk7CisKK2ltcG9ydCBqYXZhLnV0aWwuQXJyYXlMaXN0OworaW1wb3J0IGphdmEudXRpbC5MaXN0OworaW1wb3J0IGphdmEudXRpbC5PYmplY3RzOworCitpbXBvcnQgb3JnLmVjbGlwc2UuY29yZS5ydW50aW1lLklQcm9ncmVzc01vbml0b3I7CitpbXBvcnQgb3JnLmVjbGlwc2UuY29yZS5ydW50aW1lLklTdGF0dXM7CitpbXBvcnQgb3JnLmVjbGlwc2UuY29yZS5ydW50aW1lLlN0YXR1czsKK2ltcG9ydCBvcmcuZWNsaXBzZS5qZHQuYW5ub3RhdGlvbi5Ob25OdWxsOworaW1wb3J0IG9yZy5lY2xpcHNlLnRyYWNlY29tcGFzcy5pbmN1YmF0b3IuaW50ZXJuYWwuc2NyaXB0aW5nLmNvcmUuQWN0aXZhdG9yOworaW1wb3J0IG9yZy5lY2xpcHNlLnRyYWNlY29tcGFzcy5pbmN1YmF0b3IuaW50ZXJuYWwuc2NyaXB0aW5nLmNvcmUuU2NyaXB0RXhlY3V0aW9uSGVscGVyOworaW1wb3J0IG9yZy5lY2xpcHNlLnRyYWNlY29tcGFzcy5pbnRlcm5hbC5wcm92aXNpb25hbC50bWYuY2xpLmNvcmUucGFyc2VyLkNsaUNvbW1hbmRMaW5lOworaW1wb3J0IG9yZy5lY2xpcHNlLnRyYWNlY29tcGFzcy5pbnRlcm5hbC5wcm92aXNpb25hbC50bWYuY2xpLmNvcmUucGFyc2VyLkNsaU9wdGlvbjsKK2ltcG9ydCBvcmcuZWNsaXBzZS50cmFjZWNvbXBhc3MuaW50ZXJuYWwucHJvdmlzaW9uYWwudG1mLmNsaS5jb3JlLnBhcnNlci5JQ2xpUGFyc2VyOworCisvKioKKyAqIENvbW1hbmQgbGluZSBwYXJzZXIgZm9yIHNjcmlwdHMKKyAqCisgKiBAYXV0aG9yIEdlbmV2acOodmUgQmFzdGllbgorICovCitAU3VwcHJlc3NXYXJuaW5ncygicmVzdHJpY3Rpb24iKQorcHVibGljIGNsYXNzIFNjcmlwdENsaVBhcnNlciBpbXBsZW1lbnRzIElDbGlQYXJzZXIgeworCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIE9QVElPTl9DT01NQU5EX0xJTkVfUlVOX1NDUklQVF9TSE9SVCA9ICJzIjsgLy8kTk9OLU5MUy0xJAorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBPUFRJT05fQ09NTUFORF9MSU5FX1JVTl9TQ1JJUFRfTE9ORyA9ICJzY3JpcHQiOyAvLyROT04tTkxTLTEkCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIE9QVElPTl9DT01NQU5EX0xJTkVfUlVOX1NDUklQVF9ERVNDUklQVElPTiA9IE9iamVjdHMucmVxdWlyZU5vbk51bGwoTWVzc2FnZXMuQ2xpUGFyc2VyX1J1blNjcmlwdERlc2NyaXB0aW9uKTsKKyAgICBwcml2YXRlIGZpbmFsIEFycmF5TGlzdDxDbGlPcHRpb24+IGZPcHRpb25zOworCisgICAgLyoqCisgICAgICogQ29uc3RydWN0b3IKKyAgICAgKi8KKyAgICBwdWJsaWMgU2NyaXB0Q2xpUGFyc2VyKCkgeworICAgICAgICBmT3B0aW9ucyA9IG5ldyBBcnJheUxpc3Q8PigpOworICAgICAgICBmT3B0aW9ucy5hZGQoQ2xpT3B0aW9uLmNyZWF0ZU9wdGlvbldpdGhBcmdzKE9QVElPTl9DT01NQU5EX0xJTkVfUlVOX1NDUklQVF9TSE9SVCwgT1BUSU9OX0NPTU1BTkRfTElORV9SVU5fU0NSSVBUX0xPTkcsIE9QVElPTl9DT01NQU5EX0xJTkVfUlVOX1NDUklQVF9ERVNDUklQVElPTiwgdHJ1ZSwgdHJ1ZSwgInNjcmlwdCIpKTsgLy8kTk9OLU5MUy0xJAorICAgIH0KKworICAgIEBPdmVycmlkZQorICAgIHB1YmxpYyBMaXN0PENsaU9wdGlvbj4gZ2V0Q21kTGluZU9wdGlvbnMoKSB7CisgICAgICAgIHJldHVybiBmT3B0aW9uczsKKyAgICB9CisKKyAgICBAT3ZlcnJpZGUKKyAgICBwdWJsaWMgQE5vbk51bGwgSVN0YXR1cyB3b3Jrc3BhY2VMb2FkaW5nKEBOb25OdWxsIENsaUNvbW1hbmRMaW5lIGNvbW1hbmRMaW5lLCBATm9uTnVsbCBJUHJvZ3Jlc3NNb25pdG9yIG1vbml0b3IpIHsKKyAgICAgICAgaWYgKGNvbW1hbmRMaW5lLmhhc09wdGlvbihPUFRJT05fQ09NTUFORF9MSU5FX1JVTl9TQ1JJUFRfU0hPUlQpKSB7CisgICAgICAgICAgICAvLyBUaGUgc2NyaXB0IG9wdGlvbiBzaG91bGQgYmUgaGFuZGxlZCBvbmNlIHRoZSB3b3Jrc3BhY2UgaXMgcmVhZHkKKyAgICAgICAgICAgIFN0cmluZ1tdIHNjcmlwdHMgPSBjb21tYW5kTGluZS5nZXRPcHRpb25WYWx1ZXMoT1BUSU9OX0NPTU1BTkRfTElORV9SVU5fU0NSSVBUX1NIT1JUKTsKKyAgICAgICAgICAgIGZvciAoU3RyaW5nIHNjcmlwdCA6IHNjcmlwdHMpIHsKKyAgICAgICAgICAgICAgICBPYmplY3Qgc2NyaXB0UmV0ID0gU2NyaXB0RXhlY3V0aW9uSGVscGVyLmV4ZWN1dGVTY3JpcHQoU3RyaW5nLnZhbHVlT2Yoc2NyaXB0KSk7CisgICAgICAgICAgICAgICAgaWYgKHNjcmlwdFJldCA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIFJldHVybiBhZnRlciBzY3JpcHQgZXhlY3V0aW9uIGZhaWx1cmUKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBTdGF0dXMoSVN0YXR1cy5FUlJPUiwgQWN0aXZhdG9yLlBMVUdJTl9JRCwgTWVzc2FnZXMuQ2xpUGFyc2VyX1NjcmlwdEV4ZWN1dGlvbkVycm9yKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIFN0YXR1cy5PS19TVEFUVVM7CisgICAgfQorCit9CmRpZmYgLS1naXQgYS9hbmFseXNlcy9vcmcuZWNsaXBzZS50cmFjZWNvbXBhc3MuaW5jdWJhdG9yLnNjcmlwdGluZy5jb3JlL3NyYy9vcmcvZWNsaXBzZS90cmFjZWNvbXBhc3MvaW5jdWJhdG9yL2ludGVybmFsL3NjcmlwdGluZy9jb3JlL2NsaS9tZXNzYWdlcy5wcm9wZXJ0aWVzIGIvYW5hbHlzZXMvb3JnLmVjbGlwc2UudHJhY2Vjb21wYXNzLmluY3ViYXRvci5zY3JpcHRpbmcuY29yZS9zcmMvb3JnL2VjbGlwc2UvdHJhY2Vjb21wYXNzL2luY3ViYXRvci9pbnRlcm5hbC9zY3JpcHRpbmcvY29yZS9jbGkvbWVzc2FnZXMucHJvcGVydGllcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40NmE3MTRlCi0tLSAvZGV2L251bGwKKysrIGIvYW5hbHlzZXMvb3JnLmVjbGlwc2UudHJhY2Vjb21wYXNzLmluY3ViYXRvci5zY3JpcHRpbmcuY29yZS9zcmMvb3JnL2VjbGlwc2UvdHJhY2Vjb21wYXNzL2luY3ViYXRvci9pbnRlcm5hbC9zY3JpcHRpbmcvY29yZS9jbGkvbWVzc2FnZXMucHJvcGVydGllcwpAQCAtMCwwICsxLDExIEBACisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisjIENvcHlyaWdodCAoYykgMjAxOSDJY29sZSBQb2x5dGVjaG5pcXVlIGRlIE1vbnRy6WFsCisjCisjIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKKyMgYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisjIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0CisjIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisKK0NsaVBhcnNlcl9SdW5TY3JpcHREZXNjcmlwdGlvbj1SdW4gYSBzY3JpcHQgb25jZSB0aGUgd29ya3NwYWNlIGlzIHJlYWR5CitDbGlQYXJzZXJfU2NyaXB0RXhlY3V0aW9uRXJyb3I9U2NyaXB0IGV4ZWN1dGlvbiBkaWQgbm90IGNvbXBsZXRlIHByb3Blcmx5CmRpZmYgLS1naXQgYS9hbmFseXNlcy9vcmcuZWNsaXBzZS50cmFjZWNvbXBhc3MuaW5jdWJhdG9yLnNjcmlwdGluZy5jb3JlL3NyYy9vcmcvZWNsaXBzZS90cmFjZWNvbXBhc3MvaW5jdWJhdG9yL2ludGVybmFsL3NjcmlwdGluZy9jb3JlL2NsaS9wYWNrYWdlLWluZm8uamF2YSBiL2FuYWx5c2VzL29yZy5lY2xpcHNlLnRyYWNlY29tcGFzcy5pbmN1YmF0b3Iuc2NyaXB0aW5nLmNvcmUvc3JjL29yZy9lY2xpcHNlL3RyYWNlY29tcGFzcy9pbmN1YmF0b3IvaW50ZXJuYWwvc2NyaXB0aW5nL2NvcmUvY2xpL3BhY2thZ2UtaW5mby5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJmMDZkMTkKLS0tIC9kZXYvbnVsbAorKysgYi9hbmFseXNlcy9vcmcuZWNsaXBzZS50cmFjZWNvbXBhc3MuaW5jdWJhdG9yLnNjcmlwdGluZy5jb3JlL3NyYy9vcmcvZWNsaXBzZS90cmFjZWNvbXBhc3MvaW5jdWJhdG9yL2ludGVybmFsL3NjcmlwdGluZy9jb3JlL2NsaS9wYWNrYWdlLWluZm8uamF2YQpAQCAtMCwwICsxLDExIEBACisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogQ29weXJpZ2h0IChjKSAyMDE5IMOJY29sZSBQb2x5dGVjaG5pcXVlIGRlIE1vbnRyw6lhbAorICoKKyAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMgYXJlCisgKiBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMCB3aGljaAorICogYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKKyAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworQG9yZy5lY2xpcHNlLmpkdC5hbm5vdGF0aW9uLk5vbk51bGxCeURlZmF1bHQKK3BhY2thZ2Ugb3JnLmVjbGlwc2UudHJhY2Vjb21wYXNzLmluY3ViYXRvci5pbnRlcm5hbC5zY3JpcHRpbmcuY29yZS5jbGk7CmRpZmYgLS1naXQgYS9hbmFseXNlcy9vcmcuZWNsaXBzZS50cmFjZWNvbXBhc3MuaW5jdWJhdG9yLnNjcmlwdGluZy51aS9NRVRBLUlORi9NQU5JRkVTVC5NRiBiL2FuYWx5c2VzL29yZy5lY2xpcHNlLnRyYWNlY29tcGFzcy5pbmN1YmF0b3Iuc2NyaXB0aW5nLnVpL01FVEEtSU5GL01BTklGRVNULk1GCmluZGV4IGQ4YWE2NzcuLmJhMjhhNjggMTAwNjQ0Ci0tLSBhL2FuYWx5c2VzL29yZy5lY2xpcHNlLnRyYWNlY29tcGFzcy5pbmN1YmF0b3Iuc2NyaXB0aW5nLnVpL01FVEEtSU5GL01BTklGRVNULk1GCisrKyBiL2FuYWx5c2VzL29yZy5lY2xpcHNlLnRyYWNlY29tcGFzcy5pbmN1YmF0b3Iuc2NyaXB0aW5nLnVpL01FVEEtSU5GL01BTklGRVNULk1GCkBAIC0yMiw3ICsyMiw4IEBACiAgb3JnLmVjbGlwc2UuZGVidWcudWksCiAgb3JnLmVjbGlwc2UudWkudmlld3MsCiAgb3JnLmVjbGlwc2UuZWFzZS51aSwKLSBvcmcuZWNsaXBzZS5jb3JlLmV4cHJlc3Npb25zCisgb3JnLmVjbGlwc2UuY29yZS5leHByZXNzaW9ucywKKyBvcmcuZWNsaXBzZS50cmFjZWNvbXBhc3MucmNwLnVpO3Jlc29sdXRpb246PW9wdGlvbmFsCiBFeHBvcnQtUGFja2FnZTogb3JnLmVjbGlwc2UudHJhY2Vjb21wYXNzLmluY3ViYXRvci5pbnRlcm5hbC5zY3JpcHRpbmcudWk7eC1mcmllbmRzOj0ib3JnLmVjbGlwc2UudHJhY2Vjb21wYXNzLmluY3ViYXRvci5zY3JpcHRpbmcudWkudGVzdHMiLAogIG9yZy5lY2xpcHNlLnRyYWNlY29tcGFzcy5pbmN1YmF0b3IuaW50ZXJuYWwuc2NyaXB0aW5nLnVpLnByb2plY3QuaGFuZGxlcnM7eC1pbnRlcm5hbDo9dHJ1ZSwKICBvcmcuZWNsaXBzZS50cmFjZWNvbXBhc3MuaW5jdWJhdG9yLmludGVybmFsLnNjcmlwdGluZy51aS52aWV3cy50aW1lZ3JhcGg7eC1pbnRlcm5hbDo9dHJ1ZSwKZGlmZiAtLWdpdCBhL3JjcC9vcmcuZWNsaXBzZS50cmFjZWNvbXBhc3MuaW5jdWJhdG9yLnJjcC5wcm9kdWN0L2xlZ2FjeS90cmFjaW5nLmluY3ViYXRvci5wcm9kdWN0IGIvcmNwL29yZy5lY2xpcHNlLnRyYWNlY29tcGFzcy5pbmN1YmF0b3IucmNwLnByb2R1Y3QvbGVnYWN5L3RyYWNpbmcuaW5jdWJhdG9yLnByb2R1Y3QKaW5kZXggYTNmYmE0YS4uZDMzYTk5MCAxMDA2NDQKLS0tIGEvcmNwL29yZy5lY2xpcHNlLnRyYWNlY29tcGFzcy5pbmN1YmF0b3IucmNwLnByb2R1Y3QvbGVnYWN5L3RyYWNpbmcuaW5jdWJhdG9yLnByb2R1Y3QKKysrIGIvcmNwL29yZy5lY2xpcHNlLnRyYWNlY29tcGFzcy5pbmN1YmF0b3IucmNwLnByb2R1Y3QvbGVnYWN5L3RyYWNpbmcuaW5jdWJhdG9yLnByb2R1Y3QKQEAgLTEsMTYgKzEsMTYgQEAKIDw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+CiA8P3BkZSB2ZXJzaW9uPSIzLjUiPz4KIAotPHByb2R1Y3QgbmFtZT0iVHJhY2UgQ29tcGFzcyAoSW5jdWJhdG9yKSIgdWlkPSJvcmcuZWNsaXBzZS50cmFjZWNvbXBhc3MuaW5jdWJhdG9yLnJjcCIgaWQ9Im9yZy5lY2xpcHNlLnRyYWNlY29tcGFzcy5yY3AuYnJhbmRpbmcucHJvZHVjdCIgYXBwbGljYXRpb249Im9yZy5lY2xpcHNlLnRyYWNlY29tcGFzcy5yY3AudWkuYXBwbGljYXRpb24iIHZlcnNpb249IjAuMC4xLnF1YWxpZmllciIgdXNlRmVhdHVyZXM9InRydWUiIGluY2x1ZGVMYXVuY2hlcnM9InRydWUiPgorPHByb2R1Y3QgbmFtZT0iVHJhY2UgQ29tcGFzcyAoSW5jdWJhdG9yKSIgdWlkPSJvcmcuZWNsaXBzZS50cmFjZWNvbXBhc3MuaW5jdWJhdG9yLnJjcCIgaWQ9Im9yZy5lY2xpcHNlLnRyYWNlY29tcGFzcy5pbmN1YmF0b3IucmNwLmJyYW5kaW5nLnByb2R1Y3QiIGFwcGxpY2F0aW9uPSJvcmcuZWNsaXBzZS50cmFjZWNvbXBhc3MucmNwLnVpLmFwcGxpY2F0aW9uIiB2ZXJzaW9uPSIwLjAuMS5xdWFsaWZpZXIiIHVzZUZlYXR1cmVzPSJ0cnVlIiBpbmNsdWRlTGF1bmNoZXJzPSJ0cnVlIj4KIAogICAgPGFib3V0SW5mbz4KICAgICAgIDxpbWFnZSBwYXRoPSIvb3JnLmVjbGlwc2UudHJhY2Vjb21wYXNzLmluY3ViYXRvci5yY3AuYnJhbmRpbmcvaWNvbnMvdGNfYWJvdXQucG5nIi8+CiAgICAgICA8dGV4dD4KLSAgICAgICAgIFRyYWNlIENvbXBhc3MgSW5jdWJhdG9yCisgICAgICAgICBUcmFjZSBDb21wYXNzIChJbmN1YmF0b3IpCiAKIFZlcnNpb246IDAuMC4xCiAKLUNvcHlyaWdodCAoYykgMjAxOSDDiWNvbGUgUG9seXRlY2huaXF1ZSBkZSBNb250csOpYWwKK0NvcHlyaWdodCAoYykgMjAxOSDDiWNvbGUgUG9seXRlY2huaXF1ZSBkZSBNb250csOpYWwgYW5kIG90aGVycwogCiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzIGFyZQogbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAgd2hpY2gK