IiBWaW0gc3ludGF4IGZpbGUKIiBMYW5ndWFnZToJRm9ydHJhbiAyMDA4IChhbmQgZWFybGllciB2ZXJzaW9uczogMjAwMywgOTUsIDkwLCBhbmQgNzcpCiIgVmVyc2lvbjoJMC45MwoiIExhc3QgQ2hhbmdlOgkyMDEyIEphbi4gMTgKIiBNYWludGFpbmVyOglBaml0IEouIFRoYWtrYXIgKGFqaXQgQVQgdW5iLmNhKTsgPGh0dHA6Ly93d3cudW5iLmNhL2NoZW0vYWppdC8+CiIgVXNhZ2U6CUZvciBpbnN0cnVjdGlvbnMsIGRvIDpoZWxwIGZvcnRyYW4tc3ludGF4IGZyb20gVmltCiIgQ3JlZGl0czoKIiAgVmVyc2lvbiAwLjEgd2FzIGJhc2VkIG9uIHRoZSBmb3J0cmFuIDc3IHN5bnRheCBmaWxlIGJ5IE1hcmlvIEV1c2ViaW8gYW5kCiIgIFByZWJlbiBHdWxkYmVyZy4gVXNlZnVsIHN1Z2dlc3Rpb25zIHdlcmUgbWFkZSBieTogQW5kcmVqIFBhbmprb3YsCiIgIEJyYW0gTW9vbGVuYWFyLCBUaG9tYXMgT2xzZW4sIE1pY2hhZWwgU3Rlcm5iZXJnLCBDaHJpc3RpYW4gUmVpbGUsCiIgIFdhbHRlciBEaWV1ZG9ubuksIEFsZXhhbmRlciBXYWduZXIsIFJvbWFuIEJlcnRsZSwgQ2hhcmxlcyBSZW5kbGVtYW4sCiIgIEFuZHJldyBHcmlmZml0aHMsIEpvZSBLcmFobiwgYW5kIEhlbmRyaWsgTWVyeC4KCmlmIGV4aXN0cygiYjpjdXJyZW50X3N5bnRheCIpCiAgZmluaXNoCmVuZGlmCgpsZXQgczpjcG9fc2F2ZSA9ICZjcG8Kc2V0IGNwbyZ2aW0KCiIgQ2hvb3NlIGZvcnRyYW5fZGlhbGVjdCB1c2luZyB0aGUgcHJpb3JpdHk6CiIgc291cmNlIGZpbGUgZGlyZWN0aXZlID4gYnVmZmVyLWxvY2FsIHZhbHVlID4gZ2xvYmFsIHZhbHVlID4gZGVmYXVsdAoiIHRyeSB1c2luZyBkaXJlY3RpdmUgaW4gZmlyc3QgdGhyZWUgbGluZXMgb2YgZmlsZQpsZXQgYjpmb3J0cmFuX3JldHlwZSA9IGdldGxpbmUoMSkuIiAiLmdldGxpbmUoMikuIiAiLmdldGxpbmUoMykKaWYgYjpmb3J0cmFuX3JldHlwZSA9fj8gJ1w8Zm9ydHJhbl9kaWFsZWN0XHMqPVxzKkZcPicKICBsZXQgYjpmb3J0cmFuX2RpYWxlY3QgPSAiRiIKZWxzZWlmIGI6Zm9ydHJhbl9yZXR5cGUgPX4/ICdcPGZvcnRyYW5fZGlhbGVjdFxzKj1ccypmMDhcPicKICBsZXQgYjpmb3J0cmFuX2RpYWxlY3QgPSAiZjA4IgplbHNlaWYgIWV4aXN0cygiYjpmb3J0cmFuX2RpYWxlY3QiKQogIGlmIGV4aXN0cygiZzpmb3J0cmFuX2RpYWxlY3QiKSAmJiBnOmZvcnRyYW5fZGlhbGVjdCA9fiMgJ1w8Rlx8ZjA4XD4nCiAgICAiIHRyeSBnbG9iYWwgdmFyaWFibGUKICAgIGxldCBiOmZvcnRyYW5fZGlhbGVjdCA9IGc6Zm9ydHJhbl9kaWFsZWN0CiAgZWxzZSAgICAgICAgICIgbm90aGluZyBmb3VuZCwgc28gdXNlIGRlZmF1bHQKICAgIGxldCBiOmZvcnRyYW5fZGlhbGVjdCA9ICJmMDgiCiAgZW5kaWYKZW5kaWYKdW5sZXQhIGI6Zm9ydHJhbl9yZXR5cGUKIiBtYWtlIHN1cmUgYnVmZmVyLWxvY2FsIHZhbHVlIGlzIG5vdCBpbnZhbGlkCmlmIGI6Zm9ydHJhbl9kaWFsZWN0ICF+IyAnXDxGXHxmMDhcPicKICBsZXQgYjpmb3J0cmFuX2RpYWxlY3QgPSAiZjA4IgplbmRpZgoKIiBDaG9vc2UgYmV0d2VlbiBmaXhlZCBhbmQgZnJlZSBzb3VyY2UgZm9ybSBpZiB0aGlzIGhhc24ndCBiZWVuIGRvbmUgeWV0CmlmICFleGlzdHMoImI6Zm9ydHJhbl9maXhlZF9zb3VyY2UiKQogIGlmIGI6Zm9ydHJhbl9kaWFsZWN0ID09ICJGIgogICAgIiBGIHJlcXVpcmVzIGZyZWUgc291cmNlIGZvcm0KICAgIGxldCBiOmZvcnRyYW5fZml4ZWRfc291cmNlID0gMAogIGVsc2VpZiBleGlzdHMoImZvcnRyYW5fZnJlZV9zb3VyY2UiKQogICAgIiBVc2VyIGd1YXJhbnRlZXMgZnJlZSBzb3VyY2UgZm9ybSBmb3IgYWxsIGZvcnRyYW4gZmlsZXMKICAgIGxldCBiOmZvcnRyYW5fZml4ZWRfc291cmNlID0gMAogIGVsc2VpZiBleGlzdHMoImZvcnRyYW5fZml4ZWRfc291cmNlIikKICAgICIgVXNlciBndWFyYW50ZWVzIGZpeGVkIHNvdXJjZSBmb3JtIGZvciBhbGwgZm9ydHJhbiBmaWxlcwogICAgbGV0IGI6Zm9ydHJhbl9maXhlZF9zb3VyY2UgPSAxCiAgZWxzZQogICAgIiBNb2Rlcm4gZm9ydHJhbiBzdGlsbCBhbGxvd3MgYm90aCBmcmVlIGFuZCBmaXhlZCBzb3VyY2UgZm9ybS4KICAgICIgQXNzdW1lIGZpeGVkIHNvdXJjZSBmb3JtIHVubGVzcyBzaWducyBvZiBmcmVlIHNvdXJjZSBmb3JtCiAgICAiIGFyZSBkZXRlY3RlZCBpbiB0aGUgZmlyc3QgZml2ZSBjb2x1bW5zIG9mIHRoZSBmaXJzdCBzOmxtYXggbGluZXMuCiAgICAiIERldGVjdGlvbiBiZWNvbWVzIG1vcmUgYWNjdXJhdGUgYW5kIHRpbWUtY29uc3VtaW5nIGlmIG1vcmUgbGluZXMKICAgICIgYXJlIGNoZWNrZWQuIEluY3JlYXNlIHRoZSBsaW1pdCBiZWxvdyBpZiB5b3Uga2VlcCBsb3RzIG9mIGNvbW1lbnRzIGF0CiAgICAiIHRoZSB2ZXJ5IHRvcCBvZiBlYWNoIGZpbGUgYW5kIHlvdSBoYXZlIGEgZmFzdCBjb21wdXRlci4KICAgIGxldCBzOmxtYXggPSA1MDAKICAgIGlmICggczpsbWF4ID4gbGluZSgiJCIpICkKICAgICAgbGV0IHM6bG1heCA9IGxpbmUoIiQiKQogICAgZW5kaWYKICAgIGxldCBiOmZvcnRyYW5fZml4ZWRfc291cmNlID0gMQogICAgbGV0IHM6bG49MQogICAgd2hpbGUgczpsbiA8PSBzOmxtYXgKICAgICAgbGV0IHM6dGVzdCA9IHN0cnBhcnQoZ2V0bGluZShzOmxuKSwwLDUpCiAgICAgIGlmIHM6dGVzdCAhfiAnXltDYypdJyAmJiBzOnRlc3QgIX4gJ14gKlshI10nICYmIHM6dGVzdCA9fiAnW14gMC05XHRdJyAmJiBzOnRlc3QgIX4gJ15bIDAtOV0qXHQnCglsZXQgYjpmb3J0cmFuX2ZpeGVkX3NvdXJjZSA9IDAKCWJyZWFrCiAgICAgIGVuZGlmCiAgICAgIGxldCBzOmxuID0gczpsbiArIDEKICAgIGVuZHdoaWxlCiAgICB1bmxldCEgczpsbWF4IHM6bG4gczp0ZXN0CiAgZW5kaWYKZW5kaWYKCnN5biBjYXNlIGlnbm9yZQoKaWYgYjpmb3J0cmFuX2ZpeGVkX3NvdXJjZSA9PSAxCiAgc3luIG1hdGNoIGZvcnRyYW5Db25zdHJ1Y3ROYW1lCSJeXHNcezYsfVx6c1xhXHcqXHplXHMqOiIKZWxzZQogIHN5biBtYXRjaCBmb3J0cmFuQ29uc3RydWN0TmFtZQkiXlxzKlx6c1xhXHcqXHplXHMqOiIKZW5kaWYKaWYgZXhpc3RzKCJmb3J0cmFuX21vcmVfcHJlY2lzZSIpCiAgc3luIG1hdGNoIGZvcnRyYW5Db25zdHJ1Y3ROYW1lICJcKFw8ZW5kXHMqZG9cc1wrXClcQDw9XGFcdyoiCiAgc3luIG1hdGNoIGZvcnRyYW5Db25zdHJ1Y3ROYW1lICJcKFw8ZW5kXHMqaWZcc1wrXClcQDw9XGFcdyoiCiAgc3luIG1hdGNoIGZvcnRyYW5Db25zdHJ1Y3ROYW1lICJcKFw8ZW5kXHMqc2VsZWN0XHNcK1wpXEA8PVxhXHcqIgplbmRpZgoKc3luIG1hdGNoIGZvcnRyYW5Vbml0SGVhZGVyCSJcPGVuZFw+IgpzeW4gbWF0Y2ggZm9ydHJhblR5cGUJCSJcPGNoYXJhY3Rlclw+IgpzeW4gbWF0Y2ggZm9ydHJhblR5cGUJCSJcPGNvbXBsZXhcPiIKc3luIG1hdGNoIGZvcnRyYW5UeXBlCQkiXDxpbnRlZ2VyXD4iCnN5biBrZXl3b3JkIGZvcnRyYW5UeXBlCQlpbnRyaW5zaWMKc3luIG1hdGNoIGZvcnRyYW5UeXBlCQkiXDxpbXBsaWNpdFw+IgpzeW4ga2V5d29yZCBmb3J0cmFuU3RydWN0dXJlCWRpbWVuc2lvbgpzeW4ga2V5d29yZCBmb3J0cmFuU3RvcmFnZUNsYXNzCXBhcmFtZXRlciBzYXZlCnN5biBtYXRjaCBmb3J0cmFuVW5pdEhlYWRlcgkiXDxzdWJyb3V0aW5lXD4iCnN5biBrZXl3b3JkIGZvcnRyYW5DYWxsCQljYWxsCnN5biBtYXRjaCBmb3J0cmFuVW5pdEhlYWRlcgkiXDxmdW5jdGlvblw+IgpzeW4gbWF0Y2ggZm9ydHJhblVuaXRIZWFkZXIJIlw8cHJvZ3JhbVw+IgpzeW4ga2V5d29yZCBmb3J0cmFuS2V5d29yZAlyZXR1cm4gc3RvcApzeW4ga2V5d29yZCBmb3J0cmFuQ29uZGl0aW9uYWwJZWxzZSB0aGVuCnN5biBtYXRjaCBmb3J0cmFuQ29uZGl0aW9uYWwJIlw8aWZcPiIKc3luIG1hdGNoIGZvcnRyYW5Db25kaXRpb25hbE9iCSJcPGlmXHMqKC4qKVxzKlxkXCtccyosXHMqXGRcK1xzKixccypcZFwrXHMqJCIKc3luIG1hdGNoIGZvcnRyYW5SZXBlYXQJCSJcPGRvXD4iCgpzeW4ga2V5d29yZCBmb3J0cmFuVG9kbwkJY29udGFpbmVkIHRvZG8gZml4bWUKCiJDYXRjaCBlcnJvcnMgY2F1c2VkIGJ5IHRvbyBtYW55IHJpZ2h0IHBhcmVudGhlc2VzCnN5biByZWdpb24gZm9ydHJhblBhcmVuIHRyYW5zcGFyZW50IHN0YXJ0PSIoIiBlbmQ9IikiIGNvbnRhaW5zPUFMTEJVVCxmb3J0cmFuUGFyZW5FcnJvcixAZm9ydHJhbkNvbW1lbnRHcm91cCxjSW5jbHVkZWQsQHNwZWxsCnN5biBtYXRjaCAgZm9ydHJhblBhcmVuRXJyb3IgICAiKSIKCnN5biBtYXRjaCBmb3J0cmFuT3BlcmF0b3IJIlwuXHMqblw9ZXF2XHMqXC4iCnN5biBtYXRjaCBmb3J0cmFuT3BlcmF0b3IJIlwuXHMqXChhbmRcfG9yXHxub3RcKVxzKlwuIgpzeW4gbWF0Y2ggZm9ydHJhbk9wZXJhdG9yCSJcKCtcfC1cfC9cfFwqXCkiCnN5biBtYXRjaCBmb3J0cmFuVHlwZU9iCQkiXDxjaGFyYWN0ZXJccypcKiIKCnN5biBtYXRjaCBmb3J0cmFuQm9vbGVhbgkiXC5ccypcKHRydWVcfGZhbHNlXClccypcLiIKCnN5biBrZXl3b3JkIGZvcnRyYW5SZWFkV3JpdGUJYmFja3NwYWNlIGNsb3NlIGVuZGZpbGUgaW5xdWlyZSBvcGVuIHByaW50IHJlYWQgcmV3aW5kIHdyaXRlCgoiSWYgdGFicyBhcmUgYWxsb3dlZCB0aGVuIHRoZSBsZWZ0IG1hcmdpbiBjaGVja3MgZG8gbm90IHdvcmsKaWYgZXhpc3RzKCJmb3J0cmFuX2hhdmVfdGFicyIpCiAgc3luIG1hdGNoIGZvcnRyYW5UYWIJCSJcdCIgIHRyYW5zcGFyZW50CmVsc2UKICBzeW4gbWF0Y2ggZm9ydHJhblRhYgkJIlx0IgplbmRpZgoKc3luIGtleXdvcmQgZm9ydHJhbklPCQlhY2Nlc3MgYmxhbmsgZGlyZWN0IGV4aXN0IGZpbGUgZm10IGZvcm0gZm9ybWF0dGVkIGlvc3RhdCBuYW1lIG5hbWVkIG5leHRyZWMgbnVtYmVyIG9wZW5lZCByZWMgcmVjbCBzZXF1ZW50aWFsIHN0YXR1cyB1bmZvcm1hdHRlZCB1bml0CgpzeW4ga2V5d29yZCBmb3J0cmFuSW50cmluc2ljUgkJYWxvZyBhbG9nMTAgYW1heDAgYW1heDEgYW1pbjAgYW1pbjEgYW1vZCBjYWJzIGNjb3MgY2V4cCBjbG9nIGNzaW4gY3NxcnQgZGFicyBkYWNvcyBkYXNpbiBkYXRhbiBkYXRhbjIgZGNvcyBkY29zaCBkZGltIGRleHAgZGludCBkbG9nIGRsb2cxMCBkbWF4MSBkbWluMSBkbW9kIGRuaW50IGRzaWduIGRzaW4gZHNpbmggZHNxcnQgZHRhbiBkdGFuaCBmbG9hdCBpYWJzIGlkaW0gaWRpbnQgaWRuaW50IGlmaXggaXNpZ24gbWF4MCBtYXgxIG1pbjAgbWluMSBzbmdsCgoiIEludHJpbnNpY3MgcHJvdmlkZWQgYnkgc29tZSB2ZW5kb3JzCnN5biBrZXl3b3JkIGZvcnRyYW5FeHRyYUludHJpbnNpYwlhbGdhbWEgY2RhYnMgY2Rjb3MgY2RleHAgY2Rsb2cgY2RzaW4gY2RzcXJ0IGNxYWJzIGNxY29zIGNxZXhwIGNxbG9nIGNxc2luIGNxc3FydCBkY21wbHggZGNvbmpnIGRlcmYgZGVyZmMgZGZsb2F0IGRnYW1tYSBkaW1hZyBkbGdhbWEgaXFpbnQgcWFicyBxYWNvcyBxYXNpbiBxYXRhbiBxYXRhbjIgcWNtcGx4IHFjb25qZyBxY29zIHFjb3NoIHFkaW0gcWVyZiBxZXJmYyBxZXhwIHFnYW1tYSBxaW1hZyBxbGdhbWEgcWxvZyBxbG9nMTAgcW1heDEgcW1pbjEgcW1vZCBxbmludCBxc2lnbiBxc2luIHFzaW5oIHFzcXJ0IHF0YW4gcXRhbmgKCnN5biBrZXl3b3JkIGZvcnRyYW5JbnRyaW5zaWMJYWJzIGFjb3MgYWltYWcgYWludCBhbmludCBhc2luIGF0YW4gYXRhbjIgY2hhciBjbXBseCBjb25qZyBjb3MgY29zaCBleHAgaWNoYXIgaW5kZXggaW50IGxvZyBsb2cxMCBtYXggbWluIG5pbnQgc2lnbiBzaW4gc2luaCBzcXJ0IHRhbiB0YW5oCnN5biBtYXRjaCBmb3J0cmFuSW50cmluc2ljCSJcPGxlblxzKlsoLF0ibWU9cyszCnN5biBtYXRjaCBmb3J0cmFuSW50cmluc2ljCSJcPHJlYWxccyooIm1lPXMrNApzeW4gbWF0Y2ggZm9ydHJhblR5cGUJCSJcPGltcGxpY2l0XHNcK3JlYWwiCnN5biBtYXRjaCBmb3J0cmFuVHlwZQkJIl5ccypyZWFsXD4iCnN5biBtYXRjaCBmb3J0cmFuSW50cmluc2ljCSJcPGxvZ2ljYWxccyooIm1lPXMrNwpzeW4gbWF0Y2ggZm9ydHJhblR5cGUJCSJcPGltcGxpY2l0XHNcK2xvZ2ljYWwiCnN5biBtYXRjaCBmb3J0cmFuVHlwZQkJIl5ccypsb2dpY2FsXD4iCgoiTnVtYmVycyBvZiB2YXJpb3VzIHNvcnRzCiIgSW50ZWdlcnMKc3luIG1hdGNoIGZvcnRyYW5OdW1iZXIJZGlzcGxheSAiXDxcZFwrXChfXGFcdypcKVw9XD4iCiIgZmxvYXRpbmcgcG9pbnQgbnVtYmVyLCB3aXRob3V0IGEgZGVjaW1hbCBwb2ludApzeW4gbWF0Y2ggZm9ydHJhbkZsb2F0SWxsCWRpc3BsYXkJIlw8XGRcK1tkZXFdWy0rXVw9XGRcK1woX1xhXHcqXClcPVw+IgoiIGZsb2F0aW5nIHBvaW50IG51bWJlciwgc3RhcnRpbmcgd2l0aCBhIGRlY2ltYWwgcG9pbnQKc3luIG1hdGNoIGZvcnRyYW5GbG9hdElsbAlkaXNwbGF5CSJcLlxkXCtcKFtkZXFdWy0rXVw9XGRcK1wpXD1cKF9cYVx3KlwpXD1cPiIKIiBmbG9hdGluZyBwb2ludCBudW1iZXIsIG5vIGRpZ2l0cyBhZnRlciBkZWNpbWFsCnN5biBtYXRjaCBmb3J0cmFuRmxvYXRJbGwJZGlzcGxheQkiXDxcZFwrXC5cKFtkZXFdWy0rXVw9XGRcK1wpXD1cKF9cYVx3KlwpXD1cPiIKIiBmbG9hdGluZyBwb2ludCBudW1iZXIsIEQgb3IgUSBleHBvbmVudHMKc3luIG1hdGNoIGZvcnRyYW5GbG9hdElsbAlkaXNwbGF5CSJcPFxkXCtcLlxkXCtcKFtkcV1bLStdXD1cZFwrXClcPVwoX1xhXHcqXClcPVw+IgoiIGZsb2F0aW5nIHBvaW50IG51bWJlcgpzeW4gbWF0Y2ggZm9ydHJhbkZsb2F0CWRpc3BsYXkJIlw8XGRcK1wuXGRcK1woZVstK11cPVxkXCtcKVw9XChfXGFcdypcKVw9XD4iCiIgTnVtYmVycyBpbiBmb3JtYXRzCnN5biBtYXRjaCBmb3J0cmFuRm9ybWF0U3BlYwlkaXNwbGF5CSJcZCpmXGRcK1wuXGRcKyIKc3luIG1hdGNoIGZvcnRyYW5Gb3JtYXRTcGVjCWRpc3BsYXkJIlxkKmVbc25dXD1cZFwrXC5cZFwrXChlXGQrXD5cKVw9IgpzeW4gbWF0Y2ggZm9ydHJhbkZvcm1hdFNwZWMJZGlzcGxheQkiXGQqXChkXHxxXHxnXClcZFwrXC5cZFwrXChlXGQrXClcPSIKc3luIG1hdGNoIGZvcnRyYW5Gb3JtYXRTcGVjCWRpc3BsYXkJIlxkXCt4XD4iCiIgVGhlIG5leHQgbWF0Y2ggY2Fubm90IGJlIHVzZWQgYmVjYXVzZSBpdCB3b3VsZCBwaWNrIHVwIGlkZW50aWZpZXJzIGFzIHdlbGwKIiBzeW4gbWF0Y2ggZm9ydHJhbkZvcm1hdFNwZWMJZGlzcGxheQkiXDxcKGFcfGlcKVxkXCsiCgoiIE51bWJlcnMgYXMgbGFiZWxzCnN5biBtYXRjaCBmb3J0cmFuTGFiZWxOdW1iZXIJZGlzcGxheQkiXlxkXHsxLDV9XHMibWU9ZS0xCnN5biBtYXRjaCBmb3J0cmFuTGFiZWxOdW1iZXIJZGlzcGxheQkiXiBcZFx7MSw0fVxzIm1zPXMrMSxtZT1lLTEKc3luIG1hdGNoIGZvcnRyYW5MYWJlbE51bWJlcglkaXNwbGF5CSJeICBcZFx7MSwzfVxzIm1zPXMrMixtZT1lLTEKc3luIG1hdGNoIGZvcnRyYW5MYWJlbE51bWJlcglkaXNwbGF5CSJeICAgXGRcZFw9XHMibXM9cyszLG1lPWUtMQpzeW4gbWF0Y2ggZm9ydHJhbkxhYmVsTnVtYmVyCWRpc3BsYXkJIl4gICAgXGRccyJtcz1zKzQsbWU9ZS0xCgppZiBleGlzdHMoImZvcnRyYW5fbW9yZV9wcmVjaXNlIikKICAiIE51bWJlcnMgYXMgdGFyZ2V0cwogIHN5biBtYXRjaCBmb3J0cmFuVGFyZ2V0CWRpc3BsYXkJIlwoXDxpZlxzKiguXCspXHMqXClcQDw9XChcZFwrXHMqLFxzKlwpXHsyfVxkXCtcPiIKICBzeW4gbWF0Y2ggZm9ydHJhblRhcmdldAlkaXNwbGF5CSJcKFw8ZG9cc1wrXClcQDw9XGRcK1w+IgogIHN5biBtYXRjaCBmb3J0cmFuVGFyZ2V0CWRpc3BsYXkJIlwoXDxnb1xzKnRvXHMqKFw9XClcQDw9XChcZFwrXHMqLFxzKlwpKlxkXCtcPiIKZW5kaWYKCnN5biBrZXl3b3JkIGZvcnRyYW5UeXBlUglleHRlcm5hbApzeW4ga2V5d29yZCBmb3J0cmFuSU9SCQlmb3JtYXQKc3luIG1hdGNoIGZvcnRyYW5LZXl3b3JkUgkiXDxjb250aW51ZVw+IgpzeW4gbWF0Y2ggZm9ydHJhbktleXdvcmQJIl5ccypcZFwrXHNcK2NvbnRpbnVlXD4iCnN5biBtYXRjaCBmb3J0cmFuS2V5d29yZCAgCSJcPGdvXHMqdG9cPiIKc3luIG1hdGNoIGZvcnRyYW5LZXl3b3JkRGVsICAJIlw8Z29ccyp0b1x6ZVxzXCsuKixccyooLiokIgpzeW4gbWF0Y2ggZm9ydHJhbktleXdvcmRPYiAgCSJcPGdvXHMqdG9cemVccyooXGRcKy4qJCIKc3luIHJlZ2lvbiBmb3J0cmFuU3RyaW5nUglzdGFydD0rJysgZW5kPSsnKyBjb250YWlucz1mb3J0cmFuQ29udGludWVNYXJrLGZvcnRyYW5MZWZ0TWFyZ2luLGZvcnRyYW5TZXJpYWxOdW1iZXIKc3luIGtleXdvcmQgZm9ydHJhbkludHJpbnNpY1IJZGltIGxnZSBsZ3QgbGxlIGxsdCBtb2QKc3luIGtleXdvcmQgZm9ydHJhbktleXdvcmREZWwJYXNzaWduIHBhdXNlCgpzeW4gbWF0Y2ggZm9ydHJhblR5cGUgICAgICAgICAgICJcPHR5cGVcPiIKc3luIGtleXdvcmQgZm9ydHJhblR5cGUJICAgICAgICBub25lCgpzeW4ga2V5d29yZCBmb3J0cmFuU3RydWN0dXJlCXByaXZhdGUgcHVibGljIGludGVudCBvcHRpb25hbApzeW4ga2V5d29yZCBmb3J0cmFuU3RydWN0dXJlCXBvaW50ZXIgdGFyZ2V0IGFsbG9jYXRhYmxlCnN5biBrZXl3b3JkIGZvcnRyYW5TdG9yYWdlQ2xhc3MJaW4gb3V0CnN5biBtYXRjaCBmb3J0cmFuU3RvcmFnZUNsYXNzCSJcPGtpbmRccyo9Im1lPXMrNApzeW4gbWF0Y2ggZm9ydHJhblN0b3JhZ2VDbGFzcwkiXDxsZW5ccyo9Im1lPXMrMwoKc3luIG1hdGNoIGZvcnRyYW5Vbml0SGVhZGVyCSJcPG1vZHVsZVw+IgpzeW4ga2V5d29yZCBmb3J0cmFuVW5pdEhlYWRlcgl1c2Ugb25seSBjb250YWlucwpzeW4ga2V5d29yZCBmb3J0cmFuVW5pdEhlYWRlcglyZXN1bHQgb3BlcmF0b3IgYXNzaWdubWVudApzeW4gbWF0Y2ggZm9ydHJhblVuaXRIZWFkZXIJIlw8aW50ZXJmYWNlXD4iCnN5biBtYXRjaCBmb3J0cmFuVW5pdEhlYWRlcgkiXDxyZWN1cnNpdmVcPiIKc3luIGtleXdvcmQgZm9ydHJhbktleXdvcmQJYWxsb2NhdGUgZGVhbGxvY2F0ZSBudWxsaWZ5IGN5Y2xlIGV4aXQKc3luIG1hdGNoIGZvcnRyYW5Db25kaXRpb25hbAkiXDxzZWxlY3RcPiIKc3luIGtleXdvcmQgZm9ydHJhbkNvbmRpdGlvbmFsCWNhc2UgZGVmYXVsdCB3aGVyZSBlbHNld2hlcmUKCnN5biBtYXRjaCBmb3J0cmFuT3BlcmF0b3IJIlwoXCg+XHw8XCk9XD1cfD09XHwvPVx8PVwpIgpzeW4gbWF0Y2ggZm9ydHJhbk9wZXJhdG9yCSI9PiIKCnN5biByZWdpb24gZm9ydHJhblN0cmluZwlzdGFydD0rIisgZW5kPSsiKwljb250YWlucz1mb3J0cmFuTGVmdE1hcmdpbixmb3J0cmFuQ29udGludWVNYXJrLGZvcnRyYW5TZXJpYWxOdW1iZXIKc3luIGtleXdvcmQgZm9ydHJhbklPCQlwYWQgcG9zaXRpb24gYWN0aW9uIGRlbGltIHJlYWR3cml0ZQpzeW4ga2V5d29yZCBmb3J0cmFuSU8JCWVvciBhZHZhbmNlIG5tbAoKc3luIGtleXdvcmQgZm9ydHJhbkludHJpbnNpYwlhZGp1c3RsIGFkanVzdHIgYWxsIGFsbG9jYXRlZCBhbnkgYXNzb2NpYXRlZCBiaXRfc2l6ZSBidGVzdCBjZWlsaW5nIGNvdW50IGNzaGlmdCBkYXRlX2FuZF90aW1lIGRpZ2l0cyBkb3RfcHJvZHVjdCBlb3NoaWZ0IGVwc2lsb24gZXhwb25lbnQgZmxvb3IgZnJhY3Rpb24gaHVnZSBpYW5kIGliY2xyIGliaXRzIGlic2V0IGllb3IgaW9yIGlzaGZ0IGlzaGZ0YyBsYm91bmQgbGVuX3RyaW0gbWF0bXVsIG1heGV4cG9uZW50IG1heGxvYyBtYXh2YWwgbWVyZ2UgbWluZXhwb25lbnQgbWlubG9jIG1pbnZhbCBtb2R1bG8gbXZiaXRzIG5lYXJlc3QgcGFjayBwcmVjaXNpb24gcHJlc2VudCBwcm9kdWN0IHJhZGl4IHJhbmRvbV9udW1iZXIgcmFuZG9tX3NlZWQgcmFuZ2UgcmVwZWF0IHJlc2hhcGUgcnJzcGFjaW5nCnN5biBrZXl3b3JkIGZvcnRyYW5JbnRyaW5zaWMJc2NhbGUgc2NhbiBzZWxlY3RlZF9pbnRfa2luZCBzZWxlY3RlZF9yZWFsX2tpbmQgc2V0X2V4cG9uZW50IHNoYXBlIHNpemUgc3BhY2luZyBzcHJlYWQgc3VtIHN5c3RlbV9jbG9jayB0aW55IHRyYW5zcG9zZSB0cmltIHVib3VuZCB1bnBhY2sgdmVyaWZ5CnN5biBtYXRjaCBmb3J0cmFuSW50cmluc2ljCQkiXDxub3RcPlwoXHMqXC5cKVxAISJtZT1zKzMKc3luIG1hdGNoIGZvcnRyYW5JbnRyaW5zaWMJIlw8a2luZFw+XHMqWygsXSJtZT1zKzQKCnN5biBtYXRjaCAgZm9ydHJhblVuaXRIZWFkZXIJIlw8ZW5kXHMqZnVuY3Rpb24iCnN5biBtYXRjaCAgZm9ydHJhblVuaXRIZWFkZXIJIlw8ZW5kXHMqaW50ZXJmYWNlIgpzeW4gbWF0Y2ggIGZvcnRyYW5Vbml0SGVhZGVyCSJcPGVuZFxzKm1vZHVsZSIKc3luIG1hdGNoICBmb3J0cmFuVW5pdEhlYWRlcgkiXDxlbmRccypwcm9ncmFtIgpzeW4gbWF0Y2ggIGZvcnRyYW5Vbml0SGVhZGVyCSJcPGVuZFxzKnN1YnJvdXRpbmUiCnN5biBtYXRjaCAgZm9ydHJhblJlcGVhdAkiXDxlbmRccypkbyIKc3luIG1hdGNoICBmb3J0cmFuQ29uZGl0aW9uYWwJIlw8ZW5kXHMqd2hlcmUiCnN5biBtYXRjaCAgZm9ydHJhbkNvbmRpdGlvbmFsCSJcPHNlbGVjdFxzKmNhc2UiCnN5biBtYXRjaCAgZm9ydHJhbkNvbmRpdGlvbmFsCSJcPGVuZFxzKnNlbGVjdCIKc3luIG1hdGNoICBmb3J0cmFuVHlwZQkiXDxlbmRccyp0eXBlIgpzeW4gbWF0Y2ggIGZvcnRyYW5UeXBlCSJcPGluXHMqb3V0IgoKc3luIGtleXdvcmQgZm9ydHJhblR5cGUJcHJvY2VkdXJlCnN5biBrZXl3b3JkIGZvcnRyYW5JT1IJCW5hbWVsaXN0CnN5biBrZXl3b3JkIGZvcnRyYW5Db25kaXRpb25hbFIJd2hpbGUKc3luIGtleXdvcmQgZm9ydHJhbkludHJpbnNpY1IJYWNoYXIgaWFjaGFyIHRyYW5zZmVyCgpzeW4ga2V5d29yZCBmb3J0cmFuSW5jbHVkZQkJaW5jbHVkZQpzeW4ga2V5d29yZCBmb3J0cmFuU3RvcmFnZUNsYXNzUglzZXF1ZW5jZQoKc3luIG1hdGNoICAgZm9ydHJhbkNvbmRpdGlvbmFsCSJcPGVuZFxzKmlmIgpzeW4gbWF0Y2ggICBmb3J0cmFuSU8JCWNvbnRhaW5zPWZvcnRyYW5PcGVyYXRvciAiXDxlXChuZFx8cnJcKVxzKj1ccypcZFwrIgpzeW4gbWF0Y2ggICBmb3J0cmFuQ29uZGl0aW9uYWwJIlw8ZWxzZVxzKmlmIgoKc3luIGtleXdvcmQgZm9ydHJhblVuaXRIZWFkZXJPYgllbnRyeQpzeW4gbWF0Y2ggZm9ydHJhblR5cGVSCQlkaXNwbGF5ICJkb3VibGVcc1wrcHJlY2lzaW9uIgpzeW4gbWF0Y2ggZm9ydHJhblR5cGVSCQlkaXNwbGF5ICJkb3VibGVcc1wrY29tcGxleCIKc3luIG1hdGNoIGZvcnRyYW5Vbml0SGVhZGVyUglkaXNwbGF5ICJibG9ja1xzXCtkYXRhIgpzeW4ga2V5d29yZCBmb3J0cmFuU3RvcmFnZUNsYXNzUgljb21tb24gZXF1aXZhbGVuY2UgZGF0YQpzeW4ga2V5d29yZCBmb3J0cmFuSW50cmluc2ljUglkYmxlIGRwcm9kCnN5biBtYXRjaCAgIGZvcnRyYW5PcGVyYXRvclIJIlwuXHMqW2dsXVtldF1ccypcLiIKc3luIG1hdGNoICAgZm9ydHJhbk9wZXJhdG9yUgkiXC5ccypcKGVxXHxuZVwpXHMqXC4iCgpzeW4ga2V5d29yZCBmb3J0cmFuUmVwZWF0CQlmb3JhbGwKc3luIG1hdGNoIGZvcnRyYW5SZXBlYXQJCSJcPGVuZFxzKmZvcmFsbCIKc3luIGtleXdvcmQgZm9ydHJhbkludHJpbnNpYwludWxsIGNwdV90aW1lCnN5biBtYXRjaCBmb3J0cmFuVHlwZQkJCSJcPGVsZW1lbnRhbFw+IgpzeW4gbWF0Y2ggZm9ydHJhblR5cGUJCQkiXDxwdXJlXD4iCmlmIGV4aXN0cygiZm9ydHJhbl9tb3JlX3ByZWNpc2UiKQogIHN5biBtYXRjaCBmb3J0cmFuQ29uc3RydWN0TmFtZSAiXChcPGVuZFxzKmZvcmFsbFxzXCtcKVxAPD1cYVx3Klw+IgplbmRpZgoKaWYgYjpmb3J0cmFuX2RpYWxlY3QgPT0gImYwOCIKICAiIEYyMDAzCiAgc3luIGtleXdvcmQgZm9ydHJhbkludHJpbnNpYyAgICAgICAgY29tbWFuZF9hcmd1bWVudF9jb3VudCBnZXRfY29tbWFuZCBnZXRfY29tbWFuZF9hcmd1bWVudCBnZXRfZW52aXJvbm1lbnRfdmFyaWFibGUgaXNfaW9zdGF0X2VuZCBpc19pb3N0YXRfZW9yIG1vdmVfYWxsb2MgbmV3X2xpbmUgc2VsZWN0ZWRfY2hhcl9raW5kIHNhbWVfdHlwZV9hcyBleHRlbmRzX3R5cGVfb2YKICAiIElTT19DX2JpbmRpbmcKICBzeW4ga2V5d29yZCBmb3J0cmFuQ29uc3RhbnQgICAgICAgICBjX251bGxfY2hhciBjX2FsZXJ0IGNfYmFja3NwYWNlIGNfZm9ybV9mZWVkIGNfbmV3X2xpbmUgY19jYXJyaWFnZV9yZXR1cm4gY19ob3Jpem9udGFsX3RhYiBjX3ZlcnRpY2FsX3RhYgogIHN5biBrZXl3b3JkIGZvcnRyYW5Db25zdGFudCAgICAgICAgIGNfaW50IGNfc2hvcnQgY19sb25nIGNfbG9uZ19sb25nIGNfc2lnbmVkX2NoYXIgY19zaXplX3QgY19pbnQ4X3QgY19pbnQxNl90IGNfaW50MzJfdCBjX2ludDY0X3QgY19pbnRfbGVhc3Q4X3QgY19pbnRfbGVhc3QxNl90IGNfaW50X2xlYXN0MzJfdCBjX2ludF9sZWFzdDY0X3QgY19pbnRfZmFzdDhfdCBjX2ludF9mYXN0MTZfdCBjX2ludF9mYXN0MzJfdCBjX2ludF9mYXN0NjRfdCBjX2ludG1heF90IENfaW50cHRyX3QgY19mbG9hdCBjX2RvdWJsZSBjX2xvbmdfZG91YmxlIGNfZmxvYXRfY29tcGxleCBjX2RvdWJsZV9jb21wbGV4IGNfbG9uZ19kb3VibGVfY29tcGxleCBjX2Jvb2wgY19jaGFyIGNfbnVsbF9wdHIgY19udWxsX2Z1bnB0cgogIHN5biBrZXl3b3JkIGZvcnRyYW5JbnRyaW5zaWMgICAgICAgIGlzb19jX2JpbmRpbmcgY19sb2MgY19mdW5sb2MgY19hc3NvY2lhdGVkICBjX2ZfcG9pbnRlciBjX2ZfcHJvY3BvaW50ZXIKICBzeW4ga2V5d29yZCBmb3J0cmFuVHlwZSAgICAgICAgICAgICBjX3B0ciBjX2Z1bnB0cgogICIgSVNPX0ZvcnRyYW5fZW52CiAgc3luIGtleXdvcmQgZm9ydHJhbkNvbnN0YW50ICAgICAgICAgaXNvX2ZvcnRyYW5fZW52IGNoYXJhY3Rlcl9zdG9yYWdlX3NpemUgZXJyb3JfdW5pdCBmaWxlX3N0b3JhZ2Vfc2l6ZSBpbnB1dF91bml0IGlvc3RhdF9lbmQgaW9zdGF0X2VvciBudW1lcmljX3N0b3JhZ2Vfc2l6ZSBvdXRwdXRfdW5pdAogICIgSUVFRV9hcml0aG1ldGljCiAgc3luIGtleXdvcmQgZm9ydHJhbkludHJpbnNpYyAgICAgICAgaWVlZV9hcml0aG1ldGljIGllZWVfc3VwcG9ydF91bmRlcmZsb3dfY29udHJvbCBpZWVlX2dldF91bmRlcmZsb3dfbW9kZSBpZWVlX3NldF91bmRlcmZsb3dfbW9kZQoKICBzeW4ga2V5d29yZCBmb3J0cmFuUmVhZFdyaXRlCWZsdXNoIHdhaXQKICBzeW4ga2V5d29yZCBmb3J0cmFuSU8gCSAgICAgIGRlY2ltYWwgcm91bmQgaW9tc2cKICBzeW4ga2V5d29yZCBmb3J0cmFuVHlwZSAgICAgICAgICAgICBhc3luY2hyb25vdXMgbm9wYXNzIG5vbl9vdmVycmlkYWJsZSBwYXNzIHByb3RlY3RlZCB2b2xhdGlsZSBhYnN0cmFjdCBleHRlbmRzIGltcG9ydAogIHN5biBrZXl3b3JkIGZvcnRyYW5UeXBlICAgICAgICAgICAgIG5vbl9pbnRyaW5zaWMgdmFsdWUgYmluZCBkZWZlcnJlZCBnZW5lcmljIGZpbmFsIGVudW1lcmF0b3IKICBzeW4gbWF0Y2ggZm9ydHJhblR5cGUgICAgICAgICAgICAgICAiXDxjbGFzc1w+IgogIHN5biBtYXRjaCBmb3J0cmFuVHlwZSAgICAgICAgICAgICAgICJcPGFzc29jaWF0ZVw+IgogIHN5biBtYXRjaCBmb3J0cmFuVHlwZSAgICAgICAgICAgICAgICJcPGVuZFxzKmFzc29jaWF0ZSIKICBzeW4gbWF0Y2ggZm9ydHJhblR5cGUgICAgICAgICAgICAgICAiXDxlbnVtXHMqLFxzKmJpbmRccyooXHMqY1xzKikiCiAgc3luIG1hdGNoIGZvcnRyYW5UeXBlICAgICAgICAgICAgICAgIlw8ZW5kXHMqZW51bSIKICBzeW4gbWF0Y2ggZm9ydHJhbkNvbmRpdGlvbmFsCSJcPHNlbGVjdFxzKnR5cGUiCiAgc3luIG1hdGNoIGZvcnRyYW5Db25kaXRpb25hbCAgICAgICAgIlw8dHlwZVxzKmlzXD4iCiAgc3luIG1hdGNoIGZvcnRyYW5Db25kaXRpb25hbCAgICAgICAgIlw8Y2xhc3Nccyppc1w+IgogIHN5biBtYXRjaCBmb3J0cmFuVW5pdEhlYWRlciAgICAgICAgICJcPGFic3RyYWN0XHMqaW50ZXJmYWNlXD4iCiAgc3luIG1hdGNoIGZvcnRyYW5PcGVyYXRvciAgICAgICAgICAgIlwoW1x8XVwpIgoKICAiIEYyMDA4CiAgc3luIGtleXdvcmQgZm9ydHJhbkludHJpbnNpYyAgICAgICAgYWNvc2ggYXNpbmggYXRhbmggYmVzc2VsX2owIGJlc3NlbF9qMSBiZXNzZWxfam4gYmVzc2VsX3kwIGJlc3NlbF95MSBiZXNzZWxfeW4gZXJmIGVyZmMgZXJmY19zY2FsZWQgZ2FtbWEgbG9nX2dhbW1hIGh5cG90IG5vcm0yCiAgc3luIGtleXdvcmQgZm9ydHJhbkludHJpbnNpYyAgICAgICAgYXRvbWljX2RlZmluZSBhdG9taWNfcmVmIGV4ZWN1dGVfY29tbWFuZF9saW5lIGxlYWR6IHRyYWlseiBzdG9yYWdlX3NpemUgbWVyZ2VfYml0cwogIHN5biBrZXl3b3JkIGZvcnRyYW5JbnRyaW5zaWMgICAgICAgIGJnZSBiZ3QgYmxlIGJsdCBkc2hpZnRsIGRzaGlmdHIgZmluZGxvYyBpYWxsIGlhbnkgaXBhcml0eSBpbWFnZV9pbmRleCBsY29ib3VuZCB1Y29ib3VuZCBtYXNrbCBtYXNrciBudW1faW1hZ2VzIHBhcml0eSBwb3BjbnQgcG9wcGFyIHNoaWZ0YSBzaGlmdGwgc2hpZnRyIHRoaXNfaW1hZ2UKICBzeW4ga2V5d29yZCBmb3J0cmFuSU8gICAgICAgICAgICAgICBuZXd1bml0CiAgc3luIGtleXdvcmQgZm9ydHJhblR5cGUgICAgICAgICAgICAgY29udGlndW91cwplbmRpZgoKc3luIGNsdXN0ZXIgZm9ydHJhbkNvbW1lbnRHcm91cCBjb250YWlucz1mb3J0cmFuVG9kbwoKaWYgKGI6Zm9ydHJhbl9maXhlZF9zb3VyY2UgPT0gMSkKICBpZiAhZXhpc3RzKCJmb3J0cmFuX2hhdmVfdGFicyIpCiAgICAiRmxhZyBpdGVtcyBiZXlvbmQgY29sdW1uIDcyCiAgICBzeW4gbWF0Y2ggZm9ydHJhblNlcmlhbE51bWJlcglleGNsdWRlbmwgIl4uXHs3Myx9JCJsYz03MgogICAgIkZsYWcgbGVmdCBtYXJnaW4gZXJyb3JzCiAgICBzeW4gbWF0Y2ggZm9ydHJhbkxhYmVsRXJyb3IJIl4uXHstLDR9W14wLTkgXSIgY29udGFpbnM9Zm9ydHJhblRhYgogICAgc3luIG1hdGNoIGZvcnRyYW5MYWJlbEVycm9yCSJeLlx7NH1cZFxTIgogIGVuZGlmCiAgc3luIG1hdGNoIGZvcnRyYW5Db21tZW50CQlleGNsdWRlbmwgIl5bIWMqXS4qJCIgY29udGFpbnM9QGZvcnRyYW5Db21tZW50R3JvdXAsQHNwZWxsCiAgc3luIG1hdGNoIGZvcnRyYW5MZWZ0TWFyZ2luCQl0cmFuc3BhcmVudCAiXiBcezV9IgogIHN5biBtYXRjaCBmb3J0cmFuQ29udGludWVNYXJrCQlkaXNwbGF5ICJeLlx7NX1cUyJsYz01CmVsc2UKICBzeW4gbWF0Y2ggZm9ydHJhbkNvbnRpbnVlTWFyawkJZGlzcGxheSAiJiIKZW5kaWYKCnN5biBtYXRjaCBmb3J0cmFuQ29tbWVudAlleGNsdWRlbmwgIiEuKiQiIGNvbnRhaW5zPUBmb3J0cmFuQ29tbWVudEdyb3VwLEBzcGVsbAoKImNwcCBpcyBvZnRlbiB1c2VkIHdpdGggRm9ydHJhbgpzeW4gbWF0Y2gJY1ByZVByb2MJCSJeXHMqI1xzKlwoZGVmaW5lXHxpZmRlZlwpXD4uKiIKc3luIG1hdGNoCWNQcmVQcm9jCQkiXlxzKiNccypcKGVsaWZcfGlmXClcPi4qIgpzeW4gbWF0Y2gJY1ByZVByb2MJCSJeXHMqI1xzKlwoaWZuZGVmXHx1bmRlZlwpXD4uKiIKc3luIG1hdGNoCWNQcmVDb25kaXQJCSJeXHMqI1xzKlwoZWxzZVx8ZW5kaWZcKVw+LioiCnN5biByZWdpb24JY0luY2x1ZGVkCWNvbnRhaW5lZCBzdGFydD0rIlteKF0rIHNraXA9K1xcXFxcfFxcIisgZW5kPSsiKyBjb250YWlucz1mb3J0cmFuTGVmdE1hcmdpbixmb3J0cmFuQ29udGludWVNYXJrLGZvcnRyYW5TZXJpYWxOdW1iZXIKc3luIG1hdGNoCWNJbmNsdWRlZAkJY29udGFpbmVkICI8W14+XSo+IgpzeW4gbWF0Y2gJY0luY2x1ZGUJCSJeXHMqI1xzKmluY2x1ZGVcPlxzKlsiPF0iIGNvbnRhaW5zPWNJbmNsdWRlZAoKIlN5bmNocm9uaXNpbmcgbGltaXRzIGFzc3VtZSB0aGF0IGNvbW1lbnQgYW5kIGNvbnRpbnVhdGlvbiBsaW5lcyBhcmUgbm90IG1peGVkCmlmIGV4aXN0cygiZm9ydHJhbl9mb2xkIikgfHwgZXhpc3RzKCJmb3J0cmFuX21vcmVfcHJlY2lzZSIpCiAgc3luIHN5bmMgZnJvbXN0YXJ0CmVsc2VpZiAoYjpmb3J0cmFuX2ZpeGVkX3NvdXJjZSA9PSAwKQogIHN5biBzeW5jIGxpbmVjb250ICImIiBtaW5saW5lcz0zMAplbHNlCiAgc3luIHN5bmMgbWlubGluZXM9MzAKZW5kaWYKCmlmIGV4aXN0cygiZm9ydHJhbl9mb2xkIikKCiAgaWYgKGI6Zm9ydHJhbl9maXhlZF9zb3VyY2UgPT0gMSkKICAgIHN5biByZWdpb24gZm9ydHJhblByb2dyYW0gdHJhbnNwYXJlbnQgZm9sZCBrZWVwZW5kIHN0YXJ0PSJeXHMqcHJvZ3JhbVxzXCtceihcYVx3KlwpIiBza2lwPSJeXChbIWMqXVx8XHMqI1wpLiokIiBleGNsdWRlbmwgZW5kPSJcPGVuZFxzKlwocHJvZ3JhbVwoXHNcK1x6MVw+XClcPVx8JFwpIiBjb250YWlucz1BTExCVVQsZm9ydHJhbk1vZHVsZQogICAgc3luIHJlZ2lvbiBmb3J0cmFuTW9kdWxlIHRyYW5zcGFyZW50IGZvbGQga2VlcGVuZCBzdGFydD0iXlxzKm1vZHVsZVxzXCtcKHByb2NlZHVyZVwpXEAhXHooXGFcdypcKSIgc2tpcD0iXlwoWyFjKl1cfFxzKiNcKS4qJCIgZXhjbHVkZW5sIGVuZD0iXDxlbmRccypcKG1vZHVsZVwoXHNcK1x6MVw+XClcPVx8JFwpIiBjb250YWlucz1BTExCVVQsZm9ydHJhblByb2dyYW0KICAgIHN5biByZWdpb24gZm9ydHJhbkZ1bmN0aW9uIHRyYW5zcGFyZW50IGZvbGQga2VlcGVuZCBleHRlbmQgc3RhcnQ9Il5ccypcKGVsZW1lbnRhbCBcfHB1cmUgXHxyZWN1cnNpdmUgXClcPVxzKlwoXChcKHJlYWwgXHxpbnRlZ2VyIFx8bG9naWNhbCBcfGNvbXBsZXggXHxkb3VibGUgXHMqcHJlY2lzaW9uIFwpXHMqXCgoXChccypraW5kXHMqPVwpXD1ccypcd1wrXHMqKVwpXD1cKVx8dHlwZVxzXCsoXHMqXHdcK1xzKikgXHxjaGFyYWN0ZXIgXCgoXChccypsZW5ccyo9XClcPVxzKlxkXCtccyopXHwoXChccypraW5kXHMqPVwpXD1ccypcd1wrXHMqKVwpXD1cKVw9XHMqZnVuY3Rpb25cc1wrXHooXGFcdypcKSIgc2tpcD0iXlwoWyFjKl1cfFxzKiNcKS4qJCIgZXhjbHVkZW5sIGVuZD0iXDxlbmRccypcKCRcfGZ1bmN0aW9uXChcc1wrXHoxXD5cKVw9XCkiIGNvbnRhaW5zPUFMTEJVVCxmb3J0cmFuUHJvZ3JhbSxmb3J0cmFuTW9kdWxlCiAgICBzeW4gcmVnaW9uIGZvcnRyYW5TdWJyb3V0aW5lIHRyYW5zcGFyZW50IGZvbGQga2VlcGVuZCBleHRlbmQgc3RhcnQ9Il5ccypcKGVsZW1lbnRhbCBcfHB1cmUgXHxyZWN1cnNpdmUgXClcPVxzKnN1YnJvdXRpbmVcc1wrXHooXGFcdypcKSIgc2tpcD0iXlwoWyFjKl1cfFxzKiNcKS4qJCIgZXhjbHVkZW5sIGVuZD0iXDxlbmRccypcKCRcfHN1YnJvdXRpbmVcKFxzXCtcejFcPlwpXD1cKSIgY29udGFpbnM9QUxMQlVULGZvcnRyYW5Qcm9ncmFtLGZvcnRyYW5Nb2R1bGUKICAgIHN5biByZWdpb24gZm9ydHJhbkJsb2NrRGF0YSB0cmFuc3BhcmVudCBmb2xkIGtlZXBlbmQgc3RhcnQ9Ilw8YmxvY2tccypkYXRhXChcc1wrXHooXGFcdypcKVwpXD0iIHNraXA9Il5cKFshYypdXHxccyojXCkuKiQiIGV4Y2x1ZGVubCBlbmQ9Ilw8ZW5kXHMqXCgkXHxibG9ja1xzKmRhdGFcKFxzXCtcejFcPlwpXD1cKSIgY29udGFpbnM9QUxMQlVULGZvcnRyYW5Qcm9ncmFtLGZvcnRyYW5Nb2R1bGUsZm9ydHJhblN1YnJvdXRpbmUsZm9ydHJhbkZ1bmN0aW9uLGZvcnRyYW43N0xvb3AsZm9ydHJhbkNhc2UsZm9ydHJhbjkwTG9vcCxmb3J0cmFuSWZCbG9jawogICAgc3luIHJlZ2lvbiBmb3J0cmFuSW50ZXJmYWNlIHRyYW5zcGFyZW50IGZvbGQga2VlcGVuZCBleHRlbmQgc3RhcnQ9Il5ccyppbnRlcmZhY2VcPiIgc2tpcD0iXlwoWyFjKl1cfFxzKiNcKS4qJCIgZXhjbHVkZW5sIGVuZD0iXDxlbmRccyppbnRlcmZhY2VcPiIgY29udGFpbnM9QUxMQlVULGZvcnRyYW5Qcm9ncmFtLGZvcnRyYW5Nb2R1bGUsZm9ydHJhbjc3TG9vcCxmb3J0cmFuQ2FzZSxmb3J0cmFuOTBMb29wLGZvcnRyYW5JZkJsb2NrCiAgICBzeW4gcmVnaW9uIGZvcnRyYW5UeXBlRGVmIHRyYW5zcGFyZW50IGZvbGQga2VlcGVuZCBleHRlbmQgc3RhcnQ9Il5ccyp0eXBlXHMqXCgsXHMqXChwdWJsaWNcfHByaXZhdGVcKVwpXD1ccyo6OiIgc2tpcD0iXlwoWyFjKl1cfFxzKiNcKS4qJCIgZXhjbHVkZW5sIGVuZD0iXDxlbmRccyp0eXBlXD4iIGNvbnRhaW5zPUFMTEJVVCxmb3J0cmFuUHJvZ3JhbSxmb3J0cmFuTW9kdWxlLGZvcnRyYW43N0xvb3AsZm9ydHJhbkNhc2UsZm9ydHJhbjkwTG9vcCxmb3J0cmFuSWZCbG9jawogIGVsc2UKICAgIHN5biByZWdpb24gZm9ydHJhblByb2dyYW0gdHJhbnNwYXJlbnQgZm9sZCBrZWVwZW5kIHN0YXJ0PSJeXHMqcHJvZ3JhbVxzXCtceihcYVx3KlwpIiBza2lwPSJeXHMqWyEjXS4qJCIgZXhjbHVkZW5sIGVuZD0iXDxlbmRccypcKHByb2dyYW1cKFxzXCtcejFcPlwpXD1cfCRcKSIgY29udGFpbnM9QUxMQlVULGZvcnRyYW5Nb2R1bGUKICAgIHN5biByZWdpb24gZm9ydHJhbk1vZHVsZSB0cmFuc3BhcmVudCBmb2xkIGtlZXBlbmQgc3RhcnQ9Il5ccyptb2R1bGVcc1wrXChwcm9jZWR1cmVcKVxAIVx6KFxhXHcqXCkiIHNraXA9Il5ccypbISNdLiokIiBleGNsdWRlbmwgZW5kPSJcPGVuZFxzKlwobW9kdWxlXChcc1wrXHoxXD5cKVw9XHwkXCkiIGNvbnRhaW5zPUFMTEJVVCxmb3J0cmFuUHJvZ3JhbQogICAgc3luIHJlZ2lvbiBmb3J0cmFuRnVuY3Rpb24gdHJhbnNwYXJlbnQgZm9sZCBrZWVwZW5kIGV4dGVuZCBzdGFydD0iXlxzKlwoZWxlbWVudGFsIFx8cHVyZSBcfHJlY3Vyc2l2ZSBcKVw9XHMqXChcKFwocmVhbCBcfGludGVnZXIgXHxsb2dpY2FsIFx8Y29tcGxleCBcfGRvdWJsZSBccypwcmVjaXNpb24gXClccypcKChcKFxzKmtpbmRccyo9XClcPVxzKlx3XCtccyopXClcPVwpXHx0eXBlXHNcKyhccypcd1wrXHMqKSBcfGNoYXJhY3RlciBcKChcKFxzKmxlblxzKj1cKVw9XHMqXGRcK1xzKilcfChcKFxzKmtpbmRccyo9XClcPVxzKlx3XCtccyopXClcPVwpXD1ccypmdW5jdGlvblxzXCtceihcYVx3KlwpIiBza2lwPSJeXHMqWyEjXS4qJCIgZXhjbHVkZW5sIGVuZD0iXDxlbmRccypcKCRcfGZ1bmN0aW9uXChcc1wrXHoxXD5cKVw9XCkiIGNvbnRhaW5zPUFMTEJVVCxmb3J0cmFuUHJvZ3JhbSxmb3J0cmFuTW9kdWxlCiAgICBzeW4gcmVnaW9uIGZvcnRyYW5TdWJyb3V0aW5lIHRyYW5zcGFyZW50IGZvbGQga2VlcGVuZCBleHRlbmQgc3RhcnQ9Il5ccypcKGVsZW1lbnRhbCBcfHB1cmUgXHxyZWN1cnNpdmUgXClcPVxzKnN1YnJvdXRpbmVcc1wrXHooXGFcdypcKSIgc2tpcD0iXlxzKlshI10uKiQiIGV4Y2x1ZGVubCBlbmQ9Ilw8ZW5kXHMqXCgkXHxzdWJyb3V0aW5lXChcc1wrXHoxXD5cKVw9XCkiIGNvbnRhaW5zPUFMTEJVVCxmb3J0cmFuUHJvZ3JhbSxmb3J0cmFuTW9kdWxlCiAgICBzeW4gcmVnaW9uIGZvcnRyYW5CbG9ja0RhdGEgdHJhbnNwYXJlbnQgZm9sZCBrZWVwZW5kIHN0YXJ0PSJcPGJsb2NrXHMqZGF0YVwoXHNcK1x6KFxhXHcqXClcKVw9IiBza2lwPSJeXHMqWyEjXS4qJCIgZXhjbHVkZW5sIGVuZD0iXDxlbmRccypcKCRcfGJsb2NrXHMqZGF0YVwoXHNcK1x6MVw+XClcPVwpIiBjb250YWlucz1BTExCVVQsZm9ydHJhblByb2dyYW0sZm9ydHJhbk1vZHVsZSxmb3J0cmFuU3Vicm91dGluZSxmb3J0cmFuRnVuY3Rpb24sZm9ydHJhbjc3TG9vcCxmb3J0cmFuQ2FzZSxmb3J0cmFuOTBMb29wLGZvcnRyYW5JZkJsb2NrCiAgICBzeW4gcmVnaW9uIGZvcnRyYW5JbnRlcmZhY2UgdHJhbnNwYXJlbnQgZm9sZCBrZWVwZW5kIGV4dGVuZCBzdGFydD0iXlxzKmludGVyZmFjZVw+IiBza2lwPSJeXHMqWyEjXS4qJCIgZXhjbHVkZW5sIGVuZD0iXDxlbmRccyppbnRlcmZhY2VcPiIgY29udGFpbnM9QUxMQlVULGZvcnRyYW5Qcm9ncmFtLGZvcnRyYW5Nb2R1bGUsZm9ydHJhbjc3TG9vcCxmb3J0cmFuQ2FzZSxmb3J0cmFuOTBMb29wLGZvcnRyYW5JZkJsb2NrCiAgICBzeW4gcmVnaW9uIGZvcnRyYW5UeXBlRGVmIHRyYW5zcGFyZW50IGZvbGQga2VlcGVuZCBleHRlbmQgc3RhcnQ9Il5ccyp0eXBlXHMqXCgsXHMqXChwdWJsaWNcfHByaXZhdGVcKVwpXD1ccyo6OiIgc2tpcD0iXlxzKlshI10uKiQiIGV4Y2x1ZGVubCBlbmQ9Ilw8ZW5kXHMqdHlwZVw+IiBjb250YWlucz1BTExCVVQsZm9ydHJhblByb2dyYW0sZm9ydHJhbk1vZHVsZSxmb3J0cmFuNzdMb29wLGZvcnRyYW5DYXNlLGZvcnRyYW45MExvb3AsZm9ydHJhbklmQmxvY2sKICBlbmRpZgoKICBpZiBleGlzdHMoImZvcnRyYW5fZm9sZF9jb25kaXRpb25hbHMiKQogICAgaWYgKGI6Zm9ydHJhbl9maXhlZF9zb3VyY2UgPT0gMSkKICAgICAgc3luIHJlZ2lvbiBmb3J0cmFuNzdMb29wIHRyYW5zcGFyZW50IGZvbGQga2VlcGVuZCBzdGFydD0iXDxkb1xzXCtceihcZFwrXCkiIGVuZD0iXlxzKlx6MVw+IiBjb250YWlucz1BTExCVVQsZm9ydHJhblVuaXRIZWFkZXIsZm9ydHJhblN0cnVjdHVyZSxmb3J0cmFuU3RvcmFnZUNsYXNzLGZvcnRyYW5UeXBlLGZvcnRyYW5Qcm9ncmFtLGZvcnRyYW5Nb2R1bGUsZm9ydHJhblN1YnJvdXRpbmUsZm9ydHJhbkZ1bmN0aW9uLGZvcnRyYW5CbG9ja0RhdGEKICAgICAgc3luIHJlZ2lvbiBmb3J0cmFuOTBMb29wIHRyYW5zcGFyZW50IGZvbGQga2VlcGVuZCBleHRlbmQgc3RhcnQ9IlwoXDxlbmRcc1wrXClcQDwhXDxkb1woXHNcK1xhXHxccyokXCkiIHNraXA9Il5cKFshYypdXHxccyojXCkuKiQiIGV4Y2x1ZGVubCBlbmQ9Ilw8ZW5kXHMqZG9cPiIgY29udGFpbnM9QUxMQlVULGZvcnRyYW5Vbml0SGVhZGVyLGZvcnRyYW5TdHJ1Y3R1cmUsZm9ydHJhblN0b3JhZ2VDbGFzcyxmb3J0cmFuVHlwZSxmb3J0cmFuUHJvZ3JhbSxmb3J0cmFuTW9kdWxlLGZvcnRyYW5TdWJyb3V0aW5lLGZvcnRyYW5GdW5jdGlvbixmb3J0cmFuQmxvY2tEYXRhCiAgICAgIHN5biByZWdpb24gZm9ydHJhbklmQmxvY2sgdHJhbnNwYXJlbnQgZm9sZCBrZWVwZW5kIGV4dGVuZCBzdGFydD0iXChcPGVcKG5kXHxsc2VcKVxzXCtcKVxAPCFcPGlmXHMqKC5cKylccyp0aGVuXD4iIHNraXA9Il5cKFshYypdXHxccyojXCkuKiQiIGVuZD0iXDxlbmRccyppZlw+IiBjb250YWlucz1BTExCVVQsZm9ydHJhblVuaXRIZWFkZXIsZm9ydHJhblN0cnVjdHVyZSxmb3J0cmFuU3RvcmFnZUNsYXNzLGZvcnRyYW5UeXBlLGZvcnRyYW5Qcm9ncmFtLGZvcnRyYW5Nb2R1bGUsZm9ydHJhblN1YnJvdXRpbmUsZm9ydHJhbkZ1bmN0aW9uLGZvcnRyYW5CbG9ja0RhdGEKICAgICAgc3luIHJlZ2lvbiBmb3J0cmFuQ2FzZSB0cmFuc3BhcmVudCBmb2xkIGtlZXBlbmQgZXh0ZW5kIHN0YXJ0PSJcPHNlbGVjdFxzKmNhc2VcPiIgc2tpcD0iXlwoWyFjKl1cfFxzKiNcKS4qJCIgZW5kPSJcPGVuZFxzKnNlbGVjdFw+IiBjb250YWlucz1BTExCVVQsZm9ydHJhblVuaXRIZWFkZXIsZm9ydHJhblN0cnVjdHVyZSxmb3J0cmFuU3RvcmFnZUNsYXNzLGZvcnRyYW5UeXBlLGZvcnRyYW5Qcm9ncmFtLGZvcnRyYW5Nb2R1bGUsZm9ydHJhblN1YnJvdXRpbmUsZm9ydHJhbkZ1bmN0aW9uLGZvcnRyYW5CbG9ja0RhdGEKICAgIGVsc2UKICAgICAgc3luIHJlZ2lvbiBmb3J0cmFuNzdMb29wIHRyYW5zcGFyZW50IGZvbGQga2VlcGVuZCBzdGFydD0iXDxkb1xzXCtceihcZFwrXCkiIGVuZD0iXlxzKlx6MVw+IiBjb250YWlucz1BTExCVVQsZm9ydHJhblVuaXRIZWFkZXIsZm9ydHJhblN0cnVjdHVyZSxmb3J0cmFuU3RvcmFnZUNsYXNzLGZvcnRyYW5UeXBlLGZvcnRyYW5Qcm9ncmFtLGZvcnRyYW5Nb2R1bGUsZm9ydHJhblN1YnJvdXRpbmUsZm9ydHJhbkZ1bmN0aW9uLGZvcnRyYW5CbG9ja0RhdGEKICAgICAgc3luIHJlZ2lvbiBmb3J0cmFuOTBMb29wIHRyYW5zcGFyZW50IGZvbGQga2VlcGVuZCBleHRlbmQgc3RhcnQ9IlwoXDxlbmRcc1wrXClcQDwhXDxkb1woXHNcK1xhXHxccyokXCkiIHNraXA9Il5ccypbISNdLiokIiBleGNsdWRlbmwgZW5kPSJcPGVuZFxzKmRvXD4iIGNvbnRhaW5zPUFMTEJVVCxmb3J0cmFuVW5pdEhlYWRlcixmb3J0cmFuU3RydWN0dXJlLGZvcnRyYW5TdG9yYWdlQ2xhc3MsZm9ydHJhblR5cGUsZm9ydHJhblByb2dyYW0sZm9ydHJhbk1vZHVsZSxmb3J0cmFuU3Vicm91dGluZSxmb3J0cmFuRnVuY3Rpb24sZm9ydHJhbkJsb2NrRGF0YQogICAgICBzeW4gcmVnaW9uIGZvcnRyYW5JZkJsb2NrIHRyYW5zcGFyZW50IGZvbGQga2VlcGVuZCBleHRlbmQgc3RhcnQ9IlwoXDxlXChuZFx8bHNlXClcc1wrXClcQDwhXDxpZlxzKiguXCspXHMqdGhlblw+IiBza2lwPSJeXHMqWyEjXS4qJCIgZW5kPSJcPGVuZFxzKmlmXD4iIGNvbnRhaW5zPUFMTEJVVCxmb3J0cmFuVW5pdEhlYWRlcixmb3J0cmFuU3RydWN0dXJlLGZvcnRyYW5TdG9yYWdlQ2xhc3MsZm9ydHJhblR5cGUsZm9ydHJhblByb2dyYW0sZm9ydHJhbk1vZHVsZSxmb3J0cmFuU3Vicm91dGluZSxmb3J0cmFuRnVuY3Rpb24sZm9ydHJhbkJsb2NrRGF0YQogICAgICBzeW4gcmVnaW9uIGZvcnRyYW5DYXNlIHRyYW5zcGFyZW50IGZvbGQga2VlcGVuZCBleHRlbmQgc3RhcnQ9Ilw8c2VsZWN0XHMqY2FzZVw+IiBza2lwPSJeXHMqWyEjXS4qJCIgZW5kPSJcPGVuZFxzKnNlbGVjdFw+IiBjb250YWlucz1BTExCVVQsZm9ydHJhblVuaXRIZWFkZXIsZm9ydHJhblN0cnVjdHVyZSxmb3J0cmFuU3RvcmFnZUNsYXNzLGZvcnRyYW5UeXBlLGZvcnRyYW5Qcm9ncmFtLGZvcnRyYW5Nb2R1bGUsZm9ydHJhblN1YnJvdXRpbmUsZm9ydHJhbkZ1bmN0aW9uLGZvcnRyYW5CbG9ja0RhdGEKICAgIGVuZGlmCiAgZW5kaWYKCiAgaWYgZXhpc3RzKCJmb3J0cmFuX2ZvbGRfbXVsdGlsaW5lY29tbWVudHMiKQogICAgaWYgKGI6Zm9ydHJhbl9maXhlZF9zb3VyY2UgPT0gMSkKICAgICAgc3luIG1hdGNoIGZvcnRyYW5NdWx0aUxpbmVDb21tZW50cyB0cmFuc3BhcmVudCBmb2xkICJcKF5bIWMqXS4qXChcblx8XCUkXClcKVx7NCx9IiBjb250YWlucz1BTExCVVQsZm9ydHJhbk11bHRpQ29tbWVudExpbmVzCiAgICBlbHNlCiAgICAgIHN5biBtYXRjaCBmb3J0cmFuTXVsdGlMaW5lQ29tbWVudHMgdHJhbnNwYXJlbnQgZm9sZCAiXCheXHMqIS4qXChcblx8XCUkXClcKVx7NCx9IiBjb250YWlucz1BTExCVVQsZm9ydHJhbk11bHRpQ29tbWVudExpbmVzCiAgICBlbmRpZgogIGVuZGlmCmVuZGlmCgoiIERlZmluZSB0aGUgZGVmYXVsdCBoaWdobGlnaHRpbmcuCiIgVGhlIGRlZmF1bHQgaGlnaGxpZ2h0aW5nIGRpZmZlcnMgZm9yIGVhY2ggZGlhbGVjdC4KIiBUcmFuc3BhcmVudCBncm91cHM6CiIgZm9ydHJhblBhcmVuLCBmb3J0cmFuTGVmdE1hcmdpbgoiIGZvcnRyYW5Qcm9ncmFtLCBmb3J0cmFuTW9kdWxlLCBmb3J0cmFuU3Vicm91dGluZSwgZm9ydHJhbkZ1bmN0aW9uLAoiIGZvcnRyYW5CbG9ja0RhdGEKIiBmb3J0cmFuNzdMb29wLCBmb3J0cmFuOTBMb29wLCBmb3J0cmFuSWZCbG9jaywgZm9ydHJhbkNhc2UKIiBmb3J0cmFuTXVsdGlDb21tZW50TGluZXMKaGkgZGVmIGxpbmsgZm9ydHJhbktleXdvcmQgCUtleXdvcmQKaGkgZGVmIGxpbmsgZm9ydHJhbkNvbnN0cnVjdE5hbWUJSWRlbnRpZmllcgpoaSBkZWYgbGluayBmb3J0cmFuQ29uZGl0aW9uYWwJQ29uZGl0aW9uYWwKaGkgZGVmIGxpbmsgZm9ydHJhblJlcGVhdAlSZXBlYXQKaGkgZGVmIGxpbmsgZm9ydHJhblRvZG8JCVRvZG8KaGkgZGVmIGxpbmsgZm9ydHJhbkNvbnRpbnVlTWFyawlTcGVjaWFsCmhpIGRlZiBsaW5rIGZvcnRyYW5TdHJpbmcJU3RyaW5nCmhpIGRlZiBsaW5rIGZvcnRyYW5OdW1iZXIJTnVtYmVyCmhpIGRlZiBsaW5rIGZvcnRyYW5PcGVyYXRvcglPcGVyYXRvcgpoaSBkZWYgbGluayBmb3J0cmFuQm9vbGVhbglCb29sZWFuCmhpIGRlZiBsaW5rIGZvcnRyYW5MYWJlbEVycm9yCUVycm9yCmhpIGRlZiBsaW5rIGZvcnRyYW5PYnNvbGV0ZQlUb2RvCmhpIGRlZiBsaW5rIGZvcnRyYW5UeXBlCQlUeXBlCmhpIGRlZiBsaW5rIGZvcnRyYW5TdHJ1Y3R1cmUJVHlwZQpoaSBkZWYgbGluayBmb3J0cmFuU3RvcmFnZUNsYXNzCVN0b3JhZ2VDbGFzcwpoaSBkZWYgbGluayBmb3J0cmFuQ2FsbAkJRnVuY3Rpb24KaGkgZGVmIGxpbmsgZm9ydHJhblVuaXRIZWFkZXIJZm9ydHJhblByZUNvbmRpdApoaSBkZWYgbGluayBmb3J0cmFuUmVhZFdyaXRlCUtleXdvcmQKaGkgZGVmIGxpbmsgZm9ydHJhbklPCQlLZXl3b3JkCmhpIGRlZiBsaW5rIGZvcnRyYW5JbnRyaW5zaWMJRnVuY3Rpb24KaGkgZGVmIGxpbmsgZm9ydHJhbkNvbnN0YW50CUNvbnN0YW50CgoiIFRvIHN0b3AgZGVsZXRlZCAmIG9ic29sZXNjZW50IGZlYXR1cmVzIGJlaW5nIGhpZ2hsaWdodGVkIGFzIFRvZG8gaXRlbXMsCiIgY29tbWVudCBvdXQgdGhlIG5leHQgNSBsaW5lcyBhbmQgdW5jb21tZW50IHRoZSA1IGxpbmVzIGFmdGVyIHRoYXQKaGkgZGVmIGxpbmsgZm9ydHJhblVuaXRIZWFkZXJPYiAgICBmb3J0cmFuT2Jzb2xldGUKaGkgZGVmIGxpbmsgZm9ydHJhbktleXdvcmRPYiAgICAgICBmb3J0cmFuT2Jzb2xldGUKaGkgZGVmIGxpbmsgZm9ydHJhbkNvbmRpdGlvbmFsT2IgICBmb3J0cmFuT2Jzb2xldGUKaGkgZGVmIGxpbmsgZm9ydHJhblR5cGVPYiAgICAgICAgICBmb3J0cmFuT2Jzb2xldGUKaGkgZGVmIGxpbmsgZm9ydHJhbktleXdvcmREZWwgICAgICBmb3J0cmFuT2Jzb2xldGUKImhpIGRlZiBsaW5rIGZvcnRyYW5Vbml0SGVhZGVyT2IgICAgZm9ydHJhblVuaXRIZWFkZXIKImhpIGRlZiBsaW5rIGZvcnRyYW5LZXl3b3JkT2IgICAgICAgZm9ydHJhbktleXdvcmQKImhpIGRlZiBsaW5rIGZvcnRyYW5Db25kaXRpb25hbE9iICAgZm9ydHJhbkNvbmRpdGlvbmFsCiJoaSBkZWYgbGluayBmb3J0cmFuVHlwZU9iICAgICAgICAgIGZvcnRyYW5UeXBlCiJoaSBkZWYgbGluayBmb3J0cmFuS2V5d29yZERlbCAgICAgIGZvcnRyYW5LZXl3b3JkCgppZiBiOmZvcnRyYW5fZGlhbGVjdCA9PSAiRiIKICBoaSEgZGVmIGxpbmsgZm9ydHJhbkludHJpbnNpY1IJZm9ydHJhbk9ic29sZXRlCiAgaGkhIGRlZiBsaW5rIGZvcnRyYW5Vbml0SGVhZGVyUglmb3J0cmFuT2Jzb2xldGUKICBoaSEgZGVmIGxpbmsgZm9ydHJhblR5cGVSCQlmb3J0cmFuT2Jzb2xldGUKICBoaSEgZGVmIGxpbmsgZm9ydHJhblN0b3JhZ2VDbGFzc1IJZm9ydHJhbk9ic29sZXRlCiAgaGkhIGRlZiBsaW5rIGZvcnRyYW5PcGVyYXRvclIgCWZvcnRyYW5PYnNvbGV0ZQogIGhpISBkZWYgbGluayBmb3J0cmFuSW5jbHVkZSAgIAlmb3J0cmFuT2Jzb2xldGUKICBoaSEgZGVmIGxpbmsgZm9ydHJhbkxhYmVsTnVtYmVyCWZvcnRyYW5PYnNvbGV0ZQogIGhpISBkZWYgbGluayBmb3J0cmFuVGFyZ2V0CSAgICAgICAgZm9ydHJhbk9ic29sZXRlCiAgaGkhIGRlZiBsaW5rIGZvcnRyYW5GbG9hdElsbAkgICAgICAgIGZvcnRyYW5PYnNvbGV0ZQogIGhpISBkZWYgbGluayBmb3J0cmFuSU9SCQlmb3J0cmFuT2Jzb2xldGUKICBoaSEgZGVmIGxpbmsgZm9ydHJhbktleXdvcmRSCSAgICAgICAgZm9ydHJhbk9ic29sZXRlCiAgaGkhIGRlZiBsaW5rIGZvcnRyYW5TdHJpbmdSCSAgICAgICAgZm9ydHJhbk9ic29sZXRlCiAgaGkhIGRlZiBsaW5rIGZvcnRyYW5Db25kaXRpb25hbFIJZm9ydHJhbk9ic29sZXRlCmVsc2UKICBoaSEgZGVmIGxpbmsgZm9ydHJhbkludHJpbnNpY1IJZm9ydHJhbkludHJpbnNpYwogIGhpISBkZWYgbGluayBmb3J0cmFuVW5pdEhlYWRlclIJZm9ydHJhblByZUNvbmRpdAogIGhpISBkZWYgbGluayBmb3J0cmFuVHlwZVIJCWZvcnRyYW5UeXBlCiAgaGkhIGRlZiBsaW5rIGZvcnRyYW5TdG9yYWdlQ2xhc3NSCWZvcnRyYW5TdG9yYWdlQ2xhc3MKICBoaSEgZGVmIGxpbmsgZm9ydHJhbk9wZXJhdG9yUgkgICAgICAgIGZvcnRyYW5PcGVyYXRvcgogIGhpISBkZWYgbGluayBmb3J0cmFuSW5jbHVkZQkgICAgICAgIEluY2x1ZGUKICBoaSEgZGVmIGxpbmsgZm9ydHJhbkxhYmVsTnVtYmVyCVNwZWNpYWwKICBoaSEgZGVmIGxpbmsgZm9ydHJhblRhcmdldAkgICAgICAgIFNwZWNpYWwKICBoaSEgZGVmIGxpbmsgZm9ydHJhbkZsb2F0SWxsCSAgICAgICAgZm9ydHJhbkZsb2F0CiAgaGkhIGRlZiBsaW5rIGZvcnRyYW5JT1IJCWZvcnRyYW5JTwogIGhpISBkZWYgbGluayBmb3J0cmFuS2V5d29yZFIJICAgICAgICBmb3J0cmFuS2V5d29yZAogIGhpISBkZWYgbGluayBmb3J0cmFuU3RyaW5nUgkgICAgICAgIGZvcnRyYW5TdHJpbmcKICBoaSEgZGVmIGxpbmsgZm9ydHJhbkNvbmRpdGlvbmFsUglmb3J0cmFuQ29uZGl0aW9uYWwKZW5kaWYKCmhpIGRlZiBsaW5rIGZvcnRyYW5Gb3JtYXRTcGVjCUlkZW50aWZpZXIKaGkgZGVmIGxpbmsgZm9ydHJhbkZsb2F0CUZsb2F0CmhpIGRlZiBsaW5rIGZvcnRyYW5QcmVDb25kaXQJUHJlQ29uZGl0CmhpIGRlZiBsaW5rIGNJbmNsdWRlZAkJZm9ydHJhblN0cmluZwpoaSBkZWYgbGluayBjSW5jbHVkZQkJSW5jbHVkZQpoaSBkZWYgbGluayBjUHJlUHJvYwkJUHJlUHJvYwpoaSBkZWYgbGluayBjUHJlQ29uZGl0CQlQcmVDb25kaXQKaGkgZGVmIGxpbmsgZm9ydHJhblBhcmVuRXJyb3IJRXJyb3IKaGkgZGVmIGxpbmsgZm9ydHJhbkNvbW1lbnQJQ29tbWVudApoaSBkZWYgbGluayBmb3J0cmFuU2VyaWFsTnVtYmVyCVRvZG8KaGkgZGVmIGxpbmsgZm9ydHJhblRhYgkJRXJyb3IKCiIgVW5jb21tZW50IHRoZSBuZXh0IGxpbmUgaWYgeW91IHVzZSBleHRyYSBpbnRyaW5zaWNzIHByb3ZpZGVkIGJ5IHZlbmRvcnMKImhpIGRlZiBsaW5rIGZvcnRyYW5FeHRyYUludHJpbnNpYwlGdW5jdGlvbgoKbGV0IGI6Y3VycmVudF9zeW50YXggPSAiZm9ydHJhbiIKCmxldCAmY3BvID0gczpjcG9fc2F2ZQp1bmxldCBzOmNwb19zYXZlCiIgdmltOiB0cz04IHR3PTEzMgo=