LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICogQ29weXJpZ2h0IChjKSAyMDAzLCAyMDA0IElCTSBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLgogKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCiAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIENvbW1vbiBQdWJsaWMgTGljZW5zZSB2MS4wCiAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0CiAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvY3BsLXYxMC5odG1sCqAqCiAqIENvbnRyaWJ1dG9yczoKICogICAgSUJNIC0gSW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwpwYWNrYWdlIG9yZy5lY2xpcHNlLmpzdC5zZXJ2ZXIudG9tY2F0LnVpLmludGVybmFsLmVkaXRvcjsKCmltcG9ydCBvcmcuZWNsaXBzZS5qc3Quc2VydmVyLnRvbWNhdC5jb3JlLklUb21jYXRTZXJ2ZXI7CmltcG9ydCBvcmcuZWNsaXBzZS51aS5JRWRpdG9yUGFydDsKCmltcG9ydCBvcmcuZWNsaXBzZS53c3Quc2VydmVyLmNvcmUuSVNlcnZlcldvcmtpbmdDb3B5OwppbXBvcnQgb3JnLmVjbGlwc2Uud3N0LnNlcnZlci51aS5lZGl0b3IuU2VydmVyRWRpdG9yUGFydEZhY3RvcnlEZWxlZ2F0ZTsKLyoqCiAqCiAqLwpwdWJsaWMgY2xhc3MgQ29uZmlndXJhdGlvbldlYk1vZHVsZUVkaXRvckZhY3RvcnkgZXh0ZW5kcyBTZXJ2ZXJFZGl0b3JQYXJ0RmFjdG9yeURlbGVnYXRlIHsKCS8qCgkgKiBAc2VlIFNlcnZlckVkaXRvclBhcnRGYWN0b3J5RGVsZWdhdGUjc2hvdWxkRGlzcGxheShJU2VydmVyKQoJICovCglwdWJsaWMgYm9vbGVhbiBzaG91bGRDcmVhdGVQYWdlKElTZXJ2ZXJXb3JraW5nQ29weSBzZXJ2ZXIpIHsKCQlJVG9tY2F0U2VydmVyIHRvbWNhdFNlcnZlciA9IChJVG9tY2F0U2VydmVyKSBzZXJ2ZXIuZ2V0QWRhcHRlcihJVG9tY2F0U2VydmVyLmNsYXNzKTsKCQlyZXR1cm4gdG9tY2F0U2VydmVyLmdldFNlcnZlckNvbmZpZ3VyYXRpb24oKSAhPSBudWxsOwoJfQoKCS8qCgkgKiBAc2VlIFNlcnZlckVkaXRvclBhcnRGYWN0b3J5RGVsZWdhdGUjY3JlYXRlUGFnZSgpCgkgKi8KCXB1YmxpYyBJRWRpdG9yUGFydCBjcmVhdGVQYWdlKCkgewoJCXJldHVybiBuZXcgQ29uZmlndXJhdGlvbldlYk1vZHVsZUVkaXRvclBhcnQoKTsKCX0KfQ==