IiBWaW0gc3ludGF4IGZpbGUKIiBMYW5ndWFnZTogICAgRk9SVEgKIiBNYWludGFpbmVyOiAgQ2hyaXN0aWFuIFYuIEouIEJy/HNzb3cgPGN2amJAY3ZqYi5kZT4KIiBMYXN0IENoYW5nZTogU2EgMDkgRmViIDIwMDggMTM6Mjc6MjkgQ0VUCiIgRmlsZW5hbWVzOiAgICouZnMsKi5mdAoiIFVSTDoJICAgICAgIGh0dHA6Ly93d3cuY3ZqYi5kZS9jb21wL3ZpbS9mb3J0aC52aW0KCiIgJElkJAoKIiBUaGUgbGlzdCBvZiBrZXl3b3JkcyBpcyBpbmNvbXBsZXRlLCBjb21wYXJlZCB3aXRoIHRoZSBvZmZpY2FsIEFOUwoiIHdvcmRsaXN0LiBJZiB5b3UgdXNlIHRoaXMgbGFuZ3VhZ2UsIHBsZWFzZSBpbXByb3ZlIGl0LCBhbmQgc2VuZCBtZQoiIHRoZSBwYXRjaGVzLgoiCiIgQmVmb3JlIHNlbmRpbmcgbWUgcGF0Y2hlcywgcGxlYXNlIGRvd25sb2FkIHRoZSBuZXdlc3QgdmVyc2lvbiBvZiB0aGlzIGZpbGUKIiBmcm9tIGh0dHA6Ly93d3cuY3ZqYi5kZS9jb21wL3ZpbS9mb3J0aC52aW0gb3IgaHR0cDovL3d3dy52aW0ub3JnLyAoc2VhcmNoCiIgZm9yIGZvcnRoLnZpbSkuCgoiIE1hbnkgVGhhbmtzIHRvLi4uCiIKIiAyMDA4LTAyLTA5OgoiIFNoYXduIEsuIFF1aW5uIDxzanF1aW5uIGF0IHNwZWFrZWFzeSBkb3QgbmV0PiBzZW5kIGEgYmlnIHBhdGNoIHdpdGgKIiBuZXcgd29yZHMgY29tbW9ubHkgdXNlZCBpbiBGb3J0aCBwcm9ncmFtcyBvciBkZWZpbmVkIGJ5IEdOVSBGb3J0aC4KIgoiIDIwMDctMDctMTE6CiIgQmVuamFtaW4gS3JpbGwgPGJlbiBhdCBjb2RpZXJ0IGRvdCBvcmc+IHNlbmQgbWUgYSBwYXRjaAoiIHRvIGhpZ2hsaWdodCBzcGFjZSBlcnJvcnMuCiIgWW91IGNhbiB0b2dnbGUgdGhpcyBmZWF0dXJlIG9uIHRocm91Z2ggc2V0dGluZyB0aGUKIiBmbGFnIGZvcnRoX3NwYWNlX2Vycm9ycyBpbiB5b3UgdmltcmMuIElmIHlvdSBoYXZlIHN3aXRjaGVkIGl0IG9uLAoiIHlvdSBjYW4gdHVybiBvZmYgaGlnaGxpZ2h0aW5nIG9mIHRyYWlsaW5nIHNwYWNlcyBpbiBjb21tZW50cyBieQoiIHNldHRpbmcgZm9ydGhfbm9fdHJhaWxfc3BhY2VfZXJyb3IgaW4geW91ciB2aW1yYy4gSWYgeW91IGRvIG5vdCB3YW50CiIgdGhlIGhpZ2hsaWdodGluZyBvZiBhIHRhYnVsYXRvciBmb2xsb3dpbmcgYSBzcGFjZSBpbiBjb21tZW50cywgeW91CiIgY2FuIHR1cm4gdGhpcyBvZmYgYnkgc2V0dGluZyBmb3J0aF9ub190YWJfc3BhY2VfZXJyb3IuCiIKIiAyMDA2LTA1LTI1OgoiIEJpbGwgTWNDYXJ0aHkgPFdKTWNALi4uPiBhbmQgSWx5YSBTaGVyIDxpbHlhLXZpbUAuLi4+CiIgV2hvIGZvdW5kIGEgYnVnIGluIHRoZSBjY29tbWVudCBsaW5lIGluIDIwMDQhISEKIiBJJ20gcmVhbGx5IHZlcnkgc29ycnksIHRoYXQgaXQgaGFzIHRha2VuIHR3byB5ZWFycyB0byBmaXggdGhhdAoiIGluIHRoZSBvZmZpY2FsIHZlcnNpb24gb2YgdGhpcyBmaWxlLiBTaGFtZSBvbiBtZS4KIiBJIHRoaW5rIG15IGZhY2Ugd2lsbCBiZSByZWQgdGhlIG5leHQgdGVuIHllYXJzLi4uCiIKIiAyMDA2LTA1LTIxOgoiIFRob21hcyBFLiBWYXVnaGFuIDx0ZXZhdWdoYSBhdCBiYWxsIGRvdCBjb20+IHNlbmQgbWUgYSBwYXRjaAoiIGZvciB0aGUgcGFyZW50aGVzaXMgY29tbWVudCB3b3JkLCBzbyB3b3JkcyB3aXRoIGEgdHJhaWxpbmcKIiBwYXJlbnRoZXNpcyB3aWxsIG5vdCBzdGFydCB0aGUgaGlnaGxpZ2h0aW5nIGZvciBzdWNoIGNvbW1lbnRzLgoiIAoiIDIwMDMtMDUtMTA6CiIgQW5kcmV3IEdhdWwgPGFuZHJldyBhdCBnYXVsLm9yZz4gc2VuZCBtZSBhIHBhdGNoIGZvcgoiIGZvcnRoT3BlcmF0b3JzLgoiCiIgMjAwMy0wNC0wMzoKIiBSb24gQWFyb24gPHJvbiBhdCByb253YXJlIGRvdCBvcmc+IG1hZGUgdXBkYXRlcyBmb3IgYW4KIiBpbXByb3ZlZCBXaW4zMkZvcnRoIHN1cHBvcnQuCiIKIiAyMDAyLTA0LTIyOgoiIENoYXJsZXMgU2hhdHR1Y2sgPGNoYXJsZXkgYXQgZm9ydGggZG90IG9yZz4gaGVscGVkIG1lIHRvIHNldHRsZSB1cCB3aXRoIHRoZQoiIGJpbmFyeSBhbmQgaGV4IG51bWJlciBoaWdobGlnaHRpbmcuCiIKIiAyMDAyLTA0LTIwOgoiIENoYXJsZXMgU2hhdHR1Y2sgPGNoYXJsZXkgYXQgZm9ydGggZG90IG9yZz4gc2VuZCBtZSBzb21lIGNvZGUgZm9yIGNvcnJlY3RseQoiIGhpZ2hsaWdodGluZyBjaGFyIGFuZCBbY2hhcl0gZm9sbG93ZWQgYnkgYW4gb3BlbmluZyBwYXJlbi4gSGUgYWxzbyBhZGRlZAoiIHNvbWUgd29yZHMgZm9yIG9wZXJhdG9ycywgY29uZGl0aW9uYWxzLCBhbmQgZGVmaW5pdGlvbnM7IGFuZCBhZGRlZCB0aGUKIiBoaWdobGlnaHRpbmcgZm9yIHMiIGFuZCBjIi4KIgoiIDIwMDAtMDMtMjg6CiIgSm9obiBQcm92aWRlbnphIDxqb2huIGF0IHByb2JvIGRvdCBjb20+IG1hZGUgaW1wcm92ZW1lbnRzIGZvciB0aGUKIiBoaWdobGlnaHRpbmcgb2Ygc3RyaW5ncywgYW5kIGFkZGVkIHRoZSBjb2RlIGZvciBoaWdobGlnaHRpbmcgaGV4IG51bWJlcnMuCiIKCgoiIEZvciB2ZXJzaW9uIDUueDogQ2xlYXIgYWxsIHN5bnRheCBpdGVtcwoiIEZvciB2ZXJzaW9uIDYueDogUXVpdCB3aGVuIGEgc3ludGF4IGZpbGUgd2FzIGFscmVhZHkgbG9hZGVkCmlmIHZlcnNpb24gPCA2MDAKICAgIHN5bnRheCBjbGVhcgplbHNlaWYgZXhpc3RzKCJiOmN1cnJlbnRfc3ludGF4IikKICAgIGZpbmlzaAplbmRpZgoKIiBTeW5jaHJvbml6YXRpb24gbWV0aG9kCnN5biBzeW5jIGNjb21tZW50CnN5biBzeW5jIG1heGxpbmVzPTIwMAoKIiBJIHVzZSBnZm9ydGgsIHNvIEkgc2V0IHRoaXMgdG8gY2FzZSBpZ25vcmUKc3luIGNhc2UgaWdub3JlCgoiIFNvbWUgc3BlY2lhbCwgbm9uLUZPUlRIIGtleXdvcmRzCnN5biBrZXl3b3JkIGZvcnRoVG9kbyBjb250YWluZWQgVE9ETyBGSVhNRSBYWFgKc3luIG1hdGNoIGZvcnRoVG9kbyBjb250YWluZWQgJ0NvcHlyaWdodFwoXHMoW0NjXSlcKVw9XChcc1swLTldXHsyLDR9XClcPScKCiIgQ2hhcmFjdGVycyBhbGxvd2VkIGluIGtleXdvcmRzCiIgSSBkb24ndCBrbm93IGlmIDEyOC0yNTUgYXJlIGFsbG93ZWQgaW4gQU5TLUZPUlRICmlmIHZlcnNpb24gPj0gNjAwCiAgICBzZXRsb2NhbCBpc2tleXdvcmQ9ISxALDMzLTM1LCUsJCwzOC02NCxBLVosOTEtOTYsYS16LDEyMy0xMjYsMTI4LTI1NQplbHNlCiAgICBzZXQgaXNrZXl3b3JkPSEsQCwzMy0zNSwlLCQsMzgtNjQsQS1aLDkxLTk2LGEteiwxMjMtMTI2LDEyOC0yNTUKZW5kaWYKCiIgd2hlbiB3YW50ZWQsIGhpZ2hsaWdodCB0cmFpbGluZyB3aGl0ZSBzcGFjZQppZiBleGlzdHMoImZvcnRoX3NwYWNlX2Vycm9ycyIpCiAgICBpZiAhZXhpc3RzKCJmb3J0aF9ub190cmFpbF9zcGFjZV9lcnJvciIpCiAgICAgICAgc3luIG1hdGNoIGZvcnRoU3BhY2VFcnJvciBkaXNwbGF5IGV4Y2x1ZGVubCAiXHNcKyQiCiAgICBlbmRpZgogICAgaWYgIWV4aXN0cygiZm9ydGhfbm9fdGFiX3NwYWNlX2Vycm9yIikKICAgICAgICBzeW4gbWF0Y2ggZm9ydGhTcGFjZUVycm9yIGRpc3BsYXkgIiBcK1x0Im1lPWUtMQogICAgZW5kaWYKZW5kaWYKCiIgS2V5d29yZHMKCiIgYmFzaWMgbWF0aGVtYXRpY2FsIGFuZCBsb2dpY2FsIG9wZXJhdG9ycwpzeW4ga2V5d29yZCBmb3J0aE9wZXJhdG9ycyArIC0gKiAvIE1PRCAvTU9EIE5FR0FURSBBQlMgTUlOIE1BWApzeW4ga2V5d29yZCBmb3J0aE9wZXJhdG9ycyBBTkQgT1IgWE9SIE5PVCBMU0hJRlQgUlNISUZUIElOVkVSVCAyKiAyLyAxKwpzeW4ga2V5d29yZCBmb3J0aE9wZXJhdG9ycyAxLSAyKyAyLSA4KiBVTkRFUisKc3luIGtleXdvcmQgZm9ydGhPcGVyYXRvcnMgTSsgKi8gKi9NT0QgTSogVU0qIE0qLyBVTS9NT0QgRk0vTU9EIFNNL1JFTQpzeW4ga2V5d29yZCBmb3J0aE9wZXJhdG9ycyBEKyBELSBETkVHQVRFIERBQlMgRE1JTiBETUFYIEQyKiBEMi8Kc3luIGtleXdvcmQgZm9ydGhPcGVyYXRvcnMgRisgRi0gRiogRi8gRk5FR0FURSBGQUJTIEZNQVggRk1JTiBGTE9PUiBGUk9VTkQKc3luIGtleXdvcmQgZm9ydGhPcGVyYXRvcnMgRioqIEZTUVJUIEZFWFAgRkVYUE0xIEZMTiBGTE5QMSBGTE9HIEZBTE9HIEZTSU4Kc3luIGtleXdvcmQgZm9ydGhPcGVyYXRvcnMgRkNPUyBGU0lOQ09TIEZUQU4gRkFTSU4gRkFDT1MgRkFUQU4gRkFUQU4yIEZTSU5ICnN5biBrZXl3b3JkIGZvcnRoT3BlcmF0b3JzIEZDT1NIIEZUQU5IIEZBU0lOSCBGQUNPU0ggRkFUQU5IIEYyKiBGMi8gMS9GCnN5biBrZXl3b3JkIGZvcnRoT3BlcmF0b3JzIEZ+UkVMIEZ+QUJTIEZ+CnN5biBrZXl3b3JkIGZvcnRoT3BlcmF0b3JzIDA8IDA8PSAwPD4gMD0gMD4gMD49IDwgPD0gPD4gPSA+ID49IFU8IFU8PQpzeW4ga2V5d29yZCBmb3J0aE9wZXJhdG9ycyBVPiBVPj0gRDA8IEQwPD0gRDA8PiBEMD0gRDA+IEQwPj0gRDwgRDw9IEQ8PgpzeW4ga2V5d29yZCBmb3J0aE9wZXJhdG9ycyBEPSBEPiBEPj0gRFU8IERVPD0gRFU+IERVPj0gV0lUSElOID9ORUdBVEUKc3luIGtleXdvcmQgZm9ydGhPcGVyYXRvcnMgP0RORUdBVEUgCgoiIHN0YWNrIG1hbmlwdWxhdGlvbnMKc3luIGtleXdvcmQgZm9ydGhTdGFjayBEUk9QIE5JUCBEVVAgT1ZFUiBUVUNLIFNXQVAgUk9UIC1ST1QgP0RVUCBQSUNLIFJPTEwKc3luIGtleXdvcmQgZm9ydGhTdGFjayAyRFJPUCAyTklQIDJEVVAgMk9WRVIgMlRVQ0sgMlNXQVAgMlJPVCAyLVJPVApzeW4ga2V5d29yZCBmb3J0aFN0YWNrIDNEVVAgNERVUCA1RFVQIDNEUk9QIDREUk9QIDVEUk9QIDhEUk9QIDRTV0FQIDRST1QKc3luIGtleXdvcmQgZm9ydGhTdGFjayA0LVJPVCA0VFVDSyA4U1dBUCA4RFVQCnN5biBrZXl3b3JkIGZvcnRoUlN0YWNrID5SIFI+IFJAIFJEUk9QIDI+UiAyUj4gMlJAIDJSRFJPUApzeW4ga2V5d29yZCBmb3J0aFJzdGFjayA0PlIgNFI+IDRSQCA0UkRST1AKc3luIGtleXdvcmQgZm9ydGhGU3RhY2sgRkRST1AgRk5JUCBGRFVQIEZPVkVSIEZUVUNLIEZTV0FQIEZST1QKCiIgc3RhY2sgcG9pbnRlciBtYW5pcHVsYXRpb25zCnN5biBrZXl3b3JkIGZvcnRoU1AgU1BAIFNQISBGUEAgRlAhIFJQQCBSUCEgTFBAIExQIQoKIiBhZGRyZXNzIG9wZXJhdGlvbnMKc3luIGtleXdvcmQgZm9ydGhNZW1vcnkgQCAhICshIENAIEMhIDJAIDIhIEZAIEYhIFNGQCBTRiEgREZAIERGIQpzeW4ga2V5d29yZCBmb3J0aEFkckFyaXRoIENIQVJTIENIQVIrIENFTExTIENFTEwrIENFTEwgQUxJR04gQUxJR05FRCBGTE9BVFMKc3luIGtleXdvcmQgZm9ydGhBZHJBcml0aCBGTE9BVCsgRkxPQVQgRkFMSUdOIEZBTElHTkVEIFNGTE9BVFMgU0ZMT0FUKwpzeW4ga2V5d29yZCBmb3J0aEFkckFyaXRoIFNGQUxJR04gU0ZBTElHTkVEIERGTE9BVFMgREZMT0FUKyBERkFMSUdOIERGQUxJR05FRApzeW4ga2V5d29yZCBmb3J0aEFkckFyaXRoIE1BWEFMSUdOIE1BWEFMSUdORUQgQ0ZBTElHTiBDRkFMSUdORUQKc3luIGtleXdvcmQgZm9ydGhBZHJBcml0aCBBRERSRVNTLVVOSVQtQklUUyBBTExPVCBBTExPQ0FURSBIRVJFCnN5biBrZXl3b3JkIGZvcnRoTWVtQmxrcyBNT1ZFIEVSQVNFIENNT1ZFIENNT1ZFPiBGSUxMIEJMQU5LCgoiIGNvbmRpdGlvbmFscwpzeW4ga2V5d29yZCBmb3J0aENvbmQgSUYgRUxTRSBFTkRJRiBUSEVOIENBU0UgT0YgRU5ET0YgRU5EQ0FTRSA/RFVQLUlGCnN5biBrZXl3b3JkIGZvcnRoQ29uZCA/RFVQLTA9LUlGIEFIRUFEIENTLVBJQ0sgQ1MtUk9MTCBDQVRDSCBUSFJPVyBXSVRISU4KCiIgaXRlcmF0aW9ucwpzeW4ga2V5d29yZCBmb3J0aExvb3AgQkVHSU4gV0hJTEUgUkVQRUFUIFVOVElMIEFHQUlOCnN5biBrZXl3b3JkIGZvcnRoTG9vcCA/RE8gTE9PUCBJIEogSyArRE8gVStETyAtRE8gVS1ETyBETyArTE9PUCAtTE9PUApzeW4ga2V5d29yZCBmb3J0aExvb3AgVU5MT09QIExFQVZFID9MRUFWRSBFWElUIERPTkUgRk9SIE5FWFQKCiIgbmV3IHdvcmRzCnN5biBtYXRjaCBmb3J0aENsYXNzRGVmICdcPDpjbGFzc1xzKlteIFx0XVwrXD4nCnN5biBtYXRjaCBmb3J0aE9iamVjdERlZiAnXDw6b2JqZWN0XHMqW14gXHRdXCtcPicKc3luIG1hdGNoIGZvcnRoQ29sb25EZWYgJ1w8Om1cP1xzKlteIFx0XVwrXD4nCnN5biBrZXl3b3JkIGZvcnRoRW5kT2ZDb2xvbkRlZiA7IDtNIDttCnN5biBrZXl3b3JkIGZvcnRoRW5kT2ZDbGFzc0RlZiA7Y2xhc3MKc3luIGtleXdvcmQgZm9ydGhFbmRPZk9iamVjdERlZiA7b2JqZWN0CnN5biBrZXl3b3JkIGZvcnRoRGVmaW5lIENPTlNUQU5UIDJDT05TVEFOVCBGQ09OU1RBTlQgVkFSSUFCTEUgMlZBUklBQkxFCnN5biBrZXl3b3JkIGZvcnRoRGVmaW5lIEZWQVJJQUJMRSBDUkVBVEUgVVNFUiBWQUxVRSBUTyBERUZFUiBJUyBET0VTPiBJTU1FRElBVEUKc3luIGtleXdvcmQgZm9ydGhEZWZpbmUgQ09NUElMRS1PTkxZIENPTVBJTEUgUkVTVFJJQ1QgSU5URVJQUkVUIFBPU1RQT05FIEVYRUNVVEUKc3luIGtleXdvcmQgZm9ydGhEZWZpbmUgTElURVJBTCBDUkVBVEUtSU5URVJQUkVUL0NPTVBJTEUgSU5URVJQUkVUQVRJT04+CnN5biBrZXl3b3JkIGZvcnRoRGVmaW5lIDxJTlRFUlBSRVRBVElPTiBDT01QSUxBVElPTj4gPENPTVBJTEFUSU9OIF0gTEFTVFhUCnN5biBrZXl3b3JkIGZvcnRoRGVmaW5lIENPTVAnIFBPU1RQT05FLCBGSU5ELU5BTUUgTkFNRT5JTlQgTkFNRT9JTlQgTkFNRT5DT01QCnN5biBrZXl3b3JkIGZvcnRoRGVmaW5lIE5BTUU+U1RSSU5HIFNUQVRFIEM7IENWQVJJQUJMRQpzeW4ga2V5d29yZCBmb3J0aERlZmluZSAsIDIsIEYsIEMsIApzeW4gbWF0Y2ggZm9ydGhEZWZpbmUgIlxbSUZERUZdIgpzeW4gbWF0Y2ggZm9ydGhEZWZpbmUgIlxbSUZVTkRFRl0iCnN5biBtYXRjaCBmb3J0aERlZmluZSAiXFtUSEVOXSIKc3luIG1hdGNoIGZvcnRoRGVmaW5lICJcW0VORElGXSIKc3luIG1hdGNoIGZvcnRoRGVmaW5lICJcW0VMU0VdIgpzeW4gbWF0Y2ggZm9ydGhEZWZpbmUgIlxbP0RPXSIKc3luIG1hdGNoIGZvcnRoRGVmaW5lICJcW0RPXSIKc3luIG1hdGNoIGZvcnRoRGVmaW5lICJcW0xPT1BdIgpzeW4gbWF0Y2ggZm9ydGhEZWZpbmUgIlxbK0xPT1BdIgpzeW4gbWF0Y2ggZm9ydGhEZWZpbmUgIlxbTkVYVF0iCnN5biBtYXRjaCBmb3J0aERlZmluZSAiXFtCRUdJTl0iCnN5biBtYXRjaCBmb3J0aERlZmluZSAiXFtVTlRJTF0iCnN5biBtYXRjaCBmb3J0aERlZmluZSAiXFtBR0FJTl0iCnN5biBtYXRjaCBmb3J0aERlZmluZSAiXFtXSElMRV0iCnN5biBtYXRjaCBmb3J0aERlZmluZSAiXFtSRVBFQVRdIgpzeW4gbWF0Y2ggZm9ydGhEZWZpbmUgIlxbQ09NUCddIgpzeW4gbWF0Y2ggZm9ydGhEZWZpbmUgIiciCnN5biBtYXRjaCBmb3J0aERlZmluZSAnXDxcW1w+JwpzeW4gbWF0Y2ggZm9ydGhEZWZpbmUgIlxbJ10iCnN5biBtYXRjaCBmb3J0aERlZmluZSAnXFtDT01QSUxFXScKCiIgZGVidWdnaW5nCnN5biBrZXl3b3JkIGZvcnRoRGVidWcgUFJJTlRERUJVR0RBVEEgUFJJTlRERUJVR0xJTkUKc3luIG1hdGNoIGZvcnRoRGVidWcgIlw8XH5cflw+IgoKIiBBc3NlbWJsZXIKc3luIGtleXdvcmQgZm9ydGhBc3NlbWJsZXIgQVNTRU1CTEVSIENPREUgRU5ELUNPREUgO0NPREUgRkxVU0gtSUNBQ0hFIEMsCgoiIGJhc2ljIGNoYXJhY3RlciBvcGVyYXRpb25zCnN5biBrZXl3b3JkIGZvcnRoQ2hhck9wcyAoLikgQ0hBUiBFWFBFQ1QgRklORCBXT1JEIFRZUEUgLVRSQUlMSU5HIEVNSVQgS0VZCnN5biBrZXl3b3JkIGZvcnRoQ2hhck9wcyBLRVk/IFRJQiBDUgoiIHJlY29nbml6ZSAnY2hhciAoJyBvciAnW2NoYXJdICgnIGNvcnJlY3RseSwgc28gaXQgZG9lc24ndAoiIGhpZ2hsaWdodCBldmVyeXRoaW5nIGFmdGVyIHRoZSBwYXJlbiBhcyBhIGNvbW1lbnQgdGlsbCBhIGNsb3NpbmcgJyknCnN5biBtYXRjaCBmb3J0aENoYXJPcHMgJ1w8Y2hhclxzXFNccycKc3luIG1hdGNoIGZvcnRoQ2hhck9wcyAnXDxcW2NoYXJcXVxzXFNccycKc3luIHJlZ2lvbiBmb3J0aENoYXJPcHMgc3RhcnQ9Ky4iXHMrIHNraXA9K1xcIisgZW5kPSsiKwoKIiBjaGFyLW51bWJlciBjb252ZXJzaW9uCnN5biBrZXl3b3JkIGZvcnRoQ29udmVyc2lvbiA8PCMgPCMgIyAjPiAjPj4gI1MgKE5VTUJFUikgKE5VTUJFUj8pIENPTlZFUlQgRD5GIApzeW4ga2V5d29yZCBmb3J0aENvbnZlcnNpb24gRD5TIERJR0lUIERQTCBGPkQgSExEIEhPTEQgTlVNQkVSIFM+RCBTSUdOID5OVU1CRVIKc3luIGtleXdvcmQgZm9ydGhDb252ZXJzaW9uIEY+UyBTPkYKCiIgaW50ZXJwdHJldGVyLCB3b3JkYm9vaywgY29tcGlsZXIKc3luIGtleXdvcmQgZm9ydGhGb3J0aCAoTE9DQUwpIEJZRSBDT0xEIEFCT1JUID5CT0RZID5ORVhUID5MSU5LIENGQSA+VklFVyBIRVJFCnN5biBrZXl3b3JkIGZvcnRoRm9ydGggUEFEIFdPUkRTIFZJRVcgVklFVz4gTj5MSU5LIE5BTUU+IExJTks+IEw+TkFNRSBGT1JHRVQKc3luIGtleXdvcmQgZm9ydGhGb3J0aCBCT0RZPiBBU1NFUlQoIEFTU0VSVDAoIEFTU0VSVDEoIEFTU0VSVDIoIEFTU0VSVDMoICkKc3luIHJlZ2lvbiBmb3J0aEZvcnRoIHN0YXJ0PStBQk9SVCJccysgc2tpcD0rXFwiKyBlbmQ9KyIrCgoiIHZvY2FidWxhcmllcwpzeW4ga2V5d29yZCBmb3J0aFZvY3MgT05MWSBGT1JUSCBBTFNPIFJPT1QgU0VBTCBWT0NTIE9SREVSIENPTlRFWFQgI1ZPQ1MKc3luIGtleXdvcmQgZm9ydGhWb2NzIFZPQ0FCVUxBUlkgREVGSU5JVElPTlMKCiIgRmlsZSBrZXl3b3JkcwpzeW4ga2V5d29yZCBmb3J0aEZpbGVNb2RlIFIvTyBSL1cgVy9PIEJJTiAKc3luIGtleXdvcmQgZm9ydGhGaWxlV29yZHMgT1BFTi1GSUxFIENSRUFURS1GSUxFIENMT1NFLUZJTEUgREVMRVRFLUZJTEUKc3luIGtleXdvcmQgZm9ydGhGaWxlV29yZHMgUkVOQU1FLUZJTEUgUkVBRC1GSUxFIFJFQUQtTElORSBLRVktRklMRQpzeW4ga2V5d29yZCBmb3J0aEZpbGVXb3JkcyBLRVk/LUZJTEUgV1JJVEUtRklMRSBXUklURS1MSU5FIEVNSVQtRklMRQpzeW4ga2V5d29yZCBmb3J0aEZpbGVXb3JkcyBGTFVTSC1GSUxFIEZJTEUtU1RBVFVTIEZJTEUtUE9TSVRJT04Kc3luIGtleXdvcmQgZm9ydGhGaWxlV29yZHMgUkVQT1NJVElPTi1GSUxFIEZJTEUtU0laRSBSRVNJWkUtRklMRQpzeW4ga2V5d29yZCBmb3J0aEZpbGVXb3JkcyBTTFVSUC1GSUxFIFNMVVJQLUZJRCBTVERJTiBTVERPVVQgU1RERVJSCnN5biBrZXl3b3JkIGZvcnRoQmxvY2tzIE9QRU4tQkxPQ0tTIFVTRSBMT0FEIC0tPiBCTE9DSy1PRkZTRVQKc3luIGtleXdvcmQgZm9ydGhCbG9ja3MgR0VULUJMT0NLLUZJRCBCTE9DSy1QT1NJVElPTiBMSVNUIFNDUiBCTE9DSwpzeW4ga2V5d29yZCBmb3J0aEJsb2NrcyBCVUZFUiBFTVBUWS1CVUZGRVJTIEVNUFRZLUJVRkZFUiBVUERBVEUgVVBEQVRFRD8Kc3luIGtleXdvcmQgZm9ydGhCbG9ja3MgU0FWRS1CVUZGRVJTIFNBVkUtQlVGRkVSIEZMVVNIIFRIUlUgK0xPQUQgK1RIUlUKc3luIGtleXdvcmQgZm9ydGhCbG9ja3MgQkxPQ0stSU5DTFVERUQKCiIgbnVtYmVycwpzeW4ga2V5d29yZCBmb3J0aE1hdGggREVDSU1BTCBIRVggQkFTRQpzeW4gbWF0Y2ggZm9ydGhJbnRlZ2VyICdcPC1cPVswLTkuXSpbMC05Ll1cK1w+JwpzeW4gbWF0Y2ggZm9ydGhJbnRlZ2VyICdcPCYtXD1bMC05Ll0qWzAtOS5dXCtcPicKIiByZWNvZ25pemUgaGV4IGFuZCBiaW5hcnkgbnVtYmVycywgdGhlICckJyBhbmQgJyUnIG5vdGF0aW9uIGlzIGZvciBnZm9ydGgKc3luIG1hdGNoIGZvcnRoSW50ZWdlciAnXDxcJFx4Klx4XCtcPicgIiAqMSogLS0tIGRvbnQndCBtZXNzCnN5biBtYXRjaCBmb3J0aEludGVnZXIgJ1w8XHgqXGRceCpcPicgICIgKjIqIC0tLSB0aGlzIG9yZGVyIQpzeW4gbWF0Y2ggZm9ydGhJbnRlZ2VyICdcPCVbMC0xXSpbMC0xXVwrXD4nCnN5biBtYXRjaCBmb3J0aEZsb2F0ICdcPC1cPVxkKlsuXVw9XGRcK1tEZEVlXVxkXCtcPicKc3luIG1hdGNoIGZvcnRoRmxvYXQgJ1w8LVw9XGQqWy5dXD1cZFwrW0RkRWVdWy0rXVxkXCtcPicKCiIgWFhYIElmIHlvdSBmaW5kIHRoaXMgb3ZlcmtpbGwgeW91IGNhbiByZW1vdmUgaXQuIHRoaXMgaGFzIHRvIGNvbWUgYWZ0ZXIgdGhlCiIgaGlnaGxpZ2h0aW5nIGZvciBudW1iZXJzIG90aGVyd2lzZSBpdCBoYXMgbm8gZWZmZWN0LgpzeW4gcmVnaW9uIGZvcnRoQ29tbWVudCBzdGFydD0nMCBcW2lmXF0nIGVuZD0nXFtlbmRpZlxdJyBlbmQ9J1xbdGhlblxdJyBjb250YWlucz1mb3J0aFRvZG8KCiIgU3RyaW5ncwpzeW4gcmVnaW9uIGZvcnRoU3RyaW5nIHN0YXJ0PStcLipcIisgZW5kPSsiKyBlbmQ9KyQrCiIgWFhYCnN5biByZWdpb24gZm9ydGhTdHJpbmcgc3RhcnQ9K3NcIisgZW5kPSsiKyBlbmQ9KyQrCnN5biByZWdpb24gZm9ydGhTdHJpbmcgc3RhcnQ9K2NcIisgZW5kPSsiKyBlbmQ9KyQrCgoiIENvbW1lbnRzCnN5biBtYXRjaCBmb3J0aENvbW1lbnQgJ1xcXHMuKiQnIGNvbnRhaW5zPWZvcnRoVG9kbyxmb3J0aFNwYWNlRXJyb3IKc3luIHJlZ2lvbiBmb3J0aENvbW1lbnQgc3RhcnQ9J1xcU1xzJyBlbmQ9Jy4qJyBjb250YWlucz1mb3J0aFRvZG8sZm9ydGhTcGFjZUVycm9yCnN5biBtYXRjaCBmb3J0aENvbW1lbnQgJ1wuKFxzW14pXSopJyBjb250YWlucz1mb3J0aFRvZG8sZm9ydGhTcGFjZUVycm9yCnN5biByZWdpb24gZm9ydGhDb21tZW50IHN0YXJ0PSdccyhccycgc2tpcD0nXFwpJyBlbmQ9JyknIGNvbnRhaW5zPWZvcnRoVG9kbyxmb3J0aFNwYWNlRXJyb3IKc3luIHJlZ2lvbiBmb3J0aENvbW1lbnQgc3RhcnQ9Jy9cKicgZW5kPSdcKi8nIGNvbnRhaW5zPWZvcnRoVG9kbyxmb3J0aFNwYWNlRXJyb3IKCiIgSW5jbHVkZSBmaWxlcwpzeW4gbWF0Y2ggZm9ydGhJbmNsdWRlICdeSU5DTFVERVxzXCtca1wrJwpzeW4gbWF0Y2ggZm9ydGhJbmNsdWRlICdecmVxdWlyZVxzXCtca1wrJwpzeW4gbWF0Y2ggZm9ydGhJbmNsdWRlICdeZmxvYWRcc1wrJwpzeW4gbWF0Y2ggZm9ydGhJbmNsdWRlICdebmVlZHNcc1wrJwoKIiBMb2NhbHMgZGVmaW5pdGlvbnMKc3luIHJlZ2lvbiBmb3J0aExvY2FscyBzdGFydD0ne1xzJyBzdGFydD0neyQnIGVuZD0nXHN9JyBlbmQ9J159JwpzeW4gbWF0Y2ggZm9ydGhMb2NhbHMgJ3sgfScgIiBvdGhlcndpc2UsIGF0IGxlYXN0IHR3byBzcGFjZXMgYmV0d2VlbgpzeW4gcmVnaW9uIGZvcnRoRGVwcmVjYXRlZCBzdGFydD0nbG9jYWxzfCcgZW5kPSd8JwoKIiBEZWZpbmUgdGhlIGRlZmF1bHQgaGlnaGxpZ2h0aW5nLgoiIEZvciB2ZXJzaW9uIDUuNyBhbmQgZWFybGllcjogb25seSB3aGVuIG5vdCBkb25lIGFscmVhZHkKIiBGb3IgdmVyc2lvbiA1LjggYW5kIGxhdGVyOiBvbmx5IHdoZW4gYW4gaXRlbSBkb2Vzbid0IGhhdmUgaGlnaGxpZ2h0aW5nIHlldAppZiB2ZXJzaW9uID49IDUwOCB8fCAhZXhpc3RzKCJkaWRfZm9ydGhfc3luX2luaXRzIikKICAgIGlmIHZlcnNpb24gPCA1MDgKCWxldCBkaWRfZm9ydGhfc3luX2luaXRzID0gMQoJY29tbWFuZCAtbmFyZ3M9KyBIaUxpbmsgaGkgbGluayA8YXJncz4KICAgIGVsc2UKCWNvbW1hbmQgLW5hcmdzPSsgSGlMaW5rIGhpIGRlZiBsaW5rIDxhcmdzPgogICAgZW5kaWYKCiAgICAiIFRoZSBkZWZhdWx0IG1ldGhvZHMgZm9yIGhpZ2hsaWdodGluZy4gQ2FuIGJlIG92ZXJyaWRlbiBsYXRlci4KICAgIEhpTGluayBmb3J0aFRvZG8gVG9kbwogICAgSGlMaW5rIGZvcnRoT3BlcmF0b3JzIE9wZXJhdG9yCiAgICBIaUxpbmsgZm9ydGhNYXRoIE51bWJlcgogICAgSGlMaW5rIGZvcnRoSW50ZWdlciBOdW1iZXIKICAgIEhpTGluayBmb3J0aEZsb2F0IEZsb2F0CiAgICBIaUxpbmsgZm9ydGhTdGFjayBTcGVjaWFsCiAgICBIaUxpbmsgZm9ydGhSc3RhY2sgU3BlY2lhbAogICAgSGlMaW5rIGZvcnRoRlN0YWNrIFNwZWNpYWwKICAgIEhpTGluayBmb3J0aFNQIFNwZWNpYWwKICAgIEhpTGluayBmb3J0aE1lbW9yeSBGdW5jdGlvbgogICAgSGlMaW5rIGZvcnRoQWRyQXJpdGggRnVuY3Rpb24KICAgIEhpTGluayBmb3J0aE1lbUJsa3MgRnVuY3Rpb24KICAgIEhpTGluayBmb3J0aENvbmQgQ29uZGl0aW9uYWwKICAgIEhpTGluayBmb3J0aExvb3AgUmVwZWF0CiAgICBIaUxpbmsgZm9ydGhDb2xvbkRlZiBEZWZpbmUKICAgIEhpTGluayBmb3J0aEVuZE9mQ29sb25EZWYgRGVmaW5lCiAgICBIaUxpbmsgZm9ydGhEZWZpbmUgRGVmaW5lCiAgICBIaUxpbmsgZm9ydGhEZWJ1ZyBEZWJ1ZwogICAgSGlMaW5rIGZvcnRoQXNzZW1ibGVyIEluY2x1ZGUKICAgIEhpTGluayBmb3J0aENoYXJPcHMgQ2hhcmFjdGVyCiAgICBIaUxpbmsgZm9ydGhDb252ZXJzaW9uIFN0cmluZwogICAgSGlMaW5rIGZvcnRoRm9ydGggU3RhdGVtZW50CiAgICBIaUxpbmsgZm9ydGhWb2NzIFN0YXRlbWVudAogICAgSGlMaW5rIGZvcnRoU3RyaW5nIFN0cmluZwogICAgSGlMaW5rIGZvcnRoQ29tbWVudCBDb21tZW50CiAgICBIaUxpbmsgZm9ydGhDbGFzc0RlZiBEZWZpbmUKICAgIEhpTGluayBmb3J0aEVuZE9mQ2xhc3NEZWYgRGVmaW5lCiAgICBIaUxpbmsgZm9ydGhPYmplY3REZWYgRGVmaW5lCiAgICBIaUxpbmsgZm9ydGhFbmRPZk9iamVjdERlZiBEZWZpbmUKICAgIEhpTGluayBmb3J0aEluY2x1ZGUgSW5jbHVkZQogICAgSGlMaW5rIGZvcnRoTG9jYWxzIFR5cGUgIiBub3RoaW5nIGVsc2UgdXNlcyB0eXBlIGFuZCBsb2NhbHMgbXVzdCBzdGFuZCBvdXQKICAgIEhpTGluayBmb3J0aERlcHJlY2F0ZWQgRXJyb3IgIiBpZiB5b3UgbXVzdCwgY2hhbmdlIHRvIFR5cGUKICAgIEhpTGluayBmb3J0aEZpbGVNb2RlIEZ1bmN0aW9uCiAgICBIaUxpbmsgZm9ydGhGaWxlV29yZHMgU3RhdGVtZW50CiAgICBIaUxpbmsgZm9ydGhCbG9ja3MgU3RhdGVtZW50CiAgICBIaUxpbmsgZm9ydGhTcGFjZUVycm9yIEVycm9yCgogICAgZGVsY29tbWFuZCBIaUxpbmsKZW5kaWYKCmxldCBiOmN1cnJlbnRfc3ludGF4ID0gImZvcnRoIgoKIiB2aW06dHM9ODpzdz00Om5vY2luZGVudDpzbWFydGluZGVudDoK