Tm90ZQo9PT09CgpUaGlzIGZpbGUgY29udGFpbnMgaW5mb3JtYXRpb24gYWJvdXQgcGVvcGxlIHdobyBhcmUgcGVybWl0dGVkIHRvIG1ha2UKY2hhbmdlcyB0byB2YXJpb3VzIHBhcnRzIG9mIHRoZSBjb21waWxlciBhbmQgYXNzb2NpYXRlZCBsaWJyYXJpZXMuCgpQbGVhc2UgZG8gbm90IGNvbnRhY3QgdGhlIHBlb3BsZSBpbiB0aGlzIGZpbGUgZGlyZWN0bHkgdG8gcmVwb3J0CnByb2JsZW1zIGluIEdDQy4KCkZvciBnZW5lcmFsIGluZm9ybWF0aW9uIGFib3V0IEdDQywgcGxlYXNlIHZpc2l0OgoKICBodHRwOi8vZ2NjLmdudS5vcmcKClRvIHJlcG9ydCBwcm9ibGVtcyBpbiBHQ0MsIHBsZWFzZSB2aXNpdDoKCiAgaHR0cDovL2djYy5nbnUub3JnL2J1Z3MuaHRtbAoKTWFpbnRhaW5lcnMKPT09PT09PT09PT0KCgkJCUdsb2JhbCBSZXZpZXdlcnMKClJpY2hhcmQgRWFybnNoYXcJCQkJcmljaGFyZC5lYXJuc2hhd0Bhcm0uY29tClJpY2hhcmQgSGVuZGVyc29uCQkJCXJ0aEByZWRoYXQuY29tCkdlb2ZmcmV5IEtlYXRpbmcJCQkJZ2VvZmZrQGdlb2Zmay5vcmcKUmljaGFyZCBLZW5uZXIJCQkJCWtlbm5lckBueXUuZWR1CkplZmYgTGF3CQkJCQlsYXdAcmVkaGF0LmNvbQpNaWNoYWVsIE1laXNzbmVyCQkJCWdudUB0aGUtbWVpc3NuZXJzLm9yZwpKYXNvbiBNZXJyaWxsCQkJCQlqYXNvbkByZWRoYXQuY29tCkRhdmlkIFMuIE1pbGxlcgkJCQkJZGF2ZW1AcmVkaGF0LmNvbQpNYXJrIE1pdGNoZWxsCQkJCQltYXJrQGNvZGVzb3VyY2VyeS5jb20KRGllZ28gTm92aWxsbwkJCQkJZG5vdmlsbG9AZ29vZ2xlLmNvbQpCZXJuZCBTY2htaWR0CQkJCQliZXJuZC5zY2htaWR0QGFuYWxvZy5jb20KSWFuIExhbmNlIFRheWxvcgkJCQlpYW5AYWlycy5jb20KSmltIFdpbHNvbgkJCQkJd2lsc29uQHR1bGlwdHJlZS5vcmcKCk5vdGUgdGhhdCB3aGlsZSBnbG9iYWwgcmV2aWV3ZXJzIGNhbiBhcHByb3ZlIGNoYW5nZXMgdG8gYW55IHBhcnQgb2YKdGhlIGNvbXBpbGVyIG9yIGFzc29jaWF0ZWQgbGlicmFyaWVzLCB0aGV5IHN0aWxsIG5lZWQgYXBwcm92YWwgZm9yCnRoZWlyIG93biBwYXRjaGVzIGZyb20gb3RoZXIgbWFpbnRhaW5lcnMgb3IgcmV2aWV3ZXJzLgoKCQkJQ1BVIFBvcnQgTWFpbnRhaW5lcnMJKENQVSBhbHBoYWJldGljYWwgb3JkZXIpCgphbHBoYSBwb3J0CQlSaWNoYXJkIEhlbmRlcnNvbglydGhAcmVkaGF0LmNvbQphcm0gcG9ydAkJTmljayBDbGlmdG9uCQluaWNrY0ByZWRoYXQuY29tCmFybSBwb3J0CQlSaWNoYXJkIEVhcm5zaGF3CXJpY2hhcmQuZWFybnNoYXdAYXJtLmNvbQphcm0gcG9ydAkJUGF1bCBCcm9vawkJcGF1bEBjb2Rlc291cmNlcnkuY29tCmF2ciBwb3J0CQlEZW5pcyBDaGVydHlrb3YJCWRlbmlzY0BvdmVydGEucnUKYXZyIHBvcnQJCUFuYXRvbHkgU29rb2xvdgkJYWVzb2tAcG9zdC5ydQpiZmluIHBvcnQJCUJlcm5kIFNjaG1pZHQJCWJlcm5kLnNjaG1pZHRAYW5hbG9nLmNvbQpjcmlzIHBvcnQJCUhhbnMtUGV0ZXIgTmlsc3NvbglocEBheGlzLmNvbQpjcnggcG9ydAkJUG9tcGFwYXRoaSBWIEdhZGFkIAlQb21wYXBhdGhpLlYuR2FkYWRAbnNjLmNvbQpmcjMwIHBvcnQJCU5pY2sgQ2xpZnRvbgkJbmlja2NAcmVkaGF0LmNvbQpmcnYgcG9ydAkJQWxkeSBIZXJuYW5kZXoJCWFsZHloQHJlZGhhdC5jb20KZnJ2IHBvcnQJCUFsZXhhbmRyZSBPbGl2YQkJYW9saXZhQHJlZGhhdC5jb20KaDggcG9ydAkJCUplZmYgTGF3CQlsYXdAcmVkaGF0LmNvbQpoOCBwb3J0CQkJS2F6dSBIaXJhdGEJCWthenVAY29kZXNvdXJjZXJ5LmNvbQpocHBhIHBvcnQJCUplZmYgTGF3CQlsYXdAcmVkaGF0LmNvbQpocHBhIHBvcnQJCUpvaG4gRGF2aWQgQW5nbGluCWRhdmUuYW5nbGluQG5yYy1jbnJjLmdjLmNhCmkzODYgcG9ydAkJUmljaGFyZCBIZW5kZXJzb24JcnRoQHJlZGhhdC5jb20KaTM4NiBwb3J0CQlKYW4gSHViaWNrYQkJamhAc3VzZS5jegppMzg2IHBvcnQJCVVyb3MgQml6amFrCQl1Yml6amFrQGdtYWlsLmNvbQppYTY0IHBvcnQJCUppbSBXaWxzb24JCXdpbHNvbkB0dWxpcHRyZWUub3JnCmlhNjQgcG9ydAkJU3RldmUgRWxsY2V5CQlzamVAY3VwLmhwLmNvbQppcTIwMDAgcG9ydAkJTmljayBDbGlmdG9uCQluaWNrY0ByZWRoYXQuY29tCm0zMmMgcG9ydAkJREogRGVsb3JpZQkJZGpAcmVkaGF0LmNvbQptMzJyIHBvcnQJCU5pY2sgQ2xpZnRvbgkJbmlja2NAcmVkaGF0LmNvbQptNjhoYzExIHBvcnQJCVN0ZXBoYW5lIENhcnJlegkJc3RjYXJyZXpAbmVyaW0uZnIKbTY4ayBwb3J0ICg/KQkJSmVmZiBMYXcJCWxhd0ByZWRoYXQuY29tCm02OGsgcG9ydAkJQW5kcmVhcyBTY2h3YWIJCXNjaHdhYkBsaW51eC1tNjhrLm9yZwptNjhrLW1vdG9yb2xhLXN5c3YgcG9ydAlQaGlsaXBwZSBEZSBNdXl0ZXIJcGhkbUBtYWNxZWwuYmUKbWNvcmUgcG9ydAkJTmljayBDbGlmdG9uCQluaWNrY0ByZWRoYXQuY29tCm1pcHMgcG9ydAkJRXJpYyBDaHJpc3RvcGhlcgllY2hyaXN0b0BhcHBsZS5jb20KbWlwcyBwb3J0CQlSaWNoYXJkIFNhbmRpZm9yZAlyZHNhbmRpZm9yZEBnb29nbGVtYWlsLmNvbQptbWl4IHBvcnQJCUhhbnMtUGV0ZXIgTmlsc3NvbglocEBiaXRyYW5nZS5jb20KbW4xMDMwMCBwb3J0CQlKZWZmIExhdwkJbGF3QHJlZGhhdC5jb20KbW4xMDMwMCBwb3J0CQlBbGV4YW5kcmUgT2xpdmEJCWFvbGl2YUByZWRoYXQuY29tCnBkcDExIHBvcnQJCVBhdWwgS29uaW5nCQluaTFkQGFycmwubmV0CnBpY29jaGlwIHBvcnQJCUhhcmloYXJhbiBTYW5kYW5hZ29iYWxhbmUJaGFyaWhhcmFuQHBpY29jaGlwLmNvbQpwaWNvY2hpcCBwb3J0CQlEYW5pZWwgVG93bmVyCQlkYW50QHBpY29jaGlwLmNvbQpyczYwMDAgcG9ydAkJR2VvZmYgS2VhdGluZwkJZ2VvZmZrQGdlb2Zmay5vcmcKcnM2MDAwIHBvcnQJCURhdmlkIEVkZWxzb2huCQllZGVsc29obkBnbnUub3JnCnJzNjAwMCB2ZWN0b3IgZXh0bnMJQWxkeSBIZXJuYW5kZXoJCWFsZHloQHJlZGhhdC5jb20KczM5MCBwb3J0CQlIYXJ0bXV0IFBlbm5lcgkJaHBlbm5lckBkZS5pYm0uY29tCnMzOTAgcG9ydAkJVWxyaWNoIFdlaWdhbmQJCXV3ZWlnYW5kQGRlLmlibS5jb20KczM5MCBwb3J0CQlBbmRyZWFzIEtyZWJiZWwJCUFuZHJlYXMuS3JlYmJlbEBkZS5pYm0uY29tCnNoIHBvcnQJCQlBbGV4YW5kcmUgT2xpdmEJCWFvbGl2YUByZWRoYXQuY29tCnNoIHBvcnQJCQlLYXogS29qaW1hCQlra29qaW1hQGdjYy5nbnUub3JnCnNwYXJjIHBvcnQJCVJpY2hhcmQgSGVuZGVyc29uCXJ0aEByZWRoYXQuY29tCnNwYXJjIHBvcnQJCURhdmlkIFMuIE1pbGxlcgkJZGF2ZW1AcmVkaGF0LmNvbQpzcGFyYyBwb3J0CQlKYWt1YiBKZWxpbmVrCQlqYWt1YkByZWRoYXQuY29tCnNwYXJjIHBvcnQJCUVyaWMgQm90Y2F6b3UJCWVib3RjYXpvdUBsaWJlcnR5c3VyZi5mcgpzcHUgcG9ydAkJVHJldm9yIFNtaWdpZWwJCXRyZXZvcl9zbWlnaWVsQHBsYXlzdGF0aW9uLnNvbnkuY29tCnNwdSBwb3J0CQlBbmRyZXcgUGluc2tpCQlhbmRyZXdfcGluc2tpQHBsYXlzdGF0aW9uLnNvbnkuY29tCnNwdSBwb3J0CQlEYXZpZCBFZGVsc29obgkJZWRlbHNvaG5AZ251Lm9yZwp2ODUwIHBvcnQJCU5pY2sgQ2xpZnRvbgkJbmlja2NAcmVkaGF0LmNvbQp2YXggcG9ydAkJTWF0dCBUaG9tYXMJCW1hdHRAM2FtLXNvZnR3YXJlLmNvbQp4ODYtNjQgcG9ydAkJSmFuIEh1Ymlja2EJCWpoQHN1c2UuY3oKeHN0b3JteTE2IHBvcnQJCU5pY2sgQ2xpZnRvbgkJbmlja2NAcmVkaGF0LmNvbQp4dGVuc2EgcG9ydAkJQm9iIFdpbHNvbgkJYm9iLndpbHNvbkBhY20ub3JnCgoJCQlPUyBQb3J0IE1haW50YWluZXJzCShPUyBhbHBoYWJldGljYWwgb3JkZXIpCgpkYXJ3aW4gcG9ydAkJRGFsZSBKb2hhbm5lc2VuCQlkYWxlakBhcHBsZS5jb20KZGFyd2luIHBvcnQJCU1pa2UgU3R1bXAJCW1yc0BhcHBsZS5jb20KZGFyd2luIHBvcnQJCUVyaWMgQ2hyaXN0b3BoZXIJZWNocmlzdG9AYXBwbGUuY29tCmRhcndpbiBwb3J0CQlTdGFuIFNoZWJzCQlzdGFuc2hlYnNAZWFydGhsaW5rLm5ldApESkdQUAkJCURKIERlbG9yaWUJCWRqQGRlbG9yaWUuY29tCmZyZWVic2QJCQlMb3JlbiBKLiBSaXR0bGUJCWxqcml0dGxlQGFjbS5vcmcKR05VL0h1cmQJCVRob21hcyBTY2h3aW5nZQkJdHNjaHdpbmdlQGdudS5vcmcKaHB1eAkJCUpvaG4gRGF2aWQgQW5nbGluCWRhdmUuYW5nbGluQG5yYy1jbnJjLmdjLmNhCmhwdXgJCQlTdGV2ZSBFbGxjZXkJCXNqZUBjdXAuaHAuY29tCmlyaXgsIG9zZgkJUmFpbmVyIE9ydGgJCXJvQFRlY2hGYWsuVW5pLUJpZWxlZmVsZC5ERQpuZXRic2QJCQlKYXNvbiBUaG9ycGUJCXRob3JwZWpAbmV0YnNkLm9yZwpuZXRic2QJCQlLcmlzdGVyIFdhbGZyaWRzc29uCWtyaXN0ZXIud2FsZnJpZHNzb25AZ21haWwuY29tCnNoLWxpbnV4LWdudQkJS2F6IEtvamltYQkJa2tvamltYUBnY2MuZ251Lm9yZwpSVEVNUyBQb3J0cwkJSm9lbCBTaGVycmlsbAkJam9lbEBvYXJjb3JwLmNvbQpSVEVNUyBQb3J0cwkJUmFsZiBDb3JzZXBpdXMJCXJhbGYuY29yc2VwaXVzQHJ0ZW1zLm9yZwpWeFdvcmtzIHBvcnRzCQlOYXRoYW4gU2lkd2VsbAkJbmF0aGFuQGNvZGVzb3VyY2VyeS5jb20Kd2luZG93cywgY3lnd2luLCBtaW5ndwlDaHJpc3RvcGhlciBGYXlsb3IJbWUuZ2NjQGdjYy5nbnUub3JnCndpbmRvd3MsIGN5Z3dpbiwgbWluZ3cJRGFubnkgU21pdGgJCWRhbm55c21pdGhAdXNlcnMuc291cmNlZm9yZ2UubmV0CndpbmRvd3MsIGN5Z3dpbiwgbWluZ3cJS2FpIFRpZXR6CQlrYWkudGlldHpAb25ldmlzaW9uLmNvbQoKCQkJTGFuZ3VhZ2UgRnJvbnQgRW5kcyBNYWludGFpbmVycwoKQyBmcm9udCBlbmQvSVNPIEM5OQlKb3NlcGggTXllcnMJCWpzbUBwb2x5b21pbm8ub3JnLnVrCkMgZnJvbnQgZW5kL0lTTyBDOTkJUmljaGFyZCBIZW5kZXJzb24JcnRoQHJlZGhhdC5jb20KQWRhIGZyb250IGVuZAkJR2VlcnQgQm9zY2gJCWJvc2NoQGduYXQuY29tCkFkYSBmcm9udCBlbmQJCVJvYmVydCBEZXdhcgkJZGV3YXJAZ25hdC5jb20KQWRhIGZyb250IGVuZAkJQXJuYXVkIENoYXJsZXQJCWNoYXJsZXRAYWN0LWV1cm9wZS5mcgpGb3J0cmFuCQkJUGF1bCBCcm9vawkJcGF1bEBjb2Rlc291cmNlcnkuY29tCmMrKwkJCUphc29uIE1lcnJpbGwJCWphc29uQHJlZGhhdC5jb20KYysrCQkJTWFyayBNaXRjaGVsbAkJbWFya0Bjb2Rlc291cmNlcnkuY29tCmMrKwkJCU5hdGhhbiBTaWR3ZWxsCQluYXRoYW5AY29kZXNvdXJjZXJ5LmNvbQpqYXZhCQkJUGVyIEJvdGhuZXIJCXBlckBib3RobmVyLmNvbQpqYXZhCQkJQW5kcmV3IEhhbGV5CQlhcGhAcmVkaGF0LmNvbQpqYXZhCQkJVG9tIFRyb21leQkJdHJvbWV5QHJlZGhhdC5jb20Kb2JqZWN0aXZlLWMvYysrCQlNaWtlIFN0dW1wCQltcnNAYXBwbGUuY29tCm9iamVjdGl2ZS1jL2MrKwkJU3RhbiBTaGVicwkJc3RhbnNoZWJzQGVhcnRobGluay5uZXQKCgkJCVZhcmlvdXMgTWFpbnRhaW5lcnMKCmxpYmNwcAkJCVBlciBCb3RobmVyCQlwZXJAYm90aG5lci5jb20KbGliY3BwCQkJQWxsIEMgYW5kIEMrKyBmcm9udCBlbmQgbWFpbnRhaW5lcnMKZnAtYml0CQkJSWFuIExhbmNlIFRheWxvcglpYW5AYWlycy5jb20KbGliZGVjbnVtYmVyCQlCZW4gRWxsaXN0b24JCWJqZUBhdS5pYm0uY29tCmxpYmdjYwkJCUlhbiBMYW5jZSBUYXlsb3IJaWFuQGFpcnMuY29tCmxpYmdjagkJCVRvbSBUcm9tZXkJCXRyb21leUByZWRoYXQuY29tCmxpYmdjagkJCUJyeWNlIE1jS2lubGF5CQltY2tpbmxheUByZWRoYXQuY29tCmxpYmdvbXAJCQlSaWNoYXJkIEhlbmRlcnNvbglydGhAcmVkaGF0LmNvbQpsaWJnb21wCQkJSmFrdWIgSmVsaW5lawkJamFrdWJAcmVkaGF0LmNvbQpsaWJpYmVydHkJCURKIERlbG9yaWUJCWRqQHJlZGhhdC5jb20KbGliaWJlcnR5CQlJYW4gTGFuY2UgVGF5bG9yCWlhbkBhaXJzLmNvbQpsaWJmZmkgdGVzdHN1aXRlCUFuZHJlYXMgVG9ibGVyCQlhbmRyZWFzdEBnY2MuZ251Lm9yZwpsaWJvYmpjCQkJTmljb2xhIFBlcm8JCW5pY29sYS5wZXJvQG1ldGEtaW5ub3ZhdGlvbi5jb20KbGlib2JqYwkJCUFuZHJldyBQaW5za2kJCXBpbnNraWFAZ21haWwuY29tCmxvb3AgZGlzY292ZXJ5CQlNaWNoYWVsIEhheWVzCQltLmhheWVzQGVsZWMuY2FudGVyYnVyeS5hYy5uegpzb2Z0LWZwCQkJSm9zZXBoIE15ZXJzCQlqc21AcG9seW9taW5vLm9yZy51awpzY2hlZHVsZXIgKCsgaGFpZmEpCUppbSBXaWxzb24JCXdpbHNvbkB0dWxpcHRyZWUub3JnCnNjaGVkdWxlciAoKyBoYWlmYSkJTWljaGFlbCBNZWlzc25lcglnbnVAdGhlLW1laXNzbmVycy5vcmcKc2NoZWR1bGVyICgrIGhhaWZhKQlKZWZmIExhdwkJbGF3QHJlZGhhdC5jb20Kc2NoZWR1bGVyICgrIGhhaWZhKQlWbGFkaW1pciBNYWthcm92CXZtYWthcm92QHJlZGhhdC5jb20KbW9kdWxvLXNjaGVkdWxlcglBeWFsIFpha3MJCXpha3NAaWwuaWJtLmNvbQpyZW9yZwkJCUplZmYgTGF3CQlsYXdAcmVkaGF0LmNvbQpjYWxsZXItc2F2ZS5jCQlKZWZmIExhdwkJbGF3QHJlZGhhdC5jb20KY2FsbGdyYXBoCQlKYW4gSHViaWNrYQkJamhAc3VzZS5jegpkZWJ1Z2dpbmcgY29kZQkJSmltIFdpbHNvbgkJd2lsc29uQHR1bGlwdHJlZS5vcmcKZHdhcmYgZGVidWdnaW5nIGNvZGUJSmFzb24gTWVycmlsbAkJamFzb25AcmVkaGF0LmNvbQpjKysgcnVudGltZSBsaWJzCVBhb2xvIENhcmxpbmkJCXBhb2xvLmNhcmxpbmlAb3JhY2xlLmNvbQpjKysgcnVudGltZSBsaWJzCUdhYnJpZWwgRG9zIFJlaXMJZ2RyQGludGVncmFibGUtc29sdXRpb25zLm5ldApjKysgcnVudGltZSBsaWJzCVVscmljaCBEcmVwcGVyCQlkcmVwcGVyQHJlZGhhdC5jb20KYysrIHJ1bnRpbWUgbGlicwlQaGlsIEVkd2FyZHMJCXBtZUBnY2MuZ251Lm9yZwpjKysgcnVudGltZSBsaWJzCUJlbmphbWluIEtvc25pawkJYmtvekByZWRoYXQuY29tCmMrKyBydW50aW1lIGxpYnMJTG9yZW4gSi4gUml0dGxlCQlsanJpdHRsZUBhY20ub3JnCipzeW50aGV0aWMgbXVsdGlwbHkJVG9yYmpvcm4gR3Jhbmx1bmQJdGVnZUBzd294LmNvbQoqYy10b3J0dXJlCQlUb3Jiam9ybiBHcmFubHVuZAl0ZWdlQHN3b3guY29tCmZpeGluY2x1ZGVzCQlCcnVjZSBLb3JiCQlia29yYkBnbnUub3JnCipnaW1wbCoJCQlKYWt1YiBKZWxpbmVrCQlqYWt1YkByZWRoYXQuY29tCipnaW1wbCoJCQlBbGR5IEhlcm5hbmRlegkJYWxkeWhAcmVkaGF0LmNvbQpnY3NlLmMgCQkJSmVmZiBMYXcJCWxhd0ByZWRoYXQuY29tCmdsb2JhbCBvcHQgZnJhbWV3b3JrCUplZmYgTGF3CQlsYXdAcmVkaGF0LmNvbQpqdW1wLmMJCQlEYXZpZCBTLiBNaWxsZXIJCWRhdmVtQHJlZGhhdC5jb20Kd2ViIHBhZ2VzCQlHZXJhbGQgUGZlaWZlcgkJZ2VyYWxkQHBmZWlmZXIuY29tCmJ1aWxkIHN0YXR1cyBsaXN0cwlKYW5pcyBKb2huc29uCQlqYW5pczE4N0B1cy5pYm0uY29tCmNvbmZpZy5zdWIvY29uZmlnLmd1ZXNzCUJlbiBFbGxpc3RvbgkJY29uZmlnLXBhdGNoZXNAZ251Lm9yZwpiYXNpYyBibG9jayByZW9yZGVyaW5nCUphc29uIEVja2hhcmR0CQlqbGVAcmljZS5lZHUKaTE4bgkJCVBoaWxpcHAgVGhvbWFzCQlwdGhAc3VzZS5kZQppMThuCQkJSm9zZXBoIE15ZXJzCQlqc21AcG9seW9taW5vLm9yZy51awpkaWFnbm9zdGljIG1lc3NhZ2VzCUdhYnJpZWwgRG9zIFJlaXMJZ2RyQGludGVncmFibGUtc29sdXRpb25zLm5ldApidWlsZCBtYWNoaW5lcnkgKCouaW4pCVBhb2xvIEJvbnppbmkJCWJvbnppbmlAZ251Lm9yZwpidWlsZCBtYWNoaW5lcnkgKCouaW4pCURKIERlbG9yaWUJCWRqQHJlZGhhdC5jb20KYnVpbGQgbWFjaGluZXJ5ICgqLmluKQlOYXRoYW5hZWwgTmVyb2RlCW5lcm9kZW5AZ2NjLmdudS5vcmcKYnVpbGQgbWFjaGluZXJ5ICgqLmluKQlBbGV4YW5kcmUgT2xpdmEJCWFvbGl2YUByZWRoYXQuY29tCmRvY3MgY28tbWFpbnRhaW5lcglHZXJhbGQgUGZlaWZlcgkJZ2VyYWxkQHBmZWlmZXIuY29tCmRvY3MgY28tbWFpbnRhaW5lcglKb3NlcGggTXllcnMJCWpzbUBwb2x5b21pbm8ub3JnLnVrCnByZWRpY3QuZGVmCQlKYW4gSHViaWNrYQkJamhAc3VzZS5jegpjb250cmliL3JlZ3Jlc3Npb24JR2VvZmYgS2VhdGluZwkJZ2VvZmZrQGdlb2Zmay5vcmcKZ2NvdgkJCUphbiBIdWJpY2thCQlqaEBzdXNlLmN6Cmdjb3YJCQlOYXRoYW4gU2lkd2VsbAkJbmF0aGFuQGNvZGVzb3VyY2VyeS5jb20Kb3B0aW9uIGhhbmRsaW5nCQlOZWlsIEJvb3RoCQluZWlsQGRhaWtva3V5YS5jby51awp0ZXN0c3VpdGUJCUphbmlzIEpvaG5zb24JCWphbmlzMTg3QHVzLmlibS5jb20KbWlkZGxlLWVuZAkJSmVmZiBMYXcJCWxhd0ByZWRoYXQuY29tCm1pZGRsZS1lbmQJCVJvZ2VyIFNheWxlCQlyb2dlckBleWVzb3Blbi5jb20KbWlkZGxlLWVuZAkJSWFuIExhbmNlIFRheWxvcglpYW5AYWlycy5jb20KbWlkZGxlLWVuZAkJRGllZ28gTm92aWxsbwkJZG5vdmlsbG9AZ29vZ2xlLmNvbQptaWRkbGUtZW5kCQlSaWNoYXJkIEd1ZW50aGVyCXJndWVudGhlckBzdXNlLmRlCnRyZWUtc3NhCQlEaWVnbyBOb3ZpbGxvCQlkbm92aWxsb0Bnb29nbGUuY29tCnRyZWUtc3NhCQlBbmRyZXcgTWFjTGVvZAkJYW1hY2xlb2RAcmVkaGF0LmNvbQpQUkUJCQlEYW5pZWwgQmVybGluCQlkYmVybGluQGRiZXJsaW4ub3JnCmNvZGUgc2lua2luZwkJRGFuaWVsIEJlcmxpbgkJZGJlcmxpbkBkYmVybGluLm9yZwptdWRmbGFwCQkJRnJhbmsgQ2guIEVpZ2xlcglmY2hlQHJlZGhhdC5jb20KdHJlZSBicm93c2VyL3VucGFyc2VyCVNlYmFzdGlhbiBQb3AJCXNlYmFzdGlhbi5wb3BAYW1kLmNvbQpzY2V2LCBkYXRhIGRlcGVuZGVuY2UJRGFuaWVsIEJlcmxpbgkJZGJlcmxpbkBkYmVybGluLm9yZwpzY2V2LCBkYXRhIGRlcGVuZGVuY2UJU2ViYXN0aWFuIFBvcAkJc2ViYXN0aWFuLnBvcEBhbWQuY29tCmxpbmVhciBsb29wIHRyYW5zZm9ybXMJRGFuaWVsIEJlcmxpbgkJZGJlcmxpbkBkYmVybGluLm9yZwpwcm9maWxlIGZlZWRiYWNrCUphbiBIdWJpY2thCQlqaEBzdXNlLmN6CnR5cGUtc2FmZSB2ZWN0b3JzCU5hdGhhbiBTaWR3ZWxsCQluYXRoYW5AY29kZXNvdXJjZXJ5LmNvbQphbGlhcyBhbmFseXNpcwkJRGFuaWVsIEJlcmxpbgkJZGJlcmxpbkBkYmVybGluLm9yZwpyZWxvYWQJCQlVbHJpY2ggV2VpZ2FuZAkJdXdlaWdhbmRAZGUuaWJtLmNvbQpyZWxvYWQJCQlCZXJuZCBTY2htaWR0CQliZXJuZC5zY2htaWR0QGFuYWxvZy5jb20KZGZwLmMsIHJlbGF0ZWQJCUJlbiBFbGxpc3RvbgkJYmplQGF1LmlibS5jb20KUlRMIG9wdGltaXplcnMJCUVyaWMgQm90Y2F6b3UJCWVib3RjYXpvdUBsaWJlcnR5c3VyZi5mcgphdXRvLXZlY3Rvcml6ZXIJCVJpY2hhcmQgR3VlbnRoZXIJcmd1ZW50aGVyQHN1c2UuZGUKYXV0by12ZWN0b3JpemVyCQlaZGVuZWsgRHZvcmFrCQlvb2tAdWN3LmN6CmF1dG8tdmVjdG9yaXplcgkJSXJhIFJvc2VuCQlpcmFyQGlsLmlibS5jb20KbG9vcCBpbmZyYXN0cnVjdHVyZQlaZGVuZWsgRHZvcmFrCQlvb2tAdWN3LmN6Ck9wZW5NUAkJCUpha3ViIEplbGluZWsJCWpha3ViQHJlZGhhdC5jb20KCk5vdGUgdGhhdCBpbmRpdmlkdWFscyB3aG8gbWFpbnRhaW4gcGFydHMgb2YgdGhlIGNvbXBpbGVyIG5lZWQgYXBwcm92YWwgdG8KY2hlY2sgaW4gY2hhbmdlcyBvdXRzaWRlIG9mIHRoZSBwYXJ0cyBvZiB0aGUgY29tcGlsZXIgdGhleSBtYWludGFpbi4KCgkJCU5vbi1BbGdvcml0aG1pYyBNYWludGFpbmVycwoKbG9vcCBvcHRpbWl6ZXIJCVpkZW5layBEdm9yYWsJCW9va0B1Y3cuY3oKbG9vcCBvcHRpbWl6ZXIJCURhbmllbCBCZXJsaW4JCWRiZXJsaW5AZGJlcmxpbi5vcmcKbGliY3BwCQkJVG9tIFRyb21leQkJdHJvbWV5QHJlZGhhdC5jb20KCk5vdGUgdGhhdCBpbmRpdmlkdWFscyB3aG8gbWFpbnRhaW4gcGFydHMgb2YgdGhlIGNvbXBpbGVyIGFzIG5vbi1hbGdvcml0aG1pYwptYWludGFpbmVycyBuZWVkIGFwcHJvdmFsIHRvIGNoZWNrIGluIGFsZ29yaXRobWljIGNoYW5nZXMgb3IgY2hhbmdlcwpvdXRzaWRlIG9mIHRoZSBwYXJ0cyBvZiB0aGUgY29tcGlsZXIgdGhleSBtYWludGFpbi4KCgkJCVJldmlld2VycwoKZGF0YWZsb3cJCVBhb2xvIEJvbnppbmkJCWJvbnppbmlAZ251Lm9yZwpkYXRhZmxvdwkJU2VvbmdiYWUgUGFyawkJc2VvbmdiYWUucGFya0BnbWFpbC5jb20KZGF0YWZsb3cgCQlLZW5uZXRoIFphZGVjawkJemFkZWNrQG5hdHVyYWxicmlkZ2UuY29tCkZvcnRyYW4JCQlKYW5uZSBCbG9tcXZpc3QJCWpiQGdjYy5nbnUub3JnCkZvcnRyYW4JCQlUb2JpYXMgQnVybnVzCQlidXJudXNAbmV0LWIuZGUKRm9ydHJhbgkJCUplcnJ5IERlTGlzbGUJCWp2ZGVsaXNsZUBnY2MuZ251Lm9yZwpGb3J0cmFuCQkJRXJpayBFZGVsbWFubgkJZXJpay5lZGVsbWFubkBpa2kuZmkKRm9ydHJhbgkJCURhbmllbCBGcmFua2UJCWZyYW5rZS5kYW5pZWxAZ21haWwuY29tCkZvcnRyYW4JCQlTdGV2ZW4gRy4gS2FyZ2wJCXNna0B0cm91dG1hc2suYXBsLndhc2hpbmd0b24uZWR1CkZvcnRyYW4JCQlUaG9tYXMgS/ZuaWcJCXRrb2VuaWdAZ2NjLmdudS5vcmcKRm9ydHJhbgkJCURhbmllbCBLcmFmdAkJZEBkb21vYi5ldQpGb3J0cmFuCQkJVG9vbiBNb2VuZQkJdG9vbkBtb2VuZS5vcmcKRm9ydHJhbgkJCU1pa2FlbCBNb3JpbgkJbWlrYWVsLm1vcmluQHRlbGUyLmZyCkZvcnRyYW4JCQlCcm9va3MgTW9zZXMJCWJyb29rcy5tb3Nlc0Bjb2Rlc291cmNlcnkuY29tCkZvcnRyYW4JCQlUb2JpYXMgU2NobPx0ZXIJCXRvYmlhcy5zY2hsdWV0ZXJAcGh5c2lrLnVuaS1tdWVuY2hlbi5kZQpGb3J0cmFuCQkJUGF1bCBUaG9tYXMJCXBhdWx0QGdjYy5nbnUub3JnCkZvcnRyYW4JCQlKYW51cyBXZWlsCQlqYW51c0BnY2MuZ251Lm9yZwpHcmFwaGl0ZQkJRGFuaWVsIEJlcmxpbgkJZGJlcmxpbkBkYmVybGluLm9yZwpHcmFwaGl0ZQkJU2ViYXN0aWFuIFBvcAkJc2ViYXN0aWFuLnBvcEBhbWQuY29tCnJlZ2lzdGVyIGFsbG9jYXRpb24JUGV0ZXIgQmVyZ25lcgkJYmVyZ25lckB2bmV0LmlibS5jb20KcmVnaXN0ZXIgYWxsb2NhdGlvbglWbGFkaW1pciBNYWthcm92CXZtYWthcm92QHJlZGhhdC5jb20KcmVnaXN0ZXIgYWxsb2NhdGlvbglLZW5uZXRoIFphZGVjawkJemFkZWNrQG5hdHVyYWxicmlkZ2UuY29tCnJlZ2lzdGVyIGFsbG9jYXRpb24JU2VvbmdiYWUgUGFyawkJc2VvbmdiYWUucGFya0BnbWFpbC5jb20KCk5vdGUgdGhhdCB3aGlsZSByZXZpZXdlcnMgY2FuIGFwcHJvdmUgY2hhbmdlcyB0byBwYXJ0cyBvZiB0aGUgY29tcGlsZXIKdGhhdCB0aGV5IG1haW50YWluLCB0aGV5IHN0aWxsIG5lZWQgYXBwcm92YWwgZm9yIHRoZWlyIG93biBwYXRjaGVzCmZyb20gb3RoZXIgbWFpbnRhaW5lcnMgb3IgcmV2aWV3ZXJzLgoKCQkJV3JpdGUgQWZ0ZXIgQXBwcm92YWwJKGxhc3QgbmFtZSBhbHBoYWJldGljYWwgb3JkZXIpCgpNYXJrIEcuIEFkYW1zCQkJCQltYXJrLmcuYWRhbXNAc3ltcGF0aWNvLmNhClJha3NpdCBBc2hvawkJCQkJcmFrc2l0QGdvb2dsZS5jb20KTWF0dCBBdXN0ZXJuCQkJCQlhdXN0ZXJuQGdvb2dsZS5jb20KRGF2aWQgQXllcnMJCQkJCWF5ZXJzQGZzZmUub3JnCkdpb3Zhbm5pIEJham8JCQkJCWdpb3Zhbm5pYmFqb0BnY2MuZ251Lm9yZwpTaW1vbiBCYWxkd2luCQkJCQlzaW1vbmJAZ29vZ2xlLmNvbQpTY290dCBCYW1icm91Z2gJCQkJCXNjb3R0YkBuZXR3aW5kZXIub3JnCldvbGZnYW5nIEJhbmdlcnRoCQkJCWJhbmdlcnRoQGRlYWxpaS5vcmcKQW5kcmV5IEJlbGV2YW50c2V2CQkJCWFiZWxAaXNwcmFzLnJ1ClBldGVyIEJlcmduZXIJCQkJCWJlcmduZXJAdm5ldC5pYm0uY29tCkphbiBCZXVsaWNoCQkJCQlqYmV1bGljaEBub3ZlbGwuY29tCkRhdmlkIEJpbGxpbmdodXJzdAkJCQlEYXZpZC5CaWxsaW5naHVyc3RAcmlvdGludG8uY29tClRvbWFzIEJpbHkJCQkJCXRiaWx5QHN1c2UuY3oKTGF1cnluYXMgQml2ZWluaXMJCQkJbGF1cnluYXMuYml2ZWluaXNAZ21haWwuY29tCkVyaWMgQmxha2UJCQkJCWVyaWNiQGdjYy5nbnUub3JnCkppbSBCbGFuZHkJCQkJCWppbWJAY29kZXNvdXJjZXJ5LmNvbQpQaGlsIEJsdW5kZWxsCQkJCQlwYkBmdXR1cmV0di5jb20KSGFucyBCb2VobQkJCQkJaGJvZWhtQGdjYy5nbnUub3JnClNlZ2hlciBCb2Vzc2Vua29vbAkJCQlzZWdoZXJAa2VybmVsLmNyYXNoaW5nLm9yZwpBbmRyZWEgQm9uYQkJCQkJYW5kcmVhLmJvbmFAc3QuY29tClBhb2xvIEJvbnppbmkJCQkJCWJvbnppbmlAZ251Lm9yZwpOZWlsIEJvb3RoCQkJCQluZWlsQGRhaWtva3V5YS5jby51awpTdGV2ZW4gQm9zc2NoZXIJCQkJCXN0ZXZlbkBnY2MuZ251Lm9yZwpSb2JlcnQgQm93ZGlkZ2UJCQkJCWJvd2RpZGdlQGFwcGxlLmNvbQpKb2VsIEJyb2JlY2tlcgkJCQkJYnJvYmVja2VyQGduYXQuY29tCkRhdmUgQnJvbGxleQkJCQkJYnJvbGxleUByZWRoYXQuY29tCkp1bGlhbiBCcm93bgkJCQkJanVsaWFuQGNvZGVzb3VyY2VyeS5jb20KQ2hyaXN0aWFuIEJydWVsCQkJCQljaHJpc3RpYW4uYnJ1ZWxAc3QuY29tCktldmluIEJ1ZXR0bmVyCQkJCQlrZXZpbmJAcmVkaGF0LmNvbQpBbmRyZXcgQ2FnbmV5CQkJCQljYWduZXlAcmVkaGF0LmNvbQpDaGFuZHJhIENoYXZ2YQkJCQkJY2NoYXZ2YUByZWRoYXQuY29tCldpbGxpYW0gQ29oZW4JCQkJCXdjb2hlbkByZWRoYXQuY29tCkpvc2ggQ29ubmVyCQkJCQlqY29ubmVyQGFwcGxlLmNvbQpSLiBLZWxsZXkgQ29vawkJCQkJa2Nvb2tAZ2NjLmdudS5vcmcKQ2hyaXN0aWFuIENvcm5lbHNzZW4JCQkJY2Nvcm5AY3MudHUtYmVybGluLmRlCkZyYW7nb2lzLVhhdmllciBDb3VkZXJ0CQkJCWZ4Y291ZGVydEBnY2MuZ251Lm9yZwpDYXJ5IENvdXRhbnQJCQkJCWNjb3V0YW50QGdvb2dsZS5jb20KSWFuIERhbGwJCQkJCWlhbkBiZXdhcmUuZHJvcGJlYXIuaWQuYXUKRGF2aWQgRGFuZXkJCQkJCWRhdmlkLmRhbmV5QGNhdml1bW5ldHdvcmtzLmNvbQpCdWQgRGF2aXMJCQkJCWptZGF2aXNAbGluay5jb20KQmVub2l0IER1cG9udCBkZSBEaW5lY2hpbgkJCWJlbm9pdC5kdXBvbnQtZGUtZGluZWNoaW5Ac3QuY29tCk1pY2hhZWwgRWFnZXIJCQkJCWVhZ2VyQGVhZ2VyY29uLmNvbQpNb2hhbiBFbWJhcgkJCQkJZ251c3R1ZmZAdGhpc2lzY29vbC5jb20KUmV2aXRhbCBFcmVzCQkJCQllcmVzQGlsLmlibS5jb20KTWFyYyBFc3BpZQkJCQkJZXNwaWVAY3ZzLm9wZW5ic2Qub3JnClJhZmFlbCDBdmlsYSBkZSBFc3DtbmRvbGEJCQlyYWZhZWwuZXNwaW5kb2xhQGdtYWlsLmNvbQpBbnNnYXIgRXN6dGVybWFubgkJCQlhbnNnYXJAdGhwaHkudW5pLWR1ZXNzZWxkb3JmLmRlCkRvdWcgRXZhbnMJCQkJCWRqZUBnb29nbGUuY29tCkNocmlzIEZhaXJsZXMJCQkJCWNmYWlybGVzQGdjYy5nbnUub3JnClRob21hcyBGaXR6c2ltbW9ucwkJCQlmaXR6c2ltQHJlZGhhdC5jb20KQnJpYW4gRm9yZAkJCQkJZm9yZEB2c3MuZnNpLmNvbQpOYXRoYW4gRnJveWQJCQkJCWZyb3lkbmpAY29kZXNvdXJjZXJ5LmNvbQpDaGFvLXlpbmcgRnUJCQkJCWZ1QG1pcHMuY29tCkthdmVoIEdoYXppCQkJCQlnaGF6aUBjYWlwLnJ1dGdlcnMuZWR1Ck1hdHRoZXcgR2luZ2VsbAkJCQkJZ2luZ2VsbEBnbmF0LmNvbQpUcmlzdGFuIEdpbmdvbGQJCQkJCWdpbmdvbGRAYWRhY29yZS5jb20KQW50aG9ueSBHcmVlbgkJCQkJZ3JlZW5AcmVkaGF0LmNvbQpEb3VnIEdyZWdvcgkJCQkJZG91Zy5ncmVnb3JAZ21haWwuY29tCkpvbiBHcmltbQkJCQkJamdyaW1tMkB1cy5pYm0uY29tClRvYmlhcyBHcm9zc2VyCQkJCQlncm9zc2VyQGZpbS51bmktcGFzc2F1LmRlCkxhdXJlbnQgR3VlcmJ5CQkJCQlsYXVyZW50QGd1ZXJieS5uZXQKWHVlcGVuZyBHdW8JCQkJCXh1ZXBlbmcuZ3VvQGludGVsLmNvbQpNb3N0YWZhIEhhZ29nCQkJCQloYWdvZ0BnY2MuZ251Lm9yZwpPbGl2aWVyIEhhaW5xdWUJCQkJCWhhaW5xdWVAYWN0LWV1cm9wZS5mcgpTdHVhcnQgSGFzdGluZ3MJCQkJCXN0dWFydEBhcHBsZS5jb20KUGF0IEhhdWdlbgkJCQkJcHRoYXVnZW5AdXMuaWJtLmNvbQpNYXJrIEhlZmZlcm5hbgkJCQkJbWVoZWZmQGdvb2dsZS5jb20KR2VvcmdlIEhlbGZmcmljaAkJCQlnZW9yZ2VAZ2NjLmdudS5vcmcKRmVyZ3VzIEhlbmRlcnNvbgkJCQlmamhAY3MubXUub3ouYXUKTWF0dGhldyBIaWxsZXIJCQkJCWhpbGxlckByZWRoYXQuY29tCkRhbiBIaXBzY2htYW4JCQkJCWRzaEBnb29nbGUuY29tCk1hbmZyZWQgSG9sbHN0ZWluCQkJCW1oQHN1c2UuY29tCkZhbGsgSHVlZmZuZXIJCQkJCWZhbGtAZGViaWFuLm9yZwpBbmRyZXcgSm9obiBIdWdoZXMJCQkJZ251X2FuZHJld0BtZW1iZXIuZnNmLm9yZwpBbmR5IEh1dGNoaW5zb24JCQkJCWh1dGNoaW5zb25hbmR5QGFpbS5jb20KQmVybmFyZG8gSW5ub2NlbnRpCQkJCWJlcm5pZUBkZXZlbGVyLmNvbQpEYW5pZWwgSmFjb2Jvd2l0egkJCQlkYW5AZGViaWFuLm9yZwpBbmRyZWFzIEphZWdlcgkJCQkJYWpAc3VzZS5kZQpIYXJzaGEgSmFnYXNpYQkJCQkJaGFyc2hhLmphZ2FzaWFAYW1kLmNvbQpGYXJpYm9yeiBKYWhhbmlhbgkJCQlmamFoYW5pYW5AYXBwbGUuY29tCk1hcnRpbiBKYW1ib3IJCQkJCW1qYW1ib3JAc3VzZS5jegpBbmRyZXcgSmVubmVyCQkJCQlhbmRyZXdAY29kZXNvdXJjZXJ5LmNvbQpLZWFuIEpvaG5zdG9uCQkJCQlqa2pAc2NvLmNvbQpQaGlsbGlwIEpvcmRhbgkJCQkJcGhpbGxpcC5tLmpvcmRhbkBnbWFpbC5jb20KVGltIEpvc2xpbmcJCQkJCXRlakBtZWxicGMub3JnLmF1ClZpY3RvciBLYXBsYW5za3kJCQkJdmljdG9ya0BpbC5pYm0uY29tCkJyZW5kYW4gS2Vob2UJCQkJCWJyZW5kYW5AemVuLm9yZwpNYXR0aGlhcyBLbG9zZQkJCQkJZG9rb0BkZWJpYW4ub3JnCkplZmYgS25hZ2dzCQkJCQlqa25hZ2dzQHJlZGhhdC5jb20KTWljaGFlbCBLb2NoCQkJCQlrb25xdWVyb3JAZ214LmRlCkRhdmUgS29ybgkJCQkJZGF2ZS5rb3JuLmN5Z3dpbkBnbWFpbC5jb20KTWF0dCBLcmFhaQkJCQkJa3JhYWlAZnRiZnMub3JnCk1heGltIEt1dnlya292CQkJCQltYXhpbUBjb2Rlc291cmNlcnkuY29tCkRvdWcgS3dhbgkJCQkJZG91Z2t3YW5AZ29vZ2xlLmNvbQpTY290dCBSb2JlcnQgTGFkZAkJCQlzY290dC5sYWRkQGNveW90ZWd1bGNoLmNvbQpSYXp5YSBMYWRlbHNreQkJCQkJcmF6eWFAZ2NjLmdudS5vcmcKQWFyb24gVy4gTGFGcmFtYm9pc2UJCQkJYWFyb25hdmF5NjJAYWFyb253bC5jb20KUmFzayBJbmdlbWFubiBMYW1iZXJ0c2VuCQkJcmFza0BzeWdlaHVzLmRrCkFzaGVyIExhbmd0b24JCQkJCWxhbmd0b24yQGxsbmwuZ292CkNocmlzIExhdHRuZXIJCQkJCXNhYnJlQG5vbmRvdC5vcmcKVGVycnkgTGF1cmVuem8JCQkJCXRsYXVyZW56b0BnbWFpbC5jb20KTWFyYyBMZWhtYW5uCQkJCQlwY2dAZ29vZi5jb20KSmFtZXMgTGVta2UJCQkJCWp3bGVta2VAanVuaXBlci5uZXQKS3JpYW5nIExlcmRzdXdhbmFraWoJCQkJbGVyZHN1d2FAdXNlcnMuc291cmNlZm9yZ2UubmV0CkNoZW4gTGlxaW4JCQkJCWxpcWluLmNoZW5Ac3VucGx1c2N0LmNvbQpTYSBMaXUJCQkJCQlzYWxpdUBkZS5pYm0uY29tClJhbHBoIExvYWRlcgkJCQkJcmNsQGlodWcuY28ubnoKR2Fib3IgTG9raQkJCQkJbG9raUBpbmYudS1zemVnZWQuaHUKU2FuZHJhIExvb3NlbW9yZQkJCQlzYW5kcmFAY29kZXNvdXJjZXJ5LmNvbQpNYW51ZWwgTPNwZXotSWLh8WV6CQkJCW1hbnVAZ2NjLmdudS5vcmcKTWFydGluIHYuIEz2d2lzCQkJCQlsb2V3aXNAaW5mb3JtYXRpay5odS1iZXJsaW4uZGUKSC5KLiBMdQkJCQkJCWhqbC50b29sc0BnbWFpbC5jb20KWGlubGlhbmcgRGF2aWQgTGkJCQkJZGF2aWR4bEBnb29nbGUuY29tCkx1aXMgTWFjaGFkbwkJCQkJbHVpc2dwbUBici5pYm0uY29tCldpbGxpYW0gTWFkZG94CQkJCQltYWRkb3hAZ29vZ2xlLmNvbQpaaWdhIE1haGtvdmVjCQkJCQl6aWdhLm1haGtvdmVjQGtsaWthLnNpClNpbW9uIE1hcnRpbgkJCQkJc2ltYXJ0aW5AdXNlcnMuc291cmNlZm9yZ2UubmV0ClJhbmppdCBNYXRoZXcJCQkJCXJtYXRoZXdAaG90bWFpbC5jb20KQ2hyaXMgTWF0dGhld3MJCQkJCWNocmlzbWF0dGhld3NAZ29vZ2xlLmNvbQpNaWNoYWVsIE1hdHoJCQkJCW1hdHpAc3VzZS5kZQpHcmVnIE1jR2FyeQkJCQkJZ2ttQGdudS5vcmcKQWRhbSBNZWdhY3oJCQkJCWFkYW1AeHd0Lm9yZwpCaW5nZmVuZyBNZWkJCQkJCWJtZWlAYnJvYWRjb20uY29tCk1hcnRpbiBNaWNobG1heXIJCQkJdGJtQGN5cml1cy5jb20KTGVlIE1pbGx3YXJkCQkJCQlsZWUubWlsbHdhcmRAZ21haWwuY29tCkFsYW4gTW9kcmEJCQkJCWFtb2RyYUBiaWdwb25kLm5ldC5hdQpBbGV4YW5kZXIgTW9uYWtvdgkJCQlhbW9uYWtvdkBpc3ByYXMucnUKQ2F0aGVyaW5lIE1vb3JlCQkJCQljbG1AY29kZXNvdXJjZXJ5LmNvbQpKYW1lcyBBLiBNb3JyaXNvbgkJCQlwaHl0aG9uQGdjYy5nbnUub3JnCkRpcmsgTXVlbGxlcgkJCQkJZG11ZWxsZXJAc3VzZS5kZQpBZGFtIE5lbWV0CQkJCQlhbmVtZXRAY2F2aXVtbmV0d29ya3MuY29tClRob21hcyBOZXVtYW5uCQkJCQl0bmV1bWFubkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQKRGFuIE5pY29sYWVzY3UJCQkJCWRhbm5AaWNzLnVjaS5lZHUKRG9yaXQgTnV6bWFuCQkJCQlkb3JpdEBpbC5pYm0uY29tCkRhdmlkIE8nQnJpZW4JCQkJCW9icmllbkBGcmVlQlNELm9yZwpDYXJsb3MgTydEb25lbGwJCQkJCWNhcmxvc0Bjb2Rlc291cmNlcnkuY29tClBldGVyIE8nR29ybWFuCQkJCQlwb2dtYUB0aGV3cml0dGVud29yZC5jb20KSmVmZnJleSBELiBPbGRoYW0JCQkJb2xkaGFtQGNvZGVzb3VyY2VyeS5jb20KQW5kcmVhIE9ybnN0ZWluCQkJCQlhbmRyZWEub3Juc3RlaW5Ac3QuY29tClNlb25nYmFlIFBhcmsJCQkJCXNlb25nYmFlLnBhcmtAZ21haWwuY29tCkRldmFuZyBQYXRlbAkJCQkJZHBhdGVsQGFwcGxlLmNvbQpGZXJuYW5kbyBQZXJlaXJhCQkJCXByb25lc3RvQGdtYWlsLmNvbQpOaWNvbGFzIFBpdHJlCQkJCQluaWNvQGNhbS5vcmcKQW50b25pdSBQb3AJCQkJCWFudG9uaXUucG9wQGdtYWlsLmNvbQpWbGFkaW1pciBQcnVzCQkJCQl2bGFkaW1pckBjb2Rlc291cmNlcnkuY29tCkplcnJ5IFF1aW5uCQkJCQlqbHF1aW5uQG9wdG9ubGluZS5uZXQKRHdhcmFrYW5hdGggUmFqYWdvcGFsCQkJCWR3YXJhay5yYWphZ29wYWxAYW1kLmNvbQpSYW1hbmEgUmFkaGFrcmlzaG5hbgkJCQlyYW1hbmEuckBnbWFpbC5jb20KUm9sZiBSYXNtdXNzZW4JCQkJCXJvbGZ3ckBnY2MuZ251Lm9yZwpWb2xrZXIgUmVpY2hlbHQJCQkJCXYucmVpY2hlbHRAbmV0Y29sb2duZS5kZQpKb2VybiBSZW5uZWNrZQkJCQkJam9lcm4ucmVubmVja2VAYXJjLmNvbQpCZXJuaGFyZCBSZXV0bmVyLUZpc2NoZXIJCQlyZXAuZG90Lm5vcEBnbWFpbC5jb20KVG9tIFJpeAkJCQkJCXRyaXhAcmVkaGF0LmNvbQpDcmFpZyBSb2RyaWd1ZXMJCQkJCXJvZHJpZ2NAZ2NjLmdudS5vcmcKRXJ2ZW4gUm9ob3UJCQkJCWVydmVuLnJvaG91QGlucmlhLmZyCklyYSBSb3NlbgkJCQkJaXJhckBpbC5pYm0uY29tCk1hY2llaiBXLiBSb3p5Y2tpCQkJCW1hY3JvQGxpbnV4LW1pcHMub3JnCkRvdWdsYXMgUnVwcAkJCQkJcnVwcEBnbmF0LmNvbQpTaWx2aXVzIFJ1cwkJCQkJcnVzQGdvb2dsZS5jb20KTWF0dGhldyBTYWNocwkJCQkJbXNhY2hzQGFwcGxlLmNvbQpEdW5jYW4gU2FuZHMJCQkJCWJhbGRyaWNrQGdjYy5nbnUub3JnCkRvZGppIFNla2V0ZWxpCQkJCQlkc2VrZXRlbEByZWRoYXQuY29tClN2ZWluIFNlbGRhbAkJCQkJc3ZlaW5AZGV2LnNlbGRhbC5jb20KVGhpZW1vIFNldWZlcgkJCQkJdGhzQG5ldHdvcmtuby5kZQpNYXJrIFNoaW53ZWxsCQkJCQlzaGlud2VsbEBjb2Rlc291cmNlcnkuY29tCkpvaGFubmVzIFNpbmdsZXIJCQkJc2luZ2xlckBpcmEudWthLmRlCkZyYW56IFNpcmwJCQkJCWZyYW56LnNpcmwta2VybmVsQGxhdXRlcmJhY2guY29tCkphbiBTam9kaW4JCQkJCWphbi5zam9kaW5AYW1kLmNvbQpNaWNoYWVsIFNva29sb3YJCQkJCW1zb2tvbG92QGl2YW4uSGFyaGFuLk9SRwpSaWNoYXJkIFN0YWxsbWFuCQkJCXJtc0BnbnUub3JnCkJhc2lsZSBTdGFyeW5rZXZpdGNoCQkJCWJhc2lsZUBzdGFyeW5rZXZpdGNoLm5ldApKYWt1YiBTdGFzemFrCQkJCQlrdWJhQGV0LnBsCkdyYWhhbSBTdG90dAkJCQkJZ3JhaGFtLnN0b3R0QGJ0aW50ZXJuZXQuY29tCkFuZHJldyBTdHViYnMJCQkJCWFtc0Bjb2Rlc291cmNlcnkuY29tCk1pa2UgU3R1bXAJCQkJCW1yc0BhcHBsZS5jb20KSmVmZiBTdHVybQkJCQkJanN0dXJtQGdjYy5nbnUub3JnCkdhYnJpZWxlIFN2ZWx0bwkJCQkJZ2FicmllbGUuc3ZlbHRvQHN0LmNvbQpTYW11ZWwgVGFyZGlldQkJCQkJc2FtQHJmYzExNDkubmV0CktyZXN0ZW4gS3JhYiBUaG9ydXAJCQkJa3JhYkBnY2MuZ251Lm9yZwpDYXJvbGluZSBUaWNlCQkJCQljdGljZUBhcHBsZS5jb20KRGF2aWQgVW5nCQkJCQlkYXZpZHVAbWlwcy5jb20KS3JpcyBWYW4gSGVlcwkJCQkJa3Jpcy52YW4uaGVlc0BvcmFjbGUuY29tCkpvbmF0aGFuIFdha2VseQkJCQkJcmVkaUBnY2MuZ251Lm9yZwpGZW5nIFdhbmcJCQkJCWZlbmd3YW5nQG51ZHQuZWR1LmNuClN0ZXBoZW4gTS4gV2ViYgkJCQkJc3RlcGhlbi53ZWJiQGJyZWdtYXNvZnQuY29tCkpvaG4gV2VobGUJCQkJCWpvaG5AZmVpdGguY29tCkZsb3JpYW4gV2VpbWVyCQkJCQlmd0BkZW5lYi5lbnlvLmRlClphY2sgV2VpbmJlcmcJCQkJCXphY2t3QHBhbml4LmNvbQpNYXJrIFdpZWxhYXJkCQkJCQltYXJrQGdjYy5nbnUub3JnCk9sbGllIFdpbGQJCQkJCWFhd0Bnb29nbGUuY29tClJhbGYgV2lsZGVuaHVlcwkJCQkJUmFsZi5XaWxkZW5odWVzQGdteC5kZQpDYXJsbyBXb29kCQkJCQljYXJsb0BhbGlub2UuY29tCkxlLUNodW4gV3UJCQkJCWxjd3VAZ29vZ2xlLmNvbQpDYW5xdW4gWWFuZwkJCQkJY2FucXVuQG51ZHQuZWR1LmNuCkpvZXkgWWUJCQkJCQlqb2V5LnllQGludGVsLmNvbQpLZW5uZXRoIFphZGVjawkJCQkJemFkZWNrQG5hdHVyYWxicmlkZ2UuY29tCkppZSBaaGFuZwkJCQkJamllLnpoYW5nQGFuYWxvZy5jb20KSm9uIFppZWdsZXIJCQkJCWpvbnpAYXBwbGUuY29tClJvbWFuIFppcHBlbAkJCQkJemlwcGVsQGxpbnV4LW02OGsub3JnCkpvc2VmIFpsb21lawkJCQkJam9zZWYuemxvbWVrQGVtYWlsLmN6CgpCdWcgZGF0YWJhc2Ugb25seSBhY2NvdW50cwoKSmFtZXMgRGVubmV0dAkJCQkJamRlbm5ldHRAYWNtLm9yZwpDaHJpc3RpYW4gRWhyaGFyZHQJCQkJZWhyaGFyZHRAbWF0aGVtYXRpay51bmktdWxtLmRlCkRhcmEgSGF6ZWdoaQkJCQkJZGhhemVnaGlAeWFob28uY29tCg==