IiBWaW0gc3ludGF4IGZpbGUKIiBMYW5ndWFnZToJRm9ydHJhbiAyMDA4IChhbmQgb2xkZXI6IEZvcnRyYW4gMjAwMywgOTUsIDkwLCBhbmQgNzcpCiIgVmVyc2lvbjoJMTAxCiIgTGFzdCBDaGFuZ2U6CTIwMTkgTm92LiAyNgoiIE1haW50YWluZXI6CUFqaXQgSi4gVGhha2thciA8YWppdEB1bmIuY2E+OyA8aHR0cDovL3d3dzIudW5iLmNhL35haml0Lz4KIiBVc2FnZToJRm9yIGluc3RydWN0aW9ucywgZG8gOmhlbHAgZm9ydHJhbi1zeW50YXggZnJvbSBWaW0KIiBDcmVkaXRzOgoiICBWZXJzaW9uIDAuMSBmb3IgRm9ydHJhbiA5NSB3YXMgY3JlYXRlZCAoQXByaWwgMjAwMCkgYnkgQWppdCBUaGFra2FyIGZyb20gdGhlCiIgIEZvcnRyYW4gNzcgc3ludGF4IGZpbGUgYnkgTWFyaW8gRXVzZWJpbyBhbmQgUHJlYmVuIEd1bGRiZXJnLgoiICBTaW5jZSB0aGVuLCB1c2VmdWwgc3VnZ2VzdGlvbnMgYW5kIGNvbnRyaWJ1dGlvbnMgaGF2ZSBiZWVuIG1hZGUsIGluIG9yZGVyLCBieToKIiAgQW5kcmVqIFBhbmprb3YsIEJyYW0gTW9vbGVuYWFyLCBUaG9tYXMgT2xzZW4sIE1pY2hhZWwgU3Rlcm5iZXJnLCBDaHJpc3RpYW4gUmVpbGUsCiIgIFdhbHRlciBEaWV1ZG9ubuksIEFsZXhhbmRlciBXYWduZXIsIFJvbWFuIEJlcnRsZSwgQ2hhcmxlcyBSZW5kbGVtYW4sCiIgIEFuZHJldyBHcmlmZml0aHMsIEpvZSBLcmFobiwgSGVuZHJpayBNZXJ4LCBNYXR0IFRob21wc29uLCBKYW4gSGVybWFubiwKIiAgU3RlZmFubyBaYWdoaSwgVmlzaG51IFYuIEtyaXNobmFuLCBKdWRpY2HrbCBHcmFzc2V0LCBhbmQgVGFrdW1hIFlvc2hpZGEKCmlmIGV4aXN0cygiYjpjdXJyZW50X3N5bnRheCIpCiAgZmluaXNoCmVuZGlmCgpsZXQgczpjcG9fc2F2ZSA9ICZjcG8Kc2V0IGNwbyZ2aW0KCiIgQ2hvb3NlIGZvcnRyYW5fZGlhbGVjdCB1c2luZyB0aGUgcHJpb3JpdHk6CiIgc291cmNlIGZpbGUgZGlyZWN0aXZlID4gYnVmZmVyLWxvY2FsIHZhbHVlID4gZ2xvYmFsIHZhbHVlID4gZmlsZSBleHRlbnNpb24KIiBmaXJzdCB0cnkgdXNpbmcgZGlyZWN0aXZlIGluIGZpcnN0IHRocmVlIGxpbmVzIG9mIGZpbGUKbGV0IGI6Zm9ydHJhbl9yZXR5cGUgPSBnZXRsaW5lKDEpLiIgIi5nZXRsaW5lKDIpLiIgIi5nZXRsaW5lKDMpCmlmIGI6Zm9ydHJhbl9yZXR5cGUgPX4/ICdcPGZvcnRyYW5fZGlhbGVjdFxzKj1ccypGXD4nCiAgbGV0IGI6Zm9ydHJhbl9kaWFsZWN0ID0gIkYiCmVsc2VpZiBiOmZvcnRyYW5fcmV0eXBlID1+PyAnXDxmb3J0cmFuX2RpYWxlY3Rccyo9XHMqZjA4XD4nCiAgbGV0IGI6Zm9ydHJhbl9kaWFsZWN0ID0gImYwOCIKZWxzZWlmICFleGlzdHMoImI6Zm9ydHJhbl9kaWFsZWN0IikKICBpZiBleGlzdHMoImc6Zm9ydHJhbl9kaWFsZWN0IikgJiYgZzpmb3J0cmFuX2RpYWxlY3QgPX4jICdcPEZcfGYwOFw+JwogICAgIiB0cnkgZ2xvYmFsIHZhcmlhYmxlCiAgICBsZXQgYjpmb3J0cmFuX2RpYWxlY3QgPSBnOmZvcnRyYW5fZGlhbGVjdAogIGVsc2UgICAgICAgICAiIG5vdGhpbmcgZm91bmQsIHNvIHVzZSBkZWZhdWx0CiAgICBsZXQgYjpmb3J0cmFuX2RpYWxlY3QgPSAiZjA4IgogIGVuZGlmCmVuZGlmCnVubGV0ISBiOmZvcnRyYW5fcmV0eXBlCiIgbWFrZSBzdXJlIGJ1ZmZlci1sb2NhbCB2YWx1ZSBpcyBub3QgaW52YWxpZAppZiBiOmZvcnRyYW5fZGlhbGVjdCAhfiMgJ1w8Rlx8ZjA4XD4nCiAgbGV0IGI6Zm9ydHJhbl9kaWFsZWN0ID0gImYwOCIKZW5kaWYKCiIgQ2hvb3NlIGJldHdlZW4gZml4ZWQgYW5kIGZyZWUgc291cmNlIGZvcm0gaWYgdGhpcyBoYXNuJ3QgYmVlbiBkb25lIHlldAppZiAhZXhpc3RzKCJiOmZvcnRyYW5fZml4ZWRfc291cmNlIikKICBpZiBiOmZvcnRyYW5fZGlhbGVjdCA9PSAiRiIKICAgICIgRiByZXF1aXJlcyBmcmVlIHNvdXJjZSBmb3JtCiAgICBsZXQgYjpmb3J0cmFuX2ZpeGVkX3NvdXJjZSA9IDAKICBlbHNlaWYgZXhpc3RzKCJmb3J0cmFuX2ZyZWVfc291cmNlIikKICAgICIgVXNlciBndWFyYW50ZWVzIGZyZWUgc291cmNlIGZvcm0gZm9yIGFsbCBmb3J0cmFuIGZpbGVzCiAgICBsZXQgYjpmb3J0cmFuX2ZpeGVkX3NvdXJjZSA9IDAKICBlbHNlaWYgZXhpc3RzKCJmb3J0cmFuX2ZpeGVkX3NvdXJjZSIpCiAgICAiIFVzZXIgZ3VhcmFudGVlcyBmaXhlZCBzb3VyY2UgZm9ybSBmb3IgYWxsIGZvcnRyYW4gZmlsZXMKICAgIGxldCBiOmZvcnRyYW5fZml4ZWRfc291cmNlID0gMQogIGVsc2VpZiBleHBhbmQoIiU6ZSIpID09PyAiZlw8OTBcfDk1XHwwM1x8MDhcPiIKICAgICIgRnJlZS1mb3JtIGZpbGUgZXh0ZW5zaW9uIGRlZmF1bHRzIGFzIGluIEludGVsIGlmb3J0LCBnY2MoZ2ZvcnRyYW4pLCBOQUcsIFBhdGhzY2FsZSwgYW5kIENyYXkgY29tcGlsZXJzCiAgICBsZXQgYjpmb3J0cmFuX2ZpeGVkX3NvdXJjZSA9IDAKICBlbHNlaWYgZXhwYW5kKCIlOmUiKSA9PT8gImZcfGY3N1x8Zm9yIgogICAgIiBGaXhlZC1mb3JtIGZpbGUgZXh0ZW5zaW9uIGRlZmF1bHRzCiAgICBsZXQgYjpmb3J0cmFuX2ZpeGVkX3NvdXJjZSA9IDEKICBlbHNlCiAgICAiIE1vZGVybiBmb3J0cmFuIHN0aWxsIGFsbG93cyBib3RoIGZyZWUgYW5kIGZpeGVkIHNvdXJjZSBmb3JtLgogICAgIiBBc3N1bWUgZml4ZWQgc291cmNlIGZvcm0gdW5sZXNzIHNpZ25zIG9mIGZyZWUgc291cmNlIGZvcm0KICAgICIgYXJlIGRldGVjdGVkIGluIHRoZSBmaXJzdCBmaXZlIGNvbHVtbnMgb2YgdGhlIGZpcnN0IHM6bG1heCBsaW5lcy4KICAgICIgRGV0ZWN0aW9uIGJlY29tZXMgbW9yZSBhY2N1cmF0ZSBhbmQgdGltZS1jb25zdW1pbmcgaWYgbW9yZSBsaW5lcwogICAgIiBhcmUgY2hlY2tlZC4gSW5jcmVhc2UgdGhlIGxpbWl0IGJlbG93IGlmIHlvdSBrZWVwIGxvdHMgb2YgY29tbWVudHMgYXQKICAgICIgdGhlIHZlcnkgdG9wIG9mIGVhY2ggZmlsZSBhbmQgeW91IGhhdmUgYSBmYXN0IGNvbXB1dGVyLgogICAgbGV0IHM6bG1heCA9IDUwMAogICAgaWYgKCBzOmxtYXggPiBsaW5lKCIkIikgKQogICAgICBsZXQgczpsbWF4ID0gbGluZSgiJCIpCiAgICBlbmRpZgogICAgbGV0IGI6Zm9ydHJhbl9maXhlZF9zb3VyY2UgPSAxCiAgICBsZXQgczpsbj0xCiAgICB3aGlsZSBzOmxuIDw9IHM6bG1heAogICAgICBsZXQgczp0ZXN0ID0gc3RycGFydChnZXRsaW5lKHM6bG4pLDAsNSkKICAgICAgaWYgczp0ZXN0ICF+ICdeW0NjKl0nICYmIHM6dGVzdCAhfiAnXiAqWyEjXScgJiYgczp0ZXN0ID1+ICdbXiAwLTlcdF0nICYmIHM6dGVzdCAhfiAnXlsgMC05XSpcdCcKICAgICAgICBsZXQgYjpmb3J0cmFuX2ZpeGVkX3NvdXJjZSA9IDAKICAgICAgICBicmVhawogICAgICBlbmRpZgogICAgICBsZXQgczpsbiA9IHM6bG4gKyAxCiAgICBlbmR3aGlsZQogICAgdW5sZXQhIHM6bG1heCBzOmxuIHM6dGVzdAogIGVuZGlmCmVuZGlmCgpzeW4gY2FzZSBpZ25vcmUKCmlmIGI6Zm9ydHJhbl9maXhlZF9zb3VyY2UgPT0gMQogIHN5biBtYXRjaCBmb3J0cmFuQ29uc3RydWN0TmFtZQkiXlxzXHs2LH1cenNcYVx3Klx6ZVxzKjoiCmVsc2UKICBzeW4gbWF0Y2ggZm9ydHJhbkNvbnN0cnVjdE5hbWUJIl5ccypcenNcYVx3Klx6ZVxzKjoiCmVuZGlmCmlmIGV4aXN0cygiZm9ydHJhbl9tb3JlX3ByZWNpc2UiKQogIHN5biBtYXRjaCBmb3J0cmFuQ29uc3RydWN0TmFtZSAiXChcPGVuZFxzKmRvXHNcK1wpXEAxMTw9XGFcdyoiCiAgc3luIG1hdGNoIGZvcnRyYW5Db25zdHJ1Y3ROYW1lICJcKFw8ZW5kXHMqaWZcc1wrXClcQDExPD1cYVx3KiIKICBzeW4gbWF0Y2ggZm9ydHJhbkNvbnN0cnVjdE5hbWUgIlwoXDxlbmRccypzZWxlY3Rcc1wrXClcQDE1PD1cYVx3KiIKZW5kaWYKCnN5biBtYXRjaCBmb3J0cmFuVW5pdEhlYWRlcgkiXDxlbmRcPiIKc3luIG1hdGNoIGZvcnRyYW5UeXBlCQkiXDxjaGFyYWN0ZXJcPiIKc3luIG1hdGNoIGZvcnRyYW5UeXBlCQkiXDxjb21wbGV4XD4iCnN5biBtYXRjaCBmb3J0cmFuVHlwZQkJIlw8aW50ZWdlclw+IgpzeW4ga2V5d29yZCBmb3J0cmFuVHlwZQkJaW50cmluc2ljCnN5biBtYXRjaCBmb3J0cmFuVHlwZQkJIlw8aW1wbGljaXRcPiIKc3luIGtleXdvcmQgZm9ydHJhblN0cnVjdHVyZQlkaW1lbnNpb24Kc3luIGtleXdvcmQgZm9ydHJhblN0b3JhZ2VDbGFzcwlwYXJhbWV0ZXIgc2F2ZQpzeW4gbWF0Y2ggZm9ydHJhblVuaXRIZWFkZXIJIlw8c3Vicm91dGluZVw+IgpzeW4ga2V5d29yZCBmb3J0cmFuQ2FsbAkJY2FsbApzeW4gbWF0Y2ggZm9ydHJhblVuaXRIZWFkZXIJIlw8ZnVuY3Rpb25cPiIKc3luIG1hdGNoIGZvcnRyYW5Vbml0SGVhZGVyCSJcPHByb2dyYW1cPiIKc3luIG1hdGNoIGZvcnRyYW5Vbml0SGVhZGVyCSJcPGJsb2NrXD4iCnN5biBrZXl3b3JkIGZvcnRyYW5LZXl3b3JkCXJldHVybiBzdG9wCnN5biBrZXl3b3JkIGZvcnRyYW5Db25kaXRpb25hbAllbHNlIHRoZW4Kc3luIG1hdGNoIGZvcnRyYW5Db25kaXRpb25hbAkiXDxpZlw+IgpzeW4gbWF0Y2ggZm9ydHJhbkNvbmRpdGlvbmFsT2IJIlw8aWZccyooLiopXHMqXGRcK1xzKixccypcZFwrXHMqLFxzKlxkXCtccyokIgpzeW4gbWF0Y2ggZm9ydHJhblJlcGVhdAkJIlw8ZG9cPiIKCnN5biBrZXl3b3JkIGZvcnRyYW5Ub2RvCQljb250YWluZWQgdG9kbyBmaXhtZQoKIkNhdGNoIGVycm9ycyBjYXVzZWQgYnkgdG9vIG1hbnkgcmlnaHQgcGFyZW50aGVzZXMKc3luIHJlZ2lvbiBmb3J0cmFuUGFyZW4gdHJhbnNwYXJlbnQgc3RhcnQ9IigiIGVuZD0iKSIgY29udGFpbnM9QUxMQlVULGZvcnRyYW5QYXJlbkVycm9yLEBmb3J0cmFuQ29tbWVudEdyb3VwLGNJbmNsdWRlZCxAc3BlbGwKc3luIG1hdGNoICBmb3J0cmFuUGFyZW5FcnJvciAgICIpIgoKc3luIG1hdGNoIGZvcnRyYW5PcGVyYXRvcgkiXC5ccypuXD1lcXZccypcLiIKc3luIG1hdGNoIGZvcnRyYW5PcGVyYXRvcgkiXC5ccypcKGFuZFx8b3JcfG5vdFwpXHMqXC4iCnN5biBtYXRjaCBmb3J0cmFuT3BlcmF0b3IJIlwoK1x8LVx8L1x8XCpcKSIKc3luIG1hdGNoIGZvcnRyYW5UeXBlT2IJCSJcPGNoYXJhY3RlclxzKlwqIgoKc3luIG1hdGNoIGZvcnRyYW5Cb29sZWFuCSJcLlxzKlwodHJ1ZVx8ZmFsc2VcKVxzKlwuIgoKc3luIGtleXdvcmQgZm9ydHJhblJlYWRXcml0ZQliYWNrc3BhY2UgY2xvc2UgZW5kZmlsZSBpbnF1aXJlIG9wZW4gcHJpbnQgcmVhZCByZXdpbmQgd3JpdGUKCiJJZiB0YWJzIGFyZSBhbGxvd2VkIHRoZW4gdGhlIGxlZnQgbWFyZ2luIGNoZWNrcyBkbyBub3Qgd29yawppZiBleGlzdHMoImZvcnRyYW5faGF2ZV90YWJzIikKICBzeW4gbWF0Y2ggZm9ydHJhblRhYgkJIlx0IiAgdHJhbnNwYXJlbnQKZWxzZQogIHN5biBtYXRjaCBmb3J0cmFuVGFiCQkiXHQiCmVuZGlmCgpzeW4ga2V5d29yZCBmb3J0cmFuSU8JCWFjY2VzcyBibGFuayBkaXJlY3QgZXhpc3QgZmlsZSBmbXQgZm9ybSBmb3JtYXR0ZWQgaW9zdGF0IG5hbWUgbmFtZWQgbmV4dHJlYyBudW1iZXIgb3BlbmVkIHJlYyByZWNsIHNlcXVlbnRpYWwgc3RhdHVzIHVuZm9ybWF0dGVkIHVuaXQKCnN5biBrZXl3b3JkIGZvcnRyYW5JbnRyaW5zaWNSCQlhbG9nIGFsb2cxMCBhbWF4MCBhbWF4MSBhbWluMCBhbWluMSBhbW9kIGNhYnMgY2NvcyBjZXhwIGNsb2cgY3NpbiBjc3FydCBkYWJzIGRhY29zIGRhc2luIGRhdGFuIGRhdGFuMiBkY29zIGRjb3NoIGRkaW0gZGV4cCBkaW50IGRsb2cgZGxvZzEwIGRtYXgxIGRtaW4xIGRtb2QgZG5pbnQgZHNpZ24gZHNpbiBkc2luaCBkc3FydCBkdGFuIGR0YW5oIGZsb2F0IGlhYnMgaWRpbSBpZGludCBpZG5pbnQgaWZpeCBpc2lnbiBtYXgwIG1heDEgbWluMCBtaW4xIHNuZ2wKCiIgSW50cmluc2ljcyBwcm92aWRlZCBieSBzb21lIHZlbmRvcnMKc3luIGtleXdvcmQgZm9ydHJhbkV4dHJhSW50cmluc2ljCWFsZ2FtYSBjZGFicyBjZGNvcyBjZGV4cCBjZGxvZyBjZHNpbiBjZHNxcnQgY3FhYnMgY3Fjb3MgY3FleHAgY3Fsb2cgY3FzaW4gY3FzcXJ0IGRjbXBseCBkY29uamcgZGVyZiBkZXJmYyBkZmxvYXQgZGdhbW1hIGRpbWFnIGRsZ2FtYSBpcWludCBxYWJzIHFhY29zIHFhc2luIHFhdGFuIHFhdGFuMiBxY21wbHggcWNvbmpnIHFjb3MgcWNvc2ggcWRpbSBxZXJmIHFlcmZjIHFleHAgcWdhbW1hIHFpbWFnIHFsZ2FtYSBxbG9nIHFsb2cxMCBxbWF4MSBxbWluMSBxbW9kIHFuaW50IHFzaWduIHFzaW4gcXNpbmggcXNxcnQgcXRhbiBxdGFuaAoKc3luIGtleXdvcmQgZm9ydHJhbkludHJpbnNpYwlhYnMgYWNvcyBhaW1hZyBhaW50IGFuaW50IGFzaW4gYXRhbiBhdGFuMiBjaGFyIGNtcGx4IGNvbmpnIGNvcyBjb3NoIGV4cCBpY2hhciBpbmRleCBpbnQgbG9nIGxvZzEwIG1heCBtaW4gbmludCBzaWduIHNpbiBzaW5oIHNxcnQgdGFuIHRhbmgKc3luIG1hdGNoIGZvcnRyYW5JbnRyaW5zaWMJIlw8bGVuXHMqWygsXSJtZT1zKzMKc3luIG1hdGNoIGZvcnRyYW5JbnRyaW5zaWMJIlw8cmVhbFxzKigibWU9cys0CnN5biBtYXRjaCBmb3J0cmFuVHlwZQkJIlw8aW1wbGljaXRcc1wrcmVhbCIKc3luIG1hdGNoIGZvcnRyYW5UeXBlCQkiXlxzKnJlYWxcPiIKc3luIG1hdGNoIGZvcnRyYW5JbnRyaW5zaWMJIlw8bG9naWNhbFxzKigibWU9cys3CnN5biBtYXRjaCBmb3J0cmFuVHlwZQkJIlw8aW1wbGljaXRcc1wrbG9naWNhbCIKc3luIG1hdGNoIGZvcnRyYW5UeXBlCQkiXlxzKmxvZ2ljYWxcPiIKCiJOdW1iZXJzIG9mIHZhcmlvdXMgc29ydHMKIiBJbnRlZ2VycwpzeW4gbWF0Y2ggZm9ydHJhbk51bWJlcglkaXNwbGF5ICJcPFxkXCtcKF9cYVx3KlwpXD1cPiIKIiBmbG9hdGluZyBwb2ludCBudW1iZXIsIHdpdGhvdXQgYSBkZWNpbWFsIHBvaW50CnN5biBtYXRjaCBmb3J0cmFuRmxvYXRJbGwJZGlzcGxheQkiXDxcZFwrW2RlcV1bLStdXD1cZFwrXChfXGFcdypcKVw9XD4iCiIgZmxvYXRpbmcgcG9pbnQgbnVtYmVyLCBzdGFydGluZyB3aXRoIGEgZGVjaW1hbCBwb2ludApzeW4gbWF0Y2ggZm9ydHJhbkZsb2F0SWxsCWRpc3BsYXkJIlwuXGRcK1woW2RlcV1bLStdXD1cZFwrXClcPVwoX1xhXHcqXClcPVw+IgoiIGZsb2F0aW5nIHBvaW50IG51bWJlciwgbm8gZGlnaXRzIGFmdGVyIGRlY2ltYWwKc3luIG1hdGNoIGZvcnRyYW5GbG9hdElsbAlkaXNwbGF5CSJcPFxkXCtcLlwoW2RlcV1bLStdXD1cZFwrXClcPVwoX1xhXHcqXClcPVw+IgoiIGZsb2F0aW5nIHBvaW50IG51bWJlciwgRCBvciBRIGV4cG9uZW50cwpzeW4gbWF0Y2ggZm9ydHJhbkZsb2F0SWxsCWRpc3BsYXkJIlw8XGRcK1wuXGRcK1woW2RxXVstK11cPVxkXCtcKVw9XChfXGFcdypcKVw9XD4iCiIgZmxvYXRpbmcgcG9pbnQgbnVtYmVyCnN5biBtYXRjaCBmb3J0cmFuRmxvYXQJZGlzcGxheQkiXDxcZFwrXC5cZFwrXChlWy0rXVw9XGRcK1wpXD1cKF9cYVx3KlwpXD1cPiIKIiBOdW1iZXJzIGluIGZvcm1hdHMKc3luIG1hdGNoIGZvcnRyYW5Gb3JtYXRTcGVjCWRpc3BsYXkJIlxkKmZcZFwrXC5cZFwrIgpzeW4gbWF0Y2ggZm9ydHJhbkZvcm1hdFNwZWMJZGlzcGxheQkiXGQqZVtzbl1cPVxkXCtcLlxkXCtcKGVcZCtcPlwpXD0iCnN5biBtYXRjaCBmb3J0cmFuRm9ybWF0U3BlYwlkaXNwbGF5CSJcZCpcKGRcfHFcfGdcKVxkXCtcLlxkXCtcKGVcZCtcKVw9IgpzeW4gbWF0Y2ggZm9ydHJhbkZvcm1hdFNwZWMJZGlzcGxheQkiXGRcK3hcPiIKIiBUaGUgbmV4dCBtYXRjaCBjYW5ub3QgYmUgdXNlZCBiZWNhdXNlIGl0IHdvdWxkIHBpY2sgdXAgaWRlbnRpZmllcnMgYXMgd2VsbAoiIHN5biBtYXRjaCBmb3J0cmFuRm9ybWF0U3BlYwlkaXNwbGF5CSJcPFwoYVx8aVwpXGRcKyIKCiIgTnVtYmVycyBhcyBsYWJlbHMKc3luIG1hdGNoIGZvcnRyYW5MYWJlbE51bWJlcglkaXNwbGF5CSJeXGRcezEsNX1ccyJtZT1lLTEKc3luIG1hdGNoIGZvcnRyYW5MYWJlbE51bWJlcglkaXNwbGF5CSJeIFxkXHsxLDR9XHMibXM9cysxLG1lPWUtMQpzeW4gbWF0Y2ggZm9ydHJhbkxhYmVsTnVtYmVyCWRpc3BsYXkJIl4gIFxkXHsxLDN9XHMibXM9cysyLG1lPWUtMQpzeW4gbWF0Y2ggZm9ydHJhbkxhYmVsTnVtYmVyCWRpc3BsYXkJIl4gICBcZFxkXD1ccyJtcz1zKzMsbWU9ZS0xCnN5biBtYXRjaCBmb3J0cmFuTGFiZWxOdW1iZXIJZGlzcGxheQkiXiAgICBcZFxzIm1zPXMrNCxtZT1lLTEKCmlmIGV4aXN0cygiZm9ydHJhbl9tb3JlX3ByZWNpc2UiKQogICIgTnVtYmVycyBhcyB0YXJnZXRzCiAgc3luIG1hdGNoIGZvcnRyYW5UYXJnZXQJZGlzcGxheQkiXChcPGlmXHMqKC5cKylccypcKVxAPD1cKFxkXCtccyosXHMqXClcezJ9XGRcK1w+IgogIHN5biBtYXRjaCBmb3J0cmFuVGFyZ2V0CWRpc3BsYXkJIlwoXDxkb1xzXCtcKVxAPDExPVxkXCtcPiIKICBzeW4gbWF0Y2ggZm9ydHJhblRhcmdldAlkaXNwbGF5CSJcKFw8Z29ccyp0b1xzKihcPVwpXEA8MTE9XChcZFwrXHMqLFxzKlwpKlxkXCtcPiIKZW5kaWYKCnN5biBrZXl3b3JkIGZvcnRyYW5UeXBlUglleHRlcm5hbApzeW4ga2V5d29yZCBmb3J0cmFuSU9SCQlmb3JtYXQKc3luIG1hdGNoIGZvcnRyYW5LZXl3b3JkUgkiXDxjb250aW51ZVw+IgpzeW4gbWF0Y2ggZm9ydHJhbktleXdvcmQJIl5ccypcZFwrXHNcK2NvbnRpbnVlXD4iCnN5biBtYXRjaCBmb3J0cmFuS2V5d29yZCAgCSJcPGdvXHMqdG9cPiIKc3luIG1hdGNoIGZvcnRyYW5LZXl3b3JkRGVsICAJIlw8Z29ccyp0b1x6ZVxzXCsuKixccyooLiokIgpzeW4gbWF0Y2ggZm9ydHJhbktleXdvcmRPYiAgCSJcPGdvXHMqdG9cemVccyooXGRcKy4qJCIKc3luIHJlZ2lvbiBmb3J0cmFuU3RyaW5nUglzdGFydD0rJysgZW5kPSsnKyBjb250YWlucz1mb3J0cmFuQ29udGludWVNYXJrLGZvcnRyYW5MZWZ0TWFyZ2luLGZvcnRyYW5TZXJpYWxOdW1iZXIKc3luIGtleXdvcmQgZm9ydHJhbkludHJpbnNpY1IJZGltIGxnZSBsZ3QgbGxlIGxsdCBtb2QKc3luIGtleXdvcmQgZm9ydHJhbktleXdvcmREZWwJYXNzaWduIHBhdXNlCgpzeW4gbWF0Y2ggZm9ydHJhblR5cGUgICAgICAgICAgICJcPHR5cGVcPiIKc3luIGtleXdvcmQgZm9ydHJhblR5cGUJICAgICAgICBub25lCgpzeW4ga2V5d29yZCBmb3J0cmFuU3RydWN0dXJlCXByaXZhdGUgcHVibGljIGludGVudCBvcHRpb25hbApzeW4ga2V5d29yZCBmb3J0cmFuU3RydWN0dXJlCXBvaW50ZXIgdGFyZ2V0IGFsbG9jYXRhYmxlCnN5biBrZXl3b3JkIGZvcnRyYW5TdG9yYWdlQ2xhc3MJaW4gb3V0CnN5biBtYXRjaCBmb3J0cmFuU3RvcmFnZUNsYXNzCSJcPGtpbmRccyo9Im1lPXMrNApzeW4gbWF0Y2ggZm9ydHJhblN0b3JhZ2VDbGFzcwkiXDxsZW5ccyo9Im1lPXMrMwoKc3luIG1hdGNoIGZvcnRyYW5Vbml0SGVhZGVyCSJcPG1vZHVsZVw+IgpzeW4gbWF0Y2ggZm9ydHJhblVuaXRIZWFkZXIJIlw8c3VibW9kdWxlXD4iCnN5biBrZXl3b3JkIGZvcnRyYW5Vbml0SGVhZGVyCXVzZSBvbmx5IGNvbnRhaW5zCnN5biBrZXl3b3JkIGZvcnRyYW5Vbml0SGVhZGVyCXJlc3VsdCBvcGVyYXRvciBhc3NpZ25tZW50CnN5biBtYXRjaCBmb3J0cmFuVW5pdEhlYWRlcgkiXDxpbnRlcmZhY2VcPiIKc3luIG1hdGNoIGZvcnRyYW5Vbml0SGVhZGVyCSJcPHJlY3Vyc2l2ZVw+IgpzeW4ga2V5d29yZCBmb3J0cmFuS2V5d29yZAlhbGxvY2F0ZSBkZWFsbG9jYXRlIG51bGxpZnkgY3ljbGUgZXhpdApzeW4gbWF0Y2ggZm9ydHJhbkNvbmRpdGlvbmFsCSJcPHNlbGVjdFw+IgpzeW4ga2V5d29yZCBmb3J0cmFuQ29uZGl0aW9uYWwJY2FzZSBkZWZhdWx0IHdoZXJlIGVsc2V3aGVyZQoKc3luIG1hdGNoIGZvcnRyYW5PcGVyYXRvcgkiXChcKD5cfDxcKT1cPVx8PT1cfC89XHw9XCkiCnN5biBtYXRjaCBmb3J0cmFuT3BlcmF0b3IJIj0+IgoKc3luIHJlZ2lvbiBmb3J0cmFuU3RyaW5nCXN0YXJ0PSsiKyBlbmQ9KyIrCWNvbnRhaW5zPWZvcnRyYW5MZWZ0TWFyZ2luLGZvcnRyYW5Db250aW51ZU1hcmssZm9ydHJhblNlcmlhbE51bWJlcgpzeW4ga2V5d29yZCBmb3J0cmFuSU8JCXBhZCBwb3NpdGlvbiBhY3Rpb24gZGVsaW0gcmVhZHdyaXRlCnN5biBrZXl3b3JkIGZvcnRyYW5JTwkJZW9yIGFkdmFuY2Ugbm1sCgpzeW4ga2V5d29yZCBmb3J0cmFuSW50cmluc2ljCWFkanVzdGwgYWRqdXN0ciBhbGwgYWxsb2NhdGVkIGFueSBhc3NvY2lhdGVkIGJpdF9zaXplIGJ0ZXN0IGNlaWxpbmcgY291bnQgY3NoaWZ0IGRhdGVfYW5kX3RpbWUgZGlnaXRzIGRvdF9wcm9kdWN0IGVvc2hpZnQgZXBzaWxvbiBleHBvbmVudCBmbG9vciBmcmFjdGlvbiBodWdlIGlhbmQgaWJjbHIgaWJpdHMgaWJzZXQgaWVvciBpb3IgaXNoZnQgaXNoZnRjIGxib3VuZCBsZW5fdHJpbSBtYXRtdWwgbWF4ZXhwb25lbnQgbWF4bG9jIG1heHZhbCBtZXJnZSBtaW5leHBvbmVudCBtaW5sb2MgbWludmFsIG1vZHVsbyBtdmJpdHMgbmVhcmVzdCBwYWNrIHByZWNpc2lvbiBwcmVzZW50IHByb2R1Y3QgcmFkaXggcmFuZG9tX251bWJlciByYW5kb21fc2VlZCByYW5nZSByZXBlYXQgcmVzaGFwZSBycnNwYWNpbmcKc3luIGtleXdvcmQgZm9ydHJhbkludHJpbnNpYwlzY2FsZSBzY2FuIHNlbGVjdGVkX2ludF9raW5kIHNlbGVjdGVkX3JlYWxfa2luZCBzZXRfZXhwb25lbnQgc2hhcGUgc2l6ZSBzcGFjaW5nIHNwcmVhZCBzdW0gc3lzdGVtX2Nsb2NrIHRpbnkgdHJhbnNwb3NlIHRyaW0gdWJvdW5kIHVucGFjayB2ZXJpZnkKc3luIG1hdGNoIGZvcnRyYW5JbnRyaW5zaWMJCSJcPG5vdFw+XChccypcLlwpXEAhIm1lPXMrMwpzeW4gbWF0Y2ggZm9ydHJhbkludHJpbnNpYwkiXDxraW5kXD5ccypbKCxdIm1lPXMrNAoKc3luIG1hdGNoICBmb3J0cmFuVW5pdEhlYWRlcgkiXDxlbmRccypmdW5jdGlvbiIKc3luIG1hdGNoICBmb3J0cmFuVW5pdEhlYWRlcgkiXDxlbmRccyppbnRlcmZhY2UiCnN5biBtYXRjaCAgZm9ydHJhblVuaXRIZWFkZXIJIlw8ZW5kXHMqbW9kdWxlIgpzeW4gbWF0Y2ggIGZvcnRyYW5Vbml0SGVhZGVyCSJcPGVuZFxzKnN1Ym1vZHVsZSIKc3luIG1hdGNoICBmb3J0cmFuVW5pdEhlYWRlcgkiXDxlbmRccypwcm9ncmFtIgpzeW4gbWF0Y2ggIGZvcnRyYW5Vbml0SGVhZGVyCSJcPGVuZFxzKnN1YnJvdXRpbmUiCnN5biBtYXRjaCAgZm9ydHJhblVuaXRIZWFkZXIJIlw8ZW5kXHMqYmxvY2siCnN5biBtYXRjaCAgZm9ydHJhblJlcGVhdAkiXDxlbmRccypkbyIKc3luIG1hdGNoICBmb3J0cmFuQ29uZGl0aW9uYWwJIlw8ZW5kXHMqd2hlcmUiCnN5biBtYXRjaCAgZm9ydHJhbkNvbmRpdGlvbmFsCSJcPHNlbGVjdFxzKmNhc2UiCnN5biBtYXRjaCAgZm9ydHJhbkNvbmRpdGlvbmFsCSJcPGVuZFxzKnNlbGVjdCIKc3luIG1hdGNoICBmb3J0cmFuVHlwZQkiXDxlbmRccyp0eXBlIgpzeW4gbWF0Y2ggIGZvcnRyYW5UeXBlCSJcPGluXHMqb3V0IgoKc3luIGtleXdvcmQgZm9ydHJhblR5cGUJICAgICAgICBwcm9jZWR1cmUKc3luIG1hdGNoICBmb3J0cmFuVHlwZQkgICAgICAgICJcPG1vZHVsZVx6ZVxzXCtwcm9jZWR1cmVcPiIKc3luIGtleXdvcmQgZm9ydHJhbklPUgkJbmFtZWxpc3QKc3luIGtleXdvcmQgZm9ydHJhbkNvbmRpdGlvbmFsUgl3aGlsZQpzeW4ga2V5d29yZCBmb3J0cmFuSW50cmluc2ljUglhY2hhciBpYWNoYXIgdHJhbnNmZXIKCnN5biBrZXl3b3JkIGZvcnRyYW5JbmNsdWRlCQlpbmNsdWRlCnN5biBrZXl3b3JkIGZvcnRyYW5TdG9yYWdlQ2xhc3NSCXNlcXVlbmNlCgpzeW4gbWF0Y2ggICBmb3J0cmFuQ29uZGl0aW9uYWwJIlw8ZW5kXHMqaWYiCnN5biBtYXRjaCAgIGZvcnRyYW5JTwkJY29udGFpbnM9Zm9ydHJhbk9wZXJhdG9yICJcPGVcKG5kXHxyclwpXHMqPVxzKlxkXCsiCnN5biBtYXRjaCAgIGZvcnRyYW5Db25kaXRpb25hbAkiXDxlbHNlXHMqaWYiCgpzeW4ga2V5d29yZCBmb3J0cmFuVW5pdEhlYWRlck9iCWVudHJ5CnN5biBtYXRjaCBmb3J0cmFuVHlwZVIJCWRpc3BsYXkgImRvdWJsZVxzXCtwcmVjaXNpb24iCnN5biBtYXRjaCBmb3J0cmFuVHlwZVIJCWRpc3BsYXkgImRvdWJsZVxzXCtjb21wbGV4IgpzeW4gbWF0Y2ggZm9ydHJhblVuaXRIZWFkZXJSCWRpc3BsYXkgImJsb2NrXHNcK2RhdGEiCnN5biBrZXl3b3JkIGZvcnRyYW5TdG9yYWdlQ2xhc3NSCWNvbW1vbiBlcXVpdmFsZW5jZSBkYXRhCnN5biBrZXl3b3JkIGZvcnRyYW5JbnRyaW5zaWNSCWRibGUgZHByb2QKc3luIG1hdGNoICAgZm9ydHJhbk9wZXJhdG9yUgkiXC5ccypbZ2xdW2V0XVxzKlwuIgpzeW4gbWF0Y2ggICBmb3J0cmFuT3BlcmF0b3JSCSJcLlxzKlwoZXFcfG5lXClccypcLiIKCnN5biBrZXl3b3JkIGZvcnRyYW5SZXBlYXQJCWZvcmFsbApzeW4gbWF0Y2ggZm9ydHJhblJlcGVhdAkJIlw8ZW5kXHMqZm9yYWxsIgpzeW4ga2V5d29yZCBmb3J0cmFuSW50cmluc2ljCW51bGwgY3B1X3RpbWUKc3luIG1hdGNoIGZvcnRyYW5UeXBlCQkJIlw8ZWxlbWVudGFsXD4iCnN5biBtYXRjaCBmb3J0cmFuVHlwZQkJCSJcPHB1cmVcPiIKc3luIG1hdGNoIGZvcnRyYW5UeXBlCQkJIlw8aW1wdXJlXD4iCmlmIGV4aXN0cygiZm9ydHJhbl9tb3JlX3ByZWNpc2UiKQogIHN5biBtYXRjaCBmb3J0cmFuQ29uc3RydWN0TmFtZSAiXChcPGVuZFxzKmZvcmFsbFxzXCtcKVxAPDE1PVxhXHcqXD4iCmVuZGlmCgppZiBiOmZvcnRyYW5fZGlhbGVjdCA9PSAiZjA4IgogICIgRjIwMDMKICBzeW4ga2V5d29yZCBmb3J0cmFuSW50cmluc2ljICAgICAgICBjb21tYW5kX2FyZ3VtZW50X2NvdW50IGdldF9jb21tYW5kIGdldF9jb21tYW5kX2FyZ3VtZW50IGdldF9lbnZpcm9ubWVudF92YXJpYWJsZSBpc19pb3N0YXRfZW5kIGlzX2lvc3RhdF9lb3IgbW92ZV9hbGxvYyBuZXdfbGluZSBzZWxlY3RlZF9jaGFyX2tpbmQgc2FtZV90eXBlX2FzIGV4dGVuZHNfdHlwZV9vZgogICIgSVNPX0NfYmluZGluZwogIHN5biBrZXl3b3JkIGZvcnRyYW5Db25zdGFudCAgICAgICAgIGNfbnVsbF9jaGFyIGNfYWxlcnQgY19iYWNrc3BhY2UgY19mb3JtX2ZlZWQgY19uZXdfbGluZSBjX2NhcnJpYWdlX3JldHVybiBjX2hvcml6b250YWxfdGFiIGNfdmVydGljYWxfdGFiCiAgc3luIGtleXdvcmQgZm9ydHJhbkNvbnN0YW50ICAgICAgICAgY19pbnQgY19zaG9ydCBjX2xvbmcgY19sb25nX2xvbmcgY19zaWduZWRfY2hhciBjX3NpemVfdCBjX2ludDhfdCBjX2ludDE2X3QgY19pbnQzMl90IGNfaW50NjRfdCBjX2ludF9sZWFzdDhfdCBjX2ludF9sZWFzdDE2X3QgY19pbnRfbGVhc3QzMl90IGNfaW50X2xlYXN0NjRfdCBjX2ludF9mYXN0OF90IGNfaW50X2Zhc3QxNl90IGNfaW50X2Zhc3QzMl90IGNfaW50X2Zhc3Q2NF90IGNfaW50bWF4X3QgQ19pbnRwdHJfdCBjX2Zsb2F0IGNfZG91YmxlIGNfbG9uZ19kb3VibGUgY19mbG9hdF9jb21wbGV4IGNfZG91YmxlX2NvbXBsZXggY19sb25nX2RvdWJsZV9jb21wbGV4IGNfYm9vbCBjX2NoYXIgY19udWxsX3B0ciBjX251bGxfZnVucHRyCiAgc3luIGtleXdvcmQgZm9ydHJhbkludHJpbnNpYyAgICAgICAgaXNvX2NfYmluZGluZyBjX2xvYyBjX2Z1bmxvYyBjX2Fzc29jaWF0ZWQgIGNfZl9wb2ludGVyIGNfZl9wcm9jcG9pbnRlcgogIHN5biBrZXl3b3JkIGZvcnRyYW5UeXBlICAgICAgICAgICAgIGNfcHRyIGNfZnVucHRyCiAgIiBJU09fRm9ydHJhbl9lbnYKICBzeW4ga2V5d29yZCBmb3J0cmFuQ29uc3RhbnQgICAgICAgICBpc29fZm9ydHJhbl9lbnYgY2hhcmFjdGVyX3N0b3JhZ2Vfc2l6ZSBlcnJvcl91bml0IGZpbGVfc3RvcmFnZV9zaXplIGlucHV0X3VuaXQgaW9zdGF0X2VuZCBpb3N0YXRfZW9yIG51bWVyaWNfc3RvcmFnZV9zaXplIG91dHB1dF91bml0CiAgIiBJRUVFX2FyaXRobWV0aWMKICBzeW4ga2V5d29yZCBmb3J0cmFuSW50cmluc2ljICAgICAgICBpZWVlX2FyaXRobWV0aWMgaWVlZV9zdXBwb3J0X3VuZGVyZmxvd19jb250cm9sIGllZWVfZ2V0X3VuZGVyZmxvd19tb2RlIGllZWVfc2V0X3VuZGVyZmxvd19tb2RlCgogIHN5biBrZXl3b3JkIGZvcnRyYW5SZWFkV3JpdGUJZmx1c2ggd2FpdAogIHN5biBrZXl3b3JkIGZvcnRyYW5JTyAJICAgICAgZGVjaW1hbCByb3VuZCBpb21zZwogIHN5biBrZXl3b3JkIGZvcnRyYW5UeXBlICAgICAgICAgICAgIGFzeW5jaHJvbm91cyBub3Bhc3Mgbm9uX292ZXJyaWRhYmxlIHBhc3MgcHJvdGVjdGVkIHZvbGF0aWxlIGV4dGVuZHMgaW1wb3J0CiAgc3luIGtleXdvcmQgZm9ydHJhblR5cGUgICAgICAgICAgICAgbm9uX2ludHJpbnNpYyB2YWx1ZSBiaW5kIGRlZmVycmVkIGdlbmVyaWMgZmluYWwgZW51bWVyYXRvcgogIHN5biBtYXRjaCBmb3J0cmFuVHlwZSAgICAgICAgICAgICAgICJcPGFic3RyYWN0XD4iCiAgc3luIG1hdGNoIGZvcnRyYW5UeXBlICAgICAgICAgICAgICAgIlw8Y2xhc3NcPiIKICBzeW4gbWF0Y2ggZm9ydHJhblR5cGUgICAgICAgICAgICAgICAiXDxhc3NvY2lhdGVcPiIKICBzeW4gbWF0Y2ggZm9ydHJhblR5cGUgICAgICAgICAgICAgICAiXDxlbmRccyphc3NvY2lhdGUiCiAgc3luIG1hdGNoIGZvcnRyYW5UeXBlICAgICAgICAgICAgICAgIlw8ZW51bVxzKixccypiaW5kXHMqKFxzKmNccyopIgogIHN5biBtYXRjaCBmb3J0cmFuVHlwZSAgICAgICAgICAgICAgICJcPGVuZFxzKmVudW0iCiAgc3luIG1hdGNoIGZvcnRyYW5Db25kaXRpb25hbAkiXDxzZWxlY3Rccyp0eXBlIgogIHN5biBtYXRjaCBmb3J0cmFuQ29uZGl0aW9uYWwgICAgICAgICJcPHR5cGVccyppc1w+IgogIHN5biBtYXRjaCBmb3J0cmFuQ29uZGl0aW9uYWwgICAgICAgICJcPGNsYXNzXHMqaXNcPiIKICBzeW4gbWF0Y2ggZm9ydHJhblVuaXRIZWFkZXIgICAgICAgICAiXDxhYnN0cmFjdFxzKmludGVyZmFjZVw+IgogIHN5biBtYXRjaCBmb3J0cmFuT3BlcmF0b3IgICAgICAgICAgICJcKFtcfF1cKSIKCiAgIiBGMjAwOAogIHN5biBrZXl3b3JkIGZvcnRyYW5JbnRyaW5zaWMgICAgICAgIGFjb3NoIGFzaW5oIGF0YW5oIGJlc3NlbF9qMCBiZXNzZWxfajEgYmVzc2VsX2puIGJlc3NlbF95MCBiZXNzZWxfeTEgYmVzc2VsX3luIGVyZiBlcmZjIGVyZmNfc2NhbGVkIGdhbW1hIGxvZ19nYW1tYSBoeXBvdCBub3JtMgogIHN5biBrZXl3b3JkIGZvcnRyYW5JbnRyaW5zaWMgICAgICAgIGF0b21pY19kZWZpbmUgYXRvbWljX3JlZiBleGVjdXRlX2NvbW1hbmRfbGluZSBsZWFkeiB0cmFpbHogc3RvcmFnZV9zaXplIG1lcmdlX2JpdHMKICBzeW4ga2V5d29yZCBmb3J0cmFuSW50cmluc2ljICAgICAgICBiZ2UgYmd0IGJsZSBibHQgZHNoaWZ0bCBkc2hpZnRyIGZpbmRsb2MgaWFsbCBpYW55IGlwYXJpdHkgaW1hZ2VfaW5kZXggbGNvYm91bmQgdWNvYm91bmQgbWFza2wgbWFza3IgbnVtX2ltYWdlcyBwYXJpdHkgcG9wY250IHBvcHBhciBzaGlmdGEgc2hpZnRsIHNoaWZ0ciB0aGlzX2ltYWdlCiAgc3luIGtleXdvcmQgZm9ydHJhbklPICAgICAgICAgICAgICAgbmV3dW5pdAogIHN5biBrZXl3b3JkIGZvcnRyYW5UeXBlICAgICAgICAgICAgIGNvbnRpZ3VvdXMKICBzeW4ga2V5d29yZCBmb3J0cmFuUmVwZWF0ICAgICAgICAgICBjb25jdXJyZW50CgoiIENVREEgZm9ydHJhbgogIHN5biBtYXRjaCBmb3J0cmFuVHlwZUNVREEgICAgICAgICAgICJcPGF0dHJpYnV0ZXNcPiIKICBzeW4ga2V5d29yZCBmb3J0cmFuVHlwZUNVREEgICAgICAgICBob3N0IGdsb2JhbCBkZXZpY2UgdmFsdWUKICBzeW4ga2V5d29yZCBmb3J0cmFuVHlwZUNVREEgICAgICAgICBzaGFyZWQgY29uc3RhbnQgcGlubmVkIHRleHR1cmUKICBzeW4ga2V5d29yZCBmb3J0cmFuVHlwZUNVREEgICAgICAgICBkaW0xIGRpbTIgZGltMyBkaW00CiAgc3luIGtleXdvcmQgZm9ydHJhblR5cGVDVURBICAgICAgICAgY3VkYWRldmljZXByb3AgY3VkYV9jb3VudF9raW5kIGN1ZGFfc3RyZWFtX2tpbmQKICBzeW4ga2V5d29yZCBmb3J0cmFuVHlwZUNVREEgICAgICAgICBjdWRhRXZlbnQgY3VkYUZ1bmNBdHRyaWJ1dGVzIGN1ZGFBcnJheVB0cgogIHN5biBrZXl3b3JkIGZvcnRyYW5UeXBlQ1VEQSAgICAgICAgIGN1ZGFTeW1ib2wgY3VkYUNoYW5uZWxGb3JtYXREZXNjIGN1ZGFQaXRjaGVkUHRyCiAgc3luIGtleXdvcmQgZm9ydHJhblR5cGVDVURBICAgICAgICAgY3VkYUV4dGVudCBjdWRhTWVtY3B5M0RQYXJtcwogIHN5biBrZXl3b3JkIGZvcnRyYW5UeXBlQ1VEQSAgICAgICAgIGN1ZGFGdW5jQ2FjaGVQcmVmZXJOb25lIGN1ZGFGdW5jQ2FjaGVQcmVmZXJTaGFyZWQKICBzeW4ga2V5d29yZCBmb3J0cmFuVHlwZUNVREEgICAgICAgICBjdWRhRnVuY0NhY2hlUHJlZmVyTDEgY3VkYUxpbWl0U3RhY2tTaXplCiAgc3luIGtleXdvcmQgZm9ydHJhblR5cGVDVURBICAgICAgICAgY3VkYUxpbWl0UHJpbnRmU2l6ZSBjdWRhTGltaXRNYWxsb2NIZWFwU2l6ZQogIHN5biBrZXl3b3JkIGZvcnRyYW5UeXBlQ1VEQSAgICAgICAgIGN1ZGFTaGFyZWRNZW1CYW5rU2l6ZURlZmF1bHQgY3VkYVNoYXJlZE1lbUJhbmtTaXplRm91ckJ5dGUgY3VkYVNoYXJlZE1lbUJhbmtTaXplRWlnaHRCeXRlCiAgc3luIGtleXdvcmQgZm9ydHJhblR5cGVDVURBICAgICAgICAgY3VkYUV2ZW50RGVmYXVsdCBjdWRhRXZlbnRCbG9ja2luZ1N5bmMgY3VkYUV2ZW50RGlzYWJsZVRpbWluZwogIHN5biBrZXl3b3JkIGZvcnRyYW5UeXBlQ1VEQSAgICAgICAgIGN1ZGFNZW1jcHlIb3N0VG9EZXZpY2UgY3VkYU1lbWNweURldmljZVRvSG9zdAogIHN5biBrZXl3b3JkIGZvcnRyYW5UeXBlQ1VEQSAgICAgICAgIGN1ZGFNZW1jcHlEZXZpY2VUb0RldmljZQogIHN5biBrZXl3b3JkIGZvcnRyYW5UeXBlQ1VEQSAgICAgICAgIGN1ZGFFcnJvck5vdFJlYWR5IGN1ZGFTdWNjZXNzIGN1ZGFFcnJvckludmFsaWRWYWx1ZQogIHN5biBrZXl3b3JkIGZvcnRyYW5UeXBlQ1VEQSAgICAgICAgIGNfZGV2cHRyCgogIHN5biBtYXRjaCBmb3J0cmFuU3RyaW5nQ1VEQSAgICAgICAgICJibG9ja2lkeCVbeHl6XSIKICBzeW4gbWF0Y2ggZm9ydHJhblN0cmluZ0NVREEgICAgICAgICAiYmxvY2tkaW0lW3h5el0iCiAgc3luIG1hdGNoIGZvcnRyYW5TdHJpbmdDVURBICAgICAgICAgImdyaWRkaW0lW3h5el0iCiAgc3luIG1hdGNoIGZvcnRyYW5TdHJpbmdDVURBICAgICAgICAgInRocmVhZGlkeCVbeHl6XSIKCiAgc3luIGtleXdvcmQgZm9ydHJhbkludHJpbnNpY0NVREEgICAgd2FycHNpemUgc3luY3RocmVhZHMgc3luY3RocmVhZHNfYW5kIHN5bmN0aHJlYWRzX2NvdW50IHN5bmN0aHJlYWRzX29yIHRocmVhZGZlbmNlIHRocmVhZGZlbmNlX2Jsb2NrIHRocmVhZGZlbmNlX3N5c3RlbSBncHVfdGltZSBhbGx0aHJlYWRzIGFueXRocmVhZCBiYWxsb3QKICBzeW4ga2V5d29yZCBmb3J0cmFuSW50cmluc2ljQ1VEQSAgICBhdG9taWNhZGQgYXRvbWljc3ViIGF0b21pY21heCBhdG9taWNtaW4gYXRvbWljYW5kIGF0b21pY29yIGF0b21pY3hvciBhdG9taWNleGNoIGF0b21pY2luYyBhdG9taWNkZWMgYXRvbWljY2FzIHNpemVvZiBfX3NoZmwgX19zaGZsX3VwIF9fc2hmbF9kb3duIF9fc2hmbF94b3IKICBzeW4ga2V5d29yZCBmb3J0cmFuSW50cmluc2ljQ1VEQSAgICBjdWRhQ2hvb3NlRGV2aWNlIGN1ZGFEZXZpY2VHZXRDYWNoZUNvbmZpZyBjdWRhRGV2aWNlR2V0TGltaXQgY3VkYURldmljZUdldFNoYXJlZE1lbUNvbmZpZyBjdWRhRGV2aWNlUmVzZXQgY3VkYURldmljZVNldENhY2hlQ29uZmlnIGN1ZGFEZXZpY2VTZXRMaW1pdCBjdWRhRGV2aWNlU2V0U2hhcmVkTWVtQ29uZmlnIGN1ZGFEZXZpY2VTeW5jaHJvbml6ZSBjdWRhR2V0RGV2aWNlIGN1ZGFHZXREZXZpY2VDb3VudCBjdWRhR2V0RGV2aWNlUHJvcGVydGllcyBjdWRhU2V0RGV2aWNlIGN1ZGFTZXREZXZpY2VGbGFncyBjdWRhU2V0VmFsaWREZXZpY2VzCiAgc3luIGtleXdvcmQgZm9ydHJhbkludHJpbnNpY0NVREEgICAgY3VkYVRocmVhZEV4aXQgY3VkYVRocmVhZFN5bmNocm9uaXplIGN1ZGFHZXRMYXN0RXJyb3IgY3VkYUdldEVycm9yU3RyaW5nIGN1ZGFQZWVrQXRMYXN0RXJyb3IgY3VkYVN0cmVhbUNyZWF0ZSBjdWRhU3RyZWFtRGVzdHJveSBjdWRhU3RyZWFtUXVlcnkgY3VkYVN0cmVhbVN5bmNocm9uaXplIGN1ZGFTdHJlYW1XYWl0RXZlbnQgY3VkYUV2ZW50Q3JlYXRlIGN1ZGFFdmVudENyZWF0ZVdpdGhGbGFncyBjdWRhRXZlbnREZXN0cm95IGN1ZGFFdmVudEVsYXBzZWRUaW1lIGN1ZGFFdmVudFF1ZXJ5IGN1ZGFFdmVudFJlY29yZCBjdWRhRXZlbnRTeW5jaHJvbml6ZQogIHN5biBrZXl3b3JkIGZvcnRyYW5JbnRyaW5zaWNDVURBICAgIGN1ZGFGdW5jR2V0QXR0cmlidXRlcyBjdWRhRnVuY1NldENhY2hlQ29uZmlnIGN1ZGFGdW5jU2V0U2hhcmVkTWVtQ29uZmlnIGN1ZGFTZXREb3VibGVGb3JEZXZpY2UgY3VkYVNldERvdWJsZUZvckhvc3QgY3VkYUZyZWUgY3VkYUZyZWVBcnJheSBjdWRhRnJlZUhvc3QgY3VkYUdldFN5bWJvbEFkZHJlc3MgY3VkYUdldFN5bWJvbFNpemUKICBzeW4ga2V5d29yZCBmb3J0cmFuSW50cmluc2ljQ1VEQSAgICBjdWRhSG9zdEFsbG9jIGN1ZGFIb3N0R2V0RGV2aWNlUG9pbnRlciBjdWRhSG9zdEdldEZsYWdzIGN1ZGFIb3N0UmVnaXN0ZXIgY3VkYUhvc3RVbnJlZ2lzdGVyIGN1ZGFNYWxsb2MgY3VkYU1hbGxvY0FycmF5IGN1ZGFNYWxsb2NIb3N0IGN1ZGFNYWxsb2NQaXRjaCBjdWRhTWFsbG9jM0QgY3VkYU1hbGxvYzNEQXJyYXkKICBzeW4ga2V5d29yZCBmb3J0cmFuSW50cmluc2ljQ1VEQSAgICBjdWRhTWVtY3B5IGN1ZGFNZW1jcHlBcnJheXRvQXJyYXkgY3VkYU1lbWNweUFzeW5jIGN1ZGFNZW1jcHlGcm9tQXJyYXkgY3VkYU1lbWNweUZyb21TeW1ib2wgY3VkYU1lbWNweUZyb21TeW1ib2xBc3luYyBjdWRhTWVtY3B5UGVlciBjdWRhTWVtY3B5UGVlckFzeW5jIGN1ZGFNZW1jcHlUb0FycmF5IGN1ZGFNZW1jcHlUb1N5bWJvbCBjdWRhTWVtY3B5VG9TeW1ib2xBc3luYyBjdWRhTWVtY3B5MkQgY3VkYU1lbWNweTJEQXJyYXlUb0FycmF5IGN1ZGFNZW1jcHkyREFzeW5jIGN1ZGFNZW1jcHkyREZyb21BcnJheSBjdWRhTWVtY3B5MkRUb0FycmF5IGN1ZGFNZW1jcHkzRCBjdWRhTWVtY3B5M0RBc3luYwogIHN5biBrZXl3b3JkIGZvcnRyYW5JbnRyaW5zaWNDVURBICAgIGN1ZGFNZW1HZXRJbmZvIGN1ZGFNZW1zZXQgY3VkYU1lbXNldDJEIGN1ZGFNZW1zZXQzRCBjdWRhRGV2aWNlQ2FuQWNjZXNzUGVlciBjdWRhRGV2aWNlRGlzYWJsZVBlZXJBY2Nlc3MgY3VkYURldmljZUVuYWJsZVBlZXJBY2Nlc3MgY3VkYVBvaW50ZXJHZXRBdHRyaWJ1dGVzIGN1ZGFEcml2ZXJHZXRWZXJzaW9uIGN1ZGFSdW50aW1lR2V0VmVyc2lvbgoKICBzeW4gcmVnaW9uIG5vbmUgbWF0Y2hncm91cD1mb3J0cmFuVHlwZSBzdGFydD0iPDw8IiBlbmQ9Ij4+PiIgY29udGFpbnM9QUxMQlVULG5vbmUKZW5kaWYKCnN5biBjbHVzdGVyIGZvcnRyYW5Db21tZW50R3JvdXAgY29udGFpbnM9Zm9ydHJhblRvZG8KCmlmIChiOmZvcnRyYW5fZml4ZWRfc291cmNlID09IDEpCiAgaWYgIWV4aXN0cygiZm9ydHJhbl9oYXZlX3RhYnMiKQogICAgIkZsYWcgaXRlbXMgYmV5b25kIGNvbHVtbiA3MgogICAgc3luIG1hdGNoIGZvcnRyYW5TZXJpYWxOdW1iZXIJZXhjbHVkZW5sICJeLlx7NzMsfSQibGM9NzIKICAgICJGbGFnIGxlZnQgbWFyZ2luIGVycm9ycwogICAgc3luIG1hdGNoIGZvcnRyYW5MYWJlbEVycm9yCSJeLlx7LSw0fVteMC05IF0iIGNvbnRhaW5zPWZvcnRyYW5UYWIKICAgIHN5biBtYXRjaCBmb3J0cmFuTGFiZWxFcnJvcgkiXi5cezR9XGRcUyIKICBlbmRpZgogIHN5biBtYXRjaCBmb3J0cmFuQ29tbWVudAkJZXhjbHVkZW5sICJeWyFjKl0uKiQiIGNvbnRhaW5zPUBmb3J0cmFuQ29tbWVudEdyb3VwLEBzcGVsbAogIHN5biBtYXRjaCBmb3J0cmFuTGVmdE1hcmdpbgkJdHJhbnNwYXJlbnQgIl4gXHs1fSIKICBzeW4gbWF0Y2ggZm9ydHJhbkNvbnRpbnVlTWFyawkJZGlzcGxheSAiXi5cezV9XFMibGM9NQplbHNlCiAgc3luIG1hdGNoIGZvcnRyYW5Db250aW51ZU1hcmsJCWRpc3BsYXkgIiYiCmVuZGlmCgpzeW4gbWF0Y2ggZm9ydHJhbkNvbW1lbnQJZXhjbHVkZW5sICIhLiokIiBjb250YWlucz1AZm9ydHJhbkNvbW1lbnRHcm91cCxAc3BlbGwKc3luIG1hdGNoIGZvcnRyYW5PcGVuTVAJCWV4Y2x1ZGVubCAJCSJeXHMqIVwkXChPTVBcKVw9Jlw9XHMuKiQiCgoiY3BwIGlzIG9mdGVuIHVzZWQgd2l0aCBGb3J0cmFuCnN5biBtYXRjaAljUHJlUHJvYwkJIl5ccyojXHMqXChkZWZpbmVcfGlmZGVmXClcPi4qIgpzeW4gbWF0Y2gJY1ByZVByb2MJCSJeXHMqI1xzKlwoZWxpZlx8aWZcKVw+LioiCnN5biBtYXRjaAljUHJlUHJvYwkJIl5ccyojXHMqXChpZm5kZWZcfHVuZGVmXClcPi4qIgpzeW4gbWF0Y2gJY1ByZUNvbmRpdAkJIl5ccyojXHMqXChlbHNlXHxlbmRpZlwpXD4uKiIKc3luIHJlZ2lvbgljSW5jbHVkZWQJY29udGFpbmVkIHN0YXJ0PSsiW14oIl0rIHNraXA9K1xcXFxcfFxcIisgZW5kPSsiKyBjb250YWlucz1mb3J0cmFuTGVmdE1hcmdpbixmb3J0cmFuQ29udGludWVNYXJrLGZvcnRyYW5TZXJpYWxOdW1iZXIKInN5biByZWdpb24JY0luY2x1ZGVkCSAgICAgICAgY29udGFpbmVkIHN0YXJ0PSsiW14oIl0rIHNraXA9K1xcXFxcfFxcIisgZW5kPSsiKwpzeW4gbWF0Y2gJY0luY2x1ZGVkCQljb250YWluZWQgIjxbXj5dKj4iCnN5biBtYXRjaAljSW5jbHVkZQkJIl5ccyojXHMqaW5jbHVkZVw+XHMqWyI8XSIgY29udGFpbnM9Y0luY2x1ZGVkCgoiU3luY2hyb25pc2luZyBsaW1pdHMgYXNzdW1lIHRoYXQgY29tbWVudCBhbmQgY29udGludWF0aW9uIGxpbmVzIGFyZSBub3QgbWl4ZWQKaWYgZXhpc3RzKCJmb3J0cmFuX2ZvbGQiKSB8fCBleGlzdHMoImZvcnRyYW5fbW9yZV9wcmVjaXNlIikKICBzeW4gc3luYyBmcm9tc3RhcnQKZWxzZWlmIChiOmZvcnRyYW5fZml4ZWRfc291cmNlID09IDApCiAgc3luIHN5bmMgbGluZWNvbnQgIiYiIG1pbmxpbmVzPTMwCmVsc2UKICBzeW4gc3luYyBtaW5saW5lcz0zMAplbmRpZgoKaWYgZXhpc3RzKCJmb3J0cmFuX2ZvbGQiKQoKICBpZiAoYjpmb3J0cmFuX2ZpeGVkX3NvdXJjZSA9PSAxKQogICAgc3luIHJlZ2lvbiBmb3J0cmFuUHJvZ3JhbSB0cmFuc3BhcmVudCBmb2xkIGtlZXBlbmQgc3RhcnQ9Il5ccypwcm9ncmFtXHNcK1x6KFxhXHcqXCkiIHNraXA9Il5cKFshYypdXHxccyojXCkuKiQiIGV4Y2x1ZGVubCBlbmQ9Ilw8ZW5kXHMqXChwcm9ncmFtXChcc1wrXHoxXD5cKVw9XHwkXCkiIGNvbnRhaW5zPUFMTEJVVCxmb3J0cmFuTW9kdWxlCiAgICBzeW4gcmVnaW9uIGZvcnRyYW5Nb2R1bGUgdHJhbnNwYXJlbnQgZm9sZCBrZWVwZW5kIHN0YXJ0PSJeXHMqc3VibW9kdWxlXHNcKyhcYVx3KlxzKlwoOlxhXHcqXHMqXCkqKVxzKlx6XChcYVx3KlwpIiBza2lwPSJeXChbIWMqXVx8XHMqI1wpLiokIiBleGNsdWRlbmwgZW5kPSJcPGVuZFxzKlwoc3VibW9kdWxlXChcc1wrXHoxXD5cKVw9XHwkXCkiIGNvbnRhaW5zPUFMTEJVVCxmb3J0cmFuUHJvZ3JhbSxmb3J0cmFuTW9kdWxlCiAgICBzeW4gcmVnaW9uIGZvcnRyYW5Nb2R1bGUgdHJhbnNwYXJlbnQgZm9sZCBrZWVwZW5kIHN0YXJ0PSJeXHMqbW9kdWxlXHNcK1wocHJvY2VkdXJlXClcQCFceihcYVx3KlwpIiBza2lwPSJeXChbIWMqXVx8XHMqI1wpLiokIiBleGNsdWRlbmwgZW5kPSJcPGVuZFxzKlwobW9kdWxlXChcc1wrXHoxXD5cKVw9XHwkXCkiIGNvbnRhaW5zPUFMTEJVVCxmb3J0cmFuUHJvZ3JhbQogICAgc3luIHJlZ2lvbiBmb3J0cmFuRnVuY3Rpb24gdHJhbnNwYXJlbnQgZm9sZCBrZWVwZW5kIGV4dGVuZCBzdGFydD0iXlxzKlwoZWxlbWVudGFsIFx8cHVyZSBcfGltcHVyZSBcfG1vZHVsZSBcfHJlY3Vyc2l2ZSBcKVw9XHMqXChcKFwocmVhbCBcfGludGVnZXIgXHxsb2dpY2FsIFx8Y29tcGxleCBcfGRvdWJsZSBccypwcmVjaXNpb24gXClccypcKChcKFxzKmtpbmRccyo9XClcPVxzKlx3XCtccyopXClcPVwpXHx0eXBlXHNcKyhccypcd1wrXHMqKSBcfGNoYXJhY3RlciBcKChcKFxzKmxlblxzKj1cKVw9XHMqXGRcK1xzKilcfChcKFxzKmtpbmRccyo9XClcPVxzKlx3XCtccyopXClcPVwpXD1ccypmdW5jdGlvblxzXCtceihcYVx3KlwpIiBza2lwPSJeXChbIWMqXVx8XHMqI1wpLiokIiBleGNsdWRlbmwgZW5kPSJcPGVuZFxzKlwoJFx8ZnVuY3Rpb25cKFxzXCtcejFcPlwpXD1cKSIgY29udGFpbnM9QUxMQlVULGZvcnRyYW5Qcm9ncmFtLGZvcnRyYW5Nb2R1bGUKICAgIHN5biByZWdpb24gZm9ydHJhblN1YnJvdXRpbmUgdHJhbnNwYXJlbnQgZm9sZCBrZWVwZW5kIGV4dGVuZCBzdGFydD0iXlxzKlwoZWxlbWVudGFsIFx8cHVyZSBcfGltcHVyZSBcfG1vZHVsZSBcfHJlY3Vyc2l2ZSBcKVw9XHMqc3Vicm91dGluZVxzXCtceihcYVx3KlwpIiBza2lwPSJeXChbIWMqXVx8XHMqI1wpLiokIiBleGNsdWRlbmwgZW5kPSJcPGVuZFxzKlwoJFx8c3Vicm91dGluZVwoXHNcK1x6MVw+XClcPVwpIiBjb250YWlucz1BTExCVVQsZm9ydHJhblByb2dyYW0sZm9ydHJhbk1vZHVsZQogICAgc3luIHJlZ2lvbiBmb3J0cmFuQmxvY2tEYXRhIHRyYW5zcGFyZW50IGZvbGQga2VlcGVuZCBzdGFydD0iXDxibG9ja1xzKmRhdGFcKFxzXCtceihcYVx3KlwpXClcPSIgc2tpcD0iXlwoWyFjKl1cfFxzKiNcKS4qJCIgZXhjbHVkZW5sIGVuZD0iXDxlbmRccypcKCRcfGJsb2NrXHMqZGF0YVwoXHNcK1x6MVw+XClcPVwpIiBjb250YWlucz1BTExCVVQsZm9ydHJhblByb2dyYW0sZm9ydHJhbk1vZHVsZSxmb3J0cmFuU3Vicm91dGluZSxmb3J0cmFuRnVuY3Rpb24sZm9ydHJhbjc3TG9vcCxmb3J0cmFuQ2FzZSxmb3J0cmFuOTBMb29wLGZvcnRyYW5JZkJsb2NrCiAgICBzeW4gcmVnaW9uIGZvcnRyYW5Bc3NvY2lhdGUgdHJhbnNwYXJlbnQgZm9sZCBrZWVwZW5kIHN0YXJ0PSJeXHMqXDxhc3NvY2lhdGVcc1wrIiBza2lwPSJeXChbIWMqXVx8XHMqI1wpLiokIiBleGNsdWRlbmwgZW5kPSJcPGVuZFxzKmFzc29jaWF0ZSIgY29udGFpbnM9QUxMQlVULGZvcnRyYW5Qcm9ncmFtLGZvcnRyYW5Nb2R1bGUsZm9ydHJhblN1YnJvdXRpbmUsZm9ydHJhbkZ1bmN0aW9uCiAgICBzeW4gcmVnaW9uIGZvcnRyYW5JbnRlcmZhY2UgdHJhbnNwYXJlbnQgZm9sZCBrZWVwZW5kIGV4dGVuZCBzdGFydD0iXlxzKlwoYWJzdHJhY3QgXClcPVxzKmludGVyZmFjZVw+IiBza2lwPSJeXChbIWMqXVx8XHMqI1wpLiokIiBleGNsdWRlbmwgZW5kPSJcPGVuZFxzKmludGVyZmFjZVw+IiBjb250YWlucz1BTExCVVQsZm9ydHJhblByb2dyYW0sZm9ydHJhbk1vZHVsZSxmb3J0cmFuNzdMb29wLGZvcnRyYW5DYXNlLGZvcnRyYW45MExvb3AsZm9ydHJhbklmQmxvY2sKICAgIHN5biByZWdpb24gZm9ydHJhblR5cGVEZWYgdHJhbnNwYXJlbnQgZm9sZCBrZWVwZW5kIGV4dGVuZCBzdGFydD0iXlxzKnR5cGVccypcKCxccypcKHB1YmxpY1x8cHJpdmF0ZVx8YWJzdHJhY3RcKVwpXD1ccyo6OiIgc2tpcD0iXlwoWyFjKl1cfFxzKiNcKS4qJCIgZXhjbHVkZW5sIGVuZD0iXDxlbmRccyp0eXBlXD4iIGNvbnRhaW5zPUFMTEJVVCxmb3J0cmFuUHJvZ3JhbSxmb3J0cmFuTW9kdWxlLGZvcnRyYW43N0xvb3AsZm9ydHJhbkNhc2UsZm9ydHJhbjkwTG9vcCxmb3J0cmFuSWZCbG9jayxmb3J0cmFuSW50ZXJmYWNlCiAgZWxzZQogICAgc3luIHJlZ2lvbiBmb3J0cmFuUHJvZ3JhbSB0cmFuc3BhcmVudCBmb2xkIGtlZXBlbmQgc3RhcnQ9Il5ccypwcm9ncmFtXHNcK1x6KFxhXHcqXCkiIHNraXA9Il5ccypbISNdLiokIiBleGNsdWRlbmwgZW5kPSJcPGVuZFxzKlwocHJvZ3JhbVwoXHNcK1x6MVw+XClcPVx8JFwpIiBjb250YWlucz1BTExCVVQsZm9ydHJhbk1vZHVsZQogICAgc3luIHJlZ2lvbiBmb3J0cmFuTW9kdWxlIHRyYW5zcGFyZW50IGZvbGQga2VlcGVuZCBzdGFydD0iXlxzKnN1Ym1vZHVsZVxzXCsoXGFcdypccypcKDpcYVx3KlxzKlwpKilccypcelwoXGFcdypcKSIgc2tpcD0iXlxzKlshI10uKiQiIGV4Y2x1ZGVubCBlbmQ9Ilw8ZW5kXHMqXChzdWJtb2R1bGVcKFxzXCtcejFcPlwpXD1cfCRcKSIgY29udGFpbnM9QUxMQlVULGZvcnRyYW5Qcm9ncmFtLGZvcnRyYW5Nb2R1bGUKICAgIHN5biByZWdpb24gZm9ydHJhbk1vZHVsZSB0cmFuc3BhcmVudCBmb2xkIGtlZXBlbmQgc3RhcnQ9Il5ccyptb2R1bGVcc1wrXChwcm9jZWR1cmVcKVxAIVx6KFxhXHcqXCkiIHNraXA9Il5ccypbISNdLiokIiBleGNsdWRlbmwgZW5kPSJcPGVuZFxzKlwobW9kdWxlXChcc1wrXHoxXD5cKVw9XHwkXCkiIGNvbnRhaW5zPUFMTEJVVCxmb3J0cmFuUHJvZ3JhbQogICAgc3luIHJlZ2lvbiBmb3J0cmFuRnVuY3Rpb24gdHJhbnNwYXJlbnQgZm9sZCBrZWVwZW5kIGV4dGVuZCBzdGFydD0iXlxzKlwoZWxlbWVudGFsIFx8cHVyZSBcfGltcHVyZSBcfG1vZHVsZSBcfHJlY3Vyc2l2ZSBcKVw9XHMqXChcKFwocmVhbCBcfGludGVnZXIgXHxsb2dpY2FsIFx8Y29tcGxleCBcfGRvdWJsZSBccypwcmVjaXNpb24gXClccypcKChcKFxzKmtpbmRccyo9XClcPVxzKlx3XCtccyopXClcPVwpXHx0eXBlXHNcKyhccypcd1wrXHMqKSBcfGNoYXJhY3RlciBcKChcKFxzKmxlblxzKj1cKVw9XHMqXGRcK1xzKilcfChcKFxzKmtpbmRccyo9XClcPVxzKlx3XCtccyopXClcPVwpXD1ccypmdW5jdGlvblxzXCtceihcYVx3KlwpIiBza2lwPSJeXHMqWyEjXS4qJCIgZXhjbHVkZW5sIGVuZD0iXDxlbmRccypcKCRcfGZ1bmN0aW9uXChcc1wrXHoxXD5cKVw9XCkiIGNvbnRhaW5zPUFMTEJVVCxmb3J0cmFuUHJvZ3JhbSxmb3J0cmFuTW9kdWxlCiAgICBzeW4gcmVnaW9uIGZvcnRyYW5TdWJyb3V0aW5lIHRyYW5zcGFyZW50IGZvbGQga2VlcGVuZCBleHRlbmQgc3RhcnQ9Il5ccypcKGVsZW1lbnRhbCBcfHB1cmUgXHxpbXB1cmUgXHxtb2R1bGUgXHxyZWN1cnNpdmUgXClcPVxzKnN1YnJvdXRpbmVcc1wrXHooXGFcdypcKSIgc2tpcD0iXlxzKlshI10uKiQiIGV4Y2x1ZGVubCBlbmQ9Ilw8ZW5kXHMqXCgkXHxzdWJyb3V0aW5lXChcc1wrXHoxXD5cKVw9XCkiIGNvbnRhaW5zPUFMTEJVVCxmb3J0cmFuUHJvZ3JhbSxmb3J0cmFuTW9kdWxlCiAgICBzeW4gcmVnaW9uIGZvcnRyYW5CbG9ja0RhdGEgdHJhbnNwYXJlbnQgZm9sZCBrZWVwZW5kIHN0YXJ0PSJcPGJsb2NrXHMqZGF0YVwoXHNcK1x6KFxhXHcqXClcKVw9IiBza2lwPSJeXHMqWyEjXS4qJCIgZXhjbHVkZW5sIGVuZD0iXDxlbmRccypcKCRcfGJsb2NrXHMqZGF0YVwoXHNcK1x6MVw+XClcPVwpIiBjb250YWlucz1BTExCVVQsZm9ydHJhblByb2dyYW0sZm9ydHJhbk1vZHVsZSxmb3J0cmFuU3Vicm91dGluZSxmb3J0cmFuRnVuY3Rpb24sZm9ydHJhbjc3TG9vcCxmb3J0cmFuQ2FzZSxmb3J0cmFuOTBMb29wLGZvcnRyYW5JZkJsb2NrCiAgICBzeW4gcmVnaW9uIGZvcnRyYW5Bc3NvY2lhdGUgdHJhbnNwYXJlbnQgZm9sZCBrZWVwZW5kIHN0YXJ0PSJeXHMqXDxhc3NvY2lhdGVcc1wrIiBza2lwPSJeXHMqWyEjXS4qJCIgZXhjbHVkZW5sIGVuZD0iXDxlbmRccyphc3NvY2lhdGUiIGNvbnRhaW5zPUFMTEJVVCxmb3J0cmFuUHJvZ3JhbSxmb3J0cmFuTW9kdWxlLGZvcnRyYW5TdWJyb3V0aW5lLGZvcnRyYW5GdW5jdGlvbgogICAgc3luIHJlZ2lvbiBmb3J0cmFuSW50ZXJmYWNlIHRyYW5zcGFyZW50IGZvbGQga2VlcGVuZCBleHRlbmQgc3RhcnQ9Il5ccypcKGFic3RyYWN0IFwpXD1ccyppbnRlcmZhY2VcPiIgc2tpcD0iXlxzKlshI10uKiQiIGV4Y2x1ZGVubCBlbmQ9Ilw8ZW5kXHMqaW50ZXJmYWNlXD4iIGNvbnRhaW5zPUFMTEJVVCxmb3J0cmFuUHJvZ3JhbSxmb3J0cmFuTW9kdWxlLGZvcnRyYW43N0xvb3AsZm9ydHJhbkNhc2UsZm9ydHJhbjkwTG9vcCxmb3J0cmFuSWZCbG9jawogICAgc3luIHJlZ2lvbiBmb3J0cmFuVHlwZURlZiB0cmFuc3BhcmVudCBmb2xkIGtlZXBlbmQgZXh0ZW5kIHN0YXJ0PSJeXHMqdHlwZVxzKlwoLFxzKlwocHVibGljXHxwcml2YXRlXHxhYnN0cmFjdFwpXClcPVxzKjo6IiBza2lwPSJeXHMqWyEjXS4qJCIgZXhjbHVkZW5sIGVuZD0iXDxlbmRccyp0eXBlXD4iIGNvbnRhaW5zPUFMTEJVVCxmb3J0cmFuUHJvZ3JhbSxmb3J0cmFuTW9kdWxlLGZvcnRyYW43N0xvb3AsZm9ydHJhbkNhc2UsZm9ydHJhbjkwTG9vcCxmb3J0cmFuSWZCbG9jayxmb3J0cmFuSW50ZXJmYWNlCiAgZW5kaWYKCiAgaWYgZXhpc3RzKCJmb3J0cmFuX2ZvbGRfY29uZGl0aW9uYWxzIikKICAgIGlmIChiOmZvcnRyYW5fZml4ZWRfc291cmNlID09IDEpCiAgICAgIHN5biByZWdpb24gZm9ydHJhbjc3TG9vcCB0cmFuc3BhcmVudCBmb2xkIGtlZXBlbmQgc3RhcnQ9Ilw8ZG9cc1wrXHooXGRcK1wpIiBlbmQ9Il5ccypcejFcPiIgY29udGFpbnM9QUxMQlVULGZvcnRyYW5Vbml0SGVhZGVyLGZvcnRyYW5TdHJ1Y3R1cmUsZm9ydHJhblN0b3JhZ2VDbGFzcyxmb3J0cmFuVHlwZSxmb3J0cmFuUHJvZ3JhbSxmb3J0cmFuTW9kdWxlLGZvcnRyYW5TdWJyb3V0aW5lLGZvcnRyYW5GdW5jdGlvbixmb3J0cmFuQmxvY2tEYXRhCiAgICAgIHN5biByZWdpb24gZm9ydHJhbjkwTG9vcCB0cmFuc3BhcmVudCBmb2xkIGtlZXBlbmQgZXh0ZW5kIHN0YXJ0PSJcKFw8ZW5kXHNcK1wpXEA8IVw8ZG9cKFxzXCtcYVx8XHMqJFwpIiBza2lwPSJeXChbIWMqXVx8XHMqI1wpLiokIiBleGNsdWRlbmwgZW5kPSJcPGVuZFxzKmRvXD4iIGNvbnRhaW5zPUFMTEJVVCxmb3J0cmFuVW5pdEhlYWRlcixmb3J0cmFuU3RydWN0dXJlLGZvcnRyYW5TdG9yYWdlQ2xhc3MsZm9ydHJhblR5cGUsZm9ydHJhblByb2dyYW0sZm9ydHJhbk1vZHVsZSxmb3J0cmFuU3Vicm91dGluZSxmb3J0cmFuRnVuY3Rpb24sZm9ydHJhbkJsb2NrRGF0YQogICAgICBzeW4gcmVnaW9uIGZvcnRyYW5JZkJsb2NrIHRyYW5zcGFyZW50IGZvbGQga2VlcGVuZCBleHRlbmQgc3RhcnQ9IlwoXDxlXChuZFx8bHNlXClcc1wrXClcQDwhXDxpZlxzKiguXCspXHMqdGhlblw+IiBza2lwPSJeXChbIWMqXVx8XHMqI1wpLiokIiBlbmQ9Ilw8ZW5kXHMqaWZcPiIgY29udGFpbnM9QUxMQlVULGZvcnRyYW5Vbml0SGVhZGVyLGZvcnRyYW5TdHJ1Y3R1cmUsZm9ydHJhblN0b3JhZ2VDbGFzcyxmb3J0cmFuVHlwZSxmb3J0cmFuUHJvZ3JhbSxmb3J0cmFuTW9kdWxlLGZvcnRyYW5TdWJyb3V0aW5lLGZvcnRyYW5GdW5jdGlvbixmb3J0cmFuQmxvY2tEYXRhCiAgICAgIHN5biByZWdpb24gZm9ydHJhbkNhc2UgdHJhbnNwYXJlbnQgZm9sZCBrZWVwZW5kIGV4dGVuZCBzdGFydD0iXDxzZWxlY3RccypcKGNhc2VcfHR5cGVcKVw+IiBza2lwPSJeXChbIWMqXVx8XHMqI1wpLiokIiBlbmQ9Ilw8ZW5kXHMqc2VsZWN0XD4iIGNvbnRhaW5zPUFMTEJVVCxmb3J0cmFuVW5pdEhlYWRlcixmb3J0cmFuU3RydWN0dXJlLGZvcnRyYW5TdG9yYWdlQ2xhc3MsZm9ydHJhblR5cGUsZm9ydHJhblByb2dyYW0sZm9ydHJhbk1vZHVsZSxmb3J0cmFuU3Vicm91dGluZSxmb3J0cmFuRnVuY3Rpb24sZm9ydHJhbkJsb2NrRGF0YQogICAgZWxzZQogICAgICBzeW4gcmVnaW9uIGZvcnRyYW43N0xvb3AgdHJhbnNwYXJlbnQgZm9sZCBrZWVwZW5kIHN0YXJ0PSJcPGRvXHNcK1x6KFxkXCtcKSIgZW5kPSJeXHMqXHoxXD4iIGNvbnRhaW5zPUFMTEJVVCxmb3J0cmFuVW5pdEhlYWRlcixmb3J0cmFuU3RydWN0dXJlLGZvcnRyYW5TdG9yYWdlQ2xhc3MsZm9ydHJhblR5cGUsZm9ydHJhblByb2dyYW0sZm9ydHJhbk1vZHVsZSxmb3J0cmFuU3Vicm91dGluZSxmb3J0cmFuRnVuY3Rpb24sZm9ydHJhbkJsb2NrRGF0YQogICAgICBzeW4gcmVnaW9uIGZvcnRyYW45MExvb3AgdHJhbnNwYXJlbnQgZm9sZCBrZWVwZW5kIGV4dGVuZCBzdGFydD0iXChcPGVuZFxzXCtcKVxAPCFcPGRvXChcc1wrXGFcfFxzKiRcKSIgc2tpcD0iXlxzKlshI10uKiQiIGV4Y2x1ZGVubCBlbmQ9Ilw8ZW5kXHMqZG9cPiIgY29udGFpbnM9QUxMQlVULGZvcnRyYW5Vbml0SGVhZGVyLGZvcnRyYW5TdHJ1Y3R1cmUsZm9ydHJhblN0b3JhZ2VDbGFzcyxmb3J0cmFuVHlwZSxmb3J0cmFuUHJvZ3JhbSxmb3J0cmFuTW9kdWxlLGZvcnRyYW5TdWJyb3V0aW5lLGZvcnRyYW5GdW5jdGlvbixmb3J0cmFuQmxvY2tEYXRhCiAgICAgIHN5biByZWdpb24gZm9ydHJhbklmQmxvY2sgdHJhbnNwYXJlbnQgZm9sZCBrZWVwZW5kIGV4dGVuZCBzdGFydD0iXChcPGVcKG5kXHxsc2VcKVxzXCtcKVxAPCFcPGlmXHMqKFwoLlx8JlxzKlxuXClcKylcKFxzXHwmXHMqXG5cKSp0aGVuXD4iIHNraXA9Il5ccypbISNdLiokIiBlbmQ9Ilw8ZW5kXHMqaWZcPiIgY29udGFpbnM9QUxMQlVULGZvcnRyYW5Vbml0SGVhZGVyLGZvcnRyYW5TdHJ1Y3R1cmUsZm9ydHJhblN0b3JhZ2VDbGFzcyxmb3J0cmFuVHlwZSxmb3J0cmFuUHJvZ3JhbSxmb3J0cmFuTW9kdWxlLGZvcnRyYW5TdWJyb3V0aW5lLGZvcnRyYW5GdW5jdGlvbixmb3J0cmFuQmxvY2tEYXRhCiAgICAgIHN5biByZWdpb24gZm9ydHJhbkNhc2UgdHJhbnNwYXJlbnQgZm9sZCBrZWVwZW5kIGV4dGVuZCBzdGFydD0iXDxzZWxlY3RccypcKGNhc2VcfHR5cGVcKVw+IiBza2lwPSJeXHMqWyEjXS4qJCIgZW5kPSJcPGVuZFxzKnNlbGVjdFw+IiBjb250YWlucz1BTExCVVQsZm9ydHJhblVuaXRIZWFkZXIsZm9ydHJhblN0cnVjdHVyZSxmb3J0cmFuU3RvcmFnZUNsYXNzLGZvcnRyYW5UeXBlLGZvcnRyYW5Qcm9ncmFtLGZvcnRyYW5Nb2R1bGUsZm9ydHJhblN1YnJvdXRpbmUsZm9ydHJhbkZ1bmN0aW9uLGZvcnRyYW5CbG9ja0RhdGEKICAgIGVuZGlmCiAgZW5kaWYKCiAgaWYgZXhpc3RzKCJmb3J0cmFuX2ZvbGRfbXVsdGlsaW5lY29tbWVudHMiKQogICAgaWYgKGI6Zm9ydHJhbl9maXhlZF9zb3VyY2UgPT0gMSkKICAgICAgc3luIG1hdGNoIGZvcnRyYW5NdWx0aUxpbmVDb21tZW50cyB0cmFuc3BhcmVudCBmb2xkICJcKF5bIWMqXS4qXChcblx8XCUkXClcKVx7NCx9IiBjb250YWlucz1BTExCVVQsZm9ydHJhbk11bHRpQ29tbWVudExpbmVzCiAgICBlbHNlCiAgICAgIHN5biBtYXRjaCBmb3J0cmFuTXVsdGlMaW5lQ29tbWVudHMgdHJhbnNwYXJlbnQgZm9sZCAiXCheXHMqIS4qXChcblx8XCUkXClcKVx7NCx9IiBjb250YWlucz1BTExCVVQsZm9ydHJhbk11bHRpQ29tbWVudExpbmVzCiAgICBlbmRpZgogIGVuZGlmCmVuZGlmCgoiIERlZmluZSB0aGUgZGVmYXVsdCBoaWdobGlnaHRpbmcuCiIgVGhlIGRlZmF1bHQgaGlnaGxpZ2h0aW5nIGRpZmZlcnMgZm9yIGVhY2ggZGlhbGVjdC4KIiBUcmFuc3BhcmVudCBncm91cHM6CiIgZm9ydHJhblBhcmVuLCBmb3J0cmFuTGVmdE1hcmdpbgoiIGZvcnRyYW5Qcm9ncmFtLCBmb3J0cmFuTW9kdWxlLCBmb3J0cmFuU3Vicm91dGluZSwgZm9ydHJhbkZ1bmN0aW9uLAoiIGZvcnRyYW5CbG9ja0RhdGEKIiBmb3J0cmFuNzdMb29wLCBmb3J0cmFuOTBMb29wLCBmb3J0cmFuSWZCbG9jaywgZm9ydHJhbkNhc2UKIiBmb3J0cmFuTXVsdGlDb21tZW50TGluZXMKaGkgZGVmIGxpbmsgZm9ydHJhbktleXdvcmQgCUtleXdvcmQKaGkgZGVmIGxpbmsgZm9ydHJhbkNvbnN0cnVjdE5hbWUJSWRlbnRpZmllcgpoaSBkZWYgbGluayBmb3J0cmFuQ29uZGl0aW9uYWwJQ29uZGl0aW9uYWwKaGkgZGVmIGxpbmsgZm9ydHJhblJlcGVhdAlSZXBlYXQKaGkgZGVmIGxpbmsgZm9ydHJhblRvZG8JCVRvZG8KaGkgZGVmIGxpbmsgZm9ydHJhbkNvbnRpbnVlTWFyawlTcGVjaWFsCmhpIGRlZiBsaW5rIGZvcnRyYW5TdHJpbmcJU3RyaW5nCmhpIGRlZiBsaW5rIGZvcnRyYW5OdW1iZXIJTnVtYmVyCmhpIGRlZiBsaW5rIGZvcnRyYW5PcGVyYXRvcglPcGVyYXRvcgpoaSBkZWYgbGluayBmb3J0cmFuQm9vbGVhbglCb29sZWFuCmhpIGRlZiBsaW5rIGZvcnRyYW5MYWJlbEVycm9yCUVycm9yCmhpIGRlZiBsaW5rIGZvcnRyYW5PYnNvbGV0ZQlUb2RvCmhpIGRlZiBsaW5rIGZvcnRyYW5UeXBlCQlUeXBlCmhpIGRlZiBsaW5rIGZvcnRyYW5TdHJ1Y3R1cmUJVHlwZQpoaSBkZWYgbGluayBmb3J0cmFuU3RvcmFnZUNsYXNzCVN0b3JhZ2VDbGFzcwpoaSBkZWYgbGluayBmb3J0cmFuQ2FsbAkJRnVuY3Rpb24KaGkgZGVmIGxpbmsgZm9ydHJhblVuaXRIZWFkZXIJZm9ydHJhblByZUNvbmRpdApoaSBkZWYgbGluayBmb3J0cmFuUmVhZFdyaXRlCUtleXdvcmQKaGkgZGVmIGxpbmsgZm9ydHJhbklPCQlLZXl3b3JkCmhpIGRlZiBsaW5rIGZvcnRyYW5JbnRyaW5zaWMJRnVuY3Rpb24KaGkgZGVmIGxpbmsgZm9ydHJhbkNvbnN0YW50CUNvbnN0YW50CgoiIFRvIHN0b3AgZGVsZXRlZCAmIG9ic29sZXNjZW50IGZlYXR1cmVzIGJlaW5nIGhpZ2hsaWdodGVkIGFzIFRvZG8gaXRlbXMsCiIgY29tbWVudCBvdXQgdGhlIG5leHQgNSBsaW5lcyBhbmQgdW5jb21tZW50IHRoZSA1IGxpbmVzIGFmdGVyIHRoYXQKaGkgZGVmIGxpbmsgZm9ydHJhblVuaXRIZWFkZXJPYiAgICBmb3J0cmFuT2Jzb2xldGUKaGkgZGVmIGxpbmsgZm9ydHJhbktleXdvcmRPYiAgICAgICBmb3J0cmFuT2Jzb2xldGUKaGkgZGVmIGxpbmsgZm9ydHJhbkNvbmRpdGlvbmFsT2IgICBmb3J0cmFuT2Jzb2xldGUKaGkgZGVmIGxpbmsgZm9ydHJhblR5cGVPYiAgICAgICAgICBmb3J0cmFuT2Jzb2xldGUKaGkgZGVmIGxpbmsgZm9ydHJhbktleXdvcmREZWwgICAgICBmb3J0cmFuT2Jzb2xldGUKImhpIGRlZiBsaW5rIGZvcnRyYW5Vbml0SGVhZGVyT2IgICAgZm9ydHJhblVuaXRIZWFkZXIKImhpIGRlZiBsaW5rIGZvcnRyYW5LZXl3b3JkT2IgICAgICAgZm9ydHJhbktleXdvcmQKImhpIGRlZiBsaW5rIGZvcnRyYW5Db25kaXRpb25hbE9iICAgZm9ydHJhbkNvbmRpdGlvbmFsCiJoaSBkZWYgbGluayBmb3J0cmFuVHlwZU9iICAgICAgICAgIGZvcnRyYW5UeXBlCiJoaSBkZWYgbGluayBmb3J0cmFuS2V5d29yZERlbCAgICAgIGZvcnRyYW5LZXl3b3JkCgppZiBiOmZvcnRyYW5fZGlhbGVjdCA9PSAiRiIKICBoaSEgZGVmIGxpbmsgZm9ydHJhbkludHJpbnNpY1IJZm9ydHJhbk9ic29sZXRlCiAgaGkhIGRlZiBsaW5rIGZvcnRyYW5Vbml0SGVhZGVyUglmb3J0cmFuT2Jzb2xldGUKICBoaSEgZGVmIGxpbmsgZm9ydHJhblR5cGVSCQlmb3J0cmFuT2Jzb2xldGUKICBoaSEgZGVmIGxpbmsgZm9ydHJhblN0b3JhZ2VDbGFzc1IJZm9ydHJhbk9ic29sZXRlCiAgaGkhIGRlZiBsaW5rIGZvcnRyYW5PcGVyYXRvclIgCWZvcnRyYW5PYnNvbGV0ZQogIGhpISBkZWYgbGluayBmb3J0cmFuSW5jbHVkZSAgIAlmb3J0cmFuT2Jzb2xldGUKICBoaSEgZGVmIGxpbmsgZm9ydHJhbkxhYmVsTnVtYmVyCWZvcnRyYW5PYnNvbGV0ZQogIGhpISBkZWYgbGluayBmb3J0cmFuVGFyZ2V0CSAgICAgICAgZm9ydHJhbk9ic29sZXRlCiAgaGkhIGRlZiBsaW5rIGZvcnRyYW5GbG9hdElsbAkgICAgICAgIGZvcnRyYW5PYnNvbGV0ZQogIGhpISBkZWYgbGluayBmb3J0cmFuSU9SCQlmb3J0cmFuT2Jzb2xldGUKICBoaSEgZGVmIGxpbmsgZm9ydHJhbktleXdvcmRSCSAgICAgICAgZm9ydHJhbk9ic29sZXRlCiAgaGkhIGRlZiBsaW5rIGZvcnRyYW5TdHJpbmdSCSAgICAgICAgZm9ydHJhbk9ic29sZXRlCiAgaGkhIGRlZiBsaW5rIGZvcnRyYW5Db25kaXRpb25hbFIJZm9ydHJhbk9ic29sZXRlCmVsc2UKICBoaSEgZGVmIGxpbmsgZm9ydHJhbkludHJpbnNpY1IJZm9ydHJhbkludHJpbnNpYwogIGhpISBkZWYgbGluayBmb3J0cmFuVW5pdEhlYWRlclIJZm9ydHJhblByZUNvbmRpdAogIGhpISBkZWYgbGluayBmb3J0cmFuVHlwZVIJCWZvcnRyYW5UeXBlCiAgaGkhIGRlZiBsaW5rIGZvcnRyYW5TdG9yYWdlQ2xhc3NSCWZvcnRyYW5TdG9yYWdlQ2xhc3MKICBoaSEgZGVmIGxpbmsgZm9ydHJhbk9wZXJhdG9yUgkgICAgICAgIGZvcnRyYW5PcGVyYXRvcgogIGhpISBkZWYgbGluayBmb3J0cmFuSW5jbHVkZQkgICAgICAgIEluY2x1ZGUKICBoaSEgZGVmIGxpbmsgZm9ydHJhbkxhYmVsTnVtYmVyCVNwZWNpYWwKICBoaSEgZGVmIGxpbmsgZm9ydHJhblRhcmdldAkgICAgICAgIFNwZWNpYWwKICBoaSEgZGVmIGxpbmsgZm9ydHJhbkZsb2F0SWxsCSAgICAgICAgZm9ydHJhbkZsb2F0CiAgaGkhIGRlZiBsaW5rIGZvcnRyYW5JT1IJCWZvcnRyYW5JTwogIGhpISBkZWYgbGluayBmb3J0cmFuS2V5d29yZFIJICAgICAgICBmb3J0cmFuS2V5d29yZAogIGhpISBkZWYgbGluayBmb3J0cmFuU3RyaW5nUgkgICAgICAgIGZvcnRyYW5TdHJpbmcKICBoaSEgZGVmIGxpbmsgZm9ydHJhbkNvbmRpdGlvbmFsUglmb3J0cmFuQ29uZGl0aW9uYWwKZW5kaWYKCiIgQ1VEQQpoaSBkZWYgbGluayBmb3J0cmFuSW50cmluc2ljQ1VEQSAgICAgICAgZm9ydHJhbkludHJpbnNpYwpoaSBkZWYgbGluayBmb3J0cmFuVHlwZUNVREEgICAgICAgICAgICAgZm9ydHJhblR5cGUKaGkgZGVmIGxpbmsgZm9ydHJhblN0cmluZ0NVREEgICAgICAgICAgIGZvcnRyYW5TdHJpbmcKCmhpIGRlZiBsaW5rIGZvcnRyYW5Gb3JtYXRTcGVjCUlkZW50aWZpZXIKaGkgZGVmIGxpbmsgZm9ydHJhbkZsb2F0CUZsb2F0CmhpIGRlZiBsaW5rIGZvcnRyYW5QcmVDb25kaXQJUHJlQ29uZGl0CmhpIGRlZiBsaW5rIGNJbmNsdWRlZAkJZm9ydHJhblN0cmluZwpoaSBkZWYgbGluayBjSW5jbHVkZQkJSW5jbHVkZQpoaSBkZWYgbGluayBjUHJlUHJvYwkJUHJlUHJvYwpoaSBkZWYgbGluayBjUHJlQ29uZGl0CQlQcmVDb25kaXQKaGkgZGVmIGxpbmsgZm9ydHJhbk9wZW5NUCAgICAgICBQcmVQcm9jCmhpIGRlZiBsaW5rIGZvcnRyYW5QYXJlbkVycm9yCUVycm9yCmhpIGRlZiBsaW5rIGZvcnRyYW5Db21tZW50CUNvbW1lbnQKaGkgZGVmIGxpbmsgZm9ydHJhblNlcmlhbE51bWJlcglUb2RvCmhpIGRlZiBsaW5rIGZvcnRyYW5UYWIJCUVycm9yCgoiIFVuY29tbWVudCB0aGUgbmV4dCBsaW5lIGlmIHlvdSB1c2UgZXh0cmEgaW50cmluc2ljcyBwcm92aWRlZCBieSB2ZW5kb3JzCiJoaSBkZWYgbGluayBmb3J0cmFuRXh0cmFJbnRyaW5zaWMJRnVuY3Rpb24KCmxldCBiOmN1cnJlbnRfc3ludGF4ID0gImZvcnRyYW4iCgpsZXQgJmNwbyA9IHM6Y3BvX3NhdmUKdW5sZXQgczpjcG9fc2F2ZQoiIHZpbTogdHM9OCB0dz0xMzIK