ZGlmZiAtLWdpdCBhL3J1bnRpbWUvc3ludGF4L2ZvcnRyYW4udmltIGIvcnVudGltZS9zeW50YXgvZm9ydHJhbi52aW0KaW5kZXggM2U1Y2IyMi4uNmZlNDJhZiAxMDA2NDQKLS0tIGEvcnVudGltZS9zeW50YXgvZm9ydHJhbi52aW0KKysrIGIvcnVudGltZS9zeW50YXgvZm9ydHJhbi52aW0KQEAgLTEsNyArMSw3IEBACiAiIFZpbSBzeW50YXggZmlsZQotIiBMYW5ndWFnZToJRm9ydHJhbiAyMDA4IChhbmQgZWFybGllciB2ZXJzaW9ucyBpbmNsdWRpbmcgMjAwMywgOTUsIDkwLCBhbmQgNzcpCi0iIFZlcnNpb246CTAuOTEKLSIgTGFzdCBDaGFuZ2U6CTIwMTIgSmFuLiAwMgorIiBMYW5ndWFnZToJRm9ydHJhbiAyMDA4IChhbmQgZWFybGllciB2ZXJzaW9uczogMjAwMywgOTUsIDkwLCBhbmQgNzcpCisiIFZlcnNpb246CTAuOTMKKyIgTGFzdCBDaGFuZ2U6CTIwMTIgSmFuLiAxOAogIiBNYWludGFpbmVyOglBaml0IEouIFRoYWtrYXIgKGFqaXQgQVQgdW5iLmNhKTsgPGh0dHA6Ly93d3cudW5iLmNhL2NoZW0vYWppdC8+CiAiIFVzYWdlOglGb3IgaW5zdHJ1Y3Rpb25zLCBkbyA6aGVscCBmb3J0cmFuLXN5bnRheCBmcm9tIFZpbQogIiBDcmVkaXRzOgpAQCAtMTEsNjYgKzExLDQ4IEBACiAiICBXYWx0ZXIgRGlldWRvbm7pLCBBbGV4YW5kZXIgV2FnbmVyLCBSb21hbiBCZXJ0bGUsIENoYXJsZXMgUmVuZGxlbWFuLAogIiAgQW5kcmV3IEdyaWZmaXRocywgSm9lIEtyYWhuLCBhbmQgSGVuZHJpayBNZXJ4LgogCi0iIEZvciB2ZXJzaW9uIDUueDogQ2xlYXIgYWxsIHN5bnRheCBpdGVtcwotIiBGb3IgdmVyc2lvbiA2Lng6IFF1aXQgaWYgYSBzeW50YXggZmlsZSBpcyBhbHJlYWR5IGxvYWRlZAotaWYgdmVyc2lvbiA8IDYwMAotICBzeW50YXggY2xlYXIKLWVsc2VpZiBleGlzdHMoImI6Y3VycmVudF9zeW50YXgiKQoraWYgZXhpc3RzKCJiOmN1cnJlbnRfc3ludGF4IikKICAgZmluaXNoCiBlbmRpZgogCiBsZXQgczpjcG9fc2F2ZSA9ICZjcG8KIHNldCBjcG8mdmltCiAKLSIgbGV0IGI6Zm9ydHJhbl9kaWFsZWN0ID0gZm9ydHJhbl9kaWFsZWN0IGlmIHNldCBjb3JyZWN0bHkgYnkgdXNlcgotaWYgZXhpc3RzKCJmb3J0cmFuX2RpYWxlY3QiKQotICBpZiBmb3J0cmFuX2RpYWxlY3QgPX4gJ1w8XChmXCg5WzA1XVx8NzdcKVx8ZWxmXHxGXClcPicKLSAgICBsZXQgYjpmb3J0cmFuX2RpYWxlY3QgPSBtYXRjaHN0cihmb3J0cmFuX2RpYWxlY3QsJ1w8XChmXCg5WzA1XVx8NzdcKVx8ZWxmXHxGXClcPicpCi0gIGVsc2UKLSAgICBlY2hvaGwgV2FybmluZ01zZyB8IGVjaG8gIlVua25vd24gdmFsdWUgb2YgZm9ydHJhbl9kaWFsZWN0IiB8IGVjaG9obCBOb25lCi0gICAgbGV0IGI6Zm9ydHJhbl9kaWFsZWN0ID0gInVua25vd24iCisiIENob29zZSBmb3J0cmFuX2RpYWxlY3QgdXNpbmcgdGhlIHByaW9yaXR5OgorIiBzb3VyY2UgZmlsZSBkaXJlY3RpdmUgPiBidWZmZXItbG9jYWwgdmFsdWUgPiBnbG9iYWwgdmFsdWUgPiBkZWZhdWx0CisiIHRyeSB1c2luZyBkaXJlY3RpdmUgaW4gZmlyc3QgdGhyZWUgbGluZXMgb2YgZmlsZQorbGV0IGI6Zm9ydHJhbl9yZXR5cGUgPSBnZXRsaW5lKDEpLiIgIi5nZXRsaW5lKDIpLiIgIi5nZXRsaW5lKDMpCitpZiBiOmZvcnRyYW5fcmV0eXBlID1+PyAnXDxmb3J0cmFuX2RpYWxlY3Rccyo9XHMqRlw+JworICBsZXQgYjpmb3J0cmFuX2RpYWxlY3QgPSAiRiIKK2Vsc2VpZiBiOmZvcnRyYW5fcmV0eXBlID1+PyAnXDxmb3J0cmFuX2RpYWxlY3Rccyo9XHMqZjA4XD4nCisgIGxldCBiOmZvcnRyYW5fZGlhbGVjdCA9ICJmMDgiCitlbHNlaWYgIWV4aXN0cygiYjpmb3J0cmFuX2RpYWxlY3QiKQorICBpZiBleGlzdHMoImc6Zm9ydHJhbl9kaWFsZWN0IikgJiYgZzpmb3J0cmFuX2RpYWxlY3QgPX4jICdcPEZcfGYwOFw+JworICAgICIgdHJ5IGdsb2JhbCB2YXJpYWJsZQorICAgIGxldCBiOmZvcnRyYW5fZGlhbGVjdCA9IGc6Zm9ydHJhbl9kaWFsZWN0CisgIGVsc2UgICAgICAgICAiIG5vdGhpbmcgZm91bmQsIHNvIHVzZSBkZWZhdWx0CisgICAgbGV0IGI6Zm9ydHJhbl9kaWFsZWN0ID0gImYwOCIKICAgZW5kaWYKLWVsc2UKLSAgbGV0IGI6Zm9ydHJhbl9kaWFsZWN0ID0gInVua25vd24iCiBlbmRpZgotCi0iIGZvcnRyYW5fZGlhbGVjdCBub3Qgc2V0IG9yIHNldCBpbmNvcnJlY3RseSBieSB1c2VyLAotaWYgYjpmb3J0cmFuX2RpYWxlY3QgPT0gInVua25vd24iCi0gICIgc2V0IGI6Zm9ydHJhbl9kaWFsZWN0IGZyb20gZGlyZWN0aXZlIGluIGZpcnN0IHRocmVlIGxpbmVzIG9mIGZpbGUKLSAgbGV0IGI6Zm9ydHJhbl9yZXR5cGUgPSBnZXRsaW5lKDEpLiIgIi5nZXRsaW5lKDIpLiIgIi5nZXRsaW5lKDMpCi0gIGlmIGI6Zm9ydHJhbl9yZXR5cGUgPX4gJ1w8Zm9ydHJhbl9kaWFsZWN0XHMqPVxzKkZcPicKLSAgICBsZXQgYjpmb3J0cmFuX2RpYWxlY3QgPSAiRiIKLSAgZWxzZWlmIGI6Zm9ydHJhbl9yZXR5cGUgPX4gJ1w8Zm9ydHJhbl9kaWFsZWN0XHMqPVxzKmVsZlw+JwotICAgIGxldCBiOmZvcnRyYW5fZGlhbGVjdCA9ICJlbGYiCi0gIGVsc2VpZiBiOmZvcnRyYW5fcmV0eXBlID1+ICdcPGZvcnRyYW5fZGlhbGVjdFxzKj1ccypmOTBcPicKLSAgICBsZXQgYjpmb3J0cmFuX2RpYWxlY3QgPSAiZjkwIgotICBlbHNlaWYgYjpmb3J0cmFuX3JldHlwZSA9fiAnXDxmb3J0cmFuX2RpYWxlY3Rccyo9XHMqZjk1XD4nCi0gICAgbGV0IGI6Zm9ydHJhbl9kaWFsZWN0ID0gImY5NSIKLSAgZWxzZWlmIGI6Zm9ydHJhbl9yZXR5cGUgPX4gJ1w8Zm9ydHJhbl9kaWFsZWN0XHMqPVxzKmY3N1w+JwotICAgIGxldCBiOmZvcnRyYW5fZGlhbGVjdCA9ICJmNzciCi0gIGVsc2UKLSAgICAiIG5vIGRpcmVjdGl2ZSBmb3VuZCwgc28gYXNzdW1lIGY5NQotICAgIGxldCBiOmZvcnRyYW5fZGlhbGVjdCA9ICJmOTUiCi0gIGVuZGlmCi0gIHVubGV0IGI6Zm9ydHJhbl9yZXR5cGUKK3VubGV0ISBiOmZvcnRyYW5fcmV0eXBlCisiIG1ha2Ugc3VyZSBidWZmZXItbG9jYWwgdmFsdWUgaXMgbm90IGludmFsaWQKK2lmIGI6Zm9ydHJhbl9kaWFsZWN0ICF+IyAnXDxGXHxmMDhcPicKKyAgbGV0IGI6Zm9ydHJhbl9kaWFsZWN0ID0gImYwOCIKIGVuZGlmCiAKICIgQ2hvb3NlIGJldHdlZW4gZml4ZWQgYW5kIGZyZWUgc291cmNlIGZvcm0gaWYgdGhpcyBoYXNuJ3QgYmVlbiBkb25lIHlldAogaWYgIWV4aXN0cygiYjpmb3J0cmFuX2ZpeGVkX3NvdXJjZSIpCi0gIGlmIGI6Zm9ydHJhbl9kaWFsZWN0ID09ICJlbGYiIHx8IGI6Zm9ydHJhbl9kaWFsZWN0ID09ICJGIgotICAgICIgZWxmIGFuZCBGIHJlcXVpcmUgZnJlZSBzb3VyY2UgZm9ybQorICBpZiBiOmZvcnRyYW5fZGlhbGVjdCA9PSAiRiIKKyAgICAiIEYgcmVxdWlyZXMgZnJlZSBzb3VyY2UgZm9ybQogICAgIGxldCBiOmZvcnRyYW5fZml4ZWRfc291cmNlID0gMAotICBlbHNlaWYgYjpmb3J0cmFuX2RpYWxlY3QgPT0gImY3NyIKLSAgICAiIGY3NyByZXF1aXJlcyBmaXhlZCBzb3VyY2UgZm9ybQotICAgIGxldCBiOmZvcnRyYW5fZml4ZWRfc291cmNlID0gMQogICBlbHNlaWYgZXhpc3RzKCJmb3J0cmFuX2ZyZWVfc291cmNlIikKLSAgICAiIFVzZXIgZ3VhcmFudGVlcyBmcmVlIHNvdXJjZSBmb3JtIGZvciBhbGwgZjkwIGFuZCBmOTUgZmlsZXMKKyAgICAiIFVzZXIgZ3VhcmFudGVlcyBmcmVlIHNvdXJjZSBmb3JtIGZvciBhbGwgZm9ydHJhbiBmaWxlcwogICAgIGxldCBiOmZvcnRyYW5fZml4ZWRfc291cmNlID0gMAogICBlbHNlaWYgZXhpc3RzKCJmb3J0cmFuX2ZpeGVkX3NvdXJjZSIpCi0gICAgIiBVc2VyIGd1YXJhbnRlZXMgZml4ZWQgc291cmNlIGZvcm0gZm9yIGFsbCBmOTAgYW5kIGY5NSBmaWxlcworICAgICIgVXNlciBndWFyYW50ZWVzIGZpeGVkIHNvdXJjZSBmb3JtIGZvciBhbGwgZm9ydHJhbiBmaWxlcwogICAgIGxldCBiOmZvcnRyYW5fZml4ZWRfc291cmNlID0gMQogICBlbHNlCi0gICAgIiBmOTAgYW5kIGY5NSBhbGxvdyBib3RoIGZpeGVkIGFuZCBmcmVlIHNvdXJjZSBmb3JtLgorICAgICIgTW9kZXJuIGZvcnRyYW4gc3RpbGwgYWxsb3dzIGJvdGggZnJlZSBhbmQgZml4ZWQgc291cmNlIGZvcm0uCiAgICAgIiBBc3N1bWUgZml4ZWQgc291cmNlIGZvcm0gdW5sZXNzIHNpZ25zIG9mIGZyZWUgc291cmNlIGZvcm0KICAgICAiIGFyZSBkZXRlY3RlZCBpbiB0aGUgZmlyc3QgZml2ZSBjb2x1bW5zIG9mIHRoZSBmaXJzdCBzOmxtYXggbGluZXMuCiAgICAgIiBEZXRlY3Rpb24gYmVjb21lcyBtb3JlIGFjY3VyYXRlIGFuZCB0aW1lLWNvbnN1bWluZyBpZiBtb3JlIGxpbmVzCkBAIC05NiwyOSArNzgsMTggQEAKIAogc3luIGNhc2UgaWdub3JlCiAKLWlmIGI6Zm9ydHJhbl9kaWFsZWN0ICE9PyAiZjc3IgotICBpZiB2ZXJzaW9uID49IDYwMAotICAgIGlmIGI6Zm9ydHJhbl9maXhlZF9zb3VyY2UgPT0gMQotICAgICAgc3luIG1hdGNoIGZvcnRyYW5Db25zdHJ1Y3ROYW1lCSJeXHNcezYsfVx6c1xhXHcqXHplXHMqOiIKLSAgICBlbHNlCi0gICAgICBzeW4gbWF0Y2ggZm9ydHJhbkNvbnN0cnVjdE5hbWUJIl5ccypcenNcYVx3Klx6ZVxzKjoiCi0gICAgZW5kaWYKLSAgICBpZiBleGlzdHMoImZvcnRyYW5fbW9yZV9wcmVjaXNlIikKLSAgICAgIHN5biBtYXRjaCBmb3J0cmFuQ29uc3RydWN0TmFtZSAiXChcPGVuZFxzKmRvXHNcK1wpXEA8PVxhXHcqIgotICAgICAgc3luIG1hdGNoIGZvcnRyYW5Db25zdHJ1Y3ROYW1lICJcKFw8ZW5kXHMqaWZcc1wrXClcQDw9XGFcdyoiCi0gICAgICBzeW4gbWF0Y2ggZm9ydHJhbkNvbnN0cnVjdE5hbWUgIlwoXDxlbmRccypzZWxlY3Rcc1wrXClcQDw9XGFcdyoiCi0gICAgZW5kaWYKLSAgZWxzZQotICAgIGlmIGI6Zm9ydHJhbl9maXhlZF9zb3VyY2UgPT0gMQotICAgICAgc3luIG1hdGNoIGZvcnRyYW5Db25zdHJ1Y3ROYW1lCSJeXHNcezYsfVxhXHcqXHMqOiIKLSAgICBlbHNlCi0gICAgICBzeW4gbWF0Y2ggZm9ydHJhbkNvbnN0cnVjdE5hbWUJIl5ccypcYVx3KlxzKjoiCi0gICAgZW5kaWYKLSAgZW5kaWYKK2lmIGI6Zm9ydHJhbl9maXhlZF9zb3VyY2UgPT0gMQorICBzeW4gbWF0Y2ggZm9ydHJhbkNvbnN0cnVjdE5hbWUJIl5cc1x7Nix9XHpzXGFcdypcemVccyo6IgorZWxzZQorICBzeW4gbWF0Y2ggZm9ydHJhbkNvbnN0cnVjdE5hbWUJIl5ccypcenNcYVx3Klx6ZVxzKjoiCitlbmRpZgoraWYgZXhpc3RzKCJmb3J0cmFuX21vcmVfcHJlY2lzZSIpCisgIHN5biBtYXRjaCBmb3J0cmFuQ29uc3RydWN0TmFtZSAiXChcPGVuZFxzKmRvXHNcK1wpXEA8PVxhXHcqIgorICBzeW4gbWF0Y2ggZm9ydHJhbkNvbnN0cnVjdE5hbWUgIlwoXDxlbmRccyppZlxzXCtcKVxAPD1cYVx3KiIKKyAgc3luIG1hdGNoIGZvcnRyYW5Db25zdHJ1Y3ROYW1lICJcKFw8ZW5kXHMqc2VsZWN0XHNcK1wpXEA8PVxhXHcqIgogZW5kaWYKIAotc3luIG1hdGNoICAgZm9ydHJhblVuaXRIZWFkZXIJIlw8ZW5kXD4iCi0KK3N5biBtYXRjaCBmb3J0cmFuVW5pdEhlYWRlcgkiXDxlbmRcPiIKIHN5biBtYXRjaCBmb3J0cmFuVHlwZQkJIlw8Y2hhcmFjdGVyXD4iCiBzeW4gbWF0Y2ggZm9ydHJhblR5cGUJCSJcPGNvbXBsZXhcPiIKIHN5biBtYXRjaCBmb3J0cmFuVHlwZQkJIlw8aW50ZWdlclw+IgpAQCAtMTQ1LDcgKzExNiw3IEBACiBzeW4gbWF0Y2ggZm9ydHJhbk9wZXJhdG9yCSJcLlxzKm5cPWVxdlxzKlwuIgogc3luIG1hdGNoIGZvcnRyYW5PcGVyYXRvcgkiXC5ccypcKGFuZFx8b3JcfG5vdFwpXHMqXC4iCiBzeW4gbWF0Y2ggZm9ydHJhbk9wZXJhdG9yCSJcKCtcfC1cfC9cfFwqXCkiCi1zeW4gbWF0Y2ggZm9ydHJhblR5cGVPYgkJIlw8Y2hhcmFjdGVyXD5cQDw9XHMqXCoiCitzeW4gbWF0Y2ggZm9ydHJhblR5cGVPYgkJIlw8Y2hhcmFjdGVyXHMqXCoiCiAKIHN5biBtYXRjaCBmb3J0cmFuQm9vbGVhbgkiXC5ccypcKHRydWVcfGZhbHNlXClccypcLiIKIApAQCAtMTYwLDE3ICsxMzEsMTcgQEAKIAogc3luIGtleXdvcmQgZm9ydHJhbklPCQlhY2Nlc3MgYmxhbmsgZGlyZWN0IGV4aXN0IGZpbGUgZm10IGZvcm0gZm9ybWF0dGVkIGlvc3RhdCBuYW1lIG5hbWVkIG5leHRyZWMgbnVtYmVyIG9wZW5lZCByZWMgcmVjbCBzZXF1ZW50aWFsIHN0YXR1cyB1bmZvcm1hdHRlZCB1bml0CiAKLXN5biBrZXl3b3JkIGZvcnRyYW42NkludHJpbnNpYwkJYWxvZyBhbG9nMTAgYW1heDAgYW1heDEgYW1pbjAgYW1pbjEgYW1vZCBjYWJzIGNjb3MgY2V4cCBjbG9nIGNzaW4gY3NxcnQgZGFicyBkYWNvcyBkYXNpbiBkYXRhbiBkYXRhbjIgZGNvcyBkY29zaCBkZGltIGRleHAgZGludCBkbG9nIGRsb2cxMCBkbWF4MSBkbWluMSBkbW9kIGRuaW50IGRzaWduIGRzaW4gZHNpbmggZHNxcnQgZHRhbiBkdGFuaCBmbG9hdCBpYWJzIGlkaW0gaWRpbnQgaWRuaW50IGlmaXggaXNpZ24gbWF4MCBtYXgxIG1pbjAgbWluMSBzbmdsCitzeW4ga2V5d29yZCBmb3J0cmFuSW50cmluc2ljUgkJYWxvZyBhbG9nMTAgYW1heDAgYW1heDEgYW1pbjAgYW1pbjEgYW1vZCBjYWJzIGNjb3MgY2V4cCBjbG9nIGNzaW4gY3NxcnQgZGFicyBkYWNvcyBkYXNpbiBkYXRhbiBkYXRhbjIgZGNvcyBkY29zaCBkZGltIGRleHAgZGludCBkbG9nIGRsb2cxMCBkbWF4MSBkbWluMSBkbW9kIGRuaW50IGRzaWduIGRzaW4gZHNpbmggZHNxcnQgZHRhbiBkdGFuaCBmbG9hdCBpYWJzIGlkaW0gaWRpbnQgaWRuaW50IGlmaXggaXNpZ24gbWF4MCBtYXgxIG1pbjAgbWluMSBzbmdsCiAKICIgSW50cmluc2ljcyBwcm92aWRlZCBieSBzb21lIHZlbmRvcnMKIHN5biBrZXl3b3JkIGZvcnRyYW5FeHRyYUludHJpbnNpYwlhbGdhbWEgY2RhYnMgY2Rjb3MgY2RleHAgY2Rsb2cgY2RzaW4gY2RzcXJ0IGNxYWJzIGNxY29zIGNxZXhwIGNxbG9nIGNxc2luIGNxc3FydCBkY21wbHggZGNvbmpnIGRlcmYgZGVyZmMgZGZsb2F0IGRnYW1tYSBkaW1hZyBkbGdhbWEgaXFpbnQgcWFicyBxYWNvcyBxYXNpbiBxYXRhbiBxYXRhbjIgcWNtcGx4IHFjb25qZyBxY29zIHFjb3NoIHFkaW0gcWVyZiBxZXJmYyBxZXhwIHFnYW1tYSBxaW1hZyBxbGdhbWEgcWxvZyBxbG9nMTAgcW1heDEgcW1pbjEgcW1vZCBxbmludCBxc2lnbiBxc2luIHFzaW5oIHFzcXJ0IHF0YW4gcXRhbmgKIAotc3luIGtleXdvcmQgZm9ydHJhbjc3SW50cmluc2ljCWFicyBhY29zIGFpbWFnIGFpbnQgYW5pbnQgYXNpbiBhdGFuIGF0YW4yIGNoYXIgY21wbHggY29uamcgY29zIGNvc2ggZXhwIGljaGFyIGluZGV4IGludCBsb2cgbG9nMTAgbWF4IG1pbiBuaW50IHNpZ24gc2luIHNpbmggc3FydCB0YW4gdGFuaAotc3luIG1hdGNoIGZvcnRyYW43N0ludHJpbnNpYwkiXDxsZW5ccypbKCxdIm1lPXMrMwotc3luIG1hdGNoIGZvcnRyYW43N0ludHJpbnNpYwkiXDxyZWFsXHMqKCJtZT1zKzQKK3N5biBrZXl3b3JkIGZvcnRyYW5JbnRyaW5zaWMJYWJzIGFjb3MgYWltYWcgYWludCBhbmludCBhc2luIGF0YW4gYXRhbjIgY2hhciBjbXBseCBjb25qZyBjb3MgY29zaCBleHAgaWNoYXIgaW5kZXggaW50IGxvZyBsb2cxMCBtYXggbWluIG5pbnQgc2lnbiBzaW4gc2luaCBzcXJ0IHRhbiB0YW5oCitzeW4gbWF0Y2ggZm9ydHJhbkludHJpbnNpYwkiXDxsZW5ccypbKCxdIm1lPXMrMworc3luIG1hdGNoIGZvcnRyYW5JbnRyaW5zaWMJIlw8cmVhbFxzKigibWU9cys0CiBzeW4gbWF0Y2ggZm9ydHJhblR5cGUJCSJcPGltcGxpY2l0XHNcK3JlYWwiCiBzeW4gbWF0Y2ggZm9ydHJhblR5cGUJCSJeXHMqcmVhbFw+Igotc3luIG1hdGNoIGZvcnRyYW45MEludHJpbnNpYwkiXDxsb2dpY2FsXHMqKCJtZT1zKzcKK3N5biBtYXRjaCBmb3J0cmFuSW50cmluc2ljCSJcPGxvZ2ljYWxccyooIm1lPXMrNwogc3luIG1hdGNoIGZvcnRyYW5UeXBlCQkiXDxpbXBsaWNpdFxzXCtsb2dpY2FsIgogc3luIG1hdGNoIGZvcnRyYW5UeXBlCQkiXlxzKmxvZ2ljYWxcPiIKIApAQCAtMTc4LDEzICsxNDksMTMgQEAKICIgSW50ZWdlcnMKIHN5biBtYXRjaCBmb3J0cmFuTnVtYmVyCWRpc3BsYXkgIlw8XGRcK1woX1xhXHcqXClcPVw+IgogIiBmbG9hdGluZyBwb2ludCBudW1iZXIsIHdpdGhvdXQgYSBkZWNpbWFsIHBvaW50Ci1zeW4gbWF0Y2ggZm9ydHJhbkZsb2F0Tm9EZWMJZGlzcGxheQkiXDxcZFwrW2RlcV1bLStdXD1cZFwrXChfXGFcdypcKVw9XD4iCitzeW4gbWF0Y2ggZm9ydHJhbkZsb2F0SWxsCWRpc3BsYXkJIlw8XGRcK1tkZXFdWy0rXVw9XGRcK1woX1xhXHcqXClcPVw+IgogIiBmbG9hdGluZyBwb2ludCBudW1iZXIsIHN0YXJ0aW5nIHdpdGggYSBkZWNpbWFsIHBvaW50Ci1zeW4gbWF0Y2ggZm9ydHJhbkZsb2F0SW5pRGVjCWRpc3BsYXkJIlwuXGRcK1woW2RlcV1bLStdXD1cZFwrXClcPVwoX1xhXHcqXClcPVw+Igorc3luIG1hdGNoIGZvcnRyYW5GbG9hdElsbAlkaXNwbGF5CSJcLlxkXCtcKFtkZXFdWy0rXVw9XGRcK1wpXD1cKF9cYVx3KlwpXD1cPiIKICIgZmxvYXRpbmcgcG9pbnQgbnVtYmVyLCBubyBkaWdpdHMgYWZ0ZXIgZGVjaW1hbAotc3luIG1hdGNoIGZvcnRyYW5GbG9hdEVuZERlYwlkaXNwbGF5CSJcPFxkXCtcLlwoW2RlcV1bLStdXD1cZFwrXClcPVwoX1xhXHcqXClcPVw+Igorc3luIG1hdGNoIGZvcnRyYW5GbG9hdElsbAlkaXNwbGF5CSJcPFxkXCtcLlwoW2RlcV1bLStdXD1cZFwrXClcPVwoX1xhXHcqXClcPVw+IgogIiBmbG9hdGluZyBwb2ludCBudW1iZXIsIEQgb3IgUSBleHBvbmVudHMKLXN5biBtYXRjaCBmb3J0cmFuRmxvYXRERXhwCWRpc3BsYXkJIlw8XGRcK1wuXGRcK1woW2RxXVstK11cPVxkXCtcKVw9XChfXGFcdypcKVw9XD4iCitzeW4gbWF0Y2ggZm9ydHJhbkZsb2F0SWxsCWRpc3BsYXkJIlw8XGRcK1wuXGRcK1woW2RxXVstK11cPVxkXCtcKVw9XChfXGFcdypcKVw9XD4iCiAiIGZsb2F0aW5nIHBvaW50IG51bWJlcgogc3luIG1hdGNoIGZvcnRyYW5GbG9hdAlkaXNwbGF5CSJcPFxkXCtcLlxkXCtcKGVbLStdXD1cZFwrXClcPVwoX1xhXHcqXClcPVw+IgogIiBOdW1iZXJzIGluIGZvcm1hdHMKQEAgLTIwMiw3NiArMTczLDczIEBACiBzeW4gbWF0Y2ggZm9ydHJhbkxhYmVsTnVtYmVyCWRpc3BsYXkJIl4gICBcZFxkXD1ccyJtcz1zKzMsbWU9ZS0xCiBzeW4gbWF0Y2ggZm9ydHJhbkxhYmVsTnVtYmVyCWRpc3BsYXkJIl4gICAgXGRccyJtcz1zKzQsbWU9ZS0xCiAKLWlmIHZlcnNpb24gPj0gNjAwICYmIGV4aXN0cygiZm9ydHJhbl9tb3JlX3ByZWNpc2UiKQoraWYgZXhpc3RzKCJmb3J0cmFuX21vcmVfcHJlY2lzZSIpCiAgICIgTnVtYmVycyBhcyB0YXJnZXRzCiAgIHN5biBtYXRjaCBmb3J0cmFuVGFyZ2V0CWRpc3BsYXkJIlwoXDxpZlxzKiguXCspXHMqXClcQDw9XChcZFwrXHMqLFxzKlwpXHsyfVxkXCtcPiIKICAgc3luIG1hdGNoIGZvcnRyYW5UYXJnZXQJZGlzcGxheQkiXChcPGRvXHNcK1wpXEA8PVxkXCtcPiIKICAgc3luIG1hdGNoIGZvcnRyYW5UYXJnZXQJZGlzcGxheQkiXChcPGdvXHMqdG9ccyooXD1cKVxAPD1cKFxkXCtccyosXHMqXCkqXGRcK1w+IgogZW5kaWYKIAotc3luIGtleXdvcmQgZm9ydHJhblR5cGVFeAlleHRlcm5hbAotc3luIGtleXdvcmQgZm9ydHJhbklPRXgJCWZvcm1hdAotc3luIG1hdGNoIGZvcnRyYW5LZXl3b3JkRXgJIlw8Y29udGludWVcPiIKK3N5biBrZXl3b3JkIGZvcnRyYW5UeXBlUglleHRlcm5hbAorc3luIGtleXdvcmQgZm9ydHJhbklPUgkJZm9ybWF0CitzeW4gbWF0Y2ggZm9ydHJhbktleXdvcmRSCSJcPGNvbnRpbnVlXD4iCiBzeW4gbWF0Y2ggZm9ydHJhbktleXdvcmQJIl5ccypcZFwrXHNcK2NvbnRpbnVlXD4iCiBzeW4gbWF0Y2ggZm9ydHJhbktleXdvcmQgIAkiXDxnb1xzKnRvXD4iCiBzeW4gbWF0Y2ggZm9ydHJhbktleXdvcmREZWwgIAkiXDxnb1xzKnRvXHplXHNcKy4qLFxzKiguKiQiCiBzeW4gbWF0Y2ggZm9ydHJhbktleXdvcmRPYiAgCSJcPGdvXHMqdG9cemVccyooXGRcKy4qJCIKLXN5biByZWdpb24gZm9ydHJhblN0cmluZ0V4CXN0YXJ0PSsnKyBlbmQ9KycrIGNvbnRhaW5zPWZvcnRyYW5Db250aW51ZU1hcmssZm9ydHJhbkxlZnRNYXJnaW4sZm9ydHJhblNlcmlhbE51bWJlcgotc3luIGtleXdvcmQgZm9ydHJhbjc3SW50cmluc2ljRXgJZGltIGxnZSBsZ3QgbGxlIGxsdCBtb2QKK3N5biByZWdpb24gZm9ydHJhblN0cmluZ1IJc3RhcnQ9KycrIGVuZD0rJysgY29udGFpbnM9Zm9ydHJhbkNvbnRpbnVlTWFyayxmb3J0cmFuTGVmdE1hcmdpbixmb3J0cmFuU2VyaWFsTnVtYmVyCitzeW4ga2V5d29yZCBmb3J0cmFuSW50cmluc2ljUglkaW0gbGdlIGxndCBsbGUgbGx0IG1vZAogc3luIGtleXdvcmQgZm9ydHJhbktleXdvcmREZWwJYXNzaWduIHBhdXNlCiAKLWlmIGI6Zm9ydHJhbl9kaWFsZWN0ICE9ICJmNzciCitzeW4gbWF0Y2ggZm9ydHJhblR5cGUgICAgICAgICAgICJcPHR5cGVcPiIKK3N5biBrZXl3b3JkIGZvcnRyYW5UeXBlCSAgICAgICAgbm9uZQogCi0gIHN5biBtYXRjaCBmb3J0cmFuVHlwZSAgICAgICAgICJcPHR5cGVcPiIKLSAgc3luIGtleXdvcmQgZm9ydHJhblR5cGUJbm9uZQorc3luIGtleXdvcmQgZm9ydHJhblN0cnVjdHVyZQlwcml2YXRlIHB1YmxpYyBpbnRlbnQgb3B0aW9uYWwKK3N5biBrZXl3b3JkIGZvcnRyYW5TdHJ1Y3R1cmUJcG9pbnRlciB0YXJnZXQgYWxsb2NhdGFibGUKK3N5biBrZXl3b3JkIGZvcnRyYW5TdG9yYWdlQ2xhc3MJaW4gb3V0CitzeW4gbWF0Y2ggZm9ydHJhblN0b3JhZ2VDbGFzcwkiXDxraW5kXHMqPSJtZT1zKzQKK3N5biBtYXRjaCBmb3J0cmFuU3RvcmFnZUNsYXNzCSJcPGxlblxzKj0ibWU9cyszCiAKLSAgc3luIGtleXdvcmQgZm9ydHJhblN0cnVjdHVyZQlwcml2YXRlIHB1YmxpYyBpbnRlbnQgb3B0aW9uYWwKLSAgc3luIGtleXdvcmQgZm9ydHJhblN0cnVjdHVyZQlwb2ludGVyIHRhcmdldCBhbGxvY2F0YWJsZQotICBzeW4ga2V5d29yZCBmb3J0cmFuU3RvcmFnZUNsYXNzCWluIG91dAotICBzeW4gbWF0Y2ggZm9ydHJhblN0b3JhZ2VDbGFzcwkiXDxraW5kXHMqPSJtZT1zKzQKLSAgc3luIG1hdGNoIGZvcnRyYW5TdG9yYWdlQ2xhc3MJIlw8bGVuXHMqPSJtZT1zKzMKK3N5biBtYXRjaCBmb3J0cmFuVW5pdEhlYWRlcgkiXDxtb2R1bGVcPiIKK3N5biBrZXl3b3JkIGZvcnRyYW5Vbml0SGVhZGVyCXVzZSBvbmx5IGNvbnRhaW5zCitzeW4ga2V5d29yZCBmb3J0cmFuVW5pdEhlYWRlcglyZXN1bHQgb3BlcmF0b3IgYXNzaWdubWVudAorc3luIG1hdGNoIGZvcnRyYW5Vbml0SGVhZGVyCSJcPGludGVyZmFjZVw+Igorc3luIG1hdGNoIGZvcnRyYW5Vbml0SGVhZGVyCSJcPHJlY3Vyc2l2ZVw+Igorc3luIGtleXdvcmQgZm9ydHJhbktleXdvcmQJYWxsb2NhdGUgZGVhbGxvY2F0ZSBudWxsaWZ5IGN5Y2xlIGV4aXQKK3N5biBtYXRjaCBmb3J0cmFuQ29uZGl0aW9uYWwJIlw8c2VsZWN0XD4iCitzeW4ga2V5d29yZCBmb3J0cmFuQ29uZGl0aW9uYWwJY2FzZSBkZWZhdWx0IHdoZXJlIGVsc2V3aGVyZQogCi0gIHN5biBtYXRjaCBmb3J0cmFuVW5pdEhlYWRlcgkiXDxtb2R1bGVcPiIKLSAgc3luIGtleXdvcmQgZm9ydHJhblVuaXRIZWFkZXIJdXNlIG9ubHkgY29udGFpbnMKLSAgc3luIGtleXdvcmQgZm9ydHJhblVuaXRIZWFkZXIJcmVzdWx0IG9wZXJhdG9yIGFzc2lnbm1lbnQKLSAgc3luIG1hdGNoIGZvcnRyYW5Vbml0SGVhZGVyCSJcPGludGVyZmFjZVw+IgotICBzeW4gbWF0Y2ggZm9ydHJhblVuaXRIZWFkZXIJIlw8cmVjdXJzaXZlXD4iCi0gIHN5biBrZXl3b3JkIGZvcnRyYW5LZXl3b3JkCWFsbG9jYXRlIGRlYWxsb2NhdGUgbnVsbGlmeSBjeWNsZSBleGl0Ci0gIHN5biBtYXRjaCBmb3J0cmFuQ29uZGl0aW9uYWwJIlw8c2VsZWN0XD4iCi0gIHN5biBrZXl3b3JkIGZvcnRyYW5Db25kaXRpb25hbAljYXNlIGRlZmF1bHQgd2hlcmUgZWxzZXdoZXJlCitzeW4gbWF0Y2ggZm9ydHJhbk9wZXJhdG9yCSJcKFwoPlx8PFwpPVw9XHw9PVx8Lz1cfD1cKSIKK3N5biBtYXRjaCBmb3J0cmFuT3BlcmF0b3IJIj0+IgogCi0gIHN5biBtYXRjaCBmb3J0cmFuT3BlcmF0b3IJIlwoXCg+XHw8XCk9XD1cfD09XHwvPVx8PVwpIgotICBzeW4gbWF0Y2ggZm9ydHJhbk9wZXJhdG9yCSI9PiIKK3N5biByZWdpb24gZm9ydHJhblN0cmluZwlzdGFydD0rIisgZW5kPSsiKwljb250YWlucz1mb3J0cmFuTGVmdE1hcmdpbixmb3J0cmFuQ29udGludWVNYXJrLGZvcnRyYW5TZXJpYWxOdW1iZXIKK3N5biBrZXl3b3JkIGZvcnRyYW5JTwkJcGFkIHBvc2l0aW9uIGFjdGlvbiBkZWxpbSByZWFkd3JpdGUKK3N5biBrZXl3b3JkIGZvcnRyYW5JTwkJZW9yIGFkdmFuY2Ugbm1sCiAKLSAgc3luIHJlZ2lvbiBmb3J0cmFuU3RyaW5nCXN0YXJ0PSsiKyBlbmQ9KyIrCWNvbnRhaW5zPWZvcnRyYW5MZWZ0TWFyZ2luLGZvcnRyYW5Db250aW51ZU1hcmssZm9ydHJhblNlcmlhbE51bWJlcgotICBzeW4ga2V5d29yZCBmb3J0cmFuSU8JCXBhZCBwb3NpdGlvbiBhY3Rpb24gZGVsaW0gcmVhZHdyaXRlCi0gIHN5biBrZXl3b3JkIGZvcnRyYW5JTwkJZW9yIGFkdmFuY2Ugbm1sCitzeW4ga2V5d29yZCBmb3J0cmFuSW50cmluc2ljCWFkanVzdGwgYWRqdXN0ciBhbGwgYWxsb2NhdGVkIGFueSBhc3NvY2lhdGVkIGJpdF9zaXplIGJ0ZXN0IGNlaWxpbmcgY291bnQgY3NoaWZ0IGRhdGVfYW5kX3RpbWUgZGlnaXRzIGRvdF9wcm9kdWN0IGVvc2hpZnQgZXBzaWxvbiBleHBvbmVudCBmbG9vciBmcmFjdGlvbiBodWdlIGlhbmQgaWJjbHIgaWJpdHMgaWJzZXQgaWVvciBpb3IgaXNoZnQgaXNoZnRjIGxib3VuZCBsZW5fdHJpbSBtYXRtdWwgbWF4ZXhwb25lbnQgbWF4bG9jIG1heHZhbCBtZXJnZSBtaW5leHBvbmVudCBtaW5sb2MgbWludmFsIG1vZHVsbyBtdmJpdHMgbmVhcmVzdCBwYWNrIHByZWNpc2lvbiBwcmVzZW50IHByb2R1Y3QgcmFkaXggcmFuZG9tX251bWJlciByYW5kb21fc2VlZCByYW5nZSByZXBlYXQgcmVzaGFwZSBycnNwYWNpbmcKK3N5biBrZXl3b3JkIGZvcnRyYW5JbnRyaW5zaWMJc2NhbGUgc2NhbiBzZWxlY3RlZF9pbnRfa2luZCBzZWxlY3RlZF9yZWFsX2tpbmQgc2V0X2V4cG9uZW50IHNoYXBlIHNpemUgc3BhY2luZyBzcHJlYWQgc3VtIHN5c3RlbV9jbG9jayB0aW55IHRyYW5zcG9zZSB0cmltIHVib3VuZCB1bnBhY2sgdmVyaWZ5CitzeW4gbWF0Y2ggZm9ydHJhbkludHJpbnNpYwkJIlw8bm90XD5cKFxzKlwuXClcQCEibWU9cyszCitzeW4gbWF0Y2ggZm9ydHJhbkludHJpbnNpYwkiXDxraW5kXD5ccypbKCxdIm1lPXMrNAogCi0gIHN5biBrZXl3b3JkIGZvcnRyYW45MEludHJpbnNpYwlhZGp1c3RsIGFkanVzdHIgYWxsIGFsbG9jYXRlZCBhbnkgYXNzb2NpYXRlZCBiaXRfc2l6ZSBidGVzdCBjZWlsaW5nIGNvdW50IGNzaGlmdCBkYXRlX2FuZF90aW1lIGRpZ2l0cyBkb3RfcHJvZHVjdCBlb3NoaWZ0IGVwc2lsb24gZXhwb25lbnQgZmxvb3IgZnJhY3Rpb24gaHVnZSBpYW5kIGliY2xyIGliaXRzIGlic2V0IGllb3IgaW9yIGlzaGZ0IGlzaGZ0YyBsYm91bmQgbGVuX3RyaW0gbWF0bXVsIG1heGV4cG9uZW50IG1heGxvYyBtYXh2YWwgbWVyZ2UgbWluZXhwb25lbnQgbWlubG9jIG1pbnZhbCBtb2R1bG8gbXZiaXRzIG5lYXJlc3QgcGFjayBwcmVjaXNpb24gcHJlc2VudCBwcm9kdWN0IHJhZGl4IHJhbmRvbV9udW1iZXIgcmFuZG9tX3NlZWQgcmFuZ2UgcmVwZWF0IHJlc2hhcGUgcnJzcGFjaW5nCi0gIHN5biBrZXl3b3JkIGZvcnRyYW45MEludHJpbnNpYwlzY2FsZSBzY2FuIHNlbGVjdGVkX2ludF9raW5kIHNlbGVjdGVkX3JlYWxfa2luZCBzZXRfZXhwb25lbnQgc2hhcGUgc2l6ZSBzcGFjaW5nIHNwcmVhZCBzdW0gc3lzdGVtX2Nsb2NrIHRpbnkgdHJhbnNwb3NlIHRyaW0gdWJvdW5kIHVucGFjayB2ZXJpZnkKLSAgc3luIG1hdGNoIGZvcnRyYW45MEludHJpbnNpYwkJIlw8bm90XD5cKFxzKlwuXClcQCEibWU9cyszCi0gIHN5biBtYXRjaCBmb3J0cmFuOTBJbnRyaW5zaWMJIlw8a2luZFw+XHMqWygsXSJtZT1zKzQKK3N5biBtYXRjaCAgZm9ydHJhblVuaXRIZWFkZXIJIlw8ZW5kXHMqZnVuY3Rpb24iCitzeW4gbWF0Y2ggIGZvcnRyYW5Vbml0SGVhZGVyCSJcPGVuZFxzKmludGVyZmFjZSIKK3N5biBtYXRjaCAgZm9ydHJhblVuaXRIZWFkZXIJIlw8ZW5kXHMqbW9kdWxlIgorc3luIG1hdGNoICBmb3J0cmFuVW5pdEhlYWRlcgkiXDxlbmRccypwcm9ncmFtIgorc3luIG1hdGNoICBmb3J0cmFuVW5pdEhlYWRlcgkiXDxlbmRccypzdWJyb3V0aW5lIgorc3luIG1hdGNoICBmb3J0cmFuUmVwZWF0CSJcPGVuZFxzKmRvIgorc3luIG1hdGNoICBmb3J0cmFuQ29uZGl0aW9uYWwJIlw8ZW5kXHMqd2hlcmUiCitzeW4gbWF0Y2ggIGZvcnRyYW5Db25kaXRpb25hbAkiXDxzZWxlY3RccypjYXNlIgorc3luIG1hdGNoICBmb3J0cmFuQ29uZGl0aW9uYWwJIlw8ZW5kXHMqc2VsZWN0Igorc3luIG1hdGNoICBmb3J0cmFuVHlwZQkiXDxlbmRccyp0eXBlIgorc3luIG1hdGNoICBmb3J0cmFuVHlwZQkiXDxpblxzKm91dCIKIAotICBzeW4gbWF0Y2ggIGZvcnRyYW5Vbml0SGVhZGVyCSJcPGVuZFxzKmZ1bmN0aW9uIgotICBzeW4gbWF0Y2ggIGZvcnRyYW5Vbml0SGVhZGVyCSJcPGVuZFxzKmludGVyZmFjZSIKLSAgc3luIG1hdGNoICBmb3J0cmFuVW5pdEhlYWRlcgkiXDxlbmRccyptb2R1bGUiCi0gIHN5biBtYXRjaCAgZm9ydHJhblVuaXRIZWFkZXIJIlw8ZW5kXHMqcHJvZ3JhbSIKLSAgc3luIG1hdGNoICBmb3J0cmFuVW5pdEhlYWRlcgkiXDxlbmRccypzdWJyb3V0aW5lIgotICBzeW4gbWF0Y2ggIGZvcnRyYW5SZXBlYXQJIlw8ZW5kXHMqZG8iCi0gIHN5biBtYXRjaCAgZm9ydHJhbkNvbmRpdGlvbmFsCSJcPGVuZFxzKndoZXJlIgotICBzeW4gbWF0Y2ggIGZvcnRyYW5Db25kaXRpb25hbAkiXDxzZWxlY3RccypjYXNlIgotICBzeW4gbWF0Y2ggIGZvcnRyYW5Db25kaXRpb25hbAkiXDxlbmRccypzZWxlY3QiCi0gIHN5biBtYXRjaCAgZm9ydHJhblR5cGUJIlw8ZW5kXHMqdHlwZSIKLSAgc3luIG1hdGNoICBmb3J0cmFuVHlwZQkiXDxpblxzKm91dCIKK3N5biBrZXl3b3JkIGZvcnRyYW5UeXBlCXByb2NlZHVyZQorc3luIGtleXdvcmQgZm9ydHJhbklPUgkJbmFtZWxpc3QKK3N5biBrZXl3b3JkIGZvcnRyYW5Db25kaXRpb25hbFIJd2hpbGUKK3N5biBrZXl3b3JkIGZvcnRyYW5JbnRyaW5zaWNSCWFjaGFyIGlhY2hhciB0cmFuc2ZlcgogCi0gIHN5biBrZXl3b3JkIGZvcnRyYW5UeXBlCXByb2NlZHVyZQotICBzeW4ga2V5d29yZCBmb3J0cmFuSU9FeAkJbmFtZWxpc3QKLSAgc3luIGtleXdvcmQgZm9ydHJhbkNvbmRpdGlvbmFsRXgJd2hpbGUKLSAgc3luIGtleXdvcmQgZm9ydHJhbjkwSW50cmluc2ljRXgJYWNoYXIgaWFjaGFyIHRyYW5zZmVyCi0KLSAgc3luIGtleXdvcmQgZm9ydHJhbkluY2x1ZGUJCWluY2x1ZGUKLSAgc3luIGtleXdvcmQgZm9ydHJhbjkwU3RvcmFnZUNsYXNzUglzZXF1ZW5jZQotZW5kaWYKK3N5biBrZXl3b3JkIGZvcnRyYW5JbmNsdWRlCQlpbmNsdWRlCitzeW4ga2V5d29yZCBmb3J0cmFuU3RvcmFnZUNsYXNzUglzZXF1ZW5jZQogCiBzeW4gbWF0Y2ggICBmb3J0cmFuQ29uZGl0aW9uYWwJIlw8ZW5kXHMqaWYiCiBzeW4gbWF0Y2ggICBmb3J0cmFuSU8JCWNvbnRhaW5zPWZvcnRyYW5PcGVyYXRvciAiXDxlXChuZFx8cnJcKVxzKj1ccypcZFwrIgpAQCAtMjgyLDU1ICsyNTAsNTMgQEAKIHN5biBtYXRjaCBmb3J0cmFuVHlwZVIJCWRpc3BsYXkgImRvdWJsZVxzXCtjb21wbGV4Igogc3luIG1hdGNoIGZvcnRyYW5Vbml0SGVhZGVyUglkaXNwbGF5ICJibG9ja1xzXCtkYXRhIgogc3luIGtleXdvcmQgZm9ydHJhblN0b3JhZ2VDbGFzc1IJY29tbW9uIGVxdWl2YWxlbmNlIGRhdGEKLXN5biBrZXl3b3JkIGZvcnRyYW43N0ludHJpbnNpY1IJZGJsZSBkcHJvZAotc3luIG1hdGNoICAgZm9ydHJhbjc3T3BlcmF0b3JSCSJcLlxzKltnbF1bZXRdXHMqXC4iCi1zeW4gbWF0Y2ggICBmb3J0cmFuNzdPcGVyYXRvclIJIlwuXHMqXChlcVx8bmVcKVxzKlwuIgorc3luIGtleXdvcmQgZm9ydHJhbkludHJpbnNpY1IJZGJsZSBkcHJvZAorc3luIG1hdGNoICAgZm9ydHJhbk9wZXJhdG9yUgkiXC5ccypbZ2xdW2V0XVxzKlwuIgorc3luIG1hdGNoICAgZm9ydHJhbk9wZXJhdG9yUgkiXC5ccypcKGVxXHxuZVwpXHMqXC4iCiAKLWlmIGI6Zm9ydHJhbl9kaWFsZWN0ID09ICJmOTUiIHx8IGI6Zm9ydHJhbl9kaWFsZWN0ID09ICJGIgotICBzeW4ga2V5d29yZCBmb3J0cmFuUmVwZWF0CQlmb3JhbGwKLSAgc3luIG1hdGNoIGZvcnRyYW5SZXBlYXQJCSJcPGVuZFxzKmZvcmFsbCIKLSAgc3luIGtleXdvcmQgZm9ydHJhbjk1SW50cmluc2ljCW51bGwgY3B1X3RpbWUKLSAgc3luIG1hdGNoIGZvcnRyYW5UeXBlCQkJIlw8ZWxlbWVudGFsXD4iCi0gIHN5biBtYXRjaCBmb3J0cmFuVHlwZQkJCSJcPHB1cmVcPiIKLSAgaWYgZXhpc3RzKCJmb3J0cmFuX21vcmVfcHJlY2lzZSIpCi0gICAgc3luIG1hdGNoIGZvcnRyYW5Db25zdHJ1Y3ROYW1lICJcKFw8ZW5kXHMqZm9yYWxsXHNcK1wpXEA8PVxhXHcqXD4iCi0gIGVuZGlmCitzeW4ga2V5d29yZCBmb3J0cmFuUmVwZWF0CQlmb3JhbGwKK3N5biBtYXRjaCBmb3J0cmFuUmVwZWF0CQkiXDxlbmRccypmb3JhbGwiCitzeW4ga2V5d29yZCBmb3J0cmFuSW50cmluc2ljCW51bGwgY3B1X3RpbWUKK3N5biBtYXRjaCBmb3J0cmFuVHlwZQkJCSJcPGVsZW1lbnRhbFw+Igorc3luIG1hdGNoIGZvcnRyYW5UeXBlCQkJIlw8cHVyZVw+IgoraWYgZXhpc3RzKCJmb3J0cmFuX21vcmVfcHJlY2lzZSIpCisgIHN5biBtYXRjaCBmb3J0cmFuQ29uc3RydWN0TmFtZSAiXChcPGVuZFxzKmZvcmFsbFxzXCtcKVxAPD1cYVx3Klw+IgogZW5kaWYKIAotaWYgYjpmb3J0cmFuX2RpYWxlY3QgPT0gImY5NSIKK2lmIGI6Zm9ydHJhbl9kaWFsZWN0ID09ICJmMDgiCiAgICIgRjIwMDMKLSAgc3luIGtleXdvcmQgZm9ydHJhbjAzSW50cmluc2ljICAgICAgICBjb21tYW5kX2FyZ3VtZW50X2NvdW50IGdldF9jb21tYW5kIGdldF9jb21tYW5kX2FyZ3VtZW50IGdldF9lbnZpcm9ubWVudF92YXJpYWJsZSBpc19pb3N0YXRfZW5kIGlzX2lvc3RhdF9lb3IgbW92ZV9hbGxvYyBuZXdfbGluZSBzZWxlY3RlZF9jaGFyX2tpbmQgc2FtZV90eXBlX2FzIGV4dGVuZHNfdHlwZV9vZgorICBzeW4ga2V5d29yZCBmb3J0cmFuSW50cmluc2ljICAgICAgICBjb21tYW5kX2FyZ3VtZW50X2NvdW50IGdldF9jb21tYW5kIGdldF9jb21tYW5kX2FyZ3VtZW50IGdldF9lbnZpcm9ubWVudF92YXJpYWJsZSBpc19pb3N0YXRfZW5kIGlzX2lvc3RhdF9lb3IgbW92ZV9hbGxvYyBuZXdfbGluZSBzZWxlY3RlZF9jaGFyX2tpbmQgc2FtZV90eXBlX2FzIGV4dGVuZHNfdHlwZV9vZgogICAiIElTT19DX2JpbmRpbmcKLSAgc3luIGtleXdvcmQgZm9ydHJhbjAzQ29uc3RhbnQgICAgICAgICBjX251bGxfY2hhciBjX2FsZXJ0IGNfYmFja3NwYWNlIGNfZm9ybV9mZWVkIGNfbmV3X2xpbmUgY19jYXJyaWFnZV9yZXR1cm4gY19ob3Jpem9udGFsX3RhYiBjX3ZlcnRpY2FsX3RhYgotICBzeW4ga2V5d29yZCBmb3J0cmFuMDNDb25zdGFudCAgICAgICAgIGNfaW50IGNfc2hvcnQgY19sb25nIGNfbG9uZ19sb25nIGNfc2lnbmVkX2NoYXIgY19zaXplX3QgY19pbnQ4X3QgY19pbnQxNl90IGNfaW50MzJfdCBjX2ludDY0X3QgY19pbnRfbGVhc3Q4X3QgY19pbnRfbGVhc3QxNl90IGNfaW50X2xlYXN0MzJfdCBjX2ludF9sZWFzdDY0X3QgY19pbnRfZmFzdDhfdCBjX2ludF9mYXN0MTZfdCBjX2ludF9mYXN0MzJfdCBjX2ludF9mYXN0NjRfdCBjX2ludG1heF90IENfaW50cHRyX3QgY19mbG9hdCBjX2RvdWJsZSBjX2xvbmdfZG91YmxlIGNfZmxvYXRfY29tcGxleCBjX2RvdWJsZV9jb21wbGV4IGNfbG9uZ19kb3VibGVfY29tcGxleCBjX2Jvb2wgY19jaGFyIGNfbnVsbF9wdHIgY19udWxsX2Z1bnB0cgotICBzeW4ga2V5d29yZCBmb3J0cmFuMDNJbnRyaW5zaWMgICAgICAgIGlzb19jX2JpbmRpbmcgY19sb2MgY19mdW5sb2MgY19hc3NvY2lhdGVkICBjX2ZfcG9pbnRlciBjX2ZfcHJvY3BvaW50ZXIKLSAgc3luIGtleXdvcmQgZm9ydHJhbjAzVHlwZSAgICAgICAgICAgICBjX3B0ciBjX2Z1bnB0cgorICBzeW4ga2V5d29yZCBmb3J0cmFuQ29uc3RhbnQgICAgICAgICBjX251bGxfY2hhciBjX2FsZXJ0IGNfYmFja3NwYWNlIGNfZm9ybV9mZWVkIGNfbmV3X2xpbmUgY19jYXJyaWFnZV9yZXR1cm4gY19ob3Jpem9udGFsX3RhYiBjX3ZlcnRpY2FsX3RhYgorICBzeW4ga2V5d29yZCBmb3J0cmFuQ29uc3RhbnQgICAgICAgICBjX2ludCBjX3Nob3J0IGNfbG9uZyBjX2xvbmdfbG9uZyBjX3NpZ25lZF9jaGFyIGNfc2l6ZV90IGNfaW50OF90IGNfaW50MTZfdCBjX2ludDMyX3QgY19pbnQ2NF90IGNfaW50X2xlYXN0OF90IGNfaW50X2xlYXN0MTZfdCBjX2ludF9sZWFzdDMyX3QgY19pbnRfbGVhc3Q2NF90IGNfaW50X2Zhc3Q4X3QgY19pbnRfZmFzdDE2X3QgY19pbnRfZmFzdDMyX3QgY19pbnRfZmFzdDY0X3QgY19pbnRtYXhfdCBDX2ludHB0cl90IGNfZmxvYXQgY19kb3VibGUgY19sb25nX2RvdWJsZSBjX2Zsb2F0X2NvbXBsZXggY19kb3VibGVfY29tcGxleCBjX2xvbmdfZG91YmxlX2NvbXBsZXggY19ib29sIGNfY2hhciBjX251bGxfcHRyIGNfbnVsbF9mdW5wdHIKKyAgc3luIGtleXdvcmQgZm9ydHJhbkludHJpbnNpYyAgICAgICAgaXNvX2NfYmluZGluZyBjX2xvYyBjX2Z1bmxvYyBjX2Fzc29jaWF0ZWQgIGNfZl9wb2ludGVyIGNfZl9wcm9jcG9pbnRlcgorICBzeW4ga2V5d29yZCBmb3J0cmFuVHlwZSAgICAgICAgICAgICBjX3B0ciBjX2Z1bnB0cgogICAiIElTT19Gb3J0cmFuX2VudgotICBzeW4ga2V5d29yZCBmb3J0cmFuMDNDb25zdGFudCAgICAgICAgIGlzb19mb3J0cmFuX2VudiBjaGFyYWN0ZXJfc3RvcmFnZV9zaXplIGVycm9yX3VuaXQgZmlsZV9zdG9yYWdlX3NpemUgaW5wdXRfdW5pdCBpb3N0YXRfZW5kIGlvc3RhdF9lb3IgbnVtZXJpY19zdG9yYWdlX3NpemUgb3V0cHV0X3VuaXQKKyAgc3luIGtleXdvcmQgZm9ydHJhbkNvbnN0YW50ICAgICAgICAgaXNvX2ZvcnRyYW5fZW52IGNoYXJhY3Rlcl9zdG9yYWdlX3NpemUgZXJyb3JfdW5pdCBmaWxlX3N0b3JhZ2Vfc2l6ZSBpbnB1dF91bml0IGlvc3RhdF9lbmQgaW9zdGF0X2VvciBudW1lcmljX3N0b3JhZ2Vfc2l6ZSBvdXRwdXRfdW5pdAogICAiIElFRUVfYXJpdGhtZXRpYwotICBzeW4ga2V5d29yZCBmb3J0cmFuMDNJbnRyaW5zaWMgICAgICAgIGllZWVfYXJpdGhtZXRpYyBpZWVlX3N1cHBvcnRfdW5kZXJmbG93X2NvbnRyb2wgaWVlZV9nZXRfdW5kZXJmbG93X21vZGUgaWVlZV9zZXRfdW5kZXJmbG93X21vZGUKKyAgc3luIGtleXdvcmQgZm9ydHJhbkludHJpbnNpYyAgICAgICAgaWVlZV9hcml0aG1ldGljIGllZWVfc3VwcG9ydF91bmRlcmZsb3dfY29udHJvbCBpZWVlX2dldF91bmRlcmZsb3dfbW9kZSBpZWVlX3NldF91bmRlcmZsb3dfbW9kZQogCi0gIHN5biBrZXl3b3JkIGZvcnRyYW4wM1JlYWRXcml0ZQlmbHVzaCB3YWl0Ci0gIHN5biBrZXl3b3JkIGZvcnRyYW4wM0lPCSAgICAgICAgZGVjaW1hbCByb3VuZCBpb21zZwotICBzeW4ga2V5d29yZCBmb3J0cmFuMDNUeXBlICAgICAgICAgICAgIGFzeW5jaHJvbm91cyBub3Bhc3Mgbm9uX292ZXJyaWRhYmxlIHBhc3MgcHJvdGVjdGVkIHZvbGF0aWxlIGFic3RyYWN0IGV4dGVuZHMgaW1wb3J0Ci0gIHN5biBrZXl3b3JkIGZvcnRyYW4wM1R5cGUgICAgICAgICAgICAgbm9uX2ludHJpbnNpYyB2YWx1ZSBiaW5kIGRlZmVycmVkIGdlbmVyaWMgZmluYWwgZW51bWVyYXRvcgotICBzeW4gbWF0Y2ggZm9ydHJhbjAzVHlwZSAgICAgICAgICAgICAgICJcPGNsYXNzXD4iCi0gIHN5biBtYXRjaCBmb3J0cmFuMDNUeXBlICAgICAgICAgICAgICAgIlw8YXNzb2NpYXRlXD4iCi0gIHN5biBtYXRjaCBmb3J0cmFuMDNUeXBlICAgICAgICAgICAgICAgIlw8ZW5kXHMqYXNzb2NpYXRlIgotICBzeW4gbWF0Y2ggZm9ydHJhbjAzVHlwZSAgICAgICAgICAgICAgICJcPGVudW1ccyosXHMqYmluZFxzKihccypjXHMqKSIKLSAgc3luIG1hdGNoIGZvcnRyYW4wM1R5cGUgICAgICAgICAgICAgICAiXDxlbmRccyplbnVtIgotICBzeW4gbWF0Y2ggZm9ydHJhbjAzQ29uZGl0aW9uYWwJIlw8c2VsZWN0XHMqdHlwZSIKLSAgc3luIG1hdGNoIGZvcnRyYW4wM0NvbmRpdGlvbmFsICAgICAgICAiXDx0eXBlXHMqaXNcPiIKLSAgc3luIG1hdGNoIGZvcnRyYW4wM0NvbmRpdGlvbmFsICAgICAgICAiXDxjbGFzc1xzKmlzXD4iCi0gIHN5biBtYXRjaCBmb3J0cmFuMDNVbml0SGVhZGVyICAgICAgICAgIlw8YWJzdHJhY3RccyppbnRlcmZhY2VcPiIKLSAgc3luIG1hdGNoIGZvcnRyYW4wM09wZXJhdG9yICAgICAgICAgICAiXChbXHxdXCkiCisgIHN5biBrZXl3b3JkIGZvcnRyYW5SZWFkV3JpdGUJZmx1c2ggd2FpdAorICBzeW4ga2V5d29yZCBmb3J0cmFuSU8gCSAgICAgIGRlY2ltYWwgcm91bmQgaW9tc2cKKyAgc3luIGtleXdvcmQgZm9ydHJhblR5cGUgICAgICAgICAgICAgYXN5bmNocm9ub3VzIG5vcGFzcyBub25fb3ZlcnJpZGFibGUgcGFzcyBwcm90ZWN0ZWQgdm9sYXRpbGUgYWJzdHJhY3QgZXh0ZW5kcyBpbXBvcnQKKyAgc3luIGtleXdvcmQgZm9ydHJhblR5cGUgICAgICAgICAgICAgbm9uX2ludHJpbnNpYyB2YWx1ZSBiaW5kIGRlZmVycmVkIGdlbmVyaWMgZmluYWwgZW51bWVyYXRvcgorICBzeW4gbWF0Y2ggZm9ydHJhblR5cGUgICAgICAgICAgICAgICAiXDxjbGFzc1w+IgorICBzeW4gbWF0Y2ggZm9ydHJhblR5cGUgICAgICAgICAgICAgICAiXDxhc3NvY2lhdGVcPiIKKyAgc3luIG1hdGNoIGZvcnRyYW5UeXBlICAgICAgICAgICAgICAgIlw8ZW5kXHMqYXNzb2NpYXRlIgorICBzeW4gbWF0Y2ggZm9ydHJhblR5cGUgICAgICAgICAgICAgICAiXDxlbnVtXHMqLFxzKmJpbmRccyooXHMqY1xzKikiCisgIHN5biBtYXRjaCBmb3J0cmFuVHlwZSAgICAgICAgICAgICAgICJcPGVuZFxzKmVudW0iCisgIHN5biBtYXRjaCBmb3J0cmFuQ29uZGl0aW9uYWwJIlw8c2VsZWN0XHMqdHlwZSIKKyAgc3luIG1hdGNoIGZvcnRyYW5Db25kaXRpb25hbCAgICAgICAgIlw8dHlwZVxzKmlzXD4iCisgIHN5biBtYXRjaCBmb3J0cmFuQ29uZGl0aW9uYWwgICAgICAgICJcPGNsYXNzXHMqaXNcPiIKKyAgc3luIG1hdGNoIGZvcnRyYW5Vbml0SGVhZGVyICAgICAgICAgIlw8YWJzdHJhY3RccyppbnRlcmZhY2VcPiIKKyAgc3luIG1hdGNoIGZvcnRyYW5PcGVyYXRvciAgICAgICAgICAgIlwoW1x8XVwpIgogCiAgICIgRjIwMDgKLSAgc3luIGtleXdvcmQgZm9ydHJhbjA4SW50cmluc2ljICAgICAgICBhY29zaCBhc2luaCBhdGFuaCBiZXNzZWxfajAgYmVzc2VsX2oxIGJlc3NlbF9qbiBiZXNzZWxfeTAgYmVzc2VsX3kxIGJlc3NlbF95biBlcmYgZXJmYyBlcmZjX3NjYWxlZCBnYW1tYSBsb2dfZ2FtbWEgaHlwb3Qgbm9ybTIKLSAgc3luIGtleXdvcmQgZm9ydHJhbjA4SW50cmluc2ljICAgICAgICBhdG9taWNfZGVmaW5lIGF0b21pY19yZWYgZXhlY3V0ZV9jb21tYW5kX2xpbmUgbGVhZHogdHJhaWx6IHN0b3JhZ2Vfc2l6ZSBtZXJnZV9iaXRzCi0gIHN5biBrZXl3b3JkIGZvcnRyYW4wOEludHJpbnNpYyAgICAgICAgYmdlIGJndCBibGUgYmx0IGRzaGlmdGwgZHNoaWZ0ciBmaW5kbG9jIGlhbGwgaWFueSBpcGFyaXR5IGltYWdlX2luZGV4IGxjb2JvdW5kIHVjb2JvdW5kIG1hc2tsIG1hc2tyIG51bV9pbWFnZXMgcGFyaXR5IHBvcGNudCBwb3BwYXIgc2hpZnRhIHNoaWZ0bCBzaGlmdHIgdGhpc19pbWFnZQotICBzeW4ga2V5d29yZCBmb3J0cmFuMDhJTyAgICAgICAgICAgICAgIG5ld3VuaXQKLSAgc3luIGtleXdvcmQgZm9ydHJhbjA4VHlwZSAgICAgICAgICAgICBjb250aWd1b3VzCisgIHN5biBrZXl3b3JkIGZvcnRyYW5JbnRyaW5zaWMgICAgICAgIGFjb3NoIGFzaW5oIGF0YW5oIGJlc3NlbF9qMCBiZXNzZWxfajEgYmVzc2VsX2puIGJlc3NlbF95MCBiZXNzZWxfeTEgYmVzc2VsX3luIGVyZiBlcmZjIGVyZmNfc2NhbGVkIGdhbW1hIGxvZ19nYW1tYSBoeXBvdCBub3JtMgorICBzeW4ga2V5d29yZCBmb3J0cmFuSW50cmluc2ljICAgICAgICBhdG9taWNfZGVmaW5lIGF0b21pY19yZWYgZXhlY3V0ZV9jb21tYW5kX2xpbmUgbGVhZHogdHJhaWx6IHN0b3JhZ2Vfc2l6ZSBtZXJnZV9iaXRzCisgIHN5biBrZXl3b3JkIGZvcnRyYW5JbnRyaW5zaWMgICAgICAgIGJnZSBiZ3QgYmxlIGJsdCBkc2hpZnRsIGRzaGlmdHIgZmluZGxvYyBpYWxsIGlhbnkgaXBhcml0eSBpbWFnZV9pbmRleCBsY29ib3VuZCB1Y29ib3VuZCBtYXNrbCBtYXNrciBudW1faW1hZ2VzIHBhcml0eSBwb3BjbnQgcG9wcGFyIHNoaWZ0YSBzaGlmdGwgc2hpZnRyIHRoaXNfaW1hZ2UKKyAgc3luIGtleXdvcmQgZm9ydHJhbklPICAgICAgICAgICAgICAgbmV3dW5pdAorICBzeW4ga2V5d29yZCBmb3J0cmFuVHlwZSAgICAgICAgICAgICBjb250aWd1b3VzCiBlbmRpZgogCiBzeW4gY2x1c3RlciBmb3J0cmFuQ29tbWVudEdyb3VwIGNvbnRhaW5zPWZvcnRyYW5Ub2RvCkBAIC0zNTAsOSArMzE2LDcgQEAKICAgc3luIG1hdGNoIGZvcnRyYW5Db250aW51ZU1hcmsJCWRpc3BsYXkgIiYiCiBlbmRpZgogCi1pZiBiOmZvcnRyYW5fZGlhbGVjdCAhPSAiZjc3IgotICBzeW4gbWF0Y2ggZm9ydHJhbkNvbW1lbnQJZXhjbHVkZW5sICIhLiokIiBjb250YWlucz1AZm9ydHJhbkNvbW1lbnRHcm91cCxAc3BlbGwKLWVuZGlmCitzeW4gbWF0Y2ggZm9ydHJhbkNvbW1lbnQJZXhjbHVkZW5sICIhLiokIiBjb250YWlucz1AZm9ydHJhbkNvbW1lbnRHcm91cCxAc3BlbGwKIAogImNwcCBpcyBvZnRlbiB1c2VkIHdpdGggRm9ydHJhbgogc3luIG1hdGNoCWNQcmVQcm9jCQkiXlxzKiNccypcKGRlZmluZVx8aWZkZWZcKVw+LioiCkBAIC0zNzIsNyArMzM2LDcgQEAKICAgc3luIHN5bmMgbWlubGluZXM9MzAKIGVuZGlmCiAKLWlmIHZlcnNpb24gPj0gNjAwICYmIGV4aXN0cygiZm9ydHJhbl9mb2xkIikKK2lmIGV4aXN0cygiZm9ydHJhbl9mb2xkIikKIAogICBpZiAoYjpmb3J0cmFuX2ZpeGVkX3NvdXJjZSA9PSAxKQogICAgIHN5biByZWdpb24gZm9ydHJhblByb2dyYW0gdHJhbnNwYXJlbnQgZm9sZCBrZWVwZW5kIHN0YXJ0PSJeXHMqcHJvZ3JhbVxzXCtceihcYVx3KlwpIiBza2lwPSJeXChbIWMqXVx8XHMqI1wpLiokIiBleGNsdWRlbmwgZW5kPSJcPGVuZFxzKlwocHJvZ3JhbVwoXHNcK1x6MVw+XClcPVx8JFwpIiBjb250YWlucz1BTExCVVQsZm9ydHJhbk1vZHVsZQpAQCAtNDE2LDE0OCArMzgwLDkzIEBACiBlbmRpZgogCiAiIERlZmluZSB0aGUgZGVmYXVsdCBoaWdobGlnaHRpbmcuCi0iIEZvciB2ZXJzaW9uIDUuNyBhbmQgZWFybGllcjogb25seSB3aGVuIG5vdCBkb25lIGFscmVhZHkKLSIgRm9yIHZlcnNpb24gNS44IGFuZCBsYXRlcjogb25seSB3aGVuIGFuIGl0ZW0gZG9lc24ndCBoYXZlIGhpZ2hsaWdodGluZyB5ZXQKLWlmIHZlcnNpb24gPj0gNTA4IHx8ICFleGlzdHMoImRpZF9mb3J0cmFuX3N5bl9pbml0cyIpCi0gIGlmIHZlcnNpb24gPCA1MDgKLSAgICBsZXQgZGlkX2ZvcnRyYW5fc3luX2luaXRzID0gMQotICAgIGNvbW1hbmQgLW5hcmdzPSsgSGlMaW5rIGhpIGxpbmsgPGFyZ3M+Ci0gIGVsc2UKLSAgICBjb21tYW5kIC1uYXJncz0rIEhpTGluayBoaSBkZWYgbGluayA8YXJncz4KLSAgZW5kaWYKKyIgVGhlIGRlZmF1bHQgaGlnaGxpZ2h0aW5nIGRpZmZlcnMgZm9yIGVhY2ggZGlhbGVjdC4KKyIgVHJhbnNwYXJlbnQgZ3JvdXBzOgorIiBmb3J0cmFuUGFyZW4sIGZvcnRyYW5MZWZ0TWFyZ2luCisiIGZvcnRyYW5Qcm9ncmFtLCBmb3J0cmFuTW9kdWxlLCBmb3J0cmFuU3Vicm91dGluZSwgZm9ydHJhbkZ1bmN0aW9uLAorIiBmb3J0cmFuQmxvY2tEYXRhCisiIGZvcnRyYW43N0xvb3AsIGZvcnRyYW45MExvb3AsIGZvcnRyYW5JZkJsb2NrLCBmb3J0cmFuQ2FzZQorIiBmb3J0cmFuTXVsdGlDb21tZW50TGluZXMKK2hpIGRlZiBsaW5rIGZvcnRyYW5LZXl3b3JkIAlLZXl3b3JkCitoaSBkZWYgbGluayBmb3J0cmFuQ29uc3RydWN0TmFtZQlJZGVudGlmaWVyCitoaSBkZWYgbGluayBmb3J0cmFuQ29uZGl0aW9uYWwJQ29uZGl0aW9uYWwKK2hpIGRlZiBsaW5rIGZvcnRyYW5SZXBlYXQJUmVwZWF0CitoaSBkZWYgbGluayBmb3J0cmFuVG9kbwkJVG9kbworaGkgZGVmIGxpbmsgZm9ydHJhbkNvbnRpbnVlTWFyawlTcGVjaWFsCitoaSBkZWYgbGluayBmb3J0cmFuU3RyaW5nCVN0cmluZworaGkgZGVmIGxpbmsgZm9ydHJhbk51bWJlcglOdW1iZXIKK2hpIGRlZiBsaW5rIGZvcnRyYW5PcGVyYXRvcglPcGVyYXRvcgoraGkgZGVmIGxpbmsgZm9ydHJhbkJvb2xlYW4JQm9vbGVhbgoraGkgZGVmIGxpbmsgZm9ydHJhbkxhYmVsRXJyb3IJRXJyb3IKK2hpIGRlZiBsaW5rIGZvcnRyYW5PYnNvbGV0ZQlUb2RvCitoaSBkZWYgbGluayBmb3J0cmFuVHlwZQkJVHlwZQoraGkgZGVmIGxpbmsgZm9ydHJhblN0cnVjdHVyZQlUeXBlCitoaSBkZWYgbGluayBmb3J0cmFuU3RvcmFnZUNsYXNzCVN0b3JhZ2VDbGFzcworaGkgZGVmIGxpbmsgZm9ydHJhbkNhbGwJCUZ1bmN0aW9uCitoaSBkZWYgbGluayBmb3J0cmFuVW5pdEhlYWRlcglmb3J0cmFuUHJlQ29uZGl0CitoaSBkZWYgbGluayBmb3J0cmFuUmVhZFdyaXRlCUtleXdvcmQKK2hpIGRlZiBsaW5rIGZvcnRyYW5JTwkJS2V5d29yZAoraGkgZGVmIGxpbmsgZm9ydHJhbkludHJpbnNpYwlGdW5jdGlvbgoraGkgZGVmIGxpbmsgZm9ydHJhbkNvbnN0YW50CUNvbnN0YW50CiAKLSAgIiBUaGUgZGVmYXVsdCBoaWdobGlnaHRpbmcgZGlmZmVycyBmb3IgZWFjaCBkaWFsZWN0LgotICAiIFRyYW5zcGFyZW50IGdyb3VwczoKLSAgIiBmb3J0cmFuUGFyZW4sIGZvcnRyYW5MZWZ0TWFyZ2luCi0gICIgZm9ydHJhblByb2dyYW0sIGZvcnRyYW5Nb2R1bGUsIGZvcnRyYW5TdWJyb3V0aW5lLCBmb3J0cmFuRnVuY3Rpb24sCi0gICIgZm9ydHJhbkJsb2NrRGF0YQotICAiIGZvcnRyYW43N0xvb3AsIGZvcnRyYW45MExvb3AsIGZvcnRyYW5JZkJsb2NrLCBmb3J0cmFuQ2FzZQotICAiIGZvcnRyYW5NdWx0aUNvbW1lbnRMaW5lcwotICBIaUxpbmsgZm9ydHJhbktleXdvcmQgCUtleXdvcmQKLSAgSGlMaW5rIGZvcnRyYW5Db25zdHJ1Y3ROYW1lCUlkZW50aWZpZXIKLSAgSGlMaW5rIGZvcnRyYW4wM0NvbmRpdGlvbmFsCWZvcnRyYW5Db25kaXRpb25hbAotICBIaUxpbmsgZm9ydHJhbkNvbmRpdGlvbmFsCUNvbmRpdGlvbmFsCi0gIEhpTGluayBmb3J0cmFuUmVwZWF0CQlSZXBlYXQKLSAgSGlMaW5rIGZvcnRyYW5Ub2RvCQlUb2RvCi0gIGlmIChiOmZvcnRyYW5fZml4ZWRfc291cmNlID09IDEpCi0gICAgSGlMaW5rIGZvcnRyYW5Db250aW51ZU1hcmsJVG9kbwotICBlbHNlCi0gICAgSGlMaW5rIGZvcnRyYW5Db250aW51ZU1hcmsJS2V5d29yZAotICBlbmRpZgotICBIaUxpbmsgZm9ydHJhblN0cmluZwkJU3RyaW5nCi0gIEhpTGluayBmb3J0cmFuTnVtYmVyCQlOdW1iZXIKLSAgSGlMaW5rIGZvcnRyYW4wM09wZXJhdG9yCWZvcnRyYW5PcGVyYXRvcgotICBIaUxpbmsgZm9ydHJhbk9wZXJhdG9yCU9wZXJhdG9yCi0gIEhpTGluayBmb3J0cmFuQm9vbGVhbgkJQm9vbGVhbgotICBIaUxpbmsgZm9ydHJhbkxhYmVsRXJyb3IJRXJyb3IKLSAgSGlMaW5rIGZvcnRyYW5PYnNvbGV0ZQlUb2RvCi0gIEhpTGluayBmb3J0cmFuMDNUeXBlICAJZm9ydHJhblR5cGUKLSAgSGlMaW5rIGZvcnRyYW4wOFR5cGUJICAgICAgICBmb3J0cmFuVHlwZQotICBIaUxpbmsgZm9ydHJhblR5cGUJCVR5cGUKLSAgSGlMaW5rIGZvcnRyYW5TdHJ1Y3R1cmUJVHlwZQotICBIaUxpbmsgZm9ydHJhblN0b3JhZ2VDbGFzcwlTdG9yYWdlQ2xhc3MKLSAgSGlMaW5rIGZvcnRyYW5DYWxsCQlGdW5jdGlvbgotICBIaUxpbmsgZm9ydHJhbjAzVW5pdEhlYWRlcglmb3J0cmFuVW5pdEhlYWRlcgotICBIaUxpbmsgZm9ydHJhblVuaXRIZWFkZXIJZm9ydHJhblByZUNvbmRpdAotICBIaUxpbmsgZm9ydHJhbjAzUmVhZFdyaXRlCWZvcnRyYW5SZWFkV3JpdGUKLSAgSGlMaW5rIGZvcnRyYW5SZWFkV3JpdGUJS2V5d29yZAotICBIaUxpbmsgZm9ydHJhbjAzSU8JCWZvcnRyYW5JTwotICBIaUxpbmsgZm9ydHJhbjA4SU8JCWZvcnRyYW5JTwotICBIaUxpbmsgZm9ydHJhbklPCQlLZXl3b3JkCi0gIEhpTGluayBmb3J0cmFuOTVJbnRyaW5zaWMJZm9ydHJhbjkwSW50cmluc2ljCi0gIEhpTGluayBmb3J0cmFuNzdJbnRyaW5zaWMJZm9ydHJhbjkwSW50cmluc2ljCi0gIEhpTGluayBmb3J0cmFuOTBJbnRyaW5zaWMJRnVuY3Rpb24KLSAgSGlMaW5rIGZvcnRyYW4wM0ludHJpbnNpYwlGdW5jdGlvbgotICBIaUxpbmsgZm9ydHJhbjA4SW50cmluc2ljCUZ1bmN0aW9uCi0gIEhpTGluayBmb3J0cmFuMDNDb25zdGFudAlGdW5jdGlvbgorIiBUbyBzdG9wIGRlbGV0ZWQgJiBvYnNvbGVzY2VudCBmZWF0dXJlcyBiZWluZyBoaWdobGlnaHRlZCBhcyBUb2RvIGl0ZW1zLAorIiBjb21tZW50IG91dCB0aGUgbmV4dCA1IGxpbmVzIGFuZCB1bmNvbW1lbnQgdGhlIDUgbGluZXMgYWZ0ZXIgdGhhdAoraGkgZGVmIGxpbmsgZm9ydHJhblVuaXRIZWFkZXJPYiAgICBmb3J0cmFuT2Jzb2xldGUKK2hpIGRlZiBsaW5rIGZvcnRyYW5LZXl3b3JkT2IgICAgICAgZm9ydHJhbk9ic29sZXRlCitoaSBkZWYgbGluayBmb3J0cmFuQ29uZGl0aW9uYWxPYiAgIGZvcnRyYW5PYnNvbGV0ZQoraGkgZGVmIGxpbmsgZm9ydHJhblR5cGVPYiAgICAgICAgICBmb3J0cmFuT2Jzb2xldGUKK2hpIGRlZiBsaW5rIGZvcnRyYW5LZXl3b3JkRGVsICAgICAgZm9ydHJhbk9ic29sZXRlCisiaGkgZGVmIGxpbmsgZm9ydHJhblVuaXRIZWFkZXJPYiAgICBmb3J0cmFuVW5pdEhlYWRlcgorImhpIGRlZiBsaW5rIGZvcnRyYW5LZXl3b3JkT2IgICAgICAgZm9ydHJhbktleXdvcmQKKyJoaSBkZWYgbGluayBmb3J0cmFuQ29uZGl0aW9uYWxPYiAgIGZvcnRyYW5Db25kaXRpb25hbAorImhpIGRlZiBsaW5rIGZvcnRyYW5UeXBlT2IgICAgICAgICAgZm9ydHJhblR5cGUKKyJoaSBkZWYgbGluayBmb3J0cmFuS2V5d29yZERlbCAgICAgIGZvcnRyYW5LZXl3b3JkCiAKLSAgaWYgYjpmb3J0cmFuX2RpYWxlY3QgIT0gImY3NyIKLSAgICBIaUxpbmsgZm9ydHJhblVuaXRIZWFkZXJPYiAgICBUb2RvCi0gICAgSGlMaW5rIGZvcnRyYW5LZXl3b3JkT2IgICAgICAgVG9kbwotICAgIEhpTGluayBmb3J0cmFuQ29uZGl0aW9uYWxPYiAgIFRvZG8KLSAgICBIaUxpbmsgZm9ydHJhblR5cGVPYiAgICAgICAgICBUb2RvCi0gICAgSGlMaW5rIGZvcnRyYW5LZXl3b3JkRGVsICAgICAgVG9kbwotICBlbHNlCi0gICAgSGlMaW5rIGZvcnRyYW5Vbml0SGVhZGVyT2IgICAgZm9ydHJhblVuaXRIZWFkZXIKLSAgICBIaUxpbmsgZm9ydHJhbktleXdvcmRPYiAgICAgICBmb3J0cmFuS2V5d29yZAotICAgIEhpTGluayBmb3J0cmFuQ29uZGl0aW9uYWxPYiAgIGZvcnRyYW5Db25kaXRpb25hbAotICAgIEhpTGluayBmb3J0cmFuVHlwZU9iICAgICAgICAgIGZvcnRyYW5UeXBlCi0gICAgSGlMaW5rIGZvcnRyYW5LZXl3b3JkRGVsICAgICAgZm9ydHJhbktleXdvcmQKLSAgZW5kaWYKLQotICBpZiAoIGI6Zm9ydHJhbl9kaWFsZWN0ID09ICJlbGYiIHx8IGI6Zm9ydHJhbl9kaWFsZWN0ID09ICJGIiApCi0gICAgSGlMaW5rIGZvcnRyYW5LZXl3b3JkT2IJZm9ydHJhbk9ic29sZXRlCi0gICAgSGlMaW5rIGZvcnRyYW42NkludHJpbnNpYwlmb3J0cmFuT2Jzb2xldGUKLSAgICBIaUxpbmsgZm9ydHJhbjc3SW50cmluc2ljUglmb3J0cmFuT2Jzb2xldGUKLSAgICBIaUxpbmsgZm9ydHJhblVuaXRIZWFkZXJSCWZvcnRyYW5PYnNvbGV0ZQotICAgIEhpTGluayBmb3J0cmFuVHlwZVIJCWZvcnRyYW5PYnNvbGV0ZQotICAgIEhpTGluayBmb3J0cmFuU3RvcmFnZUNsYXNzUglmb3J0cmFuT2Jzb2xldGUKLSAgICBIaUxpbmsgZm9ydHJhbjkwU3RvcmFnZUNsYXNzUglmb3J0cmFuT2Jzb2xldGUKLSAgICBIaUxpbmsgZm9ydHJhbjc3T3BlcmF0b3JSCWZvcnRyYW5PYnNvbGV0ZQotICAgIEhpTGluayBmb3J0cmFuSW5jbHVkZQlmb3J0cmFuT2Jzb2xldGUKLSAgZWxzZQotICAgIEhpTGluayBmb3J0cmFuS2V5d29yZE9iCWZvcnRyYW5LZXl3b3JkCi0gICAgSGlMaW5rIGZvcnRyYW42NkludHJpbnNpYwlmb3J0cmFuOTBJbnRyaW5zaWMKLSAgICBIaUxpbmsgZm9ydHJhbjc3SW50cmluc2ljUglmb3J0cmFuOTBJbnRyaW5zaWMKLSAgICBIaUxpbmsgZm9ydHJhblVuaXRIZWFkZXJSCWZvcnRyYW5QcmVDb25kaXQKLSAgICBIaUxpbmsgZm9ydHJhblR5cGVSCQlmb3J0cmFuVHlwZQotICAgIEhpTGluayBmb3J0cmFuU3RvcmFnZUNsYXNzUglmb3J0cmFuU3RvcmFnZUNsYXNzCi0gICAgSGlMaW5rIGZvcnRyYW43N09wZXJhdG9yUglmb3J0cmFuT3BlcmF0b3IKLSAgICBIaUxpbmsgZm9ydHJhbkluY2x1ZGUJSW5jbHVkZQotICAgIEhpTGluayBmb3J0cmFuOTBTdG9yYWdlQ2xhc3NSCWZvcnRyYW5TdG9yYWdlQ2xhc3MKLSAgZW5kaWYKLQotICBpZiAoIGI6Zm9ydHJhbl9kaWFsZWN0ID09ICJGIiApCi0gICAgSGlMaW5rIGZvcnRyYW5MYWJlbE51bWJlcglmb3J0cmFuT2Jzb2xldGUKLSAgICBIaUxpbmsgZm9ydHJhblRhcmdldAlmb3J0cmFuT2Jzb2xldGUKLSAgICBIaUxpbmsgZm9ydHJhbkZvcm1hdFNwZWMJZm9ydHJhbk9ic29sZXRlCi0gICAgSGlMaW5rIGZvcnRyYW5GbG9hdERFeHAJZm9ydHJhbk9ic29sZXRlCi0gICAgSGlMaW5rIGZvcnRyYW5GbG9hdE5vRGVjCWZvcnRyYW5PYnNvbGV0ZQotICAgIEhpTGluayBmb3J0cmFuRmxvYXRJbmlEZWMJZm9ydHJhbk9ic29sZXRlCi0gICAgSGlMaW5rIGZvcnRyYW5GbG9hdEVuZERlYwlmb3J0cmFuT2Jzb2xldGUKLSAgICBIaUxpbmsgZm9ydHJhblR5cGVFeAlmb3J0cmFuT2Jzb2xldGUKLSAgICBIaUxpbmsgZm9ydHJhbklPRXgJCWZvcnRyYW5PYnNvbGV0ZQotICAgIEhpTGluayBmb3J0cmFuS2V5d29yZEV4CWZvcnRyYW5PYnNvbGV0ZQotICAgIEhpTGluayBmb3J0cmFuU3RyaW5nRXgJZm9ydHJhbk9ic29sZXRlCi0gICAgSGlMaW5rIGZvcnRyYW43N0ludHJpbnNpY0V4CWZvcnRyYW5PYnNvbGV0ZQotICAgIEhpTGluayBmb3J0cmFuVW5pdEhlYWRlckV4CWZvcnRyYW5PYnNvbGV0ZQotICAgIEhpTGluayBmb3J0cmFuQ29uZGl0aW9uYWxFeAlmb3J0cmFuT2Jzb2xldGUKLSAgICBIaUxpbmsgZm9ydHJhbjkwSW50cmluc2ljRXgJZm9ydHJhbk9ic29sZXRlCi0gIGVsc2UKLSAgICBIaUxpbmsgZm9ydHJhbkxhYmVsTnVtYmVyCVNwZWNpYWwKLSAgICBIaUxpbmsgZm9ydHJhblRhcmdldAlTcGVjaWFsCi0gICAgSGlMaW5rIGZvcnRyYW5Gb3JtYXRTcGVjCUlkZW50aWZpZXIKLSAgICBIaUxpbmsgZm9ydHJhbkZsb2F0REV4cAlmb3J0cmFuRmxvYXQKLSAgICBIaUxpbmsgZm9ydHJhbkZsb2F0Tm9EZWMJZm9ydHJhbkZsb2F0Ci0gICAgSGlMaW5rIGZvcnRyYW5GbG9hdEluaURlYwlmb3J0cmFuRmxvYXQKLSAgICBIaUxpbmsgZm9ydHJhbkZsb2F0RW5kRGVjCWZvcnRyYW5GbG9hdAotICAgIEhpTGluayBmb3J0cmFuVHlwZUV4CWZvcnRyYW5UeXBlCi0gICAgSGlMaW5rIGZvcnRyYW5JT0V4CQlmb3J0cmFuSU8KLSAgICBIaUxpbmsgZm9ydHJhbktleXdvcmRFeAlmb3J0cmFuS2V5d29yZAotICAgIEhpTGluayBmb3J0cmFuU3RyaW5nRXgJZm9ydHJhblN0cmluZwotICAgIEhpTGluayBmb3J0cmFuNzdJbnRyaW5zaWNFeAlmb3J0cmFuOTBJbnRyaW5zaWMKLSAgICBIaUxpbmsgZm9ydHJhblVuaXRIZWFkZXJFeAlmb3J0cmFuVW5pdEhlYWRlcgotICAgIEhpTGluayBmb3J0cmFuQ29uZGl0aW9uYWxFeAlmb3J0cmFuQ29uZGl0aW9uYWwKLSAgICBIaUxpbmsgZm9ydHJhbjkwSW50cmluc2ljRXgJZm9ydHJhbjkwSW50cmluc2ljCi0gIGVuZGlmCi0KLSAgSGlMaW5rIGZvcnRyYW5GbG9hdAkJRmxvYXQKLSAgSGlMaW5rIGZvcnRyYW5QcmVDb25kaXQJUHJlQ29uZGl0Ci0gIEhpTGluayBmb3J0cmFuSW5jbHVkZQkJSW5jbHVkZQotICBIaUxpbmsgY0luY2x1ZGVkCQlmb3J0cmFuU3RyaW5nCi0gIEhpTGluayBjSW5jbHVkZQkJSW5jbHVkZQotICBIaUxpbmsgY1ByZVByb2MJCVByZVByb2MKLSAgSGlMaW5rIGNQcmVDb25kaXQJCVByZUNvbmRpdAotICBIaUxpbmsgZm9ydHJhblBhcmVuRXJyb3IJRXJyb3IKLSAgSGlMaW5rIGZvcnRyYW5Db21tZW50CQlDb21tZW50Ci0gIEhpTGluayBmb3J0cmFuU2VyaWFsTnVtYmVyCVRvZG8KLSAgSGlMaW5rIGZvcnRyYW5UYWIJCUVycm9yCi0gICIgVmVuZG9yIGV4dGVuc2lvbnMKLSAgSGlMaW5rIGZvcnRyYW5FeHRyYUludHJpbnNpYwlGdW5jdGlvbgotCi0gIGRlbGNvbW1hbmQgSGlMaW5rCitpZiBiOmZvcnRyYW5fZGlhbGVjdCA9PSAiRiIKKyAgaGkhIGRlZiBsaW5rIGZvcnRyYW5JbnRyaW5zaWNSCWZvcnRyYW5PYnNvbGV0ZQorICBoaSEgZGVmIGxpbmsgZm9ydHJhblVuaXRIZWFkZXJSCWZvcnRyYW5PYnNvbGV0ZQorICBoaSEgZGVmIGxpbmsgZm9ydHJhblR5cGVSCQlmb3J0cmFuT2Jzb2xldGUKKyAgaGkhIGRlZiBsaW5rIGZvcnRyYW5TdG9yYWdlQ2xhc3NSCWZvcnRyYW5PYnNvbGV0ZQorICBoaSEgZGVmIGxpbmsgZm9ydHJhbk9wZXJhdG9yUiAJZm9ydHJhbk9ic29sZXRlCisgIGhpISBkZWYgbGluayBmb3J0cmFuSW5jbHVkZSAgIAlmb3J0cmFuT2Jzb2xldGUKKyAgaGkhIGRlZiBsaW5rIGZvcnRyYW5MYWJlbE51bWJlcglmb3J0cmFuT2Jzb2xldGUKKyAgaGkhIGRlZiBsaW5rIGZvcnRyYW5UYXJnZXQJICAgICAgICBmb3J0cmFuT2Jzb2xldGUKKyAgaGkhIGRlZiBsaW5rIGZvcnRyYW5GbG9hdElsbAkgICAgICAgIGZvcnRyYW5PYnNvbGV0ZQorICBoaSEgZGVmIGxpbmsgZm9ydHJhbklPUgkJZm9ydHJhbk9ic29sZXRlCisgIGhpISBkZWYgbGluayBmb3J0cmFuS2V5d29yZFIJICAgICAgICBmb3J0cmFuT2Jzb2xldGUKKyAgaGkhIGRlZiBsaW5rIGZvcnRyYW5TdHJpbmdSCSAgICAgICAgZm9ydHJhbk9ic29sZXRlCisgIGhpISBkZWYgbGluayBmb3J0cmFuQ29uZGl0aW9uYWxSCWZvcnRyYW5PYnNvbGV0ZQorZWxzZQorICBoaSEgZGVmIGxpbmsgZm9ydHJhbkludHJpbnNpY1IJZm9ydHJhbkludHJpbnNpYworICBoaSEgZGVmIGxpbmsgZm9ydHJhblVuaXRIZWFkZXJSCWZvcnRyYW5QcmVDb25kaXQKKyAgaGkhIGRlZiBsaW5rIGZvcnRyYW5UeXBlUgkJZm9ydHJhblR5cGUKKyAgaGkhIGRlZiBsaW5rIGZvcnRyYW5TdG9yYWdlQ2xhc3NSCWZvcnRyYW5TdG9yYWdlQ2xhc3MKKyAgaGkhIGRlZiBsaW5rIGZvcnRyYW5PcGVyYXRvclIJICAgICAgICBmb3J0cmFuT3BlcmF0b3IKKyAgaGkhIGRlZiBsaW5rIGZvcnRyYW5JbmNsdWRlCSAgICAgICAgSW5jbHVkZQorICBoaSEgZGVmIGxpbmsgZm9ydHJhbkxhYmVsTnVtYmVyCVNwZWNpYWwKKyAgaGkhIGRlZiBsaW5rIGZvcnRyYW5UYXJnZXQJICAgICAgICBTcGVjaWFsCisgIGhpISBkZWYgbGluayBmb3J0cmFuRmxvYXRJbGwJICAgICAgICBmb3J0cmFuRmxvYXQKKyAgaGkhIGRlZiBsaW5rIGZvcnRyYW5JT1IJCWZvcnRyYW5JTworICBoaSEgZGVmIGxpbmsgZm9ydHJhbktleXdvcmRSCSAgICAgICAgZm9ydHJhbktleXdvcmQKKyAgaGkhIGRlZiBsaW5rIGZvcnRyYW5TdHJpbmdSCSAgICAgICAgZm9ydHJhblN0cmluZworICBoaSEgZGVmIGxpbmsgZm9ydHJhbkNvbmRpdGlvbmFsUglmb3J0cmFuQ29uZGl0aW9uYWwKIGVuZGlmCiAKK2hpIGRlZiBsaW5rIGZvcnRyYW5Gb3JtYXRTcGVjCUlkZW50aWZpZXIKK2hpIGRlZiBsaW5rIGZvcnRyYW5GbG9hdAlGbG9hdAoraGkgZGVmIGxpbmsgZm9ydHJhblByZUNvbmRpdAlQcmVDb25kaXQKK2hpIGRlZiBsaW5rIGNJbmNsdWRlZAkJZm9ydHJhblN0cmluZworaGkgZGVmIGxpbmsgY0luY2x1ZGUJCUluY2x1ZGUKK2hpIGRlZiBsaW5rIGNQcmVQcm9jCQlQcmVQcm9jCitoaSBkZWYgbGluayBjUHJlQ29uZGl0CQlQcmVDb25kaXQKK2hpIGRlZiBsaW5rIGZvcnRyYW5QYXJlbkVycm9yCUVycm9yCitoaSBkZWYgbGluayBmb3J0cmFuQ29tbWVudAlDb21tZW50CitoaSBkZWYgbGluayBmb3J0cmFuU2VyaWFsTnVtYmVyCVRvZG8KK2hpIGRlZiBsaW5rIGZvcnRyYW5UYWIJCUVycm9yCisKKyIgVW5jb21tZW50IHRoZSBuZXh0IGxpbmUgaWYgeW91IHVzZSBleHRyYSBpbnRyaW5zaWNzIHByb3ZpZGVkIGJ5IHZlbmRvcnMKKyJoaSBkZWYgbGluayBmb3J0cmFuRXh0cmFJbnRyaW5zaWMJRnVuY3Rpb24KKwogbGV0IGI6Y3VycmVudF9zeW50YXggPSAiZm9ydHJhbiIKIAogbGV0ICZjcG8gPSBzOmNwb19zYXZlCg==