Name: series-workflowqv8zv Phase: Succeeded StartedAt: 2026-07-28 07:45:55 +0000 UTC FinishedAt: 2026-07-28 12:54:03 +0000 UTC Input: nil Output: nil --------- Name: series-workflowqv8zv[0] Phase: Succeeded StartedAt: 2026-07-28 07:45:55 +0000 UTC FinishedAt: 2026-07-28 08:12:10 +0000 UTC Input: nil Output: nil --------- Name: series-workflowqv8zv[0].run-triage Phase: Succeeded StartedAt: 2026-07-28 07:45:55 +0000 UTC FinishedAt: 2026-07-28 08:12:10 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "net-next", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git", "commit_hash": "90883c513ca01e77c56b8d94be7de11420c1dacf", "config_name": "upstream-apparmor-kasan.config", "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "net-next", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git", "commit_hash": "90883c513ca01e77c56b8d94be7de11420c1dacf", "config_name": "upstream-apparmor-kasan.config", "series_id": "9f6bd817-66d0-48b7-8bcd-a52a0222e8b0" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [ "reqsk_timer_handler", "tcp_fastopen_synack_timer" ], "corpus_urls": [ "https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db" ], "skip_cover_check": false, "bug_title_re": "" }, "retest": null } ], "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI4IDA4OjExPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7cmVxc2tfdGltZXJfaGFuZGxlciYjMzQ7LAogICAgJiMzNDt0Y3BfZmFzdG9wZW5fc3luYWNrX3RpbWVyJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGZpeGVzIHNoaWZ0LW91dC1vZi1ib3VuZHMgYnVncyBpbiB0aGUgVENQIHN0YWNrIHdoZW4gY2FsY3VsYXRpbmcgU1lOQUNLIHRpbWVvdXRzIGJ5IGNhcHBpbmcgdGhlIG51bWJlciBvZiByZXRyaWVzIGFuZCBwcm9wZXJseSBjaGVja2luZyBmb3Igb3ZlcmZsb3cuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiBjb3JlIFRDUCBsb2dpYyB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MS8xPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjggMDg6MTE8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPnJlYWQtcGF0Y2gtZGlmZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1BhdGNoRGlmZiYjMzQ7OiAmIzM0O2NvbW1pdCA4Yzk5MWYzOWI4MjU5N2FkZjJlMGRjY2YyNzE0MjY1OTdlMGRlZmIzXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFR1ZSBKdWwgMjggMDg6MTE6MjUgMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZXQvdGNwLmggYi9pbmNsdWRlL25ldC90Y3AuaFxuaW5kZXggNmQzNzZlYTRkMWMwMWQuLmVlNzg0MzZiODk2NDVhIDEwMDY0NFxuLS0tIGEvaW5jbHVkZS9uZXQvdGNwLmhcbiYjNDM7JiM0MzsmIzQzOyBiL2luY2x1ZGUvbmV0L3RjcC5oXG5AQCAtMTgzLDYgJiM0MzsxODMsNyBAQCBzdGF0aWNfYXNzZXJ0KCgxIFx1MDAzY1x1MDAzYyBBVE9fQklUUykgXHUwMDNlIFRDUF9ERUxBQ0tfTUFYKTtcbiAjZGVmaW5lIE1BWF9UQ1BfS0VFUElOVFZMXHQzMjc2N1xuICNkZWZpbmUgTUFYX1RDUF9LRUVQQ05UXHRcdDEyN1xuICNkZWZpbmUgTUFYX1RDUF9TWU5DTlRcdFx0MTI3XG4mIzQzOyNkZWZpbmUgTUFYX1RDUF9TWU5BQ0tfUkVUUklFU1x0NjNcbiBcbiAvKiBFbnN1cmUgdGhhdCBUQ1AgUEFXUyBjaGVja3MgYXJlIHJlbGF4ZWQgYWZ0ZXIgfjIxNDcgc2Vjb25kc1xuICAqIHRvIGF2b2lkIG92ZXJmbG93cy4gVGhpcyBhc3N1bWVzIGEgY2xvY2sgc21hbGxlciB0aGFuIDEgTWh6LlxuQEAgLTg4MiwxMiAmIzQzOzg4MywyMiBAQCBzdGF0aWMgaW5saW5lIHUzMiBfX3RjcF9zZXRfcnRvKGNvbnN0IHN0cnVjdCB0Y3Bfc29jayAqdHApXG4gXHRyZXR1cm4gdXNlY3NfdG9famlmZmllcygodHAtXHUwMDNlc3J0dF91cyBcdTAwM2VcdTAwM2UgMykgJiM0MzsgdHAtXHUwMDNlcnR0dmFyX3VzKTtcbiB9XG4gXG4tc3RhdGljIGlubGluZSB1bnNpZ25lZCBsb25nIHRjcF9yZXFza190aW1lb3V0KHN0cnVjdCByZXF1ZXN0X3NvY2sgKnJlcSlcbiYjNDM7c3RhdGljIGlubGluZSB1bnNpZ25lZCBsb25nIHRjcF9yZXFza190aW1lb3V0X3NrKGNvbnN0IHN0cnVjdCBzb2NrICpzayxcbiYjNDM7XHRcdFx0XHRcdFx0IHN0cnVjdCByZXF1ZXN0X3NvY2sgKnJlcSlcbiB7XG4tXHR1NjQgdGltZW91dCA9ICh1NjQpcmVxLVx1MDAzZXRpbWVvdXQgXHUwMDNjXHUwMDNjIHJlcS1cdTAwM2VudW1fdGltZW91dDtcbiYjNDM7XHR1MzIgcnRvX21heCA9IHRjcF9ydG9fbWF4KHNrKTtcbiYjNDM7XHR1NjQgdGltZW91dCA9IHJlcS1cdTAwM2V0aW1lb3V0O1xuJiM0MztcbiYjNDM7XHRpZiAocmVxLVx1MDAzZW51bV90aW1lb3V0IFx1MDAzZT0gQklUU19QRVJfVFlQRSh1NjQpIHx8XG4mIzQzO1x0ICAgIHRpbWVvdXQgXHUwMDNlIFU2NF9NQVggXHUwMDNlXHUwMDNlIHJlcS1cdTAwM2VudW1fdGltZW91dClcbiYjNDM7XHRcdHJldHVybiBydG9fbWF4O1xuJiM0MztcbiYjNDM7XHRyZXR1cm4gKHVuc2lnbmVkIGxvbmcpbWluX3QodTY0LCB0aW1lb3V0IFx1MDAzY1x1MDAzYyByZXEtXHUwMDNlbnVtX3RpbWVvdXQsIHJ0b19tYXgpO1xuJiM0Mzt9XG4gXG4tXHRyZXR1cm4gKHVuc2lnbmVkIGxvbmcpbWluX3QodTY0LCB0aW1lb3V0LFxuLVx0XHRcdFx0ICAgIHRjcF9ydG9fbWF4KHJlcS1cdTAwM2Vyc2tfbGlzdGVuZXIpKTtcbiYjNDM7c3RhdGljIGlubGluZSB1bnNpZ25lZCBsb25nIHRjcF9yZXFza190aW1lb3V0KHN0cnVjdCByZXF1ZXN0X3NvY2sgKnJlcSlcbiYjNDM7e1xuJiM0MztcdHJldHVybiB0Y3BfcmVxc2tfdGltZW91dF9zayhyZXEtXHUwMDNlcnNrX2xpc3RlbmVyLCByZXEpO1xuIH1cbiBcbiB1MzIgdGNwX2RlbGFja19tYXgoY29uc3Qgc3RydWN0IHNvY2sgKnNrKTtcbmRpZmYgLS1naXQgYS9uZXQvaXB2NC9pbmV0X2Nvbm5lY3Rpb25fc29jay5jIGIvbmV0L2lwdjQvaW5ldF9jb25uZWN0aW9uX3NvY2suY1xuaW5kZXggNTY5MDJiYmE1NDgzOGIuLmI3NDIxMmJhZTNkZDI1IDEwMDY0NFxuLS0tIGEvbmV0L2lwdjQvaW5ldF9jb25uZWN0aW9uX3NvY2suY1xuJiM0MzsmIzQzOyYjNDM7IGIvbmV0L2lwdjQvaW5ldF9jb25uZWN0aW9uX3NvY2suY1xuQEAgLTEwNTYsNiAmIzQzOzEwNTYsOCBAQCBzdGF0aWMgdm9pZCByZXFza190aW1lcl9oYW5kbGVyKHN0cnVjdCB0aW1lcl9saXN0ICp0KVxuIFx0bmV0ID0gc29ja19uZXQoc2tfbGlzdGVuZXIpO1xuIFx0bWF4X3N5bl9hY2tfcmV0cmllcyA9IFJFQURfT05DRShpY3NrLVx1MDAzZWljc2tfc3luX3JldHJpZXMpID8gOlxuIFx0XHRSRUFEX09OQ0UobmV0LVx1MDAzZWlwdjQuc3lzY3RsX3RjcF9zeW5hY2tfcmV0cmllcyk7XG4mIzQzO1x0bWF4X3N5bl9hY2tfcmV0cmllcyA9IG1pbl90KGludCwgbWF4X3N5bl9hY2tfcmV0cmllcyxcbiYjNDM7XHRcdFx0XHQgICAgTUFYX1RDUF9TWU5BQ0tfUkVUUklFUyk7XG4gXHQvKiBOb3JtYWxseSBhbGwgdGhlIG9wZW5yZXFzIGFyZSB5b3VuZyBhbmQgYmVjb21lIG1hdHVyZVxuIFx0ICogKGkuZS4gY29udmVydGVkIHRvIGVzdGFibGlzaGVkIHNvY2tldCkgZm9yIGZpcnN0IHRpbWVvdXQuXG4gXHQgKiBJZiBzeW5hY2sgd2FzIG5vdCBhY2tub3dsZWRnZWQgZm9yIDEgc2Vjb25kLCBpdCBtZWFuc1xuQEAgLTEwODYsNyAmIzQzOzEwODgsOSBAQCBzdGF0aWMgdm9pZCByZXFza190aW1lcl9oYW5kbGVyKHN0cnVjdCB0aW1lcl9saXN0ICp0KVxuIFx0XHR9XG4gXHR9XG4gXG4tXHRzeW5fYWNrX3JlY2FsYyhyZXEsIG1heF9zeW5fYWNrX3JldHJpZXMsIFJFQURfT05DRShxdWV1ZS1cdTAwM2Vyc2txX2RlZmVyX2FjY2VwdCksXG4mIzQzO1x0c3luX2Fja19yZWNhbGMocmVxLCBtYXhfc3luX2Fja19yZXRyaWVzLFxuJiM0MztcdFx0ICAgICAgIG1pbl90KHU4LCBSRUFEX09OQ0UocXVldWUtXHUwMDNlcnNrcV9kZWZlcl9hY2NlcHQpLFxuJiM0MztcdFx0XHQgICAgIE1BWF9UQ1BfU1lOQUNLX1JFVFJJRVMpLFxuIFx0XHQgICAgICAgXHUwMDI2ZXhwaXJlLCBcdTAwMjZyZXNlbmQpO1xuIFx0dGNwX3N5bl9hY2tfdGltZW91dChyZXEpO1xuIFxuZGlmZiAtLWdpdCBhL25ldC9pcHY0L3RjcF90aW1lci5jIGIvbmV0L2lwdjQvdGNwX3RpbWVyLmNcbmluZGV4IGJmMTcxYjVlMWViMzA2Li5iYmVkZjJiOWUxYmNlYSAxMDA2NDRcbi0tLSBhL25ldC9pcHY0L3RjcF90aW1lci5jXG4mIzQzOyYjNDM7JiM0MzsgYi9uZXQvaXB2NC90Y3BfdGltZXIuY1xuQEAgLTQ2Nyw2ICYjNDM7NDY3LDcgQEAgc3RhdGljIHZvaWQgdGNwX2Zhc3RvcGVuX3N5bmFja190aW1lcihzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCByZXF1ZXN0X3NvY2sgKnJlcSlcbiBcdCAqL1xuIFx0bWF4X3JldHJpZXMgPSBSRUFEX09OQ0UoaWNzay1cdTAwM2VpY3NrX3N5bl9yZXRyaWVzKSA/IDpcbiBcdFx0UkVBRF9PTkNFKHNvY2tfbmV0KHNrKS1cdTAwM2VpcHY0LnN5c2N0bF90Y3Bfc3luYWNrX3JldHJpZXMpICYjNDM7IDE7XG4mIzQzO1x0bWF4X3JldHJpZXMgPSBtaW5fdChpbnQsIG1heF9yZXRyaWVzLCBNQVhfVENQX1NZTkFDS19SRVRSSUVTKTtcbiBcbiBcdGlmIChyZXEtXHUwMDNlbnVtX3RpbWVvdXQgXHUwMDNlPSBtYXhfcmV0cmllcykge1xuIFx0XHR0Y3Bfd3JpdGVfZXJyKHNrKTtcbkBAIC00ODgsNyAmIzQzOzQ4OSw3IEBAIHN0YXRpYyB2b2lkIHRjcF9mYXN0b3Blbl9zeW5hY2tfdGltZXIoc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3QgcmVxdWVzdF9zb2NrICpyZXEpXG4gXHRpZiAoIXRwLVx1MDAzZXJldHJhbnNfc3RhbXApXG4gXHRcdHRwLVx1MDAzZXJldHJhbnNfc3RhbXAgPSB0Y3BfdGltZV9zdGFtcF90cyh0cCk7XG4gXHR0Y3BfcmVzZXRfeG1pdF90aW1lcihzaywgSUNTS19USU1FX1JFVFJBTlMsXG4tXHRcdFx0ICByZXEtXHUwMDNldGltZW91dCBcdTAwM2NcdTAwM2MgcmVxLVx1MDAzZW51bV90aW1lb3V0LCBmYWxzZSk7XG4mIzQzO1x0XHRcdCAgICAgdGNwX3JlcXNrX3RpbWVvdXRfc2soc2ssIHJlcSksIGZhbHNlKTtcbiB9XG4gXG4gc3RhdGljIGJvb2wgdGNwX3J0eF9wcm9iZTBfdGltZWRfb3V0KGNvbnN0IHN0cnVjdCBzb2NrICpzayxcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yOCAwODoxMTwvdGQ+CgkJCTx0ZD5hZ2VudDwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5iZXN0LWV4cGVuc2l2ZTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IG51bGwsCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtyZXFza190aW1lcl9oYW5kbGVyJiMzNDssCiAgICAmIzM0O3RjcF9mYXN0b3Blbl9zeW5hY2tfdGltZXImIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggZml4ZXMgc2hpZnQtb3V0LW9mLWJvdW5kcyBidWdzIGluIHRoZSBUQ1Agc3RhY2sgd2hlbiBjYWxjdWxhdGluZyBTWU5BQ0sgdGltZW91dHMgYnkgY2FwcGluZyB0aGUgbnVtYmVyIG9mIHJldHJpZXMgYW5kIHByb3Blcmx5IGNoZWNraW5nIGZvciBvdmVyZmxvdy4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIGNvcmUgVENQIGxvZ2ljIHRoYXQgc2hvdWxkIGJlIGZ1enplZC4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkluc3RydWN0aW9uOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+WW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuCllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lCmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC4KCklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpbgp5b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHkKdXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy4KClJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6Ci0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy4KLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy4KLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuCi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLAogIGV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS4KLSBDb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCwKICBpb25pYywgYW1kZ3B1KSB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS4KLSBEcml2ZXIgLnJlbW92ZSwgLnNodXRkb3duLCBvciBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzIChlLmcuLCBpZ2JfcmVtb3ZlKQogIHRoYXQgYXJlIGV4ZWN1dGVkIG9ubHkgZHVyaW5nIFBDSSBob3QtdW5wbHVnIG9yIHN5c2ZzIGRyaXZlciB1bmJpbmQgb3BlcmF0aW9ucy4KCklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2gKdG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuCgpXaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzoKMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy4KICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuCiAgIFByZWZlciBub24tc3RhdGljLCBub24taW5saW5lZCBBUEkgZW50cnlwb2ludCBmdW5jdGlvbnMgb3ZlciBpbnRlcm5hbCBzdGF0aWMgaGVscGVyIGZ1bmN0aW9ucwogICAod2hpY2ggYXJlIGlubGluZWQgYnkgdGhlIGNvbXBpbGVyIGFuZCBkbyBub3QgaGF2ZSBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzKS4KMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuCiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy4KICAgQWxzbyBjaGVjayAmIzM0O2RlcGVuZHMgb24mIzM0OyBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3MKICAgbmVlZGVkIGZvciBLYnVpbGQgdG8gY29tcGlsZSB0aGUgY29kZSBzdGF0aWNhbGx5IGludG8gdm1saW51eC4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzCiAgIG91dHB1dCBhcnJheSwgYW5kIERPIE5PVCBhZGQgYSAmIzM5O0NPTkZJR18mIzM5OyBwcmVmaXggKGUuZy4sIHJldHVybiAmIzM0O05FVF9JUFY0JiMzNDsgaW5zdGVhZCBvZiAmIzM0O0NPTkZJR19ORVRfSVBWNCYjMzQ7KS4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IDhjOTkxZjM5YjgyNTk3YWRmMmUwZGNjZjI3MTQyNjU5N2UwZGVmYjMKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgVHVlIEp1bCAyOCAwODoxMToyNSAyMDI2ICYjNDM7MDAwMAoKICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldwoKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmV0L3RjcC5oIGIvaW5jbHVkZS9uZXQvdGNwLmgKaW5kZXggNmQzNzZlYTRkMWMwMWQuLmVlNzg0MzZiODk2NDVhIDEwMDY0NAotLS0gYS9pbmNsdWRlL25ldC90Y3AuaAomIzQzOyYjNDM7JiM0MzsgYi9pbmNsdWRlL25ldC90Y3AuaApAQCAtMTgzLDYgJiM0MzsxODMsNyBAQCBzdGF0aWNfYXNzZXJ0KCgxICZsdDsmbHQ7IEFUT19CSVRTKSAmZ3Q7IFRDUF9ERUxBQ0tfTUFYKTsKICNkZWZpbmUgTUFYX1RDUF9LRUVQSU5UVkwJMzI3NjcKICNkZWZpbmUgTUFYX1RDUF9LRUVQQ05UCQkxMjcKICNkZWZpbmUgTUFYX1RDUF9TWU5DTlQJCTEyNwomIzQzOyNkZWZpbmUgTUFYX1RDUF9TWU5BQ0tfUkVUUklFUwk2MwogCiAvKiBFbnN1cmUgdGhhdCBUQ1AgUEFXUyBjaGVja3MgYXJlIHJlbGF4ZWQgYWZ0ZXIgfjIxNDcgc2Vjb25kcwogICogdG8gYXZvaWQgb3ZlcmZsb3dzLiBUaGlzIGFzc3VtZXMgYSBjbG9jayBzbWFsbGVyIHRoYW4gMSBNaHouCkBAIC04ODIsMTIgJiM0Mzs4ODMsMjIgQEAgc3RhdGljIGlubGluZSB1MzIgX190Y3Bfc2V0X3J0byhjb25zdCBzdHJ1Y3QgdGNwX3NvY2sgKnRwKQogCXJldHVybiB1c2Vjc190b19qaWZmaWVzKCh0cC0mZ3Q7c3J0dF91cyAmZ3Q7Jmd0OyAzKSAmIzQzOyB0cC0mZ3Q7cnR0dmFyX3VzKTsKIH0KIAotc3RhdGljIGlubGluZSB1bnNpZ25lZCBsb25nIHRjcF9yZXFza190aW1lb3V0KHN0cnVjdCByZXF1ZXN0X3NvY2sgKnJlcSkKJiM0MztzdGF0aWMgaW5saW5lIHVuc2lnbmVkIGxvbmcgdGNwX3JlcXNrX3RpbWVvdXRfc2soY29uc3Qgc3RydWN0IHNvY2sgKnNrLAomIzQzOwkJCQkJCSBzdHJ1Y3QgcmVxdWVzdF9zb2NrICpyZXEpCiB7Ci0JdTY0IHRpbWVvdXQgPSAodTY0KXJlcS0mZ3Q7dGltZW91dCAmbHQ7Jmx0OyByZXEtJmd0O251bV90aW1lb3V0OwomIzQzOwl1MzIgcnRvX21heCA9IHRjcF9ydG9fbWF4KHNrKTsKJiM0MzsJdTY0IHRpbWVvdXQgPSByZXEtJmd0O3RpbWVvdXQ7CiYjNDM7CiYjNDM7CWlmIChyZXEtJmd0O251bV90aW1lb3V0ICZndDs9IEJJVFNfUEVSX1RZUEUodTY0KSB8fAomIzQzOwkgICAgdGltZW91dCAmZ3Q7IFU2NF9NQVggJmd0OyZndDsgcmVxLSZndDtudW1fdGltZW91dCkKJiM0MzsJCXJldHVybiBydG9fbWF4OwomIzQzOwomIzQzOwlyZXR1cm4gKHVuc2lnbmVkIGxvbmcpbWluX3QodTY0LCB0aW1lb3V0ICZsdDsmbHQ7IHJlcS0mZ3Q7bnVtX3RpbWVvdXQsIHJ0b19tYXgpOwomIzQzO30KIAotCXJldHVybiAodW5zaWduZWQgbG9uZyltaW5fdCh1NjQsIHRpbWVvdXQsCi0JCQkJICAgIHRjcF9ydG9fbWF4KHJlcS0mZ3Q7cnNrX2xpc3RlbmVyKSk7CiYjNDM7c3RhdGljIGlubGluZSB1bnNpZ25lZCBsb25nIHRjcF9yZXFza190aW1lb3V0KHN0cnVjdCByZXF1ZXN0X3NvY2sgKnJlcSkKJiM0Mzt7CiYjNDM7CXJldHVybiB0Y3BfcmVxc2tfdGltZW91dF9zayhyZXEtJmd0O3Jza19saXN0ZW5lciwgcmVxKTsKIH0KIAogdTMyIHRjcF9kZWxhY2tfbWF4KGNvbnN0IHN0cnVjdCBzb2NrICpzayk7CmRpZmYgLS1naXQgYS9uZXQvaXB2NC9pbmV0X2Nvbm5lY3Rpb25fc29jay5jIGIvbmV0L2lwdjQvaW5ldF9jb25uZWN0aW9uX3NvY2suYwppbmRleCA1NjkwMmJiYTU0ODM4Yi4uYjc0MjEyYmFlM2RkMjUgMTAwNjQ0Ci0tLSBhL25ldC9pcHY0L2luZXRfY29ubmVjdGlvbl9zb2NrLmMKJiM0MzsmIzQzOyYjNDM7IGIvbmV0L2lwdjQvaW5ldF9jb25uZWN0aW9uX3NvY2suYwpAQCAtMTA1Niw2ICYjNDM7MTA1Niw4IEBAIHN0YXRpYyB2b2lkIHJlcXNrX3RpbWVyX2hhbmRsZXIoc3RydWN0IHRpbWVyX2xpc3QgKnQpCiAJbmV0ID0gc29ja19uZXQoc2tfbGlzdGVuZXIpOwogCW1heF9zeW5fYWNrX3JldHJpZXMgPSBSRUFEX09OQ0UoaWNzay0mZ3Q7aWNza19zeW5fcmV0cmllcykgPyA6CiAJCVJFQURfT05DRShuZXQtJmd0O2lwdjQuc3lzY3RsX3RjcF9zeW5hY2tfcmV0cmllcyk7CiYjNDM7CW1heF9zeW5fYWNrX3JldHJpZXMgPSBtaW5fdChpbnQsIG1heF9zeW5fYWNrX3JldHJpZXMsCiYjNDM7CQkJCSAgICBNQVhfVENQX1NZTkFDS19SRVRSSUVTKTsKIAkvKiBOb3JtYWxseSBhbGwgdGhlIG9wZW5yZXFzIGFyZSB5b3VuZyBhbmQgYmVjb21lIG1hdHVyZQogCSAqIChpLmUuIGNvbnZlcnRlZCB0byBlc3RhYmxpc2hlZCBzb2NrZXQpIGZvciBmaXJzdCB0aW1lb3V0LgogCSAqIElmIHN5bmFjayB3YXMgbm90IGFja25vd2xlZGdlZCBmb3IgMSBzZWNvbmQsIGl0IG1lYW5zCkBAIC0xMDg2LDcgJiM0MzsxMDg4LDkgQEAgc3RhdGljIHZvaWQgcmVxc2tfdGltZXJfaGFuZGxlcihzdHJ1Y3QgdGltZXJfbGlzdCAqdCkKIAkJfQogCX0KIAotCXN5bl9hY2tfcmVjYWxjKHJlcSwgbWF4X3N5bl9hY2tfcmV0cmllcywgUkVBRF9PTkNFKHF1ZXVlLSZndDtyc2txX2RlZmVyX2FjY2VwdCksCiYjNDM7CXN5bl9hY2tfcmVjYWxjKHJlcSwgbWF4X3N5bl9hY2tfcmV0cmllcywKJiM0MzsJCSAgICAgICBtaW5fdCh1OCwgUkVBRF9PTkNFKHF1ZXVlLSZndDtyc2txX2RlZmVyX2FjY2VwdCksCiYjNDM7CQkJICAgICBNQVhfVENQX1NZTkFDS19SRVRSSUVTKSwKIAkJICAgICAgICZhbXA7ZXhwaXJlLCAmYW1wO3Jlc2VuZCk7CiAJdGNwX3N5bl9hY2tfdGltZW91dChyZXEpOwogCmRpZmYgLS1naXQgYS9uZXQvaXB2NC90Y3BfdGltZXIuYyBiL25ldC9pcHY0L3RjcF90aW1lci5jCmluZGV4IGJmMTcxYjVlMWViMzA2Li5iYmVkZjJiOWUxYmNlYSAxMDA2NDQKLS0tIGEvbmV0L2lwdjQvdGNwX3RpbWVyLmMKJiM0MzsmIzQzOyYjNDM7IGIvbmV0L2lwdjQvdGNwX3RpbWVyLmMKQEAgLTQ2Nyw2ICYjNDM7NDY3LDcgQEAgc3RhdGljIHZvaWQgdGNwX2Zhc3RvcGVuX3N5bmFja190aW1lcihzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCByZXF1ZXN0X3NvY2sgKnJlcSkKIAkgKi8KIAltYXhfcmV0cmllcyA9IFJFQURfT05DRShpY3NrLSZndDtpY3NrX3N5bl9yZXRyaWVzKSA/IDoKIAkJUkVBRF9PTkNFKHNvY2tfbmV0KHNrKS0mZ3Q7aXB2NC5zeXNjdGxfdGNwX3N5bmFja19yZXRyaWVzKSAmIzQzOyAxOwomIzQzOwltYXhfcmV0cmllcyA9IG1pbl90KGludCwgbWF4X3JldHJpZXMsIE1BWF9UQ1BfU1lOQUNLX1JFVFJJRVMpOwogCiAJaWYgKHJlcS0mZ3Q7bnVtX3RpbWVvdXQgJmd0Oz0gbWF4X3JldHJpZXMpIHsKIAkJdGNwX3dyaXRlX2Vycihzayk7CkBAIC00ODgsNyAmIzQzOzQ4OSw3IEBAIHN0YXRpYyB2b2lkIHRjcF9mYXN0b3Blbl9zeW5hY2tfdGltZXIoc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3QgcmVxdWVzdF9zb2NrICpyZXEpCiAJaWYgKCF0cC0mZ3Q7cmV0cmFuc19zdGFtcCkKIAkJdHAtJmd0O3JldHJhbnNfc3RhbXAgPSB0Y3BfdGltZV9zdGFtcF90cyh0cCk7CiAJdGNwX3Jlc2V0X3htaXRfdGltZXIoc2ssIElDU0tfVElNRV9SRVRSQU5TLAotCQkJICByZXEtJmd0O3RpbWVvdXQgJmx0OyZsdDsgcmVxLSZndDtudW1fdGltZW91dCwgZmFsc2UpOwomIzQzOwkJCSAgICAgdGNwX3JlcXNrX3RpbWVvdXRfc2soc2ssIHJlcSksIGZhbHNlKTsKIH0KIAogc3RhdGljIGJvb2wgdGNwX3J0eF9wcm9iZTBfdGltZWRfb3V0KGNvbnN0IHN0cnVjdCBzb2NrICpzaywKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjggMDg6MTE8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzI3NgoJCQkJCQkJb3V0cHV0OiAyMwoJCQkJCQkJdGhvdWdodHM6IDM4OAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgYSBUQ1AgU3RhY2sgUGF0Y2gqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggdGhhdCB0d2Vha3MgdGhlIFRDUCBzdGFjaywgc3BlY2lmaWNhbGx5IHRvdWNoaW5nIGBpbmNsdWRlL25ldC90Y3AuaGAsIGBuZXQvaXB2NC9pbmV0X2Nvbm5lY3Rpb25fc29jay5jYCwgYW5kIGBuZXQvaXB2NC90Y3BfdGltZXIuY2AuIEZyb20gd2hhdCBJIGdhdGhlciwgaXQmIzM5O3MgaW50cm9kdWNpbmcgYSBgTUFYX1RDUF9TWU5BQ0tfUkVUUklFU2AgdG8gbGltaXQgdGhlIG51bWJlciBvZiBTWU5BQ0sgcmV0cmllcy4gVGhhdCYjMzk7cyBhIHJlYXNvbmFibGUgc2FmZWd1YXJkLiBJdCBhbHNvIHNlZW1zIHRvIGFkZHJlc3MgcG90ZW50aWFsIHNoaWZ0IG92ZXJmbG93cyBpbiBgdGNwX3JlcXNrX3RpbWVvdXRgIGFuZCBgcmVxc2tfdGltZXJfaGFuZGxlcmAsIGdvb2QgY2F0Y2gsIHRob3NlIGFyZSBuYXN0eSBidWdzLiBBbmQgZmluYWxseSwgaXQmIzM5O3MgY2FwcGluZyBgbWF4X3N5bl9hY2tfcmV0cmllc2AgYW5kIGBxdWV1ZS0mZ3Q7cnNrcV9kZWZlcl9hY2NlcHRgIGluIGByZXFza190aW1lcl9oYW5kbGVyYCBhbmQgYG1heF9yZXRyaWVzYCBpbiBgdGNwX2Zhc3RvcGVuX3N5bmFja190aW1lcmAuIE1ha2VzIHNlbnNlLCBwcmV2ZW50aW5nIHVuYm91bmRlZCByZXRyaWVzIGlzIGNydWNpYWwgZm9yIHN0YWJpbGl0eS4KCkZ1bmN0aW9uYWxseSwgdGhpcyBpcyBhIGNoYW5nZSB3aXRoaW4gdGhlIFRDUCBzdGFjayBpdHNlbGYuIERlZmluaXRlbHkgd29ydGggYSBmdXp6aW5nIGNhbXBhaWduIHRvIHZhbGlkYXRlLiBJIHRoaW5rIHRoZSBrZXkgYXJlYXMgdG8gZm9jdXMgbXkgZnV6emluZyBlZmZvcnRzIHNob3VsZCBiZSBvbiBgcmVxc2tfdGltZXJfaGFuZGxlcmAsIGFuZCBgdGNwX2Zhc3RvcGVuX3N5bmFja190aW1lcmAuIEkmIzM5O2xsIGtlZXAgYW4gZXllIG9uIGB0Y3BfcmVxc2tfdGltZW91dF9za2AsIGFsdGhvdWdoIGl0JiMzOTtzIGlubGluZWQsIHNvIGl0IG1pZ2h0IGJlIGxlc3Mgb2YgYSB0YXJnZXQuIEFsc28gYHRjcF9yZXFza190aW1lb3V0YCB3aGljaCBpcyBhbHNvIGlubGluZWQuCgpMZXQmIzM5O3MgcXVpY2tseSBjb25maXJtIHRob3NlIGFzIHNvbGlkIGZvY3VzIHN5bWJvbHMsIEkmIzM5O20gdGhpbmtpbmcgSSBzaG91bGQgc3RhcnQgd2l0aCBgcmVxc2tfdGltZXJfaGFuZGxlcmAgYmVjYXVzZSwgYXMgYSB0aW1lciBoYW5kbGVyLCBpdCYjMzk7cyBsaWtlbHkgdG8gZGVhbCB3aXRoIGEgbG90IG9mIHN0YXRlIGNoYW5nZXMgaW4gdGhlIFRDUCBzdGFjay4gYHRjcF9mYXN0b3Blbl9zeW5hY2tfdGltZXJgIGlzIGNhbGxlZCBmcm9tIGB0Y3BfcmV0cmFuc21pdF90aW1lcmAsIHNvIHRoYXQmIzM5O3MgYSBnb29kIGVudHJ5IHBvaW50IHRvIGV4YW1pbmUgdGhvc2UuCgpObywgdGhpcyBsb29rcyBsaWtlIHN0YW5kYXJkIFRDUCwgc28gSSBkb24mIzM5O3QgbmVlZCBhbnkgc3BlY2lhbCBjb25maWd1cmF0aW9ucy4gYENPTkZJR19JTkVUYCBhbmQgYENPTkZJR19UQ1BgIHNob3VsZCBiZSBzdWZmaWNpZW50LCB3aGljaCBpcyBhbHdheXMgb24gaWYgYENPTkZJR19JTkVUYCBpcyBlbmFibGVkLgoKT2theSwgbGV0JiMzOTtzIHJldmlzaXQgYHRjcF9mYXN0b3Blbl9zeW5hY2tfdGltZXJgIGFuZCBgcmVxc2tfdGltZXJfaGFuZGxlcmAgb25lIG1vcmUgdGltZSBiZWZvcmUgZGl2aW5nIGluIGRlZXBlci4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yOCAwODoxMTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDt0Y3BfZmFzdG9wZW5fc3luYWNrX3RpbWVyJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O25ldC9pcHY0L3RjcF9pbnB1dC5jPTcwNzM9c3RhdGljIHZvaWQgdGNwX3Jjdl9zeW5yZWN2X3N0YXRlX2Zhc3RvcGVuKHN0cnVjdCBzb2NrICpzaylcbi0tXG5uZXQvaXB2NC90Y3BfaW5wdXQuYy03MDg1LVx0V1JJVEVfT05DRShpbmV0X2NzayhzayktXHUwMDNlaWNza19yZXRyYW5zbWl0cywgMCk7XG5uZXQvaXB2NC90Y3BfaW5wdXQuYzo3MDg2Olx0LyogSW4gdGNwX2Zhc3RvcGVuX3N5bmFja190aW1lcigpIG9uIHRoZSBmaXJzdCBTWU5BQ0sgUlRPIHdlIHNldFxubmV0L2lwdjQvdGNwX2lucHV0LmMtNzA4Ny1cdCAqIHJldHJhbnNfc3RhbXAgYnV0IGRvbiYjMzk7dCBlbnRlciBDQV9Mb3NzLCBzbyBpbiBjYXNlIHRoYXQgaGFwcGVuZWQgd2Vcbi0tXG5uZXQvaXB2NC90Y3BfdGltZXIuYz00NDA9c3RhdGljIHZvaWQgdGNwX3VwZGF0ZV9ydG9fc3RhdHMoc3RydWN0IHNvY2sgKnNrKVxuLS1cbm5ldC9pcHY0L3RjcF90aW1lci5jLTQ1Ni0gKi9cbm5ldC9pcHY0L3RjcF90aW1lci5jOjQ1NzpzdGF0aWMgdm9pZCB0Y3BfZmFzdG9wZW5fc3luYWNrX3RpbWVyKHN0cnVjdCBzb2NrICpzaywgc3RydWN0IHJlcXVlc3Rfc29jayAqcmVxKVxubmV0L2lwdjQvdGNwX3RpbWVyLmMtNDU4LXtcbi0tXG5uZXQvaXB2NC90Y3BfdGltZXIuYz01MzY9dm9pZCB0Y3BfcmV0cmFuc21pdF90aW1lcihzdHJ1Y3Qgc29jayAqc2spXG4tLVxubmV0L2lwdjQvdGNwX3RpbWVyLmMtNTQ4LVx0XHRcdCAgICAgc2stXHUwMDNlc2tfc3RhdGUgIT0gVENQX0ZJTl9XQUlUMSk7XG5uZXQvaXB2NC90Y3BfdGltZXIuYzo1NDk6XHRcdHRjcF9mYXN0b3Blbl9zeW5hY2tfdGltZXIoc2ssIHJlcSk7XG5uZXQvaXB2NC90Y3BfdGltZXIuYy01NTAtXHRcdC8qIEJlZm9yZSB3ZSByZWNlaXZlIEFDSyB0byBvdXIgU1lOLUFDSyBkb24mIzM5O3QgcmV0cmFuc21pdFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI4IDA4OjExPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDQ1NjgKCQkJCQkJCW91dHB1dDogMjAKCQkJCQkJCXRob3VnaHRzOiAzNQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+SGVyZSYjMzk7cyBhIHN1bW1hcnkgb2YgbXkgdGhvdWdodCBwcm9jZXNzLCBhcyByZXF1ZXN0ZWQ6CgoqKkRpdmluZyBpbnRvIHRoZSBTWU5fUkVDViBUaW1lciBIYW5kbGVyKioKCk9rYXksIHNvIEkmIzM5O20gdGhpbmtpbmcgYWJvdXQgcmVxdWVzdCBzb2NrZXRzLCBzcGVjaWZpY2FsbHkgdGhvc2UgaW4gdGhlIFNZTl9SRUNWIHN0YXRlLiBJIGtub3cgdGhlcmUmIzM5O3MgYSB0aW1lciBhc3NvY2lhdGVkIHdpdGggdGhpcyBzdGF0ZSwgdGhlIGByZXFza190aW1lcl9oYW5kbGVyYC4gTXkgbmV4dCBzdGVwIGlzIHRvIGRyaWxsIGRvd24gaW50byB0aGF0IGhhbmRsZXIuIEkgbmVlZCB0byB1bmRlcnN0YW5kIHdoYXQgaGFwcGVucyB3aGVuIHRoYXQgdGltZXIgZmlyZXMuIFdoYXQgYWN0aW9ucyBhcmUgdHJpZ2dlcmVkPyBXaGF0IHJlc291cmNlcyBhcmUgY2xlYW5lZCB1cCwgb3IgcGVyaGFwcyByZS10cmFuc21pdHRlZD8gVGltZSB0byBleGFtaW5lIHRoZSBjb2RlIGZvciBgcmVxc2tfdGltZXJfaGFuZGxlcmAgYW5kIGdldCBhIGRldGFpbGVkIHBpY3R1cmUgb2YgdGhlIFNZTl9SRUNWIGxpZmVjeWNsZS4gSSYjMzk7bSBleHBlY3RpbmcgdG8gc2VlIHRoaW5ncyByZWxhdGVkIHRvIGNvbm5lY3Rpb24gdGltZW91dHMgYW5kIHJldHJhbnNtaXNzaW9ucywgbmF0dXJhbGx5LCBidXQgaXQmIzM5O3MgaW1wb3J0YW50IHRvIHVuZGVyc3RhbmQgdGhlIGZ1bGwgY29udGV4dC4gTGV0JiMzOTtzIHNlZSB3aGF0JiMzOTtzIGFjdHVhbGx5IGluIHRoZXJlIQoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI4IDA4OjExPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3JlcXNrX3RpbWVyX2hhbmRsZXImIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7bmV0L2lwdjQvaW5ldF9jb25uZWN0aW9uX3NvY2suYz0xMDE1PXZvaWQgaW5ldF9jc2tfcmVxc2tfcXVldWVfZHJvcF9hbmRfcHV0KHN0cnVjdCBzb2NrICpzaywgc3RydWN0IHJlcXVlc3Rfc29jayAqcmVxKVxuLS1cbm5ldC9pcHY0L2luZXRfY29ubmVjdGlvbl9zb2NrLmMtMTAyMC1cbm5ldC9pcHY0L2luZXRfY29ubmVjdGlvbl9zb2NrLmM6MTAyMTpzdGF0aWMgdm9pZCByZXFza190aW1lcl9oYW5kbGVyKHN0cnVjdCB0aW1lcl9saXN0ICp0KVxubmV0L2lwdjQvaW5ldF9jb25uZWN0aW9uX3NvY2suYy0xMDIyLXtcbi0tXG5uZXQvaXB2NC9pbmV0X2Nvbm5lY3Rpb25fc29jay5jLTEwNDctXHRcdHJlZmNvdW50X3NldChcdTAwMjZucmVxLVx1MDAzZXJza19yZWZjbnQsIDIgJiM0MzsgMSk7XG5uZXQvaXB2NC9pbmV0X2Nvbm5lY3Rpb25fc29jay5jOjEwNDg6XHRcdHRpbWVyX3NldHVwKFx1MDAyNm5yZXEtXHUwMDNlcnNrX3RpbWVyLCByZXFza190aW1lcl9oYW5kbGVyLCBUSU1FUl9QSU5ORUQpO1xubmV0L2lwdjQvaW5ldF9jb25uZWN0aW9uX3NvY2suYy0xMDQ5LVx0XHRyZXFza19xdWV1ZV9taWdyYXRlZChcdTAwMjZpbmV0X2Nzayhuc2spLVx1MDAzZWljc2tfYWNjZXB0X3F1ZXVlLCByZXEpO1xuLS1cbm5ldC9pcHY0L2luZXRfY29ubmVjdGlvbl9zb2NrLmM9MTE0Mj1zdGF0aWMgYm9vbCByZXFza19xdWV1ZV9oYXNoX3JlcShzdHJ1Y3QgcmVxdWVzdF9zb2NrICpyZXEpXG4tLVxubmV0L2lwdjQvaW5ldF9jb25uZWN0aW9uX3NvY2suYy0xMTUwLVx0cmVxLVx1MDAzZXRpbWVvdXQgPSB0Y3BfdGltZW91dF9pbml0KChzdHJ1Y3Qgc29jayAqKXJlcSk7XG5uZXQvaXB2NC9pbmV0X2Nvbm5lY3Rpb25fc29jay5jOjExNTE6XHR0aW1lcl9zZXR1cChcdTAwMjZyZXEtXHUwMDNlcnNrX3RpbWVyLCByZXFza190aW1lcl9oYW5kbGVyLCBUSU1FUl9QSU5ORUQpO1xubmV0L2lwdjQvaW5ldF9jb25uZWN0aW9uX3NvY2suYy0xMTUyLVxuLS1cbnRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9nX3Rlc3RzL21pZ3JhdGVfcmV1c2Vwb3J0LmM9NTQ9c3RhdGljIHN0cnVjdCBtaWdyYXRlX3JldXNlcG9ydF90ZXN0X2Nhc2Uge1xuLS1cbnRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9nX3Rlc3RzL21pZ3JhdGVfcmV1c2Vwb3J0LmMtODMtXHR7XG50b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ190ZXN0cy9taWdyYXRlX3JldXNlcG9ydC5jOjg0Olx0XHQubmFtZSA9IFwmIzM0O0lQdjQgVENQX05FV19TWU5fUkVDViByZXFza190aW1lcl9oYW5kbGVyXCYjMzQ7LFxudG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dfdGVzdHMvbWlncmF0ZV9yZXVzZXBvcnQuYy04NS1cdFx0LmZhbWlseSA9IEFGX0lORVQsXG4tLVxudG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dfdGVzdHMvbWlncmF0ZV9yZXVzZXBvcnQuYy0xMTUtXHR7XG50b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ190ZXN0cy9taWdyYXRlX3JldXNlcG9ydC5jOjExNjpcdFx0Lm5hbWUgPSBcJiMzNDtJUHY2IFRDUF9ORVdfU1lOX1JFQ1YgcmVxc2tfdGltZXJfaGFuZGxlclwmIzM0OyxcbnRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9nX3Rlc3RzL21pZ3JhdGVfcmV1c2Vwb3J0LmMtMTE3LVx0XHQuZmFtaWx5ID0gQUZfSU5FVDYsXG4tLVxudG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dfdGVzdHMvbWlncmF0ZV9yZXVzZXBvcnQuYz00OTE9c3RhdGljIHZvaWQgcnVuX3Rlc3Qoc3RydWN0IG1pZ3JhdGVfcmV1c2Vwb3J0X3Rlc3RfY2FzZSAqdGVzdF9jYXNlLFxuLS1cbnRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9nX3Rlc3RzL21pZ3JhdGVfcmV1c2Vwb3J0LmMtNTQ3LVx0XHQvKiBXYWl0IGZvciBTWU4mIzQzO0FDSyB0aW1lcnMgdG8gZXhwaXJlIHNvIHRoYXRcbnRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9nX3Rlc3RzL21pZ3JhdGVfcmV1c2Vwb3J0LmM6NTQ4Olx0XHQgKiByZXFza190aW1lcl9oYW5kbGVyKCkgbWlncmF0ZXMgVENQX05FV19TWU5fUkVDViByZXF1ZXN0cy5cbnRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9nX3Rlc3RzL21pZ3JhdGVfcmV1c2Vwb3J0LmMtNTQ5LVx0XHQgKi9cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD43LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yOCAwODoxMTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA1NjM2CgkJCQkJCQlvdXRwdXQ6IDEwMAoJCQkJCQkJdGhvdWdodHM6IDE0NwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgYSBUQ1AgU3RhY2sgUGF0Y2gqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggZm9yIHRoZSBUQ1Agc3RhY2sgYW5kIGltbWVkaWF0ZWx5LCBJIHNlZSBpdCYjMzk7cyBkZWFsaW5nIHdpdGggYSBwb3RlbnRpYWwgaW50ZWdlciBvdmVyZmxvdyBsZWFkaW5nIHRvIGFuIG91dC1vZi1ib3VuZHMgc2hpZnQuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSwgc3BlY2lmaWNhbGx5IGluIHRoZSByZWFsbSBvZiBob3cgd2UgaGFuZGxlIGByZXEtJmd0O251bV90aW1lb3V0YCBhbmQgYG1heF9zeW5fYWNrX3JldHJpZXNgIHdoZW4gYSBsYXJnZSB2YWx1ZSBpcyBpbnZvbHZlZC4gVGhlIGZpeCBpbnZvbHZlcyBjYXBwaW5nIHRoZXNlIHZhbHVlcywgd2hpY2ggc291bmRzIGxpa2UgYSBzZW5zaWJsZSBwcmVjYXV0aW9uLgoKVGhlIGZhY3QgdGhhdCBpdCYjMzk7cyBtYXJrZWQgYXMgJiMzNDtXb3J0aCBmdXp6aW5nOiBUcnVlJiMzNDsgaXMgaW1wb3J0YW50OyBpdCBzdWdnZXN0cyB0aGF0IHRoaXMgaXMgYSBjcml0aWNhbCBzcG90IHRvIHRocm93IGEgdmFyaWV0eSBvZiBpbnB1dHMgYXQgdG8gbWFrZSBzdXJlIHRoZSBmaXggaXMgY29tcGxldGUgYW5kIGRvZXNuJiMzOTt0IGludHJvZHVjZSBhbnkgbmV3IHZ1bG5lcmFiaWxpdGllcy4gTXkgZm9jdXMgd2lsbCBiZSB0aGUgYHJlcXNrX3RpbWVyX2hhbmRsZXJgIGFuZCBgdGNwX2Zhc3RvcGVuX3N5bmFja190aW1lcmAgc3ltYm9scyBzcGVjaWZpY2FsbHkuIEkgbmVlZCB0byBkaXZlIGludG8gdGhvc2UgY29kZSBwYXRocy4KCkxldCYjMzk7cyBzZWUsIHdoYXQgYWJvdXQgY29uZmlndXJhdGlvbnM/IEl0IGRvZXNuJiMzOTt0IGxvb2sgbGlrZSB3ZSBuZWVkIHRvIGVuYWJsZSBhbnl0aGluZyB1bnVzdWFsLCBqdXN0IHN0YW5kYXJkIFRDUCwgd2hpY2ggaXMgZ29vZC4gSSBuZWVkIHRvIHZlcmlmeSwgb2YgY291cnNlLCB0aGF0IHRob3NlIGNvbmZpZ3VyYXRpb25zIGFyZSBzdGFuZGFyZC4KCkl0IGxvb2tzIGxpa2UgVENQIEZhc3QgT3BlbiBtaWdodCBiZSBlbmFibGVkIGJ5IGRlZmF1bHQuIE5vdywgdGhhdCBtYXkgYmUgYSBjb25zaWRlcmF0aW9uIGluIHRoZSBjb250ZXh0IG9mIHRoaXMgcGF0Y2guIEkmIzM5O2xsIG5lZWQgdG8gcmVtZW1iZXIgdGhhdC4gQW5kLCBvZiBjb3Vyc2UsIGBDT05GSUdfVENQX0NPTkdfQ1VCSUNgIGlzIHRoZSBkZWZhdWx0IGNvbmdlc3Rpb24gY29udHJvbCwgd2hpY2ggaXMgdGhlIGJhc2VsaW5lLCBhbmQgYENPTkZJR19JTkVUYCBpcyBzdGFuZGFyZC4KCkFscmlnaHQsIEkmIzM5O3ZlIGdvdCBhIHNvbGlkIHBpY3R1cmUgaGVyZS4gVGltZSB0byBzZXQgdXAgbXkgdGVzdCBlbnZpcm9ubWVudCBhbmQgZ2V0IHRvIHdvcmsgb24gdmVyaWZpY2F0aW9uIGFuZCBmdXJ0aGVyIGFuYWx5c2lzLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI4IDA4OjExPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+c2V0LXJlc3VsdHM8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogW10sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtyZXFza190aW1lcl9oYW5kbGVyJiMzNDssCiAgICAmIzM0O3RjcF9mYXN0b3Blbl9zeW5hY2tfdGltZXImIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggZml4ZXMgc2hpZnQtb3V0LW9mLWJvdW5kcyBidWdzIGluIHRoZSBUQ1Agc3RhY2sgd2hlbiBjYWxjdWxhdGluZyBTWU5BQ0sgdGltZW91dHMgYnkgY2FwcGluZyB0aGUgbnVtYmVyIG9mIHJldHJpZXMgYW5kIHByb3Blcmx5IGNoZWNraW5nIGZvciBvdmVyZmxvdy4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIGNvcmUgVENQIGxvZ2ljIHRoYXQgc2hvdWxkIGJlIGZ1enplZC4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IG51bGwsCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtyZXFza190aW1lcl9oYW5kbGVyJiMzNDssCiAgICAmIzM0O3RjcF9mYXN0b3Blbl9zeW5hY2tfdGltZXImIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggZml4ZXMgc2hpZnQtb3V0LW9mLWJvdW5kcyBidWdzIGluIHRoZSBUQ1Agc3RhY2sgd2hlbiBjYWxjdWxhdGluZyBTWU5BQ0sgdGltZW91dHMgYnkgY2FwcGluZyB0aGUgbnVtYmVyIG9mIHJldHJpZXMgYW5kIHByb3Blcmx5IGNoZWNraW5nIGZvciBvdmVyZmxvdy4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIGNvcmUgVENQIGxvZ2ljIHRoYXQgc2hvdWxkIGJlIGZ1enplZC4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI4VDA4OjExOjI3LjY4ODMzOTcyNFoiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjMwMzUzNjUyNTc5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcInJlcXNrX3RpbWVyX2hhbmRsZXJcIixcbiAgICBcInRjcF9mYXN0b3Blbl9zeW5hY2tfdGltZXJcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBmaXhlcyBzaGlmdC1vdXQtb2YtYm91bmRzIGJ1Z3MgaW4gdGhlIFRDUCBzdGFjayB3aGVuIGNhbGN1bGF0aW5nIFNZTkFDSyB0aW1lb3V0cyBieSBjYXBwaW5nIHRoZSBudW1iZXIgb2YgcmV0cmllcyBhbmQgcHJvcGVybHkgY2hlY2tpbmcgZm9yIG92ZXJmbG93LiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gY29yZSBUQ1AgbG9naWMgdGhhdCBzaG91bGQgYmUgZnV6emVkLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yOFQwODoxMToyNy42ODgzNDczNjRaIiwiU2VxIjoxLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6InJlYWQtcGF0Y2gtZGlmZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjc3OTk2NDc1MSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiUGF0Y2hEaWZmXCI6IFwiY29tbWl0IDhjOTkxZjM5YjgyNTk3YWRmMmUwZGNjZjI3MTQyNjU5N2UwZGVmYjNcXG5BdXRob3I6IHN5ei1jbHVzdGVyIFxcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVxcdTAwM2VcXG5EYXRlOiAgIFR1ZSBKdWwgMjggMDg6MTE6MjUgMjAyNiArMDAwMFxcblxcbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcXG5cXG5kaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZXQvdGNwLmggYi9pbmNsdWRlL25ldC90Y3AuaFxcbmluZGV4IDZkMzc2ZWE0ZDFjMDFkLi5lZTc4NDM2Yjg5NjQ1YSAxMDA2NDRcXG4tLS0gYS9pbmNsdWRlL25ldC90Y3AuaFxcbisrKyBiL2luY2x1ZGUvbmV0L3RjcC5oXFxuQEAgLTE4Myw2ICsxODMsNyBAQCBzdGF0aWNfYXNzZXJ0KCgxIFxcdTAwM2NcXHUwMDNjIEFUT19CSVRTKSBcXHUwMDNlIFRDUF9ERUxBQ0tfTUFYKTtcXG4gI2RlZmluZSBNQVhfVENQX0tFRVBJTlRWTFxcdDMyNzY3XFxuICNkZWZpbmUgTUFYX1RDUF9LRUVQQ05UXFx0XFx0MTI3XFxuICNkZWZpbmUgTUFYX1RDUF9TWU5DTlRcXHRcXHQxMjdcXG4rI2RlZmluZSBNQVhfVENQX1NZTkFDS19SRVRSSUVTXFx0NjNcXG4gXFxuIC8qIEVuc3VyZSB0aGF0IFRDUCBQQVdTIGNoZWNrcyBhcmUgcmVsYXhlZCBhZnRlciB+MjE0NyBzZWNvbmRzXFxuICAqIHRvIGF2b2lkIG92ZXJmbG93cy4gVGhpcyBhc3N1bWVzIGEgY2xvY2sgc21hbGxlciB0aGFuIDEgTWh6LlxcbkBAIC04ODIsMTIgKzg4MywyMiBAQCBzdGF0aWMgaW5saW5lIHUzMiBfX3RjcF9zZXRfcnRvKGNvbnN0IHN0cnVjdCB0Y3Bfc29jayAqdHApXFxuIFxcdHJldHVybiB1c2Vjc190b19qaWZmaWVzKCh0cC1cXHUwMDNlc3J0dF91cyBcXHUwMDNlXFx1MDAzZSAzKSArIHRwLVxcdTAwM2VydHR2YXJfdXMpO1xcbiB9XFxuIFxcbi1zdGF0aWMgaW5saW5lIHVuc2lnbmVkIGxvbmcgdGNwX3JlcXNrX3RpbWVvdXQoc3RydWN0IHJlcXVlc3Rfc29jayAqcmVxKVxcbitzdGF0aWMgaW5saW5lIHVuc2lnbmVkIGxvbmcgdGNwX3JlcXNrX3RpbWVvdXRfc2soY29uc3Qgc3RydWN0IHNvY2sgKnNrLFxcbitcXHRcXHRcXHRcXHRcXHRcXHQgc3RydWN0IHJlcXVlc3Rfc29jayAqcmVxKVxcbiB7XFxuLVxcdHU2NCB0aW1lb3V0ID0gKHU2NClyZXEtXFx1MDAzZXRpbWVvdXQgXFx1MDAzY1xcdTAwM2MgcmVxLVxcdTAwM2VudW1fdGltZW91dDtcXG4rXFx0dTMyIHJ0b19tYXggPSB0Y3BfcnRvX21heChzayk7XFxuK1xcdHU2NCB0aW1lb3V0ID0gcmVxLVxcdTAwM2V0aW1lb3V0O1xcbitcXG4rXFx0aWYgKHJlcS1cXHUwMDNlbnVtX3RpbWVvdXQgXFx1MDAzZT0gQklUU19QRVJfVFlQRSh1NjQpIHx8XFxuK1xcdCAgICB0aW1lb3V0IFxcdTAwM2UgVTY0X01BWCBcXHUwMDNlXFx1MDAzZSByZXEtXFx1MDAzZW51bV90aW1lb3V0KVxcbitcXHRcXHRyZXR1cm4gcnRvX21heDtcXG4rXFxuK1xcdHJldHVybiAodW5zaWduZWQgbG9uZyltaW5fdCh1NjQsIHRpbWVvdXQgXFx1MDAzY1xcdTAwM2MgcmVxLVxcdTAwM2VudW1fdGltZW91dCwgcnRvX21heCk7XFxuK31cXG4gXFxuLVxcdHJldHVybiAodW5zaWduZWQgbG9uZyltaW5fdCh1NjQsIHRpbWVvdXQsXFxuLVxcdFxcdFxcdFxcdCAgICB0Y3BfcnRvX21heChyZXEtXFx1MDAzZXJza19saXN0ZW5lcikpO1xcbitzdGF0aWMgaW5saW5lIHVuc2lnbmVkIGxvbmcgdGNwX3JlcXNrX3RpbWVvdXQoc3RydWN0IHJlcXVlc3Rfc29jayAqcmVxKVxcbit7XFxuK1xcdHJldHVybiB0Y3BfcmVxc2tfdGltZW91dF9zayhyZXEtXFx1MDAzZXJza19saXN0ZW5lciwgcmVxKTtcXG4gfVxcbiBcXG4gdTMyIHRjcF9kZWxhY2tfbWF4KGNvbnN0IHN0cnVjdCBzb2NrICpzayk7XFxuZGlmZiAtLWdpdCBhL25ldC9pcHY0L2luZXRfY29ubmVjdGlvbl9zb2NrLmMgYi9uZXQvaXB2NC9pbmV0X2Nvbm5lY3Rpb25fc29jay5jXFxuaW5kZXggNTY5MDJiYmE1NDgzOGIuLmI3NDIxMmJhZTNkZDI1IDEwMDY0NFxcbi0tLSBhL25ldC9pcHY0L2luZXRfY29ubmVjdGlvbl9zb2NrLmNcXG4rKysgYi9uZXQvaXB2NC9pbmV0X2Nvbm5lY3Rpb25fc29jay5jXFxuQEAgLTEwNTYsNiArMTA1Niw4IEBAIHN0YXRpYyB2b2lkIHJlcXNrX3RpbWVyX2hhbmRsZXIoc3RydWN0IHRpbWVyX2xpc3QgKnQpXFxuIFxcdG5ldCA9IHNvY2tfbmV0KHNrX2xpc3RlbmVyKTtcXG4gXFx0bWF4X3N5bl9hY2tfcmV0cmllcyA9IFJFQURfT05DRShpY3NrLVxcdTAwM2VpY3NrX3N5bl9yZXRyaWVzKSA/IDpcXG4gXFx0XFx0UkVBRF9PTkNFKG5ldC1cXHUwMDNlaXB2NC5zeXNjdGxfdGNwX3N5bmFja19yZXRyaWVzKTtcXG4rXFx0bWF4X3N5bl9hY2tfcmV0cmllcyA9IG1pbl90KGludCwgbWF4X3N5bl9hY2tfcmV0cmllcyxcXG4rXFx0XFx0XFx0XFx0ICAgIE1BWF9UQ1BfU1lOQUNLX1JFVFJJRVMpO1xcbiBcXHQvKiBOb3JtYWxseSBhbGwgdGhlIG9wZW5yZXFzIGFyZSB5b3VuZyBhbmQgYmVjb21lIG1hdHVyZVxcbiBcXHQgKiAoaS5lLiBjb252ZXJ0ZWQgdG8gZXN0YWJsaXNoZWQgc29ja2V0KSBmb3IgZmlyc3QgdGltZW91dC5cXG4gXFx0ICogSWYgc3luYWNrIHdhcyBub3QgYWNrbm93bGVkZ2VkIGZvciAxIHNlY29uZCwgaXQgbWVhbnNcXG5AQCAtMTA4Niw3ICsxMDg4LDkgQEAgc3RhdGljIHZvaWQgcmVxc2tfdGltZXJfaGFuZGxlcihzdHJ1Y3QgdGltZXJfbGlzdCAqdClcXG4gXFx0XFx0fVxcbiBcXHR9XFxuIFxcbi1cXHRzeW5fYWNrX3JlY2FsYyhyZXEsIG1heF9zeW5fYWNrX3JldHJpZXMsIFJFQURfT05DRShxdWV1ZS1cXHUwMDNlcnNrcV9kZWZlcl9hY2NlcHQpLFxcbitcXHRzeW5fYWNrX3JlY2FsYyhyZXEsIG1heF9zeW5fYWNrX3JldHJpZXMsXFxuK1xcdFxcdCAgICAgICBtaW5fdCh1OCwgUkVBRF9PTkNFKHF1ZXVlLVxcdTAwM2Vyc2txX2RlZmVyX2FjY2VwdCksXFxuK1xcdFxcdFxcdCAgICAgTUFYX1RDUF9TWU5BQ0tfUkVUUklFUyksXFxuIFxcdFxcdCAgICAgICBcXHUwMDI2ZXhwaXJlLCBcXHUwMDI2cmVzZW5kKTtcXG4gXFx0dGNwX3N5bl9hY2tfdGltZW91dChyZXEpO1xcbiBcXG5kaWZmIC0tZ2l0IGEvbmV0L2lwdjQvdGNwX3RpbWVyLmMgYi9uZXQvaXB2NC90Y3BfdGltZXIuY1xcbmluZGV4IGJmMTcxYjVlMWViMzA2Li5iYmVkZjJiOWUxYmNlYSAxMDA2NDRcXG4tLS0gYS9uZXQvaXB2NC90Y3BfdGltZXIuY1xcbisrKyBiL25ldC9pcHY0L3RjcF90aW1lci5jXFxuQEAgLTQ2Nyw2ICs0NjcsNyBAQCBzdGF0aWMgdm9pZCB0Y3BfZmFzdG9wZW5fc3luYWNrX3RpbWVyKHN0cnVjdCBzb2NrICpzaywgc3RydWN0IHJlcXVlc3Rfc29jayAqcmVxKVxcbiBcXHQgKi9cXG4gXFx0bWF4X3JldHJpZXMgPSBSRUFEX09OQ0UoaWNzay1cXHUwMDNlaWNza19zeW5fcmV0cmllcykgPyA6XFxuIFxcdFxcdFJFQURfT05DRShzb2NrX25ldChzayktXFx1MDAzZWlwdjQuc3lzY3RsX3RjcF9zeW5hY2tfcmV0cmllcykgKyAxO1xcbitcXHRtYXhfcmV0cmllcyA9IG1pbl90KGludCwgbWF4X3JldHJpZXMsIE1BWF9UQ1BfU1lOQUNLX1JFVFJJRVMpO1xcbiBcXG4gXFx0aWYgKHJlcS1cXHUwMDNlbnVtX3RpbWVvdXQgXFx1MDAzZT0gbWF4X3JldHJpZXMpIHtcXG4gXFx0XFx0dGNwX3dyaXRlX2Vycihzayk7XFxuQEAgLTQ4OCw3ICs0ODksNyBAQCBzdGF0aWMgdm9pZCB0Y3BfZmFzdG9wZW5fc3luYWNrX3RpbWVyKHN0cnVjdCBzb2NrICpzaywgc3RydWN0IHJlcXVlc3Rfc29jayAqcmVxKVxcbiBcXHRpZiAoIXRwLVxcdTAwM2VyZXRyYW5zX3N0YW1wKVxcbiBcXHRcXHR0cC1cXHUwMDNlcmV0cmFuc19zdGFtcCA9IHRjcF90aW1lX3N0YW1wX3RzKHRwKTtcXG4gXFx0dGNwX3Jlc2V0X3htaXRfdGltZXIoc2ssIElDU0tfVElNRV9SRVRSQU5TLFxcbi1cXHRcXHRcXHQgIHJlcS1cXHUwMDNldGltZW91dCBcXHUwMDNjXFx1MDAzYyByZXEtXFx1MDAzZW51bV90aW1lb3V0LCBmYWxzZSk7XFxuK1xcdFxcdFxcdCAgICAgdGNwX3JlcXNrX3RpbWVvdXRfc2soc2ssIHJlcSksIGZhbHNlKTtcXG4gfVxcbiBcXG4gc3RhdGljIGJvb2wgdGNwX3J0eF9wcm9iZTBfdGltZWRfb3V0KGNvbnN0IHN0cnVjdCBzb2NrICpzayxcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjhUMDg6MTE6MjguNDcxNDU5MjU1WiIsIlNlcSI6MiwiTmVzdGluZyI6MSwiVHlwZSI6ImFnZW50IiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiYmVzdC1leHBlbnNpdmUiLCJEdXJhdGlvbiI6Mjk1NzA1MjI5NzcsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwicmVxc2tfdGltZXJfaGFuZGxlclwiLFxuICAgIFwidGNwX2Zhc3RvcGVuX3N5bmFja190aW1lclwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGZpeGVzIHNoaWZ0LW91dC1vZi1ib3VuZHMgYnVncyBpbiB0aGUgVENQIHN0YWNrIHdoZW4gY2FsY3VsYXRpbmcgU1lOQUNLIHRpbWVvdXRzIGJ5IGNhcHBpbmcgdGhlIG51bWJlciBvZiByZXRyaWVzIGFuZCBwcm9wZXJseSBjaGVja2luZyBmb3Igb3ZlcmZsb3cuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiBjb3JlIFRDUCBsb2dpYyB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLlxuWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmVcbmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cblxuSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluXG55b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHlcbnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuXG5cblJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6XG4tIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuXG4tIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLlxuLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuXG4tIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSxcbiAgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLlxuLSBDb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCxcbiAgaW9uaWMsIGFtZGdwdSkgdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuXG4tIERyaXZlciAucmVtb3ZlLCAuc2h1dGRvd24sIG9yIHBjaV91bnJlZ2lzdGVyX2RyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKGUuZy4sIGlnYl9yZW1vdmUpXG4gIHRoYXQgYXJlIGV4ZWN1dGVkIG9ubHkgZHVyaW5nIFBDSSBob3QtdW5wbHVnIG9yIHN5c2ZzIGRyaXZlciB1bmJpbmQgb3BlcmF0aW9ucy5cblxuSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaFxudG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuXG5cbldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOlxuMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy5cbiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLlxuICAgUHJlZmVyIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIEFQSSBlbnRyeXBvaW50IGZ1bmN0aW9ucyBvdmVyIGludGVybmFsIHN0YXRpYyBoZWxwZXIgZnVuY3Rpb25zXG4gICAod2hpY2ggYXJlIGlubGluZWQgYnkgdGhlIGNvbXBpbGVyIGFuZCBkbyBub3QgaGF2ZSBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzKS5cbjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLlxuICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLlxuICAgQWxzbyBjaGVjayBcImRlcGVuZHMgb25cIiBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3NcbiAgIG5lZWRlZCBmb3IgS2J1aWxkIHRvIGNvbXBpbGUgdGhlIGNvZGUgc3RhdGljYWxseSBpbnRvIHZtbGludXguIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlnc1xuICAgb3V0cHV0IGFycmF5LCBhbmQgRE8gTk9UIGFkZCBhICdDT05GSUdfJyBwcmVmaXggKGUuZy4sIHJldHVybiBcIk5FVF9JUFY0XCIgaW5zdGVhZCBvZiBcIkNPTkZJR19ORVRfSVBWNFwiKS5cblByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLlxuXG5cblVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuXG5JdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS5cbklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC5cbiIsIlByb21wdCI6IkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOlxuY29tbWl0IDhjOTkxZjM5YjgyNTk3YWRmMmUwZGNjZjI3MTQyNjU5N2UwZGVmYjNcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgVHVlIEp1bCAyOCAwODoxMToyNSAyMDI2ICswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmV0L3RjcC5oIGIvaW5jbHVkZS9uZXQvdGNwLmhcbmluZGV4IDZkMzc2ZWE0ZDFjMDFkLi5lZTc4NDM2Yjg5NjQ1YSAxMDA2NDRcbi0tLSBhL2luY2x1ZGUvbmV0L3RjcC5oXG4rKysgYi9pbmNsdWRlL25ldC90Y3AuaFxuQEAgLTE4Myw2ICsxODMsNyBAQCBzdGF0aWNfYXNzZXJ0KCgxIFx1MDAzY1x1MDAzYyBBVE9fQklUUykgXHUwMDNlIFRDUF9ERUxBQ0tfTUFYKTtcbiAjZGVmaW5lIE1BWF9UQ1BfS0VFUElOVFZMXHQzMjc2N1xuICNkZWZpbmUgTUFYX1RDUF9LRUVQQ05UXHRcdDEyN1xuICNkZWZpbmUgTUFYX1RDUF9TWU5DTlRcdFx0MTI3XG4rI2RlZmluZSBNQVhfVENQX1NZTkFDS19SRVRSSUVTXHQ2M1xuIFxuIC8qIEVuc3VyZSB0aGF0IFRDUCBQQVdTIGNoZWNrcyBhcmUgcmVsYXhlZCBhZnRlciB+MjE0NyBzZWNvbmRzXG4gICogdG8gYXZvaWQgb3ZlcmZsb3dzLiBUaGlzIGFzc3VtZXMgYSBjbG9jayBzbWFsbGVyIHRoYW4gMSBNaHouXG5AQCAtODgyLDEyICs4ODMsMjIgQEAgc3RhdGljIGlubGluZSB1MzIgX190Y3Bfc2V0X3J0byhjb25zdCBzdHJ1Y3QgdGNwX3NvY2sgKnRwKVxuIFx0cmV0dXJuIHVzZWNzX3RvX2ppZmZpZXMoKHRwLVx1MDAzZXNydHRfdXMgXHUwMDNlXHUwMDNlIDMpICsgdHAtXHUwMDNlcnR0dmFyX3VzKTtcbiB9XG4gXG4tc3RhdGljIGlubGluZSB1bnNpZ25lZCBsb25nIHRjcF9yZXFza190aW1lb3V0KHN0cnVjdCByZXF1ZXN0X3NvY2sgKnJlcSlcbitzdGF0aWMgaW5saW5lIHVuc2lnbmVkIGxvbmcgdGNwX3JlcXNrX3RpbWVvdXRfc2soY29uc3Qgc3RydWN0IHNvY2sgKnNrLFxuK1x0XHRcdFx0XHRcdCBzdHJ1Y3QgcmVxdWVzdF9zb2NrICpyZXEpXG4ge1xuLVx0dTY0IHRpbWVvdXQgPSAodTY0KXJlcS1cdTAwM2V0aW1lb3V0IFx1MDAzY1x1MDAzYyByZXEtXHUwMDNlbnVtX3RpbWVvdXQ7XG4rXHR1MzIgcnRvX21heCA9IHRjcF9ydG9fbWF4KHNrKTtcbitcdHU2NCB0aW1lb3V0ID0gcmVxLVx1MDAzZXRpbWVvdXQ7XG4rXG4rXHRpZiAocmVxLVx1MDAzZW51bV90aW1lb3V0IFx1MDAzZT0gQklUU19QRVJfVFlQRSh1NjQpIHx8XG4rXHQgICAgdGltZW91dCBcdTAwM2UgVTY0X01BWCBcdTAwM2VcdTAwM2UgcmVxLVx1MDAzZW51bV90aW1lb3V0KVxuK1x0XHRyZXR1cm4gcnRvX21heDtcbitcbitcdHJldHVybiAodW5zaWduZWQgbG9uZyltaW5fdCh1NjQsIHRpbWVvdXQgXHUwMDNjXHUwMDNjIHJlcS1cdTAwM2VudW1fdGltZW91dCwgcnRvX21heCk7XG4rfVxuIFxuLVx0cmV0dXJuICh1bnNpZ25lZCBsb25nKW1pbl90KHU2NCwgdGltZW91dCxcbi1cdFx0XHRcdCAgICB0Y3BfcnRvX21heChyZXEtXHUwMDNlcnNrX2xpc3RlbmVyKSk7XG4rc3RhdGljIGlubGluZSB1bnNpZ25lZCBsb25nIHRjcF9yZXFza190aW1lb3V0KHN0cnVjdCByZXF1ZXN0X3NvY2sgKnJlcSlcbit7XG4rXHRyZXR1cm4gdGNwX3JlcXNrX3RpbWVvdXRfc2socmVxLVx1MDAzZXJza19saXN0ZW5lciwgcmVxKTtcbiB9XG4gXG4gdTMyIHRjcF9kZWxhY2tfbWF4KGNvbnN0IHN0cnVjdCBzb2NrICpzayk7XG5kaWZmIC0tZ2l0IGEvbmV0L2lwdjQvaW5ldF9jb25uZWN0aW9uX3NvY2suYyBiL25ldC9pcHY0L2luZXRfY29ubmVjdGlvbl9zb2NrLmNcbmluZGV4IDU2OTAyYmJhNTQ4MzhiLi5iNzQyMTJiYWUzZGQyNSAxMDA2NDRcbi0tLSBhL25ldC9pcHY0L2luZXRfY29ubmVjdGlvbl9zb2NrLmNcbisrKyBiL25ldC9pcHY0L2luZXRfY29ubmVjdGlvbl9zb2NrLmNcbkBAIC0xMDU2LDYgKzEwNTYsOCBAQCBzdGF0aWMgdm9pZCByZXFza190aW1lcl9oYW5kbGVyKHN0cnVjdCB0aW1lcl9saXN0ICp0KVxuIFx0bmV0ID0gc29ja19uZXQoc2tfbGlzdGVuZXIpO1xuIFx0bWF4X3N5bl9hY2tfcmV0cmllcyA9IFJFQURfT05DRShpY3NrLVx1MDAzZWljc2tfc3luX3JldHJpZXMpID8gOlxuIFx0XHRSRUFEX09OQ0UobmV0LVx1MDAzZWlwdjQuc3lzY3RsX3RjcF9zeW5hY2tfcmV0cmllcyk7XG4rXHRtYXhfc3luX2Fja19yZXRyaWVzID0gbWluX3QoaW50LCBtYXhfc3luX2Fja19yZXRyaWVzLFxuK1x0XHRcdFx0ICAgIE1BWF9UQ1BfU1lOQUNLX1JFVFJJRVMpO1xuIFx0LyogTm9ybWFsbHkgYWxsIHRoZSBvcGVucmVxcyBhcmUgeW91bmcgYW5kIGJlY29tZSBtYXR1cmVcbiBcdCAqIChpLmUuIGNvbnZlcnRlZCB0byBlc3RhYmxpc2hlZCBzb2NrZXQpIGZvciBmaXJzdCB0aW1lb3V0LlxuIFx0ICogSWYgc3luYWNrIHdhcyBub3QgYWNrbm93bGVkZ2VkIGZvciAxIHNlY29uZCwgaXQgbWVhbnNcbkBAIC0xMDg2LDcgKzEwODgsOSBAQCBzdGF0aWMgdm9pZCByZXFza190aW1lcl9oYW5kbGVyKHN0cnVjdCB0aW1lcl9saXN0ICp0KVxuIFx0XHR9XG4gXHR9XG4gXG4tXHRzeW5fYWNrX3JlY2FsYyhyZXEsIG1heF9zeW5fYWNrX3JldHJpZXMsIFJFQURfT05DRShxdWV1ZS1cdTAwM2Vyc2txX2RlZmVyX2FjY2VwdCksXG4rXHRzeW5fYWNrX3JlY2FsYyhyZXEsIG1heF9zeW5fYWNrX3JldHJpZXMsXG4rXHRcdCAgICAgICBtaW5fdCh1OCwgUkVBRF9PTkNFKHF1ZXVlLVx1MDAzZXJza3FfZGVmZXJfYWNjZXB0KSxcbitcdFx0XHQgICAgIE1BWF9UQ1BfU1lOQUNLX1JFVFJJRVMpLFxuIFx0XHQgICAgICAgXHUwMDI2ZXhwaXJlLCBcdTAwMjZyZXNlbmQpO1xuIFx0dGNwX3N5bl9hY2tfdGltZW91dChyZXEpO1xuIFxuZGlmZiAtLWdpdCBhL25ldC9pcHY0L3RjcF90aW1lci5jIGIvbmV0L2lwdjQvdGNwX3RpbWVyLmNcbmluZGV4IGJmMTcxYjVlMWViMzA2Li5iYmVkZjJiOWUxYmNlYSAxMDA2NDRcbi0tLSBhL25ldC9pcHY0L3RjcF90aW1lci5jXG4rKysgYi9uZXQvaXB2NC90Y3BfdGltZXIuY1xuQEAgLTQ2Nyw2ICs0NjcsNyBAQCBzdGF0aWMgdm9pZCB0Y3BfZmFzdG9wZW5fc3luYWNrX3RpbWVyKHN0cnVjdCBzb2NrICpzaywgc3RydWN0IHJlcXVlc3Rfc29jayAqcmVxKVxuIFx0ICovXG4gXHRtYXhfcmV0cmllcyA9IFJFQURfT05DRShpY3NrLVx1MDAzZWljc2tfc3luX3JldHJpZXMpID8gOlxuIFx0XHRSRUFEX09OQ0Uoc29ja19uZXQoc2spLVx1MDAzZWlwdjQuc3lzY3RsX3RjcF9zeW5hY2tfcmV0cmllcykgKyAxO1xuK1x0bWF4X3JldHJpZXMgPSBtaW5fdChpbnQsIG1heF9yZXRyaWVzLCBNQVhfVENQX1NZTkFDS19SRVRSSUVTKTtcbiBcbiBcdGlmIChyZXEtXHUwMDNlbnVtX3RpbWVvdXQgXHUwMDNlPSBtYXhfcmV0cmllcykge1xuIFx0XHR0Y3Bfd3JpdGVfZXJyKHNrKTtcbkBAIC00ODgsNyArNDg5LDcgQEAgc3RhdGljIHZvaWQgdGNwX2Zhc3RvcGVuX3N5bmFja190aW1lcihzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCByZXF1ZXN0X3NvY2sgKnJlcSlcbiBcdGlmICghdHAtXHUwMDNlcmV0cmFuc19zdGFtcClcbiBcdFx0dHAtXHUwMDNlcmV0cmFuc19zdGFtcCA9IHRjcF90aW1lX3N0YW1wX3RzKHRwKTtcbiBcdHRjcF9yZXNldF94bWl0X3RpbWVyKHNrLCBJQ1NLX1RJTUVfUkVUUkFOUyxcbi1cdFx0XHQgIHJlcS1cdTAwM2V0aW1lb3V0IFx1MDAzY1x1MDAzYyByZXEtXHUwMDNlbnVtX3RpbWVvdXQsIGZhbHNlKTtcbitcdFx0XHQgICAgIHRjcF9yZXFza190aW1lb3V0X3NrKHNrLCByZXEpLCBmYWxzZSk7XG4gfVxuIFxuIHN0YXRpYyBib29sIHRjcF9ydHhfcHJvYmUwX3RpbWVkX291dChjb25zdCBzdHJ1Y3Qgc29jayAqc2ssXG4iLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yOFQwODoxMToyOC40NzE0NjEyMzVaIiwiU2VxIjozLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo3ODA1MDI5MjQwLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyBhIFRDUCBTdGFjayBQYXRjaCoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggdGhhdCB0d2Vha3MgdGhlIFRDUCBzdGFjaywgc3BlY2lmaWNhbGx5IHRvdWNoaW5nIGBpbmNsdWRlL25ldC90Y3AuaGAsIGBuZXQvaXB2NC9pbmV0X2Nvbm5lY3Rpb25fc29jay5jYCwgYW5kIGBuZXQvaXB2NC90Y3BfdGltZXIuY2AuIEZyb20gd2hhdCBJIGdhdGhlciwgaXQncyBpbnRyb2R1Y2luZyBhIGBNQVhfVENQX1NZTkFDS19SRVRSSUVTYCB0byBsaW1pdCB0aGUgbnVtYmVyIG9mIFNZTkFDSyByZXRyaWVzLiBUaGF0J3MgYSByZWFzb25hYmxlIHNhZmVndWFyZC4gSXQgYWxzbyBzZWVtcyB0byBhZGRyZXNzIHBvdGVudGlhbCBzaGlmdCBvdmVyZmxvd3MgaW4gYHRjcF9yZXFza190aW1lb3V0YCBhbmQgYHJlcXNrX3RpbWVyX2hhbmRsZXJgLCBnb29kIGNhdGNoLCB0aG9zZSBhcmUgbmFzdHkgYnVncy4gQW5kIGZpbmFsbHksIGl0J3MgY2FwcGluZyBgbWF4X3N5bl9hY2tfcmV0cmllc2AgYW5kIGBxdWV1ZS1cdTAwM2Vyc2txX2RlZmVyX2FjY2VwdGAgaW4gYHJlcXNrX3RpbWVyX2hhbmRsZXJgIGFuZCBgbWF4X3JldHJpZXNgIGluIGB0Y3BfZmFzdG9wZW5fc3luYWNrX3RpbWVyYC4gTWFrZXMgc2Vuc2UsIHByZXZlbnRpbmcgdW5ib3VuZGVkIHJldHJpZXMgaXMgY3J1Y2lhbCBmb3Igc3RhYmlsaXR5LlxuXG5GdW5jdGlvbmFsbHksIHRoaXMgaXMgYSBjaGFuZ2Ugd2l0aGluIHRoZSBUQ1Agc3RhY2sgaXRzZWxmLiBEZWZpbml0ZWx5IHdvcnRoIGEgZnV6emluZyBjYW1wYWlnbiB0byB2YWxpZGF0ZS4gSSB0aGluayB0aGUga2V5IGFyZWFzIHRvIGZvY3VzIG15IGZ1enppbmcgZWZmb3J0cyBzaG91bGQgYmUgb24gYHJlcXNrX3RpbWVyX2hhbmRsZXJgLCBhbmQgYHRjcF9mYXN0b3Blbl9zeW5hY2tfdGltZXJgLiBJJ2xsIGtlZXAgYW4gZXllIG9uIGB0Y3BfcmVxc2tfdGltZW91dF9za2AsIGFsdGhvdWdoIGl0J3MgaW5saW5lZCwgc28gaXQgbWlnaHQgYmUgbGVzcyBvZiBhIHRhcmdldC4gQWxzbyBgdGNwX3JlcXNrX3RpbWVvdXRgIHdoaWNoIGlzIGFsc28gaW5saW5lZC5cblxuTGV0J3MgcXVpY2tseSBjb25maXJtIHRob3NlIGFzIHNvbGlkIGZvY3VzIHN5bWJvbHMsIEknbSB0aGlua2luZyBJIHNob3VsZCBzdGFydCB3aXRoIGByZXFza190aW1lcl9oYW5kbGVyYCBiZWNhdXNlLCBhcyBhIHRpbWVyIGhhbmRsZXIsIGl0J3MgbGlrZWx5IHRvIGRlYWwgd2l0aCBhIGxvdCBvZiBzdGF0ZSBjaGFuZ2VzIGluIHRoZSBUQ1Agc3RhY2suIGB0Y3BfZmFzdG9wZW5fc3luYWNrX3RpbWVyYCBpcyBjYWxsZWQgZnJvbSBgdGNwX3JldHJhbnNtaXRfdGltZXJgLCBzbyB0aGF0J3MgYSBnb29kIGVudHJ5IHBvaW50IHRvIGV4YW1pbmUgdGhvc2UuXG5cbk5vLCB0aGlzIGxvb2tzIGxpa2Ugc3RhbmRhcmQgVENQLCBzbyBJIGRvbid0IG5lZWQgYW55IHNwZWNpYWwgY29uZmlndXJhdGlvbnMuIGBDT05GSUdfSU5FVGAgYW5kIGBDT05GSUdfVENQYCBzaG91bGQgYmUgc3VmZmljaWVudCwgd2hpY2ggaXMgYWx3YXlzIG9uIGlmIGBDT05GSUdfSU5FVGAgaXMgZW5hYmxlZC5cblxuT2theSwgbGV0J3MgcmV2aXNpdCBgdGNwX2Zhc3RvcGVuX3N5bmFja190aW1lcmAgYW5kIGByZXFza190aW1lcl9oYW5kbGVyYCBvbmUgbW9yZSB0aW1lIGJlZm9yZSBkaXZpbmcgaW4gZGVlcGVyLlxuXG5cbiIsIklucHV0VG9rZW5zIjozMjc2LCJPdXRwdXRUb2tlbnMiOjIzLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6Mzg4LCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjhUMDg6MTE6MzYuMjc2NDk0NDk1WiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjY3ODM3NDA4MDMsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwidGNwX2Zhc3RvcGVuX3N5bmFja190aW1lclwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJuZXQvaXB2NC90Y3BfaW5wdXQuYz03MDczPXN0YXRpYyB2b2lkIHRjcF9yY3Zfc3lucmVjdl9zdGF0ZV9mYXN0b3BlbihzdHJ1Y3Qgc29jayAqc2spXFxuLS1cXG5uZXQvaXB2NC90Y3BfaW5wdXQuYy03MDg1LVxcdFdSSVRFX09OQ0UoaW5ldF9jc2soc2spLVxcdTAwM2VpY3NrX3JldHJhbnNtaXRzLCAwKTtcXG5uZXQvaXB2NC90Y3BfaW5wdXQuYzo3MDg2OlxcdC8qIEluIHRjcF9mYXN0b3Blbl9zeW5hY2tfdGltZXIoKSBvbiB0aGUgZmlyc3QgU1lOQUNLIFJUTyB3ZSBzZXRcXG5uZXQvaXB2NC90Y3BfaW5wdXQuYy03MDg3LVxcdCAqIHJldHJhbnNfc3RhbXAgYnV0IGRvbid0IGVudGVyIENBX0xvc3MsIHNvIGluIGNhc2UgdGhhdCBoYXBwZW5lZCB3ZVxcbi0tXFxubmV0L2lwdjQvdGNwX3RpbWVyLmM9NDQwPXN0YXRpYyB2b2lkIHRjcF91cGRhdGVfcnRvX3N0YXRzKHN0cnVjdCBzb2NrICpzaylcXG4tLVxcbm5ldC9pcHY0L3RjcF90aW1lci5jLTQ1Ni0gKi9cXG5uZXQvaXB2NC90Y3BfdGltZXIuYzo0NTc6c3RhdGljIHZvaWQgdGNwX2Zhc3RvcGVuX3N5bmFja190aW1lcihzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCByZXF1ZXN0X3NvY2sgKnJlcSlcXG5uZXQvaXB2NC90Y3BfdGltZXIuYy00NTgte1xcbi0tXFxubmV0L2lwdjQvdGNwX3RpbWVyLmM9NTM2PXZvaWQgdGNwX3JldHJhbnNtaXRfdGltZXIoc3RydWN0IHNvY2sgKnNrKVxcbi0tXFxubmV0L2lwdjQvdGNwX3RpbWVyLmMtNTQ4LVxcdFxcdFxcdCAgICAgc2stXFx1MDAzZXNrX3N0YXRlICE9IFRDUF9GSU5fV0FJVDEpO1xcbm5ldC9pcHY0L3RjcF90aW1lci5jOjU0OTpcXHRcXHR0Y3BfZmFzdG9wZW5fc3luYWNrX3RpbWVyKHNrLCByZXEpO1xcbm5ldC9pcHY0L3RjcF90aW1lci5jLTU1MC1cXHRcXHQvKiBCZWZvcmUgd2UgcmVjZWl2ZSBBQ0sgdG8gb3VyIFNZTi1BQ0sgZG9uJ3QgcmV0cmFuc21pdFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yOFQwODoxMTo0My4wNjAyNDQ1MzhaIiwiU2VxIjo1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0MDc0Njk1NTA2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgYSBzdW1tYXJ5IG9mIG15IHRob3VnaHQgcHJvY2VzcywgYXMgcmVxdWVzdGVkOlxuXG4qKkRpdmluZyBpbnRvIHRoZSBTWU5fUkVDViBUaW1lciBIYW5kbGVyKipcblxuT2theSwgc28gSSdtIHRoaW5raW5nIGFib3V0IHJlcXVlc3Qgc29ja2V0cywgc3BlY2lmaWNhbGx5IHRob3NlIGluIHRoZSBTWU5fUkVDViBzdGF0ZS4gSSBrbm93IHRoZXJlJ3MgYSB0aW1lciBhc3NvY2lhdGVkIHdpdGggdGhpcyBzdGF0ZSwgdGhlIGByZXFza190aW1lcl9oYW5kbGVyYC4gTXkgbmV4dCBzdGVwIGlzIHRvIGRyaWxsIGRvd24gaW50byB0aGF0IGhhbmRsZXIuIEkgbmVlZCB0byB1bmRlcnN0YW5kIHdoYXQgaGFwcGVucyB3aGVuIHRoYXQgdGltZXIgZmlyZXMuIFdoYXQgYWN0aW9ucyBhcmUgdHJpZ2dlcmVkPyBXaGF0IHJlc291cmNlcyBhcmUgY2xlYW5lZCB1cCwgb3IgcGVyaGFwcyByZS10cmFuc21pdHRlZD8gVGltZSB0byBleGFtaW5lIHRoZSBjb2RlIGZvciBgcmVxc2tfdGltZXJfaGFuZGxlcmAgYW5kIGdldCBhIGRldGFpbGVkIHBpY3R1cmUgb2YgdGhlIFNZTl9SRUNWIGxpZmVjeWNsZS4gSSdtIGV4cGVjdGluZyB0byBzZWUgdGhpbmdzIHJlbGF0ZWQgdG8gY29ubmVjdGlvbiB0aW1lb3V0cyBhbmQgcmV0cmFuc21pc3Npb25zLCBuYXR1cmFsbHksIGJ1dCBpdCdzIGltcG9ydGFudCB0byB1bmRlcnN0YW5kIHRoZSBmdWxsIGNvbnRleHQuIExldCdzIHNlZSB3aGF0J3MgYWN0dWFsbHkgaW4gdGhlcmUhXG5cblxuIiwiSW5wdXRUb2tlbnMiOjQ1NjgsIk91dHB1dFRva2VucyI6MjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjozNSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yOFQwODoxMTo0Ny4xMzQ5NDI4NzRaIiwiU2VxIjo2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NTgxMzY4MDAwNiwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJyZXFza190aW1lcl9oYW5kbGVyXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIm5ldC9pcHY0L2luZXRfY29ubmVjdGlvbl9zb2NrLmM9MTAxNT12b2lkIGluZXRfY3NrX3JlcXNrX3F1ZXVlX2Ryb3BfYW5kX3B1dChzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCByZXF1ZXN0X3NvY2sgKnJlcSlcXG4tLVxcbm5ldC9pcHY0L2luZXRfY29ubmVjdGlvbl9zb2NrLmMtMTAyMC1cXG5uZXQvaXB2NC9pbmV0X2Nvbm5lY3Rpb25fc29jay5jOjEwMjE6c3RhdGljIHZvaWQgcmVxc2tfdGltZXJfaGFuZGxlcihzdHJ1Y3QgdGltZXJfbGlzdCAqdClcXG5uZXQvaXB2NC9pbmV0X2Nvbm5lY3Rpb25fc29jay5jLTEwMjIte1xcbi0tXFxubmV0L2lwdjQvaW5ldF9jb25uZWN0aW9uX3NvY2suYy0xMDQ3LVxcdFxcdHJlZmNvdW50X3NldChcXHUwMDI2bnJlcS1cXHUwMDNlcnNrX3JlZmNudCwgMiArIDEpO1xcbm5ldC9pcHY0L2luZXRfY29ubmVjdGlvbl9zb2NrLmM6MTA0ODpcXHRcXHR0aW1lcl9zZXR1cChcXHUwMDI2bnJlcS1cXHUwMDNlcnNrX3RpbWVyLCByZXFza190aW1lcl9oYW5kbGVyLCBUSU1FUl9QSU5ORUQpO1xcbm5ldC9pcHY0L2luZXRfY29ubmVjdGlvbl9zb2NrLmMtMTA0OS1cXHRcXHRyZXFza19xdWV1ZV9taWdyYXRlZChcXHUwMDI2aW5ldF9jc2sobnNrKS1cXHUwMDNlaWNza19hY2NlcHRfcXVldWUsIHJlcSk7XFxuLS1cXG5uZXQvaXB2NC9pbmV0X2Nvbm5lY3Rpb25fc29jay5jPTExNDI9c3RhdGljIGJvb2wgcmVxc2tfcXVldWVfaGFzaF9yZXEoc3RydWN0IHJlcXVlc3Rfc29jayAqcmVxKVxcbi0tXFxubmV0L2lwdjQvaW5ldF9jb25uZWN0aW9uX3NvY2suYy0xMTUwLVxcdHJlcS1cXHUwMDNldGltZW91dCA9IHRjcF90aW1lb3V0X2luaXQoKHN0cnVjdCBzb2NrICopcmVxKTtcXG5uZXQvaXB2NC9pbmV0X2Nvbm5lY3Rpb25fc29jay5jOjExNTE6XFx0dGltZXJfc2V0dXAoXFx1MDAyNnJlcS1cXHUwMDNlcnNrX3RpbWVyLCByZXFza190aW1lcl9oYW5kbGVyLCBUSU1FUl9QSU5ORUQpO1xcbm5ldC9pcHY0L2luZXRfY29ubmVjdGlvbl9zb2NrLmMtMTE1Mi1cXG4tLVxcbnRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9nX3Rlc3RzL21pZ3JhdGVfcmV1c2Vwb3J0LmM9NTQ9c3RhdGljIHN0cnVjdCBtaWdyYXRlX3JldXNlcG9ydF90ZXN0X2Nhc2Uge1xcbi0tXFxudG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dfdGVzdHMvbWlncmF0ZV9yZXVzZXBvcnQuYy04My1cXHR7XFxudG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dfdGVzdHMvbWlncmF0ZV9yZXVzZXBvcnQuYzo4NDpcXHRcXHQubmFtZSA9IFxcXCJJUHY0IFRDUF9ORVdfU1lOX1JFQ1YgcmVxc2tfdGltZXJfaGFuZGxlclxcXCIsXFxudG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dfdGVzdHMvbWlncmF0ZV9yZXVzZXBvcnQuYy04NS1cXHRcXHQuZmFtaWx5ID0gQUZfSU5FVCxcXG4tLVxcbnRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9nX3Rlc3RzL21pZ3JhdGVfcmV1c2Vwb3J0LmMtMTE1LVxcdHtcXG50b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ190ZXN0cy9taWdyYXRlX3JldXNlcG9ydC5jOjExNjpcXHRcXHQubmFtZSA9IFxcXCJJUHY2IFRDUF9ORVdfU1lOX1JFQ1YgcmVxc2tfdGltZXJfaGFuZGxlclxcXCIsXFxudG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dfdGVzdHMvbWlncmF0ZV9yZXVzZXBvcnQuYy0xMTctXFx0XFx0LmZhbWlseSA9IEFGX0lORVQ2LFxcbi0tXFxudG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dfdGVzdHMvbWlncmF0ZV9yZXVzZXBvcnQuYz00OTE9c3RhdGljIHZvaWQgcnVuX3Rlc3Qoc3RydWN0IG1pZ3JhdGVfcmV1c2Vwb3J0X3Rlc3RfY2FzZSAqdGVzdF9jYXNlLFxcbi0tXFxudG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dfdGVzdHMvbWlncmF0ZV9yZXVzZXBvcnQuYy01NDctXFx0XFx0LyogV2FpdCBmb3IgU1lOK0FDSyB0aW1lcnMgdG8gZXhwaXJlIHNvIHRoYXRcXG50b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ190ZXN0cy9taWdyYXRlX3JldXNlcG9ydC5jOjU0ODpcXHRcXHQgKiByZXFza190aW1lcl9oYW5kbGVyKCkgbWlncmF0ZXMgVENQX05FV19TWU5fUkVDViByZXF1ZXN0cy5cXG50b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ190ZXN0cy9taWdyYXRlX3JldXNlcG9ydC5jLTU0OS1cXHRcXHQgKi9cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjhUMDg6MTE6NTIuOTQ4NjMyMzZaIiwiU2VxIjo3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo1MDkzMjkzODgyLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyBhIFRDUCBTdGFjayBQYXRjaCoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggZm9yIHRoZSBUQ1Agc3RhY2sgYW5kIGltbWVkaWF0ZWx5LCBJIHNlZSBpdCdzIGRlYWxpbmcgd2l0aCBhIHBvdGVudGlhbCBpbnRlZ2VyIG92ZXJmbG93IGxlYWRpbmcgdG8gYW4gb3V0LW9mLWJvdW5kcyBzaGlmdC4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlLCBzcGVjaWZpY2FsbHkgaW4gdGhlIHJlYWxtIG9mIGhvdyB3ZSBoYW5kbGUgYHJlcS1cdTAwM2VudW1fdGltZW91dGAgYW5kIGBtYXhfc3luX2Fja19yZXRyaWVzYCB3aGVuIGEgbGFyZ2UgdmFsdWUgaXMgaW52b2x2ZWQuIFRoZSBmaXggaW52b2x2ZXMgY2FwcGluZyB0aGVzZSB2YWx1ZXMsIHdoaWNoIHNvdW5kcyBsaWtlIGEgc2Vuc2libGUgcHJlY2F1dGlvbi5cblxuVGhlIGZhY3QgdGhhdCBpdCdzIG1hcmtlZCBhcyBcIldvcnRoIGZ1enppbmc6IFRydWVcIiBpcyBpbXBvcnRhbnQ7IGl0IHN1Z2dlc3RzIHRoYXQgdGhpcyBpcyBhIGNyaXRpY2FsIHNwb3QgdG8gdGhyb3cgYSB2YXJpZXR5IG9mIGlucHV0cyBhdCB0byBtYWtlIHN1cmUgdGhlIGZpeCBpcyBjb21wbGV0ZSBhbmQgZG9lc24ndCBpbnRyb2R1Y2UgYW55IG5ldyB2dWxuZXJhYmlsaXRpZXMuIE15IGZvY3VzIHdpbGwgYmUgdGhlIGByZXFza190aW1lcl9oYW5kbGVyYCBhbmQgYHRjcF9mYXN0b3Blbl9zeW5hY2tfdGltZXJgIHN5bWJvbHMgc3BlY2lmaWNhbGx5LiBJIG5lZWQgdG8gZGl2ZSBpbnRvIHRob3NlIGNvZGUgcGF0aHMuXG5cbkxldCdzIHNlZSwgd2hhdCBhYm91dCBjb25maWd1cmF0aW9ucz8gSXQgZG9lc24ndCBsb29rIGxpa2Ugd2UgbmVlZCB0byBlbmFibGUgYW55dGhpbmcgdW51c3VhbCwganVzdCBzdGFuZGFyZCBUQ1AsIHdoaWNoIGlzIGdvb2QuIEkgbmVlZCB0byB2ZXJpZnksIG9mIGNvdXJzZSwgdGhhdCB0aG9zZSBjb25maWd1cmF0aW9ucyBhcmUgc3RhbmRhcmQuXG5cbkl0IGxvb2tzIGxpa2UgVENQIEZhc3QgT3BlbiBtaWdodCBiZSBlbmFibGVkIGJ5IGRlZmF1bHQuIE5vdywgdGhhdCBtYXkgYmUgYSBjb25zaWRlcmF0aW9uIGluIHRoZSBjb250ZXh0IG9mIHRoaXMgcGF0Y2guIEknbGwgbmVlZCB0byByZW1lbWJlciB0aGF0LiBBbmQsIG9mIGNvdXJzZSwgYENPTkZJR19UQ1BfQ09OR19DVUJJQ2AgaXMgdGhlIGRlZmF1bHQgY29uZ2VzdGlvbiBjb250cm9sLCB3aGljaCBpcyB0aGUgYmFzZWxpbmUsIGFuZCBgQ09ORklHX0lORVRgIGlzIHN0YW5kYXJkLlxuXG5BbHJpZ2h0LCBJJ3ZlIGdvdCBhIHNvbGlkIHBpY3R1cmUgaGVyZS4gVGltZSB0byBzZXQgdXAgbXkgdGVzdCBlbnZpcm9ubWVudCBhbmQgZ2V0IHRvIHdvcmsgb24gdmVyaWZpY2F0aW9uIGFuZCBmdXJ0aGVyIGFuYWx5c2lzLlxuXG5cbiIsIklucHV0VG9rZW5zIjo1NjM2LCJPdXRwdXRUb2tlbnMiOjEwMCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE0NywiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yOFQwODoxMTo1OC4wNDE5Mjk2MzJaIiwiU2VxIjo4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjUwNjQwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwicmVxc2tfdGltZXJfaGFuZGxlclwiLFxuICAgIFwidGNwX2Zhc3RvcGVuX3N5bmFja190aW1lclwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGZpeGVzIHNoaWZ0LW91dC1vZi1ib3VuZHMgYnVncyBpbiB0aGUgVENQIHN0YWNrIHdoZW4gY2FsY3VsYXRpbmcgU1lOQUNLIHRpbWVvdXRzIGJ5IGNhcHBpbmcgdGhlIG51bWJlciBvZiByZXRyaWVzIGFuZCBwcm9wZXJseSBjaGVja2luZyBmb3Igb3ZlcmZsb3cuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiBjb3JlIFRDUCBsb2dpYyB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwicmVxc2tfdGltZXJfaGFuZGxlclwiLFxuICAgIFwidGNwX2Zhc3RvcGVuX3N5bmFja190aW1lclwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGZpeGVzIHNoaWZ0LW91dC1vZi1ib3VuZHMgYnVncyBpbiB0aGUgVENQIHN0YWNrIHdoZW4gY2FsY3VsYXRpbmcgU1lOQUNLIHRpbWVvdXRzIGJ5IGNhcHBpbmcgdGhlIG51bWJlciBvZiByZXRyaWVzIGFuZCBwcm9wZXJseSBjaGVja2luZyBmb3Igb3ZlcmZsb3cuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiBjb3JlIFRDUCBsb2dpYyB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/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-workflowqv8zv[0].run-triage(0) Phase: Succeeded StartedAt: 2026-07-28 07:45:55 +0000 UTC FinishedAt: 2026-07-28 08:11:59 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "net-next", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git", "commit_hash": "90883c513ca01e77c56b8d94be7de11420c1dacf", "config_name": "upstream-apparmor-kasan.config", "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "net-next", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git", "commit_hash": "90883c513ca01e77c56b8d94be7de11420c1dacf", "config_name": "upstream-apparmor-kasan.config", "series_id": "9f6bd817-66d0-48b7-8bcd-a52a0222e8b0" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [ "reqsk_timer_handler", "tcp_fastopen_synack_timer" ], "corpus_urls": [ "https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db" ], "skip_cover_check": false, "bug_title_re": "" }, "retest": null } ], "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI4IDA4OjExPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7cmVxc2tfdGltZXJfaGFuZGxlciYjMzQ7LAogICAgJiMzNDt0Y3BfZmFzdG9wZW5fc3luYWNrX3RpbWVyJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGZpeGVzIHNoaWZ0LW91dC1vZi1ib3VuZHMgYnVncyBpbiB0aGUgVENQIHN0YWNrIHdoZW4gY2FsY3VsYXRpbmcgU1lOQUNLIHRpbWVvdXRzIGJ5IGNhcHBpbmcgdGhlIG51bWJlciBvZiByZXRyaWVzIGFuZCBwcm9wZXJseSBjaGVja2luZyBmb3Igb3ZlcmZsb3cuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiBjb3JlIFRDUCBsb2dpYyB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MS8xPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjggMDg6MTE8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPnJlYWQtcGF0Y2gtZGlmZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1BhdGNoRGlmZiYjMzQ7OiAmIzM0O2NvbW1pdCA4Yzk5MWYzOWI4MjU5N2FkZjJlMGRjY2YyNzE0MjY1OTdlMGRlZmIzXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFR1ZSBKdWwgMjggMDg6MTE6MjUgMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZXQvdGNwLmggYi9pbmNsdWRlL25ldC90Y3AuaFxuaW5kZXggNmQzNzZlYTRkMWMwMWQuLmVlNzg0MzZiODk2NDVhIDEwMDY0NFxuLS0tIGEvaW5jbHVkZS9uZXQvdGNwLmhcbiYjNDM7JiM0MzsmIzQzOyBiL2luY2x1ZGUvbmV0L3RjcC5oXG5AQCAtMTgzLDYgJiM0MzsxODMsNyBAQCBzdGF0aWNfYXNzZXJ0KCgxIFx1MDAzY1x1MDAzYyBBVE9fQklUUykgXHUwMDNlIFRDUF9ERUxBQ0tfTUFYKTtcbiAjZGVmaW5lIE1BWF9UQ1BfS0VFUElOVFZMXHQzMjc2N1xuICNkZWZpbmUgTUFYX1RDUF9LRUVQQ05UXHRcdDEyN1xuICNkZWZpbmUgTUFYX1RDUF9TWU5DTlRcdFx0MTI3XG4mIzQzOyNkZWZpbmUgTUFYX1RDUF9TWU5BQ0tfUkVUUklFU1x0NjNcbiBcbiAvKiBFbnN1cmUgdGhhdCBUQ1AgUEFXUyBjaGVja3MgYXJlIHJlbGF4ZWQgYWZ0ZXIgfjIxNDcgc2Vjb25kc1xuICAqIHRvIGF2b2lkIG92ZXJmbG93cy4gVGhpcyBhc3N1bWVzIGEgY2xvY2sgc21hbGxlciB0aGFuIDEgTWh6LlxuQEAgLTg4MiwxMiAmIzQzOzg4MywyMiBAQCBzdGF0aWMgaW5saW5lIHUzMiBfX3RjcF9zZXRfcnRvKGNvbnN0IHN0cnVjdCB0Y3Bfc29jayAqdHApXG4gXHRyZXR1cm4gdXNlY3NfdG9famlmZmllcygodHAtXHUwMDNlc3J0dF91cyBcdTAwM2VcdTAwM2UgMykgJiM0MzsgdHAtXHUwMDNlcnR0dmFyX3VzKTtcbiB9XG4gXG4tc3RhdGljIGlubGluZSB1bnNpZ25lZCBsb25nIHRjcF9yZXFza190aW1lb3V0KHN0cnVjdCByZXF1ZXN0X3NvY2sgKnJlcSlcbiYjNDM7c3RhdGljIGlubGluZSB1bnNpZ25lZCBsb25nIHRjcF9yZXFza190aW1lb3V0X3NrKGNvbnN0IHN0cnVjdCBzb2NrICpzayxcbiYjNDM7XHRcdFx0XHRcdFx0IHN0cnVjdCByZXF1ZXN0X3NvY2sgKnJlcSlcbiB7XG4tXHR1NjQgdGltZW91dCA9ICh1NjQpcmVxLVx1MDAzZXRpbWVvdXQgXHUwMDNjXHUwMDNjIHJlcS1cdTAwM2VudW1fdGltZW91dDtcbiYjNDM7XHR1MzIgcnRvX21heCA9IHRjcF9ydG9fbWF4KHNrKTtcbiYjNDM7XHR1NjQgdGltZW91dCA9IHJlcS1cdTAwM2V0aW1lb3V0O1xuJiM0MztcbiYjNDM7XHRpZiAocmVxLVx1MDAzZW51bV90aW1lb3V0IFx1MDAzZT0gQklUU19QRVJfVFlQRSh1NjQpIHx8XG4mIzQzO1x0ICAgIHRpbWVvdXQgXHUwMDNlIFU2NF9NQVggXHUwMDNlXHUwMDNlIHJlcS1cdTAwM2VudW1fdGltZW91dClcbiYjNDM7XHRcdHJldHVybiBydG9fbWF4O1xuJiM0MztcbiYjNDM7XHRyZXR1cm4gKHVuc2lnbmVkIGxvbmcpbWluX3QodTY0LCB0aW1lb3V0IFx1MDAzY1x1MDAzYyByZXEtXHUwMDNlbnVtX3RpbWVvdXQsIHJ0b19tYXgpO1xuJiM0Mzt9XG4gXG4tXHRyZXR1cm4gKHVuc2lnbmVkIGxvbmcpbWluX3QodTY0LCB0aW1lb3V0LFxuLVx0XHRcdFx0ICAgIHRjcF9ydG9fbWF4KHJlcS1cdTAwM2Vyc2tfbGlzdGVuZXIpKTtcbiYjNDM7c3RhdGljIGlubGluZSB1bnNpZ25lZCBsb25nIHRjcF9yZXFza190aW1lb3V0KHN0cnVjdCByZXF1ZXN0X3NvY2sgKnJlcSlcbiYjNDM7e1xuJiM0MztcdHJldHVybiB0Y3BfcmVxc2tfdGltZW91dF9zayhyZXEtXHUwMDNlcnNrX2xpc3RlbmVyLCByZXEpO1xuIH1cbiBcbiB1MzIgdGNwX2RlbGFja19tYXgoY29uc3Qgc3RydWN0IHNvY2sgKnNrKTtcbmRpZmYgLS1naXQgYS9uZXQvaXB2NC9pbmV0X2Nvbm5lY3Rpb25fc29jay5jIGIvbmV0L2lwdjQvaW5ldF9jb25uZWN0aW9uX3NvY2suY1xuaW5kZXggNTY5MDJiYmE1NDgzOGIuLmI3NDIxMmJhZTNkZDI1IDEwMDY0NFxuLS0tIGEvbmV0L2lwdjQvaW5ldF9jb25uZWN0aW9uX3NvY2suY1xuJiM0MzsmIzQzOyYjNDM7IGIvbmV0L2lwdjQvaW5ldF9jb25uZWN0aW9uX3NvY2suY1xuQEAgLTEwNTYsNiAmIzQzOzEwNTYsOCBAQCBzdGF0aWMgdm9pZCByZXFza190aW1lcl9oYW5kbGVyKHN0cnVjdCB0aW1lcl9saXN0ICp0KVxuIFx0bmV0ID0gc29ja19uZXQoc2tfbGlzdGVuZXIpO1xuIFx0bWF4X3N5bl9hY2tfcmV0cmllcyA9IFJFQURfT05DRShpY3NrLVx1MDAzZWljc2tfc3luX3JldHJpZXMpID8gOlxuIFx0XHRSRUFEX09OQ0UobmV0LVx1MDAzZWlwdjQuc3lzY3RsX3RjcF9zeW5hY2tfcmV0cmllcyk7XG4mIzQzO1x0bWF4X3N5bl9hY2tfcmV0cmllcyA9IG1pbl90KGludCwgbWF4X3N5bl9hY2tfcmV0cmllcyxcbiYjNDM7XHRcdFx0XHQgICAgTUFYX1RDUF9TWU5BQ0tfUkVUUklFUyk7XG4gXHQvKiBOb3JtYWxseSBhbGwgdGhlIG9wZW5yZXFzIGFyZSB5b3VuZyBhbmQgYmVjb21lIG1hdHVyZVxuIFx0ICogKGkuZS4gY29udmVydGVkIHRvIGVzdGFibGlzaGVkIHNvY2tldCkgZm9yIGZpcnN0IHRpbWVvdXQuXG4gXHQgKiBJZiBzeW5hY2sgd2FzIG5vdCBhY2tub3dsZWRnZWQgZm9yIDEgc2Vjb25kLCBpdCBtZWFuc1xuQEAgLTEwODYsNyAmIzQzOzEwODgsOSBAQCBzdGF0aWMgdm9pZCByZXFza190aW1lcl9oYW5kbGVyKHN0cnVjdCB0aW1lcl9saXN0ICp0KVxuIFx0XHR9XG4gXHR9XG4gXG4tXHRzeW5fYWNrX3JlY2FsYyhyZXEsIG1heF9zeW5fYWNrX3JldHJpZXMsIFJFQURfT05DRShxdWV1ZS1cdTAwM2Vyc2txX2RlZmVyX2FjY2VwdCksXG4mIzQzO1x0c3luX2Fja19yZWNhbGMocmVxLCBtYXhfc3luX2Fja19yZXRyaWVzLFxuJiM0MztcdFx0ICAgICAgIG1pbl90KHU4LCBSRUFEX09OQ0UocXVldWUtXHUwMDNlcnNrcV9kZWZlcl9hY2NlcHQpLFxuJiM0MztcdFx0XHQgICAgIE1BWF9UQ1BfU1lOQUNLX1JFVFJJRVMpLFxuIFx0XHQgICAgICAgXHUwMDI2ZXhwaXJlLCBcdTAwMjZyZXNlbmQpO1xuIFx0dGNwX3N5bl9hY2tfdGltZW91dChyZXEpO1xuIFxuZGlmZiAtLWdpdCBhL25ldC9pcHY0L3RjcF90aW1lci5jIGIvbmV0L2lwdjQvdGNwX3RpbWVyLmNcbmluZGV4IGJmMTcxYjVlMWViMzA2Li5iYmVkZjJiOWUxYmNlYSAxMDA2NDRcbi0tLSBhL25ldC9pcHY0L3RjcF90aW1lci5jXG4mIzQzOyYjNDM7JiM0MzsgYi9uZXQvaXB2NC90Y3BfdGltZXIuY1xuQEAgLTQ2Nyw2ICYjNDM7NDY3LDcgQEAgc3RhdGljIHZvaWQgdGNwX2Zhc3RvcGVuX3N5bmFja190aW1lcihzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCByZXF1ZXN0X3NvY2sgKnJlcSlcbiBcdCAqL1xuIFx0bWF4X3JldHJpZXMgPSBSRUFEX09OQ0UoaWNzay1cdTAwM2VpY3NrX3N5bl9yZXRyaWVzKSA/IDpcbiBcdFx0UkVBRF9PTkNFKHNvY2tfbmV0KHNrKS1cdTAwM2VpcHY0LnN5c2N0bF90Y3Bfc3luYWNrX3JldHJpZXMpICYjNDM7IDE7XG4mIzQzO1x0bWF4X3JldHJpZXMgPSBtaW5fdChpbnQsIG1heF9yZXRyaWVzLCBNQVhfVENQX1NZTkFDS19SRVRSSUVTKTtcbiBcbiBcdGlmIChyZXEtXHUwMDNlbnVtX3RpbWVvdXQgXHUwMDNlPSBtYXhfcmV0cmllcykge1xuIFx0XHR0Y3Bfd3JpdGVfZXJyKHNrKTtcbkBAIC00ODgsNyAmIzQzOzQ4OSw3IEBAIHN0YXRpYyB2b2lkIHRjcF9mYXN0b3Blbl9zeW5hY2tfdGltZXIoc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3QgcmVxdWVzdF9zb2NrICpyZXEpXG4gXHRpZiAoIXRwLVx1MDAzZXJldHJhbnNfc3RhbXApXG4gXHRcdHRwLVx1MDAzZXJldHJhbnNfc3RhbXAgPSB0Y3BfdGltZV9zdGFtcF90cyh0cCk7XG4gXHR0Y3BfcmVzZXRfeG1pdF90aW1lcihzaywgSUNTS19USU1FX1JFVFJBTlMsXG4tXHRcdFx0ICByZXEtXHUwMDNldGltZW91dCBcdTAwM2NcdTAwM2MgcmVxLVx1MDAzZW51bV90aW1lb3V0LCBmYWxzZSk7XG4mIzQzO1x0XHRcdCAgICAgdGNwX3JlcXNrX3RpbWVvdXRfc2soc2ssIHJlcSksIGZhbHNlKTtcbiB9XG4gXG4gc3RhdGljIGJvb2wgdGNwX3J0eF9wcm9iZTBfdGltZWRfb3V0KGNvbnN0IHN0cnVjdCBzb2NrICpzayxcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yOCAwODoxMTwvdGQ+CgkJCTx0ZD5hZ2VudDwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5iZXN0LWV4cGVuc2l2ZTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IG51bGwsCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtyZXFza190aW1lcl9oYW5kbGVyJiMzNDssCiAgICAmIzM0O3RjcF9mYXN0b3Blbl9zeW5hY2tfdGltZXImIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggZml4ZXMgc2hpZnQtb3V0LW9mLWJvdW5kcyBidWdzIGluIHRoZSBUQ1Agc3RhY2sgd2hlbiBjYWxjdWxhdGluZyBTWU5BQ0sgdGltZW91dHMgYnkgY2FwcGluZyB0aGUgbnVtYmVyIG9mIHJldHJpZXMgYW5kIHByb3Blcmx5IGNoZWNraW5nIGZvciBvdmVyZmxvdy4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIGNvcmUgVENQIGxvZ2ljIHRoYXQgc2hvdWxkIGJlIGZ1enplZC4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkluc3RydWN0aW9uOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+WW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuCllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lCmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC4KCklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpbgp5b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHkKdXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy4KClJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6Ci0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy4KLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy4KLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuCi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLAogIGV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS4KLSBDb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCwKICBpb25pYywgYW1kZ3B1KSB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS4KLSBEcml2ZXIgLnJlbW92ZSwgLnNodXRkb3duLCBvciBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzIChlLmcuLCBpZ2JfcmVtb3ZlKQogIHRoYXQgYXJlIGV4ZWN1dGVkIG9ubHkgZHVyaW5nIFBDSSBob3QtdW5wbHVnIG9yIHN5c2ZzIGRyaXZlciB1bmJpbmQgb3BlcmF0aW9ucy4KCklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2gKdG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuCgpXaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzoKMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy4KICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuCiAgIFByZWZlciBub24tc3RhdGljLCBub24taW5saW5lZCBBUEkgZW50cnlwb2ludCBmdW5jdGlvbnMgb3ZlciBpbnRlcm5hbCBzdGF0aWMgaGVscGVyIGZ1bmN0aW9ucwogICAod2hpY2ggYXJlIGlubGluZWQgYnkgdGhlIGNvbXBpbGVyIGFuZCBkbyBub3QgaGF2ZSBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzKS4KMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuCiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy4KICAgQWxzbyBjaGVjayAmIzM0O2RlcGVuZHMgb24mIzM0OyBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3MKICAgbmVlZGVkIGZvciBLYnVpbGQgdG8gY29tcGlsZSB0aGUgY29kZSBzdGF0aWNhbGx5IGludG8gdm1saW51eC4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzCiAgIG91dHB1dCBhcnJheSwgYW5kIERPIE5PVCBhZGQgYSAmIzM5O0NPTkZJR18mIzM5OyBwcmVmaXggKGUuZy4sIHJldHVybiAmIzM0O05FVF9JUFY0JiMzNDsgaW5zdGVhZCBvZiAmIzM0O0NPTkZJR19ORVRfSVBWNCYjMzQ7KS4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IDhjOTkxZjM5YjgyNTk3YWRmMmUwZGNjZjI3MTQyNjU5N2UwZGVmYjMKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgVHVlIEp1bCAyOCAwODoxMToyNSAyMDI2ICYjNDM7MDAwMAoKICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldwoKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmV0L3RjcC5oIGIvaW5jbHVkZS9uZXQvdGNwLmgKaW5kZXggNmQzNzZlYTRkMWMwMWQuLmVlNzg0MzZiODk2NDVhIDEwMDY0NAotLS0gYS9pbmNsdWRlL25ldC90Y3AuaAomIzQzOyYjNDM7JiM0MzsgYi9pbmNsdWRlL25ldC90Y3AuaApAQCAtMTgzLDYgJiM0MzsxODMsNyBAQCBzdGF0aWNfYXNzZXJ0KCgxICZsdDsmbHQ7IEFUT19CSVRTKSAmZ3Q7IFRDUF9ERUxBQ0tfTUFYKTsKICNkZWZpbmUgTUFYX1RDUF9LRUVQSU5UVkwJMzI3NjcKICNkZWZpbmUgTUFYX1RDUF9LRUVQQ05UCQkxMjcKICNkZWZpbmUgTUFYX1RDUF9TWU5DTlQJCTEyNwomIzQzOyNkZWZpbmUgTUFYX1RDUF9TWU5BQ0tfUkVUUklFUwk2MwogCiAvKiBFbnN1cmUgdGhhdCBUQ1AgUEFXUyBjaGVja3MgYXJlIHJlbGF4ZWQgYWZ0ZXIgfjIxNDcgc2Vjb25kcwogICogdG8gYXZvaWQgb3ZlcmZsb3dzLiBUaGlzIGFzc3VtZXMgYSBjbG9jayBzbWFsbGVyIHRoYW4gMSBNaHouCkBAIC04ODIsMTIgJiM0Mzs4ODMsMjIgQEAgc3RhdGljIGlubGluZSB1MzIgX190Y3Bfc2V0X3J0byhjb25zdCBzdHJ1Y3QgdGNwX3NvY2sgKnRwKQogCXJldHVybiB1c2Vjc190b19qaWZmaWVzKCh0cC0mZ3Q7c3J0dF91cyAmZ3Q7Jmd0OyAzKSAmIzQzOyB0cC0mZ3Q7cnR0dmFyX3VzKTsKIH0KIAotc3RhdGljIGlubGluZSB1bnNpZ25lZCBsb25nIHRjcF9yZXFza190aW1lb3V0KHN0cnVjdCByZXF1ZXN0X3NvY2sgKnJlcSkKJiM0MztzdGF0aWMgaW5saW5lIHVuc2lnbmVkIGxvbmcgdGNwX3JlcXNrX3RpbWVvdXRfc2soY29uc3Qgc3RydWN0IHNvY2sgKnNrLAomIzQzOwkJCQkJCSBzdHJ1Y3QgcmVxdWVzdF9zb2NrICpyZXEpCiB7Ci0JdTY0IHRpbWVvdXQgPSAodTY0KXJlcS0mZ3Q7dGltZW91dCAmbHQ7Jmx0OyByZXEtJmd0O251bV90aW1lb3V0OwomIzQzOwl1MzIgcnRvX21heCA9IHRjcF9ydG9fbWF4KHNrKTsKJiM0MzsJdTY0IHRpbWVvdXQgPSByZXEtJmd0O3RpbWVvdXQ7CiYjNDM7CiYjNDM7CWlmIChyZXEtJmd0O251bV90aW1lb3V0ICZndDs9IEJJVFNfUEVSX1RZUEUodTY0KSB8fAomIzQzOwkgICAgdGltZW91dCAmZ3Q7IFU2NF9NQVggJmd0OyZndDsgcmVxLSZndDtudW1fdGltZW91dCkKJiM0MzsJCXJldHVybiBydG9fbWF4OwomIzQzOwomIzQzOwlyZXR1cm4gKHVuc2lnbmVkIGxvbmcpbWluX3QodTY0LCB0aW1lb3V0ICZsdDsmbHQ7IHJlcS0mZ3Q7bnVtX3RpbWVvdXQsIHJ0b19tYXgpOwomIzQzO30KIAotCXJldHVybiAodW5zaWduZWQgbG9uZyltaW5fdCh1NjQsIHRpbWVvdXQsCi0JCQkJICAgIHRjcF9ydG9fbWF4KHJlcS0mZ3Q7cnNrX2xpc3RlbmVyKSk7CiYjNDM7c3RhdGljIGlubGluZSB1bnNpZ25lZCBsb25nIHRjcF9yZXFza190aW1lb3V0KHN0cnVjdCByZXF1ZXN0X3NvY2sgKnJlcSkKJiM0Mzt7CiYjNDM7CXJldHVybiB0Y3BfcmVxc2tfdGltZW91dF9zayhyZXEtJmd0O3Jza19saXN0ZW5lciwgcmVxKTsKIH0KIAogdTMyIHRjcF9kZWxhY2tfbWF4KGNvbnN0IHN0cnVjdCBzb2NrICpzayk7CmRpZmYgLS1naXQgYS9uZXQvaXB2NC9pbmV0X2Nvbm5lY3Rpb25fc29jay5jIGIvbmV0L2lwdjQvaW5ldF9jb25uZWN0aW9uX3NvY2suYwppbmRleCA1NjkwMmJiYTU0ODM4Yi4uYjc0MjEyYmFlM2RkMjUgMTAwNjQ0Ci0tLSBhL25ldC9pcHY0L2luZXRfY29ubmVjdGlvbl9zb2NrLmMKJiM0MzsmIzQzOyYjNDM7IGIvbmV0L2lwdjQvaW5ldF9jb25uZWN0aW9uX3NvY2suYwpAQCAtMTA1Niw2ICYjNDM7MTA1Niw4IEBAIHN0YXRpYyB2b2lkIHJlcXNrX3RpbWVyX2hhbmRsZXIoc3RydWN0IHRpbWVyX2xpc3QgKnQpCiAJbmV0ID0gc29ja19uZXQoc2tfbGlzdGVuZXIpOwogCW1heF9zeW5fYWNrX3JldHJpZXMgPSBSRUFEX09OQ0UoaWNzay0mZ3Q7aWNza19zeW5fcmV0cmllcykgPyA6CiAJCVJFQURfT05DRShuZXQtJmd0O2lwdjQuc3lzY3RsX3RjcF9zeW5hY2tfcmV0cmllcyk7CiYjNDM7CW1heF9zeW5fYWNrX3JldHJpZXMgPSBtaW5fdChpbnQsIG1heF9zeW5fYWNrX3JldHJpZXMsCiYjNDM7CQkJCSAgICBNQVhfVENQX1NZTkFDS19SRVRSSUVTKTsKIAkvKiBOb3JtYWxseSBhbGwgdGhlIG9wZW5yZXFzIGFyZSB5b3VuZyBhbmQgYmVjb21lIG1hdHVyZQogCSAqIChpLmUuIGNvbnZlcnRlZCB0byBlc3RhYmxpc2hlZCBzb2NrZXQpIGZvciBmaXJzdCB0aW1lb3V0LgogCSAqIElmIHN5bmFjayB3YXMgbm90IGFja25vd2xlZGdlZCBmb3IgMSBzZWNvbmQsIGl0IG1lYW5zCkBAIC0xMDg2LDcgJiM0MzsxMDg4LDkgQEAgc3RhdGljIHZvaWQgcmVxc2tfdGltZXJfaGFuZGxlcihzdHJ1Y3QgdGltZXJfbGlzdCAqdCkKIAkJfQogCX0KIAotCXN5bl9hY2tfcmVjYWxjKHJlcSwgbWF4X3N5bl9hY2tfcmV0cmllcywgUkVBRF9PTkNFKHF1ZXVlLSZndDtyc2txX2RlZmVyX2FjY2VwdCksCiYjNDM7CXN5bl9hY2tfcmVjYWxjKHJlcSwgbWF4X3N5bl9hY2tfcmV0cmllcywKJiM0MzsJCSAgICAgICBtaW5fdCh1OCwgUkVBRF9PTkNFKHF1ZXVlLSZndDtyc2txX2RlZmVyX2FjY2VwdCksCiYjNDM7CQkJICAgICBNQVhfVENQX1NZTkFDS19SRVRSSUVTKSwKIAkJICAgICAgICZhbXA7ZXhwaXJlLCAmYW1wO3Jlc2VuZCk7CiAJdGNwX3N5bl9hY2tfdGltZW91dChyZXEpOwogCmRpZmYgLS1naXQgYS9uZXQvaXB2NC90Y3BfdGltZXIuYyBiL25ldC9pcHY0L3RjcF90aW1lci5jCmluZGV4IGJmMTcxYjVlMWViMzA2Li5iYmVkZjJiOWUxYmNlYSAxMDA2NDQKLS0tIGEvbmV0L2lwdjQvdGNwX3RpbWVyLmMKJiM0MzsmIzQzOyYjNDM7IGIvbmV0L2lwdjQvdGNwX3RpbWVyLmMKQEAgLTQ2Nyw2ICYjNDM7NDY3LDcgQEAgc3RhdGljIHZvaWQgdGNwX2Zhc3RvcGVuX3N5bmFja190aW1lcihzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCByZXF1ZXN0X3NvY2sgKnJlcSkKIAkgKi8KIAltYXhfcmV0cmllcyA9IFJFQURfT05DRShpY3NrLSZndDtpY3NrX3N5bl9yZXRyaWVzKSA/IDoKIAkJUkVBRF9PTkNFKHNvY2tfbmV0KHNrKS0mZ3Q7aXB2NC5zeXNjdGxfdGNwX3N5bmFja19yZXRyaWVzKSAmIzQzOyAxOwomIzQzOwltYXhfcmV0cmllcyA9IG1pbl90KGludCwgbWF4X3JldHJpZXMsIE1BWF9UQ1BfU1lOQUNLX1JFVFJJRVMpOwogCiAJaWYgKHJlcS0mZ3Q7bnVtX3RpbWVvdXQgJmd0Oz0gbWF4X3JldHJpZXMpIHsKIAkJdGNwX3dyaXRlX2Vycihzayk7CkBAIC00ODgsNyAmIzQzOzQ4OSw3IEBAIHN0YXRpYyB2b2lkIHRjcF9mYXN0b3Blbl9zeW5hY2tfdGltZXIoc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3QgcmVxdWVzdF9zb2NrICpyZXEpCiAJaWYgKCF0cC0mZ3Q7cmV0cmFuc19zdGFtcCkKIAkJdHAtJmd0O3JldHJhbnNfc3RhbXAgPSB0Y3BfdGltZV9zdGFtcF90cyh0cCk7CiAJdGNwX3Jlc2V0X3htaXRfdGltZXIoc2ssIElDU0tfVElNRV9SRVRSQU5TLAotCQkJICByZXEtJmd0O3RpbWVvdXQgJmx0OyZsdDsgcmVxLSZndDtudW1fdGltZW91dCwgZmFsc2UpOwomIzQzOwkJCSAgICAgdGNwX3JlcXNrX3RpbWVvdXRfc2soc2ssIHJlcSksIGZhbHNlKTsKIH0KIAogc3RhdGljIGJvb2wgdGNwX3J0eF9wcm9iZTBfdGltZWRfb3V0KGNvbnN0IHN0cnVjdCBzb2NrICpzaywKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjggMDg6MTE8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzI3NgoJCQkJCQkJb3V0cHV0OiAyMwoJCQkJCQkJdGhvdWdodHM6IDM4OAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgYSBUQ1AgU3RhY2sgUGF0Y2gqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggdGhhdCB0d2Vha3MgdGhlIFRDUCBzdGFjaywgc3BlY2lmaWNhbGx5IHRvdWNoaW5nIGBpbmNsdWRlL25ldC90Y3AuaGAsIGBuZXQvaXB2NC9pbmV0X2Nvbm5lY3Rpb25fc29jay5jYCwgYW5kIGBuZXQvaXB2NC90Y3BfdGltZXIuY2AuIEZyb20gd2hhdCBJIGdhdGhlciwgaXQmIzM5O3MgaW50cm9kdWNpbmcgYSBgTUFYX1RDUF9TWU5BQ0tfUkVUUklFU2AgdG8gbGltaXQgdGhlIG51bWJlciBvZiBTWU5BQ0sgcmV0cmllcy4gVGhhdCYjMzk7cyBhIHJlYXNvbmFibGUgc2FmZWd1YXJkLiBJdCBhbHNvIHNlZW1zIHRvIGFkZHJlc3MgcG90ZW50aWFsIHNoaWZ0IG92ZXJmbG93cyBpbiBgdGNwX3JlcXNrX3RpbWVvdXRgIGFuZCBgcmVxc2tfdGltZXJfaGFuZGxlcmAsIGdvb2QgY2F0Y2gsIHRob3NlIGFyZSBuYXN0eSBidWdzLiBBbmQgZmluYWxseSwgaXQmIzM5O3MgY2FwcGluZyBgbWF4X3N5bl9hY2tfcmV0cmllc2AgYW5kIGBxdWV1ZS0mZ3Q7cnNrcV9kZWZlcl9hY2NlcHRgIGluIGByZXFza190aW1lcl9oYW5kbGVyYCBhbmQgYG1heF9yZXRyaWVzYCBpbiBgdGNwX2Zhc3RvcGVuX3N5bmFja190aW1lcmAuIE1ha2VzIHNlbnNlLCBwcmV2ZW50aW5nIHVuYm91bmRlZCByZXRyaWVzIGlzIGNydWNpYWwgZm9yIHN0YWJpbGl0eS4KCkZ1bmN0aW9uYWxseSwgdGhpcyBpcyBhIGNoYW5nZSB3aXRoaW4gdGhlIFRDUCBzdGFjayBpdHNlbGYuIERlZmluaXRlbHkgd29ydGggYSBmdXp6aW5nIGNhbXBhaWduIHRvIHZhbGlkYXRlLiBJIHRoaW5rIHRoZSBrZXkgYXJlYXMgdG8gZm9jdXMgbXkgZnV6emluZyBlZmZvcnRzIHNob3VsZCBiZSBvbiBgcmVxc2tfdGltZXJfaGFuZGxlcmAsIGFuZCBgdGNwX2Zhc3RvcGVuX3N5bmFja190aW1lcmAuIEkmIzM5O2xsIGtlZXAgYW4gZXllIG9uIGB0Y3BfcmVxc2tfdGltZW91dF9za2AsIGFsdGhvdWdoIGl0JiMzOTtzIGlubGluZWQsIHNvIGl0IG1pZ2h0IGJlIGxlc3Mgb2YgYSB0YXJnZXQuIEFsc28gYHRjcF9yZXFza190aW1lb3V0YCB3aGljaCBpcyBhbHNvIGlubGluZWQuCgpMZXQmIzM5O3MgcXVpY2tseSBjb25maXJtIHRob3NlIGFzIHNvbGlkIGZvY3VzIHN5bWJvbHMsIEkmIzM5O20gdGhpbmtpbmcgSSBzaG91bGQgc3RhcnQgd2l0aCBgcmVxc2tfdGltZXJfaGFuZGxlcmAgYmVjYXVzZSwgYXMgYSB0aW1lciBoYW5kbGVyLCBpdCYjMzk7cyBsaWtlbHkgdG8gZGVhbCB3aXRoIGEgbG90IG9mIHN0YXRlIGNoYW5nZXMgaW4gdGhlIFRDUCBzdGFjay4gYHRjcF9mYXN0b3Blbl9zeW5hY2tfdGltZXJgIGlzIGNhbGxlZCBmcm9tIGB0Y3BfcmV0cmFuc21pdF90aW1lcmAsIHNvIHRoYXQmIzM5O3MgYSBnb29kIGVudHJ5IHBvaW50IHRvIGV4YW1pbmUgdGhvc2UuCgpObywgdGhpcyBsb29rcyBsaWtlIHN0YW5kYXJkIFRDUCwgc28gSSBkb24mIzM5O3QgbmVlZCBhbnkgc3BlY2lhbCBjb25maWd1cmF0aW9ucy4gYENPTkZJR19JTkVUYCBhbmQgYENPTkZJR19UQ1BgIHNob3VsZCBiZSBzdWZmaWNpZW50LCB3aGljaCBpcyBhbHdheXMgb24gaWYgYENPTkZJR19JTkVUYCBpcyBlbmFibGVkLgoKT2theSwgbGV0JiMzOTtzIHJldmlzaXQgYHRjcF9mYXN0b3Blbl9zeW5hY2tfdGltZXJgIGFuZCBgcmVxc2tfdGltZXJfaGFuZGxlcmAgb25lIG1vcmUgdGltZSBiZWZvcmUgZGl2aW5nIGluIGRlZXBlci4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yOCAwODoxMTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDt0Y3BfZmFzdG9wZW5fc3luYWNrX3RpbWVyJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O25ldC9pcHY0L3RjcF9pbnB1dC5jPTcwNzM9c3RhdGljIHZvaWQgdGNwX3Jjdl9zeW5yZWN2X3N0YXRlX2Zhc3RvcGVuKHN0cnVjdCBzb2NrICpzaylcbi0tXG5uZXQvaXB2NC90Y3BfaW5wdXQuYy03MDg1LVx0V1JJVEVfT05DRShpbmV0X2NzayhzayktXHUwMDNlaWNza19yZXRyYW5zbWl0cywgMCk7XG5uZXQvaXB2NC90Y3BfaW5wdXQuYzo3MDg2Olx0LyogSW4gdGNwX2Zhc3RvcGVuX3N5bmFja190aW1lcigpIG9uIHRoZSBmaXJzdCBTWU5BQ0sgUlRPIHdlIHNldFxubmV0L2lwdjQvdGNwX2lucHV0LmMtNzA4Ny1cdCAqIHJldHJhbnNfc3RhbXAgYnV0IGRvbiYjMzk7dCBlbnRlciBDQV9Mb3NzLCBzbyBpbiBjYXNlIHRoYXQgaGFwcGVuZWQgd2Vcbi0tXG5uZXQvaXB2NC90Y3BfdGltZXIuYz00NDA9c3RhdGljIHZvaWQgdGNwX3VwZGF0ZV9ydG9fc3RhdHMoc3RydWN0IHNvY2sgKnNrKVxuLS1cbm5ldC9pcHY0L3RjcF90aW1lci5jLTQ1Ni0gKi9cbm5ldC9pcHY0L3RjcF90aW1lci5jOjQ1NzpzdGF0aWMgdm9pZCB0Y3BfZmFzdG9wZW5fc3luYWNrX3RpbWVyKHN0cnVjdCBzb2NrICpzaywgc3RydWN0IHJlcXVlc3Rfc29jayAqcmVxKVxubmV0L2lwdjQvdGNwX3RpbWVyLmMtNDU4LXtcbi0tXG5uZXQvaXB2NC90Y3BfdGltZXIuYz01MzY9dm9pZCB0Y3BfcmV0cmFuc21pdF90aW1lcihzdHJ1Y3Qgc29jayAqc2spXG4tLVxubmV0L2lwdjQvdGNwX3RpbWVyLmMtNTQ4LVx0XHRcdCAgICAgc2stXHUwMDNlc2tfc3RhdGUgIT0gVENQX0ZJTl9XQUlUMSk7XG5uZXQvaXB2NC90Y3BfdGltZXIuYzo1NDk6XHRcdHRjcF9mYXN0b3Blbl9zeW5hY2tfdGltZXIoc2ssIHJlcSk7XG5uZXQvaXB2NC90Y3BfdGltZXIuYy01NTAtXHRcdC8qIEJlZm9yZSB3ZSByZWNlaXZlIEFDSyB0byBvdXIgU1lOLUFDSyBkb24mIzM5O3QgcmV0cmFuc21pdFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI4IDA4OjExPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDQ1NjgKCQkJCQkJCW91dHB1dDogMjAKCQkJCQkJCXRob3VnaHRzOiAzNQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+SGVyZSYjMzk7cyBhIHN1bW1hcnkgb2YgbXkgdGhvdWdodCBwcm9jZXNzLCBhcyByZXF1ZXN0ZWQ6CgoqKkRpdmluZyBpbnRvIHRoZSBTWU5fUkVDViBUaW1lciBIYW5kbGVyKioKCk9rYXksIHNvIEkmIzM5O20gdGhpbmtpbmcgYWJvdXQgcmVxdWVzdCBzb2NrZXRzLCBzcGVjaWZpY2FsbHkgdGhvc2UgaW4gdGhlIFNZTl9SRUNWIHN0YXRlLiBJIGtub3cgdGhlcmUmIzM5O3MgYSB0aW1lciBhc3NvY2lhdGVkIHdpdGggdGhpcyBzdGF0ZSwgdGhlIGByZXFza190aW1lcl9oYW5kbGVyYC4gTXkgbmV4dCBzdGVwIGlzIHRvIGRyaWxsIGRvd24gaW50byB0aGF0IGhhbmRsZXIuIEkgbmVlZCB0byB1bmRlcnN0YW5kIHdoYXQgaGFwcGVucyB3aGVuIHRoYXQgdGltZXIgZmlyZXMuIFdoYXQgYWN0aW9ucyBhcmUgdHJpZ2dlcmVkPyBXaGF0IHJlc291cmNlcyBhcmUgY2xlYW5lZCB1cCwgb3IgcGVyaGFwcyByZS10cmFuc21pdHRlZD8gVGltZSB0byBleGFtaW5lIHRoZSBjb2RlIGZvciBgcmVxc2tfdGltZXJfaGFuZGxlcmAgYW5kIGdldCBhIGRldGFpbGVkIHBpY3R1cmUgb2YgdGhlIFNZTl9SRUNWIGxpZmVjeWNsZS4gSSYjMzk7bSBleHBlY3RpbmcgdG8gc2VlIHRoaW5ncyByZWxhdGVkIHRvIGNvbm5lY3Rpb24gdGltZW91dHMgYW5kIHJldHJhbnNtaXNzaW9ucywgbmF0dXJhbGx5LCBidXQgaXQmIzM5O3MgaW1wb3J0YW50IHRvIHVuZGVyc3RhbmQgdGhlIGZ1bGwgY29udGV4dC4gTGV0JiMzOTtzIHNlZSB3aGF0JiMzOTtzIGFjdHVhbGx5IGluIHRoZXJlIQoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI4IDA4OjExPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3JlcXNrX3RpbWVyX2hhbmRsZXImIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7bmV0L2lwdjQvaW5ldF9jb25uZWN0aW9uX3NvY2suYz0xMDE1PXZvaWQgaW5ldF9jc2tfcmVxc2tfcXVldWVfZHJvcF9hbmRfcHV0KHN0cnVjdCBzb2NrICpzaywgc3RydWN0IHJlcXVlc3Rfc29jayAqcmVxKVxuLS1cbm5ldC9pcHY0L2luZXRfY29ubmVjdGlvbl9zb2NrLmMtMTAyMC1cbm5ldC9pcHY0L2luZXRfY29ubmVjdGlvbl9zb2NrLmM6MTAyMTpzdGF0aWMgdm9pZCByZXFza190aW1lcl9oYW5kbGVyKHN0cnVjdCB0aW1lcl9saXN0ICp0KVxubmV0L2lwdjQvaW5ldF9jb25uZWN0aW9uX3NvY2suYy0xMDIyLXtcbi0tXG5uZXQvaXB2NC9pbmV0X2Nvbm5lY3Rpb25fc29jay5jLTEwNDctXHRcdHJlZmNvdW50X3NldChcdTAwMjZucmVxLVx1MDAzZXJza19yZWZjbnQsIDIgJiM0MzsgMSk7XG5uZXQvaXB2NC9pbmV0X2Nvbm5lY3Rpb25fc29jay5jOjEwNDg6XHRcdHRpbWVyX3NldHVwKFx1MDAyNm5yZXEtXHUwMDNlcnNrX3RpbWVyLCByZXFza190aW1lcl9oYW5kbGVyLCBUSU1FUl9QSU5ORUQpO1xubmV0L2lwdjQvaW5ldF9jb25uZWN0aW9uX3NvY2suYy0xMDQ5LVx0XHRyZXFza19xdWV1ZV9taWdyYXRlZChcdTAwMjZpbmV0X2Nzayhuc2spLVx1MDAzZWljc2tfYWNjZXB0X3F1ZXVlLCByZXEpO1xuLS1cbm5ldC9pcHY0L2luZXRfY29ubmVjdGlvbl9zb2NrLmM9MTE0Mj1zdGF0aWMgYm9vbCByZXFza19xdWV1ZV9oYXNoX3JlcShzdHJ1Y3QgcmVxdWVzdF9zb2NrICpyZXEpXG4tLVxubmV0L2lwdjQvaW5ldF9jb25uZWN0aW9uX3NvY2suYy0xMTUwLVx0cmVxLVx1MDAzZXRpbWVvdXQgPSB0Y3BfdGltZW91dF9pbml0KChzdHJ1Y3Qgc29jayAqKXJlcSk7XG5uZXQvaXB2NC9pbmV0X2Nvbm5lY3Rpb25fc29jay5jOjExNTE6XHR0aW1lcl9zZXR1cChcdTAwMjZyZXEtXHUwMDNlcnNrX3RpbWVyLCByZXFza190aW1lcl9oYW5kbGVyLCBUSU1FUl9QSU5ORUQpO1xubmV0L2lwdjQvaW5ldF9jb25uZWN0aW9uX3NvY2suYy0xMTUyLVxuLS1cbnRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9nX3Rlc3RzL21pZ3JhdGVfcmV1c2Vwb3J0LmM9NTQ9c3RhdGljIHN0cnVjdCBtaWdyYXRlX3JldXNlcG9ydF90ZXN0X2Nhc2Uge1xuLS1cbnRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9nX3Rlc3RzL21pZ3JhdGVfcmV1c2Vwb3J0LmMtODMtXHR7XG50b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ190ZXN0cy9taWdyYXRlX3JldXNlcG9ydC5jOjg0Olx0XHQubmFtZSA9IFwmIzM0O0lQdjQgVENQX05FV19TWU5fUkVDViByZXFza190aW1lcl9oYW5kbGVyXCYjMzQ7LFxudG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dfdGVzdHMvbWlncmF0ZV9yZXVzZXBvcnQuYy04NS1cdFx0LmZhbWlseSA9IEFGX0lORVQsXG4tLVxudG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dfdGVzdHMvbWlncmF0ZV9yZXVzZXBvcnQuYy0xMTUtXHR7XG50b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ190ZXN0cy9taWdyYXRlX3JldXNlcG9ydC5jOjExNjpcdFx0Lm5hbWUgPSBcJiMzNDtJUHY2IFRDUF9ORVdfU1lOX1JFQ1YgcmVxc2tfdGltZXJfaGFuZGxlclwmIzM0OyxcbnRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9nX3Rlc3RzL21pZ3JhdGVfcmV1c2Vwb3J0LmMtMTE3LVx0XHQuZmFtaWx5ID0gQUZfSU5FVDYsXG4tLVxudG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dfdGVzdHMvbWlncmF0ZV9yZXVzZXBvcnQuYz00OTE9c3RhdGljIHZvaWQgcnVuX3Rlc3Qoc3RydWN0IG1pZ3JhdGVfcmV1c2Vwb3J0X3Rlc3RfY2FzZSAqdGVzdF9jYXNlLFxuLS1cbnRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9nX3Rlc3RzL21pZ3JhdGVfcmV1c2Vwb3J0LmMtNTQ3LVx0XHQvKiBXYWl0IGZvciBTWU4mIzQzO0FDSyB0aW1lcnMgdG8gZXhwaXJlIHNvIHRoYXRcbnRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9nX3Rlc3RzL21pZ3JhdGVfcmV1c2Vwb3J0LmM6NTQ4Olx0XHQgKiByZXFza190aW1lcl9oYW5kbGVyKCkgbWlncmF0ZXMgVENQX05FV19TWU5fUkVDViByZXF1ZXN0cy5cbnRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9nX3Rlc3RzL21pZ3JhdGVfcmV1c2Vwb3J0LmMtNTQ5LVx0XHQgKi9cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD43LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yOCAwODoxMTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA1NjM2CgkJCQkJCQlvdXRwdXQ6IDEwMAoJCQkJCQkJdGhvdWdodHM6IDE0NwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgYSBUQ1AgU3RhY2sgUGF0Y2gqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggZm9yIHRoZSBUQ1Agc3RhY2sgYW5kIGltbWVkaWF0ZWx5LCBJIHNlZSBpdCYjMzk7cyBkZWFsaW5nIHdpdGggYSBwb3RlbnRpYWwgaW50ZWdlciBvdmVyZmxvdyBsZWFkaW5nIHRvIGFuIG91dC1vZi1ib3VuZHMgc2hpZnQuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSwgc3BlY2lmaWNhbGx5IGluIHRoZSByZWFsbSBvZiBob3cgd2UgaGFuZGxlIGByZXEtJmd0O251bV90aW1lb3V0YCBhbmQgYG1heF9zeW5fYWNrX3JldHJpZXNgIHdoZW4gYSBsYXJnZSB2YWx1ZSBpcyBpbnZvbHZlZC4gVGhlIGZpeCBpbnZvbHZlcyBjYXBwaW5nIHRoZXNlIHZhbHVlcywgd2hpY2ggc291bmRzIGxpa2UgYSBzZW5zaWJsZSBwcmVjYXV0aW9uLgoKVGhlIGZhY3QgdGhhdCBpdCYjMzk7cyBtYXJrZWQgYXMgJiMzNDtXb3J0aCBmdXp6aW5nOiBUcnVlJiMzNDsgaXMgaW1wb3J0YW50OyBpdCBzdWdnZXN0cyB0aGF0IHRoaXMgaXMgYSBjcml0aWNhbCBzcG90IHRvIHRocm93IGEgdmFyaWV0eSBvZiBpbnB1dHMgYXQgdG8gbWFrZSBzdXJlIHRoZSBmaXggaXMgY29tcGxldGUgYW5kIGRvZXNuJiMzOTt0IGludHJvZHVjZSBhbnkgbmV3IHZ1bG5lcmFiaWxpdGllcy4gTXkgZm9jdXMgd2lsbCBiZSB0aGUgYHJlcXNrX3RpbWVyX2hhbmRsZXJgIGFuZCBgdGNwX2Zhc3RvcGVuX3N5bmFja190aW1lcmAgc3ltYm9scyBzcGVjaWZpY2FsbHkuIEkgbmVlZCB0byBkaXZlIGludG8gdGhvc2UgY29kZSBwYXRocy4KCkxldCYjMzk7cyBzZWUsIHdoYXQgYWJvdXQgY29uZmlndXJhdGlvbnM/IEl0IGRvZXNuJiMzOTt0IGxvb2sgbGlrZSB3ZSBuZWVkIHRvIGVuYWJsZSBhbnl0aGluZyB1bnVzdWFsLCBqdXN0IHN0YW5kYXJkIFRDUCwgd2hpY2ggaXMgZ29vZC4gSSBuZWVkIHRvIHZlcmlmeSwgb2YgY291cnNlLCB0aGF0IHRob3NlIGNvbmZpZ3VyYXRpb25zIGFyZSBzdGFuZGFyZC4KCkl0IGxvb2tzIGxpa2UgVENQIEZhc3QgT3BlbiBtaWdodCBiZSBlbmFibGVkIGJ5IGRlZmF1bHQuIE5vdywgdGhhdCBtYXkgYmUgYSBjb25zaWRlcmF0aW9uIGluIHRoZSBjb250ZXh0IG9mIHRoaXMgcGF0Y2guIEkmIzM5O2xsIG5lZWQgdG8gcmVtZW1iZXIgdGhhdC4gQW5kLCBvZiBjb3Vyc2UsIGBDT05GSUdfVENQX0NPTkdfQ1VCSUNgIGlzIHRoZSBkZWZhdWx0IGNvbmdlc3Rpb24gY29udHJvbCwgd2hpY2ggaXMgdGhlIGJhc2VsaW5lLCBhbmQgYENPTkZJR19JTkVUYCBpcyBzdGFuZGFyZC4KCkFscmlnaHQsIEkmIzM5O3ZlIGdvdCBhIHNvbGlkIHBpY3R1cmUgaGVyZS4gVGltZSB0byBzZXQgdXAgbXkgdGVzdCBlbnZpcm9ubWVudCBhbmQgZ2V0IHRvIHdvcmsgb24gdmVyaWZpY2F0aW9uIGFuZCBmdXJ0aGVyIGFuYWx5c2lzLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI4IDA4OjExPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+c2V0LXJlc3VsdHM8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogW10sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtyZXFza190aW1lcl9oYW5kbGVyJiMzNDssCiAgICAmIzM0O3RjcF9mYXN0b3Blbl9zeW5hY2tfdGltZXImIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggZml4ZXMgc2hpZnQtb3V0LW9mLWJvdW5kcyBidWdzIGluIHRoZSBUQ1Agc3RhY2sgd2hlbiBjYWxjdWxhdGluZyBTWU5BQ0sgdGltZW91dHMgYnkgY2FwcGluZyB0aGUgbnVtYmVyIG9mIHJldHJpZXMgYW5kIHByb3Blcmx5IGNoZWNraW5nIGZvciBvdmVyZmxvdy4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIGNvcmUgVENQIGxvZ2ljIHRoYXQgc2hvdWxkIGJlIGZ1enplZC4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IG51bGwsCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtyZXFza190aW1lcl9oYW5kbGVyJiMzNDssCiAgICAmIzM0O3RjcF9mYXN0b3Blbl9zeW5hY2tfdGltZXImIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggZml4ZXMgc2hpZnQtb3V0LW9mLWJvdW5kcyBidWdzIGluIHRoZSBUQ1Agc3RhY2sgd2hlbiBjYWxjdWxhdGluZyBTWU5BQ0sgdGltZW91dHMgYnkgY2FwcGluZyB0aGUgbnVtYmVyIG9mIHJldHJpZXMgYW5kIHByb3Blcmx5IGNoZWNraW5nIGZvciBvdmVyZmxvdy4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIGNvcmUgVENQIGxvZ2ljIHRoYXQgc2hvdWxkIGJlIGZ1enplZC4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI4VDA4OjExOjI3LjY4ODMzOTcyNFoiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjMwMzUzNjUyNTc5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcInJlcXNrX3RpbWVyX2hhbmRsZXJcIixcbiAgICBcInRjcF9mYXN0b3Blbl9zeW5hY2tfdGltZXJcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBmaXhlcyBzaGlmdC1vdXQtb2YtYm91bmRzIGJ1Z3MgaW4gdGhlIFRDUCBzdGFjayB3aGVuIGNhbGN1bGF0aW5nIFNZTkFDSyB0aW1lb3V0cyBieSBjYXBwaW5nIHRoZSBudW1iZXIgb2YgcmV0cmllcyBhbmQgcHJvcGVybHkgY2hlY2tpbmcgZm9yIG92ZXJmbG93LiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gY29yZSBUQ1AgbG9naWMgdGhhdCBzaG91bGQgYmUgZnV6emVkLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yOFQwODoxMToyNy42ODgzNDczNjRaIiwiU2VxIjoxLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6InJlYWQtcGF0Y2gtZGlmZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjc3OTk2NDc1MSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiUGF0Y2hEaWZmXCI6IFwiY29tbWl0IDhjOTkxZjM5YjgyNTk3YWRmMmUwZGNjZjI3MTQyNjU5N2UwZGVmYjNcXG5BdXRob3I6IHN5ei1jbHVzdGVyIFxcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVxcdTAwM2VcXG5EYXRlOiAgIFR1ZSBKdWwgMjggMDg6MTE6MjUgMjAyNiArMDAwMFxcblxcbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcXG5cXG5kaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZXQvdGNwLmggYi9pbmNsdWRlL25ldC90Y3AuaFxcbmluZGV4IDZkMzc2ZWE0ZDFjMDFkLi5lZTc4NDM2Yjg5NjQ1YSAxMDA2NDRcXG4tLS0gYS9pbmNsdWRlL25ldC90Y3AuaFxcbisrKyBiL2luY2x1ZGUvbmV0L3RjcC5oXFxuQEAgLTE4Myw2ICsxODMsNyBAQCBzdGF0aWNfYXNzZXJ0KCgxIFxcdTAwM2NcXHUwMDNjIEFUT19CSVRTKSBcXHUwMDNlIFRDUF9ERUxBQ0tfTUFYKTtcXG4gI2RlZmluZSBNQVhfVENQX0tFRVBJTlRWTFxcdDMyNzY3XFxuICNkZWZpbmUgTUFYX1RDUF9LRUVQQ05UXFx0XFx0MTI3XFxuICNkZWZpbmUgTUFYX1RDUF9TWU5DTlRcXHRcXHQxMjdcXG4rI2RlZmluZSBNQVhfVENQX1NZTkFDS19SRVRSSUVTXFx0NjNcXG4gXFxuIC8qIEVuc3VyZSB0aGF0IFRDUCBQQVdTIGNoZWNrcyBhcmUgcmVsYXhlZCBhZnRlciB+MjE0NyBzZWNvbmRzXFxuICAqIHRvIGF2b2lkIG92ZXJmbG93cy4gVGhpcyBhc3N1bWVzIGEgY2xvY2sgc21hbGxlciB0aGFuIDEgTWh6LlxcbkBAIC04ODIsMTIgKzg4MywyMiBAQCBzdGF0aWMgaW5saW5lIHUzMiBfX3RjcF9zZXRfcnRvKGNvbnN0IHN0cnVjdCB0Y3Bfc29jayAqdHApXFxuIFxcdHJldHVybiB1c2Vjc190b19qaWZmaWVzKCh0cC1cXHUwMDNlc3J0dF91cyBcXHUwMDNlXFx1MDAzZSAzKSArIHRwLVxcdTAwM2VydHR2YXJfdXMpO1xcbiB9XFxuIFxcbi1zdGF0aWMgaW5saW5lIHVuc2lnbmVkIGxvbmcgdGNwX3JlcXNrX3RpbWVvdXQoc3RydWN0IHJlcXVlc3Rfc29jayAqcmVxKVxcbitzdGF0aWMgaW5saW5lIHVuc2lnbmVkIGxvbmcgdGNwX3JlcXNrX3RpbWVvdXRfc2soY29uc3Qgc3RydWN0IHNvY2sgKnNrLFxcbitcXHRcXHRcXHRcXHRcXHRcXHQgc3RydWN0IHJlcXVlc3Rfc29jayAqcmVxKVxcbiB7XFxuLVxcdHU2NCB0aW1lb3V0ID0gKHU2NClyZXEtXFx1MDAzZXRpbWVvdXQgXFx1MDAzY1xcdTAwM2MgcmVxLVxcdTAwM2VudW1fdGltZW91dDtcXG4rXFx0dTMyIHJ0b19tYXggPSB0Y3BfcnRvX21heChzayk7XFxuK1xcdHU2NCB0aW1lb3V0ID0gcmVxLVxcdTAwM2V0aW1lb3V0O1xcbitcXG4rXFx0aWYgKHJlcS1cXHUwMDNlbnVtX3RpbWVvdXQgXFx1MDAzZT0gQklUU19QRVJfVFlQRSh1NjQpIHx8XFxuK1xcdCAgICB0aW1lb3V0IFxcdTAwM2UgVTY0X01BWCBcXHUwMDNlXFx1MDAzZSByZXEtXFx1MDAzZW51bV90aW1lb3V0KVxcbitcXHRcXHRyZXR1cm4gcnRvX21heDtcXG4rXFxuK1xcdHJldHVybiAodW5zaWduZWQgbG9uZyltaW5fdCh1NjQsIHRpbWVvdXQgXFx1MDAzY1xcdTAwM2MgcmVxLVxcdTAwM2VudW1fdGltZW91dCwgcnRvX21heCk7XFxuK31cXG4gXFxuLVxcdHJldHVybiAodW5zaWduZWQgbG9uZyltaW5fdCh1NjQsIHRpbWVvdXQsXFxuLVxcdFxcdFxcdFxcdCAgICB0Y3BfcnRvX21heChyZXEtXFx1MDAzZXJza19saXN0ZW5lcikpO1xcbitzdGF0aWMgaW5saW5lIHVuc2lnbmVkIGxvbmcgdGNwX3JlcXNrX3RpbWVvdXQoc3RydWN0IHJlcXVlc3Rfc29jayAqcmVxKVxcbit7XFxuK1xcdHJldHVybiB0Y3BfcmVxc2tfdGltZW91dF9zayhyZXEtXFx1MDAzZXJza19saXN0ZW5lciwgcmVxKTtcXG4gfVxcbiBcXG4gdTMyIHRjcF9kZWxhY2tfbWF4KGNvbnN0IHN0cnVjdCBzb2NrICpzayk7XFxuZGlmZiAtLWdpdCBhL25ldC9pcHY0L2luZXRfY29ubmVjdGlvbl9zb2NrLmMgYi9uZXQvaXB2NC9pbmV0X2Nvbm5lY3Rpb25fc29jay5jXFxuaW5kZXggNTY5MDJiYmE1NDgzOGIuLmI3NDIxMmJhZTNkZDI1IDEwMDY0NFxcbi0tLSBhL25ldC9pcHY0L2luZXRfY29ubmVjdGlvbl9zb2NrLmNcXG4rKysgYi9uZXQvaXB2NC9pbmV0X2Nvbm5lY3Rpb25fc29jay5jXFxuQEAgLTEwNTYsNiArMTA1Niw4IEBAIHN0YXRpYyB2b2lkIHJlcXNrX3RpbWVyX2hhbmRsZXIoc3RydWN0IHRpbWVyX2xpc3QgKnQpXFxuIFxcdG5ldCA9IHNvY2tfbmV0KHNrX2xpc3RlbmVyKTtcXG4gXFx0bWF4X3N5bl9hY2tfcmV0cmllcyA9IFJFQURfT05DRShpY3NrLVxcdTAwM2VpY3NrX3N5bl9yZXRyaWVzKSA/IDpcXG4gXFx0XFx0UkVBRF9PTkNFKG5ldC1cXHUwMDNlaXB2NC5zeXNjdGxfdGNwX3N5bmFja19yZXRyaWVzKTtcXG4rXFx0bWF4X3N5bl9hY2tfcmV0cmllcyA9IG1pbl90KGludCwgbWF4X3N5bl9hY2tfcmV0cmllcyxcXG4rXFx0XFx0XFx0XFx0ICAgIE1BWF9UQ1BfU1lOQUNLX1JFVFJJRVMpO1xcbiBcXHQvKiBOb3JtYWxseSBhbGwgdGhlIG9wZW5yZXFzIGFyZSB5b3VuZyBhbmQgYmVjb21lIG1hdHVyZVxcbiBcXHQgKiAoaS5lLiBjb252ZXJ0ZWQgdG8gZXN0YWJsaXNoZWQgc29ja2V0KSBmb3IgZmlyc3QgdGltZW91dC5cXG4gXFx0ICogSWYgc3luYWNrIHdhcyBub3QgYWNrbm93bGVkZ2VkIGZvciAxIHNlY29uZCwgaXQgbWVhbnNcXG5AQCAtMTA4Niw3ICsxMDg4LDkgQEAgc3RhdGljIHZvaWQgcmVxc2tfdGltZXJfaGFuZGxlcihzdHJ1Y3QgdGltZXJfbGlzdCAqdClcXG4gXFx0XFx0fVxcbiBcXHR9XFxuIFxcbi1cXHRzeW5fYWNrX3JlY2FsYyhyZXEsIG1heF9zeW5fYWNrX3JldHJpZXMsIFJFQURfT05DRShxdWV1ZS1cXHUwMDNlcnNrcV9kZWZlcl9hY2NlcHQpLFxcbitcXHRzeW5fYWNrX3JlY2FsYyhyZXEsIG1heF9zeW5fYWNrX3JldHJpZXMsXFxuK1xcdFxcdCAgICAgICBtaW5fdCh1OCwgUkVBRF9PTkNFKHF1ZXVlLVxcdTAwM2Vyc2txX2RlZmVyX2FjY2VwdCksXFxuK1xcdFxcdFxcdCAgICAgTUFYX1RDUF9TWU5BQ0tfUkVUUklFUyksXFxuIFxcdFxcdCAgICAgICBcXHUwMDI2ZXhwaXJlLCBcXHUwMDI2cmVzZW5kKTtcXG4gXFx0dGNwX3N5bl9hY2tfdGltZW91dChyZXEpO1xcbiBcXG5kaWZmIC0tZ2l0IGEvbmV0L2lwdjQvdGNwX3RpbWVyLmMgYi9uZXQvaXB2NC90Y3BfdGltZXIuY1xcbmluZGV4IGJmMTcxYjVlMWViMzA2Li5iYmVkZjJiOWUxYmNlYSAxMDA2NDRcXG4tLS0gYS9uZXQvaXB2NC90Y3BfdGltZXIuY1xcbisrKyBiL25ldC9pcHY0L3RjcF90aW1lci5jXFxuQEAgLTQ2Nyw2ICs0NjcsNyBAQCBzdGF0aWMgdm9pZCB0Y3BfZmFzdG9wZW5fc3luYWNrX3RpbWVyKHN0cnVjdCBzb2NrICpzaywgc3RydWN0IHJlcXVlc3Rfc29jayAqcmVxKVxcbiBcXHQgKi9cXG4gXFx0bWF4X3JldHJpZXMgPSBSRUFEX09OQ0UoaWNzay1cXHUwMDNlaWNza19zeW5fcmV0cmllcykgPyA6XFxuIFxcdFxcdFJFQURfT05DRShzb2NrX25ldChzayktXFx1MDAzZWlwdjQuc3lzY3RsX3RjcF9zeW5hY2tfcmV0cmllcykgKyAxO1xcbitcXHRtYXhfcmV0cmllcyA9IG1pbl90KGludCwgbWF4X3JldHJpZXMsIE1BWF9UQ1BfU1lOQUNLX1JFVFJJRVMpO1xcbiBcXG4gXFx0aWYgKHJlcS1cXHUwMDNlbnVtX3RpbWVvdXQgXFx1MDAzZT0gbWF4X3JldHJpZXMpIHtcXG4gXFx0XFx0dGNwX3dyaXRlX2Vycihzayk7XFxuQEAgLTQ4OCw3ICs0ODksNyBAQCBzdGF0aWMgdm9pZCB0Y3BfZmFzdG9wZW5fc3luYWNrX3RpbWVyKHN0cnVjdCBzb2NrICpzaywgc3RydWN0IHJlcXVlc3Rfc29jayAqcmVxKVxcbiBcXHRpZiAoIXRwLVxcdTAwM2VyZXRyYW5zX3N0YW1wKVxcbiBcXHRcXHR0cC1cXHUwMDNlcmV0cmFuc19zdGFtcCA9IHRjcF90aW1lX3N0YW1wX3RzKHRwKTtcXG4gXFx0dGNwX3Jlc2V0X3htaXRfdGltZXIoc2ssIElDU0tfVElNRV9SRVRSQU5TLFxcbi1cXHRcXHRcXHQgIHJlcS1cXHUwMDNldGltZW91dCBcXHUwMDNjXFx1MDAzYyByZXEtXFx1MDAzZW51bV90aW1lb3V0LCBmYWxzZSk7XFxuK1xcdFxcdFxcdCAgICAgdGNwX3JlcXNrX3RpbWVvdXRfc2soc2ssIHJlcSksIGZhbHNlKTtcXG4gfVxcbiBcXG4gc3RhdGljIGJvb2wgdGNwX3J0eF9wcm9iZTBfdGltZWRfb3V0KGNvbnN0IHN0cnVjdCBzb2NrICpzayxcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjhUMDg6MTE6MjguNDcxNDU5MjU1WiIsIlNlcSI6MiwiTmVzdGluZyI6MSwiVHlwZSI6ImFnZW50IiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiYmVzdC1leHBlbnNpdmUiLCJEdXJhdGlvbiI6Mjk1NzA1MjI5NzcsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwicmVxc2tfdGltZXJfaGFuZGxlclwiLFxuICAgIFwidGNwX2Zhc3RvcGVuX3N5bmFja190aW1lclwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGZpeGVzIHNoaWZ0LW91dC1vZi1ib3VuZHMgYnVncyBpbiB0aGUgVENQIHN0YWNrIHdoZW4gY2FsY3VsYXRpbmcgU1lOQUNLIHRpbWVvdXRzIGJ5IGNhcHBpbmcgdGhlIG51bWJlciBvZiByZXRyaWVzIGFuZCBwcm9wZXJseSBjaGVja2luZyBmb3Igb3ZlcmZsb3cuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiBjb3JlIFRDUCBsb2dpYyB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLlxuWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmVcbmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cblxuSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluXG55b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHlcbnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuXG5cblJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6XG4tIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuXG4tIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLlxuLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuXG4tIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSxcbiAgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLlxuLSBDb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCxcbiAgaW9uaWMsIGFtZGdwdSkgdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuXG4tIERyaXZlciAucmVtb3ZlLCAuc2h1dGRvd24sIG9yIHBjaV91bnJlZ2lzdGVyX2RyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKGUuZy4sIGlnYl9yZW1vdmUpXG4gIHRoYXQgYXJlIGV4ZWN1dGVkIG9ubHkgZHVyaW5nIFBDSSBob3QtdW5wbHVnIG9yIHN5c2ZzIGRyaXZlciB1bmJpbmQgb3BlcmF0aW9ucy5cblxuSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaFxudG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuXG5cbldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOlxuMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy5cbiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLlxuICAgUHJlZmVyIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIEFQSSBlbnRyeXBvaW50IGZ1bmN0aW9ucyBvdmVyIGludGVybmFsIHN0YXRpYyBoZWxwZXIgZnVuY3Rpb25zXG4gICAod2hpY2ggYXJlIGlubGluZWQgYnkgdGhlIGNvbXBpbGVyIGFuZCBkbyBub3QgaGF2ZSBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzKS5cbjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLlxuICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLlxuICAgQWxzbyBjaGVjayBcImRlcGVuZHMgb25cIiBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3NcbiAgIG5lZWRlZCBmb3IgS2J1aWxkIHRvIGNvbXBpbGUgdGhlIGNvZGUgc3RhdGljYWxseSBpbnRvIHZtbGludXguIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlnc1xuICAgb3V0cHV0IGFycmF5LCBhbmQgRE8gTk9UIGFkZCBhICdDT05GSUdfJyBwcmVmaXggKGUuZy4sIHJldHVybiBcIk5FVF9JUFY0XCIgaW5zdGVhZCBvZiBcIkNPTkZJR19ORVRfSVBWNFwiKS5cblByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLlxuXG5cblVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuXG5JdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS5cbklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC5cbiIsIlByb21wdCI6IkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOlxuY29tbWl0IDhjOTkxZjM5YjgyNTk3YWRmMmUwZGNjZjI3MTQyNjU5N2UwZGVmYjNcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgVHVlIEp1bCAyOCAwODoxMToyNSAyMDI2ICswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmV0L3RjcC5oIGIvaW5jbHVkZS9uZXQvdGNwLmhcbmluZGV4IDZkMzc2ZWE0ZDFjMDFkLi5lZTc4NDM2Yjg5NjQ1YSAxMDA2NDRcbi0tLSBhL2luY2x1ZGUvbmV0L3RjcC5oXG4rKysgYi9pbmNsdWRlL25ldC90Y3AuaFxuQEAgLTE4Myw2ICsxODMsNyBAQCBzdGF0aWNfYXNzZXJ0KCgxIFx1MDAzY1x1MDAzYyBBVE9fQklUUykgXHUwMDNlIFRDUF9ERUxBQ0tfTUFYKTtcbiAjZGVmaW5lIE1BWF9UQ1BfS0VFUElOVFZMXHQzMjc2N1xuICNkZWZpbmUgTUFYX1RDUF9LRUVQQ05UXHRcdDEyN1xuICNkZWZpbmUgTUFYX1RDUF9TWU5DTlRcdFx0MTI3XG4rI2RlZmluZSBNQVhfVENQX1NZTkFDS19SRVRSSUVTXHQ2M1xuIFxuIC8qIEVuc3VyZSB0aGF0IFRDUCBQQVdTIGNoZWNrcyBhcmUgcmVsYXhlZCBhZnRlciB+MjE0NyBzZWNvbmRzXG4gICogdG8gYXZvaWQgb3ZlcmZsb3dzLiBUaGlzIGFzc3VtZXMgYSBjbG9jayBzbWFsbGVyIHRoYW4gMSBNaHouXG5AQCAtODgyLDEyICs4ODMsMjIgQEAgc3RhdGljIGlubGluZSB1MzIgX190Y3Bfc2V0X3J0byhjb25zdCBzdHJ1Y3QgdGNwX3NvY2sgKnRwKVxuIFx0cmV0dXJuIHVzZWNzX3RvX2ppZmZpZXMoKHRwLVx1MDAzZXNydHRfdXMgXHUwMDNlXHUwMDNlIDMpICsgdHAtXHUwMDNlcnR0dmFyX3VzKTtcbiB9XG4gXG4tc3RhdGljIGlubGluZSB1bnNpZ25lZCBsb25nIHRjcF9yZXFza190aW1lb3V0KHN0cnVjdCByZXF1ZXN0X3NvY2sgKnJlcSlcbitzdGF0aWMgaW5saW5lIHVuc2lnbmVkIGxvbmcgdGNwX3JlcXNrX3RpbWVvdXRfc2soY29uc3Qgc3RydWN0IHNvY2sgKnNrLFxuK1x0XHRcdFx0XHRcdCBzdHJ1Y3QgcmVxdWVzdF9zb2NrICpyZXEpXG4ge1xuLVx0dTY0IHRpbWVvdXQgPSAodTY0KXJlcS1cdTAwM2V0aW1lb3V0IFx1MDAzY1x1MDAzYyByZXEtXHUwMDNlbnVtX3RpbWVvdXQ7XG4rXHR1MzIgcnRvX21heCA9IHRjcF9ydG9fbWF4KHNrKTtcbitcdHU2NCB0aW1lb3V0ID0gcmVxLVx1MDAzZXRpbWVvdXQ7XG4rXG4rXHRpZiAocmVxLVx1MDAzZW51bV90aW1lb3V0IFx1MDAzZT0gQklUU19QRVJfVFlQRSh1NjQpIHx8XG4rXHQgICAgdGltZW91dCBcdTAwM2UgVTY0X01BWCBcdTAwM2VcdTAwM2UgcmVxLVx1MDAzZW51bV90aW1lb3V0KVxuK1x0XHRyZXR1cm4gcnRvX21heDtcbitcbitcdHJldHVybiAodW5zaWduZWQgbG9uZyltaW5fdCh1NjQsIHRpbWVvdXQgXHUwMDNjXHUwMDNjIHJlcS1cdTAwM2VudW1fdGltZW91dCwgcnRvX21heCk7XG4rfVxuIFxuLVx0cmV0dXJuICh1bnNpZ25lZCBsb25nKW1pbl90KHU2NCwgdGltZW91dCxcbi1cdFx0XHRcdCAgICB0Y3BfcnRvX21heChyZXEtXHUwMDNlcnNrX2xpc3RlbmVyKSk7XG4rc3RhdGljIGlubGluZSB1bnNpZ25lZCBsb25nIHRjcF9yZXFza190aW1lb3V0KHN0cnVjdCByZXF1ZXN0X3NvY2sgKnJlcSlcbit7XG4rXHRyZXR1cm4gdGNwX3JlcXNrX3RpbWVvdXRfc2socmVxLVx1MDAzZXJza19saXN0ZW5lciwgcmVxKTtcbiB9XG4gXG4gdTMyIHRjcF9kZWxhY2tfbWF4KGNvbnN0IHN0cnVjdCBzb2NrICpzayk7XG5kaWZmIC0tZ2l0IGEvbmV0L2lwdjQvaW5ldF9jb25uZWN0aW9uX3NvY2suYyBiL25ldC9pcHY0L2luZXRfY29ubmVjdGlvbl9zb2NrLmNcbmluZGV4IDU2OTAyYmJhNTQ4MzhiLi5iNzQyMTJiYWUzZGQyNSAxMDA2NDRcbi0tLSBhL25ldC9pcHY0L2luZXRfY29ubmVjdGlvbl9zb2NrLmNcbisrKyBiL25ldC9pcHY0L2luZXRfY29ubmVjdGlvbl9zb2NrLmNcbkBAIC0xMDU2LDYgKzEwNTYsOCBAQCBzdGF0aWMgdm9pZCByZXFza190aW1lcl9oYW5kbGVyKHN0cnVjdCB0aW1lcl9saXN0ICp0KVxuIFx0bmV0ID0gc29ja19uZXQoc2tfbGlzdGVuZXIpO1xuIFx0bWF4X3N5bl9hY2tfcmV0cmllcyA9IFJFQURfT05DRShpY3NrLVx1MDAzZWljc2tfc3luX3JldHJpZXMpID8gOlxuIFx0XHRSRUFEX09OQ0UobmV0LVx1MDAzZWlwdjQuc3lzY3RsX3RjcF9zeW5hY2tfcmV0cmllcyk7XG4rXHRtYXhfc3luX2Fja19yZXRyaWVzID0gbWluX3QoaW50LCBtYXhfc3luX2Fja19yZXRyaWVzLFxuK1x0XHRcdFx0ICAgIE1BWF9UQ1BfU1lOQUNLX1JFVFJJRVMpO1xuIFx0LyogTm9ybWFsbHkgYWxsIHRoZSBvcGVucmVxcyBhcmUgeW91bmcgYW5kIGJlY29tZSBtYXR1cmVcbiBcdCAqIChpLmUuIGNvbnZlcnRlZCB0byBlc3RhYmxpc2hlZCBzb2NrZXQpIGZvciBmaXJzdCB0aW1lb3V0LlxuIFx0ICogSWYgc3luYWNrIHdhcyBub3QgYWNrbm93bGVkZ2VkIGZvciAxIHNlY29uZCwgaXQgbWVhbnNcbkBAIC0xMDg2LDcgKzEwODgsOSBAQCBzdGF0aWMgdm9pZCByZXFza190aW1lcl9oYW5kbGVyKHN0cnVjdCB0aW1lcl9saXN0ICp0KVxuIFx0XHR9XG4gXHR9XG4gXG4tXHRzeW5fYWNrX3JlY2FsYyhyZXEsIG1heF9zeW5fYWNrX3JldHJpZXMsIFJFQURfT05DRShxdWV1ZS1cdTAwM2Vyc2txX2RlZmVyX2FjY2VwdCksXG4rXHRzeW5fYWNrX3JlY2FsYyhyZXEsIG1heF9zeW5fYWNrX3JldHJpZXMsXG4rXHRcdCAgICAgICBtaW5fdCh1OCwgUkVBRF9PTkNFKHF1ZXVlLVx1MDAzZXJza3FfZGVmZXJfYWNjZXB0KSxcbitcdFx0XHQgICAgIE1BWF9UQ1BfU1lOQUNLX1JFVFJJRVMpLFxuIFx0XHQgICAgICAgXHUwMDI2ZXhwaXJlLCBcdTAwMjZyZXNlbmQpO1xuIFx0dGNwX3N5bl9hY2tfdGltZW91dChyZXEpO1xuIFxuZGlmZiAtLWdpdCBhL25ldC9pcHY0L3RjcF90aW1lci5jIGIvbmV0L2lwdjQvdGNwX3RpbWVyLmNcbmluZGV4IGJmMTcxYjVlMWViMzA2Li5iYmVkZjJiOWUxYmNlYSAxMDA2NDRcbi0tLSBhL25ldC9pcHY0L3RjcF90aW1lci5jXG4rKysgYi9uZXQvaXB2NC90Y3BfdGltZXIuY1xuQEAgLTQ2Nyw2ICs0NjcsNyBAQCBzdGF0aWMgdm9pZCB0Y3BfZmFzdG9wZW5fc3luYWNrX3RpbWVyKHN0cnVjdCBzb2NrICpzaywgc3RydWN0IHJlcXVlc3Rfc29jayAqcmVxKVxuIFx0ICovXG4gXHRtYXhfcmV0cmllcyA9IFJFQURfT05DRShpY3NrLVx1MDAzZWljc2tfc3luX3JldHJpZXMpID8gOlxuIFx0XHRSRUFEX09OQ0Uoc29ja19uZXQoc2spLVx1MDAzZWlwdjQuc3lzY3RsX3RjcF9zeW5hY2tfcmV0cmllcykgKyAxO1xuK1x0bWF4X3JldHJpZXMgPSBtaW5fdChpbnQsIG1heF9yZXRyaWVzLCBNQVhfVENQX1NZTkFDS19SRVRSSUVTKTtcbiBcbiBcdGlmIChyZXEtXHUwMDNlbnVtX3RpbWVvdXQgXHUwMDNlPSBtYXhfcmV0cmllcykge1xuIFx0XHR0Y3Bfd3JpdGVfZXJyKHNrKTtcbkBAIC00ODgsNyArNDg5LDcgQEAgc3RhdGljIHZvaWQgdGNwX2Zhc3RvcGVuX3N5bmFja190aW1lcihzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCByZXF1ZXN0X3NvY2sgKnJlcSlcbiBcdGlmICghdHAtXHUwMDNlcmV0cmFuc19zdGFtcClcbiBcdFx0dHAtXHUwMDNlcmV0cmFuc19zdGFtcCA9IHRjcF90aW1lX3N0YW1wX3RzKHRwKTtcbiBcdHRjcF9yZXNldF94bWl0X3RpbWVyKHNrLCBJQ1NLX1RJTUVfUkVUUkFOUyxcbi1cdFx0XHQgIHJlcS1cdTAwM2V0aW1lb3V0IFx1MDAzY1x1MDAzYyByZXEtXHUwMDNlbnVtX3RpbWVvdXQsIGZhbHNlKTtcbitcdFx0XHQgICAgIHRjcF9yZXFza190aW1lb3V0X3NrKHNrLCByZXEpLCBmYWxzZSk7XG4gfVxuIFxuIHN0YXRpYyBib29sIHRjcF9ydHhfcHJvYmUwX3RpbWVkX291dChjb25zdCBzdHJ1Y3Qgc29jayAqc2ssXG4iLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yOFQwODoxMToyOC40NzE0NjEyMzVaIiwiU2VxIjozLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo3ODA1MDI5MjQwLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyBhIFRDUCBTdGFjayBQYXRjaCoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggdGhhdCB0d2Vha3MgdGhlIFRDUCBzdGFjaywgc3BlY2lmaWNhbGx5IHRvdWNoaW5nIGBpbmNsdWRlL25ldC90Y3AuaGAsIGBuZXQvaXB2NC9pbmV0X2Nvbm5lY3Rpb25fc29jay5jYCwgYW5kIGBuZXQvaXB2NC90Y3BfdGltZXIuY2AuIEZyb20gd2hhdCBJIGdhdGhlciwgaXQncyBpbnRyb2R1Y2luZyBhIGBNQVhfVENQX1NZTkFDS19SRVRSSUVTYCB0byBsaW1pdCB0aGUgbnVtYmVyIG9mIFNZTkFDSyByZXRyaWVzLiBUaGF0J3MgYSByZWFzb25hYmxlIHNhZmVndWFyZC4gSXQgYWxzbyBzZWVtcyB0byBhZGRyZXNzIHBvdGVudGlhbCBzaGlmdCBvdmVyZmxvd3MgaW4gYHRjcF9yZXFza190aW1lb3V0YCBhbmQgYHJlcXNrX3RpbWVyX2hhbmRsZXJgLCBnb29kIGNhdGNoLCB0aG9zZSBhcmUgbmFzdHkgYnVncy4gQW5kIGZpbmFsbHksIGl0J3MgY2FwcGluZyBgbWF4X3N5bl9hY2tfcmV0cmllc2AgYW5kIGBxdWV1ZS1cdTAwM2Vyc2txX2RlZmVyX2FjY2VwdGAgaW4gYHJlcXNrX3RpbWVyX2hhbmRsZXJgIGFuZCBgbWF4X3JldHJpZXNgIGluIGB0Y3BfZmFzdG9wZW5fc3luYWNrX3RpbWVyYC4gTWFrZXMgc2Vuc2UsIHByZXZlbnRpbmcgdW5ib3VuZGVkIHJldHJpZXMgaXMgY3J1Y2lhbCBmb3Igc3RhYmlsaXR5LlxuXG5GdW5jdGlvbmFsbHksIHRoaXMgaXMgYSBjaGFuZ2Ugd2l0aGluIHRoZSBUQ1Agc3RhY2sgaXRzZWxmLiBEZWZpbml0ZWx5IHdvcnRoIGEgZnV6emluZyBjYW1wYWlnbiB0byB2YWxpZGF0ZS4gSSB0aGluayB0aGUga2V5IGFyZWFzIHRvIGZvY3VzIG15IGZ1enppbmcgZWZmb3J0cyBzaG91bGQgYmUgb24gYHJlcXNrX3RpbWVyX2hhbmRsZXJgLCBhbmQgYHRjcF9mYXN0b3Blbl9zeW5hY2tfdGltZXJgLiBJJ2xsIGtlZXAgYW4gZXllIG9uIGB0Y3BfcmVxc2tfdGltZW91dF9za2AsIGFsdGhvdWdoIGl0J3MgaW5saW5lZCwgc28gaXQgbWlnaHQgYmUgbGVzcyBvZiBhIHRhcmdldC4gQWxzbyBgdGNwX3JlcXNrX3RpbWVvdXRgIHdoaWNoIGlzIGFsc28gaW5saW5lZC5cblxuTGV0J3MgcXVpY2tseSBjb25maXJtIHRob3NlIGFzIHNvbGlkIGZvY3VzIHN5bWJvbHMsIEknbSB0aGlua2luZyBJIHNob3VsZCBzdGFydCB3aXRoIGByZXFza190aW1lcl9oYW5kbGVyYCBiZWNhdXNlLCBhcyBhIHRpbWVyIGhhbmRsZXIsIGl0J3MgbGlrZWx5IHRvIGRlYWwgd2l0aCBhIGxvdCBvZiBzdGF0ZSBjaGFuZ2VzIGluIHRoZSBUQ1Agc3RhY2suIGB0Y3BfZmFzdG9wZW5fc3luYWNrX3RpbWVyYCBpcyBjYWxsZWQgZnJvbSBgdGNwX3JldHJhbnNtaXRfdGltZXJgLCBzbyB0aGF0J3MgYSBnb29kIGVudHJ5IHBvaW50IHRvIGV4YW1pbmUgdGhvc2UuXG5cbk5vLCB0aGlzIGxvb2tzIGxpa2Ugc3RhbmRhcmQgVENQLCBzbyBJIGRvbid0IG5lZWQgYW55IHNwZWNpYWwgY29uZmlndXJhdGlvbnMuIGBDT05GSUdfSU5FVGAgYW5kIGBDT05GSUdfVENQYCBzaG91bGQgYmUgc3VmZmljaWVudCwgd2hpY2ggaXMgYWx3YXlzIG9uIGlmIGBDT05GSUdfSU5FVGAgaXMgZW5hYmxlZC5cblxuT2theSwgbGV0J3MgcmV2aXNpdCBgdGNwX2Zhc3RvcGVuX3N5bmFja190aW1lcmAgYW5kIGByZXFza190aW1lcl9oYW5kbGVyYCBvbmUgbW9yZSB0aW1lIGJlZm9yZSBkaXZpbmcgaW4gZGVlcGVyLlxuXG5cbiIsIklucHV0VG9rZW5zIjozMjc2LCJPdXRwdXRUb2tlbnMiOjIzLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6Mzg4LCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjhUMDg6MTE6MzYuMjc2NDk0NDk1WiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjY3ODM3NDA4MDMsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwidGNwX2Zhc3RvcGVuX3N5bmFja190aW1lclwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJuZXQvaXB2NC90Y3BfaW5wdXQuYz03MDczPXN0YXRpYyB2b2lkIHRjcF9yY3Zfc3lucmVjdl9zdGF0ZV9mYXN0b3BlbihzdHJ1Y3Qgc29jayAqc2spXFxuLS1cXG5uZXQvaXB2NC90Y3BfaW5wdXQuYy03MDg1LVxcdFdSSVRFX09OQ0UoaW5ldF9jc2soc2spLVxcdTAwM2VpY3NrX3JldHJhbnNtaXRzLCAwKTtcXG5uZXQvaXB2NC90Y3BfaW5wdXQuYzo3MDg2OlxcdC8qIEluIHRjcF9mYXN0b3Blbl9zeW5hY2tfdGltZXIoKSBvbiB0aGUgZmlyc3QgU1lOQUNLIFJUTyB3ZSBzZXRcXG5uZXQvaXB2NC90Y3BfaW5wdXQuYy03MDg3LVxcdCAqIHJldHJhbnNfc3RhbXAgYnV0IGRvbid0IGVudGVyIENBX0xvc3MsIHNvIGluIGNhc2UgdGhhdCBoYXBwZW5lZCB3ZVxcbi0tXFxubmV0L2lwdjQvdGNwX3RpbWVyLmM9NDQwPXN0YXRpYyB2b2lkIHRjcF91cGRhdGVfcnRvX3N0YXRzKHN0cnVjdCBzb2NrICpzaylcXG4tLVxcbm5ldC9pcHY0L3RjcF90aW1lci5jLTQ1Ni0gKi9cXG5uZXQvaXB2NC90Y3BfdGltZXIuYzo0NTc6c3RhdGljIHZvaWQgdGNwX2Zhc3RvcGVuX3N5bmFja190aW1lcihzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCByZXF1ZXN0X3NvY2sgKnJlcSlcXG5uZXQvaXB2NC90Y3BfdGltZXIuYy00NTgte1xcbi0tXFxubmV0L2lwdjQvdGNwX3RpbWVyLmM9NTM2PXZvaWQgdGNwX3JldHJhbnNtaXRfdGltZXIoc3RydWN0IHNvY2sgKnNrKVxcbi0tXFxubmV0L2lwdjQvdGNwX3RpbWVyLmMtNTQ4LVxcdFxcdFxcdCAgICAgc2stXFx1MDAzZXNrX3N0YXRlICE9IFRDUF9GSU5fV0FJVDEpO1xcbm5ldC9pcHY0L3RjcF90aW1lci5jOjU0OTpcXHRcXHR0Y3BfZmFzdG9wZW5fc3luYWNrX3RpbWVyKHNrLCByZXEpO1xcbm5ldC9pcHY0L3RjcF90aW1lci5jLTU1MC1cXHRcXHQvKiBCZWZvcmUgd2UgcmVjZWl2ZSBBQ0sgdG8gb3VyIFNZTi1BQ0sgZG9uJ3QgcmV0cmFuc21pdFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yOFQwODoxMTo0My4wNjAyNDQ1MzhaIiwiU2VxIjo1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0MDc0Njk1NTA2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgYSBzdW1tYXJ5IG9mIG15IHRob3VnaHQgcHJvY2VzcywgYXMgcmVxdWVzdGVkOlxuXG4qKkRpdmluZyBpbnRvIHRoZSBTWU5fUkVDViBUaW1lciBIYW5kbGVyKipcblxuT2theSwgc28gSSdtIHRoaW5raW5nIGFib3V0IHJlcXVlc3Qgc29ja2V0cywgc3BlY2lmaWNhbGx5IHRob3NlIGluIHRoZSBTWU5fUkVDViBzdGF0ZS4gSSBrbm93IHRoZXJlJ3MgYSB0aW1lciBhc3NvY2lhdGVkIHdpdGggdGhpcyBzdGF0ZSwgdGhlIGByZXFza190aW1lcl9oYW5kbGVyYC4gTXkgbmV4dCBzdGVwIGlzIHRvIGRyaWxsIGRvd24gaW50byB0aGF0IGhhbmRsZXIuIEkgbmVlZCB0byB1bmRlcnN0YW5kIHdoYXQgaGFwcGVucyB3aGVuIHRoYXQgdGltZXIgZmlyZXMuIFdoYXQgYWN0aW9ucyBhcmUgdHJpZ2dlcmVkPyBXaGF0IHJlc291cmNlcyBhcmUgY2xlYW5lZCB1cCwgb3IgcGVyaGFwcyByZS10cmFuc21pdHRlZD8gVGltZSB0byBleGFtaW5lIHRoZSBjb2RlIGZvciBgcmVxc2tfdGltZXJfaGFuZGxlcmAgYW5kIGdldCBhIGRldGFpbGVkIHBpY3R1cmUgb2YgdGhlIFNZTl9SRUNWIGxpZmVjeWNsZS4gSSdtIGV4cGVjdGluZyB0byBzZWUgdGhpbmdzIHJlbGF0ZWQgdG8gY29ubmVjdGlvbiB0aW1lb3V0cyBhbmQgcmV0cmFuc21pc3Npb25zLCBuYXR1cmFsbHksIGJ1dCBpdCdzIGltcG9ydGFudCB0byB1bmRlcnN0YW5kIHRoZSBmdWxsIGNvbnRleHQuIExldCdzIHNlZSB3aGF0J3MgYWN0dWFsbHkgaW4gdGhlcmUhXG5cblxuIiwiSW5wdXRUb2tlbnMiOjQ1NjgsIk91dHB1dFRva2VucyI6MjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjozNSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yOFQwODoxMTo0Ny4xMzQ5NDI4NzRaIiwiU2VxIjo2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NTgxMzY4MDAwNiwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJyZXFza190aW1lcl9oYW5kbGVyXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIm5ldC9pcHY0L2luZXRfY29ubmVjdGlvbl9zb2NrLmM9MTAxNT12b2lkIGluZXRfY3NrX3JlcXNrX3F1ZXVlX2Ryb3BfYW5kX3B1dChzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCByZXF1ZXN0X3NvY2sgKnJlcSlcXG4tLVxcbm5ldC9pcHY0L2luZXRfY29ubmVjdGlvbl9zb2NrLmMtMTAyMC1cXG5uZXQvaXB2NC9pbmV0X2Nvbm5lY3Rpb25fc29jay5jOjEwMjE6c3RhdGljIHZvaWQgcmVxc2tfdGltZXJfaGFuZGxlcihzdHJ1Y3QgdGltZXJfbGlzdCAqdClcXG5uZXQvaXB2NC9pbmV0X2Nvbm5lY3Rpb25fc29jay5jLTEwMjIte1xcbi0tXFxubmV0L2lwdjQvaW5ldF9jb25uZWN0aW9uX3NvY2suYy0xMDQ3LVxcdFxcdHJlZmNvdW50X3NldChcXHUwMDI2bnJlcS1cXHUwMDNlcnNrX3JlZmNudCwgMiArIDEpO1xcbm5ldC9pcHY0L2luZXRfY29ubmVjdGlvbl9zb2NrLmM6MTA0ODpcXHRcXHR0aW1lcl9zZXR1cChcXHUwMDI2bnJlcS1cXHUwMDNlcnNrX3RpbWVyLCByZXFza190aW1lcl9oYW5kbGVyLCBUSU1FUl9QSU5ORUQpO1xcbm5ldC9pcHY0L2luZXRfY29ubmVjdGlvbl9zb2NrLmMtMTA0OS1cXHRcXHRyZXFza19xdWV1ZV9taWdyYXRlZChcXHUwMDI2aW5ldF9jc2sobnNrKS1cXHUwMDNlaWNza19hY2NlcHRfcXVldWUsIHJlcSk7XFxuLS1cXG5uZXQvaXB2NC9pbmV0X2Nvbm5lY3Rpb25fc29jay5jPTExNDI9c3RhdGljIGJvb2wgcmVxc2tfcXVldWVfaGFzaF9yZXEoc3RydWN0IHJlcXVlc3Rfc29jayAqcmVxKVxcbi0tXFxubmV0L2lwdjQvaW5ldF9jb25uZWN0aW9uX3NvY2suYy0xMTUwLVxcdHJlcS1cXHUwMDNldGltZW91dCA9IHRjcF90aW1lb3V0X2luaXQoKHN0cnVjdCBzb2NrICopcmVxKTtcXG5uZXQvaXB2NC9pbmV0X2Nvbm5lY3Rpb25fc29jay5jOjExNTE6XFx0dGltZXJfc2V0dXAoXFx1MDAyNnJlcS1cXHUwMDNlcnNrX3RpbWVyLCByZXFza190aW1lcl9oYW5kbGVyLCBUSU1FUl9QSU5ORUQpO1xcbm5ldC9pcHY0L2luZXRfY29ubmVjdGlvbl9zb2NrLmMtMTE1Mi1cXG4tLVxcbnRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9nX3Rlc3RzL21pZ3JhdGVfcmV1c2Vwb3J0LmM9NTQ9c3RhdGljIHN0cnVjdCBtaWdyYXRlX3JldXNlcG9ydF90ZXN0X2Nhc2Uge1xcbi0tXFxudG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dfdGVzdHMvbWlncmF0ZV9yZXVzZXBvcnQuYy04My1cXHR7XFxudG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dfdGVzdHMvbWlncmF0ZV9yZXVzZXBvcnQuYzo4NDpcXHRcXHQubmFtZSA9IFxcXCJJUHY0IFRDUF9ORVdfU1lOX1JFQ1YgcmVxc2tfdGltZXJfaGFuZGxlclxcXCIsXFxudG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dfdGVzdHMvbWlncmF0ZV9yZXVzZXBvcnQuYy04NS1cXHRcXHQuZmFtaWx5ID0gQUZfSU5FVCxcXG4tLVxcbnRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9nX3Rlc3RzL21pZ3JhdGVfcmV1c2Vwb3J0LmMtMTE1LVxcdHtcXG50b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ190ZXN0cy9taWdyYXRlX3JldXNlcG9ydC5jOjExNjpcXHRcXHQubmFtZSA9IFxcXCJJUHY2IFRDUF9ORVdfU1lOX1JFQ1YgcmVxc2tfdGltZXJfaGFuZGxlclxcXCIsXFxudG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dfdGVzdHMvbWlncmF0ZV9yZXVzZXBvcnQuYy0xMTctXFx0XFx0LmZhbWlseSA9IEFGX0lORVQ2LFxcbi0tXFxudG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dfdGVzdHMvbWlncmF0ZV9yZXVzZXBvcnQuYz00OTE9c3RhdGljIHZvaWQgcnVuX3Rlc3Qoc3RydWN0IG1pZ3JhdGVfcmV1c2Vwb3J0X3Rlc3RfY2FzZSAqdGVzdF9jYXNlLFxcbi0tXFxudG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dfdGVzdHMvbWlncmF0ZV9yZXVzZXBvcnQuYy01NDctXFx0XFx0LyogV2FpdCBmb3IgU1lOK0FDSyB0aW1lcnMgdG8gZXhwaXJlIHNvIHRoYXRcXG50b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ190ZXN0cy9taWdyYXRlX3JldXNlcG9ydC5jOjU0ODpcXHRcXHQgKiByZXFza190aW1lcl9oYW5kbGVyKCkgbWlncmF0ZXMgVENQX05FV19TWU5fUkVDViByZXF1ZXN0cy5cXG50b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ190ZXN0cy9taWdyYXRlX3JldXNlcG9ydC5jLTU0OS1cXHRcXHQgKi9cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjhUMDg6MTE6NTIuOTQ4NjMyMzZaIiwiU2VxIjo3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo1MDkzMjkzODgyLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyBhIFRDUCBTdGFjayBQYXRjaCoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggZm9yIHRoZSBUQ1Agc3RhY2sgYW5kIGltbWVkaWF0ZWx5LCBJIHNlZSBpdCdzIGRlYWxpbmcgd2l0aCBhIHBvdGVudGlhbCBpbnRlZ2VyIG92ZXJmbG93IGxlYWRpbmcgdG8gYW4gb3V0LW9mLWJvdW5kcyBzaGlmdC4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlLCBzcGVjaWZpY2FsbHkgaW4gdGhlIHJlYWxtIG9mIGhvdyB3ZSBoYW5kbGUgYHJlcS1cdTAwM2VudW1fdGltZW91dGAgYW5kIGBtYXhfc3luX2Fja19yZXRyaWVzYCB3aGVuIGEgbGFyZ2UgdmFsdWUgaXMgaW52b2x2ZWQuIFRoZSBmaXggaW52b2x2ZXMgY2FwcGluZyB0aGVzZSB2YWx1ZXMsIHdoaWNoIHNvdW5kcyBsaWtlIGEgc2Vuc2libGUgcHJlY2F1dGlvbi5cblxuVGhlIGZhY3QgdGhhdCBpdCdzIG1hcmtlZCBhcyBcIldvcnRoIGZ1enppbmc6IFRydWVcIiBpcyBpbXBvcnRhbnQ7IGl0IHN1Z2dlc3RzIHRoYXQgdGhpcyBpcyBhIGNyaXRpY2FsIHNwb3QgdG8gdGhyb3cgYSB2YXJpZXR5IG9mIGlucHV0cyBhdCB0byBtYWtlIHN1cmUgdGhlIGZpeCBpcyBjb21wbGV0ZSBhbmQgZG9lc24ndCBpbnRyb2R1Y2UgYW55IG5ldyB2dWxuZXJhYmlsaXRpZXMuIE15IGZvY3VzIHdpbGwgYmUgdGhlIGByZXFza190aW1lcl9oYW5kbGVyYCBhbmQgYHRjcF9mYXN0b3Blbl9zeW5hY2tfdGltZXJgIHN5bWJvbHMgc3BlY2lmaWNhbGx5LiBJIG5lZWQgdG8gZGl2ZSBpbnRvIHRob3NlIGNvZGUgcGF0aHMuXG5cbkxldCdzIHNlZSwgd2hhdCBhYm91dCBjb25maWd1cmF0aW9ucz8gSXQgZG9lc24ndCBsb29rIGxpa2Ugd2UgbmVlZCB0byBlbmFibGUgYW55dGhpbmcgdW51c3VhbCwganVzdCBzdGFuZGFyZCBUQ1AsIHdoaWNoIGlzIGdvb2QuIEkgbmVlZCB0byB2ZXJpZnksIG9mIGNvdXJzZSwgdGhhdCB0aG9zZSBjb25maWd1cmF0aW9ucyBhcmUgc3RhbmRhcmQuXG5cbkl0IGxvb2tzIGxpa2UgVENQIEZhc3QgT3BlbiBtaWdodCBiZSBlbmFibGVkIGJ5IGRlZmF1bHQuIE5vdywgdGhhdCBtYXkgYmUgYSBjb25zaWRlcmF0aW9uIGluIHRoZSBjb250ZXh0IG9mIHRoaXMgcGF0Y2guIEknbGwgbmVlZCB0byByZW1lbWJlciB0aGF0LiBBbmQsIG9mIGNvdXJzZSwgYENPTkZJR19UQ1BfQ09OR19DVUJJQ2AgaXMgdGhlIGRlZmF1bHQgY29uZ2VzdGlvbiBjb250cm9sLCB3aGljaCBpcyB0aGUgYmFzZWxpbmUsIGFuZCBgQ09ORklHX0lORVRgIGlzIHN0YW5kYXJkLlxuXG5BbHJpZ2h0LCBJJ3ZlIGdvdCBhIHNvbGlkIHBpY3R1cmUgaGVyZS4gVGltZSB0byBzZXQgdXAgbXkgdGVzdCBlbnZpcm9ubWVudCBhbmQgZ2V0IHRvIHdvcmsgb24gdmVyaWZpY2F0aW9uIGFuZCBmdXJ0aGVyIGFuYWx5c2lzLlxuXG5cbiIsIklucHV0VG9rZW5zIjo1NjM2LCJPdXRwdXRUb2tlbnMiOjEwMCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE0NywiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yOFQwODoxMTo1OC4wNDE5Mjk2MzJaIiwiU2VxIjo4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjUwNjQwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwicmVxc2tfdGltZXJfaGFuZGxlclwiLFxuICAgIFwidGNwX2Zhc3RvcGVuX3N5bmFja190aW1lclwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGZpeGVzIHNoaWZ0LW91dC1vZi1ib3VuZHMgYnVncyBpbiB0aGUgVENQIHN0YWNrIHdoZW4gY2FsY3VsYXRpbmcgU1lOQUNLIHRpbWVvdXRzIGJ5IGNhcHBpbmcgdGhlIG51bWJlciBvZiByZXRyaWVzIGFuZCBwcm9wZXJseSBjaGVja2luZyBmb3Igb3ZlcmZsb3cuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiBjb3JlIFRDUCBsb2dpYyB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwicmVxc2tfdGltZXJfaGFuZGxlclwiLFxuICAgIFwidGNwX2Zhc3RvcGVuX3N5bmFja190aW1lclwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGZpeGVzIHNoaWZ0LW91dC1vZi1ib3VuZHMgYnVncyBpbiB0aGUgVENQIHN0YWNrIHdoZW4gY2FsY3VsYXRpbmcgU1lOQUNLIHRpbWVvdXRzIGJ5IGNhcHBpbmcgdGhlIG51bWJlciBvZiByZXRyaWVzIGFuZCBwcm9wZXJseSBjaGVja2luZyBmb3Igb3ZlcmZsb3cuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiBjb3JlIFRDUCBsb2dpYyB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/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-workflowqv8zv[1] Phase: Succeeded StartedAt: 2026-07-28 08:12:10 +0000 UTC FinishedAt: 2026-07-28 08:12:10 +0000 UTC Input: nil Output: nil --------- Name: series-workflowqv8zv[1].abort-on-skip-outcome Phase: Skipped StartedAt: 2026-07-28 08:12:10 +0000 UTC FinishedAt: 2026-07-28 08:12:10 +0000 UTC Input: nil Output: nil --------- Name: series-workflowqv8zv[2] Phase: Succeeded StartedAt: 2026-07-28 08:12:10 +0000 UTC FinishedAt: 2026-07-28 12:54:03 +0000 UTC Input: nil Output: nil --------- Name: series-workflowqv8zv[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["reqsk_timer_handler","tcp_fastopen_synack_timer"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","series_id":"9f6bd817-66d0-48b7-8bcd-a52a0222e8b0","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN) Phase: Succeeded StartedAt: 2026-07-28 08:12:10 +0000 UTC FinishedAt: 2026-07-28 12:54:03 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:element,Default:nil,Value:*{"base":{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},"fuzz":{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["reqsk_timer_handler","tcp_fastopen_synack_timer"],"skip_cover_check":false},"patched":{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","series_id":"9f6bd817-66d0-48b7-8bcd-a52a0222e8b0","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},"retest":null,"track":"KASAN"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: nil --------- Name: series-workflowqv8zv[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["reqsk_timer_handler","tcp_fastopen_synack_timer"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","series_id":"9f6bd817-66d0-48b7-8bcd-a52a0222e8b0","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[0] Phase: Succeeded StartedAt: 2026-07-28 08:12:10 +0000 UTC FinishedAt: 2026-07-28 08:13:02 +0000 UTC Input: nil Output: nil --------- Name: series-workflowqv8zv[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["reqsk_timer_handler","tcp_fastopen_synack_timer"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","series_id":"9f6bd817-66d0-48b7-8bcd-a52a0222e8b0","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[0].save-base-req Phase: Succeeded StartedAt: 2026-07-28 08:12:10 +0000 UTC FinishedAt: 2026-07-28 08:12:48 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{Artifact{Name:artifact,Path:/tmp/artifact,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowqv8zv/series-workflowqv8zv-convert-artifact-2526866996/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowqv8zv[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["reqsk_timer_handler","tcp_fastopen_synack_timer"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","series_id":"9f6bd817-66d0-48b7-8bcd-a52a0222e8b0","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[1] Phase: Succeeded StartedAt: 2026-07-28 08:13:02 +0000 UTC FinishedAt: 2026-07-28 09:01:29 +0000 UTC Input: nil Output: nil --------- Name: series-workflowqv8zv[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["reqsk_timer_handler","tcp_fastopen_synack_timer"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","series_id":"9f6bd817-66d0-48b7-8bcd-a52a0222e8b0","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[1].base-build Phase: Succeeded StartedAt: 2026-07-28 08:13:03 +0000 UTC FinishedAt: 2026-07-28 09:01:29 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:findings,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:test-name,Default:nil,Value:*[KASAN] Build Base,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:smoke-build,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:session-id,Default:nil,Value:*90404d0a-5f03-4d23-8e70-1e93375dff5b,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{Artifact{Name:request,Path:/tmp/request.json,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowqv8zv/series-workflowqv8zv-convert-artifact-2526866996/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "build_id": "dcf167d4-8ec5-41c8-aa1d-9dd5fa183245", "success": true },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:*,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{Artifact{Name:kernel,Path:/output,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowqv8zv/series-workflowqv8zv-build-action-4076905522/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowqv8zv[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["reqsk_timer_handler","tcp_fastopen_synack_timer"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","series_id":"9f6bd817-66d0-48b7-8bcd-a52a0222e8b0","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[1].base-build(0) Phase: Succeeded StartedAt: 2026-07-28 08:13:03 +0000 UTC FinishedAt: 2026-07-28 09:01:19 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:findings,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:test-name,Default:nil,Value:*[KASAN] Build Base,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:smoke-build,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:session-id,Default:nil,Value:*90404d0a-5f03-4d23-8e70-1e93375dff5b,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{Artifact{Name:request,Path:/tmp/request.json,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowqv8zv/series-workflowqv8zv-convert-artifact-2526866996/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "build_id": "dcf167d4-8ec5-41c8-aa1d-9dd5fa183245", "success": true },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:*,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{Artifact{Name:kernel,Path:/output,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowqv8zv/series-workflowqv8zv-build-action-4076905522/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowqv8zv[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["reqsk_timer_handler","tcp_fastopen_synack_timer"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","series_id":"9f6bd817-66d0-48b7-8bcd-a52a0222e8b0","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[2] Phase: Succeeded StartedAt: 2026-07-28 09:01:29 +0000 UTC FinishedAt: 2026-07-28 09:01:29 +0000 UTC Input: nil Output: nil --------- Name: series-workflowqv8zv[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["reqsk_timer_handler","tcp_fastopen_synack_timer"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","series_id":"9f6bd817-66d0-48b7-8bcd-a52a0222e8b0","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[2].abort-if-base-build-failed Phase: Skipped StartedAt: 2026-07-28 09:01:29 +0000 UTC FinishedAt: 2026-07-28 09:01:29 +0000 UTC Input: nil Output: nil --------- Name: series-workflowqv8zv[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["reqsk_timer_handler","tcp_fastopen_synack_timer"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","series_id":"9f6bd817-66d0-48b7-8bcd-a52a0222e8b0","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[3] Phase: Succeeded StartedAt: 2026-07-28 09:01:29 +0000 UTC FinishedAt: 2026-07-28 09:01:39 +0000 UTC Input: nil Output: nil --------- Name: series-workflowqv8zv[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["reqsk_timer_handler","tcp_fastopen_synack_timer"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","series_id":"9f6bd817-66d0-48b7-8bcd-a52a0222e8b0","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[3].save-patched-req Phase: Succeeded StartedAt: 2026-07-28 09:01:29 +0000 UTC FinishedAt: 2026-07-28 09:01:35 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","series_id":"9f6bd817-66d0-48b7-8bcd-a52a0222e8b0","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{Artifact{Name:artifact,Path:/tmp/artifact,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowqv8zv/series-workflowqv8zv-convert-artifact-422834163/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowqv8zv[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["reqsk_timer_handler","tcp_fastopen_synack_timer"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","series_id":"9f6bd817-66d0-48b7-8bcd-a52a0222e8b0","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[4] Phase: Succeeded StartedAt: 2026-07-28 09:01:39 +0000 UTC FinishedAt: 2026-07-28 09:03:46 +0000 UTC Input: nil Output: nil --------- Name: series-workflowqv8zv[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["reqsk_timer_handler","tcp_fastopen_synack_timer"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","series_id":"9f6bd817-66d0-48b7-8bcd-a52a0222e8b0","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[4].boot-test-base Phase: Succeeded StartedAt: 2026-07-28 09:01:39 +0000 UTC FinishedAt: 2026-07-28 09:03:36 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*dcf167d4-8ec5-41c8-aa1d-9dd5fa183245,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:test-name,Default:nil,Value:*[KASAN] Boot test: Base,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:report-findings,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{Artifact{Name:kernel,Path:/base,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowqv8zv/series-workflowqv8zv-build-action-4076905522/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "success": true },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-workflowqv8zv[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["reqsk_timer_handler","tcp_fastopen_synack_timer"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","series_id":"9f6bd817-66d0-48b7-8bcd-a52a0222e8b0","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[5] Phase: Succeeded StartedAt: 2026-07-28 09:03:46 +0000 UTC FinishedAt: 2026-07-28 09:03:46 +0000 UTC Input: nil Output: nil --------- Name: series-workflowqv8zv[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["reqsk_timer_handler","tcp_fastopen_synack_timer"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","series_id":"9f6bd817-66d0-48b7-8bcd-a52a0222e8b0","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[5].abort-if-base-boot-failed Phase: Skipped StartedAt: 2026-07-28 09:03:46 +0000 UTC FinishedAt: 2026-07-28 09:03:46 +0000 UTC Input: nil Output: nil --------- Name: series-workflowqv8zv[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["reqsk_timer_handler","tcp_fastopen_synack_timer"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","series_id":"9f6bd817-66d0-48b7-8bcd-a52a0222e8b0","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[6] Phase: Succeeded StartedAt: 2026-07-28 09:03:46 +0000 UTC FinishedAt: 2026-07-28 09:48:40 +0000 UTC Input: nil Output: nil --------- Name: series-workflowqv8zv[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["reqsk_timer_handler","tcp_fastopen_synack_timer"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","series_id":"9f6bd817-66d0-48b7-8bcd-a52a0222e8b0","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[6].patched-build Phase: Succeeded StartedAt: 2026-07-28 09:03:46 +0000 UTC FinishedAt: 2026-07-28 09:48:40 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:findings,Default:nil,Value:*true,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:test-name,Default:nil,Value:*[KASAN] Build Patched,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:smoke-build,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:session-id,Default:nil,Value:*90404d0a-5f03-4d23-8e70-1e93375dff5b,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{Artifact{Name:request,Path:/tmp/request.json,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowqv8zv/series-workflowqv8zv-convert-artifact-422834163/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "build_id": "53bf2439-1e3c-4926-9046-5c13f89f0029", "success": true },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:*,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{Artifact{Name:kernel,Path:/output,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowqv8zv/series-workflowqv8zv-build-action-2119870375/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowqv8zv[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["reqsk_timer_handler","tcp_fastopen_synack_timer"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","series_id":"9f6bd817-66d0-48b7-8bcd-a52a0222e8b0","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[6].patched-build(0) Phase: Succeeded StartedAt: 2026-07-28 09:03:46 +0000 UTC FinishedAt: 2026-07-28 09:48:30 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:findings,Default:nil,Value:*true,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:test-name,Default:nil,Value:*[KASAN] Build Patched,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:smoke-build,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:session-id,Default:nil,Value:*90404d0a-5f03-4d23-8e70-1e93375dff5b,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{Artifact{Name:request,Path:/tmp/request.json,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowqv8zv/series-workflowqv8zv-convert-artifact-422834163/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "build_id": "53bf2439-1e3c-4926-9046-5c13f89f0029", "success": true },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:*,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{Artifact{Name:kernel,Path:/output,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowqv8zv/series-workflowqv8zv-build-action-2119870375/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowqv8zv[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["reqsk_timer_handler","tcp_fastopen_synack_timer"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","series_id":"9f6bd817-66d0-48b7-8bcd-a52a0222e8b0","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[7] Phase: Succeeded StartedAt: 2026-07-28 09:48:40 +0000 UTC FinishedAt: 2026-07-28 09:48:40 +0000 UTC Input: nil Output: nil --------- Name: series-workflowqv8zv[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["reqsk_timer_handler","tcp_fastopen_synack_timer"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","series_id":"9f6bd817-66d0-48b7-8bcd-a52a0222e8b0","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[7].abort-if-patched-build-failed Phase: Skipped StartedAt: 2026-07-28 09:48:40 +0000 UTC FinishedAt: 2026-07-28 09:48:40 +0000 UTC Input: nil Output: nil --------- Name: series-workflowqv8zv[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["reqsk_timer_handler","tcp_fastopen_synack_timer"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","series_id":"9f6bd817-66d0-48b7-8bcd-a52a0222e8b0","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[8] Phase: Succeeded StartedAt: 2026-07-28 09:48:40 +0000 UTC FinishedAt: 2026-07-28 09:50:54 +0000 UTC Input: nil Output: nil --------- Name: series-workflowqv8zv[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["reqsk_timer_handler","tcp_fastopen_synack_timer"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","series_id":"9f6bd817-66d0-48b7-8bcd-a52a0222e8b0","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[8].boot-test-patched Phase: Succeeded StartedAt: 2026-07-28 09:48:40 +0000 UTC FinishedAt: 2026-07-28 09:50:44 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*53bf2439-1e3c-4926-9046-5c13f89f0029,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:test-name,Default:nil,Value:*[KASAN] Boot test: Patched,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:report-findings,Default:nil,Value:*true,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{Artifact{Name:kernel,Path:/base,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowqv8zv/series-workflowqv8zv-build-action-2119870375/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "success": true },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-workflowqv8zv[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["reqsk_timer_handler","tcp_fastopen_synack_timer"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","series_id":"9f6bd817-66d0-48b7-8bcd-a52a0222e8b0","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[10] Phase: Succeeded StartedAt: 2026-07-28 09:50:54 +0000 UTC FinishedAt: 2026-07-28 12:54:03 +0000 UTC Input: nil Output: nil --------- Name: series-workflowqv8zv[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["reqsk_timer_handler","tcp_fastopen_synack_timer"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","series_id":"9f6bd817-66d0-48b7-8bcd-a52a0222e8b0","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[10].run-fuzz Phase: Succeeded StartedAt: 2026-07-28 09:50:54 +0000 UTC FinishedAt: 2026-07-28 12:54:03 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:config,Default:nil,Value:*{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["reqsk_timer_handler","tcp_fastopen_synack_timer"],"skip_cover_check":false},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:track,Default:nil,Value:*KASAN,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:base-build-id,Default:nil,Value:*dcf167d4-8ec5-41c8-aa1d-9dd5fa183245,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*53bf2439-1e3c-4926-9046-5c13f89f0029,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{Artifact{Name:base-kernel,Path:,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowqv8zv/series-workflowqv8zv-build-action-4076905522/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},Artifact{Name:patched-kernel,Path:,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowqv8zv/series-workflowqv8zv-build-action-2119870375/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: nil --------- Name: series-workflowqv8zv[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["reqsk_timer_handler","tcp_fastopen_synack_timer"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","series_id":"9f6bd817-66d0-48b7-8bcd-a52a0222e8b0","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[10].run-fuzz[0] Phase: Succeeded StartedAt: 2026-07-28 09:50:54 +0000 UTC FinishedAt: 2026-07-28 09:51:14 +0000 UTC Input: nil Output: nil --------- Name: series-workflowqv8zv[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["reqsk_timer_handler","tcp_fastopen_synack_timer"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","series_id":"9f6bd817-66d0-48b7-8bcd-a52a0222e8b0","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[10].run-fuzz[0].save-fuzz-config Phase: Succeeded StartedAt: 2026-07-28 09:50:54 +0000 UTC FinishedAt: 2026-07-28 09:51:10 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["reqsk_timer_handler","tcp_fastopen_synack_timer"],"skip_cover_check":false},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{Artifact{Name:artifact,Path:/tmp/artifact,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowqv8zv/series-workflowqv8zv-convert-artifact-3520707308/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowqv8zv[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["reqsk_timer_handler","tcp_fastopen_synack_timer"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","series_id":"9f6bd817-66d0-48b7-8bcd-a52a0222e8b0","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[10].run-retest Phase: Skipped StartedAt: 2026-07-28 09:50:54 +0000 UTC FinishedAt: 2026-07-28 09:50:54 +0000 UTC Input: nil Output: nil --------- Name: series-workflowqv8zv[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["reqsk_timer_handler","tcp_fastopen_synack_timer"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","series_id":"9f6bd817-66d0-48b7-8bcd-a52a0222e8b0","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[9] Phase: Succeeded StartedAt: 2026-07-28 09:50:54 +0000 UTC FinishedAt: 2026-07-28 09:50:54 +0000 UTC Input: nil Output: nil --------- Name: series-workflowqv8zv[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["reqsk_timer_handler","tcp_fastopen_synack_timer"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","series_id":"9f6bd817-66d0-48b7-8bcd-a52a0222e8b0","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[9].abort-if-patched-boot-failed Phase: Skipped StartedAt: 2026-07-28 09:50:54 +0000 UTC FinishedAt: 2026-07-28 09:50:54 +0000 UTC Input: nil Output: nil --------- Name: series-workflowqv8zv[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["reqsk_timer_handler","tcp_fastopen_synack_timer"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","series_id":"9f6bd817-66d0-48b7-8bcd-a52a0222e8b0","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[10].run-fuzz[1] Phase: Succeeded StartedAt: 2026-07-28 09:51:14 +0000 UTC FinishedAt: 2026-07-28 12:54:03 +0000 UTC Input: nil Output: nil --------- Name: series-workflowqv8zv[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["reqsk_timer_handler","tcp_fastopen_synack_timer"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","series_id":"9f6bd817-66d0-48b7-8bcd-a52a0222e8b0","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[10].run-fuzz[1].fuzz Phase: Succeeded StartedAt: 2026-07-28 09:51:14 +0000 UTC FinishedAt: 2026-07-28 12:53:54 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*dcf167d4-8ec5-41c8-aa1d-9dd5fa183245,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*53bf2439-1e3c-4926-9046-5c13f89f0029,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:test-name,Default:nil,Value:*[KASAN] Fuzz,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{Artifact{Name:base-kernel,Path:/base,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowqv8zv/series-workflowqv8zv-build-action-4076905522/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},Artifact{Name:patched-kernel,Path:/patched,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowqv8zv/series-workflowqv8zv-build-action-2119870375/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},Artifact{Name:config,Path:/tmp/config.json,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowqv8zv/series-workflowqv8zv-convert-artifact-3520707308/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,}