LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICogQ29weXJpZ2h0IChjKSAyMDAzLCAyMDA0IElCTSBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLgogKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCiAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIENvbW1vbiBQdWJsaWMgTGljZW5zZSB2MS4wCiAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0CiAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvY3BsLXYxMC5odG1sCqAqCiAqIENvbnRyaWJ1dG9yczoKICogICAgSUJNIC0gSW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwpwYWNrYWdlIG9yZy5lY2xpcHNlLmpzdC5zZXJ2ZXIudWk7CgppbXBvcnQgb3JnLmVjbGlwc2UuanN0LnNlcnZlci5jb3JlLmludGVybmFsLlN5c3RlbVByb3BlcnR5OwovKioKICogQW4gZ2VuZXJpYyBpbnRlcmZhY2UgZm9yIG1vZGlmeWluZyB0aGUgc3lzdGVtIHByb3BlcnRpZXMgb2YKICogYSBKYXZhIHNlcnZlci4gQ2FuIGJlIHVzZWQgdG8gaW1wbGVtZW50IHRoZSBjb21tYW5kCiAqIHBhdHRlcm4gYmV0d2VlbiB0aGUgZWRpdG9yIGFuZCB0aGUgc2VydmVyLgogKi8KcHVibGljIGludGVyZmFjZSBJU3lzdGVtUHJvcGVydHlFZGl0b3IgewoJLyoqCgkgKiBBZGQgYSBzeXN0ZW0gcHJvcGVydHkgdG8gdGhlIHNlcnZlci4KCSAqCgkgKiBAcGFyYW0gcHJvcGVydHkgb3JnLmVjbGlwc2UuanN0LnNlcnZlci51aS5TeXN0ZW1Qcm9wZXJ0eQoJICovCglwdWJsaWMgdm9pZCBhZGRTeXN0ZW1Qcm9wZXJ0eShTeXN0ZW1Qcm9wZXJ0eSBwcm9wZXJ0eSk7CgoJLyoqCgkgKiBFZGl0IGEgc3lzdGVtIHByb3BlcnR5IG9uIHRoZSBzZXJ2ZXIuCgkgKgoJICogQHBhcmFtIG9sZFByb3BlcnR5IG9yZy5lY2xpcHNlLmpzdC5zZXJ2ZXIudWkuU3lzdGVtUHJvcGVydHkKCSAqIEBwYXJhbSBuZXdQcm9wZXJ0eSBvcmcuZWNsaXBzZS5qc3Quc2VydmVyLnVpLlN5c3RlbVByb3BlcnR5CgkgKi8KCXB1YmxpYyB2b2lkIG1vZGlmeVN5c3RlbVByb3BlcnR5KFN5c3RlbVByb3BlcnR5IG9sZFByb3BlcnR5LCBTeXN0ZW1Qcm9wZXJ0eSBuZXdQcm9wZXJ0eSk7CgoJLyoqCgkgKiBSZW1vdmUgYSBzeXN0ZW0gcHJvcGVydHkgZnJvbSB0aGUgc2VydmVyLgoJICoKCSAqIEBwYXJhbSBwcm9wZXJ0eSBvcmcuZWNsaXBzZS5qc3Quc2VydmVyLnVpLlN5c3RlbVByb3BlcnR5CgkgKi8KCXB1YmxpYyB2b2lkIHJlbW92ZVN5c3RlbVByb3BlcnR5KFN5c3RlbVByb3BlcnR5IHByb3BlcnR5KTsKfQ==