LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KICogQGZpbGUgICAgIHN5c3RlbV9YTUMxMzAwLmgNCiAqIEBicmllZiAgICBEZXZpY2Ugc3BlY2lmaWMgaW5pdGlhbGl6YXRpb24gZm9yIHRoZSBYTUMxMzAwLVNlcmllcyBhY2NvcmRpbmcgDQogKiB0byBDTVNJUw0KICogQHZlcnNpb24gIFYxLjENCiAqIEBkYXRlICAgICAxMyBEZWMgMjAxMg0KICoNCiAqIEBub3RlDQogKiBDb3B5cmlnaHQgKEMpIDIwMTItMjAxMyBJbmZpbmVvbiBUZWNobm9sb2dpZXMgQUcuIEFsbCByaWdodHMgcmVzZXJ2ZWQuDQoNCiAqDQogKiBAcGFyDQogKiBJbmZpbmVvbiBUZWNobm9sb2dpZXMgQUcgKEluZmluZW9uKSBpcyBzdXBwbHlpbmcgdGhpcyBzb2Z0d2FyZSBmb3IgdXNlIHdpdGggDQogKiBJbmZpbmVvbpJzIG1pY3JvY29udHJvbGxlcnMuDQogKiAgIA0KICogVGhpcyBmaWxlIGNhbiBiZSBmcmVlbHkgZGlzdHJpYnV0ZWQgd2l0aGluIGRldmVsb3BtZW50IHRvb2xzIHRoYXQgYXJlIA0KICogc3VwcG9ydGluZyBzdWNoIG1pY3JvY29udHJvbGxlcnMuDQogKiAgDQogKg0KICogQHBhcg0KICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLiAgTk8gV0FSUkFOVElFUywgV0hFVEhFUiBFWFBSRVNTLCBJTVBMSUVEDQogKiBPUiBTVEFUVVRPUlksIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBJTVBMSUVEIFdBUlJBTlRJRVMgT0YNCiAqIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVBQTFkgVE8gVEhJUyBTT0ZUV0FSRS4NCiAqIElORklORU9OIFNIQUxMIE5PVCwgSU4gQU5ZIENJUkNVTVNUQU5DRVMsIEJFIExJQUJMRSBGT1IgU1BFQ0lBTCwgSU5DSURFTlRBTCwNCiAqIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUywgRk9SIEFOWSBSRUFTT04gV0hBVFNPRVZFUi4NCiAqDQogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLw0KLyoNCiAqICoqKioqKioqKioqKioqKioqKioqKioqKioqKiBDaGFuZ2UgaGlzdG9yeSAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioNCiAqIFYxLjEsIDEzIERlYyAyMDEyLCBQS0IsIENyZWF0ZWQgdGhpcyB0YWJsZSwgYWRkZWQgZXh0ZXJuIGFuZCBzdGRpbnQNCiAqLw0KI2luY2x1ZGUgPHN0ZGludC5oPg0KDQovKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiAgQ2xvY2sgVmFyaWFibGUgZGVmaW5pdGlvbnMNCiAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovDQpleHRlcm4gdWludDMyX3QgU3lzdGVtQ29yZUNsb2NrOw0KLyoqDQogICogQGJyaWVmICBTZXR1cCB0aGUgbWljcm9jb250cm9sbGVyIHN5c3RlbS4NCiAgKiAgICAgICAgIEluaXRpYWxpemUgdGhlIFBMTCBhbmQgdXBkYXRlIHRoZSANCiAgKiAgICAgICAgIFN5c3RlbUNvcmVDbG9jayB2YXJpYWJsZS4NCiAgKiBAcGFyYW0gIE5vbmUNCiAgKiBAcmV0dmFsIE5vbmUNCiAgKi8NCnZvaWQgU3lzdGVtSW5pdCh2b2lkKTsNCg0KLyoqDQogICogQGJyaWVmICBVcGRhdGUgU3lzdGVtQ29yZUNsb2NrIGFjY29yZGluZyB0byBDbG9jayBSZWdpc3RlciBWYWx1ZXMNCiAgKiBAbm90ZSAgIC0gIA0KICAqIEBwYXJhbSAgTm9uZQ0KICAqIEByZXR2YWwgTm9uZQ0KICAqLw0Kdm9pZCBTeXN0ZW1Db3JlQ2xvY2tVcGRhdGUodm9pZCk7DQoNCg==