Name: series-workflow4b6k2 Phase: Failed StartedAt: 2026-07-22 05:58:52 +0000 UTC FinishedAt: 2026-07-22 06:39:04 +0000 UTC Input: nil Output: nil --------- Name: series-workflow4b6k2[0] Phase: Succeeded StartedAt: 2026-07-22 05:58:52 +0000 UTC FinishedAt: 2026-07-22 06:38:27 +0000 UTC Input: nil Output: nil --------- Name: series-workflow4b6k2[0].run-triage Phase: Succeeded StartedAt: 2026-07-22 05:58:52 +0000 UTC FinishedAt: 2026-07-22 06:38:27 +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+CgkJCTx0ZD4yMDI2LzA3LzIyIDA2OjM4PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG9ubHkgbW9kaWZpZXMgS1ZNIHNlbGZ0ZXN0cyAodG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvKSwgd2hpY2ggYXJlIHVzZXJzcGFjZSB0ZXN0IHByb2dyYW1zIGFuZCBkbyBub3QgY2hhbmdlIGFueSBmdW5jdGlvbmFsIGtlcm5lbCBjb2RlIHRoYXQgY2FuIGJlIGZ1enplZC4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MS8xPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjIgMDY6Mzg8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPnJlYWQtcGF0Y2gtZGlmZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1BhdGNoRGlmZiYjMzQ7OiAmIzM0O2NvbW1pdCA4OThmNjVmODIwYWNiZjRlNmEyOWYyY2M5MTI0OWNmNWI4NTg0NDc2XG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFdlZCBKdWwgMjIgMDY6Mzg6MDggMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMva3ZtL2xpYi9yaXNjdi9wcm9jZXNzb3IuYyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2t2bS9saWIvcmlzY3YvcHJvY2Vzc29yLmNcbmluZGV4IGRlZDU0MjlmMzQ0ODNkLi42MmVmZDA3ZTU2MzlkMCAxMDA2NDRcbi0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2t2bS9saWIvcmlzY3YvcHJvY2Vzc29yLmNcbiYjNDM7JiM0MzsmIzQzOyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2t2bS9saWIvcmlzY3YvcHJvY2Vzc29yLmNcbkBAIC0xNyw2ICYjNDM7MTcsOSBAQFxuIFxuIHN0YXRpYyBndmFfdCBleGNlcHRpb25faGFuZGxlcnM7XG4gXG4mIzQzOy8qIFRydWUgaWYgS1ZNIGFsbG93cyB0aGUgR3Vlc3QgdG8gdXNlIHRoZSBWICh2ZWN0b3IpIGV4dGVuc2lvbiAqL1xuJiM0MztzdGF0aWMgYm9vbCB2X2F2YWlsYWJsZTtcbiYjNDM7XG4gYm9vbCBfX3ZjcHVfaGFzX2V4dChzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIHU2NCBleHQpXG4ge1xuIFx0dW5zaWduZWQgbG9uZyB2YWx1ZSA9IDA7XG5AQCAtMjk3LDE0ICYjNDM7MzAwLDYgQEAgdm9pZCB2Y3B1X2FyY2hfZHVtcChGSUxFICpzdHJlYW0sIHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwgdTggaW5kZW50KVxuIFx0XHRcJiMzNDsgVDM6IDB4JTAxNmx4ICAgVDQ6IDB4JTAxNmx4IFQ1OiAweCUwMTZseCBUNjogMHglMDE2bHhcXG5cJiMzNDssXG4gXHRcdGNvcmUucmVncy50MywgY29yZS5yZWdzLnQ0LCBjb3JlLnJlZ3MudDUsIGNvcmUucmVncy50Nik7XG4gfVxuLVxuLXN0YXRpYyB2b2lkIF9fYWxpZ25lZCgxNikgZ3Vlc3RfdW5leHBfdHJhcCh2b2lkKVxuLXtcbi1cdHNiaV9lY2FsbChLVk1fUklTQ1ZfU0VMRlRFU1RTX1NCSV9FWFQsXG4tXHRcdCAgS1ZNX1JJU0NWX1NFTEZURVNUU19TQklfVU5FWFAsXG4tXHRcdCAgMCwgMCwgMCwgMCwgMCwgMCk7XG4tfVxuLVxuIHZvaWQgdmNwdV9hcmNoX3NldF9lbnRyeV9wb2ludChzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIHZvaWQgKmd1ZXN0X2NvZGUpXG4ge1xuIFx0dmNwdV9zZXRfcmVnKHZjcHUsIFJJU0NWX0NPUkVfUkVHKHJlZ3MucGMpLCAodW5zaWduZWQgbG9uZylndWVzdF9jb2RlKTtcbkBAIC0zNDgsOCAmIzQzOzM0MywyMyBAQCBzdHJ1Y3Qga3ZtX3ZjcHUgKnZtX2FyY2hfdmNwdV9hZGQoc3RydWN0IGt2bV92bSAqdm0sIHUzMiB2Y3B1X2lkKVxuIFx0LyogU2V0dXAgc3NjcmF0Y2ggZm9yIGd1ZXN0X2dldF92Y3B1aWQoKSAqL1xuIFx0dmNwdV9zZXRfcmVnKHZjcHUsIFJJU0NWX0dFTkVSQUxfQ1NSX1JFRyhzc2NyYXRjaCksIHZjcHVfaWQpO1xuIFxuLVx0LyogU2V0dXAgZGVmYXVsdCBleGNlcHRpb24gdmVjdG9yIG9mIGd1ZXN0ICovXG4tXHR2Y3B1X3NldF9yZWcodmNwdSwgUklTQ1ZfR0VORVJBTF9DU1JfUkVHKHN0dmVjKSwgKHVuc2lnbmVkIGxvbmcpZ3Vlc3RfdW5leHBfdHJhcCk7XG4mIzQzO1x0LypcbiYjNDM7XHQgKiBFbmFibGUgdGhlIFYgKHZlY3RvcikgZXh0ZW5zaW9uIGluIEtWTSBzbyB0aGF0IHRoZSBjb21waWxlciBjYW5cbiYjNDM7XHQgKiBzYWZlbHkgZ2VuZXJhdGUgdmVjdG9yIGluc3RydWN0aW9ucyAoZS5nLiB2aWEgLU8yIGF1dG8tXG4mIzQzO1x0ICogdmVjdG9yaXphdGlvbikuIFNpbGVudGx5IGlnbm9yZSBlcnJvcnM7IHRoZSB0ZXN0IHdpbGwgc3RpbGwgd29ya1xuJiM0MztcdCAqIHdpdGhvdXQgVi5cbiYjNDM7XHQgKi9cbiYjNDM7XHRfX3ZjcHVfc2V0X3JlZyh2Y3B1LCBSSVNDVl9JU0FfRVhUX1JFRyhLVk1fUklTQ1ZfSVNBX0VYVF9WKSwgMSk7XG4mIzQzO1x0dl9hdmFpbGFibGUgPSBfX3ZjcHVfaGFzX2lzYV9leHQodmNwdSwgS1ZNX1JJU0NWX0lTQV9FWFRfVik7XG4mIzQzO1xuJiM0MztcdC8qXG4mIzQzO1x0ICogVXNlIHRoZSBmdWxsIGV4Y2VwdGlvbiB2ZWN0b3IgdGFibGUgKHdoaWNoIHByb3ZpZGVzIGxhenkgVlxuJiM0MztcdCAqIGV4dGVuc2lvbiBlbmFibGVtZW50IGZvciBFWENfSU5TVF9JTExFR0FMIGluIHJvdXRlX2V4Y2VwdGlvbilcbiYjNDM7XHQgKiBhcyB0aGUgZGVmYXVsdCBleGNlcHRpb24gaGFuZGxlci4gdm1faW5pdF92ZWN0b3JfdGFibGVzKCkgaXNcbiYjNDM7XHQgKiBpZGVtcG90ZW50OyB0ZXN0cyB0aGF0IGNhbGwgaXQgYWdhaW4gd2lsbCBnZXQgYSBuby1vcC5cbiYjNDM7XHQgKi9cbiYjNDM7XHR2bV9pbml0X3ZlY3Rvcl90YWJsZXModm0pO1xuJiM0MztcdHZjcHVfaW5pdF92ZWN0b3JfdGFibGVzKHZjcHUpO1xuIFxuIFx0cmV0dXJuIHZjcHU7XG4gfVxuQEAgLTQzMiw2ICYjNDM7NDQyLDMzIEBAIHZvaWQgcm91dGVfZXhjZXB0aW9uKHN0cnVjdCBwdF9yZWdzICpyZWdzKVxuIFx0XHRlYyA9IDA7XG4gXHR9XG4gXG4mIzQzO1x0LypcbiYjNDM7XHQgKiBIYW5kbGUgViAodmVjdG9yKSBleHRlbnNpb24gbGF6eSBlbmFibGVtZW50IGJlZm9yZSBhbnlcbiYjNDM7XHQgKiByZWdpc3RlcmVkIGhhbmRsZXIuIFRoZSBjb21waWxlciYjMzk7cyBkZWZhdWx0IG1hcmNoIG1heSBpbmNsdWRlXG4mIzQzO1x0ICogViwgYW5kIGF1dG8tdmVjdG9yaXphdGlvbiBnZW5lcmF0ZXMgdmVjdG9yIGluc3RydWN0aW9ucyB0aGF0XG4mIzQzO1x0ICogdHJpZ2dlciBFWENfSU5TVF9JTExFR0FMIHdoZW4gVlMgKFZlY3RvciBTdGF0dXMpIGluIHNzdGF0dXNcbiYjNDM7XHQgKiBpcyBPZmYuIEVuYWJsZSBWUyB0byBJbml0aWFsIGFuZCByZS1leGVjdXRlIHRoZSBmYXVsdGluZ1xuJiM0MztcdCAqIGluc3RydWN0aW9uLCBtaW1pY2tpbmcgd2hhdCBhIHJlYWwgT1Mga2VybmVsIGRvZXMuXG4mIzQzO1x0ICpcbiYjNDM7XHQgKiBUaGlzIGNoZWNrIHJ1bnMgYmVmb3JlIGFueSB0ZXN0LXJlZ2lzdGVyZWQgaGFuZGxlciwgc28gdGVzdHNcbiYjNDM7XHQgKiB0aGF0IGluc3RhbGwgdGhlaXIgb3duIEVYQ19JTlNUX0lMTEVHQUwgaGFuZGxlciAoZS5nLlxuJiM0MztcdCAqIHNiaV9wbXVfdGVzdCkgYXJlIG5vdCBhZmZlY3RlZC5cbiYjNDM7XHQgKi9cbiYjNDM7XHRpZiAoIShyZWdzLVx1MDAzZWNhdXNlIFx1MDAyNiBDQVVTRV9JUlFfRkxBRykgXHUwMDI2XHUwMDI2IGVjID09IEVYQ19JTlNUX0lMTEVHQUwpIHtcbiYjNDM7XHRcdC8qXG4mIzQzO1x0XHQgKiBJZiBLVk0gc3VwcG9ydHMgdGhlIFYgZXh0ZW5zaW9uIGZvciB0aGlzIEd1ZXN0IGFuZCBWU1xuJiM0MztcdFx0ICogKFZlY3RvciBTdGF0dXMpIGlzIE9mZiBpbiB0aGUgc2F2ZWQgc3N0YXR1cywgc2V0IGl0IHRvXG4mIzQzO1x0XHQgKiBJbml0aWFsIGFuZCBzcmV0IHRvIHJlLWV4ZWN1dGUgdGhlIGZhdWx0aW5nIGluc3RydWN0aW9uLlxuJiM0MztcdFx0ICogVXNlIHJlZ3MtXHUwMDNlc3RhdHVzIChzYXZlZCBhdCBleGNlcHRpb24gZW50cnkpIHJhdGhlciB0aGFuXG4mIzQzO1x0XHQgKiByZWFkaW5nIHRoZSBsaXZlIENTUiB0byBhdm9pZCBhIFRPQ1RPVSByYWNlIHdpdGggbmVzdGVkXG4mIzQzO1x0XHQgKiBleGNlcHRpb25zLlxuJiM0MztcdFx0ICovXG4mIzQzO1x0XHRpZiAodl9hdmFpbGFibGUgXHUwMDI2XHUwMDI2ICEocmVncy1cdTAwM2VzdGF0dXMgXHUwMDI2IFNSX1ZTKSkge1xuJiM0MztcdFx0XHRyZWdzLVx1MDAzZXN0YXR1cyB8PSBTUl9WU19JTklUSUFMO1xuJiM0MztcdFx0XHRyZXR1cm47XG4mIzQzO1x0XHR9XG4mIzQzO1x0fVxuJiM0MztcbiBcdGlmIChoYW5kbGVycyBcdTAwMjZcdTAwMjYgaGFuZGxlcnMtXHUwMDNlZXhjZXB0aW9uX2hhbmRsZXJzW3ZlY3Rvcl1bZWNdKVxuIFx0XHRyZXR1cm4gaGFuZGxlcnMtXHUwMDNlZXhjZXB0aW9uX2hhbmRsZXJzW3ZlY3Rvcl1bZWNdKHJlZ3MpO1xuIFxuQEAgLTQ0OCw2ICYjNDM7NDg1LDkgQEAgdm9pZCB2Y3B1X2luaXRfdmVjdG9yX3RhYmxlcyhzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpXG4gXG4gdm9pZCB2bV9pbml0X3ZlY3Rvcl90YWJsZXMoc3RydWN0IGt2bV92bSAqdm0pXG4ge1xuJiM0MztcdGlmICh2bS1cdTAwM2VoYW5kbGVycylcbiYjNDM7XHRcdHJldHVybjtcbiYjNDM7XG4gXHR2bS1cdTAwM2VoYW5kbGVycyA9IF9fdm1fYWxsb2Modm0sIHNpemVvZihzdHJ1Y3QgaGFuZGxlcnMpLCB2bS1cdTAwM2VwYWdlX3NpemUsXG4gXHRcdFx0XHQgIE1FTV9SRUdJT05fREFUQSk7XG4gXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjIgMDY6Mzg8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+YmVzdC1leHBlbnNpdmU8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG9ubHkgbW9kaWZpZXMgS1ZNIHNlbGZ0ZXN0cyAodG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvKSwgd2hpY2ggYXJlIHVzZXJzcGFjZSB0ZXN0IHByb2dyYW1zIGFuZCBkbyBub3QgY2hhbmdlIGFueSBmdW5jdGlvbmFsIGtlcm5lbCBjb2RlIHRoYXQgY2FuIGJlIGZ1enplZC4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZQppZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5CnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuCgpSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOgotIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuCi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuCi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LgotIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwKZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLgoKSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaAp0b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS4KCldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOgoxLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLgogICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy4KMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuCiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy4KICAgRG8gbm90IGxpc3QgdG9vIGdlbmVyaWMgY29uZmlncyAod2UgYWxyZWFkeSBoYXZlIHRoZW0gZW5hYmxlZCkuIE9ubHkgbGlzdCB0aG9zZSB0aGF0CiAgIHNwZWNpZmljYWxseSBjb3ZlciB0aGUgbW9kaWZpZWQgY29kZS4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzIG91dHB1dCBhcnJheSwKICAgYW5kIERPIE5PVCBhZGQgYSAmIzM5O0NPTkZJR18mIzM5OyBwcmVmaXggKGUuZy4sIHJldHVybiAmIzM0O05FVF9JUFY0JiMzNDsgaW5zdGVhZCBvZiAmIzM0O0NPTkZJR19ORVRfSVBWNCYjMzQ7KS4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IDg5OGY2NWY4MjBhY2JmNGU2YTI5ZjJjYzkxMjQ5Y2Y1Yjg1ODQ0NzYKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgV2VkIEp1bCAyMiAwNjozODowOCAyMDI2ICYjNDM7MDAwMAoKICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldwoKZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2t2bS9saWIvcmlzY3YvcHJvY2Vzc29yLmMgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9rdm0vbGliL3Jpc2N2L3Byb2Nlc3Nvci5jCmluZGV4IGRlZDU0MjlmMzQ0ODNkLi42MmVmZDA3ZTU2MzlkMCAxMDA2NDQKLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMva3ZtL2xpYi9yaXNjdi9wcm9jZXNzb3IuYwomIzQzOyYjNDM7JiM0MzsgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9rdm0vbGliL3Jpc2N2L3Byb2Nlc3Nvci5jCkBAIC0xNyw2ICYjNDM7MTcsOSBAQAogCiBzdGF0aWMgZ3ZhX3QgZXhjZXB0aW9uX2hhbmRsZXJzOwogCiYjNDM7LyogVHJ1ZSBpZiBLVk0gYWxsb3dzIHRoZSBHdWVzdCB0byB1c2UgdGhlIFYgKHZlY3RvcikgZXh0ZW5zaW9uICovCiYjNDM7c3RhdGljIGJvb2wgdl9hdmFpbGFibGU7CiYjNDM7CiBib29sIF9fdmNwdV9oYXNfZXh0KHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwgdTY0IGV4dCkKIHsKIAl1bnNpZ25lZCBsb25nIHZhbHVlID0gMDsKQEAgLTI5NywxNCAmIzQzOzMwMCw2IEBAIHZvaWQgdmNwdV9hcmNoX2R1bXAoRklMRSAqc3RyZWFtLCBzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIHU4IGluZGVudCkKIAkJJiMzNDsgVDM6IDB4JTAxNmx4ICAgVDQ6IDB4JTAxNmx4IFQ1OiAweCUwMTZseCBUNjogMHglMDE2bHhcbiYjMzQ7LAogCQljb3JlLnJlZ3MudDMsIGNvcmUucmVncy50NCwgY29yZS5yZWdzLnQ1LCBjb3JlLnJlZ3MudDYpOwogfQotCi1zdGF0aWMgdm9pZCBfX2FsaWduZWQoMTYpIGd1ZXN0X3VuZXhwX3RyYXAodm9pZCkKLXsKLQlzYmlfZWNhbGwoS1ZNX1JJU0NWX1NFTEZURVNUU19TQklfRVhULAotCQkgIEtWTV9SSVNDVl9TRUxGVEVTVFNfU0JJX1VORVhQLAotCQkgIDAsIDAsIDAsIDAsIDAsIDApOwotfQotCiB2b2lkIHZjcHVfYXJjaF9zZXRfZW50cnlfcG9pbnQoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCB2b2lkICpndWVzdF9jb2RlKQogewogCXZjcHVfc2V0X3JlZyh2Y3B1LCBSSVNDVl9DT1JFX1JFRyhyZWdzLnBjKSwgKHVuc2lnbmVkIGxvbmcpZ3Vlc3RfY29kZSk7CkBAIC0zNDgsOCAmIzQzOzM0MywyMyBAQCBzdHJ1Y3Qga3ZtX3ZjcHUgKnZtX2FyY2hfdmNwdV9hZGQoc3RydWN0IGt2bV92bSAqdm0sIHUzMiB2Y3B1X2lkKQogCS8qIFNldHVwIHNzY3JhdGNoIGZvciBndWVzdF9nZXRfdmNwdWlkKCkgKi8KIAl2Y3B1X3NldF9yZWcodmNwdSwgUklTQ1ZfR0VORVJBTF9DU1JfUkVHKHNzY3JhdGNoKSwgdmNwdV9pZCk7CiAKLQkvKiBTZXR1cCBkZWZhdWx0IGV4Y2VwdGlvbiB2ZWN0b3Igb2YgZ3Vlc3QgKi8KLQl2Y3B1X3NldF9yZWcodmNwdSwgUklTQ1ZfR0VORVJBTF9DU1JfUkVHKHN0dmVjKSwgKHVuc2lnbmVkIGxvbmcpZ3Vlc3RfdW5leHBfdHJhcCk7CiYjNDM7CS8qCiYjNDM7CSAqIEVuYWJsZSB0aGUgViAodmVjdG9yKSBleHRlbnNpb24gaW4gS1ZNIHNvIHRoYXQgdGhlIGNvbXBpbGVyIGNhbgomIzQzOwkgKiBzYWZlbHkgZ2VuZXJhdGUgdmVjdG9yIGluc3RydWN0aW9ucyAoZS5nLiB2aWEgLU8yIGF1dG8tCiYjNDM7CSAqIHZlY3Rvcml6YXRpb24pLiBTaWxlbnRseSBpZ25vcmUgZXJyb3JzOyB0aGUgdGVzdCB3aWxsIHN0aWxsIHdvcmsKJiM0MzsJICogd2l0aG91dCBWLgomIzQzOwkgKi8KJiM0MzsJX192Y3B1X3NldF9yZWcodmNwdSwgUklTQ1ZfSVNBX0VYVF9SRUcoS1ZNX1JJU0NWX0lTQV9FWFRfViksIDEpOwomIzQzOwl2X2F2YWlsYWJsZSA9IF9fdmNwdV9oYXNfaXNhX2V4dCh2Y3B1LCBLVk1fUklTQ1ZfSVNBX0VYVF9WKTsKJiM0MzsKJiM0MzsJLyoKJiM0MzsJICogVXNlIHRoZSBmdWxsIGV4Y2VwdGlvbiB2ZWN0b3IgdGFibGUgKHdoaWNoIHByb3ZpZGVzIGxhenkgVgomIzQzOwkgKiBleHRlbnNpb24gZW5hYmxlbWVudCBmb3IgRVhDX0lOU1RfSUxMRUdBTCBpbiByb3V0ZV9leGNlcHRpb24pCiYjNDM7CSAqIGFzIHRoZSBkZWZhdWx0IGV4Y2VwdGlvbiBoYW5kbGVyLiB2bV9pbml0X3ZlY3Rvcl90YWJsZXMoKSBpcwomIzQzOwkgKiBpZGVtcG90ZW50OyB0ZXN0cyB0aGF0IGNhbGwgaXQgYWdhaW4gd2lsbCBnZXQgYSBuby1vcC4KJiM0MzsJICovCiYjNDM7CXZtX2luaXRfdmVjdG9yX3RhYmxlcyh2bSk7CiYjNDM7CXZjcHVfaW5pdF92ZWN0b3JfdGFibGVzKHZjcHUpOwogCiAJcmV0dXJuIHZjcHU7CiB9CkBAIC00MzIsNiAmIzQzOzQ0MiwzMyBAQCB2b2lkIHJvdXRlX2V4Y2VwdGlvbihzdHJ1Y3QgcHRfcmVncyAqcmVncykKIAkJZWMgPSAwOwogCX0KIAomIzQzOwkvKgomIzQzOwkgKiBIYW5kbGUgViAodmVjdG9yKSBleHRlbnNpb24gbGF6eSBlbmFibGVtZW50IGJlZm9yZSBhbnkKJiM0MzsJICogcmVnaXN0ZXJlZCBoYW5kbGVyLiBUaGUgY29tcGlsZXImIzM5O3MgZGVmYXVsdCBtYXJjaCBtYXkgaW5jbHVkZQomIzQzOwkgKiBWLCBhbmQgYXV0by12ZWN0b3JpemF0aW9uIGdlbmVyYXRlcyB2ZWN0b3IgaW5zdHJ1Y3Rpb25zIHRoYXQKJiM0MzsJICogdHJpZ2dlciBFWENfSU5TVF9JTExFR0FMIHdoZW4gVlMgKFZlY3RvciBTdGF0dXMpIGluIHNzdGF0dXMKJiM0MzsJICogaXMgT2ZmLiBFbmFibGUgVlMgdG8gSW5pdGlhbCBhbmQgcmUtZXhlY3V0ZSB0aGUgZmF1bHRpbmcKJiM0MzsJICogaW5zdHJ1Y3Rpb24sIG1pbWlja2luZyB3aGF0IGEgcmVhbCBPUyBrZXJuZWwgZG9lcy4KJiM0MzsJICoKJiM0MzsJICogVGhpcyBjaGVjayBydW5zIGJlZm9yZSBhbnkgdGVzdC1yZWdpc3RlcmVkIGhhbmRsZXIsIHNvIHRlc3RzCiYjNDM7CSAqIHRoYXQgaW5zdGFsbCB0aGVpciBvd24gRVhDX0lOU1RfSUxMRUdBTCBoYW5kbGVyIChlLmcuCiYjNDM7CSAqIHNiaV9wbXVfdGVzdCkgYXJlIG5vdCBhZmZlY3RlZC4KJiM0MzsJICovCiYjNDM7CWlmICghKHJlZ3MtJmd0O2NhdXNlICZhbXA7IENBVVNFX0lSUV9GTEFHKSAmYW1wOyZhbXA7IGVjID09IEVYQ19JTlNUX0lMTEVHQUwpIHsKJiM0MzsJCS8qCiYjNDM7CQkgKiBJZiBLVk0gc3VwcG9ydHMgdGhlIFYgZXh0ZW5zaW9uIGZvciB0aGlzIEd1ZXN0IGFuZCBWUwomIzQzOwkJICogKFZlY3RvciBTdGF0dXMpIGlzIE9mZiBpbiB0aGUgc2F2ZWQgc3N0YXR1cywgc2V0IGl0IHRvCiYjNDM7CQkgKiBJbml0aWFsIGFuZCBzcmV0IHRvIHJlLWV4ZWN1dGUgdGhlIGZhdWx0aW5nIGluc3RydWN0aW9uLgomIzQzOwkJICogVXNlIHJlZ3MtJmd0O3N0YXR1cyAoc2F2ZWQgYXQgZXhjZXB0aW9uIGVudHJ5KSByYXRoZXIgdGhhbgomIzQzOwkJICogcmVhZGluZyB0aGUgbGl2ZSBDU1IgdG8gYXZvaWQgYSBUT0NUT1UgcmFjZSB3aXRoIG5lc3RlZAomIzQzOwkJICogZXhjZXB0aW9ucy4KJiM0MzsJCSAqLwomIzQzOwkJaWYgKHZfYXZhaWxhYmxlICZhbXA7JmFtcDsgIShyZWdzLSZndDtzdGF0dXMgJmFtcDsgU1JfVlMpKSB7CiYjNDM7CQkJcmVncy0mZ3Q7c3RhdHVzIHw9IFNSX1ZTX0lOSVRJQUw7CiYjNDM7CQkJcmV0dXJuOwomIzQzOwkJfQomIzQzOwl9CiYjNDM7CiAJaWYgKGhhbmRsZXJzICZhbXA7JmFtcDsgaGFuZGxlcnMtJmd0O2V4Y2VwdGlvbl9oYW5kbGVyc1t2ZWN0b3JdW2VjXSkKIAkJcmV0dXJuIGhhbmRsZXJzLSZndDtleGNlcHRpb25faGFuZGxlcnNbdmVjdG9yXVtlY10ocmVncyk7CiAKQEAgLTQ0OCw2ICYjNDM7NDg1LDkgQEAgdm9pZCB2Y3B1X2luaXRfdmVjdG9yX3RhYmxlcyhzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpCiAKIHZvaWQgdm1faW5pdF92ZWN0b3JfdGFibGVzKHN0cnVjdCBrdm1fdm0gKnZtKQogewomIzQzOwlpZiAodm0tJmd0O2hhbmRsZXJzKQomIzQzOwkJcmV0dXJuOwomIzQzOwogCXZtLSZndDtoYW5kbGVycyA9IF9fdm1fYWxsb2Modm0sIHNpemVvZihzdHJ1Y3QgaGFuZGxlcnMpLCB2bS0mZ3Q7cGFnZV9zaXplLAogCQkJCSAgTUVNX1JFR0lPTl9EQVRBKTsKIAo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMiAwNjozODwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzMTExCgkJCQkJCQlvdXRwdXQ6IDcwCgkJCQkJCQl0aG91Z2h0czogMjUzCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKldvcnRoRnV6emluZz1mYWxzZSAtIFNlbGZ0ZXN0IE1vZGlmaWNhdGlvbioqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCBhbmQgaXQmIzM5O3MgbW9kaWZ5aW5nIGB0b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9rdm0vbGliL3Jpc2N2L3Byb2Nlc3Nvci5jYC4gUmlnaHQgYXdheSwgdGhpcyBqdW1wcyBvdXQgdG8gbWUgYXMgYSBzZWxmdGVzdCBmaWxlLCBub3QgYWN0dWFsIGtlcm5lbCBjb2RlLiBUaGUgcHJvbXB0IHNwZWNpZmljYWxseSBzYXlzICYjMzQ7UmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWlucyBtb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLiYjMzQ7IEl0IGRvZXNuJiMzOTt0IGV4cGxpY2l0bHkgKm1lbnRpb24qIHNlbGZ0ZXN0cywgYnV0IHRoZSBzcGlyaXQgb2YgdGhhdCBydWxlIGFwcGxpZXMgaGVyZS4gVGhlc2Ugc2VsZnRlc3RzIGFyZW4mIzM5O3QgcGFydCBvZiB0aGUgY29yZSBrZXJuZWwgdGhhdCBTeXprYWxsZXIgZnV6emVzOyBTeXprYWxsZXImIzM5O3Mgam9iIGlzIHRoZSBrZXJuZWwgaXRzZWxmLgoKTGV0IG1lIGp1c3QgZG91YmxlLWNoZWNrLCB0aG91Z2gsIG1ha2Ugc3VyZSBub3RoaW5nIGVsc2UgZ290IHRvdWNoZWQgaW4gdGhlIGRpZmYuIE5vcGUsIGp1c3QgdGhlIG9uZSBmaWxlLiBOb3cgSSYjMzk7bSByZWNhbGxpbmcgdGhlIHByb21wdDogJiMzNDtJZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoIHRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLiYjMzQ7IFRoaXMgZGVmaW5pdGVseSAqZG9lc24mIzM5O3QqIGZpdCB0aGF0IGRlc2NyaXB0aW9uLiBTZWxmdGVzdHMgYXJlIHVzZXJzcGFjZSB0b29scywgaW5kZXBlbmRlbnQgZnJvbSB0aGUga2VybmVsLCBhbmQgZXhpc3QgdG8gdmFsaWRhdGUgdGhlaXIgb3BlcmF0aW9uIHNlcGFyYXRlbHkuCgpUaGVyZWZvcmUsIGJlY2F1c2UgdGhpcyBpcyBwdXJlbHkgYSBzZWxmdGVzdCBtb2RpZmljYXRpb24sIGFuZCBkb2VzbiYjMzk7dCBpbXBhY3QgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBJJiMzOTttIGdvaW5nIHRvIHJldHVybiBgV29ydGhGdXp6aW5nPWZhbHNlYC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMiAwNjozODwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFtdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG9ubHkgbW9kaWZpZXMgS1ZNIHNlbGZ0ZXN0cyAodG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvKSwgd2hpY2ggYXJlIHVzZXJzcGFjZSB0ZXN0IHByb2dyYW1zIGFuZCBkbyBub3QgY2hhbmdlIGFueSBmdW5jdGlvbmFsIGtlcm5lbCBjb2RlIHRoYXQgY2FuIGJlIGZ1enplZC4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG9ubHkgbW9kaWZpZXMgS1ZNIHNlbGZ0ZXN0cyAodG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvKSwgd2hpY2ggYXJlIHVzZXJzcGFjZSB0ZXN0IHByb2dyYW1zIGFuZCBkbyBub3QgY2hhbmdlIGFueSBmdW5jdGlvbmFsIGtlcm5lbCBjb2RlIHRoYXQgY2FuIGJlIGZ1enplZC4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPC90Ym9keT4KCTwvdGFibGU+CgoJPGRpdiBpZD0ibGxtX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5MTE0gQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBUb2tlbnM8L3RoPgoJCQkJCTx0aD5BdmcgVG9rZW5zPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9ImxsbV9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9InRvb2xfc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPlRvb2wgQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0idG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9ImR1cmF0aW9uX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCTxkaXYgaWQ9InRva2VuX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL2pzYXBpIj48L3NjcmlwdD4KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCQlnb29nbGUubG9hZCgidmlzdWFsaXphdGlvbiIsICIxIiwge3BhY2thZ2VzOlsiY29yZWNoYXJ0Il19KTsKCQlnb29nbGUuc2V0T25Mb2FkQ2FsbGJhY2soZHJhd0NoYXJ0cyk7CgoJCWZ1bmN0aW9uIGRyYXdDaGFydHMoKSB7CgkJCWNvbnN0IHJhd0RhdGEgPSBbeyJTdGFydGVkIjoiMjAyNi0wNy0yMlQwNjozODoxMC4zNTc3MTU0MjNaIiwiU2VxIjowLCJOZXN0aW5nIjowLCJUeXBlIjoiZmxvdyIsIk5hbWUiOiJwYXRjaC10cmlhZ2UiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1MzMyMTk0MzQ2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBvbmx5IG1vZGlmaWVzIEtWTSBzZWxmdGVzdHMgKHRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzLyksIHdoaWNoIGFyZSB1c2Vyc3BhY2UgdGVzdCBwcm9ncmFtcyBhbmQgZG8gbm90IGNoYW5nZSBhbnkgZnVuY3Rpb25hbCBrZXJuZWwgY29kZSB0aGF0IGNhbiBiZSBmdXp6ZWQuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yMlQwNjozODoxMC4zNTc3MjI5MDNaIiwiU2VxIjoxLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6InJlYWQtcGF0Y2gtZGlmZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjY2NjE0MDQ5OCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiUGF0Y2hEaWZmXCI6IFwiY29tbWl0IDg5OGY2NWY4MjBhY2JmNGU2YTI5ZjJjYzkxMjQ5Y2Y1Yjg1ODQ0NzZcXG5BdXRob3I6IHN5ei1jbHVzdGVyIFxcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVxcdTAwM2VcXG5EYXRlOiAgIFdlZCBKdWwgMjIgMDY6Mzg6MDggMjAyNiArMDAwMFxcblxcbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcXG5cXG5kaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMva3ZtL2xpYi9yaXNjdi9wcm9jZXNzb3IuYyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2t2bS9saWIvcmlzY3YvcHJvY2Vzc29yLmNcXG5pbmRleCBkZWQ1NDI5ZjM0NDgzZC4uNjJlZmQwN2U1NjM5ZDAgMTAwNjQ0XFxuLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMva3ZtL2xpYi9yaXNjdi9wcm9jZXNzb3IuY1xcbisrKyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2t2bS9saWIvcmlzY3YvcHJvY2Vzc29yLmNcXG5AQCAtMTcsNiArMTcsOSBAQFxcbiBcXG4gc3RhdGljIGd2YV90IGV4Y2VwdGlvbl9oYW5kbGVycztcXG4gXFxuKy8qIFRydWUgaWYgS1ZNIGFsbG93cyB0aGUgR3Vlc3QgdG8gdXNlIHRoZSBWICh2ZWN0b3IpIGV4dGVuc2lvbiAqL1xcbitzdGF0aWMgYm9vbCB2X2F2YWlsYWJsZTtcXG4rXFxuIGJvb2wgX192Y3B1X2hhc19leHQoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCB1NjQgZXh0KVxcbiB7XFxuIFxcdHVuc2lnbmVkIGxvbmcgdmFsdWUgPSAwO1xcbkBAIC0yOTcsMTQgKzMwMCw2IEBAIHZvaWQgdmNwdV9hcmNoX2R1bXAoRklMRSAqc3RyZWFtLCBzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIHU4IGluZGVudClcXG4gXFx0XFx0XFxcIiBUMzogMHglMDE2bHggICBUNDogMHglMDE2bHggVDU6IDB4JTAxNmx4IFQ2OiAweCUwMTZseFxcXFxuXFxcIixcXG4gXFx0XFx0Y29yZS5yZWdzLnQzLCBjb3JlLnJlZ3MudDQsIGNvcmUucmVncy50NSwgY29yZS5yZWdzLnQ2KTtcXG4gfVxcbi1cXG4tc3RhdGljIHZvaWQgX19hbGlnbmVkKDE2KSBndWVzdF91bmV4cF90cmFwKHZvaWQpXFxuLXtcXG4tXFx0c2JpX2VjYWxsKEtWTV9SSVNDVl9TRUxGVEVTVFNfU0JJX0VYVCxcXG4tXFx0XFx0ICBLVk1fUklTQ1ZfU0VMRlRFU1RTX1NCSV9VTkVYUCxcXG4tXFx0XFx0ICAwLCAwLCAwLCAwLCAwLCAwKTtcXG4tfVxcbi1cXG4gdm9pZCB2Y3B1X2FyY2hfc2V0X2VudHJ5X3BvaW50KHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwgdm9pZCAqZ3Vlc3RfY29kZSlcXG4ge1xcbiBcXHR2Y3B1X3NldF9yZWcodmNwdSwgUklTQ1ZfQ09SRV9SRUcocmVncy5wYyksICh1bnNpZ25lZCBsb25nKWd1ZXN0X2NvZGUpO1xcbkBAIC0zNDgsOCArMzQzLDIzIEBAIHN0cnVjdCBrdm1fdmNwdSAqdm1fYXJjaF92Y3B1X2FkZChzdHJ1Y3Qga3ZtX3ZtICp2bSwgdTMyIHZjcHVfaWQpXFxuIFxcdC8qIFNldHVwIHNzY3JhdGNoIGZvciBndWVzdF9nZXRfdmNwdWlkKCkgKi9cXG4gXFx0dmNwdV9zZXRfcmVnKHZjcHUsIFJJU0NWX0dFTkVSQUxfQ1NSX1JFRyhzc2NyYXRjaCksIHZjcHVfaWQpO1xcbiBcXG4tXFx0LyogU2V0dXAgZGVmYXVsdCBleGNlcHRpb24gdmVjdG9yIG9mIGd1ZXN0ICovXFxuLVxcdHZjcHVfc2V0X3JlZyh2Y3B1LCBSSVNDVl9HRU5FUkFMX0NTUl9SRUcoc3R2ZWMpLCAodW5zaWduZWQgbG9uZylndWVzdF91bmV4cF90cmFwKTtcXG4rXFx0LypcXG4rXFx0ICogRW5hYmxlIHRoZSBWICh2ZWN0b3IpIGV4dGVuc2lvbiBpbiBLVk0gc28gdGhhdCB0aGUgY29tcGlsZXIgY2FuXFxuK1xcdCAqIHNhZmVseSBnZW5lcmF0ZSB2ZWN0b3IgaW5zdHJ1Y3Rpb25zIChlLmcuIHZpYSAtTzIgYXV0by1cXG4rXFx0ICogdmVjdG9yaXphdGlvbikuIFNpbGVudGx5IGlnbm9yZSBlcnJvcnM7IHRoZSB0ZXN0IHdpbGwgc3RpbGwgd29ya1xcbitcXHQgKiB3aXRob3V0IFYuXFxuK1xcdCAqL1xcbitcXHRfX3ZjcHVfc2V0X3JlZyh2Y3B1LCBSSVNDVl9JU0FfRVhUX1JFRyhLVk1fUklTQ1ZfSVNBX0VYVF9WKSwgMSk7XFxuK1xcdHZfYXZhaWxhYmxlID0gX192Y3B1X2hhc19pc2FfZXh0KHZjcHUsIEtWTV9SSVNDVl9JU0FfRVhUX1YpO1xcbitcXG4rXFx0LypcXG4rXFx0ICogVXNlIHRoZSBmdWxsIGV4Y2VwdGlvbiB2ZWN0b3IgdGFibGUgKHdoaWNoIHByb3ZpZGVzIGxhenkgVlxcbitcXHQgKiBleHRlbnNpb24gZW5hYmxlbWVudCBmb3IgRVhDX0lOU1RfSUxMRUdBTCBpbiByb3V0ZV9leGNlcHRpb24pXFxuK1xcdCAqIGFzIHRoZSBkZWZhdWx0IGV4Y2VwdGlvbiBoYW5kbGVyLiB2bV9pbml0X3ZlY3Rvcl90YWJsZXMoKSBpc1xcbitcXHQgKiBpZGVtcG90ZW50OyB0ZXN0cyB0aGF0IGNhbGwgaXQgYWdhaW4gd2lsbCBnZXQgYSBuby1vcC5cXG4rXFx0ICovXFxuK1xcdHZtX2luaXRfdmVjdG9yX3RhYmxlcyh2bSk7XFxuK1xcdHZjcHVfaW5pdF92ZWN0b3JfdGFibGVzKHZjcHUpO1xcbiBcXG4gXFx0cmV0dXJuIHZjcHU7XFxuIH1cXG5AQCAtNDMyLDYgKzQ0MiwzMyBAQCB2b2lkIHJvdXRlX2V4Y2VwdGlvbihzdHJ1Y3QgcHRfcmVncyAqcmVncylcXG4gXFx0XFx0ZWMgPSAwO1xcbiBcXHR9XFxuIFxcbitcXHQvKlxcbitcXHQgKiBIYW5kbGUgViAodmVjdG9yKSBleHRlbnNpb24gbGF6eSBlbmFibGVtZW50IGJlZm9yZSBhbnlcXG4rXFx0ICogcmVnaXN0ZXJlZCBoYW5kbGVyLiBUaGUgY29tcGlsZXIncyBkZWZhdWx0IG1hcmNoIG1heSBpbmNsdWRlXFxuK1xcdCAqIFYsIGFuZCBhdXRvLXZlY3Rvcml6YXRpb24gZ2VuZXJhdGVzIHZlY3RvciBpbnN0cnVjdGlvbnMgdGhhdFxcbitcXHQgKiB0cmlnZ2VyIEVYQ19JTlNUX0lMTEVHQUwgd2hlbiBWUyAoVmVjdG9yIFN0YXR1cykgaW4gc3N0YXR1c1xcbitcXHQgKiBpcyBPZmYuIEVuYWJsZSBWUyB0byBJbml0aWFsIGFuZCByZS1leGVjdXRlIHRoZSBmYXVsdGluZ1xcbitcXHQgKiBpbnN0cnVjdGlvbiwgbWltaWNraW5nIHdoYXQgYSByZWFsIE9TIGtlcm5lbCBkb2VzLlxcbitcXHQgKlxcbitcXHQgKiBUaGlzIGNoZWNrIHJ1bnMgYmVmb3JlIGFueSB0ZXN0LXJlZ2lzdGVyZWQgaGFuZGxlciwgc28gdGVzdHNcXG4rXFx0ICogdGhhdCBpbnN0YWxsIHRoZWlyIG93biBFWENfSU5TVF9JTExFR0FMIGhhbmRsZXIgKGUuZy5cXG4rXFx0ICogc2JpX3BtdV90ZXN0KSBhcmUgbm90IGFmZmVjdGVkLlxcbitcXHQgKi9cXG4rXFx0aWYgKCEocmVncy1cXHUwMDNlY2F1c2UgXFx1MDAyNiBDQVVTRV9JUlFfRkxBRykgXFx1MDAyNlxcdTAwMjYgZWMgPT0gRVhDX0lOU1RfSUxMRUdBTCkge1xcbitcXHRcXHQvKlxcbitcXHRcXHQgKiBJZiBLVk0gc3VwcG9ydHMgdGhlIFYgZXh0ZW5zaW9uIGZvciB0aGlzIEd1ZXN0IGFuZCBWU1xcbitcXHRcXHQgKiAoVmVjdG9yIFN0YXR1cykgaXMgT2ZmIGluIHRoZSBzYXZlZCBzc3RhdHVzLCBzZXQgaXQgdG9cXG4rXFx0XFx0ICogSW5pdGlhbCBhbmQgc3JldCB0byByZS1leGVjdXRlIHRoZSBmYXVsdGluZyBpbnN0cnVjdGlvbi5cXG4rXFx0XFx0ICogVXNlIHJlZ3MtXFx1MDAzZXN0YXR1cyAoc2F2ZWQgYXQgZXhjZXB0aW9uIGVudHJ5KSByYXRoZXIgdGhhblxcbitcXHRcXHQgKiByZWFkaW5nIHRoZSBsaXZlIENTUiB0byBhdm9pZCBhIFRPQ1RPVSByYWNlIHdpdGggbmVzdGVkXFxuK1xcdFxcdCAqIGV4Y2VwdGlvbnMuXFxuK1xcdFxcdCAqL1xcbitcXHRcXHRpZiAodl9hdmFpbGFibGUgXFx1MDAyNlxcdTAwMjYgIShyZWdzLVxcdTAwM2VzdGF0dXMgXFx1MDAyNiBTUl9WUykpIHtcXG4rXFx0XFx0XFx0cmVncy1cXHUwMDNlc3RhdHVzIHw9IFNSX1ZTX0lOSVRJQUw7XFxuK1xcdFxcdFxcdHJldHVybjtcXG4rXFx0XFx0fVxcbitcXHR9XFxuK1xcbiBcXHRpZiAoaGFuZGxlcnMgXFx1MDAyNlxcdTAwMjYgaGFuZGxlcnMtXFx1MDAzZWV4Y2VwdGlvbl9oYW5kbGVyc1t2ZWN0b3JdW2VjXSlcXG4gXFx0XFx0cmV0dXJuIGhhbmRsZXJzLVxcdTAwM2VleGNlcHRpb25faGFuZGxlcnNbdmVjdG9yXVtlY10ocmVncyk7XFxuIFxcbkBAIC00NDgsNiArNDg1LDkgQEAgdm9pZCB2Y3B1X2luaXRfdmVjdG9yX3RhYmxlcyhzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpXFxuIFxcbiB2b2lkIHZtX2luaXRfdmVjdG9yX3RhYmxlcyhzdHJ1Y3Qga3ZtX3ZtICp2bSlcXG4ge1xcbitcXHRpZiAodm0tXFx1MDAzZWhhbmRsZXJzKVxcbitcXHRcXHRyZXR1cm47XFxuK1xcbiBcXHR2bS1cXHUwMDNlaGFuZGxlcnMgPSBfX3ZtX2FsbG9jKHZtLCBzaXplb2Yoc3RydWN0IGhhbmRsZXJzKSwgdm0tXFx1MDAzZXBhZ2Vfc2l6ZSxcXG4gXFx0XFx0XFx0XFx0ICBNRU1fUkVHSU9OX0RBVEEpO1xcbiBcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjJUMDY6Mzg6MTEuMDI0ODAzMzUxWiIsIlNlcSI6MiwiTmVzdGluZyI6MSwiVHlwZSI6ImFnZW50IiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiYmVzdC1leHBlbnNpdmUiLCJEdXJhdGlvbiI6NDY2NTA2NTIyOCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggb25seSBtb2RpZmllcyBLVk0gc2VsZnRlc3RzICh0b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy8pLCB3aGljaCBhcmUgdXNlcnNwYWNlIHRlc3QgcHJvZ3JhbXMgYW5kIGRvIG5vdCBjaGFuZ2UgYW55IGZ1bmN0aW9uYWwga2VybmVsIGNvZGUgdGhhdCBjYW4gYmUgZnV6emVkLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiWW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuXG5Zb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZVxuaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLlxuXG5JTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW5cbnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseVxudXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy5cblxuUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczpcbi0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy5cbi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuXG4tIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy5cbi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLFxuZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLlxuXG5JZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoXG50b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS5cblxuV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086XG4xLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLlxuICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuXG4yLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS5cbiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy5cbiAgIERvIG5vdCBsaXN0IHRvbyBnZW5lcmljIGNvbmZpZ3MgKHdlIGFscmVhZHkgaGF2ZSB0aGVtIGVuYWJsZWQpLiBPbmx5IGxpc3QgdGhvc2UgdGhhdFxuICAgc3BlY2lmaWNhbGx5IGNvdmVyIHRoZSBtb2RpZmllZCBjb2RlLiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3Mgb3V0cHV0IGFycmF5LFxuICAgYW5kIERPIE5PVCBhZGQgYSAnQ09ORklHXycgcHJlZml4IChlLmcuLCByZXR1cm4gXCJORVRfSVBWNFwiIGluc3RlYWQgb2YgXCJDT05GSUdfTkVUX0lQVjRcIikuXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCA4OThmNjVmODIwYWNiZjRlNmEyOWYyY2M5MTI0OWNmNWI4NTg0NDc2XG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFdlZCBKdWwgMjIgMDY6Mzg6MDggMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9rdm0vbGliL3Jpc2N2L3Byb2Nlc3Nvci5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMva3ZtL2xpYi9yaXNjdi9wcm9jZXNzb3IuY1xuaW5kZXggZGVkNTQyOWYzNDQ4M2QuLjYyZWZkMDdlNTYzOWQwIDEwMDY0NFxuLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMva3ZtL2xpYi9yaXNjdi9wcm9jZXNzb3IuY1xuKysrIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMva3ZtL2xpYi9yaXNjdi9wcm9jZXNzb3IuY1xuQEAgLTE3LDYgKzE3LDkgQEBcbiBcbiBzdGF0aWMgZ3ZhX3QgZXhjZXB0aW9uX2hhbmRsZXJzO1xuIFxuKy8qIFRydWUgaWYgS1ZNIGFsbG93cyB0aGUgR3Vlc3QgdG8gdXNlIHRoZSBWICh2ZWN0b3IpIGV4dGVuc2lvbiAqL1xuK3N0YXRpYyBib29sIHZfYXZhaWxhYmxlO1xuK1xuIGJvb2wgX192Y3B1X2hhc19leHQoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCB1NjQgZXh0KVxuIHtcbiBcdHVuc2lnbmVkIGxvbmcgdmFsdWUgPSAwO1xuQEAgLTI5NywxNCArMzAwLDYgQEAgdm9pZCB2Y3B1X2FyY2hfZHVtcChGSUxFICpzdHJlYW0sIHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwgdTggaW5kZW50KVxuIFx0XHRcIiBUMzogMHglMDE2bHggICBUNDogMHglMDE2bHggVDU6IDB4JTAxNmx4IFQ2OiAweCUwMTZseFxcblwiLFxuIFx0XHRjb3JlLnJlZ3MudDMsIGNvcmUucmVncy50NCwgY29yZS5yZWdzLnQ1LCBjb3JlLnJlZ3MudDYpO1xuIH1cbi1cbi1zdGF0aWMgdm9pZCBfX2FsaWduZWQoMTYpIGd1ZXN0X3VuZXhwX3RyYXAodm9pZClcbi17XG4tXHRzYmlfZWNhbGwoS1ZNX1JJU0NWX1NFTEZURVNUU19TQklfRVhULFxuLVx0XHQgIEtWTV9SSVNDVl9TRUxGVEVTVFNfU0JJX1VORVhQLFxuLVx0XHQgIDAsIDAsIDAsIDAsIDAsIDApO1xuLX1cbi1cbiB2b2lkIHZjcHVfYXJjaF9zZXRfZW50cnlfcG9pbnQoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCB2b2lkICpndWVzdF9jb2RlKVxuIHtcbiBcdHZjcHVfc2V0X3JlZyh2Y3B1LCBSSVNDVl9DT1JFX1JFRyhyZWdzLnBjKSwgKHVuc2lnbmVkIGxvbmcpZ3Vlc3RfY29kZSk7XG5AQCAtMzQ4LDggKzM0MywyMyBAQCBzdHJ1Y3Qga3ZtX3ZjcHUgKnZtX2FyY2hfdmNwdV9hZGQoc3RydWN0IGt2bV92bSAqdm0sIHUzMiB2Y3B1X2lkKVxuIFx0LyogU2V0dXAgc3NjcmF0Y2ggZm9yIGd1ZXN0X2dldF92Y3B1aWQoKSAqL1xuIFx0dmNwdV9zZXRfcmVnKHZjcHUsIFJJU0NWX0dFTkVSQUxfQ1NSX1JFRyhzc2NyYXRjaCksIHZjcHVfaWQpO1xuIFxuLVx0LyogU2V0dXAgZGVmYXVsdCBleGNlcHRpb24gdmVjdG9yIG9mIGd1ZXN0ICovXG4tXHR2Y3B1X3NldF9yZWcodmNwdSwgUklTQ1ZfR0VORVJBTF9DU1JfUkVHKHN0dmVjKSwgKHVuc2lnbmVkIGxvbmcpZ3Vlc3RfdW5leHBfdHJhcCk7XG4rXHQvKlxuK1x0ICogRW5hYmxlIHRoZSBWICh2ZWN0b3IpIGV4dGVuc2lvbiBpbiBLVk0gc28gdGhhdCB0aGUgY29tcGlsZXIgY2FuXG4rXHQgKiBzYWZlbHkgZ2VuZXJhdGUgdmVjdG9yIGluc3RydWN0aW9ucyAoZS5nLiB2aWEgLU8yIGF1dG8tXG4rXHQgKiB2ZWN0b3JpemF0aW9uKS4gU2lsZW50bHkgaWdub3JlIGVycm9yczsgdGhlIHRlc3Qgd2lsbCBzdGlsbCB3b3JrXG4rXHQgKiB3aXRob3V0IFYuXG4rXHQgKi9cbitcdF9fdmNwdV9zZXRfcmVnKHZjcHUsIFJJU0NWX0lTQV9FWFRfUkVHKEtWTV9SSVNDVl9JU0FfRVhUX1YpLCAxKTtcbitcdHZfYXZhaWxhYmxlID0gX192Y3B1X2hhc19pc2FfZXh0KHZjcHUsIEtWTV9SSVNDVl9JU0FfRVhUX1YpO1xuK1xuK1x0LypcbitcdCAqIFVzZSB0aGUgZnVsbCBleGNlcHRpb24gdmVjdG9yIHRhYmxlICh3aGljaCBwcm92aWRlcyBsYXp5IFZcbitcdCAqIGV4dGVuc2lvbiBlbmFibGVtZW50IGZvciBFWENfSU5TVF9JTExFR0FMIGluIHJvdXRlX2V4Y2VwdGlvbilcbitcdCAqIGFzIHRoZSBkZWZhdWx0IGV4Y2VwdGlvbiBoYW5kbGVyLiB2bV9pbml0X3ZlY3Rvcl90YWJsZXMoKSBpc1xuK1x0ICogaWRlbXBvdGVudDsgdGVzdHMgdGhhdCBjYWxsIGl0IGFnYWluIHdpbGwgZ2V0IGEgbm8tb3AuXG4rXHQgKi9cbitcdHZtX2luaXRfdmVjdG9yX3RhYmxlcyh2bSk7XG4rXHR2Y3B1X2luaXRfdmVjdG9yX3RhYmxlcyh2Y3B1KTtcbiBcbiBcdHJldHVybiB2Y3B1O1xuIH1cbkBAIC00MzIsNiArNDQyLDMzIEBAIHZvaWQgcm91dGVfZXhjZXB0aW9uKHN0cnVjdCBwdF9yZWdzICpyZWdzKVxuIFx0XHRlYyA9IDA7XG4gXHR9XG4gXG4rXHQvKlxuK1x0ICogSGFuZGxlIFYgKHZlY3RvcikgZXh0ZW5zaW9uIGxhenkgZW5hYmxlbWVudCBiZWZvcmUgYW55XG4rXHQgKiByZWdpc3RlcmVkIGhhbmRsZXIuIFRoZSBjb21waWxlcidzIGRlZmF1bHQgbWFyY2ggbWF5IGluY2x1ZGVcbitcdCAqIFYsIGFuZCBhdXRvLXZlY3Rvcml6YXRpb24gZ2VuZXJhdGVzIHZlY3RvciBpbnN0cnVjdGlvbnMgdGhhdFxuK1x0ICogdHJpZ2dlciBFWENfSU5TVF9JTExFR0FMIHdoZW4gVlMgKFZlY3RvciBTdGF0dXMpIGluIHNzdGF0dXNcbitcdCAqIGlzIE9mZi4gRW5hYmxlIFZTIHRvIEluaXRpYWwgYW5kIHJlLWV4ZWN1dGUgdGhlIGZhdWx0aW5nXG4rXHQgKiBpbnN0cnVjdGlvbiwgbWltaWNraW5nIHdoYXQgYSByZWFsIE9TIGtlcm5lbCBkb2VzLlxuK1x0ICpcbitcdCAqIFRoaXMgY2hlY2sgcnVucyBiZWZvcmUgYW55IHRlc3QtcmVnaXN0ZXJlZCBoYW5kbGVyLCBzbyB0ZXN0c1xuK1x0ICogdGhhdCBpbnN0YWxsIHRoZWlyIG93biBFWENfSU5TVF9JTExFR0FMIGhhbmRsZXIgKGUuZy5cbitcdCAqIHNiaV9wbXVfdGVzdCkgYXJlIG5vdCBhZmZlY3RlZC5cbitcdCAqL1xuK1x0aWYgKCEocmVncy1cdTAwM2VjYXVzZSBcdTAwMjYgQ0FVU0VfSVJRX0ZMQUcpIFx1MDAyNlx1MDAyNiBlYyA9PSBFWENfSU5TVF9JTExFR0FMKSB7XG4rXHRcdC8qXG4rXHRcdCAqIElmIEtWTSBzdXBwb3J0cyB0aGUgViBleHRlbnNpb24gZm9yIHRoaXMgR3Vlc3QgYW5kIFZTXG4rXHRcdCAqIChWZWN0b3IgU3RhdHVzKSBpcyBPZmYgaW4gdGhlIHNhdmVkIHNzdGF0dXMsIHNldCBpdCB0b1xuK1x0XHQgKiBJbml0aWFsIGFuZCBzcmV0IHRvIHJlLWV4ZWN1dGUgdGhlIGZhdWx0aW5nIGluc3RydWN0aW9uLlxuK1x0XHQgKiBVc2UgcmVncy1cdTAwM2VzdGF0dXMgKHNhdmVkIGF0IGV4Y2VwdGlvbiBlbnRyeSkgcmF0aGVyIHRoYW5cbitcdFx0ICogcmVhZGluZyB0aGUgbGl2ZSBDU1IgdG8gYXZvaWQgYSBUT0NUT1UgcmFjZSB3aXRoIG5lc3RlZFxuK1x0XHQgKiBleGNlcHRpb25zLlxuK1x0XHQgKi9cbitcdFx0aWYgKHZfYXZhaWxhYmxlIFx1MDAyNlx1MDAyNiAhKHJlZ3MtXHUwMDNlc3RhdHVzIFx1MDAyNiBTUl9WUykpIHtcbitcdFx0XHRyZWdzLVx1MDAzZXN0YXR1cyB8PSBTUl9WU19JTklUSUFMO1xuK1x0XHRcdHJldHVybjtcbitcdFx0fVxuK1x0fVxuK1xuIFx0aWYgKGhhbmRsZXJzIFx1MDAyNlx1MDAyNiBoYW5kbGVycy1cdTAwM2VleGNlcHRpb25faGFuZGxlcnNbdmVjdG9yXVtlY10pXG4gXHRcdHJldHVybiBoYW5kbGVycy1cdTAwM2VleGNlcHRpb25faGFuZGxlcnNbdmVjdG9yXVtlY10ocmVncyk7XG4gXG5AQCAtNDQ4LDYgKzQ4NSw5IEBAIHZvaWQgdmNwdV9pbml0X3ZlY3Rvcl90YWJsZXMoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KVxuIFxuIHZvaWQgdm1faW5pdF92ZWN0b3JfdGFibGVzKHN0cnVjdCBrdm1fdm0gKnZtKVxuIHtcbitcdGlmICh2bS1cdTAwM2VoYW5kbGVycylcbitcdFx0cmV0dXJuO1xuK1xuIFx0dm0tXHUwMDNlaGFuZGxlcnMgPSBfX3ZtX2FsbG9jKHZtLCBzaXplb2Yoc3RydWN0IGhhbmRsZXJzKSwgdm0tXHUwMDNlcGFnZV9zaXplLFxuIFx0XHRcdFx0ICBNRU1fUkVHSU9OX0RBVEEpO1xuIFxuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjJUMDY6Mzg6MTEuMDI0ODA1MzQxWiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDY2NDk5MDIzOCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipXb3J0aEZ1enppbmc9ZmFsc2UgLSBTZWxmdGVzdCBNb2RpZmljYXRpb24qKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIHBhdGNoIGFuZCBpdCdzIG1vZGlmeWluZyBgdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMva3ZtL2xpYi9yaXNjdi9wcm9jZXNzb3IuY2AuIFJpZ2h0IGF3YXksIHRoaXMganVtcHMgb3V0IHRvIG1lIGFzIGEgc2VsZnRlc3QgZmlsZSwgbm90IGFjdHVhbCBrZXJuZWwgY29kZS4gVGhlIHByb21wdCBzcGVjaWZpY2FsbHkgc2F5cyBcIlJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnMgbW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy5cIiBJdCBkb2Vzbid0IGV4cGxpY2l0bHkgKm1lbnRpb24qIHNlbGZ0ZXN0cywgYnV0IHRoZSBzcGlyaXQgb2YgdGhhdCBydWxlIGFwcGxpZXMgaGVyZS4gVGhlc2Ugc2VsZnRlc3RzIGFyZW4ndCBwYXJ0IG9mIHRoZSBjb3JlIGtlcm5lbCB0aGF0IFN5emthbGxlciBmdXp6ZXM7IFN5emthbGxlcidzIGpvYiBpcyB0aGUga2VybmVsIGl0c2VsZi5cblxuTGV0IG1lIGp1c3QgZG91YmxlLWNoZWNrLCB0aG91Z2gsIG1ha2Ugc3VyZSBub3RoaW5nIGVsc2UgZ290IHRvdWNoZWQgaW4gdGhlIGRpZmYuIE5vcGUsIGp1c3QgdGhlIG9uZSBmaWxlLiBOb3cgSSdtIHJlY2FsbGluZyB0aGUgcHJvbXB0OiBcIklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2ggdG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuXCIgVGhpcyBkZWZpbml0ZWx5ICpkb2Vzbid0KiBmaXQgdGhhdCBkZXNjcmlwdGlvbi4gU2VsZnRlc3RzIGFyZSB1c2Vyc3BhY2UgdG9vbHMsIGluZGVwZW5kZW50IGZyb20gdGhlIGtlcm5lbCwgYW5kIGV4aXN0IHRvIHZhbGlkYXRlIHRoZWlyIG9wZXJhdGlvbiBzZXBhcmF0ZWx5LlxuXG5UaGVyZWZvcmUsIGJlY2F1c2UgdGhpcyBpcyBwdXJlbHkgYSBzZWxmdGVzdCBtb2RpZmljYXRpb24sIGFuZCBkb2Vzbid0IGltcGFjdCByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIEknbSBnb2luZyB0byByZXR1cm4gYFdvcnRoRnV6emluZz1mYWxzZWAuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjMxMTEsIk91dHB1dFRva2VucyI6NzAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyNTMsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yMlQwNjozODoxNS42ODk3OTg2NTlaIiwiU2VxIjo0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjY3MjUwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG9ubHkgbW9kaWZpZXMgS1ZNIHNlbGZ0ZXN0cyAodG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvKSwgd2hpY2ggYXJlIHVzZXJzcGFjZSB0ZXN0IHByb2dyYW1zIGFuZCBkbyBub3QgY2hhbmdlIGFueSBmdW5jdGlvbmFsIGtlcm5lbCBjb2RlIHRoYXQgY2FuIGJlIGZ1enplZC5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG9ubHkgbW9kaWZpZXMgS1ZNIHNlbGZ0ZXN0cyAodG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvKSwgd2hpY2ggYXJlIHVzZXJzcGFjZSB0ZXN0IHByb2dyYW1zIGFuZCBkbyBub3QgY2hhbmdlIGFueSBmdW5jdGlvbmFsIGtlcm5lbCBjb2RlIHRoYXQgY2FuIGJlIGZ1enplZC5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0udG9rZW5zIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnVG9vbER1ciA9IHN0YXRzLnRvb2wuY291bnQgPiAwID8gKHN0YXRzLnRvb2wuZHVyYXRpb24gLyBzdGF0cy50b29sLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCgkJCWNvbnN0IGxsbVN1bWFyeUNlbGxzID0gW3N0YXRzLmxsbS5jb3VudCwgc3RhdHMubGxtLnRva2VucywgYXZnTGxtVG9rZW4sIHN0YXRzLmxsbS5kdXJhdGlvbiwgYXZnTGxtRHVyXTsKCQkJY29uc3QgdG9vbFN1bW1hcnlDZWxscyA9IFtzdGF0cy50b29sLmNvdW50LCBzdGF0cy50b29sLmR1cmF0aW9uLCBhdmdUb29sRHVyXTsKCgkJCWNvbnN0IGxsbVN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xsbV9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJbGxtU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IGxsbVRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJbGxtU3VtYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCWxsbVRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCWxsbVN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKGxsbVRyKTsKCgkJCWNvbnN0IHRvb2xTdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b29sX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQl0b29sU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IHRvb2xUciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCXRvb2xTdW1tYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCXRvb2xUci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQl0b29sU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQodG9vbFRyKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgZmlsdGVyZWRTdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gWyJsbG0iLCAidG9vbCJdLmluY2x1ZGVzKGQuVHlwZSkpOwoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdEdXJhdGlvbicpOwoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOyAKCgkJCWZpbHRlcmVkU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCQoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7CgkJCQlsZXQgdG9vbHRpcCA9IHMuTmFtZTsKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iICYmIHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCQkJCWRhdGEuYWRkUm93KFtgJHtzLlNlcX1gLCBkdXIsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUaW1lIENvbnN1bXB0aW9uIG9mIExMTS9Ub29sIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0vVG9vbCBTdGVwcycsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdTZWNvbmRzJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkdXJhdGlvbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgbGxtU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IGQuVHlwZSA9PT0gImxsbSIpOwoJCQlpZiAobGxtU3RlcHMubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdUb2tlbnMnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAnc3R5bGUnfSk7CQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOwkKCgkJCWNvbnN0IGFnZW50Q29sb3JzID0ge307CgkJCWNvbnN0IHBhbGV0dGUgPSBbJyM0Mjg1RjQnLCAnI0RCNDQzNycsICcjRjRCNDAwJywgJyMwRjlENTgnLCAnI0FCNDdCQycsICcjMDBBQ0MxJ107CgkJCWxldCBjb2xvcklkeCA9IDA7CgkJCWNvbnN0IGFnZW50TExNQ291bnRzID0ge307CgkJCWxsbVN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQlpZiAoIWFnZW50Q29sb3JzW3MuTmFtZV0pIHsKCQkJCQlhZ2VudENvbG9yc1tzLk5hbWVdID0gcGFsZXR0ZVtjb2xvcklkeCAlIHBhbGV0dGUubGVuZ3RoXTsKCQkJCQljb2xvcklkeCsrOwoJCQkJfQoKCQkJCWFnZW50TExNQ291bnRzW3MuTmFtZV0gPSAoYWdlbnRMTE1Db3VudHNbcy5OYW1lXSB8fCAwKSArIDE7CgkJCQljb25zdCBsYWJlbCA9IGAke3MuTmFtZX0tJHthZ2VudExMTUNvdW50c1tzLk5hbWVdfWA7CgkJCQljb25zdCB0b3RhbFRva2VucyA9IHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnM7CgkJCQljb25zdCBzdHlsZSA9IGBjb2xvcjogJHthZ2VudENvbG9yc1tzLk5hbWVdfWA7CgkJCQlsZXQgdG9vbHRpcCA9IGBUb3RhbCBUb2tlbnM6ICR7dG90YWxUb2tlbnN9XG4oSW46ICR7cy5JbnB1dFRva2Vuc30sIE91dDogJHtzLk91dHB1dFRva2Vuc30sIFRob3VnaHRzOiAke3MuT3V0cHV0VGhvdWdodHNUb2tlbnN9KWA7CgkJCQlpZiAocy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoKCQkJCWRhdGEuYWRkUm93KFtsYWJlbCwgdG90YWxUb2tlbnMsIHN0eWxlLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVG9rZW4gQ29uc3VtcHRpb24gYnkgTExNIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0gQ2FsbCBTZXF1ZW5jZScsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdDb25zdW1lZCBUb2tlbnMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rva2VuX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgkJbGV0IGFsbEV4cGFuZGVkID0gZmFsc2U7CgkJZnVuY3Rpb24gdG9nZ2xlQWxsRGV0YWlscygpIHsKCQkJYWxsRXhwYW5kZWQgPSAhYWxsRXhwYW5kZWQ7CgkJCWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2RldGFpbHMnKS5mb3JFYWNoKGQgPT4gewoJCQkJaWYgKGFsbEV4cGFuZGVkKSBkLnNldEF0dHJpYnV0ZSgnb3BlbicsICcnKTsKCQkJCWVsc2UgZC5yZW1vdmVBdHRyaWJ1dGUoJ29wZW4nKTsKCQkJfSk7CgkJfQoJPC9zY3JpcHQ+CgoKPC9ib2R5Pgo8L2h0bWw+Cg==" },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-workflow4b6k2[0].run-triage(0) Phase: Succeeded StartedAt: 2026-07-22 05:58:52 +0000 UTC FinishedAt: 2026-07-22 06:38:17 +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+CgkJCTx0ZD4yMDI2LzA3LzIyIDA2OjM4PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG9ubHkgbW9kaWZpZXMgS1ZNIHNlbGZ0ZXN0cyAodG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvKSwgd2hpY2ggYXJlIHVzZXJzcGFjZSB0ZXN0IHByb2dyYW1zIGFuZCBkbyBub3QgY2hhbmdlIGFueSBmdW5jdGlvbmFsIGtlcm5lbCBjb2RlIHRoYXQgY2FuIGJlIGZ1enplZC4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MS8xPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjIgMDY6Mzg8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPnJlYWQtcGF0Y2gtZGlmZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1BhdGNoRGlmZiYjMzQ7OiAmIzM0O2NvbW1pdCA4OThmNjVmODIwYWNiZjRlNmEyOWYyY2M5MTI0OWNmNWI4NTg0NDc2XG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFdlZCBKdWwgMjIgMDY6Mzg6MDggMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMva3ZtL2xpYi9yaXNjdi9wcm9jZXNzb3IuYyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2t2bS9saWIvcmlzY3YvcHJvY2Vzc29yLmNcbmluZGV4IGRlZDU0MjlmMzQ0ODNkLi42MmVmZDA3ZTU2MzlkMCAxMDA2NDRcbi0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2t2bS9saWIvcmlzY3YvcHJvY2Vzc29yLmNcbiYjNDM7JiM0MzsmIzQzOyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2t2bS9saWIvcmlzY3YvcHJvY2Vzc29yLmNcbkBAIC0xNyw2ICYjNDM7MTcsOSBAQFxuIFxuIHN0YXRpYyBndmFfdCBleGNlcHRpb25faGFuZGxlcnM7XG4gXG4mIzQzOy8qIFRydWUgaWYgS1ZNIGFsbG93cyB0aGUgR3Vlc3QgdG8gdXNlIHRoZSBWICh2ZWN0b3IpIGV4dGVuc2lvbiAqL1xuJiM0MztzdGF0aWMgYm9vbCB2X2F2YWlsYWJsZTtcbiYjNDM7XG4gYm9vbCBfX3ZjcHVfaGFzX2V4dChzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIHU2NCBleHQpXG4ge1xuIFx0dW5zaWduZWQgbG9uZyB2YWx1ZSA9IDA7XG5AQCAtMjk3LDE0ICYjNDM7MzAwLDYgQEAgdm9pZCB2Y3B1X2FyY2hfZHVtcChGSUxFICpzdHJlYW0sIHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwgdTggaW5kZW50KVxuIFx0XHRcJiMzNDsgVDM6IDB4JTAxNmx4ICAgVDQ6IDB4JTAxNmx4IFQ1OiAweCUwMTZseCBUNjogMHglMDE2bHhcXG5cJiMzNDssXG4gXHRcdGNvcmUucmVncy50MywgY29yZS5yZWdzLnQ0LCBjb3JlLnJlZ3MudDUsIGNvcmUucmVncy50Nik7XG4gfVxuLVxuLXN0YXRpYyB2b2lkIF9fYWxpZ25lZCgxNikgZ3Vlc3RfdW5leHBfdHJhcCh2b2lkKVxuLXtcbi1cdHNiaV9lY2FsbChLVk1fUklTQ1ZfU0VMRlRFU1RTX1NCSV9FWFQsXG4tXHRcdCAgS1ZNX1JJU0NWX1NFTEZURVNUU19TQklfVU5FWFAsXG4tXHRcdCAgMCwgMCwgMCwgMCwgMCwgMCk7XG4tfVxuLVxuIHZvaWQgdmNwdV9hcmNoX3NldF9lbnRyeV9wb2ludChzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIHZvaWQgKmd1ZXN0X2NvZGUpXG4ge1xuIFx0dmNwdV9zZXRfcmVnKHZjcHUsIFJJU0NWX0NPUkVfUkVHKHJlZ3MucGMpLCAodW5zaWduZWQgbG9uZylndWVzdF9jb2RlKTtcbkBAIC0zNDgsOCAmIzQzOzM0MywyMyBAQCBzdHJ1Y3Qga3ZtX3ZjcHUgKnZtX2FyY2hfdmNwdV9hZGQoc3RydWN0IGt2bV92bSAqdm0sIHUzMiB2Y3B1X2lkKVxuIFx0LyogU2V0dXAgc3NjcmF0Y2ggZm9yIGd1ZXN0X2dldF92Y3B1aWQoKSAqL1xuIFx0dmNwdV9zZXRfcmVnKHZjcHUsIFJJU0NWX0dFTkVSQUxfQ1NSX1JFRyhzc2NyYXRjaCksIHZjcHVfaWQpO1xuIFxuLVx0LyogU2V0dXAgZGVmYXVsdCBleGNlcHRpb24gdmVjdG9yIG9mIGd1ZXN0ICovXG4tXHR2Y3B1X3NldF9yZWcodmNwdSwgUklTQ1ZfR0VORVJBTF9DU1JfUkVHKHN0dmVjKSwgKHVuc2lnbmVkIGxvbmcpZ3Vlc3RfdW5leHBfdHJhcCk7XG4mIzQzO1x0LypcbiYjNDM7XHQgKiBFbmFibGUgdGhlIFYgKHZlY3RvcikgZXh0ZW5zaW9uIGluIEtWTSBzbyB0aGF0IHRoZSBjb21waWxlciBjYW5cbiYjNDM7XHQgKiBzYWZlbHkgZ2VuZXJhdGUgdmVjdG9yIGluc3RydWN0aW9ucyAoZS5nLiB2aWEgLU8yIGF1dG8tXG4mIzQzO1x0ICogdmVjdG9yaXphdGlvbikuIFNpbGVudGx5IGlnbm9yZSBlcnJvcnM7IHRoZSB0ZXN0IHdpbGwgc3RpbGwgd29ya1xuJiM0MztcdCAqIHdpdGhvdXQgVi5cbiYjNDM7XHQgKi9cbiYjNDM7XHRfX3ZjcHVfc2V0X3JlZyh2Y3B1LCBSSVNDVl9JU0FfRVhUX1JFRyhLVk1fUklTQ1ZfSVNBX0VYVF9WKSwgMSk7XG4mIzQzO1x0dl9hdmFpbGFibGUgPSBfX3ZjcHVfaGFzX2lzYV9leHQodmNwdSwgS1ZNX1JJU0NWX0lTQV9FWFRfVik7XG4mIzQzO1xuJiM0MztcdC8qXG4mIzQzO1x0ICogVXNlIHRoZSBmdWxsIGV4Y2VwdGlvbiB2ZWN0b3IgdGFibGUgKHdoaWNoIHByb3ZpZGVzIGxhenkgVlxuJiM0MztcdCAqIGV4dGVuc2lvbiBlbmFibGVtZW50IGZvciBFWENfSU5TVF9JTExFR0FMIGluIHJvdXRlX2V4Y2VwdGlvbilcbiYjNDM7XHQgKiBhcyB0aGUgZGVmYXVsdCBleGNlcHRpb24gaGFuZGxlci4gdm1faW5pdF92ZWN0b3JfdGFibGVzKCkgaXNcbiYjNDM7XHQgKiBpZGVtcG90ZW50OyB0ZXN0cyB0aGF0IGNhbGwgaXQgYWdhaW4gd2lsbCBnZXQgYSBuby1vcC5cbiYjNDM7XHQgKi9cbiYjNDM7XHR2bV9pbml0X3ZlY3Rvcl90YWJsZXModm0pO1xuJiM0MztcdHZjcHVfaW5pdF92ZWN0b3JfdGFibGVzKHZjcHUpO1xuIFxuIFx0cmV0dXJuIHZjcHU7XG4gfVxuQEAgLTQzMiw2ICYjNDM7NDQyLDMzIEBAIHZvaWQgcm91dGVfZXhjZXB0aW9uKHN0cnVjdCBwdF9yZWdzICpyZWdzKVxuIFx0XHRlYyA9IDA7XG4gXHR9XG4gXG4mIzQzO1x0LypcbiYjNDM7XHQgKiBIYW5kbGUgViAodmVjdG9yKSBleHRlbnNpb24gbGF6eSBlbmFibGVtZW50IGJlZm9yZSBhbnlcbiYjNDM7XHQgKiByZWdpc3RlcmVkIGhhbmRsZXIuIFRoZSBjb21waWxlciYjMzk7cyBkZWZhdWx0IG1hcmNoIG1heSBpbmNsdWRlXG4mIzQzO1x0ICogViwgYW5kIGF1dG8tdmVjdG9yaXphdGlvbiBnZW5lcmF0ZXMgdmVjdG9yIGluc3RydWN0aW9ucyB0aGF0XG4mIzQzO1x0ICogdHJpZ2dlciBFWENfSU5TVF9JTExFR0FMIHdoZW4gVlMgKFZlY3RvciBTdGF0dXMpIGluIHNzdGF0dXNcbiYjNDM7XHQgKiBpcyBPZmYuIEVuYWJsZSBWUyB0byBJbml0aWFsIGFuZCByZS1leGVjdXRlIHRoZSBmYXVsdGluZ1xuJiM0MztcdCAqIGluc3RydWN0aW9uLCBtaW1pY2tpbmcgd2hhdCBhIHJlYWwgT1Mga2VybmVsIGRvZXMuXG4mIzQzO1x0ICpcbiYjNDM7XHQgKiBUaGlzIGNoZWNrIHJ1bnMgYmVmb3JlIGFueSB0ZXN0LXJlZ2lzdGVyZWQgaGFuZGxlciwgc28gdGVzdHNcbiYjNDM7XHQgKiB0aGF0IGluc3RhbGwgdGhlaXIgb3duIEVYQ19JTlNUX0lMTEVHQUwgaGFuZGxlciAoZS5nLlxuJiM0MztcdCAqIHNiaV9wbXVfdGVzdCkgYXJlIG5vdCBhZmZlY3RlZC5cbiYjNDM7XHQgKi9cbiYjNDM7XHRpZiAoIShyZWdzLVx1MDAzZWNhdXNlIFx1MDAyNiBDQVVTRV9JUlFfRkxBRykgXHUwMDI2XHUwMDI2IGVjID09IEVYQ19JTlNUX0lMTEVHQUwpIHtcbiYjNDM7XHRcdC8qXG4mIzQzO1x0XHQgKiBJZiBLVk0gc3VwcG9ydHMgdGhlIFYgZXh0ZW5zaW9uIGZvciB0aGlzIEd1ZXN0IGFuZCBWU1xuJiM0MztcdFx0ICogKFZlY3RvciBTdGF0dXMpIGlzIE9mZiBpbiB0aGUgc2F2ZWQgc3N0YXR1cywgc2V0IGl0IHRvXG4mIzQzO1x0XHQgKiBJbml0aWFsIGFuZCBzcmV0IHRvIHJlLWV4ZWN1dGUgdGhlIGZhdWx0aW5nIGluc3RydWN0aW9uLlxuJiM0MztcdFx0ICogVXNlIHJlZ3MtXHUwMDNlc3RhdHVzIChzYXZlZCBhdCBleGNlcHRpb24gZW50cnkpIHJhdGhlciB0aGFuXG4mIzQzO1x0XHQgKiByZWFkaW5nIHRoZSBsaXZlIENTUiB0byBhdm9pZCBhIFRPQ1RPVSByYWNlIHdpdGggbmVzdGVkXG4mIzQzO1x0XHQgKiBleGNlcHRpb25zLlxuJiM0MztcdFx0ICovXG4mIzQzO1x0XHRpZiAodl9hdmFpbGFibGUgXHUwMDI2XHUwMDI2ICEocmVncy1cdTAwM2VzdGF0dXMgXHUwMDI2IFNSX1ZTKSkge1xuJiM0MztcdFx0XHRyZWdzLVx1MDAzZXN0YXR1cyB8PSBTUl9WU19JTklUSUFMO1xuJiM0MztcdFx0XHRyZXR1cm47XG4mIzQzO1x0XHR9XG4mIzQzO1x0fVxuJiM0MztcbiBcdGlmIChoYW5kbGVycyBcdTAwMjZcdTAwMjYgaGFuZGxlcnMtXHUwMDNlZXhjZXB0aW9uX2hhbmRsZXJzW3ZlY3Rvcl1bZWNdKVxuIFx0XHRyZXR1cm4gaGFuZGxlcnMtXHUwMDNlZXhjZXB0aW9uX2hhbmRsZXJzW3ZlY3Rvcl1bZWNdKHJlZ3MpO1xuIFxuQEAgLTQ0OCw2ICYjNDM7NDg1LDkgQEAgdm9pZCB2Y3B1X2luaXRfdmVjdG9yX3RhYmxlcyhzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpXG4gXG4gdm9pZCB2bV9pbml0X3ZlY3Rvcl90YWJsZXMoc3RydWN0IGt2bV92bSAqdm0pXG4ge1xuJiM0MztcdGlmICh2bS1cdTAwM2VoYW5kbGVycylcbiYjNDM7XHRcdHJldHVybjtcbiYjNDM7XG4gXHR2bS1cdTAwM2VoYW5kbGVycyA9IF9fdm1fYWxsb2Modm0sIHNpemVvZihzdHJ1Y3QgaGFuZGxlcnMpLCB2bS1cdTAwM2VwYWdlX3NpemUsXG4gXHRcdFx0XHQgIE1FTV9SRUdJT05fREFUQSk7XG4gXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjIgMDY6Mzg8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+YmVzdC1leHBlbnNpdmU8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG9ubHkgbW9kaWZpZXMgS1ZNIHNlbGZ0ZXN0cyAodG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvKSwgd2hpY2ggYXJlIHVzZXJzcGFjZSB0ZXN0IHByb2dyYW1zIGFuZCBkbyBub3QgY2hhbmdlIGFueSBmdW5jdGlvbmFsIGtlcm5lbCBjb2RlIHRoYXQgY2FuIGJlIGZ1enplZC4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZQppZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5CnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuCgpSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOgotIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuCi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuCi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LgotIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwKZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLgoKSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaAp0b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS4KCldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOgoxLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLgogICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy4KMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuCiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy4KICAgRG8gbm90IGxpc3QgdG9vIGdlbmVyaWMgY29uZmlncyAod2UgYWxyZWFkeSBoYXZlIHRoZW0gZW5hYmxlZCkuIE9ubHkgbGlzdCB0aG9zZSB0aGF0CiAgIHNwZWNpZmljYWxseSBjb3ZlciB0aGUgbW9kaWZpZWQgY29kZS4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzIG91dHB1dCBhcnJheSwKICAgYW5kIERPIE5PVCBhZGQgYSAmIzM5O0NPTkZJR18mIzM5OyBwcmVmaXggKGUuZy4sIHJldHVybiAmIzM0O05FVF9JUFY0JiMzNDsgaW5zdGVhZCBvZiAmIzM0O0NPTkZJR19ORVRfSVBWNCYjMzQ7KS4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IDg5OGY2NWY4MjBhY2JmNGU2YTI5ZjJjYzkxMjQ5Y2Y1Yjg1ODQ0NzYKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgV2VkIEp1bCAyMiAwNjozODowOCAyMDI2ICYjNDM7MDAwMAoKICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldwoKZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2t2bS9saWIvcmlzY3YvcHJvY2Vzc29yLmMgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9rdm0vbGliL3Jpc2N2L3Byb2Nlc3Nvci5jCmluZGV4IGRlZDU0MjlmMzQ0ODNkLi42MmVmZDA3ZTU2MzlkMCAxMDA2NDQKLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMva3ZtL2xpYi9yaXNjdi9wcm9jZXNzb3IuYwomIzQzOyYjNDM7JiM0MzsgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9rdm0vbGliL3Jpc2N2L3Byb2Nlc3Nvci5jCkBAIC0xNyw2ICYjNDM7MTcsOSBAQAogCiBzdGF0aWMgZ3ZhX3QgZXhjZXB0aW9uX2hhbmRsZXJzOwogCiYjNDM7LyogVHJ1ZSBpZiBLVk0gYWxsb3dzIHRoZSBHdWVzdCB0byB1c2UgdGhlIFYgKHZlY3RvcikgZXh0ZW5zaW9uICovCiYjNDM7c3RhdGljIGJvb2wgdl9hdmFpbGFibGU7CiYjNDM7CiBib29sIF9fdmNwdV9oYXNfZXh0KHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwgdTY0IGV4dCkKIHsKIAl1bnNpZ25lZCBsb25nIHZhbHVlID0gMDsKQEAgLTI5NywxNCAmIzQzOzMwMCw2IEBAIHZvaWQgdmNwdV9hcmNoX2R1bXAoRklMRSAqc3RyZWFtLCBzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIHU4IGluZGVudCkKIAkJJiMzNDsgVDM6IDB4JTAxNmx4ICAgVDQ6IDB4JTAxNmx4IFQ1OiAweCUwMTZseCBUNjogMHglMDE2bHhcbiYjMzQ7LAogCQljb3JlLnJlZ3MudDMsIGNvcmUucmVncy50NCwgY29yZS5yZWdzLnQ1LCBjb3JlLnJlZ3MudDYpOwogfQotCi1zdGF0aWMgdm9pZCBfX2FsaWduZWQoMTYpIGd1ZXN0X3VuZXhwX3RyYXAodm9pZCkKLXsKLQlzYmlfZWNhbGwoS1ZNX1JJU0NWX1NFTEZURVNUU19TQklfRVhULAotCQkgIEtWTV9SSVNDVl9TRUxGVEVTVFNfU0JJX1VORVhQLAotCQkgIDAsIDAsIDAsIDAsIDAsIDApOwotfQotCiB2b2lkIHZjcHVfYXJjaF9zZXRfZW50cnlfcG9pbnQoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCB2b2lkICpndWVzdF9jb2RlKQogewogCXZjcHVfc2V0X3JlZyh2Y3B1LCBSSVNDVl9DT1JFX1JFRyhyZWdzLnBjKSwgKHVuc2lnbmVkIGxvbmcpZ3Vlc3RfY29kZSk7CkBAIC0zNDgsOCAmIzQzOzM0MywyMyBAQCBzdHJ1Y3Qga3ZtX3ZjcHUgKnZtX2FyY2hfdmNwdV9hZGQoc3RydWN0IGt2bV92bSAqdm0sIHUzMiB2Y3B1X2lkKQogCS8qIFNldHVwIHNzY3JhdGNoIGZvciBndWVzdF9nZXRfdmNwdWlkKCkgKi8KIAl2Y3B1X3NldF9yZWcodmNwdSwgUklTQ1ZfR0VORVJBTF9DU1JfUkVHKHNzY3JhdGNoKSwgdmNwdV9pZCk7CiAKLQkvKiBTZXR1cCBkZWZhdWx0IGV4Y2VwdGlvbiB2ZWN0b3Igb2YgZ3Vlc3QgKi8KLQl2Y3B1X3NldF9yZWcodmNwdSwgUklTQ1ZfR0VORVJBTF9DU1JfUkVHKHN0dmVjKSwgKHVuc2lnbmVkIGxvbmcpZ3Vlc3RfdW5leHBfdHJhcCk7CiYjNDM7CS8qCiYjNDM7CSAqIEVuYWJsZSB0aGUgViAodmVjdG9yKSBleHRlbnNpb24gaW4gS1ZNIHNvIHRoYXQgdGhlIGNvbXBpbGVyIGNhbgomIzQzOwkgKiBzYWZlbHkgZ2VuZXJhdGUgdmVjdG9yIGluc3RydWN0aW9ucyAoZS5nLiB2aWEgLU8yIGF1dG8tCiYjNDM7CSAqIHZlY3Rvcml6YXRpb24pLiBTaWxlbnRseSBpZ25vcmUgZXJyb3JzOyB0aGUgdGVzdCB3aWxsIHN0aWxsIHdvcmsKJiM0MzsJICogd2l0aG91dCBWLgomIzQzOwkgKi8KJiM0MzsJX192Y3B1X3NldF9yZWcodmNwdSwgUklTQ1ZfSVNBX0VYVF9SRUcoS1ZNX1JJU0NWX0lTQV9FWFRfViksIDEpOwomIzQzOwl2X2F2YWlsYWJsZSA9IF9fdmNwdV9oYXNfaXNhX2V4dCh2Y3B1LCBLVk1fUklTQ1ZfSVNBX0VYVF9WKTsKJiM0MzsKJiM0MzsJLyoKJiM0MzsJICogVXNlIHRoZSBmdWxsIGV4Y2VwdGlvbiB2ZWN0b3IgdGFibGUgKHdoaWNoIHByb3ZpZGVzIGxhenkgVgomIzQzOwkgKiBleHRlbnNpb24gZW5hYmxlbWVudCBmb3IgRVhDX0lOU1RfSUxMRUdBTCBpbiByb3V0ZV9leGNlcHRpb24pCiYjNDM7CSAqIGFzIHRoZSBkZWZhdWx0IGV4Y2VwdGlvbiBoYW5kbGVyLiB2bV9pbml0X3ZlY3Rvcl90YWJsZXMoKSBpcwomIzQzOwkgKiBpZGVtcG90ZW50OyB0ZXN0cyB0aGF0IGNhbGwgaXQgYWdhaW4gd2lsbCBnZXQgYSBuby1vcC4KJiM0MzsJICovCiYjNDM7CXZtX2luaXRfdmVjdG9yX3RhYmxlcyh2bSk7CiYjNDM7CXZjcHVfaW5pdF92ZWN0b3JfdGFibGVzKHZjcHUpOwogCiAJcmV0dXJuIHZjcHU7CiB9CkBAIC00MzIsNiAmIzQzOzQ0MiwzMyBAQCB2b2lkIHJvdXRlX2V4Y2VwdGlvbihzdHJ1Y3QgcHRfcmVncyAqcmVncykKIAkJZWMgPSAwOwogCX0KIAomIzQzOwkvKgomIzQzOwkgKiBIYW5kbGUgViAodmVjdG9yKSBleHRlbnNpb24gbGF6eSBlbmFibGVtZW50IGJlZm9yZSBhbnkKJiM0MzsJICogcmVnaXN0ZXJlZCBoYW5kbGVyLiBUaGUgY29tcGlsZXImIzM5O3MgZGVmYXVsdCBtYXJjaCBtYXkgaW5jbHVkZQomIzQzOwkgKiBWLCBhbmQgYXV0by12ZWN0b3JpemF0aW9uIGdlbmVyYXRlcyB2ZWN0b3IgaW5zdHJ1Y3Rpb25zIHRoYXQKJiM0MzsJICogdHJpZ2dlciBFWENfSU5TVF9JTExFR0FMIHdoZW4gVlMgKFZlY3RvciBTdGF0dXMpIGluIHNzdGF0dXMKJiM0MzsJICogaXMgT2ZmLiBFbmFibGUgVlMgdG8gSW5pdGlhbCBhbmQgcmUtZXhlY3V0ZSB0aGUgZmF1bHRpbmcKJiM0MzsJICogaW5zdHJ1Y3Rpb24sIG1pbWlja2luZyB3aGF0IGEgcmVhbCBPUyBrZXJuZWwgZG9lcy4KJiM0MzsJICoKJiM0MzsJICogVGhpcyBjaGVjayBydW5zIGJlZm9yZSBhbnkgdGVzdC1yZWdpc3RlcmVkIGhhbmRsZXIsIHNvIHRlc3RzCiYjNDM7CSAqIHRoYXQgaW5zdGFsbCB0aGVpciBvd24gRVhDX0lOU1RfSUxMRUdBTCBoYW5kbGVyIChlLmcuCiYjNDM7CSAqIHNiaV9wbXVfdGVzdCkgYXJlIG5vdCBhZmZlY3RlZC4KJiM0MzsJICovCiYjNDM7CWlmICghKHJlZ3MtJmd0O2NhdXNlICZhbXA7IENBVVNFX0lSUV9GTEFHKSAmYW1wOyZhbXA7IGVjID09IEVYQ19JTlNUX0lMTEVHQUwpIHsKJiM0MzsJCS8qCiYjNDM7CQkgKiBJZiBLVk0gc3VwcG9ydHMgdGhlIFYgZXh0ZW5zaW9uIGZvciB0aGlzIEd1ZXN0IGFuZCBWUwomIzQzOwkJICogKFZlY3RvciBTdGF0dXMpIGlzIE9mZiBpbiB0aGUgc2F2ZWQgc3N0YXR1cywgc2V0IGl0IHRvCiYjNDM7CQkgKiBJbml0aWFsIGFuZCBzcmV0IHRvIHJlLWV4ZWN1dGUgdGhlIGZhdWx0aW5nIGluc3RydWN0aW9uLgomIzQzOwkJICogVXNlIHJlZ3MtJmd0O3N0YXR1cyAoc2F2ZWQgYXQgZXhjZXB0aW9uIGVudHJ5KSByYXRoZXIgdGhhbgomIzQzOwkJICogcmVhZGluZyB0aGUgbGl2ZSBDU1IgdG8gYXZvaWQgYSBUT0NUT1UgcmFjZSB3aXRoIG5lc3RlZAomIzQzOwkJICogZXhjZXB0aW9ucy4KJiM0MzsJCSAqLwomIzQzOwkJaWYgKHZfYXZhaWxhYmxlICZhbXA7JmFtcDsgIShyZWdzLSZndDtzdGF0dXMgJmFtcDsgU1JfVlMpKSB7CiYjNDM7CQkJcmVncy0mZ3Q7c3RhdHVzIHw9IFNSX1ZTX0lOSVRJQUw7CiYjNDM7CQkJcmV0dXJuOwomIzQzOwkJfQomIzQzOwl9CiYjNDM7CiAJaWYgKGhhbmRsZXJzICZhbXA7JmFtcDsgaGFuZGxlcnMtJmd0O2V4Y2VwdGlvbl9oYW5kbGVyc1t2ZWN0b3JdW2VjXSkKIAkJcmV0dXJuIGhhbmRsZXJzLSZndDtleGNlcHRpb25faGFuZGxlcnNbdmVjdG9yXVtlY10ocmVncyk7CiAKQEAgLTQ0OCw2ICYjNDM7NDg1LDkgQEAgdm9pZCB2Y3B1X2luaXRfdmVjdG9yX3RhYmxlcyhzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpCiAKIHZvaWQgdm1faW5pdF92ZWN0b3JfdGFibGVzKHN0cnVjdCBrdm1fdm0gKnZtKQogewomIzQzOwlpZiAodm0tJmd0O2hhbmRsZXJzKQomIzQzOwkJcmV0dXJuOwomIzQzOwogCXZtLSZndDtoYW5kbGVycyA9IF9fdm1fYWxsb2Modm0sIHNpemVvZihzdHJ1Y3QgaGFuZGxlcnMpLCB2bS0mZ3Q7cGFnZV9zaXplLAogCQkJCSAgTUVNX1JFR0lPTl9EQVRBKTsKIAo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMiAwNjozODwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzMTExCgkJCQkJCQlvdXRwdXQ6IDcwCgkJCQkJCQl0aG91Z2h0czogMjUzCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKldvcnRoRnV6emluZz1mYWxzZSAtIFNlbGZ0ZXN0IE1vZGlmaWNhdGlvbioqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCBhbmQgaXQmIzM5O3MgbW9kaWZ5aW5nIGB0b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9rdm0vbGliL3Jpc2N2L3Byb2Nlc3Nvci5jYC4gUmlnaHQgYXdheSwgdGhpcyBqdW1wcyBvdXQgdG8gbWUgYXMgYSBzZWxmdGVzdCBmaWxlLCBub3QgYWN0dWFsIGtlcm5lbCBjb2RlLiBUaGUgcHJvbXB0IHNwZWNpZmljYWxseSBzYXlzICYjMzQ7UmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWlucyBtb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLiYjMzQ7IEl0IGRvZXNuJiMzOTt0IGV4cGxpY2l0bHkgKm1lbnRpb24qIHNlbGZ0ZXN0cywgYnV0IHRoZSBzcGlyaXQgb2YgdGhhdCBydWxlIGFwcGxpZXMgaGVyZS4gVGhlc2Ugc2VsZnRlc3RzIGFyZW4mIzM5O3QgcGFydCBvZiB0aGUgY29yZSBrZXJuZWwgdGhhdCBTeXprYWxsZXIgZnV6emVzOyBTeXprYWxsZXImIzM5O3Mgam9iIGlzIHRoZSBrZXJuZWwgaXRzZWxmLgoKTGV0IG1lIGp1c3QgZG91YmxlLWNoZWNrLCB0aG91Z2gsIG1ha2Ugc3VyZSBub3RoaW5nIGVsc2UgZ290IHRvdWNoZWQgaW4gdGhlIGRpZmYuIE5vcGUsIGp1c3QgdGhlIG9uZSBmaWxlLiBOb3cgSSYjMzk7bSByZWNhbGxpbmcgdGhlIHByb21wdDogJiMzNDtJZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoIHRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLiYjMzQ7IFRoaXMgZGVmaW5pdGVseSAqZG9lc24mIzM5O3QqIGZpdCB0aGF0IGRlc2NyaXB0aW9uLiBTZWxmdGVzdHMgYXJlIHVzZXJzcGFjZSB0b29scywgaW5kZXBlbmRlbnQgZnJvbSB0aGUga2VybmVsLCBhbmQgZXhpc3QgdG8gdmFsaWRhdGUgdGhlaXIgb3BlcmF0aW9uIHNlcGFyYXRlbHkuCgpUaGVyZWZvcmUsIGJlY2F1c2UgdGhpcyBpcyBwdXJlbHkgYSBzZWxmdGVzdCBtb2RpZmljYXRpb24sIGFuZCBkb2VzbiYjMzk7dCBpbXBhY3QgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBJJiMzOTttIGdvaW5nIHRvIHJldHVybiBgV29ydGhGdXp6aW5nPWZhbHNlYC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMiAwNjozODwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFtdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG9ubHkgbW9kaWZpZXMgS1ZNIHNlbGZ0ZXN0cyAodG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvKSwgd2hpY2ggYXJlIHVzZXJzcGFjZSB0ZXN0IHByb2dyYW1zIGFuZCBkbyBub3QgY2hhbmdlIGFueSBmdW5jdGlvbmFsIGtlcm5lbCBjb2RlIHRoYXQgY2FuIGJlIGZ1enplZC4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG9ubHkgbW9kaWZpZXMgS1ZNIHNlbGZ0ZXN0cyAodG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvKSwgd2hpY2ggYXJlIHVzZXJzcGFjZSB0ZXN0IHByb2dyYW1zIGFuZCBkbyBub3QgY2hhbmdlIGFueSBmdW5jdGlvbmFsIGtlcm5lbCBjb2RlIHRoYXQgY2FuIGJlIGZ1enplZC4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPC90Ym9keT4KCTwvdGFibGU+CgoJPGRpdiBpZD0ibGxtX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5MTE0gQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBUb2tlbnM8L3RoPgoJCQkJCTx0aD5BdmcgVG9rZW5zPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9ImxsbV9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9InRvb2xfc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPlRvb2wgQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0idG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9ImR1cmF0aW9uX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCTxkaXYgaWQ9InRva2VuX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL2pzYXBpIj48L3NjcmlwdD4KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCQlnb29nbGUubG9hZCgidmlzdWFsaXphdGlvbiIsICIxIiwge3BhY2thZ2VzOlsiY29yZWNoYXJ0Il19KTsKCQlnb29nbGUuc2V0T25Mb2FkQ2FsbGJhY2soZHJhd0NoYXJ0cyk7CgoJCWZ1bmN0aW9uIGRyYXdDaGFydHMoKSB7CgkJCWNvbnN0IHJhd0RhdGEgPSBbeyJTdGFydGVkIjoiMjAyNi0wNy0yMlQwNjozODoxMC4zNTc3MTU0MjNaIiwiU2VxIjowLCJOZXN0aW5nIjowLCJUeXBlIjoiZmxvdyIsIk5hbWUiOiJwYXRjaC10cmlhZ2UiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1MzMyMTk0MzQ2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBvbmx5IG1vZGlmaWVzIEtWTSBzZWxmdGVzdHMgKHRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzLyksIHdoaWNoIGFyZSB1c2Vyc3BhY2UgdGVzdCBwcm9ncmFtcyBhbmQgZG8gbm90IGNoYW5nZSBhbnkgZnVuY3Rpb25hbCBrZXJuZWwgY29kZSB0aGF0IGNhbiBiZSBmdXp6ZWQuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yMlQwNjozODoxMC4zNTc3MjI5MDNaIiwiU2VxIjoxLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6InJlYWQtcGF0Y2gtZGlmZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjY2NjE0MDQ5OCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiUGF0Y2hEaWZmXCI6IFwiY29tbWl0IDg5OGY2NWY4MjBhY2JmNGU2YTI5ZjJjYzkxMjQ5Y2Y1Yjg1ODQ0NzZcXG5BdXRob3I6IHN5ei1jbHVzdGVyIFxcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVxcdTAwM2VcXG5EYXRlOiAgIFdlZCBKdWwgMjIgMDY6Mzg6MDggMjAyNiArMDAwMFxcblxcbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcXG5cXG5kaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMva3ZtL2xpYi9yaXNjdi9wcm9jZXNzb3IuYyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2t2bS9saWIvcmlzY3YvcHJvY2Vzc29yLmNcXG5pbmRleCBkZWQ1NDI5ZjM0NDgzZC4uNjJlZmQwN2U1NjM5ZDAgMTAwNjQ0XFxuLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMva3ZtL2xpYi9yaXNjdi9wcm9jZXNzb3IuY1xcbisrKyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2t2bS9saWIvcmlzY3YvcHJvY2Vzc29yLmNcXG5AQCAtMTcsNiArMTcsOSBAQFxcbiBcXG4gc3RhdGljIGd2YV90IGV4Y2VwdGlvbl9oYW5kbGVycztcXG4gXFxuKy8qIFRydWUgaWYgS1ZNIGFsbG93cyB0aGUgR3Vlc3QgdG8gdXNlIHRoZSBWICh2ZWN0b3IpIGV4dGVuc2lvbiAqL1xcbitzdGF0aWMgYm9vbCB2X2F2YWlsYWJsZTtcXG4rXFxuIGJvb2wgX192Y3B1X2hhc19leHQoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCB1NjQgZXh0KVxcbiB7XFxuIFxcdHVuc2lnbmVkIGxvbmcgdmFsdWUgPSAwO1xcbkBAIC0yOTcsMTQgKzMwMCw2IEBAIHZvaWQgdmNwdV9hcmNoX2R1bXAoRklMRSAqc3RyZWFtLCBzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIHU4IGluZGVudClcXG4gXFx0XFx0XFxcIiBUMzogMHglMDE2bHggICBUNDogMHglMDE2bHggVDU6IDB4JTAxNmx4IFQ2OiAweCUwMTZseFxcXFxuXFxcIixcXG4gXFx0XFx0Y29yZS5yZWdzLnQzLCBjb3JlLnJlZ3MudDQsIGNvcmUucmVncy50NSwgY29yZS5yZWdzLnQ2KTtcXG4gfVxcbi1cXG4tc3RhdGljIHZvaWQgX19hbGlnbmVkKDE2KSBndWVzdF91bmV4cF90cmFwKHZvaWQpXFxuLXtcXG4tXFx0c2JpX2VjYWxsKEtWTV9SSVNDVl9TRUxGVEVTVFNfU0JJX0VYVCxcXG4tXFx0XFx0ICBLVk1fUklTQ1ZfU0VMRlRFU1RTX1NCSV9VTkVYUCxcXG4tXFx0XFx0ICAwLCAwLCAwLCAwLCAwLCAwKTtcXG4tfVxcbi1cXG4gdm9pZCB2Y3B1X2FyY2hfc2V0X2VudHJ5X3BvaW50KHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwgdm9pZCAqZ3Vlc3RfY29kZSlcXG4ge1xcbiBcXHR2Y3B1X3NldF9yZWcodmNwdSwgUklTQ1ZfQ09SRV9SRUcocmVncy5wYyksICh1bnNpZ25lZCBsb25nKWd1ZXN0X2NvZGUpO1xcbkBAIC0zNDgsOCArMzQzLDIzIEBAIHN0cnVjdCBrdm1fdmNwdSAqdm1fYXJjaF92Y3B1X2FkZChzdHJ1Y3Qga3ZtX3ZtICp2bSwgdTMyIHZjcHVfaWQpXFxuIFxcdC8qIFNldHVwIHNzY3JhdGNoIGZvciBndWVzdF9nZXRfdmNwdWlkKCkgKi9cXG4gXFx0dmNwdV9zZXRfcmVnKHZjcHUsIFJJU0NWX0dFTkVSQUxfQ1NSX1JFRyhzc2NyYXRjaCksIHZjcHVfaWQpO1xcbiBcXG4tXFx0LyogU2V0dXAgZGVmYXVsdCBleGNlcHRpb24gdmVjdG9yIG9mIGd1ZXN0ICovXFxuLVxcdHZjcHVfc2V0X3JlZyh2Y3B1LCBSSVNDVl9HRU5FUkFMX0NTUl9SRUcoc3R2ZWMpLCAodW5zaWduZWQgbG9uZylndWVzdF91bmV4cF90cmFwKTtcXG4rXFx0LypcXG4rXFx0ICogRW5hYmxlIHRoZSBWICh2ZWN0b3IpIGV4dGVuc2lvbiBpbiBLVk0gc28gdGhhdCB0aGUgY29tcGlsZXIgY2FuXFxuK1xcdCAqIHNhZmVseSBnZW5lcmF0ZSB2ZWN0b3IgaW5zdHJ1Y3Rpb25zIChlLmcuIHZpYSAtTzIgYXV0by1cXG4rXFx0ICogdmVjdG9yaXphdGlvbikuIFNpbGVudGx5IGlnbm9yZSBlcnJvcnM7IHRoZSB0ZXN0IHdpbGwgc3RpbGwgd29ya1xcbitcXHQgKiB3aXRob3V0IFYuXFxuK1xcdCAqL1xcbitcXHRfX3ZjcHVfc2V0X3JlZyh2Y3B1LCBSSVNDVl9JU0FfRVhUX1JFRyhLVk1fUklTQ1ZfSVNBX0VYVF9WKSwgMSk7XFxuK1xcdHZfYXZhaWxhYmxlID0gX192Y3B1X2hhc19pc2FfZXh0KHZjcHUsIEtWTV9SSVNDVl9JU0FfRVhUX1YpO1xcbitcXG4rXFx0LypcXG4rXFx0ICogVXNlIHRoZSBmdWxsIGV4Y2VwdGlvbiB2ZWN0b3IgdGFibGUgKHdoaWNoIHByb3ZpZGVzIGxhenkgVlxcbitcXHQgKiBleHRlbnNpb24gZW5hYmxlbWVudCBmb3IgRVhDX0lOU1RfSUxMRUdBTCBpbiByb3V0ZV9leGNlcHRpb24pXFxuK1xcdCAqIGFzIHRoZSBkZWZhdWx0IGV4Y2VwdGlvbiBoYW5kbGVyLiB2bV9pbml0X3ZlY3Rvcl90YWJsZXMoKSBpc1xcbitcXHQgKiBpZGVtcG90ZW50OyB0ZXN0cyB0aGF0IGNhbGwgaXQgYWdhaW4gd2lsbCBnZXQgYSBuby1vcC5cXG4rXFx0ICovXFxuK1xcdHZtX2luaXRfdmVjdG9yX3RhYmxlcyh2bSk7XFxuK1xcdHZjcHVfaW5pdF92ZWN0b3JfdGFibGVzKHZjcHUpO1xcbiBcXG4gXFx0cmV0dXJuIHZjcHU7XFxuIH1cXG5AQCAtNDMyLDYgKzQ0MiwzMyBAQCB2b2lkIHJvdXRlX2V4Y2VwdGlvbihzdHJ1Y3QgcHRfcmVncyAqcmVncylcXG4gXFx0XFx0ZWMgPSAwO1xcbiBcXHR9XFxuIFxcbitcXHQvKlxcbitcXHQgKiBIYW5kbGUgViAodmVjdG9yKSBleHRlbnNpb24gbGF6eSBlbmFibGVtZW50IGJlZm9yZSBhbnlcXG4rXFx0ICogcmVnaXN0ZXJlZCBoYW5kbGVyLiBUaGUgY29tcGlsZXIncyBkZWZhdWx0IG1hcmNoIG1heSBpbmNsdWRlXFxuK1xcdCAqIFYsIGFuZCBhdXRvLXZlY3Rvcml6YXRpb24gZ2VuZXJhdGVzIHZlY3RvciBpbnN0cnVjdGlvbnMgdGhhdFxcbitcXHQgKiB0cmlnZ2VyIEVYQ19JTlNUX0lMTEVHQUwgd2hlbiBWUyAoVmVjdG9yIFN0YXR1cykgaW4gc3N0YXR1c1xcbitcXHQgKiBpcyBPZmYuIEVuYWJsZSBWUyB0byBJbml0aWFsIGFuZCByZS1leGVjdXRlIHRoZSBmYXVsdGluZ1xcbitcXHQgKiBpbnN0cnVjdGlvbiwgbWltaWNraW5nIHdoYXQgYSByZWFsIE9TIGtlcm5lbCBkb2VzLlxcbitcXHQgKlxcbitcXHQgKiBUaGlzIGNoZWNrIHJ1bnMgYmVmb3JlIGFueSB0ZXN0LXJlZ2lzdGVyZWQgaGFuZGxlciwgc28gdGVzdHNcXG4rXFx0ICogdGhhdCBpbnN0YWxsIHRoZWlyIG93biBFWENfSU5TVF9JTExFR0FMIGhhbmRsZXIgKGUuZy5cXG4rXFx0ICogc2JpX3BtdV90ZXN0KSBhcmUgbm90IGFmZmVjdGVkLlxcbitcXHQgKi9cXG4rXFx0aWYgKCEocmVncy1cXHUwMDNlY2F1c2UgXFx1MDAyNiBDQVVTRV9JUlFfRkxBRykgXFx1MDAyNlxcdTAwMjYgZWMgPT0gRVhDX0lOU1RfSUxMRUdBTCkge1xcbitcXHRcXHQvKlxcbitcXHRcXHQgKiBJZiBLVk0gc3VwcG9ydHMgdGhlIFYgZXh0ZW5zaW9uIGZvciB0aGlzIEd1ZXN0IGFuZCBWU1xcbitcXHRcXHQgKiAoVmVjdG9yIFN0YXR1cykgaXMgT2ZmIGluIHRoZSBzYXZlZCBzc3RhdHVzLCBzZXQgaXQgdG9cXG4rXFx0XFx0ICogSW5pdGlhbCBhbmQgc3JldCB0byByZS1leGVjdXRlIHRoZSBmYXVsdGluZyBpbnN0cnVjdGlvbi5cXG4rXFx0XFx0ICogVXNlIHJlZ3MtXFx1MDAzZXN0YXR1cyAoc2F2ZWQgYXQgZXhjZXB0aW9uIGVudHJ5KSByYXRoZXIgdGhhblxcbitcXHRcXHQgKiByZWFkaW5nIHRoZSBsaXZlIENTUiB0byBhdm9pZCBhIFRPQ1RPVSByYWNlIHdpdGggbmVzdGVkXFxuK1xcdFxcdCAqIGV4Y2VwdGlvbnMuXFxuK1xcdFxcdCAqL1xcbitcXHRcXHRpZiAodl9hdmFpbGFibGUgXFx1MDAyNlxcdTAwMjYgIShyZWdzLVxcdTAwM2VzdGF0dXMgXFx1MDAyNiBTUl9WUykpIHtcXG4rXFx0XFx0XFx0cmVncy1cXHUwMDNlc3RhdHVzIHw9IFNSX1ZTX0lOSVRJQUw7XFxuK1xcdFxcdFxcdHJldHVybjtcXG4rXFx0XFx0fVxcbitcXHR9XFxuK1xcbiBcXHRpZiAoaGFuZGxlcnMgXFx1MDAyNlxcdTAwMjYgaGFuZGxlcnMtXFx1MDAzZWV4Y2VwdGlvbl9oYW5kbGVyc1t2ZWN0b3JdW2VjXSlcXG4gXFx0XFx0cmV0dXJuIGhhbmRsZXJzLVxcdTAwM2VleGNlcHRpb25faGFuZGxlcnNbdmVjdG9yXVtlY10ocmVncyk7XFxuIFxcbkBAIC00NDgsNiArNDg1LDkgQEAgdm9pZCB2Y3B1X2luaXRfdmVjdG9yX3RhYmxlcyhzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpXFxuIFxcbiB2b2lkIHZtX2luaXRfdmVjdG9yX3RhYmxlcyhzdHJ1Y3Qga3ZtX3ZtICp2bSlcXG4ge1xcbitcXHRpZiAodm0tXFx1MDAzZWhhbmRsZXJzKVxcbitcXHRcXHRyZXR1cm47XFxuK1xcbiBcXHR2bS1cXHUwMDNlaGFuZGxlcnMgPSBfX3ZtX2FsbG9jKHZtLCBzaXplb2Yoc3RydWN0IGhhbmRsZXJzKSwgdm0tXFx1MDAzZXBhZ2Vfc2l6ZSxcXG4gXFx0XFx0XFx0XFx0ICBNRU1fUkVHSU9OX0RBVEEpO1xcbiBcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjJUMDY6Mzg6MTEuMDI0ODAzMzUxWiIsIlNlcSI6MiwiTmVzdGluZyI6MSwiVHlwZSI6ImFnZW50IiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiYmVzdC1leHBlbnNpdmUiLCJEdXJhdGlvbiI6NDY2NTA2NTIyOCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggb25seSBtb2RpZmllcyBLVk0gc2VsZnRlc3RzICh0b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy8pLCB3aGljaCBhcmUgdXNlcnNwYWNlIHRlc3QgcHJvZ3JhbXMgYW5kIGRvIG5vdCBjaGFuZ2UgYW55IGZ1bmN0aW9uYWwga2VybmVsIGNvZGUgdGhhdCBjYW4gYmUgZnV6emVkLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiWW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuXG5Zb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZVxuaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLlxuXG5JTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW5cbnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseVxudXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy5cblxuUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczpcbi0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy5cbi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuXG4tIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy5cbi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLFxuZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLlxuXG5JZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoXG50b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS5cblxuV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086XG4xLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLlxuICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuXG4yLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS5cbiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy5cbiAgIERvIG5vdCBsaXN0IHRvbyBnZW5lcmljIGNvbmZpZ3MgKHdlIGFscmVhZHkgaGF2ZSB0aGVtIGVuYWJsZWQpLiBPbmx5IGxpc3QgdGhvc2UgdGhhdFxuICAgc3BlY2lmaWNhbGx5IGNvdmVyIHRoZSBtb2RpZmllZCBjb2RlLiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3Mgb3V0cHV0IGFycmF5LFxuICAgYW5kIERPIE5PVCBhZGQgYSAnQ09ORklHXycgcHJlZml4IChlLmcuLCByZXR1cm4gXCJORVRfSVBWNFwiIGluc3RlYWQgb2YgXCJDT05GSUdfTkVUX0lQVjRcIikuXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCA4OThmNjVmODIwYWNiZjRlNmEyOWYyY2M5MTI0OWNmNWI4NTg0NDc2XG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFdlZCBKdWwgMjIgMDY6Mzg6MDggMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9rdm0vbGliL3Jpc2N2L3Byb2Nlc3Nvci5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMva3ZtL2xpYi9yaXNjdi9wcm9jZXNzb3IuY1xuaW5kZXggZGVkNTQyOWYzNDQ4M2QuLjYyZWZkMDdlNTYzOWQwIDEwMDY0NFxuLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMva3ZtL2xpYi9yaXNjdi9wcm9jZXNzb3IuY1xuKysrIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMva3ZtL2xpYi9yaXNjdi9wcm9jZXNzb3IuY1xuQEAgLTE3LDYgKzE3LDkgQEBcbiBcbiBzdGF0aWMgZ3ZhX3QgZXhjZXB0aW9uX2hhbmRsZXJzO1xuIFxuKy8qIFRydWUgaWYgS1ZNIGFsbG93cyB0aGUgR3Vlc3QgdG8gdXNlIHRoZSBWICh2ZWN0b3IpIGV4dGVuc2lvbiAqL1xuK3N0YXRpYyBib29sIHZfYXZhaWxhYmxlO1xuK1xuIGJvb2wgX192Y3B1X2hhc19leHQoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCB1NjQgZXh0KVxuIHtcbiBcdHVuc2lnbmVkIGxvbmcgdmFsdWUgPSAwO1xuQEAgLTI5NywxNCArMzAwLDYgQEAgdm9pZCB2Y3B1X2FyY2hfZHVtcChGSUxFICpzdHJlYW0sIHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwgdTggaW5kZW50KVxuIFx0XHRcIiBUMzogMHglMDE2bHggICBUNDogMHglMDE2bHggVDU6IDB4JTAxNmx4IFQ2OiAweCUwMTZseFxcblwiLFxuIFx0XHRjb3JlLnJlZ3MudDMsIGNvcmUucmVncy50NCwgY29yZS5yZWdzLnQ1LCBjb3JlLnJlZ3MudDYpO1xuIH1cbi1cbi1zdGF0aWMgdm9pZCBfX2FsaWduZWQoMTYpIGd1ZXN0X3VuZXhwX3RyYXAodm9pZClcbi17XG4tXHRzYmlfZWNhbGwoS1ZNX1JJU0NWX1NFTEZURVNUU19TQklfRVhULFxuLVx0XHQgIEtWTV9SSVNDVl9TRUxGVEVTVFNfU0JJX1VORVhQLFxuLVx0XHQgIDAsIDAsIDAsIDAsIDAsIDApO1xuLX1cbi1cbiB2b2lkIHZjcHVfYXJjaF9zZXRfZW50cnlfcG9pbnQoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCB2b2lkICpndWVzdF9jb2RlKVxuIHtcbiBcdHZjcHVfc2V0X3JlZyh2Y3B1LCBSSVNDVl9DT1JFX1JFRyhyZWdzLnBjKSwgKHVuc2lnbmVkIGxvbmcpZ3Vlc3RfY29kZSk7XG5AQCAtMzQ4LDggKzM0MywyMyBAQCBzdHJ1Y3Qga3ZtX3ZjcHUgKnZtX2FyY2hfdmNwdV9hZGQoc3RydWN0IGt2bV92bSAqdm0sIHUzMiB2Y3B1X2lkKVxuIFx0LyogU2V0dXAgc3NjcmF0Y2ggZm9yIGd1ZXN0X2dldF92Y3B1aWQoKSAqL1xuIFx0dmNwdV9zZXRfcmVnKHZjcHUsIFJJU0NWX0dFTkVSQUxfQ1NSX1JFRyhzc2NyYXRjaCksIHZjcHVfaWQpO1xuIFxuLVx0LyogU2V0dXAgZGVmYXVsdCBleGNlcHRpb24gdmVjdG9yIG9mIGd1ZXN0ICovXG4tXHR2Y3B1X3NldF9yZWcodmNwdSwgUklTQ1ZfR0VORVJBTF9DU1JfUkVHKHN0dmVjKSwgKHVuc2lnbmVkIGxvbmcpZ3Vlc3RfdW5leHBfdHJhcCk7XG4rXHQvKlxuK1x0ICogRW5hYmxlIHRoZSBWICh2ZWN0b3IpIGV4dGVuc2lvbiBpbiBLVk0gc28gdGhhdCB0aGUgY29tcGlsZXIgY2FuXG4rXHQgKiBzYWZlbHkgZ2VuZXJhdGUgdmVjdG9yIGluc3RydWN0aW9ucyAoZS5nLiB2aWEgLU8yIGF1dG8tXG4rXHQgKiB2ZWN0b3JpemF0aW9uKS4gU2lsZW50bHkgaWdub3JlIGVycm9yczsgdGhlIHRlc3Qgd2lsbCBzdGlsbCB3b3JrXG4rXHQgKiB3aXRob3V0IFYuXG4rXHQgKi9cbitcdF9fdmNwdV9zZXRfcmVnKHZjcHUsIFJJU0NWX0lTQV9FWFRfUkVHKEtWTV9SSVNDVl9JU0FfRVhUX1YpLCAxKTtcbitcdHZfYXZhaWxhYmxlID0gX192Y3B1X2hhc19pc2FfZXh0KHZjcHUsIEtWTV9SSVNDVl9JU0FfRVhUX1YpO1xuK1xuK1x0LypcbitcdCAqIFVzZSB0aGUgZnVsbCBleGNlcHRpb24gdmVjdG9yIHRhYmxlICh3aGljaCBwcm92aWRlcyBsYXp5IFZcbitcdCAqIGV4dGVuc2lvbiBlbmFibGVtZW50IGZvciBFWENfSU5TVF9JTExFR0FMIGluIHJvdXRlX2V4Y2VwdGlvbilcbitcdCAqIGFzIHRoZSBkZWZhdWx0IGV4Y2VwdGlvbiBoYW5kbGVyLiB2bV9pbml0X3ZlY3Rvcl90YWJsZXMoKSBpc1xuK1x0ICogaWRlbXBvdGVudDsgdGVzdHMgdGhhdCBjYWxsIGl0IGFnYWluIHdpbGwgZ2V0IGEgbm8tb3AuXG4rXHQgKi9cbitcdHZtX2luaXRfdmVjdG9yX3RhYmxlcyh2bSk7XG4rXHR2Y3B1X2luaXRfdmVjdG9yX3RhYmxlcyh2Y3B1KTtcbiBcbiBcdHJldHVybiB2Y3B1O1xuIH1cbkBAIC00MzIsNiArNDQyLDMzIEBAIHZvaWQgcm91dGVfZXhjZXB0aW9uKHN0cnVjdCBwdF9yZWdzICpyZWdzKVxuIFx0XHRlYyA9IDA7XG4gXHR9XG4gXG4rXHQvKlxuK1x0ICogSGFuZGxlIFYgKHZlY3RvcikgZXh0ZW5zaW9uIGxhenkgZW5hYmxlbWVudCBiZWZvcmUgYW55XG4rXHQgKiByZWdpc3RlcmVkIGhhbmRsZXIuIFRoZSBjb21waWxlcidzIGRlZmF1bHQgbWFyY2ggbWF5IGluY2x1ZGVcbitcdCAqIFYsIGFuZCBhdXRvLXZlY3Rvcml6YXRpb24gZ2VuZXJhdGVzIHZlY3RvciBpbnN0cnVjdGlvbnMgdGhhdFxuK1x0ICogdHJpZ2dlciBFWENfSU5TVF9JTExFR0FMIHdoZW4gVlMgKFZlY3RvciBTdGF0dXMpIGluIHNzdGF0dXNcbitcdCAqIGlzIE9mZi4gRW5hYmxlIFZTIHRvIEluaXRpYWwgYW5kIHJlLWV4ZWN1dGUgdGhlIGZhdWx0aW5nXG4rXHQgKiBpbnN0cnVjdGlvbiwgbWltaWNraW5nIHdoYXQgYSByZWFsIE9TIGtlcm5lbCBkb2VzLlxuK1x0ICpcbitcdCAqIFRoaXMgY2hlY2sgcnVucyBiZWZvcmUgYW55IHRlc3QtcmVnaXN0ZXJlZCBoYW5kbGVyLCBzbyB0ZXN0c1xuK1x0ICogdGhhdCBpbnN0YWxsIHRoZWlyIG93biBFWENfSU5TVF9JTExFR0FMIGhhbmRsZXIgKGUuZy5cbitcdCAqIHNiaV9wbXVfdGVzdCkgYXJlIG5vdCBhZmZlY3RlZC5cbitcdCAqL1xuK1x0aWYgKCEocmVncy1cdTAwM2VjYXVzZSBcdTAwMjYgQ0FVU0VfSVJRX0ZMQUcpIFx1MDAyNlx1MDAyNiBlYyA9PSBFWENfSU5TVF9JTExFR0FMKSB7XG4rXHRcdC8qXG4rXHRcdCAqIElmIEtWTSBzdXBwb3J0cyB0aGUgViBleHRlbnNpb24gZm9yIHRoaXMgR3Vlc3QgYW5kIFZTXG4rXHRcdCAqIChWZWN0b3IgU3RhdHVzKSBpcyBPZmYgaW4gdGhlIHNhdmVkIHNzdGF0dXMsIHNldCBpdCB0b1xuK1x0XHQgKiBJbml0aWFsIGFuZCBzcmV0IHRvIHJlLWV4ZWN1dGUgdGhlIGZhdWx0aW5nIGluc3RydWN0aW9uLlxuK1x0XHQgKiBVc2UgcmVncy1cdTAwM2VzdGF0dXMgKHNhdmVkIGF0IGV4Y2VwdGlvbiBlbnRyeSkgcmF0aGVyIHRoYW5cbitcdFx0ICogcmVhZGluZyB0aGUgbGl2ZSBDU1IgdG8gYXZvaWQgYSBUT0NUT1UgcmFjZSB3aXRoIG5lc3RlZFxuK1x0XHQgKiBleGNlcHRpb25zLlxuK1x0XHQgKi9cbitcdFx0aWYgKHZfYXZhaWxhYmxlIFx1MDAyNlx1MDAyNiAhKHJlZ3MtXHUwMDNlc3RhdHVzIFx1MDAyNiBTUl9WUykpIHtcbitcdFx0XHRyZWdzLVx1MDAzZXN0YXR1cyB8PSBTUl9WU19JTklUSUFMO1xuK1x0XHRcdHJldHVybjtcbitcdFx0fVxuK1x0fVxuK1xuIFx0aWYgKGhhbmRsZXJzIFx1MDAyNlx1MDAyNiBoYW5kbGVycy1cdTAwM2VleGNlcHRpb25faGFuZGxlcnNbdmVjdG9yXVtlY10pXG4gXHRcdHJldHVybiBoYW5kbGVycy1cdTAwM2VleGNlcHRpb25faGFuZGxlcnNbdmVjdG9yXVtlY10ocmVncyk7XG4gXG5AQCAtNDQ4LDYgKzQ4NSw5IEBAIHZvaWQgdmNwdV9pbml0X3ZlY3Rvcl90YWJsZXMoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KVxuIFxuIHZvaWQgdm1faW5pdF92ZWN0b3JfdGFibGVzKHN0cnVjdCBrdm1fdm0gKnZtKVxuIHtcbitcdGlmICh2bS1cdTAwM2VoYW5kbGVycylcbitcdFx0cmV0dXJuO1xuK1xuIFx0dm0tXHUwMDNlaGFuZGxlcnMgPSBfX3ZtX2FsbG9jKHZtLCBzaXplb2Yoc3RydWN0IGhhbmRsZXJzKSwgdm0tXHUwMDNlcGFnZV9zaXplLFxuIFx0XHRcdFx0ICBNRU1fUkVHSU9OX0RBVEEpO1xuIFxuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjJUMDY6Mzg6MTEuMDI0ODA1MzQxWiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDY2NDk5MDIzOCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipXb3J0aEZ1enppbmc9ZmFsc2UgLSBTZWxmdGVzdCBNb2RpZmljYXRpb24qKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIHBhdGNoIGFuZCBpdCdzIG1vZGlmeWluZyBgdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMva3ZtL2xpYi9yaXNjdi9wcm9jZXNzb3IuY2AuIFJpZ2h0IGF3YXksIHRoaXMganVtcHMgb3V0IHRvIG1lIGFzIGEgc2VsZnRlc3QgZmlsZSwgbm90IGFjdHVhbCBrZXJuZWwgY29kZS4gVGhlIHByb21wdCBzcGVjaWZpY2FsbHkgc2F5cyBcIlJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnMgbW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy5cIiBJdCBkb2Vzbid0IGV4cGxpY2l0bHkgKm1lbnRpb24qIHNlbGZ0ZXN0cywgYnV0IHRoZSBzcGlyaXQgb2YgdGhhdCBydWxlIGFwcGxpZXMgaGVyZS4gVGhlc2Ugc2VsZnRlc3RzIGFyZW4ndCBwYXJ0IG9mIHRoZSBjb3JlIGtlcm5lbCB0aGF0IFN5emthbGxlciBmdXp6ZXM7IFN5emthbGxlcidzIGpvYiBpcyB0aGUga2VybmVsIGl0c2VsZi5cblxuTGV0IG1lIGp1c3QgZG91YmxlLWNoZWNrLCB0aG91Z2gsIG1ha2Ugc3VyZSBub3RoaW5nIGVsc2UgZ290IHRvdWNoZWQgaW4gdGhlIGRpZmYuIE5vcGUsIGp1c3QgdGhlIG9uZSBmaWxlLiBOb3cgSSdtIHJlY2FsbGluZyB0aGUgcHJvbXB0OiBcIklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2ggdG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuXCIgVGhpcyBkZWZpbml0ZWx5ICpkb2Vzbid0KiBmaXQgdGhhdCBkZXNjcmlwdGlvbi4gU2VsZnRlc3RzIGFyZSB1c2Vyc3BhY2UgdG9vbHMsIGluZGVwZW5kZW50IGZyb20gdGhlIGtlcm5lbCwgYW5kIGV4aXN0IHRvIHZhbGlkYXRlIHRoZWlyIG9wZXJhdGlvbiBzZXBhcmF0ZWx5LlxuXG5UaGVyZWZvcmUsIGJlY2F1c2UgdGhpcyBpcyBwdXJlbHkgYSBzZWxmdGVzdCBtb2RpZmljYXRpb24sIGFuZCBkb2Vzbid0IGltcGFjdCByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIEknbSBnb2luZyB0byByZXR1cm4gYFdvcnRoRnV6emluZz1mYWxzZWAuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjMxMTEsIk91dHB1dFRva2VucyI6NzAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyNTMsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yMlQwNjozODoxNS42ODk3OTg2NTlaIiwiU2VxIjo0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjY3MjUwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG9ubHkgbW9kaWZpZXMgS1ZNIHNlbGZ0ZXN0cyAodG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvKSwgd2hpY2ggYXJlIHVzZXJzcGFjZSB0ZXN0IHByb2dyYW1zIGFuZCBkbyBub3QgY2hhbmdlIGFueSBmdW5jdGlvbmFsIGtlcm5lbCBjb2RlIHRoYXQgY2FuIGJlIGZ1enplZC5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG9ubHkgbW9kaWZpZXMgS1ZNIHNlbGZ0ZXN0cyAodG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvKSwgd2hpY2ggYXJlIHVzZXJzcGFjZSB0ZXN0IHByb2dyYW1zIGFuZCBkbyBub3QgY2hhbmdlIGFueSBmdW5jdGlvbmFsIGtlcm5lbCBjb2RlIHRoYXQgY2FuIGJlIGZ1enplZC5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0udG9rZW5zIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnVG9vbER1ciA9IHN0YXRzLnRvb2wuY291bnQgPiAwID8gKHN0YXRzLnRvb2wuZHVyYXRpb24gLyBzdGF0cy50b29sLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCgkJCWNvbnN0IGxsbVN1bWFyeUNlbGxzID0gW3N0YXRzLmxsbS5jb3VudCwgc3RhdHMubGxtLnRva2VucywgYXZnTGxtVG9rZW4sIHN0YXRzLmxsbS5kdXJhdGlvbiwgYXZnTGxtRHVyXTsKCQkJY29uc3QgdG9vbFN1bW1hcnlDZWxscyA9IFtzdGF0cy50b29sLmNvdW50LCBzdGF0cy50b29sLmR1cmF0aW9uLCBhdmdUb29sRHVyXTsKCgkJCWNvbnN0IGxsbVN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xsbV9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJbGxtU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IGxsbVRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJbGxtU3VtYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCWxsbVRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCWxsbVN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKGxsbVRyKTsKCgkJCWNvbnN0IHRvb2xTdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b29sX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQl0b29sU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IHRvb2xUciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCXRvb2xTdW1tYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCXRvb2xUci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQl0b29sU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQodG9vbFRyKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgZmlsdGVyZWRTdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gWyJsbG0iLCAidG9vbCJdLmluY2x1ZGVzKGQuVHlwZSkpOwoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdEdXJhdGlvbicpOwoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOyAKCgkJCWZpbHRlcmVkU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCQoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7CgkJCQlsZXQgdG9vbHRpcCA9IHMuTmFtZTsKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iICYmIHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCQkJCWRhdGEuYWRkUm93KFtgJHtzLlNlcX1gLCBkdXIsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUaW1lIENvbnN1bXB0aW9uIG9mIExMTS9Ub29sIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0vVG9vbCBTdGVwcycsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdTZWNvbmRzJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkdXJhdGlvbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgbGxtU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IGQuVHlwZSA9PT0gImxsbSIpOwoJCQlpZiAobGxtU3RlcHMubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdUb2tlbnMnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAnc3R5bGUnfSk7CQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOwkKCgkJCWNvbnN0IGFnZW50Q29sb3JzID0ge307CgkJCWNvbnN0IHBhbGV0dGUgPSBbJyM0Mjg1RjQnLCAnI0RCNDQzNycsICcjRjRCNDAwJywgJyMwRjlENTgnLCAnI0FCNDdCQycsICcjMDBBQ0MxJ107CgkJCWxldCBjb2xvcklkeCA9IDA7CgkJCWNvbnN0IGFnZW50TExNQ291bnRzID0ge307CgkJCWxsbVN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQlpZiAoIWFnZW50Q29sb3JzW3MuTmFtZV0pIHsKCQkJCQlhZ2VudENvbG9yc1tzLk5hbWVdID0gcGFsZXR0ZVtjb2xvcklkeCAlIHBhbGV0dGUubGVuZ3RoXTsKCQkJCQljb2xvcklkeCsrOwoJCQkJfQoKCQkJCWFnZW50TExNQ291bnRzW3MuTmFtZV0gPSAoYWdlbnRMTE1Db3VudHNbcy5OYW1lXSB8fCAwKSArIDE7CgkJCQljb25zdCBsYWJlbCA9IGAke3MuTmFtZX0tJHthZ2VudExMTUNvdW50c1tzLk5hbWVdfWA7CgkJCQljb25zdCB0b3RhbFRva2VucyA9IHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnM7CgkJCQljb25zdCBzdHlsZSA9IGBjb2xvcjogJHthZ2VudENvbG9yc1tzLk5hbWVdfWA7CgkJCQlsZXQgdG9vbHRpcCA9IGBUb3RhbCBUb2tlbnM6ICR7dG90YWxUb2tlbnN9XG4oSW46ICR7cy5JbnB1dFRva2Vuc30sIE91dDogJHtzLk91dHB1dFRva2Vuc30sIFRob3VnaHRzOiAke3MuT3V0cHV0VGhvdWdodHNUb2tlbnN9KWA7CgkJCQlpZiAocy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoKCQkJCWRhdGEuYWRkUm93KFtsYWJlbCwgdG90YWxUb2tlbnMsIHN0eWxlLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVG9rZW4gQ29uc3VtcHRpb24gYnkgTExNIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0gQ2FsbCBTZXF1ZW5jZScsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdDb25zdW1lZCBUb2tlbnMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rva2VuX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgkJbGV0IGFsbEV4cGFuZGVkID0gZmFsc2U7CgkJZnVuY3Rpb24gdG9nZ2xlQWxsRGV0YWlscygpIHsKCQkJYWxsRXhwYW5kZWQgPSAhYWxsRXhwYW5kZWQ7CgkJCWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2RldGFpbHMnKS5mb3JFYWNoKGQgPT4gewoJCQkJaWYgKGFsbEV4cGFuZGVkKSBkLnNldEF0dHJpYnV0ZSgnb3BlbicsICcnKTsKCQkJCWVsc2UgZC5yZW1vdmVBdHRyaWJ1dGUoJ29wZW4nKTsKCQkJfSk7CgkJfQoJPC9zY3JpcHQ+CgoKPC9ib2R5Pgo8L2h0bWw+Cg==" },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-workflow4b6k2[1] Phase: Running StartedAt: 2026-07-22 06:38:27 +0000 UTC FinishedAt: 0001-01-01 00:00:00 +0000 UTC Input: nil Output: nil --------- Name: series-workflow4b6k2[1].abort-on-skip-outcome Phase: Failed StartedAt: 2026-07-22 06:38:27 +0000 UTC FinishedAt: 2026-07-22 06:38:54 +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,}