Name: series-workflowjpqjl Phase: Failed StartedAt: 2026-07-17 07:18:33 +0000 UTC FinishedAt: 2026-07-17 08:10:57 +0000 UTC Input: nil Output: nil --------- Name: series-workflowjpqjl[0] Phase: Succeeded StartedAt: 2026-07-17 07:18:33 +0000 UTC FinishedAt: 2026-07-17 08:10:47 +0000 UTC Input: nil Output: nil --------- Name: series-workflowjpqjl[0].run-triage Phase: Succeeded StartedAt: 2026-07-17 07:18:33 +0000 UTC FinishedAt: 2026-07-17 08:10:47 +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+CgkJCTx0ZD4yMDI2LzA3LzE3IDA4OjEwPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIHNpbXBseSByZW1vdmVzIGFuIHVudXNlZCBmaWVsZCBgbGFzdF9jaGVja190aW1lYCBmcm9tIGBzdHJ1Y3QgdGhyb3RsX2dycGAuIEl0IGRvZXMgbm90IGFsdGVyIGFueSBleGVjdXRpb24gZmxvdyBvciBmdW5jdGlvbmFsIGxvZ2ljLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNyAwODoxMDwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IGU2NjMwNzgxYTQ0YjcyOWQwYmMyYjc4NjJlMTk2MTFlMjA4NjdhODhcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgRnJpIEp1bCAxNyAwODoxMDoxNiAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9ibG9jay9ibGstdGhyb3R0bGUuaCBiL2Jsb2NrL2Jsay10aHJvdHRsZS5oXG5pbmRleCA5ZDdhNDJjMDM5YTE1ZS4uMWI1Nzc1NzcxZTA3OGUgMTAwNjQ0XG4tLS0gYS9ibG9jay9ibGstdGhyb3R0bGUuaFxuJiM0MzsmIzQzOyYjNDM7IGIvYmxvY2svYmxrLXRocm90dGxlLmhcbkBAIC0xMjAsOCAmIzQzOzEyMCw2IEBAIHN0cnVjdCB0aHJvdGxfZ3JwIHtcbiBcdGludDY0X3QgYnl0ZXNfZGlzcFsyXTtcbiBcdGludCBpb19kaXNwWzJdO1xuIFxuLVx0dW5zaWduZWQgbG9uZyBsYXN0X2NoZWNrX3RpbWU7XG4tXG4gXHQvKiBXaGVuIGRpZCB3ZSBzdGFydCBhIG5ldyBzbGljZSAqL1xuIFx0dW5zaWduZWQgbG9uZyBzbGljZV9zdGFydFsyXTtcbiBcdHVuc2lnbmVkIGxvbmcgc2xpY2VfZW5kWzJdO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE3IDA4OjEwPC90ZD4KCQkJPHRkPmFnZW50PC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIHNpbXBseSByZW1vdmVzIGFuIHVudXNlZCBmaWVsZCBgbGFzdF9jaGVja190aW1lYCBmcm9tIGBzdHJ1Y3QgdGhyb3RsX2dycGAuIEl0IGRvZXMgbm90IGFsdGVyIGFueSBleGVjdXRpb24gZmxvdyBvciBmdW5jdGlvbmFsIGxvZ2ljLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkluc3RydWN0aW9uOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+WW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuCllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lCmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC4KCklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpbgp5b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHkKdXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy4KClJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6Ci0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy4KLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy4KLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuCi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLApldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuCgpJZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoCnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLgoKV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086CjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuCiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLgoyLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS4KICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLgogICBEbyBub3QgbGlzdCB0b28gZ2VuZXJpYyBjb25maWdzICh3ZSBhbHJlYWR5IGhhdmUgdGhlbSBlbmFibGVkKS4gT25seSBsaXN0IHRob3NlIHRoYXQKICAgc3BlY2lmaWNhbGx5IGNvdmVyIHRoZSBtb2RpZmllZCBjb2RlLiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3Mgb3V0cHV0IGFycmF5LAogICBhbmQgRE8gTk9UIGFkZCBhICYjMzk7Q09ORklHXyYjMzk7IHByZWZpeCAoZS5nLiwgcmV0dXJuICYjMzQ7TkVUX0lQVjQmIzM0OyBpbnN0ZWFkIG9mICYjMzQ7Q09ORklHX05FVF9JUFY0JiMzNDspLgpQcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy4KCgpVc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLgpJdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS4KSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlByb21wdDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOgpjb21taXQgZTY2MzA3ODFhNDRiNzI5ZDBiYzJiNzg2MmUxOTYxMWUyMDg2N2E4OApBdXRob3I6IHN5ei1jbHVzdGVyICZsdDt0cmlhZ2VAc3l6a2FsbGVyLmNvbSZndDsKRGF0ZTogICBGcmkgSnVsIDE3IDA4OjEwOjE2IDIwMjYgJiM0MzswMDAwCgogICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3CgpkaWZmIC0tZ2l0IGEvYmxvY2svYmxrLXRocm90dGxlLmggYi9ibG9jay9ibGstdGhyb3R0bGUuaAppbmRleCA5ZDdhNDJjMDM5YTE1ZS4uMWI1Nzc1NzcxZTA3OGUgMTAwNjQ0Ci0tLSBhL2Jsb2NrL2Jsay10aHJvdHRsZS5oCiYjNDM7JiM0MzsmIzQzOyBiL2Jsb2NrL2Jsay10aHJvdHRsZS5oCkBAIC0xMjAsOCAmIzQzOzEyMCw2IEBAIHN0cnVjdCB0aHJvdGxfZ3JwIHsKIAlpbnQ2NF90IGJ5dGVzX2Rpc3BbMl07CiAJaW50IGlvX2Rpc3BbMl07CiAKLQl1bnNpZ25lZCBsb25nIGxhc3RfY2hlY2tfdGltZTsKLQogCS8qIFdoZW4gZGlkIHdlIHN0YXJ0IGEgbmV3IHNsaWNlICovCiAJdW5zaWduZWQgbG9uZyBzbGljZV9zdGFydFsyXTsKIAl1bnNpZ25lZCBsb25nIHNsaWNlX2VuZFsyXTsKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTcgMDg6MTA8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTgwMwoJCQkJCQkJb3V0cHV0OiAyNwoJCQkJCQkJdGhvdWdodHM6IDg0CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgSW1wYWN0IG9mIGEgVGhyb3R0bGluZyBQYXRjaCoqCgpPa2F5LCBzbyB3ZSYjMzk7dmUgZ290IHRoaXMgcGF0Y2gg4oCTIGEgcHJldHR5IHN0cmFpZ2h0Zm9yd2FyZCBvbmUsIHJlYWxseS4gSXQgcmVtb3ZlcyB0aGUgYGxhc3RfY2hlY2tfdGltZWAgZmllbGQgZnJvbSB0aGUgYHN0cnVjdCB0aHJvdGxfZ3JwYCBkZWZpbml0aW9uIGluIGBibG9jay9ibGstdGhyb3R0bGUuaGAuIE15IGltbWVkaWF0ZSB0aG91Z2h0IGlzLCAmIzM0O0lzIHRoaXMgYSBzaW1wbGUgY2xlYW51cCwgb3IgZG9lcyB0aGlzIGhhdmUgd2lkZXIgaW1wbGljYXRpb25zPyYjMzQ7IFdlIG5lZWQgdG8gYmUgYWJzb2x1dGVseSBzdXJlIHRoaXMgZmllbGQgaXNu4oCZdCBiZWluZyB1c2VkIGVsc2V3aGVyZSBiZWZvcmUgd2UgbWVyZ2UgdGhpcy4gSXQmIzM5O3MgZWFzeSB0byBtYWtlIGFzc3VtcHRpb25zLCBidXQgdGhhdCYjMzk7cyBhIHJlY2lwZSBmb3IgaGVhZGFjaGVzIGxhdGVyLgoKTXkgc3RyYXRlZ3kgaXMgY2xlYXI6IHRpbWUgdG8gZGVwbG95IHRoZSB0cnVzdHkgYGdyZXBwZXJgIHRvb2wuIEkmIzM5O2xsIGZvY3VzIG15IHNlYXJjaCBvbiBgYmxvY2svYmxrLXRocm90dGxlLmNgIGluaXRpYWxseSwgc2luY2UgdGhhdCYjMzk7cyB3aGVyZSB0aGUgZGVmaW5pdGlvbiBsaXZlcywgYW5kIEkmIzM5O2QgZXhwZWN0IGl0IHRvIGJlIHVzZWQgdGhlcmUsIGlmIGFueXdoZXJlLiBCdXQgdG8gYmUgc2FmZSwgSSYjMzk7bGwgZXhwYW5kIHRoZSBzZWFyY2ggdG8gdGhlIHJlc3Qgb2YgdGhlIHJlbGV2YW50IGNvZGUgYmFzZS4gSSBuZWVkIHRvIGdldCBhIGNvbXBsZXRlIHBpY3R1cmUuIFNvLCBJJiMzOTtsbCBleHBhbmQgdGhlIHNlYXJjaCB0byBvdGhlciBmaWxlcyB0byBjb25maXJtIHRoYXQgdGhpcyBpcyBhIHNhZmUgcmVtb3ZhbCBhbmQgbm90IGJyZWFraW5nIGFueSB1bmRlcmx5aW5nIGFzc3VtcHRpb25zIG9yIGxvZ2ljLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE3IDA4OjEwPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5FcnJvcjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm5vIG1hdGNoZXM8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7bGFzdF9jaGVja190aW1lJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7YmxvY2svJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O2Vycm9yJiMzNDs6ICYjMzQ7bm8gbWF0Y2hlcyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNyAwODoxMDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyMTU5CgkJCQkJCQlvdXRwdXQ6IDE5CgkJCQkJCQl0aG91Z2h0czogMzQKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqSW52ZXN0aWdhdGluZyB0aGUgVW51c2VkIEZpZWxkKioKCk9rYXksIHNvIEkmIzM5O20gdGFraW5nIGEgbG9vayBhdCB0aGlzIGBibG9jay9gIGNvZGUsIGFuZCBJJiMzOTt2ZSBub3RpY2VkIHNvbWV0aGluZyB0aGF0IGltbWVkaWF0ZWx5IHBpcXVlZCBteSBpbnRlcmVzdC4gVGhlIGBsYXN0X2NoZWNrX3RpbWVgIGZpZWxkLCB3aXRoaW4gdGhpcyBzcGVjaWZpYyBibG9jayBvZiBjb2RlLCBkb2VzbiYjMzk7dCBhcHBlYXIgdG8gYmUgcmVmZXJlbmNlZCBhdCBhbGwuIEl0JiMzOTtzIGEgYml0IG9mIGEgY29kZSBzbWVsbCwgeW91IGtub3c/IFVudXNlZCB2YXJpYWJsZXMgb3IgZmllbGRzIGFyZSBwb3RlbnRpYWwgcmVkIGZsYWdzIOKAkyB0aGV5IGNvdWxkIGluZGljYXRlIGRlYWQgY29kZSwgYSByZWZhY3RvcmluZyBvdmVyc2lnaHQsIG9yIHBlcmhhcHMgc29tZSBjb25mdXNpb24gaW4gdGhlIGRlc2lnbi4KCk15IGltbWVkaWF0ZSB0aG91Z2h0IGlzLCBsZXQmIzM5O3MgYnJvYWRlbiB0aGUgc2NvcGUuIEl0JiMzOTtzIHBvc3NpYmxlIHRoYXQgd2hpbGUgaXQmIzM5O3Mgbm90IHVzZWQgKmhlcmUqLCBpbiB0aGlzIHNwZWNpZmljIGNvbXBvbmVudCwgaXQgbWlnaHQgYmUgdXNlZCBlbHNld2hlcmUgd2l0aGluIHRoZSBrZXJuZWwuIEJlZm9yZSBqdW1waW5nIHRvIGNvbmNsdXNpb25zIGFuZCBwb3NzaWJseSByZW1vdmluZyBpdCBwcmVtYXR1cmVseSwgSSBuZWVkIHRvIHBlcmZvcm0gYSBzeXN0ZW0td2lkZSBzZWFyY2guIEEgcXVpY2sgc2NhbiBjb3VsZCByZXZlYWwgaWYgaXQmIzM5O3MgbHVya2luZyBlbHNld2hlcmUsIHBlcmhhcHMgaW4gYSByZWxhdGVkIHN1YnN5c3RlbS4gSWYgdGhlIGZpZWxkICppcyogYWN0dWFsbHkgdW51c2VkIGV2ZXJ5d2hlcmUsIHRoZW4gd2UmIzM5O3ZlIGdvdCBhIGRlZmluaXRlIHBvaW50IHRvIGludmVzdGlnYXRlOiB3ZSBjYW4gZWl0aGVyIGRlbGV0ZSBpdCBvciBsZWF2ZSBpdCBhcyBpcyBpZiBpdCBoYXMgc29tZSBwb3RlbnRpYWwgZm9yIGJlaW5nIHJlLXVzZWQgYXQgYSBsYXRlciB0aW1lLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE3IDA4OjEwPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2xhc3RfY2hlY2tfdGltZSYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9wZW5zYW5kby9pb25pYy9pb25pY19kZXYuYz0xMzg9c3RhdGljIGludCBpb25pY193YXRjaGRvZ19pbml0KHN0cnVjdCBpb25pYyAqaW9uaWMpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvcGVuc2FuZG8vaW9uaWMvaW9uaWNfZGV2LmMtMTQ1LVx0Lyogc2V0IHRpbWVzIHRvIGVuc3VyZSB0aGUgZmlyc3QgY2hlY2sgd2lsbCBwcm9jZWVkICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9wZW5zYW5kby9pb25pYy9pb25pY19kZXYuYzoxNDY6XHRhdG9taWNfbG9uZ19zZXQoXHUwMDI2aWRldi1cdTAwM2VsYXN0X2NoZWNrX3RpbWUsIGppZmZpZXMgLSAyICogSFopO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvcGVuc2FuZG8vaW9uaWMvaW9uaWNfZGV2LmMtMTQ3LVx0aWRldi1cdTAwM2VsYXN0X2hiX3RpbWUgPSBqaWZmaWVzIC0gMiAqIGlvbmljLVx1MDAzZXdhdGNoZG9nX3BlcmlvZDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9wZW5zYW5kby9pb25pYy9pb25pY19kZXYuYz01MDE9aW50IGlvbmljX2hlYXJ0YmVhdF9jaGVjayhzdHJ1Y3QgaW9uaWMgKmlvbmljKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvcGVuc2FuZG8vaW9uaWMvaW9uaWNfZGV2LmMtNTAyLXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3BlbnNhbmRvL2lvbmljL2lvbmljX2Rldi5jOjUwMzpcdHVuc2lnbmVkIGxvbmcgY2hlY2tfdGltZSwgbGFzdF9jaGVja190aW1lO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvcGVuc2FuZG8vaW9uaWMvaW9uaWNfZGV2LmMtNTA0LVx0c3RydWN0IGlvbmljX2RldiAqaWRldiA9IFx1MDAyNmlvbmljLVx1MDAzZWlkZXY7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvcGVuc2FuZG8vaW9uaWMvaW9uaWNfZGV2LmMtNTEzLVx0Y2hlY2tfdGltZSA9IGppZmZpZXM7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9wZW5zYW5kby9pb25pYy9pb25pY19kZXYuYzo1MTQ6XHRsYXN0X2NoZWNrX3RpbWUgPSBhdG9taWNfbG9uZ19yZWFkKFx1MDAyNmlkZXYtXHUwMDNlbGFzdF9jaGVja190aW1lKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3BlbnNhbmRvL2lvbmljL2lvbmljX2Rldi5jLTUxNS1kb19jaGVja190aW1lOlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvcGVuc2FuZG8vaW9uaWMvaW9uaWNfZGV2LmM6NTE2Olx0aWYgKHRpbWVfYmVmb3JlKGNoZWNrX3RpbWUsIGxhc3RfY2hlY2tfdGltZSAmIzQzOyBIWikpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9wZW5zYW5kby9pb25pYy9pb25pY19kZXYuYy01MTctXHRcdHJldHVybiAwO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvcGVuc2FuZG8vaW9uaWMvaW9uaWNfZGV2LmM6NTE4Olx0aWYgKCFhdG9taWNfbG9uZ190cnlfY21weGNoZ19yZWxheGVkKFx1MDAyNmlkZXYtXHUwMDNlbGFzdF9jaGVja190aW1lLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvcGVuc2FuZG8vaW9uaWMvaW9uaWNfZGV2LmM6NTE5Olx0XHRcdFx0XHQgICAgIFx1MDAyNmxhc3RfY2hlY2tfdGltZSwgY2hlY2tfdGltZSkpIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3BlbnNhbmRvL2lvbmljL2lvbmljX2Rldi5jLTUyMC1cdFx0LyogaWYgY2FsbGVkIGNvbmN1cnJlbnRseSwgb25seSB0aGUgZmlyc3Qgc2hvdWxkIHByb2NlZWQuICovXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvcGVuc2FuZG8vaW9uaWMvaW9uaWNfZGV2LmMtNTk0LVx0ICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9wZW5zYW5kby9pb25pYy9pb25pY19kZXYuYzo1OTU6XHRsYXN0X2NoZWNrX3RpbWUgPSBpZGV2LVx1MDAzZWxhc3RfaGJfdGltZTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3BlbnNhbmRvL2lvbmljL2lvbmljX2Rldi5jOjU5NjpcdGlmICh0aW1lX2JlZm9yZShjaGVja190aW1lLCBsYXN0X2NoZWNrX3RpbWUgJiM0MzsgREVWQ01EX1RJTUVPVVQgKiAyICogSFopKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvcGVuc2FuZG8vaW9uaWMvaW9uaWNfZGV2LmMtNTk3LVx0XHRyZXR1cm4gMDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9wZW5zYW5kby9pb25pYy9pb25pY19kZXYuaD0xNTU9c3RydWN0IGlvbmljX2RldiB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvcGVuc2FuZG8vaW9uaWMvaW9uaWNfZGV2LmgtMTU5LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvcGVuc2FuZG8vaW9uaWMvaW9uaWNfZGV2Lmg6MTYwOlx0YXRvbWljX2xvbmdfdCBsYXN0X2NoZWNrX3RpbWU7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9wZW5zYW5kby9pb25pYy9pb25pY19kZXYuaC0xNjEtXHR1bnNpZ25lZCBsb25nIGxhc3RfaGJfdGltZTtcbi0tXG5kcml2ZXJzL252bWUvaG9zdC9jb3JlLmM9NDY5PXN0YXRpYyB2b2lkIF9fbnZtZV9jb21wbGV0ZV9ycShzdHJ1Y3QgcmVxdWVzdCAqcmVxKVxuLS1cbmRyaXZlcnMvbnZtZS9ob3N0L2NvcmUuYy00ODMtXHRpZiAoY3RybC1cdTAwM2VrYXMgXHUwMDI2XHUwMDI2XG5kcml2ZXJzL252bWUvaG9zdC9jb3JlLmM6NDg0Olx0ICAgIHJlcS1cdTAwM2VkZWFkbGluZSAtIHJlcS1cdTAwM2V0aW1lb3V0IFx1MDAzZT0gY3RybC1cdTAwM2VrYV9sYXN0X2NoZWNrX3RpbWUpXG5kcml2ZXJzL252bWUvaG9zdC9jb3JlLmMtNDg1LVx0XHRjdHJsLVx1MDAzZWNvbXBfc2VlbiA9IHRydWU7XG4tLVxuZHJpdmVycy9udm1lL2hvc3QvY29yZS5jPTEzMzc9c3RhdGljIHZvaWQgbnZtZV9xdWV1ZV9rZWVwX2FsaXZlX3dvcmsoc3RydWN0IG52bWVfY3RybCAqY3RybClcbi0tXG5kcml2ZXJzL252bWUvaG9zdC9jb3JlLmMtMTM0MC1cdHVuc2lnbmVkIGxvbmcgZGVsYXkgPSBudm1lX2tlZXBfYWxpdmVfd29ya19wZXJpb2QoY3RybCk7XG5kcml2ZXJzL252bWUvaG9zdC9jb3JlLmM6MTM0MTpcdHVuc2lnbmVkIGxvbmcga2FfbmV4dF9jaGVja190bSA9IGN0cmwtXHUwMDNla2FfbGFzdF9jaGVja190aW1lICYjNDM7IGRlbGF5O1xuZHJpdmVycy9udm1lL2hvc3QvY29yZS5jLTEzNDItXG4tLVxuZHJpdmVycy9udm1lL2hvc3QvY29yZS5jPTEzNTE9c3RhdGljIGVudW0gcnFfZW5kX2lvX3JldCBudm1lX2tlZXBfYWxpdmVfZW5kX2lvKHN0cnVjdCByZXF1ZXN0ICpycSxcbi0tXG5kcml2ZXJzL252bWUvaG9zdC9jb3JlLmMtMTM4MC1cbmRyaXZlcnMvbnZtZS9ob3N0L2NvcmUuYzoxMzgxOlx0Y3RybC1cdTAwM2VrYV9sYXN0X2NoZWNrX3RpbWUgPSBqaWZmaWVzO1xuZHJpdmVycy9udm1lL2hvc3QvY29yZS5jLTEzODItXHRjdHJsLVx1MDAzZWNvbXBfc2VlbiA9IGZhbHNlO1xuLS1cbmRyaXZlcnMvbnZtZS9ob3N0L2NvcmUuYz0xMzg4PXN0YXRpYyB2b2lkIG52bWVfa2VlcF9hbGl2ZV93b3JrKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaylcbi0tXG5kcml2ZXJzL252bWUvaG9zdC9jb3JlLmMtMTM5NC1cbmRyaXZlcnMvbnZtZS9ob3N0L2NvcmUuYzoxMzk1Olx0Y3RybC1cdTAwM2VrYV9sYXN0X2NoZWNrX3RpbWUgPSBqaWZmaWVzO1xuZHJpdmVycy9udm1lL2hvc3QvY29yZS5jLTEzOTYtXG4tLVxuZHJpdmVycy9udm1lL2hvc3QvY29yZS5jPTUxNjA9aW50IG52bWVfaW5pdF9jdHJsKHN0cnVjdCBudm1lX2N0cmwgKmN0cmwsIHN0cnVjdCBkZXZpY2UgKmRldixcbi0tXG5kcml2ZXJzL252bWUvaG9zdC9jb3JlLmMtNTE5MS1cdGN0cmwtXHUwMDNla2FfY21kLmNvbW1vbi5vcGNvZGUgPSBudm1lX2FkbWluX2tlZXBfYWxpdmU7XG5kcml2ZXJzL252bWUvaG9zdC9jb3JlLmM6NTE5MjpcdGN0cmwtXHUwMDNla2FfbGFzdF9jaGVja190aW1lID0gamlmZmllcztcbmRyaXZlcnMvbnZtZS9ob3N0L2NvcmUuYy01MTkzLVx0Y3RybC1cdTAwM2VhZG1pbl90aW1lb3V0ID0gTlZNRV9BRE1JTl9USU1FT1VUO1xuLS1cbmRyaXZlcnMvbnZtZS9ob3N0L252bWUuaD0zMzQ9c3RydWN0IG52bWVfY3RybCB7XG4tLVxuZHJpdmVycy9udm1lL2hvc3QvbnZtZS5oLTQxNC1cdHN0cnVjdCBudm1lX2NvbW1hbmQga2FfY21kO1xuZHJpdmVycy9udm1lL2hvc3QvbnZtZS5oOjQxNTpcdHVuc2lnbmVkIGxvbmcga2FfbGFzdF9jaGVja190aW1lO1xuZHJpdmVycy9udm1lL2hvc3QvbnZtZS5oLTQxNi1cdHN0cnVjdCB3b3JrX3N0cnVjdCBmd19hY3Rfd29yaztcbi0tXG5mcy9leHQ0L2lvY3RsLmM9MTI4MT1zdGF0aWMgaW50IGV4dDRfaW9jdGxfZ2V0X3R1bmVfc2Ioc3RydWN0IGV4dDRfc2JfaW5mbyAqc2JpLFxuLS1cbmZzL2V4dDQvaW9jdGwuYy0xMjkyLVx0cmV0LmNoZWNraW50ZXJ2YWwgPSBsZTMyX3RvX2NwdShlcy1cdTAwM2VzX2NoZWNraW50ZXJ2YWwpO1xuZnMvZXh0NC9pb2N0bC5jOjEyOTM6XHRyZXQubGFzdF9jaGVja190aW1lID0gbGUzMl90b19jcHUoZXMtXHUwMDNlc19sYXN0Y2hlY2spO1xuZnMvZXh0NC9pb2N0bC5jLTEyOTQtXHRyZXQucmVzZXJ2ZWRfYmxvY2tzID0gZXh0NF9yX2Jsb2Nrc19jb3VudChlcyk7XG4tLVxuZnMvZXh0NC9pb2N0bC5jPTEzMTk9c3RhdGljIHZvaWQgZXh0NF9zYl9zZXRwYXJhbXMoc3RydWN0IGV4dDRfc2JfaW5mbyAqc2JpLFxuLS1cbmZzL2V4dDQvaW9jdGwuYy0xMzMyLVx0aWYgKHBhcmFtcy1cdTAwM2VzZXRfZmxhZ3MgXHUwMDI2IEVYVDRfVFVORV9GTF9MQVNUX0NIRUNLX1RJTUUpXG5mcy9leHQ0L2lvY3RsLmM6MTMzMzpcdFx0ZXMtXHUwMDNlc19sYXN0Y2hlY2sgPSBjcHVfdG9fbGUzMihwYXJhbXMtXHUwMDNlbGFzdF9jaGVja190aW1lKTtcbmZzL2V4dDQvaW9jdGwuYy0xMzM0LVx0aWYgKHBhcmFtcy1cdTAwM2VzZXRfZmxhZ3MgXHUwMDI2IEVYVDRfVFVORV9GTF9SRVNFUlZFRF9CTE9DS1MpIHtcbi0tXG5pbmNsdWRlL3VhcGkvbGludXgvZXh0NC5oPTExMz1zdHJ1Y3QgZXh0NF90dW5lX3NiX3BhcmFtcyB7XG4tLVxuaW5jbHVkZS91YXBpL2xpbnV4L2V4dDQuaC0xMTktXHRfX3UxNiByYWlkX3N0cmlkZTtcbmluY2x1ZGUvdWFwaS9saW51eC9leHQ0Lmg6MTIwOlx0X191NjQgbGFzdF9jaGVja190aW1lO1xuaW5jbHVkZS91YXBpL2xpbnV4L2V4dDQuaC0xMjEtXHRfX3U2NCByZXNlcnZlZF9ibG9ja3M7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ny8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTcgMDg6MTA8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNDQ3NAoJCQkJCQkJb3V0cHV0OiA2NAoJCQkJCQkJdGhvdWdodHM6IDM4MQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgYSBUaHJvdHRsaW5nIFBhdGNoKioKCk9rYXksIHNvIHRoaXMgcGF0Y2ggaXMgcHJldHR5IHN0cmFpZ2h0Zm9yd2FyZC4gSXQgbG9va3MgbGlrZSB0aGUgb25seSBjaGFuZ2UgaXMgdGhlIHJlbW92YWwgb2YgYGxhc3RfY2hlY2tfdGltZWAgZnJvbSBgc3RydWN0IHRocm90bF9ncnBgIGluIGBibG9jay9ibGstdGhyb3R0bGUuaGAuIEhtbSwgbGV0IG1lIGRvdWJsZS1jaGVjayB0aGF0Li4uIHllcCwgdGhhdCYjMzk7cyBpdC4gTm8gb3RoZXIgZmlsZXMgYXJlIHRvdWNoZWQuCgpOb3csIGxldCYjMzk7cyB0aGluayBhYm91dCB0aGlzLiBJdCYjMzk7cyBqdXN0IHJlbW92aW5nIGFuIHVudXNlZCBmaWVsZCBmcm9tIGEgc3RydWN0IGRlZmluaXRpb24uIEl0JiMzOTtzIGhpZ2hseSBsaWtlbHkgdGhpcyBmaWVsZCB3YXMgdXNlZCBhdCBzb21lIHBvaW50LCBidXQgaXNuJiMzOTt0IGFueW1vcmUg4oCTIHRoaXMgaXMgYSBzaW1wbGUgY2xlYW51cC4gU2luY2UgaXQgKmp1c3QqIHJlbW92ZXMgdGhpcyBmaWVsZCwgdGhlcmUgc2hvdWxkbiYjMzk7dCBiZSBhbnkgZnVuY3Rpb25hbCBjaGFuZ2VzIGluIHRoZSBrZXJuZWwgdGhhdCB3YXJyYW50IGZ1enppbmcuIAoKV2FpdC4uLiByZW1vdmluZyBhIGZpZWxkICpkb2VzKiBjaGFuZ2UgdGhlIHN0cnVjdCBzaXplLCBidXQgdGhpcyBpcyBzdGlsbCBqdXN0IGEgY2xlYW51cC4gSSYjMzk7bSBnb2luZyB0byBsZWFuIHRvd2FyZHMgcmV0dXJuaW5nIGBXb3J0aEZ1enppbmc9ZmFsc2VgIGhlcmUsIGJlY2F1c2UgaXQgaXMgYSBub24tZnVuY3Rpb25hbCBjaGFuZ2UsIHB1cmVseSBhYm91dCByZW1vdmluZyBhbiB1bnVzZWQgc3RydWN0IG1lbWJlci4KCkJ1dCwgSSBzaG91bGQgcHJvYmFibHkgZG91YmxlLWNoZWNrIHRoYXQgYGxhc3RfY2hlY2tfdGltZWAgaXNuJiMzOTt0IGFjdHVhbGx5ICp1c2VkKiBhbnl3aGVyZSBpbiBgYmxvY2svYmxrLXRocm90dGxlLmNgLCBqdXN0IHRvIGJlIGFic29sdXRlbHkgY2VydGFpbi4gSSBkaWQgZ3JlcCBmb3IgYGxhc3RfY2hlY2tfdGltZWAgaW4gdGhlIGBibG9jay9gIGRpcmVjdG9yeSBlYXJsaWVyLCBhbmQgZ290IG5vIGhpdHMsIHNvIGl0JiMzOTtzIGRlZmluaXRlbHkgdW51c2VkLgoKVGhlcmVmb3JlLCBteSByZWFzb25pbmcgaXMgdGhhdCB0aGUgcGF0Y2ggKm9ubHkqIHJlbW92ZXMgdGhlIHVudXNlZCBgbGFzdF9jaGVja190aW1lYCBmaWVsZCBmcm9tIGBzdHJ1Y3QgdGhyb3RsX2dycGAuIEl0IGhhcyBubyBpbXBhY3Qgb24gZXhlY3V0aW9uIGZsb3cgb3IgYW55IGZ1bmN0aW9uYWwgbG9naWMuCmBXb3J0aEZ1enppbmdgIHNob3VsZCBiZSBgRmFsc2VgLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE3IDA4OjEwPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+c2V0LXJlc3VsdHM8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogW10sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggc2ltcGx5IHJlbW92ZXMgYW4gdW51c2VkIGZpZWxkIGBsYXN0X2NoZWNrX3RpbWVgIGZyb20gYHN0cnVjdCB0aHJvdGxfZ3JwYC4gSXQgZG9lcyBub3QgYWx0ZXIgYW55IGV4ZWN1dGlvbiBmbG93IG9yIGZ1bmN0aW9uYWwgbG9naWMuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogbnVsbCwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBzaW1wbHkgcmVtb3ZlcyBhbiB1bnVzZWQgZmllbGQgYGxhc3RfY2hlY2tfdGltZWAgZnJvbSBgc3RydWN0IHRocm90bF9ncnBgLiBJdCBkb2VzIG5vdCBhbHRlciBhbnkgZXhlY3V0aW9uIGZsb3cgb3IgZnVuY3Rpb25hbCBsb2dpYy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPC90Ym9keT4KCTwvdGFibGU+CgoJPGRpdiBpZD0ibGxtX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5MTE0gQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBUb2tlbnM8L3RoPgoJCQkJCTx0aD5BdmcgVG9rZW5zPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9ImxsbV9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9InRvb2xfc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPlRvb2wgQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0idG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9ImR1cmF0aW9uX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCTxkaXYgaWQ9InRva2VuX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL2pzYXBpIj48L3NjcmlwdD4KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCQlnb29nbGUubG9hZCgidmlzdWFsaXphdGlvbiIsICIxIiwge3BhY2thZ2VzOlsiY29yZWNoYXJ0Il19KTsKCQlnb29nbGUuc2V0T25Mb2FkQ2FsbGJhY2soZHJhd0NoYXJ0cyk7CgoJCWZ1bmN0aW9uIGRyYXdDaGFydHMoKSB7CgkJCWNvbnN0IHJhd0RhdGEgPSBbeyJTdGFydGVkIjoiMjAyNi0wNy0xN1QwODoxMDoxNy44OTI3Njk3MTdaIiwiU2VxIjowLCJOZXN0aW5nIjowLCJUeXBlIjoiZmxvdyIsIk5hbWUiOiJwYXRjaC10cmlhZ2UiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNzQ5NDA4NTI4NywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggc2ltcGx5IHJlbW92ZXMgYW4gdW51c2VkIGZpZWxkIGBsYXN0X2NoZWNrX3RpbWVgIGZyb20gYHN0cnVjdCB0aHJvdGxfZ3JwYC4gSXQgZG9lcyBub3QgYWx0ZXIgYW55IGV4ZWN1dGlvbiBmbG93IG9yIGZ1bmN0aW9uYWwgbG9naWMuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xN1QwODoxMDoxNy44OTI3NzczNzdaIiwiU2VxIjoxLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6InJlYWQtcGF0Y2gtZGlmZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjU5MTQ1NzYwOCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiUGF0Y2hEaWZmXCI6IFwiY29tbWl0IGU2NjMwNzgxYTQ0YjcyOWQwYmMyYjc4NjJlMTk2MTFlMjA4NjdhODhcXG5BdXRob3I6IHN5ei1jbHVzdGVyIFxcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVxcdTAwM2VcXG5EYXRlOiAgIEZyaSBKdWwgMTcgMDg6MTA6MTYgMjAyNiArMDAwMFxcblxcbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcXG5cXG5kaWZmIC0tZ2l0IGEvYmxvY2svYmxrLXRocm90dGxlLmggYi9ibG9jay9ibGstdGhyb3R0bGUuaFxcbmluZGV4IDlkN2E0MmMwMzlhMTVlLi4xYjU3NzU3NzFlMDc4ZSAxMDA2NDRcXG4tLS0gYS9ibG9jay9ibGstdGhyb3R0bGUuaFxcbisrKyBiL2Jsb2NrL2Jsay10aHJvdHRsZS5oXFxuQEAgLTEyMCw4ICsxMjAsNiBAQCBzdHJ1Y3QgdGhyb3RsX2dycCB7XFxuIFxcdGludDY0X3QgYnl0ZXNfZGlzcFsyXTtcXG4gXFx0aW50IGlvX2Rpc3BbMl07XFxuIFxcbi1cXHR1bnNpZ25lZCBsb25nIGxhc3RfY2hlY2tfdGltZTtcXG4tXFxuIFxcdC8qIFdoZW4gZGlkIHdlIHN0YXJ0IGEgbmV3IHNsaWNlICovXFxuIFxcdHVuc2lnbmVkIGxvbmcgc2xpY2Vfc3RhcnRbMl07XFxuIFxcdHVuc2lnbmVkIGxvbmcgc2xpY2VfZW5kWzJdO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xN1QwODoxMDoxOC40ODQ5OTkyODVaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjE2OTAxODQ5Mjk5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBzaW1wbHkgcmVtb3ZlcyBhbiB1bnVzZWQgZmllbGQgYGxhc3RfY2hlY2tfdGltZWAgZnJvbSBgc3RydWN0IHRocm90bF9ncnBgLiBJdCBkb2VzIG5vdCBhbHRlciBhbnkgZXhlY3V0aW9uIGZsb3cgb3IgZnVuY3Rpb25hbCBsb2dpYy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLlxuWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmVcbmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cblxuSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluXG55b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHlcbnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuXG5cblJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6XG4tIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuXG4tIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLlxuLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuXG4tIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSxcbmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS5cblxuSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaFxudG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuXG5cbldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOlxuMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy5cbiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLlxuMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuXG4gICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuXG4gICBEbyBub3QgbGlzdCB0b28gZ2VuZXJpYyBjb25maWdzICh3ZSBhbHJlYWR5IGhhdmUgdGhlbSBlbmFibGVkKS4gT25seSBsaXN0IHRob3NlIHRoYXRcbiAgIHNwZWNpZmljYWxseSBjb3ZlciB0aGUgbW9kaWZpZWQgY29kZS4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzIG91dHB1dCBhcnJheSxcbiAgIGFuZCBETyBOT1QgYWRkIGEgJ0NPTkZJR18nIHByZWZpeCAoZS5nLiwgcmV0dXJuIFwiTkVUX0lQVjRcIiBpbnN0ZWFkIG9mIFwiQ09ORklHX05FVF9JUFY0XCIpLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgZTY2MzA3ODFhNDRiNzI5ZDBiYzJiNzg2MmUxOTYxMWUyMDg2N2E4OFxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBGcmkgSnVsIDE3IDA4OjEwOjE2IDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvYmxvY2svYmxrLXRocm90dGxlLmggYi9ibG9jay9ibGstdGhyb3R0bGUuaFxuaW5kZXggOWQ3YTQyYzAzOWExNWUuLjFiNTc3NTc3MWUwNzhlIDEwMDY0NFxuLS0tIGEvYmxvY2svYmxrLXRocm90dGxlLmhcbisrKyBiL2Jsb2NrL2Jsay10aHJvdHRsZS5oXG5AQCAtMTIwLDggKzEyMCw2IEBAIHN0cnVjdCB0aHJvdGxfZ3JwIHtcbiBcdGludDY0X3QgYnl0ZXNfZGlzcFsyXTtcbiBcdGludCBpb19kaXNwWzJdO1xuIFxuLVx0dW5zaWduZWQgbG9uZyBsYXN0X2NoZWNrX3RpbWU7XG4tXG4gXHQvKiBXaGVuIGRpZCB3ZSBzdGFydCBhIG5ldyBzbGljZSAqL1xuIFx0dW5zaWduZWQgbG9uZyBzbGljZV9zdGFydFsyXTtcbiBcdHVuc2lnbmVkIGxvbmcgc2xpY2VfZW5kWzJdO1xuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTdUMDg6MTA6MTguNDg1MDAxODM1WiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzY5NDcxNTQ2MywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIEltcGFjdCBvZiBhIFRocm90dGxpbmcgUGF0Y2gqKlxuXG5Pa2F5LCBzbyB3ZSd2ZSBnb3QgdGhpcyBwYXRjaCDigJMgYSBwcmV0dHkgc3RyYWlnaHRmb3J3YXJkIG9uZSwgcmVhbGx5LiBJdCByZW1vdmVzIHRoZSBgbGFzdF9jaGVja190aW1lYCBmaWVsZCBmcm9tIHRoZSBgc3RydWN0IHRocm90bF9ncnBgIGRlZmluaXRpb24gaW4gYGJsb2NrL2Jsay10aHJvdHRsZS5oYC4gTXkgaW1tZWRpYXRlIHRob3VnaHQgaXMsIFwiSXMgdGhpcyBhIHNpbXBsZSBjbGVhbnVwLCBvciBkb2VzIHRoaXMgaGF2ZSB3aWRlciBpbXBsaWNhdGlvbnM/XCIgV2UgbmVlZCB0byBiZSBhYnNvbHV0ZWx5IHN1cmUgdGhpcyBmaWVsZCBpc27igJl0IGJlaW5nIHVzZWQgZWxzZXdoZXJlIGJlZm9yZSB3ZSBtZXJnZSB0aGlzLiBJdCdzIGVhc3kgdG8gbWFrZSBhc3N1bXB0aW9ucywgYnV0IHRoYXQncyBhIHJlY2lwZSBmb3IgaGVhZGFjaGVzIGxhdGVyLlxuXG5NeSBzdHJhdGVneSBpcyBjbGVhcjogdGltZSB0byBkZXBsb3kgdGhlIHRydXN0eSBgZ3JlcHBlcmAgdG9vbC4gSSdsbCBmb2N1cyBteSBzZWFyY2ggb24gYGJsb2NrL2Jsay10aHJvdHRsZS5jYCBpbml0aWFsbHksIHNpbmNlIHRoYXQncyB3aGVyZSB0aGUgZGVmaW5pdGlvbiBsaXZlcywgYW5kIEknZCBleHBlY3QgaXQgdG8gYmUgdXNlZCB0aGVyZSwgaWYgYW55d2hlcmUuIEJ1dCB0byBiZSBzYWZlLCBJJ2xsIGV4cGFuZCB0aGUgc2VhcmNoIHRvIHRoZSByZXN0IG9mIHRoZSByZWxldmFudCBjb2RlIGJhc2UuIEkgbmVlZCB0byBnZXQgYSBjb21wbGV0ZSBwaWN0dXJlLiBTbywgSSdsbCBleHBhbmQgdGhlIHNlYXJjaCB0byBvdGhlciBmaWxlcyB0byBjb25maXJtIHRoYXQgdGhpcyBpcyBhIHNhZmUgcmVtb3ZhbCBhbmQgbm90IGJyZWFraW5nIGFueSB1bmRlcmx5aW5nIGFzc3VtcHRpb25zIG9yIGxvZ2ljLlxuXG5cbiIsIklucHV0VG9rZW5zIjoxODAzLCJPdXRwdXRUb2tlbnMiOjI3LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6ODQsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xN1QwODoxMDoyMi4xNzk3MTk3MjhaIiwiU2VxIjo0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6OTU0Mjc0MTgsIkVycm9yIjoibm8gbWF0Y2hlcyIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImxhc3RfY2hlY2tfdGltZVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJibG9jay9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiZXJyb3JcIjogXCJubyBtYXRjaGVzXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE3VDA4OjEwOjIyLjI3NTE1OTk5NloiLCJTZXEiOjUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjM0NzI0MTQ4NDgsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqSW52ZXN0aWdhdGluZyB0aGUgVW51c2VkIEZpZWxkKipcblxuT2theSwgc28gSSdtIHRha2luZyBhIGxvb2sgYXQgdGhpcyBgYmxvY2svYCBjb2RlLCBhbmQgSSd2ZSBub3RpY2VkIHNvbWV0aGluZyB0aGF0IGltbWVkaWF0ZWx5IHBpcXVlZCBteSBpbnRlcmVzdC4gVGhlIGBsYXN0X2NoZWNrX3RpbWVgIGZpZWxkLCB3aXRoaW4gdGhpcyBzcGVjaWZpYyBibG9jayBvZiBjb2RlLCBkb2Vzbid0IGFwcGVhciB0byBiZSByZWZlcmVuY2VkIGF0IGFsbC4gSXQncyBhIGJpdCBvZiBhIGNvZGUgc21lbGwsIHlvdSBrbm93PyBVbnVzZWQgdmFyaWFibGVzIG9yIGZpZWxkcyBhcmUgcG90ZW50aWFsIHJlZCBmbGFncyDigJMgdGhleSBjb3VsZCBpbmRpY2F0ZSBkZWFkIGNvZGUsIGEgcmVmYWN0b3Jpbmcgb3ZlcnNpZ2h0LCBvciBwZXJoYXBzIHNvbWUgY29uZnVzaW9uIGluIHRoZSBkZXNpZ24uXG5cbk15IGltbWVkaWF0ZSB0aG91Z2h0IGlzLCBsZXQncyBicm9hZGVuIHRoZSBzY29wZS4gSXQncyBwb3NzaWJsZSB0aGF0IHdoaWxlIGl0J3Mgbm90IHVzZWQgKmhlcmUqLCBpbiB0aGlzIHNwZWNpZmljIGNvbXBvbmVudCwgaXQgbWlnaHQgYmUgdXNlZCBlbHNld2hlcmUgd2l0aGluIHRoZSBrZXJuZWwuIEJlZm9yZSBqdW1waW5nIHRvIGNvbmNsdXNpb25zIGFuZCBwb3NzaWJseSByZW1vdmluZyBpdCBwcmVtYXR1cmVseSwgSSBuZWVkIHRvIHBlcmZvcm0gYSBzeXN0ZW0td2lkZSBzZWFyY2guIEEgcXVpY2sgc2NhbiBjb3VsZCByZXZlYWwgaWYgaXQncyBsdXJraW5nIGVsc2V3aGVyZSwgcGVyaGFwcyBpbiBhIHJlbGF0ZWQgc3Vic3lzdGVtLiBJZiB0aGUgZmllbGQgKmlzKiBhY3R1YWxseSB1bnVzZWQgZXZlcnl3aGVyZSwgdGhlbiB3ZSd2ZSBnb3QgYSBkZWZpbml0ZSBwb2ludCB0byBpbnZlc3RpZ2F0ZTogd2UgY2FuIGVpdGhlciBkZWxldGUgaXQgb3IgbGVhdmUgaXQgYXMgaXMgaWYgaXQgaGFzIHNvbWUgcG90ZW50aWFsIGZvciBiZWluZyByZS11c2VkIGF0IGEgbGF0ZXIgdGltZS5cblxuXG4iLCJJbnB1dFRva2VucyI6MjE1OSwiT3V0cHV0VG9rZW5zIjoxOSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjM0LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE3VDA4OjEwOjI1Ljc0NzU3NzcxNFoiLCJTZXEiOjYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyMjg1MDc2MjgzLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImxhc3RfY2hlY2tfdGltZVwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9wZW5zYW5kby9pb25pYy9pb25pY19kZXYuYz0xMzg9c3RhdGljIGludCBpb25pY193YXRjaGRvZ19pbml0KHN0cnVjdCBpb25pYyAqaW9uaWMpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9wZW5zYW5kby9pb25pYy9pb25pY19kZXYuYy0xNDUtXFx0Lyogc2V0IHRpbWVzIHRvIGVuc3VyZSB0aGUgZmlyc3QgY2hlY2sgd2lsbCBwcm9jZWVkICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvcGVuc2FuZG8vaW9uaWMvaW9uaWNfZGV2LmM6MTQ2OlxcdGF0b21pY19sb25nX3NldChcXHUwMDI2aWRldi1cXHUwMDNlbGFzdF9jaGVja190aW1lLCBqaWZmaWVzIC0gMiAqIEhaKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9wZW5zYW5kby9pb25pYy9pb25pY19kZXYuYy0xNDctXFx0aWRldi1cXHUwMDNlbGFzdF9oYl90aW1lID0gamlmZmllcyAtIDIgKiBpb25pYy1cXHUwMDNld2F0Y2hkb2dfcGVyaW9kO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvcGVuc2FuZG8vaW9uaWMvaW9uaWNfZGV2LmM9NTAxPWludCBpb25pY19oZWFydGJlYXRfY2hlY2soc3RydWN0IGlvbmljICppb25pYylcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9wZW5zYW5kby9pb25pYy9pb25pY19kZXYuYy01MDIte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3BlbnNhbmRvL2lvbmljL2lvbmljX2Rldi5jOjUwMzpcXHR1bnNpZ25lZCBsb25nIGNoZWNrX3RpbWUsIGxhc3RfY2hlY2tfdGltZTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9wZW5zYW5kby9pb25pYy9pb25pY19kZXYuYy01MDQtXFx0c3RydWN0IGlvbmljX2RldiAqaWRldiA9IFxcdTAwMjZpb25pYy1cXHUwMDNlaWRldjtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3BlbnNhbmRvL2lvbmljL2lvbmljX2Rldi5jLTUxMy1cXHRjaGVja190aW1lID0gamlmZmllcztcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9wZW5zYW5kby9pb25pYy9pb25pY19kZXYuYzo1MTQ6XFx0bGFzdF9jaGVja190aW1lID0gYXRvbWljX2xvbmdfcmVhZChcXHUwMDI2aWRldi1cXHUwMDNlbGFzdF9jaGVja190aW1lKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9wZW5zYW5kby9pb25pYy9pb25pY19kZXYuYy01MTUtZG9fY2hlY2tfdGltZTpcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9wZW5zYW5kby9pb25pYy9pb25pY19kZXYuYzo1MTY6XFx0aWYgKHRpbWVfYmVmb3JlKGNoZWNrX3RpbWUsIGxhc3RfY2hlY2tfdGltZSArIEhaKSlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9wZW5zYW5kby9pb25pYy9pb25pY19kZXYuYy01MTctXFx0XFx0cmV0dXJuIDA7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvcGVuc2FuZG8vaW9uaWMvaW9uaWNfZGV2LmM6NTE4OlxcdGlmICghYXRvbWljX2xvbmdfdHJ5X2NtcHhjaGdfcmVsYXhlZChcXHUwMDI2aWRldi1cXHUwMDNlbGFzdF9jaGVja190aW1lLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3BlbnNhbmRvL2lvbmljL2lvbmljX2Rldi5jOjUxOTpcXHRcXHRcXHRcXHRcXHQgICAgIFxcdTAwMjZsYXN0X2NoZWNrX3RpbWUsIGNoZWNrX3RpbWUpKSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvcGVuc2FuZG8vaW9uaWMvaW9uaWNfZGV2LmMtNTIwLVxcdFxcdC8qIGlmIGNhbGxlZCBjb25jdXJyZW50bHksIG9ubHkgdGhlIGZpcnN0IHNob3VsZCBwcm9jZWVkLiAqL1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvcGVuc2FuZG8vaW9uaWMvaW9uaWNfZGV2LmMtNTk0LVxcdCAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3BlbnNhbmRvL2lvbmljL2lvbmljX2Rldi5jOjU5NTpcXHRsYXN0X2NoZWNrX3RpbWUgPSBpZGV2LVxcdTAwM2VsYXN0X2hiX3RpbWU7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvcGVuc2FuZG8vaW9uaWMvaW9uaWNfZGV2LmM6NTk2OlxcdGlmICh0aW1lX2JlZm9yZShjaGVja190aW1lLCBsYXN0X2NoZWNrX3RpbWUgKyBERVZDTURfVElNRU9VVCAqIDIgKiBIWikpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvcGVuc2FuZG8vaW9uaWMvaW9uaWNfZGV2LmMtNTk3LVxcdFxcdHJldHVybiAwO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvcGVuc2FuZG8vaW9uaWMvaW9uaWNfZGV2Lmg9MTU1PXN0cnVjdCBpb25pY19kZXYge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvcGVuc2FuZG8vaW9uaWMvaW9uaWNfZGV2LmgtMTU5LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3BlbnNhbmRvL2lvbmljL2lvbmljX2Rldi5oOjE2MDpcXHRhdG9taWNfbG9uZ190IGxhc3RfY2hlY2tfdGltZTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9wZW5zYW5kby9pb25pYy9pb25pY19kZXYuaC0xNjEtXFx0dW5zaWduZWQgbG9uZyBsYXN0X2hiX3RpbWU7XFxuLS1cXG5kcml2ZXJzL252bWUvaG9zdC9jb3JlLmM9NDY5PXN0YXRpYyB2b2lkIF9fbnZtZV9jb21wbGV0ZV9ycShzdHJ1Y3QgcmVxdWVzdCAqcmVxKVxcbi0tXFxuZHJpdmVycy9udm1lL2hvc3QvY29yZS5jLTQ4My1cXHRpZiAoY3RybC1cXHUwMDNla2FzIFxcdTAwMjZcXHUwMDI2XFxuZHJpdmVycy9udm1lL2hvc3QvY29yZS5jOjQ4NDpcXHQgICAgcmVxLVxcdTAwM2VkZWFkbGluZSAtIHJlcS1cXHUwMDNldGltZW91dCBcXHUwMDNlPSBjdHJsLVxcdTAwM2VrYV9sYXN0X2NoZWNrX3RpbWUpXFxuZHJpdmVycy9udm1lL2hvc3QvY29yZS5jLTQ4NS1cXHRcXHRjdHJsLVxcdTAwM2Vjb21wX3NlZW4gPSB0cnVlO1xcbi0tXFxuZHJpdmVycy9udm1lL2hvc3QvY29yZS5jPTEzMzc9c3RhdGljIHZvaWQgbnZtZV9xdWV1ZV9rZWVwX2FsaXZlX3dvcmsoc3RydWN0IG52bWVfY3RybCAqY3RybClcXG4tLVxcbmRyaXZlcnMvbnZtZS9ob3N0L2NvcmUuYy0xMzQwLVxcdHVuc2lnbmVkIGxvbmcgZGVsYXkgPSBudm1lX2tlZXBfYWxpdmVfd29ya19wZXJpb2QoY3RybCk7XFxuZHJpdmVycy9udm1lL2hvc3QvY29yZS5jOjEzNDE6XFx0dW5zaWduZWQgbG9uZyBrYV9uZXh0X2NoZWNrX3RtID0gY3RybC1cXHUwMDNla2FfbGFzdF9jaGVja190aW1lICsgZGVsYXk7XFxuZHJpdmVycy9udm1lL2hvc3QvY29yZS5jLTEzNDItXFxuLS1cXG5kcml2ZXJzL252bWUvaG9zdC9jb3JlLmM9MTM1MT1zdGF0aWMgZW51bSBycV9lbmRfaW9fcmV0IG52bWVfa2VlcF9hbGl2ZV9lbmRfaW8oc3RydWN0IHJlcXVlc3QgKnJxLFxcbi0tXFxuZHJpdmVycy9udm1lL2hvc3QvY29yZS5jLTEzODAtXFxuZHJpdmVycy9udm1lL2hvc3QvY29yZS5jOjEzODE6XFx0Y3RybC1cXHUwMDNla2FfbGFzdF9jaGVja190aW1lID0gamlmZmllcztcXG5kcml2ZXJzL252bWUvaG9zdC9jb3JlLmMtMTM4Mi1cXHRjdHJsLVxcdTAwM2Vjb21wX3NlZW4gPSBmYWxzZTtcXG4tLVxcbmRyaXZlcnMvbnZtZS9ob3N0L2NvcmUuYz0xMzg4PXN0YXRpYyB2b2lkIG52bWVfa2VlcF9hbGl2ZV93b3JrKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaylcXG4tLVxcbmRyaXZlcnMvbnZtZS9ob3N0L2NvcmUuYy0xMzk0LVxcbmRyaXZlcnMvbnZtZS9ob3N0L2NvcmUuYzoxMzk1OlxcdGN0cmwtXFx1MDAzZWthX2xhc3RfY2hlY2tfdGltZSA9IGppZmZpZXM7XFxuZHJpdmVycy9udm1lL2hvc3QvY29yZS5jLTEzOTYtXFxuLS1cXG5kcml2ZXJzL252bWUvaG9zdC9jb3JlLmM9NTE2MD1pbnQgbnZtZV9pbml0X2N0cmwoc3RydWN0IG52bWVfY3RybCAqY3RybCwgc3RydWN0IGRldmljZSAqZGV2LFxcbi0tXFxuZHJpdmVycy9udm1lL2hvc3QvY29yZS5jLTUxOTEtXFx0Y3RybC1cXHUwMDNla2FfY21kLmNvbW1vbi5vcGNvZGUgPSBudm1lX2FkbWluX2tlZXBfYWxpdmU7XFxuZHJpdmVycy9udm1lL2hvc3QvY29yZS5jOjUxOTI6XFx0Y3RybC1cXHUwMDNla2FfbGFzdF9jaGVja190aW1lID0gamlmZmllcztcXG5kcml2ZXJzL252bWUvaG9zdC9jb3JlLmMtNTE5My1cXHRjdHJsLVxcdTAwM2VhZG1pbl90aW1lb3V0ID0gTlZNRV9BRE1JTl9USU1FT1VUO1xcbi0tXFxuZHJpdmVycy9udm1lL2hvc3QvbnZtZS5oPTMzND1zdHJ1Y3QgbnZtZV9jdHJsIHtcXG4tLVxcbmRyaXZlcnMvbnZtZS9ob3N0L252bWUuaC00MTQtXFx0c3RydWN0IG52bWVfY29tbWFuZCBrYV9jbWQ7XFxuZHJpdmVycy9udm1lL2hvc3QvbnZtZS5oOjQxNTpcXHR1bnNpZ25lZCBsb25nIGthX2xhc3RfY2hlY2tfdGltZTtcXG5kcml2ZXJzL252bWUvaG9zdC9udm1lLmgtNDE2LVxcdHN0cnVjdCB3b3JrX3N0cnVjdCBmd19hY3Rfd29yaztcXG4tLVxcbmZzL2V4dDQvaW9jdGwuYz0xMjgxPXN0YXRpYyBpbnQgZXh0NF9pb2N0bF9nZXRfdHVuZV9zYihzdHJ1Y3QgZXh0NF9zYl9pbmZvICpzYmksXFxuLS1cXG5mcy9leHQ0L2lvY3RsLmMtMTI5Mi1cXHRyZXQuY2hlY2tpbnRlcnZhbCA9IGxlMzJfdG9fY3B1KGVzLVxcdTAwM2VzX2NoZWNraW50ZXJ2YWwpO1xcbmZzL2V4dDQvaW9jdGwuYzoxMjkzOlxcdHJldC5sYXN0X2NoZWNrX3RpbWUgPSBsZTMyX3RvX2NwdShlcy1cXHUwMDNlc19sYXN0Y2hlY2spO1xcbmZzL2V4dDQvaW9jdGwuYy0xMjk0LVxcdHJldC5yZXNlcnZlZF9ibG9ja3MgPSBleHQ0X3JfYmxvY2tzX2NvdW50KGVzKTtcXG4tLVxcbmZzL2V4dDQvaW9jdGwuYz0xMzE5PXN0YXRpYyB2b2lkIGV4dDRfc2Jfc2V0cGFyYW1zKHN0cnVjdCBleHQ0X3NiX2luZm8gKnNiaSxcXG4tLVxcbmZzL2V4dDQvaW9jdGwuYy0xMzMyLVxcdGlmIChwYXJhbXMtXFx1MDAzZXNldF9mbGFncyBcXHUwMDI2IEVYVDRfVFVORV9GTF9MQVNUX0NIRUNLX1RJTUUpXFxuZnMvZXh0NC9pb2N0bC5jOjEzMzM6XFx0XFx0ZXMtXFx1MDAzZXNfbGFzdGNoZWNrID0gY3B1X3RvX2xlMzIocGFyYW1zLVxcdTAwM2VsYXN0X2NoZWNrX3RpbWUpO1xcbmZzL2V4dDQvaW9jdGwuYy0xMzM0LVxcdGlmIChwYXJhbXMtXFx1MDAzZXNldF9mbGFncyBcXHUwMDI2IEVYVDRfVFVORV9GTF9SRVNFUlZFRF9CTE9DS1MpIHtcXG4tLVxcbmluY2x1ZGUvdWFwaS9saW51eC9leHQ0Lmg9MTEzPXN0cnVjdCBleHQ0X3R1bmVfc2JfcGFyYW1zIHtcXG4tLVxcbmluY2x1ZGUvdWFwaS9saW51eC9leHQ0LmgtMTE5LVxcdF9fdTE2IHJhaWRfc3RyaWRlO1xcbmluY2x1ZGUvdWFwaS9saW51eC9leHQ0Lmg6MTIwOlxcdF9fdTY0IGxhc3RfY2hlY2tfdGltZTtcXG5pbmNsdWRlL3VhcGkvbGludXgvZXh0NC5oLTEyMS1cXHRfX3U2NCByZXNlcnZlZF9ibG9ja3M7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE3VDA4OjEwOjI4LjAzMjY1ODkyNloiLCJTZXEiOjcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjczNTQxNTIwOTcsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIGEgVGhyb3R0bGluZyBQYXRjaCoqXG5cbk9rYXksIHNvIHRoaXMgcGF0Y2ggaXMgcHJldHR5IHN0cmFpZ2h0Zm9yd2FyZC4gSXQgbG9va3MgbGlrZSB0aGUgb25seSBjaGFuZ2UgaXMgdGhlIHJlbW92YWwgb2YgYGxhc3RfY2hlY2tfdGltZWAgZnJvbSBgc3RydWN0IHRocm90bF9ncnBgIGluIGBibG9jay9ibGstdGhyb3R0bGUuaGAuIEhtbSwgbGV0IG1lIGRvdWJsZS1jaGVjayB0aGF0Li4uIHllcCwgdGhhdCdzIGl0LiBObyBvdGhlciBmaWxlcyBhcmUgdG91Y2hlZC5cblxuTm93LCBsZXQncyB0aGluayBhYm91dCB0aGlzLiBJdCdzIGp1c3QgcmVtb3ZpbmcgYW4gdW51c2VkIGZpZWxkIGZyb20gYSBzdHJ1Y3QgZGVmaW5pdGlvbi4gSXQncyBoaWdobHkgbGlrZWx5IHRoaXMgZmllbGQgd2FzIHVzZWQgYXQgc29tZSBwb2ludCwgYnV0IGlzbid0IGFueW1vcmUg4oCTIHRoaXMgaXMgYSBzaW1wbGUgY2xlYW51cC4gU2luY2UgaXQgKmp1c3QqIHJlbW92ZXMgdGhpcyBmaWVsZCwgdGhlcmUgc2hvdWxkbid0IGJlIGFueSBmdW5jdGlvbmFsIGNoYW5nZXMgaW4gdGhlIGtlcm5lbCB0aGF0IHdhcnJhbnQgZnV6emluZy4gXG5cbldhaXQuLi4gcmVtb3ZpbmcgYSBmaWVsZCAqZG9lcyogY2hhbmdlIHRoZSBzdHJ1Y3Qgc2l6ZSwgYnV0IHRoaXMgaXMgc3RpbGwganVzdCBhIGNsZWFudXAuIEknbSBnb2luZyB0byBsZWFuIHRvd2FyZHMgcmV0dXJuaW5nIGBXb3J0aEZ1enppbmc9ZmFsc2VgIGhlcmUsIGJlY2F1c2UgaXQgaXMgYSBub24tZnVuY3Rpb25hbCBjaGFuZ2UsIHB1cmVseSBhYm91dCByZW1vdmluZyBhbiB1bnVzZWQgc3RydWN0IG1lbWJlci5cblxuQnV0LCBJIHNob3VsZCBwcm9iYWJseSBkb3VibGUtY2hlY2sgdGhhdCBgbGFzdF9jaGVja190aW1lYCBpc24ndCBhY3R1YWxseSAqdXNlZCogYW55d2hlcmUgaW4gYGJsb2NrL2Jsay10aHJvdHRsZS5jYCwganVzdCB0byBiZSBhYnNvbHV0ZWx5IGNlcnRhaW4uIEkgZGlkIGdyZXAgZm9yIGBsYXN0X2NoZWNrX3RpbWVgIGluIHRoZSBgYmxvY2svYCBkaXJlY3RvcnkgZWFybGllciwgYW5kIGdvdCBubyBoaXRzLCBzbyBpdCdzIGRlZmluaXRlbHkgdW51c2VkLlxuXG5UaGVyZWZvcmUsIG15IHJlYXNvbmluZyBpcyB0aGF0IHRoZSBwYXRjaCAqb25seSogcmVtb3ZlcyB0aGUgdW51c2VkIGBsYXN0X2NoZWNrX3RpbWVgIGZpZWxkIGZyb20gYHN0cnVjdCB0aHJvdGxfZ3JwYC4gSXQgaGFzIG5vIGltcGFjdCBvbiBleGVjdXRpb24gZmxvdyBvciBhbnkgZnVuY3Rpb25hbCBsb2dpYy5cbmBXb3J0aEZ1enppbmdgIHNob3VsZCBiZSBgRmFsc2VgLlxuXG5cbiIsIklucHV0VG9rZW5zIjo0NDc0LCJPdXRwdXRUb2tlbnMiOjY0LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MzgxLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE3VDA4OjEwOjM1LjM4NjgxMzE4NFoiLCJTZXEiOjgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InNldC1yZXN1bHRzIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MzQyMTAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggc2ltcGx5IHJlbW92ZXMgYW4gdW51c2VkIGZpZWxkIGBsYXN0X2NoZWNrX3RpbWVgIGZyb20gYHN0cnVjdCB0aHJvdGxfZ3JwYC4gSXQgZG9lcyBub3QgYWx0ZXIgYW55IGV4ZWN1dGlvbiBmbG93IG9yIGZ1bmN0aW9uYWwgbG9naWMuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBzaW1wbHkgcmVtb3ZlcyBhbiB1bnVzZWQgZmllbGQgYGxhc3RfY2hlY2tfdGltZWAgZnJvbSBgc3RydWN0IHRocm90bF9ncnBgLiBJdCBkb2VzIG5vdCBhbHRlciBhbnkgZXhlY3V0aW9uIGZsb3cgb3IgZnVuY3Rpb25hbCBsb2dpYy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/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-workflowjpqjl[0].run-triage(0) Phase: Succeeded StartedAt: 2026-07-17 07:18:33 +0000 UTC FinishedAt: 2026-07-17 08:10:37 +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+CgkJCTx0ZD4yMDI2LzA3LzE3IDA4OjEwPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIHNpbXBseSByZW1vdmVzIGFuIHVudXNlZCBmaWVsZCBgbGFzdF9jaGVja190aW1lYCBmcm9tIGBzdHJ1Y3QgdGhyb3RsX2dycGAuIEl0IGRvZXMgbm90IGFsdGVyIGFueSBleGVjdXRpb24gZmxvdyBvciBmdW5jdGlvbmFsIGxvZ2ljLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNyAwODoxMDwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IGU2NjMwNzgxYTQ0YjcyOWQwYmMyYjc4NjJlMTk2MTFlMjA4NjdhODhcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgRnJpIEp1bCAxNyAwODoxMDoxNiAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9ibG9jay9ibGstdGhyb3R0bGUuaCBiL2Jsb2NrL2Jsay10aHJvdHRsZS5oXG5pbmRleCA5ZDdhNDJjMDM5YTE1ZS4uMWI1Nzc1NzcxZTA3OGUgMTAwNjQ0XG4tLS0gYS9ibG9jay9ibGstdGhyb3R0bGUuaFxuJiM0MzsmIzQzOyYjNDM7IGIvYmxvY2svYmxrLXRocm90dGxlLmhcbkBAIC0xMjAsOCAmIzQzOzEyMCw2IEBAIHN0cnVjdCB0aHJvdGxfZ3JwIHtcbiBcdGludDY0X3QgYnl0ZXNfZGlzcFsyXTtcbiBcdGludCBpb19kaXNwWzJdO1xuIFxuLVx0dW5zaWduZWQgbG9uZyBsYXN0X2NoZWNrX3RpbWU7XG4tXG4gXHQvKiBXaGVuIGRpZCB3ZSBzdGFydCBhIG5ldyBzbGljZSAqL1xuIFx0dW5zaWduZWQgbG9uZyBzbGljZV9zdGFydFsyXTtcbiBcdHVuc2lnbmVkIGxvbmcgc2xpY2VfZW5kWzJdO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE3IDA4OjEwPC90ZD4KCQkJPHRkPmFnZW50PC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIHNpbXBseSByZW1vdmVzIGFuIHVudXNlZCBmaWVsZCBgbGFzdF9jaGVja190aW1lYCBmcm9tIGBzdHJ1Y3QgdGhyb3RsX2dycGAuIEl0IGRvZXMgbm90IGFsdGVyIGFueSBleGVjdXRpb24gZmxvdyBvciBmdW5jdGlvbmFsIGxvZ2ljLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkluc3RydWN0aW9uOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+WW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuCllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lCmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC4KCklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpbgp5b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHkKdXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy4KClJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6Ci0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy4KLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy4KLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuCi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLApldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuCgpJZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoCnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLgoKV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086CjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuCiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLgoyLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS4KICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLgogICBEbyBub3QgbGlzdCB0b28gZ2VuZXJpYyBjb25maWdzICh3ZSBhbHJlYWR5IGhhdmUgdGhlbSBlbmFibGVkKS4gT25seSBsaXN0IHRob3NlIHRoYXQKICAgc3BlY2lmaWNhbGx5IGNvdmVyIHRoZSBtb2RpZmllZCBjb2RlLiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3Mgb3V0cHV0IGFycmF5LAogICBhbmQgRE8gTk9UIGFkZCBhICYjMzk7Q09ORklHXyYjMzk7IHByZWZpeCAoZS5nLiwgcmV0dXJuICYjMzQ7TkVUX0lQVjQmIzM0OyBpbnN0ZWFkIG9mICYjMzQ7Q09ORklHX05FVF9JUFY0JiMzNDspLgpQcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy4KCgpVc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLgpJdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS4KSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlByb21wdDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOgpjb21taXQgZTY2MzA3ODFhNDRiNzI5ZDBiYzJiNzg2MmUxOTYxMWUyMDg2N2E4OApBdXRob3I6IHN5ei1jbHVzdGVyICZsdDt0cmlhZ2VAc3l6a2FsbGVyLmNvbSZndDsKRGF0ZTogICBGcmkgSnVsIDE3IDA4OjEwOjE2IDIwMjYgJiM0MzswMDAwCgogICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3CgpkaWZmIC0tZ2l0IGEvYmxvY2svYmxrLXRocm90dGxlLmggYi9ibG9jay9ibGstdGhyb3R0bGUuaAppbmRleCA5ZDdhNDJjMDM5YTE1ZS4uMWI1Nzc1NzcxZTA3OGUgMTAwNjQ0Ci0tLSBhL2Jsb2NrL2Jsay10aHJvdHRsZS5oCiYjNDM7JiM0MzsmIzQzOyBiL2Jsb2NrL2Jsay10aHJvdHRsZS5oCkBAIC0xMjAsOCAmIzQzOzEyMCw2IEBAIHN0cnVjdCB0aHJvdGxfZ3JwIHsKIAlpbnQ2NF90IGJ5dGVzX2Rpc3BbMl07CiAJaW50IGlvX2Rpc3BbMl07CiAKLQl1bnNpZ25lZCBsb25nIGxhc3RfY2hlY2tfdGltZTsKLQogCS8qIFdoZW4gZGlkIHdlIHN0YXJ0IGEgbmV3IHNsaWNlICovCiAJdW5zaWduZWQgbG9uZyBzbGljZV9zdGFydFsyXTsKIAl1bnNpZ25lZCBsb25nIHNsaWNlX2VuZFsyXTsKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTcgMDg6MTA8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTgwMwoJCQkJCQkJb3V0cHV0OiAyNwoJCQkJCQkJdGhvdWdodHM6IDg0CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgSW1wYWN0IG9mIGEgVGhyb3R0bGluZyBQYXRjaCoqCgpPa2F5LCBzbyB3ZSYjMzk7dmUgZ290IHRoaXMgcGF0Y2gg4oCTIGEgcHJldHR5IHN0cmFpZ2h0Zm9yd2FyZCBvbmUsIHJlYWxseS4gSXQgcmVtb3ZlcyB0aGUgYGxhc3RfY2hlY2tfdGltZWAgZmllbGQgZnJvbSB0aGUgYHN0cnVjdCB0aHJvdGxfZ3JwYCBkZWZpbml0aW9uIGluIGBibG9jay9ibGstdGhyb3R0bGUuaGAuIE15IGltbWVkaWF0ZSB0aG91Z2h0IGlzLCAmIzM0O0lzIHRoaXMgYSBzaW1wbGUgY2xlYW51cCwgb3IgZG9lcyB0aGlzIGhhdmUgd2lkZXIgaW1wbGljYXRpb25zPyYjMzQ7IFdlIG5lZWQgdG8gYmUgYWJzb2x1dGVseSBzdXJlIHRoaXMgZmllbGQgaXNu4oCZdCBiZWluZyB1c2VkIGVsc2V3aGVyZSBiZWZvcmUgd2UgbWVyZ2UgdGhpcy4gSXQmIzM5O3MgZWFzeSB0byBtYWtlIGFzc3VtcHRpb25zLCBidXQgdGhhdCYjMzk7cyBhIHJlY2lwZSBmb3IgaGVhZGFjaGVzIGxhdGVyLgoKTXkgc3RyYXRlZ3kgaXMgY2xlYXI6IHRpbWUgdG8gZGVwbG95IHRoZSB0cnVzdHkgYGdyZXBwZXJgIHRvb2wuIEkmIzM5O2xsIGZvY3VzIG15IHNlYXJjaCBvbiBgYmxvY2svYmxrLXRocm90dGxlLmNgIGluaXRpYWxseSwgc2luY2UgdGhhdCYjMzk7cyB3aGVyZSB0aGUgZGVmaW5pdGlvbiBsaXZlcywgYW5kIEkmIzM5O2QgZXhwZWN0IGl0IHRvIGJlIHVzZWQgdGhlcmUsIGlmIGFueXdoZXJlLiBCdXQgdG8gYmUgc2FmZSwgSSYjMzk7bGwgZXhwYW5kIHRoZSBzZWFyY2ggdG8gdGhlIHJlc3Qgb2YgdGhlIHJlbGV2YW50IGNvZGUgYmFzZS4gSSBuZWVkIHRvIGdldCBhIGNvbXBsZXRlIHBpY3R1cmUuIFNvLCBJJiMzOTtsbCBleHBhbmQgdGhlIHNlYXJjaCB0byBvdGhlciBmaWxlcyB0byBjb25maXJtIHRoYXQgdGhpcyBpcyBhIHNhZmUgcmVtb3ZhbCBhbmQgbm90IGJyZWFraW5nIGFueSB1bmRlcmx5aW5nIGFzc3VtcHRpb25zIG9yIGxvZ2ljLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE3IDA4OjEwPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5FcnJvcjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm5vIG1hdGNoZXM8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7bGFzdF9jaGVja190aW1lJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7YmxvY2svJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O2Vycm9yJiMzNDs6ICYjMzQ7bm8gbWF0Y2hlcyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNyAwODoxMDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyMTU5CgkJCQkJCQlvdXRwdXQ6IDE5CgkJCQkJCQl0aG91Z2h0czogMzQKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqSW52ZXN0aWdhdGluZyB0aGUgVW51c2VkIEZpZWxkKioKCk9rYXksIHNvIEkmIzM5O20gdGFraW5nIGEgbG9vayBhdCB0aGlzIGBibG9jay9gIGNvZGUsIGFuZCBJJiMzOTt2ZSBub3RpY2VkIHNvbWV0aGluZyB0aGF0IGltbWVkaWF0ZWx5IHBpcXVlZCBteSBpbnRlcmVzdC4gVGhlIGBsYXN0X2NoZWNrX3RpbWVgIGZpZWxkLCB3aXRoaW4gdGhpcyBzcGVjaWZpYyBibG9jayBvZiBjb2RlLCBkb2VzbiYjMzk7dCBhcHBlYXIgdG8gYmUgcmVmZXJlbmNlZCBhdCBhbGwuIEl0JiMzOTtzIGEgYml0IG9mIGEgY29kZSBzbWVsbCwgeW91IGtub3c/IFVudXNlZCB2YXJpYWJsZXMgb3IgZmllbGRzIGFyZSBwb3RlbnRpYWwgcmVkIGZsYWdzIOKAkyB0aGV5IGNvdWxkIGluZGljYXRlIGRlYWQgY29kZSwgYSByZWZhY3RvcmluZyBvdmVyc2lnaHQsIG9yIHBlcmhhcHMgc29tZSBjb25mdXNpb24gaW4gdGhlIGRlc2lnbi4KCk15IGltbWVkaWF0ZSB0aG91Z2h0IGlzLCBsZXQmIzM5O3MgYnJvYWRlbiB0aGUgc2NvcGUuIEl0JiMzOTtzIHBvc3NpYmxlIHRoYXQgd2hpbGUgaXQmIzM5O3Mgbm90IHVzZWQgKmhlcmUqLCBpbiB0aGlzIHNwZWNpZmljIGNvbXBvbmVudCwgaXQgbWlnaHQgYmUgdXNlZCBlbHNld2hlcmUgd2l0aGluIHRoZSBrZXJuZWwuIEJlZm9yZSBqdW1waW5nIHRvIGNvbmNsdXNpb25zIGFuZCBwb3NzaWJseSByZW1vdmluZyBpdCBwcmVtYXR1cmVseSwgSSBuZWVkIHRvIHBlcmZvcm0gYSBzeXN0ZW0td2lkZSBzZWFyY2guIEEgcXVpY2sgc2NhbiBjb3VsZCByZXZlYWwgaWYgaXQmIzM5O3MgbHVya2luZyBlbHNld2hlcmUsIHBlcmhhcHMgaW4gYSByZWxhdGVkIHN1YnN5c3RlbS4gSWYgdGhlIGZpZWxkICppcyogYWN0dWFsbHkgdW51c2VkIGV2ZXJ5d2hlcmUsIHRoZW4gd2UmIzM5O3ZlIGdvdCBhIGRlZmluaXRlIHBvaW50IHRvIGludmVzdGlnYXRlOiB3ZSBjYW4gZWl0aGVyIGRlbGV0ZSBpdCBvciBsZWF2ZSBpdCBhcyBpcyBpZiBpdCBoYXMgc29tZSBwb3RlbnRpYWwgZm9yIGJlaW5nIHJlLXVzZWQgYXQgYSBsYXRlciB0aW1lLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE3IDA4OjEwPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2xhc3RfY2hlY2tfdGltZSYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9wZW5zYW5kby9pb25pYy9pb25pY19kZXYuYz0xMzg9c3RhdGljIGludCBpb25pY193YXRjaGRvZ19pbml0KHN0cnVjdCBpb25pYyAqaW9uaWMpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvcGVuc2FuZG8vaW9uaWMvaW9uaWNfZGV2LmMtMTQ1LVx0Lyogc2V0IHRpbWVzIHRvIGVuc3VyZSB0aGUgZmlyc3QgY2hlY2sgd2lsbCBwcm9jZWVkICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9wZW5zYW5kby9pb25pYy9pb25pY19kZXYuYzoxNDY6XHRhdG9taWNfbG9uZ19zZXQoXHUwMDI2aWRldi1cdTAwM2VsYXN0X2NoZWNrX3RpbWUsIGppZmZpZXMgLSAyICogSFopO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvcGVuc2FuZG8vaW9uaWMvaW9uaWNfZGV2LmMtMTQ3LVx0aWRldi1cdTAwM2VsYXN0X2hiX3RpbWUgPSBqaWZmaWVzIC0gMiAqIGlvbmljLVx1MDAzZXdhdGNoZG9nX3BlcmlvZDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9wZW5zYW5kby9pb25pYy9pb25pY19kZXYuYz01MDE9aW50IGlvbmljX2hlYXJ0YmVhdF9jaGVjayhzdHJ1Y3QgaW9uaWMgKmlvbmljKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvcGVuc2FuZG8vaW9uaWMvaW9uaWNfZGV2LmMtNTAyLXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3BlbnNhbmRvL2lvbmljL2lvbmljX2Rldi5jOjUwMzpcdHVuc2lnbmVkIGxvbmcgY2hlY2tfdGltZSwgbGFzdF9jaGVja190aW1lO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvcGVuc2FuZG8vaW9uaWMvaW9uaWNfZGV2LmMtNTA0LVx0c3RydWN0IGlvbmljX2RldiAqaWRldiA9IFx1MDAyNmlvbmljLVx1MDAzZWlkZXY7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvcGVuc2FuZG8vaW9uaWMvaW9uaWNfZGV2LmMtNTEzLVx0Y2hlY2tfdGltZSA9IGppZmZpZXM7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9wZW5zYW5kby9pb25pYy9pb25pY19kZXYuYzo1MTQ6XHRsYXN0X2NoZWNrX3RpbWUgPSBhdG9taWNfbG9uZ19yZWFkKFx1MDAyNmlkZXYtXHUwMDNlbGFzdF9jaGVja190aW1lKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3BlbnNhbmRvL2lvbmljL2lvbmljX2Rldi5jLTUxNS1kb19jaGVja190aW1lOlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvcGVuc2FuZG8vaW9uaWMvaW9uaWNfZGV2LmM6NTE2Olx0aWYgKHRpbWVfYmVmb3JlKGNoZWNrX3RpbWUsIGxhc3RfY2hlY2tfdGltZSAmIzQzOyBIWikpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9wZW5zYW5kby9pb25pYy9pb25pY19kZXYuYy01MTctXHRcdHJldHVybiAwO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvcGVuc2FuZG8vaW9uaWMvaW9uaWNfZGV2LmM6NTE4Olx0aWYgKCFhdG9taWNfbG9uZ190cnlfY21weGNoZ19yZWxheGVkKFx1MDAyNmlkZXYtXHUwMDNlbGFzdF9jaGVja190aW1lLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvcGVuc2FuZG8vaW9uaWMvaW9uaWNfZGV2LmM6NTE5Olx0XHRcdFx0XHQgICAgIFx1MDAyNmxhc3RfY2hlY2tfdGltZSwgY2hlY2tfdGltZSkpIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3BlbnNhbmRvL2lvbmljL2lvbmljX2Rldi5jLTUyMC1cdFx0LyogaWYgY2FsbGVkIGNvbmN1cnJlbnRseSwgb25seSB0aGUgZmlyc3Qgc2hvdWxkIHByb2NlZWQuICovXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvcGVuc2FuZG8vaW9uaWMvaW9uaWNfZGV2LmMtNTk0LVx0ICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9wZW5zYW5kby9pb25pYy9pb25pY19kZXYuYzo1OTU6XHRsYXN0X2NoZWNrX3RpbWUgPSBpZGV2LVx1MDAzZWxhc3RfaGJfdGltZTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3BlbnNhbmRvL2lvbmljL2lvbmljX2Rldi5jOjU5NjpcdGlmICh0aW1lX2JlZm9yZShjaGVja190aW1lLCBsYXN0X2NoZWNrX3RpbWUgJiM0MzsgREVWQ01EX1RJTUVPVVQgKiAyICogSFopKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvcGVuc2FuZG8vaW9uaWMvaW9uaWNfZGV2LmMtNTk3LVx0XHRyZXR1cm4gMDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9wZW5zYW5kby9pb25pYy9pb25pY19kZXYuaD0xNTU9c3RydWN0IGlvbmljX2RldiB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvcGVuc2FuZG8vaW9uaWMvaW9uaWNfZGV2LmgtMTU5LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvcGVuc2FuZG8vaW9uaWMvaW9uaWNfZGV2Lmg6MTYwOlx0YXRvbWljX2xvbmdfdCBsYXN0X2NoZWNrX3RpbWU7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9wZW5zYW5kby9pb25pYy9pb25pY19kZXYuaC0xNjEtXHR1bnNpZ25lZCBsb25nIGxhc3RfaGJfdGltZTtcbi0tXG5kcml2ZXJzL252bWUvaG9zdC9jb3JlLmM9NDY5PXN0YXRpYyB2b2lkIF9fbnZtZV9jb21wbGV0ZV9ycShzdHJ1Y3QgcmVxdWVzdCAqcmVxKVxuLS1cbmRyaXZlcnMvbnZtZS9ob3N0L2NvcmUuYy00ODMtXHRpZiAoY3RybC1cdTAwM2VrYXMgXHUwMDI2XHUwMDI2XG5kcml2ZXJzL252bWUvaG9zdC9jb3JlLmM6NDg0Olx0ICAgIHJlcS1cdTAwM2VkZWFkbGluZSAtIHJlcS1cdTAwM2V0aW1lb3V0IFx1MDAzZT0gY3RybC1cdTAwM2VrYV9sYXN0X2NoZWNrX3RpbWUpXG5kcml2ZXJzL252bWUvaG9zdC9jb3JlLmMtNDg1LVx0XHRjdHJsLVx1MDAzZWNvbXBfc2VlbiA9IHRydWU7XG4tLVxuZHJpdmVycy9udm1lL2hvc3QvY29yZS5jPTEzMzc9c3RhdGljIHZvaWQgbnZtZV9xdWV1ZV9rZWVwX2FsaXZlX3dvcmsoc3RydWN0IG52bWVfY3RybCAqY3RybClcbi0tXG5kcml2ZXJzL252bWUvaG9zdC9jb3JlLmMtMTM0MC1cdHVuc2lnbmVkIGxvbmcgZGVsYXkgPSBudm1lX2tlZXBfYWxpdmVfd29ya19wZXJpb2QoY3RybCk7XG5kcml2ZXJzL252bWUvaG9zdC9jb3JlLmM6MTM0MTpcdHVuc2lnbmVkIGxvbmcga2FfbmV4dF9jaGVja190bSA9IGN0cmwtXHUwMDNla2FfbGFzdF9jaGVja190aW1lICYjNDM7IGRlbGF5O1xuZHJpdmVycy9udm1lL2hvc3QvY29yZS5jLTEzNDItXG4tLVxuZHJpdmVycy9udm1lL2hvc3QvY29yZS5jPTEzNTE9c3RhdGljIGVudW0gcnFfZW5kX2lvX3JldCBudm1lX2tlZXBfYWxpdmVfZW5kX2lvKHN0cnVjdCByZXF1ZXN0ICpycSxcbi0tXG5kcml2ZXJzL252bWUvaG9zdC9jb3JlLmMtMTM4MC1cbmRyaXZlcnMvbnZtZS9ob3N0L2NvcmUuYzoxMzgxOlx0Y3RybC1cdTAwM2VrYV9sYXN0X2NoZWNrX3RpbWUgPSBqaWZmaWVzO1xuZHJpdmVycy9udm1lL2hvc3QvY29yZS5jLTEzODItXHRjdHJsLVx1MDAzZWNvbXBfc2VlbiA9IGZhbHNlO1xuLS1cbmRyaXZlcnMvbnZtZS9ob3N0L2NvcmUuYz0xMzg4PXN0YXRpYyB2b2lkIG52bWVfa2VlcF9hbGl2ZV93b3JrKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaylcbi0tXG5kcml2ZXJzL252bWUvaG9zdC9jb3JlLmMtMTM5NC1cbmRyaXZlcnMvbnZtZS9ob3N0L2NvcmUuYzoxMzk1Olx0Y3RybC1cdTAwM2VrYV9sYXN0X2NoZWNrX3RpbWUgPSBqaWZmaWVzO1xuZHJpdmVycy9udm1lL2hvc3QvY29yZS5jLTEzOTYtXG4tLVxuZHJpdmVycy9udm1lL2hvc3QvY29yZS5jPTUxNjA9aW50IG52bWVfaW5pdF9jdHJsKHN0cnVjdCBudm1lX2N0cmwgKmN0cmwsIHN0cnVjdCBkZXZpY2UgKmRldixcbi0tXG5kcml2ZXJzL252bWUvaG9zdC9jb3JlLmMtNTE5MS1cdGN0cmwtXHUwMDNla2FfY21kLmNvbW1vbi5vcGNvZGUgPSBudm1lX2FkbWluX2tlZXBfYWxpdmU7XG5kcml2ZXJzL252bWUvaG9zdC9jb3JlLmM6NTE5MjpcdGN0cmwtXHUwMDNla2FfbGFzdF9jaGVja190aW1lID0gamlmZmllcztcbmRyaXZlcnMvbnZtZS9ob3N0L2NvcmUuYy01MTkzLVx0Y3RybC1cdTAwM2VhZG1pbl90aW1lb3V0ID0gTlZNRV9BRE1JTl9USU1FT1VUO1xuLS1cbmRyaXZlcnMvbnZtZS9ob3N0L252bWUuaD0zMzQ9c3RydWN0IG52bWVfY3RybCB7XG4tLVxuZHJpdmVycy9udm1lL2hvc3QvbnZtZS5oLTQxNC1cdHN0cnVjdCBudm1lX2NvbW1hbmQga2FfY21kO1xuZHJpdmVycy9udm1lL2hvc3QvbnZtZS5oOjQxNTpcdHVuc2lnbmVkIGxvbmcga2FfbGFzdF9jaGVja190aW1lO1xuZHJpdmVycy9udm1lL2hvc3QvbnZtZS5oLTQxNi1cdHN0cnVjdCB3b3JrX3N0cnVjdCBmd19hY3Rfd29yaztcbi0tXG5mcy9leHQ0L2lvY3RsLmM9MTI4MT1zdGF0aWMgaW50IGV4dDRfaW9jdGxfZ2V0X3R1bmVfc2Ioc3RydWN0IGV4dDRfc2JfaW5mbyAqc2JpLFxuLS1cbmZzL2V4dDQvaW9jdGwuYy0xMjkyLVx0cmV0LmNoZWNraW50ZXJ2YWwgPSBsZTMyX3RvX2NwdShlcy1cdTAwM2VzX2NoZWNraW50ZXJ2YWwpO1xuZnMvZXh0NC9pb2N0bC5jOjEyOTM6XHRyZXQubGFzdF9jaGVja190aW1lID0gbGUzMl90b19jcHUoZXMtXHUwMDNlc19sYXN0Y2hlY2spO1xuZnMvZXh0NC9pb2N0bC5jLTEyOTQtXHRyZXQucmVzZXJ2ZWRfYmxvY2tzID0gZXh0NF9yX2Jsb2Nrc19jb3VudChlcyk7XG4tLVxuZnMvZXh0NC9pb2N0bC5jPTEzMTk9c3RhdGljIHZvaWQgZXh0NF9zYl9zZXRwYXJhbXMoc3RydWN0IGV4dDRfc2JfaW5mbyAqc2JpLFxuLS1cbmZzL2V4dDQvaW9jdGwuYy0xMzMyLVx0aWYgKHBhcmFtcy1cdTAwM2VzZXRfZmxhZ3MgXHUwMDI2IEVYVDRfVFVORV9GTF9MQVNUX0NIRUNLX1RJTUUpXG5mcy9leHQ0L2lvY3RsLmM6MTMzMzpcdFx0ZXMtXHUwMDNlc19sYXN0Y2hlY2sgPSBjcHVfdG9fbGUzMihwYXJhbXMtXHUwMDNlbGFzdF9jaGVja190aW1lKTtcbmZzL2V4dDQvaW9jdGwuYy0xMzM0LVx0aWYgKHBhcmFtcy1cdTAwM2VzZXRfZmxhZ3MgXHUwMDI2IEVYVDRfVFVORV9GTF9SRVNFUlZFRF9CTE9DS1MpIHtcbi0tXG5pbmNsdWRlL3VhcGkvbGludXgvZXh0NC5oPTExMz1zdHJ1Y3QgZXh0NF90dW5lX3NiX3BhcmFtcyB7XG4tLVxuaW5jbHVkZS91YXBpL2xpbnV4L2V4dDQuaC0xMTktXHRfX3UxNiByYWlkX3N0cmlkZTtcbmluY2x1ZGUvdWFwaS9saW51eC9leHQ0Lmg6MTIwOlx0X191NjQgbGFzdF9jaGVja190aW1lO1xuaW5jbHVkZS91YXBpL2xpbnV4L2V4dDQuaC0xMjEtXHRfX3U2NCByZXNlcnZlZF9ibG9ja3M7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ny8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTcgMDg6MTA8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNDQ3NAoJCQkJCQkJb3V0cHV0OiA2NAoJCQkJCQkJdGhvdWdodHM6IDM4MQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgYSBUaHJvdHRsaW5nIFBhdGNoKioKCk9rYXksIHNvIHRoaXMgcGF0Y2ggaXMgcHJldHR5IHN0cmFpZ2h0Zm9yd2FyZC4gSXQgbG9va3MgbGlrZSB0aGUgb25seSBjaGFuZ2UgaXMgdGhlIHJlbW92YWwgb2YgYGxhc3RfY2hlY2tfdGltZWAgZnJvbSBgc3RydWN0IHRocm90bF9ncnBgIGluIGBibG9jay9ibGstdGhyb3R0bGUuaGAuIEhtbSwgbGV0IG1lIGRvdWJsZS1jaGVjayB0aGF0Li4uIHllcCwgdGhhdCYjMzk7cyBpdC4gTm8gb3RoZXIgZmlsZXMgYXJlIHRvdWNoZWQuCgpOb3csIGxldCYjMzk7cyB0aGluayBhYm91dCB0aGlzLiBJdCYjMzk7cyBqdXN0IHJlbW92aW5nIGFuIHVudXNlZCBmaWVsZCBmcm9tIGEgc3RydWN0IGRlZmluaXRpb24uIEl0JiMzOTtzIGhpZ2hseSBsaWtlbHkgdGhpcyBmaWVsZCB3YXMgdXNlZCBhdCBzb21lIHBvaW50LCBidXQgaXNuJiMzOTt0IGFueW1vcmUg4oCTIHRoaXMgaXMgYSBzaW1wbGUgY2xlYW51cC4gU2luY2UgaXQgKmp1c3QqIHJlbW92ZXMgdGhpcyBmaWVsZCwgdGhlcmUgc2hvdWxkbiYjMzk7dCBiZSBhbnkgZnVuY3Rpb25hbCBjaGFuZ2VzIGluIHRoZSBrZXJuZWwgdGhhdCB3YXJyYW50IGZ1enppbmcuIAoKV2FpdC4uLiByZW1vdmluZyBhIGZpZWxkICpkb2VzKiBjaGFuZ2UgdGhlIHN0cnVjdCBzaXplLCBidXQgdGhpcyBpcyBzdGlsbCBqdXN0IGEgY2xlYW51cC4gSSYjMzk7bSBnb2luZyB0byBsZWFuIHRvd2FyZHMgcmV0dXJuaW5nIGBXb3J0aEZ1enppbmc9ZmFsc2VgIGhlcmUsIGJlY2F1c2UgaXQgaXMgYSBub24tZnVuY3Rpb25hbCBjaGFuZ2UsIHB1cmVseSBhYm91dCByZW1vdmluZyBhbiB1bnVzZWQgc3RydWN0IG1lbWJlci4KCkJ1dCwgSSBzaG91bGQgcHJvYmFibHkgZG91YmxlLWNoZWNrIHRoYXQgYGxhc3RfY2hlY2tfdGltZWAgaXNuJiMzOTt0IGFjdHVhbGx5ICp1c2VkKiBhbnl3aGVyZSBpbiBgYmxvY2svYmxrLXRocm90dGxlLmNgLCBqdXN0IHRvIGJlIGFic29sdXRlbHkgY2VydGFpbi4gSSBkaWQgZ3JlcCBmb3IgYGxhc3RfY2hlY2tfdGltZWAgaW4gdGhlIGBibG9jay9gIGRpcmVjdG9yeSBlYXJsaWVyLCBhbmQgZ290IG5vIGhpdHMsIHNvIGl0JiMzOTtzIGRlZmluaXRlbHkgdW51c2VkLgoKVGhlcmVmb3JlLCBteSByZWFzb25pbmcgaXMgdGhhdCB0aGUgcGF0Y2ggKm9ubHkqIHJlbW92ZXMgdGhlIHVudXNlZCBgbGFzdF9jaGVja190aW1lYCBmaWVsZCBmcm9tIGBzdHJ1Y3QgdGhyb3RsX2dycGAuIEl0IGhhcyBubyBpbXBhY3Qgb24gZXhlY3V0aW9uIGZsb3cgb3IgYW55IGZ1bmN0aW9uYWwgbG9naWMuCmBXb3J0aEZ1enppbmdgIHNob3VsZCBiZSBgRmFsc2VgLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE3IDA4OjEwPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+c2V0LXJlc3VsdHM8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogW10sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggc2ltcGx5IHJlbW92ZXMgYW4gdW51c2VkIGZpZWxkIGBsYXN0X2NoZWNrX3RpbWVgIGZyb20gYHN0cnVjdCB0aHJvdGxfZ3JwYC4gSXQgZG9lcyBub3QgYWx0ZXIgYW55IGV4ZWN1dGlvbiBmbG93IG9yIGZ1bmN0aW9uYWwgbG9naWMuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogbnVsbCwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBzaW1wbHkgcmVtb3ZlcyBhbiB1bnVzZWQgZmllbGQgYGxhc3RfY2hlY2tfdGltZWAgZnJvbSBgc3RydWN0IHRocm90bF9ncnBgLiBJdCBkb2VzIG5vdCBhbHRlciBhbnkgZXhlY3V0aW9uIGZsb3cgb3IgZnVuY3Rpb25hbCBsb2dpYy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPC90Ym9keT4KCTwvdGFibGU+CgoJPGRpdiBpZD0ibGxtX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5MTE0gQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBUb2tlbnM8L3RoPgoJCQkJCTx0aD5BdmcgVG9rZW5zPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9ImxsbV9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9InRvb2xfc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPlRvb2wgQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0idG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9ImR1cmF0aW9uX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCTxkaXYgaWQ9InRva2VuX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL2pzYXBpIj48L3NjcmlwdD4KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCQlnb29nbGUubG9hZCgidmlzdWFsaXphdGlvbiIsICIxIiwge3BhY2thZ2VzOlsiY29yZWNoYXJ0Il19KTsKCQlnb29nbGUuc2V0T25Mb2FkQ2FsbGJhY2soZHJhd0NoYXJ0cyk7CgoJCWZ1bmN0aW9uIGRyYXdDaGFydHMoKSB7CgkJCWNvbnN0IHJhd0RhdGEgPSBbeyJTdGFydGVkIjoiMjAyNi0wNy0xN1QwODoxMDoxNy44OTI3Njk3MTdaIiwiU2VxIjowLCJOZXN0aW5nIjowLCJUeXBlIjoiZmxvdyIsIk5hbWUiOiJwYXRjaC10cmlhZ2UiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNzQ5NDA4NTI4NywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggc2ltcGx5IHJlbW92ZXMgYW4gdW51c2VkIGZpZWxkIGBsYXN0X2NoZWNrX3RpbWVgIGZyb20gYHN0cnVjdCB0aHJvdGxfZ3JwYC4gSXQgZG9lcyBub3QgYWx0ZXIgYW55IGV4ZWN1dGlvbiBmbG93IG9yIGZ1bmN0aW9uYWwgbG9naWMuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xN1QwODoxMDoxNy44OTI3NzczNzdaIiwiU2VxIjoxLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6InJlYWQtcGF0Y2gtZGlmZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjU5MTQ1NzYwOCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiUGF0Y2hEaWZmXCI6IFwiY29tbWl0IGU2NjMwNzgxYTQ0YjcyOWQwYmMyYjc4NjJlMTk2MTFlMjA4NjdhODhcXG5BdXRob3I6IHN5ei1jbHVzdGVyIFxcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVxcdTAwM2VcXG5EYXRlOiAgIEZyaSBKdWwgMTcgMDg6MTA6MTYgMjAyNiArMDAwMFxcblxcbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcXG5cXG5kaWZmIC0tZ2l0IGEvYmxvY2svYmxrLXRocm90dGxlLmggYi9ibG9jay9ibGstdGhyb3R0bGUuaFxcbmluZGV4IDlkN2E0MmMwMzlhMTVlLi4xYjU3NzU3NzFlMDc4ZSAxMDA2NDRcXG4tLS0gYS9ibG9jay9ibGstdGhyb3R0bGUuaFxcbisrKyBiL2Jsb2NrL2Jsay10aHJvdHRsZS5oXFxuQEAgLTEyMCw4ICsxMjAsNiBAQCBzdHJ1Y3QgdGhyb3RsX2dycCB7XFxuIFxcdGludDY0X3QgYnl0ZXNfZGlzcFsyXTtcXG4gXFx0aW50IGlvX2Rpc3BbMl07XFxuIFxcbi1cXHR1bnNpZ25lZCBsb25nIGxhc3RfY2hlY2tfdGltZTtcXG4tXFxuIFxcdC8qIFdoZW4gZGlkIHdlIHN0YXJ0IGEgbmV3IHNsaWNlICovXFxuIFxcdHVuc2lnbmVkIGxvbmcgc2xpY2Vfc3RhcnRbMl07XFxuIFxcdHVuc2lnbmVkIGxvbmcgc2xpY2VfZW5kWzJdO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xN1QwODoxMDoxOC40ODQ5OTkyODVaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjE2OTAxODQ5Mjk5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBzaW1wbHkgcmVtb3ZlcyBhbiB1bnVzZWQgZmllbGQgYGxhc3RfY2hlY2tfdGltZWAgZnJvbSBgc3RydWN0IHRocm90bF9ncnBgLiBJdCBkb2VzIG5vdCBhbHRlciBhbnkgZXhlY3V0aW9uIGZsb3cgb3IgZnVuY3Rpb25hbCBsb2dpYy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLlxuWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmVcbmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cblxuSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluXG55b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHlcbnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuXG5cblJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6XG4tIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuXG4tIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLlxuLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuXG4tIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSxcbmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS5cblxuSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaFxudG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuXG5cbldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOlxuMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy5cbiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLlxuMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuXG4gICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuXG4gICBEbyBub3QgbGlzdCB0b28gZ2VuZXJpYyBjb25maWdzICh3ZSBhbHJlYWR5IGhhdmUgdGhlbSBlbmFibGVkKS4gT25seSBsaXN0IHRob3NlIHRoYXRcbiAgIHNwZWNpZmljYWxseSBjb3ZlciB0aGUgbW9kaWZpZWQgY29kZS4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzIG91dHB1dCBhcnJheSxcbiAgIGFuZCBETyBOT1QgYWRkIGEgJ0NPTkZJR18nIHByZWZpeCAoZS5nLiwgcmV0dXJuIFwiTkVUX0lQVjRcIiBpbnN0ZWFkIG9mIFwiQ09ORklHX05FVF9JUFY0XCIpLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgZTY2MzA3ODFhNDRiNzI5ZDBiYzJiNzg2MmUxOTYxMWUyMDg2N2E4OFxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBGcmkgSnVsIDE3IDA4OjEwOjE2IDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvYmxvY2svYmxrLXRocm90dGxlLmggYi9ibG9jay9ibGstdGhyb3R0bGUuaFxuaW5kZXggOWQ3YTQyYzAzOWExNWUuLjFiNTc3NTc3MWUwNzhlIDEwMDY0NFxuLS0tIGEvYmxvY2svYmxrLXRocm90dGxlLmhcbisrKyBiL2Jsb2NrL2Jsay10aHJvdHRsZS5oXG5AQCAtMTIwLDggKzEyMCw2IEBAIHN0cnVjdCB0aHJvdGxfZ3JwIHtcbiBcdGludDY0X3QgYnl0ZXNfZGlzcFsyXTtcbiBcdGludCBpb19kaXNwWzJdO1xuIFxuLVx0dW5zaWduZWQgbG9uZyBsYXN0X2NoZWNrX3RpbWU7XG4tXG4gXHQvKiBXaGVuIGRpZCB3ZSBzdGFydCBhIG5ldyBzbGljZSAqL1xuIFx0dW5zaWduZWQgbG9uZyBzbGljZV9zdGFydFsyXTtcbiBcdHVuc2lnbmVkIGxvbmcgc2xpY2VfZW5kWzJdO1xuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTdUMDg6MTA6MTguNDg1MDAxODM1WiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzY5NDcxNTQ2MywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIEltcGFjdCBvZiBhIFRocm90dGxpbmcgUGF0Y2gqKlxuXG5Pa2F5LCBzbyB3ZSd2ZSBnb3QgdGhpcyBwYXRjaCDigJMgYSBwcmV0dHkgc3RyYWlnaHRmb3J3YXJkIG9uZSwgcmVhbGx5LiBJdCByZW1vdmVzIHRoZSBgbGFzdF9jaGVja190aW1lYCBmaWVsZCBmcm9tIHRoZSBgc3RydWN0IHRocm90bF9ncnBgIGRlZmluaXRpb24gaW4gYGJsb2NrL2Jsay10aHJvdHRsZS5oYC4gTXkgaW1tZWRpYXRlIHRob3VnaHQgaXMsIFwiSXMgdGhpcyBhIHNpbXBsZSBjbGVhbnVwLCBvciBkb2VzIHRoaXMgaGF2ZSB3aWRlciBpbXBsaWNhdGlvbnM/XCIgV2UgbmVlZCB0byBiZSBhYnNvbHV0ZWx5IHN1cmUgdGhpcyBmaWVsZCBpc27igJl0IGJlaW5nIHVzZWQgZWxzZXdoZXJlIGJlZm9yZSB3ZSBtZXJnZSB0aGlzLiBJdCdzIGVhc3kgdG8gbWFrZSBhc3N1bXB0aW9ucywgYnV0IHRoYXQncyBhIHJlY2lwZSBmb3IgaGVhZGFjaGVzIGxhdGVyLlxuXG5NeSBzdHJhdGVneSBpcyBjbGVhcjogdGltZSB0byBkZXBsb3kgdGhlIHRydXN0eSBgZ3JlcHBlcmAgdG9vbC4gSSdsbCBmb2N1cyBteSBzZWFyY2ggb24gYGJsb2NrL2Jsay10aHJvdHRsZS5jYCBpbml0aWFsbHksIHNpbmNlIHRoYXQncyB3aGVyZSB0aGUgZGVmaW5pdGlvbiBsaXZlcywgYW5kIEknZCBleHBlY3QgaXQgdG8gYmUgdXNlZCB0aGVyZSwgaWYgYW55d2hlcmUuIEJ1dCB0byBiZSBzYWZlLCBJJ2xsIGV4cGFuZCB0aGUgc2VhcmNoIHRvIHRoZSByZXN0IG9mIHRoZSByZWxldmFudCBjb2RlIGJhc2UuIEkgbmVlZCB0byBnZXQgYSBjb21wbGV0ZSBwaWN0dXJlLiBTbywgSSdsbCBleHBhbmQgdGhlIHNlYXJjaCB0byBvdGhlciBmaWxlcyB0byBjb25maXJtIHRoYXQgdGhpcyBpcyBhIHNhZmUgcmVtb3ZhbCBhbmQgbm90IGJyZWFraW5nIGFueSB1bmRlcmx5aW5nIGFzc3VtcHRpb25zIG9yIGxvZ2ljLlxuXG5cbiIsIklucHV0VG9rZW5zIjoxODAzLCJPdXRwdXRUb2tlbnMiOjI3LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6ODQsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xN1QwODoxMDoyMi4xNzk3MTk3MjhaIiwiU2VxIjo0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6OTU0Mjc0MTgsIkVycm9yIjoibm8gbWF0Y2hlcyIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImxhc3RfY2hlY2tfdGltZVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJibG9jay9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiZXJyb3JcIjogXCJubyBtYXRjaGVzXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE3VDA4OjEwOjIyLjI3NTE1OTk5NloiLCJTZXEiOjUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjM0NzI0MTQ4NDgsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqSW52ZXN0aWdhdGluZyB0aGUgVW51c2VkIEZpZWxkKipcblxuT2theSwgc28gSSdtIHRha2luZyBhIGxvb2sgYXQgdGhpcyBgYmxvY2svYCBjb2RlLCBhbmQgSSd2ZSBub3RpY2VkIHNvbWV0aGluZyB0aGF0IGltbWVkaWF0ZWx5IHBpcXVlZCBteSBpbnRlcmVzdC4gVGhlIGBsYXN0X2NoZWNrX3RpbWVgIGZpZWxkLCB3aXRoaW4gdGhpcyBzcGVjaWZpYyBibG9jayBvZiBjb2RlLCBkb2Vzbid0IGFwcGVhciB0byBiZSByZWZlcmVuY2VkIGF0IGFsbC4gSXQncyBhIGJpdCBvZiBhIGNvZGUgc21lbGwsIHlvdSBrbm93PyBVbnVzZWQgdmFyaWFibGVzIG9yIGZpZWxkcyBhcmUgcG90ZW50aWFsIHJlZCBmbGFncyDigJMgdGhleSBjb3VsZCBpbmRpY2F0ZSBkZWFkIGNvZGUsIGEgcmVmYWN0b3Jpbmcgb3ZlcnNpZ2h0LCBvciBwZXJoYXBzIHNvbWUgY29uZnVzaW9uIGluIHRoZSBkZXNpZ24uXG5cbk15IGltbWVkaWF0ZSB0aG91Z2h0IGlzLCBsZXQncyBicm9hZGVuIHRoZSBzY29wZS4gSXQncyBwb3NzaWJsZSB0aGF0IHdoaWxlIGl0J3Mgbm90IHVzZWQgKmhlcmUqLCBpbiB0aGlzIHNwZWNpZmljIGNvbXBvbmVudCwgaXQgbWlnaHQgYmUgdXNlZCBlbHNld2hlcmUgd2l0aGluIHRoZSBrZXJuZWwuIEJlZm9yZSBqdW1waW5nIHRvIGNvbmNsdXNpb25zIGFuZCBwb3NzaWJseSByZW1vdmluZyBpdCBwcmVtYXR1cmVseSwgSSBuZWVkIHRvIHBlcmZvcm0gYSBzeXN0ZW0td2lkZSBzZWFyY2guIEEgcXVpY2sgc2NhbiBjb3VsZCByZXZlYWwgaWYgaXQncyBsdXJraW5nIGVsc2V3aGVyZSwgcGVyaGFwcyBpbiBhIHJlbGF0ZWQgc3Vic3lzdGVtLiBJZiB0aGUgZmllbGQgKmlzKiBhY3R1YWxseSB1bnVzZWQgZXZlcnl3aGVyZSwgdGhlbiB3ZSd2ZSBnb3QgYSBkZWZpbml0ZSBwb2ludCB0byBpbnZlc3RpZ2F0ZTogd2UgY2FuIGVpdGhlciBkZWxldGUgaXQgb3IgbGVhdmUgaXQgYXMgaXMgaWYgaXQgaGFzIHNvbWUgcG90ZW50aWFsIGZvciBiZWluZyByZS11c2VkIGF0IGEgbGF0ZXIgdGltZS5cblxuXG4iLCJJbnB1dFRva2VucyI6MjE1OSwiT3V0cHV0VG9rZW5zIjoxOSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjM0LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE3VDA4OjEwOjI1Ljc0NzU3NzcxNFoiLCJTZXEiOjYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyMjg1MDc2MjgzLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImxhc3RfY2hlY2tfdGltZVwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9wZW5zYW5kby9pb25pYy9pb25pY19kZXYuYz0xMzg9c3RhdGljIGludCBpb25pY193YXRjaGRvZ19pbml0KHN0cnVjdCBpb25pYyAqaW9uaWMpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9wZW5zYW5kby9pb25pYy9pb25pY19kZXYuYy0xNDUtXFx0Lyogc2V0IHRpbWVzIHRvIGVuc3VyZSB0aGUgZmlyc3QgY2hlY2sgd2lsbCBwcm9jZWVkICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvcGVuc2FuZG8vaW9uaWMvaW9uaWNfZGV2LmM6MTQ2OlxcdGF0b21pY19sb25nX3NldChcXHUwMDI2aWRldi1cXHUwMDNlbGFzdF9jaGVja190aW1lLCBqaWZmaWVzIC0gMiAqIEhaKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9wZW5zYW5kby9pb25pYy9pb25pY19kZXYuYy0xNDctXFx0aWRldi1cXHUwMDNlbGFzdF9oYl90aW1lID0gamlmZmllcyAtIDIgKiBpb25pYy1cXHUwMDNld2F0Y2hkb2dfcGVyaW9kO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvcGVuc2FuZG8vaW9uaWMvaW9uaWNfZGV2LmM9NTAxPWludCBpb25pY19oZWFydGJlYXRfY2hlY2soc3RydWN0IGlvbmljICppb25pYylcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9wZW5zYW5kby9pb25pYy9pb25pY19kZXYuYy01MDIte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3BlbnNhbmRvL2lvbmljL2lvbmljX2Rldi5jOjUwMzpcXHR1bnNpZ25lZCBsb25nIGNoZWNrX3RpbWUsIGxhc3RfY2hlY2tfdGltZTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9wZW5zYW5kby9pb25pYy9pb25pY19kZXYuYy01MDQtXFx0c3RydWN0IGlvbmljX2RldiAqaWRldiA9IFxcdTAwMjZpb25pYy1cXHUwMDNlaWRldjtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3BlbnNhbmRvL2lvbmljL2lvbmljX2Rldi5jLTUxMy1cXHRjaGVja190aW1lID0gamlmZmllcztcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9wZW5zYW5kby9pb25pYy9pb25pY19kZXYuYzo1MTQ6XFx0bGFzdF9jaGVja190aW1lID0gYXRvbWljX2xvbmdfcmVhZChcXHUwMDI2aWRldi1cXHUwMDNlbGFzdF9jaGVja190aW1lKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9wZW5zYW5kby9pb25pYy9pb25pY19kZXYuYy01MTUtZG9fY2hlY2tfdGltZTpcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9wZW5zYW5kby9pb25pYy9pb25pY19kZXYuYzo1MTY6XFx0aWYgKHRpbWVfYmVmb3JlKGNoZWNrX3RpbWUsIGxhc3RfY2hlY2tfdGltZSArIEhaKSlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9wZW5zYW5kby9pb25pYy9pb25pY19kZXYuYy01MTctXFx0XFx0cmV0dXJuIDA7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvcGVuc2FuZG8vaW9uaWMvaW9uaWNfZGV2LmM6NTE4OlxcdGlmICghYXRvbWljX2xvbmdfdHJ5X2NtcHhjaGdfcmVsYXhlZChcXHUwMDI2aWRldi1cXHUwMDNlbGFzdF9jaGVja190aW1lLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3BlbnNhbmRvL2lvbmljL2lvbmljX2Rldi5jOjUxOTpcXHRcXHRcXHRcXHRcXHQgICAgIFxcdTAwMjZsYXN0X2NoZWNrX3RpbWUsIGNoZWNrX3RpbWUpKSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvcGVuc2FuZG8vaW9uaWMvaW9uaWNfZGV2LmMtNTIwLVxcdFxcdC8qIGlmIGNhbGxlZCBjb25jdXJyZW50bHksIG9ubHkgdGhlIGZpcnN0IHNob3VsZCBwcm9jZWVkLiAqL1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvcGVuc2FuZG8vaW9uaWMvaW9uaWNfZGV2LmMtNTk0LVxcdCAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3BlbnNhbmRvL2lvbmljL2lvbmljX2Rldi5jOjU5NTpcXHRsYXN0X2NoZWNrX3RpbWUgPSBpZGV2LVxcdTAwM2VsYXN0X2hiX3RpbWU7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvcGVuc2FuZG8vaW9uaWMvaW9uaWNfZGV2LmM6NTk2OlxcdGlmICh0aW1lX2JlZm9yZShjaGVja190aW1lLCBsYXN0X2NoZWNrX3RpbWUgKyBERVZDTURfVElNRU9VVCAqIDIgKiBIWikpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvcGVuc2FuZG8vaW9uaWMvaW9uaWNfZGV2LmMtNTk3LVxcdFxcdHJldHVybiAwO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvcGVuc2FuZG8vaW9uaWMvaW9uaWNfZGV2Lmg9MTU1PXN0cnVjdCBpb25pY19kZXYge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvcGVuc2FuZG8vaW9uaWMvaW9uaWNfZGV2LmgtMTU5LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3BlbnNhbmRvL2lvbmljL2lvbmljX2Rldi5oOjE2MDpcXHRhdG9taWNfbG9uZ190IGxhc3RfY2hlY2tfdGltZTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9wZW5zYW5kby9pb25pYy9pb25pY19kZXYuaC0xNjEtXFx0dW5zaWduZWQgbG9uZyBsYXN0X2hiX3RpbWU7XFxuLS1cXG5kcml2ZXJzL252bWUvaG9zdC9jb3JlLmM9NDY5PXN0YXRpYyB2b2lkIF9fbnZtZV9jb21wbGV0ZV9ycShzdHJ1Y3QgcmVxdWVzdCAqcmVxKVxcbi0tXFxuZHJpdmVycy9udm1lL2hvc3QvY29yZS5jLTQ4My1cXHRpZiAoY3RybC1cXHUwMDNla2FzIFxcdTAwMjZcXHUwMDI2XFxuZHJpdmVycy9udm1lL2hvc3QvY29yZS5jOjQ4NDpcXHQgICAgcmVxLVxcdTAwM2VkZWFkbGluZSAtIHJlcS1cXHUwMDNldGltZW91dCBcXHUwMDNlPSBjdHJsLVxcdTAwM2VrYV9sYXN0X2NoZWNrX3RpbWUpXFxuZHJpdmVycy9udm1lL2hvc3QvY29yZS5jLTQ4NS1cXHRcXHRjdHJsLVxcdTAwM2Vjb21wX3NlZW4gPSB0cnVlO1xcbi0tXFxuZHJpdmVycy9udm1lL2hvc3QvY29yZS5jPTEzMzc9c3RhdGljIHZvaWQgbnZtZV9xdWV1ZV9rZWVwX2FsaXZlX3dvcmsoc3RydWN0IG52bWVfY3RybCAqY3RybClcXG4tLVxcbmRyaXZlcnMvbnZtZS9ob3N0L2NvcmUuYy0xMzQwLVxcdHVuc2lnbmVkIGxvbmcgZGVsYXkgPSBudm1lX2tlZXBfYWxpdmVfd29ya19wZXJpb2QoY3RybCk7XFxuZHJpdmVycy9udm1lL2hvc3QvY29yZS5jOjEzNDE6XFx0dW5zaWduZWQgbG9uZyBrYV9uZXh0X2NoZWNrX3RtID0gY3RybC1cXHUwMDNla2FfbGFzdF9jaGVja190aW1lICsgZGVsYXk7XFxuZHJpdmVycy9udm1lL2hvc3QvY29yZS5jLTEzNDItXFxuLS1cXG5kcml2ZXJzL252bWUvaG9zdC9jb3JlLmM9MTM1MT1zdGF0aWMgZW51bSBycV9lbmRfaW9fcmV0IG52bWVfa2VlcF9hbGl2ZV9lbmRfaW8oc3RydWN0IHJlcXVlc3QgKnJxLFxcbi0tXFxuZHJpdmVycy9udm1lL2hvc3QvY29yZS5jLTEzODAtXFxuZHJpdmVycy9udm1lL2hvc3QvY29yZS5jOjEzODE6XFx0Y3RybC1cXHUwMDNla2FfbGFzdF9jaGVja190aW1lID0gamlmZmllcztcXG5kcml2ZXJzL252bWUvaG9zdC9jb3JlLmMtMTM4Mi1cXHRjdHJsLVxcdTAwM2Vjb21wX3NlZW4gPSBmYWxzZTtcXG4tLVxcbmRyaXZlcnMvbnZtZS9ob3N0L2NvcmUuYz0xMzg4PXN0YXRpYyB2b2lkIG52bWVfa2VlcF9hbGl2ZV93b3JrKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaylcXG4tLVxcbmRyaXZlcnMvbnZtZS9ob3N0L2NvcmUuYy0xMzk0LVxcbmRyaXZlcnMvbnZtZS9ob3N0L2NvcmUuYzoxMzk1OlxcdGN0cmwtXFx1MDAzZWthX2xhc3RfY2hlY2tfdGltZSA9IGppZmZpZXM7XFxuZHJpdmVycy9udm1lL2hvc3QvY29yZS5jLTEzOTYtXFxuLS1cXG5kcml2ZXJzL252bWUvaG9zdC9jb3JlLmM9NTE2MD1pbnQgbnZtZV9pbml0X2N0cmwoc3RydWN0IG52bWVfY3RybCAqY3RybCwgc3RydWN0IGRldmljZSAqZGV2LFxcbi0tXFxuZHJpdmVycy9udm1lL2hvc3QvY29yZS5jLTUxOTEtXFx0Y3RybC1cXHUwMDNla2FfY21kLmNvbW1vbi5vcGNvZGUgPSBudm1lX2FkbWluX2tlZXBfYWxpdmU7XFxuZHJpdmVycy9udm1lL2hvc3QvY29yZS5jOjUxOTI6XFx0Y3RybC1cXHUwMDNla2FfbGFzdF9jaGVja190aW1lID0gamlmZmllcztcXG5kcml2ZXJzL252bWUvaG9zdC9jb3JlLmMtNTE5My1cXHRjdHJsLVxcdTAwM2VhZG1pbl90aW1lb3V0ID0gTlZNRV9BRE1JTl9USU1FT1VUO1xcbi0tXFxuZHJpdmVycy9udm1lL2hvc3QvbnZtZS5oPTMzND1zdHJ1Y3QgbnZtZV9jdHJsIHtcXG4tLVxcbmRyaXZlcnMvbnZtZS9ob3N0L252bWUuaC00MTQtXFx0c3RydWN0IG52bWVfY29tbWFuZCBrYV9jbWQ7XFxuZHJpdmVycy9udm1lL2hvc3QvbnZtZS5oOjQxNTpcXHR1bnNpZ25lZCBsb25nIGthX2xhc3RfY2hlY2tfdGltZTtcXG5kcml2ZXJzL252bWUvaG9zdC9udm1lLmgtNDE2LVxcdHN0cnVjdCB3b3JrX3N0cnVjdCBmd19hY3Rfd29yaztcXG4tLVxcbmZzL2V4dDQvaW9jdGwuYz0xMjgxPXN0YXRpYyBpbnQgZXh0NF9pb2N0bF9nZXRfdHVuZV9zYihzdHJ1Y3QgZXh0NF9zYl9pbmZvICpzYmksXFxuLS1cXG5mcy9leHQ0L2lvY3RsLmMtMTI5Mi1cXHRyZXQuY2hlY2tpbnRlcnZhbCA9IGxlMzJfdG9fY3B1KGVzLVxcdTAwM2VzX2NoZWNraW50ZXJ2YWwpO1xcbmZzL2V4dDQvaW9jdGwuYzoxMjkzOlxcdHJldC5sYXN0X2NoZWNrX3RpbWUgPSBsZTMyX3RvX2NwdShlcy1cXHUwMDNlc19sYXN0Y2hlY2spO1xcbmZzL2V4dDQvaW9jdGwuYy0xMjk0LVxcdHJldC5yZXNlcnZlZF9ibG9ja3MgPSBleHQ0X3JfYmxvY2tzX2NvdW50KGVzKTtcXG4tLVxcbmZzL2V4dDQvaW9jdGwuYz0xMzE5PXN0YXRpYyB2b2lkIGV4dDRfc2Jfc2V0cGFyYW1zKHN0cnVjdCBleHQ0X3NiX2luZm8gKnNiaSxcXG4tLVxcbmZzL2V4dDQvaW9jdGwuYy0xMzMyLVxcdGlmIChwYXJhbXMtXFx1MDAzZXNldF9mbGFncyBcXHUwMDI2IEVYVDRfVFVORV9GTF9MQVNUX0NIRUNLX1RJTUUpXFxuZnMvZXh0NC9pb2N0bC5jOjEzMzM6XFx0XFx0ZXMtXFx1MDAzZXNfbGFzdGNoZWNrID0gY3B1X3RvX2xlMzIocGFyYW1zLVxcdTAwM2VsYXN0X2NoZWNrX3RpbWUpO1xcbmZzL2V4dDQvaW9jdGwuYy0xMzM0LVxcdGlmIChwYXJhbXMtXFx1MDAzZXNldF9mbGFncyBcXHUwMDI2IEVYVDRfVFVORV9GTF9SRVNFUlZFRF9CTE9DS1MpIHtcXG4tLVxcbmluY2x1ZGUvdWFwaS9saW51eC9leHQ0Lmg9MTEzPXN0cnVjdCBleHQ0X3R1bmVfc2JfcGFyYW1zIHtcXG4tLVxcbmluY2x1ZGUvdWFwaS9saW51eC9leHQ0LmgtMTE5LVxcdF9fdTE2IHJhaWRfc3RyaWRlO1xcbmluY2x1ZGUvdWFwaS9saW51eC9leHQ0Lmg6MTIwOlxcdF9fdTY0IGxhc3RfY2hlY2tfdGltZTtcXG5pbmNsdWRlL3VhcGkvbGludXgvZXh0NC5oLTEyMS1cXHRfX3U2NCByZXNlcnZlZF9ibG9ja3M7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE3VDA4OjEwOjI4LjAzMjY1ODkyNloiLCJTZXEiOjcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjczNTQxNTIwOTcsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIGEgVGhyb3R0bGluZyBQYXRjaCoqXG5cbk9rYXksIHNvIHRoaXMgcGF0Y2ggaXMgcHJldHR5IHN0cmFpZ2h0Zm9yd2FyZC4gSXQgbG9va3MgbGlrZSB0aGUgb25seSBjaGFuZ2UgaXMgdGhlIHJlbW92YWwgb2YgYGxhc3RfY2hlY2tfdGltZWAgZnJvbSBgc3RydWN0IHRocm90bF9ncnBgIGluIGBibG9jay9ibGstdGhyb3R0bGUuaGAuIEhtbSwgbGV0IG1lIGRvdWJsZS1jaGVjayB0aGF0Li4uIHllcCwgdGhhdCdzIGl0LiBObyBvdGhlciBmaWxlcyBhcmUgdG91Y2hlZC5cblxuTm93LCBsZXQncyB0aGluayBhYm91dCB0aGlzLiBJdCdzIGp1c3QgcmVtb3ZpbmcgYW4gdW51c2VkIGZpZWxkIGZyb20gYSBzdHJ1Y3QgZGVmaW5pdGlvbi4gSXQncyBoaWdobHkgbGlrZWx5IHRoaXMgZmllbGQgd2FzIHVzZWQgYXQgc29tZSBwb2ludCwgYnV0IGlzbid0IGFueW1vcmUg4oCTIHRoaXMgaXMgYSBzaW1wbGUgY2xlYW51cC4gU2luY2UgaXQgKmp1c3QqIHJlbW92ZXMgdGhpcyBmaWVsZCwgdGhlcmUgc2hvdWxkbid0IGJlIGFueSBmdW5jdGlvbmFsIGNoYW5nZXMgaW4gdGhlIGtlcm5lbCB0aGF0IHdhcnJhbnQgZnV6emluZy4gXG5cbldhaXQuLi4gcmVtb3ZpbmcgYSBmaWVsZCAqZG9lcyogY2hhbmdlIHRoZSBzdHJ1Y3Qgc2l6ZSwgYnV0IHRoaXMgaXMgc3RpbGwganVzdCBhIGNsZWFudXAuIEknbSBnb2luZyB0byBsZWFuIHRvd2FyZHMgcmV0dXJuaW5nIGBXb3J0aEZ1enppbmc9ZmFsc2VgIGhlcmUsIGJlY2F1c2UgaXQgaXMgYSBub24tZnVuY3Rpb25hbCBjaGFuZ2UsIHB1cmVseSBhYm91dCByZW1vdmluZyBhbiB1bnVzZWQgc3RydWN0IG1lbWJlci5cblxuQnV0LCBJIHNob3VsZCBwcm9iYWJseSBkb3VibGUtY2hlY2sgdGhhdCBgbGFzdF9jaGVja190aW1lYCBpc24ndCBhY3R1YWxseSAqdXNlZCogYW55d2hlcmUgaW4gYGJsb2NrL2Jsay10aHJvdHRsZS5jYCwganVzdCB0byBiZSBhYnNvbHV0ZWx5IGNlcnRhaW4uIEkgZGlkIGdyZXAgZm9yIGBsYXN0X2NoZWNrX3RpbWVgIGluIHRoZSBgYmxvY2svYCBkaXJlY3RvcnkgZWFybGllciwgYW5kIGdvdCBubyBoaXRzLCBzbyBpdCdzIGRlZmluaXRlbHkgdW51c2VkLlxuXG5UaGVyZWZvcmUsIG15IHJlYXNvbmluZyBpcyB0aGF0IHRoZSBwYXRjaCAqb25seSogcmVtb3ZlcyB0aGUgdW51c2VkIGBsYXN0X2NoZWNrX3RpbWVgIGZpZWxkIGZyb20gYHN0cnVjdCB0aHJvdGxfZ3JwYC4gSXQgaGFzIG5vIGltcGFjdCBvbiBleGVjdXRpb24gZmxvdyBvciBhbnkgZnVuY3Rpb25hbCBsb2dpYy5cbmBXb3J0aEZ1enppbmdgIHNob3VsZCBiZSBgRmFsc2VgLlxuXG5cbiIsIklucHV0VG9rZW5zIjo0NDc0LCJPdXRwdXRUb2tlbnMiOjY0LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MzgxLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE3VDA4OjEwOjM1LjM4NjgxMzE4NFoiLCJTZXEiOjgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InNldC1yZXN1bHRzIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MzQyMTAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggc2ltcGx5IHJlbW92ZXMgYW4gdW51c2VkIGZpZWxkIGBsYXN0X2NoZWNrX3RpbWVgIGZyb20gYHN0cnVjdCB0aHJvdGxfZ3JwYC4gSXQgZG9lcyBub3QgYWx0ZXIgYW55IGV4ZWN1dGlvbiBmbG93IG9yIGZ1bmN0aW9uYWwgbG9naWMuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBzaW1wbHkgcmVtb3ZlcyBhbiB1bnVzZWQgZmllbGQgYGxhc3RfY2hlY2tfdGltZWAgZnJvbSBgc3RydWN0IHRocm90bF9ncnBgLiBJdCBkb2VzIG5vdCBhbHRlciBhbnkgZXhlY3V0aW9uIGZsb3cgb3IgZnVuY3Rpb25hbCBsb2dpYy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/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-workflowjpqjl[1] Phase: Running StartedAt: 2026-07-17 08:10:47 +0000 UTC FinishedAt: 0001-01-01 00:00:00 +0000 UTC Input: nil Output: nil --------- Name: series-workflowjpqjl[1].abort-on-skip-outcome Phase: Failed StartedAt: 2026-07-17 08:10:47 +0000 UTC FinishedAt: 2026-07-17 08:10:53 +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,}