Name: series-workflow4zh72 Phase: Failed StartedAt: 2026-09-01 11:15:00 +0000 UTC FinishedAt: 2026-09-01 11:17:57 +0000 UTC Input: nil Output: nil --------- Name: series-workflow4zh72[0] Phase: Succeeded StartedAt: 2026-09-01 11:15:00 +0000 UTC FinishedAt: 2026-09-01 11:17:33 +0000 UTC Input: nil Output: nil --------- Name: series-workflow4zh72[0].run-triage Phase: Succeeded StartedAt: 2026-09-01 11:15:00 +0000 UTC FinishedAt: 2026-09-01 11:17:33 +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+CgkJCTx0ZD4yMDI2LzA5LzAxIDExOjE2PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MW08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7S01TQU5SZWFzb25pbmcmIzM0OzogJiMzNDsmIzM0OywKICAmIzM0O05lZWRzS01TQU4mIzM0OzogZmFsc2UsCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggb25seSBtb2RpZmllcyBLVk0gc2VsZnRlc3RzIHVzZXItc3BhY2UgY29kZSB1bmRlciB0b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9rdm0vbGliL3Jpc2N2L3Byb2Nlc3Nvci5jLCB3aGljaCBkb2VzIG5vdCBpbXBhY3QgdGhlIGtlcm5lbCBiaW5hcnkgb3IgcnVudGltZSBrZXJuZWwgbG9naWMuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzAxIDExOjE2PC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5yZWFkLXBhdGNoLWRpZmY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtQYXRjaERpZmYmIzM0OzogJiMzNDtjb21taXQgNzRmMzg2NWY5NDFhZGQwZTAxZTc3OTJiYzAyODRjOGM5N2MyMDk3MFxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBUdWUgU2VwIDEgMTE6MTY6MDYgMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMva3ZtL2xpYi9yaXNjdi9wcm9jZXNzb3IuYyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2t2bS9saWIvcmlzY3YvcHJvY2Vzc29yLmNcbmluZGV4IGRlZDU0MjlmMzQ0ODMuLmJmMzU1YWZhODQ4NmIgMTAwNjQ0XG4tLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9rdm0vbGliL3Jpc2N2L3Byb2Nlc3Nvci5jXG4mIzQzOyYjNDM7JiM0MzsgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9rdm0vbGliL3Jpc2N2L3Byb2Nlc3Nvci5jXG5AQCAtMjM1LDYgJiM0MzsyMzUsNyBAQCB2b2lkIHJpc2N2X3ZjcHVfbW11X3NldHVwKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSlcbiB2b2lkIHZjcHVfYXJjaF9kdW1wKEZJTEUgKnN0cmVhbSwgc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCB1OCBpbmRlbnQpXG4ge1xuIFx0c3RydWN0IGt2bV9yaXNjdl9jb3JlIGNvcmU7XG4mIzQzO1x0c3RydWN0IGt2bV9yaXNjdl9jc3IgZ2VuZXJhbF9jc3I7XG4gXG4gXHRjb3JlLm1vZGUgPSB2Y3B1X2dldF9yZWcodmNwdSwgUklTQ1ZfQ09SRV9SRUcobW9kZSkpO1xuIFx0Y29yZS5yZWdzLnBjID0gdmNwdV9nZXRfcmVnKHZjcHUsIFJJU0NWX0NPUkVfUkVHKHJlZ3MucGMpKTtcbkBAIC0yNzAsNiAmIzQzOzI3MSwxMCBAQCB2b2lkIHZjcHVfYXJjaF9kdW1wKEZJTEUgKnN0cmVhbSwgc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCB1OCBpbmRlbnQpXG4gXHRjb3JlLnJlZ3MudDUgPSB2Y3B1X2dldF9yZWcodmNwdSwgUklTQ1ZfQ09SRV9SRUcocmVncy50NSkpO1xuIFx0Y29yZS5yZWdzLnQ2ID0gdmNwdV9nZXRfcmVnKHZjcHUsIFJJU0NWX0NPUkVfUkVHKHJlZ3MudDYpKTtcbiBcbiYjNDM7XHRnZW5lcmFsX2Nzci5zZXBjID0gdmNwdV9nZXRfcmVnKHZjcHUsIFJJU0NWX0dFTkVSQUxfQ1NSX1JFRyhzZXBjKSk7XG4mIzQzO1x0Z2VuZXJhbF9jc3Iuc2NhdXNlID0gdmNwdV9nZXRfcmVnKHZjcHUsIFJJU0NWX0dFTkVSQUxfQ1NSX1JFRyhzY2F1c2UpKTtcbiYjNDM7XHRnZW5lcmFsX2Nzci5zdHZhbCA9IHZjcHVfZ2V0X3JlZyh2Y3B1LCBSSVNDVl9HRU5FUkFMX0NTUl9SRUcoc3R2YWwpKTtcbiYjNDM7XG4gXHRmcHJpbnRmKHN0cmVhbSxcbiBcdFx0XCYjMzQ7IE1PREU6ICAweCVseFxcblwmIzM0OywgY29yZS5tb2RlKTtcbiBcdGZwcmludGYoc3RyZWFtLFxuQEAgLTI5Niw2ICYjNDM7MzAxLDkgQEAgdm9pZCB2Y3B1X2FyY2hfZHVtcChGSUxFICpzdHJlYW0sIHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwgdTggaW5kZW50KVxuIFx0ZnByaW50ZihzdHJlYW0sXG4gXHRcdFwmIzM0OyBUMzogMHglMDE2bHggICBUNDogMHglMDE2bHggVDU6IDB4JTAxNmx4IFQ2OiAweCUwMTZseFxcblwmIzM0OyxcbiBcdFx0Y29yZS5yZWdzLnQzLCBjb3JlLnJlZ3MudDQsIGNvcmUucmVncy50NSwgY29yZS5yZWdzLnQ2KTtcbiYjNDM7XHRmcHJpbnRmKHN0cmVhbSxcbiYjNDM7XHRcdFwmIzM0O1NFUEM6IDB4JTAxNmx4IFNDQVVTRTogMHglMDE2bHggU1RWQUw6IDB4JTAxNmx4XFxuXCYjMzQ7LFxuJiM0MztcdFx0Z2VuZXJhbF9jc3Iuc2VwYywgZ2VuZXJhbF9jc3Iuc2NhdXNlLCBnZW5lcmFsX2Nzci5zdHZhbCk7XG4gfVxuIFxuIHN0YXRpYyB2b2lkIF9fYWxpZ25lZCgxNikgZ3Vlc3RfdW5leHBfdHJhcCh2b2lkKVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzAxIDExOjE2PC90ZD4KCQkJPHRkPmFnZW50PC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjFtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmNvcmU8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG9ubHkgbW9kaWZpZXMgS1ZNIHNlbGZ0ZXN0cyB1c2VyLXNwYWNlIGNvZGUgdW5kZXIgdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMva3ZtL2xpYi9yaXNjdi9wcm9jZXNzb3IuYywgd2hpY2ggZG9lcyBub3QgaW1wYWN0IHRoZSBrZXJuZWwgYmluYXJ5IG9yIHJ1bnRpbWUga2VybmVsIGxvZ2ljLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkluc3RydWN0aW9uOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+WW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuCllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lCmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC4KCklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpbgp5b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHkKdXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy4KClJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6Ci0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy4KLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy4KLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuCi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLAogIGV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS4KLSBDb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCwKICBpb25pYywgYW1kZ3B1KSB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS4KLSBEcml2ZXIgLnJlbW92ZSwgLnNodXRkb3duLCBvciBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzIChlLmcuLCBpZ2JfcmVtb3ZlKQogIHRoYXQgYXJlIGV4ZWN1dGVkIG9ubHkgZHVyaW5nIFBDSSBob3QtdW5wbHVnIG9yIHN5c2ZzIGRyaXZlciB1bmJpbmQgb3BlcmF0aW9ucy4KCklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2gKdG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuCgpXaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzoKMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy4KICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuCiAgIFByZWZlciBub24tc3RhdGljLCBub24taW5saW5lZCBBUEkgZW50cnlwb2ludCBmdW5jdGlvbnMgb3ZlciBpbnRlcm5hbCBzdGF0aWMgaGVscGVyIGZ1bmN0aW9ucwogICAod2hpY2ggYXJlIGlubGluZWQgYnkgdGhlIGNvbXBpbGVyIGFuZCBkbyBub3QgaGF2ZSBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzKS4KMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuCiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy4KICAgQWxzbyBjaGVjayAmIzM0O2RlcGVuZHMgb24mIzM0OyBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3MKICAgbmVlZGVkIGZvciBLYnVpbGQgdG8gY29tcGlsZSB0aGUgY29kZSBzdGF0aWNhbGx5IGludG8gdm1saW51eC4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzCiAgIG91dHB1dCBhcnJheSwgYW5kIERPIE5PVCBhZGQgYSAmIzM5O0NPTkZJR18mIzM5OyBwcmVmaXggKGUuZy4sIHJldHVybiAmIzM0O05FVF9JUFY0JiMzNDsgaW5zdGVhZCBvZiAmIzM0O0NPTkZJR19ORVRfSVBWNCYjMzQ7KS4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IDc0ZjM4NjVmOTQxYWRkMGUwMWU3NzkyYmMwMjg0YzhjOTdjMjA5NzAKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgVHVlIFNlcCAxIDExOjE2OjA2IDIwMjYgJiM0MzswMDAwCgogICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3CgpkaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMva3ZtL2xpYi9yaXNjdi9wcm9jZXNzb3IuYyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2t2bS9saWIvcmlzY3YvcHJvY2Vzc29yLmMKaW5kZXggZGVkNTQyOWYzNDQ4My4uYmYzNTVhZmE4NDg2YiAxMDA2NDQKLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMva3ZtL2xpYi9yaXNjdi9wcm9jZXNzb3IuYwomIzQzOyYjNDM7JiM0MzsgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9rdm0vbGliL3Jpc2N2L3Byb2Nlc3Nvci5jCkBAIC0yMzUsNiAmIzQzOzIzNSw3IEBAIHZvaWQgcmlzY3ZfdmNwdV9tbXVfc2V0dXAoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KQogdm9pZCB2Y3B1X2FyY2hfZHVtcChGSUxFICpzdHJlYW0sIHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwgdTggaW5kZW50KQogewogCXN0cnVjdCBrdm1fcmlzY3ZfY29yZSBjb3JlOwomIzQzOwlzdHJ1Y3Qga3ZtX3Jpc2N2X2NzciBnZW5lcmFsX2NzcjsKIAogCWNvcmUubW9kZSA9IHZjcHVfZ2V0X3JlZyh2Y3B1LCBSSVNDVl9DT1JFX1JFRyhtb2RlKSk7CiAJY29yZS5yZWdzLnBjID0gdmNwdV9nZXRfcmVnKHZjcHUsIFJJU0NWX0NPUkVfUkVHKHJlZ3MucGMpKTsKQEAgLTI3MCw2ICYjNDM7MjcxLDEwIEBAIHZvaWQgdmNwdV9hcmNoX2R1bXAoRklMRSAqc3RyZWFtLCBzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIHU4IGluZGVudCkKIAljb3JlLnJlZ3MudDUgPSB2Y3B1X2dldF9yZWcodmNwdSwgUklTQ1ZfQ09SRV9SRUcocmVncy50NSkpOwogCWNvcmUucmVncy50NiA9IHZjcHVfZ2V0X3JlZyh2Y3B1LCBSSVNDVl9DT1JFX1JFRyhyZWdzLnQ2KSk7CiAKJiM0MzsJZ2VuZXJhbF9jc3Iuc2VwYyA9IHZjcHVfZ2V0X3JlZyh2Y3B1LCBSSVNDVl9HRU5FUkFMX0NTUl9SRUcoc2VwYykpOwomIzQzOwlnZW5lcmFsX2Nzci5zY2F1c2UgPSB2Y3B1X2dldF9yZWcodmNwdSwgUklTQ1ZfR0VORVJBTF9DU1JfUkVHKHNjYXVzZSkpOwomIzQzOwlnZW5lcmFsX2Nzci5zdHZhbCA9IHZjcHVfZ2V0X3JlZyh2Y3B1LCBSSVNDVl9HRU5FUkFMX0NTUl9SRUcoc3R2YWwpKTsKJiM0MzsKIAlmcHJpbnRmKHN0cmVhbSwKIAkJJiMzNDsgTU9ERTogIDB4JWx4XG4mIzM0OywgY29yZS5tb2RlKTsKIAlmcHJpbnRmKHN0cmVhbSwKQEAgLTI5Niw2ICYjNDM7MzAxLDkgQEAgdm9pZCB2Y3B1X2FyY2hfZHVtcChGSUxFICpzdHJlYW0sIHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwgdTggaW5kZW50KQogCWZwcmludGYoc3RyZWFtLAogCQkmIzM0OyBUMzogMHglMDE2bHggICBUNDogMHglMDE2bHggVDU6IDB4JTAxNmx4IFQ2OiAweCUwMTZseFxuJiMzNDssCiAJCWNvcmUucmVncy50MywgY29yZS5yZWdzLnQ0LCBjb3JlLnJlZ3MudDUsIGNvcmUucmVncy50Nik7CiYjNDM7CWZwcmludGYoc3RyZWFtLAomIzQzOwkJJiMzNDtTRVBDOiAweCUwMTZseCBTQ0FVU0U6IDB4JTAxNmx4IFNUVkFMOiAweCUwMTZseFxuJiMzNDssCiYjNDM7CQlnZW5lcmFsX2Nzci5zZXBjLCBnZW5lcmFsX2Nzci5zY2F1c2UsIGdlbmVyYWxfY3NyLnN0dmFsKTsKIH0KIAogc3RhdGljIHZvaWQgX19hbGlnbmVkKDE2KSBndWVzdF91bmV4cF90cmFwKHZvaWQpCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzAxIDExOjE2PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy43LWZsYXNoPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDI2MDcKCQkJCQkJCW91dHB1dDogNDUKCQkJCQkJCXRob3VnaHRzOiA5NwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIEtWTSBTZWxmLVRlc3QgTW9kaWZpY2F0aW9uKioKCk9rYXksIHNvIHRoZSBjaGFuZ2UgaXMgc3BlY2lmaWNhbGx5IGluIGB0b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9rdm0vbGliL3Jpc2N2L3Byb2Nlc3Nvci5jYC4gUmlnaHQgYXdheSwgSSBzZWUgdGhpcyBpcyBpbnNpZGUgdGhlIGBzZWxmdGVzdHNgIGRpcmVjdG9yeS4gVGhhdCYjMzk7cyBnb29kIOKAkyB0aGF0JiMzOTtzICp1c2VyLXNwYWNlKiB0ZXN0aW5nIGNvZGUsIG5vdCB0aGUgdm1saW51eCBrZXJuZWwgaXRzZWxmLiBUaGUgZmFjdCB0aGF0IHRoaXMgaXMgKnNlbGZ0ZXN0cyogbWVhbnMgdGhlc2UgY2hhbmdlcyB3b24mIzM5O3QgYmUgaW1wYWN0aW5nIHJ1bnRpbWUgcGVyZm9ybWFuY2Ugb3IgY29yZSBrZXJuZWwgZnVuY3Rpb25hbGl0eSwgd2hpY2ggaXMgdGhlIGltbWVkaWF0ZSByZWxpZWYgSSBuZWVkLiBBbHdheXMgYSBnb29kIHRoaW5nLCBiZWNhdXNlIHRoaXMgZHJhc3RpY2FsbHkgcmVkdWNlcyB0aGUgcG90ZW50aWFsIGltcGFjdCBvbiBzdGFiaWxpdHkuCgpUbyBiZSB0aG9yb3VnaCwgSSBzaG91bGQgc2NhbiB0aGUgY29tbWl0IGxvZyB0byBzZWUgaWYgYW55IG90aGVyIGZpbGVzIHdlcmUgbW9kaWZpZWQgaW4gdGhlIGNoYW5nZSwganVzdCB0byBiZSBzdXJlIHRoZXJlIGFyZSBubyBkb3duc3RyZWFtIGVmZmVjdHMgSSYjMzk7bSBtaXNzaW5nLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzAxIDExOjE2PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3ZjcHVfYXJjaF9kdW1wJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7dG9vbHMvdGVzdGluZy9zZWxmdGVzdHMva3ZtL2xpYi9yaXNjdi9wcm9jZXNzb3IuYyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDt0b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9rdm0vbGliL3Jpc2N2L3Byb2Nlc3Nvci5jPTE5Mj12b2lkIHJpc2N2X3ZjcHVfbW11X3NldHVwKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSlcbi0tXG50b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9rdm0vbGliL3Jpc2N2L3Byb2Nlc3Nvci5jLTIzNC1cbnRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2t2bS9saWIvcmlzY3YvcHJvY2Vzc29yLmM6MjM1OnZvaWQgdmNwdV9hcmNoX2R1bXAoRklMRSAqc3RyZWFtLCBzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIHU4IGluZGVudClcbnRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2t2bS9saWIvcmlzY3YvcHJvY2Vzc29yLmMtMjM2LXtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8wMSAxMToxNjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuNy1mbGFzaDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzMDc3CgkJCQkJCQlvdXRwdXQ6IDc3CgkJCQkJCQl0aG91Z2h0czogMjIyCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKk15IEFzc2Vzc21lbnQgb2YgdGhlIFBhdGNoJiMzOTtzIEZ1enppbmcgV29ydGhpbmVzcyoqCgpPa2F5LCBhZnRlciBhIGNsb3NlIGxvb2ssIHRoaXMgb25lJiMzOTtzIHByZXR0eSBzdHJhaWdodGZvcndhcmQuIFRoZSBlbnRpcmUgcGF0Y2ggaXMgY29uZmluZWQgdG8gYHRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2t2bS9saWIvcmlzY3YvcHJvY2Vzc29yLmNgLCBzcGVjaWZpY2FsbHkgdGhlIGB2Y3B1X2FyY2hfZHVtcGAgZnVuY3Rpb24uIEdpdmVuIG15IHVuZGVyc3RhbmRpbmcgb2YgdGhlIGtlcm5lbCBidWlsZCBwcm9jZXNzLCBzZWxmdGVzdHMgYXJlIGRlZmluaXRpdmVseSAqb3V0c2lkZSogdGhlIGtlcm5lbCBpbWFnZSAoYHZtbGludXhgKSBpdHNlbGYuIFRoZXkmIzM5O3JlIGRlc2lnbmVkIGZvciBpc29sYXRlZCB0ZXN0aW5nIGFuZCB2ZXJpZmljYXRpb24sIGFuZCBjcnVjaWFsbHksIHRoZXkgZG9uJiMzOTt0IHRvdWNoIGFueSBjb3JlIGtlcm5lbCBmdW5jdGlvbmFsaXR5IG9yIGRyaXZlcnMuCgpOb3csIGxldCBtZSBkb3VibGUtY2hlY2sgdGhlIGZ1enppbmcgZ3VpZGVsaW5lcy4gWWVwLCB0aGUgcnVsZSBleHBsaWNpdGx5IHN0YXRlczogJiMzNDtSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zLi4uIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuJiMzNDsgQW5kIGltcG9ydGFudGx5LCBpdCAqYWxzbyogbm90ZXMgdGhhdCBpZiBjb3JlIGtlcm5lbCBsb2dpYyBvciBkcml2ZXJzIGFyZSBtb2RpZmllZCwgSSBzaG91bGQgaW52ZXN0aWdhdGUgYW5kIHZlcmlmeSBleGVjdXRpb24gcGF0aHMgYmVmb3JlIHNldHRpbmcgYFdvcnRoRnV6emluZz10cnVlYC4KClNpbmNlIHRoaXMgaXMgcHVyZWx5IGEgc2VsZnRlc3QgbW9kaWZpY2F0aW9uLCBpdCBpcyBub3Qgd2l0aGluIHRoZSBkZWZpbmVkIHNjb3BlIG9mIHBvdGVudGlhbGx5IGZ1enplZCBjb2RlLiBUaGVyZWZvcmUsIEkmIzM5O20gY29uZmlkZW50IGluIGNhbGxpbmcgdGhpcyBhICYjMzQ7bm8tZ28mIzM0OyBmb3IgZnV6emluZy4KCkkmIzM5O20gZ29pbmcgdG8gc2V0IGBXb3J0aEZ1enppbmc9ZmFsc2VgLCBsZWF2ZSB0aGUgYEVuYWJsZUNvbmZpZ3NgIGFuZCBgRm9jdXNTeW1ib2xzYCBsaXN0cyBlbXB0eSwgYW5kIGRvY3VtZW50IHRoZSByZWFzb25pbmcgc3VjY2luY3RseS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8wMSAxMToxNzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFtdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG9ubHkgbW9kaWZpZXMgS1ZNIHNlbGZ0ZXN0cyB1c2VyLXNwYWNlIGNvZGUgdW5kZXIgdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMva3ZtL2xpYi9yaXNjdi9wcm9jZXNzb3IuYywgd2hpY2ggZG9lcyBub3QgaW1wYWN0IHRoZSBrZXJuZWwgYmluYXJ5IG9yIHJ1bnRpbWUga2VybmVsIGxvZ2ljLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IG51bGwsCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggb25seSBtb2RpZmllcyBLVk0gc2VsZnRlc3RzIHVzZXItc3BhY2UgY29kZSB1bmRlciB0b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9rdm0vbGliL3Jpc2N2L3Byb2Nlc3Nvci5jLCB3aGljaCBkb2VzIG5vdCBpbXBhY3QgdGhlIGtlcm5lbCBiaW5hcnkgb3IgcnVudGltZSBrZXJuZWwgbG9naWMuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjcvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzAxIDExOjE3PC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5JZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPC90Ym9keT4KCTwvdGFibGU+CgoJPGRpdiBpZD0ibGxtX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5MTE0gQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBUb2tlbnM8L3RoPgoJCQkJCTx0aD5BdmcgVG9rZW5zPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9ImxsbV9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9InRvb2xfc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPlRvb2wgQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0idG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9ImR1cmF0aW9uX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCTxkaXYgaWQ9InRva2VuX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL2pzYXBpIj48L3NjcmlwdD4KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCQlnb29nbGUubG9hZCgidmlzdWFsaXphdGlvbiIsICIxIiwge3BhY2thZ2VzOlsiY29yZWNoYXJ0Il19KTsKCQlnb29nbGUuc2V0T25Mb2FkQ2FsbGJhY2soZHJhd0NoYXJ0cyk7CgoJCWZ1bmN0aW9uIGRyYXdDaGFydHMoKSB7CgkJCWNvbnN0IHJhd0RhdGEgPSBbeyJTdGFydGVkIjoiMjAyNi0wOS0wMVQxMToxNjowNy4xMzMwMzg2MTlaIiwiU2VxIjowLCJOZXN0aW5nIjowLCJUeXBlIjoiZmxvdyIsIk5hbWUiOiJwYXRjaC10cmlhZ2UiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo3NTE3NTY1Mzk3NSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJLTVNBTlJlYXNvbmluZ1wiOiBcIlwiLFxuICBcIk5lZWRzS01TQU5cIjogZmFsc2UsXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG9ubHkgbW9kaWZpZXMgS1ZNIHNlbGZ0ZXN0cyB1c2VyLXNwYWNlIGNvZGUgdW5kZXIgdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMva3ZtL2xpYi9yaXNjdi9wcm9jZXNzb3IuYywgd2hpY2ggZG9lcyBub3QgaW1wYWN0IHRoZSBrZXJuZWwgYmluYXJ5IG9yIHJ1bnRpbWUga2VybmVsIGxvZ2ljLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMDFUMTE6MTY6MDcuMTMzMDQyNTI5WiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0MDE3NjU1NDAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIlBhdGNoRGlmZlwiOiBcImNvbW1pdCA3NGYzODY1Zjk0MWFkZDBlMDFlNzc5MmJjMDI4NGM4Yzk3YzIwOTcwXFxuQXV0aG9yOiBzeXotY2x1c3RlciBcXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cXHUwMDNlXFxuRGF0ZTogICBUdWUgU2VwIDEgMTE6MTY6MDYgMjAyNiArMDAwMFxcblxcbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcXG5cXG5kaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMva3ZtL2xpYi9yaXNjdi9wcm9jZXNzb3IuYyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2t2bS9saWIvcmlzY3YvcHJvY2Vzc29yLmNcXG5pbmRleCBkZWQ1NDI5ZjM0NDgzLi5iZjM1NWFmYTg0ODZiIDEwMDY0NFxcbi0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2t2bS9saWIvcmlzY3YvcHJvY2Vzc29yLmNcXG4rKysgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9rdm0vbGliL3Jpc2N2L3Byb2Nlc3Nvci5jXFxuQEAgLTIzNSw2ICsyMzUsNyBAQCB2b2lkIHJpc2N2X3ZjcHVfbW11X3NldHVwKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSlcXG4gdm9pZCB2Y3B1X2FyY2hfZHVtcChGSUxFICpzdHJlYW0sIHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwgdTggaW5kZW50KVxcbiB7XFxuIFxcdHN0cnVjdCBrdm1fcmlzY3ZfY29yZSBjb3JlO1xcbitcXHRzdHJ1Y3Qga3ZtX3Jpc2N2X2NzciBnZW5lcmFsX2NzcjtcXG4gXFxuIFxcdGNvcmUubW9kZSA9IHZjcHVfZ2V0X3JlZyh2Y3B1LCBSSVNDVl9DT1JFX1JFRyhtb2RlKSk7XFxuIFxcdGNvcmUucmVncy5wYyA9IHZjcHVfZ2V0X3JlZyh2Y3B1LCBSSVNDVl9DT1JFX1JFRyhyZWdzLnBjKSk7XFxuQEAgLTI3MCw2ICsyNzEsMTAgQEAgdm9pZCB2Y3B1X2FyY2hfZHVtcChGSUxFICpzdHJlYW0sIHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwgdTggaW5kZW50KVxcbiBcXHRjb3JlLnJlZ3MudDUgPSB2Y3B1X2dldF9yZWcodmNwdSwgUklTQ1ZfQ09SRV9SRUcocmVncy50NSkpO1xcbiBcXHRjb3JlLnJlZ3MudDYgPSB2Y3B1X2dldF9yZWcodmNwdSwgUklTQ1ZfQ09SRV9SRUcocmVncy50NikpO1xcbiBcXG4rXFx0Z2VuZXJhbF9jc3Iuc2VwYyA9IHZjcHVfZ2V0X3JlZyh2Y3B1LCBSSVNDVl9HRU5FUkFMX0NTUl9SRUcoc2VwYykpO1xcbitcXHRnZW5lcmFsX2Nzci5zY2F1c2UgPSB2Y3B1X2dldF9yZWcodmNwdSwgUklTQ1ZfR0VORVJBTF9DU1JfUkVHKHNjYXVzZSkpO1xcbitcXHRnZW5lcmFsX2Nzci5zdHZhbCA9IHZjcHVfZ2V0X3JlZyh2Y3B1LCBSSVNDVl9HRU5FUkFMX0NTUl9SRUcoc3R2YWwpKTtcXG4rXFxuIFxcdGZwcmludGYoc3RyZWFtLFxcbiBcXHRcXHRcXFwiIE1PREU6ICAweCVseFxcXFxuXFxcIiwgY29yZS5tb2RlKTtcXG4gXFx0ZnByaW50ZihzdHJlYW0sXFxuQEAgLTI5Niw2ICszMDEsOSBAQCB2b2lkIHZjcHVfYXJjaF9kdW1wKEZJTEUgKnN0cmVhbSwgc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCB1OCBpbmRlbnQpXFxuIFxcdGZwcmludGYoc3RyZWFtLFxcbiBcXHRcXHRcXFwiIFQzOiAweCUwMTZseCAgIFQ0OiAweCUwMTZseCBUNTogMHglMDE2bHggVDY6IDB4JTAxNmx4XFxcXG5cXFwiLFxcbiBcXHRcXHRjb3JlLnJlZ3MudDMsIGNvcmUucmVncy50NCwgY29yZS5yZWdzLnQ1LCBjb3JlLnJlZ3MudDYpO1xcbitcXHRmcHJpbnRmKHN0cmVhbSxcXG4rXFx0XFx0XFxcIlNFUEM6IDB4JTAxNmx4IFNDQVVTRTogMHglMDE2bHggU1RWQUw6IDB4JTAxNmx4XFxcXG5cXFwiLFxcbitcXHRcXHRnZW5lcmFsX2Nzci5zZXBjLCBnZW5lcmFsX2Nzci5zY2F1c2UsIGdlbmVyYWxfY3NyLnN0dmFsKTtcXG4gfVxcbiBcXG4gc3RhdGljIHZvaWQgX19hbGlnbmVkKDE2KSBndWVzdF91bmV4cF90cmFwKHZvaWQpXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTAxVDExOjE2OjA3LjUzNTUwNTYwOVoiLCJTZXEiOjIsIk5lc3RpbmciOjEsIlR5cGUiOiJhZ2VudCIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImNvcmUiLCJEdXJhdGlvbiI6NzQ3NzMxNzI0NTUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG9ubHkgbW9kaWZpZXMgS1ZNIHNlbGZ0ZXN0cyB1c2VyLXNwYWNlIGNvZGUgdW5kZXIgdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMva3ZtL2xpYi9yaXNjdi9wcm9jZXNzb3IuYywgd2hpY2ggZG9lcyBub3QgaW1wYWN0IHRoZSBrZXJuZWwgYmluYXJ5IG9yIHJ1bnRpbWUga2VybmVsIGxvZ2ljLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiWW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuXG5Zb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZVxuaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLlxuXG5JTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW5cbnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseVxudXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy5cblxuUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczpcbi0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy5cbi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuXG4tIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy5cbi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLFxuICBldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuXG4tIENvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLFxuICBpb25pYywgYW1kZ3B1KSB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS5cbi0gRHJpdmVyIC5yZW1vdmUsIC5zaHV0ZG93biwgb3IgcGNpX3VucmVnaXN0ZXJfZHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoZS5nLiwgaWdiX3JlbW92ZSlcbiAgdGhhdCBhcmUgZXhlY3V0ZWQgb25seSBkdXJpbmcgUENJIGhvdC11bnBsdWcgb3Igc3lzZnMgZHJpdmVyIHVuYmluZCBvcGVyYXRpb25zLlxuXG5JZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoXG50b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS5cblxuV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086XG4xLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLlxuICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuXG4gICBQcmVmZXIgbm9uLXN0YXRpYywgbm9uLWlubGluZWQgQVBJIGVudHJ5cG9pbnQgZnVuY3Rpb25zIG92ZXIgaW50ZXJuYWwgc3RhdGljIGhlbHBlciBmdW5jdGlvbnNcbiAgICh3aGljaCBhcmUgaW5saW5lZCBieSB0aGUgY29tcGlsZXIgYW5kIGRvIG5vdCBoYXZlIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMpLlxuMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuXG4gICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuXG4gICBBbHNvIGNoZWNrIFwiZGVwZW5kcyBvblwiIGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlnc1xuICAgbmVlZGVkIGZvciBLYnVpbGQgdG8gY29tcGlsZSB0aGUgY29kZSBzdGF0aWNhbGx5IGludG8gdm1saW51eC4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzXG4gICBvdXRwdXQgYXJyYXksIGFuZCBETyBOT1QgYWRkIGEgJ0NPTkZJR18nIHByZWZpeCAoZS5nLiwgcmV0dXJuIFwiTkVUX0lQVjRcIiBpbnN0ZWFkIG9mIFwiQ09ORklHX05FVF9JUFY0XCIpLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgNzRmMzg2NWY5NDFhZGQwZTAxZTc3OTJiYzAyODRjOGM5N2MyMDk3MFxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBUdWUgU2VwIDEgMTE6MTY6MDYgMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9rdm0vbGliL3Jpc2N2L3Byb2Nlc3Nvci5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMva3ZtL2xpYi9yaXNjdi9wcm9jZXNzb3IuY1xuaW5kZXggZGVkNTQyOWYzNDQ4My4uYmYzNTVhZmE4NDg2YiAxMDA2NDRcbi0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2t2bS9saWIvcmlzY3YvcHJvY2Vzc29yLmNcbisrKyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2t2bS9saWIvcmlzY3YvcHJvY2Vzc29yLmNcbkBAIC0yMzUsNiArMjM1LDcgQEAgdm9pZCByaXNjdl92Y3B1X21tdV9zZXR1cChzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpXG4gdm9pZCB2Y3B1X2FyY2hfZHVtcChGSUxFICpzdHJlYW0sIHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwgdTggaW5kZW50KVxuIHtcbiBcdHN0cnVjdCBrdm1fcmlzY3ZfY29yZSBjb3JlO1xuK1x0c3RydWN0IGt2bV9yaXNjdl9jc3IgZ2VuZXJhbF9jc3I7XG4gXG4gXHRjb3JlLm1vZGUgPSB2Y3B1X2dldF9yZWcodmNwdSwgUklTQ1ZfQ09SRV9SRUcobW9kZSkpO1xuIFx0Y29yZS5yZWdzLnBjID0gdmNwdV9nZXRfcmVnKHZjcHUsIFJJU0NWX0NPUkVfUkVHKHJlZ3MucGMpKTtcbkBAIC0yNzAsNiArMjcxLDEwIEBAIHZvaWQgdmNwdV9hcmNoX2R1bXAoRklMRSAqc3RyZWFtLCBzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIHU4IGluZGVudClcbiBcdGNvcmUucmVncy50NSA9IHZjcHVfZ2V0X3JlZyh2Y3B1LCBSSVNDVl9DT1JFX1JFRyhyZWdzLnQ1KSk7XG4gXHRjb3JlLnJlZ3MudDYgPSB2Y3B1X2dldF9yZWcodmNwdSwgUklTQ1ZfQ09SRV9SRUcocmVncy50NikpO1xuIFxuK1x0Z2VuZXJhbF9jc3Iuc2VwYyA9IHZjcHVfZ2V0X3JlZyh2Y3B1LCBSSVNDVl9HRU5FUkFMX0NTUl9SRUcoc2VwYykpO1xuK1x0Z2VuZXJhbF9jc3Iuc2NhdXNlID0gdmNwdV9nZXRfcmVnKHZjcHUsIFJJU0NWX0dFTkVSQUxfQ1NSX1JFRyhzY2F1c2UpKTtcbitcdGdlbmVyYWxfY3NyLnN0dmFsID0gdmNwdV9nZXRfcmVnKHZjcHUsIFJJU0NWX0dFTkVSQUxfQ1NSX1JFRyhzdHZhbCkpO1xuK1xuIFx0ZnByaW50ZihzdHJlYW0sXG4gXHRcdFwiIE1PREU6ICAweCVseFxcblwiLCBjb3JlLm1vZGUpO1xuIFx0ZnByaW50ZihzdHJlYW0sXG5AQCAtMjk2LDYgKzMwMSw5IEBAIHZvaWQgdmNwdV9hcmNoX2R1bXAoRklMRSAqc3RyZWFtLCBzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIHU4IGluZGVudClcbiBcdGZwcmludGYoc3RyZWFtLFxuIFx0XHRcIiBUMzogMHglMDE2bHggICBUNDogMHglMDE2bHggVDU6IDB4JTAxNmx4IFQ2OiAweCUwMTZseFxcblwiLFxuIFx0XHRjb3JlLnJlZ3MudDMsIGNvcmUucmVncy50NCwgY29yZS5yZWdzLnQ1LCBjb3JlLnJlZ3MudDYpO1xuK1x0ZnByaW50ZihzdHJlYW0sXG4rXHRcdFwiU0VQQzogMHglMDE2bHggU0NBVVNFOiAweCUwMTZseCBTVFZBTDogMHglMDE2bHhcXG5cIixcbitcdFx0Z2VuZXJhbF9jc3Iuc2VwYywgZ2VuZXJhbF9jc3Iuc2NhdXNlLCBnZW5lcmFsX2Nzci5zdHZhbCk7XG4gfVxuIFxuIHN0YXRpYyB2b2lkIF9fYWxpZ25lZCgxNikgZ3Vlc3RfdW5leHBfdHJhcCh2b2lkKVxuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMDFUMTE6MTY6MDcuNTM1NTA3Mzc4WiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjctZmxhc2giLCJEdXJhdGlvbiI6MjUyMzk4ODc4MzksIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBLVk0gU2VsZi1UZXN0IE1vZGlmaWNhdGlvbioqXG5cbk9rYXksIHNvIHRoZSBjaGFuZ2UgaXMgc3BlY2lmaWNhbGx5IGluIGB0b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9rdm0vbGliL3Jpc2N2L3Byb2Nlc3Nvci5jYC4gUmlnaHQgYXdheSwgSSBzZWUgdGhpcyBpcyBpbnNpZGUgdGhlIGBzZWxmdGVzdHNgIGRpcmVjdG9yeS4gVGhhdCdzIGdvb2Qg4oCTIHRoYXQncyAqdXNlci1zcGFjZSogdGVzdGluZyBjb2RlLCBub3QgdGhlIHZtbGludXgga2VybmVsIGl0c2VsZi4gVGhlIGZhY3QgdGhhdCB0aGlzIGlzICpzZWxmdGVzdHMqIG1lYW5zIHRoZXNlIGNoYW5nZXMgd29uJ3QgYmUgaW1wYWN0aW5nIHJ1bnRpbWUgcGVyZm9ybWFuY2Ugb3IgY29yZSBrZXJuZWwgZnVuY3Rpb25hbGl0eSwgd2hpY2ggaXMgdGhlIGltbWVkaWF0ZSByZWxpZWYgSSBuZWVkLiBBbHdheXMgYSBnb29kIHRoaW5nLCBiZWNhdXNlIHRoaXMgZHJhc3RpY2FsbHkgcmVkdWNlcyB0aGUgcG90ZW50aWFsIGltcGFjdCBvbiBzdGFiaWxpdHkuXG5cblRvIGJlIHRob3JvdWdoLCBJIHNob3VsZCBzY2FuIHRoZSBjb21taXQgbG9nIHRvIHNlZSBpZiBhbnkgb3RoZXIgZmlsZXMgd2VyZSBtb2RpZmllZCBpbiB0aGUgY2hhbmdlLCBqdXN0IHRvIGJlIHN1cmUgdGhlcmUgYXJlIG5vIGRvd25zdHJlYW0gZWZmZWN0cyBJJ20gbWlzc2luZy5cblxuXG4iLCJJbnB1dFRva2VucyI6MjYwNywiT3V0cHV0VG9rZW5zIjo0NSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjk3LCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMDFUMTE6MTY6MzIuNzc1Mzk3MTY4WiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQ0Njk2Mzc3LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInZjcHVfYXJjaF9kdW1wXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcInRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2t2bS9saWIvcmlzY3YvcHJvY2Vzc29yLmNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwidG9vbHMvdGVzdGluZy9zZWxmdGVzdHMva3ZtL2xpYi9yaXNjdi9wcm9jZXNzb3IuYz0xOTI9dm9pZCByaXNjdl92Y3B1X21tdV9zZXR1cChzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpXFxuLS1cXG50b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9rdm0vbGliL3Jpc2N2L3Byb2Nlc3Nvci5jLTIzNC1cXG50b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9rdm0vbGliL3Jpc2N2L3Byb2Nlc3Nvci5jOjIzNTp2b2lkIHZjcHVfYXJjaF9kdW1wKEZJTEUgKnN0cmVhbSwgc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCB1OCBpbmRlbnQpXFxudG9vbHMvdGVzdGluZy9zZWxmdGVzdHMva3ZtL2xpYi9yaXNjdi9wcm9jZXNzb3IuYy0yMzYte1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOS0wMVQxMToxNjozMi44MjAxMDE3MDVaIiwiU2VxIjo1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuNy1mbGFzaCIsIkR1cmF0aW9uIjo0OTQ4ODU1MzUxOSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipNeSBBc3Nlc3NtZW50IG9mIHRoZSBQYXRjaCdzIEZ1enppbmcgV29ydGhpbmVzcyoqXG5cbk9rYXksIGFmdGVyIGEgY2xvc2UgbG9vaywgdGhpcyBvbmUncyBwcmV0dHkgc3RyYWlnaHRmb3J3YXJkLiBUaGUgZW50aXJlIHBhdGNoIGlzIGNvbmZpbmVkIHRvIGB0b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9rdm0vbGliL3Jpc2N2L3Byb2Nlc3Nvci5jYCwgc3BlY2lmaWNhbGx5IHRoZSBgdmNwdV9hcmNoX2R1bXBgIGZ1bmN0aW9uLiBHaXZlbiBteSB1bmRlcnN0YW5kaW5nIG9mIHRoZSBrZXJuZWwgYnVpbGQgcHJvY2Vzcywgc2VsZnRlc3RzIGFyZSBkZWZpbml0aXZlbHkgKm91dHNpZGUqIHRoZSBrZXJuZWwgaW1hZ2UgKGB2bWxpbnV4YCkgaXRzZWxmLiBUaGV5J3JlIGRlc2lnbmVkIGZvciBpc29sYXRlZCB0ZXN0aW5nIGFuZCB2ZXJpZmljYXRpb24sIGFuZCBjcnVjaWFsbHksIHRoZXkgZG9uJ3QgdG91Y2ggYW55IGNvcmUga2VybmVsIGZ1bmN0aW9uYWxpdHkgb3IgZHJpdmVycy5cblxuTm93LCBsZXQgbWUgZG91YmxlLWNoZWNrIHRoZSBmdXp6aW5nIGd1aWRlbGluZXMuIFllcCwgdGhlIHJ1bGUgZXhwbGljaXRseSBzdGF0ZXM6IFwiUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWlucy4uLiBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLlwiIEFuZCBpbXBvcnRhbnRseSwgaXQgKmFsc28qIG5vdGVzIHRoYXQgaWYgY29yZSBrZXJuZWwgbG9naWMgb3IgZHJpdmVycyBhcmUgbW9kaWZpZWQsIEkgc2hvdWxkIGludmVzdGlnYXRlIGFuZCB2ZXJpZnkgZXhlY3V0aW9uIHBhdGhzIGJlZm9yZSBzZXR0aW5nIGBXb3J0aEZ1enppbmc9dHJ1ZWAuXG5cblNpbmNlIHRoaXMgaXMgcHVyZWx5IGEgc2VsZnRlc3QgbW9kaWZpY2F0aW9uLCBpdCBpcyBub3Qgd2l0aGluIHRoZSBkZWZpbmVkIHNjb3BlIG9mIHBvdGVudGlhbGx5IGZ1enplZCBjb2RlLiBUaGVyZWZvcmUsIEknbSBjb25maWRlbnQgaW4gY2FsbGluZyB0aGlzIGEgXCJuby1nb1wiIGZvciBmdXp6aW5nLlxuXG5JJ20gZ29pbmcgdG8gc2V0IGBXb3J0aEZ1enppbmc9ZmFsc2VgLCBsZWF2ZSB0aGUgYEVuYWJsZUNvbmZpZ3NgIGFuZCBgRm9jdXNTeW1ib2xzYCBsaXN0cyBlbXB0eSwgYW5kIGRvY3VtZW50IHRoZSByZWFzb25pbmcgc3VjY2luY3RseS5cblxuXG4iLCJJbnB1dFRva2VucyI6MzA3NywiT3V0cHV0VG9rZW5zIjo3NywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjIyMiwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOS0wMVQxMToxNzoyMi4zMDg2NTc0MTNaIiwiU2VxIjo2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE4OTQwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG9ubHkgbW9kaWZpZXMgS1ZNIHNlbGZ0ZXN0cyB1c2VyLXNwYWNlIGNvZGUgdW5kZXIgdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMva3ZtL2xpYi9yaXNjdi9wcm9jZXNzb3IuYywgd2hpY2ggZG9lcyBub3QgaW1wYWN0IHRoZSBrZXJuZWwgYmluYXJ5IG9yIHJ1bnRpbWUga2VybmVsIGxvZ2ljLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggb25seSBtb2RpZmllcyBLVk0gc2VsZnRlc3RzIHVzZXItc3BhY2UgY29kZSB1bmRlciB0b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9rdm0vbGliL3Jpc2N2L3Byb2Nlc3Nvci5jLCB3aGljaCBkb2VzIG5vdCBpbXBhY3QgdGhlIGtlcm5lbCBiaW5hcnkgb3IgcnVudGltZSBrZXJuZWwgbG9naWMuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOS0wMVQxMToxNzoyMi4zMDg2Nzk5MzNaIiwiU2VxIjo3LCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6IklmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MzAyMCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH1dOwoJCQlpZiAoIXJhd0RhdGEgfHwgcmF3RGF0YS5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpOwoJCQlkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKTsKCQkJZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpIHsKCQkJY29uc3Qgc3RhdHMgPSB7CgkJCQlsbG06IHsgY291bnQ6IDAsIHRva2VuczogMCwgZHVyYXRpb246IDAgfSwKCQkJCXRvb2w6IHsgY291bnQ6IDAsIGR1cmF0aW9uOiAwIH0KCQkJfTsKCgkJCXJhd0RhdGEuZm9yRWFjaChzID0+IHsKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOyAKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iKSB7CgkJCQkJc3RhdHMubGxtLmNvdW50Kys7CgkJCQkJc3RhdHMubGxtLnRva2VucyArPSAocy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2Vucyk7CgkJCQkJc3RhdHMubGxtLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0gZWxzZSBpZiAocy5UeXBlID09PSAidG9vbCIpIHsKCQkJCQlzdGF0cy50b29sLmNvdW50Kys7CgkJCQkJc3RhdHMudG9vbC5kdXJhdGlvbiArPSBkdXI7CgkJCQl9CgkJCX0pOwoKCQkJY29uc3QgYXZnTGxtRHVyID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0uZHVyYXRpb24gLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdMbG1Ub2tlbiA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLnRva2VucyAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z1Rvb2xEdXIgPSBzdGF0cy50b29sLmNvdW50ID4gMCA/IChzdGF0cy50b29sLmR1cmF0aW9uIC8gc3RhdHMudG9vbC5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgoJCQljb25zdCBsbG1TdW1hcnlDZWxscyA9IFtzdGF0cy5sbG0uY291bnQsIHN0YXRzLmxsbS50b2tlbnMsIGF2Z0xsbVRva2VuLCBzdGF0cy5sbG0uZHVyYXRpb24sIGF2Z0xsbUR1cl07CgkJCWNvbnN0IHRvb2xTdW1tYXJ5Q2VsbHMgPSBbc3RhdHMudG9vbC5jb3VudCwgc3RhdHMudG9vbC5kdXJhdGlvbiwgYXZnVG9vbER1cl07CgoJCQljb25zdCBsbG1TdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsbG1fc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCWxsbVN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCBsbG1UciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCWxsbVN1bWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQlsbG1Uci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQlsbG1TdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZChsbG1Ucik7CgoJCQljb25zdCB0b29sU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJdG9vbFN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCB0b29sVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQl0b29sU3VtbWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQl0b29sVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJdG9vbFN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKHRvb2xUcik7CgkJfQoKCQlmdW5jdGlvbiBkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGZpbHRlcmVkU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IFsibGxtIiwgInRvb2wiXS5pbmNsdWRlcyhkLlR5cGUpKTsKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnRHVyYXRpb24nKTsKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsgCgoJCQlmaWx0ZXJlZFN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQkKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOwoJCQkJbGV0IHRvb2x0aXAgPSBzLk5hbWU7CgkJCQlpZiAocy5UeXBlID09PSAibGxtIiAmJiBzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgkJCQlkYXRhLmFkZFJvdyhbYCR7cy5TZXF9YCwgZHVyLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVGltZSBDb25zdW1wdGlvbiBvZiBMTE0vVG9vbCBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNL1Rvb2wgU3RlcHMnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnU2Vjb25kcycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZHVyYXRpb25fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGxsbVN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBkLlR5cGUgPT09ICJsbG0iKTsKCQkJaWYgKGxsbVN0ZXBzLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnVG9rZW5zJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3N0eWxlJ30pOwkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsJCgoJCQljb25zdCBhZ2VudENvbG9ycyA9IHt9OwoJCQljb25zdCBwYWxldHRlID0gWycjNDI4NUY0JywgJyNEQjQ0MzcnLCAnI0Y0QjQwMCcsICcjMEY5RDU4JywgJyNBQjQ3QkMnLCAnIzAwQUNDMSddOwoJCQlsZXQgY29sb3JJZHggPSAwOwoJCQljb25zdCBhZ2VudExMTUNvdW50cyA9IHt9OwoJCQlsbG1TdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJaWYgKCFhZ2VudENvbG9yc1tzLk5hbWVdKSB7CgkJCQkJYWdlbnRDb2xvcnNbcy5OYW1lXSA9IHBhbGV0dGVbY29sb3JJZHggJSBwYWxldHRlLmxlbmd0aF07CgkJCQkJY29sb3JJZHgrKzsKCQkJCX0KCgkJCQlhZ2VudExMTUNvdW50c1tzLk5hbWVdID0gKGFnZW50TExNQ291bnRzW3MuTmFtZV0gfHwgMCkgKyAxOwoJCQkJY29uc3QgbGFiZWwgPSBgJHtzLk5hbWV9LSR7YWdlbnRMTE1Db3VudHNbcy5OYW1lXX1gOwoJCQkJY29uc3QgdG90YWxUb2tlbnMgPSBzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zOwoJCQkJY29uc3Qgc3R5bGUgPSBgY29sb3I6ICR7YWdlbnRDb2xvcnNbcy5OYW1lXX1gOwoJCQkJbGV0IHRvb2x0aXAgPSBgVG90YWwgVG9rZW5zOiAke3RvdGFsVG9rZW5zfVxuKEluOiAke3MuSW5wdXRUb2tlbnN9LCBPdXQ6ICR7cy5PdXRwdXRUb2tlbnN9LCBUaG91Z2h0czogJHtzLk91dHB1dFRob3VnaHRzVG9rZW5zfSlgOwoJCQkJaWYgKHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCgkJCQlkYXRhLmFkZFJvdyhbbGFiZWwsIHRvdGFsVG9rZW5zLCBzdHlsZSwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1Rva2VuIENvbnN1bXB0aW9uIGJ5IExMTSBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNIENhbGwgU2VxdWVuY2UnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnQ29uc3VtZWQgVG9rZW5zJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b2tlbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoJCWxldCBhbGxFeHBhbmRlZCA9IGZhbHNlOwoJCWZ1bmN0aW9uIHRvZ2dsZUFsbERldGFpbHMoKSB7CgkJCWFsbEV4cGFuZGVkID0gIWFsbEV4cGFuZGVkOwoJCQlkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdkZXRhaWxzJykuZm9yRWFjaChkID0+IHsKCQkJCWlmIChhbGxFeHBhbmRlZCkgZC5zZXRBdHRyaWJ1dGUoJ29wZW4nLCAnJyk7CgkJCQllbHNlIGQucmVtb3ZlQXR0cmlidXRlKCdvcGVuJyk7CgkJCX0pOwoJCX0KCTwvc2NyaXB0PgoKCjwvYm9keT4KPC9odG1sPgo=" },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-workflow4zh72[0].run-triage(0) Phase: Succeeded StartedAt: 2026-09-01 11:15:00 +0000 UTC FinishedAt: 2026-09-01 11:17:23 +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+CgkJCTx0ZD4yMDI2LzA5LzAxIDExOjE2PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MW08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7S01TQU5SZWFzb25pbmcmIzM0OzogJiMzNDsmIzM0OywKICAmIzM0O05lZWRzS01TQU4mIzM0OzogZmFsc2UsCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggb25seSBtb2RpZmllcyBLVk0gc2VsZnRlc3RzIHVzZXItc3BhY2UgY29kZSB1bmRlciB0b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9rdm0vbGliL3Jpc2N2L3Byb2Nlc3Nvci5jLCB3aGljaCBkb2VzIG5vdCBpbXBhY3QgdGhlIGtlcm5lbCBiaW5hcnkgb3IgcnVudGltZSBrZXJuZWwgbG9naWMuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzAxIDExOjE2PC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5yZWFkLXBhdGNoLWRpZmY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtQYXRjaERpZmYmIzM0OzogJiMzNDtjb21taXQgNzRmMzg2NWY5NDFhZGQwZTAxZTc3OTJiYzAyODRjOGM5N2MyMDk3MFxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBUdWUgU2VwIDEgMTE6MTY6MDYgMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMva3ZtL2xpYi9yaXNjdi9wcm9jZXNzb3IuYyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2t2bS9saWIvcmlzY3YvcHJvY2Vzc29yLmNcbmluZGV4IGRlZDU0MjlmMzQ0ODMuLmJmMzU1YWZhODQ4NmIgMTAwNjQ0XG4tLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9rdm0vbGliL3Jpc2N2L3Byb2Nlc3Nvci5jXG4mIzQzOyYjNDM7JiM0MzsgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9rdm0vbGliL3Jpc2N2L3Byb2Nlc3Nvci5jXG5AQCAtMjM1LDYgJiM0MzsyMzUsNyBAQCB2b2lkIHJpc2N2X3ZjcHVfbW11X3NldHVwKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSlcbiB2b2lkIHZjcHVfYXJjaF9kdW1wKEZJTEUgKnN0cmVhbSwgc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCB1OCBpbmRlbnQpXG4ge1xuIFx0c3RydWN0IGt2bV9yaXNjdl9jb3JlIGNvcmU7XG4mIzQzO1x0c3RydWN0IGt2bV9yaXNjdl9jc3IgZ2VuZXJhbF9jc3I7XG4gXG4gXHRjb3JlLm1vZGUgPSB2Y3B1X2dldF9yZWcodmNwdSwgUklTQ1ZfQ09SRV9SRUcobW9kZSkpO1xuIFx0Y29yZS5yZWdzLnBjID0gdmNwdV9nZXRfcmVnKHZjcHUsIFJJU0NWX0NPUkVfUkVHKHJlZ3MucGMpKTtcbkBAIC0yNzAsNiAmIzQzOzI3MSwxMCBAQCB2b2lkIHZjcHVfYXJjaF9kdW1wKEZJTEUgKnN0cmVhbSwgc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCB1OCBpbmRlbnQpXG4gXHRjb3JlLnJlZ3MudDUgPSB2Y3B1X2dldF9yZWcodmNwdSwgUklTQ1ZfQ09SRV9SRUcocmVncy50NSkpO1xuIFx0Y29yZS5yZWdzLnQ2ID0gdmNwdV9nZXRfcmVnKHZjcHUsIFJJU0NWX0NPUkVfUkVHKHJlZ3MudDYpKTtcbiBcbiYjNDM7XHRnZW5lcmFsX2Nzci5zZXBjID0gdmNwdV9nZXRfcmVnKHZjcHUsIFJJU0NWX0dFTkVSQUxfQ1NSX1JFRyhzZXBjKSk7XG4mIzQzO1x0Z2VuZXJhbF9jc3Iuc2NhdXNlID0gdmNwdV9nZXRfcmVnKHZjcHUsIFJJU0NWX0dFTkVSQUxfQ1NSX1JFRyhzY2F1c2UpKTtcbiYjNDM7XHRnZW5lcmFsX2Nzci5zdHZhbCA9IHZjcHVfZ2V0X3JlZyh2Y3B1LCBSSVNDVl9HRU5FUkFMX0NTUl9SRUcoc3R2YWwpKTtcbiYjNDM7XG4gXHRmcHJpbnRmKHN0cmVhbSxcbiBcdFx0XCYjMzQ7IE1PREU6ICAweCVseFxcblwmIzM0OywgY29yZS5tb2RlKTtcbiBcdGZwcmludGYoc3RyZWFtLFxuQEAgLTI5Niw2ICYjNDM7MzAxLDkgQEAgdm9pZCB2Y3B1X2FyY2hfZHVtcChGSUxFICpzdHJlYW0sIHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwgdTggaW5kZW50KVxuIFx0ZnByaW50ZihzdHJlYW0sXG4gXHRcdFwmIzM0OyBUMzogMHglMDE2bHggICBUNDogMHglMDE2bHggVDU6IDB4JTAxNmx4IFQ2OiAweCUwMTZseFxcblwmIzM0OyxcbiBcdFx0Y29yZS5yZWdzLnQzLCBjb3JlLnJlZ3MudDQsIGNvcmUucmVncy50NSwgY29yZS5yZWdzLnQ2KTtcbiYjNDM7XHRmcHJpbnRmKHN0cmVhbSxcbiYjNDM7XHRcdFwmIzM0O1NFUEM6IDB4JTAxNmx4IFNDQVVTRTogMHglMDE2bHggU1RWQUw6IDB4JTAxNmx4XFxuXCYjMzQ7LFxuJiM0MztcdFx0Z2VuZXJhbF9jc3Iuc2VwYywgZ2VuZXJhbF9jc3Iuc2NhdXNlLCBnZW5lcmFsX2Nzci5zdHZhbCk7XG4gfVxuIFxuIHN0YXRpYyB2b2lkIF9fYWxpZ25lZCgxNikgZ3Vlc3RfdW5leHBfdHJhcCh2b2lkKVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzAxIDExOjE2PC90ZD4KCQkJPHRkPmFnZW50PC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjFtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmNvcmU8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG9ubHkgbW9kaWZpZXMgS1ZNIHNlbGZ0ZXN0cyB1c2VyLXNwYWNlIGNvZGUgdW5kZXIgdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMva3ZtL2xpYi9yaXNjdi9wcm9jZXNzb3IuYywgd2hpY2ggZG9lcyBub3QgaW1wYWN0IHRoZSBrZXJuZWwgYmluYXJ5IG9yIHJ1bnRpbWUga2VybmVsIGxvZ2ljLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkluc3RydWN0aW9uOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+WW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuCllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lCmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC4KCklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpbgp5b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHkKdXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy4KClJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6Ci0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy4KLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy4KLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuCi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLAogIGV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS4KLSBDb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCwKICBpb25pYywgYW1kZ3B1KSB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS4KLSBEcml2ZXIgLnJlbW92ZSwgLnNodXRkb3duLCBvciBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzIChlLmcuLCBpZ2JfcmVtb3ZlKQogIHRoYXQgYXJlIGV4ZWN1dGVkIG9ubHkgZHVyaW5nIFBDSSBob3QtdW5wbHVnIG9yIHN5c2ZzIGRyaXZlciB1bmJpbmQgb3BlcmF0aW9ucy4KCklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2gKdG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuCgpXaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzoKMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy4KICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuCiAgIFByZWZlciBub24tc3RhdGljLCBub24taW5saW5lZCBBUEkgZW50cnlwb2ludCBmdW5jdGlvbnMgb3ZlciBpbnRlcm5hbCBzdGF0aWMgaGVscGVyIGZ1bmN0aW9ucwogICAod2hpY2ggYXJlIGlubGluZWQgYnkgdGhlIGNvbXBpbGVyIGFuZCBkbyBub3QgaGF2ZSBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzKS4KMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuCiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy4KICAgQWxzbyBjaGVjayAmIzM0O2RlcGVuZHMgb24mIzM0OyBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3MKICAgbmVlZGVkIGZvciBLYnVpbGQgdG8gY29tcGlsZSB0aGUgY29kZSBzdGF0aWNhbGx5IGludG8gdm1saW51eC4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzCiAgIG91dHB1dCBhcnJheSwgYW5kIERPIE5PVCBhZGQgYSAmIzM5O0NPTkZJR18mIzM5OyBwcmVmaXggKGUuZy4sIHJldHVybiAmIzM0O05FVF9JUFY0JiMzNDsgaW5zdGVhZCBvZiAmIzM0O0NPTkZJR19ORVRfSVBWNCYjMzQ7KS4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IDc0ZjM4NjVmOTQxYWRkMGUwMWU3NzkyYmMwMjg0YzhjOTdjMjA5NzAKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgVHVlIFNlcCAxIDExOjE2OjA2IDIwMjYgJiM0MzswMDAwCgogICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3CgpkaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMva3ZtL2xpYi9yaXNjdi9wcm9jZXNzb3IuYyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2t2bS9saWIvcmlzY3YvcHJvY2Vzc29yLmMKaW5kZXggZGVkNTQyOWYzNDQ4My4uYmYzNTVhZmE4NDg2YiAxMDA2NDQKLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMva3ZtL2xpYi9yaXNjdi9wcm9jZXNzb3IuYwomIzQzOyYjNDM7JiM0MzsgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9rdm0vbGliL3Jpc2N2L3Byb2Nlc3Nvci5jCkBAIC0yMzUsNiAmIzQzOzIzNSw3IEBAIHZvaWQgcmlzY3ZfdmNwdV9tbXVfc2V0dXAoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KQogdm9pZCB2Y3B1X2FyY2hfZHVtcChGSUxFICpzdHJlYW0sIHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwgdTggaW5kZW50KQogewogCXN0cnVjdCBrdm1fcmlzY3ZfY29yZSBjb3JlOwomIzQzOwlzdHJ1Y3Qga3ZtX3Jpc2N2X2NzciBnZW5lcmFsX2NzcjsKIAogCWNvcmUubW9kZSA9IHZjcHVfZ2V0X3JlZyh2Y3B1LCBSSVNDVl9DT1JFX1JFRyhtb2RlKSk7CiAJY29yZS5yZWdzLnBjID0gdmNwdV9nZXRfcmVnKHZjcHUsIFJJU0NWX0NPUkVfUkVHKHJlZ3MucGMpKTsKQEAgLTI3MCw2ICYjNDM7MjcxLDEwIEBAIHZvaWQgdmNwdV9hcmNoX2R1bXAoRklMRSAqc3RyZWFtLCBzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIHU4IGluZGVudCkKIAljb3JlLnJlZ3MudDUgPSB2Y3B1X2dldF9yZWcodmNwdSwgUklTQ1ZfQ09SRV9SRUcocmVncy50NSkpOwogCWNvcmUucmVncy50NiA9IHZjcHVfZ2V0X3JlZyh2Y3B1LCBSSVNDVl9DT1JFX1JFRyhyZWdzLnQ2KSk7CiAKJiM0MzsJZ2VuZXJhbF9jc3Iuc2VwYyA9IHZjcHVfZ2V0X3JlZyh2Y3B1LCBSSVNDVl9HRU5FUkFMX0NTUl9SRUcoc2VwYykpOwomIzQzOwlnZW5lcmFsX2Nzci5zY2F1c2UgPSB2Y3B1X2dldF9yZWcodmNwdSwgUklTQ1ZfR0VORVJBTF9DU1JfUkVHKHNjYXVzZSkpOwomIzQzOwlnZW5lcmFsX2Nzci5zdHZhbCA9IHZjcHVfZ2V0X3JlZyh2Y3B1LCBSSVNDVl9HRU5FUkFMX0NTUl9SRUcoc3R2YWwpKTsKJiM0MzsKIAlmcHJpbnRmKHN0cmVhbSwKIAkJJiMzNDsgTU9ERTogIDB4JWx4XG4mIzM0OywgY29yZS5tb2RlKTsKIAlmcHJpbnRmKHN0cmVhbSwKQEAgLTI5Niw2ICYjNDM7MzAxLDkgQEAgdm9pZCB2Y3B1X2FyY2hfZHVtcChGSUxFICpzdHJlYW0sIHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwgdTggaW5kZW50KQogCWZwcmludGYoc3RyZWFtLAogCQkmIzM0OyBUMzogMHglMDE2bHggICBUNDogMHglMDE2bHggVDU6IDB4JTAxNmx4IFQ2OiAweCUwMTZseFxuJiMzNDssCiAJCWNvcmUucmVncy50MywgY29yZS5yZWdzLnQ0LCBjb3JlLnJlZ3MudDUsIGNvcmUucmVncy50Nik7CiYjNDM7CWZwcmludGYoc3RyZWFtLAomIzQzOwkJJiMzNDtTRVBDOiAweCUwMTZseCBTQ0FVU0U6IDB4JTAxNmx4IFNUVkFMOiAweCUwMTZseFxuJiMzNDssCiYjNDM7CQlnZW5lcmFsX2Nzci5zZXBjLCBnZW5lcmFsX2Nzci5zY2F1c2UsIGdlbmVyYWxfY3NyLnN0dmFsKTsKIH0KIAogc3RhdGljIHZvaWQgX19hbGlnbmVkKDE2KSBndWVzdF91bmV4cF90cmFwKHZvaWQpCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzAxIDExOjE2PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy43LWZsYXNoPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDI2MDcKCQkJCQkJCW91dHB1dDogNDUKCQkJCQkJCXRob3VnaHRzOiA5NwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIEtWTSBTZWxmLVRlc3QgTW9kaWZpY2F0aW9uKioKCk9rYXksIHNvIHRoZSBjaGFuZ2UgaXMgc3BlY2lmaWNhbGx5IGluIGB0b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9rdm0vbGliL3Jpc2N2L3Byb2Nlc3Nvci5jYC4gUmlnaHQgYXdheSwgSSBzZWUgdGhpcyBpcyBpbnNpZGUgdGhlIGBzZWxmdGVzdHNgIGRpcmVjdG9yeS4gVGhhdCYjMzk7cyBnb29kIOKAkyB0aGF0JiMzOTtzICp1c2VyLXNwYWNlKiB0ZXN0aW5nIGNvZGUsIG5vdCB0aGUgdm1saW51eCBrZXJuZWwgaXRzZWxmLiBUaGUgZmFjdCB0aGF0IHRoaXMgaXMgKnNlbGZ0ZXN0cyogbWVhbnMgdGhlc2UgY2hhbmdlcyB3b24mIzM5O3QgYmUgaW1wYWN0aW5nIHJ1bnRpbWUgcGVyZm9ybWFuY2Ugb3IgY29yZSBrZXJuZWwgZnVuY3Rpb25hbGl0eSwgd2hpY2ggaXMgdGhlIGltbWVkaWF0ZSByZWxpZWYgSSBuZWVkLiBBbHdheXMgYSBnb29kIHRoaW5nLCBiZWNhdXNlIHRoaXMgZHJhc3RpY2FsbHkgcmVkdWNlcyB0aGUgcG90ZW50aWFsIGltcGFjdCBvbiBzdGFiaWxpdHkuCgpUbyBiZSB0aG9yb3VnaCwgSSBzaG91bGQgc2NhbiB0aGUgY29tbWl0IGxvZyB0byBzZWUgaWYgYW55IG90aGVyIGZpbGVzIHdlcmUgbW9kaWZpZWQgaW4gdGhlIGNoYW5nZSwganVzdCB0byBiZSBzdXJlIHRoZXJlIGFyZSBubyBkb3duc3RyZWFtIGVmZmVjdHMgSSYjMzk7bSBtaXNzaW5nLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzAxIDExOjE2PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3ZjcHVfYXJjaF9kdW1wJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7dG9vbHMvdGVzdGluZy9zZWxmdGVzdHMva3ZtL2xpYi9yaXNjdi9wcm9jZXNzb3IuYyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDt0b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9rdm0vbGliL3Jpc2N2L3Byb2Nlc3Nvci5jPTE5Mj12b2lkIHJpc2N2X3ZjcHVfbW11X3NldHVwKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSlcbi0tXG50b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9rdm0vbGliL3Jpc2N2L3Byb2Nlc3Nvci5jLTIzNC1cbnRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2t2bS9saWIvcmlzY3YvcHJvY2Vzc29yLmM6MjM1OnZvaWQgdmNwdV9hcmNoX2R1bXAoRklMRSAqc3RyZWFtLCBzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIHU4IGluZGVudClcbnRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2t2bS9saWIvcmlzY3YvcHJvY2Vzc29yLmMtMjM2LXtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8wMSAxMToxNjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuNy1mbGFzaDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzMDc3CgkJCQkJCQlvdXRwdXQ6IDc3CgkJCQkJCQl0aG91Z2h0czogMjIyCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKk15IEFzc2Vzc21lbnQgb2YgdGhlIFBhdGNoJiMzOTtzIEZ1enppbmcgV29ydGhpbmVzcyoqCgpPa2F5LCBhZnRlciBhIGNsb3NlIGxvb2ssIHRoaXMgb25lJiMzOTtzIHByZXR0eSBzdHJhaWdodGZvcndhcmQuIFRoZSBlbnRpcmUgcGF0Y2ggaXMgY29uZmluZWQgdG8gYHRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2t2bS9saWIvcmlzY3YvcHJvY2Vzc29yLmNgLCBzcGVjaWZpY2FsbHkgdGhlIGB2Y3B1X2FyY2hfZHVtcGAgZnVuY3Rpb24uIEdpdmVuIG15IHVuZGVyc3RhbmRpbmcgb2YgdGhlIGtlcm5lbCBidWlsZCBwcm9jZXNzLCBzZWxmdGVzdHMgYXJlIGRlZmluaXRpdmVseSAqb3V0c2lkZSogdGhlIGtlcm5lbCBpbWFnZSAoYHZtbGludXhgKSBpdHNlbGYuIFRoZXkmIzM5O3JlIGRlc2lnbmVkIGZvciBpc29sYXRlZCB0ZXN0aW5nIGFuZCB2ZXJpZmljYXRpb24sIGFuZCBjcnVjaWFsbHksIHRoZXkgZG9uJiMzOTt0IHRvdWNoIGFueSBjb3JlIGtlcm5lbCBmdW5jdGlvbmFsaXR5IG9yIGRyaXZlcnMuCgpOb3csIGxldCBtZSBkb3VibGUtY2hlY2sgdGhlIGZ1enppbmcgZ3VpZGVsaW5lcy4gWWVwLCB0aGUgcnVsZSBleHBsaWNpdGx5IHN0YXRlczogJiMzNDtSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zLi4uIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuJiMzNDsgQW5kIGltcG9ydGFudGx5LCBpdCAqYWxzbyogbm90ZXMgdGhhdCBpZiBjb3JlIGtlcm5lbCBsb2dpYyBvciBkcml2ZXJzIGFyZSBtb2RpZmllZCwgSSBzaG91bGQgaW52ZXN0aWdhdGUgYW5kIHZlcmlmeSBleGVjdXRpb24gcGF0aHMgYmVmb3JlIHNldHRpbmcgYFdvcnRoRnV6emluZz10cnVlYC4KClNpbmNlIHRoaXMgaXMgcHVyZWx5IGEgc2VsZnRlc3QgbW9kaWZpY2F0aW9uLCBpdCBpcyBub3Qgd2l0aGluIHRoZSBkZWZpbmVkIHNjb3BlIG9mIHBvdGVudGlhbGx5IGZ1enplZCBjb2RlLiBUaGVyZWZvcmUsIEkmIzM5O20gY29uZmlkZW50IGluIGNhbGxpbmcgdGhpcyBhICYjMzQ7bm8tZ28mIzM0OyBmb3IgZnV6emluZy4KCkkmIzM5O20gZ29pbmcgdG8gc2V0IGBXb3J0aEZ1enppbmc9ZmFsc2VgLCBsZWF2ZSB0aGUgYEVuYWJsZUNvbmZpZ3NgIGFuZCBgRm9jdXNTeW1ib2xzYCBsaXN0cyBlbXB0eSwgYW5kIGRvY3VtZW50IHRoZSByZWFzb25pbmcgc3VjY2luY3RseS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8wMSAxMToxNzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFtdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG9ubHkgbW9kaWZpZXMgS1ZNIHNlbGZ0ZXN0cyB1c2VyLXNwYWNlIGNvZGUgdW5kZXIgdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMva3ZtL2xpYi9yaXNjdi9wcm9jZXNzb3IuYywgd2hpY2ggZG9lcyBub3QgaW1wYWN0IHRoZSBrZXJuZWwgYmluYXJ5IG9yIHJ1bnRpbWUga2VybmVsIGxvZ2ljLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IG51bGwsCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggb25seSBtb2RpZmllcyBLVk0gc2VsZnRlc3RzIHVzZXItc3BhY2UgY29kZSB1bmRlciB0b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9rdm0vbGliL3Jpc2N2L3Byb2Nlc3Nvci5jLCB3aGljaCBkb2VzIG5vdCBpbXBhY3QgdGhlIGtlcm5lbCBiaW5hcnkgb3IgcnVudGltZSBrZXJuZWwgbG9naWMuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjcvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzAxIDExOjE3PC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5JZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPC90Ym9keT4KCTwvdGFibGU+CgoJPGRpdiBpZD0ibGxtX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5MTE0gQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBUb2tlbnM8L3RoPgoJCQkJCTx0aD5BdmcgVG9rZW5zPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9ImxsbV9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9InRvb2xfc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPlRvb2wgQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0idG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9ImR1cmF0aW9uX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCTxkaXYgaWQ9InRva2VuX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL2pzYXBpIj48L3NjcmlwdD4KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCQlnb29nbGUubG9hZCgidmlzdWFsaXphdGlvbiIsICIxIiwge3BhY2thZ2VzOlsiY29yZWNoYXJ0Il19KTsKCQlnb29nbGUuc2V0T25Mb2FkQ2FsbGJhY2soZHJhd0NoYXJ0cyk7CgoJCWZ1bmN0aW9uIGRyYXdDaGFydHMoKSB7CgkJCWNvbnN0IHJhd0RhdGEgPSBbeyJTdGFydGVkIjoiMjAyNi0wOS0wMVQxMToxNjowNy4xMzMwMzg2MTlaIiwiU2VxIjowLCJOZXN0aW5nIjowLCJUeXBlIjoiZmxvdyIsIk5hbWUiOiJwYXRjaC10cmlhZ2UiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo3NTE3NTY1Mzk3NSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJLTVNBTlJlYXNvbmluZ1wiOiBcIlwiLFxuICBcIk5lZWRzS01TQU5cIjogZmFsc2UsXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG9ubHkgbW9kaWZpZXMgS1ZNIHNlbGZ0ZXN0cyB1c2VyLXNwYWNlIGNvZGUgdW5kZXIgdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMva3ZtL2xpYi9yaXNjdi9wcm9jZXNzb3IuYywgd2hpY2ggZG9lcyBub3QgaW1wYWN0IHRoZSBrZXJuZWwgYmluYXJ5IG9yIHJ1bnRpbWUga2VybmVsIGxvZ2ljLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMDFUMTE6MTY6MDcuMTMzMDQyNTI5WiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0MDE3NjU1NDAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIlBhdGNoRGlmZlwiOiBcImNvbW1pdCA3NGYzODY1Zjk0MWFkZDBlMDFlNzc5MmJjMDI4NGM4Yzk3YzIwOTcwXFxuQXV0aG9yOiBzeXotY2x1c3RlciBcXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cXHUwMDNlXFxuRGF0ZTogICBUdWUgU2VwIDEgMTE6MTY6MDYgMjAyNiArMDAwMFxcblxcbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcXG5cXG5kaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMva3ZtL2xpYi9yaXNjdi9wcm9jZXNzb3IuYyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2t2bS9saWIvcmlzY3YvcHJvY2Vzc29yLmNcXG5pbmRleCBkZWQ1NDI5ZjM0NDgzLi5iZjM1NWFmYTg0ODZiIDEwMDY0NFxcbi0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2t2bS9saWIvcmlzY3YvcHJvY2Vzc29yLmNcXG4rKysgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9rdm0vbGliL3Jpc2N2L3Byb2Nlc3Nvci5jXFxuQEAgLTIzNSw2ICsyMzUsNyBAQCB2b2lkIHJpc2N2X3ZjcHVfbW11X3NldHVwKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSlcXG4gdm9pZCB2Y3B1X2FyY2hfZHVtcChGSUxFICpzdHJlYW0sIHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwgdTggaW5kZW50KVxcbiB7XFxuIFxcdHN0cnVjdCBrdm1fcmlzY3ZfY29yZSBjb3JlO1xcbitcXHRzdHJ1Y3Qga3ZtX3Jpc2N2X2NzciBnZW5lcmFsX2NzcjtcXG4gXFxuIFxcdGNvcmUubW9kZSA9IHZjcHVfZ2V0X3JlZyh2Y3B1LCBSSVNDVl9DT1JFX1JFRyhtb2RlKSk7XFxuIFxcdGNvcmUucmVncy5wYyA9IHZjcHVfZ2V0X3JlZyh2Y3B1LCBSSVNDVl9DT1JFX1JFRyhyZWdzLnBjKSk7XFxuQEAgLTI3MCw2ICsyNzEsMTAgQEAgdm9pZCB2Y3B1X2FyY2hfZHVtcChGSUxFICpzdHJlYW0sIHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwgdTggaW5kZW50KVxcbiBcXHRjb3JlLnJlZ3MudDUgPSB2Y3B1X2dldF9yZWcodmNwdSwgUklTQ1ZfQ09SRV9SRUcocmVncy50NSkpO1xcbiBcXHRjb3JlLnJlZ3MudDYgPSB2Y3B1X2dldF9yZWcodmNwdSwgUklTQ1ZfQ09SRV9SRUcocmVncy50NikpO1xcbiBcXG4rXFx0Z2VuZXJhbF9jc3Iuc2VwYyA9IHZjcHVfZ2V0X3JlZyh2Y3B1LCBSSVNDVl9HRU5FUkFMX0NTUl9SRUcoc2VwYykpO1xcbitcXHRnZW5lcmFsX2Nzci5zY2F1c2UgPSB2Y3B1X2dldF9yZWcodmNwdSwgUklTQ1ZfR0VORVJBTF9DU1JfUkVHKHNjYXVzZSkpO1xcbitcXHRnZW5lcmFsX2Nzci5zdHZhbCA9IHZjcHVfZ2V0X3JlZyh2Y3B1LCBSSVNDVl9HRU5FUkFMX0NTUl9SRUcoc3R2YWwpKTtcXG4rXFxuIFxcdGZwcmludGYoc3RyZWFtLFxcbiBcXHRcXHRcXFwiIE1PREU6ICAweCVseFxcXFxuXFxcIiwgY29yZS5tb2RlKTtcXG4gXFx0ZnByaW50ZihzdHJlYW0sXFxuQEAgLTI5Niw2ICszMDEsOSBAQCB2b2lkIHZjcHVfYXJjaF9kdW1wKEZJTEUgKnN0cmVhbSwgc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCB1OCBpbmRlbnQpXFxuIFxcdGZwcmludGYoc3RyZWFtLFxcbiBcXHRcXHRcXFwiIFQzOiAweCUwMTZseCAgIFQ0OiAweCUwMTZseCBUNTogMHglMDE2bHggVDY6IDB4JTAxNmx4XFxcXG5cXFwiLFxcbiBcXHRcXHRjb3JlLnJlZ3MudDMsIGNvcmUucmVncy50NCwgY29yZS5yZWdzLnQ1LCBjb3JlLnJlZ3MudDYpO1xcbitcXHRmcHJpbnRmKHN0cmVhbSxcXG4rXFx0XFx0XFxcIlNFUEM6IDB4JTAxNmx4IFNDQVVTRTogMHglMDE2bHggU1RWQUw6IDB4JTAxNmx4XFxcXG5cXFwiLFxcbitcXHRcXHRnZW5lcmFsX2Nzci5zZXBjLCBnZW5lcmFsX2Nzci5zY2F1c2UsIGdlbmVyYWxfY3NyLnN0dmFsKTtcXG4gfVxcbiBcXG4gc3RhdGljIHZvaWQgX19hbGlnbmVkKDE2KSBndWVzdF91bmV4cF90cmFwKHZvaWQpXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTAxVDExOjE2OjA3LjUzNTUwNTYwOVoiLCJTZXEiOjIsIk5lc3RpbmciOjEsIlR5cGUiOiJhZ2VudCIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImNvcmUiLCJEdXJhdGlvbiI6NzQ3NzMxNzI0NTUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG9ubHkgbW9kaWZpZXMgS1ZNIHNlbGZ0ZXN0cyB1c2VyLXNwYWNlIGNvZGUgdW5kZXIgdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMva3ZtL2xpYi9yaXNjdi9wcm9jZXNzb3IuYywgd2hpY2ggZG9lcyBub3QgaW1wYWN0IHRoZSBrZXJuZWwgYmluYXJ5IG9yIHJ1bnRpbWUga2VybmVsIGxvZ2ljLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiWW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuXG5Zb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZVxuaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLlxuXG5JTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW5cbnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseVxudXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy5cblxuUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczpcbi0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy5cbi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuXG4tIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy5cbi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLFxuICBldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuXG4tIENvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLFxuICBpb25pYywgYW1kZ3B1KSB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS5cbi0gRHJpdmVyIC5yZW1vdmUsIC5zaHV0ZG93biwgb3IgcGNpX3VucmVnaXN0ZXJfZHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoZS5nLiwgaWdiX3JlbW92ZSlcbiAgdGhhdCBhcmUgZXhlY3V0ZWQgb25seSBkdXJpbmcgUENJIGhvdC11bnBsdWcgb3Igc3lzZnMgZHJpdmVyIHVuYmluZCBvcGVyYXRpb25zLlxuXG5JZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoXG50b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS5cblxuV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086XG4xLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLlxuICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuXG4gICBQcmVmZXIgbm9uLXN0YXRpYywgbm9uLWlubGluZWQgQVBJIGVudHJ5cG9pbnQgZnVuY3Rpb25zIG92ZXIgaW50ZXJuYWwgc3RhdGljIGhlbHBlciBmdW5jdGlvbnNcbiAgICh3aGljaCBhcmUgaW5saW5lZCBieSB0aGUgY29tcGlsZXIgYW5kIGRvIG5vdCBoYXZlIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMpLlxuMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuXG4gICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuXG4gICBBbHNvIGNoZWNrIFwiZGVwZW5kcyBvblwiIGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlnc1xuICAgbmVlZGVkIGZvciBLYnVpbGQgdG8gY29tcGlsZSB0aGUgY29kZSBzdGF0aWNhbGx5IGludG8gdm1saW51eC4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzXG4gICBvdXRwdXQgYXJyYXksIGFuZCBETyBOT1QgYWRkIGEgJ0NPTkZJR18nIHByZWZpeCAoZS5nLiwgcmV0dXJuIFwiTkVUX0lQVjRcIiBpbnN0ZWFkIG9mIFwiQ09ORklHX05FVF9JUFY0XCIpLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgNzRmMzg2NWY5NDFhZGQwZTAxZTc3OTJiYzAyODRjOGM5N2MyMDk3MFxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBUdWUgU2VwIDEgMTE6MTY6MDYgMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9rdm0vbGliL3Jpc2N2L3Byb2Nlc3Nvci5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMva3ZtL2xpYi9yaXNjdi9wcm9jZXNzb3IuY1xuaW5kZXggZGVkNTQyOWYzNDQ4My4uYmYzNTVhZmE4NDg2YiAxMDA2NDRcbi0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2t2bS9saWIvcmlzY3YvcHJvY2Vzc29yLmNcbisrKyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2t2bS9saWIvcmlzY3YvcHJvY2Vzc29yLmNcbkBAIC0yMzUsNiArMjM1LDcgQEAgdm9pZCByaXNjdl92Y3B1X21tdV9zZXR1cChzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpXG4gdm9pZCB2Y3B1X2FyY2hfZHVtcChGSUxFICpzdHJlYW0sIHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwgdTggaW5kZW50KVxuIHtcbiBcdHN0cnVjdCBrdm1fcmlzY3ZfY29yZSBjb3JlO1xuK1x0c3RydWN0IGt2bV9yaXNjdl9jc3IgZ2VuZXJhbF9jc3I7XG4gXG4gXHRjb3JlLm1vZGUgPSB2Y3B1X2dldF9yZWcodmNwdSwgUklTQ1ZfQ09SRV9SRUcobW9kZSkpO1xuIFx0Y29yZS5yZWdzLnBjID0gdmNwdV9nZXRfcmVnKHZjcHUsIFJJU0NWX0NPUkVfUkVHKHJlZ3MucGMpKTtcbkBAIC0yNzAsNiArMjcxLDEwIEBAIHZvaWQgdmNwdV9hcmNoX2R1bXAoRklMRSAqc3RyZWFtLCBzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIHU4IGluZGVudClcbiBcdGNvcmUucmVncy50NSA9IHZjcHVfZ2V0X3JlZyh2Y3B1LCBSSVNDVl9DT1JFX1JFRyhyZWdzLnQ1KSk7XG4gXHRjb3JlLnJlZ3MudDYgPSB2Y3B1X2dldF9yZWcodmNwdSwgUklTQ1ZfQ09SRV9SRUcocmVncy50NikpO1xuIFxuK1x0Z2VuZXJhbF9jc3Iuc2VwYyA9IHZjcHVfZ2V0X3JlZyh2Y3B1LCBSSVNDVl9HRU5FUkFMX0NTUl9SRUcoc2VwYykpO1xuK1x0Z2VuZXJhbF9jc3Iuc2NhdXNlID0gdmNwdV9nZXRfcmVnKHZjcHUsIFJJU0NWX0dFTkVSQUxfQ1NSX1JFRyhzY2F1c2UpKTtcbitcdGdlbmVyYWxfY3NyLnN0dmFsID0gdmNwdV9nZXRfcmVnKHZjcHUsIFJJU0NWX0dFTkVSQUxfQ1NSX1JFRyhzdHZhbCkpO1xuK1xuIFx0ZnByaW50ZihzdHJlYW0sXG4gXHRcdFwiIE1PREU6ICAweCVseFxcblwiLCBjb3JlLm1vZGUpO1xuIFx0ZnByaW50ZihzdHJlYW0sXG5AQCAtMjk2LDYgKzMwMSw5IEBAIHZvaWQgdmNwdV9hcmNoX2R1bXAoRklMRSAqc3RyZWFtLCBzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIHU4IGluZGVudClcbiBcdGZwcmludGYoc3RyZWFtLFxuIFx0XHRcIiBUMzogMHglMDE2bHggICBUNDogMHglMDE2bHggVDU6IDB4JTAxNmx4IFQ2OiAweCUwMTZseFxcblwiLFxuIFx0XHRjb3JlLnJlZ3MudDMsIGNvcmUucmVncy50NCwgY29yZS5yZWdzLnQ1LCBjb3JlLnJlZ3MudDYpO1xuK1x0ZnByaW50ZihzdHJlYW0sXG4rXHRcdFwiU0VQQzogMHglMDE2bHggU0NBVVNFOiAweCUwMTZseCBTVFZBTDogMHglMDE2bHhcXG5cIixcbitcdFx0Z2VuZXJhbF9jc3Iuc2VwYywgZ2VuZXJhbF9jc3Iuc2NhdXNlLCBnZW5lcmFsX2Nzci5zdHZhbCk7XG4gfVxuIFxuIHN0YXRpYyB2b2lkIF9fYWxpZ25lZCgxNikgZ3Vlc3RfdW5leHBfdHJhcCh2b2lkKVxuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMDFUMTE6MTY6MDcuNTM1NTA3Mzc4WiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjctZmxhc2giLCJEdXJhdGlvbiI6MjUyMzk4ODc4MzksIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBLVk0gU2VsZi1UZXN0IE1vZGlmaWNhdGlvbioqXG5cbk9rYXksIHNvIHRoZSBjaGFuZ2UgaXMgc3BlY2lmaWNhbGx5IGluIGB0b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9rdm0vbGliL3Jpc2N2L3Byb2Nlc3Nvci5jYC4gUmlnaHQgYXdheSwgSSBzZWUgdGhpcyBpcyBpbnNpZGUgdGhlIGBzZWxmdGVzdHNgIGRpcmVjdG9yeS4gVGhhdCdzIGdvb2Qg4oCTIHRoYXQncyAqdXNlci1zcGFjZSogdGVzdGluZyBjb2RlLCBub3QgdGhlIHZtbGludXgga2VybmVsIGl0c2VsZi4gVGhlIGZhY3QgdGhhdCB0aGlzIGlzICpzZWxmdGVzdHMqIG1lYW5zIHRoZXNlIGNoYW5nZXMgd29uJ3QgYmUgaW1wYWN0aW5nIHJ1bnRpbWUgcGVyZm9ybWFuY2Ugb3IgY29yZSBrZXJuZWwgZnVuY3Rpb25hbGl0eSwgd2hpY2ggaXMgdGhlIGltbWVkaWF0ZSByZWxpZWYgSSBuZWVkLiBBbHdheXMgYSBnb29kIHRoaW5nLCBiZWNhdXNlIHRoaXMgZHJhc3RpY2FsbHkgcmVkdWNlcyB0aGUgcG90ZW50aWFsIGltcGFjdCBvbiBzdGFiaWxpdHkuXG5cblRvIGJlIHRob3JvdWdoLCBJIHNob3VsZCBzY2FuIHRoZSBjb21taXQgbG9nIHRvIHNlZSBpZiBhbnkgb3RoZXIgZmlsZXMgd2VyZSBtb2RpZmllZCBpbiB0aGUgY2hhbmdlLCBqdXN0IHRvIGJlIHN1cmUgdGhlcmUgYXJlIG5vIGRvd25zdHJlYW0gZWZmZWN0cyBJJ20gbWlzc2luZy5cblxuXG4iLCJJbnB1dFRva2VucyI6MjYwNywiT3V0cHV0VG9rZW5zIjo0NSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjk3LCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMDFUMTE6MTY6MzIuNzc1Mzk3MTY4WiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQ0Njk2Mzc3LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInZjcHVfYXJjaF9kdW1wXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcInRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2t2bS9saWIvcmlzY3YvcHJvY2Vzc29yLmNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwidG9vbHMvdGVzdGluZy9zZWxmdGVzdHMva3ZtL2xpYi9yaXNjdi9wcm9jZXNzb3IuYz0xOTI9dm9pZCByaXNjdl92Y3B1X21tdV9zZXR1cChzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpXFxuLS1cXG50b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9rdm0vbGliL3Jpc2N2L3Byb2Nlc3Nvci5jLTIzNC1cXG50b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9rdm0vbGliL3Jpc2N2L3Byb2Nlc3Nvci5jOjIzNTp2b2lkIHZjcHVfYXJjaF9kdW1wKEZJTEUgKnN0cmVhbSwgc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCB1OCBpbmRlbnQpXFxudG9vbHMvdGVzdGluZy9zZWxmdGVzdHMva3ZtL2xpYi9yaXNjdi9wcm9jZXNzb3IuYy0yMzYte1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOS0wMVQxMToxNjozMi44MjAxMDE3MDVaIiwiU2VxIjo1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuNy1mbGFzaCIsIkR1cmF0aW9uIjo0OTQ4ODU1MzUxOSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipNeSBBc3Nlc3NtZW50IG9mIHRoZSBQYXRjaCdzIEZ1enppbmcgV29ydGhpbmVzcyoqXG5cbk9rYXksIGFmdGVyIGEgY2xvc2UgbG9vaywgdGhpcyBvbmUncyBwcmV0dHkgc3RyYWlnaHRmb3J3YXJkLiBUaGUgZW50aXJlIHBhdGNoIGlzIGNvbmZpbmVkIHRvIGB0b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9rdm0vbGliL3Jpc2N2L3Byb2Nlc3Nvci5jYCwgc3BlY2lmaWNhbGx5IHRoZSBgdmNwdV9hcmNoX2R1bXBgIGZ1bmN0aW9uLiBHaXZlbiBteSB1bmRlcnN0YW5kaW5nIG9mIHRoZSBrZXJuZWwgYnVpbGQgcHJvY2Vzcywgc2VsZnRlc3RzIGFyZSBkZWZpbml0aXZlbHkgKm91dHNpZGUqIHRoZSBrZXJuZWwgaW1hZ2UgKGB2bWxpbnV4YCkgaXRzZWxmLiBUaGV5J3JlIGRlc2lnbmVkIGZvciBpc29sYXRlZCB0ZXN0aW5nIGFuZCB2ZXJpZmljYXRpb24sIGFuZCBjcnVjaWFsbHksIHRoZXkgZG9uJ3QgdG91Y2ggYW55IGNvcmUga2VybmVsIGZ1bmN0aW9uYWxpdHkgb3IgZHJpdmVycy5cblxuTm93LCBsZXQgbWUgZG91YmxlLWNoZWNrIHRoZSBmdXp6aW5nIGd1aWRlbGluZXMuIFllcCwgdGhlIHJ1bGUgZXhwbGljaXRseSBzdGF0ZXM6IFwiUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWlucy4uLiBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLlwiIEFuZCBpbXBvcnRhbnRseSwgaXQgKmFsc28qIG5vdGVzIHRoYXQgaWYgY29yZSBrZXJuZWwgbG9naWMgb3IgZHJpdmVycyBhcmUgbW9kaWZpZWQsIEkgc2hvdWxkIGludmVzdGlnYXRlIGFuZCB2ZXJpZnkgZXhlY3V0aW9uIHBhdGhzIGJlZm9yZSBzZXR0aW5nIGBXb3J0aEZ1enppbmc9dHJ1ZWAuXG5cblNpbmNlIHRoaXMgaXMgcHVyZWx5IGEgc2VsZnRlc3QgbW9kaWZpY2F0aW9uLCBpdCBpcyBub3Qgd2l0aGluIHRoZSBkZWZpbmVkIHNjb3BlIG9mIHBvdGVudGlhbGx5IGZ1enplZCBjb2RlLiBUaGVyZWZvcmUsIEknbSBjb25maWRlbnQgaW4gY2FsbGluZyB0aGlzIGEgXCJuby1nb1wiIGZvciBmdXp6aW5nLlxuXG5JJ20gZ29pbmcgdG8gc2V0IGBXb3J0aEZ1enppbmc9ZmFsc2VgLCBsZWF2ZSB0aGUgYEVuYWJsZUNvbmZpZ3NgIGFuZCBgRm9jdXNTeW1ib2xzYCBsaXN0cyBlbXB0eSwgYW5kIGRvY3VtZW50IHRoZSByZWFzb25pbmcgc3VjY2luY3RseS5cblxuXG4iLCJJbnB1dFRva2VucyI6MzA3NywiT3V0cHV0VG9rZW5zIjo3NywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjIyMiwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOS0wMVQxMToxNzoyMi4zMDg2NTc0MTNaIiwiU2VxIjo2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE4OTQwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG9ubHkgbW9kaWZpZXMgS1ZNIHNlbGZ0ZXN0cyB1c2VyLXNwYWNlIGNvZGUgdW5kZXIgdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMva3ZtL2xpYi9yaXNjdi9wcm9jZXNzb3IuYywgd2hpY2ggZG9lcyBub3QgaW1wYWN0IHRoZSBrZXJuZWwgYmluYXJ5IG9yIHJ1bnRpbWUga2VybmVsIGxvZ2ljLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggb25seSBtb2RpZmllcyBLVk0gc2VsZnRlc3RzIHVzZXItc3BhY2UgY29kZSB1bmRlciB0b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9rdm0vbGliL3Jpc2N2L3Byb2Nlc3Nvci5jLCB3aGljaCBkb2VzIG5vdCBpbXBhY3QgdGhlIGtlcm5lbCBiaW5hcnkgb3IgcnVudGltZSBrZXJuZWwgbG9naWMuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOS0wMVQxMToxNzoyMi4zMDg2Nzk5MzNaIiwiU2VxIjo3LCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6IklmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MzAyMCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH1dOwoJCQlpZiAoIXJhd0RhdGEgfHwgcmF3RGF0YS5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpOwoJCQlkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKTsKCQkJZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpIHsKCQkJY29uc3Qgc3RhdHMgPSB7CgkJCQlsbG06IHsgY291bnQ6IDAsIHRva2VuczogMCwgZHVyYXRpb246IDAgfSwKCQkJCXRvb2w6IHsgY291bnQ6IDAsIGR1cmF0aW9uOiAwIH0KCQkJfTsKCgkJCXJhd0RhdGEuZm9yRWFjaChzID0+IHsKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOyAKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iKSB7CgkJCQkJc3RhdHMubGxtLmNvdW50Kys7CgkJCQkJc3RhdHMubGxtLnRva2VucyArPSAocy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2Vucyk7CgkJCQkJc3RhdHMubGxtLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0gZWxzZSBpZiAocy5UeXBlID09PSAidG9vbCIpIHsKCQkJCQlzdGF0cy50b29sLmNvdW50Kys7CgkJCQkJc3RhdHMudG9vbC5kdXJhdGlvbiArPSBkdXI7CgkJCQl9CgkJCX0pOwoKCQkJY29uc3QgYXZnTGxtRHVyID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0uZHVyYXRpb24gLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdMbG1Ub2tlbiA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLnRva2VucyAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z1Rvb2xEdXIgPSBzdGF0cy50b29sLmNvdW50ID4gMCA/IChzdGF0cy50b29sLmR1cmF0aW9uIC8gc3RhdHMudG9vbC5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgoJCQljb25zdCBsbG1TdW1hcnlDZWxscyA9IFtzdGF0cy5sbG0uY291bnQsIHN0YXRzLmxsbS50b2tlbnMsIGF2Z0xsbVRva2VuLCBzdGF0cy5sbG0uZHVyYXRpb24sIGF2Z0xsbUR1cl07CgkJCWNvbnN0IHRvb2xTdW1tYXJ5Q2VsbHMgPSBbc3RhdHMudG9vbC5jb3VudCwgc3RhdHMudG9vbC5kdXJhdGlvbiwgYXZnVG9vbER1cl07CgoJCQljb25zdCBsbG1TdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsbG1fc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCWxsbVN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCBsbG1UciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCWxsbVN1bWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQlsbG1Uci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQlsbG1TdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZChsbG1Ucik7CgoJCQljb25zdCB0b29sU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJdG9vbFN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCB0b29sVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQl0b29sU3VtbWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQl0b29sVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJdG9vbFN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKHRvb2xUcik7CgkJfQoKCQlmdW5jdGlvbiBkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGZpbHRlcmVkU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IFsibGxtIiwgInRvb2wiXS5pbmNsdWRlcyhkLlR5cGUpKTsKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnRHVyYXRpb24nKTsKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsgCgoJCQlmaWx0ZXJlZFN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQkKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOwoJCQkJbGV0IHRvb2x0aXAgPSBzLk5hbWU7CgkJCQlpZiAocy5UeXBlID09PSAibGxtIiAmJiBzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgkJCQlkYXRhLmFkZFJvdyhbYCR7cy5TZXF9YCwgZHVyLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVGltZSBDb25zdW1wdGlvbiBvZiBMTE0vVG9vbCBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNL1Rvb2wgU3RlcHMnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnU2Vjb25kcycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZHVyYXRpb25fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGxsbVN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBkLlR5cGUgPT09ICJsbG0iKTsKCQkJaWYgKGxsbVN0ZXBzLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnVG9rZW5zJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3N0eWxlJ30pOwkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsJCgoJCQljb25zdCBhZ2VudENvbG9ycyA9IHt9OwoJCQljb25zdCBwYWxldHRlID0gWycjNDI4NUY0JywgJyNEQjQ0MzcnLCAnI0Y0QjQwMCcsICcjMEY5RDU4JywgJyNBQjQ3QkMnLCAnIzAwQUNDMSddOwoJCQlsZXQgY29sb3JJZHggPSAwOwoJCQljb25zdCBhZ2VudExMTUNvdW50cyA9IHt9OwoJCQlsbG1TdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJaWYgKCFhZ2VudENvbG9yc1tzLk5hbWVdKSB7CgkJCQkJYWdlbnRDb2xvcnNbcy5OYW1lXSA9IHBhbGV0dGVbY29sb3JJZHggJSBwYWxldHRlLmxlbmd0aF07CgkJCQkJY29sb3JJZHgrKzsKCQkJCX0KCgkJCQlhZ2VudExMTUNvdW50c1tzLk5hbWVdID0gKGFnZW50TExNQ291bnRzW3MuTmFtZV0gfHwgMCkgKyAxOwoJCQkJY29uc3QgbGFiZWwgPSBgJHtzLk5hbWV9LSR7YWdlbnRMTE1Db3VudHNbcy5OYW1lXX1gOwoJCQkJY29uc3QgdG90YWxUb2tlbnMgPSBzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zOwoJCQkJY29uc3Qgc3R5bGUgPSBgY29sb3I6ICR7YWdlbnRDb2xvcnNbcy5OYW1lXX1gOwoJCQkJbGV0IHRvb2x0aXAgPSBgVG90YWwgVG9rZW5zOiAke3RvdGFsVG9rZW5zfVxuKEluOiAke3MuSW5wdXRUb2tlbnN9LCBPdXQ6ICR7cy5PdXRwdXRUb2tlbnN9LCBUaG91Z2h0czogJHtzLk91dHB1dFRob3VnaHRzVG9rZW5zfSlgOwoJCQkJaWYgKHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCgkJCQlkYXRhLmFkZFJvdyhbbGFiZWwsIHRvdGFsVG9rZW5zLCBzdHlsZSwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1Rva2VuIENvbnN1bXB0aW9uIGJ5IExMTSBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNIENhbGwgU2VxdWVuY2UnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnQ29uc3VtZWQgVG9rZW5zJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b2tlbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoJCWxldCBhbGxFeHBhbmRlZCA9IGZhbHNlOwoJCWZ1bmN0aW9uIHRvZ2dsZUFsbERldGFpbHMoKSB7CgkJCWFsbEV4cGFuZGVkID0gIWFsbEV4cGFuZGVkOwoJCQlkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdkZXRhaWxzJykuZm9yRWFjaChkID0+IHsKCQkJCWlmIChhbGxFeHBhbmRlZCkgZC5zZXRBdHRyaWJ1dGUoJ29wZW4nLCAnJyk7CgkJCQllbHNlIGQucmVtb3ZlQXR0cmlidXRlKCdvcGVuJyk7CgkJCX0pOwoJCX0KCTwvc2NyaXB0PgoKCjwvYm9keT4KPC9odG1sPgo=" },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-workflow4zh72[1] Phase: Running StartedAt: 2026-09-01 11:17:33 +0000 UTC FinishedAt: 0001-01-01 00:00:00 +0000 UTC Input: nil Output: nil --------- Name: series-workflow4zh72[1].abort-on-skip-outcome Phase: Failed StartedAt: 2026-09-01 11:17:33 +0000 UTC FinishedAt: 2026-09-01 11:17:49 +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,}