Name: series-workflowkklb7 Phase: Failed StartedAt: 2026-06-30 03:27:56 +0000 UTC FinishedAt: 2026-06-30 03:41:13 +0000 UTC Input: nil Output: nil --------- Name: series-workflowkklb7[0] Phase: Succeeded StartedAt: 2026-06-30 03:27:56 +0000 UTC FinishedAt: 2026-06-30 03:40:26 +0000 UTC Input: nil Output: nil --------- Name: series-workflowkklb7[0].run-triage Phase: Succeeded StartedAt: 2026-06-30 03:27:56 +0000 UTC FinishedAt: 2026-06-30 03:40:26 +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+CgkJCTx0ZD4yMDI2LzA2LzMwIDAzOjQwPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG9ubHkgbW9kaWZpZXMgQlBGIHNlbGZ0ZXN0cyAodG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmLykgdG8gc2tpcCBhIHRlc3QgaWYgdGhlIGNsYW5nIGNvbXBpbGVyIGRvZXMgbm90IHN1cHBvcnQgYSBzcGVjaWZpYyBhdG9taWMgb3BlcmF0aW9uLiBJdCBkb2VzIG5vdCBtb2RpZnkgYW55IGtlcm5lbCBjb2RlLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNi8zMCAwMzo0MDwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IGQ3NjE0ODA3NWYxNTI4ZGI1OTllNzA3MjQwMWNmOTVkNzU4MTFiOThcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgVHVlIEp1biAzMCAwMzo0MDowNyAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvTWFrZWZpbGUgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvTWFrZWZpbGVcbmluZGV4IGI2NDJlZTQ4OWVhNjQwLi4wMDk4ZDg5MmNiMzllZSAxMDA2NDRcbi0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9NYWtlZmlsZVxuJiM0MzsmIzQzOyYjNDM7IGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL01ha2VmaWxlXG5AQCAtOTEsNiAmIzQzOzkxLDE3IEBAIENMQU5HX0hBU19BUkVOQV9BU0FOIDo9ICQoc2hlbGwgZWNobyAmIzM5O2ludCB4OyYjMzk7IHwgXFxcbiBcdC1tbGx2bSAtYXNhbi1zaGFkb3ctYWRkci1zcGFjZT0xIFxcXG4gXHQteCBjIC1jIC0gLW8gL2Rldi9udWxsIDJcdTAwM2UvZGV2L251bGwgXHUwMDI2XHUwMDI2IGVjaG8gMSlcbiBcbiYjNDM7IyBUaGUgYXJlbmEgcXNwaW5sb2NrIHVzZWQgYnkgbGliYXJlbmEgcGVyZm9ybXMgYSAzMi1iaXQgYXRvbWljIGNtcHhjaGcgb24gYW5cbiYjNDM7IyBhcmVuYSAoYWRkcmVzcyBzcGFjZSAxKSBwb2ludGVyLiBOb3QgZXZlcnkgTExWTSBCUEYgYmFja2VuZCBjYW4gc2VsZWN0IGl0O1xuJiM0MzsjIG9sZGVyIHJlbGVhc2VzIGJhaWwgb3V0IHdpdGggXCYjMzQ7dW5zdXBwb3J0ZWQgYXRvbWljIG9wZXJhdGlvbiwgcGxlYXNlIHVzZSA2NCBiaXRcbiYjNDM7IyB2ZXJzaW9uXCYjMzQ7LCB3aGljaCBhYm9ydHMgdGhlIHdob2xlIHNlbGZ0ZXN0cyBidWlsZC4gUHJvYmUgZm9yIHRoZSBvcGVyYXRpb24gYW5kXG4mIzQzOyMgc2tpcCBsaWJhcmVuYSAoYW5kIGl0cyBkZXBlbmRlbnQgdGVzdHMpIHdoZW4gdGhlIGJhY2tlbmQgY2Fubm90IGhhbmRsZSBpdC5cbiYjNDM7Q0xBTkdfSEFTX0FSRU5BX0NNUFhDSEczMiA6PSAkKHNoZWxsIHByaW50ZiAmIzM5OyVzXFxuJiMzOTsgXFxcbiYjNDM7XHQmIzM5O3N0cnVjdCBzIHsgaW50IGNvdW50ZXI7IH07JiMzOTsgXFxcbiYjNDM7XHQmIzM5O2ludCBmKHN0cnVjdCBzIF9fYXR0cmlidXRlX18oKGFkZHJlc3Nfc3BhY2UoMSkpKSAqbCwgaW50IG8sIGludCBuKSYjMzk7IFxcXG4mIzQzO1x0JiMzOTt7IHJldHVybiBfX3N5bmNfdmFsX2NvbXBhcmVfYW5kX3N3YXAoXHUwMDI2bC1cdTAwM2Vjb3VudGVyLCBvLCBuKTsgfSYjMzk7IHwgXFxcbiYjNDM7XHQkKENMQU5HKSAtLXRhcmdldD1icGYgLU8yIC14IGMgLWMgLSAtbyAvZGV2L251bGwgMlx1MDAzZS9kZXYvbnVsbCBcdTAwMjZcdTAwMjYgZWNobyAxKVxuJiM0MztcbiAjIE9yZGVyIGNvcnJlc3BvbmQgdG8gJiMzOTttYWtlIHJ1bl90ZXN0cyYjMzk7IG9yZGVyXG4gVEVTVF9HRU5fUFJPR1MgPSB0ZXN0X3ZlcmlmaWVyIHRlc3RfdGFnIHRlc3RfbWFwcyB0ZXN0X2xydV9tYXAgdGVzdF9wcm9ncyBcXFxuIFx0dGVzdF9zb2NrbWFwIFxcXG5AQCAtODM1LDEwICYjNDM7ODQ2LDEzIEBAIExJQkFSRU5BX0JQRl9ERVBTIDo9ICQod2lsZGNhcmQgbGliYXJlbmEvTWFrZWZpbGVcdFx0XFxcbiBcdFx0XHRcdCBsaWJhcmVuYS9zZWxmdGVzdHMvKlx0XHRcXFxuIFx0XHRcdFx0IGxpYmFyZW5hLyouYnBmLm8pXG4gXG4mIzQzO2lmbmVxICgkKENMQU5HX0hBU19BUkVOQV9DTVBYQ0hHMzIpLClcbiBMSUJBUkVOQV9TS0VMIDo9IGxpYmFyZW5hL2xpYmFyZW5hLnNrZWwuaFxuJiM0MztDRkxBR1MgJiM0Mzs9IC1ESEFTX0JQRl9BUkVOQVxuIFxuICQoTElCQVJFTkFfU0tFTCk6ICQoSU5DTFVERV9ESVIpL3ZtbGludXguaCAkKEJQRk9CSikgJChMSUJBUkVOQV9CUEZfREVQUylcbiBcdCYjNDM7JChNQUtFKSAtQyBsaWJhcmVuYSBsaWJhcmVuYS5za2VsLmggJChMSUJBUkVOQV9NQUtFX0FSR1MpXG4mIzQzO2VuZGlmXG4gXG4gaWZuZXEgKCQoQ0xBTkdfSEFTX0FSRU5BX0FTQU4pLClcbiBMSUJBUkVOQV9BU0FOX1NLRUwgOj0gbGliYXJlbmEvbGliYXJlbmFfYXNhbi5za2VsLmhcbmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ190ZXN0cy9saWJhcmVuYS5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dfdGVzdHMvbGliYXJlbmEuY1xuaW5kZXggNjFlYTY4ZGNlNDEwNWYuLmE3ZWRlNzJjNzI1NjUyIDEwMDY0NFxuLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dfdGVzdHMvbGliYXJlbmEuY1xuJiM0MzsmIzQzOyYjNDM7IGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dfdGVzdHMvbGliYXJlbmEuY1xuQEAgLTEsNiAmIzQzOzEsOCBAQFxuIC8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBMR1BMLTIuMSBPUiBCU0QtMi1DbGF1c2VcbiAvKiBDb3B5cmlnaHQgKGMpIDIwMjYgTWV0YSBQbGF0Zm9ybXMsIEluYy4gYW5kIGFmZmlsaWF0ZXMuICovXG4gI2luY2x1ZGUgXHUwMDNjdGVzdF9wcm9ncy5oXHUwMDNlXG4mIzQzO1xuJiM0MzsjaWZkZWYgSEFTX0JQRl9BUkVOQVxuICNpbmNsdWRlIFx1MDAzY3VuaXN0ZC5oXHUwMDNlXG4gXG4gI2luY2x1ZGUgXHUwMDNjbGliYXJlbmEvY29tbW9uLmhcdTAwM2VcbkBAIC0xOTgsNyAmIzQzOzIwMCw3IEBAIHN0YXRpYyB2b2lkIHJ1bl9saWJhcmVuYV9wYXJhbGxlbF90ZXN0KHN0cnVjdCBsaWJhcmVuYSAqc2tlbCwgc3RydWN0IGJwZl9wcm9ncmFtXG4gXHRydW5fbGliYXJlbmFfcGFyYWxsZWxfZmluaShza2VsLCBuYW1lLCBwcmVmaXhsZW4pO1xuIH1cbiBcbi12b2lkIHRlc3RfbGliYXJlbmEodm9pZClcbiYjNDM7c3RhdGljIHZvaWQgcnVuX3Rlc3Qodm9pZClcbiB7XG4gXHRzdHJ1Y3QgYXJlbmFfYWxsb2NfcmVzZXJ2ZV9hcmdzIGFyZ3M7XG4gXHRzdHJ1Y3QgbGliYXJlbmEgKnNrZWw7XG5AQCAtMjUxLDMgJiM0MzsyNTMsMTggQEAgdm9pZCB0ZXN0X2xpYmFyZW5hKHZvaWQpXG4gb3V0OlxuIFx0bGliYXJlbmFfX2Rlc3Ryb3koc2tlbCk7XG4gfVxuJiM0MztcbiYjNDM7I2VuZGlmIC8qIEhBU19CUEZfQVJFTkEgKi9cbiYjNDM7XG4mIzQzOy8qXG4mIzQzOyAqIFJ1biB0aGUgdGVzdCBvbmx5IGlmIHRoZSBCUEYgYmFja2VuZCBjYW4gY29tcGlsZSB0aGUgYXJlbmEgcHJvZ3JhbXNcbiYjNDM7ICogbGliYXJlbmEgZGVwZW5kcyBvbiAoc2VlIENMQU5HX0hBU19BUkVOQV9DTVBYQ0hHMzIgaW4gdGhlIE1ha2VmaWxlKS5cbiYjNDM7ICovXG4mIzQzO3ZvaWQgdGVzdF9saWJhcmVuYSh2b2lkKVxuJiM0Mzt7XG4mIzQzOyNpZmRlZiBIQVNfQlBGX0FSRU5BXG4mIzQzO1x0cnVuX3Rlc3QoKTtcbiYjNDM7I2Vsc2VcbiYjNDM7XHR0ZXN0X19za2lwKCk7XG4mIzQzOyNlbmRpZlxuJiM0Mzt9XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDYvMzAgMDM6NDA8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IG51bGwsCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggb25seSBtb2RpZmllcyBCUEYgc2VsZnRlc3RzICh0b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvKSB0byBza2lwIGEgdGVzdCBpZiB0aGUgY2xhbmcgY29tcGlsZXIgZG9lcyBub3Qgc3VwcG9ydCBhIHNwZWNpZmljIGF0b21pYyBvcGVyYXRpb24uIEl0IGRvZXMgbm90IG1vZGlmeSBhbnkga2VybmVsIGNvZGUuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmUKaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseQp1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLgoKUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczoKLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLgotIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLgotIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy4KLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsCmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS4KCklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2gKdG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuCgpXaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzoKMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy4KICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuCjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLgogICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuCiAgIERvIG5vdCBsaXN0IHRvbyBnZW5lcmljIGNvbmZpZ3MgKHdlIGFscmVhZHkgaGF2ZSB0aGVtIGVuYWJsZWQpLiBPbmx5IGxpc3QgdGhvc2UgdGhhdAogICBzcGVjaWZpY2FsbHkgY292ZXIgdGhlIG1vZGlmaWVkIGNvZGUuIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncyBvdXRwdXQgYXJyYXksCiAgIGFuZCBETyBOT1QgYWRkIGEgJiMzOTtDT05GSUdfJiMzOTsgcHJlZml4IChlLmcuLCByZXR1cm4gJiMzNDtORVRfSVBWNCYjMzQ7IGluc3RlYWQgb2YgJiMzNDtDT05GSUdfTkVUX0lQVjQmIzM0OykuClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Rm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCBkNzYxNDgwNzVmMTUyOGRiNTk5ZTcwNzI0MDFjZjk1ZDc1ODExYjk4CkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIFR1ZSBKdW4gMzAgMDM6NDA6MDcgMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvTWFrZWZpbGUgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvTWFrZWZpbGUKaW5kZXggYjY0MmVlNDg5ZWE2NDAuLjAwOThkODkyY2IzOWVlIDEwMDY0NAotLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvTWFrZWZpbGUKJiM0MzsmIzQzOyYjNDM7IGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL01ha2VmaWxlCkBAIC05MSw2ICYjNDM7OTEsMTcgQEAgQ0xBTkdfSEFTX0FSRU5BX0FTQU4gOj0gJChzaGVsbCBlY2hvICYjMzk7aW50IHg7JiMzOTsgfCBcCiAJLW1sbHZtIC1hc2FuLXNoYWRvdy1hZGRyLXNwYWNlPTEgXAogCS14IGMgLWMgLSAtbyAvZGV2L251bGwgMiZndDsvZGV2L251bGwgJmFtcDsmYW1wOyBlY2hvIDEpCiAKJiM0MzsjIFRoZSBhcmVuYSBxc3BpbmxvY2sgdXNlZCBieSBsaWJhcmVuYSBwZXJmb3JtcyBhIDMyLWJpdCBhdG9taWMgY21weGNoZyBvbiBhbgomIzQzOyMgYXJlbmEgKGFkZHJlc3Mgc3BhY2UgMSkgcG9pbnRlci4gTm90IGV2ZXJ5IExMVk0gQlBGIGJhY2tlbmQgY2FuIHNlbGVjdCBpdDsKJiM0MzsjIG9sZGVyIHJlbGVhc2VzIGJhaWwgb3V0IHdpdGggJiMzNDt1bnN1cHBvcnRlZCBhdG9taWMgb3BlcmF0aW9uLCBwbGVhc2UgdXNlIDY0IGJpdAomIzQzOyMgdmVyc2lvbiYjMzQ7LCB3aGljaCBhYm9ydHMgdGhlIHdob2xlIHNlbGZ0ZXN0cyBidWlsZC4gUHJvYmUgZm9yIHRoZSBvcGVyYXRpb24gYW5kCiYjNDM7IyBza2lwIGxpYmFyZW5hIChhbmQgaXRzIGRlcGVuZGVudCB0ZXN0cykgd2hlbiB0aGUgYmFja2VuZCBjYW5ub3QgaGFuZGxlIGl0LgomIzQzO0NMQU5HX0hBU19BUkVOQV9DTVBYQ0hHMzIgOj0gJChzaGVsbCBwcmludGYgJiMzOTslc1xuJiMzOTsgXAomIzQzOwkmIzM5O3N0cnVjdCBzIHsgaW50IGNvdW50ZXI7IH07JiMzOTsgXAomIzQzOwkmIzM5O2ludCBmKHN0cnVjdCBzIF9fYXR0cmlidXRlX18oKGFkZHJlc3Nfc3BhY2UoMSkpKSAqbCwgaW50IG8sIGludCBuKSYjMzk7IFwKJiM0MzsJJiMzOTt7IHJldHVybiBfX3N5bmNfdmFsX2NvbXBhcmVfYW5kX3N3YXAoJmFtcDtsLSZndDtjb3VudGVyLCBvLCBuKTsgfSYjMzk7IHwgXAomIzQzOwkkKENMQU5HKSAtLXRhcmdldD1icGYgLU8yIC14IGMgLWMgLSAtbyAvZGV2L251bGwgMiZndDsvZGV2L251bGwgJmFtcDsmYW1wOyBlY2hvIDEpCiYjNDM7CiAjIE9yZGVyIGNvcnJlc3BvbmQgdG8gJiMzOTttYWtlIHJ1bl90ZXN0cyYjMzk7IG9yZGVyCiBURVNUX0dFTl9QUk9HUyA9IHRlc3RfdmVyaWZpZXIgdGVzdF90YWcgdGVzdF9tYXBzIHRlc3RfbHJ1X21hcCB0ZXN0X3Byb2dzIFwKIAl0ZXN0X3NvY2ttYXAgXApAQCAtODM1LDEwICYjNDM7ODQ2LDEzIEBAIExJQkFSRU5BX0JQRl9ERVBTIDo9ICQod2lsZGNhcmQgbGliYXJlbmEvTWFrZWZpbGUJCVwKIAkJCQkgbGliYXJlbmEvc2VsZnRlc3RzLyoJCVwKIAkJCQkgbGliYXJlbmEvKi5icGYubykKIAomIzQzO2lmbmVxICgkKENMQU5HX0hBU19BUkVOQV9DTVBYQ0hHMzIpLCkKIExJQkFSRU5BX1NLRUwgOj0gbGliYXJlbmEvbGliYXJlbmEuc2tlbC5oCiYjNDM7Q0ZMQUdTICYjNDM7PSAtREhBU19CUEZfQVJFTkEKIAogJChMSUJBUkVOQV9TS0VMKTogJChJTkNMVURFX0RJUikvdm1saW51eC5oICQoQlBGT0JKKSAkKExJQkFSRU5BX0JQRl9ERVBTKQogCSYjNDM7JChNQUtFKSAtQyBsaWJhcmVuYSBsaWJhcmVuYS5za2VsLmggJChMSUJBUkVOQV9NQUtFX0FSR1MpCiYjNDM7ZW5kaWYKIAogaWZuZXEgKCQoQ0xBTkdfSEFTX0FSRU5BX0FTQU4pLCkKIExJQkFSRU5BX0FTQU5fU0tFTCA6PSBsaWJhcmVuYS9saWJhcmVuYV9hc2FuLnNrZWwuaApkaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dfdGVzdHMvbGliYXJlbmEuYyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9nX3Rlc3RzL2xpYmFyZW5hLmMKaW5kZXggNjFlYTY4ZGNlNDEwNWYuLmE3ZWRlNzJjNzI1NjUyIDEwMDY0NAotLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ190ZXN0cy9saWJhcmVuYS5jCiYjNDM7JiM0MzsmIzQzOyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9nX3Rlc3RzL2xpYmFyZW5hLmMKQEAgLTEsNiAmIzQzOzEsOCBAQAogLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IExHUEwtMi4xIE9SIEJTRC0yLUNsYXVzZQogLyogQ29weXJpZ2h0IChjKSAyMDI2IE1ldGEgUGxhdGZvcm1zLCBJbmMuIGFuZCBhZmZpbGlhdGVzLiAqLwogI2luY2x1ZGUgJmx0O3Rlc3RfcHJvZ3MuaCZndDsKJiM0MzsKJiM0MzsjaWZkZWYgSEFTX0JQRl9BUkVOQQogI2luY2x1ZGUgJmx0O3VuaXN0ZC5oJmd0OwogCiAjaW5jbHVkZSAmbHQ7bGliYXJlbmEvY29tbW9uLmgmZ3Q7CkBAIC0xOTgsNyAmIzQzOzIwMCw3IEBAIHN0YXRpYyB2b2lkIHJ1bl9saWJhcmVuYV9wYXJhbGxlbF90ZXN0KHN0cnVjdCBsaWJhcmVuYSAqc2tlbCwgc3RydWN0IGJwZl9wcm9ncmFtCiAJcnVuX2xpYmFyZW5hX3BhcmFsbGVsX2Zpbmkoc2tlbCwgbmFtZSwgcHJlZml4bGVuKTsKIH0KIAotdm9pZCB0ZXN0X2xpYmFyZW5hKHZvaWQpCiYjNDM7c3RhdGljIHZvaWQgcnVuX3Rlc3Qodm9pZCkKIHsKIAlzdHJ1Y3QgYXJlbmFfYWxsb2NfcmVzZXJ2ZV9hcmdzIGFyZ3M7CiAJc3RydWN0IGxpYmFyZW5hICpza2VsOwpAQCAtMjUxLDMgJiM0MzsyNTMsMTggQEAgdm9pZCB0ZXN0X2xpYmFyZW5hKHZvaWQpCiBvdXQ6CiAJbGliYXJlbmFfX2Rlc3Ryb3koc2tlbCk7CiB9CiYjNDM7CiYjNDM7I2VuZGlmIC8qIEhBU19CUEZfQVJFTkEgKi8KJiM0MzsKJiM0MzsvKgomIzQzOyAqIFJ1biB0aGUgdGVzdCBvbmx5IGlmIHRoZSBCUEYgYmFja2VuZCBjYW4gY29tcGlsZSB0aGUgYXJlbmEgcHJvZ3JhbXMKJiM0MzsgKiBsaWJhcmVuYSBkZXBlbmRzIG9uIChzZWUgQ0xBTkdfSEFTX0FSRU5BX0NNUFhDSEczMiBpbiB0aGUgTWFrZWZpbGUpLgomIzQzOyAqLwomIzQzO3ZvaWQgdGVzdF9saWJhcmVuYSh2b2lkKQomIzQzO3sKJiM0MzsjaWZkZWYgSEFTX0JQRl9BUkVOQQomIzQzOwlydW5fdGVzdCgpOwomIzQzOyNlbHNlCiYjNDM7CXRlc3RfX3NraXAoKTsKJiM0MzsjZW5kaWYKJiM0Mzt9CjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzMwIDAzOjQwPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDI3OTQKCQkJCQkJCW91dHB1dDogNzYKCQkJCQkJCXRob3VnaHRzOiAyNTQKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBQYXRjaCBmb3IgRnV6emluZyBFbGlnaWJpbGl0eSoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCBhbmQgbXkgaW5pdGlhbCBhc3Nlc3NtZW50IGlzIHRoYXQgaXQgKnNob3VsZG4mIzM5O3QqIGltcGFjdCB3aGV0aGVyIHdlIGNvbnNpZGVyIHRoaXMgY29kZSBmb3IgZnV6emluZy4gSXQgc2VlbXMgdG8gYmUgZm9jdXNlZCBzb2xlbHkgb24gdGhlIHNlbGZ0ZXN0cyB3aXRoaW4gYHRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9gLiBTcGVjaWZpY2FsbHksIGl0JiMzOTtzIHR3ZWFraW5nIHRoZSBgTWFrZWZpbGVgIHRoZXJlIHRvIGNoZWNrIGZvciBgQ0xBTkdfSEFTX0FSRU5BX0NNUFhDSEczMmAsIHdoaWNoIGluZGljYXRlcyBpZiB0aGUgY2xhbmcgY29tcGlsZXIgaGFzIHN1cHBvcnQgZm9yIDMyLWJpdCBhdG9taWMgY21weGNoZyBvbiBhbiBhcmVuYSBwb2ludGVyLiBJZiB0aGF0JiMzOTtzIHRoZSBjYXNlLCBgSEFTX0JQRl9BUkVOQWAgZ2V0cyBzZXQsIGFuZCBgbGliYXJlbmEuc2tlbC5oYCBpcyBidWlsdC4gVGhlIGNvcnJlc3BvbmRpbmcgdGVzdCBjb2RlIGluIGBwcm9nX3Rlc3RzL2xpYmFyZW5hLmNgIGlzIHRoZW4gY29uZGl0aW9uYWxseSBjb21waWxlZCBiYXNlZCBvbiBgSEFTX0JQRl9BUkVOQWAuCgpFc3NlbnRpYWxseSwgaXQgaXMgZW5hYmxpbmcgb3IgZGlzYWJsaW5nIGEgdGVzdCBkZXBlbmRpbmcgb24gdGhlIGNvbXBpbGVyJiMzOTtzIGNhcGFiaWxpdGllcywgYnV0ICpub3QqIGNoYW5naW5nIGFueSBjb3JlIGtlcm5lbCBmdW5jdGlvbmFsaXR5IGl0c2VsZi4KClRvIGJlIGFic29sdXRlbHkgc3VyZSwgbGV0IG1lIGNvbmZpcm0gdGhlIGZpbGUgbW9kaWZpY2F0aW9uczoKCiogICBgdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL01ha2VmaWxlYAoqICAgYHRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9nX3Rlc3RzL2xpYmFyZW5hLmNgCgpZZXAsIGNvbmZpcm1lZC4gVGhlc2UgYXJlIGFsbCB3aXRoaW4gdGhlIHNlbGZ0ZXN0cyBkaXJlY3RvcnksIGFuZCB0aGVyZSBpcyBubyBldmlkZW5jZSBvZiBtb2RpZmljYXRpb24gdG8gYW55IGtlcm5lbCBzb3VyY2UuCgpUaGVyZWZvcmUsIG15IGNvbmNsdXNpb24gcmVtYWluczogYFdvcnRoRnV6emluZ2Agc2hvdWxkIGJlIGBmYWxzZWAuIEkmIzM5O2xsIHJldHVybiB0aGF0IHZhbHVlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzMwIDAzOjQwPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+c2V0LXJlc3VsdHM8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogW10sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggb25seSBtb2RpZmllcyBCUEYgc2VsZnRlc3RzICh0b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvKSB0byBza2lwIGEgdGVzdCBpZiB0aGUgY2xhbmcgY29tcGlsZXIgZG9lcyBub3Qgc3VwcG9ydCBhIHNwZWNpZmljIGF0b21pYyBvcGVyYXRpb24uIEl0IGRvZXMgbm90IG1vZGlmeSBhbnkga2VybmVsIGNvZGUuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogbnVsbCwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBvbmx5IG1vZGlmaWVzIEJQRiBzZWxmdGVzdHMgKHRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi8pIHRvIHNraXAgYSB0ZXN0IGlmIHRoZSBjbGFuZyBjb21waWxlciBkb2VzIG5vdCBzdXBwb3J0IGEgc3BlY2lmaWMgYXRvbWljIG9wZXJhdGlvbi4gSXQgZG9lcyBub3QgbW9kaWZ5IGFueSBrZXJuZWwgY29kZS4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPC90Ym9keT4KCTwvdGFibGU+CgoJPGRpdiBpZD0ibGxtX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5MTE0gQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBUb2tlbnM8L3RoPgoJCQkJCTx0aD5BdmcgVG9rZW5zPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9ImxsbV9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9InRvb2xfc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPlRvb2wgQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0idG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9ImR1cmF0aW9uX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCTxkaXYgaWQ9InRva2VuX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL2pzYXBpIj48L3NjcmlwdD4KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCQlnb29nbGUubG9hZCgidmlzdWFsaXphdGlvbiIsICIxIiwge3BhY2thZ2VzOlsiY29yZWNoYXJ0Il19KTsKCQlnb29nbGUuc2V0T25Mb2FkQ2FsbGJhY2soZHJhd0NoYXJ0cyk7CgoJCWZ1bmN0aW9uIGRyYXdDaGFydHMoKSB7CgkJCWNvbnN0IHJhd0RhdGEgPSBbeyJTdGFydGVkIjoiMjAyNi0wNi0zMFQwMzo0MDowOC42NDQxMzIzOTFaIiwiU2VxIjowLCJOZXN0aW5nIjowLCJUeXBlIjoiZmxvdyIsIk5hbWUiOiJwYXRjaC10cmlhZ2UiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1ODM5MjMyMzI0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBvbmx5IG1vZGlmaWVzIEJQRiBzZWxmdGVzdHMgKHRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi8pIHRvIHNraXAgYSB0ZXN0IGlmIHRoZSBjbGFuZyBjb21waWxlciBkb2VzIG5vdCBzdXBwb3J0IGEgc3BlY2lmaWMgYXRvbWljIG9wZXJhdGlvbi4gSXQgZG9lcyBub3QgbW9kaWZ5IGFueSBrZXJuZWwgY29kZS5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTMwVDAzOjQwOjA4LjY0NDEzOTc4MVoiLCJTZXEiOjEsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoicmVhZC1wYXRjaC1kaWZmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NTYzNzc4ODI1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJQYXRjaERpZmZcIjogXCJjb21taXQgZDc2MTQ4MDc1ZjE1MjhkYjU5OWU3MDcyNDAxY2Y5NWQ3NTgxMWI5OFxcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXFx1MDAzZVxcbkRhdGU6ICAgVHVlIEp1biAzMCAwMzo0MDowNyAyMDI2ICswMDAwXFxuXFxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xcblxcbmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvTWFrZWZpbGUgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvTWFrZWZpbGVcXG5pbmRleCBiNjQyZWU0ODllYTY0MC4uMDA5OGQ4OTJjYjM5ZWUgMTAwNjQ0XFxuLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL01ha2VmaWxlXFxuKysrIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL01ha2VmaWxlXFxuQEAgLTkxLDYgKzkxLDE3IEBAIENMQU5HX0hBU19BUkVOQV9BU0FOIDo9ICQoc2hlbGwgZWNobyAnaW50IHg7JyB8IFxcXFxcXG4gXFx0LW1sbHZtIC1hc2FuLXNoYWRvdy1hZGRyLXNwYWNlPTEgXFxcXFxcbiBcXHQteCBjIC1jIC0gLW8gL2Rldi9udWxsIDJcXHUwMDNlL2Rldi9udWxsIFxcdTAwMjZcXHUwMDI2IGVjaG8gMSlcXG4gXFxuKyMgVGhlIGFyZW5hIHFzcGlubG9jayB1c2VkIGJ5IGxpYmFyZW5hIHBlcmZvcm1zIGEgMzItYml0IGF0b21pYyBjbXB4Y2hnIG9uIGFuXFxuKyMgYXJlbmEgKGFkZHJlc3Mgc3BhY2UgMSkgcG9pbnRlci4gTm90IGV2ZXJ5IExMVk0gQlBGIGJhY2tlbmQgY2FuIHNlbGVjdCBpdDtcXG4rIyBvbGRlciByZWxlYXNlcyBiYWlsIG91dCB3aXRoIFxcXCJ1bnN1cHBvcnRlZCBhdG9taWMgb3BlcmF0aW9uLCBwbGVhc2UgdXNlIDY0IGJpdFxcbisjIHZlcnNpb25cXFwiLCB3aGljaCBhYm9ydHMgdGhlIHdob2xlIHNlbGZ0ZXN0cyBidWlsZC4gUHJvYmUgZm9yIHRoZSBvcGVyYXRpb24gYW5kXFxuKyMgc2tpcCBsaWJhcmVuYSAoYW5kIGl0cyBkZXBlbmRlbnQgdGVzdHMpIHdoZW4gdGhlIGJhY2tlbmQgY2Fubm90IGhhbmRsZSBpdC5cXG4rQ0xBTkdfSEFTX0FSRU5BX0NNUFhDSEczMiA6PSAkKHNoZWxsIHByaW50ZiAnJXNcXFxcbicgXFxcXFxcbitcXHQnc3RydWN0IHMgeyBpbnQgY291bnRlcjsgfTsnIFxcXFxcXG4rXFx0J2ludCBmKHN0cnVjdCBzIF9fYXR0cmlidXRlX18oKGFkZHJlc3Nfc3BhY2UoMSkpKSAqbCwgaW50IG8sIGludCBuKScgXFxcXFxcbitcXHQneyByZXR1cm4gX19zeW5jX3ZhbF9jb21wYXJlX2FuZF9zd2FwKFxcdTAwMjZsLVxcdTAwM2Vjb3VudGVyLCBvLCBuKTsgfScgfCBcXFxcXFxuK1xcdCQoQ0xBTkcpIC0tdGFyZ2V0PWJwZiAtTzIgLXggYyAtYyAtIC1vIC9kZXYvbnVsbCAyXFx1MDAzZS9kZXYvbnVsbCBcXHUwMDI2XFx1MDAyNiBlY2hvIDEpXFxuK1xcbiAjIE9yZGVyIGNvcnJlc3BvbmQgdG8gJ21ha2UgcnVuX3Rlc3RzJyBvcmRlclxcbiBURVNUX0dFTl9QUk9HUyA9IHRlc3RfdmVyaWZpZXIgdGVzdF90YWcgdGVzdF9tYXBzIHRlc3RfbHJ1X21hcCB0ZXN0X3Byb2dzIFxcXFxcXG4gXFx0dGVzdF9zb2NrbWFwIFxcXFxcXG5AQCAtODM1LDEwICs4NDYsMTMgQEAgTElCQVJFTkFfQlBGX0RFUFMgOj0gJCh3aWxkY2FyZCBsaWJhcmVuYS9NYWtlZmlsZVxcdFxcdFxcXFxcXG4gXFx0XFx0XFx0XFx0IGxpYmFyZW5hL3NlbGZ0ZXN0cy8qXFx0XFx0XFxcXFxcbiBcXHRcXHRcXHRcXHQgbGliYXJlbmEvKi5icGYubylcXG4gXFxuK2lmbmVxICgkKENMQU5HX0hBU19BUkVOQV9DTVBYQ0hHMzIpLClcXG4gTElCQVJFTkFfU0tFTCA6PSBsaWJhcmVuYS9saWJhcmVuYS5za2VsLmhcXG4rQ0ZMQUdTICs9IC1ESEFTX0JQRl9BUkVOQVxcbiBcXG4gJChMSUJBUkVOQV9TS0VMKTogJChJTkNMVURFX0RJUikvdm1saW51eC5oICQoQlBGT0JKKSAkKExJQkFSRU5BX0JQRl9ERVBTKVxcbiBcXHQrJChNQUtFKSAtQyBsaWJhcmVuYSBsaWJhcmVuYS5za2VsLmggJChMSUJBUkVOQV9NQUtFX0FSR1MpXFxuK2VuZGlmXFxuIFxcbiBpZm5lcSAoJChDTEFOR19IQVNfQVJFTkFfQVNBTiksKVxcbiBMSUJBUkVOQV9BU0FOX1NLRUwgOj0gbGliYXJlbmEvbGliYXJlbmFfYXNhbi5za2VsLmhcXG5kaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dfdGVzdHMvbGliYXJlbmEuYyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9nX3Rlc3RzL2xpYmFyZW5hLmNcXG5pbmRleCA2MWVhNjhkY2U0MTA1Zi4uYTdlZGU3MmM3MjU2NTIgMTAwNjQ0XFxuLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dfdGVzdHMvbGliYXJlbmEuY1xcbisrKyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9nX3Rlc3RzL2xpYmFyZW5hLmNcXG5AQCAtMSw2ICsxLDggQEBcXG4gLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IExHUEwtMi4xIE9SIEJTRC0yLUNsYXVzZVxcbiAvKiBDb3B5cmlnaHQgKGMpIDIwMjYgTWV0YSBQbGF0Zm9ybXMsIEluYy4gYW5kIGFmZmlsaWF0ZXMuICovXFxuICNpbmNsdWRlIFxcdTAwM2N0ZXN0X3Byb2dzLmhcXHUwMDNlXFxuK1xcbisjaWZkZWYgSEFTX0JQRl9BUkVOQVxcbiAjaW5jbHVkZSBcXHUwMDNjdW5pc3RkLmhcXHUwMDNlXFxuIFxcbiAjaW5jbHVkZSBcXHUwMDNjbGliYXJlbmEvY29tbW9uLmhcXHUwMDNlXFxuQEAgLTE5OCw3ICsyMDAsNyBAQCBzdGF0aWMgdm9pZCBydW5fbGliYXJlbmFfcGFyYWxsZWxfdGVzdChzdHJ1Y3QgbGliYXJlbmEgKnNrZWwsIHN0cnVjdCBicGZfcHJvZ3JhbVxcbiBcXHRydW5fbGliYXJlbmFfcGFyYWxsZWxfZmluaShza2VsLCBuYW1lLCBwcmVmaXhsZW4pO1xcbiB9XFxuIFxcbi12b2lkIHRlc3RfbGliYXJlbmEodm9pZClcXG4rc3RhdGljIHZvaWQgcnVuX3Rlc3Qodm9pZClcXG4ge1xcbiBcXHRzdHJ1Y3QgYXJlbmFfYWxsb2NfcmVzZXJ2ZV9hcmdzIGFyZ3M7XFxuIFxcdHN0cnVjdCBsaWJhcmVuYSAqc2tlbDtcXG5AQCAtMjUxLDMgKzI1MywxOCBAQCB2b2lkIHRlc3RfbGliYXJlbmEodm9pZClcXG4gb3V0OlxcbiBcXHRsaWJhcmVuYV9fZGVzdHJveShza2VsKTtcXG4gfVxcbitcXG4rI2VuZGlmIC8qIEhBU19CUEZfQVJFTkEgKi9cXG4rXFxuKy8qXFxuKyAqIFJ1biB0aGUgdGVzdCBvbmx5IGlmIHRoZSBCUEYgYmFja2VuZCBjYW4gY29tcGlsZSB0aGUgYXJlbmEgcHJvZ3JhbXNcXG4rICogbGliYXJlbmEgZGVwZW5kcyBvbiAoc2VlIENMQU5HX0hBU19BUkVOQV9DTVBYQ0hHMzIgaW4gdGhlIE1ha2VmaWxlKS5cXG4rICovXFxuK3ZvaWQgdGVzdF9saWJhcmVuYSh2b2lkKVxcbit7XFxuKyNpZmRlZiBIQVNfQlBGX0FSRU5BXFxuK1xcdHJ1bl90ZXN0KCk7XFxuKyNlbHNlXFxuK1xcdHRlc3RfX3NraXAoKTtcXG4rI2VuZGlmXFxuK31cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMzBUMDM6NDA6MDkuMjA4ODUwMjU1WiIsIlNlcSI6MiwiTmVzdGluZyI6MSwiVHlwZSI6ImFnZW50IiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo1Mjc0NTA2MzQ5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBvbmx5IG1vZGlmaWVzIEJQRiBzZWxmdGVzdHMgKHRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi8pIHRvIHNraXAgYSB0ZXN0IGlmIHRoZSBjbGFuZyBjb21waWxlciBkb2VzIG5vdCBzdXBwb3J0IGEgc3BlY2lmaWMgYXRvbWljIG9wZXJhdGlvbi4gSXQgZG9lcyBub3QgbW9kaWZ5IGFueSBrZXJuZWwgY29kZS5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLlxuWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmVcbmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cblxuSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluXG55b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHlcbnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuXG5cblJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6XG4tIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuXG4tIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLlxuLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuXG4tIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSxcbmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS5cblxuSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaFxudG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuXG5cbldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOlxuMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy5cbiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLlxuMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuXG4gICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuXG4gICBEbyBub3QgbGlzdCB0b28gZ2VuZXJpYyBjb25maWdzICh3ZSBhbHJlYWR5IGhhdmUgdGhlbSBlbmFibGVkKS4gT25seSBsaXN0IHRob3NlIHRoYXRcbiAgIHNwZWNpZmljYWxseSBjb3ZlciB0aGUgbW9kaWZpZWQgY29kZS4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzIG91dHB1dCBhcnJheSxcbiAgIGFuZCBETyBOT1QgYWRkIGEgJ0NPTkZJR18nIHByZWZpeCAoZS5nLiwgcmV0dXJuIFwiTkVUX0lQVjRcIiBpbnN0ZWFkIG9mIFwiQ09ORklHX05FVF9JUFY0XCIpLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgZDc2MTQ4MDc1ZjE1MjhkYjU5OWU3MDcyNDAxY2Y5NWQ3NTgxMWI5OFxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBUdWUgSnVuIDMwIDAzOjQwOjA3IDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL01ha2VmaWxlIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL01ha2VmaWxlXG5pbmRleCBiNjQyZWU0ODllYTY0MC4uMDA5OGQ4OTJjYjM5ZWUgMTAwNjQ0XG4tLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvTWFrZWZpbGVcbisrKyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9NYWtlZmlsZVxuQEAgLTkxLDYgKzkxLDE3IEBAIENMQU5HX0hBU19BUkVOQV9BU0FOIDo9ICQoc2hlbGwgZWNobyAnaW50IHg7JyB8IFxcXG4gXHQtbWxsdm0gLWFzYW4tc2hhZG93LWFkZHItc3BhY2U9MSBcXFxuIFx0LXggYyAtYyAtIC1vIC9kZXYvbnVsbCAyXHUwMDNlL2Rldi9udWxsIFx1MDAyNlx1MDAyNiBlY2hvIDEpXG4gXG4rIyBUaGUgYXJlbmEgcXNwaW5sb2NrIHVzZWQgYnkgbGliYXJlbmEgcGVyZm9ybXMgYSAzMi1iaXQgYXRvbWljIGNtcHhjaGcgb24gYW5cbisjIGFyZW5hIChhZGRyZXNzIHNwYWNlIDEpIHBvaW50ZXIuIE5vdCBldmVyeSBMTFZNIEJQRiBiYWNrZW5kIGNhbiBzZWxlY3QgaXQ7XG4rIyBvbGRlciByZWxlYXNlcyBiYWlsIG91dCB3aXRoIFwidW5zdXBwb3J0ZWQgYXRvbWljIG9wZXJhdGlvbiwgcGxlYXNlIHVzZSA2NCBiaXRcbisjIHZlcnNpb25cIiwgd2hpY2ggYWJvcnRzIHRoZSB3aG9sZSBzZWxmdGVzdHMgYnVpbGQuIFByb2JlIGZvciB0aGUgb3BlcmF0aW9uIGFuZFxuKyMgc2tpcCBsaWJhcmVuYSAoYW5kIGl0cyBkZXBlbmRlbnQgdGVzdHMpIHdoZW4gdGhlIGJhY2tlbmQgY2Fubm90IGhhbmRsZSBpdC5cbitDTEFOR19IQVNfQVJFTkFfQ01QWENIRzMyIDo9ICQoc2hlbGwgcHJpbnRmICclc1xcbicgXFxcbitcdCdzdHJ1Y3QgcyB7IGludCBjb3VudGVyOyB9OycgXFxcbitcdCdpbnQgZihzdHJ1Y3QgcyBfX2F0dHJpYnV0ZV9fKChhZGRyZXNzX3NwYWNlKDEpKSkgKmwsIGludCBvLCBpbnQgbiknIFxcXG4rXHQneyByZXR1cm4gX19zeW5jX3ZhbF9jb21wYXJlX2FuZF9zd2FwKFx1MDAyNmwtXHUwMDNlY291bnRlciwgbywgbik7IH0nIHwgXFxcbitcdCQoQ0xBTkcpIC0tdGFyZ2V0PWJwZiAtTzIgLXggYyAtYyAtIC1vIC9kZXYvbnVsbCAyXHUwMDNlL2Rldi9udWxsIFx1MDAyNlx1MDAyNiBlY2hvIDEpXG4rXG4gIyBPcmRlciBjb3JyZXNwb25kIHRvICdtYWtlIHJ1bl90ZXN0cycgb3JkZXJcbiBURVNUX0dFTl9QUk9HUyA9IHRlc3RfdmVyaWZpZXIgdGVzdF90YWcgdGVzdF9tYXBzIHRlc3RfbHJ1X21hcCB0ZXN0X3Byb2dzIFxcXG4gXHR0ZXN0X3NvY2ttYXAgXFxcbkBAIC04MzUsMTAgKzg0NiwxMyBAQCBMSUJBUkVOQV9CUEZfREVQUyA6PSAkKHdpbGRjYXJkIGxpYmFyZW5hL01ha2VmaWxlXHRcdFxcXG4gXHRcdFx0XHQgbGliYXJlbmEvc2VsZnRlc3RzLypcdFx0XFxcbiBcdFx0XHRcdCBsaWJhcmVuYS8qLmJwZi5vKVxuIFxuK2lmbmVxICgkKENMQU5HX0hBU19BUkVOQV9DTVBYQ0hHMzIpLClcbiBMSUJBUkVOQV9TS0VMIDo9IGxpYmFyZW5hL2xpYmFyZW5hLnNrZWwuaFxuK0NGTEFHUyArPSAtREhBU19CUEZfQVJFTkFcbiBcbiAkKExJQkFSRU5BX1NLRUwpOiAkKElOQ0xVREVfRElSKS92bWxpbnV4LmggJChCUEZPQkopICQoTElCQVJFTkFfQlBGX0RFUFMpXG4gXHQrJChNQUtFKSAtQyBsaWJhcmVuYSBsaWJhcmVuYS5za2VsLmggJChMSUJBUkVOQV9NQUtFX0FSR1MpXG4rZW5kaWZcbiBcbiBpZm5lcSAoJChDTEFOR19IQVNfQVJFTkFfQVNBTiksKVxuIExJQkFSRU5BX0FTQU5fU0tFTCA6PSBsaWJhcmVuYS9saWJhcmVuYV9hc2FuLnNrZWwuaFxuZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9nX3Rlc3RzL2xpYmFyZW5hLmMgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ190ZXN0cy9saWJhcmVuYS5jXG5pbmRleCA2MWVhNjhkY2U0MTA1Zi4uYTdlZGU3MmM3MjU2NTIgMTAwNjQ0XG4tLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ190ZXN0cy9saWJhcmVuYS5jXG4rKysgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ190ZXN0cy9saWJhcmVuYS5jXG5AQCAtMSw2ICsxLDggQEBcbiAvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTEdQTC0yLjEgT1IgQlNELTItQ2xhdXNlXG4gLyogQ29weXJpZ2h0IChjKSAyMDI2IE1ldGEgUGxhdGZvcm1zLCBJbmMuIGFuZCBhZmZpbGlhdGVzLiAqL1xuICNpbmNsdWRlIFx1MDAzY3Rlc3RfcHJvZ3MuaFx1MDAzZVxuK1xuKyNpZmRlZiBIQVNfQlBGX0FSRU5BXG4gI2luY2x1ZGUgXHUwMDNjdW5pc3RkLmhcdTAwM2VcbiBcbiAjaW5jbHVkZSBcdTAwM2NsaWJhcmVuYS9jb21tb24uaFx1MDAzZVxuQEAgLTE5OCw3ICsyMDAsNyBAQCBzdGF0aWMgdm9pZCBydW5fbGliYXJlbmFfcGFyYWxsZWxfdGVzdChzdHJ1Y3QgbGliYXJlbmEgKnNrZWwsIHN0cnVjdCBicGZfcHJvZ3JhbVxuIFx0cnVuX2xpYmFyZW5hX3BhcmFsbGVsX2Zpbmkoc2tlbCwgbmFtZSwgcHJlZml4bGVuKTtcbiB9XG4gXG4tdm9pZCB0ZXN0X2xpYmFyZW5hKHZvaWQpXG4rc3RhdGljIHZvaWQgcnVuX3Rlc3Qodm9pZClcbiB7XG4gXHRzdHJ1Y3QgYXJlbmFfYWxsb2NfcmVzZXJ2ZV9hcmdzIGFyZ3M7XG4gXHRzdHJ1Y3QgbGliYXJlbmEgKnNrZWw7XG5AQCAtMjUxLDMgKzI1MywxOCBAQCB2b2lkIHRlc3RfbGliYXJlbmEodm9pZClcbiBvdXQ6XG4gXHRsaWJhcmVuYV9fZGVzdHJveShza2VsKTtcbiB9XG4rXG4rI2VuZGlmIC8qIEhBU19CUEZfQVJFTkEgKi9cbitcbisvKlxuKyAqIFJ1biB0aGUgdGVzdCBvbmx5IGlmIHRoZSBCUEYgYmFja2VuZCBjYW4gY29tcGlsZSB0aGUgYXJlbmEgcHJvZ3JhbXNcbisgKiBsaWJhcmVuYSBkZXBlbmRzIG9uIChzZWUgQ0xBTkdfSEFTX0FSRU5BX0NNUFhDSEczMiBpbiB0aGUgTWFrZWZpbGUpLlxuKyAqL1xuK3ZvaWQgdGVzdF9saWJhcmVuYSh2b2lkKVxuK3tcbisjaWZkZWYgSEFTX0JQRl9BUkVOQVxuK1x0cnVuX3Rlc3QoKTtcbisjZWxzZVxuK1x0dGVzdF9fc2tpcCgpO1xuKyNlbmRpZlxuK31cbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTMwVDAzOjQwOjA5LjIwODg1MjM1NVoiLCJTZXEiOjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjUyNzQ0NzM2MTksIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBQYXRjaCBmb3IgRnV6emluZyBFbGlnaWJpbGl0eSoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggYW5kIG15IGluaXRpYWwgYXNzZXNzbWVudCBpcyB0aGF0IGl0ICpzaG91bGRuJ3QqIGltcGFjdCB3aGV0aGVyIHdlIGNvbnNpZGVyIHRoaXMgY29kZSBmb3IgZnV6emluZy4gSXQgc2VlbXMgdG8gYmUgZm9jdXNlZCBzb2xlbHkgb24gdGhlIHNlbGZ0ZXN0cyB3aXRoaW4gYHRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9gLiBTcGVjaWZpY2FsbHksIGl0J3MgdHdlYWtpbmcgdGhlIGBNYWtlZmlsZWAgdGhlcmUgdG8gY2hlY2sgZm9yIGBDTEFOR19IQVNfQVJFTkFfQ01QWENIRzMyYCwgd2hpY2ggaW5kaWNhdGVzIGlmIHRoZSBjbGFuZyBjb21waWxlciBoYXMgc3VwcG9ydCBmb3IgMzItYml0IGF0b21pYyBjbXB4Y2hnIG9uIGFuIGFyZW5hIHBvaW50ZXIuIElmIHRoYXQncyB0aGUgY2FzZSwgYEhBU19CUEZfQVJFTkFgIGdldHMgc2V0LCBhbmQgYGxpYmFyZW5hLnNrZWwuaGAgaXMgYnVpbHQuIFRoZSBjb3JyZXNwb25kaW5nIHRlc3QgY29kZSBpbiBgcHJvZ190ZXN0cy9saWJhcmVuYS5jYCBpcyB0aGVuIGNvbmRpdGlvbmFsbHkgY29tcGlsZWQgYmFzZWQgb24gYEhBU19CUEZfQVJFTkFgLlxuXG5Fc3NlbnRpYWxseSwgaXQgaXMgZW5hYmxpbmcgb3IgZGlzYWJsaW5nIGEgdGVzdCBkZXBlbmRpbmcgb24gdGhlIGNvbXBpbGVyJ3MgY2FwYWJpbGl0aWVzLCBidXQgKm5vdCogY2hhbmdpbmcgYW55IGNvcmUga2VybmVsIGZ1bmN0aW9uYWxpdHkgaXRzZWxmLlxuXG5UbyBiZSBhYnNvbHV0ZWx5IHN1cmUsIGxldCBtZSBjb25maXJtIHRoZSBmaWxlIG1vZGlmaWNhdGlvbnM6XG5cbiogICBgdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL01ha2VmaWxlYFxuKiAgIGB0b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ190ZXN0cy9saWJhcmVuYS5jYFxuXG5ZZXAsIGNvbmZpcm1lZC4gVGhlc2UgYXJlIGFsbCB3aXRoaW4gdGhlIHNlbGZ0ZXN0cyBkaXJlY3RvcnksIGFuZCB0aGVyZSBpcyBubyBldmlkZW5jZSBvZiBtb2RpZmljYXRpb24gdG8gYW55IGtlcm5lbCBzb3VyY2UuXG5cblRoZXJlZm9yZSwgbXkgY29uY2x1c2lvbiByZW1haW5zOiBgV29ydGhGdXp6aW5nYCBzaG91bGQgYmUgYGZhbHNlYC4gSSdsbCByZXR1cm4gdGhhdCB2YWx1ZS5cblxuXG4iLCJJbnB1dFRva2VucyI6Mjc5NCwiT3V0cHV0VG9rZW5zIjo3NiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjI1NCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTMwVDAzOjQwOjE0LjQ4MzMyODQyNVoiLCJTZXEiOjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InNldC1yZXN1bHRzIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjYwMDAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggb25seSBtb2RpZmllcyBCUEYgc2VsZnRlc3RzICh0b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvKSB0byBza2lwIGEgdGVzdCBpZiB0aGUgY2xhbmcgY29tcGlsZXIgZG9lcyBub3Qgc3VwcG9ydCBhIHNwZWNpZmljIGF0b21pYyBvcGVyYXRpb24uIEl0IGRvZXMgbm90IG1vZGlmeSBhbnkga2VybmVsIGNvZGUuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBvbmx5IG1vZGlmaWVzIEJQRiBzZWxmdGVzdHMgKHRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi8pIHRvIHNraXAgYSB0ZXN0IGlmIHRoZSBjbGFuZyBjb21waWxlciBkb2VzIG5vdCBzdXBwb3J0IGEgc3BlY2lmaWMgYXRvbWljIG9wZXJhdGlvbi4gSXQgZG9lcyBub3QgbW9kaWZ5IGFueSBrZXJuZWwgY29kZS5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/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-workflowkklb7[0].run-triage(0) Phase: Succeeded StartedAt: 2026-06-30 03:27:56 +0000 UTC FinishedAt: 2026-06-30 03:40:15 +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+CgkJCTx0ZD4yMDI2LzA2LzMwIDAzOjQwPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG9ubHkgbW9kaWZpZXMgQlBGIHNlbGZ0ZXN0cyAodG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmLykgdG8gc2tpcCBhIHRlc3QgaWYgdGhlIGNsYW5nIGNvbXBpbGVyIGRvZXMgbm90IHN1cHBvcnQgYSBzcGVjaWZpYyBhdG9taWMgb3BlcmF0aW9uLiBJdCBkb2VzIG5vdCBtb2RpZnkgYW55IGtlcm5lbCBjb2RlLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNi8zMCAwMzo0MDwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IGQ3NjE0ODA3NWYxNTI4ZGI1OTllNzA3MjQwMWNmOTVkNzU4MTFiOThcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgVHVlIEp1biAzMCAwMzo0MDowNyAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvTWFrZWZpbGUgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvTWFrZWZpbGVcbmluZGV4IGI2NDJlZTQ4OWVhNjQwLi4wMDk4ZDg5MmNiMzllZSAxMDA2NDRcbi0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9NYWtlZmlsZVxuJiM0MzsmIzQzOyYjNDM7IGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL01ha2VmaWxlXG5AQCAtOTEsNiAmIzQzOzkxLDE3IEBAIENMQU5HX0hBU19BUkVOQV9BU0FOIDo9ICQoc2hlbGwgZWNobyAmIzM5O2ludCB4OyYjMzk7IHwgXFxcbiBcdC1tbGx2bSAtYXNhbi1zaGFkb3ctYWRkci1zcGFjZT0xIFxcXG4gXHQteCBjIC1jIC0gLW8gL2Rldi9udWxsIDJcdTAwM2UvZGV2L251bGwgXHUwMDI2XHUwMDI2IGVjaG8gMSlcbiBcbiYjNDM7IyBUaGUgYXJlbmEgcXNwaW5sb2NrIHVzZWQgYnkgbGliYXJlbmEgcGVyZm9ybXMgYSAzMi1iaXQgYXRvbWljIGNtcHhjaGcgb24gYW5cbiYjNDM7IyBhcmVuYSAoYWRkcmVzcyBzcGFjZSAxKSBwb2ludGVyLiBOb3QgZXZlcnkgTExWTSBCUEYgYmFja2VuZCBjYW4gc2VsZWN0IGl0O1xuJiM0MzsjIG9sZGVyIHJlbGVhc2VzIGJhaWwgb3V0IHdpdGggXCYjMzQ7dW5zdXBwb3J0ZWQgYXRvbWljIG9wZXJhdGlvbiwgcGxlYXNlIHVzZSA2NCBiaXRcbiYjNDM7IyB2ZXJzaW9uXCYjMzQ7LCB3aGljaCBhYm9ydHMgdGhlIHdob2xlIHNlbGZ0ZXN0cyBidWlsZC4gUHJvYmUgZm9yIHRoZSBvcGVyYXRpb24gYW5kXG4mIzQzOyMgc2tpcCBsaWJhcmVuYSAoYW5kIGl0cyBkZXBlbmRlbnQgdGVzdHMpIHdoZW4gdGhlIGJhY2tlbmQgY2Fubm90IGhhbmRsZSBpdC5cbiYjNDM7Q0xBTkdfSEFTX0FSRU5BX0NNUFhDSEczMiA6PSAkKHNoZWxsIHByaW50ZiAmIzM5OyVzXFxuJiMzOTsgXFxcbiYjNDM7XHQmIzM5O3N0cnVjdCBzIHsgaW50IGNvdW50ZXI7IH07JiMzOTsgXFxcbiYjNDM7XHQmIzM5O2ludCBmKHN0cnVjdCBzIF9fYXR0cmlidXRlX18oKGFkZHJlc3Nfc3BhY2UoMSkpKSAqbCwgaW50IG8sIGludCBuKSYjMzk7IFxcXG4mIzQzO1x0JiMzOTt7IHJldHVybiBfX3N5bmNfdmFsX2NvbXBhcmVfYW5kX3N3YXAoXHUwMDI2bC1cdTAwM2Vjb3VudGVyLCBvLCBuKTsgfSYjMzk7IHwgXFxcbiYjNDM7XHQkKENMQU5HKSAtLXRhcmdldD1icGYgLU8yIC14IGMgLWMgLSAtbyAvZGV2L251bGwgMlx1MDAzZS9kZXYvbnVsbCBcdTAwMjZcdTAwMjYgZWNobyAxKVxuJiM0MztcbiAjIE9yZGVyIGNvcnJlc3BvbmQgdG8gJiMzOTttYWtlIHJ1bl90ZXN0cyYjMzk7IG9yZGVyXG4gVEVTVF9HRU5fUFJPR1MgPSB0ZXN0X3ZlcmlmaWVyIHRlc3RfdGFnIHRlc3RfbWFwcyB0ZXN0X2xydV9tYXAgdGVzdF9wcm9ncyBcXFxuIFx0dGVzdF9zb2NrbWFwIFxcXG5AQCAtODM1LDEwICYjNDM7ODQ2LDEzIEBAIExJQkFSRU5BX0JQRl9ERVBTIDo9ICQod2lsZGNhcmQgbGliYXJlbmEvTWFrZWZpbGVcdFx0XFxcbiBcdFx0XHRcdCBsaWJhcmVuYS9zZWxmdGVzdHMvKlx0XHRcXFxuIFx0XHRcdFx0IGxpYmFyZW5hLyouYnBmLm8pXG4gXG4mIzQzO2lmbmVxICgkKENMQU5HX0hBU19BUkVOQV9DTVBYQ0hHMzIpLClcbiBMSUJBUkVOQV9TS0VMIDo9IGxpYmFyZW5hL2xpYmFyZW5hLnNrZWwuaFxuJiM0MztDRkxBR1MgJiM0Mzs9IC1ESEFTX0JQRl9BUkVOQVxuIFxuICQoTElCQVJFTkFfU0tFTCk6ICQoSU5DTFVERV9ESVIpL3ZtbGludXguaCAkKEJQRk9CSikgJChMSUJBUkVOQV9CUEZfREVQUylcbiBcdCYjNDM7JChNQUtFKSAtQyBsaWJhcmVuYSBsaWJhcmVuYS5za2VsLmggJChMSUJBUkVOQV9NQUtFX0FSR1MpXG4mIzQzO2VuZGlmXG4gXG4gaWZuZXEgKCQoQ0xBTkdfSEFTX0FSRU5BX0FTQU4pLClcbiBMSUJBUkVOQV9BU0FOX1NLRUwgOj0gbGliYXJlbmEvbGliYXJlbmFfYXNhbi5za2VsLmhcbmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ190ZXN0cy9saWJhcmVuYS5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dfdGVzdHMvbGliYXJlbmEuY1xuaW5kZXggNjFlYTY4ZGNlNDEwNWYuLmE3ZWRlNzJjNzI1NjUyIDEwMDY0NFxuLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dfdGVzdHMvbGliYXJlbmEuY1xuJiM0MzsmIzQzOyYjNDM7IGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dfdGVzdHMvbGliYXJlbmEuY1xuQEAgLTEsNiAmIzQzOzEsOCBAQFxuIC8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBMR1BMLTIuMSBPUiBCU0QtMi1DbGF1c2VcbiAvKiBDb3B5cmlnaHQgKGMpIDIwMjYgTWV0YSBQbGF0Zm9ybXMsIEluYy4gYW5kIGFmZmlsaWF0ZXMuICovXG4gI2luY2x1ZGUgXHUwMDNjdGVzdF9wcm9ncy5oXHUwMDNlXG4mIzQzO1xuJiM0MzsjaWZkZWYgSEFTX0JQRl9BUkVOQVxuICNpbmNsdWRlIFx1MDAzY3VuaXN0ZC5oXHUwMDNlXG4gXG4gI2luY2x1ZGUgXHUwMDNjbGliYXJlbmEvY29tbW9uLmhcdTAwM2VcbkBAIC0xOTgsNyAmIzQzOzIwMCw3IEBAIHN0YXRpYyB2b2lkIHJ1bl9saWJhcmVuYV9wYXJhbGxlbF90ZXN0KHN0cnVjdCBsaWJhcmVuYSAqc2tlbCwgc3RydWN0IGJwZl9wcm9ncmFtXG4gXHRydW5fbGliYXJlbmFfcGFyYWxsZWxfZmluaShza2VsLCBuYW1lLCBwcmVmaXhsZW4pO1xuIH1cbiBcbi12b2lkIHRlc3RfbGliYXJlbmEodm9pZClcbiYjNDM7c3RhdGljIHZvaWQgcnVuX3Rlc3Qodm9pZClcbiB7XG4gXHRzdHJ1Y3QgYXJlbmFfYWxsb2NfcmVzZXJ2ZV9hcmdzIGFyZ3M7XG4gXHRzdHJ1Y3QgbGliYXJlbmEgKnNrZWw7XG5AQCAtMjUxLDMgJiM0MzsyNTMsMTggQEAgdm9pZCB0ZXN0X2xpYmFyZW5hKHZvaWQpXG4gb3V0OlxuIFx0bGliYXJlbmFfX2Rlc3Ryb3koc2tlbCk7XG4gfVxuJiM0MztcbiYjNDM7I2VuZGlmIC8qIEhBU19CUEZfQVJFTkEgKi9cbiYjNDM7XG4mIzQzOy8qXG4mIzQzOyAqIFJ1biB0aGUgdGVzdCBvbmx5IGlmIHRoZSBCUEYgYmFja2VuZCBjYW4gY29tcGlsZSB0aGUgYXJlbmEgcHJvZ3JhbXNcbiYjNDM7ICogbGliYXJlbmEgZGVwZW5kcyBvbiAoc2VlIENMQU5HX0hBU19BUkVOQV9DTVBYQ0hHMzIgaW4gdGhlIE1ha2VmaWxlKS5cbiYjNDM7ICovXG4mIzQzO3ZvaWQgdGVzdF9saWJhcmVuYSh2b2lkKVxuJiM0Mzt7XG4mIzQzOyNpZmRlZiBIQVNfQlBGX0FSRU5BXG4mIzQzO1x0cnVuX3Rlc3QoKTtcbiYjNDM7I2Vsc2VcbiYjNDM7XHR0ZXN0X19za2lwKCk7XG4mIzQzOyNlbmRpZlxuJiM0Mzt9XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDYvMzAgMDM6NDA8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IG51bGwsCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggb25seSBtb2RpZmllcyBCUEYgc2VsZnRlc3RzICh0b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvKSB0byBza2lwIGEgdGVzdCBpZiB0aGUgY2xhbmcgY29tcGlsZXIgZG9lcyBub3Qgc3VwcG9ydCBhIHNwZWNpZmljIGF0b21pYyBvcGVyYXRpb24uIEl0IGRvZXMgbm90IG1vZGlmeSBhbnkga2VybmVsIGNvZGUuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmUKaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseQp1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLgoKUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczoKLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLgotIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLgotIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy4KLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsCmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS4KCklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2gKdG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuCgpXaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzoKMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy4KICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuCjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLgogICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuCiAgIERvIG5vdCBsaXN0IHRvbyBnZW5lcmljIGNvbmZpZ3MgKHdlIGFscmVhZHkgaGF2ZSB0aGVtIGVuYWJsZWQpLiBPbmx5IGxpc3QgdGhvc2UgdGhhdAogICBzcGVjaWZpY2FsbHkgY292ZXIgdGhlIG1vZGlmaWVkIGNvZGUuIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncyBvdXRwdXQgYXJyYXksCiAgIGFuZCBETyBOT1QgYWRkIGEgJiMzOTtDT05GSUdfJiMzOTsgcHJlZml4IChlLmcuLCByZXR1cm4gJiMzNDtORVRfSVBWNCYjMzQ7IGluc3RlYWQgb2YgJiMzNDtDT05GSUdfTkVUX0lQVjQmIzM0OykuClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Rm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCBkNzYxNDgwNzVmMTUyOGRiNTk5ZTcwNzI0MDFjZjk1ZDc1ODExYjk4CkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIFR1ZSBKdW4gMzAgMDM6NDA6MDcgMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvTWFrZWZpbGUgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvTWFrZWZpbGUKaW5kZXggYjY0MmVlNDg5ZWE2NDAuLjAwOThkODkyY2IzOWVlIDEwMDY0NAotLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvTWFrZWZpbGUKJiM0MzsmIzQzOyYjNDM7IGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL01ha2VmaWxlCkBAIC05MSw2ICYjNDM7OTEsMTcgQEAgQ0xBTkdfSEFTX0FSRU5BX0FTQU4gOj0gJChzaGVsbCBlY2hvICYjMzk7aW50IHg7JiMzOTsgfCBcCiAJLW1sbHZtIC1hc2FuLXNoYWRvdy1hZGRyLXNwYWNlPTEgXAogCS14IGMgLWMgLSAtbyAvZGV2L251bGwgMiZndDsvZGV2L251bGwgJmFtcDsmYW1wOyBlY2hvIDEpCiAKJiM0MzsjIFRoZSBhcmVuYSBxc3BpbmxvY2sgdXNlZCBieSBsaWJhcmVuYSBwZXJmb3JtcyBhIDMyLWJpdCBhdG9taWMgY21weGNoZyBvbiBhbgomIzQzOyMgYXJlbmEgKGFkZHJlc3Mgc3BhY2UgMSkgcG9pbnRlci4gTm90IGV2ZXJ5IExMVk0gQlBGIGJhY2tlbmQgY2FuIHNlbGVjdCBpdDsKJiM0MzsjIG9sZGVyIHJlbGVhc2VzIGJhaWwgb3V0IHdpdGggJiMzNDt1bnN1cHBvcnRlZCBhdG9taWMgb3BlcmF0aW9uLCBwbGVhc2UgdXNlIDY0IGJpdAomIzQzOyMgdmVyc2lvbiYjMzQ7LCB3aGljaCBhYm9ydHMgdGhlIHdob2xlIHNlbGZ0ZXN0cyBidWlsZC4gUHJvYmUgZm9yIHRoZSBvcGVyYXRpb24gYW5kCiYjNDM7IyBza2lwIGxpYmFyZW5hIChhbmQgaXRzIGRlcGVuZGVudCB0ZXN0cykgd2hlbiB0aGUgYmFja2VuZCBjYW5ub3QgaGFuZGxlIGl0LgomIzQzO0NMQU5HX0hBU19BUkVOQV9DTVBYQ0hHMzIgOj0gJChzaGVsbCBwcmludGYgJiMzOTslc1xuJiMzOTsgXAomIzQzOwkmIzM5O3N0cnVjdCBzIHsgaW50IGNvdW50ZXI7IH07JiMzOTsgXAomIzQzOwkmIzM5O2ludCBmKHN0cnVjdCBzIF9fYXR0cmlidXRlX18oKGFkZHJlc3Nfc3BhY2UoMSkpKSAqbCwgaW50IG8sIGludCBuKSYjMzk7IFwKJiM0MzsJJiMzOTt7IHJldHVybiBfX3N5bmNfdmFsX2NvbXBhcmVfYW5kX3N3YXAoJmFtcDtsLSZndDtjb3VudGVyLCBvLCBuKTsgfSYjMzk7IHwgXAomIzQzOwkkKENMQU5HKSAtLXRhcmdldD1icGYgLU8yIC14IGMgLWMgLSAtbyAvZGV2L251bGwgMiZndDsvZGV2L251bGwgJmFtcDsmYW1wOyBlY2hvIDEpCiYjNDM7CiAjIE9yZGVyIGNvcnJlc3BvbmQgdG8gJiMzOTttYWtlIHJ1bl90ZXN0cyYjMzk7IG9yZGVyCiBURVNUX0dFTl9QUk9HUyA9IHRlc3RfdmVyaWZpZXIgdGVzdF90YWcgdGVzdF9tYXBzIHRlc3RfbHJ1X21hcCB0ZXN0X3Byb2dzIFwKIAl0ZXN0X3NvY2ttYXAgXApAQCAtODM1LDEwICYjNDM7ODQ2LDEzIEBAIExJQkFSRU5BX0JQRl9ERVBTIDo9ICQod2lsZGNhcmQgbGliYXJlbmEvTWFrZWZpbGUJCVwKIAkJCQkgbGliYXJlbmEvc2VsZnRlc3RzLyoJCVwKIAkJCQkgbGliYXJlbmEvKi5icGYubykKIAomIzQzO2lmbmVxICgkKENMQU5HX0hBU19BUkVOQV9DTVBYQ0hHMzIpLCkKIExJQkFSRU5BX1NLRUwgOj0gbGliYXJlbmEvbGliYXJlbmEuc2tlbC5oCiYjNDM7Q0ZMQUdTICYjNDM7PSAtREhBU19CUEZfQVJFTkEKIAogJChMSUJBUkVOQV9TS0VMKTogJChJTkNMVURFX0RJUikvdm1saW51eC5oICQoQlBGT0JKKSAkKExJQkFSRU5BX0JQRl9ERVBTKQogCSYjNDM7JChNQUtFKSAtQyBsaWJhcmVuYSBsaWJhcmVuYS5za2VsLmggJChMSUJBUkVOQV9NQUtFX0FSR1MpCiYjNDM7ZW5kaWYKIAogaWZuZXEgKCQoQ0xBTkdfSEFTX0FSRU5BX0FTQU4pLCkKIExJQkFSRU5BX0FTQU5fU0tFTCA6PSBsaWJhcmVuYS9saWJhcmVuYV9hc2FuLnNrZWwuaApkaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dfdGVzdHMvbGliYXJlbmEuYyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9nX3Rlc3RzL2xpYmFyZW5hLmMKaW5kZXggNjFlYTY4ZGNlNDEwNWYuLmE3ZWRlNzJjNzI1NjUyIDEwMDY0NAotLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ190ZXN0cy9saWJhcmVuYS5jCiYjNDM7JiM0MzsmIzQzOyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9nX3Rlc3RzL2xpYmFyZW5hLmMKQEAgLTEsNiAmIzQzOzEsOCBAQAogLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IExHUEwtMi4xIE9SIEJTRC0yLUNsYXVzZQogLyogQ29weXJpZ2h0IChjKSAyMDI2IE1ldGEgUGxhdGZvcm1zLCBJbmMuIGFuZCBhZmZpbGlhdGVzLiAqLwogI2luY2x1ZGUgJmx0O3Rlc3RfcHJvZ3MuaCZndDsKJiM0MzsKJiM0MzsjaWZkZWYgSEFTX0JQRl9BUkVOQQogI2luY2x1ZGUgJmx0O3VuaXN0ZC5oJmd0OwogCiAjaW5jbHVkZSAmbHQ7bGliYXJlbmEvY29tbW9uLmgmZ3Q7CkBAIC0xOTgsNyAmIzQzOzIwMCw3IEBAIHN0YXRpYyB2b2lkIHJ1bl9saWJhcmVuYV9wYXJhbGxlbF90ZXN0KHN0cnVjdCBsaWJhcmVuYSAqc2tlbCwgc3RydWN0IGJwZl9wcm9ncmFtCiAJcnVuX2xpYmFyZW5hX3BhcmFsbGVsX2Zpbmkoc2tlbCwgbmFtZSwgcHJlZml4bGVuKTsKIH0KIAotdm9pZCB0ZXN0X2xpYmFyZW5hKHZvaWQpCiYjNDM7c3RhdGljIHZvaWQgcnVuX3Rlc3Qodm9pZCkKIHsKIAlzdHJ1Y3QgYXJlbmFfYWxsb2NfcmVzZXJ2ZV9hcmdzIGFyZ3M7CiAJc3RydWN0IGxpYmFyZW5hICpza2VsOwpAQCAtMjUxLDMgJiM0MzsyNTMsMTggQEAgdm9pZCB0ZXN0X2xpYmFyZW5hKHZvaWQpCiBvdXQ6CiAJbGliYXJlbmFfX2Rlc3Ryb3koc2tlbCk7CiB9CiYjNDM7CiYjNDM7I2VuZGlmIC8qIEhBU19CUEZfQVJFTkEgKi8KJiM0MzsKJiM0MzsvKgomIzQzOyAqIFJ1biB0aGUgdGVzdCBvbmx5IGlmIHRoZSBCUEYgYmFja2VuZCBjYW4gY29tcGlsZSB0aGUgYXJlbmEgcHJvZ3JhbXMKJiM0MzsgKiBsaWJhcmVuYSBkZXBlbmRzIG9uIChzZWUgQ0xBTkdfSEFTX0FSRU5BX0NNUFhDSEczMiBpbiB0aGUgTWFrZWZpbGUpLgomIzQzOyAqLwomIzQzO3ZvaWQgdGVzdF9saWJhcmVuYSh2b2lkKQomIzQzO3sKJiM0MzsjaWZkZWYgSEFTX0JQRl9BUkVOQQomIzQzOwlydW5fdGVzdCgpOwomIzQzOyNlbHNlCiYjNDM7CXRlc3RfX3NraXAoKTsKJiM0MzsjZW5kaWYKJiM0Mzt9CjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzMwIDAzOjQwPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDI3OTQKCQkJCQkJCW91dHB1dDogNzYKCQkJCQkJCXRob3VnaHRzOiAyNTQKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBQYXRjaCBmb3IgRnV6emluZyBFbGlnaWJpbGl0eSoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCBhbmQgbXkgaW5pdGlhbCBhc3Nlc3NtZW50IGlzIHRoYXQgaXQgKnNob3VsZG4mIzM5O3QqIGltcGFjdCB3aGV0aGVyIHdlIGNvbnNpZGVyIHRoaXMgY29kZSBmb3IgZnV6emluZy4gSXQgc2VlbXMgdG8gYmUgZm9jdXNlZCBzb2xlbHkgb24gdGhlIHNlbGZ0ZXN0cyB3aXRoaW4gYHRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9gLiBTcGVjaWZpY2FsbHksIGl0JiMzOTtzIHR3ZWFraW5nIHRoZSBgTWFrZWZpbGVgIHRoZXJlIHRvIGNoZWNrIGZvciBgQ0xBTkdfSEFTX0FSRU5BX0NNUFhDSEczMmAsIHdoaWNoIGluZGljYXRlcyBpZiB0aGUgY2xhbmcgY29tcGlsZXIgaGFzIHN1cHBvcnQgZm9yIDMyLWJpdCBhdG9taWMgY21weGNoZyBvbiBhbiBhcmVuYSBwb2ludGVyLiBJZiB0aGF0JiMzOTtzIHRoZSBjYXNlLCBgSEFTX0JQRl9BUkVOQWAgZ2V0cyBzZXQsIGFuZCBgbGliYXJlbmEuc2tlbC5oYCBpcyBidWlsdC4gVGhlIGNvcnJlc3BvbmRpbmcgdGVzdCBjb2RlIGluIGBwcm9nX3Rlc3RzL2xpYmFyZW5hLmNgIGlzIHRoZW4gY29uZGl0aW9uYWxseSBjb21waWxlZCBiYXNlZCBvbiBgSEFTX0JQRl9BUkVOQWAuCgpFc3NlbnRpYWxseSwgaXQgaXMgZW5hYmxpbmcgb3IgZGlzYWJsaW5nIGEgdGVzdCBkZXBlbmRpbmcgb24gdGhlIGNvbXBpbGVyJiMzOTtzIGNhcGFiaWxpdGllcywgYnV0ICpub3QqIGNoYW5naW5nIGFueSBjb3JlIGtlcm5lbCBmdW5jdGlvbmFsaXR5IGl0c2VsZi4KClRvIGJlIGFic29sdXRlbHkgc3VyZSwgbGV0IG1lIGNvbmZpcm0gdGhlIGZpbGUgbW9kaWZpY2F0aW9uczoKCiogICBgdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL01ha2VmaWxlYAoqICAgYHRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9nX3Rlc3RzL2xpYmFyZW5hLmNgCgpZZXAsIGNvbmZpcm1lZC4gVGhlc2UgYXJlIGFsbCB3aXRoaW4gdGhlIHNlbGZ0ZXN0cyBkaXJlY3RvcnksIGFuZCB0aGVyZSBpcyBubyBldmlkZW5jZSBvZiBtb2RpZmljYXRpb24gdG8gYW55IGtlcm5lbCBzb3VyY2UuCgpUaGVyZWZvcmUsIG15IGNvbmNsdXNpb24gcmVtYWluczogYFdvcnRoRnV6emluZ2Agc2hvdWxkIGJlIGBmYWxzZWAuIEkmIzM5O2xsIHJldHVybiB0aGF0IHZhbHVlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzMwIDAzOjQwPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+c2V0LXJlc3VsdHM8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogW10sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggb25seSBtb2RpZmllcyBCUEYgc2VsZnRlc3RzICh0b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvKSB0byBza2lwIGEgdGVzdCBpZiB0aGUgY2xhbmcgY29tcGlsZXIgZG9lcyBub3Qgc3VwcG9ydCBhIHNwZWNpZmljIGF0b21pYyBvcGVyYXRpb24uIEl0IGRvZXMgbm90IG1vZGlmeSBhbnkga2VybmVsIGNvZGUuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogbnVsbCwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBvbmx5IG1vZGlmaWVzIEJQRiBzZWxmdGVzdHMgKHRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi8pIHRvIHNraXAgYSB0ZXN0IGlmIHRoZSBjbGFuZyBjb21waWxlciBkb2VzIG5vdCBzdXBwb3J0IGEgc3BlY2lmaWMgYXRvbWljIG9wZXJhdGlvbi4gSXQgZG9lcyBub3QgbW9kaWZ5IGFueSBrZXJuZWwgY29kZS4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPC90Ym9keT4KCTwvdGFibGU+CgoJPGRpdiBpZD0ibGxtX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5MTE0gQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBUb2tlbnM8L3RoPgoJCQkJCTx0aD5BdmcgVG9rZW5zPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9ImxsbV9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9InRvb2xfc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPlRvb2wgQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0idG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9ImR1cmF0aW9uX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCTxkaXYgaWQ9InRva2VuX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL2pzYXBpIj48L3NjcmlwdD4KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCQlnb29nbGUubG9hZCgidmlzdWFsaXphdGlvbiIsICIxIiwge3BhY2thZ2VzOlsiY29yZWNoYXJ0Il19KTsKCQlnb29nbGUuc2V0T25Mb2FkQ2FsbGJhY2soZHJhd0NoYXJ0cyk7CgoJCWZ1bmN0aW9uIGRyYXdDaGFydHMoKSB7CgkJCWNvbnN0IHJhd0RhdGEgPSBbeyJTdGFydGVkIjoiMjAyNi0wNi0zMFQwMzo0MDowOC42NDQxMzIzOTFaIiwiU2VxIjowLCJOZXN0aW5nIjowLCJUeXBlIjoiZmxvdyIsIk5hbWUiOiJwYXRjaC10cmlhZ2UiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1ODM5MjMyMzI0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBvbmx5IG1vZGlmaWVzIEJQRiBzZWxmdGVzdHMgKHRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi8pIHRvIHNraXAgYSB0ZXN0IGlmIHRoZSBjbGFuZyBjb21waWxlciBkb2VzIG5vdCBzdXBwb3J0IGEgc3BlY2lmaWMgYXRvbWljIG9wZXJhdGlvbi4gSXQgZG9lcyBub3QgbW9kaWZ5IGFueSBrZXJuZWwgY29kZS5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTMwVDAzOjQwOjA4LjY0NDEzOTc4MVoiLCJTZXEiOjEsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoicmVhZC1wYXRjaC1kaWZmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NTYzNzc4ODI1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJQYXRjaERpZmZcIjogXCJjb21taXQgZDc2MTQ4MDc1ZjE1MjhkYjU5OWU3MDcyNDAxY2Y5NWQ3NTgxMWI5OFxcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXFx1MDAzZVxcbkRhdGU6ICAgVHVlIEp1biAzMCAwMzo0MDowNyAyMDI2ICswMDAwXFxuXFxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xcblxcbmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvTWFrZWZpbGUgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvTWFrZWZpbGVcXG5pbmRleCBiNjQyZWU0ODllYTY0MC4uMDA5OGQ4OTJjYjM5ZWUgMTAwNjQ0XFxuLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL01ha2VmaWxlXFxuKysrIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL01ha2VmaWxlXFxuQEAgLTkxLDYgKzkxLDE3IEBAIENMQU5HX0hBU19BUkVOQV9BU0FOIDo9ICQoc2hlbGwgZWNobyAnaW50IHg7JyB8IFxcXFxcXG4gXFx0LW1sbHZtIC1hc2FuLXNoYWRvdy1hZGRyLXNwYWNlPTEgXFxcXFxcbiBcXHQteCBjIC1jIC0gLW8gL2Rldi9udWxsIDJcXHUwMDNlL2Rldi9udWxsIFxcdTAwMjZcXHUwMDI2IGVjaG8gMSlcXG4gXFxuKyMgVGhlIGFyZW5hIHFzcGlubG9jayB1c2VkIGJ5IGxpYmFyZW5hIHBlcmZvcm1zIGEgMzItYml0IGF0b21pYyBjbXB4Y2hnIG9uIGFuXFxuKyMgYXJlbmEgKGFkZHJlc3Mgc3BhY2UgMSkgcG9pbnRlci4gTm90IGV2ZXJ5IExMVk0gQlBGIGJhY2tlbmQgY2FuIHNlbGVjdCBpdDtcXG4rIyBvbGRlciByZWxlYXNlcyBiYWlsIG91dCB3aXRoIFxcXCJ1bnN1cHBvcnRlZCBhdG9taWMgb3BlcmF0aW9uLCBwbGVhc2UgdXNlIDY0IGJpdFxcbisjIHZlcnNpb25cXFwiLCB3aGljaCBhYm9ydHMgdGhlIHdob2xlIHNlbGZ0ZXN0cyBidWlsZC4gUHJvYmUgZm9yIHRoZSBvcGVyYXRpb24gYW5kXFxuKyMgc2tpcCBsaWJhcmVuYSAoYW5kIGl0cyBkZXBlbmRlbnQgdGVzdHMpIHdoZW4gdGhlIGJhY2tlbmQgY2Fubm90IGhhbmRsZSBpdC5cXG4rQ0xBTkdfSEFTX0FSRU5BX0NNUFhDSEczMiA6PSAkKHNoZWxsIHByaW50ZiAnJXNcXFxcbicgXFxcXFxcbitcXHQnc3RydWN0IHMgeyBpbnQgY291bnRlcjsgfTsnIFxcXFxcXG4rXFx0J2ludCBmKHN0cnVjdCBzIF9fYXR0cmlidXRlX18oKGFkZHJlc3Nfc3BhY2UoMSkpKSAqbCwgaW50IG8sIGludCBuKScgXFxcXFxcbitcXHQneyByZXR1cm4gX19zeW5jX3ZhbF9jb21wYXJlX2FuZF9zd2FwKFxcdTAwMjZsLVxcdTAwM2Vjb3VudGVyLCBvLCBuKTsgfScgfCBcXFxcXFxuK1xcdCQoQ0xBTkcpIC0tdGFyZ2V0PWJwZiAtTzIgLXggYyAtYyAtIC1vIC9kZXYvbnVsbCAyXFx1MDAzZS9kZXYvbnVsbCBcXHUwMDI2XFx1MDAyNiBlY2hvIDEpXFxuK1xcbiAjIE9yZGVyIGNvcnJlc3BvbmQgdG8gJ21ha2UgcnVuX3Rlc3RzJyBvcmRlclxcbiBURVNUX0dFTl9QUk9HUyA9IHRlc3RfdmVyaWZpZXIgdGVzdF90YWcgdGVzdF9tYXBzIHRlc3RfbHJ1X21hcCB0ZXN0X3Byb2dzIFxcXFxcXG4gXFx0dGVzdF9zb2NrbWFwIFxcXFxcXG5AQCAtODM1LDEwICs4NDYsMTMgQEAgTElCQVJFTkFfQlBGX0RFUFMgOj0gJCh3aWxkY2FyZCBsaWJhcmVuYS9NYWtlZmlsZVxcdFxcdFxcXFxcXG4gXFx0XFx0XFx0XFx0IGxpYmFyZW5hL3NlbGZ0ZXN0cy8qXFx0XFx0XFxcXFxcbiBcXHRcXHRcXHRcXHQgbGliYXJlbmEvKi5icGYubylcXG4gXFxuK2lmbmVxICgkKENMQU5HX0hBU19BUkVOQV9DTVBYQ0hHMzIpLClcXG4gTElCQVJFTkFfU0tFTCA6PSBsaWJhcmVuYS9saWJhcmVuYS5za2VsLmhcXG4rQ0ZMQUdTICs9IC1ESEFTX0JQRl9BUkVOQVxcbiBcXG4gJChMSUJBUkVOQV9TS0VMKTogJChJTkNMVURFX0RJUikvdm1saW51eC5oICQoQlBGT0JKKSAkKExJQkFSRU5BX0JQRl9ERVBTKVxcbiBcXHQrJChNQUtFKSAtQyBsaWJhcmVuYSBsaWJhcmVuYS5za2VsLmggJChMSUJBUkVOQV9NQUtFX0FSR1MpXFxuK2VuZGlmXFxuIFxcbiBpZm5lcSAoJChDTEFOR19IQVNfQVJFTkFfQVNBTiksKVxcbiBMSUJBUkVOQV9BU0FOX1NLRUwgOj0gbGliYXJlbmEvbGliYXJlbmFfYXNhbi5za2VsLmhcXG5kaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dfdGVzdHMvbGliYXJlbmEuYyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9nX3Rlc3RzL2xpYmFyZW5hLmNcXG5pbmRleCA2MWVhNjhkY2U0MTA1Zi4uYTdlZGU3MmM3MjU2NTIgMTAwNjQ0XFxuLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dfdGVzdHMvbGliYXJlbmEuY1xcbisrKyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9nX3Rlc3RzL2xpYmFyZW5hLmNcXG5AQCAtMSw2ICsxLDggQEBcXG4gLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IExHUEwtMi4xIE9SIEJTRC0yLUNsYXVzZVxcbiAvKiBDb3B5cmlnaHQgKGMpIDIwMjYgTWV0YSBQbGF0Zm9ybXMsIEluYy4gYW5kIGFmZmlsaWF0ZXMuICovXFxuICNpbmNsdWRlIFxcdTAwM2N0ZXN0X3Byb2dzLmhcXHUwMDNlXFxuK1xcbisjaWZkZWYgSEFTX0JQRl9BUkVOQVxcbiAjaW5jbHVkZSBcXHUwMDNjdW5pc3RkLmhcXHUwMDNlXFxuIFxcbiAjaW5jbHVkZSBcXHUwMDNjbGliYXJlbmEvY29tbW9uLmhcXHUwMDNlXFxuQEAgLTE5OCw3ICsyMDAsNyBAQCBzdGF0aWMgdm9pZCBydW5fbGliYXJlbmFfcGFyYWxsZWxfdGVzdChzdHJ1Y3QgbGliYXJlbmEgKnNrZWwsIHN0cnVjdCBicGZfcHJvZ3JhbVxcbiBcXHRydW5fbGliYXJlbmFfcGFyYWxsZWxfZmluaShza2VsLCBuYW1lLCBwcmVmaXhsZW4pO1xcbiB9XFxuIFxcbi12b2lkIHRlc3RfbGliYXJlbmEodm9pZClcXG4rc3RhdGljIHZvaWQgcnVuX3Rlc3Qodm9pZClcXG4ge1xcbiBcXHRzdHJ1Y3QgYXJlbmFfYWxsb2NfcmVzZXJ2ZV9hcmdzIGFyZ3M7XFxuIFxcdHN0cnVjdCBsaWJhcmVuYSAqc2tlbDtcXG5AQCAtMjUxLDMgKzI1MywxOCBAQCB2b2lkIHRlc3RfbGliYXJlbmEodm9pZClcXG4gb3V0OlxcbiBcXHRsaWJhcmVuYV9fZGVzdHJveShza2VsKTtcXG4gfVxcbitcXG4rI2VuZGlmIC8qIEhBU19CUEZfQVJFTkEgKi9cXG4rXFxuKy8qXFxuKyAqIFJ1biB0aGUgdGVzdCBvbmx5IGlmIHRoZSBCUEYgYmFja2VuZCBjYW4gY29tcGlsZSB0aGUgYXJlbmEgcHJvZ3JhbXNcXG4rICogbGliYXJlbmEgZGVwZW5kcyBvbiAoc2VlIENMQU5HX0hBU19BUkVOQV9DTVBYQ0hHMzIgaW4gdGhlIE1ha2VmaWxlKS5cXG4rICovXFxuK3ZvaWQgdGVzdF9saWJhcmVuYSh2b2lkKVxcbit7XFxuKyNpZmRlZiBIQVNfQlBGX0FSRU5BXFxuK1xcdHJ1bl90ZXN0KCk7XFxuKyNlbHNlXFxuK1xcdHRlc3RfX3NraXAoKTtcXG4rI2VuZGlmXFxuK31cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMzBUMDM6NDA6MDkuMjA4ODUwMjU1WiIsIlNlcSI6MiwiTmVzdGluZyI6MSwiVHlwZSI6ImFnZW50IiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo1Mjc0NTA2MzQ5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBvbmx5IG1vZGlmaWVzIEJQRiBzZWxmdGVzdHMgKHRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi8pIHRvIHNraXAgYSB0ZXN0IGlmIHRoZSBjbGFuZyBjb21waWxlciBkb2VzIG5vdCBzdXBwb3J0IGEgc3BlY2lmaWMgYXRvbWljIG9wZXJhdGlvbi4gSXQgZG9lcyBub3QgbW9kaWZ5IGFueSBrZXJuZWwgY29kZS5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLlxuWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmVcbmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cblxuSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluXG55b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHlcbnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuXG5cblJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6XG4tIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuXG4tIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLlxuLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuXG4tIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSxcbmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS5cblxuSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaFxudG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuXG5cbldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOlxuMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy5cbiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLlxuMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuXG4gICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuXG4gICBEbyBub3QgbGlzdCB0b28gZ2VuZXJpYyBjb25maWdzICh3ZSBhbHJlYWR5IGhhdmUgdGhlbSBlbmFibGVkKS4gT25seSBsaXN0IHRob3NlIHRoYXRcbiAgIHNwZWNpZmljYWxseSBjb3ZlciB0aGUgbW9kaWZpZWQgY29kZS4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzIG91dHB1dCBhcnJheSxcbiAgIGFuZCBETyBOT1QgYWRkIGEgJ0NPTkZJR18nIHByZWZpeCAoZS5nLiwgcmV0dXJuIFwiTkVUX0lQVjRcIiBpbnN0ZWFkIG9mIFwiQ09ORklHX05FVF9JUFY0XCIpLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgZDc2MTQ4MDc1ZjE1MjhkYjU5OWU3MDcyNDAxY2Y5NWQ3NTgxMWI5OFxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBUdWUgSnVuIDMwIDAzOjQwOjA3IDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL01ha2VmaWxlIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL01ha2VmaWxlXG5pbmRleCBiNjQyZWU0ODllYTY0MC4uMDA5OGQ4OTJjYjM5ZWUgMTAwNjQ0XG4tLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvTWFrZWZpbGVcbisrKyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9NYWtlZmlsZVxuQEAgLTkxLDYgKzkxLDE3IEBAIENMQU5HX0hBU19BUkVOQV9BU0FOIDo9ICQoc2hlbGwgZWNobyAnaW50IHg7JyB8IFxcXG4gXHQtbWxsdm0gLWFzYW4tc2hhZG93LWFkZHItc3BhY2U9MSBcXFxuIFx0LXggYyAtYyAtIC1vIC9kZXYvbnVsbCAyXHUwMDNlL2Rldi9udWxsIFx1MDAyNlx1MDAyNiBlY2hvIDEpXG4gXG4rIyBUaGUgYXJlbmEgcXNwaW5sb2NrIHVzZWQgYnkgbGliYXJlbmEgcGVyZm9ybXMgYSAzMi1iaXQgYXRvbWljIGNtcHhjaGcgb24gYW5cbisjIGFyZW5hIChhZGRyZXNzIHNwYWNlIDEpIHBvaW50ZXIuIE5vdCBldmVyeSBMTFZNIEJQRiBiYWNrZW5kIGNhbiBzZWxlY3QgaXQ7XG4rIyBvbGRlciByZWxlYXNlcyBiYWlsIG91dCB3aXRoIFwidW5zdXBwb3J0ZWQgYXRvbWljIG9wZXJhdGlvbiwgcGxlYXNlIHVzZSA2NCBiaXRcbisjIHZlcnNpb25cIiwgd2hpY2ggYWJvcnRzIHRoZSB3aG9sZSBzZWxmdGVzdHMgYnVpbGQuIFByb2JlIGZvciB0aGUgb3BlcmF0aW9uIGFuZFxuKyMgc2tpcCBsaWJhcmVuYSAoYW5kIGl0cyBkZXBlbmRlbnQgdGVzdHMpIHdoZW4gdGhlIGJhY2tlbmQgY2Fubm90IGhhbmRsZSBpdC5cbitDTEFOR19IQVNfQVJFTkFfQ01QWENIRzMyIDo9ICQoc2hlbGwgcHJpbnRmICclc1xcbicgXFxcbitcdCdzdHJ1Y3QgcyB7IGludCBjb3VudGVyOyB9OycgXFxcbitcdCdpbnQgZihzdHJ1Y3QgcyBfX2F0dHJpYnV0ZV9fKChhZGRyZXNzX3NwYWNlKDEpKSkgKmwsIGludCBvLCBpbnQgbiknIFxcXG4rXHQneyByZXR1cm4gX19zeW5jX3ZhbF9jb21wYXJlX2FuZF9zd2FwKFx1MDAyNmwtXHUwMDNlY291bnRlciwgbywgbik7IH0nIHwgXFxcbitcdCQoQ0xBTkcpIC0tdGFyZ2V0PWJwZiAtTzIgLXggYyAtYyAtIC1vIC9kZXYvbnVsbCAyXHUwMDNlL2Rldi9udWxsIFx1MDAyNlx1MDAyNiBlY2hvIDEpXG4rXG4gIyBPcmRlciBjb3JyZXNwb25kIHRvICdtYWtlIHJ1bl90ZXN0cycgb3JkZXJcbiBURVNUX0dFTl9QUk9HUyA9IHRlc3RfdmVyaWZpZXIgdGVzdF90YWcgdGVzdF9tYXBzIHRlc3RfbHJ1X21hcCB0ZXN0X3Byb2dzIFxcXG4gXHR0ZXN0X3NvY2ttYXAgXFxcbkBAIC04MzUsMTAgKzg0NiwxMyBAQCBMSUJBUkVOQV9CUEZfREVQUyA6PSAkKHdpbGRjYXJkIGxpYmFyZW5hL01ha2VmaWxlXHRcdFxcXG4gXHRcdFx0XHQgbGliYXJlbmEvc2VsZnRlc3RzLypcdFx0XFxcbiBcdFx0XHRcdCBsaWJhcmVuYS8qLmJwZi5vKVxuIFxuK2lmbmVxICgkKENMQU5HX0hBU19BUkVOQV9DTVBYQ0hHMzIpLClcbiBMSUJBUkVOQV9TS0VMIDo9IGxpYmFyZW5hL2xpYmFyZW5hLnNrZWwuaFxuK0NGTEFHUyArPSAtREhBU19CUEZfQVJFTkFcbiBcbiAkKExJQkFSRU5BX1NLRUwpOiAkKElOQ0xVREVfRElSKS92bWxpbnV4LmggJChCUEZPQkopICQoTElCQVJFTkFfQlBGX0RFUFMpXG4gXHQrJChNQUtFKSAtQyBsaWJhcmVuYSBsaWJhcmVuYS5za2VsLmggJChMSUJBUkVOQV9NQUtFX0FSR1MpXG4rZW5kaWZcbiBcbiBpZm5lcSAoJChDTEFOR19IQVNfQVJFTkFfQVNBTiksKVxuIExJQkFSRU5BX0FTQU5fU0tFTCA6PSBsaWJhcmVuYS9saWJhcmVuYV9hc2FuLnNrZWwuaFxuZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9nX3Rlc3RzL2xpYmFyZW5hLmMgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ190ZXN0cy9saWJhcmVuYS5jXG5pbmRleCA2MWVhNjhkY2U0MTA1Zi4uYTdlZGU3MmM3MjU2NTIgMTAwNjQ0XG4tLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ190ZXN0cy9saWJhcmVuYS5jXG4rKysgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ190ZXN0cy9saWJhcmVuYS5jXG5AQCAtMSw2ICsxLDggQEBcbiAvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTEdQTC0yLjEgT1IgQlNELTItQ2xhdXNlXG4gLyogQ29weXJpZ2h0IChjKSAyMDI2IE1ldGEgUGxhdGZvcm1zLCBJbmMuIGFuZCBhZmZpbGlhdGVzLiAqL1xuICNpbmNsdWRlIFx1MDAzY3Rlc3RfcHJvZ3MuaFx1MDAzZVxuK1xuKyNpZmRlZiBIQVNfQlBGX0FSRU5BXG4gI2luY2x1ZGUgXHUwMDNjdW5pc3RkLmhcdTAwM2VcbiBcbiAjaW5jbHVkZSBcdTAwM2NsaWJhcmVuYS9jb21tb24uaFx1MDAzZVxuQEAgLTE5OCw3ICsyMDAsNyBAQCBzdGF0aWMgdm9pZCBydW5fbGliYXJlbmFfcGFyYWxsZWxfdGVzdChzdHJ1Y3QgbGliYXJlbmEgKnNrZWwsIHN0cnVjdCBicGZfcHJvZ3JhbVxuIFx0cnVuX2xpYmFyZW5hX3BhcmFsbGVsX2Zpbmkoc2tlbCwgbmFtZSwgcHJlZml4bGVuKTtcbiB9XG4gXG4tdm9pZCB0ZXN0X2xpYmFyZW5hKHZvaWQpXG4rc3RhdGljIHZvaWQgcnVuX3Rlc3Qodm9pZClcbiB7XG4gXHRzdHJ1Y3QgYXJlbmFfYWxsb2NfcmVzZXJ2ZV9hcmdzIGFyZ3M7XG4gXHRzdHJ1Y3QgbGliYXJlbmEgKnNrZWw7XG5AQCAtMjUxLDMgKzI1MywxOCBAQCB2b2lkIHRlc3RfbGliYXJlbmEodm9pZClcbiBvdXQ6XG4gXHRsaWJhcmVuYV9fZGVzdHJveShza2VsKTtcbiB9XG4rXG4rI2VuZGlmIC8qIEhBU19CUEZfQVJFTkEgKi9cbitcbisvKlxuKyAqIFJ1biB0aGUgdGVzdCBvbmx5IGlmIHRoZSBCUEYgYmFja2VuZCBjYW4gY29tcGlsZSB0aGUgYXJlbmEgcHJvZ3JhbXNcbisgKiBsaWJhcmVuYSBkZXBlbmRzIG9uIChzZWUgQ0xBTkdfSEFTX0FSRU5BX0NNUFhDSEczMiBpbiB0aGUgTWFrZWZpbGUpLlxuKyAqL1xuK3ZvaWQgdGVzdF9saWJhcmVuYSh2b2lkKVxuK3tcbisjaWZkZWYgSEFTX0JQRl9BUkVOQVxuK1x0cnVuX3Rlc3QoKTtcbisjZWxzZVxuK1x0dGVzdF9fc2tpcCgpO1xuKyNlbmRpZlxuK31cbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTMwVDAzOjQwOjA5LjIwODg1MjM1NVoiLCJTZXEiOjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjUyNzQ0NzM2MTksIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBQYXRjaCBmb3IgRnV6emluZyBFbGlnaWJpbGl0eSoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggYW5kIG15IGluaXRpYWwgYXNzZXNzbWVudCBpcyB0aGF0IGl0ICpzaG91bGRuJ3QqIGltcGFjdCB3aGV0aGVyIHdlIGNvbnNpZGVyIHRoaXMgY29kZSBmb3IgZnV6emluZy4gSXQgc2VlbXMgdG8gYmUgZm9jdXNlZCBzb2xlbHkgb24gdGhlIHNlbGZ0ZXN0cyB3aXRoaW4gYHRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9gLiBTcGVjaWZpY2FsbHksIGl0J3MgdHdlYWtpbmcgdGhlIGBNYWtlZmlsZWAgdGhlcmUgdG8gY2hlY2sgZm9yIGBDTEFOR19IQVNfQVJFTkFfQ01QWENIRzMyYCwgd2hpY2ggaW5kaWNhdGVzIGlmIHRoZSBjbGFuZyBjb21waWxlciBoYXMgc3VwcG9ydCBmb3IgMzItYml0IGF0b21pYyBjbXB4Y2hnIG9uIGFuIGFyZW5hIHBvaW50ZXIuIElmIHRoYXQncyB0aGUgY2FzZSwgYEhBU19CUEZfQVJFTkFgIGdldHMgc2V0LCBhbmQgYGxpYmFyZW5hLnNrZWwuaGAgaXMgYnVpbHQuIFRoZSBjb3JyZXNwb25kaW5nIHRlc3QgY29kZSBpbiBgcHJvZ190ZXN0cy9saWJhcmVuYS5jYCBpcyB0aGVuIGNvbmRpdGlvbmFsbHkgY29tcGlsZWQgYmFzZWQgb24gYEhBU19CUEZfQVJFTkFgLlxuXG5Fc3NlbnRpYWxseSwgaXQgaXMgZW5hYmxpbmcgb3IgZGlzYWJsaW5nIGEgdGVzdCBkZXBlbmRpbmcgb24gdGhlIGNvbXBpbGVyJ3MgY2FwYWJpbGl0aWVzLCBidXQgKm5vdCogY2hhbmdpbmcgYW55IGNvcmUga2VybmVsIGZ1bmN0aW9uYWxpdHkgaXRzZWxmLlxuXG5UbyBiZSBhYnNvbHV0ZWx5IHN1cmUsIGxldCBtZSBjb25maXJtIHRoZSBmaWxlIG1vZGlmaWNhdGlvbnM6XG5cbiogICBgdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL01ha2VmaWxlYFxuKiAgIGB0b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ190ZXN0cy9saWJhcmVuYS5jYFxuXG5ZZXAsIGNvbmZpcm1lZC4gVGhlc2UgYXJlIGFsbCB3aXRoaW4gdGhlIHNlbGZ0ZXN0cyBkaXJlY3RvcnksIGFuZCB0aGVyZSBpcyBubyBldmlkZW5jZSBvZiBtb2RpZmljYXRpb24gdG8gYW55IGtlcm5lbCBzb3VyY2UuXG5cblRoZXJlZm9yZSwgbXkgY29uY2x1c2lvbiByZW1haW5zOiBgV29ydGhGdXp6aW5nYCBzaG91bGQgYmUgYGZhbHNlYC4gSSdsbCByZXR1cm4gdGhhdCB2YWx1ZS5cblxuXG4iLCJJbnB1dFRva2VucyI6Mjc5NCwiT3V0cHV0VG9rZW5zIjo3NiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjI1NCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTMwVDAzOjQwOjE0LjQ4MzMyODQyNVoiLCJTZXEiOjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InNldC1yZXN1bHRzIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjYwMDAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggb25seSBtb2RpZmllcyBCUEYgc2VsZnRlc3RzICh0b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvKSB0byBza2lwIGEgdGVzdCBpZiB0aGUgY2xhbmcgY29tcGlsZXIgZG9lcyBub3Qgc3VwcG9ydCBhIHNwZWNpZmljIGF0b21pYyBvcGVyYXRpb24uIEl0IGRvZXMgbm90IG1vZGlmeSBhbnkga2VybmVsIGNvZGUuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBvbmx5IG1vZGlmaWVzIEJQRiBzZWxmdGVzdHMgKHRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi8pIHRvIHNraXAgYSB0ZXN0IGlmIHRoZSBjbGFuZyBjb21waWxlciBkb2VzIG5vdCBzdXBwb3J0IGEgc3BlY2lmaWMgYXRvbWljIG9wZXJhdGlvbi4gSXQgZG9lcyBub3QgbW9kaWZ5IGFueSBrZXJuZWwgY29kZS5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/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-workflowkklb7[1] Phase: Running StartedAt: 2026-06-30 03:40:26 +0000 UTC FinishedAt: 0001-01-01 00:00:00 +0000 UTC Input: nil Output: nil --------- Name: series-workflowkklb7[1].abort-on-skip-outcome Phase: Failed StartedAt: 2026-06-30 03:40:26 +0000 UTC FinishedAt: 2026-06-30 03:41:06 +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,}