Name: series-workflowg6v5j Phase: Failed StartedAt: 2026-08-27 07:41:40 +0000 UTC FinishedAt: 2026-08-27 08:06:25 +0000 UTC Input: nil Output: nil --------- Name: series-workflowg6v5j[0] Phase: Succeeded StartedAt: 2026-08-27 07:41:40 +0000 UTC FinishedAt: 2026-08-27 08:06:15 +0000 UTC Input: nil Output: nil --------- Name: series-workflowg6v5j[0].run-triage Phase: Succeeded StartedAt: 2026-08-27 07:41:40 +0000 UTC FinishedAt: 2026-08-27 08:06:15 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "AI determined the patch has no functional impact", "targets": null, "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzI3IDA4OjA1PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7S01TQU5SZWFzb25pbmcmIzM0OzogJiMzNDsmIzM0OywKICAmIzM0O05lZWRzS01TQU4mIzM0OzogZmFsc2UsCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgZWFybHkgYm9vdCBtZW1vcnkgaW5pdGlhbGl6YXRpb24gbG9naWMgKHNwZWNpZmljYWxseSwgbW92aW5nIFZNRU1NQVAgY2FjaGUgZmx1c2hpbmcgdG8gYSBuZXcgYXJjaF9wb3N0X3NwYXJzZV9pbml0IGhvb2sgY2FsbGVkIGZyb20gc3BhcnNlX2luaXQpLiBUaGVzZSBhcmUgX19pbml0IGZ1bmN0aW9ucyBleGVjdXRlZCBvbmNlIGR1cmluZyBrZXJuZWwgYm9vdCBhbmQgY2Fubm90IGJlIHRyaWdnZXJlZCBvciBpbmZsdWVuY2VkIGJ5IHVzZXJzcGFjZSBmdXp6aW5nLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yNyAwODowNTwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IGQ0MmViMjg0MzQ5MjZiNmUyZDk3NDZkYTllYWZlMzFkZGMyNjlhY2NcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgVGh1IEF1ZyAyNyAwODowNTo1NCAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9hcmNoL3Jpc2N2L21tL2luaXQuYyBiL2FyY2gvcmlzY3YvbW0vaW5pdC5jXG5pbmRleCBkZWNkN2RmNDBmYTQyLi4yMDBhMDU4ZTgwY2E3IDEwMDY0NFxuLS0tIGEvYXJjaC9yaXNjdi9tbS9pbml0LmNcbiYjNDM7JiM0MzsmIzQzOyBiL2FyY2gvcmlzY3YvbW0vaW5pdC5jXG5AQCAtMTksNiAmIzQzOzE5LDcgQEBcbiAjaW5jbHVkZSBcdTAwM2NsaW51eC9zZXRfbWVtb3J5LmhcdTAwM2VcbiAjaW5jbHVkZSBcdTAwM2NsaW51eC9kbWEtbWFwLW9wcy5oXHUwMDNlXG4gI2luY2x1ZGUgXHUwMDNjbGludXgvY3Jhc2hfZHVtcC5oXHUwMDNlXG4mIzQzOyNpbmNsdWRlIFx1MDAzY2xpbnV4L2NhY2hlZmx1c2guaFx1MDAzZVxuICNpbmNsdWRlIFx1MDAzY2xpbnV4L2h1Z2V0bGIuaFx1MDAzZVxuICNpbmNsdWRlIFx1MDAzY2xpbnV4L2tmZW5jZS5oXHUwMDNlXG4gI2luY2x1ZGUgXHUwMDNjbGludXgvZXhlY21lbS5oXHUwMDNlXG5AQCAtMTMyNSwxNCAmIzQzOzEzMjYsMTggQEAgdm9pZCBfX2luaXQgbWlzY19tZW1faW5pdCh2b2lkKVxuIHtcbiBcdGVhcmx5X21lbXRlc3QobWluX2xvd19wZm4gXHUwMDNjXHUwMDNjIFBBR0VfU0hJRlQsIG1heF9sb3dfcGZuIFx1MDAzY1x1MDAzYyBQQUdFX1NISUZUKTtcbiBcdGFyY2hfbnVtYV9pbml0KCk7XG4tI2lmZGVmIENPTkZJR19TUEFSU0VNRU1fVk1FTU1BUFxuLVx0LyogVGhlIGVudGlyZSBWTUVNTUFQIHJlZ2lvbiBoYXMgYmVlbiBwb3B1bGF0ZWQuIEZsdXNoIFRMQiBmb3IgdGhpcyByZWdpb24gKi9cbi1cdGxvY2FsX2ZsdXNoX3RsYl9rZXJuZWxfcmFuZ2UoVk1FTU1BUF9TVEFSVCwgVk1FTU1BUF9FTkQpO1xuLSNlbmRpZlxuIFx0YXJjaF9yZXNlcnZlX2NyYXNoa2VybmVsKCk7XG4gXHRtZW1ibG9ja19kdW1wX2FsbCgpO1xuIH1cbiBcbiYjNDM7I2lmZGVmIENPTkZJR19TUEFSU0VNRU1fVk1FTU1BUFxuJiM0Mzt2b2lkIF9faW5pdCBhcmNoX3Bvc3Rfc3BhcnNlX2luaXQodm9pZClcbiYjNDM7e1xuJiM0MztcdC8qIFRoZSBlbnRpcmUgVk1FTU1BUCByZWdpb24gaGFzIGJlZW4gcG9wdWxhdGVkIGJ5IHNwYXJzZV9pbml0KCkuICovXG4mIzQzO1x0Zmx1c2hfY2FjaGVfdm1hcF9lYXJseShWTUVNTUFQX1NUQVJULCBWTUVNTUFQX0VORCk7XG4mIzQzO31cbiYjNDM7I2VuZGlmXG4mIzQzO1xuICNpZmRlZiBDT05GSUdfU1BBUlNFTUVNX1ZNRU1NQVBcbiB2b2lkIF9fbWVtaW5pdCB2bWVtbWFwX3NldF9wbWQocG1kX3QgKnBtZCwgdm9pZCAqcCwgaW50IG5vZGUsXG4gXHRcdFx0ICAgICAgIHVuc2lnbmVkIGxvbmcgYWRkciwgdW5zaWduZWQgbG9uZyBuZXh0KVxuZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvbW0uaCBiL2luY2x1ZGUvbGludXgvbW0uaFxuaW5kZXggYWYyMzQ1M2U5ZGJkMC4uNWE3NWI2OTI5NmNkZCAxMDA2NDRcbi0tLSBhL2luY2x1ZGUvbGludXgvbW0uaFxuJiM0MzsmIzQzOyYjNDM7IGIvaW5jbHVkZS9saW51eC9tbS5oXG5AQCAtNDYsNiAmIzQzOzQ2LDcgQEAgc3RydWN0IHB0X3JlZ3M7XG4gc3RydWN0IGZvbGlvX2JhdGNoO1xuIFxuIHZvaWQgYXJjaF9tbV9wcmVpbml0KHZvaWQpO1xuJiM0Mzt2b2lkIGFyY2hfcG9zdF9zcGFyc2VfaW5pdCh2b2lkKTtcbiB2b2lkIG1tX2NvcmVfaW5pdF9lYXJseSh2b2lkKTtcbiB2b2lkIG1tX2NvcmVfaW5pdCh2b2lkKTtcbiB2b2lkIGluaXRfbW1faW50ZXJuYWxzKHZvaWQpO1xuZGlmZiAtLWdpdCBhL21tL3NwYXJzZS5jIGIvbW0vc3BhcnNlLmNcbmluZGV4IGVmZmRhYzZiMGFiMTMuLmVjZjFiMjUxMGZiM2IgMTAwNjQ0XG4tLS0gYS9tbS9zcGFyc2UuY1xuJiM0MzsmIzQzOyYjNDM7IGIvbW0vc3BhcnNlLmNcbkBAIC0zMDksNiAmIzQzOzMwOSwxMCBAQCB2b2lkIF9fd2VhayBfX21lbWluaXQgdm1lbW1hcF9wb3B1bGF0ZV9wcmludF9sYXN0KHZvaWQpXG4ge1xuIH1cbiBcbiYjNDM7dm9pZCBfX3dlYWsgX19pbml0IGFyY2hfcG9zdF9zcGFyc2VfaW5pdCh2b2lkKVxuJiM0Mzt7XG4mIzQzO31cbiYjNDM7XG4gc3RhdGljIHZvaWQgKnNwYXJzZV91c2FnZWJ1ZiBfX21lbWluaXRkYXRhO1xuIHN0YXRpYyB2b2lkICpzcGFyc2VfdXNhZ2VidWZfZW5kIF9fbWVtaW5pdGRhdGE7XG4gXG5AQCAtNDQ2LDQgJiM0Mzs0NTAsNSBAQCB2b2lkIF9faW5pdCBzcGFyc2VfaW5pdCh2b2lkKVxuIFx0LyogY292ZXIgdGhlIGxhc3Qgbm9kZSAqL1xuIFx0c3BhcnNlX2luaXRfbmlkKG5pZF9iZWdpbiwgcG51bV9iZWdpbiwgcG51bV9lbmQsIG1hcF9jb3VudCk7XG4gXHR2bWVtbWFwX3BvcHVsYXRlX3ByaW50X2xhc3QoKTtcbiYjNDM7XHRhcmNoX3Bvc3Rfc3BhcnNlX2luaXQoKTtcbiB9XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjcgMDg6MDU8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+YmVzdC1leHBlbnNpdmU8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIGVhcmx5IGJvb3QgbWVtb3J5IGluaXRpYWxpemF0aW9uIGxvZ2ljIChzcGVjaWZpY2FsbHksIG1vdmluZyBWTUVNTUFQIGNhY2hlIGZsdXNoaW5nIHRvIGEgbmV3IGFyY2hfcG9zdF9zcGFyc2VfaW5pdCBob29rIGNhbGxlZCBmcm9tIHNwYXJzZV9pbml0KS4gVGhlc2UgYXJlIF9faW5pdCBmdW5jdGlvbnMgZXhlY3V0ZWQgb25jZSBkdXJpbmcga2VybmVsIGJvb3QgYW5kIGNhbm5vdCBiZSB0cmlnZ2VyZWQgb3IgaW5mbHVlbmNlZCBieSB1c2Vyc3BhY2UgZnV6emluZy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZQppZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5CnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuCgpSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOgotIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuCi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuCi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LgotIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwKICBldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuCi0gQ29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsCiAgaW9uaWMsIGFtZGdwdSkgdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuCi0gRHJpdmVyIC5yZW1vdmUsIC5zaHV0ZG93biwgb3IgcGNpX3VucmVnaXN0ZXJfZHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoZS5nLiwgaWdiX3JlbW92ZSkKICB0aGF0IGFyZSBleGVjdXRlZCBvbmx5IGR1cmluZyBQQ0kgaG90LXVucGx1ZyBvciBzeXNmcyBkcml2ZXIgdW5iaW5kIG9wZXJhdGlvbnMuCgpJZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoCnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLgoKV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086CjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuCiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLgogICBQcmVmZXIgbm9uLXN0YXRpYywgbm9uLWlubGluZWQgQVBJIGVudHJ5cG9pbnQgZnVuY3Rpb25zIG92ZXIgaW50ZXJuYWwgc3RhdGljIGhlbHBlciBmdW5jdGlvbnMKICAgKHdoaWNoIGFyZSBpbmxpbmVkIGJ5IHRoZSBjb21waWxlciBhbmQgZG8gbm90IGhhdmUgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcykuCjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLgogICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuCiAgIEFsc28gY2hlY2sgJiMzNDtkZXBlbmRzIG9uJiMzNDsgbGluZXMgaW4gS2NvbmZpZyB0byBpbmNsdWRlIGFueSBub24tc3RhbmRhcmQgcGFyZW50IHN1YnN5c3RlbSBjb25maWdzCiAgIG5lZWRlZCBmb3IgS2J1aWxkIHRvIGNvbXBpbGUgdGhlIGNvZGUgc3RhdGljYWxseSBpbnRvIHZtbGludXguIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncwogICBvdXRwdXQgYXJyYXksIGFuZCBETyBOT1QgYWRkIGEgJiMzOTtDT05GSUdfJiMzOTsgcHJlZml4IChlLmcuLCByZXR1cm4gJiMzNDtORVRfSVBWNCYjMzQ7IGluc3RlYWQgb2YgJiMzNDtDT05GSUdfTkVUX0lQVjQmIzM0OykuClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Rm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCBkNDJlYjI4NDM0OTI2YjZlMmQ5NzQ2ZGE5ZWFmZTMxZGRjMjY5YWNjCkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIFRodSBBdWcgMjcgMDg6MDU6NTQgMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9hcmNoL3Jpc2N2L21tL2luaXQuYyBiL2FyY2gvcmlzY3YvbW0vaW5pdC5jCmluZGV4IGRlY2Q3ZGY0MGZhNDIuLjIwMGEwNThlODBjYTcgMTAwNjQ0Ci0tLSBhL2FyY2gvcmlzY3YvbW0vaW5pdC5jCiYjNDM7JiM0MzsmIzQzOyBiL2FyY2gvcmlzY3YvbW0vaW5pdC5jCkBAIC0xOSw2ICYjNDM7MTksNyBAQAogI2luY2x1ZGUgJmx0O2xpbnV4L3NldF9tZW1vcnkuaCZndDsKICNpbmNsdWRlICZsdDtsaW51eC9kbWEtbWFwLW9wcy5oJmd0OwogI2luY2x1ZGUgJmx0O2xpbnV4L2NyYXNoX2R1bXAuaCZndDsKJiM0MzsjaW5jbHVkZSAmbHQ7bGludXgvY2FjaGVmbHVzaC5oJmd0OwogI2luY2x1ZGUgJmx0O2xpbnV4L2h1Z2V0bGIuaCZndDsKICNpbmNsdWRlICZsdDtsaW51eC9rZmVuY2UuaCZndDsKICNpbmNsdWRlICZsdDtsaW51eC9leGVjbWVtLmgmZ3Q7CkBAIC0xMzI1LDE0ICYjNDM7MTMyNiwxOCBAQCB2b2lkIF9faW5pdCBtaXNjX21lbV9pbml0KHZvaWQpCiB7CiAJZWFybHlfbWVtdGVzdChtaW5fbG93X3BmbiAmbHQ7Jmx0OyBQQUdFX1NISUZULCBtYXhfbG93X3BmbiAmbHQ7Jmx0OyBQQUdFX1NISUZUKTsKIAlhcmNoX251bWFfaW5pdCgpOwotI2lmZGVmIENPTkZJR19TUEFSU0VNRU1fVk1FTU1BUAotCS8qIFRoZSBlbnRpcmUgVk1FTU1BUCByZWdpb24gaGFzIGJlZW4gcG9wdWxhdGVkLiBGbHVzaCBUTEIgZm9yIHRoaXMgcmVnaW9uICovCi0JbG9jYWxfZmx1c2hfdGxiX2tlcm5lbF9yYW5nZShWTUVNTUFQX1NUQVJULCBWTUVNTUFQX0VORCk7Ci0jZW5kaWYKIAlhcmNoX3Jlc2VydmVfY3Jhc2hrZXJuZWwoKTsKIAltZW1ibG9ja19kdW1wX2FsbCgpOwogfQogCiYjNDM7I2lmZGVmIENPTkZJR19TUEFSU0VNRU1fVk1FTU1BUAomIzQzO3ZvaWQgX19pbml0IGFyY2hfcG9zdF9zcGFyc2VfaW5pdCh2b2lkKQomIzQzO3sKJiM0MzsJLyogVGhlIGVudGlyZSBWTUVNTUFQIHJlZ2lvbiBoYXMgYmVlbiBwb3B1bGF0ZWQgYnkgc3BhcnNlX2luaXQoKS4gKi8KJiM0MzsJZmx1c2hfY2FjaGVfdm1hcF9lYXJseShWTUVNTUFQX1NUQVJULCBWTUVNTUFQX0VORCk7CiYjNDM7fQomIzQzOyNlbmRpZgomIzQzOwogI2lmZGVmIENPTkZJR19TUEFSU0VNRU1fVk1FTU1BUAogdm9pZCBfX21lbWluaXQgdm1lbW1hcF9zZXRfcG1kKHBtZF90ICpwbWQsIHZvaWQgKnAsIGludCBub2RlLAogCQkJICAgICAgIHVuc2lnbmVkIGxvbmcgYWRkciwgdW5zaWduZWQgbG9uZyBuZXh0KQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9tbS5oIGIvaW5jbHVkZS9saW51eC9tbS5oCmluZGV4IGFmMjM0NTNlOWRiZDAuLjVhNzViNjkyOTZjZGQgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvbW0uaAomIzQzOyYjNDM7JiM0MzsgYi9pbmNsdWRlL2xpbnV4L21tLmgKQEAgLTQ2LDYgJiM0Mzs0Niw3IEBAIHN0cnVjdCBwdF9yZWdzOwogc3RydWN0IGZvbGlvX2JhdGNoOwogCiB2b2lkIGFyY2hfbW1fcHJlaW5pdCh2b2lkKTsKJiM0Mzt2b2lkIGFyY2hfcG9zdF9zcGFyc2VfaW5pdCh2b2lkKTsKIHZvaWQgbW1fY29yZV9pbml0X2Vhcmx5KHZvaWQpOwogdm9pZCBtbV9jb3JlX2luaXQodm9pZCk7CiB2b2lkIGluaXRfbW1faW50ZXJuYWxzKHZvaWQpOwpkaWZmIC0tZ2l0IGEvbW0vc3BhcnNlLmMgYi9tbS9zcGFyc2UuYwppbmRleCBlZmZkYWM2YjBhYjEzLi5lY2YxYjI1MTBmYjNiIDEwMDY0NAotLS0gYS9tbS9zcGFyc2UuYwomIzQzOyYjNDM7JiM0MzsgYi9tbS9zcGFyc2UuYwpAQCAtMzA5LDYgJiM0MzszMDksMTAgQEAgdm9pZCBfX3dlYWsgX19tZW1pbml0IHZtZW1tYXBfcG9wdWxhdGVfcHJpbnRfbGFzdCh2b2lkKQogewogfQogCiYjNDM7dm9pZCBfX3dlYWsgX19pbml0IGFyY2hfcG9zdF9zcGFyc2VfaW5pdCh2b2lkKQomIzQzO3sKJiM0Mzt9CiYjNDM7CiBzdGF0aWMgdm9pZCAqc3BhcnNlX3VzYWdlYnVmIF9fbWVtaW5pdGRhdGE7CiBzdGF0aWMgdm9pZCAqc3BhcnNlX3VzYWdlYnVmX2VuZCBfX21lbWluaXRkYXRhOwogCkBAIC00NDYsNCAmIzQzOzQ1MCw1IEBAIHZvaWQgX19pbml0IHNwYXJzZV9pbml0KHZvaWQpCiAJLyogY292ZXIgdGhlIGxhc3Qgbm9kZSAqLwogCXNwYXJzZV9pbml0X25pZChuaWRfYmVnaW4sIHBudW1fYmVnaW4sIHBudW1fZW5kLCBtYXBfY291bnQpOwogCXZtZW1tYXBfcG9wdWxhdGVfcHJpbnRfbGFzdCgpOwomIzQzOwlhcmNoX3Bvc3Rfc3BhcnNlX2luaXQoKTsKIH0KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjcgMDg6MDU8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjY1NwoJCQkJCQkJb3V0cHV0OiA4NwoJCQkJCQkJdGhvdWdodHM6IDM0OAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBBc3Nlc3NtZW50IG9mIHRoaXMgUGF0Y2gqKgoKT2theSwgc28gdGhpcyBwYXRjaCBpbnRyb2R1Y2VzIGEgbmV3IHdlYWsgZnVuY3Rpb24sIGBhcmNoX3Bvc3Rfc3BhcnNlX2luaXQoKWAsIHdpdGhpbiB0aGUgbWVtb3J5IG1hbmFnZW1lbnQgc3Vic3lzdGVtLiBFc3NlbnRpYWxseSwgaXQmIzM5O3MgYWRkaW5nIGEgbmV3IGhvb2sgdGhhdCBnZXRzIGNhbGxlZCBhZnRlciBgc3BhcnNlX2luaXQoKWAgY29tcGxldGVzLiBMb29raW5nIHNwZWNpZmljYWxseSBhdCB0aGUgUklTQy1WIGltcGxlbWVudGF0aW9uLCBgYXJjaF9wb3N0X3NwYXJzZV9pbml0KClgIGlzIGJlaW5nIHVzZWQgdG8gZmx1c2ggdGhlIGNhY2hlIGZvciB0aGUgVk1FTU1BUCByZWdpb24sIHdoaWNoIGlzIGEga2V5IG1lbW9yeSBtYXBwaW5nIGR1cmluZyBlYXJseSBib290LiBOb3RhYmx5LCB0aGlzIHBhdGNoIGFsc28gcmVtb3ZlcyBhIGBsb2NhbF9mbHVzaF90bGJfa2VybmVsX3JhbmdlKClgIGNhbGwgZnJvbSBgbWlzY19tZW1faW5pdCgpYC4KClRoaXMgaXMgYWxsIGhhcHBlbmluZyBkdXJpbmcgdGhlIGVhcmx5IGJvb3QgcHJvY2Vzcywgc3BlY2lmaWNhbGx5IHdpdGhpbiBgX19pbml0YCBmdW5jdGlvbnMuIFRoZSBjaGFuZ2VzIGFyZSBmb2N1c2VkIG9uIGluaXRpYWxpemF0aW9uIGFuZCBob3cgbWVtb3J5IGlzIGZsdXNoZWQgYW5kIG1hcHBlZCAqYmVmb3JlKiB0aGUgc3lzdGVtIGdldHMgdG8gYSBwb2ludCB3aGVyZSB1c2VyLXNwYWNlIGNhbiByZWFsbHkgZG8gbXVjaCBvZiBhbnl0aGluZy4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRoYXQgdGhpcyBpcyAqbm90KiBzb21ldGhpbmcgdGhhdCYjMzk7cyBkaXJlY3RseSBmdXp6YWJsZSBmcm9tIHVzZXJzcGFjZS4gVGhlcmUmIzM5O3Mgbm8gbmV3IGZ1bmN0aW9uYWxpdHkgZXhwb3NlZCB0aGF0IGEgZnV6emVyIGNvdWxkIGRpcmVjdGx5IHRyaWdnZXIgb3IgbWFuaXB1bGF0ZS4gSXQmIzM5O3MgZnVuZGFtZW50YWxseSBhYm91dCBob3cgdGhlIG1lbW9yeSBpcyBsYWlkIG91dCBhbmQgaGFuZGxlZCBkdXJpbmcgdGhlIGtlcm5lbCYjMzk7cyB2ZXJ5IGZpcnN0IHN0ZXBzLgoKTGV0JiMzOTtzIGRvIGEgcXVpY2sgc2FuaXR5IGNoZWNrIHRvIGJlIHN1cmUsIHRob3VnaC4gYGFyY2hfcG9zdF9zcGFyc2VfaW5pdCgpYCBpcyBjYWxsZWQgZnJvbSBgc3BhcnNlX2luaXQoKWAsIHdoaWNoIGluIHR1cm4sIGlzIHBhcnQgb2YgYG1tX2NvcmVfaW5pdCgpYCBvciBhIHNpbWlsYXIgY29yZSBtZW1vcnkgaW5pdGlhbGl6YXRpb24gcm91dGluZSwgYWxsIGVhcmx5IGluIHRoZSBib290IHNlcXVlbmNlLiBJdCYjMzk7cyBkZWZpbml0ZWx5IGFuIGluaXRpYWxpemF0aW9uIGZpeCwgYSByZWZhY3RvcmluZyBvZiBzb3J0cyBpbiB0ZXJtcyBvZiAqd2hlbiogdGhlIGNhY2hlIGZsdXNoIGhhcHBlbnMuIFRoaXMgY29uZmlybXMgbXkgb3JpZ2luYWwgYXNzZXNzbWVudC4gTm8sIHRoaXMgaXNuJiMzOTt0IHNvbWV0aGluZyB0aGF0IHByZXNlbnRzIGEgZnV6emluZyB0YXJnZXQuCgpUaGVyZWZvcmUsIG15IHJlY29tbWVuZGF0aW9uIGlzIGBXb3J0aEZ1enppbmc9ZmFsc2VgLiBUaGUgcGF0Y2ggbW9kaWZpZXMgZWFybHkgYm9vdCBtZW1vcnkgaW5pdGlhbGl6YXRpb24gbG9naWMgKHNwZWNpZmljYWxseSwgbW92aW5nIFZNRU1NQVAgY2FjaGUgZmx1c2hpbmcgdG8gYSBuZXcgYGFyY2hfcG9zdF9zcGFyc2VfaW5pdGAgaG9vayBjYWxsZWQgZnJvbSBgc3BhcnNlX2luaXRgKS4gVGhlc2UgYXJlIGBfX2luaXRgIGZ1bmN0aW9ucyBleGVjdXRlZCBvbmNlIGR1cmluZyBrZXJuZWwgYm9vdCBhbmQgY2Fubm90IGJlIHRyaWdnZXJlZCBvciBpbmZsdWVuY2VkIGJ5IHVzZXJzcGFjZSBmdXp6aW5nLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzI3IDA4OjA2PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+c2V0LXJlc3VsdHM8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogW10sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgZWFybHkgYm9vdCBtZW1vcnkgaW5pdGlhbGl6YXRpb24gbG9naWMgKHNwZWNpZmljYWxseSwgbW92aW5nIFZNRU1NQVAgY2FjaGUgZmx1c2hpbmcgdG8gYSBuZXcgYXJjaF9wb3N0X3NwYXJzZV9pbml0IGhvb2sgY2FsbGVkIGZyb20gc3BhcnNlX2luaXQpLiBUaGVzZSBhcmUgX19pbml0IGZ1bmN0aW9ucyBleGVjdXRlZCBvbmNlIGR1cmluZyBrZXJuZWwgYm9vdCBhbmQgY2Fubm90IGJlIHRyaWdnZXJlZCBvciBpbmZsdWVuY2VkIGJ5IHVzZXJzcGFjZSBmdXp6aW5nLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IG51bGwsCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgZWFybHkgYm9vdCBtZW1vcnkgaW5pdGlhbGl6YXRpb24gbG9naWMgKHNwZWNpZmljYWxseSwgbW92aW5nIFZNRU1NQVAgY2FjaGUgZmx1c2hpbmcgdG8gYSBuZXcgYXJjaF9wb3N0X3NwYXJzZV9pbml0IGhvb2sgY2FsbGVkIGZyb20gc3BhcnNlX2luaXQpLiBUaGVzZSBhcmUgX19pbml0IGZ1bmN0aW9ucyBleGVjdXRlZCBvbmNlIGR1cmluZyBrZXJuZWwgYm9vdCBhbmQgY2Fubm90IGJlIHRyaWdnZXJlZCBvciBpbmZsdWVuY2VkIGJ5IHVzZXJzcGFjZSBmdXp6aW5nLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41LzE8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yNyAwODowNjwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+SWY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTwvdGJvZHk+Cgk8L3RhYmxlPgoKCTxkaXYgaWQ9ImxsbV9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+TExNIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgVG9rZW5zPC90aD4KCQkJCQk8dGg+QXZnIFRva2VuczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJsbG1fc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJ0b29sX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5Ub29sIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9InRvb2xfc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJkdXJhdGlvbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+Cgk8ZGl2IGlkPSJ0b2tlbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+CgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9qc2FwaSI+PC9zY3JpcHQ+Cgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CgkJZ29vZ2xlLmxvYWQoInZpc3VhbGl6YXRpb24iLCAiMSIsIHtwYWNrYWdlczpbImNvcmVjaGFydCJdfSk7CgkJZ29vZ2xlLnNldE9uTG9hZENhbGxiYWNrKGRyYXdDaGFydHMpOwoKCQlmdW5jdGlvbiBkcmF3Q2hhcnRzKCkgewoJCQljb25zdCByYXdEYXRhID0gW3siU3RhcnRlZCI6IjIwMjYtMDgtMjdUMDg6MDU6NTUuMjU5Mzk0NDAzWiIsIlNlcSI6MCwiTmVzdGluZyI6MCwiVHlwZSI6ImZsb3ciLCJOYW1lIjoicGF0Y2gtdHJpYWdlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6ODk5ODI1MzExMSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJLTVNBTlJlYXNvbmluZ1wiOiBcIlwiLFxuICBcIk5lZWRzS01TQU5cIjogZmFsc2UsXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIGVhcmx5IGJvb3QgbWVtb3J5IGluaXRpYWxpemF0aW9uIGxvZ2ljIChzcGVjaWZpY2FsbHksIG1vdmluZyBWTUVNTUFQIGNhY2hlIGZsdXNoaW5nIHRvIGEgbmV3IGFyY2hfcG9zdF9zcGFyc2VfaW5pdCBob29rIGNhbGxlZCBmcm9tIHNwYXJzZV9pbml0KS4gVGhlc2UgYXJlIF9faW5pdCBmdW5jdGlvbnMgZXhlY3V0ZWQgb25jZSBkdXJpbmcga2VybmVsIGJvb3QgYW5kIGNhbm5vdCBiZSB0cmlnZ2VyZWQgb3IgaW5mbHVlbmNlZCBieSB1c2Vyc3BhY2UgZnV6emluZy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI3VDA4OjA1OjU1LjI1OTQwMDMzM1oiLCJTZXEiOjEsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoicmVhZC1wYXRjaC1kaWZmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDU0ODA2NDYxLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJQYXRjaERpZmZcIjogXCJjb21taXQgZDQyZWIyODQzNDkyNmI2ZTJkOTc0NmRhOWVhZmUzMWRkYzI2OWFjY1xcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXFx1MDAzZVxcbkRhdGU6ICAgVGh1IEF1ZyAyNyAwODowNTo1NCAyMDI2ICswMDAwXFxuXFxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xcblxcbmRpZmYgLS1naXQgYS9hcmNoL3Jpc2N2L21tL2luaXQuYyBiL2FyY2gvcmlzY3YvbW0vaW5pdC5jXFxuaW5kZXggZGVjZDdkZjQwZmE0Mi4uMjAwYTA1OGU4MGNhNyAxMDA2NDRcXG4tLS0gYS9hcmNoL3Jpc2N2L21tL2luaXQuY1xcbisrKyBiL2FyY2gvcmlzY3YvbW0vaW5pdC5jXFxuQEAgLTE5LDYgKzE5LDcgQEBcXG4gI2luY2x1ZGUgXFx1MDAzY2xpbnV4L3NldF9tZW1vcnkuaFxcdTAwM2VcXG4gI2luY2x1ZGUgXFx1MDAzY2xpbnV4L2RtYS1tYXAtb3BzLmhcXHUwMDNlXFxuICNpbmNsdWRlIFxcdTAwM2NsaW51eC9jcmFzaF9kdW1wLmhcXHUwMDNlXFxuKyNpbmNsdWRlIFxcdTAwM2NsaW51eC9jYWNoZWZsdXNoLmhcXHUwMDNlXFxuICNpbmNsdWRlIFxcdTAwM2NsaW51eC9odWdldGxiLmhcXHUwMDNlXFxuICNpbmNsdWRlIFxcdTAwM2NsaW51eC9rZmVuY2UuaFxcdTAwM2VcXG4gI2luY2x1ZGUgXFx1MDAzY2xpbnV4L2V4ZWNtZW0uaFxcdTAwM2VcXG5AQCAtMTMyNSwxNCArMTMyNiwxOCBAQCB2b2lkIF9faW5pdCBtaXNjX21lbV9pbml0KHZvaWQpXFxuIHtcXG4gXFx0ZWFybHlfbWVtdGVzdChtaW5fbG93X3BmbiBcXHUwMDNjXFx1MDAzYyBQQUdFX1NISUZULCBtYXhfbG93X3BmbiBcXHUwMDNjXFx1MDAzYyBQQUdFX1NISUZUKTtcXG4gXFx0YXJjaF9udW1hX2luaXQoKTtcXG4tI2lmZGVmIENPTkZJR19TUEFSU0VNRU1fVk1FTU1BUFxcbi1cXHQvKiBUaGUgZW50aXJlIFZNRU1NQVAgcmVnaW9uIGhhcyBiZWVuIHBvcHVsYXRlZC4gRmx1c2ggVExCIGZvciB0aGlzIHJlZ2lvbiAqL1xcbi1cXHRsb2NhbF9mbHVzaF90bGJfa2VybmVsX3JhbmdlKFZNRU1NQVBfU1RBUlQsIFZNRU1NQVBfRU5EKTtcXG4tI2VuZGlmXFxuIFxcdGFyY2hfcmVzZXJ2ZV9jcmFzaGtlcm5lbCgpO1xcbiBcXHRtZW1ibG9ja19kdW1wX2FsbCgpO1xcbiB9XFxuIFxcbisjaWZkZWYgQ09ORklHX1NQQVJTRU1FTV9WTUVNTUFQXFxuK3ZvaWQgX19pbml0IGFyY2hfcG9zdF9zcGFyc2VfaW5pdCh2b2lkKVxcbit7XFxuK1xcdC8qIFRoZSBlbnRpcmUgVk1FTU1BUCByZWdpb24gaGFzIGJlZW4gcG9wdWxhdGVkIGJ5IHNwYXJzZV9pbml0KCkuICovXFxuK1xcdGZsdXNoX2NhY2hlX3ZtYXBfZWFybHkoVk1FTU1BUF9TVEFSVCwgVk1FTU1BUF9FTkQpO1xcbit9XFxuKyNlbmRpZlxcbitcXG4gI2lmZGVmIENPTkZJR19TUEFSU0VNRU1fVk1FTU1BUFxcbiB2b2lkIF9fbWVtaW5pdCB2bWVtbWFwX3NldF9wbWQocG1kX3QgKnBtZCwgdm9pZCAqcCwgaW50IG5vZGUsXFxuIFxcdFxcdFxcdCAgICAgICB1bnNpZ25lZCBsb25nIGFkZHIsIHVuc2lnbmVkIGxvbmcgbmV4dClcXG5kaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9tbS5oIGIvaW5jbHVkZS9saW51eC9tbS5oXFxuaW5kZXggYWYyMzQ1M2U5ZGJkMC4uNWE3NWI2OTI5NmNkZCAxMDA2NDRcXG4tLS0gYS9pbmNsdWRlL2xpbnV4L21tLmhcXG4rKysgYi9pbmNsdWRlL2xpbnV4L21tLmhcXG5AQCAtNDYsNiArNDYsNyBAQCBzdHJ1Y3QgcHRfcmVncztcXG4gc3RydWN0IGZvbGlvX2JhdGNoO1xcbiBcXG4gdm9pZCBhcmNoX21tX3ByZWluaXQodm9pZCk7XFxuK3ZvaWQgYXJjaF9wb3N0X3NwYXJzZV9pbml0KHZvaWQpO1xcbiB2b2lkIG1tX2NvcmVfaW5pdF9lYXJseSh2b2lkKTtcXG4gdm9pZCBtbV9jb3JlX2luaXQodm9pZCk7XFxuIHZvaWQgaW5pdF9tbV9pbnRlcm5hbHModm9pZCk7XFxuZGlmZiAtLWdpdCBhL21tL3NwYXJzZS5jIGIvbW0vc3BhcnNlLmNcXG5pbmRleCBlZmZkYWM2YjBhYjEzLi5lY2YxYjI1MTBmYjNiIDEwMDY0NFxcbi0tLSBhL21tL3NwYXJzZS5jXFxuKysrIGIvbW0vc3BhcnNlLmNcXG5AQCAtMzA5LDYgKzMwOSwxMCBAQCB2b2lkIF9fd2VhayBfX21lbWluaXQgdm1lbW1hcF9wb3B1bGF0ZV9wcmludF9sYXN0KHZvaWQpXFxuIHtcXG4gfVxcbiBcXG4rdm9pZCBfX3dlYWsgX19pbml0IGFyY2hfcG9zdF9zcGFyc2VfaW5pdCh2b2lkKVxcbit7XFxuK31cXG4rXFxuIHN0YXRpYyB2b2lkICpzcGFyc2VfdXNhZ2VidWYgX19tZW1pbml0ZGF0YTtcXG4gc3RhdGljIHZvaWQgKnNwYXJzZV91c2FnZWJ1Zl9lbmQgX19tZW1pbml0ZGF0YTtcXG4gXFxuQEAgLTQ0Niw0ICs0NTAsNSBAQCB2b2lkIF9faW5pdCBzcGFyc2VfaW5pdCh2b2lkKVxcbiBcXHQvKiBjb3ZlciB0aGUgbGFzdCBub2RlICovXFxuIFxcdHNwYXJzZV9pbml0X25pZChuaWRfYmVnaW4sIHBudW1fYmVnaW4sIHBudW1fZW5kLCBtYXBfY291bnQpO1xcbiBcXHR2bWVtbWFwX3BvcHVsYXRlX3ByaW50X2xhc3QoKTtcXG4rXFx0YXJjaF9wb3N0X3NwYXJzZV9pbml0KCk7XFxuIH1cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjdUMDg6MDU6NTUuNzE0ODExOTQ0WiIsIlNlcSI6MiwiTmVzdGluZyI6MSwiVHlwZSI6ImFnZW50IiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiYmVzdC1leHBlbnNpdmUiLCJEdXJhdGlvbiI6ODU0MjgxMDE2MCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgZWFybHkgYm9vdCBtZW1vcnkgaW5pdGlhbGl6YXRpb24gbG9naWMgKHNwZWNpZmljYWxseSwgbW92aW5nIFZNRU1NQVAgY2FjaGUgZmx1c2hpbmcgdG8gYSBuZXcgYXJjaF9wb3N0X3NwYXJzZV9pbml0IGhvb2sgY2FsbGVkIGZyb20gc3BhcnNlX2luaXQpLiBUaGVzZSBhcmUgX19pbml0IGZ1bmN0aW9ucyBleGVjdXRlZCBvbmNlIGR1cmluZyBrZXJuZWwgYm9vdCBhbmQgY2Fubm90IGJlIHRyaWdnZXJlZCBvciBpbmZsdWVuY2VkIGJ5IHVzZXJzcGFjZSBmdXp6aW5nLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiWW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuXG5Zb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZVxuaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLlxuXG5JTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW5cbnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseVxudXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy5cblxuUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczpcbi0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy5cbi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuXG4tIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy5cbi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLFxuICBldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuXG4tIENvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLFxuICBpb25pYywgYW1kZ3B1KSB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS5cbi0gRHJpdmVyIC5yZW1vdmUsIC5zaHV0ZG93biwgb3IgcGNpX3VucmVnaXN0ZXJfZHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoZS5nLiwgaWdiX3JlbW92ZSlcbiAgdGhhdCBhcmUgZXhlY3V0ZWQgb25seSBkdXJpbmcgUENJIGhvdC11bnBsdWcgb3Igc3lzZnMgZHJpdmVyIHVuYmluZCBvcGVyYXRpb25zLlxuXG5JZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoXG50b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS5cblxuV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086XG4xLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLlxuICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuXG4gICBQcmVmZXIgbm9uLXN0YXRpYywgbm9uLWlubGluZWQgQVBJIGVudHJ5cG9pbnQgZnVuY3Rpb25zIG92ZXIgaW50ZXJuYWwgc3RhdGljIGhlbHBlciBmdW5jdGlvbnNcbiAgICh3aGljaCBhcmUgaW5saW5lZCBieSB0aGUgY29tcGlsZXIgYW5kIGRvIG5vdCBoYXZlIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMpLlxuMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuXG4gICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuXG4gICBBbHNvIGNoZWNrIFwiZGVwZW5kcyBvblwiIGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlnc1xuICAgbmVlZGVkIGZvciBLYnVpbGQgdG8gY29tcGlsZSB0aGUgY29kZSBzdGF0aWNhbGx5IGludG8gdm1saW51eC4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzXG4gICBvdXRwdXQgYXJyYXksIGFuZCBETyBOT1QgYWRkIGEgJ0NPTkZJR18nIHByZWZpeCAoZS5nLiwgcmV0dXJuIFwiTkVUX0lQVjRcIiBpbnN0ZWFkIG9mIFwiQ09ORklHX05FVF9JUFY0XCIpLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgZDQyZWIyODQzNDkyNmI2ZTJkOTc0NmRhOWVhZmUzMWRkYzI2OWFjY1xuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBUaHUgQXVnIDI3IDA4OjA1OjU0IDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvYXJjaC9yaXNjdi9tbS9pbml0LmMgYi9hcmNoL3Jpc2N2L21tL2luaXQuY1xuaW5kZXggZGVjZDdkZjQwZmE0Mi4uMjAwYTA1OGU4MGNhNyAxMDA2NDRcbi0tLSBhL2FyY2gvcmlzY3YvbW0vaW5pdC5jXG4rKysgYi9hcmNoL3Jpc2N2L21tL2luaXQuY1xuQEAgLTE5LDYgKzE5LDcgQEBcbiAjaW5jbHVkZSBcdTAwM2NsaW51eC9zZXRfbWVtb3J5LmhcdTAwM2VcbiAjaW5jbHVkZSBcdTAwM2NsaW51eC9kbWEtbWFwLW9wcy5oXHUwMDNlXG4gI2luY2x1ZGUgXHUwMDNjbGludXgvY3Jhc2hfZHVtcC5oXHUwMDNlXG4rI2luY2x1ZGUgXHUwMDNjbGludXgvY2FjaGVmbHVzaC5oXHUwMDNlXG4gI2luY2x1ZGUgXHUwMDNjbGludXgvaHVnZXRsYi5oXHUwMDNlXG4gI2luY2x1ZGUgXHUwMDNjbGludXgva2ZlbmNlLmhcdTAwM2VcbiAjaW5jbHVkZSBcdTAwM2NsaW51eC9leGVjbWVtLmhcdTAwM2VcbkBAIC0xMzI1LDE0ICsxMzI2LDE4IEBAIHZvaWQgX19pbml0IG1pc2NfbWVtX2luaXQodm9pZClcbiB7XG4gXHRlYXJseV9tZW10ZXN0KG1pbl9sb3dfcGZuIFx1MDAzY1x1MDAzYyBQQUdFX1NISUZULCBtYXhfbG93X3BmbiBcdTAwM2NcdTAwM2MgUEFHRV9TSElGVCk7XG4gXHRhcmNoX251bWFfaW5pdCgpO1xuLSNpZmRlZiBDT05GSUdfU1BBUlNFTUVNX1ZNRU1NQVBcbi1cdC8qIFRoZSBlbnRpcmUgVk1FTU1BUCByZWdpb24gaGFzIGJlZW4gcG9wdWxhdGVkLiBGbHVzaCBUTEIgZm9yIHRoaXMgcmVnaW9uICovXG4tXHRsb2NhbF9mbHVzaF90bGJfa2VybmVsX3JhbmdlKFZNRU1NQVBfU1RBUlQsIFZNRU1NQVBfRU5EKTtcbi0jZW5kaWZcbiBcdGFyY2hfcmVzZXJ2ZV9jcmFzaGtlcm5lbCgpO1xuIFx0bWVtYmxvY2tfZHVtcF9hbGwoKTtcbiB9XG4gXG4rI2lmZGVmIENPTkZJR19TUEFSU0VNRU1fVk1FTU1BUFxuK3ZvaWQgX19pbml0IGFyY2hfcG9zdF9zcGFyc2VfaW5pdCh2b2lkKVxuK3tcbitcdC8qIFRoZSBlbnRpcmUgVk1FTU1BUCByZWdpb24gaGFzIGJlZW4gcG9wdWxhdGVkIGJ5IHNwYXJzZV9pbml0KCkuICovXG4rXHRmbHVzaF9jYWNoZV92bWFwX2Vhcmx5KFZNRU1NQVBfU1RBUlQsIFZNRU1NQVBfRU5EKTtcbit9XG4rI2VuZGlmXG4rXG4gI2lmZGVmIENPTkZJR19TUEFSU0VNRU1fVk1FTU1BUFxuIHZvaWQgX19tZW1pbml0IHZtZW1tYXBfc2V0X3BtZChwbWRfdCAqcG1kLCB2b2lkICpwLCBpbnQgbm9kZSxcbiBcdFx0XHQgICAgICAgdW5zaWduZWQgbG9uZyBhZGRyLCB1bnNpZ25lZCBsb25nIG5leHQpXG5kaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9tbS5oIGIvaW5jbHVkZS9saW51eC9tbS5oXG5pbmRleCBhZjIzNDUzZTlkYmQwLi41YTc1YjY5Mjk2Y2RkIDEwMDY0NFxuLS0tIGEvaW5jbHVkZS9saW51eC9tbS5oXG4rKysgYi9pbmNsdWRlL2xpbnV4L21tLmhcbkBAIC00Niw2ICs0Niw3IEBAIHN0cnVjdCBwdF9yZWdzO1xuIHN0cnVjdCBmb2xpb19iYXRjaDtcbiBcbiB2b2lkIGFyY2hfbW1fcHJlaW5pdCh2b2lkKTtcbit2b2lkIGFyY2hfcG9zdF9zcGFyc2VfaW5pdCh2b2lkKTtcbiB2b2lkIG1tX2NvcmVfaW5pdF9lYXJseSh2b2lkKTtcbiB2b2lkIG1tX2NvcmVfaW5pdCh2b2lkKTtcbiB2b2lkIGluaXRfbW1faW50ZXJuYWxzKHZvaWQpO1xuZGlmZiAtLWdpdCBhL21tL3NwYXJzZS5jIGIvbW0vc3BhcnNlLmNcbmluZGV4IGVmZmRhYzZiMGFiMTMuLmVjZjFiMjUxMGZiM2IgMTAwNjQ0XG4tLS0gYS9tbS9zcGFyc2UuY1xuKysrIGIvbW0vc3BhcnNlLmNcbkBAIC0zMDksNiArMzA5LDEwIEBAIHZvaWQgX193ZWFrIF9fbWVtaW5pdCB2bWVtbWFwX3BvcHVsYXRlX3ByaW50X2xhc3Qodm9pZClcbiB7XG4gfVxuIFxuK3ZvaWQgX193ZWFrIF9faW5pdCBhcmNoX3Bvc3Rfc3BhcnNlX2luaXQodm9pZClcbit7XG4rfVxuK1xuIHN0YXRpYyB2b2lkICpzcGFyc2VfdXNhZ2VidWYgX19tZW1pbml0ZGF0YTtcbiBzdGF0aWMgdm9pZCAqc3BhcnNlX3VzYWdlYnVmX2VuZCBfX21lbWluaXRkYXRhO1xuIFxuQEAgLTQ0Niw0ICs0NTAsNSBAQCB2b2lkIF9faW5pdCBzcGFyc2VfaW5pdCh2b2lkKVxuIFx0LyogY292ZXIgdGhlIGxhc3Qgbm9kZSAqL1xuIFx0c3BhcnNlX2luaXRfbmlkKG5pZF9iZWdpbiwgcG51bV9iZWdpbiwgcG51bV9lbmQsIG1hcF9jb3VudCk7XG4gXHR2bWVtbWFwX3BvcHVsYXRlX3ByaW50X2xhc3QoKTtcbitcdGFyY2hfcG9zdF9zcGFyc2VfaW5pdCgpO1xuIH1cbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI3VDA4OjA1OjU1LjcxNDgxMzI4NFoiLCJTZXEiOjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjg1NDI3NzkxODAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqTXkgQXNzZXNzbWVudCBvZiB0aGlzIFBhdGNoKipcblxuT2theSwgc28gdGhpcyBwYXRjaCBpbnRyb2R1Y2VzIGEgbmV3IHdlYWsgZnVuY3Rpb24sIGBhcmNoX3Bvc3Rfc3BhcnNlX2luaXQoKWAsIHdpdGhpbiB0aGUgbWVtb3J5IG1hbmFnZW1lbnQgc3Vic3lzdGVtLiBFc3NlbnRpYWxseSwgaXQncyBhZGRpbmcgYSBuZXcgaG9vayB0aGF0IGdldHMgY2FsbGVkIGFmdGVyIGBzcGFyc2VfaW5pdCgpYCBjb21wbGV0ZXMuIExvb2tpbmcgc3BlY2lmaWNhbGx5IGF0IHRoZSBSSVNDLVYgaW1wbGVtZW50YXRpb24sIGBhcmNoX3Bvc3Rfc3BhcnNlX2luaXQoKWAgaXMgYmVpbmcgdXNlZCB0byBmbHVzaCB0aGUgY2FjaGUgZm9yIHRoZSBWTUVNTUFQIHJlZ2lvbiwgd2hpY2ggaXMgYSBrZXkgbWVtb3J5IG1hcHBpbmcgZHVyaW5nIGVhcmx5IGJvb3QuIE5vdGFibHksIHRoaXMgcGF0Y2ggYWxzbyByZW1vdmVzIGEgYGxvY2FsX2ZsdXNoX3RsYl9rZXJuZWxfcmFuZ2UoKWAgY2FsbCBmcm9tIGBtaXNjX21lbV9pbml0KClgLlxuXG5UaGlzIGlzIGFsbCBoYXBwZW5pbmcgZHVyaW5nIHRoZSBlYXJseSBib290IHByb2Nlc3MsIHNwZWNpZmljYWxseSB3aXRoaW4gYF9faW5pdGAgZnVuY3Rpb25zLiBUaGUgY2hhbmdlcyBhcmUgZm9jdXNlZCBvbiBpbml0aWFsaXphdGlvbiBhbmQgaG93IG1lbW9yeSBpcyBmbHVzaGVkIGFuZCBtYXBwZWQgKmJlZm9yZSogdGhlIHN5c3RlbSBnZXRzIHRvIGEgcG9pbnQgd2hlcmUgdXNlci1zcGFjZSBjYW4gcmVhbGx5IGRvIG11Y2ggb2YgYW55dGhpbmcuIE15IGluaXRpYWwgdGhvdWdodCBpcyB0aGF0IHRoaXMgaXMgKm5vdCogc29tZXRoaW5nIHRoYXQncyBkaXJlY3RseSBmdXp6YWJsZSBmcm9tIHVzZXJzcGFjZS4gVGhlcmUncyBubyBuZXcgZnVuY3Rpb25hbGl0eSBleHBvc2VkIHRoYXQgYSBmdXp6ZXIgY291bGQgZGlyZWN0bHkgdHJpZ2dlciBvciBtYW5pcHVsYXRlLiBJdCdzIGZ1bmRhbWVudGFsbHkgYWJvdXQgaG93IHRoZSBtZW1vcnkgaXMgbGFpZCBvdXQgYW5kIGhhbmRsZWQgZHVyaW5nIHRoZSBrZXJuZWwncyB2ZXJ5IGZpcnN0IHN0ZXBzLlxuXG5MZXQncyBkbyBhIHF1aWNrIHNhbml0eSBjaGVjayB0byBiZSBzdXJlLCB0aG91Z2guIGBhcmNoX3Bvc3Rfc3BhcnNlX2luaXQoKWAgaXMgY2FsbGVkIGZyb20gYHNwYXJzZV9pbml0KClgLCB3aGljaCBpbiB0dXJuLCBpcyBwYXJ0IG9mIGBtbV9jb3JlX2luaXQoKWAgb3IgYSBzaW1pbGFyIGNvcmUgbWVtb3J5IGluaXRpYWxpemF0aW9uIHJvdXRpbmUsIGFsbCBlYXJseSBpbiB0aGUgYm9vdCBzZXF1ZW5jZS4gSXQncyBkZWZpbml0ZWx5IGFuIGluaXRpYWxpemF0aW9uIGZpeCwgYSByZWZhY3RvcmluZyBvZiBzb3J0cyBpbiB0ZXJtcyBvZiAqd2hlbiogdGhlIGNhY2hlIGZsdXNoIGhhcHBlbnMuIFRoaXMgY29uZmlybXMgbXkgb3JpZ2luYWwgYXNzZXNzbWVudC4gTm8sIHRoaXMgaXNuJ3Qgc29tZXRoaW5nIHRoYXQgcHJlc2VudHMgYSBmdXp6aW5nIHRhcmdldC5cblxuVGhlcmVmb3JlLCBteSByZWNvbW1lbmRhdGlvbiBpcyBgV29ydGhGdXp6aW5nPWZhbHNlYC4gVGhlIHBhdGNoIG1vZGlmaWVzIGVhcmx5IGJvb3QgbWVtb3J5IGluaXRpYWxpemF0aW9uIGxvZ2ljIChzcGVjaWZpY2FsbHksIG1vdmluZyBWTUVNTUFQIGNhY2hlIGZsdXNoaW5nIHRvIGEgbmV3IGBhcmNoX3Bvc3Rfc3BhcnNlX2luaXRgIGhvb2sgY2FsbGVkIGZyb20gYHNwYXJzZV9pbml0YCkuIFRoZXNlIGFyZSBgX19pbml0YCBmdW5jdGlvbnMgZXhlY3V0ZWQgb25jZSBkdXJpbmcga2VybmVsIGJvb3QgYW5kIGNhbm5vdCBiZSB0cmlnZ2VyZWQgb3IgaW5mbHVlbmNlZCBieSB1c2Vyc3BhY2UgZnV6emluZy5cblxuXG4iLCJJbnB1dFRva2VucyI6MjY1NywiT3V0cHV0VG9rZW5zIjo4NywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjM0OCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI3VDA4OjA2OjA0LjI1NzU5NjM2NFoiLCJTZXEiOjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InNldC1yZXN1bHRzIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjQxMDAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgZWFybHkgYm9vdCBtZW1vcnkgaW5pdGlhbGl6YXRpb24gbG9naWMgKHNwZWNpZmljYWxseSwgbW92aW5nIFZNRU1NQVAgY2FjaGUgZmx1c2hpbmcgdG8gYSBuZXcgYXJjaF9wb3N0X3NwYXJzZV9pbml0IGhvb2sgY2FsbGVkIGZyb20gc3BhcnNlX2luaXQpLiBUaGVzZSBhcmUgX19pbml0IGZ1bmN0aW9ucyBleGVjdXRlZCBvbmNlIGR1cmluZyBrZXJuZWwgYm9vdCBhbmQgY2Fubm90IGJlIHRyaWdnZXJlZCBvciBpbmZsdWVuY2VkIGJ5IHVzZXJzcGFjZSBmdXp6aW5nLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgZWFybHkgYm9vdCBtZW1vcnkgaW5pdGlhbGl6YXRpb24gbG9naWMgKHNwZWNpZmljYWxseSwgbW92aW5nIFZNRU1NQVAgY2FjaGUgZmx1c2hpbmcgdG8gYSBuZXcgYXJjaF9wb3N0X3NwYXJzZV9pbml0IGhvb2sgY2FsbGVkIGZyb20gc3BhcnNlX2luaXQpLiBUaGVzZSBhcmUgX19pbml0IGZ1bmN0aW9ucyBleGVjdXRlZCBvbmNlIGR1cmluZyBrZXJuZWwgYm9vdCBhbmQgY2Fubm90IGJlIHRyaWdnZXJlZCBvciBpbmZsdWVuY2VkIGJ5IHVzZXJzcGFjZSBmdXp6aW5nLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjdUMDg6MDY6MDQuMjU3NjI0NDc1WiIsIlNlcSI6NSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJJZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjExODcxLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/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-workflowg6v5j[0].run-triage(0) Phase: Succeeded StartedAt: 2026-08-27 07:41:40 +0000 UTC FinishedAt: 2026-08-27 08:06:05 +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+CgkJCTx0ZD4yMDI2LzA4LzI3IDA4OjA1PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7S01TQU5SZWFzb25pbmcmIzM0OzogJiMzNDsmIzM0OywKICAmIzM0O05lZWRzS01TQU4mIzM0OzogZmFsc2UsCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgZWFybHkgYm9vdCBtZW1vcnkgaW5pdGlhbGl6YXRpb24gbG9naWMgKHNwZWNpZmljYWxseSwgbW92aW5nIFZNRU1NQVAgY2FjaGUgZmx1c2hpbmcgdG8gYSBuZXcgYXJjaF9wb3N0X3NwYXJzZV9pbml0IGhvb2sgY2FsbGVkIGZyb20gc3BhcnNlX2luaXQpLiBUaGVzZSBhcmUgX19pbml0IGZ1bmN0aW9ucyBleGVjdXRlZCBvbmNlIGR1cmluZyBrZXJuZWwgYm9vdCBhbmQgY2Fubm90IGJlIHRyaWdnZXJlZCBvciBpbmZsdWVuY2VkIGJ5IHVzZXJzcGFjZSBmdXp6aW5nLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yNyAwODowNTwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IGQ0MmViMjg0MzQ5MjZiNmUyZDk3NDZkYTllYWZlMzFkZGMyNjlhY2NcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgVGh1IEF1ZyAyNyAwODowNTo1NCAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9hcmNoL3Jpc2N2L21tL2luaXQuYyBiL2FyY2gvcmlzY3YvbW0vaW5pdC5jXG5pbmRleCBkZWNkN2RmNDBmYTQyLi4yMDBhMDU4ZTgwY2E3IDEwMDY0NFxuLS0tIGEvYXJjaC9yaXNjdi9tbS9pbml0LmNcbiYjNDM7JiM0MzsmIzQzOyBiL2FyY2gvcmlzY3YvbW0vaW5pdC5jXG5AQCAtMTksNiAmIzQzOzE5LDcgQEBcbiAjaW5jbHVkZSBcdTAwM2NsaW51eC9zZXRfbWVtb3J5LmhcdTAwM2VcbiAjaW5jbHVkZSBcdTAwM2NsaW51eC9kbWEtbWFwLW9wcy5oXHUwMDNlXG4gI2luY2x1ZGUgXHUwMDNjbGludXgvY3Jhc2hfZHVtcC5oXHUwMDNlXG4mIzQzOyNpbmNsdWRlIFx1MDAzY2xpbnV4L2NhY2hlZmx1c2guaFx1MDAzZVxuICNpbmNsdWRlIFx1MDAzY2xpbnV4L2h1Z2V0bGIuaFx1MDAzZVxuICNpbmNsdWRlIFx1MDAzY2xpbnV4L2tmZW5jZS5oXHUwMDNlXG4gI2luY2x1ZGUgXHUwMDNjbGludXgvZXhlY21lbS5oXHUwMDNlXG5AQCAtMTMyNSwxNCAmIzQzOzEzMjYsMTggQEAgdm9pZCBfX2luaXQgbWlzY19tZW1faW5pdCh2b2lkKVxuIHtcbiBcdGVhcmx5X21lbXRlc3QobWluX2xvd19wZm4gXHUwMDNjXHUwMDNjIFBBR0VfU0hJRlQsIG1heF9sb3dfcGZuIFx1MDAzY1x1MDAzYyBQQUdFX1NISUZUKTtcbiBcdGFyY2hfbnVtYV9pbml0KCk7XG4tI2lmZGVmIENPTkZJR19TUEFSU0VNRU1fVk1FTU1BUFxuLVx0LyogVGhlIGVudGlyZSBWTUVNTUFQIHJlZ2lvbiBoYXMgYmVlbiBwb3B1bGF0ZWQuIEZsdXNoIFRMQiBmb3IgdGhpcyByZWdpb24gKi9cbi1cdGxvY2FsX2ZsdXNoX3RsYl9rZXJuZWxfcmFuZ2UoVk1FTU1BUF9TVEFSVCwgVk1FTU1BUF9FTkQpO1xuLSNlbmRpZlxuIFx0YXJjaF9yZXNlcnZlX2NyYXNoa2VybmVsKCk7XG4gXHRtZW1ibG9ja19kdW1wX2FsbCgpO1xuIH1cbiBcbiYjNDM7I2lmZGVmIENPTkZJR19TUEFSU0VNRU1fVk1FTU1BUFxuJiM0Mzt2b2lkIF9faW5pdCBhcmNoX3Bvc3Rfc3BhcnNlX2luaXQodm9pZClcbiYjNDM7e1xuJiM0MztcdC8qIFRoZSBlbnRpcmUgVk1FTU1BUCByZWdpb24gaGFzIGJlZW4gcG9wdWxhdGVkIGJ5IHNwYXJzZV9pbml0KCkuICovXG4mIzQzO1x0Zmx1c2hfY2FjaGVfdm1hcF9lYXJseShWTUVNTUFQX1NUQVJULCBWTUVNTUFQX0VORCk7XG4mIzQzO31cbiYjNDM7I2VuZGlmXG4mIzQzO1xuICNpZmRlZiBDT05GSUdfU1BBUlNFTUVNX1ZNRU1NQVBcbiB2b2lkIF9fbWVtaW5pdCB2bWVtbWFwX3NldF9wbWQocG1kX3QgKnBtZCwgdm9pZCAqcCwgaW50IG5vZGUsXG4gXHRcdFx0ICAgICAgIHVuc2lnbmVkIGxvbmcgYWRkciwgdW5zaWduZWQgbG9uZyBuZXh0KVxuZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvbW0uaCBiL2luY2x1ZGUvbGludXgvbW0uaFxuaW5kZXggYWYyMzQ1M2U5ZGJkMC4uNWE3NWI2OTI5NmNkZCAxMDA2NDRcbi0tLSBhL2luY2x1ZGUvbGludXgvbW0uaFxuJiM0MzsmIzQzOyYjNDM7IGIvaW5jbHVkZS9saW51eC9tbS5oXG5AQCAtNDYsNiAmIzQzOzQ2LDcgQEAgc3RydWN0IHB0X3JlZ3M7XG4gc3RydWN0IGZvbGlvX2JhdGNoO1xuIFxuIHZvaWQgYXJjaF9tbV9wcmVpbml0KHZvaWQpO1xuJiM0Mzt2b2lkIGFyY2hfcG9zdF9zcGFyc2VfaW5pdCh2b2lkKTtcbiB2b2lkIG1tX2NvcmVfaW5pdF9lYXJseSh2b2lkKTtcbiB2b2lkIG1tX2NvcmVfaW5pdCh2b2lkKTtcbiB2b2lkIGluaXRfbW1faW50ZXJuYWxzKHZvaWQpO1xuZGlmZiAtLWdpdCBhL21tL3NwYXJzZS5jIGIvbW0vc3BhcnNlLmNcbmluZGV4IGVmZmRhYzZiMGFiMTMuLmVjZjFiMjUxMGZiM2IgMTAwNjQ0XG4tLS0gYS9tbS9zcGFyc2UuY1xuJiM0MzsmIzQzOyYjNDM7IGIvbW0vc3BhcnNlLmNcbkBAIC0zMDksNiAmIzQzOzMwOSwxMCBAQCB2b2lkIF9fd2VhayBfX21lbWluaXQgdm1lbW1hcF9wb3B1bGF0ZV9wcmludF9sYXN0KHZvaWQpXG4ge1xuIH1cbiBcbiYjNDM7dm9pZCBfX3dlYWsgX19pbml0IGFyY2hfcG9zdF9zcGFyc2VfaW5pdCh2b2lkKVxuJiM0Mzt7XG4mIzQzO31cbiYjNDM7XG4gc3RhdGljIHZvaWQgKnNwYXJzZV91c2FnZWJ1ZiBfX21lbWluaXRkYXRhO1xuIHN0YXRpYyB2b2lkICpzcGFyc2VfdXNhZ2VidWZfZW5kIF9fbWVtaW5pdGRhdGE7XG4gXG5AQCAtNDQ2LDQgJiM0Mzs0NTAsNSBAQCB2b2lkIF9faW5pdCBzcGFyc2VfaW5pdCh2b2lkKVxuIFx0LyogY292ZXIgdGhlIGxhc3Qgbm9kZSAqL1xuIFx0c3BhcnNlX2luaXRfbmlkKG5pZF9iZWdpbiwgcG51bV9iZWdpbiwgcG51bV9lbmQsIG1hcF9jb3VudCk7XG4gXHR2bWVtbWFwX3BvcHVsYXRlX3ByaW50X2xhc3QoKTtcbiYjNDM7XHRhcmNoX3Bvc3Rfc3BhcnNlX2luaXQoKTtcbiB9XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjcgMDg6MDU8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+YmVzdC1leHBlbnNpdmU8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIGVhcmx5IGJvb3QgbWVtb3J5IGluaXRpYWxpemF0aW9uIGxvZ2ljIChzcGVjaWZpY2FsbHksIG1vdmluZyBWTUVNTUFQIGNhY2hlIGZsdXNoaW5nIHRvIGEgbmV3IGFyY2hfcG9zdF9zcGFyc2VfaW5pdCBob29rIGNhbGxlZCBmcm9tIHNwYXJzZV9pbml0KS4gVGhlc2UgYXJlIF9faW5pdCBmdW5jdGlvbnMgZXhlY3V0ZWQgb25jZSBkdXJpbmcga2VybmVsIGJvb3QgYW5kIGNhbm5vdCBiZSB0cmlnZ2VyZWQgb3IgaW5mbHVlbmNlZCBieSB1c2Vyc3BhY2UgZnV6emluZy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZQppZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5CnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuCgpSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOgotIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuCi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuCi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LgotIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwKICBldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuCi0gQ29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsCiAgaW9uaWMsIGFtZGdwdSkgdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuCi0gRHJpdmVyIC5yZW1vdmUsIC5zaHV0ZG93biwgb3IgcGNpX3VucmVnaXN0ZXJfZHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoZS5nLiwgaWdiX3JlbW92ZSkKICB0aGF0IGFyZSBleGVjdXRlZCBvbmx5IGR1cmluZyBQQ0kgaG90LXVucGx1ZyBvciBzeXNmcyBkcml2ZXIgdW5iaW5kIG9wZXJhdGlvbnMuCgpJZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoCnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLgoKV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086CjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuCiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLgogICBQcmVmZXIgbm9uLXN0YXRpYywgbm9uLWlubGluZWQgQVBJIGVudHJ5cG9pbnQgZnVuY3Rpb25zIG92ZXIgaW50ZXJuYWwgc3RhdGljIGhlbHBlciBmdW5jdGlvbnMKICAgKHdoaWNoIGFyZSBpbmxpbmVkIGJ5IHRoZSBjb21waWxlciBhbmQgZG8gbm90IGhhdmUgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcykuCjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLgogICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuCiAgIEFsc28gY2hlY2sgJiMzNDtkZXBlbmRzIG9uJiMzNDsgbGluZXMgaW4gS2NvbmZpZyB0byBpbmNsdWRlIGFueSBub24tc3RhbmRhcmQgcGFyZW50IHN1YnN5c3RlbSBjb25maWdzCiAgIG5lZWRlZCBmb3IgS2J1aWxkIHRvIGNvbXBpbGUgdGhlIGNvZGUgc3RhdGljYWxseSBpbnRvIHZtbGludXguIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncwogICBvdXRwdXQgYXJyYXksIGFuZCBETyBOT1QgYWRkIGEgJiMzOTtDT05GSUdfJiMzOTsgcHJlZml4IChlLmcuLCByZXR1cm4gJiMzNDtORVRfSVBWNCYjMzQ7IGluc3RlYWQgb2YgJiMzNDtDT05GSUdfTkVUX0lQVjQmIzM0OykuClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Rm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCBkNDJlYjI4NDM0OTI2YjZlMmQ5NzQ2ZGE5ZWFmZTMxZGRjMjY5YWNjCkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIFRodSBBdWcgMjcgMDg6MDU6NTQgMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9hcmNoL3Jpc2N2L21tL2luaXQuYyBiL2FyY2gvcmlzY3YvbW0vaW5pdC5jCmluZGV4IGRlY2Q3ZGY0MGZhNDIuLjIwMGEwNThlODBjYTcgMTAwNjQ0Ci0tLSBhL2FyY2gvcmlzY3YvbW0vaW5pdC5jCiYjNDM7JiM0MzsmIzQzOyBiL2FyY2gvcmlzY3YvbW0vaW5pdC5jCkBAIC0xOSw2ICYjNDM7MTksNyBAQAogI2luY2x1ZGUgJmx0O2xpbnV4L3NldF9tZW1vcnkuaCZndDsKICNpbmNsdWRlICZsdDtsaW51eC9kbWEtbWFwLW9wcy5oJmd0OwogI2luY2x1ZGUgJmx0O2xpbnV4L2NyYXNoX2R1bXAuaCZndDsKJiM0MzsjaW5jbHVkZSAmbHQ7bGludXgvY2FjaGVmbHVzaC5oJmd0OwogI2luY2x1ZGUgJmx0O2xpbnV4L2h1Z2V0bGIuaCZndDsKICNpbmNsdWRlICZsdDtsaW51eC9rZmVuY2UuaCZndDsKICNpbmNsdWRlICZsdDtsaW51eC9leGVjbWVtLmgmZ3Q7CkBAIC0xMzI1LDE0ICYjNDM7MTMyNiwxOCBAQCB2b2lkIF9faW5pdCBtaXNjX21lbV9pbml0KHZvaWQpCiB7CiAJZWFybHlfbWVtdGVzdChtaW5fbG93X3BmbiAmbHQ7Jmx0OyBQQUdFX1NISUZULCBtYXhfbG93X3BmbiAmbHQ7Jmx0OyBQQUdFX1NISUZUKTsKIAlhcmNoX251bWFfaW5pdCgpOwotI2lmZGVmIENPTkZJR19TUEFSU0VNRU1fVk1FTU1BUAotCS8qIFRoZSBlbnRpcmUgVk1FTU1BUCByZWdpb24gaGFzIGJlZW4gcG9wdWxhdGVkLiBGbHVzaCBUTEIgZm9yIHRoaXMgcmVnaW9uICovCi0JbG9jYWxfZmx1c2hfdGxiX2tlcm5lbF9yYW5nZShWTUVNTUFQX1NUQVJULCBWTUVNTUFQX0VORCk7Ci0jZW5kaWYKIAlhcmNoX3Jlc2VydmVfY3Jhc2hrZXJuZWwoKTsKIAltZW1ibG9ja19kdW1wX2FsbCgpOwogfQogCiYjNDM7I2lmZGVmIENPTkZJR19TUEFSU0VNRU1fVk1FTU1BUAomIzQzO3ZvaWQgX19pbml0IGFyY2hfcG9zdF9zcGFyc2VfaW5pdCh2b2lkKQomIzQzO3sKJiM0MzsJLyogVGhlIGVudGlyZSBWTUVNTUFQIHJlZ2lvbiBoYXMgYmVlbiBwb3B1bGF0ZWQgYnkgc3BhcnNlX2luaXQoKS4gKi8KJiM0MzsJZmx1c2hfY2FjaGVfdm1hcF9lYXJseShWTUVNTUFQX1NUQVJULCBWTUVNTUFQX0VORCk7CiYjNDM7fQomIzQzOyNlbmRpZgomIzQzOwogI2lmZGVmIENPTkZJR19TUEFSU0VNRU1fVk1FTU1BUAogdm9pZCBfX21lbWluaXQgdm1lbW1hcF9zZXRfcG1kKHBtZF90ICpwbWQsIHZvaWQgKnAsIGludCBub2RlLAogCQkJICAgICAgIHVuc2lnbmVkIGxvbmcgYWRkciwgdW5zaWduZWQgbG9uZyBuZXh0KQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9tbS5oIGIvaW5jbHVkZS9saW51eC9tbS5oCmluZGV4IGFmMjM0NTNlOWRiZDAuLjVhNzViNjkyOTZjZGQgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvbW0uaAomIzQzOyYjNDM7JiM0MzsgYi9pbmNsdWRlL2xpbnV4L21tLmgKQEAgLTQ2LDYgJiM0Mzs0Niw3IEBAIHN0cnVjdCBwdF9yZWdzOwogc3RydWN0IGZvbGlvX2JhdGNoOwogCiB2b2lkIGFyY2hfbW1fcHJlaW5pdCh2b2lkKTsKJiM0Mzt2b2lkIGFyY2hfcG9zdF9zcGFyc2VfaW5pdCh2b2lkKTsKIHZvaWQgbW1fY29yZV9pbml0X2Vhcmx5KHZvaWQpOwogdm9pZCBtbV9jb3JlX2luaXQodm9pZCk7CiB2b2lkIGluaXRfbW1faW50ZXJuYWxzKHZvaWQpOwpkaWZmIC0tZ2l0IGEvbW0vc3BhcnNlLmMgYi9tbS9zcGFyc2UuYwppbmRleCBlZmZkYWM2YjBhYjEzLi5lY2YxYjI1MTBmYjNiIDEwMDY0NAotLS0gYS9tbS9zcGFyc2UuYwomIzQzOyYjNDM7JiM0MzsgYi9tbS9zcGFyc2UuYwpAQCAtMzA5LDYgJiM0MzszMDksMTAgQEAgdm9pZCBfX3dlYWsgX19tZW1pbml0IHZtZW1tYXBfcG9wdWxhdGVfcHJpbnRfbGFzdCh2b2lkKQogewogfQogCiYjNDM7dm9pZCBfX3dlYWsgX19pbml0IGFyY2hfcG9zdF9zcGFyc2VfaW5pdCh2b2lkKQomIzQzO3sKJiM0Mzt9CiYjNDM7CiBzdGF0aWMgdm9pZCAqc3BhcnNlX3VzYWdlYnVmIF9fbWVtaW5pdGRhdGE7CiBzdGF0aWMgdm9pZCAqc3BhcnNlX3VzYWdlYnVmX2VuZCBfX21lbWluaXRkYXRhOwogCkBAIC00NDYsNCAmIzQzOzQ1MCw1IEBAIHZvaWQgX19pbml0IHNwYXJzZV9pbml0KHZvaWQpCiAJLyogY292ZXIgdGhlIGxhc3Qgbm9kZSAqLwogCXNwYXJzZV9pbml0X25pZChuaWRfYmVnaW4sIHBudW1fYmVnaW4sIHBudW1fZW5kLCBtYXBfY291bnQpOwogCXZtZW1tYXBfcG9wdWxhdGVfcHJpbnRfbGFzdCgpOwomIzQzOwlhcmNoX3Bvc3Rfc3BhcnNlX2luaXQoKTsKIH0KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjcgMDg6MDU8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjY1NwoJCQkJCQkJb3V0cHV0OiA4NwoJCQkJCQkJdGhvdWdodHM6IDM0OAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBBc3Nlc3NtZW50IG9mIHRoaXMgUGF0Y2gqKgoKT2theSwgc28gdGhpcyBwYXRjaCBpbnRyb2R1Y2VzIGEgbmV3IHdlYWsgZnVuY3Rpb24sIGBhcmNoX3Bvc3Rfc3BhcnNlX2luaXQoKWAsIHdpdGhpbiB0aGUgbWVtb3J5IG1hbmFnZW1lbnQgc3Vic3lzdGVtLiBFc3NlbnRpYWxseSwgaXQmIzM5O3MgYWRkaW5nIGEgbmV3IGhvb2sgdGhhdCBnZXRzIGNhbGxlZCBhZnRlciBgc3BhcnNlX2luaXQoKWAgY29tcGxldGVzLiBMb29raW5nIHNwZWNpZmljYWxseSBhdCB0aGUgUklTQy1WIGltcGxlbWVudGF0aW9uLCBgYXJjaF9wb3N0X3NwYXJzZV9pbml0KClgIGlzIGJlaW5nIHVzZWQgdG8gZmx1c2ggdGhlIGNhY2hlIGZvciB0aGUgVk1FTU1BUCByZWdpb24sIHdoaWNoIGlzIGEga2V5IG1lbW9yeSBtYXBwaW5nIGR1cmluZyBlYXJseSBib290LiBOb3RhYmx5LCB0aGlzIHBhdGNoIGFsc28gcmVtb3ZlcyBhIGBsb2NhbF9mbHVzaF90bGJfa2VybmVsX3JhbmdlKClgIGNhbGwgZnJvbSBgbWlzY19tZW1faW5pdCgpYC4KClRoaXMgaXMgYWxsIGhhcHBlbmluZyBkdXJpbmcgdGhlIGVhcmx5IGJvb3QgcHJvY2Vzcywgc3BlY2lmaWNhbGx5IHdpdGhpbiBgX19pbml0YCBmdW5jdGlvbnMuIFRoZSBjaGFuZ2VzIGFyZSBmb2N1c2VkIG9uIGluaXRpYWxpemF0aW9uIGFuZCBob3cgbWVtb3J5IGlzIGZsdXNoZWQgYW5kIG1hcHBlZCAqYmVmb3JlKiB0aGUgc3lzdGVtIGdldHMgdG8gYSBwb2ludCB3aGVyZSB1c2VyLXNwYWNlIGNhbiByZWFsbHkgZG8gbXVjaCBvZiBhbnl0aGluZy4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRoYXQgdGhpcyBpcyAqbm90KiBzb21ldGhpbmcgdGhhdCYjMzk7cyBkaXJlY3RseSBmdXp6YWJsZSBmcm9tIHVzZXJzcGFjZS4gVGhlcmUmIzM5O3Mgbm8gbmV3IGZ1bmN0aW9uYWxpdHkgZXhwb3NlZCB0aGF0IGEgZnV6emVyIGNvdWxkIGRpcmVjdGx5IHRyaWdnZXIgb3IgbWFuaXB1bGF0ZS4gSXQmIzM5O3MgZnVuZGFtZW50YWxseSBhYm91dCBob3cgdGhlIG1lbW9yeSBpcyBsYWlkIG91dCBhbmQgaGFuZGxlZCBkdXJpbmcgdGhlIGtlcm5lbCYjMzk7cyB2ZXJ5IGZpcnN0IHN0ZXBzLgoKTGV0JiMzOTtzIGRvIGEgcXVpY2sgc2FuaXR5IGNoZWNrIHRvIGJlIHN1cmUsIHRob3VnaC4gYGFyY2hfcG9zdF9zcGFyc2VfaW5pdCgpYCBpcyBjYWxsZWQgZnJvbSBgc3BhcnNlX2luaXQoKWAsIHdoaWNoIGluIHR1cm4sIGlzIHBhcnQgb2YgYG1tX2NvcmVfaW5pdCgpYCBvciBhIHNpbWlsYXIgY29yZSBtZW1vcnkgaW5pdGlhbGl6YXRpb24gcm91dGluZSwgYWxsIGVhcmx5IGluIHRoZSBib290IHNlcXVlbmNlLiBJdCYjMzk7cyBkZWZpbml0ZWx5IGFuIGluaXRpYWxpemF0aW9uIGZpeCwgYSByZWZhY3RvcmluZyBvZiBzb3J0cyBpbiB0ZXJtcyBvZiAqd2hlbiogdGhlIGNhY2hlIGZsdXNoIGhhcHBlbnMuIFRoaXMgY29uZmlybXMgbXkgb3JpZ2luYWwgYXNzZXNzbWVudC4gTm8sIHRoaXMgaXNuJiMzOTt0IHNvbWV0aGluZyB0aGF0IHByZXNlbnRzIGEgZnV6emluZyB0YXJnZXQuCgpUaGVyZWZvcmUsIG15IHJlY29tbWVuZGF0aW9uIGlzIGBXb3J0aEZ1enppbmc9ZmFsc2VgLiBUaGUgcGF0Y2ggbW9kaWZpZXMgZWFybHkgYm9vdCBtZW1vcnkgaW5pdGlhbGl6YXRpb24gbG9naWMgKHNwZWNpZmljYWxseSwgbW92aW5nIFZNRU1NQVAgY2FjaGUgZmx1c2hpbmcgdG8gYSBuZXcgYGFyY2hfcG9zdF9zcGFyc2VfaW5pdGAgaG9vayBjYWxsZWQgZnJvbSBgc3BhcnNlX2luaXRgKS4gVGhlc2UgYXJlIGBfX2luaXRgIGZ1bmN0aW9ucyBleGVjdXRlZCBvbmNlIGR1cmluZyBrZXJuZWwgYm9vdCBhbmQgY2Fubm90IGJlIHRyaWdnZXJlZCBvciBpbmZsdWVuY2VkIGJ5IHVzZXJzcGFjZSBmdXp6aW5nLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzI3IDA4OjA2PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+c2V0LXJlc3VsdHM8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogW10sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgZWFybHkgYm9vdCBtZW1vcnkgaW5pdGlhbGl6YXRpb24gbG9naWMgKHNwZWNpZmljYWxseSwgbW92aW5nIFZNRU1NQVAgY2FjaGUgZmx1c2hpbmcgdG8gYSBuZXcgYXJjaF9wb3N0X3NwYXJzZV9pbml0IGhvb2sgY2FsbGVkIGZyb20gc3BhcnNlX2luaXQpLiBUaGVzZSBhcmUgX19pbml0IGZ1bmN0aW9ucyBleGVjdXRlZCBvbmNlIGR1cmluZyBrZXJuZWwgYm9vdCBhbmQgY2Fubm90IGJlIHRyaWdnZXJlZCBvciBpbmZsdWVuY2VkIGJ5IHVzZXJzcGFjZSBmdXp6aW5nLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IG51bGwsCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgZWFybHkgYm9vdCBtZW1vcnkgaW5pdGlhbGl6YXRpb24gbG9naWMgKHNwZWNpZmljYWxseSwgbW92aW5nIFZNRU1NQVAgY2FjaGUgZmx1c2hpbmcgdG8gYSBuZXcgYXJjaF9wb3N0X3NwYXJzZV9pbml0IGhvb2sgY2FsbGVkIGZyb20gc3BhcnNlX2luaXQpLiBUaGVzZSBhcmUgX19pbml0IGZ1bmN0aW9ucyBleGVjdXRlZCBvbmNlIGR1cmluZyBrZXJuZWwgYm9vdCBhbmQgY2Fubm90IGJlIHRyaWdnZXJlZCBvciBpbmZsdWVuY2VkIGJ5IHVzZXJzcGFjZSBmdXp6aW5nLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41LzE8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yNyAwODowNjwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+SWY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTwvdGJvZHk+Cgk8L3RhYmxlPgoKCTxkaXYgaWQ9ImxsbV9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+TExNIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgVG9rZW5zPC90aD4KCQkJCQk8dGg+QXZnIFRva2VuczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJsbG1fc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJ0b29sX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5Ub29sIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9InRvb2xfc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJkdXJhdGlvbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+Cgk8ZGl2IGlkPSJ0b2tlbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+CgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9qc2FwaSI+PC9zY3JpcHQ+Cgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CgkJZ29vZ2xlLmxvYWQoInZpc3VhbGl6YXRpb24iLCAiMSIsIHtwYWNrYWdlczpbImNvcmVjaGFydCJdfSk7CgkJZ29vZ2xlLnNldE9uTG9hZENhbGxiYWNrKGRyYXdDaGFydHMpOwoKCQlmdW5jdGlvbiBkcmF3Q2hhcnRzKCkgewoJCQljb25zdCByYXdEYXRhID0gW3siU3RhcnRlZCI6IjIwMjYtMDgtMjdUMDg6MDU6NTUuMjU5Mzk0NDAzWiIsIlNlcSI6MCwiTmVzdGluZyI6MCwiVHlwZSI6ImZsb3ciLCJOYW1lIjoicGF0Y2gtdHJpYWdlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6ODk5ODI1MzExMSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJLTVNBTlJlYXNvbmluZ1wiOiBcIlwiLFxuICBcIk5lZWRzS01TQU5cIjogZmFsc2UsXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIGVhcmx5IGJvb3QgbWVtb3J5IGluaXRpYWxpemF0aW9uIGxvZ2ljIChzcGVjaWZpY2FsbHksIG1vdmluZyBWTUVNTUFQIGNhY2hlIGZsdXNoaW5nIHRvIGEgbmV3IGFyY2hfcG9zdF9zcGFyc2VfaW5pdCBob29rIGNhbGxlZCBmcm9tIHNwYXJzZV9pbml0KS4gVGhlc2UgYXJlIF9faW5pdCBmdW5jdGlvbnMgZXhlY3V0ZWQgb25jZSBkdXJpbmcga2VybmVsIGJvb3QgYW5kIGNhbm5vdCBiZSB0cmlnZ2VyZWQgb3IgaW5mbHVlbmNlZCBieSB1c2Vyc3BhY2UgZnV6emluZy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI3VDA4OjA1OjU1LjI1OTQwMDMzM1oiLCJTZXEiOjEsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoicmVhZC1wYXRjaC1kaWZmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDU0ODA2NDYxLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJQYXRjaERpZmZcIjogXCJjb21taXQgZDQyZWIyODQzNDkyNmI2ZTJkOTc0NmRhOWVhZmUzMWRkYzI2OWFjY1xcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXFx1MDAzZVxcbkRhdGU6ICAgVGh1IEF1ZyAyNyAwODowNTo1NCAyMDI2ICswMDAwXFxuXFxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xcblxcbmRpZmYgLS1naXQgYS9hcmNoL3Jpc2N2L21tL2luaXQuYyBiL2FyY2gvcmlzY3YvbW0vaW5pdC5jXFxuaW5kZXggZGVjZDdkZjQwZmE0Mi4uMjAwYTA1OGU4MGNhNyAxMDA2NDRcXG4tLS0gYS9hcmNoL3Jpc2N2L21tL2luaXQuY1xcbisrKyBiL2FyY2gvcmlzY3YvbW0vaW5pdC5jXFxuQEAgLTE5LDYgKzE5LDcgQEBcXG4gI2luY2x1ZGUgXFx1MDAzY2xpbnV4L3NldF9tZW1vcnkuaFxcdTAwM2VcXG4gI2luY2x1ZGUgXFx1MDAzY2xpbnV4L2RtYS1tYXAtb3BzLmhcXHUwMDNlXFxuICNpbmNsdWRlIFxcdTAwM2NsaW51eC9jcmFzaF9kdW1wLmhcXHUwMDNlXFxuKyNpbmNsdWRlIFxcdTAwM2NsaW51eC9jYWNoZWZsdXNoLmhcXHUwMDNlXFxuICNpbmNsdWRlIFxcdTAwM2NsaW51eC9odWdldGxiLmhcXHUwMDNlXFxuICNpbmNsdWRlIFxcdTAwM2NsaW51eC9rZmVuY2UuaFxcdTAwM2VcXG4gI2luY2x1ZGUgXFx1MDAzY2xpbnV4L2V4ZWNtZW0uaFxcdTAwM2VcXG5AQCAtMTMyNSwxNCArMTMyNiwxOCBAQCB2b2lkIF9faW5pdCBtaXNjX21lbV9pbml0KHZvaWQpXFxuIHtcXG4gXFx0ZWFybHlfbWVtdGVzdChtaW5fbG93X3BmbiBcXHUwMDNjXFx1MDAzYyBQQUdFX1NISUZULCBtYXhfbG93X3BmbiBcXHUwMDNjXFx1MDAzYyBQQUdFX1NISUZUKTtcXG4gXFx0YXJjaF9udW1hX2luaXQoKTtcXG4tI2lmZGVmIENPTkZJR19TUEFSU0VNRU1fVk1FTU1BUFxcbi1cXHQvKiBUaGUgZW50aXJlIFZNRU1NQVAgcmVnaW9uIGhhcyBiZWVuIHBvcHVsYXRlZC4gRmx1c2ggVExCIGZvciB0aGlzIHJlZ2lvbiAqL1xcbi1cXHRsb2NhbF9mbHVzaF90bGJfa2VybmVsX3JhbmdlKFZNRU1NQVBfU1RBUlQsIFZNRU1NQVBfRU5EKTtcXG4tI2VuZGlmXFxuIFxcdGFyY2hfcmVzZXJ2ZV9jcmFzaGtlcm5lbCgpO1xcbiBcXHRtZW1ibG9ja19kdW1wX2FsbCgpO1xcbiB9XFxuIFxcbisjaWZkZWYgQ09ORklHX1NQQVJTRU1FTV9WTUVNTUFQXFxuK3ZvaWQgX19pbml0IGFyY2hfcG9zdF9zcGFyc2VfaW5pdCh2b2lkKVxcbit7XFxuK1xcdC8qIFRoZSBlbnRpcmUgVk1FTU1BUCByZWdpb24gaGFzIGJlZW4gcG9wdWxhdGVkIGJ5IHNwYXJzZV9pbml0KCkuICovXFxuK1xcdGZsdXNoX2NhY2hlX3ZtYXBfZWFybHkoVk1FTU1BUF9TVEFSVCwgVk1FTU1BUF9FTkQpO1xcbit9XFxuKyNlbmRpZlxcbitcXG4gI2lmZGVmIENPTkZJR19TUEFSU0VNRU1fVk1FTU1BUFxcbiB2b2lkIF9fbWVtaW5pdCB2bWVtbWFwX3NldF9wbWQocG1kX3QgKnBtZCwgdm9pZCAqcCwgaW50IG5vZGUsXFxuIFxcdFxcdFxcdCAgICAgICB1bnNpZ25lZCBsb25nIGFkZHIsIHVuc2lnbmVkIGxvbmcgbmV4dClcXG5kaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9tbS5oIGIvaW5jbHVkZS9saW51eC9tbS5oXFxuaW5kZXggYWYyMzQ1M2U5ZGJkMC4uNWE3NWI2OTI5NmNkZCAxMDA2NDRcXG4tLS0gYS9pbmNsdWRlL2xpbnV4L21tLmhcXG4rKysgYi9pbmNsdWRlL2xpbnV4L21tLmhcXG5AQCAtNDYsNiArNDYsNyBAQCBzdHJ1Y3QgcHRfcmVncztcXG4gc3RydWN0IGZvbGlvX2JhdGNoO1xcbiBcXG4gdm9pZCBhcmNoX21tX3ByZWluaXQodm9pZCk7XFxuK3ZvaWQgYXJjaF9wb3N0X3NwYXJzZV9pbml0KHZvaWQpO1xcbiB2b2lkIG1tX2NvcmVfaW5pdF9lYXJseSh2b2lkKTtcXG4gdm9pZCBtbV9jb3JlX2luaXQodm9pZCk7XFxuIHZvaWQgaW5pdF9tbV9pbnRlcm5hbHModm9pZCk7XFxuZGlmZiAtLWdpdCBhL21tL3NwYXJzZS5jIGIvbW0vc3BhcnNlLmNcXG5pbmRleCBlZmZkYWM2YjBhYjEzLi5lY2YxYjI1MTBmYjNiIDEwMDY0NFxcbi0tLSBhL21tL3NwYXJzZS5jXFxuKysrIGIvbW0vc3BhcnNlLmNcXG5AQCAtMzA5LDYgKzMwOSwxMCBAQCB2b2lkIF9fd2VhayBfX21lbWluaXQgdm1lbW1hcF9wb3B1bGF0ZV9wcmludF9sYXN0KHZvaWQpXFxuIHtcXG4gfVxcbiBcXG4rdm9pZCBfX3dlYWsgX19pbml0IGFyY2hfcG9zdF9zcGFyc2VfaW5pdCh2b2lkKVxcbit7XFxuK31cXG4rXFxuIHN0YXRpYyB2b2lkICpzcGFyc2VfdXNhZ2VidWYgX19tZW1pbml0ZGF0YTtcXG4gc3RhdGljIHZvaWQgKnNwYXJzZV91c2FnZWJ1Zl9lbmQgX19tZW1pbml0ZGF0YTtcXG4gXFxuQEAgLTQ0Niw0ICs0NTAsNSBAQCB2b2lkIF9faW5pdCBzcGFyc2VfaW5pdCh2b2lkKVxcbiBcXHQvKiBjb3ZlciB0aGUgbGFzdCBub2RlICovXFxuIFxcdHNwYXJzZV9pbml0X25pZChuaWRfYmVnaW4sIHBudW1fYmVnaW4sIHBudW1fZW5kLCBtYXBfY291bnQpO1xcbiBcXHR2bWVtbWFwX3BvcHVsYXRlX3ByaW50X2xhc3QoKTtcXG4rXFx0YXJjaF9wb3N0X3NwYXJzZV9pbml0KCk7XFxuIH1cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjdUMDg6MDU6NTUuNzE0ODExOTQ0WiIsIlNlcSI6MiwiTmVzdGluZyI6MSwiVHlwZSI6ImFnZW50IiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiYmVzdC1leHBlbnNpdmUiLCJEdXJhdGlvbiI6ODU0MjgxMDE2MCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgZWFybHkgYm9vdCBtZW1vcnkgaW5pdGlhbGl6YXRpb24gbG9naWMgKHNwZWNpZmljYWxseSwgbW92aW5nIFZNRU1NQVAgY2FjaGUgZmx1c2hpbmcgdG8gYSBuZXcgYXJjaF9wb3N0X3NwYXJzZV9pbml0IGhvb2sgY2FsbGVkIGZyb20gc3BhcnNlX2luaXQpLiBUaGVzZSBhcmUgX19pbml0IGZ1bmN0aW9ucyBleGVjdXRlZCBvbmNlIGR1cmluZyBrZXJuZWwgYm9vdCBhbmQgY2Fubm90IGJlIHRyaWdnZXJlZCBvciBpbmZsdWVuY2VkIGJ5IHVzZXJzcGFjZSBmdXp6aW5nLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiWW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuXG5Zb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZVxuaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLlxuXG5JTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW5cbnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseVxudXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy5cblxuUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczpcbi0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy5cbi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuXG4tIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy5cbi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLFxuICBldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuXG4tIENvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLFxuICBpb25pYywgYW1kZ3B1KSB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS5cbi0gRHJpdmVyIC5yZW1vdmUsIC5zaHV0ZG93biwgb3IgcGNpX3VucmVnaXN0ZXJfZHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoZS5nLiwgaWdiX3JlbW92ZSlcbiAgdGhhdCBhcmUgZXhlY3V0ZWQgb25seSBkdXJpbmcgUENJIGhvdC11bnBsdWcgb3Igc3lzZnMgZHJpdmVyIHVuYmluZCBvcGVyYXRpb25zLlxuXG5JZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoXG50b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS5cblxuV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086XG4xLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLlxuICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuXG4gICBQcmVmZXIgbm9uLXN0YXRpYywgbm9uLWlubGluZWQgQVBJIGVudHJ5cG9pbnQgZnVuY3Rpb25zIG92ZXIgaW50ZXJuYWwgc3RhdGljIGhlbHBlciBmdW5jdGlvbnNcbiAgICh3aGljaCBhcmUgaW5saW5lZCBieSB0aGUgY29tcGlsZXIgYW5kIGRvIG5vdCBoYXZlIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMpLlxuMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuXG4gICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuXG4gICBBbHNvIGNoZWNrIFwiZGVwZW5kcyBvblwiIGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlnc1xuICAgbmVlZGVkIGZvciBLYnVpbGQgdG8gY29tcGlsZSB0aGUgY29kZSBzdGF0aWNhbGx5IGludG8gdm1saW51eC4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzXG4gICBvdXRwdXQgYXJyYXksIGFuZCBETyBOT1QgYWRkIGEgJ0NPTkZJR18nIHByZWZpeCAoZS5nLiwgcmV0dXJuIFwiTkVUX0lQVjRcIiBpbnN0ZWFkIG9mIFwiQ09ORklHX05FVF9JUFY0XCIpLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgZDQyZWIyODQzNDkyNmI2ZTJkOTc0NmRhOWVhZmUzMWRkYzI2OWFjY1xuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBUaHUgQXVnIDI3IDA4OjA1OjU0IDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvYXJjaC9yaXNjdi9tbS9pbml0LmMgYi9hcmNoL3Jpc2N2L21tL2luaXQuY1xuaW5kZXggZGVjZDdkZjQwZmE0Mi4uMjAwYTA1OGU4MGNhNyAxMDA2NDRcbi0tLSBhL2FyY2gvcmlzY3YvbW0vaW5pdC5jXG4rKysgYi9hcmNoL3Jpc2N2L21tL2luaXQuY1xuQEAgLTE5LDYgKzE5LDcgQEBcbiAjaW5jbHVkZSBcdTAwM2NsaW51eC9zZXRfbWVtb3J5LmhcdTAwM2VcbiAjaW5jbHVkZSBcdTAwM2NsaW51eC9kbWEtbWFwLW9wcy5oXHUwMDNlXG4gI2luY2x1ZGUgXHUwMDNjbGludXgvY3Jhc2hfZHVtcC5oXHUwMDNlXG4rI2luY2x1ZGUgXHUwMDNjbGludXgvY2FjaGVmbHVzaC5oXHUwMDNlXG4gI2luY2x1ZGUgXHUwMDNjbGludXgvaHVnZXRsYi5oXHUwMDNlXG4gI2luY2x1ZGUgXHUwMDNjbGludXgva2ZlbmNlLmhcdTAwM2VcbiAjaW5jbHVkZSBcdTAwM2NsaW51eC9leGVjbWVtLmhcdTAwM2VcbkBAIC0xMzI1LDE0ICsxMzI2LDE4IEBAIHZvaWQgX19pbml0IG1pc2NfbWVtX2luaXQodm9pZClcbiB7XG4gXHRlYXJseV9tZW10ZXN0KG1pbl9sb3dfcGZuIFx1MDAzY1x1MDAzYyBQQUdFX1NISUZULCBtYXhfbG93X3BmbiBcdTAwM2NcdTAwM2MgUEFHRV9TSElGVCk7XG4gXHRhcmNoX251bWFfaW5pdCgpO1xuLSNpZmRlZiBDT05GSUdfU1BBUlNFTUVNX1ZNRU1NQVBcbi1cdC8qIFRoZSBlbnRpcmUgVk1FTU1BUCByZWdpb24gaGFzIGJlZW4gcG9wdWxhdGVkLiBGbHVzaCBUTEIgZm9yIHRoaXMgcmVnaW9uICovXG4tXHRsb2NhbF9mbHVzaF90bGJfa2VybmVsX3JhbmdlKFZNRU1NQVBfU1RBUlQsIFZNRU1NQVBfRU5EKTtcbi0jZW5kaWZcbiBcdGFyY2hfcmVzZXJ2ZV9jcmFzaGtlcm5lbCgpO1xuIFx0bWVtYmxvY2tfZHVtcF9hbGwoKTtcbiB9XG4gXG4rI2lmZGVmIENPTkZJR19TUEFSU0VNRU1fVk1FTU1BUFxuK3ZvaWQgX19pbml0IGFyY2hfcG9zdF9zcGFyc2VfaW5pdCh2b2lkKVxuK3tcbitcdC8qIFRoZSBlbnRpcmUgVk1FTU1BUCByZWdpb24gaGFzIGJlZW4gcG9wdWxhdGVkIGJ5IHNwYXJzZV9pbml0KCkuICovXG4rXHRmbHVzaF9jYWNoZV92bWFwX2Vhcmx5KFZNRU1NQVBfU1RBUlQsIFZNRU1NQVBfRU5EKTtcbit9XG4rI2VuZGlmXG4rXG4gI2lmZGVmIENPTkZJR19TUEFSU0VNRU1fVk1FTU1BUFxuIHZvaWQgX19tZW1pbml0IHZtZW1tYXBfc2V0X3BtZChwbWRfdCAqcG1kLCB2b2lkICpwLCBpbnQgbm9kZSxcbiBcdFx0XHQgICAgICAgdW5zaWduZWQgbG9uZyBhZGRyLCB1bnNpZ25lZCBsb25nIG5leHQpXG5kaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9tbS5oIGIvaW5jbHVkZS9saW51eC9tbS5oXG5pbmRleCBhZjIzNDUzZTlkYmQwLi41YTc1YjY5Mjk2Y2RkIDEwMDY0NFxuLS0tIGEvaW5jbHVkZS9saW51eC9tbS5oXG4rKysgYi9pbmNsdWRlL2xpbnV4L21tLmhcbkBAIC00Niw2ICs0Niw3IEBAIHN0cnVjdCBwdF9yZWdzO1xuIHN0cnVjdCBmb2xpb19iYXRjaDtcbiBcbiB2b2lkIGFyY2hfbW1fcHJlaW5pdCh2b2lkKTtcbit2b2lkIGFyY2hfcG9zdF9zcGFyc2VfaW5pdCh2b2lkKTtcbiB2b2lkIG1tX2NvcmVfaW5pdF9lYXJseSh2b2lkKTtcbiB2b2lkIG1tX2NvcmVfaW5pdCh2b2lkKTtcbiB2b2lkIGluaXRfbW1faW50ZXJuYWxzKHZvaWQpO1xuZGlmZiAtLWdpdCBhL21tL3NwYXJzZS5jIGIvbW0vc3BhcnNlLmNcbmluZGV4IGVmZmRhYzZiMGFiMTMuLmVjZjFiMjUxMGZiM2IgMTAwNjQ0XG4tLS0gYS9tbS9zcGFyc2UuY1xuKysrIGIvbW0vc3BhcnNlLmNcbkBAIC0zMDksNiArMzA5LDEwIEBAIHZvaWQgX193ZWFrIF9fbWVtaW5pdCB2bWVtbWFwX3BvcHVsYXRlX3ByaW50X2xhc3Qodm9pZClcbiB7XG4gfVxuIFxuK3ZvaWQgX193ZWFrIF9faW5pdCBhcmNoX3Bvc3Rfc3BhcnNlX2luaXQodm9pZClcbit7XG4rfVxuK1xuIHN0YXRpYyB2b2lkICpzcGFyc2VfdXNhZ2VidWYgX19tZW1pbml0ZGF0YTtcbiBzdGF0aWMgdm9pZCAqc3BhcnNlX3VzYWdlYnVmX2VuZCBfX21lbWluaXRkYXRhO1xuIFxuQEAgLTQ0Niw0ICs0NTAsNSBAQCB2b2lkIF9faW5pdCBzcGFyc2VfaW5pdCh2b2lkKVxuIFx0LyogY292ZXIgdGhlIGxhc3Qgbm9kZSAqL1xuIFx0c3BhcnNlX2luaXRfbmlkKG5pZF9iZWdpbiwgcG51bV9iZWdpbiwgcG51bV9lbmQsIG1hcF9jb3VudCk7XG4gXHR2bWVtbWFwX3BvcHVsYXRlX3ByaW50X2xhc3QoKTtcbitcdGFyY2hfcG9zdF9zcGFyc2VfaW5pdCgpO1xuIH1cbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI3VDA4OjA1OjU1LjcxNDgxMzI4NFoiLCJTZXEiOjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjg1NDI3NzkxODAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqTXkgQXNzZXNzbWVudCBvZiB0aGlzIFBhdGNoKipcblxuT2theSwgc28gdGhpcyBwYXRjaCBpbnRyb2R1Y2VzIGEgbmV3IHdlYWsgZnVuY3Rpb24sIGBhcmNoX3Bvc3Rfc3BhcnNlX2luaXQoKWAsIHdpdGhpbiB0aGUgbWVtb3J5IG1hbmFnZW1lbnQgc3Vic3lzdGVtLiBFc3NlbnRpYWxseSwgaXQncyBhZGRpbmcgYSBuZXcgaG9vayB0aGF0IGdldHMgY2FsbGVkIGFmdGVyIGBzcGFyc2VfaW5pdCgpYCBjb21wbGV0ZXMuIExvb2tpbmcgc3BlY2lmaWNhbGx5IGF0IHRoZSBSSVNDLVYgaW1wbGVtZW50YXRpb24sIGBhcmNoX3Bvc3Rfc3BhcnNlX2luaXQoKWAgaXMgYmVpbmcgdXNlZCB0byBmbHVzaCB0aGUgY2FjaGUgZm9yIHRoZSBWTUVNTUFQIHJlZ2lvbiwgd2hpY2ggaXMgYSBrZXkgbWVtb3J5IG1hcHBpbmcgZHVyaW5nIGVhcmx5IGJvb3QuIE5vdGFibHksIHRoaXMgcGF0Y2ggYWxzbyByZW1vdmVzIGEgYGxvY2FsX2ZsdXNoX3RsYl9rZXJuZWxfcmFuZ2UoKWAgY2FsbCBmcm9tIGBtaXNjX21lbV9pbml0KClgLlxuXG5UaGlzIGlzIGFsbCBoYXBwZW5pbmcgZHVyaW5nIHRoZSBlYXJseSBib290IHByb2Nlc3MsIHNwZWNpZmljYWxseSB3aXRoaW4gYF9faW5pdGAgZnVuY3Rpb25zLiBUaGUgY2hhbmdlcyBhcmUgZm9jdXNlZCBvbiBpbml0aWFsaXphdGlvbiBhbmQgaG93IG1lbW9yeSBpcyBmbHVzaGVkIGFuZCBtYXBwZWQgKmJlZm9yZSogdGhlIHN5c3RlbSBnZXRzIHRvIGEgcG9pbnQgd2hlcmUgdXNlci1zcGFjZSBjYW4gcmVhbGx5IGRvIG11Y2ggb2YgYW55dGhpbmcuIE15IGluaXRpYWwgdGhvdWdodCBpcyB0aGF0IHRoaXMgaXMgKm5vdCogc29tZXRoaW5nIHRoYXQncyBkaXJlY3RseSBmdXp6YWJsZSBmcm9tIHVzZXJzcGFjZS4gVGhlcmUncyBubyBuZXcgZnVuY3Rpb25hbGl0eSBleHBvc2VkIHRoYXQgYSBmdXp6ZXIgY291bGQgZGlyZWN0bHkgdHJpZ2dlciBvciBtYW5pcHVsYXRlLiBJdCdzIGZ1bmRhbWVudGFsbHkgYWJvdXQgaG93IHRoZSBtZW1vcnkgaXMgbGFpZCBvdXQgYW5kIGhhbmRsZWQgZHVyaW5nIHRoZSBrZXJuZWwncyB2ZXJ5IGZpcnN0IHN0ZXBzLlxuXG5MZXQncyBkbyBhIHF1aWNrIHNhbml0eSBjaGVjayB0byBiZSBzdXJlLCB0aG91Z2guIGBhcmNoX3Bvc3Rfc3BhcnNlX2luaXQoKWAgaXMgY2FsbGVkIGZyb20gYHNwYXJzZV9pbml0KClgLCB3aGljaCBpbiB0dXJuLCBpcyBwYXJ0IG9mIGBtbV9jb3JlX2luaXQoKWAgb3IgYSBzaW1pbGFyIGNvcmUgbWVtb3J5IGluaXRpYWxpemF0aW9uIHJvdXRpbmUsIGFsbCBlYXJseSBpbiB0aGUgYm9vdCBzZXF1ZW5jZS4gSXQncyBkZWZpbml0ZWx5IGFuIGluaXRpYWxpemF0aW9uIGZpeCwgYSByZWZhY3RvcmluZyBvZiBzb3J0cyBpbiB0ZXJtcyBvZiAqd2hlbiogdGhlIGNhY2hlIGZsdXNoIGhhcHBlbnMuIFRoaXMgY29uZmlybXMgbXkgb3JpZ2luYWwgYXNzZXNzbWVudC4gTm8sIHRoaXMgaXNuJ3Qgc29tZXRoaW5nIHRoYXQgcHJlc2VudHMgYSBmdXp6aW5nIHRhcmdldC5cblxuVGhlcmVmb3JlLCBteSByZWNvbW1lbmRhdGlvbiBpcyBgV29ydGhGdXp6aW5nPWZhbHNlYC4gVGhlIHBhdGNoIG1vZGlmaWVzIGVhcmx5IGJvb3QgbWVtb3J5IGluaXRpYWxpemF0aW9uIGxvZ2ljIChzcGVjaWZpY2FsbHksIG1vdmluZyBWTUVNTUFQIGNhY2hlIGZsdXNoaW5nIHRvIGEgbmV3IGBhcmNoX3Bvc3Rfc3BhcnNlX2luaXRgIGhvb2sgY2FsbGVkIGZyb20gYHNwYXJzZV9pbml0YCkuIFRoZXNlIGFyZSBgX19pbml0YCBmdW5jdGlvbnMgZXhlY3V0ZWQgb25jZSBkdXJpbmcga2VybmVsIGJvb3QgYW5kIGNhbm5vdCBiZSB0cmlnZ2VyZWQgb3IgaW5mbHVlbmNlZCBieSB1c2Vyc3BhY2UgZnV6emluZy5cblxuXG4iLCJJbnB1dFRva2VucyI6MjY1NywiT3V0cHV0VG9rZW5zIjo4NywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjM0OCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI3VDA4OjA2OjA0LjI1NzU5NjM2NFoiLCJTZXEiOjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InNldC1yZXN1bHRzIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjQxMDAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgZWFybHkgYm9vdCBtZW1vcnkgaW5pdGlhbGl6YXRpb24gbG9naWMgKHNwZWNpZmljYWxseSwgbW92aW5nIFZNRU1NQVAgY2FjaGUgZmx1c2hpbmcgdG8gYSBuZXcgYXJjaF9wb3N0X3NwYXJzZV9pbml0IGhvb2sgY2FsbGVkIGZyb20gc3BhcnNlX2luaXQpLiBUaGVzZSBhcmUgX19pbml0IGZ1bmN0aW9ucyBleGVjdXRlZCBvbmNlIGR1cmluZyBrZXJuZWwgYm9vdCBhbmQgY2Fubm90IGJlIHRyaWdnZXJlZCBvciBpbmZsdWVuY2VkIGJ5IHVzZXJzcGFjZSBmdXp6aW5nLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgZWFybHkgYm9vdCBtZW1vcnkgaW5pdGlhbGl6YXRpb24gbG9naWMgKHNwZWNpZmljYWxseSwgbW92aW5nIFZNRU1NQVAgY2FjaGUgZmx1c2hpbmcgdG8gYSBuZXcgYXJjaF9wb3N0X3NwYXJzZV9pbml0IGhvb2sgY2FsbGVkIGZyb20gc3BhcnNlX2luaXQpLiBUaGVzZSBhcmUgX19pbml0IGZ1bmN0aW9ucyBleGVjdXRlZCBvbmNlIGR1cmluZyBrZXJuZWwgYm9vdCBhbmQgY2Fubm90IGJlIHRyaWdnZXJlZCBvciBpbmZsdWVuY2VkIGJ5IHVzZXJzcGFjZSBmdXp6aW5nLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjdUMDg6MDY6MDQuMjU3NjI0NDc1WiIsIlNlcSI6NSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJJZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjExODcxLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/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-workflowg6v5j[1] Phase: Running StartedAt: 2026-08-27 08:06:15 +0000 UTC FinishedAt: 0001-01-01 00:00:00 +0000 UTC Input: nil Output: nil --------- Name: series-workflowg6v5j[1].abort-on-skip-outcome Phase: Failed StartedAt: 2026-08-27 08:06:15 +0000 UTC FinishedAt: 2026-08-27 08:06:19 +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,}