|
From: Mason, R. <ros...@vi...> - 2004-07-14 00:02:59
|
VGhhbmtzIERtaXRyaXkgOikNCiANCisxIGZvciBpbmNsdWRpbmcgdGhpcy4gIFJpZ2h0IG5vdyBJ IGhhdmUgdG8gZGVsY2FyZSBhIEJQUCBpbiBhZGRpdGlvbiB0byBteSBVTU9NYW5hZ2VyRmFjdG9y eUJlYW4ganVzdCB0byBzZXQgdGhlIG5hbWVzIG9mIHRoZSBvYmplY3RzIGluIHRoZSBtYW5hZ2Vy LiBJdCB3b3VsZCBiZSBtdWNoIGNsZWFuZXIgKGxlc3MgY29uZmlndXJhdGlvbikgaWYgSSBjb3Vs ZCByb2xsIHRoZSB0d28gdG9nZXRoZXIuDQogDQpDaGVlcnMsDQogDQpSb3NzDQogDQogDQogLS0t LS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCkZyb206IHNwcmluZ2ZyYW1ld29yay1kZXZlbG9wZXIt YWRtaW5AbGlzdHMuc291cmNlZm9yZ2UubmV0IFttYWlsdG86c3ByaW5nZnJhbWV3b3JrLWRldmVs b3Blci1hZG1pbkBsaXN0cy5zb3VyY2Vmb3JnZS5uZXRdT24gQmVoYWxmIE9mIERtaXRyaXkgS29w eWxlbmtvDQpTZW50OiBXZWRuZXNkYXksIDE0IEp1bHkgMjAwNCAxMjo1OSBBTQ0KVG86IHNwcmlu Z2ZyYW1ld29yay1kZXZlbG9wZXJAbGlzdHMuc291cmNlZm9yZ2UubmV0DQpTdWJqZWN0OiBSZTog W1NwcmluZ2ZyYW1ld29yay1kZXZlbG9wZXJdIEludGVyY2VwdGluZyBiZWFuIGNyZWF0aW9uPw0K DQoNCg0KUm9zcywNCg0KSSBpbnZlc3RpZ2F0ZWQgdGhlIGlzc3VlIGFuZCBmb3VuZCB0aGF0IEZh Y3RvcnlCZWFuIGFuZCBCZWFuUG9zdFByb2Nlc3NvciBkbyBub3Qgd29yayB3ZWxsIHRvZ2V0aGVy LiBJJ3ZlIGNyZWF0ZWQgYSB2ZXJ5IHNpbXBsZSB0ZXN0IGNhc2UgdG8gcHJvdmUgdGhhdC4gVGhl IHJlYXNvbiBpcyB0aGF0IGluIEFic3RyYWN0QXBwbGljYXRpb25Db250ZXh0LnJlZ2lzdGVyQmVh blBvc3RQcm9jZXNzb3JzKCkgaXQgY2FsbHMgdGhlICpnZXRCZWFuKCkqIHRvIHBvcHVsYXRlIHRo ZSBpbnRlcm5hbCBDb2xsZWN0aW9uIG9mIEJlYW5Qb3N0UHJvY2Vzc29ycyBhbmQgdGhlbiByZWdp c3RlciB0aGVtICJnbG9iYWxseSIgYnkgY2FzdGluZyB0byAuLi4gd2VsbCwgQmVhblBvc3RQcm9j ZXNzb3IuIEluIGNhc2Ugb2YgRmFjdG9yeUJlYW4sIGdldEJlYW4oKSBjYWxsIGFjdHVhbGx5IGdl dHMgdGhlIHVuZGVybHlpbmcgaW5zdGFuY2Ugb2YgdGhlIGJlYW4sIG5vdCB0aGUgRmFjdG9yeUJl YW4gaXRzZWxmLCB0aGVyZWZvcmUgcmVzdWx0aW5nIGluIENsYXN0Q2FzdEV4Y2VwdGlvbjoNCg0K cHJpdmF0ZSB2b2lkIHJlZ2lzdGVyQmVhblBvc3RQcm9jZXNzb3JzKCkgdGhyb3dzIEJlYW5zRXhj ZXB0aW9uIHsNCiAgICAgICAgU3RyaW5nW10gYmVhbk5hbWVzID0gZ2V0QmVhbkRlZmluaXRpb25O YW1lcyhCZWFuUG9zdFByb2Nlc3Nvci5jbGFzcyk7ICAgICAgICANCiAgICAgICAgaWYgKGJlYW5O YW1lcy5sZW5ndGggPiAwKSB7DQogICAgICAgICAgICBMaXN0IGJlYW5Qcm9jZXNzb3JzID0gbmV3 IEFycmF5TGlzdCgpOw0KICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBiZWFuTmFtZXMu bGVuZ3RoOyBpKyspIHsNCiAgICAgICAgICAgICAgICBiZWFuUHJvY2Vzc29ycy5hZGQoZ2V0QmVh bihiZWFuTmFtZXNbaV0pKTsgDQogICAgICAgICAgICB9DQogICAgICAgICAgICBDb2xsZWN0aW9u cy5zb3J0KGJlYW5Qcm9jZXNzb3JzLCBuZXcgT3JkZXJDb21wYXJhdG9yKCkpOw0KICAgICAgICAg ICAgZm9yIChJdGVyYXRvciBpdCA9IGJlYW5Qcm9jZXNzb3JzLml0ZXJhdG9yKCk7IGl0Lmhhc05l eHQoKTspIHsNCiAgICAgICAgICAgICAgICBnZXRCZWFuRmFjdG9yeSgpLmFkZEJlYW5Qb3N0UHJv Y2Vzc29yKChCZWFuUG9zdFByb2Nlc3NvcilpdC5uZXh0KCkpOw0KICAgICAgICAgICAgfQ0KICAg ICAgICB9DQogfQ0KDQpJJ3ZlIGNoYW5nZWQgdGhpcyBjb2RlIHRvIHRha2UgaW50byBjb25zaWRl cmF0aW9uIHRoZSBCZWFuUG9zdFByb2Nlc3Nvci1GYWN0b3J5QmVhbiBjb21iaW5hdGlvbjoNCg0K cHJpdmF0ZSB2b2lkIHJlZ2lzdGVyQmVhblBvc3RQcm9jZXNzb3JzKCkgdGhyb3dzIEJlYW5zRXhj ZXB0aW9uIHsNCiAgICAgICAgU3RyaW5nW10gYmVhbk5hbWVzID0gZ2V0QmVhbkRlZmluaXRpb25O YW1lcyhCZWFuUG9zdFByb2Nlc3Nvci5jbGFzcyk7ICAgICAgICANCiAgICAgICAgaWYgKGJlYW5O YW1lcy5sZW5ndGggPiAwKSB7DQogICAgICAgICAgICBMaXN0IGJlYW5Qcm9jZXNzb3JzID0gbmV3 IEFycmF5TGlzdCgpOw0KICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBiZWFuTmFtZXMu bGVuZ3RoOyBpKyspIHsNCiAgICAgICAgICAgICAgICB0cnl7ICAgIA0KICAgICAgICAgICAgICAg ICAgICBiZWFuUHJvY2Vzc29ycy5hZGQoZ2V0QmVhbigiJiIgKyBiZWFuTmFtZXNbaV0pKTsgLy9D aGVjayBmb3IgRmFjdG9yeUJlYW4NCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAg Y2F0Y2goQmVhbklzTm90QUZhY3RvcnlFeGNlcHRpb24gZSl7DQogICAgICAgICAgICAgICAgICAg IGJlYW5Qcm9jZXNzb3JzLmFkZChnZXRCZWFuKGJlYW5OYW1lc1tpXSkpOyAvL0l0J3Mgbm90IHRo ZSBGYWN0b3J5QmVhbg0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAg ICAgIENvbGxlY3Rpb25zLnNvcnQoYmVhblByb2Nlc3NvcnMsIG5ldyBPcmRlckNvbXBhcmF0b3Io KSk7DQogICAgICAgICAgICBmb3IgKEl0ZXJhdG9yIGl0ID0gYmVhblByb2Nlc3NvcnMuaXRlcmF0 b3IoKTsgaXQuaGFzTmV4dCgpOykgew0KICAgICAgICAgICAgICAgIGdldEJlYW5GYWN0b3J5KCku YWRkQmVhblBvc3RQcm9jZXNzb3IoKEJlYW5Qb3N0UHJvY2Vzc29yKWl0Lm5leHQoKSk7DQogICAg ICAgICAgICB9DQogICAgICAgIH0NCiAgICB9DQoNCldvcmtzIHdlbGwuDQoNCkp1ZXJnZW4sIGlm IHRoZXJlIGlzIGEgY29tcGVsbGluZyBuZWVkIGZvciB0aGlzIGZlYXR1cmUgKEJQUC9GQiBjb21i aW5hdGlvbikgSSdkIGJlIGhhcHB5IHRvIGNvbW1pdCB0aGlzLg0KDQpSZWdhcmRzLA0KRG1pdHJp eS4NCg0KDQoNCg0KTWFzb24sIFJvc3Mgd3JvdGU6DQoNCg0KRG1pdHJpeSwNCg0KIA0KDQpzb3Jy eSBmb3IgdGhlIGRlbGF5IDopDQoNCg0KDQphcHBDdHggLSANCg0KaHR0cDovL2N2cy5zb3VyY2Vm b3JnZS5uZXQvdmlld2N2cy5weS9tdWxlL211bGUtZXh0cmFzL3NwcmluZy9zcmMvdGVzdC9jb25m L211bGUtZXZlbnRzLWFwcC1jb250ZXh0LnhtbD9yZXY9MS4zIDxodHRwOi8vY3ZzLnNvdXJjZWZv cmdlLm5ldC92aWV3Y3ZzLnB5L211bGUvbXVsZS1leHRyYXMvc3ByaW5nL3NyYy90ZXN0L2NvbmYv bXVsZS1ldmVudHMtYXBwLWNvbnRleHQueG1sP3Jldj0xLjMmdmlldz1hdXRvPiAmdmlldz1hdXRv DQoNCg0KDQpCUFANCg0KDQoNCmh0dHA6Ly9jdnMuc291cmNlZm9yZ2UubmV0L3ZpZXdjdnMucHkv bXVsZS9tdWxlLWV4dHJhcy9zcHJpbmcvc3JjL2phdmEvb3JnL211bGUvZXh0cmFzL3NwcmluZy9j b25maWcvQXV0b3dpcmVVTU9NYW5hZ2VyRmFjdG9yeUJlYW4uamF2YT9yZXY9MS4xIDxodHRwOi8v Y3ZzLnNvdXJjZWZvcmdlLm5ldC92aWV3Y3ZzLnB5L211bGUvbXVsZS1leHRyYXMvc3ByaW5nL3Ny Yy9qYXZhL29yZy9tdWxlL2V4dHJhcy9zcHJpbmcvY29uZmlnL0F1dG93aXJlVU1PTWFuYWdlckZh Y3RvcnlCZWFuLmphdmE/cmV2PTEuMSZ2aWV3PWF1dG8+ICZ2aWV3PWF1dG8NCg0KDQoNCk5vdGUg dGhhdCB0aGlzIGZhY3RvcnkgYmVhbiBub3cgZG9lc24ndCBpbXBsZW1lbnQgQlBQIGJlY2F1c2Ug b2YgdGhlIENsYXNzQ2FzdEV4Y2VwdGlvbi4gaG93ZXZlciBJIHRyaWVkIGltcGxlbWVudGF0aW5n ICBGYWN0b3J5QmVhbiBhbmQgQmVhblBvc3RQcm9jZXNzb3IgaW4gYW4gaXNvbGF0ZWQgdGVzdCBh bmQgSSBzdGlsbCBnb3QgdGhlIGV4Y2VwdGlvbi4NCg0KDQoNCkNoZWVycywNCg0KDQoNClJvc3MN Cg0KDQoNCg0KDQoNCg0KDQoNCiAgDQoNCi0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQoNCkZy b206ICBzcHJpbmdmcmFtZXdvcmstZGV2ZWxvcGVyLWFkbWluQGxpc3RzLnNvdXJjZWZvcmdlLm5l dA0KDQpbIG1haWx0bzpzcHJpbmdmcmFtZXdvcmstZGV2ZWxvcGVyLWFkbWluQGxpc3RzLnNvdXJj ZWZvcmdlLm5ldF1PbiBCZWhhbGYNCg0KT2YgRG1pdHJpeSBLb3B5bGVua28NCg0KU2VudDogRnJp ZGF5LCA5IEp1bHkgMjAwNCAxOjI3IEFNDQoNClRvOiAgc3ByaW5nZnJhbWV3b3JrLWRldmVsb3Bl ckBsaXN0cy5zb3VyY2Vmb3JnZS5uZXQNCg0KU3ViamVjdDogUmU6IFtTcHJpbmdmcmFtZXdvcmst ZGV2ZWxvcGVyXSBJbnRlcmNlcHRpbmcgYmVhbiBjcmVhdGlvbj8NCg0KDQoNCg0KDQpSb3NzLA0K DQoNCg0KY2FuIHlvdSBwbGVhc2UgYXR0YWNoIHRoaXMgQlBQIGFuZCB0aGUgY29ycmVzcG9uZGlu ZyBhcHBDdHggZGVzY3JpcHRvcj8NCg0KDQoNClRoYW5rcywNCg0KRG1pdHJpeS4NCg0KDQoNCk1h c29uLCBSb3NzIHdyb3RlOg0KDQoNCg0KICAgIA0KDQpDaGVlcnMgZ3V5cy4gIEknbSB1c2luZyB0 aGUgQmVhblBvc3RQcm9jZXNzb3IuDQoNCg0KDQpXaGVuIEkgdHJ5IHVzaW5nIHRoZSBCZWFuUG9z dFByb2Nlc3NvciBvbiBhIEZhY3RvcnlCZWFuIEkgZ2V0IA0KDQogICAgICANCg0KYSBDbGFzc0Nh c3RFeGNlcHRpb24uICBXaGljaCBhdCBmaXJzdCBtYWRlIHNlbnNlIGJlY2F1c2UgSSANCg0KZmln dXJlZCBpdCB3YXMgdHJ5aW5nIHRvIGNhc3QgbXkgYWN0dWFsIGJlYW4gaW5zdGFuY2UgKG5vdCAN Cg0KRmFjdG9yeUJlYW4pIHRvIGEgQmVhblBvc3RQcm9jZXNzb3IsIGJ1dCB0aGVuIHdoeSB3b3Vs ZG4ndCBpdCANCg0KdXNlIHRoZSBhY3R1YWwgZmFjdG9yeSBpbnN0YW5jZS4gQW55d2F5IGhlcmUg aXMgdGhlIHN0YWNrIHRyYWNlIC0NCg0KICAgIA0KDQpqYXZhLmxhbmcuQ2xhc3NDYXN0RXhjZXB0 aW9uDQoNCmF0IA0KDQogICAgICANCg0Kb3JnLnNwcmluZ2ZyYW1ld29yay5jb250ZXh0LnN1cHBv cnQuQWJzdHJhY3RBcHBsaWNhdGlvbkNvbnRleHQuDQoNCnJlZ2lzdGVyQmVhblBvc3RQcm9jZXNz b3JzKEFic3RyYWN0QXBwbGljYXRpb25Db250ZXh0LmphdmE6MzI4KQ0KDQogICAgDQoNCmF0IA0K DQogICAgICANCg0Kb3JnLnNwcmluZ2ZyYW1ld29yay5jb250ZXh0LnN1cHBvcnQuQWJzdHJhY3RB cHBsaWNhdGlvbkNvbnRleHQuDQoNCnJlZnJlc2goQWJzdHJhY3RBcHBsaWNhdGlvbkNvbnRleHQu amF2YToyNjQpDQoNCiAgICANCg0KYXQgDQoNCiAgICAgIA0KDQpvcmcuc3ByaW5nZnJhbWV3b3Jr LmNvbnRleHQuc3VwcG9ydC5DbGFzc1BhdGhYbWxBcHBsaWNhdGlvbkNvbnQNCg0KZXh0Ljxpbml0 PihDbGFzc1BhdGhYbWxBcHBsaWNhdGlvbkNvbnRleHQuamF2YTo1OCkNCg0KICAgIA0KDQphdCAN Cg0KICAgICAgDQoNCm9yZy5tdWxlLmV4dHJhcy5zcHJpbmcuY29uZmlnLlNwcmluZ0NvbmZpZ3Vy YXRpb25CdWlsZGVyLmNvbmZpZw0KDQp1cmUoU3ByaW5nQ29uZmlndXJhdGlvbkJ1aWxkZXIuamF2 YTo0MCkNCg0KICAgIA0KDQphdCANCg0KICAgICAgDQoNCm9yZy5tdWxlLnRjay5BYnN0cmFjdENv bmZpZ0J1aWxkZXJUZXN0Q2FzZS5zZXRVcChBYnN0cmFjdENvbmZpZw0KDQpCdWlsZGVyVGVzdENh c2UuamF2YTo1MykNCg0KICAgIA0KDQphdCANCg0KICAgICAgDQoNCmNvbS5pbnRlbGxpai5ydC5l eGVjdXRpb24uanVuaXQyLkpVbml0U3RhcnRlci5tYWluKEpVbml0U3RhcnRlcg0KDQouamF2YToz MSkNCg0KICAgIA0KDQphdCBzdW4ucmVmbGVjdC5OYXRpdmVNZXRob2RBY2Nlc3NvckltcGwuaW52 b2tlMChOYXRpdmUgTWV0aG9kKQ0KDQphdCANCg0KICAgICAgDQoNCnN1bi5yZWZsZWN0Lk5hdGl2 ZU1ldGhvZEFjY2Vzc29ySW1wbC5pbnZva2UoTmF0aXZlTWV0aG9kQWNjZXNzbw0KDQpySW1wbC5q YXZhOjM5KQ0KDQogICAgDQoNCmF0IA0KDQogICAgICANCg0Kc3VuLnJlZmxlY3QuRGVsZWdhdGlu Z01ldGhvZEFjY2Vzc29ySW1wbC5pbnZva2UoRGVsZWdhdGluZ01ldGhvDQoNCmRBY2Nlc3Nvcklt cGwuamF2YToyNSkNCg0KICAgIA0KDQphdCANCg0KICAgICAgDQoNCmNvbS5pbnRlbGxpai5ydC5l eGVjdXRpb24uYXBwbGljYXRpb24uQXBwTWFpbi5tYWluKEFwcE1haW4uamF2YTo3OCkNCg0KICAg IA0KDQpDaGVlcnMsDQoNCg0KDQpSb3NzDQoNCg0KDQotLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0t LSANCg0KRnJvbTogIHNwcmluZ2ZyYW1ld29yay1kZXZlbG9wZXItYWRtaW5AbGlzdHMuc291cmNl Zm9yZ2UubmV0IA0KDQogICAgICANCg0Kb24gYmVoYWxmIG9mIGrDvHJnZW4gaMO2bGxlciBbd2Vy azNBVF0gDQoNCiAgICANCg0KU2VudDogVGh1IDgvMDcvMjAwNCAxMDo0NSBBTSANCg0KVG86ICBz cHJpbmdmcmFtZXdvcmstZGV2ZWxvcGVyQGxpc3RzLnNvdXJjZWZvcmdlLm5ldCANCg0KQ2M6IA0K DQpTdWJqZWN0OiBSZTogW1NwcmluZ2ZyYW1ld29yay1kZXZlbG9wZXJdIEludGVyY2VwdGluZyBi ZWFuIGNyZWF0aW9uPw0KDQoNCg0KDQoNCg0KDQoJSSByZWNvbW1lbmQgQmVhbk5hbWVBd2FyZSB0 b28sIGlmIHlvdSBqdXN0IHdhbnQgdG8gDQoNCiAgICAgIA0KDQpiZWNvbWUgYXdhcmUgb2YgdGhl IGJlYW4gbmFtZS4NCg0KICAgIA0KDQoJDQoNCglGb3IgZ2VuZXJhbCBwb3N0LXByb2Nlc3Npbmcg b2YgYSBuZXdseSBjcmVhdGVkIGJlYW4gDQoNCiAgICAgIA0KDQppbnN0YW5jZSwgeW91IGNvdWxk IGRlZmluZSBhIEJlYW5Qb3N0UHJvY2Vzc29yIGluIHRoZSBjb250ZXh0LCANCg0Kd2hpY2ggd2ls bCBhdXRvbWF0aWNhbGx5IGludGVyY2VwdCBhbGwgYmVhbnMgdGhhdCB0aGlzIGNvbnRleHQgY3Jl YXRlczoNCg0KICAgIA0KDQoJDQoNCgkNCg0KICAgICAgDQoNCmh0dHA6Ly93d3cuc3ByaW5nZnJh bWV3b3JrLm9yZy9kb2NzL2FwaS9vcmcvc3ByaW5nZnJhbWV3b3JrL2JlYQ0KDQpucy9mYWN0b3J5 L2NvbmZpZy9CZWFuUG9zdFByb2Nlc3Nvci5odG1sDQoNCiAgICANCg0KCQ0KDQoJSnVlcmdlbg0K DQoJDQoNCgkNCg0KCS0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQoNCglGcm9tOiAgc3ByaW5n ZnJhbWV3b3JrLWRldmVsb3Blci1hZG1pbkBsaXN0cy5zb3VyY2Vmb3JnZS5uZXQNCg0KCQ0KDQog ICAgICANCg0KWyBtYWlsdG86c3ByaW5nZnJhbWV3b3JrLWRldmVsb3Blci1hZG1pbkBsaXN0cy5z b3VyY2Vmb3JnZS5uZXRdT24gQmVoYWxmDQoNCiAgICANCg0KCU9mIENoaXN0b3BoZSBWYW5mbGV0 ZXJlbg0KDQoJU2VudDogVGh1cnNkYXksIEp1bHkgMDgsIDIwMDQgMTE6MjYgQU0NCg0KCVRvOiAg c3ByaW5nZnJhbWV3b3JrLWRldmVsb3BlckBsaXN0cy5zb3VyY2Vmb3JnZS5uZXQNCg0KCVN1Ympl Y3Q6IFJlOiBbU3ByaW5nZnJhbWV3b3JrLWRldmVsb3Blcl0gSW50ZXJjZXB0aW5nIA0KDQogICAg ICANCg0KYmVhbiBjcmVhdGlvbj8NCg0KICAgIA0KDQoJDQoNCgkNCg0KCU9uIFRodXJzZGF5IDA4 IEp1bHkgMjAwNCAxMToxMiwgTWFzb24sIFJvc3Mgd3JvdGU6DQoNCgk+IEhpLA0KDQoJPiBJIGNy ZWF0ZSBhIGxvdCBvZiBkaWZmZXJlbnQgdHlwZXMgb2Ygb2JqZWN0IGluIGFuIA0KDQogICAgICAN Cg0KYXBwbGljYXRpb25Db250ZXh0LCBhbGwNCg0KICAgIA0KDQoJPiBvZiB3aGljaCBoYXZlIGEg bmFtZSBwcm9wZXJ0eSBpLmUuDQoNCgk+DQoNCgk+IDxiZWFuIGlkPSJqbXNDb25uZWN0b3IiIA0K DQogICAgICANCg0KY2xhc3NOYW1lPSJvcmcubXVsZS5wcm92aWRlcnMuam1zLkptc0Nvbm5lY3Rv ciI+DQoNCiAgICANCg0KCT4gICAgIDxwcm9wZXJ0eSANCg0KICAgICAgDQoNCm5hbWU9Im5hbWUi Pjx2YWx1ZT5qbXNDb25uZWN0b3I8L3ZhbHVlPjwvcHJvcGVydHk+DQoNCiAgICANCg0KCT4gPC9i ZWFuPg0KDQoJPg0KDQoJPiBJIGRvbid0IGxpa2UgaGF2aW5nIHRvIGluY2x1ZGUgdGhlIG5hbWUg cHJvcGVydHkgaWYgDQoNCiAgICAgIA0KDQp0aGVyZSBpcyBhIGNoYW5jZSBJDQoNCiAgICANCg0K CT4gY291bGQgdXNlIHRoZSBiZWFuIGlkIGluc3RlYWQuIElzIHRoZXJlIGFueSB3YXkgSSBjYW4g DQoNCiAgICAgIA0KDQp1bmlmb3JtbHkgaW50ZXJjZXB0DQoNCiAgICANCg0KCT4gYmVhbiBjcmVh dGlvbiBpbiB0aGUgY29udGV4dCBzbyB0aGF0IHN0cmFpZ2h0IGFmdGVyIA0KDQogICAgICANCg0K dGhlIGNvbnN0cnVjdG9yIGlzDQoNCiAgICANCg0KCT4gY2FsbGVkIEkgY2FuIGdldCBob2xkIG9m IHRoZSBiZWFuIGlkIGFuZCBzZXQgaXQgb24gbXkgb2JqZWN0Pw0KDQoJPg0KDQoJPiBJIGNhbid0 IHdhaXQgdW50aWwgdGhlIGFwcGxpY2F0aW9uQ29udGV4dCBpcyANCg0KICAgICAgDQoNCmNvbmZp Z3VyZWQgYW5kIHRoZW4gc2V0IHRoZQ0KDQogICAgDQoNCgk+IG5hbWVzIGFzIHNvbWUgb2JqZWN0 cyBoYXZlIGEgY29sbGVjdGlvbiBvZiBvdGhlciANCg0KICAgICAgDQoNCm9iamVjdHMgd2hpY2gg YXJlIGtleWVkDQoNCiAgICANCg0KCT4gYWdhaW5zdCB0aGUgbmFtZS4NCg0KCT4NCg0KCQ0KDQoJ WW91IGNvdWxkIGltcGxlbWVudCBCZWFuTmFtZUF3YXJlOg0KDQoJDQoNCiAgICAgIA0KDQogPGh0 dHA6Ly93d3cuc3ByaW5nZnJhbWV3b3JrLm9yZy9kb2NzL2FwaS9vcmcvc3ByaW5nZnJhbWV3b3Jr L2JlYW5zL2ZhY3RvcnkvQmVhbk5hbWVBd2FyZS5odG1sPiA8aHR0cDovL3d3dy5zcHJpbmdmcmFt ZXdvcmsub3JnL2RvY3MvYXBpL29yZy9zcHJpbmdmcmFtZXdvcmsvYmVhbnMvZmFjdG9yeS9CZWFu TmFtZUF3YXJlLmh0bWw+DQoNCiAgDQoNCgkNCg0KCS0tDQoNCglLaW5kIHJlZ2FyZHMsDQoNCglD aHJpc3RvcGhlIFZhbmZsZXRlcmVuDQoNCgkNCg0KCQ0KDQoJLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQoJVGhpcyBTRi5OZXQgZW1haWwg c3BvbnNvcmVkIGJ5IEJsYWNrIEhhdCBCcmllZmluZ3MgJiBUcmFpbmluZy4NCg0KCUF0dGVuZCBC bGFjayBIYXQgQnJpZWZpbmdzICYgVHJhaW5pbmcsIExhcyBWZWdhcyBKdWx5IDI0LTI5IC0NCg0K CWRpZ2l0YWwgc2VsZiBkZWZlbnNlLCB0b3AgdGVjaG5pY2FsIGV4cGVydHMsIG5vIHZlbmRvciBw aXRjaGVzLA0KDQoJdW5tYXRjaGVkIG5ldHdvcmtpbmcgb3Bwb3J0dW5pdGllcy4gVmlzaXQgIHd3 dy5ibGFja2hhdC5jb20NCg0KCV9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fDQoNCglTcHJpbmdmcmFtZXdvcmstZGV2ZWxvcGVyIG1haWxpbmcgbGlzdA0KDQoJ IFNwcmluZ2ZyYW1ld29yay1kZXZlbG9wZXJAbGlzdHMuc291cmNlZm9yZ2UubmV0DQoNCgkgaHR0 cHM6Ly9saXN0cy5zb3VyY2Vmb3JnZS5uZXQvbGlzdHMvbGlzdGluZm8vc3ByaW5nZnJhbWV3b3Jr LWRldmVsb3Blcg0KDQoJDQoNCgkNCg0KCS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCg0KCVRoaXMgU0YuTmV0IGVtYWlsIHNwb25zb3JlZCBi eSBCbGFjayBIYXQgQnJpZWZpbmdzICYgVHJhaW5pbmcuDQoNCglBdHRlbmQgQmxhY2sgSGF0IEJy aWVmaW5ncyAmIFRyYWluaW5nLCBMYXMgVmVnYXMgSnVseSAyNC0yOSAtDQoNCglkaWdpdGFsIHNl bGYgZGVmZW5zZSwgdG9wIHRlY2huaWNhbCBleHBlcnRzLCBubyB2ZW5kb3IgcGl0Y2hlcywNCg0K CXVubWF0Y2hlZCBuZXR3b3JraW5nIG9wcG9ydHVuaXRpZXMuIFZpc2l0ICB3d3cuYmxhY2toYXQu Y29tDQoNCglfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXw0K DQoJU3ByaW5nZnJhbWV3b3JrLWRldmVsb3BlciBtYWlsaW5nIGxpc3QNCg0KCSBTcHJpbmdmcmFt ZXdvcmstZGV2ZWxvcGVyQGxpc3RzLnNvdXJjZWZvcmdlLm5ldA0KDQoJIGh0dHBzOi8vbGlzdHMu c291cmNlZm9yZ2UubmV0L2xpc3RzL2xpc3RpbmZvL3NwcmluZ2ZyYW1ld29yay1kZXZlbG9wZXIN Cg0KCQ0KDQoNCg0KIA0KDQoNCg0KICAgIA0KDQoNCg0KDQoNCg0KDQotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQoNClRoaXMgU0YuTmV0IGVt YWlsIHNwb25zb3JlZCBieSBCbGFjayBIYXQgQnJpZWZpbmdzICYgVHJhaW5pbmcuDQoNCkF0dGVu ZCBCbGFjayBIYXQgQnJpZWZpbmdzICYgVHJhaW5pbmcsIExhcyBWZWdhcyBKdWx5IDI0LTI5IC0g DQoNCmRpZ2l0YWwgc2VsZiBkZWZlbnNlLCB0b3AgdGVjaG5pY2FsIGV4cGVydHMsIG5vIHZlbmRv ciBwaXRjaGVzLCANCg0KdW5tYXRjaGVkIG5ldHdvcmtpbmcgb3Bwb3J0dW5pdGllcy4gVmlzaXQg IHd3dy5ibGFja2hhdC5jb20NCg0KX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX18NCg0KU3ByaW5nZnJhbWV3b3JrLWRldmVsb3BlciBtYWlsaW5nIGxpc3QNCg0K U3ByaW5nZnJhbWV3b3JrLWRldmVsb3BlckBsaXN0cy5zb3VyY2Vmb3JnZS5uZXQNCg0KaHR0cHM6 Ly9saXN0cy5zb3VyY2Vmb3JnZS5uZXQvbGlzdHMvbGlzdGluZm8vc3ByaW5nZnJhbWV3b3JrLWRl dmVsb3Blcg0KDQpOGO+/vUhTXu+/vemailsp77+9eyjvv73vv71b77+9GVpyQdq0Gu+/vXnvv73v v73vv71qKe+/vSvvv70p4KKaaO+/vdun77+92J7vv71Y77+977+977+9MO+/vVpySFrvv73vv70m Su+/ve+/vQfvv71qZ++/ve+/ve+/vR1677+977+977+977+977+977+9eCXvv73vv71S77+977+9 77+977+977+92pnvv70o77+9R17vv73vv71o77+977+977+977+9bO+/ve+/ve+/vXHvv73vv70H 77+9eu+/vW3vv73vv70/77+9WO+/ve+/ve+/vSjvv73vv70efu+/ve+/vXp377+977+9WO+/ve+/ ve+/ve+/ve+/vWLvv73vv70/77+977+977+9B++/vWpn77+977+977+9HXrvv73vv70NCg0KDQo= |