IiBWaW0gc3ludGF4IGZpbGUKIiBMYW5ndWFnZTogICAgRk9SVEgKIiBNYWludGFpbmVyOiAgQ2hyaXN0aWFuIFYuIEouIEJy/HNzb3cgPGN2amJAY3ZqYi5kZT4KIiBMYXN0IENoYW5nZTogRGkgMDcgSnVsIDIwMDkgMjE6Mzg6NDUgQ0VTVAoiIEZpbGVuYW1lczogICAqLmZzLCouZnQKIiBVUkw6CSAgICAgICBodHRwOi8vd3d3LmN2amIuZGUvY29tcC92aW0vZm9ydGgudmltCgoiICRJZDogZm9ydGgudmltLHYgMS4xMiAyMDA4LzA3LzA3IDIxOjM5OjEyIGJydWVzc293IEV4cCAkCgoiIFRoZSBsaXN0IG9mIGtleXdvcmRzIGlzIGluY29tcGxldGUsIGNvbXBhcmVkIHdpdGggdGhlIG9mZmljYWwgQU5TCiIgd29yZGxpc3QuIElmIHlvdSB1c2UgdGhpcyBsYW5ndWFnZSwgcGxlYXNlIGltcHJvdmUgaXQsIGFuZCBzZW5kIG1lCiIgdGhlIHBhdGNoZXMuCiIKIiBCZWZvcmUgc2VuZGluZyBtZSBwYXRjaGVzLCBwbGVhc2UgZG93bmxvYWQgdGhlIG5ld2VzdCB2ZXJzaW9uIG9mIHRoaXMgZmlsZQoiIGZyb20gaHR0cDovL3d3dy5jdmpiLmRlL2NvbXAvdmltL2ZvcnRoLnZpbSBvciBodHRwOi8vd3d3LnZpbS5vcmcvIChzZWFyY2gKIiBmb3IgZm9ydGgudmltKS4KCiIgTWFueSBUaGFua3MgdG8uLi4KIgoiIDIwMDktMDYtMjg6CiIgSm9zaCBHcmFtcyBzZW5kIGEgcGF0Y2ggdG8gYWxsb3cgdGhlIHBhcmVudGhlc2lzIGNvbW1lbnRzIGF0IHRoZQoiIGJlZ2lubmluZyBvZiBhIGxpbmUuIFRoYXQgcGF0Y2ggYWxzbyBmaXhlZCBhIHR5cG8gaW4gb25lIG9mIHRoZQoiIGNvbW1lbnRzLgoiCiIgMjAwOC0wMi0wOToKIiBTaGF3biBLLiBRdWlubiA8c2pxdWlubiBhdCBzcGVha2Vhc3kgZG90IG5ldD4gc2VuZCBhIGJpZyBwYXRjaCB3aXRoCiIgbmV3IHdvcmRzIGNvbW1vbmx5IHVzZWQgaW4gRm9ydGggcHJvZ3JhbXMgb3IgZGVmaW5lZCBieSBHTlUgRm9ydGguCiIKIiAyMDA3LTA3LTExOgoiIEJlbmphbWluIEtyaWxsIDxiZW4gYXQgY29kaWVydCBkb3Qgb3JnPiBzZW5kIG1lIGEgcGF0Y2gKIiB0byBoaWdobGlnaHQgc3BhY2UgZXJyb3JzLgoiIFlvdSBjYW4gdG9nZ2xlIHRoaXMgZmVhdHVyZSBvbiB0aHJvdWdoIHNldHRpbmcgdGhlCiIgZmxhZyBmb3J0aF9zcGFjZV9lcnJvcnMgaW4geW91IHZpbXJjLiBJZiB5b3UgaGF2ZSBzd2l0Y2hlZCBpdCBvbiwKIiB5b3UgY2FuIHR1cm4gb2ZmIGhpZ2hsaWdodGluZyBvZiB0cmFpbGluZyBzcGFjZXMgaW4gY29tbWVudHMgYnkKIiBzZXR0aW5nIGZvcnRoX25vX3RyYWlsX3NwYWNlX2Vycm9yIGluIHlvdXIgdmltcmMuIElmIHlvdSBkbyBub3Qgd2FudAoiIHRoZSBoaWdobGlnaHRpbmcgb2YgYSB0YWJ1bGF0b3IgZm9sbG93aW5nIGEgc3BhY2UgaW4gY29tbWVudHMsIHlvdQoiIGNhbiB0dXJuIHRoaXMgb2ZmIGJ5IHNldHRpbmcgZm9ydGhfbm9fdGFiX3NwYWNlX2Vycm9yLgoiCiIgMjAwNi0wNS0yNToKIiBCaWxsIE1jQ2FydGh5IDxXSk1jQC4uLj4gYW5kIElseWEgU2hlciA8aWx5YS12aW1ALi4uPgoiIFdobyBmb3VuZCBhIGJ1ZyBpbiB0aGUgY2NvbW1lbnQgbGluZSBpbiAyMDA0ISEhCiIgSSdtIHJlYWxseSB2ZXJ5IHNvcnJ5LCB0aGF0IGl0IGhhcyB0YWtlbiB0d28geWVhcnMgdG8gZml4IHRoYXQKIiBpbiB0aGUgb2ZmaWNhbCB2ZXJzaW9uIG9mIHRoaXMgZmlsZS4gU2hhbWUgb24gbWUuCiIgSSB0aGluayBteSBmYWNlIHdpbGwgYmUgcmVkIHRoZSBuZXh0IHRlbiB5ZWFycy4uLgoiCiIgMjAwNi0wNS0yMToKIiBUaG9tYXMgRS4gVmF1Z2hhbiA8dGV2YXVnaGEgYXQgYmFsbCBkb3QgY29tPiBzZW5kIG1lIGEgcGF0Y2gKIiBmb3IgdGhlIHBhcmVudGhlc2lzIGNvbW1lbnQgd29yZCwgc28gd29yZHMgd2l0aCBhIHRyYWlsaW5nCiIgcGFyZW50aGVzaXMgd2lsbCBub3Qgc3RhcnQgdGhlIGhpZ2hsaWdodGluZyBmb3Igc3VjaCBjb21tZW50cy4KIiAKIiAyMDAzLTA1LTEwOgoiIEFuZHJldyBHYXVsIDxhbmRyZXcgYXQgZ2F1bC5vcmc+IHNlbmQgbWUgYSBwYXRjaCBmb3IKIiBmb3J0aE9wZXJhdG9ycy4KIgoiIDIwMDMtMDQtMDM6CiIgUm9uIEFhcm9uIDxyb24gYXQgcm9ud2FyZSBkb3Qgb3JnPiBtYWRlIHVwZGF0ZXMgZm9yIGFuCiIgaW1wcm92ZWQgV2luMzJGb3J0aCBzdXBwb3J0LgoiCiIgMjAwMi0wNC0yMjoKIiBDaGFybGVzIFNoYXR0dWNrIDxjaGFybGV5IGF0IGZvcnRoIGRvdCBvcmc+IGhlbHBlZCBtZSB0byBzZXR0bGUgdXAgd2l0aCB0aGUKIiBiaW5hcnkgYW5kIGhleCBudW1iZXIgaGlnaGxpZ2h0aW5nLgoiCiIgMjAwMi0wNC0yMDoKIiBDaGFybGVzIFNoYXR0dWNrIDxjaGFybGV5IGF0IGZvcnRoIGRvdCBvcmc+IHNlbmQgbWUgc29tZSBjb2RlIGZvciBjb3JyZWN0bHkKIiBoaWdobGlnaHRpbmcgY2hhciBhbmQgW2NoYXJdIGZvbGxvd2VkIGJ5IGFuIG9wZW5pbmcgcGFyZW4uIEhlIGFsc28gYWRkZWQKIiBzb21lIHdvcmRzIGZvciBvcGVyYXRvcnMsIGNvbmRpdGlvbmFscywgYW5kIGRlZmluaXRpb25zOyBhbmQgYWRkZWQgdGhlCiIgaGlnaGxpZ2h0aW5nIGZvciBzIiBhbmQgYyIuCiIKIiAyMDAwLTAzLTI4OgoiIEpvaG4gUHJvdmlkZW56YSA8am9obiBhdCBwcm9ibyBkb3QgY29tPiBtYWRlIGltcHJvdmVtZW50cyBmb3IgdGhlCiIgaGlnaGxpZ2h0aW5nIG9mIHN0cmluZ3MsIGFuZCBhZGRlZCB0aGUgY29kZSBmb3IgaGlnaGxpZ2h0aW5nIGhleCBudW1iZXJzLgoiCgoKIiBGb3IgdmVyc2lvbiA1Lng6IENsZWFyIGFsbCBzeW50YXggaXRlbXMKIiBGb3IgdmVyc2lvbiA2Lng6IFF1aXQgd2hlbiBhIHN5bnRheCBmaWxlIHdhcyBhbHJlYWR5IGxvYWRlZAppZiB2ZXJzaW9uIDwgNjAwCiAgICBzeW50YXggY2xlYXIKZWxzZWlmIGV4aXN0cygiYjpjdXJyZW50X3N5bnRheCIpCiAgICBmaW5pc2gKZW5kaWYKCiIgU3luY2hyb25pemF0aW9uIG1ldGhvZApzeW4gc3luYyBjY29tbWVudApzeW4gc3luYyBtYXhsaW5lcz0yMDAKCiIgSSB1c2UgZ2ZvcnRoLCBzbyBJIHNldCB0aGlzIHRvIGNhc2UgaWdub3JlCnN5biBjYXNlIGlnbm9yZQoKIiBTb21lIHNwZWNpYWwsIG5vbi1GT1JUSCBrZXl3b3JkcwpzeW4ga2V5d29yZCBmb3J0aFRvZG8gY29udGFpbmVkIFRPRE8gRklYTUUgWFhYCnN5biBtYXRjaCBmb3J0aFRvZG8gY29udGFpbmVkICdDb3B5cmlnaHRcKFxzKFtDY10pXClcPVwoXHNbMC05XVx7Miw0fVwpXD0nCgoiIENoYXJhY3RlcnMgYWxsb3dlZCBpbiBrZXl3b3JkcwoiIEkgZG9uJ3Qga25vdyBpZiAxMjgtMjU1IGFyZSBhbGxvd2VkIGluIEFOUy1GT1JUSAppZiB2ZXJzaW9uID49IDYwMAogICAgc2V0bG9jYWwgaXNrZXl3b3JkPSEsQCwzMy0zNSwlLCQsMzgtNjQsQS1aLDkxLTk2LGEteiwxMjMtMTI2LDEyOC0yNTUKZWxzZQogICAgc2V0IGlza2V5d29yZD0hLEAsMzMtMzUsJSwkLDM4LTY0LEEtWiw5MS05NixhLXosMTIzLTEyNiwxMjgtMjU1CmVuZGlmCgoiIHdoZW4gd2FudGVkLCBoaWdobGlnaHQgdHJhaWxpbmcgd2hpdGUgc3BhY2UKaWYgZXhpc3RzKCJmb3J0aF9zcGFjZV9lcnJvcnMiKQogICAgaWYgIWV4aXN0cygiZm9ydGhfbm9fdHJhaWxfc3BhY2VfZXJyb3IiKQogICAgICAgIHN5biBtYXRjaCBmb3J0aFNwYWNlRXJyb3IgZGlzcGxheSBleGNsdWRlbmwgIlxzXCskIgogICAgZW5kaWYKICAgIGlmICFleGlzdHMoImZvcnRoX25vX3RhYl9zcGFjZV9lcnJvciIpCiAgICAgICAgc3luIG1hdGNoIGZvcnRoU3BhY2VFcnJvciBkaXNwbGF5ICIgXCtcdCJtZT1lLTEKICAgIGVuZGlmCmVuZGlmCgoiIEtleXdvcmRzCgoiIGJhc2ljIG1hdGhlbWF0aWNhbCBhbmQgbG9naWNhbCBvcGVyYXRvcnMKc3luIGtleXdvcmQgZm9ydGhPcGVyYXRvcnMgKyAtICogLyBNT0QgL01PRCBORUdBVEUgQUJTIE1JTiBNQVgKc3luIGtleXdvcmQgZm9ydGhPcGVyYXRvcnMgQU5EIE9SIFhPUiBOT1QgTFNISUZUIFJTSElGVCBJTlZFUlQgMiogMi8gMSsKc3luIGtleXdvcmQgZm9ydGhPcGVyYXRvcnMgMS0gMisgMi0gOCogVU5ERVIrCnN5biBrZXl3b3JkIGZvcnRoT3BlcmF0b3JzIE0rICovICovTU9EIE0qIFVNKiBNKi8gVU0vTU9EIEZNL01PRCBTTS9SRU0Kc3luIGtleXdvcmQgZm9ydGhPcGVyYXRvcnMgRCsgRC0gRE5FR0FURSBEQUJTIERNSU4gRE1BWCBEMiogRDIvCnN5biBrZXl3b3JkIGZvcnRoT3BlcmF0b3JzIEYrIEYtIEYqIEYvIEZORUdBVEUgRkFCUyBGTUFYIEZNSU4gRkxPT1IgRlJPVU5ECnN5biBrZXl3b3JkIGZvcnRoT3BlcmF0b3JzIEYqKiBGU1FSVCBGRVhQIEZFWFBNMSBGTE4gRkxOUDEgRkxPRyBGQUxPRyBGU0lOCnN5biBrZXl3b3JkIGZvcnRoT3BlcmF0b3JzIEZDT1MgRlNJTkNPUyBGVEFOIEZBU0lOIEZBQ09TIEZBVEFOIEZBVEFOMiBGU0lOSApzeW4ga2V5d29yZCBmb3J0aE9wZXJhdG9ycyBGQ09TSCBGVEFOSCBGQVNJTkggRkFDT1NIIEZBVEFOSCBGMiogRjIvIDEvRgpzeW4ga2V5d29yZCBmb3J0aE9wZXJhdG9ycyBGflJFTCBGfkFCUyBGfgpzeW4ga2V5d29yZCBmb3J0aE9wZXJhdG9ycyAwPCAwPD0gMDw+IDA9IDA+IDA+PSA8IDw9IDw+ID0gPiA+PSBVPCBVPD0Kc3luIGtleXdvcmQgZm9ydGhPcGVyYXRvcnMgVT4gVT49IEQwPCBEMDw9IEQwPD4gRDA9IEQwPiBEMD49IEQ8IEQ8PSBEPD4Kc3luIGtleXdvcmQgZm9ydGhPcGVyYXRvcnMgRD0gRD4gRD49IERVPCBEVTw9IERVPiBEVT49IFdJVEhJTiA/TkVHQVRFCnN5biBrZXl3b3JkIGZvcnRoT3BlcmF0b3JzID9ETkVHQVRFIAoKIiBzdGFjayBtYW5pcHVsYXRpb25zCnN5biBrZXl3b3JkIGZvcnRoU3RhY2sgRFJPUCBOSVAgRFVQIE9WRVIgVFVDSyBTV0FQIFJPVCAtUk9UID9EVVAgUElDSyBST0xMCnN5biBrZXl3b3JkIGZvcnRoU3RhY2sgMkRST1AgMk5JUCAyRFVQIDJPVkVSIDJUVUNLIDJTV0FQIDJST1QgMi1ST1QKc3luIGtleXdvcmQgZm9ydGhTdGFjayAzRFVQIDREVVAgNURVUCAzRFJPUCA0RFJPUCA1RFJPUCA4RFJPUCA0U1dBUCA0Uk9UCnN5biBrZXl3b3JkIGZvcnRoU3RhY2sgNC1ST1QgNFRVQ0sgOFNXQVAgOERVUApzeW4ga2V5d29yZCBmb3J0aFJTdGFjayA+UiBSPiBSQCBSRFJPUCAyPlIgMlI+IDJSQCAyUkRST1AKc3luIGtleXdvcmQgZm9ydGhSc3RhY2sgND5SIDRSPiA0UkAgNFJEUk9QCnN5biBrZXl3b3JkIGZvcnRoRlN0YWNrIEZEUk9QIEZOSVAgRkRVUCBGT1ZFUiBGVFVDSyBGU1dBUCBGUk9UCgoiIHN0YWNrIHBvaW50ZXIgbWFuaXB1bGF0aW9ucwpzeW4ga2V5d29yZCBmb3J0aFNQIFNQQCBTUCEgRlBAIEZQISBSUEAgUlAhIExQQCBMUCEKCiIgYWRkcmVzcyBvcGVyYXRpb25zCnN5biBrZXl3b3JkIGZvcnRoTWVtb3J5IEAgISArISBDQCBDISAyQCAyISBGQCBGISBTRkAgU0YhIERGQCBERiEKc3luIGtleXdvcmQgZm9ydGhBZHJBcml0aCBDSEFSUyBDSEFSKyBDRUxMUyBDRUxMKyBDRUxMIEFMSUdOIEFMSUdORUQgRkxPQVRTCnN5biBrZXl3b3JkIGZvcnRoQWRyQXJpdGggRkxPQVQrIEZMT0FUIEZBTElHTiBGQUxJR05FRCBTRkxPQVRTIFNGTE9BVCsKc3luIGtleXdvcmQgZm9ydGhBZHJBcml0aCBTRkFMSUdOIFNGQUxJR05FRCBERkxPQVRTIERGTE9BVCsgREZBTElHTiBERkFMSUdORUQKc3luIGtleXdvcmQgZm9ydGhBZHJBcml0aCBNQVhBTElHTiBNQVhBTElHTkVEIENGQUxJR04gQ0ZBTElHTkVECnN5biBrZXl3b3JkIGZvcnRoQWRyQXJpdGggQUREUkVTUy1VTklULUJJVFMgQUxMT1QgQUxMT0NBVEUgSEVSRQpzeW4ga2V5d29yZCBmb3J0aE1lbUJsa3MgTU9WRSBFUkFTRSBDTU9WRSBDTU9WRT4gRklMTCBCTEFOSwoKIiBjb25kaXRpb25hbHMKc3luIGtleXdvcmQgZm9ydGhDb25kIElGIEVMU0UgRU5ESUYgVEhFTiBDQVNFIE9GIEVORE9GIEVORENBU0UgP0RVUC1JRgpzeW4ga2V5d29yZCBmb3J0aENvbmQgP0RVUC0wPS1JRiBBSEVBRCBDUy1QSUNLIENTLVJPTEwgQ0FUQ0ggVEhST1cgV0lUSElOCgoiIGl0ZXJhdGlvbnMKc3luIGtleXdvcmQgZm9ydGhMb29wIEJFR0lOIFdISUxFIFJFUEVBVCBVTlRJTCBBR0FJTgpzeW4ga2V5d29yZCBmb3J0aExvb3AgP0RPIExPT1AgSSBKIEsgK0RPIFUrRE8gLURPIFUtRE8gRE8gK0xPT1AgLUxPT1AKc3luIGtleXdvcmQgZm9ydGhMb29wIFVOTE9PUCBMRUFWRSA/TEVBVkUgRVhJVCBET05FIEZPUiBORVhUCgoiIG5ldyB3b3JkcwpzeW4gbWF0Y2ggZm9ydGhDbGFzc0RlZiAnXDw6Y2xhc3NccypbXiBcdF1cK1w+JwpzeW4gbWF0Y2ggZm9ydGhPYmplY3REZWYgJ1w8Om9iamVjdFxzKlteIFx0XVwrXD4nCnN5biBtYXRjaCBmb3J0aENvbG9uRGVmICdcPDptXD9ccypbXiBcdF1cK1w+JwpzeW4ga2V5d29yZCBmb3J0aEVuZE9mQ29sb25EZWYgOyA7TSA7bQpzeW4ga2V5d29yZCBmb3J0aEVuZE9mQ2xhc3NEZWYgO2NsYXNzCnN5biBrZXl3b3JkIGZvcnRoRW5kT2ZPYmplY3REZWYgO29iamVjdApzeW4ga2V5d29yZCBmb3J0aERlZmluZSBDT05TVEFOVCAyQ09OU1RBTlQgRkNPTlNUQU5UIFZBUklBQkxFIDJWQVJJQUJMRQpzeW4ga2V5d29yZCBmb3J0aERlZmluZSBGVkFSSUFCTEUgQ1JFQVRFIFVTRVIgVkFMVUUgVE8gREVGRVIgSVMgRE9FUz4gSU1NRURJQVRFCnN5biBrZXl3b3JkIGZvcnRoRGVmaW5lIENPTVBJTEUtT05MWSBDT01QSUxFIFJFU1RSSUNUIElOVEVSUFJFVCBQT1NUUE9ORSBFWEVDVVRFCnN5biBrZXl3b3JkIGZvcnRoRGVmaW5lIExJVEVSQUwgQ1JFQVRFLUlOVEVSUFJFVC9DT01QSUxFIElOVEVSUFJFVEFUSU9OPgpzeW4ga2V5d29yZCBmb3J0aERlZmluZSA8SU5URVJQUkVUQVRJT04gQ09NUElMQVRJT04+IDxDT01QSUxBVElPTiBdIExBU1RYVApzeW4ga2V5d29yZCBmb3J0aERlZmluZSBDT01QJyBQT1NUUE9ORSwgRklORC1OQU1FIE5BTUU+SU5UIE5BTUU/SU5UIE5BTUU+Q09NUApzeW4ga2V5d29yZCBmb3J0aERlZmluZSBOQU1FPlNUUklORyBTVEFURSBDOyBDVkFSSUFCTEUKc3luIGtleXdvcmQgZm9ydGhEZWZpbmUgLCAyLCBGLCBDLCAKc3luIG1hdGNoIGZvcnRoRGVmaW5lICJcW0lGREVGXSIKc3luIG1hdGNoIGZvcnRoRGVmaW5lICJcW0lGVU5ERUZdIgpzeW4gbWF0Y2ggZm9ydGhEZWZpbmUgIlxbVEhFTl0iCnN5biBtYXRjaCBmb3J0aERlZmluZSAiXFtFTkRJRl0iCnN5biBtYXRjaCBmb3J0aERlZmluZSAiXFtFTFNFXSIKc3luIG1hdGNoIGZvcnRoRGVmaW5lICJcWz9ET10iCnN5biBtYXRjaCBmb3J0aERlZmluZSAiXFtET10iCnN5biBtYXRjaCBmb3J0aERlZmluZSAiXFtMT09QXSIKc3luIG1hdGNoIGZvcnRoRGVmaW5lICJcWytMT09QXSIKc3luIG1hdGNoIGZvcnRoRGVmaW5lICJcW05FWFRdIgpzeW4gbWF0Y2ggZm9ydGhEZWZpbmUgIlxbQkVHSU5dIgpzeW4gbWF0Y2ggZm9ydGhEZWZpbmUgIlxbVU5USUxdIgpzeW4gbWF0Y2ggZm9ydGhEZWZpbmUgIlxbQUdBSU5dIgpzeW4gbWF0Y2ggZm9ydGhEZWZpbmUgIlxbV0hJTEVdIgpzeW4gbWF0Y2ggZm9ydGhEZWZpbmUgIlxbUkVQRUFUXSIKc3luIG1hdGNoIGZvcnRoRGVmaW5lICJcW0NPTVAnXSIKc3luIG1hdGNoIGZvcnRoRGVmaW5lICInIgpzeW4gbWF0Y2ggZm9ydGhEZWZpbmUgJ1w8XFtcPicKc3luIG1hdGNoIGZvcnRoRGVmaW5lICJcWyddIgpzeW4gbWF0Y2ggZm9ydGhEZWZpbmUgJ1xbQ09NUElMRV0nCgoiIGRlYnVnZ2luZwpzeW4ga2V5d29yZCBmb3J0aERlYnVnIFBSSU5UREVCVUdEQVRBIFBSSU5UREVCVUdMSU5FCnN5biBtYXRjaCBmb3J0aERlYnVnICJcPFx+XH5cPiIKCiIgQXNzZW1ibGVyCnN5biBrZXl3b3JkIGZvcnRoQXNzZW1ibGVyIEFTU0VNQkxFUiBDT0RFIEVORC1DT0RFIDtDT0RFIEZMVVNILUlDQUNIRSBDLAoKIiBiYXNpYyBjaGFyYWN0ZXIgb3BlcmF0aW9ucwpzeW4ga2V5d29yZCBmb3J0aENoYXJPcHMgKC4pIENIQVIgRVhQRUNUIEZJTkQgV09SRCBUWVBFIC1UUkFJTElORyBFTUlUIEtFWQpzeW4ga2V5d29yZCBmb3J0aENoYXJPcHMgS0VZPyBUSUIgQ1IKIiByZWNvZ25pemUgJ2NoYXIgKCcgb3IgJ1tjaGFyXSAoJyBjb3JyZWN0bHksIHNvIGl0IGRvZXNuJ3QKIiBoaWdobGlnaHQgZXZlcnl0aGluZyBhZnRlciB0aGUgcGFyZW4gYXMgYSBjb21tZW50IHRpbGwgYSBjbG9zaW5nICcpJwpzeW4gbWF0Y2ggZm9ydGhDaGFyT3BzICdcPGNoYXJcc1xTXHMnCnN5biBtYXRjaCBmb3J0aENoYXJPcHMgJ1w8XFtjaGFyXF1cc1xTXHMnCnN5biByZWdpb24gZm9ydGhDaGFyT3BzIHN0YXJ0PSsuIlxzKyBza2lwPStcXCIrIGVuZD0rIisKCiIgY2hhci1udW1iZXIgY29udmVyc2lvbgpzeW4ga2V5d29yZCBmb3J0aENvbnZlcnNpb24gPDwjIDwjICMgIz4gIz4+ICNTIChOVU1CRVIpIChOVU1CRVI/KSBDT05WRVJUIEQ+RiAKc3luIGtleXdvcmQgZm9ydGhDb252ZXJzaW9uIEQ+UyBESUdJVCBEUEwgRj5EIEhMRCBIT0xEIE5VTUJFUiBTPkQgU0lHTiA+TlVNQkVSCnN5biBrZXl3b3JkIGZvcnRoQ29udmVyc2lvbiBGPlMgUz5GCgoiIGludGVycHJldGVyLCB3b3JkYm9vaywgY29tcGlsZXIKc3luIGtleXdvcmQgZm9ydGhGb3J0aCAoTE9DQUwpIEJZRSBDT0xEIEFCT1JUID5CT0RZID5ORVhUID5MSU5LIENGQSA+VklFVyBIRVJFCnN5biBrZXl3b3JkIGZvcnRoRm9ydGggUEFEIFdPUkRTIFZJRVcgVklFVz4gTj5MSU5LIE5BTUU+IExJTks+IEw+TkFNRSBGT1JHRVQKc3luIGtleXdvcmQgZm9ydGhGb3J0aCBCT0RZPiBBU1NFUlQoIEFTU0VSVDAoIEFTU0VSVDEoIEFTU0VSVDIoIEFTU0VSVDMoICkKc3luIHJlZ2lvbiBmb3J0aEZvcnRoIHN0YXJ0PStBQk9SVCJccysgc2tpcD0rXFwiKyBlbmQ9KyIrCgoiIHZvY2FidWxhcmllcwpzeW4ga2V5d29yZCBmb3J0aFZvY3MgT05MWSBGT1JUSCBBTFNPIFJPT1QgU0VBTCBWT0NTIE9SREVSIENPTlRFWFQgI1ZPQ1MKc3luIGtleXdvcmQgZm9ydGhWb2NzIFZPQ0FCVUxBUlkgREVGSU5JVElPTlMKCiIgRmlsZSBrZXl3b3JkcwpzeW4ga2V5d29yZCBmb3J0aEZpbGVNb2RlIFIvTyBSL1cgVy9PIEJJTiAKc3luIGtleXdvcmQgZm9ydGhGaWxlV29yZHMgT1BFTi1GSUxFIENSRUFURS1GSUxFIENMT1NFLUZJTEUgREVMRVRFLUZJTEUKc3luIGtleXdvcmQgZm9ydGhGaWxlV29yZHMgUkVOQU1FLUZJTEUgUkVBRC1GSUxFIFJFQUQtTElORSBLRVktRklMRQpzeW4ga2V5d29yZCBmb3J0aEZpbGVXb3JkcyBLRVk/LUZJTEUgV1JJVEUtRklMRSBXUklURS1MSU5FIEVNSVQtRklMRQpzeW4ga2V5d29yZCBmb3J0aEZpbGVXb3JkcyBGTFVTSC1GSUxFIEZJTEUtU1RBVFVTIEZJTEUtUE9TSVRJT04Kc3luIGtleXdvcmQgZm9ydGhGaWxlV29yZHMgUkVQT1NJVElPTi1GSUxFIEZJTEUtU0laRSBSRVNJWkUtRklMRQpzeW4ga2V5d29yZCBmb3J0aEZpbGVXb3JkcyBTTFVSUC1GSUxFIFNMVVJQLUZJRCBTVERJTiBTVERPVVQgU1RERVJSCnN5biBrZXl3b3JkIGZvcnRoQmxvY2tzIE9QRU4tQkxPQ0tTIFVTRSBMT0FEIC0tPiBCTE9DSy1PRkZTRVQKc3luIGtleXdvcmQgZm9ydGhCbG9ja3MgR0VULUJMT0NLLUZJRCBCTE9DSy1QT1NJVElPTiBMSVNUIFNDUiBCTE9DSwpzeW4ga2V5d29yZCBmb3J0aEJsb2NrcyBCVUZFUiBFTVBUWS1CVUZGRVJTIEVNUFRZLUJVRkZFUiBVUERBVEUgVVBEQVRFRD8Kc3luIGtleXdvcmQgZm9ydGhCbG9ja3MgU0FWRS1CVUZGRVJTIFNBVkUtQlVGRkVSIEZMVVNIIFRIUlUgK0xPQUQgK1RIUlUKc3luIGtleXdvcmQgZm9ydGhCbG9ja3MgQkxPQ0stSU5DTFVERUQKCiIgbnVtYmVycwpzeW4ga2V5d29yZCBmb3J0aE1hdGggREVDSU1BTCBIRVggQkFTRQpzeW4gbWF0Y2ggZm9ydGhJbnRlZ2VyICdcPC1cPVswLTkuXSpbMC05Ll1cK1w+JwpzeW4gbWF0Y2ggZm9ydGhJbnRlZ2VyICdcPCYtXD1bMC05Ll0qWzAtOS5dXCtcPicKIiByZWNvZ25pemUgaGV4IGFuZCBiaW5hcnkgbnVtYmVycywgdGhlICckJyBhbmQgJyUnIG5vdGF0aW9uIGlzIGZvciBnZm9ydGgKc3luIG1hdGNoIGZvcnRoSW50ZWdlciAnXDxcJFx4Klx4XCtcPicgIiAqMSogLS0tIGRvbnQndCBtZXNzCnN5biBtYXRjaCBmb3J0aEludGVnZXIgJ1w8XHgqXGRceCpcPicgICIgKjIqIC0tLSB0aGlzIG9yZGVyIQpzeW4gbWF0Y2ggZm9ydGhJbnRlZ2VyICdcPCVbMC0xXSpbMC0xXVwrXD4nCnN5biBtYXRjaCBmb3J0aEZsb2F0ICdcPC1cPVxkKlsuXVw9XGRcK1tEZEVlXVxkXCtcPicKc3luIG1hdGNoIGZvcnRoRmxvYXQgJ1w8LVw9XGQqWy5dXD1cZFwrW0RkRWVdWy0rXVxkXCtcPicKCiIgWFhYIElmIHlvdSBmaW5kIHRoaXMgb3ZlcmtpbGwgeW91IGNhbiByZW1vdmUgaXQuIHRoaXMgaGFzIHRvIGNvbWUgYWZ0ZXIgdGhlCiIgaGlnaGxpZ2h0aW5nIGZvciBudW1iZXJzIG90aGVyd2lzZSBpdCBoYXMgbm8gZWZmZWN0LgpzeW4gcmVnaW9uIGZvcnRoQ29tbWVudCBzdGFydD0nMCBcW2lmXF0nIGVuZD0nXFtlbmRpZlxdJyBlbmQ9J1xbdGhlblxdJyBjb250YWlucz1mb3J0aFRvZG8KCiIgU3RyaW5ncwpzeW4gcmVnaW9uIGZvcnRoU3RyaW5nIHN0YXJ0PStcLipcIisgZW5kPSsiKyBlbmQ9KyQrCiIgWFhYCnN5biByZWdpb24gZm9ydGhTdHJpbmcgc3RhcnQ9K3NcIisgZW5kPSsiKyBlbmQ9KyQrCnN5biByZWdpb24gZm9ydGhTdHJpbmcgc3RhcnQ9K2NcIisgZW5kPSsiKyBlbmQ9KyQrCgoiIENvbW1lbnRzCnN5biBtYXRjaCBmb3J0aENvbW1lbnQgJ1xcXHMuKiQnIGNvbnRhaW5zPWZvcnRoVG9kbyxmb3J0aFNwYWNlRXJyb3IKc3luIHJlZ2lvbiBmb3J0aENvbW1lbnQgc3RhcnQ9J1xcU1xzJyBlbmQ9Jy4qJyBjb250YWlucz1mb3J0aFRvZG8sZm9ydGhTcGFjZUVycm9yCnN5biBtYXRjaCBmb3J0aENvbW1lbnQgJ1wuKFxzW14pXSopJyBjb250YWlucz1mb3J0aFRvZG8sZm9ydGhTcGFjZUVycm9yCnN5biByZWdpb24gZm9ydGhDb21tZW50IHN0YXJ0PSdcKF5cfFxzXClcenMoXHMnIHNraXA9J1xcKScgZW5kPScpJyBjb250YWlucz1mb3J0aFRvZG8sZm9ydGhTcGFjZUVycm9yCnN5biByZWdpb24gZm9ydGhDb21tZW50IHN0YXJ0PScvXConIGVuZD0nXCovJyBjb250YWlucz1mb3J0aFRvZG8sZm9ydGhTcGFjZUVycm9yCgoiIEluY2x1ZGUgZmlsZXMKc3luIG1hdGNoIGZvcnRoSW5jbHVkZSAnXklOQ0xVREVcc1wrXGtcKycKc3luIG1hdGNoIGZvcnRoSW5jbHVkZSAnXnJlcXVpcmVcc1wrXGtcKycKc3luIG1hdGNoIGZvcnRoSW5jbHVkZSAnXmZsb2FkXHNcKycKc3luIG1hdGNoIGZvcnRoSW5jbHVkZSAnXm5lZWRzXHNcKycKCiIgTG9jYWxzIGRlZmluaXRpb25zCnN5biByZWdpb24gZm9ydGhMb2NhbHMgc3RhcnQ9J3tccycgc3RhcnQ9J3skJyBlbmQ9J1xzfScgZW5kPSdefScKc3luIG1hdGNoIGZvcnRoTG9jYWxzICd7IH0nICIgb3RoZXJ3aXNlLCBhdCBsZWFzdCB0d28gc3BhY2VzIGJldHdlZW4Kc3luIHJlZ2lvbiBmb3J0aERlcHJlY2F0ZWQgc3RhcnQ9J2xvY2Fsc3wnIGVuZD0nfCcKCiIgRGVmaW5lIHRoZSBkZWZhdWx0IGhpZ2hsaWdodGluZy4KIiBGb3IgdmVyc2lvbiA1LjcgYW5kIGVhcmxpZXI6IG9ubHkgd2hlbiBub3QgZG9uZSBhbHJlYWR5CiIgRm9yIHZlcnNpb24gNS44IGFuZCBsYXRlcjogb25seSB3aGVuIGFuIGl0ZW0gZG9lc24ndCBoYXZlIGhpZ2hsaWdodGluZyB5ZXQKaWYgdmVyc2lvbiA+PSA1MDggfHwgIWV4aXN0cygiZGlkX2ZvcnRoX3N5bl9pbml0cyIpCiAgICBpZiB2ZXJzaW9uIDwgNTA4CglsZXQgZGlkX2ZvcnRoX3N5bl9pbml0cyA9IDEKCWNvbW1hbmQgLW5hcmdzPSsgSGlMaW5rIGhpIGxpbmsgPGFyZ3M+CiAgICBlbHNlCgljb21tYW5kIC1uYXJncz0rIEhpTGluayBoaSBkZWYgbGluayA8YXJncz4KICAgIGVuZGlmCgogICAgIiBUaGUgZGVmYXVsdCBtZXRob2RzIGZvciBoaWdobGlnaHRpbmcuIENhbiBiZSBvdmVycmlkZW4gbGF0ZXIuCiAgICBIaUxpbmsgZm9ydGhUb2RvIFRvZG8KICAgIEhpTGluayBmb3J0aE9wZXJhdG9ycyBPcGVyYXRvcgogICAgSGlMaW5rIGZvcnRoTWF0aCBOdW1iZXIKICAgIEhpTGluayBmb3J0aEludGVnZXIgTnVtYmVyCiAgICBIaUxpbmsgZm9ydGhGbG9hdCBGbG9hdAogICAgSGlMaW5rIGZvcnRoU3RhY2sgU3BlY2lhbAogICAgSGlMaW5rIGZvcnRoUnN0YWNrIFNwZWNpYWwKICAgIEhpTGluayBmb3J0aEZTdGFjayBTcGVjaWFsCiAgICBIaUxpbmsgZm9ydGhTUCBTcGVjaWFsCiAgICBIaUxpbmsgZm9ydGhNZW1vcnkgRnVuY3Rpb24KICAgIEhpTGluayBmb3J0aEFkckFyaXRoIEZ1bmN0aW9uCiAgICBIaUxpbmsgZm9ydGhNZW1CbGtzIEZ1bmN0aW9uCiAgICBIaUxpbmsgZm9ydGhDb25kIENvbmRpdGlvbmFsCiAgICBIaUxpbmsgZm9ydGhMb29wIFJlcGVhdAogICAgSGlMaW5rIGZvcnRoQ29sb25EZWYgRGVmaW5lCiAgICBIaUxpbmsgZm9ydGhFbmRPZkNvbG9uRGVmIERlZmluZQogICAgSGlMaW5rIGZvcnRoRGVmaW5lIERlZmluZQogICAgSGlMaW5rIGZvcnRoRGVidWcgRGVidWcKICAgIEhpTGluayBmb3J0aEFzc2VtYmxlciBJbmNsdWRlCiAgICBIaUxpbmsgZm9ydGhDaGFyT3BzIENoYXJhY3RlcgogICAgSGlMaW5rIGZvcnRoQ29udmVyc2lvbiBTdHJpbmcKICAgIEhpTGluayBmb3J0aEZvcnRoIFN0YXRlbWVudAogICAgSGlMaW5rIGZvcnRoVm9jcyBTdGF0ZW1lbnQKICAgIEhpTGluayBmb3J0aFN0cmluZyBTdHJpbmcKICAgIEhpTGluayBmb3J0aENvbW1lbnQgQ29tbWVudAogICAgSGlMaW5rIGZvcnRoQ2xhc3NEZWYgRGVmaW5lCiAgICBIaUxpbmsgZm9ydGhFbmRPZkNsYXNzRGVmIERlZmluZQogICAgSGlMaW5rIGZvcnRoT2JqZWN0RGVmIERlZmluZQogICAgSGlMaW5rIGZvcnRoRW5kT2ZPYmplY3REZWYgRGVmaW5lCiAgICBIaUxpbmsgZm9ydGhJbmNsdWRlIEluY2x1ZGUKICAgIEhpTGluayBmb3J0aExvY2FscyBUeXBlICIgbm90aGluZyBlbHNlIHVzZXMgdHlwZSBhbmQgbG9jYWxzIG11c3Qgc3RhbmQgb3V0CiAgICBIaUxpbmsgZm9ydGhEZXByZWNhdGVkIEVycm9yICIgaWYgeW91IG11c3QsIGNoYW5nZSB0byBUeXBlCiAgICBIaUxpbmsgZm9ydGhGaWxlTW9kZSBGdW5jdGlvbgogICAgSGlMaW5rIGZvcnRoRmlsZVdvcmRzIFN0YXRlbWVudAogICAgSGlMaW5rIGZvcnRoQmxvY2tzIFN0YXRlbWVudAogICAgSGlMaW5rIGZvcnRoU3BhY2VFcnJvciBFcnJvcgoKICAgIGRlbGNvbW1hbmQgSGlMaW5rCmVuZGlmCgpsZXQgYjpjdXJyZW50X3N5bnRheCA9ICJmb3J0aCIKCiIgdmltOnRzPTg6c3c9NDpub2NpbmRlbnQ6c21hcnRpbmRlbnQ6Cg==