Tm90ZQo9PT09CgpUaGlzIGZpbGUgY29udGFpbnMgaW5mb3JtYXRpb24gYWJvdXQgcGVvcGxlIHdobyBhcmUgcGVybWl0dGVkIHRvIG1ha2UKY2hhbmdlcyB0byB2YXJpb3VzIHBhcnRzIG9mIHRoZSBjb21waWxlciBhbmQgYXNzb2NpYXRlZCBsaWJyYXJpZXMuCgpQbGVhc2UgZG8gbm90IGNvbnRhY3QgdGhlIHBlb3BsZSBpbiB0aGlzIGZpbGUgZGlyZWN0bHkgdG8gcmVwb3J0CnByb2JsZW1zIGluIEdDQy4KCkZvciBnZW5lcmFsIGluZm9ybWF0aW9uIGFib3V0IEdDQywgcGxlYXNlIHZpc2l0OgoKICBodHRwOi8vZ2NjLmdudS5vcmcKClRvIHJlcG9ydCBwcm9ibGVtcyBpbiBHQ0MsIHBsZWFzZSB2aXNpdDoKCiAgaHR0cDovL2djYy5nbnUub3JnL2J1Z3MuaHRtbAoKTWFpbnRhaW5lcnMKPT09PT09PT09PT0KCgkJCUdsb2JhbCBSZXZpZXdlcnMKClJpY2hhcmQgRWFybnNoYXcJCQkJcmljaGFyZC5lYXJuc2hhd0Bhcm0uY29tClJpY2hhcmQgQmllbmVyCQkJCQlyZ3VlbnRoZXJAc3VzZS5kZQpSaWNoYXJkIEhlbmRlcnNvbgkJCQlydGhAcmVkaGF0LmNvbQpKYWt1YiBKZWxpbmVrCQkJCQlqYWt1YkByZWRoYXQuY29tCkdlb2ZmcmV5IEtlYXRpbmcJCQkJZ2VvZmZrQGdlb2Zmay5vcmcKUmljaGFyZCBLZW5uZXIJCQkJCWtlbm5lckBueXUuZWR1CkplZmYgTGF3CQkJCQlsYXdAcmVkaGF0LmNvbQpNaWNoYWVsIE1laXNzbmVyCQkJCWdudUB0aGUtbWVpc3NuZXJzLm9yZwpKYXNvbiBNZXJyaWxsCQkJCQlqYXNvbkByZWRoYXQuY29tCkRhdmlkIFMuIE1pbGxlcgkJCQkJZGF2ZW1AcmVkaGF0LmNvbQpNYXJrIE1pdGNoZWxsCQkJCQltYXJrQGNvZGVzb3VyY2VyeS5jb20KSm9zZXBoIE15ZXJzCQkJCQlqb3NlcGhAY29kZXNvdXJjZXJ5LmNvbQpEaWVnbyBOb3ZpbGxvCQkJCQlkbm92aWxsb0Bnb29nbGUuY29tCkJlcm5kIFNjaG1pZHQJCQkJCWJlcm5kc0Bjb2Rlc291cmNlcnkuY29tCklhbiBMYW5jZSBUYXlsb3IJCQkJaWFuQGFpcnMuY29tCkppbSBXaWxzb24JCQkJCXdpbHNvbkB0dWxpcHRyZWUub3JnCgpOb3RlIHRoYXQgd2hpbGUgZ2xvYmFsIHJldmlld2VycyBjYW4gYXBwcm92ZSBjaGFuZ2VzIHRvIGFueSBwYXJ0IG9mCnRoZSBjb21waWxlciBvciBhc3NvY2lhdGVkIGxpYnJhcmllcywgdGhleSBzdGlsbCBuZWVkIGFwcHJvdmFsIGZvcgp0aGVpciBvd24gcGF0Y2hlcyBmcm9tIG90aGVyIG1haW50YWluZXJzIG9yIHJldmlld2Vycy4KCgkJCUNQVSBQb3J0IE1haW50YWluZXJzCShDUFUgYWxwaGFiZXRpY2FsIG9yZGVyKQoKYWFyY2g2NCBwb3J0CQlNYXJjdXMgU2hhd2Nyb2Z0CW1hcmN1cy5zaGF3Y3JvZnRAYXJtLmNvbQphYXJjaDY0IHBvcnQJCVJpY2hhcmQgRWFybnNoYXcJcmljaGFyZC5lYXJuc2hhd0Bhcm0uY29tCmFscGhhIHBvcnQJCVJpY2hhcmQgSGVuZGVyc29uCXJ0aEByZWRoYXQuY29tCmFyYyBwb3J0CQlKb2VybiBSZW5uZWNrZQkJam9lcm4ucmVubmVja2VAZW1iZWNvc20uY29tCmFybSBwb3J0CQlOaWNrIENsaWZ0b24JCW5pY2tjQHJlZGhhdC5jb20KYXJtIHBvcnQJCVJpY2hhcmQgRWFybnNoYXcJcmljaGFyZC5lYXJuc2hhd0Bhcm0uY29tCmFybSBwb3J0CQlQYXVsIEJyb29rCQlwYXVsQGNvZGVzb3VyY2VyeS5jb20KYXJtIHBvcnQJCVJhbWFuYSBSYWRoYWtyaXNobmFuCXJhbWFuYS5yYWRoYWtyaXNobmFuQGFybS5jb20KYXZyIHBvcnQJCURlbmlzIENoZXJ0eWtvdgkJY2hlcnR5a292QGdtYWlsLmNvbQphdnIgcG9ydAkJQW5hdG9seSBTb2tvbG92CQlhZXNva0Bwb3N0LnJ1CmF2ciBwb3J0CQlFcmljIFdlZGRpbmd0b24JCWVyaWMud2VkZGluZ3RvbkBhdG1lbC5jb20KYmZpbiBwb3J0CQlCZXJuZCBTY2htaWR0CQliZXJuZHNAY29kZXNvdXJjZXJ5LmNvbQpiZmluIHBvcnQJCUppZSBaaGFuZwkJanpoYW5nOTE4QGdtYWlsLmNvbQpjNnggcG9ydAkJQmVybmQgU2NobWlkdAkJYmVybmRzQGNvZGVzb3VyY2VyeS5jb20KY3JpcyBwb3J0CQlIYW5zLVBldGVyIE5pbHNzb24JaHBAYXhpcy5jb20KZXBpcGhhbnkgcG9ydAkJSm9lcm4gUmVubmVja2UJCWpvZXJuLnJlbm5lY2tlQGVtYmVjb3NtLmNvbQpmcjMwIHBvcnQJCU5pY2sgQ2xpZnRvbgkJbmlja2NAcmVkaGF0LmNvbQpmcnYgcG9ydAkJTmljayBDbGlmdG9uCQluaWNrY0ByZWRoYXQuY29tCmZydiBwb3J0CQlBbGV4YW5kcmUgT2xpdmEJCWFvbGl2YUByZWRoYXQuY29tCmg4IHBvcnQJCQlKZWZmIExhdwkJbGF3QHJlZGhhdC5jb20KaDggcG9ydAkJCUthenUgSGlyYXRhCQlrYXp1QGNvZGVzb3VyY2VyeS5jb20KaHBwYSBwb3J0CQlKZWZmIExhdwkJbGF3QHJlZGhhdC5jb20KaHBwYSBwb3J0CQlKb2huIERhdmlkIEFuZ2xpbglkYXZlLmFuZ2xpbkBucmMtY25yYy5nYy5jYQppMzg2IHBvcnQJCVJpY2hhcmQgSGVuZGVyc29uCXJ0aEByZWRoYXQuY29tCmkzODYgcG9ydAkJSmFuIEh1Ymlja2EJCWpoQHN1c2UuY3oKaTM4NiBwb3J0CQlVcm9zIEJpemphawkJdWJpempha0BnbWFpbC5jb20KaWE2NCBwb3J0CQlKaW0gV2lsc29uCQl3aWxzb25AdHVsaXB0cmVlLm9yZwppYTY0IHBvcnQJCVN0ZXZlIEVsbGNleQkJc2VsbGNleUBtaXBzLmNvbQppcTIwMDAgcG9ydAkJTmljayBDbGlmdG9uCQluaWNrY0ByZWRoYXQuY29tCmxtMzIgcG9ydAkJU2ViYXN0aWVuIEJvdXJkZWF1ZHVjcQlzZWJhc3RpZW5AbWlsa3ltaXN0Lm9yZwptMzJjIHBvcnQJCURKIERlbG9yaWUJCWRqQHJlZGhhdC5jb20KbTMyciBwb3J0CQlOaWNrIENsaWZ0b24JCW5pY2tjQHJlZGhhdC5jb20KbTY4ayBwb3J0ICg/KQkJSmVmZiBMYXcJCWxhd0ByZWRoYXQuY29tCm02OGsgcG9ydAkJQW5kcmVhcyBTY2h3YWIJCXNjaHdhYkBsaW51eC1tNjhrLm9yZwptNjhrLW1vdG9yb2xhLXN5c3YgcG9ydAlQaGlsaXBwZSBEZSBNdXl0ZXIJcGhkbUBtYWNxZWwuYmUKbWNvcmUgcG9ydAkJTmljayBDbGlmdG9uCQluaWNrY0ByZWRoYXQuY29tCm1lcCBwb3J0CQlESiBEZWxvcmllCQlkakByZWRoYXQuY29tCm1pY3JvYmxhemUJCU1pY2hhZWwgRWFnZXIJCWVhZ2VyQGVhZ2VyY29uLmNvbQptaXBzIHBvcnQJCUVyaWMgQ2hyaXN0b3BoZXIJZWNocmlzdG9AZ21haWwuY29tCm1pcHMgcG9ydAkJUmljaGFyZCBTYW5kaWZvcmQJcmRzYW5kaWZvcmRAZ29vZ2xlbWFpbC5jb20KbW1peCBwb3J0CQlIYW5zLVBldGVyIE5pbHNzb24JaHBAYml0cmFuZ2UuY29tCm1uMTAzMDAgcG9ydAkJSmVmZiBMYXcJCWxhd0ByZWRoYXQuY29tCm1uMTAzMDAgcG9ydAkJQWxleGFuZHJlIE9saXZhCQlhb2xpdmFAcmVkaGF0LmNvbQptb3hpZSBwb3J0CQlBbnRob255IEdyZWVuCQlncmVlbkBtb3hpZWxvZ2ljLmNvbQpwZHAxMSBwb3J0CQlQYXVsIEtvbmluZwkJbmkxZEBhcnJsLm5ldApwaWNvY2hpcCBwb3J0CQlEYW5pZWwgVG93bmVyCQlkYW50QHBpY29jaGlwLmNvbQpybDc4IHBvcnQJCURKIERlbG9yaWUJCWRqQHJlZGhhdC5jb20KcnM2MDAwL3Bvd2VycGMgcG9ydAlEYXZpZCBFZGVsc29obgkJZGplLmdjY0BnbWFpbC5jb20KcnM2MDAwIHZlY3RvciBleHRucwlBbGR5IEhlcm5hbmRlegkJYWxkeWhAcmVkaGF0LmNvbQpyeCBwb3J0CSAgICAgIAkJTmljayBDbGlmdG9uCQluaWNrY0ByZWRoYXQuY29tCnMzOTAgcG9ydAkJSGFydG11dCBQZW5uZXIJCWhwZW5uZXJAZGUuaWJtLmNvbQpzMzkwIHBvcnQJCVVscmljaCBXZWlnYW5kCQl1d2VpZ2FuZEBkZS5pYm0uY29tCnMzOTAgcG9ydAkJQW5kcmVhcyBLcmViYmVsCQlBbmRyZWFzLktyZWJiZWxAZGUuaWJtLmNvbQpzY29yZSBwb3J0CQlDaGVuIExpcWluCQlsaXFpbi5nY2NAZ21haWwuY29tCnNoIHBvcnQJCQlBbGV4YW5kcmUgT2xpdmEJCWFvbGl2YUByZWRoYXQuY29tCnNoIHBvcnQJCQlLYXogS29qaW1hCQlra29qaW1hQGdjYy5nbnUub3JnCnNwYXJjIHBvcnQJCVJpY2hhcmQgSGVuZGVyc29uCXJ0aEByZWRoYXQuY29tCnNwYXJjIHBvcnQJCURhdmlkIFMuIE1pbGxlcgkJZGF2ZW1AcmVkaGF0LmNvbQpzcGFyYyBwb3J0CQlFcmljIEJvdGNhem91CQllYm90Y2F6b3VAbGliZXJ0eXN1cmYuZnIKc3B1IHBvcnQJCVRyZXZvciBTbWlnaWVsCQl0cmV2b3Jfc21pZ2llbEBwbGF5c3RhdGlvbi5zb255LmNvbQpzcHUgcG9ydAkJRGF2aWQgRWRlbHNvaG4JCWRqZS5nY2NAZ21haWwuY29tCnNwdSBwb3J0CQlVbHJpY2ggV2VpZ2FuZAkJdXdlaWdhbmRAZGUuaWJtLmNvbQp0aWxlZ3ggcG9ydAkJV2FsdGVyIExlZQkJd2FsdEB0aWxlcmEuY29tCnRpbGVwcm8gcG9ydAkJV2FsdGVyIExlZQkJd2FsdEB0aWxlcmEuY29tCnY4NTAgcG9ydAkJTmljayBDbGlmdG9uCQluaWNrY0ByZWRoYXQuY29tCnZheCBwb3J0CQlNYXR0IFRob21hcwkJbWF0dEAzYW0tc29mdHdhcmUuY29tCng4Ni02NCBwb3J0CQlKYW4gSHViaWNrYQkJamhAc3VzZS5jegp4c3Rvcm15MTYgcG9ydAkJTmljayBDbGlmdG9uCQluaWNrY0ByZWRoYXQuY29tCnh0ZW5zYSBwb3J0CQlTdGVybGluZyBBdWd1c3RpbmUJYXVndXN0aW5lLnN0ZXJsaW5nQGdtYWlsLmNvbQoKCQkJT1MgUG9ydCBNYWludGFpbmVycwkoT1MgYWxwaGFiZXRpY2FsIG9yZGVyKQoKYWl4CQkJRGF2aWQgRWRlbHNvaG4JCWRqZS5nY2NAZ21haWwuY29tCmRhcndpbiBwb3J0CQlNaWtlIFN0dW1wCQltaWtlc3R1bXBAY29tY2FzdC5uZXQKZGFyd2luIHBvcnQJCUVyaWMgQ2hyaXN0b3BoZXIJZWNocmlzdG9AZ21haWwuY29tCmRhcndpbiBwb3J0CQlTdGFuIFNoZWJzCQlzdGFuc2hlYnNAZWFydGhsaW5rLm5ldApESkdQUAkJCURKIERlbG9yaWUJCWRqQGRlbG9yaWUuY29tCmZyZWVic2QJCQlMb3JlbiBKLiBSaXR0bGUJCWxqcml0dGxlQGFjbS5vcmcKR05VL0h1cmQJCVRob21hcyBTY2h3aW5nZQkJdGhvbWFzQHNjaHdpbmdlLm5hbWUKaHB1eAkJCUpvaG4gRGF2aWQgQW5nbGluCWRhdmUuYW5nbGluQG5yYy1jbnJjLmdjLmNhCmhwdXgJCQlTdGV2ZSBFbGxjZXkJCXNlbGxjZXlAbWlwcy5jb20Kc29sYXJpcwkJCVJhaW5lciBPcnRoCQlyb0BDZUJpVGVjLlVuaS1CaWVsZWZlbGQuREUKbmV0YnNkCQkJSmFzb24gVGhvcnBlCQl0aG9ycGVqQG5ldGJzZC5vcmcKbmV0YnNkCQkJS3Jpc3RlciBXYWxmcmlkc3NvbglrcmlzdGVyLndhbGZyaWRzc29uQGdtYWlsLmNvbQpzaC1saW51eC1nbnUJCUtheiBLb2ppbWEJCWtrb2ppbWFAZ2NjLmdudS5vcmcKUlRFTVMgUG9ydHMJCUpvZWwgU2hlcnJpbGwJCWpvZWxAb2FyY29ycC5jb20KUlRFTVMgUG9ydHMJCVJhbGYgQ29yc2VwaXVzCQlyYWxmLmNvcnNlcGl1c0BydGVtcy5vcmcKVk1TCQkJRG91Z2xhcyBSdXBwCQlydXBwQGduYXQuY29tClZNUwkJCVRyaXN0YW4gR2luZ29sZAkJZ2luZ29sZEBhZGFjb3JlLmNvbQpWeFdvcmtzIHBvcnRzCQlOYXRoYW4gU2lkd2VsbAkJbmF0aGFuQGNvZGVzb3VyY2VyeS5jb20Kd2luZG93cywgY3lnd2luLCBtaW5ndwlDaHJpc3RvcGhlciBGYXlsb3IJY2dmQGdjYy5nbnUub3JnCndpbmRvd3MsIGN5Z3dpbiwgbWluZ3cJS2FpIFRpZXR6CQlrdGlldHpAcmVkaGF0LmNvbQp3aW5kb3dzLCBjeWd3aW4sIG1pbmd3CURhdmUgS29ybgkJZGF2ZS5rb3JuLmN5Z3dpbkBnbWFpbC5jb20KCgkJCUxhbmd1YWdlIEZyb250IEVuZHMgTWFpbnRhaW5lcnMKCkMgZnJvbnQgZW5kL0lTTyBDOTkJSm9zZXBoIE15ZXJzCQlqb3NlcGhAY29kZXNvdXJjZXJ5LmNvbQpDIGZyb250IGVuZC9JU08gQzk5CVJpY2hhcmQgSGVuZGVyc29uCXJ0aEByZWRoYXQuY29tCkFkYSBmcm9udCBlbmQJCUdlZXJ0IEJvc2NoCQlib3NjaEBnbmF0LmNvbQpBZGEgZnJvbnQgZW5kCQlSb2JlcnQgRGV3YXIJCWRld2FyQGduYXQuY29tCkFkYSBmcm9udCBlbmQJCUFybmF1ZCBDaGFybGV0CQljaGFybGV0QGFjdC1ldXJvcGUuZnIKQWRhIGZyb250IGVuZAkJRXJpYyBCb3RjYXpvdQkJZWJvdGNhem91QGxpYmVydHlzdXJmLmZyCkZvcnRyYW4JCQlQYXVsIEJyb29rCQlwYXVsQGNvZGVzb3VyY2VyeS5jb20KYysrCQkJSmFzb24gTWVycmlsbAkJamFzb25AcmVkaGF0LmNvbQpjKysJCQlNYXJrIE1pdGNoZWxsCQltYXJrQGNvZGVzb3VyY2VyeS5jb20KYysrCQkJTmF0aGFuIFNpZHdlbGwJCW5hdGhhbkBjb2Rlc291cmNlcnkuY29tCmdvCQkJSWFuIExhbmNlIFRheWxvcglpYW5AYWlycy5jb20KamF2YQkJCVBlciBCb3RobmVyCQlwZXJAYm90aG5lci5jb20KamF2YQkJCUFuZHJldyBIYWxleQkJYXBoQHJlZGhhdC5jb20KamF2YQkJCVRvbSBUcm9tZXkJCXRyb21leUByZWRoYXQuY29tCm9iamVjdGl2ZS1jL2MrKwkJTWlrZSBTdHVtcAkJbWlrZXN0dW1wQGNvbWNhc3QubmV0Cm9iamVjdGl2ZS1jL2MrKwkJU3RhbiBTaGVicwkJc3RhbnNoZWJzQGVhcnRobGluay5uZXQKCgkJCVZhcmlvdXMgTWFpbnRhaW5lcnMKCmxpYmJhY2t0cmFjZQkJSWFuIExhbmNlIFRheWxvcglpYW5AYWlycy5jb20KbGliY3BwCQkJUGVyIEJvdGhuZXIJCXBlckBib3RobmVyLmNvbQpsaWJjcHAJCQlBbGwgQyBhbmQgQysrIGZyb250IGVuZCBtYWludGFpbmVycwpmcC1iaXQJCQlJYW4gTGFuY2UgVGF5bG9yCWlhbkBhaXJzLmNvbQpsaWJkZWNudW1iZXIJCUJlbiBFbGxpc3RvbgkJYmplQGdudS5vcmcKbGliZ2NjCQkJSWFuIExhbmNlIFRheWxvcglpYW5AYWlycy5jb20KbGliZ2NqCQkJVG9tIFRyb21leQkJdHJvbWV5QHJlZGhhdC5jb20KbGliZ2NqCQkJQnJ5Y2UgTWNLaW5sYXkJCW1ja2lubGF5QHJlZGhhdC5jb20KbGliZ28JCQlJYW4gTGFuY2UgVGF5bG9yCWlhbkBhaXJzLmNvbQpsaWJnb21wCQkJUmljaGFyZCBIZW5kZXJzb24JcnRoQHJlZGhhdC5jb20KbGliZ29tcAkJCUpha3ViIEplbGluZWsJCWpha3ViQHJlZGhhdC5jb20KbGliaWJlcnR5CQlESiBEZWxvcmllCQlkakByZWRoYXQuY29tCmxpYmliZXJ0eQkJSWFuIExhbmNlIFRheWxvcglpYW5AYWlycy5jb20KbGliZmZpIHRlc3RzdWl0ZQlBbmRyZWFzIFRvYmxlcgkJYW5kcmVhc3RAZ2NjLmdudS5vcmcKbGlib2JqYwkJCU5pY29sYSBQZXJvCQluaWNvbGEucGVyb0BtZXRhLWlubm92YXRpb24uY29tCmxpYm9iamMJCQlBbmRyZXcgUGluc2tpCQlwaW5za2lhQGdtYWlsLmNvbQpsaWJxdWFkbWF0aAkJVG9iaWFzIEJ1cm51cwkJYnVybnVzQG5ldC1iLmRlCmxpYnF1YWRtYXRoCQlKYWt1YiBKZWxpbmVrCQlqYWt1YkByZWRoYXQuY29tCmxvb3AgZGlzY292ZXJ5CQlNaWNoYWVsIEhheWVzCQltLmhheWVzQGVsZWMuY2FudGVyYnVyeS5hYy5uegpzb2Z0LWZwCQkJSm9zZXBoIE15ZXJzCQlqb3NlcGhAY29kZXNvdXJjZXJ5LmNvbQpzY2hlZHVsZXIgKCsgaGFpZmEpCUppbSBXaWxzb24JCXdpbHNvbkB0dWxpcHRyZWUub3JnCnNjaGVkdWxlciAoKyBoYWlmYSkJTWljaGFlbCBNZWlzc25lcglnbnVAdGhlLW1laXNzbmVycy5vcmcKc2NoZWR1bGVyICgrIGhhaWZhKQlKZWZmIExhdwkJbGF3QHJlZGhhdC5jb20Kc2NoZWR1bGVyICgrIGhhaWZhKQlWbGFkaW1pciBNYWthcm92CXZtYWthcm92QHJlZGhhdC5jb20KbW9kdWxvLXNjaGVkdWxlcglBeWFsIFpha3MJCXpha3NAaWwuaWJtLmNvbQpyZW9yZwkJCUplZmYgTGF3CQlsYXdAcmVkaGF0LmNvbQpjYWxsZXItc2F2ZS5jCQlKZWZmIExhdwkJbGF3QHJlZGhhdC5jb20KY2FsbGdyYXBoCQlKYW4gSHViaWNrYQkJamhAc3VzZS5jegpkZWJ1Z2dpbmcgY29kZQkJSmltIFdpbHNvbgkJd2lsc29uQHR1bGlwdHJlZS5vcmcKZHdhcmYgZGVidWdnaW5nIGNvZGUJSmFzb24gTWVycmlsbAkJamFzb25AcmVkaGF0LmNvbQpkd2FyZiBkZWJ1Z2dpbmcgY29kZQlDYXJ5IENvdXRhbnQJCWNjb3V0YW50QGdvb2dsZS5jb20KYysrIHJ1bnRpbWUgbGlicwlQYW9sbyBDYXJsaW5pCQlwYW9sby5jYXJsaW5pQG9yYWNsZS5jb20KYysrIHJ1bnRpbWUgbGlicwlHYWJyaWVsIERvcyBSZWlzCWdkckBpbnRlZ3JhYmxlLXNvbHV0aW9ucy5uZXQKYysrIHJ1bnRpbWUgbGlicwlVbHJpY2ggRHJlcHBlcgkJZHJlcHBlckBnbWFpbC5jb20KYysrIHJ1bnRpbWUgbGlicwlCZW5qYW1pbiBLb3NuaWsJCWJrb3pAcmVkaGF0LmNvbQpjKysgcnVudGltZSBsaWJzCUxvcmVuIEouIFJpdHRsZQkJbGpyaXR0bGVAYWNtLm9yZwpjKysgcnVudGltZSBsaWJzCUpvbmF0aGFuIFdha2VseQkJcmVkaUBnY2MuZ251Lm9yZwoqc3ludGhldGljIG11bHRpcGx5CVRvcmJqb3JuIEdyYW5sdW5kCXRlZ2VAc3dveC5jb20KKmMtdG9ydHVyZQkJVG9yYmpvcm4gR3Jhbmx1bmQJdGVnZUBzd294LmNvbQpmaXhpbmNsdWRlcwkJQnJ1Y2UgS29yYgkJYmtvcmJAZ251Lm9yZwoqZ2ltcGwqCQkJSmFrdWIgSmVsaW5lawkJamFrdWJAcmVkaGF0LmNvbQoqZ2ltcGwqCQkJQWxkeSBIZXJuYW5kZXoJCWFsZHloQHJlZGhhdC5jb20KKmdpbXBsKgkJCUphc29uIE1lcnJpbGwJCWphc29uQHJlZGhhdC5jb20KZ2NzZS5jIAkJCUplZmYgTGF3CQlsYXdAcmVkaGF0LmNvbQpnbG9iYWwgb3B0IGZyYW1ld29yawlKZWZmIExhdwkJbGF3QHJlZGhhdC5jb20KanVtcC5jCQkJRGF2aWQgUy4gTWlsbGVyCQlkYXZlbUByZWRoYXQuY29tCndlYiBwYWdlcwkJR2VyYWxkIFBmZWlmZXIJCWdlcmFsZEBwZmVpZmVyLmNvbQpjb25maWcuc3ViL2NvbmZpZy5ndWVzcwlCZW4gRWxsaXN0b24JCWNvbmZpZy1wYXRjaGVzQGdudS5vcmcKYmFzaWMgYmxvY2sgcmVvcmRlcmluZwlKYXNvbiBFY2toYXJkdAkJamxlQHJpY2UuZWR1CmkxOG4JCQlQaGlsaXBwIFRob21hcwkJcHRoQHN1c2UuZGUKaTE4bgkJCUpvc2VwaCBNeWVycwkJam9zZXBoQGNvZGVzb3VyY2VyeS5jb20KZGlhZ25vc3RpYyBtZXNzYWdlcwlHYWJyaWVsIERvcyBSZWlzCWdkckBpbnRlZ3JhYmxlLXNvbHV0aW9ucy5uZXQKYnVpbGQgbWFjaGluZXJ5ICgqLmluKQlQYW9sbyBCb256aW5pCQlib256aW5pQGdudS5vcmcKYnVpbGQgbWFjaGluZXJ5ICgqLmluKQlESiBEZWxvcmllCQlkakByZWRoYXQuY29tCmJ1aWxkIG1hY2hpbmVyeSAoKi5pbikJTmF0aGFuYWVsIE5lcm9kZQluZXJvZGVuQGdjYy5nbnUub3JnCmJ1aWxkIG1hY2hpbmVyeSAoKi5pbikJQWxleGFuZHJlIE9saXZhCQlhb2xpdmFAcmVkaGF0LmNvbQpidWlsZCBtYWNoaW5lcnkgKCouaW4pCVJhbGYgV2lsZGVuaHVlcwkJUmFsZi5XaWxkZW5odWVzQGdteC5kZQpkb2NzIGNvLW1haW50YWluZXIJR2VyYWxkIFBmZWlmZXIJCWdlcmFsZEBwZmVpZmVyLmNvbQpkb2NzIGNvLW1haW50YWluZXIJSm9zZXBoIE15ZXJzCQlqb3NlcGhAY29kZXNvdXJjZXJ5LmNvbQpkb2NzdHJpbmcgcmVsaWNlbnNpbmcJRGllZ28gTm92aWxsbwkJZG5vdmlsbG9AZ29vZ2xlLmNvbQpkb2NzdHJpbmcgcmVsaWNlbnNpbmcJR2VyYWxkIFBmZWlmZXIJCWdlcmFsZEBwZmVpZmVyLmNvbQpkb2NzdHJpbmcgcmVsaWNlbnNpbmcJSm9zZXBoIE15ZXJzCQlqb3NlcGhAY29kZXNvdXJjZXJ5LmNvbQpwcmVkaWN0LmRlZgkJSmFuIEh1Ymlja2EJCWpoQHN1c2UuY3oKY29udHJpYi9yZWdyZXNzaW9uCUdlb2ZmIEtlYXRpbmcJCWdlb2Zma0BnZW9mZmsub3JnCmdjb3YJCQlKYW4gSHViaWNrYQkJamhAc3VzZS5jegpnY292CQkJTmF0aGFuIFNpZHdlbGwJCW5hdGhhbkBjb2Rlc291cmNlcnkuY29tCm9wdGlvbiBoYW5kbGluZwkJTmVpbCBCb290aAkJbmVpbEBkYWlrb2t1eWEuY28udWsKb3B0aW9uIGhhbmRsaW5nCQlKb3NlcGggTXllcnMJCWpvc2VwaEBjb2Rlc291cmNlcnkuY29tCm1pZGRsZS1lbmQJCUplZmYgTGF3CQlsYXdAcmVkaGF0LmNvbQptaWRkbGUtZW5kCQlSb2dlciBTYXlsZQkJcm9nZXJAZXllc29wZW4uY29tCm1pZGRsZS1lbmQJCUlhbiBMYW5jZSBUYXlsb3IJaWFuQGFpcnMuY29tCm1pZGRsZS1lbmQJCURpZWdvIE5vdmlsbG8JCWRub3ZpbGxvQGdvb2dsZS5jb20KbWlkZGxlLWVuZAkJUmljaGFyZCBCaWVuZXIJCXJndWVudGhlckBzdXNlLmRlCnRyZWUtc3NhCQlEaWVnbyBOb3ZpbGxvCQlkbm92aWxsb0Bnb29nbGUuY29tCnRyZWUtc3NhCQlBbmRyZXcgTWFjTGVvZAkJYW1hY2xlb2RAcmVkaGF0LmNvbQpQUkUJCQlEYW5pZWwgQmVybGluCQlkYmVybGluQGRiZXJsaW4ub3JnCmNvZGUgc2lua2luZwkJRGFuaWVsIEJlcmxpbgkJZGJlcmxpbkBkYmVybGluLm9yZwptdWRmbGFwCQkJRnJhbmsgQ2guIEVpZ2xlcglmY2hlQHJlZGhhdC5jb20KdHJlZSBicm93c2VyL3VucGFyc2VyCVNlYmFzdGlhbiBQb3AJCXNlYmFzdGlhbi5wb3BAYW1kLmNvbQpzY2V2LCBkYXRhIGRlcGVuZGVuY2UJRGFuaWVsIEJlcmxpbgkJZGJlcmxpbkBkYmVybGluLm9yZwpzY2V2LCBkYXRhIGRlcGVuZGVuY2UJU2ViYXN0aWFuIFBvcAkJc2ViYXN0aWFuLnBvcEBhbWQuY29tCnByb2ZpbGUgZmVlZGJhY2sJSmFuIEh1Ymlja2EJCWpoQHN1c2UuY3oKdHlwZS1zYWZlIHZlY3RvcnMJTmF0aGFuIFNpZHdlbGwJCW5hdGhhbkBjb2Rlc291cmNlcnkuY29tCmFsaWFzIGFuYWx5c2lzCQlEYW5pZWwgQmVybGluCQlkYmVybGluQGRiZXJsaW4ub3JnCnJlbG9hZAkJCVVscmljaCBXZWlnYW5kCQl1d2VpZ2FuZEBkZS5pYm0uY29tCnJlbG9hZAkJCUJlcm5kIFNjaG1pZHQJCWJlcm5kc0Bjb2Rlc291cmNlcnkuY29tCmRmcC5jLCByZWxhdGVkCQlCZW4gRWxsaXN0b24JCWJqZUBnbnUub3JnClJUTCBvcHRpbWl6ZXJzCQlFcmljIEJvdGNhem91CQllYm90Y2F6b3VAbGliZXJ0eXN1cmYuZnIKYXV0by12ZWN0b3JpemVyCQlSaWNoYXJkIEJpZW5lcgkJcmd1ZW50aGVyQHN1c2UuZGUKYXV0by12ZWN0b3JpemVyCQlaZGVuZWsgRHZvcmFrCQlvb2tAdWN3LmN6Cmxvb3AgaW5mcmFzdHJ1Y3R1cmUJWmRlbmVrIER2b3JhawkJb29rQHVjdy5jegpPcGVuTVAJCQlKYWt1YiBKZWxpbmVrCQlqYWt1YkByZWRoYXQuY29tCnRlc3RzdWl0ZQkJUmFpbmVyIE9ydGgJCXJvQENlQmlUZWMuVW5pLUJpZWxlZmVsZC5ERQp0ZXN0c3VpdGUJCU1pa2UgU3R1bXAJCW1pa2VzdHVtcEBjb21jYXN0Lm5ldAp0ZXN0c3VpdGUJCUphbmlzIEpvaG5zb24JCWphbmlzam9AY29kZXNvdXJjZXJ5LmNvbQpyZWdpc3RlciBhbGxvY2F0aW9uCVZsYWRpbWlyIE1ha2Fyb3YJdm1ha2Fyb3ZAcmVkaGF0LmNvbQoKTm90ZSB0aGF0IGluZGl2aWR1YWxzIHdobyBtYWludGFpbiBwYXJ0cyBvZiB0aGUgY29tcGlsZXIgbmVlZCBhcHByb3ZhbCB0bwpjaGVjayBpbiBjaGFuZ2VzIG91dHNpZGUgb2YgdGhlIHBhcnRzIG9mIHRoZSBjb21waWxlciB0aGV5IG1haW50YWluLgoKCQkJUmV2aWV3ZXJzCgpkYXRhZmxvdwkJUGFvbG8gQm9uemluaQkJYm9uemluaUBnbnUub3JnCmRhdGFmbG93CQlTZW9uZ2JhZSBQYXJrCQlzZW9uZ2JhZS5wYXJrQGdtYWlsLmNvbQpkYXRhZmxvdyAJCUtlbm5ldGggWmFkZWNrCQl6YWRlY2tAbmF0dXJhbGJyaWRnZS5jb20KZHJpdmVyCQkJSm9zZXBoIE15ZXJzCQlqb3NlcGhAY29kZXNvdXJjZXJ5LmNvbQpGb3J0cmFuCQkJSmFubmUgQmxvbXF2aXN0CQlqYkBnY2MuZ251Lm9yZwpGb3J0cmFuCQkJVG9iaWFzIEJ1cm51cwkJYnVybnVzQG5ldC1iLmRlCkZvcnRyYW4JCQlKZXJyeSBEZUxpc2xlCQlqdmRlbGlzbGVAZ2NjLmdudS5vcmcKRm9ydHJhbgkJCUVyaWsgRWRlbG1hbm4JCWVyaWsuZWRlbG1hbm5AaWtpLmZpCkZvcnRyYW4JCQlEYW5pZWwgRnJhbmtlCQlmcmFua2UuZGFuaWVsQGdtYWlsLmNvbQpGb3J0cmFuCQkJU3RldmVuIEcuIEthcmdsCQlzZ2tAdHJvdXRtYXNrLmFwbC53YXNoaW5ndG9uLmVkdQpGb3J0cmFuCQkJVGhvbWFzIEv2bmlnCQl0a29lbmlnQGdjYy5nbnUub3JnCkZvcnRyYW4JCQlEYW5pZWwgS3JhZnQJCWRAZG9tb2IuZXUKRm9ydHJhbgkJCVRvb24gTW9lbmUJCXRvb25AbW9lbmUub3JnCkZvcnRyYW4JCQlNaWthZWwgTW9yaW4JCW1pa2FlbC5tb3JpbkBzZnIuZnIKRm9ydHJhbgkJCUJyb29rcyBNb3NlcwkJYnJvb2tzLm1vc2VzQGNvZGVzb3VyY2VyeS5jb20KRm9ydHJhbgkJCVRvYmlhcyBTY2hs/HRlcgkJdG9iaWFzLnNjaGx1ZXRlckBwaHlzaWsudW5pLW11ZW5jaGVuLmRlCkZvcnRyYW4JCQlQYXVsIFRob21hcwkJcGF1bHRAZ2NjLmdudS5vcmcKRm9ydHJhbgkJCUphbnVzIFdlaWwJCWphbnVzQGdjYy5nbnUub3JnCmdlbmd0eXBlL0dUWQkJTGF1cnluYXMgQml2ZWluaXMgICAgICAgbGF1cnluYXMuYml2ZWluaXNAZ21haWwuY29tCkdyYXBoaXRlCQlEYW5pZWwgQmVybGluCQlkYmVybGluQGRiZXJsaW4ub3JnCkdyYXBoaXRlIAkJVG9iaWFzIEdyb3NzZXIJCWdyb3NzZXJAZmltLnVuaS1wYXNzYXUuZGUKR3JhcGhpdGUJCVNlYmFzdGlhbiBQb3AJCXNlYmFzdGlhbi5wb3BAYW1kLmNvbQpsaWJjcHAJCQlUb20gVHJvbWV5CQl0cm9tZXlAcmVkaGF0LmNvbQpsaWJzYW5pdGl6ZXIsIGFzYW4uYwlKYWt1YiBKZWxpbmVrCQlqYWt1YkByZWRoYXQuY29tCmxpYnNhbml0aXplciwgYXNhbi5jCURvZGppIFNla2V0ZWxpCQlkb2RqaUByZWRoYXQuY29tCmxpYnNhbml0aXplciwgYXNhbi5jCUtvc3R5YSBTZXJlYnJ5YW55CWtjY0Bnb29nbGUuY29tCmxpYnNhbml0aXplciwgYXNhbi5jCURtaXRyeSBWeXVrb3YJCWR2eXVrb3ZAZ29vZ2xlLmNvbQpsb29wIG9wdGltaXplcgkJWmRlbmVrIER2b3JhawkJb29rQHVjdy5jegpsb29wIG9wdGltaXplcgkJRGFuaWVsIEJlcmxpbgkJZGJlcmxpbkBkYmVybGluLm9yZwpMVE8JCQlEaWVnbyBOb3ZpbGxvCQlkbm92aWxsb0Bnb29nbGUuY29tCkxUTwkJCVJpY2hhcmQgQmllbmVyCQlyZ3VlbnRoZXJAc3VzZS5kZQpMVE8gcGx1Z2luCQlDYXJ5IENvdXRhbnQJCWNjb3V0YW50QGdvb2dsZS5jb20KUGx1Z2luCQkJRGllZ28gTm92aWxsbwkJZG5vdmlsbG9AZ29vZ2xlLmNvbQpQbHVnaW4JCQlMZS1DaHVuIFd1CQlsY3d1QGdvb2dsZS5jb20KcmVnaXN0ZXIgYWxsb2NhdGlvbglQZXRlciBCZXJnbmVyCQliZXJnbmVyQHZuZXQuaWJtLmNvbQpyZWdpc3RlciBhbGxvY2F0aW9uCUtlbm5ldGggWmFkZWNrCQl6YWRlY2tAbmF0dXJhbGJyaWRnZS5jb20KcmVnaXN0ZXIgYWxsb2NhdGlvbglTZW9uZ2JhZSBQYXJrCQlzZW9uZ2JhZS5wYXJrQGdtYWlsLmNvbQpzZWxlY3RpdmUgc2NoZWR1bGluZwlBbmRyZXkgQmVsZXZhbnRzZXYJYWJlbEBpc3ByYXMucnUKCk5vdGUgdGhhdCB3aGlsZSByZXZpZXdlcnMgY2FuIGFwcHJvdmUgY2hhbmdlcyB0byBwYXJ0cyBvZiB0aGUgY29tcGlsZXIKdGhhdCB0aGV5IG1haW50YWluLCB0aGV5IHN0aWxsIG5lZWQgYXBwcm92YWwgZm9yIHRoZWlyIG93biBwYXRjaGVzCmZyb20gb3RoZXIgbWFpbnRhaW5lcnMgb3IgcmV2aWV3ZXJzLgoKCQkJV3JpdGUgQWZ0ZXIgQXBwcm92YWwJKGxhc3QgbmFtZSBhbHBoYWJldGljYWwgb3JkZXIpCgpNYXJrIEcuIEFkYW1zCQkJCQltYXJrLmcuYWRhbXNAc3ltcGF0aWNvLmNhClJha3NpdCBBc2hvawkJCQkJcmFrc2l0QGdvb2dsZS5jb20KTWF0dCBBdXN0ZXJuCQkJCQlhdXN0ZXJuQGdvb2dsZS5jb20KRGF2aWQgQXllcnMJCQkJCWF5ZXJzQGZzZmUub3JnCkdpb3Zhbm5pIEJham8JCQkJCWdpb3Zhbm5pYmFqb0BnY2MuZ251Lm9yZwpTaW1vbiBCYWxkd2luCQkJCQlzaW1vbmJAZ29vZ2xlLmNvbQpTY290dCBCYW1icm91Z2gJCQkJCXNjb3R0YkBuZXR3aW5kZXIub3JnCldvbGZnYW5nIEJhbmdlcnRoCQkJCWJhbmdlcnRoQGRlYWxpaS5vcmcKVGVqYXMgQmVsYWdvZAkJCQkJdGVqYXMuYmVsYWdvZEBhcm0uY29tCkFuZHJleSBCZWxldmFudHNldgkJCQlhYmVsQGlzcHJhcy5ydQpKb24gQmVuaXN0b24JCQkJCWpvbkBiZW5pc3Rvbi5jb20KUGV0ZXIgQmVyZ25lcgkJCQkJYmVyZ25lckB2bmV0LmlibS5jb20KSmFuIEJldWxpY2gJCQkJCWpiZXVsaWNoQG5vdmVsbC5jb20KRGF2aWQgQmlsbGluZ2h1cnN0CQkJCURhdmlkLkJpbGxpbmdodXJzdEByaW90aW50by5jb20KVG9tYXMgQmlseQkJCQkJdGJpbHlAc3VzZS5jegpFcmljIEJsYWtlCQkJCQllcmljYkBnY2MuZ251Lm9yZwpQaGlsIEJsdW5kZWxsCQkJCQlwYkBmdXR1cmV0di5jb20KSGFucyBCb2VobQkJCQkJaGJvZWhtQGdjYy5nbnUub3JnClNlZ2hlciBCb2Vzc2Vua29vbAkJCQlzZWdoZXJAa2VybmVsLmNyYXNoaW5nLm9yZwpJYW4gQm9sdG9uCQkJCQlpYW4uYm9sdG9uQGFybS5jb20KQW5kcmVhIEJvbmEJCQkJCWFuZHJlYS5ib25hQHN0LmNvbQpQYW9sbyBCb256aW5pCQkJCQlib256aW5pQGdudS5vcmcKTmVpbCBCb290aAkJCQkJbmVpbEBkYWlrb2t1eWEuY28udWsKU3RldmVuIEJvc3NjaGVyCQkJCQlzdGV2ZW5AZ2NjLmdudS5vcmcKUm9iZXJ0IEJvd2RpZGdlCQkJCQlib3dkaWRnZUBhcHBsZS5jb20KSm9lbCBCcm9iZWNrZXIJCQkJCWJyb2JlY2tlckBnbmF0LmNvbQpEYXZlIEJyb2xsZXkJCQkJCWJyb2xsZXlAcmVkaGF0LmNvbQpKdWxpYW4gQnJvd24JCQkJCWp1bGlhbkBjb2Rlc291cmNlcnkuY29tCkNocmlzdGlhbiBCcnVlbAkJCQkJY2hyaXN0aWFuLmJydWVsQHN0LmNvbQpLZXZpbiBCdWV0dG5lcgkJCQkJa2V2aW5iQHJlZGhhdC5jb20KQW5kcmV3IENhZ25leQkJCQkJY2FnbmV5QHJlZGhhdC5jb20KRGFuaWVsIENhcnJlcmEJCQkJCWRjYXJyZXJhQGdtYWlsLmNvbQpTdGVwaGFuZSBDYXJyZXoJCQkJCXN0Y2FycmV6QG5lcmltLmZyCkdhYnJpZWwgQ2hhcmV0dGUJCQkJZ2NoYXJlQGdvb2dsZS5jb20KQ2hhbmRyYSBDaGF2dmEJCQkJCWNjaGF2dmFAcmVkaGF0LmNvbQpGYWJpZW4gQ2jqbmUJCQkJCWZhYmllbkBnY2MuZ251Lm9yZwpCaW4gQ2hlbmcJCQkJCWJpbi5jaGVuZ0Bhcm0uY29tCkhhcnNoaXQgQ2hvcHJhICAgICAgICBoYXJzaGl0QGdvb2dsZS5jb20KV2lsbGlhbSBDb2hlbgkJCQkJd2NvaGVuQHJlZGhhdC5jb20KSm9zaCBDb25uZXIJCQkJCWpjb25uZXJAYXBwbGUuY29tClIuIEtlbGxleSBDb29rCQkJCQlrY29va0BnY2MuZ251Lm9yZwpDaHJpc3RpYW4gQ29ybmVsc3NlbgkJCQljY29ybkBjcy50dS1iZXJsaW4uZGUKRnJhbudvaXMtWGF2aWVyIENvdWRlcnQJCQkJZnhjb3VkZXJ0QGdjYy5nbnUub3JnCkNhcnkgQ291dGFudAkJCQkJY2NvdXRhbnRAZ29vZ2xlLmNvbQpMYXdyZW5jZSBDcm93bAkJCQkJY3Jvd2xAZ29vZ2xlLmNvbQpJYW4gRGFsbAkJCQkJaWFuQGJld2FyZS5kcm9wYmVhci5pZC5hdQpEYXZpZCBEYW5leQkJCQkJZGF2aWQuZGFuZXlAY2F2aXVtbmV0d29ya3MuY29tCkJ1ZCBEYXZpcwkJCQkJam1kYXZpc0BsaW5rLmNvbQpDaHJpcyBEZW1ldHJpb3UJCQkJCWNnZEBnb29nbGUuY29tClNhbWVlcmEgRGVzaHBhbmRlCQkJCXNhbWVlcmEuZGVzaHBhbmRlQGFybS5jb20KRnJhbudvaXMgRHVtb250CQkJCQlmZHVtb250QGdjYy5nbnUub3JnCkJlbm9pdCBEdXBvbnQgZGUgRGluZWNoaW4JCQliZW5vaXQuZHVwb250LWRlLWRpbmVjaGluQHN0LmNvbQpNaWNoYWVsIEVhZ2VyCQkJCQllYWdlckBlYWdlcmNvbi5jb20KUGhpbCBFZHdhcmRzCQkJCQlwbWVAZ2NjLmdudS5vcmcKTW9oYW4gRW1iYXIJCQkJCWdudXN0dWZmQHRoaXNpc2Nvb2wuY29tCk9sZWcgRW5kbwkJCQkJb2xlZ2VuZG9AZ2NjLmdudS5vcmcKUmV2aXRhbCBFcmVzCQkJCQllcmVzQGlsLmlibS5jb20KTWFyYyBFc3BpZQkJCQkJZXNwaWVAY3ZzLm9wZW5ic2Qub3JnClJhZmFlbCDBdmlsYSBkZSBFc3DtbmRvbGEJCQllc3BpbmRvbGFAZ29vZ2xlLmNvbQpBbnNnYXIgRXN6dGVybWFubgkJCQlhbnNnYXJAdGhwaHkudW5pLWR1ZXNzZWxkb3JmLmRlCkRvdWcgRXZhbnMJCQkJCWRqZUBnb29nbGUuY29tCkNocmlzIEZhaXJsZXMJCQkJCWNmYWlybGVzQGdjYy5nbnUub3JnCkNoYW5ncGVuZyBGYW5nCQkJCQljaGFuZ3BlbmcuZmFuZ0BhbWQuY29tCkxpIEZlbmcJCQkJCQluZW1va2luZ2RvbUBnbWFpbC5jb20KVGhvbWFzIEZpdHpzaW1tb25zCQkJCWZpdHpzaW1AcmVkaGF0LmNvbQpCcmlhbiBGb3JkCQkJCQlmb3JkQHZzcy5mc2kuY29tCkpvaG4gRnJlZW1hbgkJCQkJamZyZWVtYW4wOEBnbWFpbC5jb20KTmF0aGFuIEZyb3lkCQkJCQlmcm95ZG5qQGdjYy5nbnUub3JnCkNoYW8teWluZyBGdQkJCQkJZnVAbWlwcy5jb20KR2FyeSBGdW5jawkJCQkJZ2FyeUBpbnRyZXBpZC5jb20KUG9tcGFwYXRoaSBWIEdhZGFkIAkJCQlQb21wYXBhdGhpLlYuR2FkYWRAbnNjLmNvbQpHb3BhbGFzdWJyYW1hbmlhbiBHYW5lc2gJCQlHYW5lc2guR29wYWxhc3VicmFtYW5pYW5AYW1kLmNvbQpLYXZlaCBHaGF6aQkJCQkJZ2hhemlAZ2NjLmdudS5vcmcKTWF0dGhldyBHaW5nZWxsCQkJCQlnaW5nZWxsQGduYXQuY29tClRyaXN0YW4gR2luZ29sZAkJCQkJZ2luZ29sZEBhZGFjb3JlLmNvbQpKYW4tQmVuZWRpY3QgR2xhdwkJCQlqYmdsYXdAbHVnLW93bC5kZQpNYXJjIEdsaXNzZQkJCQkJbWFyYy5nbGlzc2VAaW5yaWEuZnIKQW50aG9ueSBHcmVlbgkJCQkJZ3JlZW5AcmVkaGF0LmNvbQpKYW1lcyBHcmVlbmhhbGdoCQkJCWphbWVzLmdyZWVuaGFsZ2hAYXJtLmNvbQpEb3VnIEdyZWdvcgkJCQkJZG91Zy5ncmVnb3JAZ21haWwuY29tCk1hdHRoZXcgR3JldHRvbi1EYW5uCQkJCW1hdHRoZXcuZ3JldHRvbi1kYW5uQGFybS5jb20KSm9uIEdyaW1tCQkJCQlqZ3JpbW0yQHVzLmlibS5jb20KTGF1cmVudCBHdWVyYnkJCQkJCWxhdXJlbnRAZ3VlcmJ5Lm5ldApYdWVwZW5nIEd1bwkJCQkJdGVycnkuZ3VvQGFybS5jb20KV2VpIEd1b3poaQkJCQkJY2Fycm90QGdvb2dsZS5jb20KTW9zdGFmYSBIYWdvZwkJCQkJaGFnb2dAZ2NjLmdudS5vcmcKT2xpdmllciBIYWlucXVlCQkJCQloYWlucXVlQGFjdC1ldXJvcGUuZnIKU3R1YXJ0IEhhc3RpbmdzCQkJCQlzdHVhcnRAYXBwbGUuY29tClBhdCBIYXVnZW4JCQkJCXB0aGF1Z2VuQHVzLmlibS5jb20KTWFyayBIZWZmZXJuYW4JCQkJCW1laGVmZkBnb29nbGUuY29tCkdlb3JnZSBIZWxmZnJpY2gJCQkJZ2VvcmdlQGdjYy5nbnUub3JnCkZlcmd1cyBIZW5kZXJzb24JCQkJZmpoQGNzLm11Lm96LmF1ClN0dWFydCBIZW5kZXJzb24JCQkJc2hlbmRlcnNAZ2NjLmdudS5vcmcKTWF0dGhldyBIaWxsZXIJCQkJCWhpbGxlckByZWRoYXQuY29tCk1hbmZyZWQgSG9sbHN0ZWluCQkJCW1oQHN1c2UuY29tCkZhbGsgSHVlZmZuZXIJCQkJCWZhbGtAZGViaWFuLm9yZwpBbmRyZXcgSm9obiBIdWdoZXMJCQkJZ251X2FuZHJld0BtZW1iZXIuZnNmLm9yZwpBbmR5IEh1dGNoaW5zb24JCQkJCWh1dGNoaW5zb25hbmR5QGFpbS5jb20KTmF2ZWVuIEguUwkJCQkJTmF2ZWVuLkh1cnVnYWxhd2FkaUBjYXZpdW1uZXR3b3Jrcy5jb20KTWVhZG9yIEluZ2UJCQkJCW1lYWRvcmlAY29kZXNvdXJjZXJ5LmNvbQpCZXJuYXJkbyBJbm5vY2VudGkJCQkJYmVybmllQGRldmVsZXIuY29tCkJhbGFqaSBWLiBJeWVyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ2aXllckBnbWFpbC5jb20KRGFuaWVsIEphY29ib3dpdHoJCQkJZHJvd0BmYWxzZS5vcmcKQW5kcmVhcyBKYWVnZXIJCQkJCWFqQHN1c2UuZGUKSGFyc2hhIEphZ2FzaWEJCQkJCWhhcnNoYS5qYWdhc2lhQGFtZC5jb20KRmFyaWJvcnogSmFoYW5pYW4JCQkJZmphaGFuaWFuQGFwcGxlLmNvbQpNYXJ0aW4gSmFtYm9yCQkJCQltamFtYm9yQHN1c2UuY3oKQW5kcmV3IEplbm5lcgkJCQkJYW5kcmV3QGNvZGVzb3VyY2VyeS5jb20KSmFuaXMgSm9obnNvbgkJCQkJamFuaXNqb0Bjb2Rlc291cmNlcnkuY29tClRlcmVzYSBKb2huc29uCQkJCQl0ZWpvaG5zb25AZ29vZ2xlLmNvbQpLZWFuIEpvaG5zdG9uCQkJCQlqa2pAc2NvLmNvbQpQaGlsbGlwIEpvcmRhbgkJCQkJcGhpbGxpcC5tLmpvcmRhbkBnbWFpbC5jb20KVGltIEpvc2xpbmcJCQkJCXRlakBtZWxicGMub3JnLmF1ClZpY3RvciBLYXBsYW5za3kJCQkJdmljdG9ya0BpbC5pYm0uY29tCkJyZW5kYW4gS2Vob2UJCQkJCWJyZW5kYW5AemVuLm9yZwpNYXR0aGlhcyBLbG9zZQkJCQkJZG9rb0BkZWJpYW4ub3JnCkFuZGkgS2xlZW4JCQkJCWFuZGlAZmlyc3RmbG9vci5vcmcKSmVmZiBLbmFnZ3MJCQkJCWprbmFnZ3NAcmVkaGF0LmNvbQpNaWNoYWVsIEtvY2gJCQkJCWtvbnF1ZXJvckBnbXguZGUKTWF0dCBLcmFhaQkJCQkJa3JhYWlAZnRiZnMub3JnCkphbiBLcmF0b2NodmlsCQkJCQlqYW4ua3JhdG9jaHZpbEByZWRoYXQuY29tClZlbmthdGFyYW1hbmFuIEt1bWFyCQkJCXZlbmthdGFyYW1hbmFuLmt1bWFyQGFtZC5jb20KTWF4aW0gS3V2eXJrb3YJCQkJCW1heGltQGt1Z2Vsd29ya3MuY29tCkRvdWcgS3dhbgkJCQkJZG91Z2t3YW5AZ29vZ2xlLmNvbQpTY290dCBSb2JlcnQgTGFkZAkJCQlzY290dC5sYWRkQGNveW90ZWd1bGNoLmNvbQpSYXp5YSBMYWRlbHNreQkJCQkJcmF6eWFAZ2NjLmdudS5vcmcKVGhpZXJyeSBMYWZhZ2UJCQkJCXRoaWVycnkubGFmYWdlQGlucmlhLmZyCkFhcm9uIFcuIExhRnJhbWJvaXNlCQkJCWFhcm9uYXZheTYyQGFhcm9ud2wuY29tClJhc2sgSW5nZW1hbm4gTGFtYmVydHNlbgkJCWNjYzk0NDUzQHZpcC5jeWJlcmNpdHkuZGsKQXNoZXIgTGFuZ3RvbgkJCQkJbGFuZ3RvbjJAbGxubC5nb3YKQ2hyaXMgTGF0dG5lcgkJCQkJc2FicmVAbm9uZG90Lm9yZwpUZXJyeSBMYXVyZW56bwkJCQkJdGxhdXJlbnpvQGdtYWlsLmNvbQpHZW9yZy1Kb2hhbm4gTGF5CQkJCWF2ckBnamxheS5kZQpNYXJjIExlaG1hbm4JCQkJCXBjZ0Bnb29mLmNvbQpKYW1lcyBMZW1rZQkJCQkJandsZW1rZUBjb2Rlc291cmNlcnkuY29tCktyaWFuZyBMZXJkc3V3YW5ha2lqCQkJCWxlcmRzdXdhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldApKaWFuZ25pbmcgTGl1CQkJCQlqaWFuZ25pbmcubGl1QGFybS5jb20KU2EgTGl1CQkJCQkJc2FsaXVAZGUuaWJtLmNvbQpSYWxwaCBMb2FkZXIJCQkJCXJjbEBpaHVnLmNvLm56CkdhYm9yIExva2kJCQkJCWxva2lAaW5mLnUtc3plZ2VkLmh1ClNhbmRyYSBMb29zZW1vcmUJCQkJc2FuZHJhQGNvZGVzb3VyY2VyeS5jb20KTWFudWVsIEzzcGV6LUli4fFlegkJCQltYW51QGdjYy5nbnUub3JnCk1hcnRpbiB2LiBM9ndpcwkJCQkJbG9ld2lzQGluZm9ybWF0aWsuaHUtYmVybGluLmRlCkguSi4gTHUJCQkJCQloamwudG9vbHNAZ21haWwuY29tClhpbmxpYW5nIERhdmlkIExpCQkJCWRhdmlkeGxAZ29vZ2xlLmNvbQpDaHJpc3RvcGhlIEx5b24JCQkJCWNocmlzdG9waGUubHlvbkBzdC5jb20KTHVpcyBNYWNoYWRvCQkJCQlsdWlzZ3BtQGJyLmlibS5jb20KWmlnYSBNYWhrb3ZlYwkJCQkJemlnYS5tYWhrb3ZlY0BrbGlrYS5zaQpTaW1vbiBNYXJ0aW4JCQkJCXNpbWFydGluQHVzZXJzLnNvdXJjZWZvcmdlLm5ldApSYW5qaXQgTWF0aGV3CQkJCQlybWF0aGV3QGhvdG1haWwuY29tCk1pY2hhZWwgTWF0egkJCQkJbWF0ekBzdXNlLmRlCkdyZWcgTWNHYXJ5CQkJCQlna21AZ251Lm9yZwpSb2xhbmQgTWNHcmF0aAkJCQkJcm9sYW5kQGhhY2suZnJvYi5jb20KQWRhbSBNZWdhY3oJCQkJCWFkYW1AeHd0Lm9yZwpCaW5nZmVuZyBNZWkJCQkJCWJtZWlAYnJvYWRjb20uY29tCkppbSBNZXllcmluZwkJCQkJamltQG1leWVyaW5nLm5ldApNYXJ0aW4gTWljaGxtYXlyCQkJCXRibUBjeXJpdXMuY29tCkxlZSBNaWxsd2FyZAkJCQkJbGVlLm1pbGx3YXJkQGdtYWlsLmNvbQpBbGFuIE1vZHJhCQkJCQlhbW9kcmFAZ21haWwuY29tCkFsZXhhbmRlciBNb25ha292CQkJCWFtb25ha292QGlzcHJhcy5ydQpDYXRoZXJpbmUgTW9vcmUJCQkJCWNsbUBjb2Rlc291cmNlcnkuY29tCkphbWVzIEEuIE1vcnJpc29uCQkJCXBoeXRob25AZ2NjLmdudS5vcmcKRGlyayBNdWVsbGVyCQkJCQlkbXVlbGxlckBzdXNlLmRlClBoaWwgTXVsZG9vbgkJCQkJcG11bGRvb25AcmVkaGF0LmNvbQpRdWVudGluIE5laWxsCQkJCQlxdWVudGluLm5laWxsLmdudUBnbWFpbC5jb20KQWRhbSBOZW1ldAkJCQkJYWRhbWJuZW1ldEBnbWFpbC5jb20KVGhvbWFzIE5ldW1hbm4JCQkJCXRuZXVtYW5uQHVzZXJzLnNvdXJjZWZvcmdlLm5ldApEYW4gTmljb2xhZXNjdQkJCQkJZGFubkBpY3MudWNpLmVkdQpEb3JpdCBOdXptYW4JCQkJCWRvcml0QGlsLmlibS5jb20KRGF2aWQgTydCcmllbgkJCQkJb2JyaWVuQEZyZWVCU0Qub3JnCkNhcmxvcyBPJ0RvbmVsbAkJCQkJY2FybG9zQGNvZGVzb3VyY2VyeS5jb20KUGV0ZXIgTydHb3JtYW4JCQkJCXBvZ21hQHRoZXdyaXR0ZW53b3JkLmNvbQpBbmRyZWEgT3Juc3RlaW4JCQkJCWFuZHJlYS5vcm5zdGVpbkBzdC5jb20KU2VvbmdiYWUgUGFyawkJCQkJc2VvbmdiYWUucGFya0BnbWFpbC5jb20KRGV2YW5nIFBhdGVsCQkJCQlkcGF0ZWxAYXBwbGUuY29tCkZlcm5hbmRvIFBlcmVpcmEJCQkJcHJvbmVzdG9AZ21haWwuY29tCkthdXNoaWsgUGhhdGFrCQkJCQlrYXVzaGlrLnBoYXRha0BrcGl0Y3VtbWlucy5jb20KTmljb2xhcyBQaXRyZQkJCQkJbmljb0BjYW0ub3JnClBhdWwgUGx1emhuaWtvdgkJCQkJcHBsdXpobmlrb3ZAZ29vZ2xlLmNvbQpNYXJlayBQb2xhY2VrCQkJCQlwb2xhY2VrQHJlZGhhdC5jb20KQW50b25pdSBQb3AJCQkJCWFudG9uaXUucG9wQGdtYWlsLmNvbQpWbGFkaW1pciBQcnVzCQkJCQl2bGFkaW1pckBjb2Rlc291cmNlcnkuY29tCllhbyBRaQkJCQkJCXlhb0Bjb2Rlc291cmNlcnkuY29tCkplcnJ5IFF1aW5uCQkJCQlqbHF1aW5uQG9wdG9ubGluZS5uZXQKUmFtYW5hIFJhZGhha3Jpc2huYW4JCQkJcmFtYW5hLnJhZGhha3Jpc2huYW5AYXJtLmNvbQpFYXN3YXJhbiBSYW1hbgkJCQkJZXJhbWFuQGdvb2dsZS5jb20KUm9sZiBSYXNtdXNzZW4JCQkJCXJvbGZ3ckBnY2MuZ251Lm9yZwpWb2xrZXIgUmVpY2hlbHQJCQkJCXYucmVpY2hlbHRAbmV0Y29sb2duZS5kZQpCZXJuaGFyZCBSZXV0bmVyLUZpc2NoZXIJCQlyZXAuZG90Lm5vcEBnbWFpbC5jb20KVG9tIFJpeAkJCQkJCXRyaXhAcmVkaGF0LmNvbQpDcmFpZyBSb2RyaWd1ZXMJCQkJCXJvZHJpZ2NAZ2NjLmdudS5vcmcKRXJ2ZW4gUm9ob3UJCQkJCWVydmVuLnJvaG91QGlucmlhLmZyCklyYSBSb3NlbgkJCQkJaXJhckBpbC5pYm0uY29tCk1hY2llaiBXLiBSb3p5Y2tpCQkJCW1hY3JvQGxpbnV4LW1pcHMub3JnClNpbHZpdXMgUnVzCQkJCQlydXNAZ29vZ2xlLmNvbQpNYXR0aGV3IFNhY2hzCQkJCQltc2FjaHNAYXBwbGUuY29tCkhhcmloYXJhbiBTYW5kYW5hZ29iYWxhbmUJICAgICAgICAgICAgICAgIGhhcmloYXJhbi5nY2NAZ21haWwuY29tCklhaW4gU2FuZG9lCQkJCQlpYWluQGNvZGVzb3VyY2VyeS5jb20KRHVuY2FuIFNhbmRzCQkJCQliYWxkcmlja0BnY2MuZ251Lm9yZwpXaWxsaWFtIFNjaG1pZHQgCQkJCXdzY2htaWR0QGxpbnV4LnZuZXQuaWJtLmNvbQpEb2RqaSBTZWtldGVsaQkJCQkJZG9kamlAZ2NjLmdudS5vcmcKU3ZlaW4gU2VsZGFsCQkJCQlzdmVpbkBkZXYuc2VsZGFsLmNvbQpUaGllbW8gU2V1ZmVyCQkJCQl0aHNAbmV0d29ya25vLmRlCk1hcmN1cyBTaGF3Y3JvZnQJCQkJbWFyY3VzLnNoYXdjcm9mdEBhcm0uY29tClNoYXJhZCBTaW5naGFpCQkJCQlzaW5naGFpQGdvb2dsZS5jb20KSm9oYW5uZXMgU2luZ2xlcgkJCQlzaW5nbGVyQGtpdC5lZHUKRnJhbnogU2lybAkJCQkJZnJhbnouc2lybC1rZXJuZWxAbGF1dGVyYmFjaC5jb20KSmFuIFNqb2RpbgkJCQkJamFuLnNqb2RpbkBhbWQuY29tCkVkd2FyZCBTbWl0aC1Sb3dsYW5kCQkJCTNkdzRyZEB2ZXJpem9uLm5ldApKYXlhbnQgU29uYXIJCQkJCWpheWFudC5zb25hckBrcGl0Y3VtbWlucy5jb20KTWljaGFlbCBTb2tvbG92CQkJCQltc29rb2xvdkBpdmFuLkhhcmhhbi5PUkcKUmljaGFyZCBTdGFsbG1hbgkJCQlybXNAZ251Lm9yZwpCYXNpbGUgU3Rhcnlua2V2aXRjaAkJCQliYXNpbGVAc3Rhcnlua2V2aXRjaC5uZXQKSmFrdWIgU3Rhc3phawkJCQkJa3ViYUBldC5wbApHcmFoYW0gU3RvdHQJCQkJCWdyYWhhbS5zdG90dEBidGludGVybmV0LmNvbQpBbmRyZXcgU3R1YmJzCQkJCQlhbXNAY29kZXNvdXJjZXJ5LmNvbQpNaWtlIFN0dW1wCQkJCQltaWtlc3R1bXBAY29tY2FzdC5uZXQKSmVmZiBTdHVybQkJCQkJanN0dXJtQGdjYy5nbnUub3JnCkFuZHJldyBTdXR0b24JCQkJCWFuZHJldy5uLnN1dHRvbkBnbWFpbC5jb20KR2FicmllbGUgU3ZlbHRvCQkJCQlnYWJyaWVsZS5zdmVsdG9Ac3QuY29tClNyaXJhbWFuIFRhbGxhbQkJCQkJdG1zcmlyYW1AZ29vZ2xlLmNvbQpDaHVuZy1MaW4gVGFuZwkJCQkJY2x0YW5nQGNvZGVzb3VyY2VyeS5jb20KU2FtdWVsIFRhcmRpZXUJCQkJCXNhbUByZmMxMTQ5Lm5ldApLcmVzdGVuIEtyYWIgVGhvcnVwCQkJCWtyYWJAZ2NjLmdudS5vcmcKQ2Fyb2xpbmUgVGljZQkJCQkJY3RpY2VAYXBwbGUuY29tCkt5cnlsbyBUa2FjaG92CQkJCQlreXJ5bG8udGthY2hvdkBhcm0uY29tCktvbnJhZCBUcmlmdW5vdmljCQkJCWtvbnJhZC50cmlmdW5vdmljQGlucmlhLmZyCkRhdmlkIFVuZwkJCQkJZGF2aWR1QG1pcHMuY29tCk5laWwgVmFjaGhhcmFqYW5pCQkJCW52YWNoaGFyQGdtYWlsLmNvbQpLcmlzIFZhbiBIZWVzCQkJCQlrcmlzLnZhbi5oZWVzQG9yYWNsZS5jb20KVG9tIGRlIFZyaWVzCQkJCQl0b21AY29kZXNvdXJjZXJ5LmNvbQpOZW5hZCBWdWtpY2V2aWMJCQkJCW5lbmFkQGludHJlcGlkLmNvbQpGZW5nIFdhbmcJCQkJCWZlbmd3YW5nQG51ZHQuZWR1LmNuClN0ZXBoZW4gTS4gV2ViYgkJCQkJc3RlcGhlbi53ZWJiQGJyZWdtYXNvZnQuY29tCkpvaG4gV2VobGUJCQkJCWpvaG5AZmVpdGguY29tCkZsb3JpYW4gV2VpbWVyCQkJCQlmd0BkZW5lYi5lbnlvLmRlClphY2sgV2VpbmJlcmcJCQkJCXphY2t3QHBhbml4LmNvbQpNYXJrIFdpZWxhYXJkCQkJCQltYXJrQGdjYy5nbnUub3JnCkVkbWFyIFdpZW5za29za2kJCQkJZWRtYXJAZnJlZXNjYWxlLmNvbQpPbGxpZSBXaWxkCQkJCQlhYXdAZ29vZ2xlLmNvbQpLZXZpbiBXaWxsaWFtcwkJCQkJa2V2aW4ud2lsbGlhbXNAaW5yaWEuZnIKQ2FybG8gV29vZAkJCQkJY2FybG9AYWxpbm9lLmNvbQpMZS1DaHVuIFd1CQkJCQlsY3d1QGdvb2dsZS5jb20KTWluZ2ppZSBYaW5nCQkJCQltaW5namllLnhpbmdAZ21haWwuY29tCkNhbnF1biBZYW5nCQkJCQljYW5xdW5AbnVkdC5lZHUuY24KSmVmZnJleSBZYXNza2luCQkJCQlqeWFzc2tpbkBnb29nbGUuY29tCkpvZXkgWWUJCQkJCQlqb2V5LnllQGFybS5jb20KR3JldGEgWW9yc2gJCQkJCWdyZXRhLnlvcnNoQGFybS5jb20KRGF2aWQgWXVzdGUJCQkJCWRhdmlkLnl1c3RlQGdtYWlsLmNvbQpLaXJpbGwgWXVraGluCQkJCQlraXJpbGwueXVraGluQGdtYWlsLmNvbQpLZW5uZXRoIFphZGVjawkJCQkJemFkZWNrQG5hdHVyYWxicmlkZ2UuY29tCll1ZmVuZyBaaGFuZwkJCQkJeXVmZW5nLnpoYW5nQGFybS5jb20KU2h1amluZyBaaGFvCQkJCQlwZWFybHkuemhhb0BvcmFjbGUuY29tCkpvbiBaaWVnbGVyCQkJCQlqb256QGFwcGxlLmNvbQpSb21hbiBaaXBwZWwJCQkJCXppcHBlbEBsaW51eC1tNjhrLm9yZwpKb3NlZiBabG9tZWsJCQkJCWpvc2VmLnpsb21la0BlbWFpbC5jegoKQnVnIGRhdGFiYXNlIG9ubHkgYWNjb3VudHMKCkphbWVzIERlbm5ldHQJCQkJCWpkZW5uZXR0QGFjbS5vcmcKQ2hyaXN0aWFuIEVocmhhcmR0CQkJCWVocmhhcmR0QG1hdGhlbWF0aWsudW5pLXVsbS5kZQpEYXJhIEhhemVnaGkJCQkJCWRoYXplZ2hpQHlhaG9vLmNvbQo=