Name: series-workflowvjwn5 Phase: Failed StartedAt: 2026-08-01 13:27:02 +0000 UTC FinishedAt: 2026-08-01 13:29:02 +0000 UTC Input: nil Output: nil --------- Name: series-workflowvjwn5[0] Phase: Succeeded StartedAt: 2026-08-01 13:27:02 +0000 UTC FinishedAt: 2026-08-01 13:28:52 +0000 UTC Input: nil Output: nil --------- Name: series-workflowvjwn5[0].run-triage Phase: Succeeded StartedAt: 2026-08-01 13:27:02 +0000 UTC FinishedAt: 2026-08-01 13:28:52 +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+CgkJCTx0ZD4yMDI2LzA4LzAxIDEzOjI4PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG9ubHkgbW9kaWZpZXMgc2VsZnRlc3RzICh0b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9uZXQvb3BlbnZzd2l0Y2gvKikgYW5kIGRvZXMgbm90IG1ha2UgYW55IGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUgY29yZSBrZXJuZWwsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAxIDEzOjI4PC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5yZWFkLXBhdGNoLWRpZmY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtQYXRjaERpZmYmIzM0OzogJiMzNDtjb21taXQgNzg4MTdhMWUzYmJlMzUzZmU1ZjE2NDVjM2I0OTU5N2NkNWFlNWM2YlxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBTYXQgQXVnIDEgMTM6Mjg6MzMgMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L29wZW52c3dpdGNoL2NvbmZpZyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL25ldC9vcGVudnN3aXRjaC9jb25maWdcbmluZGV4IGM2NTk3NDljZDA4NmMuLjc1NDI5N2IxNjQ0ZWMgMTAwNjQ0XG4tLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9uZXQvb3BlbnZzd2l0Y2gvY29uZmlnXG4mIzQzOyYjNDM7JiM0MzsgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9uZXQvb3BlbnZzd2l0Y2gvY29uZmlnXG5AQCAtMSw2ICYjNDM7MSw3IEBAXG4gQ09ORklHX0dFTkVWRT1tXG4gQ09ORklHX0lORVRfRElBRz15XG4gQ09ORklHX0lQVjY9eVxuJiM0MztDT05GSUdfSVBfU0NUUD15XG4gQ09ORklHX05FVEZJTFRFUj15XG4gQ09ORklHX05FVF9JUEdSRT1tXG4gQ09ORklHX05FVF9JUEdSRV9ERU1VWD1tXG5kaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L29wZW52c3dpdGNoL29wZW52c3dpdGNoLnNoIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L29wZW52c3dpdGNoL29wZW52c3dpdGNoLnNoXG5pbmRleCA4NTNkYmMxYjAwZDdhLi5iNDQ4MzI0NTI3ZDhiIDEwMDc1NVxuLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L29wZW52c3dpdGNoL29wZW52c3dpdGNoLnNoXG4mIzQzOyYjNDM7JiM0MzsgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9uZXQvb3BlbnZzd2l0Y2gvb3BlbnZzd2l0Y2guc2hcbkBAIC0zNCw2ICYjNDM7MzQsNyBAQCB0ZXN0cz1cJiMzNDtcbiBcdGFjdGlvbl9zZXRcdFx0XHRcdHNldDogU0VUIGFjdGlvbiByZXdyaXRlcyBmaWVsZHNcbiBcdHRydW5jXHRcdFx0XHRcdHRydW5jOiBvdXRwdXQgdHJ1bmNhdGlvblxuIFx0aWNtcHY2XHRcdFx0XHRcdGljbXB2NjogSUNNUHY2IGVjaG8gdHlwZSBtYXRjaFxuJiM0MztcdHNjdHBfY29ubmVjdF92NFx0XHRcdFx0c2N0cDogU0NUUCBmbG93IGtleSBtYXRjaGluZ1xuIFx0cHNhbXBsZVx0XHRcdFx0XHRwc2FtcGxlOiBTYW1wbGluZyBwYWNrZXRzIHdpdGggcHNhbXBsZVwmIzM0O1xuIFxuIGluZm8oKSB7XG5AQCAtNjExLDYgJiM0Mzs2MTIsMTI2IEBAIHRlc3RfaWNtcHY2KCkge1xuIFx0cmV0dXJuIDBcbiB9XG4gXG4mIzQzOyMgQ2hlY2sgZm9yIGFuIFNDVFAgZW5kcG9pbnQgdmlhIC9wcm9jLCB3aGljaCB3b3JrcyB3aXRob3V0IHNjdHBfZGlhZy5cbiYjNDM7c2N0cF9lcHNfaGFzKCkge1xuJiM0MztcdGlwIG5ldG5zIGV4ZWMgXCYjMzQ7JDFcJiMzNDsgYXdrIC12IHA9XCYjMzQ7JDJcJiMzNDsgJiMzOTskNj09cCYjMzk7IC9wcm9jL25ldC9zY3RwL2VwcyB8IGdyZXAgLXEgLlxuJiM0Mzt9XG4mIzQzO1xuJiM0MzsjIHNjdHBfY29ubmVjdF92NCB0ZXN0XG4mIzQzOyMgLSBzY3RwKGRzdD00NDQzKSBtYXRjaGVzIGNsaWVudC10by1zZXJ2ZXIgSU5JVFxuJiM0MzsjIC0gc2N0cChzcmM9NDQ0MykgbWF0Y2hlcyBzZXJ2ZXItdG8tY2xpZW50IElOSVQtQUNLXG4mIzQzOyMgLSByZW1vdmUgZmxvd3MgYW5kIHZlcmlmeSBjb25uZWN0aW9uIGZhaWxzLCByZWluc3RhbGwgYW5kIHJlY292ZXJcbiYjNDM7dGVzdF9zY3RwX2Nvbm5lY3RfdjQoKSB7XG4mIzQzO1x0bG9jYWwgdD1cJiMzNDt0ZXN0X3NjdHBfY29ubmVjdF92NFwmIzM0O1xuJiM0MztcdGxvY2FsIHNydl9pcD0xNzIuMzEuMTEwLjIwXG4mIzQzO1xuJiM0MztcdG1vZHByb2JlIC1xIHNjdHAgMlx1MDAzZS9kZXYvbnVsbCB8fCByZXR1cm4gXCYjMzQ7JGtzZnRfc2tpcFwmIzM0O1xuJiM0MztcdHNvY2F0IC1WIDJcdTAwM2VcdTAwMjYxIHwgZ3JlcCAtcSBcJiMzNDtkZWZpbmUgV0lUSF9TQ1RQXCYjMzQ7IHx8IHJldHVybiBcJiMzNDska3NmdF9za2lwXCYjMzQ7XG4mIzQzO1xuJiM0MztcdHNieF9hZGQgXCYjMzQ7JHRcJiMzNDsgfHwgcmV0dXJuICQ/XG4mIzQzO1x0b3ZzX2FkZF9kcCBcJiMzNDskdFwmIzM0OyBzY3RwNCB8fCByZXR1cm4gMVxuJiM0MztcbiYjNDM7XHRpbmZvIFwmIzM0O2NyZWF0ZSBuYW1lc3BhY2VzXCYjMzQ7XG4mIzQzO1x0Zm9yIG5zIGluIGNsaWVudCBzZXJ2ZXI7IGRvXG4mIzQzO1x0XHRvdnNfYWRkX25ldG5zX2FuZF92ZXRocyBcJiMzNDskdFwmIzM0OyBcJiMzNDtzY3RwNFwmIzM0OyBcJiMzNDskbnNcJiMzNDsgXFxcbiYjNDM7XHRcdCAgICBcJiMzNDske25zOjA6MX0wXCYjMzQ7IFwmIzM0OyR7bnM6MDoxfTFcJiMzNDsgfHwgcmV0dXJuIDFcbiYjNDM7XHRkb25lXG4mIzQzO1xuJiM0MztcdGlwIG5ldG5zIGV4ZWMgY2xpZW50IGlwIGFkZHIgYWRkIDE3Mi4zMS4xMTAuMTAvMjQgZGV2IGMxXG4mIzQzO1x0aXAgbmV0bnMgZXhlYyBjbGllbnQgaXAgbGluayBzZXQgYzEgdXBcbiYjNDM7XHRpcCBuZXRucyBleGVjIHNlcnZlciBpcCBhZGRyIGFkZCBcJiMzNDske3Nydl9pcH0vMjRcJiMzNDsgZGV2IHMxXG4mIzQzO1x0aXAgbmV0bnMgZXhlYyBzZXJ2ZXIgaXAgbGluayBzZXQgczEgdXBcbiYjNDM7XG4mIzQzO1x0IyBQcm9iZTogY2hlY2sgaWYga2VybmVsIHN1cHBvcnRzIHNjdHAgZmxvdyBrZXkuXG4mIzQzO1x0b3ZzX2FkZF9mbG93IFwmIzM0OyR0XCYjMzQ7IHNjdHA0IFxcXG4mIzQzO1x0ICAgICYjMzk7aW5fcG9ydCgxKSxldGgoKSxldGhfdHlwZSgweDA4MDApLGlwdjQocHJvdG89MTMyKSxzY3RwKGRzdD00NDQzKSYjMzk7IFxcXG4mIzQzO1x0ICAgICYjMzk7MiYjMzk7IFx1MDAyNlx1MDAzZS9kZXYvbnVsbFxuJiM0MztcdGlmIFsgJD8gLW5lIDAgXTsgdGhlblxuJiM0MztcdFx0aW5mbyBcJiMzNDtubyBzdXBwb3J0IGZvciBzY3RwIGtleSAtIHNraXBwaW5nXCYjMzQ7XG4mIzQzO1x0XHRvdnNfZXhpdF9zaWdcbiYjNDM7XHRcdHJldHVybiAka3NmdF9za2lwXG4mIzQzO1x0ZmlcbiYjNDM7XHRvdnNfZGVsX2Zsb3dzIFwmIzM0OyR0XCYjMzQ7IHNjdHA0XG4mIzQzO1xuJiM0MztcdCMgQVJQIGZvcndhcmRpbmdcbiYjNDM7XHRvdnNfYWRkX2Zsb3cgXCYjMzQ7JHRcJiMzNDsgc2N0cDQgXFxcbiYjNDM7XHQgICAgJiMzOTtpbl9wb3J0KDEpLGV0aCgpLGV0aF90eXBlKDB4MDgwNiksYXJwKCkmIzM5OyBcXFxuJiM0MztcdCAgICAmIzM5OzImIzM5OyB8fCByZXR1cm4gMVxuJiM0MztcdG92c19hZGRfZmxvdyBcJiMzNDskdFwmIzM0OyBzY3RwNCBcXFxuJiM0MztcdCAgICAmIzM5O2luX3BvcnQoMiksZXRoKCksZXRoX3R5cGUoMHgwODA2KSxhcnAoKSYjMzk7IFxcXG4mIzQzO1x0ICAgICYjMzk7MSYjMzk7IHx8IHJldHVybiAxXG4mIzQzO1xuJiM0MztcdCMgU0NUUCBwb3J0IG1hdGNoaW5nOiBkc3QgZm9yIHJlcXVlc3QsIHNyYyBmb3IgcmVwbHlcbiYjNDM7XHRvdnNfYWRkX2Zsb3cgXCYjMzQ7JHRcJiMzNDsgc2N0cDQgXFxcbiYjNDM7XHQgICAgJiMzOTtpbl9wb3J0KDEpLGV0aCgpLGV0aF90eXBlKDB4MDgwMCksaXB2NChwcm90bz0xMzIpLHNjdHAoZHN0PTQ0NDMpJiMzOTsgXFxcbiYjNDM7XHQgICAgJiMzOTsyJiMzOTsgfHwgcmV0dXJuIDFcbiYjNDM7XHRvdnNfYWRkX2Zsb3cgXCYjMzQ7JHRcJiMzNDsgc2N0cDQgXFxcbiYjNDM7XHQgICAgJiMzOTtpbl9wb3J0KDIpLGV0aCgpLGV0aF90eXBlKDB4MDgwMCksaXB2NChwcm90bz0xMzIpLHNjdHAoc3JjPTQ0NDMpJiMzOTsgXFxcbiYjNDM7XHQgICAgJiMzOTsxJiMzOTsgfHwgcmV0dXJuIDFcbiYjNDM7XG4mIzQzO1x0b3ZzX25ldG5zX3NwYXduX2RhZW1vbiBcJiMzNDskdFwmIzM0OyBcJiMzNDtzZXJ2ZXJcJiMzNDsgXFxcbiYjNDM7XHQgICAgc29jYXQgLXUgU0NUUDQtTElTVEVOOjQ0NDMgU1RET1VUXG4mIzQzO1x0bG9jYWwgc2VydmVyX3BpZD1cJiMzNDskcGlkXCYjMzQ7XG4mIzQzO1x0b3ZzX3dhaXQgc2N0cF9lcHNfaGFzIHNlcnZlciA0NDQzIHx8IHJldHVybiAxXG4mIzQzO1xuJiM0MztcdGluZm8gXCYjMzQ7dmVyaWZ5IFNDVFAgYXNzb2NpYXRpb24gd2l0aCBwb3J0LWtleWVkIGZsb3dzXCYjMzQ7XG4mIzQzO1x0b3ZzX3NieCBcJiMzNDskdFwmIzM0OyBpcCBuZXRucyBleGVjIGNsaWVudCBcXFxuJiM0MztcdCAgICB0aW1lb3V0IDMgc29jYXQgLXUgU1RESU4gXCYjMzQ7U0NUUDQtQ09OTkVDVDoke3Nydl9pcH06NDQ0M1wmIzM0OyBcdTAwM2MvZGV2L251bGwgXFxcbiYjNDM7XHQgICAgfHwgcmV0dXJuIDFcbiYjNDM7XG4mIzQzO1x0b3ZzX2RlbF9mbG93cyBcJiMzNDskdFwmIzM0OyBzY3RwNFxuJiM0MztcbiYjNDM7XHRpbmZvIFwmIzM0O3ZlcmlmeSBjb25uZWN0aW9uIGZhaWxzIHdpdGhvdXQgZmxvd3NcJiMzNDtcbiYjNDM7XHRvdnNfYWRkX2Zsb3cgXCYjMzQ7JHRcJiMzNDsgc2N0cDQgXFxcbiYjNDM7XHQgICAgJiMzOTtpbl9wb3J0KDEpLGV0aCgpLGV0aF90eXBlKDB4MDgwNiksYXJwKCkmIzM5OyBcXFxuJiM0MztcdCAgICAmIzM5OzImIzM5OyB8fCByZXR1cm4gMVxuJiM0MztcdG92c19hZGRfZmxvdyBcJiMzNDskdFwmIzM0OyBzY3RwNCBcXFxuJiM0MztcdCAgICAmIzM5O2luX3BvcnQoMiksZXRoKCksZXRoX3R5cGUoMHgwODA2KSxhcnAoKSYjMzk7IFxcXG4mIzQzO1x0ICAgICYjMzk7MSYjMzk7IHx8IHJldHVybiAxXG4mIzQzO1xuJiM0MztcdGtpbGwgLVRFUk0gXCYjMzQ7JHNlcnZlcl9waWRcJiMzNDsgMlx1MDAzZS9kZXYvbnVsbFxuJiM0MztcdGxvY2FsIGk9MFxuJiM0MztcdHdoaWxlIGtpbGwgLTAgXCYjMzQ7JHNlcnZlcl9waWRcJiMzNDsgMlx1MDAzZS9kZXYvbnVsbCBcdTAwMjZcdTAwMjYgWyBcJiMzNDskaVwmIzM0OyAtbHQgNSBdOyBkb1xuJiM0MztcdCAgICBzbGVlcCAwLjJcbiYjNDM7XHQgICAgaT0kKChpICYjNDM7IDEpKVxuJiM0MztcdGRvbmVcbiYjNDM7XHRvdnNfbmV0bnNfc3Bhd25fZGFlbW9uIFwmIzM0OyR0XCYjMzQ7IFwmIzM0O3NlcnZlclwmIzM0OyBcXFxuJiM0MztcdCAgICBzb2NhdCAtdSBTQ1RQNC1MSVNURU46NDQ0MyBTVERPVVRcbiYjNDM7XHRzZXJ2ZXJfcGlkPVwmIzM0OyRwaWRcJiMzNDtcbiYjNDM7XHRvdnNfd2FpdCBzY3RwX2Vwc19oYXMgc2VydmVyIDQ0NDMgfHwgcmV0dXJuIDFcbiYjNDM7XG4mIzQzO1x0b3ZzX3NieCBcJiMzNDskdFwmIzM0OyBpcCBuZXRucyBleGVjIGNsaWVudCBcXFxuJiM0MztcdCAgICB0aW1lb3V0IDMgc29jYXQgLXUgU1RESU4gXCYjMzQ7U0NUUDQtQ09OTkVDVDoke3Nydl9pcH06NDQ0M1wmIzM0OyBcdTAwM2MvZGV2L251bGwgXFxcbiYjNDM7XHQgICAgXHUwMDNlL2Rldi9udWxsIDJcdTAwM2VcdTAwMjYxIFxcXG4mIzQzO1x0ICAgIFx1MDAyNlx1MDAyNiB7IGluZm8gXCYjMzQ7Y29ubmVjdGlvbiBzaG91bGQgZmFpbCB3aXRob3V0IGZsb3dzXCYjMzQ7XG4mIzQzO1x0ICAgICAgICAgcmV0dXJuIDE7IH1cbiYjNDM7XG4mIzQzO1x0aW5mbyBcJiMzNDtyZWluc3RhbGwgZmxvd3MgYW5kIHZlcmlmeSByZWNvdmVyeVwmIzM0O1xuJiM0MztcdG92c19hZGRfZmxvdyBcJiMzNDskdFwmIzM0OyBzY3RwNCBcXFxuJiM0MztcdCAgICAmIzM5O2luX3BvcnQoMSksZXRoKCksZXRoX3R5cGUoMHgwODAwKSxpcHY0KHByb3RvPTEzMiksc2N0cChkc3Q9NDQ0MykmIzM5OyBcXFxuJiM0MztcdCAgICAmIzM5OzImIzM5OyB8fCByZXR1cm4gMVxuJiM0MztcdG92c19hZGRfZmxvdyBcJiMzNDskdFwmIzM0OyBzY3RwNCBcXFxuJiM0MztcdCAgICAmIzM5O2luX3BvcnQoMiksZXRoKCksZXRoX3R5cGUoMHgwODAwKSxpcHY0KHByb3RvPTEzMiksc2N0cChzcmM9NDQ0MykmIzM5OyBcXFxuJiM0MztcdCAgICAmIzM5OzEmIzM5OyB8fCByZXR1cm4gMVxuJiM0MztcbiYjNDM7XHRraWxsIC1URVJNIFwmIzM0OyRzZXJ2ZXJfcGlkXCYjMzQ7IDJcdTAwM2UvZGV2L251bGxcbiYjNDM7XHRpPTBcbiYjNDM7XHR3aGlsZSBraWxsIC0wIFwmIzM0OyRzZXJ2ZXJfcGlkXCYjMzQ7IDJcdTAwM2UvZGV2L251bGwgXHUwMDI2XHUwMDI2IFsgXCYjMzQ7JGlcJiMzNDsgLWx0IDUgXTsgZG9cbiYjNDM7XHQgICAgc2xlZXAgMC4yXG4mIzQzO1x0ICAgIGk9JCgoaSAmIzQzOyAxKSlcbiYjNDM7XHRkb25lXG4mIzQzO1x0b3ZzX25ldG5zX3NwYXduX2RhZW1vbiBcJiMzNDskdFwmIzM0OyBcJiMzNDtzZXJ2ZXJcJiMzNDsgXFxcbiYjNDM7XHQgICAgc29jYXQgLXUgU0NUUDQtTElTVEVOOjQ0NDMgU1RET1VUXG4mIzQzO1x0c2VydmVyX3BpZD1cJiMzNDskcGlkXCYjMzQ7XG4mIzQzO1x0b3ZzX3dhaXQgc2N0cF9lcHNfaGFzIHNlcnZlciA0NDQzIHx8IHJldHVybiAxXG4mIzQzO1xuJiM0MztcdG92c19zYnggXCYjMzQ7JHRcJiMzNDsgaXAgbmV0bnMgZXhlYyBjbGllbnQgXFxcbiYjNDM7XHQgICAgdGltZW91dCAzIHNvY2F0IC11IFNURElOIFwmIzM0O1NDVFA0LUNPTk5FQ1Q6JHtzcnZfaXB9OjQ0NDNcJiMzNDsgXHUwMDNjL2Rldi9udWxsIFxcXG4mIzQzO1x0ICAgIHx8IHJldHVybiAxXG4mIzQzO1xuJiM0MztcdHJldHVybiAwXG4mIzQzO31cbiYjNDM7XG4gIyBwc2FtcGxlIHRlc3RcbiAjIC0gdXNlIHBzYW1wbGUgdG8gb2JzZXJ2ZSBwYWNrZXRzXG4gdGVzdF9wc2FtcGxlKCkge1xuZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL25ldC9vcGVudnN3aXRjaC9vdnMtZHBjdGwucHkgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9uZXQvb3BlbnZzd2l0Y2gvb3ZzLWRwY3RsLnB5XG5pbmRleCBmM2VkZDE5ODIyM2YxLi5jZTc5MGQ5MzY4MzI5IDEwMDY0NFxuLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L29wZW52c3dpdGNoL292cy1kcGN0bC5weVxuJiM0MzsmIzQzOyYjNDM7IGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L29wZW52c3dpdGNoL292cy1kcGN0bC5weVxuQEAgLTE5ODQsNiAmIzQzOzE5ODQsMTEgQEAgY2xhc3Mgb3Zza2V5KG5sYSk6XG4gICAgICAgICAgICAgICAgIFwmIzM0O3VkcFwmIzM0OyxcbiAgICAgICAgICAgICAgICAgb3Zza2V5Lm92c19rZXlfdWRwLFxuICAgICAgICAgICAgICksXG4mIzQzOyAgICAgICAgICAgIChcbiYjNDM7ICAgICAgICAgICAgICAgIFwmIzM0O09WU19LRVlfQVRUUl9TQ1RQXCYjMzQ7LFxuJiM0MzsgICAgICAgICAgICAgICAgXCYjMzQ7c2N0cFwmIzM0OyxcbiYjNDM7ICAgICAgICAgICAgICAgIG92c2tleS5vdnNfa2V5X3NjdHAsXG4mIzQzOyAgICAgICAgICAgICksXG4gICAgICAgICAgICAgKFxuICAgICAgICAgICAgICAgICBcJiMzNDtPVlNfS0VZX0FUVFJfSUNNUFwmIzM0OyxcbiAgICAgICAgICAgICAgICAgXCYjMzQ7aWNtcFwmIzM0OyxcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yLzE8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMSAxMzoyODwvdGQ+CgkJCTx0ZD5hZ2VudDwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5iZXN0LWV4cGVuc2l2ZTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IG51bGwsCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggb25seSBtb2RpZmllcyBzZWxmdGVzdHMgKHRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL25ldC9vcGVudnN3aXRjaC8qKSBhbmQgZG9lcyBub3QgbWFrZSBhbnkgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBjb3JlIGtlcm5lbCwgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZQppZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5CnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuCgpSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOgotIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuCi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuCi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LgotIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwKICBldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuCi0gQ29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsCiAgaW9uaWMsIGFtZGdwdSkgdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuCi0gRHJpdmVyIC5yZW1vdmUsIC5zaHV0ZG93biwgb3IgcGNpX3VucmVnaXN0ZXJfZHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoZS5nLiwgaWdiX3JlbW92ZSkKICB0aGF0IGFyZSBleGVjdXRlZCBvbmx5IGR1cmluZyBQQ0kgaG90LXVucGx1ZyBvciBzeXNmcyBkcml2ZXIgdW5iaW5kIG9wZXJhdGlvbnMuCgpJZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoCnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLgoKV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086CjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuCiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLgogICBQcmVmZXIgbm9uLXN0YXRpYywgbm9uLWlubGluZWQgQVBJIGVudHJ5cG9pbnQgZnVuY3Rpb25zIG92ZXIgaW50ZXJuYWwgc3RhdGljIGhlbHBlciBmdW5jdGlvbnMKICAgKHdoaWNoIGFyZSBpbmxpbmVkIGJ5IHRoZSBjb21waWxlciBhbmQgZG8gbm90IGhhdmUgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcykuCjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLgogICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuCiAgIEFsc28gY2hlY2sgJiMzNDtkZXBlbmRzIG9uJiMzNDsgbGluZXMgaW4gS2NvbmZpZyB0byBpbmNsdWRlIGFueSBub24tc3RhbmRhcmQgcGFyZW50IHN1YnN5c3RlbSBjb25maWdzCiAgIG5lZWRlZCBmb3IgS2J1aWxkIHRvIGNvbXBpbGUgdGhlIGNvZGUgc3RhdGljYWxseSBpbnRvIHZtbGludXguIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncwogICBvdXRwdXQgYXJyYXksIGFuZCBETyBOT1QgYWRkIGEgJiMzOTtDT05GSUdfJiMzOTsgcHJlZml4IChlLmcuLCByZXR1cm4gJiMzNDtORVRfSVBWNCYjMzQ7IGluc3RlYWQgb2YgJiMzNDtDT05GSUdfTkVUX0lQVjQmIzM0OykuClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Rm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCA3ODgxN2ExZTNiYmUzNTNmZTVmMTY0NWMzYjQ5NTk3Y2Q1YWU1YzZiCkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIFNhdCBBdWcgMSAxMzoyODozMyAyMDI2ICYjNDM7MDAwMAoKICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldwoKZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL25ldC9vcGVudnN3aXRjaC9jb25maWcgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9uZXQvb3BlbnZzd2l0Y2gvY29uZmlnCmluZGV4IGM2NTk3NDljZDA4NmMuLjc1NDI5N2IxNjQ0ZWMgMTAwNjQ0Ci0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL25ldC9vcGVudnN3aXRjaC9jb25maWcKJiM0MzsmIzQzOyYjNDM7IGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L29wZW52c3dpdGNoL2NvbmZpZwpAQCAtMSw2ICYjNDM7MSw3IEBACiBDT05GSUdfR0VORVZFPW0KIENPTkZJR19JTkVUX0RJQUc9eQogQ09ORklHX0lQVjY9eQomIzQzO0NPTkZJR19JUF9TQ1RQPXkKIENPTkZJR19ORVRGSUxURVI9eQogQ09ORklHX05FVF9JUEdSRT1tCiBDT05GSUdfTkVUX0lQR1JFX0RFTVVYPW0KZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL25ldC9vcGVudnN3aXRjaC9vcGVudnN3aXRjaC5zaCBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL25ldC9vcGVudnN3aXRjaC9vcGVudnN3aXRjaC5zaAppbmRleCA4NTNkYmMxYjAwZDdhLi5iNDQ4MzI0NTI3ZDhiIDEwMDc1NQotLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9uZXQvb3BlbnZzd2l0Y2gvb3BlbnZzd2l0Y2guc2gKJiM0MzsmIzQzOyYjNDM7IGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L29wZW52c3dpdGNoL29wZW52c3dpdGNoLnNoCkBAIC0zNCw2ICYjNDM7MzQsNyBAQCB0ZXN0cz0mIzM0OwogCWFjdGlvbl9zZXQJCQkJc2V0OiBTRVQgYWN0aW9uIHJld3JpdGVzIGZpZWxkcwogCXRydW5jCQkJCQl0cnVuYzogb3V0cHV0IHRydW5jYXRpb24KIAlpY21wdjYJCQkJCWljbXB2NjogSUNNUHY2IGVjaG8gdHlwZSBtYXRjaAomIzQzOwlzY3RwX2Nvbm5lY3RfdjQJCQkJc2N0cDogU0NUUCBmbG93IGtleSBtYXRjaGluZwogCXBzYW1wbGUJCQkJCXBzYW1wbGU6IFNhbXBsaW5nIHBhY2tldHMgd2l0aCBwc2FtcGxlJiMzNDsKIAogaW5mbygpIHsKQEAgLTYxMSw2ICYjNDM7NjEyLDEyNiBAQCB0ZXN0X2ljbXB2NigpIHsKIAlyZXR1cm4gMAogfQogCiYjNDM7IyBDaGVjayBmb3IgYW4gU0NUUCBlbmRwb2ludCB2aWEgL3Byb2MsIHdoaWNoIHdvcmtzIHdpdGhvdXQgc2N0cF9kaWFnLgomIzQzO3NjdHBfZXBzX2hhcygpIHsKJiM0MzsJaXAgbmV0bnMgZXhlYyAmIzM0OyQxJiMzNDsgYXdrIC12IHA9JiMzNDskMiYjMzQ7ICYjMzk7JDY9PXAmIzM5OyAvcHJvYy9uZXQvc2N0cC9lcHMgfCBncmVwIC1xIC4KJiM0Mzt9CiYjNDM7CiYjNDM7IyBzY3RwX2Nvbm5lY3RfdjQgdGVzdAomIzQzOyMgLSBzY3RwKGRzdD00NDQzKSBtYXRjaGVzIGNsaWVudC10by1zZXJ2ZXIgSU5JVAomIzQzOyMgLSBzY3RwKHNyYz00NDQzKSBtYXRjaGVzIHNlcnZlci10by1jbGllbnQgSU5JVC1BQ0sKJiM0MzsjIC0gcmVtb3ZlIGZsb3dzIGFuZCB2ZXJpZnkgY29ubmVjdGlvbiBmYWlscywgcmVpbnN0YWxsIGFuZCByZWNvdmVyCiYjNDM7dGVzdF9zY3RwX2Nvbm5lY3RfdjQoKSB7CiYjNDM7CWxvY2FsIHQ9JiMzNDt0ZXN0X3NjdHBfY29ubmVjdF92NCYjMzQ7CiYjNDM7CWxvY2FsIHNydl9pcD0xNzIuMzEuMTEwLjIwCiYjNDM7CiYjNDM7CW1vZHByb2JlIC1xIHNjdHAgMiZndDsvZGV2L251bGwgfHwgcmV0dXJuICYjMzQ7JGtzZnRfc2tpcCYjMzQ7CiYjNDM7CXNvY2F0IC1WIDImZ3Q7JmFtcDsxIHwgZ3JlcCAtcSAmIzM0O2RlZmluZSBXSVRIX1NDVFAmIzM0OyB8fCByZXR1cm4gJiMzNDska3NmdF9za2lwJiMzNDsKJiM0MzsKJiM0MzsJc2J4X2FkZCAmIzM0OyR0JiMzNDsgfHwgcmV0dXJuICQ/CiYjNDM7CW92c19hZGRfZHAgJiMzNDskdCYjMzQ7IHNjdHA0IHx8IHJldHVybiAxCiYjNDM7CiYjNDM7CWluZm8gJiMzNDtjcmVhdGUgbmFtZXNwYWNlcyYjMzQ7CiYjNDM7CWZvciBucyBpbiBjbGllbnQgc2VydmVyOyBkbwomIzQzOwkJb3ZzX2FkZF9uZXRuc19hbmRfdmV0aHMgJiMzNDskdCYjMzQ7ICYjMzQ7c2N0cDQmIzM0OyAmIzM0OyRucyYjMzQ7IFwKJiM0MzsJCSAgICAmIzM0OyR7bnM6MDoxfTAmIzM0OyAmIzM0OyR7bnM6MDoxfTEmIzM0OyB8fCByZXR1cm4gMQomIzQzOwlkb25lCiYjNDM7CiYjNDM7CWlwIG5ldG5zIGV4ZWMgY2xpZW50IGlwIGFkZHIgYWRkIDE3Mi4zMS4xMTAuMTAvMjQgZGV2IGMxCiYjNDM7CWlwIG5ldG5zIGV4ZWMgY2xpZW50IGlwIGxpbmsgc2V0IGMxIHVwCiYjNDM7CWlwIG5ldG5zIGV4ZWMgc2VydmVyIGlwIGFkZHIgYWRkICYjMzQ7JHtzcnZfaXB9LzI0JiMzNDsgZGV2IHMxCiYjNDM7CWlwIG5ldG5zIGV4ZWMgc2VydmVyIGlwIGxpbmsgc2V0IHMxIHVwCiYjNDM7CiYjNDM7CSMgUHJvYmU6IGNoZWNrIGlmIGtlcm5lbCBzdXBwb3J0cyBzY3RwIGZsb3cga2V5LgomIzQzOwlvdnNfYWRkX2Zsb3cgJiMzNDskdCYjMzQ7IHNjdHA0IFwKJiM0MzsJICAgICYjMzk7aW5fcG9ydCgxKSxldGgoKSxldGhfdHlwZSgweDA4MDApLGlwdjQocHJvdG89MTMyKSxzY3RwKGRzdD00NDQzKSYjMzk7IFwKJiM0MzsJICAgICYjMzk7MiYjMzk7ICZhbXA7Jmd0Oy9kZXYvbnVsbAomIzQzOwlpZiBbICQ/IC1uZSAwIF07IHRoZW4KJiM0MzsJCWluZm8gJiMzNDtubyBzdXBwb3J0IGZvciBzY3RwIGtleSAtIHNraXBwaW5nJiMzNDsKJiM0MzsJCW92c19leGl0X3NpZwomIzQzOwkJcmV0dXJuICRrc2Z0X3NraXAKJiM0MzsJZmkKJiM0MzsJb3ZzX2RlbF9mbG93cyAmIzM0OyR0JiMzNDsgc2N0cDQKJiM0MzsKJiM0MzsJIyBBUlAgZm9yd2FyZGluZwomIzQzOwlvdnNfYWRkX2Zsb3cgJiMzNDskdCYjMzQ7IHNjdHA0IFwKJiM0MzsJICAgICYjMzk7aW5fcG9ydCgxKSxldGgoKSxldGhfdHlwZSgweDA4MDYpLGFycCgpJiMzOTsgXAomIzQzOwkgICAgJiMzOTsyJiMzOTsgfHwgcmV0dXJuIDEKJiM0MzsJb3ZzX2FkZF9mbG93ICYjMzQ7JHQmIzM0OyBzY3RwNCBcCiYjNDM7CSAgICAmIzM5O2luX3BvcnQoMiksZXRoKCksZXRoX3R5cGUoMHgwODA2KSxhcnAoKSYjMzk7IFwKJiM0MzsJICAgICYjMzk7MSYjMzk7IHx8IHJldHVybiAxCiYjNDM7CiYjNDM7CSMgU0NUUCBwb3J0IG1hdGNoaW5nOiBkc3QgZm9yIHJlcXVlc3QsIHNyYyBmb3IgcmVwbHkKJiM0MzsJb3ZzX2FkZF9mbG93ICYjMzQ7JHQmIzM0OyBzY3RwNCBcCiYjNDM7CSAgICAmIzM5O2luX3BvcnQoMSksZXRoKCksZXRoX3R5cGUoMHgwODAwKSxpcHY0KHByb3RvPTEzMiksc2N0cChkc3Q9NDQ0MykmIzM5OyBcCiYjNDM7CSAgICAmIzM5OzImIzM5OyB8fCByZXR1cm4gMQomIzQzOwlvdnNfYWRkX2Zsb3cgJiMzNDskdCYjMzQ7IHNjdHA0IFwKJiM0MzsJICAgICYjMzk7aW5fcG9ydCgyKSxldGgoKSxldGhfdHlwZSgweDA4MDApLGlwdjQocHJvdG89MTMyKSxzY3RwKHNyYz00NDQzKSYjMzk7IFwKJiM0MzsJICAgICYjMzk7MSYjMzk7IHx8IHJldHVybiAxCiYjNDM7CiYjNDM7CW92c19uZXRuc19zcGF3bl9kYWVtb24gJiMzNDskdCYjMzQ7ICYjMzQ7c2VydmVyJiMzNDsgXAomIzQzOwkgICAgc29jYXQgLXUgU0NUUDQtTElTVEVOOjQ0NDMgU1RET1VUCiYjNDM7CWxvY2FsIHNlcnZlcl9waWQ9JiMzNDskcGlkJiMzNDsKJiM0MzsJb3ZzX3dhaXQgc2N0cF9lcHNfaGFzIHNlcnZlciA0NDQzIHx8IHJldHVybiAxCiYjNDM7CiYjNDM7CWluZm8gJiMzNDt2ZXJpZnkgU0NUUCBhc3NvY2lhdGlvbiB3aXRoIHBvcnQta2V5ZWQgZmxvd3MmIzM0OwomIzQzOwlvdnNfc2J4ICYjMzQ7JHQmIzM0OyBpcCBuZXRucyBleGVjIGNsaWVudCBcCiYjNDM7CSAgICB0aW1lb3V0IDMgc29jYXQgLXUgU1RESU4gJiMzNDtTQ1RQNC1DT05ORUNUOiR7c3J2X2lwfTo0NDQzJiMzNDsgJmx0Oy9kZXYvbnVsbCBcCiYjNDM7CSAgICB8fCByZXR1cm4gMQomIzQzOwomIzQzOwlvdnNfZGVsX2Zsb3dzICYjMzQ7JHQmIzM0OyBzY3RwNAomIzQzOwomIzQzOwlpbmZvICYjMzQ7dmVyaWZ5IGNvbm5lY3Rpb24gZmFpbHMgd2l0aG91dCBmbG93cyYjMzQ7CiYjNDM7CW92c19hZGRfZmxvdyAmIzM0OyR0JiMzNDsgc2N0cDQgXAomIzQzOwkgICAgJiMzOTtpbl9wb3J0KDEpLGV0aCgpLGV0aF90eXBlKDB4MDgwNiksYXJwKCkmIzM5OyBcCiYjNDM7CSAgICAmIzM5OzImIzM5OyB8fCByZXR1cm4gMQomIzQzOwlvdnNfYWRkX2Zsb3cgJiMzNDskdCYjMzQ7IHNjdHA0IFwKJiM0MzsJICAgICYjMzk7aW5fcG9ydCgyKSxldGgoKSxldGhfdHlwZSgweDA4MDYpLGFycCgpJiMzOTsgXAomIzQzOwkgICAgJiMzOTsxJiMzOTsgfHwgcmV0dXJuIDEKJiM0MzsKJiM0MzsJa2lsbCAtVEVSTSAmIzM0OyRzZXJ2ZXJfcGlkJiMzNDsgMiZndDsvZGV2L251bGwKJiM0MzsJbG9jYWwgaT0wCiYjNDM7CXdoaWxlIGtpbGwgLTAgJiMzNDskc2VydmVyX3BpZCYjMzQ7IDImZ3Q7L2Rldi9udWxsICZhbXA7JmFtcDsgWyAmIzM0OyRpJiMzNDsgLWx0IDUgXTsgZG8KJiM0MzsJICAgIHNsZWVwIDAuMgomIzQzOwkgICAgaT0kKChpICYjNDM7IDEpKQomIzQzOwlkb25lCiYjNDM7CW92c19uZXRuc19zcGF3bl9kYWVtb24gJiMzNDskdCYjMzQ7ICYjMzQ7c2VydmVyJiMzNDsgXAomIzQzOwkgICAgc29jYXQgLXUgU0NUUDQtTElTVEVOOjQ0NDMgU1RET1VUCiYjNDM7CXNlcnZlcl9waWQ9JiMzNDskcGlkJiMzNDsKJiM0MzsJb3ZzX3dhaXQgc2N0cF9lcHNfaGFzIHNlcnZlciA0NDQzIHx8IHJldHVybiAxCiYjNDM7CiYjNDM7CW92c19zYnggJiMzNDskdCYjMzQ7IGlwIG5ldG5zIGV4ZWMgY2xpZW50IFwKJiM0MzsJICAgIHRpbWVvdXQgMyBzb2NhdCAtdSBTVERJTiAmIzM0O1NDVFA0LUNPTk5FQ1Q6JHtzcnZfaXB9OjQ0NDMmIzM0OyAmbHQ7L2Rldi9udWxsIFwKJiM0MzsJICAgICZndDsvZGV2L251bGwgMiZndDsmYW1wOzEgXAomIzQzOwkgICAgJmFtcDsmYW1wOyB7IGluZm8gJiMzNDtjb25uZWN0aW9uIHNob3VsZCBmYWlsIHdpdGhvdXQgZmxvd3MmIzM0OwomIzQzOwkgICAgICAgICByZXR1cm4gMTsgfQomIzQzOwomIzQzOwlpbmZvICYjMzQ7cmVpbnN0YWxsIGZsb3dzIGFuZCB2ZXJpZnkgcmVjb3ZlcnkmIzM0OwomIzQzOwlvdnNfYWRkX2Zsb3cgJiMzNDskdCYjMzQ7IHNjdHA0IFwKJiM0MzsJICAgICYjMzk7aW5fcG9ydCgxKSxldGgoKSxldGhfdHlwZSgweDA4MDApLGlwdjQocHJvdG89MTMyKSxzY3RwKGRzdD00NDQzKSYjMzk7IFwKJiM0MzsJICAgICYjMzk7MiYjMzk7IHx8IHJldHVybiAxCiYjNDM7CW92c19hZGRfZmxvdyAmIzM0OyR0JiMzNDsgc2N0cDQgXAomIzQzOwkgICAgJiMzOTtpbl9wb3J0KDIpLGV0aCgpLGV0aF90eXBlKDB4MDgwMCksaXB2NChwcm90bz0xMzIpLHNjdHAoc3JjPTQ0NDMpJiMzOTsgXAomIzQzOwkgICAgJiMzOTsxJiMzOTsgfHwgcmV0dXJuIDEKJiM0MzsKJiM0MzsJa2lsbCAtVEVSTSAmIzM0OyRzZXJ2ZXJfcGlkJiMzNDsgMiZndDsvZGV2L251bGwKJiM0MzsJaT0wCiYjNDM7CXdoaWxlIGtpbGwgLTAgJiMzNDskc2VydmVyX3BpZCYjMzQ7IDImZ3Q7L2Rldi9udWxsICZhbXA7JmFtcDsgWyAmIzM0OyRpJiMzNDsgLWx0IDUgXTsgZG8KJiM0MzsJICAgIHNsZWVwIDAuMgomIzQzOwkgICAgaT0kKChpICYjNDM7IDEpKQomIzQzOwlkb25lCiYjNDM7CW92c19uZXRuc19zcGF3bl9kYWVtb24gJiMzNDskdCYjMzQ7ICYjMzQ7c2VydmVyJiMzNDsgXAomIzQzOwkgICAgc29jYXQgLXUgU0NUUDQtTElTVEVOOjQ0NDMgU1RET1VUCiYjNDM7CXNlcnZlcl9waWQ9JiMzNDskcGlkJiMzNDsKJiM0MzsJb3ZzX3dhaXQgc2N0cF9lcHNfaGFzIHNlcnZlciA0NDQzIHx8IHJldHVybiAxCiYjNDM7CiYjNDM7CW92c19zYnggJiMzNDskdCYjMzQ7IGlwIG5ldG5zIGV4ZWMgY2xpZW50IFwKJiM0MzsJICAgIHRpbWVvdXQgMyBzb2NhdCAtdSBTVERJTiAmIzM0O1NDVFA0LUNPTk5FQ1Q6JHtzcnZfaXB9OjQ0NDMmIzM0OyAmbHQ7L2Rldi9udWxsIFwKJiM0MzsJICAgIHx8IHJldHVybiAxCiYjNDM7CiYjNDM7CXJldHVybiAwCiYjNDM7fQomIzQzOwogIyBwc2FtcGxlIHRlc3QKICMgLSB1c2UgcHNhbXBsZSB0byBvYnNlcnZlIHBhY2tldHMKIHRlc3RfcHNhbXBsZSgpIHsKZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL25ldC9vcGVudnN3aXRjaC9vdnMtZHBjdGwucHkgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9uZXQvb3BlbnZzd2l0Y2gvb3ZzLWRwY3RsLnB5CmluZGV4IGYzZWRkMTk4MjIzZjEuLmNlNzkwZDkzNjgzMjkgMTAwNjQ0Ci0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL25ldC9vcGVudnN3aXRjaC9vdnMtZHBjdGwucHkKJiM0MzsmIzQzOyYjNDM7IGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L29wZW52c3dpdGNoL292cy1kcGN0bC5weQpAQCAtMTk4NCw2ICYjNDM7MTk4NCwxMSBAQCBjbGFzcyBvdnNrZXkobmxhKToKICAgICAgICAgICAgICAgICAmIzM0O3VkcCYjMzQ7LAogICAgICAgICAgICAgICAgIG92c2tleS5vdnNfa2V5X3VkcCwKICAgICAgICAgICAgICksCiYjNDM7ICAgICAgICAgICAgKAomIzQzOyAgICAgICAgICAgICAgICAmIzM0O09WU19LRVlfQVRUUl9TQ1RQJiMzNDssCiYjNDM7ICAgICAgICAgICAgICAgICYjMzQ7c2N0cCYjMzQ7LAomIzQzOyAgICAgICAgICAgICAgICBvdnNrZXkub3ZzX2tleV9zY3RwLAomIzQzOyAgICAgICAgICAgICksCiAgICAgICAgICAgICAoCiAgICAgICAgICAgICAgICAgJiMzNDtPVlNfS0VZX0FUVFJfSUNNUCYjMzQ7LAogICAgICAgICAgICAgICAgICYjMzQ7aWNtcCYjMzQ7LAo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMSAxMzoyODwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA0MzY1CgkJCQkJCQlvdXRwdXQ6IDcxCgkJCQkJCQl0aG91Z2h0czogMzQ0CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKldvcnRoRnV6emluZz1mYWxzZTogQSBRdWljayBBc3Nlc3NtZW50KioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIHBhdGNoIGFuZCBpdCYjMzk7cyB0b3VjaGluZyBhIGZldyBmaWxlcyB3aXRoaW4gdGhlIE9wZW4gdlN3aXRjaCBzZWxmdGVzdHMgZGlyZWN0b3J5OiBgY29uZmlnYCwgYG9wZW52c3dpdGNoLnNoYCwgYW5kIGBvdnMtZHBjdGwucHlgLiBJdCBhcHBlYXJzIHRoZXkmIzM5O3JlIGFkZGluZyBhIG5ldyB0ZXN0LCBgc2N0cF9jb25uZWN0X3Y0YC4gVGhlIGtleSB0aGluZyBoZXJlLCBmcm9tIG15IHBlcnNwZWN0aXZlLCBpcyB0aGF0IGl0JiMzOTtzICphbGwqIGNvbnRhaW5lZCB3aXRoaW4gdGhlIHRlc3RpbmcgZnJhbWV3b3JrLiBUaGVyZSYjMzk7cyBubyBtb2RpZmljYXRpb24gb2YgY29yZSBrZXJuZWwgY29kZSwgbm8gZHJpdmVyIGNoYW5nZXMsIG5vIGFyY2hpdGVjdHVyZS1zcGVjaWZpYyBzdHVmZi4gSXQmIzM5O3Mgc3RyaWN0bHkgc2VsZi10ZXN0cy4KCkxldCBtZSBqdXN0IGJlIGFic29sdXRlbHkgc3VyZS4uLiBIbW0sIHRha2luZyBhbm90aGVyIGxvb2sgYXQgdGhlIGRpZmYuLi4gWWVwLCBqdXN0IHRoZSBzZWxmdGVzdHMuCgpUaGVyZWZvcmUsIGJlY2F1c2UgdGhpcyBwYXRjaCBpcyBpc29sYXRlZCB0byB0aGUgc2VsZnRlc3RzLCBJJiMzOTttIGNvbmZpZGVudCBpbiBjb25jbHVkaW5nIHRoYXQgaXQgZG9lc24mIzM5O3QgaW50cm9kdWNlIGFueSBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHdvdWxkIHdhcnJhbnQgZnV6emluZy4gVGhlIHJpc2sgcHJvZmlsZSBpcyBleHRyZW1lbHkgbG93LiBJIHdpbGwgc2V0IGBXb3J0aEZ1enppbmc9ZmFsc2VgLiBObyBmdXp6aW5nIG5lZWRlZCBoZXJlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAxIDEzOjI4PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+c2V0LXJlc3VsdHM8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogW10sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggb25seSBtb2RpZmllcyBzZWxmdGVzdHMgKHRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL25ldC9vcGVudnN3aXRjaC8qKSBhbmQgZG9lcyBub3QgbWFrZSBhbnkgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBjb3JlIGtlcm5lbCwgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG9ubHkgbW9kaWZpZXMgc2VsZnRlc3RzICh0b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9uZXQvb3BlbnZzd2l0Y2gvKikgYW5kIGRvZXMgbm90IG1ha2UgYW55IGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUgY29yZSBrZXJuZWwsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTwvdGJvZHk+Cgk8L3RhYmxlPgoKCTxkaXYgaWQ9ImxsbV9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+TExNIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgVG9rZW5zPC90aD4KCQkJCQk8dGg+QXZnIFRva2VuczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJsbG1fc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJ0b29sX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5Ub29sIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9InRvb2xfc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJkdXJhdGlvbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+Cgk8ZGl2IGlkPSJ0b2tlbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+CgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9qc2FwaSI+PC9zY3JpcHQ+Cgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CgkJZ29vZ2xlLmxvYWQoInZpc3VhbGl6YXRpb24iLCAiMSIsIHtwYWNrYWdlczpbImNvcmVjaGFydCJdfSk7CgkJZ29vZ2xlLnNldE9uTG9hZENhbGxiYWNrKGRyYXdDaGFydHMpOwoKCQlmdW5jdGlvbiBkcmF3Q2hhcnRzKCkgewoJCQljb25zdCByYXdEYXRhID0gW3siU3RhcnRlZCI6IjIwMjYtMDgtMDFUMTM6Mjg6MzQuNTQ3NjU5NTY0WiIsIlNlcSI6MCwiTmVzdGluZyI6MCwiVHlwZSI6ImZsb3ciLCJOYW1lIjoicGF0Y2gtdHJpYWdlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NjEzNTkyMjUwOCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggb25seSBtb2RpZmllcyBzZWxmdGVzdHMgKHRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL25ldC9vcGVudnN3aXRjaC8qKSBhbmQgZG9lcyBub3QgbWFrZSBhbnkgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBjb3JlIGtlcm5lbCwgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAxVDEzOjI4OjM0LjU0NzY2NDMzNFoiLCJTZXEiOjEsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoicmVhZC1wYXRjaC1kaWZmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDQ0NzQ5MjczLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJQYXRjaERpZmZcIjogXCJjb21taXQgNzg4MTdhMWUzYmJlMzUzZmU1ZjE2NDVjM2I0OTU5N2NkNWFlNWM2YlxcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXFx1MDAzZVxcbkRhdGU6ICAgU2F0IEF1ZyAxIDEzOjI4OjMzIDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL25ldC9vcGVudnN3aXRjaC9jb25maWcgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9uZXQvb3BlbnZzd2l0Y2gvY29uZmlnXFxuaW5kZXggYzY1OTc0OWNkMDg2Yy4uNzU0Mjk3YjE2NDRlYyAxMDA2NDRcXG4tLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9uZXQvb3BlbnZzd2l0Y2gvY29uZmlnXFxuKysrIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L29wZW52c3dpdGNoL2NvbmZpZ1xcbkBAIC0xLDYgKzEsNyBAQFxcbiBDT05GSUdfR0VORVZFPW1cXG4gQ09ORklHX0lORVRfRElBRz15XFxuIENPTkZJR19JUFY2PXlcXG4rQ09ORklHX0lQX1NDVFA9eVxcbiBDT05GSUdfTkVURklMVEVSPXlcXG4gQ09ORklHX05FVF9JUEdSRT1tXFxuIENPTkZJR19ORVRfSVBHUkVfREVNVVg9bVxcbmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9uZXQvb3BlbnZzd2l0Y2gvb3BlbnZzd2l0Y2guc2ggYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9uZXQvb3BlbnZzd2l0Y2gvb3BlbnZzd2l0Y2guc2hcXG5pbmRleCA4NTNkYmMxYjAwZDdhLi5iNDQ4MzI0NTI3ZDhiIDEwMDc1NVxcbi0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL25ldC9vcGVudnN3aXRjaC9vcGVudnN3aXRjaC5zaFxcbisrKyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL25ldC9vcGVudnN3aXRjaC9vcGVudnN3aXRjaC5zaFxcbkBAIC0zNCw2ICszNCw3IEBAIHRlc3RzPVxcXCJcXG4gXFx0YWN0aW9uX3NldFxcdFxcdFxcdFxcdHNldDogU0VUIGFjdGlvbiByZXdyaXRlcyBmaWVsZHNcXG4gXFx0dHJ1bmNcXHRcXHRcXHRcXHRcXHR0cnVuYzogb3V0cHV0IHRydW5jYXRpb25cXG4gXFx0aWNtcHY2XFx0XFx0XFx0XFx0XFx0aWNtcHY2OiBJQ01QdjYgZWNobyB0eXBlIG1hdGNoXFxuK1xcdHNjdHBfY29ubmVjdF92NFxcdFxcdFxcdFxcdHNjdHA6IFNDVFAgZmxvdyBrZXkgbWF0Y2hpbmdcXG4gXFx0cHNhbXBsZVxcdFxcdFxcdFxcdFxcdHBzYW1wbGU6IFNhbXBsaW5nIHBhY2tldHMgd2l0aCBwc2FtcGxlXFxcIlxcbiBcXG4gaW5mbygpIHtcXG5AQCAtNjExLDYgKzYxMiwxMjYgQEAgdGVzdF9pY21wdjYoKSB7XFxuIFxcdHJldHVybiAwXFxuIH1cXG4gXFxuKyMgQ2hlY2sgZm9yIGFuIFNDVFAgZW5kcG9pbnQgdmlhIC9wcm9jLCB3aGljaCB3b3JrcyB3aXRob3V0IHNjdHBfZGlhZy5cXG4rc2N0cF9lcHNfaGFzKCkge1xcbitcXHRpcCBuZXRucyBleGVjIFxcXCIkMVxcXCIgYXdrIC12IHA9XFxcIiQyXFxcIiAnJDY9PXAnIC9wcm9jL25ldC9zY3RwL2VwcyB8IGdyZXAgLXEgLlxcbit9XFxuK1xcbisjIHNjdHBfY29ubmVjdF92NCB0ZXN0XFxuKyMgLSBzY3RwKGRzdD00NDQzKSBtYXRjaGVzIGNsaWVudC10by1zZXJ2ZXIgSU5JVFxcbisjIC0gc2N0cChzcmM9NDQ0MykgbWF0Y2hlcyBzZXJ2ZXItdG8tY2xpZW50IElOSVQtQUNLXFxuKyMgLSByZW1vdmUgZmxvd3MgYW5kIHZlcmlmeSBjb25uZWN0aW9uIGZhaWxzLCByZWluc3RhbGwgYW5kIHJlY292ZXJcXG4rdGVzdF9zY3RwX2Nvbm5lY3RfdjQoKSB7XFxuK1xcdGxvY2FsIHQ9XFxcInRlc3Rfc2N0cF9jb25uZWN0X3Y0XFxcIlxcbitcXHRsb2NhbCBzcnZfaXA9MTcyLjMxLjExMC4yMFxcbitcXG4rXFx0bW9kcHJvYmUgLXEgc2N0cCAyXFx1MDAzZS9kZXYvbnVsbCB8fCByZXR1cm4gXFxcIiRrc2Z0X3NraXBcXFwiXFxuK1xcdHNvY2F0IC1WIDJcXHUwMDNlXFx1MDAyNjEgfCBncmVwIC1xIFxcXCJkZWZpbmUgV0lUSF9TQ1RQXFxcIiB8fCByZXR1cm4gXFxcIiRrc2Z0X3NraXBcXFwiXFxuK1xcbitcXHRzYnhfYWRkIFxcXCIkdFxcXCIgfHwgcmV0dXJuICQ/XFxuK1xcdG92c19hZGRfZHAgXFxcIiR0XFxcIiBzY3RwNCB8fCByZXR1cm4gMVxcbitcXG4rXFx0aW5mbyBcXFwiY3JlYXRlIG5hbWVzcGFjZXNcXFwiXFxuK1xcdGZvciBucyBpbiBjbGllbnQgc2VydmVyOyBkb1xcbitcXHRcXHRvdnNfYWRkX25ldG5zX2FuZF92ZXRocyBcXFwiJHRcXFwiIFxcXCJzY3RwNFxcXCIgXFxcIiRuc1xcXCIgXFxcXFxcbitcXHRcXHQgICAgXFxcIiR7bnM6MDoxfTBcXFwiIFxcXCIke25zOjA6MX0xXFxcIiB8fCByZXR1cm4gMVxcbitcXHRkb25lXFxuK1xcbitcXHRpcCBuZXRucyBleGVjIGNsaWVudCBpcCBhZGRyIGFkZCAxNzIuMzEuMTEwLjEwLzI0IGRldiBjMVxcbitcXHRpcCBuZXRucyBleGVjIGNsaWVudCBpcCBsaW5rIHNldCBjMSB1cFxcbitcXHRpcCBuZXRucyBleGVjIHNlcnZlciBpcCBhZGRyIGFkZCBcXFwiJHtzcnZfaXB9LzI0XFxcIiBkZXYgczFcXG4rXFx0aXAgbmV0bnMgZXhlYyBzZXJ2ZXIgaXAgbGluayBzZXQgczEgdXBcXG4rXFxuK1xcdCMgUHJvYmU6IGNoZWNrIGlmIGtlcm5lbCBzdXBwb3J0cyBzY3RwIGZsb3cga2V5LlxcbitcXHRvdnNfYWRkX2Zsb3cgXFxcIiR0XFxcIiBzY3RwNCBcXFxcXFxuK1xcdCAgICAnaW5fcG9ydCgxKSxldGgoKSxldGhfdHlwZSgweDA4MDApLGlwdjQocHJvdG89MTMyKSxzY3RwKGRzdD00NDQzKScgXFxcXFxcbitcXHQgICAgJzInIFxcdTAwMjZcXHUwMDNlL2Rldi9udWxsXFxuK1xcdGlmIFsgJD8gLW5lIDAgXTsgdGhlblxcbitcXHRcXHRpbmZvIFxcXCJubyBzdXBwb3J0IGZvciBzY3RwIGtleSAtIHNraXBwaW5nXFxcIlxcbitcXHRcXHRvdnNfZXhpdF9zaWdcXG4rXFx0XFx0cmV0dXJuICRrc2Z0X3NraXBcXG4rXFx0ZmlcXG4rXFx0b3ZzX2RlbF9mbG93cyBcXFwiJHRcXFwiIHNjdHA0XFxuK1xcbitcXHQjIEFSUCBmb3J3YXJkaW5nXFxuK1xcdG92c19hZGRfZmxvdyBcXFwiJHRcXFwiIHNjdHA0IFxcXFxcXG4rXFx0ICAgICdpbl9wb3J0KDEpLGV0aCgpLGV0aF90eXBlKDB4MDgwNiksYXJwKCknIFxcXFxcXG4rXFx0ICAgICcyJyB8fCByZXR1cm4gMVxcbitcXHRvdnNfYWRkX2Zsb3cgXFxcIiR0XFxcIiBzY3RwNCBcXFxcXFxuK1xcdCAgICAnaW5fcG9ydCgyKSxldGgoKSxldGhfdHlwZSgweDA4MDYpLGFycCgpJyBcXFxcXFxuK1xcdCAgICAnMScgfHwgcmV0dXJuIDFcXG4rXFxuK1xcdCMgU0NUUCBwb3J0IG1hdGNoaW5nOiBkc3QgZm9yIHJlcXVlc3QsIHNyYyBmb3IgcmVwbHlcXG4rXFx0b3ZzX2FkZF9mbG93IFxcXCIkdFxcXCIgc2N0cDQgXFxcXFxcbitcXHQgICAgJ2luX3BvcnQoMSksZXRoKCksZXRoX3R5cGUoMHgwODAwKSxpcHY0KHByb3RvPTEzMiksc2N0cChkc3Q9NDQ0MyknIFxcXFxcXG4rXFx0ICAgICcyJyB8fCByZXR1cm4gMVxcbitcXHRvdnNfYWRkX2Zsb3cgXFxcIiR0XFxcIiBzY3RwNCBcXFxcXFxuK1xcdCAgICAnaW5fcG9ydCgyKSxldGgoKSxldGhfdHlwZSgweDA4MDApLGlwdjQocHJvdG89MTMyKSxzY3RwKHNyYz00NDQzKScgXFxcXFxcbitcXHQgICAgJzEnIHx8IHJldHVybiAxXFxuK1xcbitcXHRvdnNfbmV0bnNfc3Bhd25fZGFlbW9uIFxcXCIkdFxcXCIgXFxcInNlcnZlclxcXCIgXFxcXFxcbitcXHQgICAgc29jYXQgLXUgU0NUUDQtTElTVEVOOjQ0NDMgU1RET1VUXFxuK1xcdGxvY2FsIHNlcnZlcl9waWQ9XFxcIiRwaWRcXFwiXFxuK1xcdG92c193YWl0IHNjdHBfZXBzX2hhcyBzZXJ2ZXIgNDQ0MyB8fCByZXR1cm4gMVxcbitcXG4rXFx0aW5mbyBcXFwidmVyaWZ5IFNDVFAgYXNzb2NpYXRpb24gd2l0aCBwb3J0LWtleWVkIGZsb3dzXFxcIlxcbitcXHRvdnNfc2J4IFxcXCIkdFxcXCIgaXAgbmV0bnMgZXhlYyBjbGllbnQgXFxcXFxcbitcXHQgICAgdGltZW91dCAzIHNvY2F0IC11IFNURElOIFxcXCJTQ1RQNC1DT05ORUNUOiR7c3J2X2lwfTo0NDQzXFxcIiBcXHUwMDNjL2Rldi9udWxsIFxcXFxcXG4rXFx0ICAgIHx8IHJldHVybiAxXFxuK1xcbitcXHRvdnNfZGVsX2Zsb3dzIFxcXCIkdFxcXCIgc2N0cDRcXG4rXFxuK1xcdGluZm8gXFxcInZlcmlmeSBjb25uZWN0aW9uIGZhaWxzIHdpdGhvdXQgZmxvd3NcXFwiXFxuK1xcdG92c19hZGRfZmxvdyBcXFwiJHRcXFwiIHNjdHA0IFxcXFxcXG4rXFx0ICAgICdpbl9wb3J0KDEpLGV0aCgpLGV0aF90eXBlKDB4MDgwNiksYXJwKCknIFxcXFxcXG4rXFx0ICAgICcyJyB8fCByZXR1cm4gMVxcbitcXHRvdnNfYWRkX2Zsb3cgXFxcIiR0XFxcIiBzY3RwNCBcXFxcXFxuK1xcdCAgICAnaW5fcG9ydCgyKSxldGgoKSxldGhfdHlwZSgweDA4MDYpLGFycCgpJyBcXFxcXFxuK1xcdCAgICAnMScgfHwgcmV0dXJuIDFcXG4rXFxuK1xcdGtpbGwgLVRFUk0gXFxcIiRzZXJ2ZXJfcGlkXFxcIiAyXFx1MDAzZS9kZXYvbnVsbFxcbitcXHRsb2NhbCBpPTBcXG4rXFx0d2hpbGUga2lsbCAtMCBcXFwiJHNlcnZlcl9waWRcXFwiIDJcXHUwMDNlL2Rldi9udWxsIFxcdTAwMjZcXHUwMDI2IFsgXFxcIiRpXFxcIiAtbHQgNSBdOyBkb1xcbitcXHQgICAgc2xlZXAgMC4yXFxuK1xcdCAgICBpPSQoKGkgKyAxKSlcXG4rXFx0ZG9uZVxcbitcXHRvdnNfbmV0bnNfc3Bhd25fZGFlbW9uIFxcXCIkdFxcXCIgXFxcInNlcnZlclxcXCIgXFxcXFxcbitcXHQgICAgc29jYXQgLXUgU0NUUDQtTElTVEVOOjQ0NDMgU1RET1VUXFxuK1xcdHNlcnZlcl9waWQ9XFxcIiRwaWRcXFwiXFxuK1xcdG92c193YWl0IHNjdHBfZXBzX2hhcyBzZXJ2ZXIgNDQ0MyB8fCByZXR1cm4gMVxcbitcXG4rXFx0b3ZzX3NieCBcXFwiJHRcXFwiIGlwIG5ldG5zIGV4ZWMgY2xpZW50IFxcXFxcXG4rXFx0ICAgIHRpbWVvdXQgMyBzb2NhdCAtdSBTVERJTiBcXFwiU0NUUDQtQ09OTkVDVDoke3Nydl9pcH06NDQ0M1xcXCIgXFx1MDAzYy9kZXYvbnVsbCBcXFxcXFxuK1xcdCAgICBcXHUwMDNlL2Rldi9udWxsIDJcXHUwMDNlXFx1MDAyNjEgXFxcXFxcbitcXHQgICAgXFx1MDAyNlxcdTAwMjYgeyBpbmZvIFxcXCJjb25uZWN0aW9uIHNob3VsZCBmYWlsIHdpdGhvdXQgZmxvd3NcXFwiXFxuK1xcdCAgICAgICAgIHJldHVybiAxOyB9XFxuK1xcbitcXHRpbmZvIFxcXCJyZWluc3RhbGwgZmxvd3MgYW5kIHZlcmlmeSByZWNvdmVyeVxcXCJcXG4rXFx0b3ZzX2FkZF9mbG93IFxcXCIkdFxcXCIgc2N0cDQgXFxcXFxcbitcXHQgICAgJ2luX3BvcnQoMSksZXRoKCksZXRoX3R5cGUoMHgwODAwKSxpcHY0KHByb3RvPTEzMiksc2N0cChkc3Q9NDQ0MyknIFxcXFxcXG4rXFx0ICAgICcyJyB8fCByZXR1cm4gMVxcbitcXHRvdnNfYWRkX2Zsb3cgXFxcIiR0XFxcIiBzY3RwNCBcXFxcXFxuK1xcdCAgICAnaW5fcG9ydCgyKSxldGgoKSxldGhfdHlwZSgweDA4MDApLGlwdjQocHJvdG89MTMyKSxzY3RwKHNyYz00NDQzKScgXFxcXFxcbitcXHQgICAgJzEnIHx8IHJldHVybiAxXFxuK1xcbitcXHRraWxsIC1URVJNIFxcXCIkc2VydmVyX3BpZFxcXCIgMlxcdTAwM2UvZGV2L251bGxcXG4rXFx0aT0wXFxuK1xcdHdoaWxlIGtpbGwgLTAgXFxcIiRzZXJ2ZXJfcGlkXFxcIiAyXFx1MDAzZS9kZXYvbnVsbCBcXHUwMDI2XFx1MDAyNiBbIFxcXCIkaVxcXCIgLWx0IDUgXTsgZG9cXG4rXFx0ICAgIHNsZWVwIDAuMlxcbitcXHQgICAgaT0kKChpICsgMSkpXFxuK1xcdGRvbmVcXG4rXFx0b3ZzX25ldG5zX3NwYXduX2RhZW1vbiBcXFwiJHRcXFwiIFxcXCJzZXJ2ZXJcXFwiIFxcXFxcXG4rXFx0ICAgIHNvY2F0IC11IFNDVFA0LUxJU1RFTjo0NDQzIFNURE9VVFxcbitcXHRzZXJ2ZXJfcGlkPVxcXCIkcGlkXFxcIlxcbitcXHRvdnNfd2FpdCBzY3RwX2Vwc19oYXMgc2VydmVyIDQ0NDMgfHwgcmV0dXJuIDFcXG4rXFxuK1xcdG92c19zYnggXFxcIiR0XFxcIiBpcCBuZXRucyBleGVjIGNsaWVudCBcXFxcXFxuK1xcdCAgICB0aW1lb3V0IDMgc29jYXQgLXUgU1RESU4gXFxcIlNDVFA0LUNPTk5FQ1Q6JHtzcnZfaXB9OjQ0NDNcXFwiIFxcdTAwM2MvZGV2L251bGwgXFxcXFxcbitcXHQgICAgfHwgcmV0dXJuIDFcXG4rXFxuK1xcdHJldHVybiAwXFxuK31cXG4rXFxuICMgcHNhbXBsZSB0ZXN0XFxuICMgLSB1c2UgcHNhbXBsZSB0byBvYnNlcnZlIHBhY2tldHNcXG4gdGVzdF9wc2FtcGxlKCkge1xcbmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9uZXQvb3BlbnZzd2l0Y2gvb3ZzLWRwY3RsLnB5IGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L29wZW52c3dpdGNoL292cy1kcGN0bC5weVxcbmluZGV4IGYzZWRkMTk4MjIzZjEuLmNlNzkwZDkzNjgzMjkgMTAwNjQ0XFxuLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L29wZW52c3dpdGNoL292cy1kcGN0bC5weVxcbisrKyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL25ldC9vcGVudnN3aXRjaC9vdnMtZHBjdGwucHlcXG5AQCAtMTk4NCw2ICsxOTg0LDExIEBAIGNsYXNzIG92c2tleShubGEpOlxcbiAgICAgICAgICAgICAgICAgXFxcInVkcFxcXCIsXFxuICAgICAgICAgICAgICAgICBvdnNrZXkub3ZzX2tleV91ZHAsXFxuICAgICAgICAgICAgICksXFxuKyAgICAgICAgICAgIChcXG4rICAgICAgICAgICAgICAgIFxcXCJPVlNfS0VZX0FUVFJfU0NUUFxcXCIsXFxuKyAgICAgICAgICAgICAgICBcXFwic2N0cFxcXCIsXFxuKyAgICAgICAgICAgICAgICBvdnNrZXkub3ZzX2tleV9zY3RwLFxcbisgICAgICAgICAgICApLFxcbiAgICAgICAgICAgICAoXFxuICAgICAgICAgICAgICAgICBcXFwiT1ZTX0tFWV9BVFRSX0lDTVBcXFwiLFxcbiAgICAgICAgICAgICAgICAgXFxcImljbXBcXFwiLFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wMVQxMzoyODozNC45OTMzOTA3MDhaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJiZXN0LWV4cGVuc2l2ZSIsIkR1cmF0aW9uIjo1NjkwMTgyNjQ0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBvbmx5IG1vZGlmaWVzIHNlbGZ0ZXN0cyAodG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L29wZW52c3dpdGNoLyopIGFuZCBkb2VzIG5vdCBtYWtlIGFueSBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGNvcmUga2VybmVsLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiWW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuXG5Zb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZVxuaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLlxuXG5JTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW5cbnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseVxudXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy5cblxuUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczpcbi0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy5cbi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuXG4tIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy5cbi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLFxuICBldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuXG4tIENvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLFxuICBpb25pYywgYW1kZ3B1KSB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS5cbi0gRHJpdmVyIC5yZW1vdmUsIC5zaHV0ZG93biwgb3IgcGNpX3VucmVnaXN0ZXJfZHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoZS5nLiwgaWdiX3JlbW92ZSlcbiAgdGhhdCBhcmUgZXhlY3V0ZWQgb25seSBkdXJpbmcgUENJIGhvdC11bnBsdWcgb3Igc3lzZnMgZHJpdmVyIHVuYmluZCBvcGVyYXRpb25zLlxuXG5JZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoXG50b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS5cblxuV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086XG4xLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLlxuICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuXG4gICBQcmVmZXIgbm9uLXN0YXRpYywgbm9uLWlubGluZWQgQVBJIGVudHJ5cG9pbnQgZnVuY3Rpb25zIG92ZXIgaW50ZXJuYWwgc3RhdGljIGhlbHBlciBmdW5jdGlvbnNcbiAgICh3aGljaCBhcmUgaW5saW5lZCBieSB0aGUgY29tcGlsZXIgYW5kIGRvIG5vdCBoYXZlIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMpLlxuMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuXG4gICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuXG4gICBBbHNvIGNoZWNrIFwiZGVwZW5kcyBvblwiIGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlnc1xuICAgbmVlZGVkIGZvciBLYnVpbGQgdG8gY29tcGlsZSB0aGUgY29kZSBzdGF0aWNhbGx5IGludG8gdm1saW51eC4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzXG4gICBvdXRwdXQgYXJyYXksIGFuZCBETyBOT1QgYWRkIGEgJ0NPTkZJR18nIHByZWZpeCAoZS5nLiwgcmV0dXJuIFwiTkVUX0lQVjRcIiBpbnN0ZWFkIG9mIFwiQ09ORklHX05FVF9JUFY0XCIpLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgNzg4MTdhMWUzYmJlMzUzZmU1ZjE2NDVjM2I0OTU5N2NkNWFlNWM2YlxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBTYXQgQXVnIDEgMTM6Mjg6MzMgMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9uZXQvb3BlbnZzd2l0Y2gvY29uZmlnIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L29wZW52c3dpdGNoL2NvbmZpZ1xuaW5kZXggYzY1OTc0OWNkMDg2Yy4uNzU0Mjk3YjE2NDRlYyAxMDA2NDRcbi0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL25ldC9vcGVudnN3aXRjaC9jb25maWdcbisrKyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL25ldC9vcGVudnN3aXRjaC9jb25maWdcbkBAIC0xLDYgKzEsNyBAQFxuIENPTkZJR19HRU5FVkU9bVxuIENPTkZJR19JTkVUX0RJQUc9eVxuIENPTkZJR19JUFY2PXlcbitDT05GSUdfSVBfU0NUUD15XG4gQ09ORklHX05FVEZJTFRFUj15XG4gQ09ORklHX05FVF9JUEdSRT1tXG4gQ09ORklHX05FVF9JUEdSRV9ERU1VWD1tXG5kaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L29wZW52c3dpdGNoL29wZW52c3dpdGNoLnNoIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L29wZW52c3dpdGNoL29wZW52c3dpdGNoLnNoXG5pbmRleCA4NTNkYmMxYjAwZDdhLi5iNDQ4MzI0NTI3ZDhiIDEwMDc1NVxuLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L29wZW52c3dpdGNoL29wZW52c3dpdGNoLnNoXG4rKysgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9uZXQvb3BlbnZzd2l0Y2gvb3BlbnZzd2l0Y2guc2hcbkBAIC0zNCw2ICszNCw3IEBAIHRlc3RzPVwiXG4gXHRhY3Rpb25fc2V0XHRcdFx0XHRzZXQ6IFNFVCBhY3Rpb24gcmV3cml0ZXMgZmllbGRzXG4gXHR0cnVuY1x0XHRcdFx0XHR0cnVuYzogb3V0cHV0IHRydW5jYXRpb25cbiBcdGljbXB2Nlx0XHRcdFx0XHRpY21wdjY6IElDTVB2NiBlY2hvIHR5cGUgbWF0Y2hcbitcdHNjdHBfY29ubmVjdF92NFx0XHRcdFx0c2N0cDogU0NUUCBmbG93IGtleSBtYXRjaGluZ1xuIFx0cHNhbXBsZVx0XHRcdFx0XHRwc2FtcGxlOiBTYW1wbGluZyBwYWNrZXRzIHdpdGggcHNhbXBsZVwiXG4gXG4gaW5mbygpIHtcbkBAIC02MTEsNiArNjEyLDEyNiBAQCB0ZXN0X2ljbXB2NigpIHtcbiBcdHJldHVybiAwXG4gfVxuIFxuKyMgQ2hlY2sgZm9yIGFuIFNDVFAgZW5kcG9pbnQgdmlhIC9wcm9jLCB3aGljaCB3b3JrcyB3aXRob3V0IHNjdHBfZGlhZy5cbitzY3RwX2Vwc19oYXMoKSB7XG4rXHRpcCBuZXRucyBleGVjIFwiJDFcIiBhd2sgLXYgcD1cIiQyXCIgJyQ2PT1wJyAvcHJvYy9uZXQvc2N0cC9lcHMgfCBncmVwIC1xIC5cbit9XG4rXG4rIyBzY3RwX2Nvbm5lY3RfdjQgdGVzdFxuKyMgLSBzY3RwKGRzdD00NDQzKSBtYXRjaGVzIGNsaWVudC10by1zZXJ2ZXIgSU5JVFxuKyMgLSBzY3RwKHNyYz00NDQzKSBtYXRjaGVzIHNlcnZlci10by1jbGllbnQgSU5JVC1BQ0tcbisjIC0gcmVtb3ZlIGZsb3dzIGFuZCB2ZXJpZnkgY29ubmVjdGlvbiBmYWlscywgcmVpbnN0YWxsIGFuZCByZWNvdmVyXG4rdGVzdF9zY3RwX2Nvbm5lY3RfdjQoKSB7XG4rXHRsb2NhbCB0PVwidGVzdF9zY3RwX2Nvbm5lY3RfdjRcIlxuK1x0bG9jYWwgc3J2X2lwPTE3Mi4zMS4xMTAuMjBcbitcbitcdG1vZHByb2JlIC1xIHNjdHAgMlx1MDAzZS9kZXYvbnVsbCB8fCByZXR1cm4gXCIka3NmdF9za2lwXCJcbitcdHNvY2F0IC1WIDJcdTAwM2VcdTAwMjYxIHwgZ3JlcCAtcSBcImRlZmluZSBXSVRIX1NDVFBcIiB8fCByZXR1cm4gXCIka3NmdF9za2lwXCJcbitcbitcdHNieF9hZGQgXCIkdFwiIHx8IHJldHVybiAkP1xuK1x0b3ZzX2FkZF9kcCBcIiR0XCIgc2N0cDQgfHwgcmV0dXJuIDFcbitcbitcdGluZm8gXCJjcmVhdGUgbmFtZXNwYWNlc1wiXG4rXHRmb3IgbnMgaW4gY2xpZW50IHNlcnZlcjsgZG9cbitcdFx0b3ZzX2FkZF9uZXRuc19hbmRfdmV0aHMgXCIkdFwiIFwic2N0cDRcIiBcIiRuc1wiIFxcXG4rXHRcdCAgICBcIiR7bnM6MDoxfTBcIiBcIiR7bnM6MDoxfTFcIiB8fCByZXR1cm4gMVxuK1x0ZG9uZVxuK1xuK1x0aXAgbmV0bnMgZXhlYyBjbGllbnQgaXAgYWRkciBhZGQgMTcyLjMxLjExMC4xMC8yNCBkZXYgYzFcbitcdGlwIG5ldG5zIGV4ZWMgY2xpZW50IGlwIGxpbmsgc2V0IGMxIHVwXG4rXHRpcCBuZXRucyBleGVjIHNlcnZlciBpcCBhZGRyIGFkZCBcIiR7c3J2X2lwfS8yNFwiIGRldiBzMVxuK1x0aXAgbmV0bnMgZXhlYyBzZXJ2ZXIgaXAgbGluayBzZXQgczEgdXBcbitcbitcdCMgUHJvYmU6IGNoZWNrIGlmIGtlcm5lbCBzdXBwb3J0cyBzY3RwIGZsb3cga2V5LlxuK1x0b3ZzX2FkZF9mbG93IFwiJHRcIiBzY3RwNCBcXFxuK1x0ICAgICdpbl9wb3J0KDEpLGV0aCgpLGV0aF90eXBlKDB4MDgwMCksaXB2NChwcm90bz0xMzIpLHNjdHAoZHN0PTQ0NDMpJyBcXFxuK1x0ICAgICcyJyBcdTAwMjZcdTAwM2UvZGV2L251bGxcbitcdGlmIFsgJD8gLW5lIDAgXTsgdGhlblxuK1x0XHRpbmZvIFwibm8gc3VwcG9ydCBmb3Igc2N0cCBrZXkgLSBza2lwcGluZ1wiXG4rXHRcdG92c19leGl0X3NpZ1xuK1x0XHRyZXR1cm4gJGtzZnRfc2tpcFxuK1x0ZmlcbitcdG92c19kZWxfZmxvd3MgXCIkdFwiIHNjdHA0XG4rXG4rXHQjIEFSUCBmb3J3YXJkaW5nXG4rXHRvdnNfYWRkX2Zsb3cgXCIkdFwiIHNjdHA0IFxcXG4rXHQgICAgJ2luX3BvcnQoMSksZXRoKCksZXRoX3R5cGUoMHgwODA2KSxhcnAoKScgXFxcbitcdCAgICAnMicgfHwgcmV0dXJuIDFcbitcdG92c19hZGRfZmxvdyBcIiR0XCIgc2N0cDQgXFxcbitcdCAgICAnaW5fcG9ydCgyKSxldGgoKSxldGhfdHlwZSgweDA4MDYpLGFycCgpJyBcXFxuK1x0ICAgICcxJyB8fCByZXR1cm4gMVxuK1xuK1x0IyBTQ1RQIHBvcnQgbWF0Y2hpbmc6IGRzdCBmb3IgcmVxdWVzdCwgc3JjIGZvciByZXBseVxuK1x0b3ZzX2FkZF9mbG93IFwiJHRcIiBzY3RwNCBcXFxuK1x0ICAgICdpbl9wb3J0KDEpLGV0aCgpLGV0aF90eXBlKDB4MDgwMCksaXB2NChwcm90bz0xMzIpLHNjdHAoZHN0PTQ0NDMpJyBcXFxuK1x0ICAgICcyJyB8fCByZXR1cm4gMVxuK1x0b3ZzX2FkZF9mbG93IFwiJHRcIiBzY3RwNCBcXFxuK1x0ICAgICdpbl9wb3J0KDIpLGV0aCgpLGV0aF90eXBlKDB4MDgwMCksaXB2NChwcm90bz0xMzIpLHNjdHAoc3JjPTQ0NDMpJyBcXFxuK1x0ICAgICcxJyB8fCByZXR1cm4gMVxuK1xuK1x0b3ZzX25ldG5zX3NwYXduX2RhZW1vbiBcIiR0XCIgXCJzZXJ2ZXJcIiBcXFxuK1x0ICAgIHNvY2F0IC11IFNDVFA0LUxJU1RFTjo0NDQzIFNURE9VVFxuK1x0bG9jYWwgc2VydmVyX3BpZD1cIiRwaWRcIlxuK1x0b3ZzX3dhaXQgc2N0cF9lcHNfaGFzIHNlcnZlciA0NDQzIHx8IHJldHVybiAxXG4rXG4rXHRpbmZvIFwidmVyaWZ5IFNDVFAgYXNzb2NpYXRpb24gd2l0aCBwb3J0LWtleWVkIGZsb3dzXCJcbitcdG92c19zYnggXCIkdFwiIGlwIG5ldG5zIGV4ZWMgY2xpZW50IFxcXG4rXHQgICAgdGltZW91dCAzIHNvY2F0IC11IFNURElOIFwiU0NUUDQtQ09OTkVDVDoke3Nydl9pcH06NDQ0M1wiIFx1MDAzYy9kZXYvbnVsbCBcXFxuK1x0ICAgIHx8IHJldHVybiAxXG4rXG4rXHRvdnNfZGVsX2Zsb3dzIFwiJHRcIiBzY3RwNFxuK1xuK1x0aW5mbyBcInZlcmlmeSBjb25uZWN0aW9uIGZhaWxzIHdpdGhvdXQgZmxvd3NcIlxuK1x0b3ZzX2FkZF9mbG93IFwiJHRcIiBzY3RwNCBcXFxuK1x0ICAgICdpbl9wb3J0KDEpLGV0aCgpLGV0aF90eXBlKDB4MDgwNiksYXJwKCknIFxcXG4rXHQgICAgJzInIHx8IHJldHVybiAxXG4rXHRvdnNfYWRkX2Zsb3cgXCIkdFwiIHNjdHA0IFxcXG4rXHQgICAgJ2luX3BvcnQoMiksZXRoKCksZXRoX3R5cGUoMHgwODA2KSxhcnAoKScgXFxcbitcdCAgICAnMScgfHwgcmV0dXJuIDFcbitcbitcdGtpbGwgLVRFUk0gXCIkc2VydmVyX3BpZFwiIDJcdTAwM2UvZGV2L251bGxcbitcdGxvY2FsIGk9MFxuK1x0d2hpbGUga2lsbCAtMCBcIiRzZXJ2ZXJfcGlkXCIgMlx1MDAzZS9kZXYvbnVsbCBcdTAwMjZcdTAwMjYgWyBcIiRpXCIgLWx0IDUgXTsgZG9cbitcdCAgICBzbGVlcCAwLjJcbitcdCAgICBpPSQoKGkgKyAxKSlcbitcdGRvbmVcbitcdG92c19uZXRuc19zcGF3bl9kYWVtb24gXCIkdFwiIFwic2VydmVyXCIgXFxcbitcdCAgICBzb2NhdCAtdSBTQ1RQNC1MSVNURU46NDQ0MyBTVERPVVRcbitcdHNlcnZlcl9waWQ9XCIkcGlkXCJcbitcdG92c193YWl0IHNjdHBfZXBzX2hhcyBzZXJ2ZXIgNDQ0MyB8fCByZXR1cm4gMVxuK1xuK1x0b3ZzX3NieCBcIiR0XCIgaXAgbmV0bnMgZXhlYyBjbGllbnQgXFxcbitcdCAgICB0aW1lb3V0IDMgc29jYXQgLXUgU1RESU4gXCJTQ1RQNC1DT05ORUNUOiR7c3J2X2lwfTo0NDQzXCIgXHUwMDNjL2Rldi9udWxsIFxcXG4rXHQgICAgXHUwMDNlL2Rldi9udWxsIDJcdTAwM2VcdTAwMjYxIFxcXG4rXHQgICAgXHUwMDI2XHUwMDI2IHsgaW5mbyBcImNvbm5lY3Rpb24gc2hvdWxkIGZhaWwgd2l0aG91dCBmbG93c1wiXG4rXHQgICAgICAgICByZXR1cm4gMTsgfVxuK1xuK1x0aW5mbyBcInJlaW5zdGFsbCBmbG93cyBhbmQgdmVyaWZ5IHJlY292ZXJ5XCJcbitcdG92c19hZGRfZmxvdyBcIiR0XCIgc2N0cDQgXFxcbitcdCAgICAnaW5fcG9ydCgxKSxldGgoKSxldGhfdHlwZSgweDA4MDApLGlwdjQocHJvdG89MTMyKSxzY3RwKGRzdD00NDQzKScgXFxcbitcdCAgICAnMicgfHwgcmV0dXJuIDFcbitcdG92c19hZGRfZmxvdyBcIiR0XCIgc2N0cDQgXFxcbitcdCAgICAnaW5fcG9ydCgyKSxldGgoKSxldGhfdHlwZSgweDA4MDApLGlwdjQocHJvdG89MTMyKSxzY3RwKHNyYz00NDQzKScgXFxcbitcdCAgICAnMScgfHwgcmV0dXJuIDFcbitcbitcdGtpbGwgLVRFUk0gXCIkc2VydmVyX3BpZFwiIDJcdTAwM2UvZGV2L251bGxcbitcdGk9MFxuK1x0d2hpbGUga2lsbCAtMCBcIiRzZXJ2ZXJfcGlkXCIgMlx1MDAzZS9kZXYvbnVsbCBcdTAwMjZcdTAwMjYgWyBcIiRpXCIgLWx0IDUgXTsgZG9cbitcdCAgICBzbGVlcCAwLjJcbitcdCAgICBpPSQoKGkgKyAxKSlcbitcdGRvbmVcbitcdG92c19uZXRuc19zcGF3bl9kYWVtb24gXCIkdFwiIFwic2VydmVyXCIgXFxcbitcdCAgICBzb2NhdCAtdSBTQ1RQNC1MSVNURU46NDQ0MyBTVERPVVRcbitcdHNlcnZlcl9waWQ9XCIkcGlkXCJcbitcdG92c193YWl0IHNjdHBfZXBzX2hhcyBzZXJ2ZXIgNDQ0MyB8fCByZXR1cm4gMVxuK1xuK1x0b3ZzX3NieCBcIiR0XCIgaXAgbmV0bnMgZXhlYyBjbGllbnQgXFxcbitcdCAgICB0aW1lb3V0IDMgc29jYXQgLXUgU1RESU4gXCJTQ1RQNC1DT05ORUNUOiR7c3J2X2lwfTo0NDQzXCIgXHUwMDNjL2Rldi9udWxsIFxcXG4rXHQgICAgfHwgcmV0dXJuIDFcbitcbitcdHJldHVybiAwXG4rfVxuK1xuICMgcHNhbXBsZSB0ZXN0XG4gIyAtIHVzZSBwc2FtcGxlIHRvIG9ic2VydmUgcGFja2V0c1xuIHRlc3RfcHNhbXBsZSgpIHtcbmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9uZXQvb3BlbnZzd2l0Y2gvb3ZzLWRwY3RsLnB5IGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L29wZW52c3dpdGNoL292cy1kcGN0bC5weVxuaW5kZXggZjNlZGQxOTgyMjNmMS4uY2U3OTBkOTM2ODMyOSAxMDA2NDRcbi0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL25ldC9vcGVudnN3aXRjaC9vdnMtZHBjdGwucHlcbisrKyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL25ldC9vcGVudnN3aXRjaC9vdnMtZHBjdGwucHlcbkBAIC0xOTg0LDYgKzE5ODQsMTEgQEAgY2xhc3Mgb3Zza2V5KG5sYSk6XG4gICAgICAgICAgICAgICAgIFwidWRwXCIsXG4gICAgICAgICAgICAgICAgIG92c2tleS5vdnNfa2V5X3VkcCxcbiAgICAgICAgICAgICApLFxuKyAgICAgICAgICAgIChcbisgICAgICAgICAgICAgICAgXCJPVlNfS0VZX0FUVFJfU0NUUFwiLFxuKyAgICAgICAgICAgICAgICBcInNjdHBcIixcbisgICAgICAgICAgICAgICAgb3Zza2V5Lm92c19rZXlfc2N0cCxcbisgICAgICAgICAgICApLFxuICAgICAgICAgICAgIChcbiAgICAgICAgICAgICAgICAgXCJPVlNfS0VZX0FUVFJfSUNNUFwiLFxuICAgICAgICAgICAgICAgICBcImljbXBcIixcbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAxVDEzOjI4OjM0Ljk5MzM5MjkzN1oiLCJTZXEiOjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjU2OTAxNDM1NTUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqV29ydGhGdXp6aW5nPWZhbHNlOiBBIFF1aWNrIEFzc2Vzc21lbnQqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIHBhdGNoIGFuZCBpdCdzIHRvdWNoaW5nIGEgZmV3IGZpbGVzIHdpdGhpbiB0aGUgT3BlbiB2U3dpdGNoIHNlbGZ0ZXN0cyBkaXJlY3Rvcnk6IGBjb25maWdgLCBgb3BlbnZzd2l0Y2guc2hgLCBhbmQgYG92cy1kcGN0bC5weWAuIEl0IGFwcGVhcnMgdGhleSdyZSBhZGRpbmcgYSBuZXcgdGVzdCwgYHNjdHBfY29ubmVjdF92NGAuIFRoZSBrZXkgdGhpbmcgaGVyZSwgZnJvbSBteSBwZXJzcGVjdGl2ZSwgaXMgdGhhdCBpdCdzICphbGwqIGNvbnRhaW5lZCB3aXRoaW4gdGhlIHRlc3RpbmcgZnJhbWV3b3JrLiBUaGVyZSdzIG5vIG1vZGlmaWNhdGlvbiBvZiBjb3JlIGtlcm5lbCBjb2RlLCBubyBkcml2ZXIgY2hhbmdlcywgbm8gYXJjaGl0ZWN0dXJlLXNwZWNpZmljIHN0dWZmLiBJdCdzIHN0cmljdGx5IHNlbGYtdGVzdHMuXG5cbkxldCBtZSBqdXN0IGJlIGFic29sdXRlbHkgc3VyZS4uLiBIbW0sIHRha2luZyBhbm90aGVyIGxvb2sgYXQgdGhlIGRpZmYuLi4gWWVwLCBqdXN0IHRoZSBzZWxmdGVzdHMuXG5cblRoZXJlZm9yZSwgYmVjYXVzZSB0aGlzIHBhdGNoIGlzIGlzb2xhdGVkIHRvIHRoZSBzZWxmdGVzdHMsIEknbSBjb25maWRlbnQgaW4gY29uY2x1ZGluZyB0aGF0IGl0IGRvZXNuJ3QgaW50cm9kdWNlIGFueSBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHdvdWxkIHdhcnJhbnQgZnV6emluZy4gVGhlIHJpc2sgcHJvZmlsZSBpcyBleHRyZW1lbHkgbG93LiBJIHdpbGwgc2V0IGBXb3J0aEZ1enppbmc9ZmFsc2VgLiBObyBmdXp6aW5nIG5lZWRlZCBoZXJlLlxuXG5cbiIsIklucHV0VG9rZW5zIjo0MzY1LCJPdXRwdXRUb2tlbnMiOjcxLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MzQ0LCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDFUMTM6Mjg6NDAuNjgzNTQwOTIyWiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyODc4MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW10sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBvbmx5IG1vZGlmaWVzIHNlbGZ0ZXN0cyAodG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L29wZW52c3dpdGNoLyopIGFuZCBkb2VzIG5vdCBtYWtlIGFueSBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGNvcmUga2VybmVsLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggb25seSBtb2RpZmllcyBzZWxmdGVzdHMgKHRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL25ldC9vcGVudnN3aXRjaC8qKSBhbmQgZG9lcyBub3QgbWFrZSBhbnkgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBjb3JlIGtlcm5lbCwgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/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-workflowvjwn5[0].run-triage(0) Phase: Succeeded StartedAt: 2026-08-01 13:27:02 +0000 UTC FinishedAt: 2026-08-01 13:28:42 +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+CgkJCTx0ZD4yMDI2LzA4LzAxIDEzOjI4PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG9ubHkgbW9kaWZpZXMgc2VsZnRlc3RzICh0b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9uZXQvb3BlbnZzd2l0Y2gvKikgYW5kIGRvZXMgbm90IG1ha2UgYW55IGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUgY29yZSBrZXJuZWwsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAxIDEzOjI4PC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5yZWFkLXBhdGNoLWRpZmY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtQYXRjaERpZmYmIzM0OzogJiMzNDtjb21taXQgNzg4MTdhMWUzYmJlMzUzZmU1ZjE2NDVjM2I0OTU5N2NkNWFlNWM2YlxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBTYXQgQXVnIDEgMTM6Mjg6MzMgMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L29wZW52c3dpdGNoL2NvbmZpZyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL25ldC9vcGVudnN3aXRjaC9jb25maWdcbmluZGV4IGM2NTk3NDljZDA4NmMuLjc1NDI5N2IxNjQ0ZWMgMTAwNjQ0XG4tLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9uZXQvb3BlbnZzd2l0Y2gvY29uZmlnXG4mIzQzOyYjNDM7JiM0MzsgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9uZXQvb3BlbnZzd2l0Y2gvY29uZmlnXG5AQCAtMSw2ICYjNDM7MSw3IEBAXG4gQ09ORklHX0dFTkVWRT1tXG4gQ09ORklHX0lORVRfRElBRz15XG4gQ09ORklHX0lQVjY9eVxuJiM0MztDT05GSUdfSVBfU0NUUD15XG4gQ09ORklHX05FVEZJTFRFUj15XG4gQ09ORklHX05FVF9JUEdSRT1tXG4gQ09ORklHX05FVF9JUEdSRV9ERU1VWD1tXG5kaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L29wZW52c3dpdGNoL29wZW52c3dpdGNoLnNoIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L29wZW52c3dpdGNoL29wZW52c3dpdGNoLnNoXG5pbmRleCA4NTNkYmMxYjAwZDdhLi5iNDQ4MzI0NTI3ZDhiIDEwMDc1NVxuLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L29wZW52c3dpdGNoL29wZW52c3dpdGNoLnNoXG4mIzQzOyYjNDM7JiM0MzsgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9uZXQvb3BlbnZzd2l0Y2gvb3BlbnZzd2l0Y2guc2hcbkBAIC0zNCw2ICYjNDM7MzQsNyBAQCB0ZXN0cz1cJiMzNDtcbiBcdGFjdGlvbl9zZXRcdFx0XHRcdHNldDogU0VUIGFjdGlvbiByZXdyaXRlcyBmaWVsZHNcbiBcdHRydW5jXHRcdFx0XHRcdHRydW5jOiBvdXRwdXQgdHJ1bmNhdGlvblxuIFx0aWNtcHY2XHRcdFx0XHRcdGljbXB2NjogSUNNUHY2IGVjaG8gdHlwZSBtYXRjaFxuJiM0MztcdHNjdHBfY29ubmVjdF92NFx0XHRcdFx0c2N0cDogU0NUUCBmbG93IGtleSBtYXRjaGluZ1xuIFx0cHNhbXBsZVx0XHRcdFx0XHRwc2FtcGxlOiBTYW1wbGluZyBwYWNrZXRzIHdpdGggcHNhbXBsZVwmIzM0O1xuIFxuIGluZm8oKSB7XG5AQCAtNjExLDYgJiM0Mzs2MTIsMTI2IEBAIHRlc3RfaWNtcHY2KCkge1xuIFx0cmV0dXJuIDBcbiB9XG4gXG4mIzQzOyMgQ2hlY2sgZm9yIGFuIFNDVFAgZW5kcG9pbnQgdmlhIC9wcm9jLCB3aGljaCB3b3JrcyB3aXRob3V0IHNjdHBfZGlhZy5cbiYjNDM7c2N0cF9lcHNfaGFzKCkge1xuJiM0MztcdGlwIG5ldG5zIGV4ZWMgXCYjMzQ7JDFcJiMzNDsgYXdrIC12IHA9XCYjMzQ7JDJcJiMzNDsgJiMzOTskNj09cCYjMzk7IC9wcm9jL25ldC9zY3RwL2VwcyB8IGdyZXAgLXEgLlxuJiM0Mzt9XG4mIzQzO1xuJiM0MzsjIHNjdHBfY29ubmVjdF92NCB0ZXN0XG4mIzQzOyMgLSBzY3RwKGRzdD00NDQzKSBtYXRjaGVzIGNsaWVudC10by1zZXJ2ZXIgSU5JVFxuJiM0MzsjIC0gc2N0cChzcmM9NDQ0MykgbWF0Y2hlcyBzZXJ2ZXItdG8tY2xpZW50IElOSVQtQUNLXG4mIzQzOyMgLSByZW1vdmUgZmxvd3MgYW5kIHZlcmlmeSBjb25uZWN0aW9uIGZhaWxzLCByZWluc3RhbGwgYW5kIHJlY292ZXJcbiYjNDM7dGVzdF9zY3RwX2Nvbm5lY3RfdjQoKSB7XG4mIzQzO1x0bG9jYWwgdD1cJiMzNDt0ZXN0X3NjdHBfY29ubmVjdF92NFwmIzM0O1xuJiM0MztcdGxvY2FsIHNydl9pcD0xNzIuMzEuMTEwLjIwXG4mIzQzO1xuJiM0MztcdG1vZHByb2JlIC1xIHNjdHAgMlx1MDAzZS9kZXYvbnVsbCB8fCByZXR1cm4gXCYjMzQ7JGtzZnRfc2tpcFwmIzM0O1xuJiM0MztcdHNvY2F0IC1WIDJcdTAwM2VcdTAwMjYxIHwgZ3JlcCAtcSBcJiMzNDtkZWZpbmUgV0lUSF9TQ1RQXCYjMzQ7IHx8IHJldHVybiBcJiMzNDska3NmdF9za2lwXCYjMzQ7XG4mIzQzO1xuJiM0MztcdHNieF9hZGQgXCYjMzQ7JHRcJiMzNDsgfHwgcmV0dXJuICQ/XG4mIzQzO1x0b3ZzX2FkZF9kcCBcJiMzNDskdFwmIzM0OyBzY3RwNCB8fCByZXR1cm4gMVxuJiM0MztcbiYjNDM7XHRpbmZvIFwmIzM0O2NyZWF0ZSBuYW1lc3BhY2VzXCYjMzQ7XG4mIzQzO1x0Zm9yIG5zIGluIGNsaWVudCBzZXJ2ZXI7IGRvXG4mIzQzO1x0XHRvdnNfYWRkX25ldG5zX2FuZF92ZXRocyBcJiMzNDskdFwmIzM0OyBcJiMzNDtzY3RwNFwmIzM0OyBcJiMzNDskbnNcJiMzNDsgXFxcbiYjNDM7XHRcdCAgICBcJiMzNDske25zOjA6MX0wXCYjMzQ7IFwmIzM0OyR7bnM6MDoxfTFcJiMzNDsgfHwgcmV0dXJuIDFcbiYjNDM7XHRkb25lXG4mIzQzO1xuJiM0MztcdGlwIG5ldG5zIGV4ZWMgY2xpZW50IGlwIGFkZHIgYWRkIDE3Mi4zMS4xMTAuMTAvMjQgZGV2IGMxXG4mIzQzO1x0aXAgbmV0bnMgZXhlYyBjbGllbnQgaXAgbGluayBzZXQgYzEgdXBcbiYjNDM7XHRpcCBuZXRucyBleGVjIHNlcnZlciBpcCBhZGRyIGFkZCBcJiMzNDske3Nydl9pcH0vMjRcJiMzNDsgZGV2IHMxXG4mIzQzO1x0aXAgbmV0bnMgZXhlYyBzZXJ2ZXIgaXAgbGluayBzZXQgczEgdXBcbiYjNDM7XG4mIzQzO1x0IyBQcm9iZTogY2hlY2sgaWYga2VybmVsIHN1cHBvcnRzIHNjdHAgZmxvdyBrZXkuXG4mIzQzO1x0b3ZzX2FkZF9mbG93IFwmIzM0OyR0XCYjMzQ7IHNjdHA0IFxcXG4mIzQzO1x0ICAgICYjMzk7aW5fcG9ydCgxKSxldGgoKSxldGhfdHlwZSgweDA4MDApLGlwdjQocHJvdG89MTMyKSxzY3RwKGRzdD00NDQzKSYjMzk7IFxcXG4mIzQzO1x0ICAgICYjMzk7MiYjMzk7IFx1MDAyNlx1MDAzZS9kZXYvbnVsbFxuJiM0MztcdGlmIFsgJD8gLW5lIDAgXTsgdGhlblxuJiM0MztcdFx0aW5mbyBcJiMzNDtubyBzdXBwb3J0IGZvciBzY3RwIGtleSAtIHNraXBwaW5nXCYjMzQ7XG4mIzQzO1x0XHRvdnNfZXhpdF9zaWdcbiYjNDM7XHRcdHJldHVybiAka3NmdF9za2lwXG4mIzQzO1x0ZmlcbiYjNDM7XHRvdnNfZGVsX2Zsb3dzIFwmIzM0OyR0XCYjMzQ7IHNjdHA0XG4mIzQzO1xuJiM0MztcdCMgQVJQIGZvcndhcmRpbmdcbiYjNDM7XHRvdnNfYWRkX2Zsb3cgXCYjMzQ7JHRcJiMzNDsgc2N0cDQgXFxcbiYjNDM7XHQgICAgJiMzOTtpbl9wb3J0KDEpLGV0aCgpLGV0aF90eXBlKDB4MDgwNiksYXJwKCkmIzM5OyBcXFxuJiM0MztcdCAgICAmIzM5OzImIzM5OyB8fCByZXR1cm4gMVxuJiM0MztcdG92c19hZGRfZmxvdyBcJiMzNDskdFwmIzM0OyBzY3RwNCBcXFxuJiM0MztcdCAgICAmIzM5O2luX3BvcnQoMiksZXRoKCksZXRoX3R5cGUoMHgwODA2KSxhcnAoKSYjMzk7IFxcXG4mIzQzO1x0ICAgICYjMzk7MSYjMzk7IHx8IHJldHVybiAxXG4mIzQzO1xuJiM0MztcdCMgU0NUUCBwb3J0IG1hdGNoaW5nOiBkc3QgZm9yIHJlcXVlc3QsIHNyYyBmb3IgcmVwbHlcbiYjNDM7XHRvdnNfYWRkX2Zsb3cgXCYjMzQ7JHRcJiMzNDsgc2N0cDQgXFxcbiYjNDM7XHQgICAgJiMzOTtpbl9wb3J0KDEpLGV0aCgpLGV0aF90eXBlKDB4MDgwMCksaXB2NChwcm90bz0xMzIpLHNjdHAoZHN0PTQ0NDMpJiMzOTsgXFxcbiYjNDM7XHQgICAgJiMzOTsyJiMzOTsgfHwgcmV0dXJuIDFcbiYjNDM7XHRvdnNfYWRkX2Zsb3cgXCYjMzQ7JHRcJiMzNDsgc2N0cDQgXFxcbiYjNDM7XHQgICAgJiMzOTtpbl9wb3J0KDIpLGV0aCgpLGV0aF90eXBlKDB4MDgwMCksaXB2NChwcm90bz0xMzIpLHNjdHAoc3JjPTQ0NDMpJiMzOTsgXFxcbiYjNDM7XHQgICAgJiMzOTsxJiMzOTsgfHwgcmV0dXJuIDFcbiYjNDM7XG4mIzQzO1x0b3ZzX25ldG5zX3NwYXduX2RhZW1vbiBcJiMzNDskdFwmIzM0OyBcJiMzNDtzZXJ2ZXJcJiMzNDsgXFxcbiYjNDM7XHQgICAgc29jYXQgLXUgU0NUUDQtTElTVEVOOjQ0NDMgU1RET1VUXG4mIzQzO1x0bG9jYWwgc2VydmVyX3BpZD1cJiMzNDskcGlkXCYjMzQ7XG4mIzQzO1x0b3ZzX3dhaXQgc2N0cF9lcHNfaGFzIHNlcnZlciA0NDQzIHx8IHJldHVybiAxXG4mIzQzO1xuJiM0MztcdGluZm8gXCYjMzQ7dmVyaWZ5IFNDVFAgYXNzb2NpYXRpb24gd2l0aCBwb3J0LWtleWVkIGZsb3dzXCYjMzQ7XG4mIzQzO1x0b3ZzX3NieCBcJiMzNDskdFwmIzM0OyBpcCBuZXRucyBleGVjIGNsaWVudCBcXFxuJiM0MztcdCAgICB0aW1lb3V0IDMgc29jYXQgLXUgU1RESU4gXCYjMzQ7U0NUUDQtQ09OTkVDVDoke3Nydl9pcH06NDQ0M1wmIzM0OyBcdTAwM2MvZGV2L251bGwgXFxcbiYjNDM7XHQgICAgfHwgcmV0dXJuIDFcbiYjNDM7XG4mIzQzO1x0b3ZzX2RlbF9mbG93cyBcJiMzNDskdFwmIzM0OyBzY3RwNFxuJiM0MztcbiYjNDM7XHRpbmZvIFwmIzM0O3ZlcmlmeSBjb25uZWN0aW9uIGZhaWxzIHdpdGhvdXQgZmxvd3NcJiMzNDtcbiYjNDM7XHRvdnNfYWRkX2Zsb3cgXCYjMzQ7JHRcJiMzNDsgc2N0cDQgXFxcbiYjNDM7XHQgICAgJiMzOTtpbl9wb3J0KDEpLGV0aCgpLGV0aF90eXBlKDB4MDgwNiksYXJwKCkmIzM5OyBcXFxuJiM0MztcdCAgICAmIzM5OzImIzM5OyB8fCByZXR1cm4gMVxuJiM0MztcdG92c19hZGRfZmxvdyBcJiMzNDskdFwmIzM0OyBzY3RwNCBcXFxuJiM0MztcdCAgICAmIzM5O2luX3BvcnQoMiksZXRoKCksZXRoX3R5cGUoMHgwODA2KSxhcnAoKSYjMzk7IFxcXG4mIzQzO1x0ICAgICYjMzk7MSYjMzk7IHx8IHJldHVybiAxXG4mIzQzO1xuJiM0MztcdGtpbGwgLVRFUk0gXCYjMzQ7JHNlcnZlcl9waWRcJiMzNDsgMlx1MDAzZS9kZXYvbnVsbFxuJiM0MztcdGxvY2FsIGk9MFxuJiM0MztcdHdoaWxlIGtpbGwgLTAgXCYjMzQ7JHNlcnZlcl9waWRcJiMzNDsgMlx1MDAzZS9kZXYvbnVsbCBcdTAwMjZcdTAwMjYgWyBcJiMzNDskaVwmIzM0OyAtbHQgNSBdOyBkb1xuJiM0MztcdCAgICBzbGVlcCAwLjJcbiYjNDM7XHQgICAgaT0kKChpICYjNDM7IDEpKVxuJiM0MztcdGRvbmVcbiYjNDM7XHRvdnNfbmV0bnNfc3Bhd25fZGFlbW9uIFwmIzM0OyR0XCYjMzQ7IFwmIzM0O3NlcnZlclwmIzM0OyBcXFxuJiM0MztcdCAgICBzb2NhdCAtdSBTQ1RQNC1MSVNURU46NDQ0MyBTVERPVVRcbiYjNDM7XHRzZXJ2ZXJfcGlkPVwmIzM0OyRwaWRcJiMzNDtcbiYjNDM7XHRvdnNfd2FpdCBzY3RwX2Vwc19oYXMgc2VydmVyIDQ0NDMgfHwgcmV0dXJuIDFcbiYjNDM7XG4mIzQzO1x0b3ZzX3NieCBcJiMzNDskdFwmIzM0OyBpcCBuZXRucyBleGVjIGNsaWVudCBcXFxuJiM0MztcdCAgICB0aW1lb3V0IDMgc29jYXQgLXUgU1RESU4gXCYjMzQ7U0NUUDQtQ09OTkVDVDoke3Nydl9pcH06NDQ0M1wmIzM0OyBcdTAwM2MvZGV2L251bGwgXFxcbiYjNDM7XHQgICAgXHUwMDNlL2Rldi9udWxsIDJcdTAwM2VcdTAwMjYxIFxcXG4mIzQzO1x0ICAgIFx1MDAyNlx1MDAyNiB7IGluZm8gXCYjMzQ7Y29ubmVjdGlvbiBzaG91bGQgZmFpbCB3aXRob3V0IGZsb3dzXCYjMzQ7XG4mIzQzO1x0ICAgICAgICAgcmV0dXJuIDE7IH1cbiYjNDM7XG4mIzQzO1x0aW5mbyBcJiMzNDtyZWluc3RhbGwgZmxvd3MgYW5kIHZlcmlmeSByZWNvdmVyeVwmIzM0O1xuJiM0MztcdG92c19hZGRfZmxvdyBcJiMzNDskdFwmIzM0OyBzY3RwNCBcXFxuJiM0MztcdCAgICAmIzM5O2luX3BvcnQoMSksZXRoKCksZXRoX3R5cGUoMHgwODAwKSxpcHY0KHByb3RvPTEzMiksc2N0cChkc3Q9NDQ0MykmIzM5OyBcXFxuJiM0MztcdCAgICAmIzM5OzImIzM5OyB8fCByZXR1cm4gMVxuJiM0MztcdG92c19hZGRfZmxvdyBcJiMzNDskdFwmIzM0OyBzY3RwNCBcXFxuJiM0MztcdCAgICAmIzM5O2luX3BvcnQoMiksZXRoKCksZXRoX3R5cGUoMHgwODAwKSxpcHY0KHByb3RvPTEzMiksc2N0cChzcmM9NDQ0MykmIzM5OyBcXFxuJiM0MztcdCAgICAmIzM5OzEmIzM5OyB8fCByZXR1cm4gMVxuJiM0MztcbiYjNDM7XHRraWxsIC1URVJNIFwmIzM0OyRzZXJ2ZXJfcGlkXCYjMzQ7IDJcdTAwM2UvZGV2L251bGxcbiYjNDM7XHRpPTBcbiYjNDM7XHR3aGlsZSBraWxsIC0wIFwmIzM0OyRzZXJ2ZXJfcGlkXCYjMzQ7IDJcdTAwM2UvZGV2L251bGwgXHUwMDI2XHUwMDI2IFsgXCYjMzQ7JGlcJiMzNDsgLWx0IDUgXTsgZG9cbiYjNDM7XHQgICAgc2xlZXAgMC4yXG4mIzQzO1x0ICAgIGk9JCgoaSAmIzQzOyAxKSlcbiYjNDM7XHRkb25lXG4mIzQzO1x0b3ZzX25ldG5zX3NwYXduX2RhZW1vbiBcJiMzNDskdFwmIzM0OyBcJiMzNDtzZXJ2ZXJcJiMzNDsgXFxcbiYjNDM7XHQgICAgc29jYXQgLXUgU0NUUDQtTElTVEVOOjQ0NDMgU1RET1VUXG4mIzQzO1x0c2VydmVyX3BpZD1cJiMzNDskcGlkXCYjMzQ7XG4mIzQzO1x0b3ZzX3dhaXQgc2N0cF9lcHNfaGFzIHNlcnZlciA0NDQzIHx8IHJldHVybiAxXG4mIzQzO1xuJiM0MztcdG92c19zYnggXCYjMzQ7JHRcJiMzNDsgaXAgbmV0bnMgZXhlYyBjbGllbnQgXFxcbiYjNDM7XHQgICAgdGltZW91dCAzIHNvY2F0IC11IFNURElOIFwmIzM0O1NDVFA0LUNPTk5FQ1Q6JHtzcnZfaXB9OjQ0NDNcJiMzNDsgXHUwMDNjL2Rldi9udWxsIFxcXG4mIzQzO1x0ICAgIHx8IHJldHVybiAxXG4mIzQzO1xuJiM0MztcdHJldHVybiAwXG4mIzQzO31cbiYjNDM7XG4gIyBwc2FtcGxlIHRlc3RcbiAjIC0gdXNlIHBzYW1wbGUgdG8gb2JzZXJ2ZSBwYWNrZXRzXG4gdGVzdF9wc2FtcGxlKCkge1xuZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL25ldC9vcGVudnN3aXRjaC9vdnMtZHBjdGwucHkgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9uZXQvb3BlbnZzd2l0Y2gvb3ZzLWRwY3RsLnB5XG5pbmRleCBmM2VkZDE5ODIyM2YxLi5jZTc5MGQ5MzY4MzI5IDEwMDY0NFxuLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L29wZW52c3dpdGNoL292cy1kcGN0bC5weVxuJiM0MzsmIzQzOyYjNDM7IGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L29wZW52c3dpdGNoL292cy1kcGN0bC5weVxuQEAgLTE5ODQsNiAmIzQzOzE5ODQsMTEgQEAgY2xhc3Mgb3Zza2V5KG5sYSk6XG4gICAgICAgICAgICAgICAgIFwmIzM0O3VkcFwmIzM0OyxcbiAgICAgICAgICAgICAgICAgb3Zza2V5Lm92c19rZXlfdWRwLFxuICAgICAgICAgICAgICksXG4mIzQzOyAgICAgICAgICAgIChcbiYjNDM7ICAgICAgICAgICAgICAgIFwmIzM0O09WU19LRVlfQVRUUl9TQ1RQXCYjMzQ7LFxuJiM0MzsgICAgICAgICAgICAgICAgXCYjMzQ7c2N0cFwmIzM0OyxcbiYjNDM7ICAgICAgICAgICAgICAgIG92c2tleS5vdnNfa2V5X3NjdHAsXG4mIzQzOyAgICAgICAgICAgICksXG4gICAgICAgICAgICAgKFxuICAgICAgICAgICAgICAgICBcJiMzNDtPVlNfS0VZX0FUVFJfSUNNUFwmIzM0OyxcbiAgICAgICAgICAgICAgICAgXCYjMzQ7aWNtcFwmIzM0OyxcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yLzE8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMSAxMzoyODwvdGQ+CgkJCTx0ZD5hZ2VudDwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5iZXN0LWV4cGVuc2l2ZTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IG51bGwsCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggb25seSBtb2RpZmllcyBzZWxmdGVzdHMgKHRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL25ldC9vcGVudnN3aXRjaC8qKSBhbmQgZG9lcyBub3QgbWFrZSBhbnkgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBjb3JlIGtlcm5lbCwgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZQppZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5CnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuCgpSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOgotIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuCi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuCi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LgotIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwKICBldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuCi0gQ29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsCiAgaW9uaWMsIGFtZGdwdSkgdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuCi0gRHJpdmVyIC5yZW1vdmUsIC5zaHV0ZG93biwgb3IgcGNpX3VucmVnaXN0ZXJfZHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoZS5nLiwgaWdiX3JlbW92ZSkKICB0aGF0IGFyZSBleGVjdXRlZCBvbmx5IGR1cmluZyBQQ0kgaG90LXVucGx1ZyBvciBzeXNmcyBkcml2ZXIgdW5iaW5kIG9wZXJhdGlvbnMuCgpJZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoCnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLgoKV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086CjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuCiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLgogICBQcmVmZXIgbm9uLXN0YXRpYywgbm9uLWlubGluZWQgQVBJIGVudHJ5cG9pbnQgZnVuY3Rpb25zIG92ZXIgaW50ZXJuYWwgc3RhdGljIGhlbHBlciBmdW5jdGlvbnMKICAgKHdoaWNoIGFyZSBpbmxpbmVkIGJ5IHRoZSBjb21waWxlciBhbmQgZG8gbm90IGhhdmUgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcykuCjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLgogICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuCiAgIEFsc28gY2hlY2sgJiMzNDtkZXBlbmRzIG9uJiMzNDsgbGluZXMgaW4gS2NvbmZpZyB0byBpbmNsdWRlIGFueSBub24tc3RhbmRhcmQgcGFyZW50IHN1YnN5c3RlbSBjb25maWdzCiAgIG5lZWRlZCBmb3IgS2J1aWxkIHRvIGNvbXBpbGUgdGhlIGNvZGUgc3RhdGljYWxseSBpbnRvIHZtbGludXguIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncwogICBvdXRwdXQgYXJyYXksIGFuZCBETyBOT1QgYWRkIGEgJiMzOTtDT05GSUdfJiMzOTsgcHJlZml4IChlLmcuLCByZXR1cm4gJiMzNDtORVRfSVBWNCYjMzQ7IGluc3RlYWQgb2YgJiMzNDtDT05GSUdfTkVUX0lQVjQmIzM0OykuClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Rm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCA3ODgxN2ExZTNiYmUzNTNmZTVmMTY0NWMzYjQ5NTk3Y2Q1YWU1YzZiCkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIFNhdCBBdWcgMSAxMzoyODozMyAyMDI2ICYjNDM7MDAwMAoKICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldwoKZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL25ldC9vcGVudnN3aXRjaC9jb25maWcgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9uZXQvb3BlbnZzd2l0Y2gvY29uZmlnCmluZGV4IGM2NTk3NDljZDA4NmMuLjc1NDI5N2IxNjQ0ZWMgMTAwNjQ0Ci0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL25ldC9vcGVudnN3aXRjaC9jb25maWcKJiM0MzsmIzQzOyYjNDM7IGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L29wZW52c3dpdGNoL2NvbmZpZwpAQCAtMSw2ICYjNDM7MSw3IEBACiBDT05GSUdfR0VORVZFPW0KIENPTkZJR19JTkVUX0RJQUc9eQogQ09ORklHX0lQVjY9eQomIzQzO0NPTkZJR19JUF9TQ1RQPXkKIENPTkZJR19ORVRGSUxURVI9eQogQ09ORklHX05FVF9JUEdSRT1tCiBDT05GSUdfTkVUX0lQR1JFX0RFTVVYPW0KZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL25ldC9vcGVudnN3aXRjaC9vcGVudnN3aXRjaC5zaCBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL25ldC9vcGVudnN3aXRjaC9vcGVudnN3aXRjaC5zaAppbmRleCA4NTNkYmMxYjAwZDdhLi5iNDQ4MzI0NTI3ZDhiIDEwMDc1NQotLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9uZXQvb3BlbnZzd2l0Y2gvb3BlbnZzd2l0Y2guc2gKJiM0MzsmIzQzOyYjNDM7IGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L29wZW52c3dpdGNoL29wZW52c3dpdGNoLnNoCkBAIC0zNCw2ICYjNDM7MzQsNyBAQCB0ZXN0cz0mIzM0OwogCWFjdGlvbl9zZXQJCQkJc2V0OiBTRVQgYWN0aW9uIHJld3JpdGVzIGZpZWxkcwogCXRydW5jCQkJCQl0cnVuYzogb3V0cHV0IHRydW5jYXRpb24KIAlpY21wdjYJCQkJCWljbXB2NjogSUNNUHY2IGVjaG8gdHlwZSBtYXRjaAomIzQzOwlzY3RwX2Nvbm5lY3RfdjQJCQkJc2N0cDogU0NUUCBmbG93IGtleSBtYXRjaGluZwogCXBzYW1wbGUJCQkJCXBzYW1wbGU6IFNhbXBsaW5nIHBhY2tldHMgd2l0aCBwc2FtcGxlJiMzNDsKIAogaW5mbygpIHsKQEAgLTYxMSw2ICYjNDM7NjEyLDEyNiBAQCB0ZXN0X2ljbXB2NigpIHsKIAlyZXR1cm4gMAogfQogCiYjNDM7IyBDaGVjayBmb3IgYW4gU0NUUCBlbmRwb2ludCB2aWEgL3Byb2MsIHdoaWNoIHdvcmtzIHdpdGhvdXQgc2N0cF9kaWFnLgomIzQzO3NjdHBfZXBzX2hhcygpIHsKJiM0MzsJaXAgbmV0bnMgZXhlYyAmIzM0OyQxJiMzNDsgYXdrIC12IHA9JiMzNDskMiYjMzQ7ICYjMzk7JDY9PXAmIzM5OyAvcHJvYy9uZXQvc2N0cC9lcHMgfCBncmVwIC1xIC4KJiM0Mzt9CiYjNDM7CiYjNDM7IyBzY3RwX2Nvbm5lY3RfdjQgdGVzdAomIzQzOyMgLSBzY3RwKGRzdD00NDQzKSBtYXRjaGVzIGNsaWVudC10by1zZXJ2ZXIgSU5JVAomIzQzOyMgLSBzY3RwKHNyYz00NDQzKSBtYXRjaGVzIHNlcnZlci10by1jbGllbnQgSU5JVC1BQ0sKJiM0MzsjIC0gcmVtb3ZlIGZsb3dzIGFuZCB2ZXJpZnkgY29ubmVjdGlvbiBmYWlscywgcmVpbnN0YWxsIGFuZCByZWNvdmVyCiYjNDM7dGVzdF9zY3RwX2Nvbm5lY3RfdjQoKSB7CiYjNDM7CWxvY2FsIHQ9JiMzNDt0ZXN0X3NjdHBfY29ubmVjdF92NCYjMzQ7CiYjNDM7CWxvY2FsIHNydl9pcD0xNzIuMzEuMTEwLjIwCiYjNDM7CiYjNDM7CW1vZHByb2JlIC1xIHNjdHAgMiZndDsvZGV2L251bGwgfHwgcmV0dXJuICYjMzQ7JGtzZnRfc2tpcCYjMzQ7CiYjNDM7CXNvY2F0IC1WIDImZ3Q7JmFtcDsxIHwgZ3JlcCAtcSAmIzM0O2RlZmluZSBXSVRIX1NDVFAmIzM0OyB8fCByZXR1cm4gJiMzNDska3NmdF9za2lwJiMzNDsKJiM0MzsKJiM0MzsJc2J4X2FkZCAmIzM0OyR0JiMzNDsgfHwgcmV0dXJuICQ/CiYjNDM7CW92c19hZGRfZHAgJiMzNDskdCYjMzQ7IHNjdHA0IHx8IHJldHVybiAxCiYjNDM7CiYjNDM7CWluZm8gJiMzNDtjcmVhdGUgbmFtZXNwYWNlcyYjMzQ7CiYjNDM7CWZvciBucyBpbiBjbGllbnQgc2VydmVyOyBkbwomIzQzOwkJb3ZzX2FkZF9uZXRuc19hbmRfdmV0aHMgJiMzNDskdCYjMzQ7ICYjMzQ7c2N0cDQmIzM0OyAmIzM0OyRucyYjMzQ7IFwKJiM0MzsJCSAgICAmIzM0OyR7bnM6MDoxfTAmIzM0OyAmIzM0OyR7bnM6MDoxfTEmIzM0OyB8fCByZXR1cm4gMQomIzQzOwlkb25lCiYjNDM7CiYjNDM7CWlwIG5ldG5zIGV4ZWMgY2xpZW50IGlwIGFkZHIgYWRkIDE3Mi4zMS4xMTAuMTAvMjQgZGV2IGMxCiYjNDM7CWlwIG5ldG5zIGV4ZWMgY2xpZW50IGlwIGxpbmsgc2V0IGMxIHVwCiYjNDM7CWlwIG5ldG5zIGV4ZWMgc2VydmVyIGlwIGFkZHIgYWRkICYjMzQ7JHtzcnZfaXB9LzI0JiMzNDsgZGV2IHMxCiYjNDM7CWlwIG5ldG5zIGV4ZWMgc2VydmVyIGlwIGxpbmsgc2V0IHMxIHVwCiYjNDM7CiYjNDM7CSMgUHJvYmU6IGNoZWNrIGlmIGtlcm5lbCBzdXBwb3J0cyBzY3RwIGZsb3cga2V5LgomIzQzOwlvdnNfYWRkX2Zsb3cgJiMzNDskdCYjMzQ7IHNjdHA0IFwKJiM0MzsJICAgICYjMzk7aW5fcG9ydCgxKSxldGgoKSxldGhfdHlwZSgweDA4MDApLGlwdjQocHJvdG89MTMyKSxzY3RwKGRzdD00NDQzKSYjMzk7IFwKJiM0MzsJICAgICYjMzk7MiYjMzk7ICZhbXA7Jmd0Oy9kZXYvbnVsbAomIzQzOwlpZiBbICQ/IC1uZSAwIF07IHRoZW4KJiM0MzsJCWluZm8gJiMzNDtubyBzdXBwb3J0IGZvciBzY3RwIGtleSAtIHNraXBwaW5nJiMzNDsKJiM0MzsJCW92c19leGl0X3NpZwomIzQzOwkJcmV0dXJuICRrc2Z0X3NraXAKJiM0MzsJZmkKJiM0MzsJb3ZzX2RlbF9mbG93cyAmIzM0OyR0JiMzNDsgc2N0cDQKJiM0MzsKJiM0MzsJIyBBUlAgZm9yd2FyZGluZwomIzQzOwlvdnNfYWRkX2Zsb3cgJiMzNDskdCYjMzQ7IHNjdHA0IFwKJiM0MzsJICAgICYjMzk7aW5fcG9ydCgxKSxldGgoKSxldGhfdHlwZSgweDA4MDYpLGFycCgpJiMzOTsgXAomIzQzOwkgICAgJiMzOTsyJiMzOTsgfHwgcmV0dXJuIDEKJiM0MzsJb3ZzX2FkZF9mbG93ICYjMzQ7JHQmIzM0OyBzY3RwNCBcCiYjNDM7CSAgICAmIzM5O2luX3BvcnQoMiksZXRoKCksZXRoX3R5cGUoMHgwODA2KSxhcnAoKSYjMzk7IFwKJiM0MzsJICAgICYjMzk7MSYjMzk7IHx8IHJldHVybiAxCiYjNDM7CiYjNDM7CSMgU0NUUCBwb3J0IG1hdGNoaW5nOiBkc3QgZm9yIHJlcXVlc3QsIHNyYyBmb3IgcmVwbHkKJiM0MzsJb3ZzX2FkZF9mbG93ICYjMzQ7JHQmIzM0OyBzY3RwNCBcCiYjNDM7CSAgICAmIzM5O2luX3BvcnQoMSksZXRoKCksZXRoX3R5cGUoMHgwODAwKSxpcHY0KHByb3RvPTEzMiksc2N0cChkc3Q9NDQ0MykmIzM5OyBcCiYjNDM7CSAgICAmIzM5OzImIzM5OyB8fCByZXR1cm4gMQomIzQzOwlvdnNfYWRkX2Zsb3cgJiMzNDskdCYjMzQ7IHNjdHA0IFwKJiM0MzsJICAgICYjMzk7aW5fcG9ydCgyKSxldGgoKSxldGhfdHlwZSgweDA4MDApLGlwdjQocHJvdG89MTMyKSxzY3RwKHNyYz00NDQzKSYjMzk7IFwKJiM0MzsJICAgICYjMzk7MSYjMzk7IHx8IHJldHVybiAxCiYjNDM7CiYjNDM7CW92c19uZXRuc19zcGF3bl9kYWVtb24gJiMzNDskdCYjMzQ7ICYjMzQ7c2VydmVyJiMzNDsgXAomIzQzOwkgICAgc29jYXQgLXUgU0NUUDQtTElTVEVOOjQ0NDMgU1RET1VUCiYjNDM7CWxvY2FsIHNlcnZlcl9waWQ9JiMzNDskcGlkJiMzNDsKJiM0MzsJb3ZzX3dhaXQgc2N0cF9lcHNfaGFzIHNlcnZlciA0NDQzIHx8IHJldHVybiAxCiYjNDM7CiYjNDM7CWluZm8gJiMzNDt2ZXJpZnkgU0NUUCBhc3NvY2lhdGlvbiB3aXRoIHBvcnQta2V5ZWQgZmxvd3MmIzM0OwomIzQzOwlvdnNfc2J4ICYjMzQ7JHQmIzM0OyBpcCBuZXRucyBleGVjIGNsaWVudCBcCiYjNDM7CSAgICB0aW1lb3V0IDMgc29jYXQgLXUgU1RESU4gJiMzNDtTQ1RQNC1DT05ORUNUOiR7c3J2X2lwfTo0NDQzJiMzNDsgJmx0Oy9kZXYvbnVsbCBcCiYjNDM7CSAgICB8fCByZXR1cm4gMQomIzQzOwomIzQzOwlvdnNfZGVsX2Zsb3dzICYjMzQ7JHQmIzM0OyBzY3RwNAomIzQzOwomIzQzOwlpbmZvICYjMzQ7dmVyaWZ5IGNvbm5lY3Rpb24gZmFpbHMgd2l0aG91dCBmbG93cyYjMzQ7CiYjNDM7CW92c19hZGRfZmxvdyAmIzM0OyR0JiMzNDsgc2N0cDQgXAomIzQzOwkgICAgJiMzOTtpbl9wb3J0KDEpLGV0aCgpLGV0aF90eXBlKDB4MDgwNiksYXJwKCkmIzM5OyBcCiYjNDM7CSAgICAmIzM5OzImIzM5OyB8fCByZXR1cm4gMQomIzQzOwlvdnNfYWRkX2Zsb3cgJiMzNDskdCYjMzQ7IHNjdHA0IFwKJiM0MzsJICAgICYjMzk7aW5fcG9ydCgyKSxldGgoKSxldGhfdHlwZSgweDA4MDYpLGFycCgpJiMzOTsgXAomIzQzOwkgICAgJiMzOTsxJiMzOTsgfHwgcmV0dXJuIDEKJiM0MzsKJiM0MzsJa2lsbCAtVEVSTSAmIzM0OyRzZXJ2ZXJfcGlkJiMzNDsgMiZndDsvZGV2L251bGwKJiM0MzsJbG9jYWwgaT0wCiYjNDM7CXdoaWxlIGtpbGwgLTAgJiMzNDskc2VydmVyX3BpZCYjMzQ7IDImZ3Q7L2Rldi9udWxsICZhbXA7JmFtcDsgWyAmIzM0OyRpJiMzNDsgLWx0IDUgXTsgZG8KJiM0MzsJICAgIHNsZWVwIDAuMgomIzQzOwkgICAgaT0kKChpICYjNDM7IDEpKQomIzQzOwlkb25lCiYjNDM7CW92c19uZXRuc19zcGF3bl9kYWVtb24gJiMzNDskdCYjMzQ7ICYjMzQ7c2VydmVyJiMzNDsgXAomIzQzOwkgICAgc29jYXQgLXUgU0NUUDQtTElTVEVOOjQ0NDMgU1RET1VUCiYjNDM7CXNlcnZlcl9waWQ9JiMzNDskcGlkJiMzNDsKJiM0MzsJb3ZzX3dhaXQgc2N0cF9lcHNfaGFzIHNlcnZlciA0NDQzIHx8IHJldHVybiAxCiYjNDM7CiYjNDM7CW92c19zYnggJiMzNDskdCYjMzQ7IGlwIG5ldG5zIGV4ZWMgY2xpZW50IFwKJiM0MzsJICAgIHRpbWVvdXQgMyBzb2NhdCAtdSBTVERJTiAmIzM0O1NDVFA0LUNPTk5FQ1Q6JHtzcnZfaXB9OjQ0NDMmIzM0OyAmbHQ7L2Rldi9udWxsIFwKJiM0MzsJICAgICZndDsvZGV2L251bGwgMiZndDsmYW1wOzEgXAomIzQzOwkgICAgJmFtcDsmYW1wOyB7IGluZm8gJiMzNDtjb25uZWN0aW9uIHNob3VsZCBmYWlsIHdpdGhvdXQgZmxvd3MmIzM0OwomIzQzOwkgICAgICAgICByZXR1cm4gMTsgfQomIzQzOwomIzQzOwlpbmZvICYjMzQ7cmVpbnN0YWxsIGZsb3dzIGFuZCB2ZXJpZnkgcmVjb3ZlcnkmIzM0OwomIzQzOwlvdnNfYWRkX2Zsb3cgJiMzNDskdCYjMzQ7IHNjdHA0IFwKJiM0MzsJICAgICYjMzk7aW5fcG9ydCgxKSxldGgoKSxldGhfdHlwZSgweDA4MDApLGlwdjQocHJvdG89MTMyKSxzY3RwKGRzdD00NDQzKSYjMzk7IFwKJiM0MzsJICAgICYjMzk7MiYjMzk7IHx8IHJldHVybiAxCiYjNDM7CW92c19hZGRfZmxvdyAmIzM0OyR0JiMzNDsgc2N0cDQgXAomIzQzOwkgICAgJiMzOTtpbl9wb3J0KDIpLGV0aCgpLGV0aF90eXBlKDB4MDgwMCksaXB2NChwcm90bz0xMzIpLHNjdHAoc3JjPTQ0NDMpJiMzOTsgXAomIzQzOwkgICAgJiMzOTsxJiMzOTsgfHwgcmV0dXJuIDEKJiM0MzsKJiM0MzsJa2lsbCAtVEVSTSAmIzM0OyRzZXJ2ZXJfcGlkJiMzNDsgMiZndDsvZGV2L251bGwKJiM0MzsJaT0wCiYjNDM7CXdoaWxlIGtpbGwgLTAgJiMzNDskc2VydmVyX3BpZCYjMzQ7IDImZ3Q7L2Rldi9udWxsICZhbXA7JmFtcDsgWyAmIzM0OyRpJiMzNDsgLWx0IDUgXTsgZG8KJiM0MzsJICAgIHNsZWVwIDAuMgomIzQzOwkgICAgaT0kKChpICYjNDM7IDEpKQomIzQzOwlkb25lCiYjNDM7CW92c19uZXRuc19zcGF3bl9kYWVtb24gJiMzNDskdCYjMzQ7ICYjMzQ7c2VydmVyJiMzNDsgXAomIzQzOwkgICAgc29jYXQgLXUgU0NUUDQtTElTVEVOOjQ0NDMgU1RET1VUCiYjNDM7CXNlcnZlcl9waWQ9JiMzNDskcGlkJiMzNDsKJiM0MzsJb3ZzX3dhaXQgc2N0cF9lcHNfaGFzIHNlcnZlciA0NDQzIHx8IHJldHVybiAxCiYjNDM7CiYjNDM7CW92c19zYnggJiMzNDskdCYjMzQ7IGlwIG5ldG5zIGV4ZWMgY2xpZW50IFwKJiM0MzsJICAgIHRpbWVvdXQgMyBzb2NhdCAtdSBTVERJTiAmIzM0O1NDVFA0LUNPTk5FQ1Q6JHtzcnZfaXB9OjQ0NDMmIzM0OyAmbHQ7L2Rldi9udWxsIFwKJiM0MzsJICAgIHx8IHJldHVybiAxCiYjNDM7CiYjNDM7CXJldHVybiAwCiYjNDM7fQomIzQzOwogIyBwc2FtcGxlIHRlc3QKICMgLSB1c2UgcHNhbXBsZSB0byBvYnNlcnZlIHBhY2tldHMKIHRlc3RfcHNhbXBsZSgpIHsKZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL25ldC9vcGVudnN3aXRjaC9vdnMtZHBjdGwucHkgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9uZXQvb3BlbnZzd2l0Y2gvb3ZzLWRwY3RsLnB5CmluZGV4IGYzZWRkMTk4MjIzZjEuLmNlNzkwZDkzNjgzMjkgMTAwNjQ0Ci0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL25ldC9vcGVudnN3aXRjaC9vdnMtZHBjdGwucHkKJiM0MzsmIzQzOyYjNDM7IGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L29wZW52c3dpdGNoL292cy1kcGN0bC5weQpAQCAtMTk4NCw2ICYjNDM7MTk4NCwxMSBAQCBjbGFzcyBvdnNrZXkobmxhKToKICAgICAgICAgICAgICAgICAmIzM0O3VkcCYjMzQ7LAogICAgICAgICAgICAgICAgIG92c2tleS5vdnNfa2V5X3VkcCwKICAgICAgICAgICAgICksCiYjNDM7ICAgICAgICAgICAgKAomIzQzOyAgICAgICAgICAgICAgICAmIzM0O09WU19LRVlfQVRUUl9TQ1RQJiMzNDssCiYjNDM7ICAgICAgICAgICAgICAgICYjMzQ7c2N0cCYjMzQ7LAomIzQzOyAgICAgICAgICAgICAgICBvdnNrZXkub3ZzX2tleV9zY3RwLAomIzQzOyAgICAgICAgICAgICksCiAgICAgICAgICAgICAoCiAgICAgICAgICAgICAgICAgJiMzNDtPVlNfS0VZX0FUVFJfSUNNUCYjMzQ7LAogICAgICAgICAgICAgICAgICYjMzQ7aWNtcCYjMzQ7LAo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMSAxMzoyODwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA0MzY1CgkJCQkJCQlvdXRwdXQ6IDcxCgkJCQkJCQl0aG91Z2h0czogMzQ0CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKldvcnRoRnV6emluZz1mYWxzZTogQSBRdWljayBBc3Nlc3NtZW50KioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIHBhdGNoIGFuZCBpdCYjMzk7cyB0b3VjaGluZyBhIGZldyBmaWxlcyB3aXRoaW4gdGhlIE9wZW4gdlN3aXRjaCBzZWxmdGVzdHMgZGlyZWN0b3J5OiBgY29uZmlnYCwgYG9wZW52c3dpdGNoLnNoYCwgYW5kIGBvdnMtZHBjdGwucHlgLiBJdCBhcHBlYXJzIHRoZXkmIzM5O3JlIGFkZGluZyBhIG5ldyB0ZXN0LCBgc2N0cF9jb25uZWN0X3Y0YC4gVGhlIGtleSB0aGluZyBoZXJlLCBmcm9tIG15IHBlcnNwZWN0aXZlLCBpcyB0aGF0IGl0JiMzOTtzICphbGwqIGNvbnRhaW5lZCB3aXRoaW4gdGhlIHRlc3RpbmcgZnJhbWV3b3JrLiBUaGVyZSYjMzk7cyBubyBtb2RpZmljYXRpb24gb2YgY29yZSBrZXJuZWwgY29kZSwgbm8gZHJpdmVyIGNoYW5nZXMsIG5vIGFyY2hpdGVjdHVyZS1zcGVjaWZpYyBzdHVmZi4gSXQmIzM5O3Mgc3RyaWN0bHkgc2VsZi10ZXN0cy4KCkxldCBtZSBqdXN0IGJlIGFic29sdXRlbHkgc3VyZS4uLiBIbW0sIHRha2luZyBhbm90aGVyIGxvb2sgYXQgdGhlIGRpZmYuLi4gWWVwLCBqdXN0IHRoZSBzZWxmdGVzdHMuCgpUaGVyZWZvcmUsIGJlY2F1c2UgdGhpcyBwYXRjaCBpcyBpc29sYXRlZCB0byB0aGUgc2VsZnRlc3RzLCBJJiMzOTttIGNvbmZpZGVudCBpbiBjb25jbHVkaW5nIHRoYXQgaXQgZG9lc24mIzM5O3QgaW50cm9kdWNlIGFueSBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHdvdWxkIHdhcnJhbnQgZnV6emluZy4gVGhlIHJpc2sgcHJvZmlsZSBpcyBleHRyZW1lbHkgbG93LiBJIHdpbGwgc2V0IGBXb3J0aEZ1enppbmc9ZmFsc2VgLiBObyBmdXp6aW5nIG5lZWRlZCBoZXJlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAxIDEzOjI4PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+c2V0LXJlc3VsdHM8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogW10sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggb25seSBtb2RpZmllcyBzZWxmdGVzdHMgKHRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL25ldC9vcGVudnN3aXRjaC8qKSBhbmQgZG9lcyBub3QgbWFrZSBhbnkgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBjb3JlIGtlcm5lbCwgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG9ubHkgbW9kaWZpZXMgc2VsZnRlc3RzICh0b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9uZXQvb3BlbnZzd2l0Y2gvKikgYW5kIGRvZXMgbm90IG1ha2UgYW55IGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUgY29yZSBrZXJuZWwsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTwvdGJvZHk+Cgk8L3RhYmxlPgoKCTxkaXYgaWQ9ImxsbV9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+TExNIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgVG9rZW5zPC90aD4KCQkJCQk8dGg+QXZnIFRva2VuczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJsbG1fc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJ0b29sX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5Ub29sIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9InRvb2xfc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJkdXJhdGlvbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+Cgk8ZGl2IGlkPSJ0b2tlbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+CgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9qc2FwaSI+PC9zY3JpcHQ+Cgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CgkJZ29vZ2xlLmxvYWQoInZpc3VhbGl6YXRpb24iLCAiMSIsIHtwYWNrYWdlczpbImNvcmVjaGFydCJdfSk7CgkJZ29vZ2xlLnNldE9uTG9hZENhbGxiYWNrKGRyYXdDaGFydHMpOwoKCQlmdW5jdGlvbiBkcmF3Q2hhcnRzKCkgewoJCQljb25zdCByYXdEYXRhID0gW3siU3RhcnRlZCI6IjIwMjYtMDgtMDFUMTM6Mjg6MzQuNTQ3NjU5NTY0WiIsIlNlcSI6MCwiTmVzdGluZyI6MCwiVHlwZSI6ImZsb3ciLCJOYW1lIjoicGF0Y2gtdHJpYWdlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NjEzNTkyMjUwOCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggb25seSBtb2RpZmllcyBzZWxmdGVzdHMgKHRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL25ldC9vcGVudnN3aXRjaC8qKSBhbmQgZG9lcyBub3QgbWFrZSBhbnkgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBjb3JlIGtlcm5lbCwgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAxVDEzOjI4OjM0LjU0NzY2NDMzNFoiLCJTZXEiOjEsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoicmVhZC1wYXRjaC1kaWZmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDQ0NzQ5MjczLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJQYXRjaERpZmZcIjogXCJjb21taXQgNzg4MTdhMWUzYmJlMzUzZmU1ZjE2NDVjM2I0OTU5N2NkNWFlNWM2YlxcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXFx1MDAzZVxcbkRhdGU6ICAgU2F0IEF1ZyAxIDEzOjI4OjMzIDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL25ldC9vcGVudnN3aXRjaC9jb25maWcgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9uZXQvb3BlbnZzd2l0Y2gvY29uZmlnXFxuaW5kZXggYzY1OTc0OWNkMDg2Yy4uNzU0Mjk3YjE2NDRlYyAxMDA2NDRcXG4tLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9uZXQvb3BlbnZzd2l0Y2gvY29uZmlnXFxuKysrIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L29wZW52c3dpdGNoL2NvbmZpZ1xcbkBAIC0xLDYgKzEsNyBAQFxcbiBDT05GSUdfR0VORVZFPW1cXG4gQ09ORklHX0lORVRfRElBRz15XFxuIENPTkZJR19JUFY2PXlcXG4rQ09ORklHX0lQX1NDVFA9eVxcbiBDT05GSUdfTkVURklMVEVSPXlcXG4gQ09ORklHX05FVF9JUEdSRT1tXFxuIENPTkZJR19ORVRfSVBHUkVfREVNVVg9bVxcbmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9uZXQvb3BlbnZzd2l0Y2gvb3BlbnZzd2l0Y2guc2ggYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9uZXQvb3BlbnZzd2l0Y2gvb3BlbnZzd2l0Y2guc2hcXG5pbmRleCA4NTNkYmMxYjAwZDdhLi5iNDQ4MzI0NTI3ZDhiIDEwMDc1NVxcbi0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL25ldC9vcGVudnN3aXRjaC9vcGVudnN3aXRjaC5zaFxcbisrKyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL25ldC9vcGVudnN3aXRjaC9vcGVudnN3aXRjaC5zaFxcbkBAIC0zNCw2ICszNCw3IEBAIHRlc3RzPVxcXCJcXG4gXFx0YWN0aW9uX3NldFxcdFxcdFxcdFxcdHNldDogU0VUIGFjdGlvbiByZXdyaXRlcyBmaWVsZHNcXG4gXFx0dHJ1bmNcXHRcXHRcXHRcXHRcXHR0cnVuYzogb3V0cHV0IHRydW5jYXRpb25cXG4gXFx0aWNtcHY2XFx0XFx0XFx0XFx0XFx0aWNtcHY2OiBJQ01QdjYgZWNobyB0eXBlIG1hdGNoXFxuK1xcdHNjdHBfY29ubmVjdF92NFxcdFxcdFxcdFxcdHNjdHA6IFNDVFAgZmxvdyBrZXkgbWF0Y2hpbmdcXG4gXFx0cHNhbXBsZVxcdFxcdFxcdFxcdFxcdHBzYW1wbGU6IFNhbXBsaW5nIHBhY2tldHMgd2l0aCBwc2FtcGxlXFxcIlxcbiBcXG4gaW5mbygpIHtcXG5AQCAtNjExLDYgKzYxMiwxMjYgQEAgdGVzdF9pY21wdjYoKSB7XFxuIFxcdHJldHVybiAwXFxuIH1cXG4gXFxuKyMgQ2hlY2sgZm9yIGFuIFNDVFAgZW5kcG9pbnQgdmlhIC9wcm9jLCB3aGljaCB3b3JrcyB3aXRob3V0IHNjdHBfZGlhZy5cXG4rc2N0cF9lcHNfaGFzKCkge1xcbitcXHRpcCBuZXRucyBleGVjIFxcXCIkMVxcXCIgYXdrIC12IHA9XFxcIiQyXFxcIiAnJDY9PXAnIC9wcm9jL25ldC9zY3RwL2VwcyB8IGdyZXAgLXEgLlxcbit9XFxuK1xcbisjIHNjdHBfY29ubmVjdF92NCB0ZXN0XFxuKyMgLSBzY3RwKGRzdD00NDQzKSBtYXRjaGVzIGNsaWVudC10by1zZXJ2ZXIgSU5JVFxcbisjIC0gc2N0cChzcmM9NDQ0MykgbWF0Y2hlcyBzZXJ2ZXItdG8tY2xpZW50IElOSVQtQUNLXFxuKyMgLSByZW1vdmUgZmxvd3MgYW5kIHZlcmlmeSBjb25uZWN0aW9uIGZhaWxzLCByZWluc3RhbGwgYW5kIHJlY292ZXJcXG4rdGVzdF9zY3RwX2Nvbm5lY3RfdjQoKSB7XFxuK1xcdGxvY2FsIHQ9XFxcInRlc3Rfc2N0cF9jb25uZWN0X3Y0XFxcIlxcbitcXHRsb2NhbCBzcnZfaXA9MTcyLjMxLjExMC4yMFxcbitcXG4rXFx0bW9kcHJvYmUgLXEgc2N0cCAyXFx1MDAzZS9kZXYvbnVsbCB8fCByZXR1cm4gXFxcIiRrc2Z0X3NraXBcXFwiXFxuK1xcdHNvY2F0IC1WIDJcXHUwMDNlXFx1MDAyNjEgfCBncmVwIC1xIFxcXCJkZWZpbmUgV0lUSF9TQ1RQXFxcIiB8fCByZXR1cm4gXFxcIiRrc2Z0X3NraXBcXFwiXFxuK1xcbitcXHRzYnhfYWRkIFxcXCIkdFxcXCIgfHwgcmV0dXJuICQ/XFxuK1xcdG92c19hZGRfZHAgXFxcIiR0XFxcIiBzY3RwNCB8fCByZXR1cm4gMVxcbitcXG4rXFx0aW5mbyBcXFwiY3JlYXRlIG5hbWVzcGFjZXNcXFwiXFxuK1xcdGZvciBucyBpbiBjbGllbnQgc2VydmVyOyBkb1xcbitcXHRcXHRvdnNfYWRkX25ldG5zX2FuZF92ZXRocyBcXFwiJHRcXFwiIFxcXCJzY3RwNFxcXCIgXFxcIiRuc1xcXCIgXFxcXFxcbitcXHRcXHQgICAgXFxcIiR7bnM6MDoxfTBcXFwiIFxcXCIke25zOjA6MX0xXFxcIiB8fCByZXR1cm4gMVxcbitcXHRkb25lXFxuK1xcbitcXHRpcCBuZXRucyBleGVjIGNsaWVudCBpcCBhZGRyIGFkZCAxNzIuMzEuMTEwLjEwLzI0IGRldiBjMVxcbitcXHRpcCBuZXRucyBleGVjIGNsaWVudCBpcCBsaW5rIHNldCBjMSB1cFxcbitcXHRpcCBuZXRucyBleGVjIHNlcnZlciBpcCBhZGRyIGFkZCBcXFwiJHtzcnZfaXB9LzI0XFxcIiBkZXYgczFcXG4rXFx0aXAgbmV0bnMgZXhlYyBzZXJ2ZXIgaXAgbGluayBzZXQgczEgdXBcXG4rXFxuK1xcdCMgUHJvYmU6IGNoZWNrIGlmIGtlcm5lbCBzdXBwb3J0cyBzY3RwIGZsb3cga2V5LlxcbitcXHRvdnNfYWRkX2Zsb3cgXFxcIiR0XFxcIiBzY3RwNCBcXFxcXFxuK1xcdCAgICAnaW5fcG9ydCgxKSxldGgoKSxldGhfdHlwZSgweDA4MDApLGlwdjQocHJvdG89MTMyKSxzY3RwKGRzdD00NDQzKScgXFxcXFxcbitcXHQgICAgJzInIFxcdTAwMjZcXHUwMDNlL2Rldi9udWxsXFxuK1xcdGlmIFsgJD8gLW5lIDAgXTsgdGhlblxcbitcXHRcXHRpbmZvIFxcXCJubyBzdXBwb3J0IGZvciBzY3RwIGtleSAtIHNraXBwaW5nXFxcIlxcbitcXHRcXHRvdnNfZXhpdF9zaWdcXG4rXFx0XFx0cmV0dXJuICRrc2Z0X3NraXBcXG4rXFx0ZmlcXG4rXFx0b3ZzX2RlbF9mbG93cyBcXFwiJHRcXFwiIHNjdHA0XFxuK1xcbitcXHQjIEFSUCBmb3J3YXJkaW5nXFxuK1xcdG92c19hZGRfZmxvdyBcXFwiJHRcXFwiIHNjdHA0IFxcXFxcXG4rXFx0ICAgICdpbl9wb3J0KDEpLGV0aCgpLGV0aF90eXBlKDB4MDgwNiksYXJwKCknIFxcXFxcXG4rXFx0ICAgICcyJyB8fCByZXR1cm4gMVxcbitcXHRvdnNfYWRkX2Zsb3cgXFxcIiR0XFxcIiBzY3RwNCBcXFxcXFxuK1xcdCAgICAnaW5fcG9ydCgyKSxldGgoKSxldGhfdHlwZSgweDA4MDYpLGFycCgpJyBcXFxcXFxuK1xcdCAgICAnMScgfHwgcmV0dXJuIDFcXG4rXFxuK1xcdCMgU0NUUCBwb3J0IG1hdGNoaW5nOiBkc3QgZm9yIHJlcXVlc3QsIHNyYyBmb3IgcmVwbHlcXG4rXFx0b3ZzX2FkZF9mbG93IFxcXCIkdFxcXCIgc2N0cDQgXFxcXFxcbitcXHQgICAgJ2luX3BvcnQoMSksZXRoKCksZXRoX3R5cGUoMHgwODAwKSxpcHY0KHByb3RvPTEzMiksc2N0cChkc3Q9NDQ0MyknIFxcXFxcXG4rXFx0ICAgICcyJyB8fCByZXR1cm4gMVxcbitcXHRvdnNfYWRkX2Zsb3cgXFxcIiR0XFxcIiBzY3RwNCBcXFxcXFxuK1xcdCAgICAnaW5fcG9ydCgyKSxldGgoKSxldGhfdHlwZSgweDA4MDApLGlwdjQocHJvdG89MTMyKSxzY3RwKHNyYz00NDQzKScgXFxcXFxcbitcXHQgICAgJzEnIHx8IHJldHVybiAxXFxuK1xcbitcXHRvdnNfbmV0bnNfc3Bhd25fZGFlbW9uIFxcXCIkdFxcXCIgXFxcInNlcnZlclxcXCIgXFxcXFxcbitcXHQgICAgc29jYXQgLXUgU0NUUDQtTElTVEVOOjQ0NDMgU1RET1VUXFxuK1xcdGxvY2FsIHNlcnZlcl9waWQ9XFxcIiRwaWRcXFwiXFxuK1xcdG92c193YWl0IHNjdHBfZXBzX2hhcyBzZXJ2ZXIgNDQ0MyB8fCByZXR1cm4gMVxcbitcXG4rXFx0aW5mbyBcXFwidmVyaWZ5IFNDVFAgYXNzb2NpYXRpb24gd2l0aCBwb3J0LWtleWVkIGZsb3dzXFxcIlxcbitcXHRvdnNfc2J4IFxcXCIkdFxcXCIgaXAgbmV0bnMgZXhlYyBjbGllbnQgXFxcXFxcbitcXHQgICAgdGltZW91dCAzIHNvY2F0IC11IFNURElOIFxcXCJTQ1RQNC1DT05ORUNUOiR7c3J2X2lwfTo0NDQzXFxcIiBcXHUwMDNjL2Rldi9udWxsIFxcXFxcXG4rXFx0ICAgIHx8IHJldHVybiAxXFxuK1xcbitcXHRvdnNfZGVsX2Zsb3dzIFxcXCIkdFxcXCIgc2N0cDRcXG4rXFxuK1xcdGluZm8gXFxcInZlcmlmeSBjb25uZWN0aW9uIGZhaWxzIHdpdGhvdXQgZmxvd3NcXFwiXFxuK1xcdG92c19hZGRfZmxvdyBcXFwiJHRcXFwiIHNjdHA0IFxcXFxcXG4rXFx0ICAgICdpbl9wb3J0KDEpLGV0aCgpLGV0aF90eXBlKDB4MDgwNiksYXJwKCknIFxcXFxcXG4rXFx0ICAgICcyJyB8fCByZXR1cm4gMVxcbitcXHRvdnNfYWRkX2Zsb3cgXFxcIiR0XFxcIiBzY3RwNCBcXFxcXFxuK1xcdCAgICAnaW5fcG9ydCgyKSxldGgoKSxldGhfdHlwZSgweDA4MDYpLGFycCgpJyBcXFxcXFxuK1xcdCAgICAnMScgfHwgcmV0dXJuIDFcXG4rXFxuK1xcdGtpbGwgLVRFUk0gXFxcIiRzZXJ2ZXJfcGlkXFxcIiAyXFx1MDAzZS9kZXYvbnVsbFxcbitcXHRsb2NhbCBpPTBcXG4rXFx0d2hpbGUga2lsbCAtMCBcXFwiJHNlcnZlcl9waWRcXFwiIDJcXHUwMDNlL2Rldi9udWxsIFxcdTAwMjZcXHUwMDI2IFsgXFxcIiRpXFxcIiAtbHQgNSBdOyBkb1xcbitcXHQgICAgc2xlZXAgMC4yXFxuK1xcdCAgICBpPSQoKGkgKyAxKSlcXG4rXFx0ZG9uZVxcbitcXHRvdnNfbmV0bnNfc3Bhd25fZGFlbW9uIFxcXCIkdFxcXCIgXFxcInNlcnZlclxcXCIgXFxcXFxcbitcXHQgICAgc29jYXQgLXUgU0NUUDQtTElTVEVOOjQ0NDMgU1RET1VUXFxuK1xcdHNlcnZlcl9waWQ9XFxcIiRwaWRcXFwiXFxuK1xcdG92c193YWl0IHNjdHBfZXBzX2hhcyBzZXJ2ZXIgNDQ0MyB8fCByZXR1cm4gMVxcbitcXG4rXFx0b3ZzX3NieCBcXFwiJHRcXFwiIGlwIG5ldG5zIGV4ZWMgY2xpZW50IFxcXFxcXG4rXFx0ICAgIHRpbWVvdXQgMyBzb2NhdCAtdSBTVERJTiBcXFwiU0NUUDQtQ09OTkVDVDoke3Nydl9pcH06NDQ0M1xcXCIgXFx1MDAzYy9kZXYvbnVsbCBcXFxcXFxuK1xcdCAgICBcXHUwMDNlL2Rldi9udWxsIDJcXHUwMDNlXFx1MDAyNjEgXFxcXFxcbitcXHQgICAgXFx1MDAyNlxcdTAwMjYgeyBpbmZvIFxcXCJjb25uZWN0aW9uIHNob3VsZCBmYWlsIHdpdGhvdXQgZmxvd3NcXFwiXFxuK1xcdCAgICAgICAgIHJldHVybiAxOyB9XFxuK1xcbitcXHRpbmZvIFxcXCJyZWluc3RhbGwgZmxvd3MgYW5kIHZlcmlmeSByZWNvdmVyeVxcXCJcXG4rXFx0b3ZzX2FkZF9mbG93IFxcXCIkdFxcXCIgc2N0cDQgXFxcXFxcbitcXHQgICAgJ2luX3BvcnQoMSksZXRoKCksZXRoX3R5cGUoMHgwODAwKSxpcHY0KHByb3RvPTEzMiksc2N0cChkc3Q9NDQ0MyknIFxcXFxcXG4rXFx0ICAgICcyJyB8fCByZXR1cm4gMVxcbitcXHRvdnNfYWRkX2Zsb3cgXFxcIiR0XFxcIiBzY3RwNCBcXFxcXFxuK1xcdCAgICAnaW5fcG9ydCgyKSxldGgoKSxldGhfdHlwZSgweDA4MDApLGlwdjQocHJvdG89MTMyKSxzY3RwKHNyYz00NDQzKScgXFxcXFxcbitcXHQgICAgJzEnIHx8IHJldHVybiAxXFxuK1xcbitcXHRraWxsIC1URVJNIFxcXCIkc2VydmVyX3BpZFxcXCIgMlxcdTAwM2UvZGV2L251bGxcXG4rXFx0aT0wXFxuK1xcdHdoaWxlIGtpbGwgLTAgXFxcIiRzZXJ2ZXJfcGlkXFxcIiAyXFx1MDAzZS9kZXYvbnVsbCBcXHUwMDI2XFx1MDAyNiBbIFxcXCIkaVxcXCIgLWx0IDUgXTsgZG9cXG4rXFx0ICAgIHNsZWVwIDAuMlxcbitcXHQgICAgaT0kKChpICsgMSkpXFxuK1xcdGRvbmVcXG4rXFx0b3ZzX25ldG5zX3NwYXduX2RhZW1vbiBcXFwiJHRcXFwiIFxcXCJzZXJ2ZXJcXFwiIFxcXFxcXG4rXFx0ICAgIHNvY2F0IC11IFNDVFA0LUxJU1RFTjo0NDQzIFNURE9VVFxcbitcXHRzZXJ2ZXJfcGlkPVxcXCIkcGlkXFxcIlxcbitcXHRvdnNfd2FpdCBzY3RwX2Vwc19oYXMgc2VydmVyIDQ0NDMgfHwgcmV0dXJuIDFcXG4rXFxuK1xcdG92c19zYnggXFxcIiR0XFxcIiBpcCBuZXRucyBleGVjIGNsaWVudCBcXFxcXFxuK1xcdCAgICB0aW1lb3V0IDMgc29jYXQgLXUgU1RESU4gXFxcIlNDVFA0LUNPTk5FQ1Q6JHtzcnZfaXB9OjQ0NDNcXFwiIFxcdTAwM2MvZGV2L251bGwgXFxcXFxcbitcXHQgICAgfHwgcmV0dXJuIDFcXG4rXFxuK1xcdHJldHVybiAwXFxuK31cXG4rXFxuICMgcHNhbXBsZSB0ZXN0XFxuICMgLSB1c2UgcHNhbXBsZSB0byBvYnNlcnZlIHBhY2tldHNcXG4gdGVzdF9wc2FtcGxlKCkge1xcbmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9uZXQvb3BlbnZzd2l0Y2gvb3ZzLWRwY3RsLnB5IGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L29wZW52c3dpdGNoL292cy1kcGN0bC5weVxcbmluZGV4IGYzZWRkMTk4MjIzZjEuLmNlNzkwZDkzNjgzMjkgMTAwNjQ0XFxuLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L29wZW52c3dpdGNoL292cy1kcGN0bC5weVxcbisrKyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL25ldC9vcGVudnN3aXRjaC9vdnMtZHBjdGwucHlcXG5AQCAtMTk4NCw2ICsxOTg0LDExIEBAIGNsYXNzIG92c2tleShubGEpOlxcbiAgICAgICAgICAgICAgICAgXFxcInVkcFxcXCIsXFxuICAgICAgICAgICAgICAgICBvdnNrZXkub3ZzX2tleV91ZHAsXFxuICAgICAgICAgICAgICksXFxuKyAgICAgICAgICAgIChcXG4rICAgICAgICAgICAgICAgIFxcXCJPVlNfS0VZX0FUVFJfU0NUUFxcXCIsXFxuKyAgICAgICAgICAgICAgICBcXFwic2N0cFxcXCIsXFxuKyAgICAgICAgICAgICAgICBvdnNrZXkub3ZzX2tleV9zY3RwLFxcbisgICAgICAgICAgICApLFxcbiAgICAgICAgICAgICAoXFxuICAgICAgICAgICAgICAgICBcXFwiT1ZTX0tFWV9BVFRSX0lDTVBcXFwiLFxcbiAgICAgICAgICAgICAgICAgXFxcImljbXBcXFwiLFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wMVQxMzoyODozNC45OTMzOTA3MDhaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJiZXN0LWV4cGVuc2l2ZSIsIkR1cmF0aW9uIjo1NjkwMTgyNjQ0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBvbmx5IG1vZGlmaWVzIHNlbGZ0ZXN0cyAodG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L29wZW52c3dpdGNoLyopIGFuZCBkb2VzIG5vdCBtYWtlIGFueSBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGNvcmUga2VybmVsLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiWW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuXG5Zb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZVxuaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLlxuXG5JTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW5cbnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseVxudXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy5cblxuUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczpcbi0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy5cbi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuXG4tIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy5cbi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLFxuICBldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuXG4tIENvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLFxuICBpb25pYywgYW1kZ3B1KSB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS5cbi0gRHJpdmVyIC5yZW1vdmUsIC5zaHV0ZG93biwgb3IgcGNpX3VucmVnaXN0ZXJfZHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoZS5nLiwgaWdiX3JlbW92ZSlcbiAgdGhhdCBhcmUgZXhlY3V0ZWQgb25seSBkdXJpbmcgUENJIGhvdC11bnBsdWcgb3Igc3lzZnMgZHJpdmVyIHVuYmluZCBvcGVyYXRpb25zLlxuXG5JZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoXG50b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS5cblxuV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086XG4xLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLlxuICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuXG4gICBQcmVmZXIgbm9uLXN0YXRpYywgbm9uLWlubGluZWQgQVBJIGVudHJ5cG9pbnQgZnVuY3Rpb25zIG92ZXIgaW50ZXJuYWwgc3RhdGljIGhlbHBlciBmdW5jdGlvbnNcbiAgICh3aGljaCBhcmUgaW5saW5lZCBieSB0aGUgY29tcGlsZXIgYW5kIGRvIG5vdCBoYXZlIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMpLlxuMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuXG4gICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuXG4gICBBbHNvIGNoZWNrIFwiZGVwZW5kcyBvblwiIGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlnc1xuICAgbmVlZGVkIGZvciBLYnVpbGQgdG8gY29tcGlsZSB0aGUgY29kZSBzdGF0aWNhbGx5IGludG8gdm1saW51eC4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzXG4gICBvdXRwdXQgYXJyYXksIGFuZCBETyBOT1QgYWRkIGEgJ0NPTkZJR18nIHByZWZpeCAoZS5nLiwgcmV0dXJuIFwiTkVUX0lQVjRcIiBpbnN0ZWFkIG9mIFwiQ09ORklHX05FVF9JUFY0XCIpLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgNzg4MTdhMWUzYmJlMzUzZmU1ZjE2NDVjM2I0OTU5N2NkNWFlNWM2YlxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBTYXQgQXVnIDEgMTM6Mjg6MzMgMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9uZXQvb3BlbnZzd2l0Y2gvY29uZmlnIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L29wZW52c3dpdGNoL2NvbmZpZ1xuaW5kZXggYzY1OTc0OWNkMDg2Yy4uNzU0Mjk3YjE2NDRlYyAxMDA2NDRcbi0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL25ldC9vcGVudnN3aXRjaC9jb25maWdcbisrKyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL25ldC9vcGVudnN3aXRjaC9jb25maWdcbkBAIC0xLDYgKzEsNyBAQFxuIENPTkZJR19HRU5FVkU9bVxuIENPTkZJR19JTkVUX0RJQUc9eVxuIENPTkZJR19JUFY2PXlcbitDT05GSUdfSVBfU0NUUD15XG4gQ09ORklHX05FVEZJTFRFUj15XG4gQ09ORklHX05FVF9JUEdSRT1tXG4gQ09ORklHX05FVF9JUEdSRV9ERU1VWD1tXG5kaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L29wZW52c3dpdGNoL29wZW52c3dpdGNoLnNoIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L29wZW52c3dpdGNoL29wZW52c3dpdGNoLnNoXG5pbmRleCA4NTNkYmMxYjAwZDdhLi5iNDQ4MzI0NTI3ZDhiIDEwMDc1NVxuLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L29wZW52c3dpdGNoL29wZW52c3dpdGNoLnNoXG4rKysgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9uZXQvb3BlbnZzd2l0Y2gvb3BlbnZzd2l0Y2guc2hcbkBAIC0zNCw2ICszNCw3IEBAIHRlc3RzPVwiXG4gXHRhY3Rpb25fc2V0XHRcdFx0XHRzZXQ6IFNFVCBhY3Rpb24gcmV3cml0ZXMgZmllbGRzXG4gXHR0cnVuY1x0XHRcdFx0XHR0cnVuYzogb3V0cHV0IHRydW5jYXRpb25cbiBcdGljbXB2Nlx0XHRcdFx0XHRpY21wdjY6IElDTVB2NiBlY2hvIHR5cGUgbWF0Y2hcbitcdHNjdHBfY29ubmVjdF92NFx0XHRcdFx0c2N0cDogU0NUUCBmbG93IGtleSBtYXRjaGluZ1xuIFx0cHNhbXBsZVx0XHRcdFx0XHRwc2FtcGxlOiBTYW1wbGluZyBwYWNrZXRzIHdpdGggcHNhbXBsZVwiXG4gXG4gaW5mbygpIHtcbkBAIC02MTEsNiArNjEyLDEyNiBAQCB0ZXN0X2ljbXB2NigpIHtcbiBcdHJldHVybiAwXG4gfVxuIFxuKyMgQ2hlY2sgZm9yIGFuIFNDVFAgZW5kcG9pbnQgdmlhIC9wcm9jLCB3aGljaCB3b3JrcyB3aXRob3V0IHNjdHBfZGlhZy5cbitzY3RwX2Vwc19oYXMoKSB7XG4rXHRpcCBuZXRucyBleGVjIFwiJDFcIiBhd2sgLXYgcD1cIiQyXCIgJyQ2PT1wJyAvcHJvYy9uZXQvc2N0cC9lcHMgfCBncmVwIC1xIC5cbit9XG4rXG4rIyBzY3RwX2Nvbm5lY3RfdjQgdGVzdFxuKyMgLSBzY3RwKGRzdD00NDQzKSBtYXRjaGVzIGNsaWVudC10by1zZXJ2ZXIgSU5JVFxuKyMgLSBzY3RwKHNyYz00NDQzKSBtYXRjaGVzIHNlcnZlci10by1jbGllbnQgSU5JVC1BQ0tcbisjIC0gcmVtb3ZlIGZsb3dzIGFuZCB2ZXJpZnkgY29ubmVjdGlvbiBmYWlscywgcmVpbnN0YWxsIGFuZCByZWNvdmVyXG4rdGVzdF9zY3RwX2Nvbm5lY3RfdjQoKSB7XG4rXHRsb2NhbCB0PVwidGVzdF9zY3RwX2Nvbm5lY3RfdjRcIlxuK1x0bG9jYWwgc3J2X2lwPTE3Mi4zMS4xMTAuMjBcbitcbitcdG1vZHByb2JlIC1xIHNjdHAgMlx1MDAzZS9kZXYvbnVsbCB8fCByZXR1cm4gXCIka3NmdF9za2lwXCJcbitcdHNvY2F0IC1WIDJcdTAwM2VcdTAwMjYxIHwgZ3JlcCAtcSBcImRlZmluZSBXSVRIX1NDVFBcIiB8fCByZXR1cm4gXCIka3NmdF9za2lwXCJcbitcbitcdHNieF9hZGQgXCIkdFwiIHx8IHJldHVybiAkP1xuK1x0b3ZzX2FkZF9kcCBcIiR0XCIgc2N0cDQgfHwgcmV0dXJuIDFcbitcbitcdGluZm8gXCJjcmVhdGUgbmFtZXNwYWNlc1wiXG4rXHRmb3IgbnMgaW4gY2xpZW50IHNlcnZlcjsgZG9cbitcdFx0b3ZzX2FkZF9uZXRuc19hbmRfdmV0aHMgXCIkdFwiIFwic2N0cDRcIiBcIiRuc1wiIFxcXG4rXHRcdCAgICBcIiR7bnM6MDoxfTBcIiBcIiR7bnM6MDoxfTFcIiB8fCByZXR1cm4gMVxuK1x0ZG9uZVxuK1xuK1x0aXAgbmV0bnMgZXhlYyBjbGllbnQgaXAgYWRkciBhZGQgMTcyLjMxLjExMC4xMC8yNCBkZXYgYzFcbitcdGlwIG5ldG5zIGV4ZWMgY2xpZW50IGlwIGxpbmsgc2V0IGMxIHVwXG4rXHRpcCBuZXRucyBleGVjIHNlcnZlciBpcCBhZGRyIGFkZCBcIiR7c3J2X2lwfS8yNFwiIGRldiBzMVxuK1x0aXAgbmV0bnMgZXhlYyBzZXJ2ZXIgaXAgbGluayBzZXQgczEgdXBcbitcbitcdCMgUHJvYmU6IGNoZWNrIGlmIGtlcm5lbCBzdXBwb3J0cyBzY3RwIGZsb3cga2V5LlxuK1x0b3ZzX2FkZF9mbG93IFwiJHRcIiBzY3RwNCBcXFxuK1x0ICAgICdpbl9wb3J0KDEpLGV0aCgpLGV0aF90eXBlKDB4MDgwMCksaXB2NChwcm90bz0xMzIpLHNjdHAoZHN0PTQ0NDMpJyBcXFxuK1x0ICAgICcyJyBcdTAwMjZcdTAwM2UvZGV2L251bGxcbitcdGlmIFsgJD8gLW5lIDAgXTsgdGhlblxuK1x0XHRpbmZvIFwibm8gc3VwcG9ydCBmb3Igc2N0cCBrZXkgLSBza2lwcGluZ1wiXG4rXHRcdG92c19leGl0X3NpZ1xuK1x0XHRyZXR1cm4gJGtzZnRfc2tpcFxuK1x0ZmlcbitcdG92c19kZWxfZmxvd3MgXCIkdFwiIHNjdHA0XG4rXG4rXHQjIEFSUCBmb3J3YXJkaW5nXG4rXHRvdnNfYWRkX2Zsb3cgXCIkdFwiIHNjdHA0IFxcXG4rXHQgICAgJ2luX3BvcnQoMSksZXRoKCksZXRoX3R5cGUoMHgwODA2KSxhcnAoKScgXFxcbitcdCAgICAnMicgfHwgcmV0dXJuIDFcbitcdG92c19hZGRfZmxvdyBcIiR0XCIgc2N0cDQgXFxcbitcdCAgICAnaW5fcG9ydCgyKSxldGgoKSxldGhfdHlwZSgweDA4MDYpLGFycCgpJyBcXFxuK1x0ICAgICcxJyB8fCByZXR1cm4gMVxuK1xuK1x0IyBTQ1RQIHBvcnQgbWF0Y2hpbmc6IGRzdCBmb3IgcmVxdWVzdCwgc3JjIGZvciByZXBseVxuK1x0b3ZzX2FkZF9mbG93IFwiJHRcIiBzY3RwNCBcXFxuK1x0ICAgICdpbl9wb3J0KDEpLGV0aCgpLGV0aF90eXBlKDB4MDgwMCksaXB2NChwcm90bz0xMzIpLHNjdHAoZHN0PTQ0NDMpJyBcXFxuK1x0ICAgICcyJyB8fCByZXR1cm4gMVxuK1x0b3ZzX2FkZF9mbG93IFwiJHRcIiBzY3RwNCBcXFxuK1x0ICAgICdpbl9wb3J0KDIpLGV0aCgpLGV0aF90eXBlKDB4MDgwMCksaXB2NChwcm90bz0xMzIpLHNjdHAoc3JjPTQ0NDMpJyBcXFxuK1x0ICAgICcxJyB8fCByZXR1cm4gMVxuK1xuK1x0b3ZzX25ldG5zX3NwYXduX2RhZW1vbiBcIiR0XCIgXCJzZXJ2ZXJcIiBcXFxuK1x0ICAgIHNvY2F0IC11IFNDVFA0LUxJU1RFTjo0NDQzIFNURE9VVFxuK1x0bG9jYWwgc2VydmVyX3BpZD1cIiRwaWRcIlxuK1x0b3ZzX3dhaXQgc2N0cF9lcHNfaGFzIHNlcnZlciA0NDQzIHx8IHJldHVybiAxXG4rXG4rXHRpbmZvIFwidmVyaWZ5IFNDVFAgYXNzb2NpYXRpb24gd2l0aCBwb3J0LWtleWVkIGZsb3dzXCJcbitcdG92c19zYnggXCIkdFwiIGlwIG5ldG5zIGV4ZWMgY2xpZW50IFxcXG4rXHQgICAgdGltZW91dCAzIHNvY2F0IC11IFNURElOIFwiU0NUUDQtQ09OTkVDVDoke3Nydl9pcH06NDQ0M1wiIFx1MDAzYy9kZXYvbnVsbCBcXFxuK1x0ICAgIHx8IHJldHVybiAxXG4rXG4rXHRvdnNfZGVsX2Zsb3dzIFwiJHRcIiBzY3RwNFxuK1xuK1x0aW5mbyBcInZlcmlmeSBjb25uZWN0aW9uIGZhaWxzIHdpdGhvdXQgZmxvd3NcIlxuK1x0b3ZzX2FkZF9mbG93IFwiJHRcIiBzY3RwNCBcXFxuK1x0ICAgICdpbl9wb3J0KDEpLGV0aCgpLGV0aF90eXBlKDB4MDgwNiksYXJwKCknIFxcXG4rXHQgICAgJzInIHx8IHJldHVybiAxXG4rXHRvdnNfYWRkX2Zsb3cgXCIkdFwiIHNjdHA0IFxcXG4rXHQgICAgJ2luX3BvcnQoMiksZXRoKCksZXRoX3R5cGUoMHgwODA2KSxhcnAoKScgXFxcbitcdCAgICAnMScgfHwgcmV0dXJuIDFcbitcbitcdGtpbGwgLVRFUk0gXCIkc2VydmVyX3BpZFwiIDJcdTAwM2UvZGV2L251bGxcbitcdGxvY2FsIGk9MFxuK1x0d2hpbGUga2lsbCAtMCBcIiRzZXJ2ZXJfcGlkXCIgMlx1MDAzZS9kZXYvbnVsbCBcdTAwMjZcdTAwMjYgWyBcIiRpXCIgLWx0IDUgXTsgZG9cbitcdCAgICBzbGVlcCAwLjJcbitcdCAgICBpPSQoKGkgKyAxKSlcbitcdGRvbmVcbitcdG92c19uZXRuc19zcGF3bl9kYWVtb24gXCIkdFwiIFwic2VydmVyXCIgXFxcbitcdCAgICBzb2NhdCAtdSBTQ1RQNC1MSVNURU46NDQ0MyBTVERPVVRcbitcdHNlcnZlcl9waWQ9XCIkcGlkXCJcbitcdG92c193YWl0IHNjdHBfZXBzX2hhcyBzZXJ2ZXIgNDQ0MyB8fCByZXR1cm4gMVxuK1xuK1x0b3ZzX3NieCBcIiR0XCIgaXAgbmV0bnMgZXhlYyBjbGllbnQgXFxcbitcdCAgICB0aW1lb3V0IDMgc29jYXQgLXUgU1RESU4gXCJTQ1RQNC1DT05ORUNUOiR7c3J2X2lwfTo0NDQzXCIgXHUwMDNjL2Rldi9udWxsIFxcXG4rXHQgICAgXHUwMDNlL2Rldi9udWxsIDJcdTAwM2VcdTAwMjYxIFxcXG4rXHQgICAgXHUwMDI2XHUwMDI2IHsgaW5mbyBcImNvbm5lY3Rpb24gc2hvdWxkIGZhaWwgd2l0aG91dCBmbG93c1wiXG4rXHQgICAgICAgICByZXR1cm4gMTsgfVxuK1xuK1x0aW5mbyBcInJlaW5zdGFsbCBmbG93cyBhbmQgdmVyaWZ5IHJlY292ZXJ5XCJcbitcdG92c19hZGRfZmxvdyBcIiR0XCIgc2N0cDQgXFxcbitcdCAgICAnaW5fcG9ydCgxKSxldGgoKSxldGhfdHlwZSgweDA4MDApLGlwdjQocHJvdG89MTMyKSxzY3RwKGRzdD00NDQzKScgXFxcbitcdCAgICAnMicgfHwgcmV0dXJuIDFcbitcdG92c19hZGRfZmxvdyBcIiR0XCIgc2N0cDQgXFxcbitcdCAgICAnaW5fcG9ydCgyKSxldGgoKSxldGhfdHlwZSgweDA4MDApLGlwdjQocHJvdG89MTMyKSxzY3RwKHNyYz00NDQzKScgXFxcbitcdCAgICAnMScgfHwgcmV0dXJuIDFcbitcbitcdGtpbGwgLVRFUk0gXCIkc2VydmVyX3BpZFwiIDJcdTAwM2UvZGV2L251bGxcbitcdGk9MFxuK1x0d2hpbGUga2lsbCAtMCBcIiRzZXJ2ZXJfcGlkXCIgMlx1MDAzZS9kZXYvbnVsbCBcdTAwMjZcdTAwMjYgWyBcIiRpXCIgLWx0IDUgXTsgZG9cbitcdCAgICBzbGVlcCAwLjJcbitcdCAgICBpPSQoKGkgKyAxKSlcbitcdGRvbmVcbitcdG92c19uZXRuc19zcGF3bl9kYWVtb24gXCIkdFwiIFwic2VydmVyXCIgXFxcbitcdCAgICBzb2NhdCAtdSBTQ1RQNC1MSVNURU46NDQ0MyBTVERPVVRcbitcdHNlcnZlcl9waWQ9XCIkcGlkXCJcbitcdG92c193YWl0IHNjdHBfZXBzX2hhcyBzZXJ2ZXIgNDQ0MyB8fCByZXR1cm4gMVxuK1xuK1x0b3ZzX3NieCBcIiR0XCIgaXAgbmV0bnMgZXhlYyBjbGllbnQgXFxcbitcdCAgICB0aW1lb3V0IDMgc29jYXQgLXUgU1RESU4gXCJTQ1RQNC1DT05ORUNUOiR7c3J2X2lwfTo0NDQzXCIgXHUwMDNjL2Rldi9udWxsIFxcXG4rXHQgICAgfHwgcmV0dXJuIDFcbitcbitcdHJldHVybiAwXG4rfVxuK1xuICMgcHNhbXBsZSB0ZXN0XG4gIyAtIHVzZSBwc2FtcGxlIHRvIG9ic2VydmUgcGFja2V0c1xuIHRlc3RfcHNhbXBsZSgpIHtcbmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9uZXQvb3BlbnZzd2l0Y2gvb3ZzLWRwY3RsLnB5IGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L29wZW52c3dpdGNoL292cy1kcGN0bC5weVxuaW5kZXggZjNlZGQxOTgyMjNmMS4uY2U3OTBkOTM2ODMyOSAxMDA2NDRcbi0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL25ldC9vcGVudnN3aXRjaC9vdnMtZHBjdGwucHlcbisrKyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL25ldC9vcGVudnN3aXRjaC9vdnMtZHBjdGwucHlcbkBAIC0xOTg0LDYgKzE5ODQsMTEgQEAgY2xhc3Mgb3Zza2V5KG5sYSk6XG4gICAgICAgICAgICAgICAgIFwidWRwXCIsXG4gICAgICAgICAgICAgICAgIG92c2tleS5vdnNfa2V5X3VkcCxcbiAgICAgICAgICAgICApLFxuKyAgICAgICAgICAgIChcbisgICAgICAgICAgICAgICAgXCJPVlNfS0VZX0FUVFJfU0NUUFwiLFxuKyAgICAgICAgICAgICAgICBcInNjdHBcIixcbisgICAgICAgICAgICAgICAgb3Zza2V5Lm92c19rZXlfc2N0cCxcbisgICAgICAgICAgICApLFxuICAgICAgICAgICAgIChcbiAgICAgICAgICAgICAgICAgXCJPVlNfS0VZX0FUVFJfSUNNUFwiLFxuICAgICAgICAgICAgICAgICBcImljbXBcIixcbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAxVDEzOjI4OjM0Ljk5MzM5MjkzN1oiLCJTZXEiOjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjU2OTAxNDM1NTUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqV29ydGhGdXp6aW5nPWZhbHNlOiBBIFF1aWNrIEFzc2Vzc21lbnQqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIHBhdGNoIGFuZCBpdCdzIHRvdWNoaW5nIGEgZmV3IGZpbGVzIHdpdGhpbiB0aGUgT3BlbiB2U3dpdGNoIHNlbGZ0ZXN0cyBkaXJlY3Rvcnk6IGBjb25maWdgLCBgb3BlbnZzd2l0Y2guc2hgLCBhbmQgYG92cy1kcGN0bC5weWAuIEl0IGFwcGVhcnMgdGhleSdyZSBhZGRpbmcgYSBuZXcgdGVzdCwgYHNjdHBfY29ubmVjdF92NGAuIFRoZSBrZXkgdGhpbmcgaGVyZSwgZnJvbSBteSBwZXJzcGVjdGl2ZSwgaXMgdGhhdCBpdCdzICphbGwqIGNvbnRhaW5lZCB3aXRoaW4gdGhlIHRlc3RpbmcgZnJhbWV3b3JrLiBUaGVyZSdzIG5vIG1vZGlmaWNhdGlvbiBvZiBjb3JlIGtlcm5lbCBjb2RlLCBubyBkcml2ZXIgY2hhbmdlcywgbm8gYXJjaGl0ZWN0dXJlLXNwZWNpZmljIHN0dWZmLiBJdCdzIHN0cmljdGx5IHNlbGYtdGVzdHMuXG5cbkxldCBtZSBqdXN0IGJlIGFic29sdXRlbHkgc3VyZS4uLiBIbW0sIHRha2luZyBhbm90aGVyIGxvb2sgYXQgdGhlIGRpZmYuLi4gWWVwLCBqdXN0IHRoZSBzZWxmdGVzdHMuXG5cblRoZXJlZm9yZSwgYmVjYXVzZSB0aGlzIHBhdGNoIGlzIGlzb2xhdGVkIHRvIHRoZSBzZWxmdGVzdHMsIEknbSBjb25maWRlbnQgaW4gY29uY2x1ZGluZyB0aGF0IGl0IGRvZXNuJ3QgaW50cm9kdWNlIGFueSBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHdvdWxkIHdhcnJhbnQgZnV6emluZy4gVGhlIHJpc2sgcHJvZmlsZSBpcyBleHRyZW1lbHkgbG93LiBJIHdpbGwgc2V0IGBXb3J0aEZ1enppbmc9ZmFsc2VgLiBObyBmdXp6aW5nIG5lZWRlZCBoZXJlLlxuXG5cbiIsIklucHV0VG9rZW5zIjo0MzY1LCJPdXRwdXRUb2tlbnMiOjcxLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MzQ0LCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDFUMTM6Mjg6NDAuNjgzNTQwOTIyWiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyODc4MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW10sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBvbmx5IG1vZGlmaWVzIHNlbGZ0ZXN0cyAodG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L29wZW52c3dpdGNoLyopIGFuZCBkb2VzIG5vdCBtYWtlIGFueSBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGNvcmUga2VybmVsLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggb25seSBtb2RpZmllcyBzZWxmdGVzdHMgKHRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL25ldC9vcGVudnN3aXRjaC8qKSBhbmQgZG9lcyBub3QgbWFrZSBhbnkgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBjb3JlIGtlcm5lbCwgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/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-workflowvjwn5[1] Phase: Running StartedAt: 2026-08-01 13:28:52 +0000 UTC FinishedAt: 0001-01-01 00:00:00 +0000 UTC Input: nil Output: nil --------- Name: series-workflowvjwn5[1].abort-on-skip-outcome Phase: Failed StartedAt: 2026-08-01 13:28:52 +0000 UTC FinishedAt: 2026-08-01 13:28:58 +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,}