PEhUTUw+CjxIRUFEPgo8dGl0bGU+bmV0YmVhbnMub3JnOiBOZXRCZWFucyBXZWVrbHkgTmV3cyBJc3N1ZSAjMjI4IC0gRmViIDE0LCAyMDA2PC90aXRsZT4KPE1FVEEgTkFNRT0iZGVzY3JpcHRpb24iIENPTlRFTlQ9Ik5ld3NsZXR0ZXIgMjAwNi0wMi0xNCI+Cgo8bGluayByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBocmVmPSIvbmV0YmVhbnMuY3NzIj4KPE1FVEEgSFRUUC1FUVVJVj0iQ29udGVudC1UeXBlIiBDT05URU5UPSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9aXNvLTg4NTktMiI+Cgo8IS0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAtLT4KPCEtLSBQbGVhc2UgZG8gbm90IGVkaXQgdGhpcyBmaWxlIGJ5IGhhbmQsIGl0IGlzIHJlYnVpbHQgICAgLS0+CjwhLS0gYXV0b21hdGljYWxseSBhbmQgeW91ciBjaGFuZ2VzIHdpbGwgYmUgbG9zdC4gIENvbnRhY3QgIC0tPgo8IS0tIHdlYm1hc3RlciBmb3IgZGV0YWlscy4gIFJlYnVpbHQgYXQgICAgICAgICAgICAgICAgICAgICAtLT4KPCEtLSAjVElNRVNUQU1QIyAxNC1GZWIgMTg6MTUgQ0VUICAgICAgICAgICAgICAgICAgICAgICAgICAtLT4KPCEtLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gLS0+CjwvSEVBRD4KPEJPRFk+Cgo8aDE+TmV0QmVhbnMgV2Vla2x5IE5ld3M8YnI+SXNzdWUgIzIyOCAtIEZlYiAxNCwgMjAwNjwvaDE+PGhyPgpOZXRCZWFucyBXZWVrbHkgTmV3cywgYSBuZXdzbGV0dGVyIGZvciB0aGUgTmV0QmVhbnMgY29tbXVuaXR5PGJyPgpJc3N1ZSAjMjI4IC0gRmViIDE0LCAyMDA2PGJyPgpVUkw6ICZsdDs8YSBocmVmPSdodHRwczovL25ldGJlYW5zLm9yZy9jb21tdW5pdHkvbmV3cy9uZXdzbGV0dGVyLzIwMDYtMDItMTQuaHRtbCc+aHR0cHM6Ly9uZXRiZWFucy5vcmcvY29tbXVuaXR5L25ld3MvbmV3c2xldHRlci8yMDA2LTAyLTE0Lmh0bWw8L2E+Jmd0Ozxicj4KSW50ZXJlc3RlZCBpbiBiZWNvbWluZyBhIG5ld3NsZXR0ZXIgZWRpdG9yPyAgV2UncmUgYWx3YXlzIGxvb2tpbmc8YnI+CmZvciBlZGl0b3JzIHRvIGhlbHAgb3V0LiBDb250YWN0IDxhIGhyZWY9J21haWx0bzpuYm5ld3NfY29udHJpYkBuZXRiZWFucy5vcmcnPm5ibmV3c19jb250cmliQG5ldGJlYW5zLm9yZzwvYT48YnI+ClBsZWFzZSBzZW5kIG5ld3MgY29udHJpYnV0aW9ucyB0byA8YSBocmVmPSdtYWlsdG86bmJuZXdzX2NvbnRyaWJAbmV0YmVhbnMub3JnJz5uYm5ld3NfY29udHJpYkBuZXRiZWFucy5vcmc8L2E+PGJyPgo8aHI+PHByZT5bQU5OT1VOQ0VdIE5ldEJlYW5zIDUuNSBXaWxsIEJlIHRoZSBOZXh0IFJlbGVhc2UNClN0YXkgdHVuZWQgdG8gTmV0QmVhbnMub3JnIGZvciBtb3JlIGRldGFpbHMgb24gdGhpcyBkZXZlbG9waW5nIHN0b3J5Li4uDQoNCkdvdmVybmFuY2UgQm9hcmQgRWxlY3Rpb25zIC0gTm9taW5hdGlvbnMgT3Blbg0KSXQncyB0aW1lIGFnYWluIHRvIGVsZWN0IGEgbmV3IE5ldEJlYW5zIEdvdmVybmFuY2UgQm9hcmQhIEFsbCB0aGUNCmluZm9ybWF0aW9uIHRoYXQgeW91IG5lZWQgdG8gdGFrZSBwYXJ0IGluIHRoZSBlbGVjdGlvbnMgY2FuIGJlIGZvdW5kIGhlcmU6DQombHQ7PGEgaHJlZj0iaHR0cDovL3NlcnZpY2VzLm5ldGJlYW5zLm9yZy9uZXdzbGV0dGVyL3N0b3J5LnBocD9pZD0yODEiPmh0dHA6Ly9zZXJ2aWNlcy5uZXRiZWFucy5vcmcvbmV3c2xldHRlci9zdG9yeS5waHA/aWQ9MjgxPC9hPiZndDsNCg0KTmV0QmVhbnMgNS4wIE1ha2VzICdGcmVlJyBMb29rIEdvb2QNClBldGVyIENvZmZlZSBmcm9tIGVXZWVrIGhhcyByZXZpZXdlZCB0aGUgbGF0ZXN0IDUuMCByZWxlYXNlLiBUYWtlIGEgbG9vay4NCiZsdDs8YSBocmVmPSJodHRwOi8vc2VydmljZXMubmV0YmVhbnMub3JnL25ld3NsZXR0ZXIvc3RvcnkucGhwP2lkPTI4MiI+aHR0cDovL3NlcnZpY2VzLm5ldGJlYW5zLm9yZy9uZXdzbGV0dGVyL3N0b3J5LnBocD9pZD0yODI8L2E+Jmd0Ow0KDQpTdW4ncyBEZXZlbG9wZXIgVG9vbHMgU3RyYXRlZ3kgRkFRDQpXYW50IHRvIGtub3cgbW9yZSBhYm91dCBhbGwgdGhlIGRpZmZlcmVudCB0b29scyB0aGF0IGFyZSBidWlsdCBvbiB0b3Agb2YNCnRoZSBOZXRCZWFucyBJREU/IENoZWNrIG91dCB0aGlzIGludGVydmlldyB0aGF0IEdyZWdnIFNwb3JhciBkaWQgd2l0aCBCb2INCkJyZXdpbiwgU3VuJ3MgQ2hpZWYgQXJjaGl0ZWN0IGZvciBkZXZlbG9wZXIgdG9vbHMuIEJvYiB0YWxrcyBhYm91dCB0aGUNCmRpZmZlcmVudCBJREVzIGFuZCB0aGUgcm9hZG1hcCBmb3IgdGhlIGZ1dHVyZS4NCiZsdDs8YSBocmVmPSJodHRwOi8vc2VydmljZXMubmV0YmVhbnMub3JnL25ld3NsZXR0ZXIvc3RvcnkucGhwP2lkPTI4MyI+aHR0cDovL3NlcnZpY2VzLm5ldGJlYW5zLm9yZy9uZXdzbGV0dGVyL3N0b3J5LnBocD9pZD0yODM8L2E+Jmd0Ow0KDQpOZXRCZWFucyBJREUgNS4wIEhUTUwgRWRpdG9yIFR1dG9yaWFsDQpNYXliZSB5b3UncmUgd29uZGVyaW5nIHdoYXQgdGhlIE5ldEJlYW5zIFBsYXRmb3JtIGlzIGFuZCBob3cgeW91IGNhbiB1c2UNCml0LiBJZiBzbywgbGV0IEphcm9zbGF2IFR1bGFjaCwgb25lIG9mIHRoZSBmb3VuZGluZyBtZW1iZXJzIG9mIHRoZQ0KTmV0QmVhbnMgdGVhbSwgc2hvd3MgeW91IGhvdyBlYXN5IGl0IGlzIHRvIGJ1aWxkIHlvdXIgdmVyeSBvd24gSFRNTCBlZGl0b3INCm9uIHRvcCBvZiB0aGUgTmV0QmVhbnMgUGxhdGZvcm0uDQombHQ7PGEgaHJlZj0iaHR0cDovL3NlcnZpY2VzLm5ldGJlYW5zLm9yZy9uZXdzbGV0dGVyL3N0b3J5LnBocD9pZD0yODQiPmh0dHA6Ly9zZXJ2aWNlcy5uZXRiZWFucy5vcmcvbmV3c2xldHRlci9zdG9yeS5waHA/aWQ9Mjg0PC9hPiZndDsNCg0KRmVhdHVyZWQgUGFydG5lcjogRW1iYXJjYWRlcm8gVGVjaG5vbG9naWVzLCBJbmMuDQpFbWJhcmNhZGVybyBUZWNobm9sb2dpZXMsIEluYy4gaXMgYSBsZWFkaW5nIHByb3ZpZGVyIG9mIHN0cmF0ZWdpYyBkYXRhDQptYW5hZ2VtZW50IHNvbHV0aW9ucyB0aGF0IGhlbHAgY29tcGFuaWVzIHRvIGltcHJvdmUgdGhlIGF2YWlsYWJpbGl0eSwNCmludGVncml0eSwgYWNjZXNzaWJpbGl0eSwgYW5kIHNlY3VyaXR5IG9mIGNvcnBvcmF0ZSBkYXRhLg0KJmx0OzxhIGhyZWY9Imh0dHA6Ly9zZXJ2aWNlcy5uZXRiZWFucy5vcmcvbmV3c2xldHRlci9zdG9yeS5waHA/aWQ9MjkxIj5odHRwOi8vc2VydmljZXMubmV0YmVhbnMub3JnL25ld3NsZXR0ZXIvc3RvcnkucGhwP2lkPTI5MTwvYT4mZ3Q7DQoNCkdsYXNzRmlzaDogTWFuYWdpbmcgSkFYLVdTIDIuMCBTZXJ2aWNlcyB3aXRoIEpNWA0KSW4gYSBmb2xsb3cgdXAgZW50cnkgdG8gaGlzIHByZXZpb3VzIGJsb2cNCiZsdDs8YSBocmVmPSJodHRwOi8vc2VydmljZXMubmV0YmVhbnMub3JnL25ld3NsZXR0ZXIvc3RvcnkucGhwP2lkPTI4NSI+aHR0cDovL3NlcnZpY2VzLm5ldGJlYW5zLm9yZy9uZXdzbGV0dGVyL3N0b3J5LnBocD9pZD0yODU8L2E+Jmd0Ow0KSmVhbi1GcmFuY29pYyBEZW5pc2UgcmVzcG9uZHMgdG8gdGhlIGludGVyZXN0IGZyb20gdGhlIGFxdWFyaXVtIGNvbW11bml0eS4NClRha2UgYSBmZXcgbWludXRlcyB0byByZWFkIHRoZXNlIGdyZWF0IGVudHJpZXMuDQombHQ7PGEgaHJlZj0iaHR0cDovL3NlcnZpY2VzLm5ldGJlYW5zLm9yZy9uZXdzbGV0dGVyL3N0b3J5LnBocD9pZD0yODYiPmh0dHA6Ly9zZXJ2aWNlcy5uZXRiZWFucy5vcmcvbmV3c2xldHRlci9zdG9yeS5waHA/aWQ9Mjg2PC9hPiZndDsNCg0KTG9vayBhbmQgRmVlbCBDb21wZXRpdGlvbiBXaW5uZXJzDQpUaGFuayB5b3UgZm9yIHNlbmRpbmcgaW4gYWxsIHRob3NlIGNvb2wgc2NyZWVuc2hvdHMglyBsb3RzIG9mIE5ldEJlYW5zDQp1c2VycyBoYXZlIGN1c3RvbWl6ZWQgdGhlaXIgSURFJ3MgTG9vayAmIEZlZWwuIENoZWNrIG91dCB0aGUgMzMgYmVzdCBTd2luZw0KbG9va3MgYW5kIHNlZSB3aG8gd29uIG9uZSBvZiB0aHJlZSBpUG9kIE5hbm9zLCAxMCBVU0IgZmxhc2ggbWVtb3J5IHN0aWNrcw0Kb3IgMzAgTmV0QmVhbnMgVC1TaGlydHMhDQombHQ7PGEgaHJlZj0iaHR0cDovL3NlcnZpY2VzLm5ldGJlYW5zLm9yZy9uZXdzbGV0dGVyL3N0b3J5LnBocD9pZD0yODciPmh0dHA6Ly9zZXJ2aWNlcy5uZXRiZWFucy5vcmcvbmV3c2xldHRlci9zdG9yeS5waHA/aWQ9Mjg3PC9hPiZndDsNCg0KTmV0QmVhbnMgNS4wIE11bHRpLUxpbmd1YWwgUHJldmlldyBCdWlsZHMgTm93IEF2YWlsYWJsZQ0KTmV0QmVhbnMgVHJhbnNsYXRlZCBmaWxlcyBwcm9qZWN0ICh0cmFuc2xhdGVkZmlsZXMubmV0YmVhbnMub3JnKSBoYXMNCnB1Ymxpc2hlZCB0aGUgZmlyc3QgZGV2ZWxvcG1lbnQgc25hcHNob3Qgb2YgTmV0QmVhbnMgNS4wIG11bHRpLWxhbmd1YWdlDQpidWlsZHMgaW50byBOZXRCZWFucy5vcmcgZG93bmxvYWQgYXJlYS4gTW9yZSBpbmZvcm1hdGlvbjoNCiZsdDs8YSBocmVmPSJodHRwOi8vc2VydmljZXMubmV0YmVhbnMub3JnL25ld3NsZXR0ZXIvc3RvcnkucGhwP2lkPTI5MiI+aHR0cDovL3NlcnZpY2VzLm5ldGJlYW5zLm9yZy9uZXdzbGV0dGVyL3N0b3J5LnBocD9pZD0yOTI8L2E+Jmd0Ow0KDQpOZXRCZWFucyBXb3JsZFRvdXIgaW4gSW5kaWENCkFib3V0IDk1MCB2aXNpdG9ycyBqb2luZWQgVGltIGFuZCBTcmlkYXIgaW4gSW5kaWEgZm9yIGEgbGl2ZSBkZW1vbnN0cmF0aW9uDQpvZiBOZXRCZWFucyA1LjAsIHRoZSBOZXRCZWFucyBQbGF0Zm9ybSwgYW5kIHRoZSBOZXRCZWFucyBNb2JpbGl0eSBQYWNrLg0KVGhhbmsgeW91IHRvIGFsbCBmZWxsb3cgTmV0QmVhbnMgY29tbXVuaXR5IG1lbWJlcnMgZm9yIGNvbWluZyB0byBDaGVubmFpIJcNCmNoZWNrIG91dCB0aGlzIHBob3RvIHJlcG9ydCENCiZsdDs8YSBocmVmPSJodHRwOi8vc2VydmljZXMubmV0YmVhbnMub3JnL25ld3NsZXR0ZXIvc3RvcnkucGhwP2lkPTI4OCI+aHR0cDovL3NlcnZpY2VzLm5ldGJlYW5zLm9yZy9uZXdzbGV0dGVyL3N0b3J5LnBocD9pZD0yODg8L2E+Jmd0Ow0KDQpWaXN1YWwgU3R1ZGlvIFVzZXIgVHJpZXMgTWF0aXNzZQ0KQSBza2VwdGljYWwgVmlzdWFsIFN0dWRpbyB1c2VyIHRyaWVzIG91dCBHVUkgYnVpbGRpbmcgd2l0aCBNYXRpc3NlOiBBdmlhZA0KQmVuIERvdiBpcyBhIHNvZnR3YXJlIGRlc2lnbmVyIGFuZCBkZXZlbG9wZXIsIHdvcmtpbmcgb24gZW50ZXJwcmlzZQ0KYXBwbGljYXRpb25zIGluIGJvdGggLk5FVCBhbmQgSmF2YS4gSGUgaXMgYSBsb25nIHRpbWUgdXNlciBvZiBib3RoIFZpc3VhbA0KU3R1ZGlvIGFuZCBJbnRlbGxpSiBJREVBLg0KJmx0OzxhIGhyZWY9Imh0dHA6Ly9zZXJ2aWNlcy5uZXRiZWFucy5vcmcvbmV3c2xldHRlci9zdG9yeS5waHA/aWQ9Mjg5Ij5odHRwOi8vc2VydmljZXMubmV0YmVhbnMub3JnL25ld3NsZXR0ZXIvc3RvcnkucGhwP2lkPTI4OTwvYT4mZ3Q7DQoNCltUSVBdIFN3aXRjaCBmcm9tIE1vYmlsaXR5IFBhY2sgNC4xIHRvIDUuMA0KSW4gYSBibG9nIGVudHJ5IGJ5IEx1a2FzIEhhc2lrIGhlIGRldGFpbHMgd2hhdCB0byBleHBlY3Qgd2hlbiBtb3ZpbmcgZnJvbQ0KTmV0QmVhbnMgTW9iaWxpdHkgUGFjayA0LjEgdG8gdGhlIG5ldyBOZXRCZWFucyA1LjAgcmVsZWFzZS4NCiZsdDs8YSBocmVmPSJodHRwOi8vc2VydmljZXMubmV0YmVhbnMub3JnL25ld3NsZXR0ZXIvc3RvcnkucGhwP2lkPTI5MCI+aHR0cDovL3NlcnZpY2VzLm5ldGJlYW5zLm9yZy9uZXdzbGV0dGVyL3N0b3J5LnBocD9pZD0yOTA8L2E+Jmd0Ow0KPC9wcmU+PGhyPlRoaXMgaXNzdWUgb2YgTmV0QmVhbnMgV2Vla2x5IE5ld3Mgd2FzIGJyb3VnaHQgdG8geW91IGJ5IFJvYmVydCBEZW1tZXIuPGJyPgpUaGUgbmV4dCBlZGl0b3Igd2lsbCBiZSBSb2JlcnQgRGVtbWVyLiAoTmV3IHZvbHVudGVlcnMgYXJlIHdlbGNvbWUhKTxicj4KUGxlYXNlIHNlbmQgbmV3cyBjb250cmlidXRpb25zIHRvIDxhIGhyZWY9J21haWx0bzpuYm5ld3NfY29udHJpYkBuZXRiZWFucy5vcmcnPm5ibmV3c19jb250cmliQG5ldGJlYW5zLm9yZzwvYT48L0JPRFk+CjwvSFRNTD4=