cGFja2FnZSBvcmcuZWNsaXBzZS5qc3Quc2VydmVyLnVpOwovKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogKiBDb3B5cmlnaHQgKGMpIDIwMDMgSUJNIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuCiAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIKAgVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwogKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBDb21tb24gUHVibGljIExpY2Vuc2UgdjEuMAogKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAogKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2NwbC12MTAuaHRtbAqgKgogKiBDb250cmlidXRvcnM6CiAqICAgIElCTSAtIEluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLyoqCiAqIEFuIGdlbmVyaWMgaW50ZXJmYWNlIGZvciBtb2RpZnlpbmcgdGhlIHBhdGggb2YgYSBKYXZhIHNlcnZlci4gQ2FuIGJlIHVzZWQKICogdG8gaW1wbGVtZW50IHRoZSBjb21tYW5kIHBhdHRlcm4gYmV0d2VlbiB0aGUgZWRpdG9yIGFuZCB0aGUgc2VydmVyLgogKi8KcHVibGljIGludGVyZmFjZSBJUGF0aEVkaXRvciB7CgkvKioKCSAqIFNldCB0aGUgc3lzdGVtIHBhdGggZm9yIHRoaXMgc2VydmVyLgoJICoKCSAqIEBwYXJhbSBzIGphdmEubGFuZy5TdHJpbmcKCSAqLwoJcHVibGljIHZvaWQgc2V0UGF0aChTdHJpbmcgcyk7CgoJLyoqCgkgKiBTZXQgdGhlIHN5c3RlbSBwYXRoIHR5cGUgZm9yIHRoaXMgc2VydmVyLgoJICoKCSAqIEBwYXJhbSB0IGludAoJICovCglwdWJsaWMgdm9pZCBzZXRQYXRoVHlwZShpbnQgdCk7Cn0=