Name: series-workflowhnmkq Phase: Failed StartedAt: 2026-06-26 12:24:17 +0000 UTC FinishedAt: 2026-06-26 12:37:06 +0000 UTC Input: nil Output: nil --------- Name: series-workflowhnmkq[0] Phase: Succeeded StartedAt: 2026-06-26 12:24:17 +0000 UTC FinishedAt: 2026-06-26 12:36:56 +0000 UTC Input: nil Output: nil --------- Name: series-workflowhnmkq[0].run-triage Phase: Succeeded StartedAt: 2026-06-26 12:24:17 +0000 UTC FinishedAt: 2026-06-26 12:36:56 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "AI determined the patch has no functional impact", "targets": null, "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzI2IDEyOjM2PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIGVhcmx5IGJvb3QgY29kZSAoYF9faW5pdGAgZnVuY3Rpb25zKSB0aGF0IHBhcnNlcyB0aGUgYGh1Z2V0bGJfY21hYCBrZXJuZWwgY29tbWFuZCBsaW5lIHBhcmFtZXRlciBhbmQgcmVzZXJ2ZXMgbWVtb3J5LiBUaGlzIGNvZGUgaXMgZXhlY3V0ZWQgb25seSBvbmNlIGR1cmluZyBzeXN0ZW0gYm9vdCBhbmQgY2Fubm90IGJlIHJlYWNoZWQgb3IgdHJpZ2dlcmVkIGZyb20gdXNlci1zcGFjZSB2aWEgc3lzY2FsbHMsIG1ha2luZyBpdCBpbXBvc3NpYmxlIHRvIGZ1enogd2l0aCBzeXprYWxsZXIuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzI2IDEyOjM2PC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5yZWFkLXBhdGNoLWRpZmY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtQYXRjaERpZmYmIzM0OzogJiMzNDtjb21taXQgMWU4YWUxMDJjNTFmYWI5ZDY5YTIxODc5MTczMjA5ZWVkY2Y5YWQ5YVxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBGcmkgSnVuIDI2IDEyOjM2OjI3IDIwMjYgJiM0MzswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vYWRtaW4tZ3VpZGUva2VybmVsLXBhcmFtZXRlcnMudHh0IGIvRG9jdW1lbnRhdGlvbi9hZG1pbi1ndWlkZS9rZXJuZWwtcGFyYW1ldGVycy50eHRcbmluZGV4IDVhMDViNDhkMTY4NGViLi44NDY5NDBjZTI4NThhOCAxMDA2NDRcbi0tLSBhL0RvY3VtZW50YXRpb24vYWRtaW4tZ3VpZGUva2VybmVsLXBhcmFtZXRlcnMudHh0XG4mIzQzOyYjNDM7JiM0MzsgYi9Eb2N1bWVudGF0aW9uL2FkbWluLWd1aWRlL2tlcm5lbC1wYXJhbWV0ZXJzLnR4dFxuQEAgLTIwNjQsOCAmIzQzOzIwNjQsMTEgQEAgS2VybmVsIHBhcmFtZXRlcnNcbiBcdGh1Z2V0bGJfY21hPVx0W0hXLENNQSxFQVJMWV0gVGhlIHNpemUgb2YgYSBDTUEgYXJlYSB1c2VkIGZvciBhbGxvY2F0aW9uXG4gXHRcdFx0b2YgZ2lnYW50aWMgaHVnZXBhZ2VzLiBPciB1c2luZyBub2RlIGZvcm1hdCwgdGhlIHNpemVcbiBcdFx0XHRvZiBhIENNQSBhcmVhIHBlciBub2RlIGNhbiBiZSBzcGVjaWZpZWQuXG4tXHRcdFx0Rm9ybWF0OiBubltLTUdUUEVdIG9yIChub2RlIGZvcm1hdClcbi1cdFx0XHRcdFx1MDAzY25vZGVcdTAwM2U6bm5bS01HVFBFXVssXHUwMDNjbm9kZVx1MDAzZTpubltLTUdUUEVdXVxuJiM0MztcdFx0XHRUaGUgc2l6ZSBjYW4gYmUgYW4gYWJzb2x1dGUgdmFsdWUgKGUuZy4sIDJHKSBvciBhXG4mIzQzO1x0XHRcdHBlcmNlbnRhZ2Ugb2YgdGhlIHRvdGFsIG1lbW9yeSBvciBub2RlIG1lbW9yeSAoZS5nLiwgMjAlKS5cbiYjNDM7XHRcdFx0Rm9ybWF0OiBubltLTUdUUEVdIG9yIG5uJSBvciAobm9kZSBmb3JtYXQpXG4mIzQzO1x0XHRcdFx0XHUwMDNjbm9kZVx1MDAzZTpubltLTUdUUEVdWyxcdTAwM2Nub2RlXHUwMDNlOm5uW0tNR1RQRV1dIG9yXG4mIzQzO1x0XHRcdFx0XHUwMDNjbm9kZVx1MDAzZTpubiVbLFx1MDAzY25vZGVcdTAwM2U6bm4lXVxuIFxuIFx0XHRcdFJlc2VydmUgYSBDTUEgYXJlYSBvZiBnaXZlbiBzaXplIGFuZCBhbGxvY2F0ZSBnaWdhbnRpY1xuIFx0XHRcdGh1Z2VwYWdlcyB1c2luZyB0aGUgQ01BIGFsbG9jYXRvci4gSWYgZW5hYmxlZCwgdGhlXG5kaWZmIC0tZ2l0IGEvbW0vaHVnZXRsYl9jbWEuYyBiL21tL2h1Z2V0bGJfY21hLmNcbmluZGV4IDc2OTNjY2VmZDBjNjRmLi5iNGY4YmJlNGM2MmRjNCAxMDA2NDRcbi0tLSBhL21tL2h1Z2V0bGJfY21hLmNcbiYjNDM7JiM0MzsmIzQzOyBiL21tL2h1Z2V0bGJfY21hLmNcbkBAIC05LDYgJiM0Mzs5LDggQEBcbiAjaW5jbHVkZSBcdTAwM2Nhc20vc2V0dXAuaFx1MDAzZVxuIFxuICNpbmNsdWRlIFx1MDAzY2xpbnV4L2h1Z2V0bGIuaFx1MDAzZVxuJiM0MzsjaW5jbHVkZSBcdTAwM2NsaW51eC9tZW1ibG9jay5oXHUwMDNlXG4mIzQzOyNpbmNsdWRlIFx1MDAzY2xpbnV4L21hdGguaFx1MDAzZVxuICNpbmNsdWRlIFwmIzM0O2ludGVybmFsLmhcJiMzNDtcbiAjaW5jbHVkZSBcJiMzNDtodWdldGxiX2NtYS5oXCYjMzQ7XG4gXG5AQCAtMTgsNiAmIzQzOzIwLDI4IEBAIHN0YXRpYyB1bnNpZ25lZCBsb25nIGh1Z2V0bGJfY21hX3NpemVfaW5fbm9kZVtNQVhfTlVNTk9ERVNdIF9faW5pdGRhdGE7XG4gc3RhdGljIGJvb2wgaHVnZXRsYl9jbWFfb25seSBfX3JvX2FmdGVyX2luaXQ7XG4gc3RhdGljIHVuc2lnbmVkIGxvbmcgaHVnZXRsYl9jbWFfc2l6ZSBfX3JvX2FmdGVyX2luaXQ7XG4gXG4mIzQzO3N0YXRpYyB1bnNpZ25lZCBpbnQgaHVnZXRsYl9jbWFfcGVyY2VudCBfX2luaXRkYXRhO1xuJiM0MztzdGF0aWMgdW5zaWduZWQgaW50IGh1Z2V0bGJfY21hX3BlcmNlbnRfaW5fbm9kZVtNQVhfTlVNTk9ERVNdIF9faW5pdGRhdGE7XG4mIzQzO1xuJiM0MzsjaWZkZWYgQ09ORklHX05VTUFcbiYjNDM7c3RhdGljIHVuc2lnbmVkIGxvbmcgX19pbml0IG1lbWJsb2NrX25vZGVfbWVtb3J5X3NpemUoaW50IG5pZClcbiYjNDM7e1xuJiM0MztcdHN0cnVjdCBtZW1ibG9ja19yZWdpb24gKnJlZztcbiYjNDM7XHR1bnNpZ25lZCBsb25nIHNpemUgPSAwO1xuJiM0MztcbiYjNDM7XHRmb3JfZWFjaF9tZW1fcmVnaW9uKHJlZykge1xuJiM0MztcdFx0aWYgKHJlZy1cdTAwM2VuaWQgPT0gbmlkKVxuJiM0MztcdFx0XHRzaXplICYjNDM7PSByZWctXHUwMDNlc2l6ZTtcbiYjNDM7XHR9XG4mIzQzO1x0cmV0dXJuIHNpemU7XG4mIzQzO31cbiYjNDM7I2Vsc2VcbiYjNDM7c3RhdGljIHVuc2lnbmVkIGxvbmcgX19pbml0IG1lbWJsb2NrX25vZGVfbWVtb3J5X3NpemUoaW50IG5pZClcbiYjNDM7e1xuJiM0MztcdHJldHVybiBtZW1ibG9ja19waHlzX21lbV9zaXplKCk7XG4mIzQzO31cbiYjNDM7I2VuZGlmXG4mIzQzO1xuIHZvaWQgaHVnZXRsYl9jbWFfZnJlZV9mcm96ZW5fZm9saW8oc3RydWN0IGZvbGlvICpmb2xpbylcbiB7XG4gXHRXQVJOX09OX09OQ0UoIWNtYV9yZWxlYXNlX2Zyb3plbihodWdldGxiX2NtYVtmb2xpb19uaWQoZm9saW8pXSxcbkBAIC0xMDAsMTQgJiM0MzsxMjQsMjcgQEAgc3RhdGljIGludCBfX2luaXQgY21kbGluZV9wYXJzZV9odWdldGxiX2NtYShjaGFyICpwKVxuIFx0XHRcdGJyZWFrO1xuIFxuIFx0XHRpZiAoc1tjb3VudF0gPT0gJiMzOTs6JiMzOTspIHtcbiYjNDM7XHRcdFx0Y2hhciAqbmV4dDtcbiYjNDM7XG4gXHRcdFx0aWYgKHRtcCBcdTAwM2U9IE1BWF9OVU1OT0RFUylcbiBcdFx0XHRcdGJyZWFrO1xuIFx0XHRcdG5pZCA9IGFycmF5X2luZGV4X25vc3BlYyh0bXAsIE1BWF9OVU1OT0RFUyk7XG4gXG4gXHRcdFx0cyAmIzQzOz0gY291bnQgJiM0MzsgMTtcbi1cdFx0XHR0bXAgPSBtZW1wYXJzZShzLCBcdTAwMjZzKTtcbi1cdFx0XHRodWdldGxiX2NtYV9zaXplX2luX25vZGVbbmlkXSA9IHRtcDtcbi1cdFx0XHRodWdldGxiX2NtYV9zaXplICYjNDM7PSB0bXA7XG4mIzQzO1x0XHRcdHRtcCA9IG1lbXBhcnNlKHMsIFx1MDAyNm5leHQpO1xuJiM0MztcdFx0XHRpZiAoKm5leHQgPT0gJiMzOTslJiMzOTspIHtcbiYjNDM7XHRcdFx0XHRpZiAodG1wIFx1MDAzZSAxMDApIHtcbiYjNDM7XHRcdFx0XHRcdHByX3dhcm4oXCYjMzQ7aHVnZXRsYl9jbWE6IGludmFsaWQgcGVyY2VudGFnZSAlbHUgZm9yIG5vZGUgJWRcXG5cJiMzNDssXG4mIzQzO1x0XHRcdFx0XHRcdHRtcCwgbmlkKTtcbiYjNDM7XHRcdFx0XHRcdGJyZWFrO1xuJiM0MztcdFx0XHRcdH1cbiYjNDM7XHRcdFx0XHRodWdldGxiX2NtYV9wZXJjZW50X2luX25vZGVbbmlkXSA9IHRtcDtcbiYjNDM7XHRcdFx0XHRzID0gbmV4dCAmIzQzOyAxO1xuJiM0MztcdFx0XHR9IGVsc2Uge1xuJiM0MztcdFx0XHRcdGh1Z2V0bGJfY21hX3NpemVfaW5fbm9kZVtuaWRdID0gdG1wO1xuJiM0MztcdFx0XHRcdGh1Z2V0bGJfY21hX3NpemUgJiM0Mzs9IHRtcDtcbiYjNDM7XHRcdFx0XHRzID0gbmV4dDtcbiYjNDM7XHRcdFx0fVxuIFxuIFx0XHRcdC8qXG4gXHRcdFx0ICogU2tpcCB0aGUgc2VwYXJhdG9yIGlmIGhhdmUgb25lLCBvdGhlcndpc2VcbkBAIC0xMTgsNyAmIzQzOzE1NSwxNyBAQCBzdGF0aWMgaW50IF9faW5pdCBjbWRsaW5lX3BhcnNlX2h1Z2V0bGJfY21hKGNoYXIgKnApXG4gXHRcdFx0ZWxzZVxuIFx0XHRcdFx0YnJlYWs7XG4gXHRcdH0gZWxzZSB7XG4tXHRcdFx0aHVnZXRsYl9jbWFfc2l6ZSA9IG1lbXBhcnNlKHAsIFx1MDAyNnApO1xuJiM0MztcdFx0XHRjaGFyICpuZXh0O1xuJiM0MztcbiYjNDM7XHRcdFx0dG1wID0gbWVtcGFyc2UocCwgXHUwMDI2bmV4dCk7XG4mIzQzO1x0XHRcdGlmICgqbmV4dCA9PSAmIzM5OyUmIzM5Oykge1xuJiM0MztcdFx0XHRcdGlmICh0bXAgXHUwMDNlIDEwMClcbiYjNDM7XHRcdFx0XHRcdHByX3dhcm4oXCYjMzQ7aHVnZXRsYl9jbWE6IGludmFsaWQgcGVyY2VudGFnZSAlbHVcXG5cJiMzNDssIHRtcCk7XG4mIzQzO1x0XHRcdFx0ZWxzZVxuJiM0MztcdFx0XHRcdFx0aHVnZXRsYl9jbWFfcGVyY2VudCA9IHRtcDtcbiYjNDM7XHRcdFx0fSBlbHNlIHtcbiYjNDM7XHRcdFx0XHRodWdldGxiX2NtYV9zaXplID0gdG1wO1xuJiM0MztcdFx0XHR9XG4gXHRcdFx0YnJlYWs7XG4gXHRcdH1cbiBcdH1cbkBAIC0xNDQsOCAmIzQzOzE5MSwzNCBAQCB2b2lkIF9faW5pdCBodWdldGxiX2NtYV9yZXNlcnZlKHZvaWQpXG4ge1xuIFx0dW5zaWduZWQgbG9uZyBzaXplLCByZXNlcnZlZCwgcGVyX25vZGUsIG9yZGVyO1xuIFx0Ym9vbCBub2RlX3NwZWNpZmljX2NtYV9hbGxvYyA9IGZhbHNlO1xuJiM0MztcdGJvb2wgaGFzX25vZGVfc3BlY2lmaWNfcGFyYW0gPSBmYWxzZTtcbiBcdGludCBuaWQ7XG4gXG4mIzQzO1x0Zm9yIChuaWQgPSAwOyBuaWQgXHUwMDNjIE1BWF9OVU1OT0RFUzsgbmlkJiM0MzsmIzQzOykge1xuJiM0MztcdFx0aWYgKGh1Z2V0bGJfY21hX3NpemVfaW5fbm9kZVtuaWRdIHx8IGh1Z2V0bGJfY21hX3BlcmNlbnRfaW5fbm9kZVtuaWRdKSB7XG4mIzQzO1x0XHRcdGhhc19ub2RlX3NwZWNpZmljX3BhcmFtID0gdHJ1ZTtcbiYjNDM7XHRcdFx0YnJlYWs7XG4mIzQzO1x0XHR9XG4mIzQzO1x0fVxuJiM0MztcbiYjNDM7XHRpZiAoaGFzX25vZGVfc3BlY2lmaWNfcGFyYW0pIHtcbiYjNDM7XHRcdGZvciAobmlkID0gMDsgbmlkIFx1MDAzYyBNQVhfTlVNTk9ERVM7IG5pZCYjNDM7JiM0MzspIHtcbiYjNDM7XHRcdFx0aWYgKGh1Z2V0bGJfY21hX3BlcmNlbnRfaW5fbm9kZVtuaWRdKSB7XG4mIzQzO1x0XHRcdFx0dW5zaWduZWQgbG9uZyBub2RlX2dmcF9tZW0gPSBtZW1ibG9ja19ub2RlX21lbW9yeV9zaXplKG5pZCk7XG4mIzQzO1x0XHRcdFx0dW5zaWduZWQgbG9uZyBzO1xuJiM0MztcbiYjNDM7XHRcdFx0XHRzID0gbXVsdF9mcmFjKG5vZGVfZ2ZwX21lbSxcbiYjNDM7XHRcdFx0XHRcdCAgICAgIGh1Z2V0bGJfY21hX3BlcmNlbnRfaW5fbm9kZVtuaWRdLFxuJiM0MztcdFx0XHRcdFx0ICAgICAgMTAwKTtcbiYjNDM7XG4mIzQzO1x0XHRcdFx0aHVnZXRsYl9jbWFfc2l6ZV9pbl9ub2RlW25pZF0gPSBzO1xuJiM0MztcdFx0XHRcdGh1Z2V0bGJfY21hX3NpemUgJiM0Mzs9IHM7XG4mIzQzO1x0XHRcdH1cbiYjNDM7XHRcdH1cbiYjNDM7XHR9IGVsc2UgaWYgKGh1Z2V0bGJfY21hX3BlcmNlbnQpIHtcbiYjNDM7XHRcdGh1Z2V0bGJfY21hX3NpemUgPSBtdWx0X2ZyYWMobWVtYmxvY2tfcGh5c19tZW1fc2l6ZSgpLCBodWdldGxiX2NtYV9wZXJjZW50LCAxMDApO1xuJiM0MztcdH1cbiYjNDM7XG4gXHRpZiAoIWh1Z2V0bGJfY21hX3NpemUpXG4gXHRcdHJldHVybjtcbiBcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yNiAxMjozNjwvdGQ+CgkJCTx0ZD5hZ2VudDwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogbnVsbCwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyBlYXJseSBib290IGNvZGUgKGBfX2luaXRgIGZ1bmN0aW9ucykgdGhhdCBwYXJzZXMgdGhlIGBodWdldGxiX2NtYWAga2VybmVsIGNvbW1hbmQgbGluZSBwYXJhbWV0ZXIgYW5kIHJlc2VydmVzIG1lbW9yeS4gVGhpcyBjb2RlIGlzIGV4ZWN1dGVkIG9ubHkgb25jZSBkdXJpbmcgc3lzdGVtIGJvb3QgYW5kIGNhbm5vdCBiZSByZWFjaGVkIG9yIHRyaWdnZXJlZCBmcm9tIHVzZXItc3BhY2UgdmlhIHN5c2NhbGxzLCBtYWtpbmcgaXQgaW1wb3NzaWJsZSB0byBmdXp6IHdpdGggc3l6a2FsbGVyLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkluc3RydWN0aW9uOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+WW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuCllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lCmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC4KCklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpbgp5b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHkKdXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy4KClJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6Ci0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy4KLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy4KLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuCi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLApldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuCgpJZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoCnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLgoKV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086CjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuCiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLgoyLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS4KICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLgogICBEbyBub3QgbGlzdCB0b28gZ2VuZXJpYyBjb25maWdzICh3ZSBhbHJlYWR5IGhhdmUgdGhlbSBlbmFibGVkKS4gT25seSBsaXN0IHRob3NlIHRoYXQKICAgc3BlY2lmaWNhbGx5IGNvdmVyIHRoZSBtb2RpZmllZCBjb2RlLiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3Mgb3V0cHV0IGFycmF5LAogICBhbmQgRE8gTk9UIGFkZCBhICYjMzk7Q09ORklHXyYjMzk7IHByZWZpeCAoZS5nLiwgcmV0dXJuICYjMzQ7TkVUX0lQVjQmIzM0OyBpbnN0ZWFkIG9mICYjMzQ7Q09ORklHX05FVF9JUFY0JiMzNDspLgpQcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy4KCgpVc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLgpJdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS4KSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlByb21wdDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOgpjb21taXQgMWU4YWUxMDJjNTFmYWI5ZDY5YTIxODc5MTczMjA5ZWVkY2Y5YWQ5YQpBdXRob3I6IHN5ei1jbHVzdGVyICZsdDt0cmlhZ2VAc3l6a2FsbGVyLmNvbSZndDsKRGF0ZTogICBGcmkgSnVuIDI2IDEyOjM2OjI3IDIwMjYgJiM0MzswMDAwCgogICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3CgpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9hZG1pbi1ndWlkZS9rZXJuZWwtcGFyYW1ldGVycy50eHQgYi9Eb2N1bWVudGF0aW9uL2FkbWluLWd1aWRlL2tlcm5lbC1wYXJhbWV0ZXJzLnR4dAppbmRleCA1YTA1YjQ4ZDE2ODRlYi4uODQ2OTQwY2UyODU4YTggMTAwNjQ0Ci0tLSBhL0RvY3VtZW50YXRpb24vYWRtaW4tZ3VpZGUva2VybmVsLXBhcmFtZXRlcnMudHh0CiYjNDM7JiM0MzsmIzQzOyBiL0RvY3VtZW50YXRpb24vYWRtaW4tZ3VpZGUva2VybmVsLXBhcmFtZXRlcnMudHh0CkBAIC0yMDY0LDggJiM0MzsyMDY0LDExIEBAIEtlcm5lbCBwYXJhbWV0ZXJzCiAJaHVnZXRsYl9jbWE9CVtIVyxDTUEsRUFSTFldIFRoZSBzaXplIG9mIGEgQ01BIGFyZWEgdXNlZCBmb3IgYWxsb2NhdGlvbgogCQkJb2YgZ2lnYW50aWMgaHVnZXBhZ2VzLiBPciB1c2luZyBub2RlIGZvcm1hdCwgdGhlIHNpemUKIAkJCW9mIGEgQ01BIGFyZWEgcGVyIG5vZGUgY2FuIGJlIHNwZWNpZmllZC4KLQkJCUZvcm1hdDogbm5bS01HVFBFXSBvciAobm9kZSBmb3JtYXQpCi0JCQkJJmx0O25vZGUmZ3Q7Om5uW0tNR1RQRV1bLCZsdDtub2RlJmd0OzpubltLTUdUUEVdXQomIzQzOwkJCVRoZSBzaXplIGNhbiBiZSBhbiBhYnNvbHV0ZSB2YWx1ZSAoZS5nLiwgMkcpIG9yIGEKJiM0MzsJCQlwZXJjZW50YWdlIG9mIHRoZSB0b3RhbCBtZW1vcnkgb3Igbm9kZSBtZW1vcnkgKGUuZy4sIDIwJSkuCiYjNDM7CQkJRm9ybWF0OiBubltLTUdUUEVdIG9yIG5uJSBvciAobm9kZSBmb3JtYXQpCiYjNDM7CQkJCSZsdDtub2RlJmd0OzpubltLTUdUUEVdWywmbHQ7bm9kZSZndDs6bm5bS01HVFBFXV0gb3IKJiM0MzsJCQkJJmx0O25vZGUmZ3Q7Om5uJVssJmx0O25vZGUmZ3Q7Om5uJV0KIAogCQkJUmVzZXJ2ZSBhIENNQSBhcmVhIG9mIGdpdmVuIHNpemUgYW5kIGFsbG9jYXRlIGdpZ2FudGljCiAJCQlodWdlcGFnZXMgdXNpbmcgdGhlIENNQSBhbGxvY2F0b3IuIElmIGVuYWJsZWQsIHRoZQpkaWZmIC0tZ2l0IGEvbW0vaHVnZXRsYl9jbWEuYyBiL21tL2h1Z2V0bGJfY21hLmMKaW5kZXggNzY5M2NjZWZkMGM2NGYuLmI0ZjhiYmU0YzYyZGM0IDEwMDY0NAotLS0gYS9tbS9odWdldGxiX2NtYS5jCiYjNDM7JiM0MzsmIzQzOyBiL21tL2h1Z2V0bGJfY21hLmMKQEAgLTksNiAmIzQzOzksOCBAQAogI2luY2x1ZGUgJmx0O2FzbS9zZXR1cC5oJmd0OwogCiAjaW5jbHVkZSAmbHQ7bGludXgvaHVnZXRsYi5oJmd0OwomIzQzOyNpbmNsdWRlICZsdDtsaW51eC9tZW1ibG9jay5oJmd0OwomIzQzOyNpbmNsdWRlICZsdDtsaW51eC9tYXRoLmgmZ3Q7CiAjaW5jbHVkZSAmIzM0O2ludGVybmFsLmgmIzM0OwogI2luY2x1ZGUgJiMzNDtodWdldGxiX2NtYS5oJiMzNDsKIApAQCAtMTgsNiAmIzQzOzIwLDI4IEBAIHN0YXRpYyB1bnNpZ25lZCBsb25nIGh1Z2V0bGJfY21hX3NpemVfaW5fbm9kZVtNQVhfTlVNTk9ERVNdIF9faW5pdGRhdGE7CiBzdGF0aWMgYm9vbCBodWdldGxiX2NtYV9vbmx5IF9fcm9fYWZ0ZXJfaW5pdDsKIHN0YXRpYyB1bnNpZ25lZCBsb25nIGh1Z2V0bGJfY21hX3NpemUgX19yb19hZnRlcl9pbml0OwogCiYjNDM7c3RhdGljIHVuc2lnbmVkIGludCBodWdldGxiX2NtYV9wZXJjZW50IF9faW5pdGRhdGE7CiYjNDM7c3RhdGljIHVuc2lnbmVkIGludCBodWdldGxiX2NtYV9wZXJjZW50X2luX25vZGVbTUFYX05VTU5PREVTXSBfX2luaXRkYXRhOwomIzQzOwomIzQzOyNpZmRlZiBDT05GSUdfTlVNQQomIzQzO3N0YXRpYyB1bnNpZ25lZCBsb25nIF9faW5pdCBtZW1ibG9ja19ub2RlX21lbW9yeV9zaXplKGludCBuaWQpCiYjNDM7ewomIzQzOwlzdHJ1Y3QgbWVtYmxvY2tfcmVnaW9uICpyZWc7CiYjNDM7CXVuc2lnbmVkIGxvbmcgc2l6ZSA9IDA7CiYjNDM7CiYjNDM7CWZvcl9lYWNoX21lbV9yZWdpb24ocmVnKSB7CiYjNDM7CQlpZiAocmVnLSZndDtuaWQgPT0gbmlkKQomIzQzOwkJCXNpemUgJiM0Mzs9IHJlZy0mZ3Q7c2l6ZTsKJiM0MzsJfQomIzQzOwlyZXR1cm4gc2l6ZTsKJiM0Mzt9CiYjNDM7I2Vsc2UKJiM0MztzdGF0aWMgdW5zaWduZWQgbG9uZyBfX2luaXQgbWVtYmxvY2tfbm9kZV9tZW1vcnlfc2l6ZShpbnQgbmlkKQomIzQzO3sKJiM0MzsJcmV0dXJuIG1lbWJsb2NrX3BoeXNfbWVtX3NpemUoKTsKJiM0Mzt9CiYjNDM7I2VuZGlmCiYjNDM7CiB2b2lkIGh1Z2V0bGJfY21hX2ZyZWVfZnJvemVuX2ZvbGlvKHN0cnVjdCBmb2xpbyAqZm9saW8pCiB7CiAJV0FSTl9PTl9PTkNFKCFjbWFfcmVsZWFzZV9mcm96ZW4oaHVnZXRsYl9jbWFbZm9saW9fbmlkKGZvbGlvKV0sCkBAIC0xMDAsMTQgJiM0MzsxMjQsMjcgQEAgc3RhdGljIGludCBfX2luaXQgY21kbGluZV9wYXJzZV9odWdldGxiX2NtYShjaGFyICpwKQogCQkJYnJlYWs7CiAKIAkJaWYgKHNbY291bnRdID09ICYjMzk7OiYjMzk7KSB7CiYjNDM7CQkJY2hhciAqbmV4dDsKJiM0MzsKIAkJCWlmICh0bXAgJmd0Oz0gTUFYX05VTU5PREVTKQogCQkJCWJyZWFrOwogCQkJbmlkID0gYXJyYXlfaW5kZXhfbm9zcGVjKHRtcCwgTUFYX05VTU5PREVTKTsKIAogCQkJcyAmIzQzOz0gY291bnQgJiM0MzsgMTsKLQkJCXRtcCA9IG1lbXBhcnNlKHMsICZhbXA7cyk7Ci0JCQlodWdldGxiX2NtYV9zaXplX2luX25vZGVbbmlkXSA9IHRtcDsKLQkJCWh1Z2V0bGJfY21hX3NpemUgJiM0Mzs9IHRtcDsKJiM0MzsJCQl0bXAgPSBtZW1wYXJzZShzLCAmYW1wO25leHQpOwomIzQzOwkJCWlmICgqbmV4dCA9PSAmIzM5OyUmIzM5OykgewomIzQzOwkJCQlpZiAodG1wICZndDsgMTAwKSB7CiYjNDM7CQkJCQlwcl93YXJuKCYjMzQ7aHVnZXRsYl9jbWE6IGludmFsaWQgcGVyY2VudGFnZSAlbHUgZm9yIG5vZGUgJWRcbiYjMzQ7LAomIzQzOwkJCQkJCXRtcCwgbmlkKTsKJiM0MzsJCQkJCWJyZWFrOwomIzQzOwkJCQl9CiYjNDM7CQkJCWh1Z2V0bGJfY21hX3BlcmNlbnRfaW5fbm9kZVtuaWRdID0gdG1wOwomIzQzOwkJCQlzID0gbmV4dCAmIzQzOyAxOwomIzQzOwkJCX0gZWxzZSB7CiYjNDM7CQkJCWh1Z2V0bGJfY21hX3NpemVfaW5fbm9kZVtuaWRdID0gdG1wOwomIzQzOwkJCQlodWdldGxiX2NtYV9zaXplICYjNDM7PSB0bXA7CiYjNDM7CQkJCXMgPSBuZXh0OwomIzQzOwkJCX0KIAogCQkJLyoKIAkJCSAqIFNraXAgdGhlIHNlcGFyYXRvciBpZiBoYXZlIG9uZSwgb3RoZXJ3aXNlCkBAIC0xMTgsNyAmIzQzOzE1NSwxNyBAQCBzdGF0aWMgaW50IF9faW5pdCBjbWRsaW5lX3BhcnNlX2h1Z2V0bGJfY21hKGNoYXIgKnApCiAJCQllbHNlCiAJCQkJYnJlYWs7CiAJCX0gZWxzZSB7Ci0JCQlodWdldGxiX2NtYV9zaXplID0gbWVtcGFyc2UocCwgJmFtcDtwKTsKJiM0MzsJCQljaGFyICpuZXh0OwomIzQzOwomIzQzOwkJCXRtcCA9IG1lbXBhcnNlKHAsICZhbXA7bmV4dCk7CiYjNDM7CQkJaWYgKCpuZXh0ID09ICYjMzk7JSYjMzk7KSB7CiYjNDM7CQkJCWlmICh0bXAgJmd0OyAxMDApCiYjNDM7CQkJCQlwcl93YXJuKCYjMzQ7aHVnZXRsYl9jbWE6IGludmFsaWQgcGVyY2VudGFnZSAlbHVcbiYjMzQ7LCB0bXApOwomIzQzOwkJCQllbHNlCiYjNDM7CQkJCQlodWdldGxiX2NtYV9wZXJjZW50ID0gdG1wOwomIzQzOwkJCX0gZWxzZSB7CiYjNDM7CQkJCWh1Z2V0bGJfY21hX3NpemUgPSB0bXA7CiYjNDM7CQkJfQogCQkJYnJlYWs7CiAJCX0KIAl9CkBAIC0xNDQsOCAmIzQzOzE5MSwzNCBAQCB2b2lkIF9faW5pdCBodWdldGxiX2NtYV9yZXNlcnZlKHZvaWQpCiB7CiAJdW5zaWduZWQgbG9uZyBzaXplLCByZXNlcnZlZCwgcGVyX25vZGUsIG9yZGVyOwogCWJvb2wgbm9kZV9zcGVjaWZpY19jbWFfYWxsb2MgPSBmYWxzZTsKJiM0MzsJYm9vbCBoYXNfbm9kZV9zcGVjaWZpY19wYXJhbSA9IGZhbHNlOwogCWludCBuaWQ7CiAKJiM0MzsJZm9yIChuaWQgPSAwOyBuaWQgJmx0OyBNQVhfTlVNTk9ERVM7IG5pZCYjNDM7JiM0MzspIHsKJiM0MzsJCWlmIChodWdldGxiX2NtYV9zaXplX2luX25vZGVbbmlkXSB8fCBodWdldGxiX2NtYV9wZXJjZW50X2luX25vZGVbbmlkXSkgewomIzQzOwkJCWhhc19ub2RlX3NwZWNpZmljX3BhcmFtID0gdHJ1ZTsKJiM0MzsJCQlicmVhazsKJiM0MzsJCX0KJiM0MzsJfQomIzQzOwomIzQzOwlpZiAoaGFzX25vZGVfc3BlY2lmaWNfcGFyYW0pIHsKJiM0MzsJCWZvciAobmlkID0gMDsgbmlkICZsdDsgTUFYX05VTU5PREVTOyBuaWQmIzQzOyYjNDM7KSB7CiYjNDM7CQkJaWYgKGh1Z2V0bGJfY21hX3BlcmNlbnRfaW5fbm9kZVtuaWRdKSB7CiYjNDM7CQkJCXVuc2lnbmVkIGxvbmcgbm9kZV9nZnBfbWVtID0gbWVtYmxvY2tfbm9kZV9tZW1vcnlfc2l6ZShuaWQpOwomIzQzOwkJCQl1bnNpZ25lZCBsb25nIHM7CiYjNDM7CiYjNDM7CQkJCXMgPSBtdWx0X2ZyYWMobm9kZV9nZnBfbWVtLAomIzQzOwkJCQkJICAgICAgaHVnZXRsYl9jbWFfcGVyY2VudF9pbl9ub2RlW25pZF0sCiYjNDM7CQkJCQkgICAgICAxMDApOwomIzQzOwomIzQzOwkJCQlodWdldGxiX2NtYV9zaXplX2luX25vZGVbbmlkXSA9IHM7CiYjNDM7CQkJCWh1Z2V0bGJfY21hX3NpemUgJiM0Mzs9IHM7CiYjNDM7CQkJfQomIzQzOwkJfQomIzQzOwl9IGVsc2UgaWYgKGh1Z2V0bGJfY21hX3BlcmNlbnQpIHsKJiM0MzsJCWh1Z2V0bGJfY21hX3NpemUgPSBtdWx0X2ZyYWMobWVtYmxvY2tfcGh5c19tZW1fc2l6ZSgpLCBodWdldGxiX2NtYV9wZXJjZW50LCAxMDApOwomIzQzOwl9CiYjNDM7CiAJaWYgKCFodWdldGxiX2NtYV9zaXplKQogCQlyZXR1cm47CiAKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjYgMTI6MzY8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzQwOQoJCQkJCQkJb3V0cHV0OiAyNQoJCQkJCQkJdGhvdWdodHM6IDI3NgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIGBodWdldGxiX2NtYWAgUGF0Y2ggZm9yIEZ1enppbmcgVnVsbmVyYWJpbGl0aWVzKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIHBhdGNoIHRoYXQgdHdlYWtzIGBtbS9odWdldGxiX2NtYS5jYC4gSXQgbG9va3MgbGlrZSBpdCYjMzk7cyBhZGRpbmcgdGhlIGFiaWxpdHkgdG8gc3BlY2lmeSB0aGUgYGh1Z2V0bGJfY21hYCBrZXJuZWwgcGFyYW1ldGVyIGFzIGEgcGVyY2VudGFnZSwgd2hpY2ggaXMgaW50ZXJlc3RpbmcuIFRoZSBjb2RlIG1vZGlmaWNhdGlvbnMgZm9jdXMgb24gYGNtZGxpbmVfcGFyc2VfaHVnZXRsYl9jbWFgIGFuZCBgaHVnZXRsYl9jbWFfcmVzZXJ2ZWAuIEkgbm90aWNlIHRoZXNlIGZ1bmN0aW9ucyBhcmUgbWFya2VkIGFzIGBfX2luaXRgIGFuZCBgX19pbml0ZGF0YWAsIHdoaWNoIGltbWVkaWF0ZWx5IHNldHMgb2ZmIGEgcmVkIGZsYWcgaW4gbXkgbWluZCByZWdhcmRpbmcgZnV6emluZy4KCk15IHByaW1hcnkgY29uY2Vybiwgb2YgY291cnNlLCBpcyB3aGV0aGVyIFN5emthbGxlciwgbXkgZ28tdG8gZnV6emluZyB0b29sLCBjYW4gYWN0dWFsbHkgcmVhY2ggdGhpcyBjb2RlLiBTaW5jZSB0aGVzZSBmdW5jdGlvbnMgYXJlIGludm9sdmVkIGluIHBhcnNpbmcgdGhlIGtlcm5lbCBjb21tYW5kIGxpbmUgcGFyYW1ldGVycyBhbmQgcmVzZXJ2aW5nIG1lbW9yeSBkdXJpbmcgZWFybHkgYm9vdCwgSSBjYW4gaW1tZWRpYXRlbHkgc2VlIGEgcG90ZW50aWFsIGlzc3VlLiBTeXprYWxsZXIgcHJpbWFyaWx5IG9wZXJhdGVzIGJ5IHNlbmRpbmcgc3lzY2FsbHMgZnJvbSB1c2VyLXNwYWNlLCB3aGljaCBpc24mIzM5O3QgZ29pbmcgdG8gaW50ZXJhY3Qgd2l0aCB0aGUgZWFybHkgYm9vdCBwcm9jZXNzLiBUaHVzLCBpdCBpcyB1bmxpa2VseSB0byBkaXJlY3RseSB0cmlnZ2VyIGFueSBwb3RlbnRpYWwgaXNzdWVzIHRocm91Z2ggdGhpcyBjb2RlIHBhdGguCgpCdXQsIEkgbmVlZCB0byBiZSB0aG9yb3VnaC4gSSYjMzk7bSB3b25kZXJpbmcgaWYgdGhlcmUmIzM5O3MgYW55IG90aGVyIHdheSB0aGlzIGNvZGUgY291bGQgYmUgcmVhY2hlZCBmcm9tIHVzZXItc3BhY2UuIEkgbmVlZCB0byBrbm93IGlmIHRoZSBmdW5jdGlvbiBpcyByZWdpc3RlcmVkIHNvbWV3aGVyZSBvdGhlciB0aGFuIHRocm91Z2ggYGVhcmx5X3BhcmFtYC4gSSYjMzk7bGwgY29uZmlybSB0aGF0IGBjbWRsaW5lX3BhcnNlX2h1Z2V0bGJfY21hYCBpcyBpbmRlZWQgcmVnaXN0ZXJlZCB1c2luZyBgZWFybHlfcGFyYW1gIGJhc2VkIG9uIGl0cyBuYW1pbmcgY29udmVudGlvbi4gTGV0IG1lIGp1c3QgZG91YmxlLWNoZWNrIHRoYXQgaW4gYG1tL2h1Z2V0bGJfY21hLmNgIHRvIGJlIGNlcnRhaW4uCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NC8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjYgMTI6MzY8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y21kbGluZV9wYXJzZV9odWdldGxiX2NtYSYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDttbS9odWdldGxiX2NtYS5jPTg0PWh1Z2V0bGJfY21hX2FsbG9jX2Jvb3RtZW0oc3RydWN0IGhzdGF0ZSAqaCwgaW50ICpuaWQsIGJvb2wgbm9kZV9leGFjdClcbi0tXG5tbS9odWdldGxiX2NtYS5jLTExNS1cbm1tL2h1Z2V0bGJfY21hLmM6MTE2OnN0YXRpYyBpbnQgX19pbml0IGNtZGxpbmVfcGFyc2VfaHVnZXRsYl9jbWEoY2hhciAqcClcbm1tL2h1Z2V0bGJfY21hLmMtMTE3LXtcbi0tXG5tbS9odWdldGxiX2NtYS5jLTE3NS1cbm1tL2h1Z2V0bGJfY21hLmM6MTc2OmVhcmx5X3BhcmFtKFwmIzM0O2h1Z2V0bGJfY21hXCYjMzQ7LCBjbWRsaW5lX3BhcnNlX2h1Z2V0bGJfY21hKTtcbm1tL2h1Z2V0bGJfY21hLmMtMTc3LVxubW0vaHVnZXRsYl9jbWEuYzoxNzg6c3RhdGljIGludCBfX2luaXQgY21kbGluZV9wYXJzZV9odWdldGxiX2NtYV9vbmx5KGNoYXIgKnApXG5tbS9odWdldGxiX2NtYS5jLTE3OS17XG4tLVxubW0vaHVnZXRsYl9jbWEuYy0xODItXG5tbS9odWdldGxiX2NtYS5jOjE4MzplYXJseV9wYXJhbShcJiMzNDtodWdldGxiX2NtYV9vbmx5XCYjMzQ7LCBjbWRsaW5lX3BhcnNlX2h1Z2V0bGJfY21hX29ubHkpO1xubW0vaHVnZXRsYl9jbWEuYy0xODQtXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NS8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjYgMTI6MzY8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNDM3NgoJCQkJCQkJb3V0cHV0OiA5NQoJCQkJCQkJdGhvdWdodHM6IDE0OQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBBc3Nlc3NtZW50IG9mIHRoZSBQYXRjaCYjMzk7cyBGdXp6YWJpbGl0eSoqCgpPa2F5LCBzbyB3ZSYjMzk7cmUgbG9va2luZyBhdCBgZWFybHlfcGFyYW1gLCB3aGljaCBpbW1lZGlhdGVseSBmbGFncyB0aGlzIGFzIGEgcG90ZW50aWFsIG5vbi1zdGFydGVyLiBUaGlzIGlzICpzdHJpY3RseSogZWFybHkgYm9vdCBjb2RlLCBhbmQgdGhhdCYjMzk7cyBhIGtleSBwb2ludC4gU3l6a2FsbGVyLCBteSBnby10byBmdXp6aW5nIHRvb2wsIGlzbiYjMzk7dCBkZXNpZ25lZCB0byB0b3VjaCB0aGF0LiBJdCBjYW4mIzM5O3QgZnV6eiBlYXJseSBib290IGNvZGUgb3IsIGNydWNpYWxseSwga2VybmVsIGNvbW1hbmQgbGluZSBwYXJhbWV0ZXJzLiBTaW5jZSB0aGlzIHBhdGNoIHJldm9sdmVzIGFyb3VuZCBgaHVnZXRsYl9jbWFgIHdoaWNoIGlzIGEga2VybmVsIGNvbW1hbmQtbGluZSBwYXJhbWV0ZXIsIGl0JiMzOTtzIHByZXR0eSBjbGVhciBpdCYjMzk7cyBub3QgYSBnb29kIGZpdCBmb3IgZnV6emluZy4KCkxldCBtZSBqdXN0IGRvdWJsZS1jaGVjaywgdGhvdWdoLiBBbHdheXMgZ29vZCB0byBiZSB0aG9yb3VnaC4gSXMgdGhlcmUgKmFueSogb3RoZXIgcG9zc2libGUgcGF0aCB0byB0cmlnZ2VyIHRoaXMgY29kZT8gTm9wZS4gSXQmIzM5O3MgYWxsIGBfX2luaXRgIGFuZCBgX19pbml0ZGF0YWAsIG1ha2luZyBpdCBvbmx5IGV4ZWN1dGFibGUgZHVyaW5nIGluaXRpYWwgYm9vdHVwLiBUaGUgcGF0Y2gmIzM5O3MgaW1wYWN0IGlzIGluIG1vZGlmeWluZyB0aGlzIGluaXRpYWwgcGFyc2luZyBhbmQgbWVtb3J5IHJlc2VydmF0aW9uIGJlaGF2aW9yIHdoaWNoIG9jY3VycyBvbmx5IG9uY2UuIFVzZXItc3BhY2UgaW50ZXJhY3Rpb24gdmlhIHN5c2NhbGxzIGlzIG91dCBvZiB0aGUgcXVlc3Rpb24uCgpUaGVyZWZvcmUsIGdpdmVuIHRoZXNlIGNvbnN0cmFpbnRzLCB0aGUgdmFsdWUgb2YgdGhpcyBwYXRjaCBpcyBkZWZpbml0ZWx5IG5vdCB3b3J0aCBmdXp6aW5nLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzI2IDEyOjM2PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+c2V0LXJlc3VsdHM8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogW10sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgZWFybHkgYm9vdCBjb2RlIChgX19pbml0YCBmdW5jdGlvbnMpIHRoYXQgcGFyc2VzIHRoZSBgaHVnZXRsYl9jbWFgIGtlcm5lbCBjb21tYW5kIGxpbmUgcGFyYW1ldGVyIGFuZCByZXNlcnZlcyBtZW1vcnkuIFRoaXMgY29kZSBpcyBleGVjdXRlZCBvbmx5IG9uY2UgZHVyaW5nIHN5c3RlbSBib290IGFuZCBjYW5ub3QgYmUgcmVhY2hlZCBvciB0cmlnZ2VyZWQgZnJvbSB1c2VyLXNwYWNlIHZpYSBzeXNjYWxscywgbWFraW5nIGl0IGltcG9zc2libGUgdG8gZnV6eiB3aXRoIHN5emthbGxlci4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIGVhcmx5IGJvb3QgY29kZSAoYF9faW5pdGAgZnVuY3Rpb25zKSB0aGF0IHBhcnNlcyB0aGUgYGh1Z2V0bGJfY21hYCBrZXJuZWwgY29tbWFuZCBsaW5lIHBhcmFtZXRlciBhbmQgcmVzZXJ2ZXMgbWVtb3J5LiBUaGlzIGNvZGUgaXMgZXhlY3V0ZWQgb25seSBvbmNlIGR1cmluZyBzeXN0ZW0gYm9vdCBhbmQgY2Fubm90IGJlIHJlYWNoZWQgb3IgdHJpZ2dlcmVkIGZyb20gdXNlci1zcGFjZSB2aWEgc3lzY2FsbHMsIG1ha2luZyBpdCBpbXBvc3NpYmxlIHRvIGZ1enogd2l0aCBzeXprYWxsZXIuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTwvdGJvZHk+Cgk8L3RhYmxlPgoKCTxkaXYgaWQ9ImxsbV9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+TExNIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgVG9rZW5zPC90aD4KCQkJCQk8dGg+QXZnIFRva2VuczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJsbG1fc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJ0b29sX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5Ub29sIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9InRvb2xfc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJkdXJhdGlvbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+Cgk8ZGl2IGlkPSJ0b2tlbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+CgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9qc2FwaSI+PC9zY3JpcHQ+Cgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CgkJZ29vZ2xlLmxvYWQoInZpc3VhbGl6YXRpb24iLCAiMSIsIHtwYWNrYWdlczpbImNvcmVjaGFydCJdfSk7CgkJZ29vZ2xlLnNldE9uTG9hZENhbGxiYWNrKGRyYXdDaGFydHMpOwoKCQlmdW5jdGlvbiBkcmF3Q2hhcnRzKCkgewoJCQljb25zdCByYXdEYXRhID0gW3siU3RhcnRlZCI6IjIwMjYtMDYtMjZUMTI6MzY6MjkuMTgyNTczODVaIiwiU2VxIjowLCJOZXN0aW5nIjowLCJUeXBlIjoiZmxvdyIsIk5hbWUiOiJwYXRjaC10cmlhZ2UiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNTkxMjMxMzAxNywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgZWFybHkgYm9vdCBjb2RlIChgX19pbml0YCBmdW5jdGlvbnMpIHRoYXQgcGFyc2VzIHRoZSBgaHVnZXRsYl9jbWFgIGtlcm5lbCBjb21tYW5kIGxpbmUgcGFyYW1ldGVyIGFuZCByZXNlcnZlcyBtZW1vcnkuIFRoaXMgY29kZSBpcyBleGVjdXRlZCBvbmx5IG9uY2UgZHVyaW5nIHN5c3RlbSBib290IGFuZCBjYW5ub3QgYmUgcmVhY2hlZCBvciB0cmlnZ2VyZWQgZnJvbSB1c2VyLXNwYWNlIHZpYSBzeXNjYWxscywgbWFraW5nIGl0IGltcG9zc2libGUgdG8gZnV6eiB3aXRoIHN5emthbGxlci5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTI2VDEyOjM2OjI5LjE4MjU3OTU0WiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo2NjU2MzM5NTUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIlBhdGNoRGlmZlwiOiBcImNvbW1pdCAxZThhZTEwMmM1MWZhYjlkNjlhMjE4NzkxNzMyMDllZWRjZjlhZDlhXFxuQXV0aG9yOiBzeXotY2x1c3RlciBcXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cXHUwMDNlXFxuRGF0ZTogICBGcmkgSnVuIDI2IDEyOjM2OjI3IDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vYWRtaW4tZ3VpZGUva2VybmVsLXBhcmFtZXRlcnMudHh0IGIvRG9jdW1lbnRhdGlvbi9hZG1pbi1ndWlkZS9rZXJuZWwtcGFyYW1ldGVycy50eHRcXG5pbmRleCA1YTA1YjQ4ZDE2ODRlYi4uODQ2OTQwY2UyODU4YTggMTAwNjQ0XFxuLS0tIGEvRG9jdW1lbnRhdGlvbi9hZG1pbi1ndWlkZS9rZXJuZWwtcGFyYW1ldGVycy50eHRcXG4rKysgYi9Eb2N1bWVudGF0aW9uL2FkbWluLWd1aWRlL2tlcm5lbC1wYXJhbWV0ZXJzLnR4dFxcbkBAIC0yMDY0LDggKzIwNjQsMTEgQEAgS2VybmVsIHBhcmFtZXRlcnNcXG4gXFx0aHVnZXRsYl9jbWE9XFx0W0hXLENNQSxFQVJMWV0gVGhlIHNpemUgb2YgYSBDTUEgYXJlYSB1c2VkIGZvciBhbGxvY2F0aW9uXFxuIFxcdFxcdFxcdG9mIGdpZ2FudGljIGh1Z2VwYWdlcy4gT3IgdXNpbmcgbm9kZSBmb3JtYXQsIHRoZSBzaXplXFxuIFxcdFxcdFxcdG9mIGEgQ01BIGFyZWEgcGVyIG5vZGUgY2FuIGJlIHNwZWNpZmllZC5cXG4tXFx0XFx0XFx0Rm9ybWF0OiBubltLTUdUUEVdIG9yIChub2RlIGZvcm1hdClcXG4tXFx0XFx0XFx0XFx0XFx1MDAzY25vZGVcXHUwMDNlOm5uW0tNR1RQRV1bLFxcdTAwM2Nub2RlXFx1MDAzZTpubltLTUdUUEVdXVxcbitcXHRcXHRcXHRUaGUgc2l6ZSBjYW4gYmUgYW4gYWJzb2x1dGUgdmFsdWUgKGUuZy4sIDJHKSBvciBhXFxuK1xcdFxcdFxcdHBlcmNlbnRhZ2Ugb2YgdGhlIHRvdGFsIG1lbW9yeSBvciBub2RlIG1lbW9yeSAoZS5nLiwgMjAlKS5cXG4rXFx0XFx0XFx0Rm9ybWF0OiBubltLTUdUUEVdIG9yIG5uJSBvciAobm9kZSBmb3JtYXQpXFxuK1xcdFxcdFxcdFxcdFxcdTAwM2Nub2RlXFx1MDAzZTpubltLTUdUUEVdWyxcXHUwMDNjbm9kZVxcdTAwM2U6bm5bS01HVFBFXV0gb3JcXG4rXFx0XFx0XFx0XFx0XFx1MDAzY25vZGVcXHUwMDNlOm5uJVssXFx1MDAzY25vZGVcXHUwMDNlOm5uJV1cXG4gXFxuIFxcdFxcdFxcdFJlc2VydmUgYSBDTUEgYXJlYSBvZiBnaXZlbiBzaXplIGFuZCBhbGxvY2F0ZSBnaWdhbnRpY1xcbiBcXHRcXHRcXHRodWdlcGFnZXMgdXNpbmcgdGhlIENNQSBhbGxvY2F0b3IuIElmIGVuYWJsZWQsIHRoZVxcbmRpZmYgLS1naXQgYS9tbS9odWdldGxiX2NtYS5jIGIvbW0vaHVnZXRsYl9jbWEuY1xcbmluZGV4IDc2OTNjY2VmZDBjNjRmLi5iNGY4YmJlNGM2MmRjNCAxMDA2NDRcXG4tLS0gYS9tbS9odWdldGxiX2NtYS5jXFxuKysrIGIvbW0vaHVnZXRsYl9jbWEuY1xcbkBAIC05LDYgKzksOCBAQFxcbiAjaW5jbHVkZSBcXHUwMDNjYXNtL3NldHVwLmhcXHUwMDNlXFxuIFxcbiAjaW5jbHVkZSBcXHUwMDNjbGludXgvaHVnZXRsYi5oXFx1MDAzZVxcbisjaW5jbHVkZSBcXHUwMDNjbGludXgvbWVtYmxvY2suaFxcdTAwM2VcXG4rI2luY2x1ZGUgXFx1MDAzY2xpbnV4L21hdGguaFxcdTAwM2VcXG4gI2luY2x1ZGUgXFxcImludGVybmFsLmhcXFwiXFxuICNpbmNsdWRlIFxcXCJodWdldGxiX2NtYS5oXFxcIlxcbiBcXG5AQCAtMTgsNiArMjAsMjggQEAgc3RhdGljIHVuc2lnbmVkIGxvbmcgaHVnZXRsYl9jbWFfc2l6ZV9pbl9ub2RlW01BWF9OVU1OT0RFU10gX19pbml0ZGF0YTtcXG4gc3RhdGljIGJvb2wgaHVnZXRsYl9jbWFfb25seSBfX3JvX2FmdGVyX2luaXQ7XFxuIHN0YXRpYyB1bnNpZ25lZCBsb25nIGh1Z2V0bGJfY21hX3NpemUgX19yb19hZnRlcl9pbml0O1xcbiBcXG4rc3RhdGljIHVuc2lnbmVkIGludCBodWdldGxiX2NtYV9wZXJjZW50IF9faW5pdGRhdGE7XFxuK3N0YXRpYyB1bnNpZ25lZCBpbnQgaHVnZXRsYl9jbWFfcGVyY2VudF9pbl9ub2RlW01BWF9OVU1OT0RFU10gX19pbml0ZGF0YTtcXG4rXFxuKyNpZmRlZiBDT05GSUdfTlVNQVxcbitzdGF0aWMgdW5zaWduZWQgbG9uZyBfX2luaXQgbWVtYmxvY2tfbm9kZV9tZW1vcnlfc2l6ZShpbnQgbmlkKVxcbit7XFxuK1xcdHN0cnVjdCBtZW1ibG9ja19yZWdpb24gKnJlZztcXG4rXFx0dW5zaWduZWQgbG9uZyBzaXplID0gMDtcXG4rXFxuK1xcdGZvcl9lYWNoX21lbV9yZWdpb24ocmVnKSB7XFxuK1xcdFxcdGlmIChyZWctXFx1MDAzZW5pZCA9PSBuaWQpXFxuK1xcdFxcdFxcdHNpemUgKz0gcmVnLVxcdTAwM2VzaXplO1xcbitcXHR9XFxuK1xcdHJldHVybiBzaXplO1xcbit9XFxuKyNlbHNlXFxuK3N0YXRpYyB1bnNpZ25lZCBsb25nIF9faW5pdCBtZW1ibG9ja19ub2RlX21lbW9yeV9zaXplKGludCBuaWQpXFxuK3tcXG4rXFx0cmV0dXJuIG1lbWJsb2NrX3BoeXNfbWVtX3NpemUoKTtcXG4rfVxcbisjZW5kaWZcXG4rXFxuIHZvaWQgaHVnZXRsYl9jbWFfZnJlZV9mcm96ZW5fZm9saW8oc3RydWN0IGZvbGlvICpmb2xpbylcXG4ge1xcbiBcXHRXQVJOX09OX09OQ0UoIWNtYV9yZWxlYXNlX2Zyb3plbihodWdldGxiX2NtYVtmb2xpb19uaWQoZm9saW8pXSxcXG5AQCAtMTAwLDE0ICsxMjQsMjcgQEAgc3RhdGljIGludCBfX2luaXQgY21kbGluZV9wYXJzZV9odWdldGxiX2NtYShjaGFyICpwKVxcbiBcXHRcXHRcXHRicmVhaztcXG4gXFxuIFxcdFxcdGlmIChzW2NvdW50XSA9PSAnOicpIHtcXG4rXFx0XFx0XFx0Y2hhciAqbmV4dDtcXG4rXFxuIFxcdFxcdFxcdGlmICh0bXAgXFx1MDAzZT0gTUFYX05VTU5PREVTKVxcbiBcXHRcXHRcXHRcXHRicmVhaztcXG4gXFx0XFx0XFx0bmlkID0gYXJyYXlfaW5kZXhfbm9zcGVjKHRtcCwgTUFYX05VTU5PREVTKTtcXG4gXFxuIFxcdFxcdFxcdHMgKz0gY291bnQgKyAxO1xcbi1cXHRcXHRcXHR0bXAgPSBtZW1wYXJzZShzLCBcXHUwMDI2cyk7XFxuLVxcdFxcdFxcdGh1Z2V0bGJfY21hX3NpemVfaW5fbm9kZVtuaWRdID0gdG1wO1xcbi1cXHRcXHRcXHRodWdldGxiX2NtYV9zaXplICs9IHRtcDtcXG4rXFx0XFx0XFx0dG1wID0gbWVtcGFyc2UocywgXFx1MDAyNm5leHQpO1xcbitcXHRcXHRcXHRpZiAoKm5leHQgPT0gJyUnKSB7XFxuK1xcdFxcdFxcdFxcdGlmICh0bXAgXFx1MDAzZSAxMDApIHtcXG4rXFx0XFx0XFx0XFx0XFx0cHJfd2FybihcXFwiaHVnZXRsYl9jbWE6IGludmFsaWQgcGVyY2VudGFnZSAlbHUgZm9yIG5vZGUgJWRcXFxcblxcXCIsXFxuK1xcdFxcdFxcdFxcdFxcdFxcdHRtcCwgbmlkKTtcXG4rXFx0XFx0XFx0XFx0XFx0YnJlYWs7XFxuK1xcdFxcdFxcdFxcdH1cXG4rXFx0XFx0XFx0XFx0aHVnZXRsYl9jbWFfcGVyY2VudF9pbl9ub2RlW25pZF0gPSB0bXA7XFxuK1xcdFxcdFxcdFxcdHMgPSBuZXh0ICsgMTtcXG4rXFx0XFx0XFx0fSBlbHNlIHtcXG4rXFx0XFx0XFx0XFx0aHVnZXRsYl9jbWFfc2l6ZV9pbl9ub2RlW25pZF0gPSB0bXA7XFxuK1xcdFxcdFxcdFxcdGh1Z2V0bGJfY21hX3NpemUgKz0gdG1wO1xcbitcXHRcXHRcXHRcXHRzID0gbmV4dDtcXG4rXFx0XFx0XFx0fVxcbiBcXG4gXFx0XFx0XFx0LypcXG4gXFx0XFx0XFx0ICogU2tpcCB0aGUgc2VwYXJhdG9yIGlmIGhhdmUgb25lLCBvdGhlcndpc2VcXG5AQCAtMTE4LDcgKzE1NSwxNyBAQCBzdGF0aWMgaW50IF9faW5pdCBjbWRsaW5lX3BhcnNlX2h1Z2V0bGJfY21hKGNoYXIgKnApXFxuIFxcdFxcdFxcdGVsc2VcXG4gXFx0XFx0XFx0XFx0YnJlYWs7XFxuIFxcdFxcdH0gZWxzZSB7XFxuLVxcdFxcdFxcdGh1Z2V0bGJfY21hX3NpemUgPSBtZW1wYXJzZShwLCBcXHUwMDI2cCk7XFxuK1xcdFxcdFxcdGNoYXIgKm5leHQ7XFxuK1xcbitcXHRcXHRcXHR0bXAgPSBtZW1wYXJzZShwLCBcXHUwMDI2bmV4dCk7XFxuK1xcdFxcdFxcdGlmICgqbmV4dCA9PSAnJScpIHtcXG4rXFx0XFx0XFx0XFx0aWYgKHRtcCBcXHUwMDNlIDEwMClcXG4rXFx0XFx0XFx0XFx0XFx0cHJfd2FybihcXFwiaHVnZXRsYl9jbWE6IGludmFsaWQgcGVyY2VudGFnZSAlbHVcXFxcblxcXCIsIHRtcCk7XFxuK1xcdFxcdFxcdFxcdGVsc2VcXG4rXFx0XFx0XFx0XFx0XFx0aHVnZXRsYl9jbWFfcGVyY2VudCA9IHRtcDtcXG4rXFx0XFx0XFx0fSBlbHNlIHtcXG4rXFx0XFx0XFx0XFx0aHVnZXRsYl9jbWFfc2l6ZSA9IHRtcDtcXG4rXFx0XFx0XFx0fVxcbiBcXHRcXHRcXHRicmVhaztcXG4gXFx0XFx0fVxcbiBcXHR9XFxuQEAgLTE0NCw4ICsxOTEsMzQgQEAgdm9pZCBfX2luaXQgaHVnZXRsYl9jbWFfcmVzZXJ2ZSh2b2lkKVxcbiB7XFxuIFxcdHVuc2lnbmVkIGxvbmcgc2l6ZSwgcmVzZXJ2ZWQsIHBlcl9ub2RlLCBvcmRlcjtcXG4gXFx0Ym9vbCBub2RlX3NwZWNpZmljX2NtYV9hbGxvYyA9IGZhbHNlO1xcbitcXHRib29sIGhhc19ub2RlX3NwZWNpZmljX3BhcmFtID0gZmFsc2U7XFxuIFxcdGludCBuaWQ7XFxuIFxcbitcXHRmb3IgKG5pZCA9IDA7IG5pZCBcXHUwMDNjIE1BWF9OVU1OT0RFUzsgbmlkKyspIHtcXG4rXFx0XFx0aWYgKGh1Z2V0bGJfY21hX3NpemVfaW5fbm9kZVtuaWRdIHx8IGh1Z2V0bGJfY21hX3BlcmNlbnRfaW5fbm9kZVtuaWRdKSB7XFxuK1xcdFxcdFxcdGhhc19ub2RlX3NwZWNpZmljX3BhcmFtID0gdHJ1ZTtcXG4rXFx0XFx0XFx0YnJlYWs7XFxuK1xcdFxcdH1cXG4rXFx0fVxcbitcXG4rXFx0aWYgKGhhc19ub2RlX3NwZWNpZmljX3BhcmFtKSB7XFxuK1xcdFxcdGZvciAobmlkID0gMDsgbmlkIFxcdTAwM2MgTUFYX05VTU5PREVTOyBuaWQrKykge1xcbitcXHRcXHRcXHRpZiAoaHVnZXRsYl9jbWFfcGVyY2VudF9pbl9ub2RlW25pZF0pIHtcXG4rXFx0XFx0XFx0XFx0dW5zaWduZWQgbG9uZyBub2RlX2dmcF9tZW0gPSBtZW1ibG9ja19ub2RlX21lbW9yeV9zaXplKG5pZCk7XFxuK1xcdFxcdFxcdFxcdHVuc2lnbmVkIGxvbmcgcztcXG4rXFxuK1xcdFxcdFxcdFxcdHMgPSBtdWx0X2ZyYWMobm9kZV9nZnBfbWVtLFxcbitcXHRcXHRcXHRcXHRcXHQgICAgICBodWdldGxiX2NtYV9wZXJjZW50X2luX25vZGVbbmlkXSxcXG4rXFx0XFx0XFx0XFx0XFx0ICAgICAgMTAwKTtcXG4rXFxuK1xcdFxcdFxcdFxcdGh1Z2V0bGJfY21hX3NpemVfaW5fbm9kZVtuaWRdID0gcztcXG4rXFx0XFx0XFx0XFx0aHVnZXRsYl9jbWFfc2l6ZSArPSBzO1xcbitcXHRcXHRcXHR9XFxuK1xcdFxcdH1cXG4rXFx0fSBlbHNlIGlmIChodWdldGxiX2NtYV9wZXJjZW50KSB7XFxuK1xcdFxcdGh1Z2V0bGJfY21hX3NpemUgPSBtdWx0X2ZyYWMobWVtYmxvY2tfcGh5c19tZW1fc2l6ZSgpLCBodWdldGxiX2NtYV9wZXJjZW50LCAxMDApO1xcbitcXHR9XFxuK1xcbiBcXHRpZiAoIWh1Z2V0bGJfY21hX3NpemUpXFxuIFxcdFxcdHJldHVybjtcXG4gXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTI2VDEyOjM2OjI5Ljg0OTU0OTUxNVoiLCJTZXEiOjIsIk5lc3RpbmciOjEsIlR5cGUiOiJhZ2VudCIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MTUyNDUzMjUzMzIsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIGVhcmx5IGJvb3QgY29kZSAoYF9faW5pdGAgZnVuY3Rpb25zKSB0aGF0IHBhcnNlcyB0aGUgYGh1Z2V0bGJfY21hYCBrZXJuZWwgY29tbWFuZCBsaW5lIHBhcmFtZXRlciBhbmQgcmVzZXJ2ZXMgbWVtb3J5LiBUaGlzIGNvZGUgaXMgZXhlY3V0ZWQgb25seSBvbmNlIGR1cmluZyBzeXN0ZW0gYm9vdCBhbmQgY2Fubm90IGJlIHJlYWNoZWQgb3IgdHJpZ2dlcmVkIGZyb20gdXNlci1zcGFjZSB2aWEgc3lzY2FsbHMsIG1ha2luZyBpdCBpbXBvc3NpYmxlIHRvIGZ1enogd2l0aCBzeXprYWxsZXIuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiJZb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci5cbllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lXG5pZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXG5cbklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpblxueW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5XG51c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLlxuXG5SZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOlxuLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLlxuLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy5cbi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LlxuLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsXG5ldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuXG5cbklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2hcbnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLlxuXG5XaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzpcbjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuXG4gICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy5cbjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLlxuICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLlxuICAgRG8gbm90IGxpc3QgdG9vIGdlbmVyaWMgY29uZmlncyAod2UgYWxyZWFkeSBoYXZlIHRoZW0gZW5hYmxlZCkuIE9ubHkgbGlzdCB0aG9zZSB0aGF0XG4gICBzcGVjaWZpY2FsbHkgY292ZXIgdGhlIG1vZGlmaWVkIGNvZGUuIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncyBvdXRwdXQgYXJyYXksXG4gICBhbmQgRE8gTk9UIGFkZCBhICdDT05GSUdfJyBwcmVmaXggKGUuZy4sIHJldHVybiBcIk5FVF9JUFY0XCIgaW5zdGVhZCBvZiBcIkNPTkZJR19ORVRfSVBWNFwiKS5cblByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLlxuXG5cblVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuXG5JdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS5cbklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC5cbiIsIlByb21wdCI6IkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOlxuY29tbWl0IDFlOGFlMTAyYzUxZmFiOWQ2OWEyMTg3OTE3MzIwOWVlZGNmOWFkOWFcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgRnJpIEp1biAyNiAxMjozNjoyNyAyMDI2ICswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vYWRtaW4tZ3VpZGUva2VybmVsLXBhcmFtZXRlcnMudHh0IGIvRG9jdW1lbnRhdGlvbi9hZG1pbi1ndWlkZS9rZXJuZWwtcGFyYW1ldGVycy50eHRcbmluZGV4IDVhMDViNDhkMTY4NGViLi44NDY5NDBjZTI4NThhOCAxMDA2NDRcbi0tLSBhL0RvY3VtZW50YXRpb24vYWRtaW4tZ3VpZGUva2VybmVsLXBhcmFtZXRlcnMudHh0XG4rKysgYi9Eb2N1bWVudGF0aW9uL2FkbWluLWd1aWRlL2tlcm5lbC1wYXJhbWV0ZXJzLnR4dFxuQEAgLTIwNjQsOCArMjA2NCwxMSBAQCBLZXJuZWwgcGFyYW1ldGVyc1xuIFx0aHVnZXRsYl9jbWE9XHRbSFcsQ01BLEVBUkxZXSBUaGUgc2l6ZSBvZiBhIENNQSBhcmVhIHVzZWQgZm9yIGFsbG9jYXRpb25cbiBcdFx0XHRvZiBnaWdhbnRpYyBodWdlcGFnZXMuIE9yIHVzaW5nIG5vZGUgZm9ybWF0LCB0aGUgc2l6ZVxuIFx0XHRcdG9mIGEgQ01BIGFyZWEgcGVyIG5vZGUgY2FuIGJlIHNwZWNpZmllZC5cbi1cdFx0XHRGb3JtYXQ6IG5uW0tNR1RQRV0gb3IgKG5vZGUgZm9ybWF0KVxuLVx0XHRcdFx0XHUwMDNjbm9kZVx1MDAzZTpubltLTUdUUEVdWyxcdTAwM2Nub2RlXHUwMDNlOm5uW0tNR1RQRV1dXG4rXHRcdFx0VGhlIHNpemUgY2FuIGJlIGFuIGFic29sdXRlIHZhbHVlIChlLmcuLCAyRykgb3IgYVxuK1x0XHRcdHBlcmNlbnRhZ2Ugb2YgdGhlIHRvdGFsIG1lbW9yeSBvciBub2RlIG1lbW9yeSAoZS5nLiwgMjAlKS5cbitcdFx0XHRGb3JtYXQ6IG5uW0tNR1RQRV0gb3Igbm4lIG9yIChub2RlIGZvcm1hdClcbitcdFx0XHRcdFx1MDAzY25vZGVcdTAwM2U6bm5bS01HVFBFXVssXHUwMDNjbm9kZVx1MDAzZTpubltLTUdUUEVdXSBvclxuK1x0XHRcdFx0XHUwMDNjbm9kZVx1MDAzZTpubiVbLFx1MDAzY25vZGVcdTAwM2U6bm4lXVxuIFxuIFx0XHRcdFJlc2VydmUgYSBDTUEgYXJlYSBvZiBnaXZlbiBzaXplIGFuZCBhbGxvY2F0ZSBnaWdhbnRpY1xuIFx0XHRcdGh1Z2VwYWdlcyB1c2luZyB0aGUgQ01BIGFsbG9jYXRvci4gSWYgZW5hYmxlZCwgdGhlXG5kaWZmIC0tZ2l0IGEvbW0vaHVnZXRsYl9jbWEuYyBiL21tL2h1Z2V0bGJfY21hLmNcbmluZGV4IDc2OTNjY2VmZDBjNjRmLi5iNGY4YmJlNGM2MmRjNCAxMDA2NDRcbi0tLSBhL21tL2h1Z2V0bGJfY21hLmNcbisrKyBiL21tL2h1Z2V0bGJfY21hLmNcbkBAIC05LDYgKzksOCBAQFxuICNpbmNsdWRlIFx1MDAzY2FzbS9zZXR1cC5oXHUwMDNlXG4gXG4gI2luY2x1ZGUgXHUwMDNjbGludXgvaHVnZXRsYi5oXHUwMDNlXG4rI2luY2x1ZGUgXHUwMDNjbGludXgvbWVtYmxvY2suaFx1MDAzZVxuKyNpbmNsdWRlIFx1MDAzY2xpbnV4L21hdGguaFx1MDAzZVxuICNpbmNsdWRlIFwiaW50ZXJuYWwuaFwiXG4gI2luY2x1ZGUgXCJodWdldGxiX2NtYS5oXCJcbiBcbkBAIC0xOCw2ICsyMCwyOCBAQCBzdGF0aWMgdW5zaWduZWQgbG9uZyBodWdldGxiX2NtYV9zaXplX2luX25vZGVbTUFYX05VTU5PREVTXSBfX2luaXRkYXRhO1xuIHN0YXRpYyBib29sIGh1Z2V0bGJfY21hX29ubHkgX19yb19hZnRlcl9pbml0O1xuIHN0YXRpYyB1bnNpZ25lZCBsb25nIGh1Z2V0bGJfY21hX3NpemUgX19yb19hZnRlcl9pbml0O1xuIFxuK3N0YXRpYyB1bnNpZ25lZCBpbnQgaHVnZXRsYl9jbWFfcGVyY2VudCBfX2luaXRkYXRhO1xuK3N0YXRpYyB1bnNpZ25lZCBpbnQgaHVnZXRsYl9jbWFfcGVyY2VudF9pbl9ub2RlW01BWF9OVU1OT0RFU10gX19pbml0ZGF0YTtcbitcbisjaWZkZWYgQ09ORklHX05VTUFcbitzdGF0aWMgdW5zaWduZWQgbG9uZyBfX2luaXQgbWVtYmxvY2tfbm9kZV9tZW1vcnlfc2l6ZShpbnQgbmlkKVxuK3tcbitcdHN0cnVjdCBtZW1ibG9ja19yZWdpb24gKnJlZztcbitcdHVuc2lnbmVkIGxvbmcgc2l6ZSA9IDA7XG4rXG4rXHRmb3JfZWFjaF9tZW1fcmVnaW9uKHJlZykge1xuK1x0XHRpZiAocmVnLVx1MDAzZW5pZCA9PSBuaWQpXG4rXHRcdFx0c2l6ZSArPSByZWctXHUwMDNlc2l6ZTtcbitcdH1cbitcdHJldHVybiBzaXplO1xuK31cbisjZWxzZVxuK3N0YXRpYyB1bnNpZ25lZCBsb25nIF9faW5pdCBtZW1ibG9ja19ub2RlX21lbW9yeV9zaXplKGludCBuaWQpXG4re1xuK1x0cmV0dXJuIG1lbWJsb2NrX3BoeXNfbWVtX3NpemUoKTtcbit9XG4rI2VuZGlmXG4rXG4gdm9pZCBodWdldGxiX2NtYV9mcmVlX2Zyb3plbl9mb2xpbyhzdHJ1Y3QgZm9saW8gKmZvbGlvKVxuIHtcbiBcdFdBUk5fT05fT05DRSghY21hX3JlbGVhc2VfZnJvemVuKGh1Z2V0bGJfY21hW2ZvbGlvX25pZChmb2xpbyldLFxuQEAgLTEwMCwxNCArMTI0LDI3IEBAIHN0YXRpYyBpbnQgX19pbml0IGNtZGxpbmVfcGFyc2VfaHVnZXRsYl9jbWEoY2hhciAqcClcbiBcdFx0XHRicmVhaztcbiBcbiBcdFx0aWYgKHNbY291bnRdID09ICc6Jykge1xuK1x0XHRcdGNoYXIgKm5leHQ7XG4rXG4gXHRcdFx0aWYgKHRtcCBcdTAwM2U9IE1BWF9OVU1OT0RFUylcbiBcdFx0XHRcdGJyZWFrO1xuIFx0XHRcdG5pZCA9IGFycmF5X2luZGV4X25vc3BlYyh0bXAsIE1BWF9OVU1OT0RFUyk7XG4gXG4gXHRcdFx0cyArPSBjb3VudCArIDE7XG4tXHRcdFx0dG1wID0gbWVtcGFyc2UocywgXHUwMDI2cyk7XG4tXHRcdFx0aHVnZXRsYl9jbWFfc2l6ZV9pbl9ub2RlW25pZF0gPSB0bXA7XG4tXHRcdFx0aHVnZXRsYl9jbWFfc2l6ZSArPSB0bXA7XG4rXHRcdFx0dG1wID0gbWVtcGFyc2UocywgXHUwMDI2bmV4dCk7XG4rXHRcdFx0aWYgKCpuZXh0ID09ICclJykge1xuK1x0XHRcdFx0aWYgKHRtcCBcdTAwM2UgMTAwKSB7XG4rXHRcdFx0XHRcdHByX3dhcm4oXCJodWdldGxiX2NtYTogaW52YWxpZCBwZXJjZW50YWdlICVsdSBmb3Igbm9kZSAlZFxcblwiLFxuK1x0XHRcdFx0XHRcdHRtcCwgbmlkKTtcbitcdFx0XHRcdFx0YnJlYWs7XG4rXHRcdFx0XHR9XG4rXHRcdFx0XHRodWdldGxiX2NtYV9wZXJjZW50X2luX25vZGVbbmlkXSA9IHRtcDtcbitcdFx0XHRcdHMgPSBuZXh0ICsgMTtcbitcdFx0XHR9IGVsc2Uge1xuK1x0XHRcdFx0aHVnZXRsYl9jbWFfc2l6ZV9pbl9ub2RlW25pZF0gPSB0bXA7XG4rXHRcdFx0XHRodWdldGxiX2NtYV9zaXplICs9IHRtcDtcbitcdFx0XHRcdHMgPSBuZXh0O1xuK1x0XHRcdH1cbiBcbiBcdFx0XHQvKlxuIFx0XHRcdCAqIFNraXAgdGhlIHNlcGFyYXRvciBpZiBoYXZlIG9uZSwgb3RoZXJ3aXNlXG5AQCAtMTE4LDcgKzE1NSwxNyBAQCBzdGF0aWMgaW50IF9faW5pdCBjbWRsaW5lX3BhcnNlX2h1Z2V0bGJfY21hKGNoYXIgKnApXG4gXHRcdFx0ZWxzZVxuIFx0XHRcdFx0YnJlYWs7XG4gXHRcdH0gZWxzZSB7XG4tXHRcdFx0aHVnZXRsYl9jbWFfc2l6ZSA9IG1lbXBhcnNlKHAsIFx1MDAyNnApO1xuK1x0XHRcdGNoYXIgKm5leHQ7XG4rXG4rXHRcdFx0dG1wID0gbWVtcGFyc2UocCwgXHUwMDI2bmV4dCk7XG4rXHRcdFx0aWYgKCpuZXh0ID09ICclJykge1xuK1x0XHRcdFx0aWYgKHRtcCBcdTAwM2UgMTAwKVxuK1x0XHRcdFx0XHRwcl93YXJuKFwiaHVnZXRsYl9jbWE6IGludmFsaWQgcGVyY2VudGFnZSAlbHVcXG5cIiwgdG1wKTtcbitcdFx0XHRcdGVsc2VcbitcdFx0XHRcdFx0aHVnZXRsYl9jbWFfcGVyY2VudCA9IHRtcDtcbitcdFx0XHR9IGVsc2Uge1xuK1x0XHRcdFx0aHVnZXRsYl9jbWFfc2l6ZSA9IHRtcDtcbitcdFx0XHR9XG4gXHRcdFx0YnJlYWs7XG4gXHRcdH1cbiBcdH1cbkBAIC0xNDQsOCArMTkxLDM0IEBAIHZvaWQgX19pbml0IGh1Z2V0bGJfY21hX3Jlc2VydmUodm9pZClcbiB7XG4gXHR1bnNpZ25lZCBsb25nIHNpemUsIHJlc2VydmVkLCBwZXJfbm9kZSwgb3JkZXI7XG4gXHRib29sIG5vZGVfc3BlY2lmaWNfY21hX2FsbG9jID0gZmFsc2U7XG4rXHRib29sIGhhc19ub2RlX3NwZWNpZmljX3BhcmFtID0gZmFsc2U7XG4gXHRpbnQgbmlkO1xuIFxuK1x0Zm9yIChuaWQgPSAwOyBuaWQgXHUwMDNjIE1BWF9OVU1OT0RFUzsgbmlkKyspIHtcbitcdFx0aWYgKGh1Z2V0bGJfY21hX3NpemVfaW5fbm9kZVtuaWRdIHx8IGh1Z2V0bGJfY21hX3BlcmNlbnRfaW5fbm9kZVtuaWRdKSB7XG4rXHRcdFx0aGFzX25vZGVfc3BlY2lmaWNfcGFyYW0gPSB0cnVlO1xuK1x0XHRcdGJyZWFrO1xuK1x0XHR9XG4rXHR9XG4rXG4rXHRpZiAoaGFzX25vZGVfc3BlY2lmaWNfcGFyYW0pIHtcbitcdFx0Zm9yIChuaWQgPSAwOyBuaWQgXHUwMDNjIE1BWF9OVU1OT0RFUzsgbmlkKyspIHtcbitcdFx0XHRpZiAoaHVnZXRsYl9jbWFfcGVyY2VudF9pbl9ub2RlW25pZF0pIHtcbitcdFx0XHRcdHVuc2lnbmVkIGxvbmcgbm9kZV9nZnBfbWVtID0gbWVtYmxvY2tfbm9kZV9tZW1vcnlfc2l6ZShuaWQpO1xuK1x0XHRcdFx0dW5zaWduZWQgbG9uZyBzO1xuK1xuK1x0XHRcdFx0cyA9IG11bHRfZnJhYyhub2RlX2dmcF9tZW0sXG4rXHRcdFx0XHRcdCAgICAgIGh1Z2V0bGJfY21hX3BlcmNlbnRfaW5fbm9kZVtuaWRdLFxuK1x0XHRcdFx0XHQgICAgICAxMDApO1xuK1xuK1x0XHRcdFx0aHVnZXRsYl9jbWFfc2l6ZV9pbl9ub2RlW25pZF0gPSBzO1xuK1x0XHRcdFx0aHVnZXRsYl9jbWFfc2l6ZSArPSBzO1xuK1x0XHRcdH1cbitcdFx0fVxuK1x0fSBlbHNlIGlmIChodWdldGxiX2NtYV9wZXJjZW50KSB7XG4rXHRcdGh1Z2V0bGJfY21hX3NpemUgPSBtdWx0X2ZyYWMobWVtYmxvY2tfcGh5c19tZW1fc2l6ZSgpLCBodWdldGxiX2NtYV9wZXJjZW50LCAxMDApO1xuK1x0fVxuK1xuIFx0aWYgKCFodWdldGxiX2NtYV9zaXplKVxuIFx0XHRyZXR1cm47XG4gXG4iLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNi0yNlQxMjozNjoyOS44NDk1NTIwNzVaIiwiU2VxIjozLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo1ODk5MjY3Njg0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgYGh1Z2V0bGJfY21hYCBQYXRjaCBmb3IgRnV6emluZyBWdWxuZXJhYmlsaXRpZXMqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIHBhdGNoIHRoYXQgdHdlYWtzIGBtbS9odWdldGxiX2NtYS5jYC4gSXQgbG9va3MgbGlrZSBpdCdzIGFkZGluZyB0aGUgYWJpbGl0eSB0byBzcGVjaWZ5IHRoZSBgaHVnZXRsYl9jbWFgIGtlcm5lbCBwYXJhbWV0ZXIgYXMgYSBwZXJjZW50YWdlLCB3aGljaCBpcyBpbnRlcmVzdGluZy4gVGhlIGNvZGUgbW9kaWZpY2F0aW9ucyBmb2N1cyBvbiBgY21kbGluZV9wYXJzZV9odWdldGxiX2NtYWAgYW5kIGBodWdldGxiX2NtYV9yZXNlcnZlYC4gSSBub3RpY2UgdGhlc2UgZnVuY3Rpb25zIGFyZSBtYXJrZWQgYXMgYF9faW5pdGAgYW5kIGBfX2luaXRkYXRhYCwgd2hpY2ggaW1tZWRpYXRlbHkgc2V0cyBvZmYgYSByZWQgZmxhZyBpbiBteSBtaW5kIHJlZ2FyZGluZyBmdXp6aW5nLlxuXG5NeSBwcmltYXJ5IGNvbmNlcm4sIG9mIGNvdXJzZSwgaXMgd2hldGhlciBTeXprYWxsZXIsIG15IGdvLXRvIGZ1enppbmcgdG9vbCwgY2FuIGFjdHVhbGx5IHJlYWNoIHRoaXMgY29kZS4gU2luY2UgdGhlc2UgZnVuY3Rpb25zIGFyZSBpbnZvbHZlZCBpbiBwYXJzaW5nIHRoZSBrZXJuZWwgY29tbWFuZCBsaW5lIHBhcmFtZXRlcnMgYW5kIHJlc2VydmluZyBtZW1vcnkgZHVyaW5nIGVhcmx5IGJvb3QsIEkgY2FuIGltbWVkaWF0ZWx5IHNlZSBhIHBvdGVudGlhbCBpc3N1ZS4gU3l6a2FsbGVyIHByaW1hcmlseSBvcGVyYXRlcyBieSBzZW5kaW5nIHN5c2NhbGxzIGZyb20gdXNlci1zcGFjZSwgd2hpY2ggaXNuJ3QgZ29pbmcgdG8gaW50ZXJhY3Qgd2l0aCB0aGUgZWFybHkgYm9vdCBwcm9jZXNzLiBUaHVzLCBpdCBpcyB1bmxpa2VseSB0byBkaXJlY3RseSB0cmlnZ2VyIGFueSBwb3RlbnRpYWwgaXNzdWVzIHRocm91Z2ggdGhpcyBjb2RlIHBhdGguXG5cbkJ1dCwgSSBuZWVkIHRvIGJlIHRob3JvdWdoLiBJJ20gd29uZGVyaW5nIGlmIHRoZXJlJ3MgYW55IG90aGVyIHdheSB0aGlzIGNvZGUgY291bGQgYmUgcmVhY2hlZCBmcm9tIHVzZXItc3BhY2UuIEkgbmVlZCB0byBrbm93IGlmIHRoZSBmdW5jdGlvbiBpcyByZWdpc3RlcmVkIHNvbWV3aGVyZSBvdGhlciB0aGFuIHRocm91Z2ggYGVhcmx5X3BhcmFtYC4gSSdsbCBjb25maXJtIHRoYXQgYGNtZGxpbmVfcGFyc2VfaHVnZXRsYl9jbWFgIGlzIGluZGVlZCByZWdpc3RlcmVkIHVzaW5nIGBlYXJseV9wYXJhbWAgYmFzZWQgb24gaXRzIG5hbWluZyBjb252ZW50aW9uLiBMZXQgbWUganVzdCBkb3VibGUtY2hlY2sgdGhhdCBpbiBgbW0vaHVnZXRsYl9jbWEuY2AgdG8gYmUgY2VydGFpbi5cblxuXG4iLCJJbnB1dFRva2VucyI6MzQwOSwiT3V0cHV0VG9rZW5zIjoyNSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjI3NiwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTI2VDEyOjM2OjM1Ljc0ODgyNDIzOVoiLCJTZXEiOjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0NTAzOTE1MjYxLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNtZGxpbmVfcGFyc2VfaHVnZXRsYl9jbWFcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwibW0vaHVnZXRsYl9jbWEuYz04ND1odWdldGxiX2NtYV9hbGxvY19ib290bWVtKHN0cnVjdCBoc3RhdGUgKmgsIGludCAqbmlkLCBib29sIG5vZGVfZXhhY3QpXFxuLS1cXG5tbS9odWdldGxiX2NtYS5jLTExNS1cXG5tbS9odWdldGxiX2NtYS5jOjExNjpzdGF0aWMgaW50IF9faW5pdCBjbWRsaW5lX3BhcnNlX2h1Z2V0bGJfY21hKGNoYXIgKnApXFxubW0vaHVnZXRsYl9jbWEuYy0xMTcte1xcbi0tXFxubW0vaHVnZXRsYl9jbWEuYy0xNzUtXFxubW0vaHVnZXRsYl9jbWEuYzoxNzY6ZWFybHlfcGFyYW0oXFxcImh1Z2V0bGJfY21hXFxcIiwgY21kbGluZV9wYXJzZV9odWdldGxiX2NtYSk7XFxubW0vaHVnZXRsYl9jbWEuYy0xNzctXFxubW0vaHVnZXRsYl9jbWEuYzoxNzg6c3RhdGljIGludCBfX2luaXQgY21kbGluZV9wYXJzZV9odWdldGxiX2NtYV9vbmx5KGNoYXIgKnApXFxubW0vaHVnZXRsYl9jbWEuYy0xNzkte1xcbi0tXFxubW0vaHVnZXRsYl9jbWEuYy0xODItXFxubW0vaHVnZXRsYl9jbWEuYzoxODM6ZWFybHlfcGFyYW0oXFxcImh1Z2V0bGJfY21hX29ubHlcXFwiLCBjbWRsaW5lX3BhcnNlX2h1Z2V0bGJfY21hX29ubHkpO1xcbm1tL2h1Z2V0bGJfY21hLmMtMTg0LVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNi0yNlQxMjozNjo0MC4yNTI3NDY4NloiLCJTZXEiOjUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQ4NDIwODA4OTcsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqTXkgQXNzZXNzbWVudCBvZiB0aGUgUGF0Y2gncyBGdXp6YWJpbGl0eSoqXG5cbk9rYXksIHNvIHdlJ3JlIGxvb2tpbmcgYXQgYGVhcmx5X3BhcmFtYCwgd2hpY2ggaW1tZWRpYXRlbHkgZmxhZ3MgdGhpcyBhcyBhIHBvdGVudGlhbCBub24tc3RhcnRlci4gVGhpcyBpcyAqc3RyaWN0bHkqIGVhcmx5IGJvb3QgY29kZSwgYW5kIHRoYXQncyBhIGtleSBwb2ludC4gU3l6a2FsbGVyLCBteSBnby10byBmdXp6aW5nIHRvb2wsIGlzbid0IGRlc2lnbmVkIHRvIHRvdWNoIHRoYXQuIEl0IGNhbid0IGZ1enogZWFybHkgYm9vdCBjb2RlIG9yLCBjcnVjaWFsbHksIGtlcm5lbCBjb21tYW5kIGxpbmUgcGFyYW1ldGVycy4gU2luY2UgdGhpcyBwYXRjaCByZXZvbHZlcyBhcm91bmQgYGh1Z2V0bGJfY21hYCB3aGljaCBpcyBhIGtlcm5lbCBjb21tYW5kLWxpbmUgcGFyYW1ldGVyLCBpdCdzIHByZXR0eSBjbGVhciBpdCdzIG5vdCBhIGdvb2QgZml0IGZvciBmdXp6aW5nLlxuXG5MZXQgbWUganVzdCBkb3VibGUtY2hlY2ssIHRob3VnaC4gQWx3YXlzIGdvb2QgdG8gYmUgdGhvcm91Z2guIElzIHRoZXJlICphbnkqIG90aGVyIHBvc3NpYmxlIHBhdGggdG8gdHJpZ2dlciB0aGlzIGNvZGU/IE5vcGUuIEl0J3MgYWxsIGBfX2luaXRgIGFuZCBgX19pbml0ZGF0YWAsIG1ha2luZyBpdCBvbmx5IGV4ZWN1dGFibGUgZHVyaW5nIGluaXRpYWwgYm9vdHVwLiBUaGUgcGF0Y2gncyBpbXBhY3QgaXMgaW4gbW9kaWZ5aW5nIHRoaXMgaW5pdGlhbCBwYXJzaW5nIGFuZCBtZW1vcnkgcmVzZXJ2YXRpb24gYmVoYXZpb3Igd2hpY2ggb2NjdXJzIG9ubHkgb25jZS4gVXNlci1zcGFjZSBpbnRlcmFjdGlvbiB2aWEgc3lzY2FsbHMgaXMgb3V0IG9mIHRoZSBxdWVzdGlvbi5cblxuVGhlcmVmb3JlLCBnaXZlbiB0aGVzZSBjb25zdHJhaW50cywgdGhlIHZhbHVlIG9mIHRoaXMgcGF0Y2ggaXMgZGVmaW5pdGVseSBub3Qgd29ydGggZnV6emluZy5cblxuXG4iLCJJbnB1dFRva2VucyI6NDM3NiwiT3V0cHV0VG9rZW5zIjo5NSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE0OSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNi0yNlQxMjozNjo0NS4wOTQ4MzA0MjdaIiwiU2VxIjo2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQxNjQwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIGVhcmx5IGJvb3QgY29kZSAoYF9faW5pdGAgZnVuY3Rpb25zKSB0aGF0IHBhcnNlcyB0aGUgYGh1Z2V0bGJfY21hYCBrZXJuZWwgY29tbWFuZCBsaW5lIHBhcmFtZXRlciBhbmQgcmVzZXJ2ZXMgbWVtb3J5LiBUaGlzIGNvZGUgaXMgZXhlY3V0ZWQgb25seSBvbmNlIGR1cmluZyBzeXN0ZW0gYm9vdCBhbmQgY2Fubm90IGJlIHJlYWNoZWQgb3IgdHJpZ2dlcmVkIGZyb20gdXNlci1zcGFjZSB2aWEgc3lzY2FsbHMsIG1ha2luZyBpdCBpbXBvc3NpYmxlIHRvIGZ1enogd2l0aCBzeXprYWxsZXIuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyBlYXJseSBib290IGNvZGUgKGBfX2luaXRgIGZ1bmN0aW9ucykgdGhhdCBwYXJzZXMgdGhlIGBodWdldGxiX2NtYWAga2VybmVsIGNvbW1hbmQgbGluZSBwYXJhbWV0ZXIgYW5kIHJlc2VydmVzIG1lbW9yeS4gVGhpcyBjb2RlIGlzIGV4ZWN1dGVkIG9ubHkgb25jZSBkdXJpbmcgc3lzdGVtIGJvb3QgYW5kIGNhbm5vdCBiZSByZWFjaGVkIG9yIHRyaWdnZXJlZCBmcm9tIHVzZXItc3BhY2UgdmlhIHN5c2NhbGxzLCBtYWtpbmcgaXQgaW1wb3NzaWJsZSB0byBmdXp6IHdpdGggc3l6a2FsbGVyLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9XTsKCQkJaWYgKCFyYXdEYXRhIHx8IHJhd0RhdGEubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQlkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKTsKCQkJZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSk7CgkJCWRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKSB7CgkJCWNvbnN0IHN0YXRzID0gewoJCQkJbGxtOiB7IGNvdW50OiAwLCB0b2tlbnM6IDAsIGR1cmF0aW9uOiAwIH0sCgkJCQl0b29sOiB7IGNvdW50OiAwLCBkdXJhdGlvbjogMCB9CgkJCX07CgoJCQlyYXdEYXRhLmZvckVhY2gocyA9PiB7CgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsgCgkJCQlpZiAocy5UeXBlID09PSAibGxtIikgewoJCQkJCXN0YXRzLmxsbS5jb3VudCsrOwoJCQkJCXN0YXRzLmxsbS50b2tlbnMgKz0gKHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnMpOwoJCQkJCXN0YXRzLmxsbS5kdXJhdGlvbiArPSBkdXI7CgkJCQl9IGVsc2UgaWYgKHMuVHlwZSA9PT0gInRvb2wiKSB7CgkJCQkJc3RhdHMudG9vbC5jb3VudCsrOwoJCQkJCXN0YXRzLnRvb2wuZHVyYXRpb24gKz0gZHVyOwoJCQkJfQoJCQl9KTsKCgkJCWNvbnN0IGF2Z0xsbUR1ciA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLmR1cmF0aW9uIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnTGxtVG9rZW4gPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS50b2tlbnMgLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdUb29sRHVyID0gc3RhdHMudG9vbC5jb3VudCA+IDAgPyAoc3RhdHMudG9vbC5kdXJhdGlvbiAvIHN0YXRzLnRvb2wuY291bnQpLnRvRml4ZWQoMikgOiAwOwoKCQkJY29uc3QgbGxtU3VtYXJ5Q2VsbHMgPSBbc3RhdHMubGxtLmNvdW50LCBzdGF0cy5sbG0udG9rZW5zLCBhdmdMbG1Ub2tlbiwgc3RhdHMubGxtLmR1cmF0aW9uLCBhdmdMbG1EdXJdOwoJCQljb25zdCB0b29sU3VtbWFyeUNlbGxzID0gW3N0YXRzLnRvb2wuY291bnQsIHN0YXRzLnRvb2wuZHVyYXRpb24sIGF2Z1Rvb2xEdXJdOwoKCQkJY29uc3QgbGxtU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGxtX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQlsbG1TdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgbGxtVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQlsbG1TdW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJbGxtVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJbGxtU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQobGxtVHIpOwoKCQkJY29uc3QgdG9vbFN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rvb2xfc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgdG9vbFRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJdG9vbFN1bW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJdG9vbFRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZCh0b29sVHIpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBmaWx0ZXJlZFN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBbImxsbSIsICJ0b29sIl0uaW5jbHVkZXMoZC5UeXBlKSk7CgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ0R1cmF0aW9uJyk7CgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7IAoKCQkJZmlsdGVyZWRTdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJCgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsKCQkJCWxldCB0b29sdGlwID0gcy5OYW1lOwoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIgJiYgcy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoJCQkJZGF0YS5hZGRSb3coW2Ake3MuU2VxfWAsIGR1ciwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1RpbWUgQ29uc3VtcHRpb24gb2YgTExNL1Rvb2wgQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTS9Ub29sIFN0ZXBzJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ1NlY29uZHMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2R1cmF0aW9uX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBsbG1TdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gZC5UeXBlID09PSAibGxtIik7CgkJCWlmIChsbG1TdGVwcy5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwkJCQoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ1Rva2VucycpOwkJCQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICdzdHlsZSd9KTsJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7CQoKCQkJY29uc3QgYWdlbnRDb2xvcnMgPSB7fTsKCQkJY29uc3QgcGFsZXR0ZSA9IFsnIzQyODVGNCcsICcjREI0NDM3JywgJyNGNEI0MDAnLCAnIzBGOUQ1OCcsICcjQUI0N0JDJywgJyMwMEFDQzEnXTsKCQkJbGV0IGNvbG9ySWR4ID0gMDsKCQkJY29uc3QgYWdlbnRMTE1Db3VudHMgPSB7fTsKCQkJbGxtU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCWlmICghYWdlbnRDb2xvcnNbcy5OYW1lXSkgewoJCQkJCWFnZW50Q29sb3JzW3MuTmFtZV0gPSBwYWxldHRlW2NvbG9ySWR4ICUgcGFsZXR0ZS5sZW5ndGhdOwoJCQkJCWNvbG9ySWR4Kys7CgkJCQl9CgoJCQkJYWdlbnRMTE1Db3VudHNbcy5OYW1lXSA9IChhZ2VudExMTUNvdW50c1tzLk5hbWVdIHx8IDApICsgMTsKCQkJCWNvbnN0IGxhYmVsID0gYCR7cy5OYW1lfS0ke2FnZW50TExNQ291bnRzW3MuTmFtZV19YDsKCQkJCWNvbnN0IHRvdGFsVG9rZW5zID0gcy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2VuczsKCQkJCWNvbnN0IHN0eWxlID0gYGNvbG9yOiAke2FnZW50Q29sb3JzW3MuTmFtZV19YDsKCQkJCWxldCB0b29sdGlwID0gYFRvdGFsIFRva2VuczogJHt0b3RhbFRva2Vuc31cbihJbjogJHtzLklucHV0VG9rZW5zfSwgT3V0OiAke3MuT3V0cHV0VG9rZW5zfSwgVGhvdWdodHM6ICR7cy5PdXRwdXRUaG91Z2h0c1Rva2Vuc30pYDsKCQkJCWlmIChzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgoJCQkJZGF0YS5hZGRSb3coW2xhYmVsLCB0b3RhbFRva2Vucywgc3R5bGUsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUb2tlbiBDb25zdW1wdGlvbiBieSBMTE0gQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTSBDYWxsIFNlcXVlbmNlJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ0NvbnN1bWVkIFRva2VucycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9rZW5fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCQlsZXQgYWxsRXhwYW5kZWQgPSBmYWxzZTsKCQlmdW5jdGlvbiB0b2dnbGVBbGxEZXRhaWxzKCkgewoJCQlhbGxFeHBhbmRlZCA9ICFhbGxFeHBhbmRlZDsKCQkJZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnZGV0YWlscycpLmZvckVhY2goZCA9PiB7CgkJCQlpZiAoYWxsRXhwYW5kZWQpIGQuc2V0QXR0cmlidXRlKCdvcGVuJywgJycpOwoJCQkJZWxzZSBkLnJlbW92ZUF0dHJpYnV0ZSgnb3BlbicpOwoJCQl9KTsKCQl9Cgk8L3NjcmlwdD4KCgo8L2JvZHk+CjwvaHRtbD4K" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowhnmkq[0].run-triage(0) Phase: Succeeded StartedAt: 2026-06-26 12:24:17 +0000 UTC FinishedAt: 2026-06-26 12:36:46 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "AI determined the patch has no functional impact", "targets": null, "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzI2IDEyOjM2PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIGVhcmx5IGJvb3QgY29kZSAoYF9faW5pdGAgZnVuY3Rpb25zKSB0aGF0IHBhcnNlcyB0aGUgYGh1Z2V0bGJfY21hYCBrZXJuZWwgY29tbWFuZCBsaW5lIHBhcmFtZXRlciBhbmQgcmVzZXJ2ZXMgbWVtb3J5LiBUaGlzIGNvZGUgaXMgZXhlY3V0ZWQgb25seSBvbmNlIGR1cmluZyBzeXN0ZW0gYm9vdCBhbmQgY2Fubm90IGJlIHJlYWNoZWQgb3IgdHJpZ2dlcmVkIGZyb20gdXNlci1zcGFjZSB2aWEgc3lzY2FsbHMsIG1ha2luZyBpdCBpbXBvc3NpYmxlIHRvIGZ1enogd2l0aCBzeXprYWxsZXIuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzI2IDEyOjM2PC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5yZWFkLXBhdGNoLWRpZmY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtQYXRjaERpZmYmIzM0OzogJiMzNDtjb21taXQgMWU4YWUxMDJjNTFmYWI5ZDY5YTIxODc5MTczMjA5ZWVkY2Y5YWQ5YVxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBGcmkgSnVuIDI2IDEyOjM2OjI3IDIwMjYgJiM0MzswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vYWRtaW4tZ3VpZGUva2VybmVsLXBhcmFtZXRlcnMudHh0IGIvRG9jdW1lbnRhdGlvbi9hZG1pbi1ndWlkZS9rZXJuZWwtcGFyYW1ldGVycy50eHRcbmluZGV4IDVhMDViNDhkMTY4NGViLi44NDY5NDBjZTI4NThhOCAxMDA2NDRcbi0tLSBhL0RvY3VtZW50YXRpb24vYWRtaW4tZ3VpZGUva2VybmVsLXBhcmFtZXRlcnMudHh0XG4mIzQzOyYjNDM7JiM0MzsgYi9Eb2N1bWVudGF0aW9uL2FkbWluLWd1aWRlL2tlcm5lbC1wYXJhbWV0ZXJzLnR4dFxuQEAgLTIwNjQsOCAmIzQzOzIwNjQsMTEgQEAgS2VybmVsIHBhcmFtZXRlcnNcbiBcdGh1Z2V0bGJfY21hPVx0W0hXLENNQSxFQVJMWV0gVGhlIHNpemUgb2YgYSBDTUEgYXJlYSB1c2VkIGZvciBhbGxvY2F0aW9uXG4gXHRcdFx0b2YgZ2lnYW50aWMgaHVnZXBhZ2VzLiBPciB1c2luZyBub2RlIGZvcm1hdCwgdGhlIHNpemVcbiBcdFx0XHRvZiBhIENNQSBhcmVhIHBlciBub2RlIGNhbiBiZSBzcGVjaWZpZWQuXG4tXHRcdFx0Rm9ybWF0OiBubltLTUdUUEVdIG9yIChub2RlIGZvcm1hdClcbi1cdFx0XHRcdFx1MDAzY25vZGVcdTAwM2U6bm5bS01HVFBFXVssXHUwMDNjbm9kZVx1MDAzZTpubltLTUdUUEVdXVxuJiM0MztcdFx0XHRUaGUgc2l6ZSBjYW4gYmUgYW4gYWJzb2x1dGUgdmFsdWUgKGUuZy4sIDJHKSBvciBhXG4mIzQzO1x0XHRcdHBlcmNlbnRhZ2Ugb2YgdGhlIHRvdGFsIG1lbW9yeSBvciBub2RlIG1lbW9yeSAoZS5nLiwgMjAlKS5cbiYjNDM7XHRcdFx0Rm9ybWF0OiBubltLTUdUUEVdIG9yIG5uJSBvciAobm9kZSBmb3JtYXQpXG4mIzQzO1x0XHRcdFx0XHUwMDNjbm9kZVx1MDAzZTpubltLTUdUUEVdWyxcdTAwM2Nub2RlXHUwMDNlOm5uW0tNR1RQRV1dIG9yXG4mIzQzO1x0XHRcdFx0XHUwMDNjbm9kZVx1MDAzZTpubiVbLFx1MDAzY25vZGVcdTAwM2U6bm4lXVxuIFxuIFx0XHRcdFJlc2VydmUgYSBDTUEgYXJlYSBvZiBnaXZlbiBzaXplIGFuZCBhbGxvY2F0ZSBnaWdhbnRpY1xuIFx0XHRcdGh1Z2VwYWdlcyB1c2luZyB0aGUgQ01BIGFsbG9jYXRvci4gSWYgZW5hYmxlZCwgdGhlXG5kaWZmIC0tZ2l0IGEvbW0vaHVnZXRsYl9jbWEuYyBiL21tL2h1Z2V0bGJfY21hLmNcbmluZGV4IDc2OTNjY2VmZDBjNjRmLi5iNGY4YmJlNGM2MmRjNCAxMDA2NDRcbi0tLSBhL21tL2h1Z2V0bGJfY21hLmNcbiYjNDM7JiM0MzsmIzQzOyBiL21tL2h1Z2V0bGJfY21hLmNcbkBAIC05LDYgJiM0Mzs5LDggQEBcbiAjaW5jbHVkZSBcdTAwM2Nhc20vc2V0dXAuaFx1MDAzZVxuIFxuICNpbmNsdWRlIFx1MDAzY2xpbnV4L2h1Z2V0bGIuaFx1MDAzZVxuJiM0MzsjaW5jbHVkZSBcdTAwM2NsaW51eC9tZW1ibG9jay5oXHUwMDNlXG4mIzQzOyNpbmNsdWRlIFx1MDAzY2xpbnV4L21hdGguaFx1MDAzZVxuICNpbmNsdWRlIFwmIzM0O2ludGVybmFsLmhcJiMzNDtcbiAjaW5jbHVkZSBcJiMzNDtodWdldGxiX2NtYS5oXCYjMzQ7XG4gXG5AQCAtMTgsNiAmIzQzOzIwLDI4IEBAIHN0YXRpYyB1bnNpZ25lZCBsb25nIGh1Z2V0bGJfY21hX3NpemVfaW5fbm9kZVtNQVhfTlVNTk9ERVNdIF9faW5pdGRhdGE7XG4gc3RhdGljIGJvb2wgaHVnZXRsYl9jbWFfb25seSBfX3JvX2FmdGVyX2luaXQ7XG4gc3RhdGljIHVuc2lnbmVkIGxvbmcgaHVnZXRsYl9jbWFfc2l6ZSBfX3JvX2FmdGVyX2luaXQ7XG4gXG4mIzQzO3N0YXRpYyB1bnNpZ25lZCBpbnQgaHVnZXRsYl9jbWFfcGVyY2VudCBfX2luaXRkYXRhO1xuJiM0MztzdGF0aWMgdW5zaWduZWQgaW50IGh1Z2V0bGJfY21hX3BlcmNlbnRfaW5fbm9kZVtNQVhfTlVNTk9ERVNdIF9faW5pdGRhdGE7XG4mIzQzO1xuJiM0MzsjaWZkZWYgQ09ORklHX05VTUFcbiYjNDM7c3RhdGljIHVuc2lnbmVkIGxvbmcgX19pbml0IG1lbWJsb2NrX25vZGVfbWVtb3J5X3NpemUoaW50IG5pZClcbiYjNDM7e1xuJiM0MztcdHN0cnVjdCBtZW1ibG9ja19yZWdpb24gKnJlZztcbiYjNDM7XHR1bnNpZ25lZCBsb25nIHNpemUgPSAwO1xuJiM0MztcbiYjNDM7XHRmb3JfZWFjaF9tZW1fcmVnaW9uKHJlZykge1xuJiM0MztcdFx0aWYgKHJlZy1cdTAwM2VuaWQgPT0gbmlkKVxuJiM0MztcdFx0XHRzaXplICYjNDM7PSByZWctXHUwMDNlc2l6ZTtcbiYjNDM7XHR9XG4mIzQzO1x0cmV0dXJuIHNpemU7XG4mIzQzO31cbiYjNDM7I2Vsc2VcbiYjNDM7c3RhdGljIHVuc2lnbmVkIGxvbmcgX19pbml0IG1lbWJsb2NrX25vZGVfbWVtb3J5X3NpemUoaW50IG5pZClcbiYjNDM7e1xuJiM0MztcdHJldHVybiBtZW1ibG9ja19waHlzX21lbV9zaXplKCk7XG4mIzQzO31cbiYjNDM7I2VuZGlmXG4mIzQzO1xuIHZvaWQgaHVnZXRsYl9jbWFfZnJlZV9mcm96ZW5fZm9saW8oc3RydWN0IGZvbGlvICpmb2xpbylcbiB7XG4gXHRXQVJOX09OX09OQ0UoIWNtYV9yZWxlYXNlX2Zyb3plbihodWdldGxiX2NtYVtmb2xpb19uaWQoZm9saW8pXSxcbkBAIC0xMDAsMTQgJiM0MzsxMjQsMjcgQEAgc3RhdGljIGludCBfX2luaXQgY21kbGluZV9wYXJzZV9odWdldGxiX2NtYShjaGFyICpwKVxuIFx0XHRcdGJyZWFrO1xuIFxuIFx0XHRpZiAoc1tjb3VudF0gPT0gJiMzOTs6JiMzOTspIHtcbiYjNDM7XHRcdFx0Y2hhciAqbmV4dDtcbiYjNDM7XG4gXHRcdFx0aWYgKHRtcCBcdTAwM2U9IE1BWF9OVU1OT0RFUylcbiBcdFx0XHRcdGJyZWFrO1xuIFx0XHRcdG5pZCA9IGFycmF5X2luZGV4X25vc3BlYyh0bXAsIE1BWF9OVU1OT0RFUyk7XG4gXG4gXHRcdFx0cyAmIzQzOz0gY291bnQgJiM0MzsgMTtcbi1cdFx0XHR0bXAgPSBtZW1wYXJzZShzLCBcdTAwMjZzKTtcbi1cdFx0XHRodWdldGxiX2NtYV9zaXplX2luX25vZGVbbmlkXSA9IHRtcDtcbi1cdFx0XHRodWdldGxiX2NtYV9zaXplICYjNDM7PSB0bXA7XG4mIzQzO1x0XHRcdHRtcCA9IG1lbXBhcnNlKHMsIFx1MDAyNm5leHQpO1xuJiM0MztcdFx0XHRpZiAoKm5leHQgPT0gJiMzOTslJiMzOTspIHtcbiYjNDM7XHRcdFx0XHRpZiAodG1wIFx1MDAzZSAxMDApIHtcbiYjNDM7XHRcdFx0XHRcdHByX3dhcm4oXCYjMzQ7aHVnZXRsYl9jbWE6IGludmFsaWQgcGVyY2VudGFnZSAlbHUgZm9yIG5vZGUgJWRcXG5cJiMzNDssXG4mIzQzO1x0XHRcdFx0XHRcdHRtcCwgbmlkKTtcbiYjNDM7XHRcdFx0XHRcdGJyZWFrO1xuJiM0MztcdFx0XHRcdH1cbiYjNDM7XHRcdFx0XHRodWdldGxiX2NtYV9wZXJjZW50X2luX25vZGVbbmlkXSA9IHRtcDtcbiYjNDM7XHRcdFx0XHRzID0gbmV4dCAmIzQzOyAxO1xuJiM0MztcdFx0XHR9IGVsc2Uge1xuJiM0MztcdFx0XHRcdGh1Z2V0bGJfY21hX3NpemVfaW5fbm9kZVtuaWRdID0gdG1wO1xuJiM0MztcdFx0XHRcdGh1Z2V0bGJfY21hX3NpemUgJiM0Mzs9IHRtcDtcbiYjNDM7XHRcdFx0XHRzID0gbmV4dDtcbiYjNDM7XHRcdFx0fVxuIFxuIFx0XHRcdC8qXG4gXHRcdFx0ICogU2tpcCB0aGUgc2VwYXJhdG9yIGlmIGhhdmUgb25lLCBvdGhlcndpc2VcbkBAIC0xMTgsNyAmIzQzOzE1NSwxNyBAQCBzdGF0aWMgaW50IF9faW5pdCBjbWRsaW5lX3BhcnNlX2h1Z2V0bGJfY21hKGNoYXIgKnApXG4gXHRcdFx0ZWxzZVxuIFx0XHRcdFx0YnJlYWs7XG4gXHRcdH0gZWxzZSB7XG4tXHRcdFx0aHVnZXRsYl9jbWFfc2l6ZSA9IG1lbXBhcnNlKHAsIFx1MDAyNnApO1xuJiM0MztcdFx0XHRjaGFyICpuZXh0O1xuJiM0MztcbiYjNDM7XHRcdFx0dG1wID0gbWVtcGFyc2UocCwgXHUwMDI2bmV4dCk7XG4mIzQzO1x0XHRcdGlmICgqbmV4dCA9PSAmIzM5OyUmIzM5Oykge1xuJiM0MztcdFx0XHRcdGlmICh0bXAgXHUwMDNlIDEwMClcbiYjNDM7XHRcdFx0XHRcdHByX3dhcm4oXCYjMzQ7aHVnZXRsYl9jbWE6IGludmFsaWQgcGVyY2VudGFnZSAlbHVcXG5cJiMzNDssIHRtcCk7XG4mIzQzO1x0XHRcdFx0ZWxzZVxuJiM0MztcdFx0XHRcdFx0aHVnZXRsYl9jbWFfcGVyY2VudCA9IHRtcDtcbiYjNDM7XHRcdFx0fSBlbHNlIHtcbiYjNDM7XHRcdFx0XHRodWdldGxiX2NtYV9zaXplID0gdG1wO1xuJiM0MztcdFx0XHR9XG4gXHRcdFx0YnJlYWs7XG4gXHRcdH1cbiBcdH1cbkBAIC0xNDQsOCAmIzQzOzE5MSwzNCBAQCB2b2lkIF9faW5pdCBodWdldGxiX2NtYV9yZXNlcnZlKHZvaWQpXG4ge1xuIFx0dW5zaWduZWQgbG9uZyBzaXplLCByZXNlcnZlZCwgcGVyX25vZGUsIG9yZGVyO1xuIFx0Ym9vbCBub2RlX3NwZWNpZmljX2NtYV9hbGxvYyA9IGZhbHNlO1xuJiM0MztcdGJvb2wgaGFzX25vZGVfc3BlY2lmaWNfcGFyYW0gPSBmYWxzZTtcbiBcdGludCBuaWQ7XG4gXG4mIzQzO1x0Zm9yIChuaWQgPSAwOyBuaWQgXHUwMDNjIE1BWF9OVU1OT0RFUzsgbmlkJiM0MzsmIzQzOykge1xuJiM0MztcdFx0aWYgKGh1Z2V0bGJfY21hX3NpemVfaW5fbm9kZVtuaWRdIHx8IGh1Z2V0bGJfY21hX3BlcmNlbnRfaW5fbm9kZVtuaWRdKSB7XG4mIzQzO1x0XHRcdGhhc19ub2RlX3NwZWNpZmljX3BhcmFtID0gdHJ1ZTtcbiYjNDM7XHRcdFx0YnJlYWs7XG4mIzQzO1x0XHR9XG4mIzQzO1x0fVxuJiM0MztcbiYjNDM7XHRpZiAoaGFzX25vZGVfc3BlY2lmaWNfcGFyYW0pIHtcbiYjNDM7XHRcdGZvciAobmlkID0gMDsgbmlkIFx1MDAzYyBNQVhfTlVNTk9ERVM7IG5pZCYjNDM7JiM0MzspIHtcbiYjNDM7XHRcdFx0aWYgKGh1Z2V0bGJfY21hX3BlcmNlbnRfaW5fbm9kZVtuaWRdKSB7XG4mIzQzO1x0XHRcdFx0dW5zaWduZWQgbG9uZyBub2RlX2dmcF9tZW0gPSBtZW1ibG9ja19ub2RlX21lbW9yeV9zaXplKG5pZCk7XG4mIzQzO1x0XHRcdFx0dW5zaWduZWQgbG9uZyBzO1xuJiM0MztcbiYjNDM7XHRcdFx0XHRzID0gbXVsdF9mcmFjKG5vZGVfZ2ZwX21lbSxcbiYjNDM7XHRcdFx0XHRcdCAgICAgIGh1Z2V0bGJfY21hX3BlcmNlbnRfaW5fbm9kZVtuaWRdLFxuJiM0MztcdFx0XHRcdFx0ICAgICAgMTAwKTtcbiYjNDM7XG4mIzQzO1x0XHRcdFx0aHVnZXRsYl9jbWFfc2l6ZV9pbl9ub2RlW25pZF0gPSBzO1xuJiM0MztcdFx0XHRcdGh1Z2V0bGJfY21hX3NpemUgJiM0Mzs9IHM7XG4mIzQzO1x0XHRcdH1cbiYjNDM7XHRcdH1cbiYjNDM7XHR9IGVsc2UgaWYgKGh1Z2V0bGJfY21hX3BlcmNlbnQpIHtcbiYjNDM7XHRcdGh1Z2V0bGJfY21hX3NpemUgPSBtdWx0X2ZyYWMobWVtYmxvY2tfcGh5c19tZW1fc2l6ZSgpLCBodWdldGxiX2NtYV9wZXJjZW50LCAxMDApO1xuJiM0MztcdH1cbiYjNDM7XG4gXHRpZiAoIWh1Z2V0bGJfY21hX3NpemUpXG4gXHRcdHJldHVybjtcbiBcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yNiAxMjozNjwvdGQ+CgkJCTx0ZD5hZ2VudDwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogbnVsbCwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyBlYXJseSBib290IGNvZGUgKGBfX2luaXRgIGZ1bmN0aW9ucykgdGhhdCBwYXJzZXMgdGhlIGBodWdldGxiX2NtYWAga2VybmVsIGNvbW1hbmQgbGluZSBwYXJhbWV0ZXIgYW5kIHJlc2VydmVzIG1lbW9yeS4gVGhpcyBjb2RlIGlzIGV4ZWN1dGVkIG9ubHkgb25jZSBkdXJpbmcgc3lzdGVtIGJvb3QgYW5kIGNhbm5vdCBiZSByZWFjaGVkIG9yIHRyaWdnZXJlZCBmcm9tIHVzZXItc3BhY2UgdmlhIHN5c2NhbGxzLCBtYWtpbmcgaXQgaW1wb3NzaWJsZSB0byBmdXp6IHdpdGggc3l6a2FsbGVyLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkluc3RydWN0aW9uOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+WW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuCllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lCmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC4KCklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpbgp5b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHkKdXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy4KClJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6Ci0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy4KLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy4KLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuCi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLApldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuCgpJZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoCnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLgoKV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086CjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuCiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLgoyLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS4KICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLgogICBEbyBub3QgbGlzdCB0b28gZ2VuZXJpYyBjb25maWdzICh3ZSBhbHJlYWR5IGhhdmUgdGhlbSBlbmFibGVkKS4gT25seSBsaXN0IHRob3NlIHRoYXQKICAgc3BlY2lmaWNhbGx5IGNvdmVyIHRoZSBtb2RpZmllZCBjb2RlLiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3Mgb3V0cHV0IGFycmF5LAogICBhbmQgRE8gTk9UIGFkZCBhICYjMzk7Q09ORklHXyYjMzk7IHByZWZpeCAoZS5nLiwgcmV0dXJuICYjMzQ7TkVUX0lQVjQmIzM0OyBpbnN0ZWFkIG9mICYjMzQ7Q09ORklHX05FVF9JUFY0JiMzNDspLgpQcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy4KCgpVc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLgpJdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS4KSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlByb21wdDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOgpjb21taXQgMWU4YWUxMDJjNTFmYWI5ZDY5YTIxODc5MTczMjA5ZWVkY2Y5YWQ5YQpBdXRob3I6IHN5ei1jbHVzdGVyICZsdDt0cmlhZ2VAc3l6a2FsbGVyLmNvbSZndDsKRGF0ZTogICBGcmkgSnVuIDI2IDEyOjM2OjI3IDIwMjYgJiM0MzswMDAwCgogICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3CgpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9hZG1pbi1ndWlkZS9rZXJuZWwtcGFyYW1ldGVycy50eHQgYi9Eb2N1bWVudGF0aW9uL2FkbWluLWd1aWRlL2tlcm5lbC1wYXJhbWV0ZXJzLnR4dAppbmRleCA1YTA1YjQ4ZDE2ODRlYi4uODQ2OTQwY2UyODU4YTggMTAwNjQ0Ci0tLSBhL0RvY3VtZW50YXRpb24vYWRtaW4tZ3VpZGUva2VybmVsLXBhcmFtZXRlcnMudHh0CiYjNDM7JiM0MzsmIzQzOyBiL0RvY3VtZW50YXRpb24vYWRtaW4tZ3VpZGUva2VybmVsLXBhcmFtZXRlcnMudHh0CkBAIC0yMDY0LDggJiM0MzsyMDY0LDExIEBAIEtlcm5lbCBwYXJhbWV0ZXJzCiAJaHVnZXRsYl9jbWE9CVtIVyxDTUEsRUFSTFldIFRoZSBzaXplIG9mIGEgQ01BIGFyZWEgdXNlZCBmb3IgYWxsb2NhdGlvbgogCQkJb2YgZ2lnYW50aWMgaHVnZXBhZ2VzLiBPciB1c2luZyBub2RlIGZvcm1hdCwgdGhlIHNpemUKIAkJCW9mIGEgQ01BIGFyZWEgcGVyIG5vZGUgY2FuIGJlIHNwZWNpZmllZC4KLQkJCUZvcm1hdDogbm5bS01HVFBFXSBvciAobm9kZSBmb3JtYXQpCi0JCQkJJmx0O25vZGUmZ3Q7Om5uW0tNR1RQRV1bLCZsdDtub2RlJmd0OzpubltLTUdUUEVdXQomIzQzOwkJCVRoZSBzaXplIGNhbiBiZSBhbiBhYnNvbHV0ZSB2YWx1ZSAoZS5nLiwgMkcpIG9yIGEKJiM0MzsJCQlwZXJjZW50YWdlIG9mIHRoZSB0b3RhbCBtZW1vcnkgb3Igbm9kZSBtZW1vcnkgKGUuZy4sIDIwJSkuCiYjNDM7CQkJRm9ybWF0OiBubltLTUdUUEVdIG9yIG5uJSBvciAobm9kZSBmb3JtYXQpCiYjNDM7CQkJCSZsdDtub2RlJmd0OzpubltLTUdUUEVdWywmbHQ7bm9kZSZndDs6bm5bS01HVFBFXV0gb3IKJiM0MzsJCQkJJmx0O25vZGUmZ3Q7Om5uJVssJmx0O25vZGUmZ3Q7Om5uJV0KIAogCQkJUmVzZXJ2ZSBhIENNQSBhcmVhIG9mIGdpdmVuIHNpemUgYW5kIGFsbG9jYXRlIGdpZ2FudGljCiAJCQlodWdlcGFnZXMgdXNpbmcgdGhlIENNQSBhbGxvY2F0b3IuIElmIGVuYWJsZWQsIHRoZQpkaWZmIC0tZ2l0IGEvbW0vaHVnZXRsYl9jbWEuYyBiL21tL2h1Z2V0bGJfY21hLmMKaW5kZXggNzY5M2NjZWZkMGM2NGYuLmI0ZjhiYmU0YzYyZGM0IDEwMDY0NAotLS0gYS9tbS9odWdldGxiX2NtYS5jCiYjNDM7JiM0MzsmIzQzOyBiL21tL2h1Z2V0bGJfY21hLmMKQEAgLTksNiAmIzQzOzksOCBAQAogI2luY2x1ZGUgJmx0O2FzbS9zZXR1cC5oJmd0OwogCiAjaW5jbHVkZSAmbHQ7bGludXgvaHVnZXRsYi5oJmd0OwomIzQzOyNpbmNsdWRlICZsdDtsaW51eC9tZW1ibG9jay5oJmd0OwomIzQzOyNpbmNsdWRlICZsdDtsaW51eC9tYXRoLmgmZ3Q7CiAjaW5jbHVkZSAmIzM0O2ludGVybmFsLmgmIzM0OwogI2luY2x1ZGUgJiMzNDtodWdldGxiX2NtYS5oJiMzNDsKIApAQCAtMTgsNiAmIzQzOzIwLDI4IEBAIHN0YXRpYyB1bnNpZ25lZCBsb25nIGh1Z2V0bGJfY21hX3NpemVfaW5fbm9kZVtNQVhfTlVNTk9ERVNdIF9faW5pdGRhdGE7CiBzdGF0aWMgYm9vbCBodWdldGxiX2NtYV9vbmx5IF9fcm9fYWZ0ZXJfaW5pdDsKIHN0YXRpYyB1bnNpZ25lZCBsb25nIGh1Z2V0bGJfY21hX3NpemUgX19yb19hZnRlcl9pbml0OwogCiYjNDM7c3RhdGljIHVuc2lnbmVkIGludCBodWdldGxiX2NtYV9wZXJjZW50IF9faW5pdGRhdGE7CiYjNDM7c3RhdGljIHVuc2lnbmVkIGludCBodWdldGxiX2NtYV9wZXJjZW50X2luX25vZGVbTUFYX05VTU5PREVTXSBfX2luaXRkYXRhOwomIzQzOwomIzQzOyNpZmRlZiBDT05GSUdfTlVNQQomIzQzO3N0YXRpYyB1bnNpZ25lZCBsb25nIF9faW5pdCBtZW1ibG9ja19ub2RlX21lbW9yeV9zaXplKGludCBuaWQpCiYjNDM7ewomIzQzOwlzdHJ1Y3QgbWVtYmxvY2tfcmVnaW9uICpyZWc7CiYjNDM7CXVuc2lnbmVkIGxvbmcgc2l6ZSA9IDA7CiYjNDM7CiYjNDM7CWZvcl9lYWNoX21lbV9yZWdpb24ocmVnKSB7CiYjNDM7CQlpZiAocmVnLSZndDtuaWQgPT0gbmlkKQomIzQzOwkJCXNpemUgJiM0Mzs9IHJlZy0mZ3Q7c2l6ZTsKJiM0MzsJfQomIzQzOwlyZXR1cm4gc2l6ZTsKJiM0Mzt9CiYjNDM7I2Vsc2UKJiM0MztzdGF0aWMgdW5zaWduZWQgbG9uZyBfX2luaXQgbWVtYmxvY2tfbm9kZV9tZW1vcnlfc2l6ZShpbnQgbmlkKQomIzQzO3sKJiM0MzsJcmV0dXJuIG1lbWJsb2NrX3BoeXNfbWVtX3NpemUoKTsKJiM0Mzt9CiYjNDM7I2VuZGlmCiYjNDM7CiB2b2lkIGh1Z2V0bGJfY21hX2ZyZWVfZnJvemVuX2ZvbGlvKHN0cnVjdCBmb2xpbyAqZm9saW8pCiB7CiAJV0FSTl9PTl9PTkNFKCFjbWFfcmVsZWFzZV9mcm96ZW4oaHVnZXRsYl9jbWFbZm9saW9fbmlkKGZvbGlvKV0sCkBAIC0xMDAsMTQgJiM0MzsxMjQsMjcgQEAgc3RhdGljIGludCBfX2luaXQgY21kbGluZV9wYXJzZV9odWdldGxiX2NtYShjaGFyICpwKQogCQkJYnJlYWs7CiAKIAkJaWYgKHNbY291bnRdID09ICYjMzk7OiYjMzk7KSB7CiYjNDM7CQkJY2hhciAqbmV4dDsKJiM0MzsKIAkJCWlmICh0bXAgJmd0Oz0gTUFYX05VTU5PREVTKQogCQkJCWJyZWFrOwogCQkJbmlkID0gYXJyYXlfaW5kZXhfbm9zcGVjKHRtcCwgTUFYX05VTU5PREVTKTsKIAogCQkJcyAmIzQzOz0gY291bnQgJiM0MzsgMTsKLQkJCXRtcCA9IG1lbXBhcnNlKHMsICZhbXA7cyk7Ci0JCQlodWdldGxiX2NtYV9zaXplX2luX25vZGVbbmlkXSA9IHRtcDsKLQkJCWh1Z2V0bGJfY21hX3NpemUgJiM0Mzs9IHRtcDsKJiM0MzsJCQl0bXAgPSBtZW1wYXJzZShzLCAmYW1wO25leHQpOwomIzQzOwkJCWlmICgqbmV4dCA9PSAmIzM5OyUmIzM5OykgewomIzQzOwkJCQlpZiAodG1wICZndDsgMTAwKSB7CiYjNDM7CQkJCQlwcl93YXJuKCYjMzQ7aHVnZXRsYl9jbWE6IGludmFsaWQgcGVyY2VudGFnZSAlbHUgZm9yIG5vZGUgJWRcbiYjMzQ7LAomIzQzOwkJCQkJCXRtcCwgbmlkKTsKJiM0MzsJCQkJCWJyZWFrOwomIzQzOwkJCQl9CiYjNDM7CQkJCWh1Z2V0bGJfY21hX3BlcmNlbnRfaW5fbm9kZVtuaWRdID0gdG1wOwomIzQzOwkJCQlzID0gbmV4dCAmIzQzOyAxOwomIzQzOwkJCX0gZWxzZSB7CiYjNDM7CQkJCWh1Z2V0bGJfY21hX3NpemVfaW5fbm9kZVtuaWRdID0gdG1wOwomIzQzOwkJCQlodWdldGxiX2NtYV9zaXplICYjNDM7PSB0bXA7CiYjNDM7CQkJCXMgPSBuZXh0OwomIzQzOwkJCX0KIAogCQkJLyoKIAkJCSAqIFNraXAgdGhlIHNlcGFyYXRvciBpZiBoYXZlIG9uZSwgb3RoZXJ3aXNlCkBAIC0xMTgsNyAmIzQzOzE1NSwxNyBAQCBzdGF0aWMgaW50IF9faW5pdCBjbWRsaW5lX3BhcnNlX2h1Z2V0bGJfY21hKGNoYXIgKnApCiAJCQllbHNlCiAJCQkJYnJlYWs7CiAJCX0gZWxzZSB7Ci0JCQlodWdldGxiX2NtYV9zaXplID0gbWVtcGFyc2UocCwgJmFtcDtwKTsKJiM0MzsJCQljaGFyICpuZXh0OwomIzQzOwomIzQzOwkJCXRtcCA9IG1lbXBhcnNlKHAsICZhbXA7bmV4dCk7CiYjNDM7CQkJaWYgKCpuZXh0ID09ICYjMzk7JSYjMzk7KSB7CiYjNDM7CQkJCWlmICh0bXAgJmd0OyAxMDApCiYjNDM7CQkJCQlwcl93YXJuKCYjMzQ7aHVnZXRsYl9jbWE6IGludmFsaWQgcGVyY2VudGFnZSAlbHVcbiYjMzQ7LCB0bXApOwomIzQzOwkJCQllbHNlCiYjNDM7CQkJCQlodWdldGxiX2NtYV9wZXJjZW50ID0gdG1wOwomIzQzOwkJCX0gZWxzZSB7CiYjNDM7CQkJCWh1Z2V0bGJfY21hX3NpemUgPSB0bXA7CiYjNDM7CQkJfQogCQkJYnJlYWs7CiAJCX0KIAl9CkBAIC0xNDQsOCAmIzQzOzE5MSwzNCBAQCB2b2lkIF9faW5pdCBodWdldGxiX2NtYV9yZXNlcnZlKHZvaWQpCiB7CiAJdW5zaWduZWQgbG9uZyBzaXplLCByZXNlcnZlZCwgcGVyX25vZGUsIG9yZGVyOwogCWJvb2wgbm9kZV9zcGVjaWZpY19jbWFfYWxsb2MgPSBmYWxzZTsKJiM0MzsJYm9vbCBoYXNfbm9kZV9zcGVjaWZpY19wYXJhbSA9IGZhbHNlOwogCWludCBuaWQ7CiAKJiM0MzsJZm9yIChuaWQgPSAwOyBuaWQgJmx0OyBNQVhfTlVNTk9ERVM7IG5pZCYjNDM7JiM0MzspIHsKJiM0MzsJCWlmIChodWdldGxiX2NtYV9zaXplX2luX25vZGVbbmlkXSB8fCBodWdldGxiX2NtYV9wZXJjZW50X2luX25vZGVbbmlkXSkgewomIzQzOwkJCWhhc19ub2RlX3NwZWNpZmljX3BhcmFtID0gdHJ1ZTsKJiM0MzsJCQlicmVhazsKJiM0MzsJCX0KJiM0MzsJfQomIzQzOwomIzQzOwlpZiAoaGFzX25vZGVfc3BlY2lmaWNfcGFyYW0pIHsKJiM0MzsJCWZvciAobmlkID0gMDsgbmlkICZsdDsgTUFYX05VTU5PREVTOyBuaWQmIzQzOyYjNDM7KSB7CiYjNDM7CQkJaWYgKGh1Z2V0bGJfY21hX3BlcmNlbnRfaW5fbm9kZVtuaWRdKSB7CiYjNDM7CQkJCXVuc2lnbmVkIGxvbmcgbm9kZV9nZnBfbWVtID0gbWVtYmxvY2tfbm9kZV9tZW1vcnlfc2l6ZShuaWQpOwomIzQzOwkJCQl1bnNpZ25lZCBsb25nIHM7CiYjNDM7CiYjNDM7CQkJCXMgPSBtdWx0X2ZyYWMobm9kZV9nZnBfbWVtLAomIzQzOwkJCQkJICAgICAgaHVnZXRsYl9jbWFfcGVyY2VudF9pbl9ub2RlW25pZF0sCiYjNDM7CQkJCQkgICAgICAxMDApOwomIzQzOwomIzQzOwkJCQlodWdldGxiX2NtYV9zaXplX2luX25vZGVbbmlkXSA9IHM7CiYjNDM7CQkJCWh1Z2V0bGJfY21hX3NpemUgJiM0Mzs9IHM7CiYjNDM7CQkJfQomIzQzOwkJfQomIzQzOwl9IGVsc2UgaWYgKGh1Z2V0bGJfY21hX3BlcmNlbnQpIHsKJiM0MzsJCWh1Z2V0bGJfY21hX3NpemUgPSBtdWx0X2ZyYWMobWVtYmxvY2tfcGh5c19tZW1fc2l6ZSgpLCBodWdldGxiX2NtYV9wZXJjZW50LCAxMDApOwomIzQzOwl9CiYjNDM7CiAJaWYgKCFodWdldGxiX2NtYV9zaXplKQogCQlyZXR1cm47CiAKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjYgMTI6MzY8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzQwOQoJCQkJCQkJb3V0cHV0OiAyNQoJCQkJCQkJdGhvdWdodHM6IDI3NgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIGBodWdldGxiX2NtYWAgUGF0Y2ggZm9yIEZ1enppbmcgVnVsbmVyYWJpbGl0aWVzKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIHBhdGNoIHRoYXQgdHdlYWtzIGBtbS9odWdldGxiX2NtYS5jYC4gSXQgbG9va3MgbGlrZSBpdCYjMzk7cyBhZGRpbmcgdGhlIGFiaWxpdHkgdG8gc3BlY2lmeSB0aGUgYGh1Z2V0bGJfY21hYCBrZXJuZWwgcGFyYW1ldGVyIGFzIGEgcGVyY2VudGFnZSwgd2hpY2ggaXMgaW50ZXJlc3RpbmcuIFRoZSBjb2RlIG1vZGlmaWNhdGlvbnMgZm9jdXMgb24gYGNtZGxpbmVfcGFyc2VfaHVnZXRsYl9jbWFgIGFuZCBgaHVnZXRsYl9jbWFfcmVzZXJ2ZWAuIEkgbm90aWNlIHRoZXNlIGZ1bmN0aW9ucyBhcmUgbWFya2VkIGFzIGBfX2luaXRgIGFuZCBgX19pbml0ZGF0YWAsIHdoaWNoIGltbWVkaWF0ZWx5IHNldHMgb2ZmIGEgcmVkIGZsYWcgaW4gbXkgbWluZCByZWdhcmRpbmcgZnV6emluZy4KCk15IHByaW1hcnkgY29uY2Vybiwgb2YgY291cnNlLCBpcyB3aGV0aGVyIFN5emthbGxlciwgbXkgZ28tdG8gZnV6emluZyB0b29sLCBjYW4gYWN0dWFsbHkgcmVhY2ggdGhpcyBjb2RlLiBTaW5jZSB0aGVzZSBmdW5jdGlvbnMgYXJlIGludm9sdmVkIGluIHBhcnNpbmcgdGhlIGtlcm5lbCBjb21tYW5kIGxpbmUgcGFyYW1ldGVycyBhbmQgcmVzZXJ2aW5nIG1lbW9yeSBkdXJpbmcgZWFybHkgYm9vdCwgSSBjYW4gaW1tZWRpYXRlbHkgc2VlIGEgcG90ZW50aWFsIGlzc3VlLiBTeXprYWxsZXIgcHJpbWFyaWx5IG9wZXJhdGVzIGJ5IHNlbmRpbmcgc3lzY2FsbHMgZnJvbSB1c2VyLXNwYWNlLCB3aGljaCBpc24mIzM5O3QgZ29pbmcgdG8gaW50ZXJhY3Qgd2l0aCB0aGUgZWFybHkgYm9vdCBwcm9jZXNzLiBUaHVzLCBpdCBpcyB1bmxpa2VseSB0byBkaXJlY3RseSB0cmlnZ2VyIGFueSBwb3RlbnRpYWwgaXNzdWVzIHRocm91Z2ggdGhpcyBjb2RlIHBhdGguCgpCdXQsIEkgbmVlZCB0byBiZSB0aG9yb3VnaC4gSSYjMzk7bSB3b25kZXJpbmcgaWYgdGhlcmUmIzM5O3MgYW55IG90aGVyIHdheSB0aGlzIGNvZGUgY291bGQgYmUgcmVhY2hlZCBmcm9tIHVzZXItc3BhY2UuIEkgbmVlZCB0byBrbm93IGlmIHRoZSBmdW5jdGlvbiBpcyByZWdpc3RlcmVkIHNvbWV3aGVyZSBvdGhlciB0aGFuIHRocm91Z2ggYGVhcmx5X3BhcmFtYC4gSSYjMzk7bGwgY29uZmlybSB0aGF0IGBjbWRsaW5lX3BhcnNlX2h1Z2V0bGJfY21hYCBpcyBpbmRlZWQgcmVnaXN0ZXJlZCB1c2luZyBgZWFybHlfcGFyYW1gIGJhc2VkIG9uIGl0cyBuYW1pbmcgY29udmVudGlvbi4gTGV0IG1lIGp1c3QgZG91YmxlLWNoZWNrIHRoYXQgaW4gYG1tL2h1Z2V0bGJfY21hLmNgIHRvIGJlIGNlcnRhaW4uCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NC8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjYgMTI6MzY8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y21kbGluZV9wYXJzZV9odWdldGxiX2NtYSYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDttbS9odWdldGxiX2NtYS5jPTg0PWh1Z2V0bGJfY21hX2FsbG9jX2Jvb3RtZW0oc3RydWN0IGhzdGF0ZSAqaCwgaW50ICpuaWQsIGJvb2wgbm9kZV9leGFjdClcbi0tXG5tbS9odWdldGxiX2NtYS5jLTExNS1cbm1tL2h1Z2V0bGJfY21hLmM6MTE2OnN0YXRpYyBpbnQgX19pbml0IGNtZGxpbmVfcGFyc2VfaHVnZXRsYl9jbWEoY2hhciAqcClcbm1tL2h1Z2V0bGJfY21hLmMtMTE3LXtcbi0tXG5tbS9odWdldGxiX2NtYS5jLTE3NS1cbm1tL2h1Z2V0bGJfY21hLmM6MTc2OmVhcmx5X3BhcmFtKFwmIzM0O2h1Z2V0bGJfY21hXCYjMzQ7LCBjbWRsaW5lX3BhcnNlX2h1Z2V0bGJfY21hKTtcbm1tL2h1Z2V0bGJfY21hLmMtMTc3LVxubW0vaHVnZXRsYl9jbWEuYzoxNzg6c3RhdGljIGludCBfX2luaXQgY21kbGluZV9wYXJzZV9odWdldGxiX2NtYV9vbmx5KGNoYXIgKnApXG5tbS9odWdldGxiX2NtYS5jLTE3OS17XG4tLVxubW0vaHVnZXRsYl9jbWEuYy0xODItXG5tbS9odWdldGxiX2NtYS5jOjE4MzplYXJseV9wYXJhbShcJiMzNDtodWdldGxiX2NtYV9vbmx5XCYjMzQ7LCBjbWRsaW5lX3BhcnNlX2h1Z2V0bGJfY21hX29ubHkpO1xubW0vaHVnZXRsYl9jbWEuYy0xODQtXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NS8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjYgMTI6MzY8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNDM3NgoJCQkJCQkJb3V0cHV0OiA5NQoJCQkJCQkJdGhvdWdodHM6IDE0OQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBBc3Nlc3NtZW50IG9mIHRoZSBQYXRjaCYjMzk7cyBGdXp6YWJpbGl0eSoqCgpPa2F5LCBzbyB3ZSYjMzk7cmUgbG9va2luZyBhdCBgZWFybHlfcGFyYW1gLCB3aGljaCBpbW1lZGlhdGVseSBmbGFncyB0aGlzIGFzIGEgcG90ZW50aWFsIG5vbi1zdGFydGVyLiBUaGlzIGlzICpzdHJpY3RseSogZWFybHkgYm9vdCBjb2RlLCBhbmQgdGhhdCYjMzk7cyBhIGtleSBwb2ludC4gU3l6a2FsbGVyLCBteSBnby10byBmdXp6aW5nIHRvb2wsIGlzbiYjMzk7dCBkZXNpZ25lZCB0byB0b3VjaCB0aGF0LiBJdCBjYW4mIzM5O3QgZnV6eiBlYXJseSBib290IGNvZGUgb3IsIGNydWNpYWxseSwga2VybmVsIGNvbW1hbmQgbGluZSBwYXJhbWV0ZXJzLiBTaW5jZSB0aGlzIHBhdGNoIHJldm9sdmVzIGFyb3VuZCBgaHVnZXRsYl9jbWFgIHdoaWNoIGlzIGEga2VybmVsIGNvbW1hbmQtbGluZSBwYXJhbWV0ZXIsIGl0JiMzOTtzIHByZXR0eSBjbGVhciBpdCYjMzk7cyBub3QgYSBnb29kIGZpdCBmb3IgZnV6emluZy4KCkxldCBtZSBqdXN0IGRvdWJsZS1jaGVjaywgdGhvdWdoLiBBbHdheXMgZ29vZCB0byBiZSB0aG9yb3VnaC4gSXMgdGhlcmUgKmFueSogb3RoZXIgcG9zc2libGUgcGF0aCB0byB0cmlnZ2VyIHRoaXMgY29kZT8gTm9wZS4gSXQmIzM5O3MgYWxsIGBfX2luaXRgIGFuZCBgX19pbml0ZGF0YWAsIG1ha2luZyBpdCBvbmx5IGV4ZWN1dGFibGUgZHVyaW5nIGluaXRpYWwgYm9vdHVwLiBUaGUgcGF0Y2gmIzM5O3MgaW1wYWN0IGlzIGluIG1vZGlmeWluZyB0aGlzIGluaXRpYWwgcGFyc2luZyBhbmQgbWVtb3J5IHJlc2VydmF0aW9uIGJlaGF2aW9yIHdoaWNoIG9jY3VycyBvbmx5IG9uY2UuIFVzZXItc3BhY2UgaW50ZXJhY3Rpb24gdmlhIHN5c2NhbGxzIGlzIG91dCBvZiB0aGUgcXVlc3Rpb24uCgpUaGVyZWZvcmUsIGdpdmVuIHRoZXNlIGNvbnN0cmFpbnRzLCB0aGUgdmFsdWUgb2YgdGhpcyBwYXRjaCBpcyBkZWZpbml0ZWx5IG5vdCB3b3J0aCBmdXp6aW5nLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzI2IDEyOjM2PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+c2V0LXJlc3VsdHM8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogW10sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgZWFybHkgYm9vdCBjb2RlIChgX19pbml0YCBmdW5jdGlvbnMpIHRoYXQgcGFyc2VzIHRoZSBgaHVnZXRsYl9jbWFgIGtlcm5lbCBjb21tYW5kIGxpbmUgcGFyYW1ldGVyIGFuZCByZXNlcnZlcyBtZW1vcnkuIFRoaXMgY29kZSBpcyBleGVjdXRlZCBvbmx5IG9uY2UgZHVyaW5nIHN5c3RlbSBib290IGFuZCBjYW5ub3QgYmUgcmVhY2hlZCBvciB0cmlnZ2VyZWQgZnJvbSB1c2VyLXNwYWNlIHZpYSBzeXNjYWxscywgbWFraW5nIGl0IGltcG9zc2libGUgdG8gZnV6eiB3aXRoIHN5emthbGxlci4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIGVhcmx5IGJvb3QgY29kZSAoYF9faW5pdGAgZnVuY3Rpb25zKSB0aGF0IHBhcnNlcyB0aGUgYGh1Z2V0bGJfY21hYCBrZXJuZWwgY29tbWFuZCBsaW5lIHBhcmFtZXRlciBhbmQgcmVzZXJ2ZXMgbWVtb3J5LiBUaGlzIGNvZGUgaXMgZXhlY3V0ZWQgb25seSBvbmNlIGR1cmluZyBzeXN0ZW0gYm9vdCBhbmQgY2Fubm90IGJlIHJlYWNoZWQgb3IgdHJpZ2dlcmVkIGZyb20gdXNlci1zcGFjZSB2aWEgc3lzY2FsbHMsIG1ha2luZyBpdCBpbXBvc3NpYmxlIHRvIGZ1enogd2l0aCBzeXprYWxsZXIuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTwvdGJvZHk+Cgk8L3RhYmxlPgoKCTxkaXYgaWQ9ImxsbV9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+TExNIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgVG9rZW5zPC90aD4KCQkJCQk8dGg+QXZnIFRva2VuczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJsbG1fc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJ0b29sX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5Ub29sIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9InRvb2xfc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJkdXJhdGlvbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+Cgk8ZGl2IGlkPSJ0b2tlbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+CgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9qc2FwaSI+PC9zY3JpcHQ+Cgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CgkJZ29vZ2xlLmxvYWQoInZpc3VhbGl6YXRpb24iLCAiMSIsIHtwYWNrYWdlczpbImNvcmVjaGFydCJdfSk7CgkJZ29vZ2xlLnNldE9uTG9hZENhbGxiYWNrKGRyYXdDaGFydHMpOwoKCQlmdW5jdGlvbiBkcmF3Q2hhcnRzKCkgewoJCQljb25zdCByYXdEYXRhID0gW3siU3RhcnRlZCI6IjIwMjYtMDYtMjZUMTI6MzY6MjkuMTgyNTczODVaIiwiU2VxIjowLCJOZXN0aW5nIjowLCJUeXBlIjoiZmxvdyIsIk5hbWUiOiJwYXRjaC10cmlhZ2UiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNTkxMjMxMzAxNywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgZWFybHkgYm9vdCBjb2RlIChgX19pbml0YCBmdW5jdGlvbnMpIHRoYXQgcGFyc2VzIHRoZSBgaHVnZXRsYl9jbWFgIGtlcm5lbCBjb21tYW5kIGxpbmUgcGFyYW1ldGVyIGFuZCByZXNlcnZlcyBtZW1vcnkuIFRoaXMgY29kZSBpcyBleGVjdXRlZCBvbmx5IG9uY2UgZHVyaW5nIHN5c3RlbSBib290IGFuZCBjYW5ub3QgYmUgcmVhY2hlZCBvciB0cmlnZ2VyZWQgZnJvbSB1c2VyLXNwYWNlIHZpYSBzeXNjYWxscywgbWFraW5nIGl0IGltcG9zc2libGUgdG8gZnV6eiB3aXRoIHN5emthbGxlci5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTI2VDEyOjM2OjI5LjE4MjU3OTU0WiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo2NjU2MzM5NTUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIlBhdGNoRGlmZlwiOiBcImNvbW1pdCAxZThhZTEwMmM1MWZhYjlkNjlhMjE4NzkxNzMyMDllZWRjZjlhZDlhXFxuQXV0aG9yOiBzeXotY2x1c3RlciBcXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cXHUwMDNlXFxuRGF0ZTogICBGcmkgSnVuIDI2IDEyOjM2OjI3IDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vYWRtaW4tZ3VpZGUva2VybmVsLXBhcmFtZXRlcnMudHh0IGIvRG9jdW1lbnRhdGlvbi9hZG1pbi1ndWlkZS9rZXJuZWwtcGFyYW1ldGVycy50eHRcXG5pbmRleCA1YTA1YjQ4ZDE2ODRlYi4uODQ2OTQwY2UyODU4YTggMTAwNjQ0XFxuLS0tIGEvRG9jdW1lbnRhdGlvbi9hZG1pbi1ndWlkZS9rZXJuZWwtcGFyYW1ldGVycy50eHRcXG4rKysgYi9Eb2N1bWVudGF0aW9uL2FkbWluLWd1aWRlL2tlcm5lbC1wYXJhbWV0ZXJzLnR4dFxcbkBAIC0yMDY0LDggKzIwNjQsMTEgQEAgS2VybmVsIHBhcmFtZXRlcnNcXG4gXFx0aHVnZXRsYl9jbWE9XFx0W0hXLENNQSxFQVJMWV0gVGhlIHNpemUgb2YgYSBDTUEgYXJlYSB1c2VkIGZvciBhbGxvY2F0aW9uXFxuIFxcdFxcdFxcdG9mIGdpZ2FudGljIGh1Z2VwYWdlcy4gT3IgdXNpbmcgbm9kZSBmb3JtYXQsIHRoZSBzaXplXFxuIFxcdFxcdFxcdG9mIGEgQ01BIGFyZWEgcGVyIG5vZGUgY2FuIGJlIHNwZWNpZmllZC5cXG4tXFx0XFx0XFx0Rm9ybWF0OiBubltLTUdUUEVdIG9yIChub2RlIGZvcm1hdClcXG4tXFx0XFx0XFx0XFx0XFx1MDAzY25vZGVcXHUwMDNlOm5uW0tNR1RQRV1bLFxcdTAwM2Nub2RlXFx1MDAzZTpubltLTUdUUEVdXVxcbitcXHRcXHRcXHRUaGUgc2l6ZSBjYW4gYmUgYW4gYWJzb2x1dGUgdmFsdWUgKGUuZy4sIDJHKSBvciBhXFxuK1xcdFxcdFxcdHBlcmNlbnRhZ2Ugb2YgdGhlIHRvdGFsIG1lbW9yeSBvciBub2RlIG1lbW9yeSAoZS5nLiwgMjAlKS5cXG4rXFx0XFx0XFx0Rm9ybWF0OiBubltLTUdUUEVdIG9yIG5uJSBvciAobm9kZSBmb3JtYXQpXFxuK1xcdFxcdFxcdFxcdFxcdTAwM2Nub2RlXFx1MDAzZTpubltLTUdUUEVdWyxcXHUwMDNjbm9kZVxcdTAwM2U6bm5bS01HVFBFXV0gb3JcXG4rXFx0XFx0XFx0XFx0XFx1MDAzY25vZGVcXHUwMDNlOm5uJVssXFx1MDAzY25vZGVcXHUwMDNlOm5uJV1cXG4gXFxuIFxcdFxcdFxcdFJlc2VydmUgYSBDTUEgYXJlYSBvZiBnaXZlbiBzaXplIGFuZCBhbGxvY2F0ZSBnaWdhbnRpY1xcbiBcXHRcXHRcXHRodWdlcGFnZXMgdXNpbmcgdGhlIENNQSBhbGxvY2F0b3IuIElmIGVuYWJsZWQsIHRoZVxcbmRpZmYgLS1naXQgYS9tbS9odWdldGxiX2NtYS5jIGIvbW0vaHVnZXRsYl9jbWEuY1xcbmluZGV4IDc2OTNjY2VmZDBjNjRmLi5iNGY4YmJlNGM2MmRjNCAxMDA2NDRcXG4tLS0gYS9tbS9odWdldGxiX2NtYS5jXFxuKysrIGIvbW0vaHVnZXRsYl9jbWEuY1xcbkBAIC05LDYgKzksOCBAQFxcbiAjaW5jbHVkZSBcXHUwMDNjYXNtL3NldHVwLmhcXHUwMDNlXFxuIFxcbiAjaW5jbHVkZSBcXHUwMDNjbGludXgvaHVnZXRsYi5oXFx1MDAzZVxcbisjaW5jbHVkZSBcXHUwMDNjbGludXgvbWVtYmxvY2suaFxcdTAwM2VcXG4rI2luY2x1ZGUgXFx1MDAzY2xpbnV4L21hdGguaFxcdTAwM2VcXG4gI2luY2x1ZGUgXFxcImludGVybmFsLmhcXFwiXFxuICNpbmNsdWRlIFxcXCJodWdldGxiX2NtYS5oXFxcIlxcbiBcXG5AQCAtMTgsNiArMjAsMjggQEAgc3RhdGljIHVuc2lnbmVkIGxvbmcgaHVnZXRsYl9jbWFfc2l6ZV9pbl9ub2RlW01BWF9OVU1OT0RFU10gX19pbml0ZGF0YTtcXG4gc3RhdGljIGJvb2wgaHVnZXRsYl9jbWFfb25seSBfX3JvX2FmdGVyX2luaXQ7XFxuIHN0YXRpYyB1bnNpZ25lZCBsb25nIGh1Z2V0bGJfY21hX3NpemUgX19yb19hZnRlcl9pbml0O1xcbiBcXG4rc3RhdGljIHVuc2lnbmVkIGludCBodWdldGxiX2NtYV9wZXJjZW50IF9faW5pdGRhdGE7XFxuK3N0YXRpYyB1bnNpZ25lZCBpbnQgaHVnZXRsYl9jbWFfcGVyY2VudF9pbl9ub2RlW01BWF9OVU1OT0RFU10gX19pbml0ZGF0YTtcXG4rXFxuKyNpZmRlZiBDT05GSUdfTlVNQVxcbitzdGF0aWMgdW5zaWduZWQgbG9uZyBfX2luaXQgbWVtYmxvY2tfbm9kZV9tZW1vcnlfc2l6ZShpbnQgbmlkKVxcbit7XFxuK1xcdHN0cnVjdCBtZW1ibG9ja19yZWdpb24gKnJlZztcXG4rXFx0dW5zaWduZWQgbG9uZyBzaXplID0gMDtcXG4rXFxuK1xcdGZvcl9lYWNoX21lbV9yZWdpb24ocmVnKSB7XFxuK1xcdFxcdGlmIChyZWctXFx1MDAzZW5pZCA9PSBuaWQpXFxuK1xcdFxcdFxcdHNpemUgKz0gcmVnLVxcdTAwM2VzaXplO1xcbitcXHR9XFxuK1xcdHJldHVybiBzaXplO1xcbit9XFxuKyNlbHNlXFxuK3N0YXRpYyB1bnNpZ25lZCBsb25nIF9faW5pdCBtZW1ibG9ja19ub2RlX21lbW9yeV9zaXplKGludCBuaWQpXFxuK3tcXG4rXFx0cmV0dXJuIG1lbWJsb2NrX3BoeXNfbWVtX3NpemUoKTtcXG4rfVxcbisjZW5kaWZcXG4rXFxuIHZvaWQgaHVnZXRsYl9jbWFfZnJlZV9mcm96ZW5fZm9saW8oc3RydWN0IGZvbGlvICpmb2xpbylcXG4ge1xcbiBcXHRXQVJOX09OX09OQ0UoIWNtYV9yZWxlYXNlX2Zyb3plbihodWdldGxiX2NtYVtmb2xpb19uaWQoZm9saW8pXSxcXG5AQCAtMTAwLDE0ICsxMjQsMjcgQEAgc3RhdGljIGludCBfX2luaXQgY21kbGluZV9wYXJzZV9odWdldGxiX2NtYShjaGFyICpwKVxcbiBcXHRcXHRcXHRicmVhaztcXG4gXFxuIFxcdFxcdGlmIChzW2NvdW50XSA9PSAnOicpIHtcXG4rXFx0XFx0XFx0Y2hhciAqbmV4dDtcXG4rXFxuIFxcdFxcdFxcdGlmICh0bXAgXFx1MDAzZT0gTUFYX05VTU5PREVTKVxcbiBcXHRcXHRcXHRcXHRicmVhaztcXG4gXFx0XFx0XFx0bmlkID0gYXJyYXlfaW5kZXhfbm9zcGVjKHRtcCwgTUFYX05VTU5PREVTKTtcXG4gXFxuIFxcdFxcdFxcdHMgKz0gY291bnQgKyAxO1xcbi1cXHRcXHRcXHR0bXAgPSBtZW1wYXJzZShzLCBcXHUwMDI2cyk7XFxuLVxcdFxcdFxcdGh1Z2V0bGJfY21hX3NpemVfaW5fbm9kZVtuaWRdID0gdG1wO1xcbi1cXHRcXHRcXHRodWdldGxiX2NtYV9zaXplICs9IHRtcDtcXG4rXFx0XFx0XFx0dG1wID0gbWVtcGFyc2UocywgXFx1MDAyNm5leHQpO1xcbitcXHRcXHRcXHRpZiAoKm5leHQgPT0gJyUnKSB7XFxuK1xcdFxcdFxcdFxcdGlmICh0bXAgXFx1MDAzZSAxMDApIHtcXG4rXFx0XFx0XFx0XFx0XFx0cHJfd2FybihcXFwiaHVnZXRsYl9jbWE6IGludmFsaWQgcGVyY2VudGFnZSAlbHUgZm9yIG5vZGUgJWRcXFxcblxcXCIsXFxuK1xcdFxcdFxcdFxcdFxcdFxcdHRtcCwgbmlkKTtcXG4rXFx0XFx0XFx0XFx0XFx0YnJlYWs7XFxuK1xcdFxcdFxcdFxcdH1cXG4rXFx0XFx0XFx0XFx0aHVnZXRsYl9jbWFfcGVyY2VudF9pbl9ub2RlW25pZF0gPSB0bXA7XFxuK1xcdFxcdFxcdFxcdHMgPSBuZXh0ICsgMTtcXG4rXFx0XFx0XFx0fSBlbHNlIHtcXG4rXFx0XFx0XFx0XFx0aHVnZXRsYl9jbWFfc2l6ZV9pbl9ub2RlW25pZF0gPSB0bXA7XFxuK1xcdFxcdFxcdFxcdGh1Z2V0bGJfY21hX3NpemUgKz0gdG1wO1xcbitcXHRcXHRcXHRcXHRzID0gbmV4dDtcXG4rXFx0XFx0XFx0fVxcbiBcXG4gXFx0XFx0XFx0LypcXG4gXFx0XFx0XFx0ICogU2tpcCB0aGUgc2VwYXJhdG9yIGlmIGhhdmUgb25lLCBvdGhlcndpc2VcXG5AQCAtMTE4LDcgKzE1NSwxNyBAQCBzdGF0aWMgaW50IF9faW5pdCBjbWRsaW5lX3BhcnNlX2h1Z2V0bGJfY21hKGNoYXIgKnApXFxuIFxcdFxcdFxcdGVsc2VcXG4gXFx0XFx0XFx0XFx0YnJlYWs7XFxuIFxcdFxcdH0gZWxzZSB7XFxuLVxcdFxcdFxcdGh1Z2V0bGJfY21hX3NpemUgPSBtZW1wYXJzZShwLCBcXHUwMDI2cCk7XFxuK1xcdFxcdFxcdGNoYXIgKm5leHQ7XFxuK1xcbitcXHRcXHRcXHR0bXAgPSBtZW1wYXJzZShwLCBcXHUwMDI2bmV4dCk7XFxuK1xcdFxcdFxcdGlmICgqbmV4dCA9PSAnJScpIHtcXG4rXFx0XFx0XFx0XFx0aWYgKHRtcCBcXHUwMDNlIDEwMClcXG4rXFx0XFx0XFx0XFx0XFx0cHJfd2FybihcXFwiaHVnZXRsYl9jbWE6IGludmFsaWQgcGVyY2VudGFnZSAlbHVcXFxcblxcXCIsIHRtcCk7XFxuK1xcdFxcdFxcdFxcdGVsc2VcXG4rXFx0XFx0XFx0XFx0XFx0aHVnZXRsYl9jbWFfcGVyY2VudCA9IHRtcDtcXG4rXFx0XFx0XFx0fSBlbHNlIHtcXG4rXFx0XFx0XFx0XFx0aHVnZXRsYl9jbWFfc2l6ZSA9IHRtcDtcXG4rXFx0XFx0XFx0fVxcbiBcXHRcXHRcXHRicmVhaztcXG4gXFx0XFx0fVxcbiBcXHR9XFxuQEAgLTE0NCw4ICsxOTEsMzQgQEAgdm9pZCBfX2luaXQgaHVnZXRsYl9jbWFfcmVzZXJ2ZSh2b2lkKVxcbiB7XFxuIFxcdHVuc2lnbmVkIGxvbmcgc2l6ZSwgcmVzZXJ2ZWQsIHBlcl9ub2RlLCBvcmRlcjtcXG4gXFx0Ym9vbCBub2RlX3NwZWNpZmljX2NtYV9hbGxvYyA9IGZhbHNlO1xcbitcXHRib29sIGhhc19ub2RlX3NwZWNpZmljX3BhcmFtID0gZmFsc2U7XFxuIFxcdGludCBuaWQ7XFxuIFxcbitcXHRmb3IgKG5pZCA9IDA7IG5pZCBcXHUwMDNjIE1BWF9OVU1OT0RFUzsgbmlkKyspIHtcXG4rXFx0XFx0aWYgKGh1Z2V0bGJfY21hX3NpemVfaW5fbm9kZVtuaWRdIHx8IGh1Z2V0bGJfY21hX3BlcmNlbnRfaW5fbm9kZVtuaWRdKSB7XFxuK1xcdFxcdFxcdGhhc19ub2RlX3NwZWNpZmljX3BhcmFtID0gdHJ1ZTtcXG4rXFx0XFx0XFx0YnJlYWs7XFxuK1xcdFxcdH1cXG4rXFx0fVxcbitcXG4rXFx0aWYgKGhhc19ub2RlX3NwZWNpZmljX3BhcmFtKSB7XFxuK1xcdFxcdGZvciAobmlkID0gMDsgbmlkIFxcdTAwM2MgTUFYX05VTU5PREVTOyBuaWQrKykge1xcbitcXHRcXHRcXHRpZiAoaHVnZXRsYl9jbWFfcGVyY2VudF9pbl9ub2RlW25pZF0pIHtcXG4rXFx0XFx0XFx0XFx0dW5zaWduZWQgbG9uZyBub2RlX2dmcF9tZW0gPSBtZW1ibG9ja19ub2RlX21lbW9yeV9zaXplKG5pZCk7XFxuK1xcdFxcdFxcdFxcdHVuc2lnbmVkIGxvbmcgcztcXG4rXFxuK1xcdFxcdFxcdFxcdHMgPSBtdWx0X2ZyYWMobm9kZV9nZnBfbWVtLFxcbitcXHRcXHRcXHRcXHRcXHQgICAgICBodWdldGxiX2NtYV9wZXJjZW50X2luX25vZGVbbmlkXSxcXG4rXFx0XFx0XFx0XFx0XFx0ICAgICAgMTAwKTtcXG4rXFxuK1xcdFxcdFxcdFxcdGh1Z2V0bGJfY21hX3NpemVfaW5fbm9kZVtuaWRdID0gcztcXG4rXFx0XFx0XFx0XFx0aHVnZXRsYl9jbWFfc2l6ZSArPSBzO1xcbitcXHRcXHRcXHR9XFxuK1xcdFxcdH1cXG4rXFx0fSBlbHNlIGlmIChodWdldGxiX2NtYV9wZXJjZW50KSB7XFxuK1xcdFxcdGh1Z2V0bGJfY21hX3NpemUgPSBtdWx0X2ZyYWMobWVtYmxvY2tfcGh5c19tZW1fc2l6ZSgpLCBodWdldGxiX2NtYV9wZXJjZW50LCAxMDApO1xcbitcXHR9XFxuK1xcbiBcXHRpZiAoIWh1Z2V0bGJfY21hX3NpemUpXFxuIFxcdFxcdHJldHVybjtcXG4gXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTI2VDEyOjM2OjI5Ljg0OTU0OTUxNVoiLCJTZXEiOjIsIk5lc3RpbmciOjEsIlR5cGUiOiJhZ2VudCIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MTUyNDUzMjUzMzIsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIGVhcmx5IGJvb3QgY29kZSAoYF9faW5pdGAgZnVuY3Rpb25zKSB0aGF0IHBhcnNlcyB0aGUgYGh1Z2V0bGJfY21hYCBrZXJuZWwgY29tbWFuZCBsaW5lIHBhcmFtZXRlciBhbmQgcmVzZXJ2ZXMgbWVtb3J5LiBUaGlzIGNvZGUgaXMgZXhlY3V0ZWQgb25seSBvbmNlIGR1cmluZyBzeXN0ZW0gYm9vdCBhbmQgY2Fubm90IGJlIHJlYWNoZWQgb3IgdHJpZ2dlcmVkIGZyb20gdXNlci1zcGFjZSB2aWEgc3lzY2FsbHMsIG1ha2luZyBpdCBpbXBvc3NpYmxlIHRvIGZ1enogd2l0aCBzeXprYWxsZXIuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiJZb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci5cbllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lXG5pZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXG5cbklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpblxueW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5XG51c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLlxuXG5SZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOlxuLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLlxuLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy5cbi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LlxuLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsXG5ldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuXG5cbklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2hcbnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLlxuXG5XaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzpcbjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuXG4gICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy5cbjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLlxuICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLlxuICAgRG8gbm90IGxpc3QgdG9vIGdlbmVyaWMgY29uZmlncyAod2UgYWxyZWFkeSBoYXZlIHRoZW0gZW5hYmxlZCkuIE9ubHkgbGlzdCB0aG9zZSB0aGF0XG4gICBzcGVjaWZpY2FsbHkgY292ZXIgdGhlIG1vZGlmaWVkIGNvZGUuIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncyBvdXRwdXQgYXJyYXksXG4gICBhbmQgRE8gTk9UIGFkZCBhICdDT05GSUdfJyBwcmVmaXggKGUuZy4sIHJldHVybiBcIk5FVF9JUFY0XCIgaW5zdGVhZCBvZiBcIkNPTkZJR19ORVRfSVBWNFwiKS5cblByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLlxuXG5cblVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuXG5JdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS5cbklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC5cbiIsIlByb21wdCI6IkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOlxuY29tbWl0IDFlOGFlMTAyYzUxZmFiOWQ2OWEyMTg3OTE3MzIwOWVlZGNmOWFkOWFcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgRnJpIEp1biAyNiAxMjozNjoyNyAyMDI2ICswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vYWRtaW4tZ3VpZGUva2VybmVsLXBhcmFtZXRlcnMudHh0IGIvRG9jdW1lbnRhdGlvbi9hZG1pbi1ndWlkZS9rZXJuZWwtcGFyYW1ldGVycy50eHRcbmluZGV4IDVhMDViNDhkMTY4NGViLi44NDY5NDBjZTI4NThhOCAxMDA2NDRcbi0tLSBhL0RvY3VtZW50YXRpb24vYWRtaW4tZ3VpZGUva2VybmVsLXBhcmFtZXRlcnMudHh0XG4rKysgYi9Eb2N1bWVudGF0aW9uL2FkbWluLWd1aWRlL2tlcm5lbC1wYXJhbWV0ZXJzLnR4dFxuQEAgLTIwNjQsOCArMjA2NCwxMSBAQCBLZXJuZWwgcGFyYW1ldGVyc1xuIFx0aHVnZXRsYl9jbWE9XHRbSFcsQ01BLEVBUkxZXSBUaGUgc2l6ZSBvZiBhIENNQSBhcmVhIHVzZWQgZm9yIGFsbG9jYXRpb25cbiBcdFx0XHRvZiBnaWdhbnRpYyBodWdlcGFnZXMuIE9yIHVzaW5nIG5vZGUgZm9ybWF0LCB0aGUgc2l6ZVxuIFx0XHRcdG9mIGEgQ01BIGFyZWEgcGVyIG5vZGUgY2FuIGJlIHNwZWNpZmllZC5cbi1cdFx0XHRGb3JtYXQ6IG5uW0tNR1RQRV0gb3IgKG5vZGUgZm9ybWF0KVxuLVx0XHRcdFx0XHUwMDNjbm9kZVx1MDAzZTpubltLTUdUUEVdWyxcdTAwM2Nub2RlXHUwMDNlOm5uW0tNR1RQRV1dXG4rXHRcdFx0VGhlIHNpemUgY2FuIGJlIGFuIGFic29sdXRlIHZhbHVlIChlLmcuLCAyRykgb3IgYVxuK1x0XHRcdHBlcmNlbnRhZ2Ugb2YgdGhlIHRvdGFsIG1lbW9yeSBvciBub2RlIG1lbW9yeSAoZS5nLiwgMjAlKS5cbitcdFx0XHRGb3JtYXQ6IG5uW0tNR1RQRV0gb3Igbm4lIG9yIChub2RlIGZvcm1hdClcbitcdFx0XHRcdFx1MDAzY25vZGVcdTAwM2U6bm5bS01HVFBFXVssXHUwMDNjbm9kZVx1MDAzZTpubltLTUdUUEVdXSBvclxuK1x0XHRcdFx0XHUwMDNjbm9kZVx1MDAzZTpubiVbLFx1MDAzY25vZGVcdTAwM2U6bm4lXVxuIFxuIFx0XHRcdFJlc2VydmUgYSBDTUEgYXJlYSBvZiBnaXZlbiBzaXplIGFuZCBhbGxvY2F0ZSBnaWdhbnRpY1xuIFx0XHRcdGh1Z2VwYWdlcyB1c2luZyB0aGUgQ01BIGFsbG9jYXRvci4gSWYgZW5hYmxlZCwgdGhlXG5kaWZmIC0tZ2l0IGEvbW0vaHVnZXRsYl9jbWEuYyBiL21tL2h1Z2V0bGJfY21hLmNcbmluZGV4IDc2OTNjY2VmZDBjNjRmLi5iNGY4YmJlNGM2MmRjNCAxMDA2NDRcbi0tLSBhL21tL2h1Z2V0bGJfY21hLmNcbisrKyBiL21tL2h1Z2V0bGJfY21hLmNcbkBAIC05LDYgKzksOCBAQFxuICNpbmNsdWRlIFx1MDAzY2FzbS9zZXR1cC5oXHUwMDNlXG4gXG4gI2luY2x1ZGUgXHUwMDNjbGludXgvaHVnZXRsYi5oXHUwMDNlXG4rI2luY2x1ZGUgXHUwMDNjbGludXgvbWVtYmxvY2suaFx1MDAzZVxuKyNpbmNsdWRlIFx1MDAzY2xpbnV4L21hdGguaFx1MDAzZVxuICNpbmNsdWRlIFwiaW50ZXJuYWwuaFwiXG4gI2luY2x1ZGUgXCJodWdldGxiX2NtYS5oXCJcbiBcbkBAIC0xOCw2ICsyMCwyOCBAQCBzdGF0aWMgdW5zaWduZWQgbG9uZyBodWdldGxiX2NtYV9zaXplX2luX25vZGVbTUFYX05VTU5PREVTXSBfX2luaXRkYXRhO1xuIHN0YXRpYyBib29sIGh1Z2V0bGJfY21hX29ubHkgX19yb19hZnRlcl9pbml0O1xuIHN0YXRpYyB1bnNpZ25lZCBsb25nIGh1Z2V0bGJfY21hX3NpemUgX19yb19hZnRlcl9pbml0O1xuIFxuK3N0YXRpYyB1bnNpZ25lZCBpbnQgaHVnZXRsYl9jbWFfcGVyY2VudCBfX2luaXRkYXRhO1xuK3N0YXRpYyB1bnNpZ25lZCBpbnQgaHVnZXRsYl9jbWFfcGVyY2VudF9pbl9ub2RlW01BWF9OVU1OT0RFU10gX19pbml0ZGF0YTtcbitcbisjaWZkZWYgQ09ORklHX05VTUFcbitzdGF0aWMgdW5zaWduZWQgbG9uZyBfX2luaXQgbWVtYmxvY2tfbm9kZV9tZW1vcnlfc2l6ZShpbnQgbmlkKVxuK3tcbitcdHN0cnVjdCBtZW1ibG9ja19yZWdpb24gKnJlZztcbitcdHVuc2lnbmVkIGxvbmcgc2l6ZSA9IDA7XG4rXG4rXHRmb3JfZWFjaF9tZW1fcmVnaW9uKHJlZykge1xuK1x0XHRpZiAocmVnLVx1MDAzZW5pZCA9PSBuaWQpXG4rXHRcdFx0c2l6ZSArPSByZWctXHUwMDNlc2l6ZTtcbitcdH1cbitcdHJldHVybiBzaXplO1xuK31cbisjZWxzZVxuK3N0YXRpYyB1bnNpZ25lZCBsb25nIF9faW5pdCBtZW1ibG9ja19ub2RlX21lbW9yeV9zaXplKGludCBuaWQpXG4re1xuK1x0cmV0dXJuIG1lbWJsb2NrX3BoeXNfbWVtX3NpemUoKTtcbit9XG4rI2VuZGlmXG4rXG4gdm9pZCBodWdldGxiX2NtYV9mcmVlX2Zyb3plbl9mb2xpbyhzdHJ1Y3QgZm9saW8gKmZvbGlvKVxuIHtcbiBcdFdBUk5fT05fT05DRSghY21hX3JlbGVhc2VfZnJvemVuKGh1Z2V0bGJfY21hW2ZvbGlvX25pZChmb2xpbyldLFxuQEAgLTEwMCwxNCArMTI0LDI3IEBAIHN0YXRpYyBpbnQgX19pbml0IGNtZGxpbmVfcGFyc2VfaHVnZXRsYl9jbWEoY2hhciAqcClcbiBcdFx0XHRicmVhaztcbiBcbiBcdFx0aWYgKHNbY291bnRdID09ICc6Jykge1xuK1x0XHRcdGNoYXIgKm5leHQ7XG4rXG4gXHRcdFx0aWYgKHRtcCBcdTAwM2U9IE1BWF9OVU1OT0RFUylcbiBcdFx0XHRcdGJyZWFrO1xuIFx0XHRcdG5pZCA9IGFycmF5X2luZGV4X25vc3BlYyh0bXAsIE1BWF9OVU1OT0RFUyk7XG4gXG4gXHRcdFx0cyArPSBjb3VudCArIDE7XG4tXHRcdFx0dG1wID0gbWVtcGFyc2UocywgXHUwMDI2cyk7XG4tXHRcdFx0aHVnZXRsYl9jbWFfc2l6ZV9pbl9ub2RlW25pZF0gPSB0bXA7XG4tXHRcdFx0aHVnZXRsYl9jbWFfc2l6ZSArPSB0bXA7XG4rXHRcdFx0dG1wID0gbWVtcGFyc2UocywgXHUwMDI2bmV4dCk7XG4rXHRcdFx0aWYgKCpuZXh0ID09ICclJykge1xuK1x0XHRcdFx0aWYgKHRtcCBcdTAwM2UgMTAwKSB7XG4rXHRcdFx0XHRcdHByX3dhcm4oXCJodWdldGxiX2NtYTogaW52YWxpZCBwZXJjZW50YWdlICVsdSBmb3Igbm9kZSAlZFxcblwiLFxuK1x0XHRcdFx0XHRcdHRtcCwgbmlkKTtcbitcdFx0XHRcdFx0YnJlYWs7XG4rXHRcdFx0XHR9XG4rXHRcdFx0XHRodWdldGxiX2NtYV9wZXJjZW50X2luX25vZGVbbmlkXSA9IHRtcDtcbitcdFx0XHRcdHMgPSBuZXh0ICsgMTtcbitcdFx0XHR9IGVsc2Uge1xuK1x0XHRcdFx0aHVnZXRsYl9jbWFfc2l6ZV9pbl9ub2RlW25pZF0gPSB0bXA7XG4rXHRcdFx0XHRodWdldGxiX2NtYV9zaXplICs9IHRtcDtcbitcdFx0XHRcdHMgPSBuZXh0O1xuK1x0XHRcdH1cbiBcbiBcdFx0XHQvKlxuIFx0XHRcdCAqIFNraXAgdGhlIHNlcGFyYXRvciBpZiBoYXZlIG9uZSwgb3RoZXJ3aXNlXG5AQCAtMTE4LDcgKzE1NSwxNyBAQCBzdGF0aWMgaW50IF9faW5pdCBjbWRsaW5lX3BhcnNlX2h1Z2V0bGJfY21hKGNoYXIgKnApXG4gXHRcdFx0ZWxzZVxuIFx0XHRcdFx0YnJlYWs7XG4gXHRcdH0gZWxzZSB7XG4tXHRcdFx0aHVnZXRsYl9jbWFfc2l6ZSA9IG1lbXBhcnNlKHAsIFx1MDAyNnApO1xuK1x0XHRcdGNoYXIgKm5leHQ7XG4rXG4rXHRcdFx0dG1wID0gbWVtcGFyc2UocCwgXHUwMDI2bmV4dCk7XG4rXHRcdFx0aWYgKCpuZXh0ID09ICclJykge1xuK1x0XHRcdFx0aWYgKHRtcCBcdTAwM2UgMTAwKVxuK1x0XHRcdFx0XHRwcl93YXJuKFwiaHVnZXRsYl9jbWE6IGludmFsaWQgcGVyY2VudGFnZSAlbHVcXG5cIiwgdG1wKTtcbitcdFx0XHRcdGVsc2VcbitcdFx0XHRcdFx0aHVnZXRsYl9jbWFfcGVyY2VudCA9IHRtcDtcbitcdFx0XHR9IGVsc2Uge1xuK1x0XHRcdFx0aHVnZXRsYl9jbWFfc2l6ZSA9IHRtcDtcbitcdFx0XHR9XG4gXHRcdFx0YnJlYWs7XG4gXHRcdH1cbiBcdH1cbkBAIC0xNDQsOCArMTkxLDM0IEBAIHZvaWQgX19pbml0IGh1Z2V0bGJfY21hX3Jlc2VydmUodm9pZClcbiB7XG4gXHR1bnNpZ25lZCBsb25nIHNpemUsIHJlc2VydmVkLCBwZXJfbm9kZSwgb3JkZXI7XG4gXHRib29sIG5vZGVfc3BlY2lmaWNfY21hX2FsbG9jID0gZmFsc2U7XG4rXHRib29sIGhhc19ub2RlX3NwZWNpZmljX3BhcmFtID0gZmFsc2U7XG4gXHRpbnQgbmlkO1xuIFxuK1x0Zm9yIChuaWQgPSAwOyBuaWQgXHUwMDNjIE1BWF9OVU1OT0RFUzsgbmlkKyspIHtcbitcdFx0aWYgKGh1Z2V0bGJfY21hX3NpemVfaW5fbm9kZVtuaWRdIHx8IGh1Z2V0bGJfY21hX3BlcmNlbnRfaW5fbm9kZVtuaWRdKSB7XG4rXHRcdFx0aGFzX25vZGVfc3BlY2lmaWNfcGFyYW0gPSB0cnVlO1xuK1x0XHRcdGJyZWFrO1xuK1x0XHR9XG4rXHR9XG4rXG4rXHRpZiAoaGFzX25vZGVfc3BlY2lmaWNfcGFyYW0pIHtcbitcdFx0Zm9yIChuaWQgPSAwOyBuaWQgXHUwMDNjIE1BWF9OVU1OT0RFUzsgbmlkKyspIHtcbitcdFx0XHRpZiAoaHVnZXRsYl9jbWFfcGVyY2VudF9pbl9ub2RlW25pZF0pIHtcbitcdFx0XHRcdHVuc2lnbmVkIGxvbmcgbm9kZV9nZnBfbWVtID0gbWVtYmxvY2tfbm9kZV9tZW1vcnlfc2l6ZShuaWQpO1xuK1x0XHRcdFx0dW5zaWduZWQgbG9uZyBzO1xuK1xuK1x0XHRcdFx0cyA9IG11bHRfZnJhYyhub2RlX2dmcF9tZW0sXG4rXHRcdFx0XHRcdCAgICAgIGh1Z2V0bGJfY21hX3BlcmNlbnRfaW5fbm9kZVtuaWRdLFxuK1x0XHRcdFx0XHQgICAgICAxMDApO1xuK1xuK1x0XHRcdFx0aHVnZXRsYl9jbWFfc2l6ZV9pbl9ub2RlW25pZF0gPSBzO1xuK1x0XHRcdFx0aHVnZXRsYl9jbWFfc2l6ZSArPSBzO1xuK1x0XHRcdH1cbitcdFx0fVxuK1x0fSBlbHNlIGlmIChodWdldGxiX2NtYV9wZXJjZW50KSB7XG4rXHRcdGh1Z2V0bGJfY21hX3NpemUgPSBtdWx0X2ZyYWMobWVtYmxvY2tfcGh5c19tZW1fc2l6ZSgpLCBodWdldGxiX2NtYV9wZXJjZW50LCAxMDApO1xuK1x0fVxuK1xuIFx0aWYgKCFodWdldGxiX2NtYV9zaXplKVxuIFx0XHRyZXR1cm47XG4gXG4iLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNi0yNlQxMjozNjoyOS44NDk1NTIwNzVaIiwiU2VxIjozLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo1ODk5MjY3Njg0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgYGh1Z2V0bGJfY21hYCBQYXRjaCBmb3IgRnV6emluZyBWdWxuZXJhYmlsaXRpZXMqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIHBhdGNoIHRoYXQgdHdlYWtzIGBtbS9odWdldGxiX2NtYS5jYC4gSXQgbG9va3MgbGlrZSBpdCdzIGFkZGluZyB0aGUgYWJpbGl0eSB0byBzcGVjaWZ5IHRoZSBgaHVnZXRsYl9jbWFgIGtlcm5lbCBwYXJhbWV0ZXIgYXMgYSBwZXJjZW50YWdlLCB3aGljaCBpcyBpbnRlcmVzdGluZy4gVGhlIGNvZGUgbW9kaWZpY2F0aW9ucyBmb2N1cyBvbiBgY21kbGluZV9wYXJzZV9odWdldGxiX2NtYWAgYW5kIGBodWdldGxiX2NtYV9yZXNlcnZlYC4gSSBub3RpY2UgdGhlc2UgZnVuY3Rpb25zIGFyZSBtYXJrZWQgYXMgYF9faW5pdGAgYW5kIGBfX2luaXRkYXRhYCwgd2hpY2ggaW1tZWRpYXRlbHkgc2V0cyBvZmYgYSByZWQgZmxhZyBpbiBteSBtaW5kIHJlZ2FyZGluZyBmdXp6aW5nLlxuXG5NeSBwcmltYXJ5IGNvbmNlcm4sIG9mIGNvdXJzZSwgaXMgd2hldGhlciBTeXprYWxsZXIsIG15IGdvLXRvIGZ1enppbmcgdG9vbCwgY2FuIGFjdHVhbGx5IHJlYWNoIHRoaXMgY29kZS4gU2luY2UgdGhlc2UgZnVuY3Rpb25zIGFyZSBpbnZvbHZlZCBpbiBwYXJzaW5nIHRoZSBrZXJuZWwgY29tbWFuZCBsaW5lIHBhcmFtZXRlcnMgYW5kIHJlc2VydmluZyBtZW1vcnkgZHVyaW5nIGVhcmx5IGJvb3QsIEkgY2FuIGltbWVkaWF0ZWx5IHNlZSBhIHBvdGVudGlhbCBpc3N1ZS4gU3l6a2FsbGVyIHByaW1hcmlseSBvcGVyYXRlcyBieSBzZW5kaW5nIHN5c2NhbGxzIGZyb20gdXNlci1zcGFjZSwgd2hpY2ggaXNuJ3QgZ29pbmcgdG8gaW50ZXJhY3Qgd2l0aCB0aGUgZWFybHkgYm9vdCBwcm9jZXNzLiBUaHVzLCBpdCBpcyB1bmxpa2VseSB0byBkaXJlY3RseSB0cmlnZ2VyIGFueSBwb3RlbnRpYWwgaXNzdWVzIHRocm91Z2ggdGhpcyBjb2RlIHBhdGguXG5cbkJ1dCwgSSBuZWVkIHRvIGJlIHRob3JvdWdoLiBJJ20gd29uZGVyaW5nIGlmIHRoZXJlJ3MgYW55IG90aGVyIHdheSB0aGlzIGNvZGUgY291bGQgYmUgcmVhY2hlZCBmcm9tIHVzZXItc3BhY2UuIEkgbmVlZCB0byBrbm93IGlmIHRoZSBmdW5jdGlvbiBpcyByZWdpc3RlcmVkIHNvbWV3aGVyZSBvdGhlciB0aGFuIHRocm91Z2ggYGVhcmx5X3BhcmFtYC4gSSdsbCBjb25maXJtIHRoYXQgYGNtZGxpbmVfcGFyc2VfaHVnZXRsYl9jbWFgIGlzIGluZGVlZCByZWdpc3RlcmVkIHVzaW5nIGBlYXJseV9wYXJhbWAgYmFzZWQgb24gaXRzIG5hbWluZyBjb252ZW50aW9uLiBMZXQgbWUganVzdCBkb3VibGUtY2hlY2sgdGhhdCBpbiBgbW0vaHVnZXRsYl9jbWEuY2AgdG8gYmUgY2VydGFpbi5cblxuXG4iLCJJbnB1dFRva2VucyI6MzQwOSwiT3V0cHV0VG9rZW5zIjoyNSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjI3NiwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTI2VDEyOjM2OjM1Ljc0ODgyNDIzOVoiLCJTZXEiOjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0NTAzOTE1MjYxLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNtZGxpbmVfcGFyc2VfaHVnZXRsYl9jbWFcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwibW0vaHVnZXRsYl9jbWEuYz04ND1odWdldGxiX2NtYV9hbGxvY19ib290bWVtKHN0cnVjdCBoc3RhdGUgKmgsIGludCAqbmlkLCBib29sIG5vZGVfZXhhY3QpXFxuLS1cXG5tbS9odWdldGxiX2NtYS5jLTExNS1cXG5tbS9odWdldGxiX2NtYS5jOjExNjpzdGF0aWMgaW50IF9faW5pdCBjbWRsaW5lX3BhcnNlX2h1Z2V0bGJfY21hKGNoYXIgKnApXFxubW0vaHVnZXRsYl9jbWEuYy0xMTcte1xcbi0tXFxubW0vaHVnZXRsYl9jbWEuYy0xNzUtXFxubW0vaHVnZXRsYl9jbWEuYzoxNzY6ZWFybHlfcGFyYW0oXFxcImh1Z2V0bGJfY21hXFxcIiwgY21kbGluZV9wYXJzZV9odWdldGxiX2NtYSk7XFxubW0vaHVnZXRsYl9jbWEuYy0xNzctXFxubW0vaHVnZXRsYl9jbWEuYzoxNzg6c3RhdGljIGludCBfX2luaXQgY21kbGluZV9wYXJzZV9odWdldGxiX2NtYV9vbmx5KGNoYXIgKnApXFxubW0vaHVnZXRsYl9jbWEuYy0xNzkte1xcbi0tXFxubW0vaHVnZXRsYl9jbWEuYy0xODItXFxubW0vaHVnZXRsYl9jbWEuYzoxODM6ZWFybHlfcGFyYW0oXFxcImh1Z2V0bGJfY21hX29ubHlcXFwiLCBjbWRsaW5lX3BhcnNlX2h1Z2V0bGJfY21hX29ubHkpO1xcbm1tL2h1Z2V0bGJfY21hLmMtMTg0LVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNi0yNlQxMjozNjo0MC4yNTI3NDY4NloiLCJTZXEiOjUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQ4NDIwODA4OTcsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqTXkgQXNzZXNzbWVudCBvZiB0aGUgUGF0Y2gncyBGdXp6YWJpbGl0eSoqXG5cbk9rYXksIHNvIHdlJ3JlIGxvb2tpbmcgYXQgYGVhcmx5X3BhcmFtYCwgd2hpY2ggaW1tZWRpYXRlbHkgZmxhZ3MgdGhpcyBhcyBhIHBvdGVudGlhbCBub24tc3RhcnRlci4gVGhpcyBpcyAqc3RyaWN0bHkqIGVhcmx5IGJvb3QgY29kZSwgYW5kIHRoYXQncyBhIGtleSBwb2ludC4gU3l6a2FsbGVyLCBteSBnby10byBmdXp6aW5nIHRvb2wsIGlzbid0IGRlc2lnbmVkIHRvIHRvdWNoIHRoYXQuIEl0IGNhbid0IGZ1enogZWFybHkgYm9vdCBjb2RlIG9yLCBjcnVjaWFsbHksIGtlcm5lbCBjb21tYW5kIGxpbmUgcGFyYW1ldGVycy4gU2luY2UgdGhpcyBwYXRjaCByZXZvbHZlcyBhcm91bmQgYGh1Z2V0bGJfY21hYCB3aGljaCBpcyBhIGtlcm5lbCBjb21tYW5kLWxpbmUgcGFyYW1ldGVyLCBpdCdzIHByZXR0eSBjbGVhciBpdCdzIG5vdCBhIGdvb2QgZml0IGZvciBmdXp6aW5nLlxuXG5MZXQgbWUganVzdCBkb3VibGUtY2hlY2ssIHRob3VnaC4gQWx3YXlzIGdvb2QgdG8gYmUgdGhvcm91Z2guIElzIHRoZXJlICphbnkqIG90aGVyIHBvc3NpYmxlIHBhdGggdG8gdHJpZ2dlciB0aGlzIGNvZGU/IE5vcGUuIEl0J3MgYWxsIGBfX2luaXRgIGFuZCBgX19pbml0ZGF0YWAsIG1ha2luZyBpdCBvbmx5IGV4ZWN1dGFibGUgZHVyaW5nIGluaXRpYWwgYm9vdHVwLiBUaGUgcGF0Y2gncyBpbXBhY3QgaXMgaW4gbW9kaWZ5aW5nIHRoaXMgaW5pdGlhbCBwYXJzaW5nIGFuZCBtZW1vcnkgcmVzZXJ2YXRpb24gYmVoYXZpb3Igd2hpY2ggb2NjdXJzIG9ubHkgb25jZS4gVXNlci1zcGFjZSBpbnRlcmFjdGlvbiB2aWEgc3lzY2FsbHMgaXMgb3V0IG9mIHRoZSBxdWVzdGlvbi5cblxuVGhlcmVmb3JlLCBnaXZlbiB0aGVzZSBjb25zdHJhaW50cywgdGhlIHZhbHVlIG9mIHRoaXMgcGF0Y2ggaXMgZGVmaW5pdGVseSBub3Qgd29ydGggZnV6emluZy5cblxuXG4iLCJJbnB1dFRva2VucyI6NDM3NiwiT3V0cHV0VG9rZW5zIjo5NSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE0OSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNi0yNlQxMjozNjo0NS4wOTQ4MzA0MjdaIiwiU2VxIjo2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQxNjQwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIGVhcmx5IGJvb3QgY29kZSAoYF9faW5pdGAgZnVuY3Rpb25zKSB0aGF0IHBhcnNlcyB0aGUgYGh1Z2V0bGJfY21hYCBrZXJuZWwgY29tbWFuZCBsaW5lIHBhcmFtZXRlciBhbmQgcmVzZXJ2ZXMgbWVtb3J5LiBUaGlzIGNvZGUgaXMgZXhlY3V0ZWQgb25seSBvbmNlIGR1cmluZyBzeXN0ZW0gYm9vdCBhbmQgY2Fubm90IGJlIHJlYWNoZWQgb3IgdHJpZ2dlcmVkIGZyb20gdXNlci1zcGFjZSB2aWEgc3lzY2FsbHMsIG1ha2luZyBpdCBpbXBvc3NpYmxlIHRvIGZ1enogd2l0aCBzeXprYWxsZXIuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyBlYXJseSBib290IGNvZGUgKGBfX2luaXRgIGZ1bmN0aW9ucykgdGhhdCBwYXJzZXMgdGhlIGBodWdldGxiX2NtYWAga2VybmVsIGNvbW1hbmQgbGluZSBwYXJhbWV0ZXIgYW5kIHJlc2VydmVzIG1lbW9yeS4gVGhpcyBjb2RlIGlzIGV4ZWN1dGVkIG9ubHkgb25jZSBkdXJpbmcgc3lzdGVtIGJvb3QgYW5kIGNhbm5vdCBiZSByZWFjaGVkIG9yIHRyaWdnZXJlZCBmcm9tIHVzZXItc3BhY2UgdmlhIHN5c2NhbGxzLCBtYWtpbmcgaXQgaW1wb3NzaWJsZSB0byBmdXp6IHdpdGggc3l6a2FsbGVyLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9XTsKCQkJaWYgKCFyYXdEYXRhIHx8IHJhd0RhdGEubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQlkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKTsKCQkJZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSk7CgkJCWRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKSB7CgkJCWNvbnN0IHN0YXRzID0gewoJCQkJbGxtOiB7IGNvdW50OiAwLCB0b2tlbnM6IDAsIGR1cmF0aW9uOiAwIH0sCgkJCQl0b29sOiB7IGNvdW50OiAwLCBkdXJhdGlvbjogMCB9CgkJCX07CgoJCQlyYXdEYXRhLmZvckVhY2gocyA9PiB7CgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsgCgkJCQlpZiAocy5UeXBlID09PSAibGxtIikgewoJCQkJCXN0YXRzLmxsbS5jb3VudCsrOwoJCQkJCXN0YXRzLmxsbS50b2tlbnMgKz0gKHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnMpOwoJCQkJCXN0YXRzLmxsbS5kdXJhdGlvbiArPSBkdXI7CgkJCQl9IGVsc2UgaWYgKHMuVHlwZSA9PT0gInRvb2wiKSB7CgkJCQkJc3RhdHMudG9vbC5jb3VudCsrOwoJCQkJCXN0YXRzLnRvb2wuZHVyYXRpb24gKz0gZHVyOwoJCQkJfQoJCQl9KTsKCgkJCWNvbnN0IGF2Z0xsbUR1ciA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLmR1cmF0aW9uIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnTGxtVG9rZW4gPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS50b2tlbnMgLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdUb29sRHVyID0gc3RhdHMudG9vbC5jb3VudCA+IDAgPyAoc3RhdHMudG9vbC5kdXJhdGlvbiAvIHN0YXRzLnRvb2wuY291bnQpLnRvRml4ZWQoMikgOiAwOwoKCQkJY29uc3QgbGxtU3VtYXJ5Q2VsbHMgPSBbc3RhdHMubGxtLmNvdW50LCBzdGF0cy5sbG0udG9rZW5zLCBhdmdMbG1Ub2tlbiwgc3RhdHMubGxtLmR1cmF0aW9uLCBhdmdMbG1EdXJdOwoJCQljb25zdCB0b29sU3VtbWFyeUNlbGxzID0gW3N0YXRzLnRvb2wuY291bnQsIHN0YXRzLnRvb2wuZHVyYXRpb24sIGF2Z1Rvb2xEdXJdOwoKCQkJY29uc3QgbGxtU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGxtX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQlsbG1TdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgbGxtVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQlsbG1TdW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJbGxtVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJbGxtU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQobGxtVHIpOwoKCQkJY29uc3QgdG9vbFN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rvb2xfc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgdG9vbFRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJdG9vbFN1bW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJdG9vbFRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZCh0b29sVHIpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBmaWx0ZXJlZFN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBbImxsbSIsICJ0b29sIl0uaW5jbHVkZXMoZC5UeXBlKSk7CgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ0R1cmF0aW9uJyk7CgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7IAoKCQkJZmlsdGVyZWRTdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJCgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsKCQkJCWxldCB0b29sdGlwID0gcy5OYW1lOwoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIgJiYgcy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoJCQkJZGF0YS5hZGRSb3coW2Ake3MuU2VxfWAsIGR1ciwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1RpbWUgQ29uc3VtcHRpb24gb2YgTExNL1Rvb2wgQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTS9Ub29sIFN0ZXBzJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ1NlY29uZHMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2R1cmF0aW9uX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBsbG1TdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gZC5UeXBlID09PSAibGxtIik7CgkJCWlmIChsbG1TdGVwcy5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwkJCQoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ1Rva2VucycpOwkJCQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICdzdHlsZSd9KTsJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7CQoKCQkJY29uc3QgYWdlbnRDb2xvcnMgPSB7fTsKCQkJY29uc3QgcGFsZXR0ZSA9IFsnIzQyODVGNCcsICcjREI0NDM3JywgJyNGNEI0MDAnLCAnIzBGOUQ1OCcsICcjQUI0N0JDJywgJyMwMEFDQzEnXTsKCQkJbGV0IGNvbG9ySWR4ID0gMDsKCQkJY29uc3QgYWdlbnRMTE1Db3VudHMgPSB7fTsKCQkJbGxtU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCWlmICghYWdlbnRDb2xvcnNbcy5OYW1lXSkgewoJCQkJCWFnZW50Q29sb3JzW3MuTmFtZV0gPSBwYWxldHRlW2NvbG9ySWR4ICUgcGFsZXR0ZS5sZW5ndGhdOwoJCQkJCWNvbG9ySWR4Kys7CgkJCQl9CgoJCQkJYWdlbnRMTE1Db3VudHNbcy5OYW1lXSA9IChhZ2VudExMTUNvdW50c1tzLk5hbWVdIHx8IDApICsgMTsKCQkJCWNvbnN0IGxhYmVsID0gYCR7cy5OYW1lfS0ke2FnZW50TExNQ291bnRzW3MuTmFtZV19YDsKCQkJCWNvbnN0IHRvdGFsVG9rZW5zID0gcy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2VuczsKCQkJCWNvbnN0IHN0eWxlID0gYGNvbG9yOiAke2FnZW50Q29sb3JzW3MuTmFtZV19YDsKCQkJCWxldCB0b29sdGlwID0gYFRvdGFsIFRva2VuczogJHt0b3RhbFRva2Vuc31cbihJbjogJHtzLklucHV0VG9rZW5zfSwgT3V0OiAke3MuT3V0cHV0VG9rZW5zfSwgVGhvdWdodHM6ICR7cy5PdXRwdXRUaG91Z2h0c1Rva2Vuc30pYDsKCQkJCWlmIChzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgoJCQkJZGF0YS5hZGRSb3coW2xhYmVsLCB0b3RhbFRva2Vucywgc3R5bGUsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUb2tlbiBDb25zdW1wdGlvbiBieSBMTE0gQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTSBDYWxsIFNlcXVlbmNlJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ0NvbnN1bWVkIFRva2VucycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9rZW5fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCQlsZXQgYWxsRXhwYW5kZWQgPSBmYWxzZTsKCQlmdW5jdGlvbiB0b2dnbGVBbGxEZXRhaWxzKCkgewoJCQlhbGxFeHBhbmRlZCA9ICFhbGxFeHBhbmRlZDsKCQkJZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnZGV0YWlscycpLmZvckVhY2goZCA9PiB7CgkJCQlpZiAoYWxsRXhwYW5kZWQpIGQuc2V0QXR0cmlidXRlKCdvcGVuJywgJycpOwoJCQkJZWxzZSBkLnJlbW92ZUF0dHJpYnV0ZSgnb3BlbicpOwoJCQl9KTsKCQl9Cgk8L3NjcmlwdD4KCgo8L2JvZHk+CjwvaHRtbD4K" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowhnmkq[1] Phase: Running StartedAt: 2026-06-26 12:36:56 +0000 UTC FinishedAt: 0001-01-01 00:00:00 +0000 UTC Input: nil Output: nil --------- Name: series-workflowhnmkq[1].abort-on-skip-outcome Phase: Failed StartedAt: 2026-06-26 12:36:56 +0000 UTC FinishedAt: 2026-06-26 12:37:02 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:code,Default:nil,Value:*1,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{},Result:nil,ExitCode:*1,}