Tm90ZQo9PT09CgpUaGlzIGZpbGUgY29udGFpbnMgaW5mb3JtYXRpb24gYWJvdXQgcGVvcGxlIHdobyBhcmUgcGVybWl0dGVkIHRvIG1ha2UKY2hhbmdlcyB0byB2YXJpb3VzIHBhcnRzIG9mIHRoZSBjb21waWxlciBhbmQgYXNzb2NpYXRlZCBsaWJyYXJpZXMuCgpQbGVhc2UgZG8gbm90IGNvbnRhY3QgdGhlIHBlb3BsZSBpbiB0aGlzIGZpbGUgZGlyZWN0bHkgdG8gcmVwb3J0CnByb2JsZW1zIGluIEdDQy4KCkZvciBnZW5lcmFsIGluZm9ybWF0aW9uIGFib3V0IEdDQywgcGxlYXNlIHZpc2l0OgoKICBodHRwOi8vZ2NjLmdudS5vcmcKClRvIHJlcG9ydCBwcm9ibGVtcyBpbiBHQ0MsIHBsZWFzZSB2aXNpdDoKCiAgaHR0cDovL2djYy5nbnUub3JnL2J1Z3MuaHRtbAoKTWFpbnRhaW5lcnMKPT09PT09PT09PT0KCgkJCUdsb2JhbCBSZXZpZXdlcnMKClJpY2hhcmQgRWFybnNoYXcJCQkJcmljaGFyZC5lYXJuc2hhd0Bhcm0uY29tClJpY2hhcmQgR3VlbnRoZXIJCQkJcmd1ZW50aGVyQHN1c2UuZGUKUmljaGFyZCBIZW5kZXJzb24JCQkJcnRoQHJlZGhhdC5jb20KSmFrdWIgSmVsaW5lawkJCQkJamFrdWJAcmVkaGF0LmNvbQpHZW9mZnJleSBLZWF0aW5nCQkJCWdlb2Zma0BnZW9mZmsub3JnClJpY2hhcmQgS2VubmVyCQkJCQlrZW5uZXJAbnl1LmVkdQpKZWZmIExhdwkJCQkJbGF3QHJlZGhhdC5jb20KTWljaGFlbCBNZWlzc25lcgkJCQlnbnVAdGhlLW1laXNzbmVycy5vcmcKSmFzb24gTWVycmlsbAkJCQkJamFzb25AcmVkaGF0LmNvbQpEYXZpZCBTLiBNaWxsZXIJCQkJCWRhdmVtQHJlZGhhdC5jb20KTWFyayBNaXRjaGVsbAkJCQkJbWFya0Bjb2Rlc291cmNlcnkuY29tCkpvc2VwaCBNeWVycwkJCQkJam9zZXBoQGNvZGVzb3VyY2VyeS5jb20KRGllZ28gTm92aWxsbwkJCQkJZG5vdmlsbG9AZ29vZ2xlLmNvbQpCZXJuZCBTY2htaWR0CQkJCQliZXJuZHNAY29kZXNvdXJjZXJ5LmNvbQpJYW4gTGFuY2UgVGF5bG9yCQkJCWlhbkBhaXJzLmNvbQpKaW0gV2lsc29uCQkJCQl3aWxzb25AdHVsaXB0cmVlLm9yZwoKTm90ZSB0aGF0IHdoaWxlIGdsb2JhbCByZXZpZXdlcnMgY2FuIGFwcHJvdmUgY2hhbmdlcyB0byBhbnkgcGFydCBvZgp0aGUgY29tcGlsZXIgb3IgYXNzb2NpYXRlZCBsaWJyYXJpZXMsIHRoZXkgc3RpbGwgbmVlZCBhcHByb3ZhbCBmb3IKdGhlaXIgb3duIHBhdGNoZXMgZnJvbSBvdGhlciBtYWludGFpbmVycyBvciByZXZpZXdlcnMuCgoJCQlDUFUgUG9ydCBNYWludGFpbmVycwkoQ1BVIGFscGhhYmV0aWNhbCBvcmRlcikKCmFscGhhIHBvcnQJCVJpY2hhcmQgSGVuZGVyc29uCXJ0aEByZWRoYXQuY29tCmFybSBwb3J0CQlOaWNrIENsaWZ0b24JCW5pY2tjQHJlZGhhdC5jb20KYXJtIHBvcnQJCVJpY2hhcmQgRWFybnNoYXcJcmljaGFyZC5lYXJuc2hhd0Bhcm0uY29tCmFybSBwb3J0CQlQYXVsIEJyb29rCQlwYXVsQGNvZGVzb3VyY2VyeS5jb20KYXJtIHBvcnQJCVJhbWFuYSBSYWRoYWtyaXNobmFuCXJhbWFuYS5yYWRoYWtyaXNobmFuQGFybS5jb20KYXZyIHBvcnQJCURlbmlzIENoZXJ0eWtvdgkJY2hlcnR5a292QGdtYWlsLmNvbQphdnIgcG9ydAkJQW5hdG9seSBTb2tvbG92CQlhZXNva0Bwb3N0LnJ1CmF2ciBwb3J0CQlFcmljIFdlZGRpbmd0b24JCWVyaWMud2VkZGluZ3RvbkBhdG1lbC5jb20KYmZpbiBwb3J0CQlCZXJuZCBTY2htaWR0CQliZXJuZHNAY29kZXNvdXJjZXJ5LmNvbQpiZmluIHBvcnQJCUppZSBaaGFuZwkJanpoYW5nOTE4QGdtYWlsLmNvbQpjNnggcG9ydAkJQmVybmQgU2NobWlkdAkJYmVybmRzQGNvZGVzb3VyY2VyeS5jb20KY3JpcyBwb3J0CQlIYW5zLVBldGVyIE5pbHNzb24JaHBAYXhpcy5jb20KZXBpcGhhbnkgcG9ydAkJSm9lcm4gUmVubmVja2UJCWpvZXJuLnJlbm5lY2tlQGVtYmVjb3NtLmNvbQpmcjMwIHBvcnQJCU5pY2sgQ2xpZnRvbgkJbmlja2NAcmVkaGF0LmNvbQpmcnYgcG9ydAkJTmljayBDbGlmdG9uCQluaWNrY0ByZWRoYXQuY29tCmZydiBwb3J0CQlBbGV4YW5kcmUgT2xpdmEJCWFvbGl2YUByZWRoYXQuY29tCmg4IHBvcnQJCQlKZWZmIExhdwkJbGF3QHJlZGhhdC5jb20KaDggcG9ydAkJCUthenUgSGlyYXRhCQlrYXp1QGNvZGVzb3VyY2VyeS5jb20KaHBwYSBwb3J0CQlKZWZmIExhdwkJbGF3QHJlZGhhdC5jb20KaHBwYSBwb3J0CQlKb2huIERhdmlkIEFuZ2xpbglkYXZlLmFuZ2xpbkBucmMtY25yYy5nYy5jYQppMzg2IHBvcnQJCVJpY2hhcmQgSGVuZGVyc29uCXJ0aEByZWRoYXQuY29tCmkzODYgcG9ydAkJSmFuIEh1Ymlja2EJCWpoQHN1c2UuY3oKaTM4NiBwb3J0CQlVcm9zIEJpemphawkJdWJpempha0BnbWFpbC5jb20KaWE2NCBwb3J0CQlKaW0gV2lsc29uCQl3aWxzb25AdHVsaXB0cmVlLm9yZwppYTY0IHBvcnQJCVN0ZXZlIEVsbGNleQkJc2plQGN1cC5ocC5jb20KaXEyMDAwIHBvcnQJCU5pY2sgQ2xpZnRvbgkJbmlja2NAcmVkaGF0LmNvbQpsbTMyIHBvcnQJCVNlYmFzdGllbiBCb3VyZGVhdWR1Y3EJc2ViYXN0aWVuQG1pbGt5bWlzdC5vcmcKbTMyYyBwb3J0CQlESiBEZWxvcmllCQlkakByZWRoYXQuY29tCm0zMnIgcG9ydAkJTmljayBDbGlmdG9uCQluaWNrY0ByZWRoYXQuY29tCm02OGsgcG9ydCAoPykJCUplZmYgTGF3CQlsYXdAcmVkaGF0LmNvbQptNjhrIHBvcnQJCUFuZHJlYXMgU2Nod2FiCQlzY2h3YWJAbGludXgtbTY4ay5vcmcKbTY4ay1tb3Rvcm9sYS1zeXN2IHBvcnQJUGhpbGlwcGUgRGUgTXV5dGVyCXBoZG1AbWFjcWVsLmJlCm1jb3JlIHBvcnQJCU5pY2sgQ2xpZnRvbgkJbmlja2NAcmVkaGF0LmNvbQptZXAgcG9ydAkJREogRGVsb3JpZQkJZGpAcmVkaGF0LmNvbQptaWNyb2JsYXplCQlNaWNoYWVsIEVhZ2VyCQllYWdlckBlYWdlcmNvbi5jb20KbWlwcyBwb3J0CQlFcmljIENocmlzdG9waGVyCWVjaHJpc3RvQGFwcGxlLmNvbQptaXBzIHBvcnQJCVJpY2hhcmQgU2FuZGlmb3JkCXJkc2FuZGlmb3JkQGdvb2dsZW1haWwuY29tCm1taXggcG9ydAkJSGFucy1QZXRlciBOaWxzc29uCWhwQGJpdHJhbmdlLmNvbQptbjEwMzAwIHBvcnQJCUplZmYgTGF3CQlsYXdAcmVkaGF0LmNvbQptbjEwMzAwIHBvcnQJCUFsZXhhbmRyZSBPbGl2YQkJYW9saXZhQHJlZGhhdC5jb20KbW94aWUgcG9ydAkJQW50aG9ueSBHcmVlbgkJZ3JlZW5AbW94aWVsb2dpYy5jb20KcGRwMTEgcG9ydAkJUGF1bCBLb25pbmcJCW5pMWRAYXJybC5uZXQKcGljb2NoaXAgcG9ydAkJSGFyaWhhcmFuIFNhbmRhbmFnb2JhbGFuZQloYXJpaGFyYW4uZ2NjQGdtYWlsLmNvbQpwaWNvY2hpcCBwb3J0CQlEYW5pZWwgVG93bmVyCQlkYW50QHBpY29jaGlwLmNvbQpybDc4IHBvcnQJCURKIERlbG9yaWUJCWRqQHJlZGhhdC5jb20KcnM2MDAwIHBvcnQJCUdlb2ZmIEtlYXRpbmcJCWdlb2Zma0BnZW9mZmsub3JnCnJzNjAwMCBwb3J0CQlEYXZpZCBFZGVsc29obgkJZGplLmdjY0BnbWFpbC5jb20KcnM2MDAwIHZlY3RvciBleHRucwlBbGR5IEhlcm5hbmRlegkJYWxkeWhAcmVkaGF0LmNvbQpyeCBwb3J0CSAgICAgIAkJTmljayBDbGlmdG9uCQluaWNrY0ByZWRoYXQuY29tCnMzOTAgcG9ydAkJSGFydG11dCBQZW5uZXIJCWhwZW5uZXJAZGUuaWJtLmNvbQpzMzkwIHBvcnQJCVVscmljaCBXZWlnYW5kCQl1d2VpZ2FuZEBkZS5pYm0uY29tCnMzOTAgcG9ydAkJQW5kcmVhcyBLcmViYmVsCQlBbmRyZWFzLktyZWJiZWxAZGUuaWJtLmNvbQpzY29yZSBwb3J0CQlDaGVuIExpcWluCQlsaXFpbi5nY2NAZ21haWwuY29tCnNoIHBvcnQJCQlBbGV4YW5kcmUgT2xpdmEJCWFvbGl2YUByZWRoYXQuY29tCnNoIHBvcnQJCQlLYXogS29qaW1hCQlra29qaW1hQGdjYy5nbnUub3JnCnNwYXJjIHBvcnQJCVJpY2hhcmQgSGVuZGVyc29uCXJ0aEByZWRoYXQuY29tCnNwYXJjIHBvcnQJCURhdmlkIFMuIE1pbGxlcgkJZGF2ZW1AcmVkaGF0LmNvbQpzcGFyYyBwb3J0CQlFcmljIEJvdGNhem91CQllYm90Y2F6b3VAbGliZXJ0eXN1cmYuZnIKc3B1IHBvcnQJCVRyZXZvciBTbWlnaWVsCQl0cmV2b3Jfc21pZ2llbEBwbGF5c3RhdGlvbi5zb255LmNvbQpzcHUgcG9ydAkJRGF2aWQgRWRlbHNvaG4JCWRqZS5nY2NAZ21haWwuY29tCnNwdSBwb3J0CQlVbHJpY2ggV2VpZ2FuZAkJdXdlaWdhbmRAZGUuaWJtLmNvbQp0aWxlZ3ggcG9ydAkJV2FsdGVyIExlZQkJd2FsdEB0aWxlcmEuY29tCnRpbGVwcm8gcG9ydAkJV2FsdGVyIExlZQkJd2FsdEB0aWxlcmEuY29tCnY4NTAgcG9ydAkJTmljayBDbGlmdG9uCQluaWNrY0ByZWRoYXQuY29tCnZheCBwb3J0CQlNYXR0IFRob21hcwkJbWF0dEAzYW0tc29mdHdhcmUuY29tCng4Ni02NCBwb3J0CQlKYW4gSHViaWNrYQkJamhAc3VzZS5jegp4c3Rvcm15MTYgcG9ydAkJTmljayBDbGlmdG9uCQluaWNrY0ByZWRoYXQuY29tCnh0ZW5zYSBwb3J0CQlTdGVybGluZyBBdWd1c3RpbmUJYXVndXN0aW5lLnN0ZXJsaW5nQGdtYWlsLmNvbQoKCQkJT1MgUG9ydCBNYWludGFpbmVycwkoT1MgYWxwaGFiZXRpY2FsIG9yZGVyKQoKZGFyd2luIHBvcnQJCU1pa2UgU3R1bXAJCW1pa2VzdHVtcEBjb21jYXN0Lm5ldApkYXJ3aW4gcG9ydAkJRXJpYyBDaHJpc3RvcGhlcgllY2hyaXN0b0BhcHBsZS5jb20KZGFyd2luIHBvcnQJCVN0YW4gU2hlYnMJCXN0YW5zaGVic0BlYXJ0aGxpbmsubmV0CkRKR1BQCQkJREogRGVsb3JpZQkJZGpAZGVsb3JpZS5jb20KZnJlZWJzZAkJCUxvcmVuIEouIFJpdHRsZQkJbGpyaXR0bGVAYWNtLm9yZwpHTlUvSHVyZAkJVGhvbWFzIFNjaHdpbmdlCQl0aG9tYXNAc2Nod2luZ2UubmFtZQpocHV4CQkJSm9obiBEYXZpZCBBbmdsaW4JZGF2ZS5hbmdsaW5AbnJjLWNucmMuZ2MuY2EKaHB1eAkJCVN0ZXZlIEVsbGNleQkJc2plQGN1cC5ocC5jb20KaXJpeCwgb3NmLCBzb2xhcmlzCVJhaW5lciBPcnRoCQlyb0BDZUJpVGVjLlVuaS1CaWVsZWZlbGQuREUKbmV0YnNkCQkJSmFzb24gVGhvcnBlCQl0aG9ycGVqQG5ldGJzZC5vcmcKbmV0YnNkCQkJS3Jpc3RlciBXYWxmcmlkc3NvbglrcmlzdGVyLndhbGZyaWRzc29uQGdtYWlsLmNvbQpzaC1saW51eC1nbnUJCUtheiBLb2ppbWEJCWtrb2ppbWFAZ2NjLmdudS5vcmcKUlRFTVMgUG9ydHMJCUpvZWwgU2hlcnJpbGwJCWpvZWxAb2FyY29ycC5jb20KUlRFTVMgUG9ydHMJCVJhbGYgQ29yc2VwaXVzCQlyYWxmLmNvcnNlcGl1c0BydGVtcy5vcmcKVk1TCQkJRG91Z2xhcyBSdXBwCQlydXBwQGduYXQuY29tClZNUwkJCVRyaXN0YW4gR2luZ29sZAkJZ2luZ29sZEBhZGFjb3JlLmNvbQpWeFdvcmtzIHBvcnRzCQlOYXRoYW4gU2lkd2VsbAkJbmF0aGFuQGNvZGVzb3VyY2VyeS5jb20Kd2luZG93cywgY3lnd2luLCBtaW5ndwlDaHJpc3RvcGhlciBGYXlsb3IJY2dmQGdjYy5nbnUub3JnCndpbmRvd3MsIGN5Z3dpbiwgbWluZ3cJS2FpIFRpZXR6CQlrdGlldHpAcmVkaGF0LmNvbQp3aW5kb3dzLCBjeWd3aW4sIG1pbmd3CURhdmUgS29ybgkJZGF2ZS5rb3JuLmN5Z3dpbkBnbWFpbC5jb20KCgkJCUxhbmd1YWdlIEZyb250IEVuZHMgTWFpbnRhaW5lcnMKCkMgZnJvbnQgZW5kL0lTTyBDOTkJSm9zZXBoIE15ZXJzCQlqb3NlcGhAY29kZXNvdXJjZXJ5LmNvbQpDIGZyb250IGVuZC9JU08gQzk5CVJpY2hhcmQgSGVuZGVyc29uCXJ0aEByZWRoYXQuY29tCkFkYSBmcm9udCBlbmQJCUdlZXJ0IEJvc2NoCQlib3NjaEBnbmF0LmNvbQpBZGEgZnJvbnQgZW5kCQlSb2JlcnQgRGV3YXIJCWRld2FyQGduYXQuY29tCkFkYSBmcm9udCBlbmQJCUFybmF1ZCBDaGFybGV0CQljaGFybGV0QGFjdC1ldXJvcGUuZnIKQWRhIGZyb250IGVuZAkJRXJpYyBCb3RjYXpvdQkJZWJvdGNhem91QGxpYmVydHlzdXJmLmZyCkZvcnRyYW4JCQlQYXVsIEJyb29rCQlwYXVsQGNvZGVzb3VyY2VyeS5jb20KYysrCQkJSmFzb24gTWVycmlsbAkJamFzb25AcmVkaGF0LmNvbQpjKysJCQlNYXJrIE1pdGNoZWxsCQltYXJrQGNvZGVzb3VyY2VyeS5jb20KYysrCQkJTmF0aGFuIFNpZHdlbGwJCW5hdGhhbkBjb2Rlc291cmNlcnkuY29tCmdvCQkJSWFuIExhbmNlIFRheWxvcglpYW5AYWlycy5jb20KamF2YQkJCVBlciBCb3RobmVyCQlwZXJAYm90aG5lci5jb20KamF2YQkJCUFuZHJldyBIYWxleQkJYXBoQHJlZGhhdC5jb20KamF2YQkJCVRvbSBUcm9tZXkJCXRyb21leUByZWRoYXQuY29tCm9iamVjdGl2ZS1jL2MrKwkJTWlrZSBTdHVtcAkJbWlrZXN0dW1wQGNvbWNhc3QubmV0Cm9iamVjdGl2ZS1jL2MrKwkJU3RhbiBTaGVicwkJc3RhbnNoZWJzQGVhcnRobGluay5uZXQKCgkJCVZhcmlvdXMgTWFpbnRhaW5lcnMKCmxpYmNwcAkJCVBlciBCb3RobmVyCQlwZXJAYm90aG5lci5jb20KbGliY3BwCQkJQWxsIEMgYW5kIEMrKyBmcm9udCBlbmQgbWFpbnRhaW5lcnMKZnAtYml0CQkJSWFuIExhbmNlIFRheWxvcglpYW5AYWlycy5jb20KbGliZGVjbnVtYmVyCQlCZW4gRWxsaXN0b24JCWJqZUBnbnUub3JnCmxpYmdjYwkJCUlhbiBMYW5jZSBUYXlsb3IJaWFuQGFpcnMuY29tCmxpYmdjagkJCVRvbSBUcm9tZXkJCXRyb21leUByZWRoYXQuY29tCmxpYmdjagkJCUJyeWNlIE1jS2lubGF5CQltY2tpbmxheUByZWRoYXQuY29tCmxpYmdvCQkJSWFuIExhbmNlIFRheWxvcglpYW5AYWlycy5jb20KbGliZ29tcAkJCVJpY2hhcmQgSGVuZGVyc29uCXJ0aEByZWRoYXQuY29tCmxpYmdvbXAJCQlKYWt1YiBKZWxpbmVrCQlqYWt1YkByZWRoYXQuY29tCmxpYmliZXJ0eQkJREogRGVsb3JpZQkJZGpAcmVkaGF0LmNvbQpsaWJpYmVydHkJCUlhbiBMYW5jZSBUYXlsb3IJaWFuQGFpcnMuY29tCmxpYmZmaSB0ZXN0c3VpdGUJQW5kcmVhcyBUb2JsZXIJCWFuZHJlYXN0QGdjYy5nbnUub3JnCmxpYm9iamMJCQlOaWNvbGEgUGVybwkJbmljb2xhLnBlcm9AbWV0YS1pbm5vdmF0aW9uLmNvbQpsaWJvYmpjCQkJQW5kcmV3IFBpbnNraQkJcGluc2tpYUBnbWFpbC5jb20KbGlicXVhZG1hdGgJCVRvYmlhcyBCdXJudXMJCWJ1cm51c0BuZXQtYi5kZQpsaWJxdWFkbWF0aAkJSmFrdWIgSmVsaW5lawkJamFrdWJAcmVkaGF0LmNvbQpsb29wIGRpc2NvdmVyeQkJTWljaGFlbCBIYXllcwkJbS5oYXllc0BlbGVjLmNhbnRlcmJ1cnkuYWMubnoKc29mdC1mcAkJCUpvc2VwaCBNeWVycwkJam9zZXBoQGNvZGVzb3VyY2VyeS5jb20Kc2NoZWR1bGVyICgrIGhhaWZhKQlKaW0gV2lsc29uCQl3aWxzb25AdHVsaXB0cmVlLm9yZwpzY2hlZHVsZXIgKCsgaGFpZmEpCU1pY2hhZWwgTWVpc3NuZXIJZ251QHRoZS1tZWlzc25lcnMub3JnCnNjaGVkdWxlciAoKyBoYWlmYSkJSmVmZiBMYXcJCWxhd0ByZWRoYXQuY29tCnNjaGVkdWxlciAoKyBoYWlmYSkJVmxhZGltaXIgTWFrYXJvdgl2bWFrYXJvdkByZWRoYXQuY29tCm1vZHVsby1zY2hlZHVsZXIJQXlhbCBaYWtzCQl6YWtzQGlsLmlibS5jb20KcmVvcmcJCQlKZWZmIExhdwkJbGF3QHJlZGhhdC5jb20KY2FsbGVyLXNhdmUuYwkJSmVmZiBMYXcJCWxhd0ByZWRoYXQuY29tCmNhbGxncmFwaAkJSmFuIEh1Ymlja2EJCWpoQHN1c2UuY3oKZGVidWdnaW5nIGNvZGUJCUppbSBXaWxzb24JCXdpbHNvbkB0dWxpcHRyZWUub3JnCmR3YXJmIGRlYnVnZ2luZyBjb2RlCUphc29uIE1lcnJpbGwJCWphc29uQHJlZGhhdC5jb20KYysrIHJ1bnRpbWUgbGlicwlQYW9sbyBDYXJsaW5pCQlwYW9sby5jYXJsaW5pQG9yYWNsZS5jb20KYysrIHJ1bnRpbWUgbGlicwlHYWJyaWVsIERvcyBSZWlzCWdkckBpbnRlZ3JhYmxlLXNvbHV0aW9ucy5uZXQKYysrIHJ1bnRpbWUgbGlicwlVbHJpY2ggRHJlcHBlcgkJZHJlcHBlckByZWRoYXQuY29tCmMrKyBydW50aW1lIGxpYnMJQmVuamFtaW4gS29zbmlrCQlia296QHJlZGhhdC5jb20KYysrIHJ1bnRpbWUgbGlicwlMb3JlbiBKLiBSaXR0bGUJCWxqcml0dGxlQGFjbS5vcmcKYysrIHJ1bnRpbWUgbGlicwlKb25hdGhhbiBXYWtlbHkJCXJlZGlAZ2NjLmdudS5vcmcKKnN5bnRoZXRpYyBtdWx0aXBseQlUb3Jiam9ybiBHcmFubHVuZAl0ZWdlQHN3b3guY29tCipjLXRvcnR1cmUJCVRvcmJqb3JuIEdyYW5sdW5kCXRlZ2VAc3dveC5jb20KZml4aW5jbHVkZXMJCUJydWNlIEtvcmIJCWJrb3JiQGdudS5vcmcKKmdpbXBsKgkJCUpha3ViIEplbGluZWsJCWpha3ViQHJlZGhhdC5jb20KKmdpbXBsKgkJCUFsZHkgSGVybmFuZGV6CQlhbGR5aEByZWRoYXQuY29tCipnaW1wbCoJCQlKYXNvbiBNZXJyaWxsCQlqYXNvbkByZWRoYXQuY29tCmdjc2UuYyAJCQlKZWZmIExhdwkJbGF3QHJlZGhhdC5jb20KZ2xvYmFsIG9wdCBmcmFtZXdvcmsJSmVmZiBMYXcJCWxhd0ByZWRoYXQuY29tCmp1bXAuYwkJCURhdmlkIFMuIE1pbGxlcgkJZGF2ZW1AcmVkaGF0LmNvbQp3ZWIgcGFnZXMJCUdlcmFsZCBQZmVpZmVyCQlnZXJhbGRAcGZlaWZlci5jb20KY29uZmlnLnN1Yi9jb25maWcuZ3Vlc3MJQmVuIEVsbGlzdG9uCQljb25maWctcGF0Y2hlc0BnbnUub3JnCmJhc2ljIGJsb2NrIHJlb3JkZXJpbmcJSmFzb24gRWNraGFyZHQJCWpsZUByaWNlLmVkdQppMThuCQkJUGhpbGlwcCBUaG9tYXMJCXB0aEBzdXNlLmRlCmkxOG4JCQlKb3NlcGggTXllcnMJCWpvc2VwaEBjb2Rlc291cmNlcnkuY29tCmRpYWdub3N0aWMgbWVzc2FnZXMJR2FicmllbCBEb3MgUmVpcwlnZHJAaW50ZWdyYWJsZS1zb2x1dGlvbnMubmV0CmJ1aWxkIG1hY2hpbmVyeSAoKi5pbikJUGFvbG8gQm9uemluaQkJYm9uemluaUBnbnUub3JnCmJ1aWxkIG1hY2hpbmVyeSAoKi5pbikJREogRGVsb3JpZQkJZGpAcmVkaGF0LmNvbQpidWlsZCBtYWNoaW5lcnkgKCouaW4pCU5hdGhhbmFlbCBOZXJvZGUJbmVyb2RlbkBnY2MuZ251Lm9yZwpidWlsZCBtYWNoaW5lcnkgKCouaW4pCUFsZXhhbmRyZSBPbGl2YQkJYW9saXZhQHJlZGhhdC5jb20KYnVpbGQgbWFjaGluZXJ5ICgqLmluKQlSYWxmIFdpbGRlbmh1ZXMJCVJhbGYuV2lsZGVuaHVlc0BnbXguZGUKZG9jcyBjby1tYWludGFpbmVyCUdlcmFsZCBQZmVpZmVyCQlnZXJhbGRAcGZlaWZlci5jb20KZG9jcyBjby1tYWludGFpbmVyCUpvc2VwaCBNeWVycwkJam9zZXBoQGNvZGVzb3VyY2VyeS5jb20KZG9jc3RyaW5nIHJlbGljZW5zaW5nCURpZWdvIE5vdmlsbG8JCWRub3ZpbGxvQGdvb2dsZS5jb20KZG9jc3RyaW5nIHJlbGljZW5zaW5nCUdlcmFsZCBQZmVpZmVyCQlnZXJhbGRAcGZlaWZlci5jb20KZG9jc3RyaW5nIHJlbGljZW5zaW5nCUpvc2VwaCBNeWVycwkJam9zZXBoQGNvZGVzb3VyY2VyeS5jb20KcHJlZGljdC5kZWYJCUphbiBIdWJpY2thCQlqaEBzdXNlLmN6CmNvbnRyaWIvcmVncmVzc2lvbglHZW9mZiBLZWF0aW5nCQlnZW9mZmtAZ2VvZmZrLm9yZwpnY292CQkJSmFuIEh1Ymlja2EJCWpoQHN1c2UuY3oKZ2NvdgkJCU5hdGhhbiBTaWR3ZWxsCQluYXRoYW5AY29kZXNvdXJjZXJ5LmNvbQpvcHRpb24gaGFuZGxpbmcJCU5laWwgQm9vdGgJCW5laWxAZGFpa29rdXlhLmNvLnVrCm9wdGlvbiBoYW5kbGluZwkJSm9zZXBoIE15ZXJzCQlqb3NlcGhAY29kZXNvdXJjZXJ5LmNvbQptaWRkbGUtZW5kCQlKZWZmIExhdwkJbGF3QHJlZGhhdC5jb20KbWlkZGxlLWVuZAkJUm9nZXIgU2F5bGUJCXJvZ2VyQGV5ZXNvcGVuLmNvbQptaWRkbGUtZW5kCQlJYW4gTGFuY2UgVGF5bG9yCWlhbkBhaXJzLmNvbQptaWRkbGUtZW5kCQlEaWVnbyBOb3ZpbGxvCQlkbm92aWxsb0Bnb29nbGUuY29tCm1pZGRsZS1lbmQJCVJpY2hhcmQgR3VlbnRoZXIJcmd1ZW50aGVyQHN1c2UuZGUKdHJlZS1zc2EJCURpZWdvIE5vdmlsbG8JCWRub3ZpbGxvQGdvb2dsZS5jb20KdHJlZS1zc2EJCUFuZHJldyBNYWNMZW9kCQlhbWFjbGVvZEByZWRoYXQuY29tClBSRQkJCURhbmllbCBCZXJsaW4JCWRiZXJsaW5AZGJlcmxpbi5vcmcKY29kZSBzaW5raW5nCQlEYW5pZWwgQmVybGluCQlkYmVybGluQGRiZXJsaW4ub3JnCm11ZGZsYXAJCQlGcmFuayBDaC4gRWlnbGVyCWZjaGVAcmVkaGF0LmNvbQp0cmVlIGJyb3dzZXIvdW5wYXJzZXIJU2ViYXN0aWFuIFBvcAkJc2ViYXN0aWFuLnBvcEBhbWQuY29tCnNjZXYsIGRhdGEgZGVwZW5kZW5jZQlEYW5pZWwgQmVybGluCQlkYmVybGluQGRiZXJsaW4ub3JnCnNjZXYsIGRhdGEgZGVwZW5kZW5jZQlTZWJhc3RpYW4gUG9wCQlzZWJhc3RpYW4ucG9wQGFtZC5jb20KcHJvZmlsZSBmZWVkYmFjawlKYW4gSHViaWNrYQkJamhAc3VzZS5jegp0eXBlLXNhZmUgdmVjdG9ycwlOYXRoYW4gU2lkd2VsbAkJbmF0aGFuQGNvZGVzb3VyY2VyeS5jb20KYWxpYXMgYW5hbHlzaXMJCURhbmllbCBCZXJsaW4JCWRiZXJsaW5AZGJlcmxpbi5vcmcKcmVsb2FkCQkJVWxyaWNoIFdlaWdhbmQJCXV3ZWlnYW5kQGRlLmlibS5jb20KcmVsb2FkCQkJQmVybmQgU2NobWlkdAkJYmVybmRzQGNvZGVzb3VyY2VyeS5jb20KZGZwLmMsIHJlbGF0ZWQJCUJlbiBFbGxpc3RvbgkJYmplQGdudS5vcmcKUlRMIG9wdGltaXplcnMJCUVyaWMgQm90Y2F6b3UJCWVib3RjYXpvdUBsaWJlcnR5c3VyZi5mcgpSVEwgb3B0aW1pemVycwkJUmljaGFyZCBTYW5kaWZvcmQJcmRzYW5kaWZvcmRAZ29vZ2xlbWFpbC5jb20KYXV0by12ZWN0b3JpemVyCQlSaWNoYXJkIEd1ZW50aGVyCXJndWVudGhlckBzdXNlLmRlCmF1dG8tdmVjdG9yaXplcgkJWmRlbmVrIER2b3JhawkJb29rQHVjdy5jegpsb29wIGluZnJhc3RydWN0dXJlCVpkZW5layBEdm9yYWsJCW9va0B1Y3cuY3oKT3Blbk1QCQkJSmFrdWIgSmVsaW5lawkJamFrdWJAcmVkaGF0LmNvbQp0ZXN0c3VpdGUJCVJhaW5lciBPcnRoCQlyb0BDZUJpVGVjLlVuaS1CaWVsZWZlbGQuREUKdGVzdHN1aXRlCQlNaWtlIFN0dW1wCQltaWtlc3R1bXBAY29tY2FzdC5uZXQKcmVnaXN0ZXIgYWxsb2NhdGlvbglWbGFkaW1pciBNYWthcm92CXZtYWthcm92QHJlZGhhdC5jb20KCk5vdGUgdGhhdCBpbmRpdmlkdWFscyB3aG8gbWFpbnRhaW4gcGFydHMgb2YgdGhlIGNvbXBpbGVyIG5lZWQgYXBwcm92YWwgdG8KY2hlY2sgaW4gY2hhbmdlcyBvdXRzaWRlIG9mIHRoZSBwYXJ0cyBvZiB0aGUgY29tcGlsZXIgdGhleSBtYWludGFpbi4KCgkJCU5vbi1BbGdvcml0aG1pYyBNYWludGFpbmVycwoKbG9vcCBvcHRpbWl6ZXIJCURhbmllbCBCZXJsaW4JCWRiZXJsaW5AZGJlcmxpbi5vcmcKCk5vdGUgdGhhdCBpbmRpdmlkdWFscyB3aG8gbWFpbnRhaW4gcGFydHMgb2YgdGhlIGNvbXBpbGVyIGFzIG5vbi1hbGdvcml0aG1pYwptYWludGFpbmVycyBuZWVkIGFwcHJvdmFsIHRvIGNoZWNrIGluIGFsZ29yaXRobWljIGNoYW5nZXMgb3IgY2hhbmdlcwpvdXRzaWRlIG9mIHRoZSBwYXJ0cyBvZiB0aGUgY29tcGlsZXIgdGhleSBtYWludGFpbi4KCgkJCVJldmlld2VycwoKZGF0YWZsb3cJCVBhb2xvIEJvbnppbmkJCWJvbnppbmlAZ251Lm9yZwpkYXRhZmxvdwkJU2VvbmdiYWUgUGFyawkJc2VvbmdiYWUucGFya0BnbWFpbC5jb20KZGF0YWZsb3cgCQlLZW5uZXRoIFphZGVjawkJemFkZWNrQG5hdHVyYWxicmlkZ2UuY29tCmRyaXZlcgkJCUpvc2VwaCBNeWVycwkJam9zZXBoQGNvZGVzb3VyY2VyeS5jb20KRm9ydHJhbgkJCUphbm5lIEJsb21xdmlzdAkJamJAZ2NjLmdudS5vcmcKRm9ydHJhbgkJCVRvYmlhcyBCdXJudXMJCWJ1cm51c0BuZXQtYi5kZQpGb3J0cmFuCQkJSmVycnkgRGVMaXNsZQkJanZkZWxpc2xlQGdjYy5nbnUub3JnCkZvcnRyYW4JCQlFcmlrIEVkZWxtYW5uCQllcmlrLmVkZWxtYW5uQGlraS5maQpGb3J0cmFuCQkJRGFuaWVsIEZyYW5rZQkJZnJhbmtlLmRhbmllbEBnbWFpbC5jb20KRm9ydHJhbgkJCVN0ZXZlbiBHLiBLYXJnbAkJc2drQHRyb3V0bWFzay5hcGwud2FzaGluZ3Rvbi5lZHUKRm9ydHJhbgkJCVRob21hcyBL9m5pZwkJdGtvZW5pZ0BnY2MuZ251Lm9yZwpGb3J0cmFuCQkJRGFuaWVsIEtyYWZ0CQlkQGRvbW9iLmV1CkZvcnRyYW4JCQlUb29uIE1vZW5lCQl0b29uQG1vZW5lLm9yZwpGb3J0cmFuCQkJTWlrYWVsIE1vcmluCQltaWthZWwubW9yaW5Ac2ZyLmZyCkZvcnRyYW4JCQlCcm9va3MgTW9zZXMJCWJyb29rcy5tb3Nlc0Bjb2Rlc291cmNlcnkuY29tCkZvcnRyYW4JCQlUb2JpYXMgU2NobPx0ZXIJCXRvYmlhcy5zY2hsdWV0ZXJAcGh5c2lrLnVuaS1tdWVuY2hlbi5kZQpGb3J0cmFuCQkJUGF1bCBUaG9tYXMJCXBhdWx0QGdjYy5nbnUub3JnCkZvcnRyYW4JCQlKYW51cyBXZWlsCQlqYW51c0BnY2MuZ251Lm9yZwpnZW5ndHlwZS9HVFkJCUxhdXJ5bmFzIEJpdmVpbmlzICAgICAgIGxhdXJ5bmFzLmJpdmVpbmlzQGdtYWlsLmNvbQpHcmFwaGl0ZQkJRGFuaWVsIEJlcmxpbgkJZGJlcmxpbkBkYmVybGluLm9yZwpHcmFwaGl0ZSAJCVRvYmlhcyBHcm9zc2VyCQlncm9zc2VyQGZpbS51bmktcGFzc2F1LmRlCkdyYXBoaXRlCQlTZWJhc3RpYW4gUG9wCQlzZWJhc3RpYW4ucG9wQGFtZC5jb20KbGliY3BwCQkJVG9tIFRyb21leQkJdHJvbWV5QHJlZGhhdC5jb20KbG9vcCBvcHRpbWl6ZXIJCVpkZW5layBEdm9yYWsJCW9va0B1Y3cuY3oKTFRPCQkJRGllZ28gTm92aWxsbwkJZG5vdmlsbG9AZ29vZ2xlLmNvbQpMVE8JCQlSaWNoYXJkIEd1ZW50aGVyCXJndWVudGhlckBzdXNlLmRlCkxUTyBwbHVnaW4JCUNhcnkgQ291dGFudAkJY2NvdXRhbnRAZ29vZ2xlLmNvbQpQbHVnaW4JCQlEaWVnbyBOb3ZpbGxvCQlkbm92aWxsb0Bnb29nbGUuY29tClBsdWdpbgkJCUxlLUNodW4gV3UJCWxjd3VAZ29vZ2xlLmNvbQpyZWdpc3RlciBhbGxvY2F0aW9uCVBldGVyIEJlcmduZXIJCWJlcmduZXJAdm5ldC5pYm0uY29tCnJlZ2lzdGVyIGFsbG9jYXRpb24JS2VubmV0aCBaYWRlY2sJCXphZGVja0BuYXR1cmFsYnJpZGdlLmNvbQpyZWdpc3RlciBhbGxvY2F0aW9uCVNlb25nYmFlIFBhcmsJCXNlb25nYmFlLnBhcmtAZ21haWwuY29tCnNlbGVjdGl2ZSBzY2hlZHVsaW5nCUFuZHJleSBCZWxldmFudHNldglhYmVsQGlzcHJhcy5ydQoKTm90ZSB0aGF0IHdoaWxlIHJldmlld2VycyBjYW4gYXBwcm92ZSBjaGFuZ2VzIHRvIHBhcnRzIG9mIHRoZSBjb21waWxlcgp0aGF0IHRoZXkgbWFpbnRhaW4sIHRoZXkgc3RpbGwgbmVlZCBhcHByb3ZhbCBmb3IgdGhlaXIgb3duIHBhdGNoZXMKZnJvbSBvdGhlciBtYWludGFpbmVycyBvciByZXZpZXdlcnMuCgoJCQlXcml0ZSBBZnRlciBBcHByb3ZhbAkobGFzdCBuYW1lIGFscGhhYmV0aWNhbCBvcmRlcikKCk1hcmsgRy4gQWRhbXMJCQkJCW1hcmsuZy5hZGFtc0BzeW1wYXRpY28uY2EKUmFrc2l0IEFzaG9rCQkJCQlyYWtzaXRAZ29vZ2xlLmNvbQpNYXR0IEF1c3Rlcm4JCQkJCWF1c3Rlcm5AZ29vZ2xlLmNvbQpEYXZpZCBBeWVycwkJCQkJYXllcnNAZnNmZS5vcmcKR2lvdmFubmkgQmFqbwkJCQkJZ2lvdmFubmliYWpvQGdjYy5nbnUub3JnClNpbW9uIEJhbGR3aW4JCQkJCXNpbW9uYkBnb29nbGUuY29tClNjb3R0IEJhbWJyb3VnaAkJCQkJc2NvdHRiQG5ldHdpbmRlci5vcmcKV29sZmdhbmcgQmFuZ2VydGgJCQkJYmFuZ2VydGhAZGVhbGlpLm9yZwpUZWphcyBCZWxhZ29kCQkJCQl0ZWphcy5iZWxhZ29kQGFybS5jb20KQW5kcmV5IEJlbGV2YW50c2V2CQkJCWFiZWxAaXNwcmFzLnJ1CkpvbiBCZW5pc3RvbgkJCQkJam9uQGJlbmlzdG9uLmNvbQpQZXRlciBCZXJnbmVyCQkJCQliZXJnbmVyQHZuZXQuaWJtLmNvbQpKYW4gQmV1bGljaAkJCQkJamJldWxpY2hAbm92ZWxsLmNvbQpEYXZpZCBCaWxsaW5naHVyc3QJCQkJRGF2aWQuQmlsbGluZ2h1cnN0QHJpb3RpbnRvLmNvbQpUb21hcyBCaWx5CQkJCQl0YmlseUBzdXNlLmN6CkVyaWMgQmxha2UJCQkJCWVyaWNiQGdjYy5nbnUub3JnClBoaWwgQmx1bmRlbGwJCQkJCXBiQGZ1dHVyZXR2LmNvbQpIYW5zIEJvZWhtCQkJCQloYm9laG1AZ2NjLmdudS5vcmcKU2VnaGVyIEJvZXNzZW5rb29sCQkJCXNlZ2hlckBrZXJuZWwuY3Jhc2hpbmcub3JnCklhbiBCb2x0b24JCQkJCWlhbi5ib2x0b25AYXJtLmNvbQpBbmRyZWEgQm9uYQkJCQkJYW5kcmVhLmJvbmFAc3QuY29tClBhb2xvIEJvbnppbmkJCQkJCWJvbnppbmlAZ251Lm9yZwpOZWlsIEJvb3RoCQkJCQluZWlsQGRhaWtva3V5YS5jby51awpTdGV2ZW4gQm9zc2NoZXIJCQkJCXN0ZXZlbkBnY2MuZ251Lm9yZwpSb2JlcnQgQm93ZGlkZ2UJCQkJCWJvd2RpZGdlQGFwcGxlLmNvbQpKb2VsIEJyb2JlY2tlcgkJCQkJYnJvYmVja2VyQGduYXQuY29tCkRhdmUgQnJvbGxleQkJCQkJYnJvbGxleUByZWRoYXQuY29tCkp1bGlhbiBCcm93bgkJCQkJanVsaWFuQGNvZGVzb3VyY2VyeS5jb20KQ2hyaXN0aWFuIEJydWVsCQkJCQljaHJpc3RpYW4uYnJ1ZWxAc3QuY29tCktldmluIEJ1ZXR0bmVyCQkJCQlrZXZpbmJAcmVkaGF0LmNvbQpBbmRyZXcgQ2FnbmV5CQkJCQljYWduZXlAcmVkaGF0LmNvbQpEYW5pZWwgQ2FycmVyYQkJCQkJZGNhcnJlcmFAZ21haWwuY29tClN0ZXBoYW5lIENhcnJlegkJCQkJc3RjYXJyZXpAbmVyaW0uZnIKR2FicmllbCBDaGFyZXR0ZQkJCQlnY2hhcmVAZ29vZ2xlLmNvbQpDaGFuZHJhIENoYXZ2YQkJCQkJY2NoYXZ2YUByZWRoYXQuY29tCkZhYmllbiBDaOpuZQkJCQkJZmFiaWVuQGdjYy5nbnUub3JnCkJpbiBDaGVuZwkJCQkJYmluLmNoZW5nQGFybS5jb20KSGFyc2hpdCBDaG9wcmEgICAgICAgIGhhcnNoaXRAZ29vZ2xlLmNvbQpXaWxsaWFtIENvaGVuCQkJCQl3Y29oZW5AcmVkaGF0LmNvbQpKb3NoIENvbm5lcgkJCQkJamNvbm5lckBhcHBsZS5jb20KUi4gS2VsbGV5IENvb2sJCQkJCWtjb29rQGdjYy5nbnUub3JnCkNocmlzdGlhbiBDb3JuZWxzc2VuCQkJCWNjb3JuQGNzLnR1LWJlcmxpbi5kZQpGcmFu529pcy1YYXZpZXIgQ291ZGVydAkJCQlmeGNvdWRlcnRAZ2NjLmdudS5vcmcKQ2FyeSBDb3V0YW50CQkJCQljY291dGFudEBnb29nbGUuY29tCklhbiBEYWxsCQkJCQlpYW5AYmV3YXJlLmRyb3BiZWFyLmlkLmF1CkRhdmlkIERhbmV5CQkJCQlkYXZpZC5kYW5leUBjYXZpdW1uZXR3b3Jrcy5jb20KQnVkIERhdmlzCQkJCQlqbWRhdmlzQGxpbmsuY29tCkNocmlzIERlbWV0cmlvdQkJCQkJY2dkQGdvb2dsZS5jb20KU2FtZWVyYSBEZXNocGFuZGUJCQkJc2FtZWVyYS5kZXNocGFuZGVAYXJtLmNvbQpGcmFu529pcyBEdW1vbnQJCQkJCWZkdW1vbnRAZ2NjLmdudS5vcmcKQmVub2l0IER1cG9udCBkZSBEaW5lY2hpbgkJCWJlbm9pdC5kdXBvbnQtZGUtZGluZWNoaW5Ac3QuY29tCk1pY2hhZWwgRWFnZXIJCQkJCWVhZ2VyQGVhZ2VyY29uLmNvbQpQaGlsIEVkd2FyZHMJCQkJCXBtZUBnY2MuZ251Lm9yZwpNb2hhbiBFbWJhcgkJCQkJZ251c3R1ZmZAdGhpc2lzY29vbC5jb20KT2xlZyBFbmRvCQkJCQlvbGVnZW5kb0BnY2MuZ251Lm9yZwpSZXZpdGFsIEVyZXMJCQkJCWVyZXNAaWwuaWJtLmNvbQpNYXJjIEVzcGllCQkJCQllc3BpZUBjdnMub3BlbmJzZC5vcmcKUmFmYWVsIMF2aWxhIGRlIEVzcO1uZG9sYQkJCWVzcGluZG9sYUBnb29nbGUuY29tCkFuc2dhciBFc3p0ZXJtYW5uCQkJCWFuc2dhckB0aHBoeS51bmktZHVlc3NlbGRvcmYuZGUKRG91ZyBFdmFucwkJCQkJZGplQGdvb2dsZS5jb20KQ2hyaXMgRmFpcmxlcwkJCQkJY2ZhaXJsZXNAZ2NjLmdudS5vcmcKQ2hhbmdwZW5nIEZhbmcJCQkJCWNoYW5ncGVuZy5mYW5nQGFtZC5jb20KTGkgRmVuZwkJCQkJCW5lbW9raW5nZG9tQGdtYWlsLmNvbQpUaG9tYXMgRml0enNpbW1vbnMJCQkJZml0enNpbUByZWRoYXQuY29tCkJyaWFuIEZvcmQJCQkJCWZvcmRAdnNzLmZzaS5jb20KSm9obiBGcmVlbWFuCQkJCQlqZnJlZW1hbjA4QGdtYWlsLmNvbQpOYXRoYW4gRnJveWQJCQkJCWZyb3lkbmpAZ2NjLmdudS5vcmcKQ2hhby15aW5nIEZ1CQkJCQlmdUBtaXBzLmNvbQpHYXJ5IEZ1bmNrCQkJCQlnYXJ5QGludHJlcGlkLmNvbQpQb21wYXBhdGhpIFYgR2FkYWQgCQkJCVBvbXBhcGF0aGkuVi5HYWRhZEBuc2MuY29tCkthdmVoIEdoYXppCQkJCQlnaGF6aUBnY2MuZ251Lm9yZwpNYXR0aGV3IEdpbmdlbGwJCQkJCWdpbmdlbGxAZ25hdC5jb20KVHJpc3RhbiBHaW5nb2xkCQkJCQlnaW5nb2xkQGFkYWNvcmUuY29tCkFudGhvbnkgR3JlZW4JCQkJCWdyZWVuQHJlZGhhdC5jb20KRG91ZyBHcmVnb3IJCQkJCWRvdWcuZ3JlZ29yQGdtYWlsLmNvbQpNYXR0aGV3IEdyZXR0b24tRGFubgkJCQltYXR0aGV3LmdyZXR0b24tZGFubkBhcm0uY29tCkpvbiBHcmltbQkJCQkJamdyaW1tMkB1cy5pYm0uY29tCkxhdXJlbnQgR3VlcmJ5CQkJCQlsYXVyZW50QGd1ZXJieS5uZXQKWHVlcGVuZyBHdW8JCQkJCXRlcnJ5Lmd1b0Bhcm0uY29tCldlaSBHdW96aGkJCQkJCWNhcnJvdEBnb29nbGUuY29tCk1vc3RhZmEgSGFnb2cJCQkJCWhhZ29nQGdjYy5nbnUub3JnCk9saXZpZXIgSGFpbnF1ZQkJCQkJaGFpbnF1ZUBhY3QtZXVyb3BlLmZyClN0dWFydCBIYXN0aW5ncwkJCQkJc3R1YXJ0QGFwcGxlLmNvbQpQYXQgSGF1Z2VuCQkJCQlwdGhhdWdlbkB1cy5pYm0uY29tCk1hcmsgSGVmZmVybmFuCQkJCQltZWhlZmZAZ29vZ2xlLmNvbQpHZW9yZ2UgSGVsZmZyaWNoCQkJCWdlb3JnZUBnY2MuZ251Lm9yZwpGZXJndXMgSGVuZGVyc29uCQkJCWZqaEBjcy5tdS5vei5hdQpTdHVhcnQgSGVuZGVyc29uCQkJCXNoZW5kZXJzQGdjYy5nbnUub3JnCk1hdHRoZXcgSGlsbGVyCQkJCQloaWxsZXJAcmVkaGF0LmNvbQpNYW5mcmVkIEhvbGxzdGVpbgkJCQltaEBzdXNlLmNvbQpGYWxrIEh1ZWZmbmVyCQkJCQlmYWxrQGRlYmlhbi5vcmcKQW5kcmV3IEpvaG4gSHVnaGVzCQkJCWdudV9hbmRyZXdAbWVtYmVyLmZzZi5vcmcKQW5keSBIdXRjaGluc29uCQkJCQlodXRjaGluc29uYW5keUBhaW0uY29tCkJlcm5hcmRvIElubm9jZW50aQkJCQliZXJuaWVAZGV2ZWxlci5jb20KQmFsYWppIFYuIEl5ZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnZpeWVyQGdtYWlsLmNvbQpEYW5pZWwgSmFjb2Jvd2l0egkJCQlkcm93QGZhbHNlLm9yZwpBbmRyZWFzIEphZWdlcgkJCQkJYWpAc3VzZS5kZQpIYXJzaGEgSmFnYXNpYQkJCQkJaGFyc2hhLmphZ2FzaWFAYW1kLmNvbQpGYXJpYm9yeiBKYWhhbmlhbgkJCQlmamFoYW5pYW5AYXBwbGUuY29tCk1hcnRpbiBKYW1ib3IJCQkJCW1qYW1ib3JAc3VzZS5jegpBbmRyZXcgSmVubmVyCQkJCQlhbmRyZXdAY29kZXNvdXJjZXJ5LmNvbQpKYW5pcyBKb2huc29uCQkJCQlqYW5pc2pvQGNvZGVzb3VyY2VyeS5jb20KVGVyZXNhIEpvaG5zb24JCQkJCXRlam9obnNvbkBnb29nbGUuY29tCktlYW4gSm9obnN0b24JCQkJCWprakBzY28uY29tClBoaWxsaXAgSm9yZGFuCQkJCQlwaGlsbGlwLm0uam9yZGFuQGdtYWlsLmNvbQpUaW0gSm9zbGluZwkJCQkJdGVqQG1lbGJwYy5vcmcuYXUKVmljdG9yIEthcGxhbnNreQkJCQl2aWN0b3JrQGlsLmlibS5jb20KQnJlbmRhbiBLZWhvZQkJCQkJYnJlbmRhbkB6ZW4ub3JnCk1hdHRoaWFzIEtsb3NlCQkJCQlkb2tvQGRlYmlhbi5vcmcKQW5kaSBLbGVlbgkJCQkJYW5kaUBmaXJzdGZsb29yLm9yZwpKZWZmIEtuYWdncwkJCQkJamtuYWdnc0ByZWRoYXQuY29tCk1pY2hhZWwgS29jaAkJCQkJa29ucXVlcm9yQGdteC5kZQpNYXR0IEtyYWFpCQkJCQlrcmFhaUBmdGJmcy5vcmcKSmFuIEtyYXRvY2h2aWwJCQkJCWphbi5rcmF0b2NodmlsQHJlZGhhdC5jb20KVmVua2F0YXJhbWFuYW4gS3VtYXIJCQkJdmVua2F0YXJhbWFuYW4ua3VtYXJAYW1kLmNvbQpNYXhpbSBLdXZ5cmtvdgkJCQkJbWF4aW1AY29kZXNvdXJjZXJ5LmNvbQpEb3VnIEt3YW4JCQkJCWRvdWdrd2FuQGdvb2dsZS5jb20KU2NvdHQgUm9iZXJ0IExhZGQJCQkJc2NvdHQubGFkZEBjb3lvdGVndWxjaC5jb20KUmF6eWEgTGFkZWxza3kJCQkJCXJhenlhQGdjYy5nbnUub3JnClRoaWVycnkgTGFmYWdlCQkJCQl0aGllcnJ5LmxhZmFnZUBpbnJpYS5mcgpBYXJvbiBXLiBMYUZyYW1ib2lzZQkJCQlhYXJvbmF2YXk2MkBhYXJvbndsLmNvbQpSYXNrIEluZ2VtYW5uIExhbWJlcnRzZW4JCQljY2M5NDQ1M0B2aXAuY3liZXJjaXR5LmRrCkFzaGVyIExhbmd0b24JCQkJCWxhbmd0b24yQGxsbmwuZ292CkNocmlzIExhdHRuZXIJCQkJCXNhYnJlQG5vbmRvdC5vcmcKVGVycnkgTGF1cmVuem8JCQkJCXRsYXVyZW56b0BnbWFpbC5jb20KR2VvcmctSm9oYW5uIExheQkJCQlhdnJAZ2psYXkuZGUKTWFyYyBMZWhtYW5uCQkJCQlwY2dAZ29vZi5jb20KSmFtZXMgTGVta2UJCQkJCWp3bGVta2VAY29kZXNvdXJjZXJ5LmNvbQpLcmlhbmcgTGVyZHN1d2FuYWtpagkJCQlsZXJkc3V3YUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQKSmlhbmduaW5nIExpdQkJCQkJamlhbmduaW5nLmxpdUBhcm0uY29tClNhIExpdQkJCQkJCXNhbGl1QGRlLmlibS5jb20KUmFscGggTG9hZGVyCQkJCQlyY2xAaWh1Zy5jby5uegpHYWJvciBMb2tpCQkJCQlsb2tpQGluZi51LXN6ZWdlZC5odQpTYW5kcmEgTG9vc2Vtb3JlCQkJCXNhbmRyYUBjb2Rlc291cmNlcnkuY29tCk1hbnVlbCBM83Blei1JYuHxZXoJCQkJbWFudUBnY2MuZ251Lm9yZwpNYXJ0aW4gdi4gTPZ3aXMJCQkJCWxvZXdpc0BpbmZvcm1hdGlrLmh1LWJlcmxpbi5kZQpILkouIEx1CQkJCQkJaGpsLnRvb2xzQGdtYWlsLmNvbQpYaW5saWFuZyBEYXZpZCBMaQkJCQlkYXZpZHhsQGdvb2dsZS5jb20KTHVpcyBNYWNoYWRvCQkJCQlsdWlzZ3BtQGJyLmlibS5jb20KWmlnYSBNYWhrb3ZlYwkJCQkJemlnYS5tYWhrb3ZlY0BrbGlrYS5zaQpTaW1vbiBNYXJ0aW4JCQkJCXNpbWFydGluQHVzZXJzLnNvdXJjZWZvcmdlLm5ldApSYW5qaXQgTWF0aGV3CQkJCQlybWF0aGV3QGhvdG1haWwuY29tCk1pY2hhZWwgTWF0egkJCQkJbWF0ekBzdXNlLmRlCkdyZWcgTWNHYXJ5CQkJCQlna21AZ251Lm9yZwpBZGFtIE1lZ2FjegkJCQkJYWRhbUB4d3Qub3JnCkJpbmdmZW5nIE1laQkJCQkJYm1laUBicm9hZGNvbS5jb20KSmltIE1leWVyaW5nCQkJCQlqaW1AbWV5ZXJpbmcubmV0Ck1hcnRpbiBNaWNobG1heXIJCQkJdGJtQGN5cml1cy5jb20KTGVlIE1pbGx3YXJkCQkJCQlsZWUubWlsbHdhcmRAZ21haWwuY29tCkFsYW4gTW9kcmEJCQkJCWFtb2RyYUBnbWFpbC5jb20KQWxleGFuZGVyIE1vbmFrb3YJCQkJYW1vbmFrb3ZAaXNwcmFzLnJ1CkNhdGhlcmluZSBNb29yZQkJCQkJY2xtQGNvZGVzb3VyY2VyeS5jb20KSmFtZXMgQS4gTW9ycmlzb24JCQkJcGh5dGhvbkBnY2MuZ251Lm9yZwpEaXJrIE11ZWxsZXIJCQkJCWRtdWVsbGVyQHN1c2UuZGUKUGhpbCBNdWxkb29uCQkJCQlwbXVsZG9vbkByZWRoYXQuY29tClF1ZW50aW4gTmVpbGwJCQkJCXF1ZW50aW4ubmVpbGwuZ251QGdtYWlsLmNvbQpBZGFtIE5lbWV0CQkJCQlhZGFtYm5lbWV0QGdtYWlsLmNvbQpUaG9tYXMgTmV1bWFubgkJCQkJdG5ldW1hbm5AdXNlcnMuc291cmNlZm9yZ2UubmV0CkRhbiBOaWNvbGFlc2N1CQkJCQlkYW5uQGljcy51Y2kuZWR1CkRvcml0IE51em1hbgkJCQkJZG9yaXRAaWwuaWJtLmNvbQpEYXZpZCBPJ0JyaWVuCQkJCQlvYnJpZW5ARnJlZUJTRC5vcmcKQ2FybG9zIE8nRG9uZWxsCQkJCQljYXJsb3NAY29kZXNvdXJjZXJ5LmNvbQpQZXRlciBPJ0dvcm1hbgkJCQkJcG9nbWFAdGhld3JpdHRlbndvcmQuY29tCkFuZHJlYSBPcm5zdGVpbgkJCQkJYW5kcmVhLm9ybnN0ZWluQHN0LmNvbQpTZW9uZ2JhZSBQYXJrCQkJCQlzZW9uZ2JhZS5wYXJrQGdtYWlsLmNvbQpEZXZhbmcgUGF0ZWwJCQkJCWRwYXRlbEBhcHBsZS5jb20KRmVybmFuZG8gUGVyZWlyYQkJCQlwcm9uZXN0b0BnbWFpbC5jb20KS2F1c2hpayBQaGF0YWsJCQkJCWthdXNoaWsucGhhdGFrQGtwaXRjdW1taW5zLmNvbQpOaWNvbGFzIFBpdHJlCQkJCQluaWNvQGNhbS5vcmcKUGF1bCBQbHV6aG5pa292CQkJCQlwcGx1emhuaWtvdkBnb29nbGUuY29tCkFudG9uaXUgUG9wCQkJCQlhbnRvbml1LnBvcEBnbWFpbC5jb20KVmxhZGltaXIgUHJ1cwkJCQkJdmxhZGltaXJAY29kZXNvdXJjZXJ5LmNvbQpZYW8gUWkJCQkJCQl5YW9AY29kZXNvdXJjZXJ5LmNvbQpKZXJyeSBRdWlubgkJCQkJamxxdWlubkBvcHRvbmxpbmUubmV0ClJhbWFuYSBSYWRoYWtyaXNobmFuCQkJCXJhbWFuYS5yYWRoYWtyaXNobmFuQGFybS5jb20KRWFzd2FyYW4gUmFtYW4JCQkJCWVyYW1hbkBnb29nbGUuY29tClJvbGYgUmFzbXVzc2VuCQkJCQlyb2xmd3JAZ2NjLmdudS5vcmcKVm9sa2VyIFJlaWNoZWx0CQkJCQl2LnJlaWNoZWx0QG5ldGNvbG9nbmUuZGUKQmVybmhhcmQgUmV1dG5lci1GaXNjaGVyCQkJcmVwLmRvdC5ub3BAZ21haWwuY29tClRvbSBSaXgJCQkJCQl0cml4QHJlZGhhdC5jb20KQ3JhaWcgUm9kcmlndWVzCQkJCQlyb2RyaWdjQGdjYy5nbnUub3JnCkVydmVuIFJvaG91CQkJCQllcnZlbi5yb2hvdUBpbnJpYS5mcgpJcmEgUm9zZW4JCQkJCWlyYXJAaWwuaWJtLmNvbQpNYWNpZWogVy4gUm96eWNraQkJCQltYWNyb0BsaW51eC1taXBzLm9yZwpTaWx2aXVzIFJ1cwkJCQkJcnVzQGdvb2dsZS5jb20KTWF0dGhldyBTYWNocwkJCQkJbXNhY2hzQGFwcGxlLmNvbQpJYWluIFNhbmRvZQkJCQkJaWFpbnNAZ2NjLmdudS5vcmcKRHVuY2FuIFNhbmRzCQkJCQliYWxkcmlja0BnY2MuZ251Lm9yZwpXaWxsaWFtIFNjaG1pZHQgCQkJCXdzY2htaWR0QGxpbnV4LnZuZXQuaWJtLmNvbQpEb2RqaSBTZWtldGVsaQkJCQkJZG9kamlAZ2NjLmdudS5vcmcKU3ZlaW4gU2VsZGFsCQkJCQlzdmVpbkBkZXYuc2VsZGFsLmNvbQpUaGllbW8gU2V1ZmVyCQkJCQl0aHNAbmV0d29ya25vLmRlCk1hcmN1cyBTaGF3Y3JvZnQJCQkJbWFyY3VzLnNoYXdjcm9mdEBhcm0uY29tCkpvaGFubmVzIFNpbmdsZXIJCQkJc2luZ2xlckBraXQuZWR1CkZyYW56IFNpcmwJCQkJCWZyYW56LnNpcmwta2VybmVsQGxhdXRlcmJhY2guY29tCkphbiBTam9kaW4JCQkJCWphbi5zam9kaW5AYW1kLmNvbQpFZHdhcmQgU21pdGgtUm93bGFuZAkJCQkzZHc0cmRAdmVyaXpvbi5uZXQKSmF5YW50IFNvbmFyCQkJCQlqYXlhbnQuc29uYXJAa3BpdGN1bW1pbnMuY29tCk1pY2hhZWwgU29rb2xvdgkJCQkJbXNva29sb3ZAaXZhbi5IYXJoYW4uT1JHClJpY2hhcmQgU3RhbGxtYW4JCQkJcm1zQGdudS5vcmcKQmFzaWxlIFN0YXJ5bmtldml0Y2gJCQkJYmFzaWxlQHN0YXJ5bmtldml0Y2gubmV0Ckpha3ViIFN0YXN6YWsJCQkJCWt1YmFAZXQucGwKR3JhaGFtIFN0b3R0CQkJCQlncmFoYW0uc3RvdHRAYnRpbnRlcm5ldC5jb20KQW5kcmV3IFN0dWJicwkJCQkJYW1zQGNvZGVzb3VyY2VyeS5jb20KTWlrZSBTdHVtcAkJCQkJbWlrZXN0dW1wQGNvbWNhc3QubmV0CkplZmYgU3R1cm0JCQkJCWpzdHVybUBnY2MuZ251Lm9yZwpHYWJyaWVsZSBTdmVsdG8JCQkJCWdhYnJpZWxlLnN2ZWx0b0BzdC5jb20KU3JpcmFtYW4gVGFsbGFtCQkJCQl0bXNyaXJhbUBnb29nbGUuY29tCkNodW5nLUxpbiBUYW5nCQkJCQljbHRhbmdAY29kZXNvdXJjZXJ5LmNvbQpTYW11ZWwgVGFyZGlldQkJCQkJc2FtQHJmYzExNDkubmV0CktyZXN0ZW4gS3JhYiBUaG9ydXAJCQkJa3JhYkBnY2MuZ251Lm9yZwpDYXJvbGluZSBUaWNlCQkJCQljdGljZUBhcHBsZS5jb20KS29ucmFkIFRyaWZ1bm92aWMJCQkJa29ucmFkLnRyaWZ1bm92aWNAaW5yaWEuZnIKRGF2aWQgVW5nCQkJCQlkYXZpZHVAbWlwcy5jb20KTmVpbCBWYWNoaGFyYWphbmkJCQkJbnZhY2hoYXJAZ21haWwuY29tCktyaXMgVmFuIEhlZXMJCQkJCWtyaXMudmFuLmhlZXNAb3JhY2xlLmNvbQpUb20gZGUgVnJpZXMJCQkJCXRvbUBjb2Rlc291cmNlcnkuY29tCk5lbmFkIFZ1a2ljZXZpYwkJCQkJbmVuYWRAaW50cmVwaWQuY29tCkZlbmcgV2FuZwkJCQkJZmVuZ3dhbmdAbnVkdC5lZHUuY24KU3RlcGhlbiBNLiBXZWJiCQkJCQlzdGVwaGVuLndlYmJAYnJlZ21hc29mdC5jb20KSm9obiBXZWhsZQkJCQkJam9obkBmZWl0aC5jb20KRmxvcmlhbiBXZWltZXIJCQkJCWZ3QGRlbmViLmVueW8uZGUKWmFjayBXZWluYmVyZwkJCQkJemFja3dAcGFuaXguY29tCk1hcmsgV2llbGFhcmQJCQkJCW1hcmtAZ2NjLmdudS5vcmcKT2xsaWUgV2lsZAkJCQkJYWF3QGdvb2dsZS5jb20KS2V2aW4gV2lsbGlhbXMJCQkJCWtldmluLndpbGxpYW1zQGlucmlhLmZyCkNhcmxvIFdvb2QJCQkJCWNhcmxvQGFsaW5vZS5jb20KTGUtQ2h1biBXdQkJCQkJbGN3dUBnb29nbGUuY29tCk1pbmdqaWUgWGluZwkJCQkJbWluZ2ppZS54aW5nQGdtYWlsLmNvbQpDYW5xdW4gWWFuZwkJCQkJY2FucXVuQG51ZHQuZWR1LmNuCkplZmZyZXkgWWFzc2tpbgkJCQkJanlhc3NraW5AZ29vZ2xlLmNvbQpKb2V5IFllCQkJCQkJam9leS55ZUBhcm0uY29tCkRhdmlkIFl1c3RlCQkJCQlkYXZpZC55dXN0ZUBnbWFpbC5jb20KS2lyaWxsIFl1a2hpbgkJCQkJa2lyaWxsLnl1a2hpbkBnbWFpbC5jb20KS2VubmV0aCBaYWRlY2sJCQkJCXphZGVja0BuYXR1cmFsYnJpZGdlLmNvbQpZdWZlbmcgWmhhbmcJCQkJCXl1ZmVuZy56aGFuZ0Bhcm0uY29tClNodWppbmcgWmhhbwkJCQkJcGVhcmx5LnpoYW9Ab3JhY2xlLmNvbQpKb24gWmllZ2xlcgkJCQkJam9uekBhcHBsZS5jb20KUm9tYW4gWmlwcGVsCQkJCQl6aXBwZWxAbGludXgtbTY4ay5vcmcKSm9zZWYgWmxvbWVrCQkJCQlqb3NlZi56bG9tZWtAZW1haWwuY3oKCkJ1ZyBkYXRhYmFzZSBvbmx5IGFjY291bnRzCgpKYW1lcyBEZW5uZXR0CQkJCQlqZGVubmV0dEBhY20ub3JnCkNocmlzdGlhbiBFaHJoYXJkdAkJCQllaHJoYXJkdEBtYXRoZW1hdGlrLnVuaS11bG0uZGUKRGFyYSBIYXplZ2hpCQkJCQlkaGF6ZWdoaUB5YWhvby5jb20K