ZGlmZiAtLWdpdCBhL3J1bnRpbWUvc3ludGF4L2VybGFuZy52aW0gYi9ydW50aW1lL3N5bnRheC9lcmxhbmcudmltCmluZGV4IDI4YmM0YTUuLmYzNGEwMDQgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvc3ludGF4L2VybGFuZy52aW0KKysrIGIvcnVudGltZS9zeW50YXgvZXJsYW5nLnZpbQpAQCAtMSwxMjYgKzEsMTc1IEBACiAiIFZpbSBzeW50YXggZmlsZQotIiBMYW5ndWFnZTogICAgIEVybGFuZwotIiBBdXRob3I6ICAgICAgIE9zY2FyIEhlbGxzdHL2bSA8b3NjYXJAb3NjYXJoLm5ldD4gKGh0dHA6Ly9vc2Nhci5oZWxsc3Ryb20uc3QpCi0iIENvbnRyaWJ1dG9yczogUmljYXJkbyBDYXRhbGluYXMgSmlt6W5leiA8amltZW5lenJpY2tAZ21haWwuY29tPgorIiBMYW5ndWFnZTogICAgIEVybGFuZyAoaHR0cDovL3d3dy5lcmxhbmcub3JnKQorIiBNYWludGFpbmVyOiAgIENzYWJhIEhvY2ggPGNzYWJhLmhvY2hAZ21haWwuY29tPgorIiBGb3JtZXIgTWFpbnRhaW5lcjogIEtyZcSFaW1pciBNYXLEvmnEhyAoS3Jlc2ltaXIgTWFyemljKSA8a21hcnppY0BmbHkuc3JrLmZlci5ocj4KKyIgTGFzdCBVcGRhdGU6ICAyMDEzLU1hci0wNwogIiBMaWNlbnNlOiAgICAgIFZpbSBsaWNlbnNlCi0iIFZlcnNpb246ICAgICAgMjAxMS8wOS8xMQorIiBVUkw6ICAgICAgICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9oY3M0Mi92aW0tZXJsYW5nCiAKLWlmIGV4aXN0cygiYjpjdXJyZW50X3N5bnRheCIpCi0JZmluaXNoCi1lbHNlCi0JbGV0IGI6Y3VycmVudF9zeW50YXggPSAiZXJsYW5nIgorIiBDdXN0b21pemF0aW9uOgorIgorIiBUaGVyZSBhcmUgdHdvIG9wdGlvbmFsIHNldHMgb2YgaGlnaGxpZ2h0aW5nOgorIgorIiAxLiBUaGUgQklGcyAoYnVpbHQtaW4gZnVuY3Rpb25zKSBhcmUgaGlnaGxpZ2h0ZWQgYnkgZGVmYXVsdC4gVG8gZGlzYWJsZQorIiAgICB0aGlzLCBwdXQgdGhlIGZvbGxvd2luZyBsaW5lIGluIHlvdXIgdmltcmM6CisiCisiICAgICAgbGV0IGc6ZXJsYW5nX2hpZ2hsaWdodF9iaWZzID0gMAorIgorIiAyLiBUbyBlbmFibGUgaGlnaGxpZ2h0aW5nIHNvbWUgc3BlY2lhbCBhdG9tcywgcHV0IHRoaXMgaW4geW91ciB2aW1yYzoKKyIKKyIgICAgICBsZXQgZzplcmxhbmdfaGlnaGxpZ2h0X3NwZWNpYWxfYXRvbXMgPSAxCisKKyIgRm9yIHZlcnNpb24gNS54OiBDbGVhciBhbGwgc3ludGF4IGl0ZW1zCisiIEZvciB2ZXJzaW9uIDYueDogUXVpdCB3aGVuIGEgc3ludGF4IGZpbGUgd2FzIGFscmVhZHkgbG9hZGVkCitpZiB2ZXJzaW9uIDwgNjAwCisgICAgc3ludGF4IGNsZWFyCitlbHNlaWYgZXhpc3RzKCJiOmN1cnJlbnRfc3ludGF4IikKKyAgICBmaW5pc2gKIGVuZGlmCiAKLWlmICFleGlzdHMoImc6ZXJsYW5nX2hpZ2hsaWdodF9iaWYiKQotCWxldCBnOmVybGFuZ19oaWdobGlnaHRfYmlmID0gMQotZW5kaWYKLQotIiBFcmxhbmcgaXMgY2FzZSBzZW5zaXRpdmUKKyIgQ2FzZSBzZW5zaXRpdmUKIHN5biBjYXNlIG1hdGNoCiAKLSIgTWF0Y2ggZ3JvdXBzCi1zeW4gbWF0Y2ggZXJsYW5nU3RyaW5nTW9kaWZpZXIgICAgICAgICAgICAgICAvXFwuLyBjb250YWluZWQKLXN5biBtYXRjaCBlcmxhbmdTdHJpbmdNb2RpZmllciAgICAgICAgICAgICAgIC9cflwlKC1cP1swLTkqXVwrXClcP1wlKFwuWzAtOSpdXCtcLi5cP1wpXD9cJShjXHxmXHxlXHxnXHxzXHx3XHxwXHxXXHxQXHxCXHxYXHwjXHxiXHwrXHxuXHxpXCkvIGNvbnRhaW5lZAotc3luIG1hdGNoIGVybGFuZ01vZGlmaWVyICAgICAgICAgICAgICAgICAgICAgL1wkXFxcPy4vCi0KLXN5biBtYXRjaCBlcmxhbmdJbnRlZ2VyICAgICAgICAgICAgICAgICAgICAgIC9cPFwlKFswLTldXCsjWzAtOWEtZkEtRl1cK1x8WzAtOV1cK1wpXD4vCi1zeW4gbWF0Y2ggZXJsYW5nRmxvYXQgICAgICAgICAgICAgICAgICAgICAgICAvXDxbMC05XVwrXC5bMC05XVwrXCUoZS1cP1swLTldXCtcKVw/XD4vCi0KLXN5biBrZXl3b3JkIGVybGFuZ1RvZG8gICAgICAgICAgICAgICAgICAgICAgIFRPRE8gRklYTUUgWFhYIGNvbnRhaW5lZAotc3luIG1hdGNoICAgZXJsYW5nQ29tbWVudCAgICAgICAgICAgICAgICAgICAgLyUuKiQvIGNvbnRhaW5zPUBTcGVsbCxlcmxhbmdUb2RvLGVybGFuZ0Fubm90YXRpb24KLXN5biBtYXRjaCAgIGVybGFuZ0Fubm90YXRpb24gICAgICAgICAgICAgICAgIC9cJSglXHNcKVxAPD1AXCUoYXV0aG9yXHxjbGVhclx8Y29weXJpZ2h0XHxkZXByZWNhdGVkXHxkb2NcfGRvY2ZpbGVcfGVuZFx8ZXF1aXZcfGhlYWRlcmZpbGVcfGhpZGRlblx8cHJpdmF0ZVx8cmVmZXJlbmNlXHxzZWVcfHNpbmNlXHxzcGVjXHx0aHJvd3NcfHRpdGxlXHx0b2RvXHxUT0RPXHx0eXBlXHx2ZXJzaW9uXCkvIGNvbnRhaW5lZAotc3luIG1hdGNoICAgZXJsYW5nQW5ub3RhdGlvbiAgICAgICAgICAgICAgICAgL2BbXiddXCsnLyBjb250YWluZWQKLQotc3luIGtleXdvcmQgZXJsYW5nS2V5d29yZCAgICAgICAgICAgICAgICAgICAgYmFuZCBib3IgYm5vdCBic2wgYnNyIGJ4b3IgZGl2IHJlbSB4b3IKLXN5biBrZXl3b3JkIGVybGFuZ0tleXdvcmQgICAgICAgICAgICAgICAgICAgIHRyeSBjYXRjaCBiZWdpbiByZWNlaXZlIGFmdGVyIGNvbmQgZnVuIGxldCBxdWVyeQotCi1zeW4ga2V5d29yZCBlcmxhbmdDb25kaXRpb25hbCAgICAgICAgICAgICAgICBjYXNlIGlmIG9mIGVuZAotc3luIGtleXdvcmQgZXJsYW5nQ29uZGl0aW9uYWwgICAgICAgICAgICAgICAgbm90IGFuZCBvciBhbmRhbHNvIG9yZWxzZQotc3luIGtleXdvcmQgZXJsYW5nQ29uZGl0aW9uYWwgICAgICAgICAgICAgICAgd2hlbgotCi1zeW4ga2V5d29yZCBlcmxhbmdCb29sZWFuICAgICAgICAgICAgICAgICAgICB0cnVlIGZhbHNlCi0KLXN5biBrZXl3b3JkIGVybGFuZ0d1YXJkICAgICAgICAgICAgICAgICAgICAgIGlzX2xpc3QgaXNfYWxpdmUgaXNfYXRvbSBpc19iaW5hcnkgaXNfYml0c3RyaW5nIGlzX2Jvb2xlYW4gaXNfdHVwbGUgaXNfbnVtYmVyIGlzX2ludGVnZXIgaXNfZmxvYXQgaXNfZnVuY3Rpb24gaXNfY29uc3RhbnQgaXNfcGlkIGlzX3BvcnQgaXNfcmVmZXJlbmNlIGlzX3JlY29yZCBpc19wcm9jZXNzX2FsaXZlCi0KLXN5biBtYXRjaCBlcmxhbmdPcGVyYXRvciAgICAgICAgICAgICAgICAgICAgIC9cL1x8Klx8K1x8LVx8KytcfC0tLwotc3luIG1hdGNoIGVybGFuZ09wZXJhdG9yICAgICAgICAgICAgICAgICAgICAgLy0+XHw8LVx8fHxcfHxcfCFcfD0vCi1zeW4gbWF0Y2ggZXJsYW5nT3BlcmF0b3IgICAgICAgICAgICAgICAgICAgICAvPTo9XHw9PVx8XC89XHw9XC89XHw8XHw+XHw9PFx8Pj0vCi1zeW4ga2V5d29yZCBlcmxhbmdPcGVyYXRvciAgICAgICAgICAgICAgICAgICBkaXYgcmVtCi0KLXN5biByZWdpb24gZXJsYW5nU3RyaW5nICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0PS8iLyBlbmQ9LyIvIHNraXA9L1xcLyBjb250YWlucz1AU3BlbGwsZXJsYW5nU3RyaW5nTW9kaWZpZXIKLQotc3luIG1hdGNoIGVybGFuZ1ZhcmlhYmxlICAgICAgICAgICAgICAgICAgICAgL1w8W0EtWl9dXHcqXD4vCi1zeW4gbWF0Y2ggZXJsYW5nQXRvbSAgICAgICAgICAgICAgICAgICAgICAgICAvXCUoXCUoXi1cKVx8I1wpXEA8IVw8W2Etel1bQS1aYS16MC05X10qXD5cJShccypbKDpdXClcQCEvCi1zeW4gbWF0Y2ggZXJsYW5nQXRvbSAgICAgICAgICAgICAgICAgICAgICAgICAvXFxcQDwhJ1teJ10qXFxcQDwhJy8KLQotc3luIG1hdGNoIGVybGFuZ1JlY29yZCAgICAgICAgICAgICAgICAgICAgICAgLyNcd1wrLwotCi1zeW4gbWF0Y2ggZXJsYW5nVHVwbGUgICAgICAgICAgICAgICAgICAgICAgICAve1x8fS8KLXN5biBtYXRjaCBlcmxhbmdMaXN0ICAgICAgICAgICAgICAgICAgICAgICAgIC9cW1x8XF0vCi0KLXN5biBtYXRjaCBlcmxhbmdBdHRyaWJ1dGUgICAgICAgICAgICAgICAgICAgIC9eLVwlKHZzblx8YXV0aG9yXHxjb3B5cmlnaHRcfGNvbXBpbGVcfGRlcHJlY2F0ZWRcfG1vZHVsZVx8ZXhwb3J0XHxpbXBvcnRcfGJlaGF2aW91clx8YmVoYXZpb3JcfGV4cG9ydF90eXBlXHxpZ25vcmVfeHJlZlx8b25fbG9hZFwpXHMqKFxAPS8KLXN5biBtYXRjaCBlcmxhbmdJbmNsdWRlICAgICAgICAgICAgICAgICAgICAgIC9eLWluY2x1ZGVcJShfbGliXClcP1xzKihcQD0vCi1zeW4gbWF0Y2ggZXJsYW5nUmVjb3JkRGVmICAgICAgICAgICAgICAgICAgICAvXi1yZWNvcmRccyooXEA9Lwotc3luIG1hdGNoIGVybGFuZ0RlZmluZSAgICAgICAgICAgICAgICAgICAgICAgL14tXCUoZGVmaW5lXHx1bmRlZlwpXHMqKFxAPS8KLXN5biBtYXRjaCBlcmxhbmdQcmVDb25kaXQgICAgICAgICAgICAgICAgICAgIC9eLVwlKGlmZGVmXHxpZm5kZWZcfGVsc2VcfGVuZGlmXClcJShccyooXEA9XClcPy8KLQotc3luIG1hdGNoIGVybGFuZ1R5cGUgICAgICAgICAgICAgICAgICAgICAgICAgL14tXCUoc3BlY1x8dHlwZVwpWyggXVxAPS8KLQotc3luIG1hdGNoIGVybGFuZ01hY3JvICAgICAgICAgICAgICAgICAgICAgICAgL1wlKC1kZWZpbmUoXClcQDw9XHdcKy8KLXN5biBtYXRjaCBlcmxhbmdNYWNybyAgICAgICAgICAgICAgICAgICAgICAgIC8/XD8/XHdcKy8KLQotc3luIG1hdGNoIGVybGFuZ0JpdFR5cGUgICAgICAgICAgICAgICAgICAgICAgL1wlKFwvXHwtXClcQDw9XCUoYml0c1x8Yml0c3RyaW5nXHxiaW5hcnlcfGludGVnZXJcfGZsb2F0XHx1bml0XClcPi8KLXN5biBtYXRjaCBlcmxhbmdCaXRTaXplICAgICAgICAgICAgICAgICAgICAgIC86XEA8PVswLTldXCsvCi0KLXN5biBtYXRjaCBlcmxhbmdCaW5hcnkgICAgICAgICAgICAgICAgICAgICAgLzw8XHw+Pi8KLQotIiBCSUZzCi1zeW4gbWF0Y2ggZXJsYW5nQklGICAgICAgICAgICAgICAgICAgICAgICAgICAvXCUoW146MC05QS1aYS16X11cfFw8ZXJsYW5nOlwpXEA8PVwlKGFic1x8YXBwbHlcfGF0b21fdG9fYmluYXJ5XHxhdG9tX3RvX2xpc3RcfGJpbmFyeV9wYXJ0XHxiaW5hcnlfdG9fYXRvbVx8YmluYXJ5X3RvX2V4aXN0aW5nX2F0b21cfGJpbmFyeV90b19saXN0XHxiaW5hcnlfdG9fdGVybVx8Yml0X3NpemVcfGJpdHN0cmluZ190b19saXN0XHxieXRlX3NpemVcfGNoZWNrX3Byb2Nlc3NfY29kZVx8ZGF0ZVx8ZGVsZXRlX21vZHVsZVx8ZGVtb25pdG9yXHxkaXNjb25uZWN0X25vZGVcfGVsZW1lbnRcfGVyYXNlXHxleGl0XHxmbG9hdFx8ZmxvYXRfdG9fbGlzdFx8Z2FyYmFnZV9jb2xsZWN0XHxnZXRcfGdldF9rZXlzXHxncm91cF9sZWFkZXJcfGhkXHxpbnRlZ2VyX3RvX2xpc3RcfGlvbGlzdF9zaXplXHxpb2xpc3RfdG9fYmluYXJ5XHxpc19hbGl2ZVx8aXNfYXRvbVx8aXNfYmluYXJ5XHxpc19iaXRzdHJpbmdcfGlzX2Jvb2xlYW5cfGlzX2Zsb2F0XHxpc19mdW5jdGlvblx8aXNfaW50ZWdlclx8aXNfbGlzdFx8aXNfbnVtYmVyXHxpc19waWRcfGlzX3BvcnRcfGlzX3Byb2Nlc3NfYWxpdmVcfGlzX3JlY29yZFx8aXNfcmVmZXJlbmNlXHxpc190dXBsZVx8bGVuZ3RoXHxsaW5rXHxsaXN0X3RvX2F0b21cfGxpc3RfdG9fYmluYXJ5XHxsaXN0X3RvX2JpdHN0cmluZ1x8bGlzdF90b19leGlzdGluZ19hdG9tXHxsaXN0X3RvX2Zsb2F0XHxsaXN0X3RvX2ludGVnZXJcfGxpc3RfdG9fcGlkXHxsaXN0X3RvX3R1cGxlXHxsb2FkX21vZHVsZVx8bWFrZV9yZWZcfG1heFx8bWluXHxtb2R1bGVfbG9hZGVkXHxtb25pdG9yXHxtb25pdG9yX25vZGVcfG5vZGVcfG5vZGVzXHxub3dcfG9wZW5fcG9ydFx8cGlkX3RvX2xpc3RcfHBvcnRfY2xvc2VcfHBvcnRfY29tbWFuZFx8cG9ydF9jb25uZWN0XHxwb3J0X2NvbnRyb2xcfHByZV9sb2FkZWRcfHByb2Nlc3Nlc1x8cHJvY2Vzc19mbGFnXHxwcm9jZXNzX2luZm9cfHB1cmdlX21vZHVsZVx8cHV0XHxyZWdpc3Rlclx8cmVnaXN0ZXJlZFx8cm91bmRcfHNlbGZcfHNldGVsZW1lbnRcfHNpemVcfHNwYXduXHxzcGF3bl9saW5rXHxzcGF3bl9tb25pdG9yXHxzcGF3bl9vcHRcfHNwbGl0X2JpbmFyeVx8c3RhdGlzdGljc1x8dGVybV90b19iaW5hcnlcfHRpbWVcfHRsXHx0cnVuY1x8dHVwbGVfc2l6ZVx8dHVwbGVfdG9fbGlzdFx8dW5saW5rXHx1bnJlZ2lzdGVyXHx3aGVyZWlzXClcJSgoXHxcL1swLTldXClcQD0vCi1zeW4gbWF0Y2ggZXJsYW5nQklGICAgICAgICAgICAgICAgICAgICAgICAgICAvXDxcJShlcmxhbmc6XClcQDw9XCUoYXBwZW5kX2VsZW1lbnRcfGJ1bXBfcmVkdWN0aW9uc1x8Y2FuY2VsX3RpbWVyXHxkZWNvZGVfcGFja2V0XHxkaXNwbGF5XHxmdW5jdGlvbl9leHBvcnRlZFx8ZnVuX2luZm9cfGZ1bl90b19saXN0XHxnZXRfY29va2llXHxnZXRfc3RhY2t0cmFjZVx8aGFzaFx8aXNfYnVpbHRpblx8bG9hZGVkXHxsb2FkX25pZlx8bG9jYWx0aW1lXHxsb2NhbHRpbWVfdG9fdW5pdmVyc2FsdGltZVx8bWFrZV90dXBsZVx8bWVtb3J5XHxtb25pdG9yX25vZGVcfHBoYXNoXHxwb3J0X2NhbGxcfHBvcnRfaW5mb1x8cG9ydHNcfHBvcnRfdG9fbGlzdFx8cHJvY2Vzc19kaXNwbGF5XHxyZWFkX3RpbWVyXHxyZWZfdG9fbGlzdFx8cmVzdW1lX3Byb2Nlc3NcfHNlbmRcfHNlbmRfYWZ0ZXJcfHNlbmRfbm9zdXNwZW5kXHxzZXRfY29va2llXHxzdGFydF90aW1lclx8c3VzcGVuZF9wcm9jZXNzXHxzeXN0ZW1fZmxhZ1x8c3lzdGVtX2luZm9cfHN5c3RlbV9tb25pdG9yXHxzeXN0ZW1fcHJvZmlsZVx8dHJhY2VcfHRyYWNlX2RlbGl2ZXJlZFx8dHJhY2VfaW5mb1x8dHJhY2VfcGF0dGVyblx8dW5pdmVyc2FsdGltZVx8dW5pdmVyc2FsdGltZV90b19sb2NhbHRpbWVcfHlpZWxkXCkoXEA9Lwotc3luIG1hdGNoIGVybGFuZ0dCSUYgICAgICAgICAgICAgICAgICAgICAgICAgL2VybGFuZ1wlKDpcd1wpXEA9LwotCi0iIExpbmsgRXJsYW5nIHN0dWZmIHRvIFZpbSBncm91cHMKLWhpIGxpbmsgZXJsYW5nVG9kbyAgICAgICAgICAgVG9kbwotaGkgbGluayBlcmxhbmdTdHJpbmcgICAgICAgICBTdHJpbmcKLWhpIGxpbmsgZXJsYW5nTm9TcGVsbFN0cmluZyAgU3RyaW5nCi1oaSBsaW5rIGVybGFuZ01vZGlmaWVyICAgICAgIFNwZWNpYWxDaGFyCi1oaSBsaW5rIGVybGFuZ1N0cmluZ01vZGlmaWVyIFNwZWNpYWxDaGFyCi1oaSBsaW5rIGVybGFuZ0NvbW1lbnQgICAgICAgIENvbW1lbnQKLWhpIGxpbmsgZXJsYW5nQW5ub3RhdGlvbiAgICAgU3BlY2lhbAotaGkgbGluayBlcmxhbmdWYXJpYWJsZSAgICAgICBJZGVudGlmaWVyCi1oaSBsaW5rIGVybGFuZ0luY2x1ZGUgICAgICAgIEluY2x1ZGUKLWhpIGxpbmsgZXJsYW5nUmVjb3JkRGVmICAgICAgS2V5d29yZAotaGkgbGluayBlcmxhbmdBdHRyaWJ1dGUgICAgICBLZXl3b3JkCi1oaSBsaW5rIGVybGFuZ0tleXdvcmQgICAgICAgIEtleXdvcmQKLWhpIGxpbmsgZXJsYW5nTWFjcm8gICAgICAgICAgTWFjcm8KLWhpIGxpbmsgZXJsYW5nRGVmaW5lICAgICAgICAgRGVmaW5lCi1oaSBsaW5rIGVybGFuZ1ByZUNvbmRpdCAgICAgIFByZUNvbmRpdAotaGkgbGluayBlcmxhbmdQcmVQcm9jICAgICAgICBQcmVQcm9jCi1oaSBsaW5rIGVybGFuZ0RlbGltaXRlciAgICAgIERlbGltaXRlcgotaGkgbGluayBlcmxhbmdCaXREZWxpbWl0ZXIgICBOb3JtYWwKLWhpIGxpbmsgZXJsYW5nT3BlcmF0b3IgICAgICAgT3BlcmF0b3IKLWhpIGxpbmsgZXJsYW5nQ29uZGl0aW9uYWwgICAgQ29uZGl0aW9uYWwKLWhpIGxpbmsgZXJsYW5nR3VhcmQgICAgICAgICAgQ29uZGl0aW9uYWwKLWhpIGxpbmsgZXJsYW5nQm9vbGVhbiAgICAgICAgQm9vbGVhbgotaGkgbGluayBlcmxhbmdBdG9tICAgICAgICAgICBDb25zdGFudAotaGkgbGluayBlcmxhbmdSZWNvcmQgICAgICAgICBTdHJ1Y3R1cmUKLWhpIGxpbmsgZXJsYW5nSW50ZWdlciAgICAgICAgTnVtYmVyCi1oaSBsaW5rIGVybGFuZ0Zsb2F0ICAgICAgICAgIE51bWJlcgotaGkgbGluayBlcmxhbmdGbG9hdCAgICAgICAgICBOdW1iZXIKLWhpIGxpbmsgZXJsYW5nRmxvYXQgICAgICAgICAgTnVtYmVyCi1oaSBsaW5rIGVybGFuZ0Zsb2F0ICAgICAgICAgIE51bWJlcgotaGkgbGluayBlcmxhbmdIZXggICAgICAgICAgICBOdW1iZXIKLWhpIGxpbmsgZXJsYW5nRnVuICAgICAgICAgICAgS2V5d29yZAotaGkgbGluayBlcmxhbmdMaXN0ICAgICAgICAgICBEZWxpbWl0ZXIKLWhpIGxpbmsgZXJsYW5nVHVwbGUgICAgICAgICAgRGVsaW1pdGVyCi1oaSBsaW5rIGVybGFuZ0JpbmFyeSAgICAgICAgIEtleXdvcmQKLWhpIGxpbmsgZXJsYW5nQml0VmFyaWFibGUgICAgSWRlbnRpZmllcgotaGkgbGluayBlcmxhbmdCaXRUeXBlICAgICAgICBUeXBlCi1oaSBsaW5rIGVybGFuZ1R5cGUgICAgICAgICAgIFR5cGUKLWhpIGxpbmsgZXJsYW5nQml0U2l6ZSAgICAgICAgTnVtYmVyCi0KLSIgT3B0aW9uYWwgaGlnaGxpZ2h0aW5nCi1pZiBnOmVybGFuZ19oaWdobGlnaHRfYmlmCi0JaGkgbGluayBlcmxhbmdCSUYgICAgS2V5d29yZAotCWhpIGxpbmsgZXJsYW5nR0JJRiAgIEtleXdvcmQKK2lmIHZlcnNpb24gPj0gNjAwCisgIHNldGxvY2FsIGlza2V5d29yZCs9JCxALUAKIGVuZGlmCisKKyIgQ29tbWVudHMKK3N5biBtYXRjaCBlcmxhbmdDb21tZW50ICAgICAgICAgICAgICclLiokJyBjb250YWlucz1lcmxhbmdDb21tZW50QW5ub3RhdGlvbixlcmxhbmdUb2RvCitzeW4gbWF0Y2ggZXJsYW5nQ29tbWVudEFubm90YXRpb24gICAnIFxAPD1AXCUoY2xlYXJcfGRvY2ZpbGVcfGVuZFx8aGVhZGVyZmlsZVx8dG9kb1x8VE9ET1x8dHlwZVx8YXV0aG9yXHxjb3B5cmlnaHRcfGRvY1x8cmVmZXJlbmNlXHxzZWVcfHNpbmNlXHx0aXRsZVx8dmVyc2lvblx8ZGVwcmVjYXRlZFx8aGlkZGVuXHxwcml2YXRlXHxlcXVpdlx8c3BlY1x8dGhyb3dzXCknIGNvbnRhaW5lZAorc3luIG1hdGNoIGVybGFuZ0NvbW1lbnRBbm5vdGF0aW9uICAgL2BbXiddKicvIGNvbnRhaW5lZAorc3luIGtleXdvcmQgZXJsYW5nVG9kbyAgICAgICAgICAgICAgVE9ETyBGSVhNRSBYWFggY29udGFpbmVkCisKKyIgTnVtYmVycyAobWluaW11bSBiYXNlIGlzIDIsIG1heGltdW0gaXMgMzYuKQorc3luIG1hdGNoICAgZXJsYW5nTnVtYmVySW50ZWdlciAgICAgJ1w8XGRcK1w+Jworc3luIG1hdGNoICAgZXJsYW5nTnVtYmVySW50ZWdlciAgICAgJ1w8XCUoWzItOV1cfFsxMl1cZFx8M1swLTZdXClcKyNbWzphbG51bTpdXVwrXD4nCitzeW4gbWF0Y2ggICBlcmxhbmdOdW1iZXJGbG9hdCAgICAgICAnXDxcZFwrXC5cZFwrXCUoW2VFXVsrLV1cPVxkXCtcKVw9XD4nCisKKyIgU3RyaW5ncywgYXRvbXMsIGNoYXJhY3RlcnMKK3N5biByZWdpb24gIGVybGFuZ1N0cmluZyAgICAgICAgICAgIHN0YXJ0PS8iLyBlbmQ9LyIvIGNvbnRhaW5zPWVybGFuZ1N0cmluZ01vZGlmaWVyCitzeW4gcmVnaW9uICBlcmxhbmdRdW90ZWRBdG9tICAgICAgICBzdGFydD0vJy8gZW5kPS8nLyBjb250YWlucz1lcmxhbmdRdW90ZWRBdG9tTW9kaWZpZXIKK3N5biBtYXRjaCAgIGVybGFuZ1N0cmluZ01vZGlmaWVyICAgICAnXH5cYVx8XFxcJShcb1x7MSwzfVx8eFx4XHhcfHh7XHhcK31cfFxeLlx8LlwpJyBjb250YWluZWQKK3N5biBtYXRjaCAgIGVybGFuZ1F1b3RlZEF0b21Nb2RpZmllciAnXH5cYVx8XFxcJShcb1x7MSwzfVx8eFx4XHhcfHh7XHhcK31cfFxeLlx8LlwpJyBjb250YWluZWQKK3N5biBtYXRjaCAgIGVybGFuZ01vZGlmaWVyICAgICAgICAgICAnXCRcJShbXlxcXVx8XFxcJShcb1x7MSwzfVx8eFx4XHhcfHh7XHhcK31cfFxeLlx8LlwpXCknCisKKyIgT3BlcmF0b3JzCitzeW4gbWF0Y2ggICBlcmxhbmdPcGVyYXRvciAgICAgICAgICAnPT1cfD06PVx8Lz1cfD0vPVx8PFx8PTxcfD5cfD49XHwrK1x8LS1cfD1cfCFcfDwtXHwrXHwtXHxcKlx8XC8nCitzeW4ga2V5d29yZCBlcmxhbmdPcGVyYXRvciAgICAgICAgICBkaXYgcmVtIG9yIHhvciBib3IgYnhvciBic2wgYnNyIGFuZCBiYW5kIG5vdCBibm90IGFuZGFsc28gb3JlbHNlCisKKyIgU2VwYXJhdG9ycworc3luIG1hdGNoIGVybGFuZ1NlcGFyYXRvciAgICAgICAgICAgJyhcfClcfHtcfH1cfFxbXHxdXHx8XHx8fFx8O1x8LFx8P1x8IycKK3N5biBtYXRjaCBlcmxhbmdSaWdodEFycm93ICAgICAgICAgICctPicKKworIiBGdW5jdGlvbnMgY2FsbAorc3luIG1hdGNoICAgZXJsYW5nRkNhbGwgICAgICAgICAgICAgJ1w8XCUoXGFbWzphbG51bTpdQF0qXHMqXC5ccypcKSpcYVtbOmFsbnVtOl1AXSpccyo6XHMqXGFbWzphbG51bTpdQF0qXD4nCisKKyIgQ29uc3RhbnRzIGFuZCBEaXJlY3RpdmVzCitzeW4gbWF0Y2ggICBlcmxhbmdEaXJlY3RpdmUgICAgICAgICAnLVwlKGJlaGF2aW91clx8YmVoYXZpb3JcfGNvbXBpbGVcfGRlZmluZVx8ZWxzZVx8ZW5kaWZcfGV4cG9ydFx8ZmlsZVx8aWZkZWZcfGlmbmRlZlx8aW1wb3J0XHxpbmNsdWRlX2xpYlx8aW5jbHVkZVx8bW9kdWxlXHxyZWNvcmRcfHVuZGVmXHxhdXRob3JcfGNvcHlyaWdodFx8ZG9jXHx2c25cfG9uX2xvYWRcfGV4cG9ydF90eXBlXClcPicKKworIiBLZXl3b3Jkcworc3luIGtleXdvcmQgZXJsYW5nS2V5d29yZCAgICAgICAgICAgYWZ0ZXIgYmVnaW4gY2FzZSBjYXRjaCBjb25kIGVuZCBmdW4gaWYgbGV0IG9mIHF1ZXJ5IHJlY2VpdmUgd2hlbiB0cnkKK3N5biBrZXl3b3JkIGVybGFuZ0V4dHJhICAgICAgICAgICAgIHRydWUgZmFsc2UKKworCitpZiAhZXhpc3RzKCJnOmVybGFuZ19oaWdobGlnaHRfYmlmcyIpIHx8IGc6ZXJsYW5nX2hpZ2hsaWdodF9iaWZzID09IDEKKworICAiIGJ1aWxkLWluLWZ1bmN0aW9ucyAoQklGcykKKyAgc3luIGtleXdvcmQgZXJsYW5nQklGICAgICAgICBhYnMgYWxpdmUgYXBwbHkgYXRvbV90b19iaW5hcnkgYXRvbV90b19saXN0IGJpbmFyeV9wYXJ0IGJpbmFyeV90b19hdG9tIGJpbmFyeV90b19leGlzdGluZ19hdG9tIGJpbmFyeV90b19mbG9hdCBiaW5hcnlfdG9faW50ZWdlciBiaXRzdHJpbmdfdG9fbGlzdCBiaW5hcnlfdG9fbGlzdCBiaW5hcnlfdG9fdGVybSBiaXRfc2l6ZSBieXRlX3NpemUgY2hlY2tfb2xkX2NvZGUgY2hlY2tfcHJvY2Vzc19jb2RlIGNvbmNhdF9iaW5hcnkgZGF0ZSBkZWxldGVfbW9kdWxlIGRlbW9uaXRvciBkaXNjb25uZWN0X25vZGUgZWxlbWVudCBlcmFzZSBlcnJvciBleGl0IGZsb2F0IGZsb2F0X3RvX2JpbmFyeSBmbG9hdF90b19saXN0IGdhcmJhZ2VfY29sbGVjdCBnZXQgZ2V0X2tleXMgZ3JvdXBfbGVhZGVyIGhhbHQgaGQgaW50ZWdlcl90b19iaW5hcnkgaW50ZWdlcl90b19saXN0IGlvbGlzdF90b19iaW5hcnkgaW9saXN0X3NpemUgaXNfYWxpdmUgaXNfYXRvbSBpc19iaW5hcnkgaXNfYml0c3RyaW5nIGlzX2Jvb2xlYW4gaXNfZmxvYXQgaXNfZnVuY3Rpb24gaXNfaW50ZWdlciBpc19saXN0IGlzX251bWJlciBpc19waWQgaXNfcG9ydCBpc19wcm9jZXNzX2FsaXZlIGlzX3JlY29yZCBpc19yZWZlcmVuY2UgaXNfdHVwbGUgbGVuZ3RoIGxpbmsgbGlzdF90b19hdG9tIGxpc3RfdG9fYmluYXJ5IGxpc3RfdG9fYml0c3RyaW5nIGxpc3RfdG9fZXhpc3RpbmdfYXRvbSBsaXN0X3RvX2Zsb2F0IGxpc3RfdG9faW50ZWdlciBsaXN0X3RvX3BpZCBsaXN0X3RvX3R1cGxlIGxvYWRfbW9kdWxlIG1ha2VfcmVmIG1heCBtaW4gbW9kdWxlX2xvYWRlZCBtb25pdG9yIG1vbml0b3Jfbm9kZSBub2RlIG5vZGVzIG5vdyBvcGVuX3BvcnQgcGlkX3RvX2xpc3QgcG9ydF9jbG9zZSBwb3J0X2NvbW1hbmQgcG9ydF9jb25uZWN0IHByZV9sb2FkZWQgcHJvY2Vzc19mbGFnIHByb2Nlc3NfZmxhZyBwcm9jZXNzX2luZm8gcHJvY2VzcyBwdXJnZV9tb2R1bGUgcHV0IHJlZ2lzdGVyIHJlZ2lzdGVyZWQgcm91bmQgc2VsZiBzZXRlbGVtZW50IHNpemUgc3Bhd24gc3Bhd25fbGluayBzcGF3bl9tb25pdG9yIHNwYXduX29wdCBzcGxpdF9iaW5hcnkgc3RhdGlzdGljcyB0ZXJtX3RvX2JpbmFyeSB0aHJvdyB0aW1lIHRsIHRydW5jIHR1cGxlX3NpemUgdHVwbGVfdG9fbGlzdCB1bmxpbmsgdW5yZWdpc3RlciB3aGVyZWlzCisKK2VuZGlmCisKKworaWYgZXhpc3RzKCJnOmVybGFuZ19oaWdobGlnaHRfc3BlY2lhbF9hdG9tcyIpICYmIGc6ZXJsYW5nX2hpZ2hsaWdodF9zcGVjaWFsX2F0b21zID09IDEKKworICAiIFByb2Nlc3NlcworICBzeW4ga2V5d29yZCBlcmxhbmdQcm9jZXNzICAgIGNyZWF0aW9uIGN1cnJlbnRfZnVuY3Rpb24gZGljdGlvbmFyeQorICBzeW4ga2V5d29yZCBlcmxhbmdQcm9jZXNzICAgIGdyb3VwX2xlYWRlciBoZWFwX3NpemUgaGlnaCBpbml0aWFsX2NhbGwKKyAgc3luIGtleXdvcmQgZXJsYW5nUHJvY2VzcyAgICBsaW5rZWQgbG93IG1lbW9yeV9pbl91c2UgbWVzc2FnZV9xdWV1ZQorICBzeW4ga2V5d29yZCBlcmxhbmdQcm9jZXNzICAgIG5ldF9rZXJuZWwgbm9kZSBub3JtYWwgcHJpb3JpdHkKKyAgc3luIGtleXdvcmQgZXJsYW5nUHJvY2VzcyAgICByZWR1Y3Rpb25zIHJlZ2lzdGVyZWRfbmFtZSBydW5uYWJsZQorICBzeW4ga2V5d29yZCBlcmxhbmdQcm9jZXNzICAgIHJ1bm5pbmcgc3RhY2tfdHJhY2Ugc3RhdHVzIHRpbWVyCisgIHN5biBrZXl3b3JkIGVybGFuZ1Byb2Nlc3MgICAgdHJhcF9leGl0IHdhaXRpbmcKKworICAiIFBvcnRzCisgIHN5biBrZXl3b3JkIGVybGFuZ1BvcnQgICAgICAgY29tbWFuZCBjb3VudF9pbiBjb3VudF9vdXQgY3JlYXRpb24gaW4KKyAgc3luIGtleXdvcmQgZXJsYW5nUG9ydCAgICAgICBpbl9mb3JtYXQgbGlua2VkIG5vZGUgb3V0IG93bmVyIHBhY2tldGluZworCisgICIgTm9kZXMKKyAgc3luIGtleXdvcmQgZXJsYW5nTm9kZSAgICAgICBhdG9tX3RhYmxlcyBjb21tdW5pY2F0aW5nIGNyZWF0aW9uCisgIHN5biBrZXl3b3JkIGVybGFuZ05vZGUgICAgICAgY3VycmVudF9nYyBjdXJyZW50X3JlZHVjdGlvbnMgY3VycmVudF9ydW50aW1lCisgIHN5biBrZXl3b3JkIGVybGFuZ05vZGUgICAgICAgY3VycmVudF93YWxsX2Nsb2NrIGRpc3RyaWJ1dGlvbl9wb3J0CisgIHN5biBrZXl3b3JkIGVybGFuZ05vZGUgICAgICAgZW50cnlfcG9pbnRzIGVycm9yX2hhbmRsZXIgZnJpZW5kcworICBzeW4ga2V5d29yZCBlcmxhbmdOb2RlICAgICAgIGdhcmJhZ2VfY29sbGVjdGlvbiBtYWdpY19jb29raWUgbWFnaWNfY29va2llcworICBzeW4ga2V5d29yZCBlcmxhbmdOb2RlICAgICAgIG1vZHVsZV90YWJsZSBtb25pdG9yZWRfbm9kZXMgbmFtZSBuZXh0X3JlZgorICBzeW4ga2V5d29yZCBlcmxhbmdOb2RlICAgICAgIHBvcnRzIHByZWxvYWRlZCBwcm9jZXNzZXMgcmVkdWN0aW9ucworICBzeW4ga2V5d29yZCBlcmxhbmdOb2RlICAgICAgIHJlZl9zdGF0ZSByZWdpc3RyeSBydW50aW1lIHdhbGxfY2xvY2sKKworICAiIFJlc2VydmVkCisgIHN5biBrZXl3b3JkIGVybGFuZ1Jlc2VydmVkICAgYXBwbHlfbGFtYmRhIG1vZHVsZV9pbmZvIG1vZHVsZV9sYW1iZGFzCisgIHN5biBrZXl3b3JkIGVybGFuZ1Jlc2VydmVkICAgcmVjb3JkIHJlY29yZF9pbmRleCByZWNvcmRfaW5mbworCisgICIgRXh0cmFzCisgIHN5biBrZXl3b3JkIGVybGFuZ0V4dHJhICAgICAgYmFkYXJnIG5vY29va2llCisKKyAgIiBTaWduYWxzCisgIHN5biBrZXl3b3JkIGVybGFuZ1NpZ25hbCAgICAgYmFkc2lnIGtpbGwga2lsbGVkIGV4aXQgbm9ybWFsCitlbmRpZgorCisiIFN5bmMgYXQgdGhlIGJlZ2lubmluZyBvZiBmdW5jdGlvbnM6IGlmIHRoaXMgaXMgbm90IHVzZWQsIG11bHRpbGluZSBzdHJpbmcKKyIgYXJlIG5vdCBhbHdheXMgcmVjb2duaXplZAorc3luIHN5bmMgbWF0Y2ggZXJsYW5nU3luYyBncm91cGhlcmUgTk9ORSAiXlthLXpdXHMqKCIKKworIiBEZWZpbmUgdGhlIGRlZmF1bHQgaGlnaGxpZ2h0aW5nLgorIiBGb3IgdmVyc2lvbiA1LjcgYW5kIGVhcmxpZXI6IG9ubHkgd2hlbiBub3QgZG9uZSBhbHJlYWR5CisiIEZvciB2ZXJzaW9uIDUuOCBhbmQgbGF0ZXI6IG9ubHkgd2hlbiBhbiBpdGVtIGRvZXNuJ3QgaGF2ZSBoaWdobGlnaHRpbmcgeWV0CitpZiB2ZXJzaW9uID49IDUwOCB8fCAhZXhpc3RzICgiZGlkX2VybGFuZ19pbml0cyIpCisgIGlmIHZlcnNpb24gPCA1MDgKKyAgICBsZXQgZGlkX2VybGFuZ19pbml0cyA9IDEKKyAgICBjb21tYW5kIC1uYXJncz0rIEhpTGluayBoaSBsaW5rIDxhcmdzPgorICBlbHNlCisgICAgY29tbWFuZCAtbmFyZ3M9KyBIaUxpbmsgaGkgZGVmIGxpbmsgPGFyZ3M+CisgIGVuZGlmCisKKyAgIiBlcmxhbmdfY2hhcmFjdGVycworICBIaUxpbmsgZXJsYW5nQ29tbWVudCBDb21tZW50CisgIEhpTGluayBlcmxhbmdDb21tZW50QW5ub3RhdGlvbiBTcGVjaWFsCisgIEhpTGluayBlcmxhbmdUb2RvIFRvZG8KKyAgSGlMaW5rIGVybGFuZ1NlcGFyYXRvciBOb3JtYWwKKyAgSGlMaW5rIGVybGFuZ09wZXJhdG9yIE9wZXJhdG9yCisgIEhpTGluayBlcmxhbmdSaWdodEFycm93IE9wZXJhdG9yCisKKyAgSGlMaW5rIGVybGFuZ1N0YXJ0U3RyaW5nIFN0cmluZworICBIaUxpbmsgZXJsYW5nU3RyaW5nIFN0cmluZworICBIaUxpbmsgZXJsYW5nU3RyaW5nTW9kaWZpZXIgU3BlY2lhbAorCisgIEhpTGluayBlcmxhbmdTdGFydFF1b3RlZEF0b20gVHlwZQorICBIaUxpbmsgZXJsYW5nUXVvdGVkQXRvbSBUeXBlCisgIEhpTGluayBlcmxhbmdRdW90ZWRBdG9tTW9kaWZpZXIgU3BlY2lhbAorCisgIEhpTGluayBlcmxhbmdOdW1iZXJJbnRlZ2VyIE51bWJlcgorICBIaUxpbmsgZXJsYW5nTnVtYmVyRmxvYXQgRmxvYXQKKyAgSGlMaW5rIGVybGFuZ051bWJlckhleCBOdW1iZXIKKworICBIaUxpbmsgZXJsYW5nTW9kaWZpZXIgU3BlY2lhbAorCisgICIgZXJsYW5nX2Z1bmN0aW9ucworICBIaUxpbmsgZXJsYW5nRkNhbGwgRnVuY3Rpb24KKyAgSGlMaW5rIGVybGFuZ0JJRiBGdW5jdGlvbgorCisgICIgZXJsYW5nX2tleXdvcmRzCisgIEhpTGluayBlcmxhbmdEaXJlY3RpdmUgVHlwZQorICBIaUxpbmsgZXJsYW5nS2V5d29yZCBLZXl3b3JkCisgIEhpTGluayBlcmxhbmdQcm9jZXNzIFNwZWNpYWwKKyAgSGlMaW5rIGVybGFuZ1BvcnQgU3BlY2lhbAorICBIaUxpbmsgZXJsYW5nTm9kZSBTcGVjaWFsCisgIEhpTGluayBlcmxhbmdSZXNlcnZlZCBTdGF0ZW1lbnQKKyAgSGlMaW5rIGVybGFuZ0V4dHJhIFN0YXRlbWVudAorICBIaUxpbmsgZXJsYW5nU2lnbmFsIFN0YXRlbWVudAorCisgIGRlbGNvbW1hbmQgSGlMaW5rCitlbmRpZgorCisKK2xldCBiOmN1cnJlbnRfc3ludGF4ID0gImVybGFuZyIKKworIiB2aW06IHN3PTIgZXQK