Name: series-workflowhhkcd Phase: Succeeded StartedAt: 2026-07-27 00:09:04 +0000 UTC FinishedAt: 2026-07-27 05:32:38 +0000 UTC Input: nil Output: nil --------- Name: series-workflowhhkcd[0] Phase: Succeeded StartedAt: 2026-07-27 00:09:04 +0000 UTC FinishedAt: 2026-07-27 00:50:51 +0000 UTC Input: nil Output: nil --------- Name: series-workflowhhkcd[0].run-triage Phase: Succeeded StartedAt: 2026-07-27 00:09:04 +0000 UTC FinishedAt: 2026-07-27 00:50:51 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "net", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git", "commit_hash": "39e88f28fb32bf02bd4b525c24c842c9cff5663d", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "X25" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "net", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git", "commit_hash": "39e88f28fb32bf02bd4b525c24c842c9cff5663d", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "X25" ], "series_id": "990cd1a2-558b-4bce-a0cc-6efb77d10e65" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [ "x25_start_heartbeat", "x25_stop_heartbeat", "x25_start_t2timer", "x25_start_t21timer", "x25_start_t22timer", "x25_start_t23timer", "x25_stop_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+CgkJCTx0ZD4yMDI2LzA3LzI3IDAwOjUwPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O1gyNSYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O3gyNV9zdGFydF9oZWFydGJlYXQmIzM0OywKICAgICYjMzQ7eDI1X3N0b3BfaGVhcnRiZWF0JiMzNDssCiAgICAmIzM0O3gyNV9zdGFydF90MnRpbWVyJiMzNDssCiAgICAmIzM0O3gyNV9zdGFydF90MjF0aW1lciYjMzQ7LAogICAgJiMzNDt4MjVfc3RhcnRfdDIydGltZXImIzM0OywKICAgICYjMzQ7eDI1X3N0YXJ0X3QyM3RpbWVyJiMzNDssCiAgICAmIzM0O3gyNV9zdG9wX3RpbWVyJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGZpeGVzIHRpbWVyIGhhbmRsaW5nIGFuZCBzb2NrZXQgcmVmY291bnRpbmcgaW4gdGhlIFguMjUgcHJvdG9jb2wgaW1wbGVtZW50YXRpb24uIEl0IHJlcGxhY2VzIG1vZF90aW1lciB3aXRoIHNrX3Jlc2V0X3RpbWVyIGFuZCBhZGRzIHNvY2tfcHV0IHRvIHRpbWVyIGNhbGxiYWNrcyB0byBwcmV2ZW50IHVzZS1hZnRlci1mcmVlIG9yIG1lbW9yeSBsZWFrcy4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIG5ldHdvcmsgcHJvdG9jb2wgbG9naWMgdGhhdCBzaG91bGQgYmUgZnV6emVkLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI3IDAwOjUwPC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5yZWFkLXBhdGNoLWRpZmY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtQYXRjaERpZmYmIzM0OzogJiMzNDtjb21taXQgYTc0MjYxYzQ0M2U0YWY0MmNhOTViZjUyYThiMjdkN2U2MjVlYWVhNVxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBNb24gSnVsIDI3IDAwOjUwOjA1IDIwMjYgJiM0MzswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL25ldC94MjUvYWZfeDI1LmMgYi9uZXQveDI1L2FmX3gyNS5jXG5pbmRleCBjMzFkMmFmNWRkMjIzMy4uNWYyZmVlNGRhODUzMDQgMTAwNjQ0XG4tLS0gYS9uZXQveDI1L2FmX3gyNS5jXG4mIzQzOyYjNDM7JiM0MzsgYi9uZXQveDI1L2FmX3gyNS5jXG5AQCAtMzYzLDYgJiM0MzszNjMsNyBAQCBzdGF0aWMgdm9pZCB4MjVfZGVzdHJveV90aW1lcihzdHJ1Y3QgdGltZXJfbGlzdCAqdClcbiBcdHN0cnVjdCBzb2NrICpzayA9IHRpbWVyX2NvbnRhaW5lcl9vZihzaywgdCwgc2tfdGltZXIpO1xuIFxuIFx0eDI1X2Rlc3Ryb3lfc29ja2V0X2Zyb21fdGltZXIoc2spO1xuJiM0MztcdHNvY2tfcHV0KHNrKTtcbiB9XG4gXG4gLypcbkBAIC0zOTgsOSAmIzQzOzM5OSw4IEBAIHN0YXRpYyB2b2lkIF9feDI1X2Rlc3Ryb3lfc29ja2V0KHN0cnVjdCBzb2NrICpzaylcbiBcbiBcdGlmIChza19oYXNfYWxsb2NhdGlvbnMoc2spKSB7XG4gXHRcdC8qIERlZmVyOiBvdXRzdGFuZGluZyBidWZmZXJzICovXG4tXHRcdHNrLVx1MDAzZXNrX3RpbWVyLmV4cGlyZXMgID0gamlmZmllcyAmIzQzOyAxMCAqIEhaO1xuIFx0XHRzay1cdTAwM2Vza190aW1lci5mdW5jdGlvbiA9IHgyNV9kZXN0cm95X3RpbWVyO1xuLVx0XHRhZGRfdGltZXIoXHUwMDI2c2stXHUwMDNlc2tfdGltZXIpO1xuJiM0MztcdFx0c2tfcmVzZXRfdGltZXIoc2ssIFx1MDAyNnNrLVx1MDAzZXNrX3RpbWVyLCBqaWZmaWVzICYjNDM7IDEwICogSFopO1xuIFx0fSBlbHNlIHtcbiBcdFx0LyogZHJvcCBsYXN0IHJlZmVyZW5jZSBzbyBzb2NrX3B1dCB3aWxsIGZyZWUgKi9cbiBcdFx0X19zb2NrX3B1dChzayk7XG5kaWZmIC0tZ2l0IGEvbmV0L3gyNS94MjVfdGltZXIuYyBiL25ldC94MjUveDI1X3RpbWVyLmNcbmluZGV4IDJlYzYzYTFmNGM2ZDQyLi43ODk2Y2Q0M2YxY2MxZSAxMDA2NDRcbi0tLSBhL25ldC94MjUveDI1X3RpbWVyLmNcbiYjNDM7JiM0MzsmIzQzOyBiL25ldC94MjUveDI1X3RpbWVyLmNcbkBAIC0zNiw0NSAmIzQzOzM2LDQ1IEBAIHZvaWQgeDI1X2luaXRfdGltZXJzKHN0cnVjdCBzb2NrICpzaylcbiBcbiB2b2lkIHgyNV9zdGFydF9oZWFydGJlYXQoc3RydWN0IHNvY2sgKnNrKVxuIHtcbi1cdG1vZF90aW1lcihcdTAwMjZzay1cdTAwM2Vza190aW1lciwgamlmZmllcyAmIzQzOyA1ICogSFopO1xuJiM0MztcdHNrX3Jlc2V0X3RpbWVyKHNrLCBcdTAwMjZzay1cdTAwM2Vza190aW1lciwgamlmZmllcyAmIzQzOyA1ICogSFopO1xuIH1cbiBcbiB2b2lkIHgyNV9zdG9wX2hlYXJ0YmVhdChzdHJ1Y3Qgc29jayAqc2spXG4ge1xuLVx0dGltZXJfZGVsZXRlKFx1MDAyNnNrLVx1MDAzZXNrX3RpbWVyKTtcbiYjNDM7XHRza19zdG9wX3RpbWVyKHNrLCBcdTAwMjZzay1cdTAwM2Vza190aW1lcik7XG4gfVxuIFxuIHZvaWQgeDI1X3N0YXJ0X3QydGltZXIoc3RydWN0IHNvY2sgKnNrKVxuIHtcbiBcdHN0cnVjdCB4MjVfc29jayAqeDI1ID0geDI1X3NrKHNrKTtcbiBcbi1cdG1vZF90aW1lcihcdTAwMjZ4MjUtXHUwMDNldGltZXIsIGppZmZpZXMgJiM0MzsgeDI1LVx1MDAzZXQyKTtcbiYjNDM7XHRza19yZXNldF90aW1lcihzaywgXHUwMDI2eDI1LVx1MDAzZXRpbWVyLCBqaWZmaWVzICYjNDM7IHgyNS1cdTAwM2V0Mik7XG4gfVxuIFxuIHZvaWQgeDI1X3N0YXJ0X3QyMXRpbWVyKHN0cnVjdCBzb2NrICpzaylcbiB7XG4gXHRzdHJ1Y3QgeDI1X3NvY2sgKngyNSA9IHgyNV9zayhzayk7XG4gXG4tXHRtb2RfdGltZXIoXHUwMDI2eDI1LVx1MDAzZXRpbWVyLCBqaWZmaWVzICYjNDM7IHgyNS1cdTAwM2V0MjEpO1xuJiM0MztcdHNrX3Jlc2V0X3RpbWVyKHNrLCBcdTAwMjZ4MjUtXHUwMDNldGltZXIsIGppZmZpZXMgJiM0MzsgeDI1LVx1MDAzZXQyMSk7XG4gfVxuIFxuIHZvaWQgeDI1X3N0YXJ0X3QyMnRpbWVyKHN0cnVjdCBzb2NrICpzaylcbiB7XG4gXHRzdHJ1Y3QgeDI1X3NvY2sgKngyNSA9IHgyNV9zayhzayk7XG4gXG4tXHRtb2RfdGltZXIoXHUwMDI2eDI1LVx1MDAzZXRpbWVyLCBqaWZmaWVzICYjNDM7IHgyNS1cdTAwM2V0MjIpO1xuJiM0MztcdHNrX3Jlc2V0X3RpbWVyKHNrLCBcdTAwMjZ4MjUtXHUwMDNldGltZXIsIGppZmZpZXMgJiM0MzsgeDI1LVx1MDAzZXQyMik7XG4gfVxuIFxuIHZvaWQgeDI1X3N0YXJ0X3QyM3RpbWVyKHN0cnVjdCBzb2NrICpzaylcbiB7XG4gXHRzdHJ1Y3QgeDI1X3NvY2sgKngyNSA9IHgyNV9zayhzayk7XG4gXG4tXHRtb2RfdGltZXIoXHUwMDI2eDI1LVx1MDAzZXRpbWVyLCBqaWZmaWVzICYjNDM7IHgyNS1cdTAwM2V0MjMpO1xuJiM0MztcdHNrX3Jlc2V0X3RpbWVyKHNrLCBcdTAwMjZ4MjUtXHUwMDNldGltZXIsIGppZmZpZXMgJiM0MzsgeDI1LVx1MDAzZXQyMyk7XG4gfVxuIFxuIHZvaWQgeDI1X3N0b3BfdGltZXIoc3RydWN0IHNvY2sgKnNrKVxuIHtcbi1cdHRpbWVyX2RlbGV0ZShcdTAwMjZ4MjVfc2soc2spLVx1MDAzZXRpbWVyKTtcbiYjNDM7XHRza19zdG9wX3RpbWVyKHNrLCBcdTAwMjZ4MjVfc2soc2spLVx1MDAzZXRpbWVyKTtcbiB9XG4gXG4gdW5zaWduZWQgbG9uZyB4MjVfZGlzcGxheV90aW1lcihzdHJ1Y3Qgc29jayAqc2spXG5AQCAtMTA4LDcgJiM0MzsxMDgsNyBAQCBzdGF0aWMgdm9pZCB4MjVfaGVhcnRiZWF0X2V4cGlyeShzdHJ1Y3QgdGltZXJfbGlzdCAqdClcbiBcdFx0XHQgICAgIHNvY2tfZmxhZyhzaywgU09DS19ERUFEKSkpIHtcbiBcdFx0XHRcdGJoX3VubG9ja19zb2NrKHNrKTtcbiBcdFx0XHRcdHgyNV9kZXN0cm95X3NvY2tldF9mcm9tX3RpbWVyKHNrKTtcbi1cdFx0XHRcdHJldHVybjtcbiYjNDM7XHRcdFx0XHRnb3RvIG91dDtcbiBcdFx0XHR9XG4gXHRcdFx0YnJlYWs7XG4gXG5AQCAtMTIwLDggJiM0MzsxMjAsMTQgQEAgc3RhdGljIHZvaWQgeDI1X2hlYXJ0YmVhdF9leHBpcnkoc3RydWN0IHRpbWVyX2xpc3QgKnQpXG4gXHRcdFx0YnJlYWs7XG4gXHR9XG4gcmVzdGFydF9oZWFydGJlYXQ6XG4tXHR4MjVfc3RhcnRfaGVhcnRiZWF0KHNrKTtcbiYjNDM7XHQvKiBEbyBub3QgcmVhcm0gb25jZSBfX3gyNV9kZXN0cm95X3NvY2tldCgpIGhhcyB1bmxpbmtlZCB0aGUgc29ja2V0OlxuJiM0MztcdCAqIGl0IGlzIHBhc3QgaXRzIGNhbmNlbCBwb2ludCBhbmQgb3ducyB0aGUgdGVhcmRvd24gZnJvbSB0aGVyZSBvbi5cbiYjNDM7XHQgKi9cbiYjNDM7XHRpZiAoc2tfaGFzaGVkKHNrKSlcbiYjNDM7XHRcdHgyNV9zdGFydF9oZWFydGJlYXQoc2spO1xuIFx0YmhfdW5sb2NrX3NvY2soc2spO1xuJiM0MztvdXQ6XG4mIzQzO1x0c29ja19wdXQoc2spO1xuIH1cbiBcbiAvKlxuQEAgLTE2Niw0ICYjNDM7MTcyLDUgQEAgc3RhdGljIHZvaWQgeDI1X3RpbWVyX2V4cGlyeShzdHJ1Y3QgdGltZXJfbGlzdCAqdClcbiBcdH0gZWxzZVxuIFx0XHR4MjVfZG9fdGltZXJfZXhwaXJ5KHNrKTtcbiBcdGJoX3VubG9ja19zb2NrKHNrKTtcbiYjNDM7XHRzb2NrX3B1dChzayk7XG4gfVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI3IDAwOjUwPC90ZD4KCQkJPHRkPmFnZW50PC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmJlc3QtZXhwZW5zaXZlPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtYMjUmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDt4MjVfc3RhcnRfaGVhcnRiZWF0JiMzNDssCiAgICAmIzM0O3gyNV9zdG9wX2hlYXJ0YmVhdCYjMzQ7LAogICAgJiMzNDt4MjVfc3RhcnRfdDJ0aW1lciYjMzQ7LAogICAgJiMzNDt4MjVfc3RhcnRfdDIxdGltZXImIzM0OywKICAgICYjMzQ7eDI1X3N0YXJ0X3QyMnRpbWVyJiMzNDssCiAgICAmIzM0O3gyNV9zdGFydF90MjN0aW1lciYjMzQ7LAogICAgJiMzNDt4MjVfc3RvcF90aW1lciYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBmaXhlcyB0aW1lciBoYW5kbGluZyBhbmQgc29ja2V0IHJlZmNvdW50aW5nIGluIHRoZSBYLjI1IHByb3RvY29sIGltcGxlbWVudGF0aW9uLiBJdCByZXBsYWNlcyBtb2RfdGltZXIgd2l0aCBza19yZXNldF90aW1lciBhbmQgYWRkcyBzb2NrX3B1dCB0byB0aW1lciBjYWxsYmFja3MgdG8gcHJldmVudCB1c2UtYWZ0ZXItZnJlZSBvciBtZW1vcnkgbGVha3MuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiBuZXR3b3JrIHByb3RvY29sIGxvZ2ljIHRoYXQgc2hvdWxkIGJlIGZ1enplZC4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkluc3RydWN0aW9uOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+WW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuCllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lCmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC4KCklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpbgp5b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHkKdXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy4KClJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6Ci0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy4KLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy4KLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuCi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLAogIGV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS4KLSBDb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCwKICBpb25pYywgYW1kZ3B1KSB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS4KLSBEcml2ZXIgLnJlbW92ZSwgLnNodXRkb3duLCBvciBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzIChlLmcuLCBpZ2JfcmVtb3ZlKQogIHRoYXQgYXJlIGV4ZWN1dGVkIG9ubHkgZHVyaW5nIFBDSSBob3QtdW5wbHVnIG9yIHN5c2ZzIGRyaXZlciB1bmJpbmQgb3BlcmF0aW9ucy4KCklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2gKdG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuCgpXaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzoKMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy4KICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuCiAgIFByZWZlciBub24tc3RhdGljLCBub24taW5saW5lZCBBUEkgZW50cnlwb2ludCBmdW5jdGlvbnMgb3ZlciBpbnRlcm5hbCBzdGF0aWMgaGVscGVyIGZ1bmN0aW9ucwogICAod2hpY2ggYXJlIGlubGluZWQgYnkgdGhlIGNvbXBpbGVyIGFuZCBkbyBub3QgaGF2ZSBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzKS4KMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuCiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy4KICAgQWxzbyBjaGVjayAmIzM0O2RlcGVuZHMgb24mIzM0OyBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3MKICAgbmVlZGVkIGZvciBLYnVpbGQgdG8gY29tcGlsZSB0aGUgY29kZSBzdGF0aWNhbGx5IGludG8gdm1saW51eC4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzCiAgIG91dHB1dCBhcnJheSwgYW5kIERPIE5PVCBhZGQgYSAmIzM5O0NPTkZJR18mIzM5OyBwcmVmaXggKGUuZy4sIHJldHVybiAmIzM0O05FVF9JUFY0JiMzNDsgaW5zdGVhZCBvZiAmIzM0O0NPTkZJR19ORVRfSVBWNCYjMzQ7KS4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IGE3NDI2MWM0NDNlNGFmNDJjYTk1YmY1MmE4YjI3ZDdlNjI1ZWFlYTUKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgTW9uIEp1bCAyNyAwMDo1MDowNSAyMDI2ICYjNDM7MDAwMAoKICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldwoKZGlmZiAtLWdpdCBhL25ldC94MjUvYWZfeDI1LmMgYi9uZXQveDI1L2FmX3gyNS5jCmluZGV4IGMzMWQyYWY1ZGQyMjMzLi41ZjJmZWU0ZGE4NTMwNCAxMDA2NDQKLS0tIGEvbmV0L3gyNS9hZl94MjUuYwomIzQzOyYjNDM7JiM0MzsgYi9uZXQveDI1L2FmX3gyNS5jCkBAIC0zNjMsNiAmIzQzOzM2Myw3IEBAIHN0YXRpYyB2b2lkIHgyNV9kZXN0cm95X3RpbWVyKHN0cnVjdCB0aW1lcl9saXN0ICp0KQogCXN0cnVjdCBzb2NrICpzayA9IHRpbWVyX2NvbnRhaW5lcl9vZihzaywgdCwgc2tfdGltZXIpOwogCiAJeDI1X2Rlc3Ryb3lfc29ja2V0X2Zyb21fdGltZXIoc2spOwomIzQzOwlzb2NrX3B1dChzayk7CiB9CiAKIC8qCkBAIC0zOTgsOSAmIzQzOzM5OSw4IEBAIHN0YXRpYyB2b2lkIF9feDI1X2Rlc3Ryb3lfc29ja2V0KHN0cnVjdCBzb2NrICpzaykKIAogCWlmIChza19oYXNfYWxsb2NhdGlvbnMoc2spKSB7CiAJCS8qIERlZmVyOiBvdXRzdGFuZGluZyBidWZmZXJzICovCi0JCXNrLSZndDtza190aW1lci5leHBpcmVzICA9IGppZmZpZXMgJiM0MzsgMTAgKiBIWjsKIAkJc2stJmd0O3NrX3RpbWVyLmZ1bmN0aW9uID0geDI1X2Rlc3Ryb3lfdGltZXI7Ci0JCWFkZF90aW1lcigmYW1wO3NrLSZndDtza190aW1lcik7CiYjNDM7CQlza19yZXNldF90aW1lcihzaywgJmFtcDtzay0mZ3Q7c2tfdGltZXIsIGppZmZpZXMgJiM0MzsgMTAgKiBIWik7CiAJfSBlbHNlIHsKIAkJLyogZHJvcCBsYXN0IHJlZmVyZW5jZSBzbyBzb2NrX3B1dCB3aWxsIGZyZWUgKi8KIAkJX19zb2NrX3B1dChzayk7CmRpZmYgLS1naXQgYS9uZXQveDI1L3gyNV90aW1lci5jIGIvbmV0L3gyNS94MjVfdGltZXIuYwppbmRleCAyZWM2M2ExZjRjNmQ0Mi4uNzg5NmNkNDNmMWNjMWUgMTAwNjQ0Ci0tLSBhL25ldC94MjUveDI1X3RpbWVyLmMKJiM0MzsmIzQzOyYjNDM7IGIvbmV0L3gyNS94MjVfdGltZXIuYwpAQCAtMzYsNDUgJiM0MzszNiw0NSBAQCB2b2lkIHgyNV9pbml0X3RpbWVycyhzdHJ1Y3Qgc29jayAqc2spCiAKIHZvaWQgeDI1X3N0YXJ0X2hlYXJ0YmVhdChzdHJ1Y3Qgc29jayAqc2spCiB7Ci0JbW9kX3RpbWVyKCZhbXA7c2stJmd0O3NrX3RpbWVyLCBqaWZmaWVzICYjNDM7IDUgKiBIWik7CiYjNDM7CXNrX3Jlc2V0X3RpbWVyKHNrLCAmYW1wO3NrLSZndDtza190aW1lciwgamlmZmllcyAmIzQzOyA1ICogSFopOwogfQogCiB2b2lkIHgyNV9zdG9wX2hlYXJ0YmVhdChzdHJ1Y3Qgc29jayAqc2spCiB7Ci0JdGltZXJfZGVsZXRlKCZhbXA7c2stJmd0O3NrX3RpbWVyKTsKJiM0MzsJc2tfc3RvcF90aW1lcihzaywgJmFtcDtzay0mZ3Q7c2tfdGltZXIpOwogfQogCiB2b2lkIHgyNV9zdGFydF90MnRpbWVyKHN0cnVjdCBzb2NrICpzaykKIHsKIAlzdHJ1Y3QgeDI1X3NvY2sgKngyNSA9IHgyNV9zayhzayk7CiAKLQltb2RfdGltZXIoJmFtcDt4MjUtJmd0O3RpbWVyLCBqaWZmaWVzICYjNDM7IHgyNS0mZ3Q7dDIpOwomIzQzOwlza19yZXNldF90aW1lcihzaywgJmFtcDt4MjUtJmd0O3RpbWVyLCBqaWZmaWVzICYjNDM7IHgyNS0mZ3Q7dDIpOwogfQogCiB2b2lkIHgyNV9zdGFydF90MjF0aW1lcihzdHJ1Y3Qgc29jayAqc2spCiB7CiAJc3RydWN0IHgyNV9zb2NrICp4MjUgPSB4MjVfc2soc2spOwogCi0JbW9kX3RpbWVyKCZhbXA7eDI1LSZndDt0aW1lciwgamlmZmllcyAmIzQzOyB4MjUtJmd0O3QyMSk7CiYjNDM7CXNrX3Jlc2V0X3RpbWVyKHNrLCAmYW1wO3gyNS0mZ3Q7dGltZXIsIGppZmZpZXMgJiM0MzsgeDI1LSZndDt0MjEpOwogfQogCiB2b2lkIHgyNV9zdGFydF90MjJ0aW1lcihzdHJ1Y3Qgc29jayAqc2spCiB7CiAJc3RydWN0IHgyNV9zb2NrICp4MjUgPSB4MjVfc2soc2spOwogCi0JbW9kX3RpbWVyKCZhbXA7eDI1LSZndDt0aW1lciwgamlmZmllcyAmIzQzOyB4MjUtJmd0O3QyMik7CiYjNDM7CXNrX3Jlc2V0X3RpbWVyKHNrLCAmYW1wO3gyNS0mZ3Q7dGltZXIsIGppZmZpZXMgJiM0MzsgeDI1LSZndDt0MjIpOwogfQogCiB2b2lkIHgyNV9zdGFydF90MjN0aW1lcihzdHJ1Y3Qgc29jayAqc2spCiB7CiAJc3RydWN0IHgyNV9zb2NrICp4MjUgPSB4MjVfc2soc2spOwogCi0JbW9kX3RpbWVyKCZhbXA7eDI1LSZndDt0aW1lciwgamlmZmllcyAmIzQzOyB4MjUtJmd0O3QyMyk7CiYjNDM7CXNrX3Jlc2V0X3RpbWVyKHNrLCAmYW1wO3gyNS0mZ3Q7dGltZXIsIGppZmZpZXMgJiM0MzsgeDI1LSZndDt0MjMpOwogfQogCiB2b2lkIHgyNV9zdG9wX3RpbWVyKHN0cnVjdCBzb2NrICpzaykKIHsKLQl0aW1lcl9kZWxldGUoJmFtcDt4MjVfc2soc2spLSZndDt0aW1lcik7CiYjNDM7CXNrX3N0b3BfdGltZXIoc2ssICZhbXA7eDI1X3NrKHNrKS0mZ3Q7dGltZXIpOwogfQogCiB1bnNpZ25lZCBsb25nIHgyNV9kaXNwbGF5X3RpbWVyKHN0cnVjdCBzb2NrICpzaykKQEAgLTEwOCw3ICYjNDM7MTA4LDcgQEAgc3RhdGljIHZvaWQgeDI1X2hlYXJ0YmVhdF9leHBpcnkoc3RydWN0IHRpbWVyX2xpc3QgKnQpCiAJCQkgICAgIHNvY2tfZmxhZyhzaywgU09DS19ERUFEKSkpIHsKIAkJCQliaF91bmxvY2tfc29jayhzayk7CiAJCQkJeDI1X2Rlc3Ryb3lfc29ja2V0X2Zyb21fdGltZXIoc2spOwotCQkJCXJldHVybjsKJiM0MzsJCQkJZ290byBvdXQ7CiAJCQl9CiAJCQlicmVhazsKIApAQCAtMTIwLDggJiM0MzsxMjAsMTQgQEAgc3RhdGljIHZvaWQgeDI1X2hlYXJ0YmVhdF9leHBpcnkoc3RydWN0IHRpbWVyX2xpc3QgKnQpCiAJCQlicmVhazsKIAl9CiByZXN0YXJ0X2hlYXJ0YmVhdDoKLQl4MjVfc3RhcnRfaGVhcnRiZWF0KHNrKTsKJiM0MzsJLyogRG8gbm90IHJlYXJtIG9uY2UgX194MjVfZGVzdHJveV9zb2NrZXQoKSBoYXMgdW5saW5rZWQgdGhlIHNvY2tldDoKJiM0MzsJICogaXQgaXMgcGFzdCBpdHMgY2FuY2VsIHBvaW50IGFuZCBvd25zIHRoZSB0ZWFyZG93biBmcm9tIHRoZXJlIG9uLgomIzQzOwkgKi8KJiM0MzsJaWYgKHNrX2hhc2hlZChzaykpCiYjNDM7CQl4MjVfc3RhcnRfaGVhcnRiZWF0KHNrKTsKIAliaF91bmxvY2tfc29jayhzayk7CiYjNDM7b3V0OgomIzQzOwlzb2NrX3B1dChzayk7CiB9CiAKIC8qCkBAIC0xNjYsNCAmIzQzOzE3Miw1IEBAIHN0YXRpYyB2b2lkIHgyNV90aW1lcl9leHBpcnkoc3RydWN0IHRpbWVyX2xpc3QgKnQpCiAJfSBlbHNlCiAJCXgyNV9kb190aW1lcl9leHBpcnkoc2spOwogCWJoX3VubG9ja19zb2NrKHNrKTsKJiM0MzsJc29ja19wdXQoc2spOwogfQo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNyAwMDo1MDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzMjgyCgkJCQkJCQlvdXRwdXQ6IDMyCgkJCQkJCQl0aG91Z2h0czogMTU5CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKlguMjUgU29ja2V0IFRpbWVyIFJlZmFjdG9yaW5nIC0gTXkgTWVudGFsIENoZWNrbGlzdCoqCgpPa2F5LCBzbyBJJiMzOTt2ZSBnb3QgdGhpcyBwYXRjaCDigJMgbG9va3MgbGlrZSBpdCYjMzk7cyBhIGNyaXRpY2FsIGZpeCwgdG91Y2hpbmcgYG5ldC94MjUvYWZfeDI1LmNgIGFuZCBgbmV0L3gyNS94MjVfdGltZXIuY2AuIEludGVyZXN0aW5nLiBUaGUgY29yZSBvZiB0aGlzIHNlZW1zIHRvIGJlIGEgc2lnbmlmaWNhbnQgcmVmYWN0b3Jpbmcgb2YgdGhlIHRpbWVyIGhhbmRsaW5nIHdpdGhpbiB0aGUgWC4yNSBzb2NrZXQgaW1wbGVtZW50YXRpb24uIFJlcGxhY2luZyBgbW9kX3RpbWVyYCB3aXRoIGBza19yZXNldF90aW1lcmAsIGB0aW1lcl9kZWxldGVgIHdpdGggYHNrX3N0b3BfdGltZXJgLCBhbmQgYWRkaW5nIGBzb2NrX3B1dChzaylgIGluIHRoZSB0aW1lciBjYWxsYmFja3PigKYgdGhhdCBzY3JlYW1zIHJlZmNvdW50aW5nIGFuZCByZXNvdXJjZSBtYW5hZ2VtZW50IGltcHJvdmVtZW50cy4gVGhpcyBpcyBnb29kOyBhZGRyZXNzaW5nIHBvdGVudGlhbCB0aW1lci1yZWxhdGVkIGJ1Z3MgaW4gYSBwcm90b2NvbCBsaWtlIFguMjUgaXMgaW1wb3J0YW50IGZvciBzdGFiaWxpdHkuCgpOb3csIGJlZm9yZSBJIGRpZyBkZWVwZXIgaW50byB0aGUgY29kZSBjaGFuZ2VzIHRoZW1zZWx2ZXMsIEkgbmVlZCB0byBnZXQgYSBoYW5kbGUgb24gdGhlIGJpZ2dlciBwaWN0dXJlLiBJIHNob3VsZCBmaWd1cmUgb3V0IHRoZSByZWxldmFudCBjb25maWd1cmF0aW9uIG9wdGlvbiBmb3IgWC4yNSB0byB1bmRlcnN0YW5kIGlmIGl0IGlzIGVuYWJsZWQuIE15IGdvLXRvIGhlcmUgaXMgdG8gdXNlIGBncmVwcGVyYC4gSSYjMzk7bGwgcnVuIGBncmVwcGVyYCBhbmQgc2VhcmNoIGZvciBzb21ldGhpbmcgbGlrZSBgWDI1YCB3aXRoaW4gYG5ldC94MjUvS2NvbmZpZ2Agb3IgZXZlbiB0aGUgYnJvYWRlciBgbmV0L0tjb25maWdgIGZpbGVzLiBUaGF0IHNob3VsZCBwb2ludCBtZSB0byB0aGUgY29ycmVjdCBjb25maWd1cmF0aW9uIG9wdGlvbiwgb3Igb3B0aW9ucywgdG8gdmVyaWZ5IHRoaXMgZmVhdHVyZS4gS25vd2luZyB0aGUgY29uZmlnIG9wdGlvbnMgd2lsbCBwdXQgdGhpcyBjaGFuZ2UgaW50byBjb250ZXh0LiBUaGF0IHdpbGwgaGVscCBtZSB0byBkZXRlcm1pbmUgaG93IGltcG9ydGFudCB0aGlzIGZpeCBpcyBhbmQgd2hhdCB0aGUgaW1wYWN0IG9mIGVuYWJsaW5nIG9yIGRpc2FibGluZyBYLjI1IG1pZ2h0IGJlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI3IDAwOjUwPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2NvbmZpZyBYMjUmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtuZXQveDI1L0tjb25maWcmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7bmV0L3gyNS9LY29uZmlnLTUtXG5uZXQveDI1L0tjb25maWc6Njpjb25maWcgWDI1XG5uZXQveDI1L0tjb25maWctNy1cdHRyaXN0YXRlIFwmIzM0O0NDSVRUIFguMjUgUGFja2V0IExheWVyXCYjMzQ7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjcgMDA6NTA8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzg1NwoJCQkJCQkJb3V0cHV0OiA0MgoJCQkJCQkJdGhvdWdodHM6IDc3MwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipYLjI1IFRpbWVyIE1hbmFnZW1lbnQgQW5hbHlzaXMqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgYFgyNWAgY29uZmlndXJhdGlvbiBvcHRpb24sIHNwZWNpZmljYWxseSBmb2N1c2luZyBvbiBpdHMgdGltZXIgaW1wbGVtZW50YXRpb25zLiBMZXQmIzM5O3Mgc2VlLi4uIEkmIzM5O3ZlIHplcm9lZCBpbiBvbiBgbmV0L3gyNS9hZl94MjUuY2AgYW5kIGBuZXQveDI1L3gyNV90aW1lci5jYCB0byBpZGVudGlmeSB0aGUga2V5IGZ1bmN0aW9ucy4gTXkgaW5pdGlhbCBzY2FuIGhhcyB0dXJuZWQgdXAgYSBoYW5kZnVsIG9mIG1vZGlmaWVkIGZ1bmN0aW9ucywgYWxsIG9mIHdoaWNoIHNlZW0gaW50aW1hdGVseSB0aWVkIHRvIFguMjUgdGltZXJzOiBgeDI1X2Rlc3Ryb3lfdGltZXJgLCBgX194MjVfZGVzdHJveV9zb2NrZXRgLCBgeDI1X3N0YXJ0X2hlYXJ0YmVhdGAsIGB4MjVfc3RvcF9oZWFydGJlYXRgLCBgeDI1X3N0YXJ0X3QydGltZXJgLCBgeDI1X3N0YXJ0X3QyMXRpbWVyYCwgYHgyNV9zdGFydF90MjJ0aW1lcmAsIGB4MjVfc3RhcnRfdDIzdGltZXJgLCBgeDI1X3N0b3BfdGltZXJgLCBgeDI1X2hlYXJ0YmVhdF9leHBpcnlgLCBhbmQgYHgyNV90aW1lcl9leHBpcnlgLgoKRXNzZW50aWFsbHksIEkmIzM5O3ZlIGdvdCB0aW1lciBjYWxsYmFja3MgLSBgeDI1X2Rlc3Ryb3lfdGltZXJgLCBgeDI1X2hlYXJ0YmVhdF9leHBpcnlgLCBhbmQgYHgyNV90aW1lcl9leHBpcnlgIC0gYW5kLCBhIHNvY2tldCB0ZWFyZG93biBmdW5jdGlvbiwgYF9feDI1X2Rlc3Ryb3lfc29ja2V0YCwgYW5kIHRoZW4gdGhlIGNvcmUgdGltZXIgbWFuYWdlbWVudCBmdW5jdGlvbnM6IGB4MjVfc3RhcnRfaGVhcnRiZWF0YCwgYHgyNV9zdG9wX2hlYXJ0YmVhdGAsIGFuZCBhbGwgdGhlIGB4MjVfc3RhcnRfdFh0aW1lcmAgYW5kIGB4MjVfc3RvcF90aW1lcmAgZnVuY3Rpb25zLgoKSSBuZWVkIHRvIGtlZXAgaW4gbWluZCwgdGhlcmUgaXMgYWxzbyBgeDI1X2Rlc3Ryb3lfc29ja2V0X2Zyb21fdGltZXJgIHdoaWNoIGlzIGNhbGxlZC4KCkFscmlnaHQsIGEgbW9yZSBmb2N1c2VkIGxpc3Qgb2YgdGhlIG1vZGlmaWVkIGZ1bmN0aW9uczogYF9feDI1X2Rlc3Ryb3lfc29ja2V0YCwgYHgyNV9zdGFydF9oZWFydGJlYXRgLCBgeDI1X3N0b3BfaGVhcnRiZWF0YCwgYHgyNV9zdGFydF90MnRpbWVyYCwgYHgyNV9zdGFydF90MjF0aW1lcmAsIGB4MjVfc3RhcnRfdDIydGltZXJgLCBgeDI1X3N0YXJ0X3QyM3RpbWVyYCwgYW5kIGB4MjVfc3RvcF90aW1lcmAuCgpIb2xkIG9uLCBzb21ldGhpbmcmIzM5O3MgbmFnZ2luZyBtZS4gVGltZXIgY2FsbGJhY2tzLi4uIHRob3NlIGFyZSB1c3VhbGx5IGV4ZWN1dGVkIGFzeW5jaHJvbm91c2x5LCBidXQgdGhleSYjMzk7cmUgKnN0YXRpYyogaW4gdGhpcyBjYXNlOiBgeDI1X2hlYXJ0YmVhdF9leHBpcnlgLCBgeDI1X3RpbWVyX2V4cGlyeWAsIGFuZCBgeDI1X2Rlc3Ryb3lfdGltZXJgLiBJIHNob3VsZCBjb25maXJtIHRoYXQgcXVpY2tseS4gQWggeWVzLCB0aGV5IGFyZSwgaW4gZmFjdCwgZGVjbGFyZWQgYXMgc3RhdGljLgoKU28sIHRoZSBub24tc3RhdGljIG9uZXMgYXJlIGB4MjVfc3RhcnRfaGVhcnRiZWF0YCwgYHgyNV9zdG9wX2hlYXJ0YmVhdGAsIGB4MjVfc3RhcnRfdDJ0aW1lcmAsIGB4MjVfc3RhcnRfdDIxdGltZXJgLCBgeDI1X3N0YXJ0X3QyMnRpbWVyYCwgYHgyNV9zdGFydF90MjN0aW1lcmAsIGFuZCBgeDI1X3N0b3BfdGltZXJgLgoKV2FpdCBhIG1pbnV0ZSwgYF9feDI1X2Rlc3Ryb3lfc29ja2V0YCBpcyBzdGF0aWMgdG9vISBJIGtuZXcgdGhhdCB3YXMgZmlzaHkuIExldCBtZSBqdXN0IGRvdWJsZS1jaGVjayB0aGF0IGluIGBuZXQveDI1L2FmX3gyNS5jYCB0byBtYWtlIGFic29sdXRlbHkgc3VyZS4gWXVwLCBjb25maXJtZWQ6IGBzdGF0aWMgdm9pZCBfX3gyNV9kZXN0cm95X3NvY2tldChzdHJ1Y3Qgc29jayAqc2spYC4gVGltZSB0byBwaXZvdCB0byBgbmV0L3gyNS94MjVfdGltZXIuY2AgdG8gcm91bmQgb3V0IHRoZSBwaWN0dXJlIG9uIHRoZSBub24tc3RhdGljIGZ1bmN0aW9ucy4uLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI3IDAwOjUwPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3ZvaWQgeDI1X3N0YXJ0X2hlYXJ0YmVhdCYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O25ldC94MjUveDI1X3RpbWVyLmMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7bmV0L3gyNS94MjVfdGltZXIuYz0yNz12b2lkIHgyNV9pbml0X3RpbWVycyhzdHJ1Y3Qgc29jayAqc2spXG4tLVxubmV0L3gyNS94MjVfdGltZXIuYy0zNi1cbm5ldC94MjUveDI1X3RpbWVyLmM6Mzc6dm9pZCB4MjVfc3RhcnRfaGVhcnRiZWF0KHN0cnVjdCBzb2NrICpzaylcbm5ldC94MjUveDI1X3RpbWVyLmMtMzgte1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI3IDAwOjUwPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDU1MjEKCQkJCQkJCW91dHB1dDogMzAKCQkJCQkJCXRob3VnaHRzOiA0MjQKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqTXkgQW5hbHlzaXMgb2YgdGhlIFguMjUgVGltZXIgYW5kIFNvY2tldCBSZWZjb3VudGluZyBQYXRjaCoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCBhbmQgY29uZmlybWluZyB0aGF0IGl0IGRlYWxzIHdpdGggbm9uLXN0YXRpYyBmdW5jdGlvbnMuIFJpZ2h0IGF3YXksIEkgc2VlIHRoZSBjb3JlIGZ1bmN0aW9ucyBpbnZvbHZlZDogYHgyNV9zdGFydF9oZWFydGJlYXRgLCBgeDI1X3N0b3BfaGVhcnRiZWF0YCwgYHgyNV9zdGFydF90MnRpbWVyYCwgYHgyNV9zdGFydF90MjF0aW1lcmAsIGB4MjVfc3RhcnRfdDIydGltZXJgLCBgeDI1X3N0YXJ0X3QyM3RpbWVyYCwgYW5kIGB4MjVfc3RvcF90aW1lcmAuIFRoZXNlIGFyZSB0aGUgb25lcyB3aGVyZSB0aW1lciBtYW5hZ2VtZW50IGlzIGJlaW5nIG1vZGlmaWVkLCBzbyB0aGV5IGFyZSBjcml0aWNhbC4KCkkgbmVlZCB0byBxdWlja2x5IHNjYW4gdG8gc2VlIHdoaWNoIG90aGVyIGVudHJ5IHBvaW50cyB0cmlnZ2VyIHRoZXNlIHRpbWVyIGZ1bmN0aW9ucy4gTGV0JiMzOTtzIHNlZS4uLiBsb29raW5nIGF0IHRoZSBjb2RlLCBJIHNlZSB0aGF0IGZ1bmN0aW9ucyBzdWNoIGFzIGB4MjVfY29ubmVjdGAsIGB4MjVfcmVsZWFzZWAsIGB4MjVfc2VuZG1zZ2AsIGB4MjVfcmVjdm1zZ2AsIG1pZ2h0IGJlIHJlbGV2YW50LiBCZXN0IHRvIGdldCBhIGZ1bGwgbGlzdCBvZiBtb2RpZmllZCwgbm9uLXN0YXRpYyBmdW5jdGlvbnMgdGhvdWdoLgoKQWhhISBgeDI1X3N0YXJ0X2hlYXJ0YmVhdGAgaXMgY2FsbGVkIGZyb20gYm90aCBgeDI1X2luaXRfdGltZXJzYCBhbmQgYHgyNV9oZWFydGJlYXRfZXhwaXJ5YC4gTm93LCBgeDI1X2luaXRfdGltZXJzYCBpcyBzcGVjaWZpY2FsbHkgY2FsbGVkIGZyb20gYHgyNV9jcmVhdGVgLCB3aGljaCBpcyB3aGVyZSB0aGluZ3MgZ2V0IGludGVyZXN0aW5nLiBTaW5jZSBgeDI1X2NyZWF0ZWAgaGFuZGxlcyBzb2NrZXQgY3JlYXRpb24sIGZ1enppbmcgdGhlIGNyZWF0aW9uIG9mIFguMjUgc29ja2V0cyBhbmQgb3RoZXIgc29ja2V0IG9wZXJhdGlvbnMgd291bGQgYmUgdGhlIHBlcmZlY3Qgd2F5IHRvIHRlc3QgdGhlc2UgdGltZXIgZnVuY3Rpb25hbGl0aWVzLgoKU28sIEkmIzM5O2xsIGZvY3VzIG15IGZ1enppbmcgZWZmb3J0cyBvbjoKCmB4MjVfc3RhcnRfaGVhcnRiZWF0YApgeDI1X3N0b3BfaGVhcnRiZWF0YApgeDI1X3N0YXJ0X3QydGltZXJgCmB4MjVfc3RhcnRfdDIxdGltZXJgCmB4MjVfc3RhcnRfdDIydGltZXJgCmB4MjVfc3RhcnRfdDIzdGltZXJgCmB4MjVfc3RvcF90aW1lcmAKClRoZSBjb25maWd1cmF0aW9uIEkmIzM5O20gdXNpbmcgaXMgYFgyNWAuCgpUaGlzIHBhdGNoIGlzIGFsbCBhYm91dCBmaXhpbmcgdGltZXIgaGFuZGxpbmcgYW5kIHNvY2tldCByZWZjb3VudGluZyB3aXRoaW4gdGhlIFguMjUgcHJvdG9jb2wgaW1wbGVtZW50YXRpb24uIEl0JiMzOTtzIHN1YnN0aXR1dGluZyBgbW9kX3RpbWVyYCB3aXRoIGBza19yZXNldF90aW1lcmAgYW5kIGFkZGluZyBgc29ja19wdXRgIGNhbGxzIGluIHRpbWVyIGNhbGxiYWNrcy4gVGhpcyB3aWxsIHByZXZlbnQgdXNlLWFmdGVyLWZyZWUgY29uZGl0aW9ucyBhbmQgbWVtb3J5IGxlYWtzLiBUaGUgY2hhbmdlcyBhcmUgZnVuZGFtZW50YWwgdG8gdGhlIG5ldHdvcmsgcHJvdG9jb2wmIzM5O3Mgb3BlcmF0aW9uLCBzbyB0aGV5JiMzOTtyZSBwcmltZSB0YXJnZXRzIGZvciBmdXp6aW5nLgoKSSBzaG91bGQgYWxzbyBkb3VibGUtY2hlY2sgcXVpY2tseSB0byBzZWUgaWYgYFgyNWAgaXRzZWxmIGRlcGVuZHMgb24gYW55dGhpbmcgZWxzZS4gVGhhdCBjb3VsZCBvcGVuIHVwIG1vcmUgYXR0YWNrIHN1cmZhY2VzLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI3IDAwOjUwPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5FcnJvcjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm5vIG1hdGNoZXM8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7ZGVwZW5kcyBvbiYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O25ldC94MjUvS2NvbmZpZyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtlcnJvciYjMzQ7OiAmIzM0O25vIG1hdGNoZXMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjcgMDA6NTA8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNjU0MgoJCQkJCQkJb3V0cHV0OiAzNAoJCQkJCQkJdGhvdWdodHM6IDE0CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBsZXQmIzM5O3MgZGl2ZSBpbnRvIHRoaXMuIEhlcmUmIzM5O3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgYXMgaWYgdGhleSYjMzk7cmUgbXkgb3duOgoKKipBbmFseXppbmcgdGhlIEtjb25maWcgZm9yIG5ldC94MjUqKgoKQWxyaWdodCwgdGltZSB0byBnZXQgaW50byB0aGUgZGV0YWlscy4gSSBzZWUgd2UmIzM5O3JlIGxvb2tpbmcgYXQgYG5ldC94MjUvS2NvbmZpZ2AuIFJpZ2h0IGF3YXksIG15IGV4cGVydCBtaW5kIGtpY2tzIGluIOKAkyBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgY29uZmlndXJhdGlvbiBvcHRpb25zIGZvciB0aGUgWC4yNSBuZXR3b3JraW5nIHN0YWNrIHdpdGhpbiB0aGlzIGtlcm5lbCBtb2R1bGUuIFdoYXQgZmVhdHVyZXMgY2FuIGJlIGVuYWJsZWQgb3IgZGlzYWJsZWQ/IFdoYXQgZGVwZW5kZW5jaWVzIGV4aXN0PyBBcmUgdGhlcmUgYW55IG9idmlvdXMgYXJlYXMgZm9yIG9wdGltaXphdGlvbiBvciBwb3RlbnRpYWwgY29uZmxpY3RzIGJhc2VkIG9uIHdoYXQgSSBhbHJlYWR5IGtub3cgYWJvdXQgWC4yNT8KCkkmIzM5O20gbWVudGFsbHkgc2lmdGluZyB0aHJvdWdoIHRoaXMgZmlsZSwgbm90aW5nIHRoZSBsaWtlbHkgc3RydWN0dXJlLiBJIGV4cGVjdCB0byBzZWUgYGNvbmZpZ2Agc3RhdGVtZW50cyBkZWZpbmluZyB2YXJpb3VzIGZlYXR1cmVzLCBgYm9vbGAsIGB0cmlzdGF0ZWAsIGBpbnRgLCBldGMuLCBkZXRlcm1pbmluZyB0aGUgY29uZmlndXJhdGlvbiB0eXBlLiBUaGVyZSYjMzk7bGwgYmUgYGRlcGVuZHMgb25gIGNsYXVzZXMgbGlua2luZyB0aGVzZSBvcHRpb25zIHRvIG90aGVyIGtlcm5lbCBmZWF0dXJlcy4gYGhlbHBgIHRleHQgcHJvdmlkaW5nIGNydWNpYWwgY29udGV4dC4gSSYjMzk7bSBsb29raW5nIGZvciBhbnl0aGluZyB1bnVzdWFsIG9yIHBhcnRpY3VsYXJseSBpbnRlcmVzdGluZy4uLiBzb21lIGFkdmFuY2VkIG9yIGVzb3RlcmljIGZlYXR1cmUuIEFueSBvYnZpb3VzIG1haW50YWluZXIgbm90ZXMgdGhhdCBhcmUgaW1wb3J0YW50IHRvIGhlZWQgZm9yIGZ1dHVyZSB3b3JrPwoKVGhpcyBLY29uZmlnIHdpbGwgZGljdGF0ZSBob3cgZmxleGlibGUgb3Igc3BlY2lmaWMgdGhpcyBYLjI1IGltcGxlbWVudGF0aW9uIGlzLiBUaGUgZ29hbCBpcyB0byBzZWUgaG93IHRoZSBzeXN0ZW0gaXMgY3VycmVudGx5IGNvbmZpZ3VyZWQgZm9yIHRoaXMgdHlwZSBvZiBuZXR3b3JrLCBob3cgY2FuIGl0IGJlIGVuaGFuY2VkIGZvciBvdGhlciBuZWVkcy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjcgMDA6NTA8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5yZWFkLWZpbGU8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGUmIzM0OzogJiMzNDtuZXQveDI1L0tjb25maWcmIzM0OywKICAmIzM0O0ZpcnN0TGluZSYjMzQ7OiAxLAogICYjMzQ7TGluZUNvdW50JiMzNDs6IDIwCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtDb250ZW50cyYjMzQ7OiAmIzM0OyAgIDE6XHQjIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHlcbiAgIDI6XHQjXG4gICAzOlx0IyBDQ0lUVCBYLjI1IFBhY2tldCBMYXllclxuICAgNDpcdCNcbiAgIDU6XHRcbiAgIDY6XHRjb25maWcgWDI1XG4gICA3Olx0XHR0cmlzdGF0ZSBcJiMzNDtDQ0lUVCBYLjI1IFBhY2tldCBMYXllclwmIzM0O1xuICAgODpcdFx0aGVscFxuICAgOTpcdFx0ICBYLjI1IGlzIGEgc2V0IG9mIHN0YW5kYXJkaXplZCBuZXR3b3JrIHByb3RvY29scywgc2ltaWxhciBpbiBzY29wZSB0b1xuICAxMDpcdFx0ICBmcmFtZSByZWxheTsgdGhlIG9uZSBwaHlzaWNhbCBsaW5lIGZyb20geW91ciBib3ggdG8gdGhlIFguMjUgbmV0d29ya1xuICAxMTpcdFx0ICBlbnRyeSBwb2ludCBjYW4gY2Fycnkgc2V2ZXJhbCBsb2dpY2FsIHBvaW50LXRvLXBvaW50IGNvbm5lY3Rpb25zXG4gIDEyOlx0XHQgIChjYWxsZWQgXCYjMzQ7dmlydHVhbCBjaXJjdWl0c1wmIzM0OykgdG8gb3RoZXIgY29tcHV0ZXJzIGNvbm5lY3RlZCB0byB0aGUgWC4yNVxuICAxMzpcdFx0ICBuZXR3b3JrLiBHb3Zlcm5tZW50cywgYmFua3MsIGFuZCBvdGhlciBvcmdhbml6YXRpb25zIHRlbmQgdG8gdXNlIGl0XG4gIDE0Olx0XHQgIHRvIGNvbm5lY3QgdG8gZWFjaCBvdGhlciBvciB0byBmb3JtIFdpZGUgQXJlYSBOZXR3b3JrcyAoV0FOcykuIE1hbnlcbiAgMTU6XHRcdCAgY291bnRyaWVzIGhhdmUgcHVibGljIFguMjUgbmV0d29ya3MuIFguMjUgY29uc2lzdHMgb2YgdHdvXG4gIDE2Olx0XHQgIHByb3RvY29sczogdGhlIGhpZ2hlciBsZXZlbCBQYWNrZXQgTGF5ZXIgUHJvdG9jb2wgKFBMUCkgKHNheSBZIGhlcmVcbiAgMTc6XHRcdCAgaWYgeW91IHdhbnQgdGhhdCkgYW5kIHRoZSBsb3dlciBsZXZlbCBkYXRhIGxpbmsgbGF5ZXIgcHJvdG9jb2wgTEFQQlxuICAxODpcdFx0ICAoc2F5IFkgdG8gXCYjMzQ7TEFQQiBEYXRhIExpbmsgRHJpdmVyXCYjMzQ7IGJlbG93IGlmIHlvdSB3YW50IHRoYXQpLlxuICAxOTpcdFxuICAyMDpcdFx0ICBJbmZvcm1hdGlvbiBhYm91dCBYLjI1IGZvciBMaW51eCBpcyBjb250YWluZWQgaW4gdGhlIGZpbGVzXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTEvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI3IDAwOjUwPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDcyMTEKCQkJCQkJCW91dHB1dDogMzUKCQkJCQkJCXRob3VnaHRzOiAyNQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSB0aG91Z2h0IHByb2Nlc3Mgc3VtbWFyaXplZCwgZ2VhcmVkIHRvd2FyZHMgYW4gZXhwZXJ0OgoKKipJbnZlc3RpZ2F0aW5nIGEgUG90ZW50aWFsIE5ldHdvcmsgQ29uZmlndXJhdGlvbiBEZXBlbmRlbmN5KioKCkFscmlnaHQsIEkgbmVlZCB0byBmaWd1cmUgc29tZXRoaW5nIG91dCwgYW5kIHRoZSBzaXR1YXRpb24gbG9va3Mgc2ltcGxlIGVub3VnaCB0byBzdGFydCB3aXRoIGEgZGVwZW5kZW5jeSBjaGVjay4gSSYjMzk7bSBhc3N1bWluZyBubyBvYnZpb3VzIGV4dGVybmFsIGxpYnJhcmllcyBvciBtb2R1bGVzIGFyZSBkaXJlY3RseSBpbmZsdWVuY2luZyB0aGlzLgoKVGhlIGltbWVkaWF0ZSBzdGVwIEkmIzM5O20gdGFraW5nIGlzIHRvIGRlbHZlIGludG8gdGhlIGBuZXQvS2NvbmZpZ2AgZmlsZS4gR2l2ZW4gbXkgZXhwZXJpZW5jZSwgdGhhdCYjMzk7cyBhbG1vc3QgYWx3YXlzIHRoZSBmaXJzdCBwbGFjZSB0byBsb29rIHdoZW4gZGVhbGluZyB3aXRoIG5ldHdvcmsgY29uZmlndXJhdGlvbiBvcHRpb25zIGluIHRoaXMgZW52aXJvbm1lbnQuIFNwZWNpZmljYWxseSwgSSYjMzk7bSB0cnlpbmcgdG8gZGV0ZXJtaW5lIGlmIHRoZSBgWDI1YCBvcHRpb24gaXMgc291cmNlZCBhbnl3aGVyZS4gVGhpcyB3aWxsIHF1aWNrbHkgcmV2ZWFsIGlmIGl0JiMzOTtzIGRlcGVuZGVudCBvbiBvdGhlciBjb21wb25lbnRzIG9yIGlmIGl0IGNhbiBiZSBlbmFibGVkIGluZGVwZW5kZW50bHkuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTIvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI3IDAwOjUwPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3NvdXJjZSBcJiMzNDtuZXQveDI1L0tjb25maWdcJiMzNDsmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtuZXQvS2NvbmZpZyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtuZXQvS2NvbmZpZz0yNjM9c291cmNlIFwmIzM0O25ldC9sbGMvS2NvbmZpZ1wmIzM0O1xubmV0L0tjb25maWc6MjY0OnNvdXJjZSBcJiMzNDtuZXQveDI1L0tjb25maWdcJiMzNDtcbm5ldC9LY29uZmlnLTI2NS1zb3VyY2UgXCYjMzQ7bmV0L2xhcGIvS2NvbmZpZ1wmIzM0O1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEzLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNyAwMDo1MDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA3NDkzCgkJCQkJCQlvdXRwdXQ6IDE4MgoJCQkJCQkJdGhvdWdodHM6IDI4CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IHN1bW1hcnksIHByZXNlbnRlZCBhcyBhIGRpcmVjdCByZWZsZWN0aW9uIG9mIG15IHRob3VnaHQgcHJvY2VzczoKCioqU3RyZWFtbGluaW5nIHRoZSBDb25maWd1cmF0aW9uKioKCkFscmlnaHQsIHRoYXQmIzM5O3MgY29ycmVjdCwgYWJzb2x1dGVseS4gTG9va2luZyBhdCB0aGlzLCBJIHNlZSBpdCYjMzk7cyB0cnVlLiBUaGUgaW5pdGlhbCBhc3Nlc3NtZW50IHdhcyBhY2N1cmF0ZS4gSXQgYXBwZWFycyB0aGF0IGBYMjVgIGlzIGluZGVlZCB0aGUgKm9ubHkqIGNvbmZpZ3VyYXRpb24gd2UgbmVlZCB0byBmb2N1cyBvbi4gV2UgY2FuIHNpbXBsaWZ5IHRoaW5ncyBkcmFzdGljYWxseSwgd2hpY2ggaXMgYWx3YXlzIGEgd2luLiBOb3csIGxldCYjMzk7cyBjYWxsIHRoZSBuZXh0IHByb2NlZHVyZS4gSSB0aGluayB3ZSB3aWxsIGNhbGwgaXQgYHNldC1yZXN1bHRzYC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjcgMDA6NTA8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O1gyNSYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O3gyNV9zdGFydF9oZWFydGJlYXQmIzM0OywKICAgICYjMzQ7eDI1X3N0b3BfaGVhcnRiZWF0JiMzNDssCiAgICAmIzM0O3gyNV9zdGFydF90MnRpbWVyJiMzNDssCiAgICAmIzM0O3gyNV9zdGFydF90MjF0aW1lciYjMzQ7LAogICAgJiMzNDt4MjVfc3RhcnRfdDIydGltZXImIzM0OywKICAgICYjMzQ7eDI1X3N0YXJ0X3QyM3RpbWVyJiMzNDssCiAgICAmIzM0O3gyNV9zdG9wX3RpbWVyJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGZpeGVzIHRpbWVyIGhhbmRsaW5nIGFuZCBzb2NrZXQgcmVmY291bnRpbmcgaW4gdGhlIFguMjUgcHJvdG9jb2wgaW1wbGVtZW50YXRpb24uIEl0IHJlcGxhY2VzIG1vZF90aW1lciB3aXRoIHNrX3Jlc2V0X3RpbWVyIGFuZCBhZGRzIHNvY2tfcHV0IHRvIHRpbWVyIGNhbGxiYWNrcyB0byBwcmV2ZW50IHVzZS1hZnRlci1mcmVlIG9yIG1lbW9yeSBsZWFrcy4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIG5ldHdvcmsgcHJvdG9jb2wgbG9naWMgdGhhdCBzaG91bGQgYmUgZnV6emVkLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtYMjUmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDt4MjVfc3RhcnRfaGVhcnRiZWF0JiMzNDssCiAgICAmIzM0O3gyNV9zdG9wX2hlYXJ0YmVhdCYjMzQ7LAogICAgJiMzNDt4MjVfc3RhcnRfdDJ0aW1lciYjMzQ7LAogICAgJiMzNDt4MjVfc3RhcnRfdDIxdGltZXImIzM0OywKICAgICYjMzQ7eDI1X3N0YXJ0X3QyMnRpbWVyJiMzNDssCiAgICAmIzM0O3gyNV9zdGFydF90MjN0aW1lciYjMzQ7LAogICAgJiMzNDt4MjVfc3RvcF90aW1lciYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBmaXhlcyB0aW1lciBoYW5kbGluZyBhbmQgc29ja2V0IHJlZmNvdW50aW5nIGluIHRoZSBYLjI1IHByb3RvY29sIGltcGxlbWVudGF0aW9uLiBJdCByZXBsYWNlcyBtb2RfdGltZXIgd2l0aCBza19yZXNldF90aW1lciBhbmQgYWRkcyBzb2NrX3B1dCB0byB0aW1lciBjYWxsYmFja3MgdG8gcHJldmVudCB1c2UtYWZ0ZXItZnJlZSBvciBtZW1vcnkgbGVha3MuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiBuZXR3b3JrIHByb3RvY29sIGxvZ2ljIHRoYXQgc2hvdWxkIGJlIGZ1enplZC4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI3VDAwOjUwOjA2LjgyNTU4NDg3OVoiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjMyNzM0NzcxOTQ5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIlgyNVwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcIngyNV9zdGFydF9oZWFydGJlYXRcIixcbiAgICBcIngyNV9zdG9wX2hlYXJ0YmVhdFwiLFxuICAgIFwieDI1X3N0YXJ0X3QydGltZXJcIixcbiAgICBcIngyNV9zdGFydF90MjF0aW1lclwiLFxuICAgIFwieDI1X3N0YXJ0X3QyMnRpbWVyXCIsXG4gICAgXCJ4MjVfc3RhcnRfdDIzdGltZXJcIixcbiAgICBcIngyNV9zdG9wX3RpbWVyXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggZml4ZXMgdGltZXIgaGFuZGxpbmcgYW5kIHNvY2tldCByZWZjb3VudGluZyBpbiB0aGUgWC4yNSBwcm90b2NvbCBpbXBsZW1lbnRhdGlvbi4gSXQgcmVwbGFjZXMgbW9kX3RpbWVyIHdpdGggc2tfcmVzZXRfdGltZXIgYW5kIGFkZHMgc29ja19wdXQgdG8gdGltZXIgY2FsbGJhY2tzIHRvIHByZXZlbnQgdXNlLWFmdGVyLWZyZWUgb3IgbWVtb3J5IGxlYWtzLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gbmV0d29yayBwcm90b2NvbCBsb2dpYyB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI3VDAwOjUwOjA2LjgyNTU5MTUwOVoiLCJTZXEiOjEsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoicmVhZC1wYXRjaC1kaWZmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NTE3NzUxOTMwLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJQYXRjaERpZmZcIjogXCJjb21taXQgYTc0MjYxYzQ0M2U0YWY0MmNhOTViZjUyYThiMjdkN2U2MjVlYWVhNVxcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXFx1MDAzZVxcbkRhdGU6ICAgTW9uIEp1bCAyNyAwMDo1MDowNSAyMDI2ICswMDAwXFxuXFxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xcblxcbmRpZmYgLS1naXQgYS9uZXQveDI1L2FmX3gyNS5jIGIvbmV0L3gyNS9hZl94MjUuY1xcbmluZGV4IGMzMWQyYWY1ZGQyMjMzLi41ZjJmZWU0ZGE4NTMwNCAxMDA2NDRcXG4tLS0gYS9uZXQveDI1L2FmX3gyNS5jXFxuKysrIGIvbmV0L3gyNS9hZl94MjUuY1xcbkBAIC0zNjMsNiArMzYzLDcgQEAgc3RhdGljIHZvaWQgeDI1X2Rlc3Ryb3lfdGltZXIoc3RydWN0IHRpbWVyX2xpc3QgKnQpXFxuIFxcdHN0cnVjdCBzb2NrICpzayA9IHRpbWVyX2NvbnRhaW5lcl9vZihzaywgdCwgc2tfdGltZXIpO1xcbiBcXG4gXFx0eDI1X2Rlc3Ryb3lfc29ja2V0X2Zyb21fdGltZXIoc2spO1xcbitcXHRzb2NrX3B1dChzayk7XFxuIH1cXG4gXFxuIC8qXFxuQEAgLTM5OCw5ICszOTksOCBAQCBzdGF0aWMgdm9pZCBfX3gyNV9kZXN0cm95X3NvY2tldChzdHJ1Y3Qgc29jayAqc2spXFxuIFxcbiBcXHRpZiAoc2tfaGFzX2FsbG9jYXRpb25zKHNrKSkge1xcbiBcXHRcXHQvKiBEZWZlcjogb3V0c3RhbmRpbmcgYnVmZmVycyAqL1xcbi1cXHRcXHRzay1cXHUwMDNlc2tfdGltZXIuZXhwaXJlcyAgPSBqaWZmaWVzICsgMTAgKiBIWjtcXG4gXFx0XFx0c2stXFx1MDAzZXNrX3RpbWVyLmZ1bmN0aW9uID0geDI1X2Rlc3Ryb3lfdGltZXI7XFxuLVxcdFxcdGFkZF90aW1lcihcXHUwMDI2c2stXFx1MDAzZXNrX3RpbWVyKTtcXG4rXFx0XFx0c2tfcmVzZXRfdGltZXIoc2ssIFxcdTAwMjZzay1cXHUwMDNlc2tfdGltZXIsIGppZmZpZXMgKyAxMCAqIEhaKTtcXG4gXFx0fSBlbHNlIHtcXG4gXFx0XFx0LyogZHJvcCBsYXN0IHJlZmVyZW5jZSBzbyBzb2NrX3B1dCB3aWxsIGZyZWUgKi9cXG4gXFx0XFx0X19zb2NrX3B1dChzayk7XFxuZGlmZiAtLWdpdCBhL25ldC94MjUveDI1X3RpbWVyLmMgYi9uZXQveDI1L3gyNV90aW1lci5jXFxuaW5kZXggMmVjNjNhMWY0YzZkNDIuLjc4OTZjZDQzZjFjYzFlIDEwMDY0NFxcbi0tLSBhL25ldC94MjUveDI1X3RpbWVyLmNcXG4rKysgYi9uZXQveDI1L3gyNV90aW1lci5jXFxuQEAgLTM2LDQ1ICszNiw0NSBAQCB2b2lkIHgyNV9pbml0X3RpbWVycyhzdHJ1Y3Qgc29jayAqc2spXFxuIFxcbiB2b2lkIHgyNV9zdGFydF9oZWFydGJlYXQoc3RydWN0IHNvY2sgKnNrKVxcbiB7XFxuLVxcdG1vZF90aW1lcihcXHUwMDI2c2stXFx1MDAzZXNrX3RpbWVyLCBqaWZmaWVzICsgNSAqIEhaKTtcXG4rXFx0c2tfcmVzZXRfdGltZXIoc2ssIFxcdTAwMjZzay1cXHUwMDNlc2tfdGltZXIsIGppZmZpZXMgKyA1ICogSFopO1xcbiB9XFxuIFxcbiB2b2lkIHgyNV9zdG9wX2hlYXJ0YmVhdChzdHJ1Y3Qgc29jayAqc2spXFxuIHtcXG4tXFx0dGltZXJfZGVsZXRlKFxcdTAwMjZzay1cXHUwMDNlc2tfdGltZXIpO1xcbitcXHRza19zdG9wX3RpbWVyKHNrLCBcXHUwMDI2c2stXFx1MDAzZXNrX3RpbWVyKTtcXG4gfVxcbiBcXG4gdm9pZCB4MjVfc3RhcnRfdDJ0aW1lcihzdHJ1Y3Qgc29jayAqc2spXFxuIHtcXG4gXFx0c3RydWN0IHgyNV9zb2NrICp4MjUgPSB4MjVfc2soc2spO1xcbiBcXG4tXFx0bW9kX3RpbWVyKFxcdTAwMjZ4MjUtXFx1MDAzZXRpbWVyLCBqaWZmaWVzICsgeDI1LVxcdTAwM2V0Mik7XFxuK1xcdHNrX3Jlc2V0X3RpbWVyKHNrLCBcXHUwMDI2eDI1LVxcdTAwM2V0aW1lciwgamlmZmllcyArIHgyNS1cXHUwMDNldDIpO1xcbiB9XFxuIFxcbiB2b2lkIHgyNV9zdGFydF90MjF0aW1lcihzdHJ1Y3Qgc29jayAqc2spXFxuIHtcXG4gXFx0c3RydWN0IHgyNV9zb2NrICp4MjUgPSB4MjVfc2soc2spO1xcbiBcXG4tXFx0bW9kX3RpbWVyKFxcdTAwMjZ4MjUtXFx1MDAzZXRpbWVyLCBqaWZmaWVzICsgeDI1LVxcdTAwM2V0MjEpO1xcbitcXHRza19yZXNldF90aW1lcihzaywgXFx1MDAyNngyNS1cXHUwMDNldGltZXIsIGppZmZpZXMgKyB4MjUtXFx1MDAzZXQyMSk7XFxuIH1cXG4gXFxuIHZvaWQgeDI1X3N0YXJ0X3QyMnRpbWVyKHN0cnVjdCBzb2NrICpzaylcXG4ge1xcbiBcXHRzdHJ1Y3QgeDI1X3NvY2sgKngyNSA9IHgyNV9zayhzayk7XFxuIFxcbi1cXHRtb2RfdGltZXIoXFx1MDAyNngyNS1cXHUwMDNldGltZXIsIGppZmZpZXMgKyB4MjUtXFx1MDAzZXQyMik7XFxuK1xcdHNrX3Jlc2V0X3RpbWVyKHNrLCBcXHUwMDI2eDI1LVxcdTAwM2V0aW1lciwgamlmZmllcyArIHgyNS1cXHUwMDNldDIyKTtcXG4gfVxcbiBcXG4gdm9pZCB4MjVfc3RhcnRfdDIzdGltZXIoc3RydWN0IHNvY2sgKnNrKVxcbiB7XFxuIFxcdHN0cnVjdCB4MjVfc29jayAqeDI1ID0geDI1X3NrKHNrKTtcXG4gXFxuLVxcdG1vZF90aW1lcihcXHUwMDI2eDI1LVxcdTAwM2V0aW1lciwgamlmZmllcyArIHgyNS1cXHUwMDNldDIzKTtcXG4rXFx0c2tfcmVzZXRfdGltZXIoc2ssIFxcdTAwMjZ4MjUtXFx1MDAzZXRpbWVyLCBqaWZmaWVzICsgeDI1LVxcdTAwM2V0MjMpO1xcbiB9XFxuIFxcbiB2b2lkIHgyNV9zdG9wX3RpbWVyKHN0cnVjdCBzb2NrICpzaylcXG4ge1xcbi1cXHR0aW1lcl9kZWxldGUoXFx1MDAyNngyNV9zayhzayktXFx1MDAzZXRpbWVyKTtcXG4rXFx0c2tfc3RvcF90aW1lcihzaywgXFx1MDAyNngyNV9zayhzayktXFx1MDAzZXRpbWVyKTtcXG4gfVxcbiBcXG4gdW5zaWduZWQgbG9uZyB4MjVfZGlzcGxheV90aW1lcihzdHJ1Y3Qgc29jayAqc2spXFxuQEAgLTEwOCw3ICsxMDgsNyBAQCBzdGF0aWMgdm9pZCB4MjVfaGVhcnRiZWF0X2V4cGlyeShzdHJ1Y3QgdGltZXJfbGlzdCAqdClcXG4gXFx0XFx0XFx0ICAgICBzb2NrX2ZsYWcoc2ssIFNPQ0tfREVBRCkpKSB7XFxuIFxcdFxcdFxcdFxcdGJoX3VubG9ja19zb2NrKHNrKTtcXG4gXFx0XFx0XFx0XFx0eDI1X2Rlc3Ryb3lfc29ja2V0X2Zyb21fdGltZXIoc2spO1xcbi1cXHRcXHRcXHRcXHRyZXR1cm47XFxuK1xcdFxcdFxcdFxcdGdvdG8gb3V0O1xcbiBcXHRcXHRcXHR9XFxuIFxcdFxcdFxcdGJyZWFrO1xcbiBcXG5AQCAtMTIwLDggKzEyMCwxNCBAQCBzdGF0aWMgdm9pZCB4MjVfaGVhcnRiZWF0X2V4cGlyeShzdHJ1Y3QgdGltZXJfbGlzdCAqdClcXG4gXFx0XFx0XFx0YnJlYWs7XFxuIFxcdH1cXG4gcmVzdGFydF9oZWFydGJlYXQ6XFxuLVxcdHgyNV9zdGFydF9oZWFydGJlYXQoc2spO1xcbitcXHQvKiBEbyBub3QgcmVhcm0gb25jZSBfX3gyNV9kZXN0cm95X3NvY2tldCgpIGhhcyB1bmxpbmtlZCB0aGUgc29ja2V0OlxcbitcXHQgKiBpdCBpcyBwYXN0IGl0cyBjYW5jZWwgcG9pbnQgYW5kIG93bnMgdGhlIHRlYXJkb3duIGZyb20gdGhlcmUgb24uXFxuK1xcdCAqL1xcbitcXHRpZiAoc2tfaGFzaGVkKHNrKSlcXG4rXFx0XFx0eDI1X3N0YXJ0X2hlYXJ0YmVhdChzayk7XFxuIFxcdGJoX3VubG9ja19zb2NrKHNrKTtcXG4rb3V0OlxcbitcXHRzb2NrX3B1dChzayk7XFxuIH1cXG4gXFxuIC8qXFxuQEAgLTE2Niw0ICsxNzIsNSBAQCBzdGF0aWMgdm9pZCB4MjVfdGltZXJfZXhwaXJ5KHN0cnVjdCB0aW1lcl9saXN0ICp0KVxcbiBcXHR9IGVsc2VcXG4gXFx0XFx0eDI1X2RvX3RpbWVyX2V4cGlyeShzayk7XFxuIFxcdGJoX3VubG9ja19zb2NrKHNrKTtcXG4rXFx0c29ja19wdXQoc2spO1xcbiB9XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI3VDAwOjUwOjA3LjM0NDEzODg0OVoiLCJTZXEiOjIsIk5lc3RpbmciOjEsIlR5cGUiOiJhZ2VudCIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImJlc3QtZXhwZW5zaXZlIiwiRHVyYXRpb24iOjMyMjE2MjA5NDc5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIlgyNVwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcIngyNV9zdGFydF9oZWFydGJlYXRcIixcbiAgICBcIngyNV9zdG9wX2hlYXJ0YmVhdFwiLFxuICAgIFwieDI1X3N0YXJ0X3QydGltZXJcIixcbiAgICBcIngyNV9zdGFydF90MjF0aW1lclwiLFxuICAgIFwieDI1X3N0YXJ0X3QyMnRpbWVyXCIsXG4gICAgXCJ4MjVfc3RhcnRfdDIzdGltZXJcIixcbiAgICBcIngyNV9zdG9wX3RpbWVyXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggZml4ZXMgdGltZXIgaGFuZGxpbmcgYW5kIHNvY2tldCByZWZjb3VudGluZyBpbiB0aGUgWC4yNSBwcm90b2NvbCBpbXBsZW1lbnRhdGlvbi4gSXQgcmVwbGFjZXMgbW9kX3RpbWVyIHdpdGggc2tfcmVzZXRfdGltZXIgYW5kIGFkZHMgc29ja19wdXQgdG8gdGltZXIgY2FsbGJhY2tzIHRvIHByZXZlbnQgdXNlLWFmdGVyLWZyZWUgb3IgbWVtb3J5IGxlYWtzLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gbmV0d29yayBwcm90b2NvbCBsb2dpYyB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLlxuWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmVcbmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cblxuSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluXG55b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHlcbnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuXG5cblJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6XG4tIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuXG4tIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLlxuLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuXG4tIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSxcbiAgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLlxuLSBDb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCxcbiAgaW9uaWMsIGFtZGdwdSkgdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuXG4tIERyaXZlciAucmVtb3ZlLCAuc2h1dGRvd24sIG9yIHBjaV91bnJlZ2lzdGVyX2RyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKGUuZy4sIGlnYl9yZW1vdmUpXG4gIHRoYXQgYXJlIGV4ZWN1dGVkIG9ubHkgZHVyaW5nIFBDSSBob3QtdW5wbHVnIG9yIHN5c2ZzIGRyaXZlciB1bmJpbmQgb3BlcmF0aW9ucy5cblxuSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaFxudG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuXG5cbldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOlxuMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy5cbiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLlxuICAgUHJlZmVyIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIEFQSSBlbnRyeXBvaW50IGZ1bmN0aW9ucyBvdmVyIGludGVybmFsIHN0YXRpYyBoZWxwZXIgZnVuY3Rpb25zXG4gICAod2hpY2ggYXJlIGlubGluZWQgYnkgdGhlIGNvbXBpbGVyIGFuZCBkbyBub3QgaGF2ZSBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzKS5cbjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLlxuICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLlxuICAgQWxzbyBjaGVjayBcImRlcGVuZHMgb25cIiBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3NcbiAgIG5lZWRlZCBmb3IgS2J1aWxkIHRvIGNvbXBpbGUgdGhlIGNvZGUgc3RhdGljYWxseSBpbnRvIHZtbGludXguIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlnc1xuICAgb3V0cHV0IGFycmF5LCBhbmQgRE8gTk9UIGFkZCBhICdDT05GSUdfJyBwcmVmaXggKGUuZy4sIHJldHVybiBcIk5FVF9JUFY0XCIgaW5zdGVhZCBvZiBcIkNPTkZJR19ORVRfSVBWNFwiKS5cblByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLlxuXG5cblVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuXG5JdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS5cbklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC5cbiIsIlByb21wdCI6IkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOlxuY29tbWl0IGE3NDI2MWM0NDNlNGFmNDJjYTk1YmY1MmE4YjI3ZDdlNjI1ZWFlYTVcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgTW9uIEp1bCAyNyAwMDo1MDowNSAyMDI2ICswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL25ldC94MjUvYWZfeDI1LmMgYi9uZXQveDI1L2FmX3gyNS5jXG5pbmRleCBjMzFkMmFmNWRkMjIzMy4uNWYyZmVlNGRhODUzMDQgMTAwNjQ0XG4tLS0gYS9uZXQveDI1L2FmX3gyNS5jXG4rKysgYi9uZXQveDI1L2FmX3gyNS5jXG5AQCAtMzYzLDYgKzM2Myw3IEBAIHN0YXRpYyB2b2lkIHgyNV9kZXN0cm95X3RpbWVyKHN0cnVjdCB0aW1lcl9saXN0ICp0KVxuIFx0c3RydWN0IHNvY2sgKnNrID0gdGltZXJfY29udGFpbmVyX29mKHNrLCB0LCBza190aW1lcik7XG4gXG4gXHR4MjVfZGVzdHJveV9zb2NrZXRfZnJvbV90aW1lcihzayk7XG4rXHRzb2NrX3B1dChzayk7XG4gfVxuIFxuIC8qXG5AQCAtMzk4LDkgKzM5OSw4IEBAIHN0YXRpYyB2b2lkIF9feDI1X2Rlc3Ryb3lfc29ja2V0KHN0cnVjdCBzb2NrICpzaylcbiBcbiBcdGlmIChza19oYXNfYWxsb2NhdGlvbnMoc2spKSB7XG4gXHRcdC8qIERlZmVyOiBvdXRzdGFuZGluZyBidWZmZXJzICovXG4tXHRcdHNrLVx1MDAzZXNrX3RpbWVyLmV4cGlyZXMgID0gamlmZmllcyArIDEwICogSFo7XG4gXHRcdHNrLVx1MDAzZXNrX3RpbWVyLmZ1bmN0aW9uID0geDI1X2Rlc3Ryb3lfdGltZXI7XG4tXHRcdGFkZF90aW1lcihcdTAwMjZzay1cdTAwM2Vza190aW1lcik7XG4rXHRcdHNrX3Jlc2V0X3RpbWVyKHNrLCBcdTAwMjZzay1cdTAwM2Vza190aW1lciwgamlmZmllcyArIDEwICogSFopO1xuIFx0fSBlbHNlIHtcbiBcdFx0LyogZHJvcCBsYXN0IHJlZmVyZW5jZSBzbyBzb2NrX3B1dCB3aWxsIGZyZWUgKi9cbiBcdFx0X19zb2NrX3B1dChzayk7XG5kaWZmIC0tZ2l0IGEvbmV0L3gyNS94MjVfdGltZXIuYyBiL25ldC94MjUveDI1X3RpbWVyLmNcbmluZGV4IDJlYzYzYTFmNGM2ZDQyLi43ODk2Y2Q0M2YxY2MxZSAxMDA2NDRcbi0tLSBhL25ldC94MjUveDI1X3RpbWVyLmNcbisrKyBiL25ldC94MjUveDI1X3RpbWVyLmNcbkBAIC0zNiw0NSArMzYsNDUgQEAgdm9pZCB4MjVfaW5pdF90aW1lcnMoc3RydWN0IHNvY2sgKnNrKVxuIFxuIHZvaWQgeDI1X3N0YXJ0X2hlYXJ0YmVhdChzdHJ1Y3Qgc29jayAqc2spXG4ge1xuLVx0bW9kX3RpbWVyKFx1MDAyNnNrLVx1MDAzZXNrX3RpbWVyLCBqaWZmaWVzICsgNSAqIEhaKTtcbitcdHNrX3Jlc2V0X3RpbWVyKHNrLCBcdTAwMjZzay1cdTAwM2Vza190aW1lciwgamlmZmllcyArIDUgKiBIWik7XG4gfVxuIFxuIHZvaWQgeDI1X3N0b3BfaGVhcnRiZWF0KHN0cnVjdCBzb2NrICpzaylcbiB7XG4tXHR0aW1lcl9kZWxldGUoXHUwMDI2c2stXHUwMDNlc2tfdGltZXIpO1xuK1x0c2tfc3RvcF90aW1lcihzaywgXHUwMDI2c2stXHUwMDNlc2tfdGltZXIpO1xuIH1cbiBcbiB2b2lkIHgyNV9zdGFydF90MnRpbWVyKHN0cnVjdCBzb2NrICpzaylcbiB7XG4gXHRzdHJ1Y3QgeDI1X3NvY2sgKngyNSA9IHgyNV9zayhzayk7XG4gXG4tXHRtb2RfdGltZXIoXHUwMDI2eDI1LVx1MDAzZXRpbWVyLCBqaWZmaWVzICsgeDI1LVx1MDAzZXQyKTtcbitcdHNrX3Jlc2V0X3RpbWVyKHNrLCBcdTAwMjZ4MjUtXHUwMDNldGltZXIsIGppZmZpZXMgKyB4MjUtXHUwMDNldDIpO1xuIH1cbiBcbiB2b2lkIHgyNV9zdGFydF90MjF0aW1lcihzdHJ1Y3Qgc29jayAqc2spXG4ge1xuIFx0c3RydWN0IHgyNV9zb2NrICp4MjUgPSB4MjVfc2soc2spO1xuIFxuLVx0bW9kX3RpbWVyKFx1MDAyNngyNS1cdTAwM2V0aW1lciwgamlmZmllcyArIHgyNS1cdTAwM2V0MjEpO1xuK1x0c2tfcmVzZXRfdGltZXIoc2ssIFx1MDAyNngyNS1cdTAwM2V0aW1lciwgamlmZmllcyArIHgyNS1cdTAwM2V0MjEpO1xuIH1cbiBcbiB2b2lkIHgyNV9zdGFydF90MjJ0aW1lcihzdHJ1Y3Qgc29jayAqc2spXG4ge1xuIFx0c3RydWN0IHgyNV9zb2NrICp4MjUgPSB4MjVfc2soc2spO1xuIFxuLVx0bW9kX3RpbWVyKFx1MDAyNngyNS1cdTAwM2V0aW1lciwgamlmZmllcyArIHgyNS1cdTAwM2V0MjIpO1xuK1x0c2tfcmVzZXRfdGltZXIoc2ssIFx1MDAyNngyNS1cdTAwM2V0aW1lciwgamlmZmllcyArIHgyNS1cdTAwM2V0MjIpO1xuIH1cbiBcbiB2b2lkIHgyNV9zdGFydF90MjN0aW1lcihzdHJ1Y3Qgc29jayAqc2spXG4ge1xuIFx0c3RydWN0IHgyNV9zb2NrICp4MjUgPSB4MjVfc2soc2spO1xuIFxuLVx0bW9kX3RpbWVyKFx1MDAyNngyNS1cdTAwM2V0aW1lciwgamlmZmllcyArIHgyNS1cdTAwM2V0MjMpO1xuK1x0c2tfcmVzZXRfdGltZXIoc2ssIFx1MDAyNngyNS1cdTAwM2V0aW1lciwgamlmZmllcyArIHgyNS1cdTAwM2V0MjMpO1xuIH1cbiBcbiB2b2lkIHgyNV9zdG9wX3RpbWVyKHN0cnVjdCBzb2NrICpzaylcbiB7XG4tXHR0aW1lcl9kZWxldGUoXHUwMDI2eDI1X3NrKHNrKS1cdTAwM2V0aW1lcik7XG4rXHRza19zdG9wX3RpbWVyKHNrLCBcdTAwMjZ4MjVfc2soc2spLVx1MDAzZXRpbWVyKTtcbiB9XG4gXG4gdW5zaWduZWQgbG9uZyB4MjVfZGlzcGxheV90aW1lcihzdHJ1Y3Qgc29jayAqc2spXG5AQCAtMTA4LDcgKzEwOCw3IEBAIHN0YXRpYyB2b2lkIHgyNV9oZWFydGJlYXRfZXhwaXJ5KHN0cnVjdCB0aW1lcl9saXN0ICp0KVxuIFx0XHRcdCAgICAgc29ja19mbGFnKHNrLCBTT0NLX0RFQUQpKSkge1xuIFx0XHRcdFx0YmhfdW5sb2NrX3NvY2soc2spO1xuIFx0XHRcdFx0eDI1X2Rlc3Ryb3lfc29ja2V0X2Zyb21fdGltZXIoc2spO1xuLVx0XHRcdFx0cmV0dXJuO1xuK1x0XHRcdFx0Z290byBvdXQ7XG4gXHRcdFx0fVxuIFx0XHRcdGJyZWFrO1xuIFxuQEAgLTEyMCw4ICsxMjAsMTQgQEAgc3RhdGljIHZvaWQgeDI1X2hlYXJ0YmVhdF9leHBpcnkoc3RydWN0IHRpbWVyX2xpc3QgKnQpXG4gXHRcdFx0YnJlYWs7XG4gXHR9XG4gcmVzdGFydF9oZWFydGJlYXQ6XG4tXHR4MjVfc3RhcnRfaGVhcnRiZWF0KHNrKTtcbitcdC8qIERvIG5vdCByZWFybSBvbmNlIF9feDI1X2Rlc3Ryb3lfc29ja2V0KCkgaGFzIHVubGlua2VkIHRoZSBzb2NrZXQ6XG4rXHQgKiBpdCBpcyBwYXN0IGl0cyBjYW5jZWwgcG9pbnQgYW5kIG93bnMgdGhlIHRlYXJkb3duIGZyb20gdGhlcmUgb24uXG4rXHQgKi9cbitcdGlmIChza19oYXNoZWQoc2spKVxuK1x0XHR4MjVfc3RhcnRfaGVhcnRiZWF0KHNrKTtcbiBcdGJoX3VubG9ja19zb2NrKHNrKTtcbitvdXQ6XG4rXHRzb2NrX3B1dChzayk7XG4gfVxuIFxuIC8qXG5AQCAtMTY2LDQgKzE3Miw1IEBAIHN0YXRpYyB2b2lkIHgyNV90aW1lcl9leHBpcnkoc3RydWN0IHRpbWVyX2xpc3QgKnQpXG4gXHR9IGVsc2VcbiBcdFx0eDI1X2RvX3RpbWVyX2V4cGlyeShzayk7XG4gXHRiaF91bmxvY2tfc29jayhzayk7XG4rXHRzb2NrX3B1dChzayk7XG4gfVxuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjdUMDA6NTA6MDcuMzQ0MTQwMTA5WiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDUxMTc4NDE1MywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipYLjI1IFNvY2tldCBUaW1lciBSZWZhY3RvcmluZyAtIE15IE1lbnRhbCBDaGVja2xpc3QqKlxuXG5Pa2F5LCBzbyBJJ3ZlIGdvdCB0aGlzIHBhdGNoIOKAkyBsb29rcyBsaWtlIGl0J3MgYSBjcml0aWNhbCBmaXgsIHRvdWNoaW5nIGBuZXQveDI1L2FmX3gyNS5jYCBhbmQgYG5ldC94MjUveDI1X3RpbWVyLmNgLiBJbnRlcmVzdGluZy4gVGhlIGNvcmUgb2YgdGhpcyBzZWVtcyB0byBiZSBhIHNpZ25pZmljYW50IHJlZmFjdG9yaW5nIG9mIHRoZSB0aW1lciBoYW5kbGluZyB3aXRoaW4gdGhlIFguMjUgc29ja2V0IGltcGxlbWVudGF0aW9uLiBSZXBsYWNpbmcgYG1vZF90aW1lcmAgd2l0aCBgc2tfcmVzZXRfdGltZXJgLCBgdGltZXJfZGVsZXRlYCB3aXRoIGBza19zdG9wX3RpbWVyYCwgYW5kIGFkZGluZyBgc29ja19wdXQoc2spYCBpbiB0aGUgdGltZXIgY2FsbGJhY2tz4oCmIHRoYXQgc2NyZWFtcyByZWZjb3VudGluZyBhbmQgcmVzb3VyY2UgbWFuYWdlbWVudCBpbXByb3ZlbWVudHMuIFRoaXMgaXMgZ29vZDsgYWRkcmVzc2luZyBwb3RlbnRpYWwgdGltZXItcmVsYXRlZCBidWdzIGluIGEgcHJvdG9jb2wgbGlrZSBYLjI1IGlzIGltcG9ydGFudCBmb3Igc3RhYmlsaXR5LlxuXG5Ob3csIGJlZm9yZSBJIGRpZyBkZWVwZXIgaW50byB0aGUgY29kZSBjaGFuZ2VzIHRoZW1zZWx2ZXMsIEkgbmVlZCB0byBnZXQgYSBoYW5kbGUgb24gdGhlIGJpZ2dlciBwaWN0dXJlLiBJIHNob3VsZCBmaWd1cmUgb3V0IHRoZSByZWxldmFudCBjb25maWd1cmF0aW9uIG9wdGlvbiBmb3IgWC4yNSB0byB1bmRlcnN0YW5kIGlmIGl0IGlzIGVuYWJsZWQuIE15IGdvLXRvIGhlcmUgaXMgdG8gdXNlIGBncmVwcGVyYC4gSSdsbCBydW4gYGdyZXBwZXJgIGFuZCBzZWFyY2ggZm9yIHNvbWV0aGluZyBsaWtlIGBYMjVgIHdpdGhpbiBgbmV0L3gyNS9LY29uZmlnYCBvciBldmVuIHRoZSBicm9hZGVyIGBuZXQvS2NvbmZpZ2AgZmlsZXMuIFRoYXQgc2hvdWxkIHBvaW50IG1lIHRvIHRoZSBjb3JyZWN0IGNvbmZpZ3VyYXRpb24gb3B0aW9uLCBvciBvcHRpb25zLCB0byB2ZXJpZnkgdGhpcyBmZWF0dXJlLiBLbm93aW5nIHRoZSBjb25maWcgb3B0aW9ucyB3aWxsIHB1dCB0aGlzIGNoYW5nZSBpbnRvIGNvbnRleHQuIFRoYXQgd2lsbCBoZWxwIG1lIHRvIGRldGVybWluZSBob3cgaW1wb3J0YW50IHRoaXMgZml4IGlzIGFuZCB3aGF0IHRoZSBpbXBhY3Qgb2YgZW5hYmxpbmcgb3IgZGlzYWJsaW5nIFguMjUgbWlnaHQgYmUuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjMyODIsIk91dHB1dFRva2VucyI6MzIsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxNTksIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yN1QwMDo1MDoxMS44NTU5MjY1MTJaIiwiU2VxIjo0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTEwNDUxODg4LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNvbmZpZyBYMjVcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwibmV0L3gyNS9LY29uZmlnXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIm5ldC94MjUvS2NvbmZpZy01LVxcbm5ldC94MjUvS2NvbmZpZzo2OmNvbmZpZyBYMjVcXG5uZXQveDI1L0tjb25maWctNy1cXHR0cmlzdGF0ZSBcXFwiQ0NJVFQgWC4yNSBQYWNrZXQgTGF5ZXJcXFwiXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI3VDAwOjUwOjExLjk2NjM4NDM3WiIsIlNlcSI6NSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6OTM0MTk2OTEyMCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipYLjI1IFRpbWVyIE1hbmFnZW1lbnQgQW5hbHlzaXMqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIGBYMjVgIGNvbmZpZ3VyYXRpb24gb3B0aW9uLCBzcGVjaWZpY2FsbHkgZm9jdXNpbmcgb24gaXRzIHRpbWVyIGltcGxlbWVudGF0aW9ucy4gTGV0J3Mgc2VlLi4uIEkndmUgemVyb2VkIGluIG9uIGBuZXQveDI1L2FmX3gyNS5jYCBhbmQgYG5ldC94MjUveDI1X3RpbWVyLmNgIHRvIGlkZW50aWZ5IHRoZSBrZXkgZnVuY3Rpb25zLiBNeSBpbml0aWFsIHNjYW4gaGFzIHR1cm5lZCB1cCBhIGhhbmRmdWwgb2YgbW9kaWZpZWQgZnVuY3Rpb25zLCBhbGwgb2Ygd2hpY2ggc2VlbSBpbnRpbWF0ZWx5IHRpZWQgdG8gWC4yNSB0aW1lcnM6IGB4MjVfZGVzdHJveV90aW1lcmAsIGBfX3gyNV9kZXN0cm95X3NvY2tldGAsIGB4MjVfc3RhcnRfaGVhcnRiZWF0YCwgYHgyNV9zdG9wX2hlYXJ0YmVhdGAsIGB4MjVfc3RhcnRfdDJ0aW1lcmAsIGB4MjVfc3RhcnRfdDIxdGltZXJgLCBgeDI1X3N0YXJ0X3QyMnRpbWVyYCwgYHgyNV9zdGFydF90MjN0aW1lcmAsIGB4MjVfc3RvcF90aW1lcmAsIGB4MjVfaGVhcnRiZWF0X2V4cGlyeWAsIGFuZCBgeDI1X3RpbWVyX2V4cGlyeWAuXG5cbkVzc2VudGlhbGx5LCBJJ3ZlIGdvdCB0aW1lciBjYWxsYmFja3MgLSBgeDI1X2Rlc3Ryb3lfdGltZXJgLCBgeDI1X2hlYXJ0YmVhdF9leHBpcnlgLCBhbmQgYHgyNV90aW1lcl9leHBpcnlgIC0gYW5kLCBhIHNvY2tldCB0ZWFyZG93biBmdW5jdGlvbiwgYF9feDI1X2Rlc3Ryb3lfc29ja2V0YCwgYW5kIHRoZW4gdGhlIGNvcmUgdGltZXIgbWFuYWdlbWVudCBmdW5jdGlvbnM6IGB4MjVfc3RhcnRfaGVhcnRiZWF0YCwgYHgyNV9zdG9wX2hlYXJ0YmVhdGAsIGFuZCBhbGwgdGhlIGB4MjVfc3RhcnRfdFh0aW1lcmAgYW5kIGB4MjVfc3RvcF90aW1lcmAgZnVuY3Rpb25zLlxuXG5JIG5lZWQgdG8ga2VlcCBpbiBtaW5kLCB0aGVyZSBpcyBhbHNvIGB4MjVfZGVzdHJveV9zb2NrZXRfZnJvbV90aW1lcmAgd2hpY2ggaXMgY2FsbGVkLlxuXG5BbHJpZ2h0LCBhIG1vcmUgZm9jdXNlZCBsaXN0IG9mIHRoZSBtb2RpZmllZCBmdW5jdGlvbnM6IGBfX3gyNV9kZXN0cm95X3NvY2tldGAsIGB4MjVfc3RhcnRfaGVhcnRiZWF0YCwgYHgyNV9zdG9wX2hlYXJ0YmVhdGAsIGB4MjVfc3RhcnRfdDJ0aW1lcmAsIGB4MjVfc3RhcnRfdDIxdGltZXJgLCBgeDI1X3N0YXJ0X3QyMnRpbWVyYCwgYHgyNV9zdGFydF90MjN0aW1lcmAsIGFuZCBgeDI1X3N0b3BfdGltZXJgLlxuXG5Ib2xkIG9uLCBzb21ldGhpbmcncyBuYWdnaW5nIG1lLiBUaW1lciBjYWxsYmFja3MuLi4gdGhvc2UgYXJlIHVzdWFsbHkgZXhlY3V0ZWQgYXN5bmNocm9ub3VzbHksIGJ1dCB0aGV5J3JlICpzdGF0aWMqIGluIHRoaXMgY2FzZTogYHgyNV9oZWFydGJlYXRfZXhwaXJ5YCwgYHgyNV90aW1lcl9leHBpcnlgLCBhbmQgYHgyNV9kZXN0cm95X3RpbWVyYC4gSSBzaG91bGQgY29uZmlybSB0aGF0IHF1aWNrbHkuIEFoIHllcywgdGhleSBhcmUsIGluIGZhY3QsIGRlY2xhcmVkIGFzIHN0YXRpYy5cblxuU28sIHRoZSBub24tc3RhdGljIG9uZXMgYXJlIGB4MjVfc3RhcnRfaGVhcnRiZWF0YCwgYHgyNV9zdG9wX2hlYXJ0YmVhdGAsIGB4MjVfc3RhcnRfdDJ0aW1lcmAsIGB4MjVfc3RhcnRfdDIxdGltZXJgLCBgeDI1X3N0YXJ0X3QyMnRpbWVyYCwgYHgyNV9zdGFydF90MjN0aW1lcmAsIGFuZCBgeDI1X3N0b3BfdGltZXJgLlxuXG5XYWl0IGEgbWludXRlLCBgX194MjVfZGVzdHJveV9zb2NrZXRgIGlzIHN0YXRpYyB0b28hIEkga25ldyB0aGF0IHdhcyBmaXNoeS4gTGV0IG1lIGp1c3QgZG91YmxlLWNoZWNrIHRoYXQgaW4gYG5ldC94MjUvYWZfeDI1LmNgIHRvIG1ha2UgYWJzb2x1dGVseSBzdXJlLiBZdXAsIGNvbmZpcm1lZDogYHN0YXRpYyB2b2lkIF9feDI1X2Rlc3Ryb3lfc29ja2V0KHN0cnVjdCBzb2NrICpzaylgLiBUaW1lIHRvIHBpdm90IHRvIGBuZXQveDI1L3gyNV90aW1lci5jYCB0byByb3VuZCBvdXQgdGhlIHBpY3R1cmUgb24gdGhlIG5vbi1zdGF0aWMgZnVuY3Rpb25zLi4uXG5cblxuIiwiSW5wdXRUb2tlbnMiOjM4NTcsIk91dHB1dFRva2VucyI6NDIsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo3NzMsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMjdUMDA6NTA6MjEuMzA4MzU1ODVaIiwiU2VxIjo2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MzE0MTEyOTg0LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInZvaWQgeDI1X3N0YXJ0X2hlYXJ0YmVhdFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJuZXQveDI1L3gyNV90aW1lci5jXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIm5ldC94MjUveDI1X3RpbWVyLmM9Mjc9dm9pZCB4MjVfaW5pdF90aW1lcnMoc3RydWN0IHNvY2sgKnNrKVxcbi0tXFxubmV0L3gyNS94MjVfdGltZXIuYy0zNi1cXG5uZXQveDI1L3gyNV90aW1lci5jOjM3OnZvaWQgeDI1X3N0YXJ0X2hlYXJ0YmVhdChzdHJ1Y3Qgc29jayAqc2spXFxubmV0L3gyNS94MjVfdGltZXIuYy0zOC17XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI3VDAwOjUwOjIxLjYyMjQ3NTc2NFoiLCJTZXEiOjcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjY5Njc5MTQ5NDYsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqTXkgQW5hbHlzaXMgb2YgdGhlIFguMjUgVGltZXIgYW5kIFNvY2tldCBSZWZjb3VudGluZyBQYXRjaCoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggYW5kIGNvbmZpcm1pbmcgdGhhdCBpdCBkZWFscyB3aXRoIG5vbi1zdGF0aWMgZnVuY3Rpb25zLiBSaWdodCBhd2F5LCBJIHNlZSB0aGUgY29yZSBmdW5jdGlvbnMgaW52b2x2ZWQ6IGB4MjVfc3RhcnRfaGVhcnRiZWF0YCwgYHgyNV9zdG9wX2hlYXJ0YmVhdGAsIGB4MjVfc3RhcnRfdDJ0aW1lcmAsIGB4MjVfc3RhcnRfdDIxdGltZXJgLCBgeDI1X3N0YXJ0X3QyMnRpbWVyYCwgYHgyNV9zdGFydF90MjN0aW1lcmAsIGFuZCBgeDI1X3N0b3BfdGltZXJgLiBUaGVzZSBhcmUgdGhlIG9uZXMgd2hlcmUgdGltZXIgbWFuYWdlbWVudCBpcyBiZWluZyBtb2RpZmllZCwgc28gdGhleSBhcmUgY3JpdGljYWwuXG5cbkkgbmVlZCB0byBxdWlja2x5IHNjYW4gdG8gc2VlIHdoaWNoIG90aGVyIGVudHJ5IHBvaW50cyB0cmlnZ2VyIHRoZXNlIHRpbWVyIGZ1bmN0aW9ucy4gTGV0J3Mgc2VlLi4uIGxvb2tpbmcgYXQgdGhlIGNvZGUsIEkgc2VlIHRoYXQgZnVuY3Rpb25zIHN1Y2ggYXMgYHgyNV9jb25uZWN0YCwgYHgyNV9yZWxlYXNlYCwgYHgyNV9zZW5kbXNnYCwgYHgyNV9yZWN2bXNnYCwgbWlnaHQgYmUgcmVsZXZhbnQuIEJlc3QgdG8gZ2V0IGEgZnVsbCBsaXN0IG9mIG1vZGlmaWVkLCBub24tc3RhdGljIGZ1bmN0aW9ucyB0aG91Z2guXG5cbkFoYSEgYHgyNV9zdGFydF9oZWFydGJlYXRgIGlzIGNhbGxlZCBmcm9tIGJvdGggYHgyNV9pbml0X3RpbWVyc2AgYW5kIGB4MjVfaGVhcnRiZWF0X2V4cGlyeWAuIE5vdywgYHgyNV9pbml0X3RpbWVyc2AgaXMgc3BlY2lmaWNhbGx5IGNhbGxlZCBmcm9tIGB4MjVfY3JlYXRlYCwgd2hpY2ggaXMgd2hlcmUgdGhpbmdzIGdldCBpbnRlcmVzdGluZy4gU2luY2UgYHgyNV9jcmVhdGVgIGhhbmRsZXMgc29ja2V0IGNyZWF0aW9uLCBmdXp6aW5nIHRoZSBjcmVhdGlvbiBvZiBYLjI1IHNvY2tldHMgYW5kIG90aGVyIHNvY2tldCBvcGVyYXRpb25zIHdvdWxkIGJlIHRoZSBwZXJmZWN0IHdheSB0byB0ZXN0IHRoZXNlIHRpbWVyIGZ1bmN0aW9uYWxpdGllcy5cblxuU28sIEknbGwgZm9jdXMgbXkgZnV6emluZyBlZmZvcnRzIG9uOlxuXG5geDI1X3N0YXJ0X2hlYXJ0YmVhdGBcbmB4MjVfc3RvcF9oZWFydGJlYXRgXG5geDI1X3N0YXJ0X3QydGltZXJgXG5geDI1X3N0YXJ0X3QyMXRpbWVyYFxuYHgyNV9zdGFydF90MjJ0aW1lcmBcbmB4MjVfc3RhcnRfdDIzdGltZXJgXG5geDI1X3N0b3BfdGltZXJgXG5cblRoZSBjb25maWd1cmF0aW9uIEknbSB1c2luZyBpcyBgWDI1YC5cblxuVGhpcyBwYXRjaCBpcyBhbGwgYWJvdXQgZml4aW5nIHRpbWVyIGhhbmRsaW5nIGFuZCBzb2NrZXQgcmVmY291bnRpbmcgd2l0aGluIHRoZSBYLjI1IHByb3RvY29sIGltcGxlbWVudGF0aW9uLiBJdCdzIHN1YnN0aXR1dGluZyBgbW9kX3RpbWVyYCB3aXRoIGBza19yZXNldF90aW1lcmAgYW5kIGFkZGluZyBgc29ja19wdXRgIGNhbGxzIGluIHRpbWVyIGNhbGxiYWNrcy4gVGhpcyB3aWxsIHByZXZlbnQgdXNlLWFmdGVyLWZyZWUgY29uZGl0aW9ucyBhbmQgbWVtb3J5IGxlYWtzLiBUaGUgY2hhbmdlcyBhcmUgZnVuZGFtZW50YWwgdG8gdGhlIG5ldHdvcmsgcHJvdG9jb2wncyBvcGVyYXRpb24sIHNvIHRoZXkncmUgcHJpbWUgdGFyZ2V0cyBmb3IgZnV6emluZy5cblxuSSBzaG91bGQgYWxzbyBkb3VibGUtY2hlY2sgcXVpY2tseSB0byBzZWUgaWYgYFgyNWAgaXRzZWxmIGRlcGVuZHMgb24gYW55dGhpbmcgZWxzZS4gVGhhdCBjb3VsZCBvcGVuIHVwIG1vcmUgYXR0YWNrIHN1cmZhY2VzLlxuXG5cbiIsIklucHV0VG9rZW5zIjo1NTIxLCJPdXRwdXRUb2tlbnMiOjMwLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NDI0LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI3VDAwOjUwOjI4LjU5MDM5MzJaIiwiU2VxIjo4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTA2MjQ2OTM4LCJFcnJvciI6Im5vIG1hdGNoZXMiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJkZXBlbmRzIG9uXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcIm5ldC94MjUvS2NvbmZpZ1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJlcnJvclwiOiBcIm5vIG1hdGNoZXNcIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjdUMDA6NTA6MjguNjk2NjUwNzM4WiIsIlNlcSI6OSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzU4MjI1MjE1MSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgbGV0J3MgZGl2ZSBpbnRvIHRoaXMuIEhlcmUncyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCBhcyBpZiB0aGV5J3JlIG15IG93bjpcblxuKipBbmFseXppbmcgdGhlIEtjb25maWcgZm9yIG5ldC94MjUqKlxuXG5BbHJpZ2h0LCB0aW1lIHRvIGdldCBpbnRvIHRoZSBkZXRhaWxzLiBJIHNlZSB3ZSdyZSBsb29raW5nIGF0IGBuZXQveDI1L0tjb25maWdgLiBSaWdodCBhd2F5LCBteSBleHBlcnQgbWluZCBraWNrcyBpbiDigJMgSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBmb3IgdGhlIFguMjUgbmV0d29ya2luZyBzdGFjayB3aXRoaW4gdGhpcyBrZXJuZWwgbW9kdWxlLiBXaGF0IGZlYXR1cmVzIGNhbiBiZSBlbmFibGVkIG9yIGRpc2FibGVkPyBXaGF0IGRlcGVuZGVuY2llcyBleGlzdD8gQXJlIHRoZXJlIGFueSBvYnZpb3VzIGFyZWFzIGZvciBvcHRpbWl6YXRpb24gb3IgcG90ZW50aWFsIGNvbmZsaWN0cyBiYXNlZCBvbiB3aGF0IEkgYWxyZWFkeSBrbm93IGFib3V0IFguMjU/XG5cbkknbSBtZW50YWxseSBzaWZ0aW5nIHRocm91Z2ggdGhpcyBmaWxlLCBub3RpbmcgdGhlIGxpa2VseSBzdHJ1Y3R1cmUuIEkgZXhwZWN0IHRvIHNlZSBgY29uZmlnYCBzdGF0ZW1lbnRzIGRlZmluaW5nIHZhcmlvdXMgZmVhdHVyZXMsIGBib29sYCwgYHRyaXN0YXRlYCwgYGludGAsIGV0Yy4sIGRldGVybWluaW5nIHRoZSBjb25maWd1cmF0aW9uIHR5cGUuIFRoZXJlJ2xsIGJlIGBkZXBlbmRzIG9uYCBjbGF1c2VzIGxpbmtpbmcgdGhlc2Ugb3B0aW9ucyB0byBvdGhlciBrZXJuZWwgZmVhdHVyZXMuIGBoZWxwYCB0ZXh0IHByb3ZpZGluZyBjcnVjaWFsIGNvbnRleHQuIEknbSBsb29raW5nIGZvciBhbnl0aGluZyB1bnVzdWFsIG9yIHBhcnRpY3VsYXJseSBpbnRlcmVzdGluZy4uLiBzb21lIGFkdmFuY2VkIG9yIGVzb3RlcmljIGZlYXR1cmUuIEFueSBvYnZpb3VzIG1haW50YWluZXIgbm90ZXMgdGhhdCBhcmUgaW1wb3J0YW50IHRvIGhlZWQgZm9yIGZ1dHVyZSB3b3JrP1xuXG5UaGlzIEtjb25maWcgd2lsbCBkaWN0YXRlIGhvdyBmbGV4aWJsZSBvciBzcGVjaWZpYyB0aGlzIFguMjUgaW1wbGVtZW50YXRpb24gaXMuIFRoZSBnb2FsIGlzIHRvIHNlZSBob3cgdGhlIHN5c3RlbSBpcyBjdXJyZW50bHkgY29uZmlndXJlZCBmb3IgdGhpcyB0eXBlIG9mIG5ldHdvcmssIGhvdyBjYW4gaXQgYmUgZW5oYW5jZWQgZm9yIG90aGVyIG5lZWRzLlxuXG5cbiIsIklucHV0VG9rZW5zIjo2NTQyLCJPdXRwdXRUb2tlbnMiOjM0LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTQsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMjdUMDA6NTA6MzIuMjc4OTA2NjM4WiIsIlNlcSI6MTAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InJlYWQtZmlsZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjgwNzg5LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRmlsZVwiOiBcIm5ldC94MjUvS2NvbmZpZ1wiLFxuICBcIkZpcnN0TGluZVwiOiAxLFxuICBcIkxpbmVDb3VudFwiOiAyMFxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiQ29udGVudHNcIjogXCIgICAxOlxcdCMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25seVxcbiAgIDI6XFx0I1xcbiAgIDM6XFx0IyBDQ0lUVCBYLjI1IFBhY2tldCBMYXllclxcbiAgIDQ6XFx0I1xcbiAgIDU6XFx0XFxuICAgNjpcXHRjb25maWcgWDI1XFxuICAgNzpcXHRcXHR0cmlzdGF0ZSBcXFwiQ0NJVFQgWC4yNSBQYWNrZXQgTGF5ZXJcXFwiXFxuICAgODpcXHRcXHRoZWxwXFxuICAgOTpcXHRcXHQgIFguMjUgaXMgYSBzZXQgb2Ygc3RhbmRhcmRpemVkIG5ldHdvcmsgcHJvdG9jb2xzLCBzaW1pbGFyIGluIHNjb3BlIHRvXFxuICAxMDpcXHRcXHQgIGZyYW1lIHJlbGF5OyB0aGUgb25lIHBoeXNpY2FsIGxpbmUgZnJvbSB5b3VyIGJveCB0byB0aGUgWC4yNSBuZXR3b3JrXFxuICAxMTpcXHRcXHQgIGVudHJ5IHBvaW50IGNhbiBjYXJyeSBzZXZlcmFsIGxvZ2ljYWwgcG9pbnQtdG8tcG9pbnQgY29ubmVjdGlvbnNcXG4gIDEyOlxcdFxcdCAgKGNhbGxlZCBcXFwidmlydHVhbCBjaXJjdWl0c1xcXCIpIHRvIG90aGVyIGNvbXB1dGVycyBjb25uZWN0ZWQgdG8gdGhlIFguMjVcXG4gIDEzOlxcdFxcdCAgbmV0d29yay4gR292ZXJubWVudHMsIGJhbmtzLCBhbmQgb3RoZXIgb3JnYW5pemF0aW9ucyB0ZW5kIHRvIHVzZSBpdFxcbiAgMTQ6XFx0XFx0ICB0byBjb25uZWN0IHRvIGVhY2ggb3RoZXIgb3IgdG8gZm9ybSBXaWRlIEFyZWEgTmV0d29ya3MgKFdBTnMpLiBNYW55XFxuICAxNTpcXHRcXHQgIGNvdW50cmllcyBoYXZlIHB1YmxpYyBYLjI1IG5ldHdvcmtzLiBYLjI1IGNvbnNpc3RzIG9mIHR3b1xcbiAgMTY6XFx0XFx0ICBwcm90b2NvbHM6IHRoZSBoaWdoZXIgbGV2ZWwgUGFja2V0IExheWVyIFByb3RvY29sIChQTFApIChzYXkgWSBoZXJlXFxuICAxNzpcXHRcXHQgIGlmIHlvdSB3YW50IHRoYXQpIGFuZCB0aGUgbG93ZXIgbGV2ZWwgZGF0YSBsaW5rIGxheWVyIHByb3RvY29sIExBUEJcXG4gIDE4OlxcdFxcdCAgKHNheSBZIHRvIFxcXCJMQVBCIERhdGEgTGluayBEcml2ZXJcXFwiIGJlbG93IGlmIHlvdSB3YW50IHRoYXQpLlxcbiAgMTk6XFx0XFxuICAyMDpcXHRcXHQgIEluZm9ybWF0aW9uIGFib3V0IFguMjUgZm9yIExpbnV4IGlzIGNvbnRhaW5lZCBpbiB0aGUgZmlsZXNcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjdUMDA6NTA6MzIuMjc4OTg5OTY5WiIsIlNlcSI6MTEsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjI5ODQzMjYyMDMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSB0aG91Z2h0IHByb2Nlc3Mgc3VtbWFyaXplZCwgZ2VhcmVkIHRvd2FyZHMgYW4gZXhwZXJ0OlxuXG4qKkludmVzdGlnYXRpbmcgYSBQb3RlbnRpYWwgTmV0d29yayBDb25maWd1cmF0aW9uIERlcGVuZGVuY3kqKlxuXG5BbHJpZ2h0LCBJIG5lZWQgdG8gZmlndXJlIHNvbWV0aGluZyBvdXQsIGFuZCB0aGUgc2l0dWF0aW9uIGxvb2tzIHNpbXBsZSBlbm91Z2ggdG8gc3RhcnQgd2l0aCBhIGRlcGVuZGVuY3kgY2hlY2suIEknbSBhc3N1bWluZyBubyBvYnZpb3VzIGV4dGVybmFsIGxpYnJhcmllcyBvciBtb2R1bGVzIGFyZSBkaXJlY3RseSBpbmZsdWVuY2luZyB0aGlzLlxuXG5UaGUgaW1tZWRpYXRlIHN0ZXAgSSdtIHRha2luZyBpcyB0byBkZWx2ZSBpbnRvIHRoZSBgbmV0L0tjb25maWdgIGZpbGUuIEdpdmVuIG15IGV4cGVyaWVuY2UsIHRoYXQncyBhbG1vc3QgYWx3YXlzIHRoZSBmaXJzdCBwbGFjZSB0byBsb29rIHdoZW4gZGVhbGluZyB3aXRoIG5ldHdvcmsgY29uZmlndXJhdGlvbiBvcHRpb25zIGluIHRoaXMgZW52aXJvbm1lbnQuIFNwZWNpZmljYWxseSwgSSdtIHRyeWluZyB0byBkZXRlcm1pbmUgaWYgdGhlIGBYMjVgIG9wdGlvbiBpcyBzb3VyY2VkIGFueXdoZXJlLiBUaGlzIHdpbGwgcXVpY2tseSByZXZlYWwgaWYgaXQncyBkZXBlbmRlbnQgb24gb3RoZXIgY29tcG9uZW50cyBvciBpZiBpdCBjYW4gYmUgZW5hYmxlZCBpbmRlcGVuZGVudGx5LlxuXG5cbiIsIklucHV0VG9rZW5zIjo3MjExLCJPdXRwdXRUb2tlbnMiOjM1LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjUsIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yN1QwMDo1MDozNS4yNjMzMTgzNDFaIiwiU2VxIjoxMiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjI5ODIxODU4NCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJzb3VyY2UgXFxcIm5ldC94MjUvS2NvbmZpZ1xcXCJcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwibmV0L0tjb25maWdcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwibmV0L0tjb25maWc9MjYzPXNvdXJjZSBcXFwibmV0L2xsYy9LY29uZmlnXFxcIlxcbm5ldC9LY29uZmlnOjI2NDpzb3VyY2UgXFxcIm5ldC94MjUvS2NvbmZpZ1xcXCJcXG5uZXQvS2NvbmZpZy0yNjUtc291cmNlIFxcXCJuZXQvbGFwYi9LY29uZmlnXFxcIlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yN1QwMDo1MDozNS41NjE1NDE5NjVaIiwiU2VxIjoxMywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzkyMTk3NjI5NSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IHN1bW1hcnksIHByZXNlbnRlZCBhcyBhIGRpcmVjdCByZWZsZWN0aW9uIG9mIG15IHRob3VnaHQgcHJvY2VzczpcblxuKipTdHJlYW1saW5pbmcgdGhlIENvbmZpZ3VyYXRpb24qKlxuXG5BbHJpZ2h0LCB0aGF0J3MgY29ycmVjdCwgYWJzb2x1dGVseS4gTG9va2luZyBhdCB0aGlzLCBJIHNlZSBpdCdzIHRydWUuIFRoZSBpbml0aWFsIGFzc2Vzc21lbnQgd2FzIGFjY3VyYXRlLiBJdCBhcHBlYXJzIHRoYXQgYFgyNWAgaXMgaW5kZWVkIHRoZSAqb25seSogY29uZmlndXJhdGlvbiB3ZSBuZWVkIHRvIGZvY3VzIG9uLiBXZSBjYW4gc2ltcGxpZnkgdGhpbmdzIGRyYXN0aWNhbGx5LCB3aGljaCBpcyBhbHdheXMgYSB3aW4uIE5vdywgbGV0J3MgY2FsbCB0aGUgbmV4dCBwcm9jZWR1cmUuIEkgdGhpbmsgd2Ugd2lsbCBjYWxsIGl0IGBzZXQtcmVzdWx0c2AuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjc0OTMsIk91dHB1dFRva2VucyI6MTgyLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjgsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMjdUMDA6NTA6MzkuNDgzNTIwOThaIiwiU2VxIjoxNCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo3NjgyNDYwOCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiWDI1XCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwieDI1X3N0YXJ0X2hlYXJ0YmVhdFwiLFxuICAgIFwieDI1X3N0b3BfaGVhcnRiZWF0XCIsXG4gICAgXCJ4MjVfc3RhcnRfdDJ0aW1lclwiLFxuICAgIFwieDI1X3N0YXJ0X3QyMXRpbWVyXCIsXG4gICAgXCJ4MjVfc3RhcnRfdDIydGltZXJcIixcbiAgICBcIngyNV9zdGFydF90MjN0aW1lclwiLFxuICAgIFwieDI1X3N0b3BfdGltZXJcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBmaXhlcyB0aW1lciBoYW5kbGluZyBhbmQgc29ja2V0IHJlZmNvdW50aW5nIGluIHRoZSBYLjI1IHByb3RvY29sIGltcGxlbWVudGF0aW9uLiBJdCByZXBsYWNlcyBtb2RfdGltZXIgd2l0aCBza19yZXNldF90aW1lciBhbmQgYWRkcyBzb2NrX3B1dCB0byB0aW1lciBjYWxsYmFja3MgdG8gcHJldmVudCB1c2UtYWZ0ZXItZnJlZSBvciBtZW1vcnkgbGVha3MuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiBuZXR3b3JrIHByb3RvY29sIGxvZ2ljIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJYMjVcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJ4MjVfc3RhcnRfaGVhcnRiZWF0XCIsXG4gICAgXCJ4MjVfc3RvcF9oZWFydGJlYXRcIixcbiAgICBcIngyNV9zdGFydF90MnRpbWVyXCIsXG4gICAgXCJ4MjVfc3RhcnRfdDIxdGltZXJcIixcbiAgICBcIngyNV9zdGFydF90MjJ0aW1lclwiLFxuICAgIFwieDI1X3N0YXJ0X3QyM3RpbWVyXCIsXG4gICAgXCJ4MjVfc3RvcF90aW1lclwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGZpeGVzIHRpbWVyIGhhbmRsaW5nIGFuZCBzb2NrZXQgcmVmY291bnRpbmcgaW4gdGhlIFguMjUgcHJvdG9jb2wgaW1wbGVtZW50YXRpb24uIEl0IHJlcGxhY2VzIG1vZF90aW1lciB3aXRoIHNrX3Jlc2V0X3RpbWVyIGFuZCBhZGRzIHNvY2tfcHV0IHRvIHRpbWVyIGNhbGxiYWNrcyB0byBwcmV2ZW50IHVzZS1hZnRlci1mcmVlIG9yIG1lbW9yeSBsZWFrcy4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIG5ldHdvcmsgcHJvdG9jb2wgbG9naWMgdGhhdCBzaG91bGQgYmUgZnV6emVkLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH1dOwoJCQlpZiAoIXJhd0RhdGEgfHwgcmF3RGF0YS5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpOwoJCQlkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKTsKCQkJZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpIHsKCQkJY29uc3Qgc3RhdHMgPSB7CgkJCQlsbG06IHsgY291bnQ6IDAsIHRva2VuczogMCwgZHVyYXRpb246IDAgfSwKCQkJCXRvb2w6IHsgY291bnQ6IDAsIGR1cmF0aW9uOiAwIH0KCQkJfTsKCgkJCXJhd0RhdGEuZm9yRWFjaChzID0+IHsKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOyAKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iKSB7CgkJCQkJc3RhdHMubGxtLmNvdW50Kys7CgkJCQkJc3RhdHMubGxtLnRva2VucyArPSAocy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2Vucyk7CgkJCQkJc3RhdHMubGxtLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0gZWxzZSBpZiAocy5UeXBlID09PSAidG9vbCIpIHsKCQkJCQlzdGF0cy50b29sLmNvdW50Kys7CgkJCQkJc3RhdHMudG9vbC5kdXJhdGlvbiArPSBkdXI7CgkJCQl9CgkJCX0pOwoKCQkJY29uc3QgYXZnTGxtRHVyID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0uZHVyYXRpb24gLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdMbG1Ub2tlbiA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLnRva2VucyAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z1Rvb2xEdXIgPSBzdGF0cy50b29sLmNvdW50ID4gMCA/IChzdGF0cy50b29sLmR1cmF0aW9uIC8gc3RhdHMudG9vbC5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgoJCQljb25zdCBsbG1TdW1hcnlDZWxscyA9IFtzdGF0cy5sbG0uY291bnQsIHN0YXRzLmxsbS50b2tlbnMsIGF2Z0xsbVRva2VuLCBzdGF0cy5sbG0uZHVyYXRpb24sIGF2Z0xsbUR1cl07CgkJCWNvbnN0IHRvb2xTdW1tYXJ5Q2VsbHMgPSBbc3RhdHMudG9vbC5jb3VudCwgc3RhdHMudG9vbC5kdXJhdGlvbiwgYXZnVG9vbER1cl07CgoJCQljb25zdCBsbG1TdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsbG1fc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCWxsbVN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCBsbG1UciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCWxsbVN1bWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQlsbG1Uci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQlsbG1TdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZChsbG1Ucik7CgoJCQljb25zdCB0b29sU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJdG9vbFN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCB0b29sVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQl0b29sU3VtbWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQl0b29sVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJdG9vbFN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKHRvb2xUcik7CgkJfQoKCQlmdW5jdGlvbiBkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGZpbHRlcmVkU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IFsibGxtIiwgInRvb2wiXS5pbmNsdWRlcyhkLlR5cGUpKTsKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnRHVyYXRpb24nKTsKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsgCgoJCQlmaWx0ZXJlZFN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQkKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOwoJCQkJbGV0IHRvb2x0aXAgPSBzLk5hbWU7CgkJCQlpZiAocy5UeXBlID09PSAibGxtIiAmJiBzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgkJCQlkYXRhLmFkZFJvdyhbYCR7cy5TZXF9YCwgZHVyLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVGltZSBDb25zdW1wdGlvbiBvZiBMTE0vVG9vbCBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNL1Rvb2wgU3RlcHMnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnU2Vjb25kcycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZHVyYXRpb25fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGxsbVN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBkLlR5cGUgPT09ICJsbG0iKTsKCQkJaWYgKGxsbVN0ZXBzLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnVG9rZW5zJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3N0eWxlJ30pOwkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsJCgoJCQljb25zdCBhZ2VudENvbG9ycyA9IHt9OwoJCQljb25zdCBwYWxldHRlID0gWycjNDI4NUY0JywgJyNEQjQ0MzcnLCAnI0Y0QjQwMCcsICcjMEY5RDU4JywgJyNBQjQ3QkMnLCAnIzAwQUNDMSddOwoJCQlsZXQgY29sb3JJZHggPSAwOwoJCQljb25zdCBhZ2VudExMTUNvdW50cyA9IHt9OwoJCQlsbG1TdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJaWYgKCFhZ2VudENvbG9yc1tzLk5hbWVdKSB7CgkJCQkJYWdlbnRDb2xvcnNbcy5OYW1lXSA9IHBhbGV0dGVbY29sb3JJZHggJSBwYWxldHRlLmxlbmd0aF07CgkJCQkJY29sb3JJZHgrKzsKCQkJCX0KCgkJCQlhZ2VudExMTUNvdW50c1tzLk5hbWVdID0gKGFnZW50TExNQ291bnRzW3MuTmFtZV0gfHwgMCkgKyAxOwoJCQkJY29uc3QgbGFiZWwgPSBgJHtzLk5hbWV9LSR7YWdlbnRMTE1Db3VudHNbcy5OYW1lXX1gOwoJCQkJY29uc3QgdG90YWxUb2tlbnMgPSBzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zOwoJCQkJY29uc3Qgc3R5bGUgPSBgY29sb3I6ICR7YWdlbnRDb2xvcnNbcy5OYW1lXX1gOwoJCQkJbGV0IHRvb2x0aXAgPSBgVG90YWwgVG9rZW5zOiAke3RvdGFsVG9rZW5zfVxuKEluOiAke3MuSW5wdXRUb2tlbnN9LCBPdXQ6ICR7cy5PdXRwdXRUb2tlbnN9LCBUaG91Z2h0czogJHtzLk91dHB1dFRob3VnaHRzVG9rZW5zfSlgOwoJCQkJaWYgKHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCgkJCQlkYXRhLmFkZFJvdyhbbGFiZWwsIHRvdGFsVG9rZW5zLCBzdHlsZSwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1Rva2VuIENvbnN1bXB0aW9uIGJ5IExMTSBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNIENhbGwgU2VxdWVuY2UnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnQ29uc3VtZWQgVG9rZW5zJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b2tlbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoJCWxldCBhbGxFeHBhbmRlZCA9IGZhbHNlOwoJCWZ1bmN0aW9uIHRvZ2dsZUFsbERldGFpbHMoKSB7CgkJCWFsbEV4cGFuZGVkID0gIWFsbEV4cGFuZGVkOwoJCQlkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdkZXRhaWxzJykuZm9yRWFjaChkID0+IHsKCQkJCWlmIChhbGxFeHBhbmRlZCkgZC5zZXRBdHRyaWJ1dGUoJ29wZW4nLCAnJyk7CgkJCQllbHNlIGQucmVtb3ZlQXR0cmlidXRlKCdvcGVuJyk7CgkJCX0pOwoJCX0KCTwvc2NyaXB0PgoKCjwvYm9keT4KPC9odG1sPgo=" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowhhkcd[0].run-triage(0) Phase: Succeeded StartedAt: 2026-07-27 00:09:04 +0000 UTC FinishedAt: 2026-07-27 00:50:41 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "net", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git", "commit_hash": "39e88f28fb32bf02bd4b525c24c842c9cff5663d", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "X25" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "net", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git", "commit_hash": "39e88f28fb32bf02bd4b525c24c842c9cff5663d", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "X25" ], "series_id": "990cd1a2-558b-4bce-a0cc-6efb77d10e65" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [ "x25_start_heartbeat", "x25_stop_heartbeat", "x25_start_t2timer", "x25_start_t21timer", "x25_start_t22timer", "x25_start_t23timer", "x25_stop_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+CgkJCTx0ZD4yMDI2LzA3LzI3IDAwOjUwPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O1gyNSYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O3gyNV9zdGFydF9oZWFydGJlYXQmIzM0OywKICAgICYjMzQ7eDI1X3N0b3BfaGVhcnRiZWF0JiMzNDssCiAgICAmIzM0O3gyNV9zdGFydF90MnRpbWVyJiMzNDssCiAgICAmIzM0O3gyNV9zdGFydF90MjF0aW1lciYjMzQ7LAogICAgJiMzNDt4MjVfc3RhcnRfdDIydGltZXImIzM0OywKICAgICYjMzQ7eDI1X3N0YXJ0X3QyM3RpbWVyJiMzNDssCiAgICAmIzM0O3gyNV9zdG9wX3RpbWVyJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGZpeGVzIHRpbWVyIGhhbmRsaW5nIGFuZCBzb2NrZXQgcmVmY291bnRpbmcgaW4gdGhlIFguMjUgcHJvdG9jb2wgaW1wbGVtZW50YXRpb24uIEl0IHJlcGxhY2VzIG1vZF90aW1lciB3aXRoIHNrX3Jlc2V0X3RpbWVyIGFuZCBhZGRzIHNvY2tfcHV0IHRvIHRpbWVyIGNhbGxiYWNrcyB0byBwcmV2ZW50IHVzZS1hZnRlci1mcmVlIG9yIG1lbW9yeSBsZWFrcy4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIG5ldHdvcmsgcHJvdG9jb2wgbG9naWMgdGhhdCBzaG91bGQgYmUgZnV6emVkLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI3IDAwOjUwPC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5yZWFkLXBhdGNoLWRpZmY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtQYXRjaERpZmYmIzM0OzogJiMzNDtjb21taXQgYTc0MjYxYzQ0M2U0YWY0MmNhOTViZjUyYThiMjdkN2U2MjVlYWVhNVxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBNb24gSnVsIDI3IDAwOjUwOjA1IDIwMjYgJiM0MzswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL25ldC94MjUvYWZfeDI1LmMgYi9uZXQveDI1L2FmX3gyNS5jXG5pbmRleCBjMzFkMmFmNWRkMjIzMy4uNWYyZmVlNGRhODUzMDQgMTAwNjQ0XG4tLS0gYS9uZXQveDI1L2FmX3gyNS5jXG4mIzQzOyYjNDM7JiM0MzsgYi9uZXQveDI1L2FmX3gyNS5jXG5AQCAtMzYzLDYgJiM0MzszNjMsNyBAQCBzdGF0aWMgdm9pZCB4MjVfZGVzdHJveV90aW1lcihzdHJ1Y3QgdGltZXJfbGlzdCAqdClcbiBcdHN0cnVjdCBzb2NrICpzayA9IHRpbWVyX2NvbnRhaW5lcl9vZihzaywgdCwgc2tfdGltZXIpO1xuIFxuIFx0eDI1X2Rlc3Ryb3lfc29ja2V0X2Zyb21fdGltZXIoc2spO1xuJiM0MztcdHNvY2tfcHV0KHNrKTtcbiB9XG4gXG4gLypcbkBAIC0zOTgsOSAmIzQzOzM5OSw4IEBAIHN0YXRpYyB2b2lkIF9feDI1X2Rlc3Ryb3lfc29ja2V0KHN0cnVjdCBzb2NrICpzaylcbiBcbiBcdGlmIChza19oYXNfYWxsb2NhdGlvbnMoc2spKSB7XG4gXHRcdC8qIERlZmVyOiBvdXRzdGFuZGluZyBidWZmZXJzICovXG4tXHRcdHNrLVx1MDAzZXNrX3RpbWVyLmV4cGlyZXMgID0gamlmZmllcyAmIzQzOyAxMCAqIEhaO1xuIFx0XHRzay1cdTAwM2Vza190aW1lci5mdW5jdGlvbiA9IHgyNV9kZXN0cm95X3RpbWVyO1xuLVx0XHRhZGRfdGltZXIoXHUwMDI2c2stXHUwMDNlc2tfdGltZXIpO1xuJiM0MztcdFx0c2tfcmVzZXRfdGltZXIoc2ssIFx1MDAyNnNrLVx1MDAzZXNrX3RpbWVyLCBqaWZmaWVzICYjNDM7IDEwICogSFopO1xuIFx0fSBlbHNlIHtcbiBcdFx0LyogZHJvcCBsYXN0IHJlZmVyZW5jZSBzbyBzb2NrX3B1dCB3aWxsIGZyZWUgKi9cbiBcdFx0X19zb2NrX3B1dChzayk7XG5kaWZmIC0tZ2l0IGEvbmV0L3gyNS94MjVfdGltZXIuYyBiL25ldC94MjUveDI1X3RpbWVyLmNcbmluZGV4IDJlYzYzYTFmNGM2ZDQyLi43ODk2Y2Q0M2YxY2MxZSAxMDA2NDRcbi0tLSBhL25ldC94MjUveDI1X3RpbWVyLmNcbiYjNDM7JiM0MzsmIzQzOyBiL25ldC94MjUveDI1X3RpbWVyLmNcbkBAIC0zNiw0NSAmIzQzOzM2LDQ1IEBAIHZvaWQgeDI1X2luaXRfdGltZXJzKHN0cnVjdCBzb2NrICpzaylcbiBcbiB2b2lkIHgyNV9zdGFydF9oZWFydGJlYXQoc3RydWN0IHNvY2sgKnNrKVxuIHtcbi1cdG1vZF90aW1lcihcdTAwMjZzay1cdTAwM2Vza190aW1lciwgamlmZmllcyAmIzQzOyA1ICogSFopO1xuJiM0MztcdHNrX3Jlc2V0X3RpbWVyKHNrLCBcdTAwMjZzay1cdTAwM2Vza190aW1lciwgamlmZmllcyAmIzQzOyA1ICogSFopO1xuIH1cbiBcbiB2b2lkIHgyNV9zdG9wX2hlYXJ0YmVhdChzdHJ1Y3Qgc29jayAqc2spXG4ge1xuLVx0dGltZXJfZGVsZXRlKFx1MDAyNnNrLVx1MDAzZXNrX3RpbWVyKTtcbiYjNDM7XHRza19zdG9wX3RpbWVyKHNrLCBcdTAwMjZzay1cdTAwM2Vza190aW1lcik7XG4gfVxuIFxuIHZvaWQgeDI1X3N0YXJ0X3QydGltZXIoc3RydWN0IHNvY2sgKnNrKVxuIHtcbiBcdHN0cnVjdCB4MjVfc29jayAqeDI1ID0geDI1X3NrKHNrKTtcbiBcbi1cdG1vZF90aW1lcihcdTAwMjZ4MjUtXHUwMDNldGltZXIsIGppZmZpZXMgJiM0MzsgeDI1LVx1MDAzZXQyKTtcbiYjNDM7XHRza19yZXNldF90aW1lcihzaywgXHUwMDI2eDI1LVx1MDAzZXRpbWVyLCBqaWZmaWVzICYjNDM7IHgyNS1cdTAwM2V0Mik7XG4gfVxuIFxuIHZvaWQgeDI1X3N0YXJ0X3QyMXRpbWVyKHN0cnVjdCBzb2NrICpzaylcbiB7XG4gXHRzdHJ1Y3QgeDI1X3NvY2sgKngyNSA9IHgyNV9zayhzayk7XG4gXG4tXHRtb2RfdGltZXIoXHUwMDI2eDI1LVx1MDAzZXRpbWVyLCBqaWZmaWVzICYjNDM7IHgyNS1cdTAwM2V0MjEpO1xuJiM0MztcdHNrX3Jlc2V0X3RpbWVyKHNrLCBcdTAwMjZ4MjUtXHUwMDNldGltZXIsIGppZmZpZXMgJiM0MzsgeDI1LVx1MDAzZXQyMSk7XG4gfVxuIFxuIHZvaWQgeDI1X3N0YXJ0X3QyMnRpbWVyKHN0cnVjdCBzb2NrICpzaylcbiB7XG4gXHRzdHJ1Y3QgeDI1X3NvY2sgKngyNSA9IHgyNV9zayhzayk7XG4gXG4tXHRtb2RfdGltZXIoXHUwMDI2eDI1LVx1MDAzZXRpbWVyLCBqaWZmaWVzICYjNDM7IHgyNS1cdTAwM2V0MjIpO1xuJiM0MztcdHNrX3Jlc2V0X3RpbWVyKHNrLCBcdTAwMjZ4MjUtXHUwMDNldGltZXIsIGppZmZpZXMgJiM0MzsgeDI1LVx1MDAzZXQyMik7XG4gfVxuIFxuIHZvaWQgeDI1X3N0YXJ0X3QyM3RpbWVyKHN0cnVjdCBzb2NrICpzaylcbiB7XG4gXHRzdHJ1Y3QgeDI1X3NvY2sgKngyNSA9IHgyNV9zayhzayk7XG4gXG4tXHRtb2RfdGltZXIoXHUwMDI2eDI1LVx1MDAzZXRpbWVyLCBqaWZmaWVzICYjNDM7IHgyNS1cdTAwM2V0MjMpO1xuJiM0MztcdHNrX3Jlc2V0X3RpbWVyKHNrLCBcdTAwMjZ4MjUtXHUwMDNldGltZXIsIGppZmZpZXMgJiM0MzsgeDI1LVx1MDAzZXQyMyk7XG4gfVxuIFxuIHZvaWQgeDI1X3N0b3BfdGltZXIoc3RydWN0IHNvY2sgKnNrKVxuIHtcbi1cdHRpbWVyX2RlbGV0ZShcdTAwMjZ4MjVfc2soc2spLVx1MDAzZXRpbWVyKTtcbiYjNDM7XHRza19zdG9wX3RpbWVyKHNrLCBcdTAwMjZ4MjVfc2soc2spLVx1MDAzZXRpbWVyKTtcbiB9XG4gXG4gdW5zaWduZWQgbG9uZyB4MjVfZGlzcGxheV90aW1lcihzdHJ1Y3Qgc29jayAqc2spXG5AQCAtMTA4LDcgJiM0MzsxMDgsNyBAQCBzdGF0aWMgdm9pZCB4MjVfaGVhcnRiZWF0X2V4cGlyeShzdHJ1Y3QgdGltZXJfbGlzdCAqdClcbiBcdFx0XHQgICAgIHNvY2tfZmxhZyhzaywgU09DS19ERUFEKSkpIHtcbiBcdFx0XHRcdGJoX3VubG9ja19zb2NrKHNrKTtcbiBcdFx0XHRcdHgyNV9kZXN0cm95X3NvY2tldF9mcm9tX3RpbWVyKHNrKTtcbi1cdFx0XHRcdHJldHVybjtcbiYjNDM7XHRcdFx0XHRnb3RvIG91dDtcbiBcdFx0XHR9XG4gXHRcdFx0YnJlYWs7XG4gXG5AQCAtMTIwLDggJiM0MzsxMjAsMTQgQEAgc3RhdGljIHZvaWQgeDI1X2hlYXJ0YmVhdF9leHBpcnkoc3RydWN0IHRpbWVyX2xpc3QgKnQpXG4gXHRcdFx0YnJlYWs7XG4gXHR9XG4gcmVzdGFydF9oZWFydGJlYXQ6XG4tXHR4MjVfc3RhcnRfaGVhcnRiZWF0KHNrKTtcbiYjNDM7XHQvKiBEbyBub3QgcmVhcm0gb25jZSBfX3gyNV9kZXN0cm95X3NvY2tldCgpIGhhcyB1bmxpbmtlZCB0aGUgc29ja2V0OlxuJiM0MztcdCAqIGl0IGlzIHBhc3QgaXRzIGNhbmNlbCBwb2ludCBhbmQgb3ducyB0aGUgdGVhcmRvd24gZnJvbSB0aGVyZSBvbi5cbiYjNDM7XHQgKi9cbiYjNDM7XHRpZiAoc2tfaGFzaGVkKHNrKSlcbiYjNDM7XHRcdHgyNV9zdGFydF9oZWFydGJlYXQoc2spO1xuIFx0YmhfdW5sb2NrX3NvY2soc2spO1xuJiM0MztvdXQ6XG4mIzQzO1x0c29ja19wdXQoc2spO1xuIH1cbiBcbiAvKlxuQEAgLTE2Niw0ICYjNDM7MTcyLDUgQEAgc3RhdGljIHZvaWQgeDI1X3RpbWVyX2V4cGlyeShzdHJ1Y3QgdGltZXJfbGlzdCAqdClcbiBcdH0gZWxzZVxuIFx0XHR4MjVfZG9fdGltZXJfZXhwaXJ5KHNrKTtcbiBcdGJoX3VubG9ja19zb2NrKHNrKTtcbiYjNDM7XHRzb2NrX3B1dChzayk7XG4gfVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI3IDAwOjUwPC90ZD4KCQkJPHRkPmFnZW50PC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmJlc3QtZXhwZW5zaXZlPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtYMjUmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDt4MjVfc3RhcnRfaGVhcnRiZWF0JiMzNDssCiAgICAmIzM0O3gyNV9zdG9wX2hlYXJ0YmVhdCYjMzQ7LAogICAgJiMzNDt4MjVfc3RhcnRfdDJ0aW1lciYjMzQ7LAogICAgJiMzNDt4MjVfc3RhcnRfdDIxdGltZXImIzM0OywKICAgICYjMzQ7eDI1X3N0YXJ0X3QyMnRpbWVyJiMzNDssCiAgICAmIzM0O3gyNV9zdGFydF90MjN0aW1lciYjMzQ7LAogICAgJiMzNDt4MjVfc3RvcF90aW1lciYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBmaXhlcyB0aW1lciBoYW5kbGluZyBhbmQgc29ja2V0IHJlZmNvdW50aW5nIGluIHRoZSBYLjI1IHByb3RvY29sIGltcGxlbWVudGF0aW9uLiBJdCByZXBsYWNlcyBtb2RfdGltZXIgd2l0aCBza19yZXNldF90aW1lciBhbmQgYWRkcyBzb2NrX3B1dCB0byB0aW1lciBjYWxsYmFja3MgdG8gcHJldmVudCB1c2UtYWZ0ZXItZnJlZSBvciBtZW1vcnkgbGVha3MuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiBuZXR3b3JrIHByb3RvY29sIGxvZ2ljIHRoYXQgc2hvdWxkIGJlIGZ1enplZC4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkluc3RydWN0aW9uOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+WW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuCllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lCmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC4KCklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpbgp5b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHkKdXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy4KClJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6Ci0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy4KLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy4KLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuCi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLAogIGV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS4KLSBDb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCwKICBpb25pYywgYW1kZ3B1KSB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS4KLSBEcml2ZXIgLnJlbW92ZSwgLnNodXRkb3duLCBvciBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzIChlLmcuLCBpZ2JfcmVtb3ZlKQogIHRoYXQgYXJlIGV4ZWN1dGVkIG9ubHkgZHVyaW5nIFBDSSBob3QtdW5wbHVnIG9yIHN5c2ZzIGRyaXZlciB1bmJpbmQgb3BlcmF0aW9ucy4KCklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2gKdG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuCgpXaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzoKMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy4KICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuCiAgIFByZWZlciBub24tc3RhdGljLCBub24taW5saW5lZCBBUEkgZW50cnlwb2ludCBmdW5jdGlvbnMgb3ZlciBpbnRlcm5hbCBzdGF0aWMgaGVscGVyIGZ1bmN0aW9ucwogICAod2hpY2ggYXJlIGlubGluZWQgYnkgdGhlIGNvbXBpbGVyIGFuZCBkbyBub3QgaGF2ZSBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzKS4KMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuCiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy4KICAgQWxzbyBjaGVjayAmIzM0O2RlcGVuZHMgb24mIzM0OyBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3MKICAgbmVlZGVkIGZvciBLYnVpbGQgdG8gY29tcGlsZSB0aGUgY29kZSBzdGF0aWNhbGx5IGludG8gdm1saW51eC4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzCiAgIG91dHB1dCBhcnJheSwgYW5kIERPIE5PVCBhZGQgYSAmIzM5O0NPTkZJR18mIzM5OyBwcmVmaXggKGUuZy4sIHJldHVybiAmIzM0O05FVF9JUFY0JiMzNDsgaW5zdGVhZCBvZiAmIzM0O0NPTkZJR19ORVRfSVBWNCYjMzQ7KS4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IGE3NDI2MWM0NDNlNGFmNDJjYTk1YmY1MmE4YjI3ZDdlNjI1ZWFlYTUKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgTW9uIEp1bCAyNyAwMDo1MDowNSAyMDI2ICYjNDM7MDAwMAoKICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldwoKZGlmZiAtLWdpdCBhL25ldC94MjUvYWZfeDI1LmMgYi9uZXQveDI1L2FmX3gyNS5jCmluZGV4IGMzMWQyYWY1ZGQyMjMzLi41ZjJmZWU0ZGE4NTMwNCAxMDA2NDQKLS0tIGEvbmV0L3gyNS9hZl94MjUuYwomIzQzOyYjNDM7JiM0MzsgYi9uZXQveDI1L2FmX3gyNS5jCkBAIC0zNjMsNiAmIzQzOzM2Myw3IEBAIHN0YXRpYyB2b2lkIHgyNV9kZXN0cm95X3RpbWVyKHN0cnVjdCB0aW1lcl9saXN0ICp0KQogCXN0cnVjdCBzb2NrICpzayA9IHRpbWVyX2NvbnRhaW5lcl9vZihzaywgdCwgc2tfdGltZXIpOwogCiAJeDI1X2Rlc3Ryb3lfc29ja2V0X2Zyb21fdGltZXIoc2spOwomIzQzOwlzb2NrX3B1dChzayk7CiB9CiAKIC8qCkBAIC0zOTgsOSAmIzQzOzM5OSw4IEBAIHN0YXRpYyB2b2lkIF9feDI1X2Rlc3Ryb3lfc29ja2V0KHN0cnVjdCBzb2NrICpzaykKIAogCWlmIChza19oYXNfYWxsb2NhdGlvbnMoc2spKSB7CiAJCS8qIERlZmVyOiBvdXRzdGFuZGluZyBidWZmZXJzICovCi0JCXNrLSZndDtza190aW1lci5leHBpcmVzICA9IGppZmZpZXMgJiM0MzsgMTAgKiBIWjsKIAkJc2stJmd0O3NrX3RpbWVyLmZ1bmN0aW9uID0geDI1X2Rlc3Ryb3lfdGltZXI7Ci0JCWFkZF90aW1lcigmYW1wO3NrLSZndDtza190aW1lcik7CiYjNDM7CQlza19yZXNldF90aW1lcihzaywgJmFtcDtzay0mZ3Q7c2tfdGltZXIsIGppZmZpZXMgJiM0MzsgMTAgKiBIWik7CiAJfSBlbHNlIHsKIAkJLyogZHJvcCBsYXN0IHJlZmVyZW5jZSBzbyBzb2NrX3B1dCB3aWxsIGZyZWUgKi8KIAkJX19zb2NrX3B1dChzayk7CmRpZmYgLS1naXQgYS9uZXQveDI1L3gyNV90aW1lci5jIGIvbmV0L3gyNS94MjVfdGltZXIuYwppbmRleCAyZWM2M2ExZjRjNmQ0Mi4uNzg5NmNkNDNmMWNjMWUgMTAwNjQ0Ci0tLSBhL25ldC94MjUveDI1X3RpbWVyLmMKJiM0MzsmIzQzOyYjNDM7IGIvbmV0L3gyNS94MjVfdGltZXIuYwpAQCAtMzYsNDUgJiM0MzszNiw0NSBAQCB2b2lkIHgyNV9pbml0X3RpbWVycyhzdHJ1Y3Qgc29jayAqc2spCiAKIHZvaWQgeDI1X3N0YXJ0X2hlYXJ0YmVhdChzdHJ1Y3Qgc29jayAqc2spCiB7Ci0JbW9kX3RpbWVyKCZhbXA7c2stJmd0O3NrX3RpbWVyLCBqaWZmaWVzICYjNDM7IDUgKiBIWik7CiYjNDM7CXNrX3Jlc2V0X3RpbWVyKHNrLCAmYW1wO3NrLSZndDtza190aW1lciwgamlmZmllcyAmIzQzOyA1ICogSFopOwogfQogCiB2b2lkIHgyNV9zdG9wX2hlYXJ0YmVhdChzdHJ1Y3Qgc29jayAqc2spCiB7Ci0JdGltZXJfZGVsZXRlKCZhbXA7c2stJmd0O3NrX3RpbWVyKTsKJiM0MzsJc2tfc3RvcF90aW1lcihzaywgJmFtcDtzay0mZ3Q7c2tfdGltZXIpOwogfQogCiB2b2lkIHgyNV9zdGFydF90MnRpbWVyKHN0cnVjdCBzb2NrICpzaykKIHsKIAlzdHJ1Y3QgeDI1X3NvY2sgKngyNSA9IHgyNV9zayhzayk7CiAKLQltb2RfdGltZXIoJmFtcDt4MjUtJmd0O3RpbWVyLCBqaWZmaWVzICYjNDM7IHgyNS0mZ3Q7dDIpOwomIzQzOwlza19yZXNldF90aW1lcihzaywgJmFtcDt4MjUtJmd0O3RpbWVyLCBqaWZmaWVzICYjNDM7IHgyNS0mZ3Q7dDIpOwogfQogCiB2b2lkIHgyNV9zdGFydF90MjF0aW1lcihzdHJ1Y3Qgc29jayAqc2spCiB7CiAJc3RydWN0IHgyNV9zb2NrICp4MjUgPSB4MjVfc2soc2spOwogCi0JbW9kX3RpbWVyKCZhbXA7eDI1LSZndDt0aW1lciwgamlmZmllcyAmIzQzOyB4MjUtJmd0O3QyMSk7CiYjNDM7CXNrX3Jlc2V0X3RpbWVyKHNrLCAmYW1wO3gyNS0mZ3Q7dGltZXIsIGppZmZpZXMgJiM0MzsgeDI1LSZndDt0MjEpOwogfQogCiB2b2lkIHgyNV9zdGFydF90MjJ0aW1lcihzdHJ1Y3Qgc29jayAqc2spCiB7CiAJc3RydWN0IHgyNV9zb2NrICp4MjUgPSB4MjVfc2soc2spOwogCi0JbW9kX3RpbWVyKCZhbXA7eDI1LSZndDt0aW1lciwgamlmZmllcyAmIzQzOyB4MjUtJmd0O3QyMik7CiYjNDM7CXNrX3Jlc2V0X3RpbWVyKHNrLCAmYW1wO3gyNS0mZ3Q7dGltZXIsIGppZmZpZXMgJiM0MzsgeDI1LSZndDt0MjIpOwogfQogCiB2b2lkIHgyNV9zdGFydF90MjN0aW1lcihzdHJ1Y3Qgc29jayAqc2spCiB7CiAJc3RydWN0IHgyNV9zb2NrICp4MjUgPSB4MjVfc2soc2spOwogCi0JbW9kX3RpbWVyKCZhbXA7eDI1LSZndDt0aW1lciwgamlmZmllcyAmIzQzOyB4MjUtJmd0O3QyMyk7CiYjNDM7CXNrX3Jlc2V0X3RpbWVyKHNrLCAmYW1wO3gyNS0mZ3Q7dGltZXIsIGppZmZpZXMgJiM0MzsgeDI1LSZndDt0MjMpOwogfQogCiB2b2lkIHgyNV9zdG9wX3RpbWVyKHN0cnVjdCBzb2NrICpzaykKIHsKLQl0aW1lcl9kZWxldGUoJmFtcDt4MjVfc2soc2spLSZndDt0aW1lcik7CiYjNDM7CXNrX3N0b3BfdGltZXIoc2ssICZhbXA7eDI1X3NrKHNrKS0mZ3Q7dGltZXIpOwogfQogCiB1bnNpZ25lZCBsb25nIHgyNV9kaXNwbGF5X3RpbWVyKHN0cnVjdCBzb2NrICpzaykKQEAgLTEwOCw3ICYjNDM7MTA4LDcgQEAgc3RhdGljIHZvaWQgeDI1X2hlYXJ0YmVhdF9leHBpcnkoc3RydWN0IHRpbWVyX2xpc3QgKnQpCiAJCQkgICAgIHNvY2tfZmxhZyhzaywgU09DS19ERUFEKSkpIHsKIAkJCQliaF91bmxvY2tfc29jayhzayk7CiAJCQkJeDI1X2Rlc3Ryb3lfc29ja2V0X2Zyb21fdGltZXIoc2spOwotCQkJCXJldHVybjsKJiM0MzsJCQkJZ290byBvdXQ7CiAJCQl9CiAJCQlicmVhazsKIApAQCAtMTIwLDggJiM0MzsxMjAsMTQgQEAgc3RhdGljIHZvaWQgeDI1X2hlYXJ0YmVhdF9leHBpcnkoc3RydWN0IHRpbWVyX2xpc3QgKnQpCiAJCQlicmVhazsKIAl9CiByZXN0YXJ0X2hlYXJ0YmVhdDoKLQl4MjVfc3RhcnRfaGVhcnRiZWF0KHNrKTsKJiM0MzsJLyogRG8gbm90IHJlYXJtIG9uY2UgX194MjVfZGVzdHJveV9zb2NrZXQoKSBoYXMgdW5saW5rZWQgdGhlIHNvY2tldDoKJiM0MzsJICogaXQgaXMgcGFzdCBpdHMgY2FuY2VsIHBvaW50IGFuZCBvd25zIHRoZSB0ZWFyZG93biBmcm9tIHRoZXJlIG9uLgomIzQzOwkgKi8KJiM0MzsJaWYgKHNrX2hhc2hlZChzaykpCiYjNDM7CQl4MjVfc3RhcnRfaGVhcnRiZWF0KHNrKTsKIAliaF91bmxvY2tfc29jayhzayk7CiYjNDM7b3V0OgomIzQzOwlzb2NrX3B1dChzayk7CiB9CiAKIC8qCkBAIC0xNjYsNCAmIzQzOzE3Miw1IEBAIHN0YXRpYyB2b2lkIHgyNV90aW1lcl9leHBpcnkoc3RydWN0IHRpbWVyX2xpc3QgKnQpCiAJfSBlbHNlCiAJCXgyNV9kb190aW1lcl9leHBpcnkoc2spOwogCWJoX3VubG9ja19zb2NrKHNrKTsKJiM0MzsJc29ja19wdXQoc2spOwogfQo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNyAwMDo1MDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzMjgyCgkJCQkJCQlvdXRwdXQ6IDMyCgkJCQkJCQl0aG91Z2h0czogMTU5CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKlguMjUgU29ja2V0IFRpbWVyIFJlZmFjdG9yaW5nIC0gTXkgTWVudGFsIENoZWNrbGlzdCoqCgpPa2F5LCBzbyBJJiMzOTt2ZSBnb3QgdGhpcyBwYXRjaCDigJMgbG9va3MgbGlrZSBpdCYjMzk7cyBhIGNyaXRpY2FsIGZpeCwgdG91Y2hpbmcgYG5ldC94MjUvYWZfeDI1LmNgIGFuZCBgbmV0L3gyNS94MjVfdGltZXIuY2AuIEludGVyZXN0aW5nLiBUaGUgY29yZSBvZiB0aGlzIHNlZW1zIHRvIGJlIGEgc2lnbmlmaWNhbnQgcmVmYWN0b3Jpbmcgb2YgdGhlIHRpbWVyIGhhbmRsaW5nIHdpdGhpbiB0aGUgWC4yNSBzb2NrZXQgaW1wbGVtZW50YXRpb24uIFJlcGxhY2luZyBgbW9kX3RpbWVyYCB3aXRoIGBza19yZXNldF90aW1lcmAsIGB0aW1lcl9kZWxldGVgIHdpdGggYHNrX3N0b3BfdGltZXJgLCBhbmQgYWRkaW5nIGBzb2NrX3B1dChzaylgIGluIHRoZSB0aW1lciBjYWxsYmFja3PigKYgdGhhdCBzY3JlYW1zIHJlZmNvdW50aW5nIGFuZCByZXNvdXJjZSBtYW5hZ2VtZW50IGltcHJvdmVtZW50cy4gVGhpcyBpcyBnb29kOyBhZGRyZXNzaW5nIHBvdGVudGlhbCB0aW1lci1yZWxhdGVkIGJ1Z3MgaW4gYSBwcm90b2NvbCBsaWtlIFguMjUgaXMgaW1wb3J0YW50IGZvciBzdGFiaWxpdHkuCgpOb3csIGJlZm9yZSBJIGRpZyBkZWVwZXIgaW50byB0aGUgY29kZSBjaGFuZ2VzIHRoZW1zZWx2ZXMsIEkgbmVlZCB0byBnZXQgYSBoYW5kbGUgb24gdGhlIGJpZ2dlciBwaWN0dXJlLiBJIHNob3VsZCBmaWd1cmUgb3V0IHRoZSByZWxldmFudCBjb25maWd1cmF0aW9uIG9wdGlvbiBmb3IgWC4yNSB0byB1bmRlcnN0YW5kIGlmIGl0IGlzIGVuYWJsZWQuIE15IGdvLXRvIGhlcmUgaXMgdG8gdXNlIGBncmVwcGVyYC4gSSYjMzk7bGwgcnVuIGBncmVwcGVyYCBhbmQgc2VhcmNoIGZvciBzb21ldGhpbmcgbGlrZSBgWDI1YCB3aXRoaW4gYG5ldC94MjUvS2NvbmZpZ2Agb3IgZXZlbiB0aGUgYnJvYWRlciBgbmV0L0tjb25maWdgIGZpbGVzLiBUaGF0IHNob3VsZCBwb2ludCBtZSB0byB0aGUgY29ycmVjdCBjb25maWd1cmF0aW9uIG9wdGlvbiwgb3Igb3B0aW9ucywgdG8gdmVyaWZ5IHRoaXMgZmVhdHVyZS4gS25vd2luZyB0aGUgY29uZmlnIG9wdGlvbnMgd2lsbCBwdXQgdGhpcyBjaGFuZ2UgaW50byBjb250ZXh0LiBUaGF0IHdpbGwgaGVscCBtZSB0byBkZXRlcm1pbmUgaG93IGltcG9ydGFudCB0aGlzIGZpeCBpcyBhbmQgd2hhdCB0aGUgaW1wYWN0IG9mIGVuYWJsaW5nIG9yIGRpc2FibGluZyBYLjI1IG1pZ2h0IGJlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI3IDAwOjUwPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2NvbmZpZyBYMjUmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtuZXQveDI1L0tjb25maWcmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7bmV0L3gyNS9LY29uZmlnLTUtXG5uZXQveDI1L0tjb25maWc6Njpjb25maWcgWDI1XG5uZXQveDI1L0tjb25maWctNy1cdHRyaXN0YXRlIFwmIzM0O0NDSVRUIFguMjUgUGFja2V0IExheWVyXCYjMzQ7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjcgMDA6NTA8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzg1NwoJCQkJCQkJb3V0cHV0OiA0MgoJCQkJCQkJdGhvdWdodHM6IDc3MwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipYLjI1IFRpbWVyIE1hbmFnZW1lbnQgQW5hbHlzaXMqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgYFgyNWAgY29uZmlndXJhdGlvbiBvcHRpb24sIHNwZWNpZmljYWxseSBmb2N1c2luZyBvbiBpdHMgdGltZXIgaW1wbGVtZW50YXRpb25zLiBMZXQmIzM5O3Mgc2VlLi4uIEkmIzM5O3ZlIHplcm9lZCBpbiBvbiBgbmV0L3gyNS9hZl94MjUuY2AgYW5kIGBuZXQveDI1L3gyNV90aW1lci5jYCB0byBpZGVudGlmeSB0aGUga2V5IGZ1bmN0aW9ucy4gTXkgaW5pdGlhbCBzY2FuIGhhcyB0dXJuZWQgdXAgYSBoYW5kZnVsIG9mIG1vZGlmaWVkIGZ1bmN0aW9ucywgYWxsIG9mIHdoaWNoIHNlZW0gaW50aW1hdGVseSB0aWVkIHRvIFguMjUgdGltZXJzOiBgeDI1X2Rlc3Ryb3lfdGltZXJgLCBgX194MjVfZGVzdHJveV9zb2NrZXRgLCBgeDI1X3N0YXJ0X2hlYXJ0YmVhdGAsIGB4MjVfc3RvcF9oZWFydGJlYXRgLCBgeDI1X3N0YXJ0X3QydGltZXJgLCBgeDI1X3N0YXJ0X3QyMXRpbWVyYCwgYHgyNV9zdGFydF90MjJ0aW1lcmAsIGB4MjVfc3RhcnRfdDIzdGltZXJgLCBgeDI1X3N0b3BfdGltZXJgLCBgeDI1X2hlYXJ0YmVhdF9leHBpcnlgLCBhbmQgYHgyNV90aW1lcl9leHBpcnlgLgoKRXNzZW50aWFsbHksIEkmIzM5O3ZlIGdvdCB0aW1lciBjYWxsYmFja3MgLSBgeDI1X2Rlc3Ryb3lfdGltZXJgLCBgeDI1X2hlYXJ0YmVhdF9leHBpcnlgLCBhbmQgYHgyNV90aW1lcl9leHBpcnlgIC0gYW5kLCBhIHNvY2tldCB0ZWFyZG93biBmdW5jdGlvbiwgYF9feDI1X2Rlc3Ryb3lfc29ja2V0YCwgYW5kIHRoZW4gdGhlIGNvcmUgdGltZXIgbWFuYWdlbWVudCBmdW5jdGlvbnM6IGB4MjVfc3RhcnRfaGVhcnRiZWF0YCwgYHgyNV9zdG9wX2hlYXJ0YmVhdGAsIGFuZCBhbGwgdGhlIGB4MjVfc3RhcnRfdFh0aW1lcmAgYW5kIGB4MjVfc3RvcF90aW1lcmAgZnVuY3Rpb25zLgoKSSBuZWVkIHRvIGtlZXAgaW4gbWluZCwgdGhlcmUgaXMgYWxzbyBgeDI1X2Rlc3Ryb3lfc29ja2V0X2Zyb21fdGltZXJgIHdoaWNoIGlzIGNhbGxlZC4KCkFscmlnaHQsIGEgbW9yZSBmb2N1c2VkIGxpc3Qgb2YgdGhlIG1vZGlmaWVkIGZ1bmN0aW9uczogYF9feDI1X2Rlc3Ryb3lfc29ja2V0YCwgYHgyNV9zdGFydF9oZWFydGJlYXRgLCBgeDI1X3N0b3BfaGVhcnRiZWF0YCwgYHgyNV9zdGFydF90MnRpbWVyYCwgYHgyNV9zdGFydF90MjF0aW1lcmAsIGB4MjVfc3RhcnRfdDIydGltZXJgLCBgeDI1X3N0YXJ0X3QyM3RpbWVyYCwgYW5kIGB4MjVfc3RvcF90aW1lcmAuCgpIb2xkIG9uLCBzb21ldGhpbmcmIzM5O3MgbmFnZ2luZyBtZS4gVGltZXIgY2FsbGJhY2tzLi4uIHRob3NlIGFyZSB1c3VhbGx5IGV4ZWN1dGVkIGFzeW5jaHJvbm91c2x5LCBidXQgdGhleSYjMzk7cmUgKnN0YXRpYyogaW4gdGhpcyBjYXNlOiBgeDI1X2hlYXJ0YmVhdF9leHBpcnlgLCBgeDI1X3RpbWVyX2V4cGlyeWAsIGFuZCBgeDI1X2Rlc3Ryb3lfdGltZXJgLiBJIHNob3VsZCBjb25maXJtIHRoYXQgcXVpY2tseS4gQWggeWVzLCB0aGV5IGFyZSwgaW4gZmFjdCwgZGVjbGFyZWQgYXMgc3RhdGljLgoKU28sIHRoZSBub24tc3RhdGljIG9uZXMgYXJlIGB4MjVfc3RhcnRfaGVhcnRiZWF0YCwgYHgyNV9zdG9wX2hlYXJ0YmVhdGAsIGB4MjVfc3RhcnRfdDJ0aW1lcmAsIGB4MjVfc3RhcnRfdDIxdGltZXJgLCBgeDI1X3N0YXJ0X3QyMnRpbWVyYCwgYHgyNV9zdGFydF90MjN0aW1lcmAsIGFuZCBgeDI1X3N0b3BfdGltZXJgLgoKV2FpdCBhIG1pbnV0ZSwgYF9feDI1X2Rlc3Ryb3lfc29ja2V0YCBpcyBzdGF0aWMgdG9vISBJIGtuZXcgdGhhdCB3YXMgZmlzaHkuIExldCBtZSBqdXN0IGRvdWJsZS1jaGVjayB0aGF0IGluIGBuZXQveDI1L2FmX3gyNS5jYCB0byBtYWtlIGFic29sdXRlbHkgc3VyZS4gWXVwLCBjb25maXJtZWQ6IGBzdGF0aWMgdm9pZCBfX3gyNV9kZXN0cm95X3NvY2tldChzdHJ1Y3Qgc29jayAqc2spYC4gVGltZSB0byBwaXZvdCB0byBgbmV0L3gyNS94MjVfdGltZXIuY2AgdG8gcm91bmQgb3V0IHRoZSBwaWN0dXJlIG9uIHRoZSBub24tc3RhdGljIGZ1bmN0aW9ucy4uLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI3IDAwOjUwPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3ZvaWQgeDI1X3N0YXJ0X2hlYXJ0YmVhdCYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O25ldC94MjUveDI1X3RpbWVyLmMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7bmV0L3gyNS94MjVfdGltZXIuYz0yNz12b2lkIHgyNV9pbml0X3RpbWVycyhzdHJ1Y3Qgc29jayAqc2spXG4tLVxubmV0L3gyNS94MjVfdGltZXIuYy0zNi1cbm5ldC94MjUveDI1X3RpbWVyLmM6Mzc6dm9pZCB4MjVfc3RhcnRfaGVhcnRiZWF0KHN0cnVjdCBzb2NrICpzaylcbm5ldC94MjUveDI1X3RpbWVyLmMtMzgte1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI3IDAwOjUwPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDU1MjEKCQkJCQkJCW91dHB1dDogMzAKCQkJCQkJCXRob3VnaHRzOiA0MjQKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqTXkgQW5hbHlzaXMgb2YgdGhlIFguMjUgVGltZXIgYW5kIFNvY2tldCBSZWZjb3VudGluZyBQYXRjaCoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCBhbmQgY29uZmlybWluZyB0aGF0IGl0IGRlYWxzIHdpdGggbm9uLXN0YXRpYyBmdW5jdGlvbnMuIFJpZ2h0IGF3YXksIEkgc2VlIHRoZSBjb3JlIGZ1bmN0aW9ucyBpbnZvbHZlZDogYHgyNV9zdGFydF9oZWFydGJlYXRgLCBgeDI1X3N0b3BfaGVhcnRiZWF0YCwgYHgyNV9zdGFydF90MnRpbWVyYCwgYHgyNV9zdGFydF90MjF0aW1lcmAsIGB4MjVfc3RhcnRfdDIydGltZXJgLCBgeDI1X3N0YXJ0X3QyM3RpbWVyYCwgYW5kIGB4MjVfc3RvcF90aW1lcmAuIFRoZXNlIGFyZSB0aGUgb25lcyB3aGVyZSB0aW1lciBtYW5hZ2VtZW50IGlzIGJlaW5nIG1vZGlmaWVkLCBzbyB0aGV5IGFyZSBjcml0aWNhbC4KCkkgbmVlZCB0byBxdWlja2x5IHNjYW4gdG8gc2VlIHdoaWNoIG90aGVyIGVudHJ5IHBvaW50cyB0cmlnZ2VyIHRoZXNlIHRpbWVyIGZ1bmN0aW9ucy4gTGV0JiMzOTtzIHNlZS4uLiBsb29raW5nIGF0IHRoZSBjb2RlLCBJIHNlZSB0aGF0IGZ1bmN0aW9ucyBzdWNoIGFzIGB4MjVfY29ubmVjdGAsIGB4MjVfcmVsZWFzZWAsIGB4MjVfc2VuZG1zZ2AsIGB4MjVfcmVjdm1zZ2AsIG1pZ2h0IGJlIHJlbGV2YW50LiBCZXN0IHRvIGdldCBhIGZ1bGwgbGlzdCBvZiBtb2RpZmllZCwgbm9uLXN0YXRpYyBmdW5jdGlvbnMgdGhvdWdoLgoKQWhhISBgeDI1X3N0YXJ0X2hlYXJ0YmVhdGAgaXMgY2FsbGVkIGZyb20gYm90aCBgeDI1X2luaXRfdGltZXJzYCBhbmQgYHgyNV9oZWFydGJlYXRfZXhwaXJ5YC4gTm93LCBgeDI1X2luaXRfdGltZXJzYCBpcyBzcGVjaWZpY2FsbHkgY2FsbGVkIGZyb20gYHgyNV9jcmVhdGVgLCB3aGljaCBpcyB3aGVyZSB0aGluZ3MgZ2V0IGludGVyZXN0aW5nLiBTaW5jZSBgeDI1X2NyZWF0ZWAgaGFuZGxlcyBzb2NrZXQgY3JlYXRpb24sIGZ1enppbmcgdGhlIGNyZWF0aW9uIG9mIFguMjUgc29ja2V0cyBhbmQgb3RoZXIgc29ja2V0IG9wZXJhdGlvbnMgd291bGQgYmUgdGhlIHBlcmZlY3Qgd2F5IHRvIHRlc3QgdGhlc2UgdGltZXIgZnVuY3Rpb25hbGl0aWVzLgoKU28sIEkmIzM5O2xsIGZvY3VzIG15IGZ1enppbmcgZWZmb3J0cyBvbjoKCmB4MjVfc3RhcnRfaGVhcnRiZWF0YApgeDI1X3N0b3BfaGVhcnRiZWF0YApgeDI1X3N0YXJ0X3QydGltZXJgCmB4MjVfc3RhcnRfdDIxdGltZXJgCmB4MjVfc3RhcnRfdDIydGltZXJgCmB4MjVfc3RhcnRfdDIzdGltZXJgCmB4MjVfc3RvcF90aW1lcmAKClRoZSBjb25maWd1cmF0aW9uIEkmIzM5O20gdXNpbmcgaXMgYFgyNWAuCgpUaGlzIHBhdGNoIGlzIGFsbCBhYm91dCBmaXhpbmcgdGltZXIgaGFuZGxpbmcgYW5kIHNvY2tldCByZWZjb3VudGluZyB3aXRoaW4gdGhlIFguMjUgcHJvdG9jb2wgaW1wbGVtZW50YXRpb24uIEl0JiMzOTtzIHN1YnN0aXR1dGluZyBgbW9kX3RpbWVyYCB3aXRoIGBza19yZXNldF90aW1lcmAgYW5kIGFkZGluZyBgc29ja19wdXRgIGNhbGxzIGluIHRpbWVyIGNhbGxiYWNrcy4gVGhpcyB3aWxsIHByZXZlbnQgdXNlLWFmdGVyLWZyZWUgY29uZGl0aW9ucyBhbmQgbWVtb3J5IGxlYWtzLiBUaGUgY2hhbmdlcyBhcmUgZnVuZGFtZW50YWwgdG8gdGhlIG5ldHdvcmsgcHJvdG9jb2wmIzM5O3Mgb3BlcmF0aW9uLCBzbyB0aGV5JiMzOTtyZSBwcmltZSB0YXJnZXRzIGZvciBmdXp6aW5nLgoKSSBzaG91bGQgYWxzbyBkb3VibGUtY2hlY2sgcXVpY2tseSB0byBzZWUgaWYgYFgyNWAgaXRzZWxmIGRlcGVuZHMgb24gYW55dGhpbmcgZWxzZS4gVGhhdCBjb3VsZCBvcGVuIHVwIG1vcmUgYXR0YWNrIHN1cmZhY2VzLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI3IDAwOjUwPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5FcnJvcjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm5vIG1hdGNoZXM8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7ZGVwZW5kcyBvbiYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O25ldC94MjUvS2NvbmZpZyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtlcnJvciYjMzQ7OiAmIzM0O25vIG1hdGNoZXMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjcgMDA6NTA8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNjU0MgoJCQkJCQkJb3V0cHV0OiAzNAoJCQkJCQkJdGhvdWdodHM6IDE0CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBsZXQmIzM5O3MgZGl2ZSBpbnRvIHRoaXMuIEhlcmUmIzM5O3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgYXMgaWYgdGhleSYjMzk7cmUgbXkgb3duOgoKKipBbmFseXppbmcgdGhlIEtjb25maWcgZm9yIG5ldC94MjUqKgoKQWxyaWdodCwgdGltZSB0byBnZXQgaW50byB0aGUgZGV0YWlscy4gSSBzZWUgd2UmIzM5O3JlIGxvb2tpbmcgYXQgYG5ldC94MjUvS2NvbmZpZ2AuIFJpZ2h0IGF3YXksIG15IGV4cGVydCBtaW5kIGtpY2tzIGluIOKAkyBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgY29uZmlndXJhdGlvbiBvcHRpb25zIGZvciB0aGUgWC4yNSBuZXR3b3JraW5nIHN0YWNrIHdpdGhpbiB0aGlzIGtlcm5lbCBtb2R1bGUuIFdoYXQgZmVhdHVyZXMgY2FuIGJlIGVuYWJsZWQgb3IgZGlzYWJsZWQ/IFdoYXQgZGVwZW5kZW5jaWVzIGV4aXN0PyBBcmUgdGhlcmUgYW55IG9idmlvdXMgYXJlYXMgZm9yIG9wdGltaXphdGlvbiBvciBwb3RlbnRpYWwgY29uZmxpY3RzIGJhc2VkIG9uIHdoYXQgSSBhbHJlYWR5IGtub3cgYWJvdXQgWC4yNT8KCkkmIzM5O20gbWVudGFsbHkgc2lmdGluZyB0aHJvdWdoIHRoaXMgZmlsZSwgbm90aW5nIHRoZSBsaWtlbHkgc3RydWN0dXJlLiBJIGV4cGVjdCB0byBzZWUgYGNvbmZpZ2Agc3RhdGVtZW50cyBkZWZpbmluZyB2YXJpb3VzIGZlYXR1cmVzLCBgYm9vbGAsIGB0cmlzdGF0ZWAsIGBpbnRgLCBldGMuLCBkZXRlcm1pbmluZyB0aGUgY29uZmlndXJhdGlvbiB0eXBlLiBUaGVyZSYjMzk7bGwgYmUgYGRlcGVuZHMgb25gIGNsYXVzZXMgbGlua2luZyB0aGVzZSBvcHRpb25zIHRvIG90aGVyIGtlcm5lbCBmZWF0dXJlcy4gYGhlbHBgIHRleHQgcHJvdmlkaW5nIGNydWNpYWwgY29udGV4dC4gSSYjMzk7bSBsb29raW5nIGZvciBhbnl0aGluZyB1bnVzdWFsIG9yIHBhcnRpY3VsYXJseSBpbnRlcmVzdGluZy4uLiBzb21lIGFkdmFuY2VkIG9yIGVzb3RlcmljIGZlYXR1cmUuIEFueSBvYnZpb3VzIG1haW50YWluZXIgbm90ZXMgdGhhdCBhcmUgaW1wb3J0YW50IHRvIGhlZWQgZm9yIGZ1dHVyZSB3b3JrPwoKVGhpcyBLY29uZmlnIHdpbGwgZGljdGF0ZSBob3cgZmxleGlibGUgb3Igc3BlY2lmaWMgdGhpcyBYLjI1IGltcGxlbWVudGF0aW9uIGlzLiBUaGUgZ29hbCBpcyB0byBzZWUgaG93IHRoZSBzeXN0ZW0gaXMgY3VycmVudGx5IGNvbmZpZ3VyZWQgZm9yIHRoaXMgdHlwZSBvZiBuZXR3b3JrLCBob3cgY2FuIGl0IGJlIGVuaGFuY2VkIGZvciBvdGhlciBuZWVkcy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjcgMDA6NTA8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5yZWFkLWZpbGU8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGUmIzM0OzogJiMzNDtuZXQveDI1L0tjb25maWcmIzM0OywKICAmIzM0O0ZpcnN0TGluZSYjMzQ7OiAxLAogICYjMzQ7TGluZUNvdW50JiMzNDs6IDIwCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtDb250ZW50cyYjMzQ7OiAmIzM0OyAgIDE6XHQjIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHlcbiAgIDI6XHQjXG4gICAzOlx0IyBDQ0lUVCBYLjI1IFBhY2tldCBMYXllclxuICAgNDpcdCNcbiAgIDU6XHRcbiAgIDY6XHRjb25maWcgWDI1XG4gICA3Olx0XHR0cmlzdGF0ZSBcJiMzNDtDQ0lUVCBYLjI1IFBhY2tldCBMYXllclwmIzM0O1xuICAgODpcdFx0aGVscFxuICAgOTpcdFx0ICBYLjI1IGlzIGEgc2V0IG9mIHN0YW5kYXJkaXplZCBuZXR3b3JrIHByb3RvY29scywgc2ltaWxhciBpbiBzY29wZSB0b1xuICAxMDpcdFx0ICBmcmFtZSByZWxheTsgdGhlIG9uZSBwaHlzaWNhbCBsaW5lIGZyb20geW91ciBib3ggdG8gdGhlIFguMjUgbmV0d29ya1xuICAxMTpcdFx0ICBlbnRyeSBwb2ludCBjYW4gY2Fycnkgc2V2ZXJhbCBsb2dpY2FsIHBvaW50LXRvLXBvaW50IGNvbm5lY3Rpb25zXG4gIDEyOlx0XHQgIChjYWxsZWQgXCYjMzQ7dmlydHVhbCBjaXJjdWl0c1wmIzM0OykgdG8gb3RoZXIgY29tcHV0ZXJzIGNvbm5lY3RlZCB0byB0aGUgWC4yNVxuICAxMzpcdFx0ICBuZXR3b3JrLiBHb3Zlcm5tZW50cywgYmFua3MsIGFuZCBvdGhlciBvcmdhbml6YXRpb25zIHRlbmQgdG8gdXNlIGl0XG4gIDE0Olx0XHQgIHRvIGNvbm5lY3QgdG8gZWFjaCBvdGhlciBvciB0byBmb3JtIFdpZGUgQXJlYSBOZXR3b3JrcyAoV0FOcykuIE1hbnlcbiAgMTU6XHRcdCAgY291bnRyaWVzIGhhdmUgcHVibGljIFguMjUgbmV0d29ya3MuIFguMjUgY29uc2lzdHMgb2YgdHdvXG4gIDE2Olx0XHQgIHByb3RvY29sczogdGhlIGhpZ2hlciBsZXZlbCBQYWNrZXQgTGF5ZXIgUHJvdG9jb2wgKFBMUCkgKHNheSBZIGhlcmVcbiAgMTc6XHRcdCAgaWYgeW91IHdhbnQgdGhhdCkgYW5kIHRoZSBsb3dlciBsZXZlbCBkYXRhIGxpbmsgbGF5ZXIgcHJvdG9jb2wgTEFQQlxuICAxODpcdFx0ICAoc2F5IFkgdG8gXCYjMzQ7TEFQQiBEYXRhIExpbmsgRHJpdmVyXCYjMzQ7IGJlbG93IGlmIHlvdSB3YW50IHRoYXQpLlxuICAxOTpcdFxuICAyMDpcdFx0ICBJbmZvcm1hdGlvbiBhYm91dCBYLjI1IGZvciBMaW51eCBpcyBjb250YWluZWQgaW4gdGhlIGZpbGVzXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTEvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI3IDAwOjUwPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDcyMTEKCQkJCQkJCW91dHB1dDogMzUKCQkJCQkJCXRob3VnaHRzOiAyNQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSB0aG91Z2h0IHByb2Nlc3Mgc3VtbWFyaXplZCwgZ2VhcmVkIHRvd2FyZHMgYW4gZXhwZXJ0OgoKKipJbnZlc3RpZ2F0aW5nIGEgUG90ZW50aWFsIE5ldHdvcmsgQ29uZmlndXJhdGlvbiBEZXBlbmRlbmN5KioKCkFscmlnaHQsIEkgbmVlZCB0byBmaWd1cmUgc29tZXRoaW5nIG91dCwgYW5kIHRoZSBzaXR1YXRpb24gbG9va3Mgc2ltcGxlIGVub3VnaCB0byBzdGFydCB3aXRoIGEgZGVwZW5kZW5jeSBjaGVjay4gSSYjMzk7bSBhc3N1bWluZyBubyBvYnZpb3VzIGV4dGVybmFsIGxpYnJhcmllcyBvciBtb2R1bGVzIGFyZSBkaXJlY3RseSBpbmZsdWVuY2luZyB0aGlzLgoKVGhlIGltbWVkaWF0ZSBzdGVwIEkmIzM5O20gdGFraW5nIGlzIHRvIGRlbHZlIGludG8gdGhlIGBuZXQvS2NvbmZpZ2AgZmlsZS4gR2l2ZW4gbXkgZXhwZXJpZW5jZSwgdGhhdCYjMzk7cyBhbG1vc3QgYWx3YXlzIHRoZSBmaXJzdCBwbGFjZSB0byBsb29rIHdoZW4gZGVhbGluZyB3aXRoIG5ldHdvcmsgY29uZmlndXJhdGlvbiBvcHRpb25zIGluIHRoaXMgZW52aXJvbm1lbnQuIFNwZWNpZmljYWxseSwgSSYjMzk7bSB0cnlpbmcgdG8gZGV0ZXJtaW5lIGlmIHRoZSBgWDI1YCBvcHRpb24gaXMgc291cmNlZCBhbnl3aGVyZS4gVGhpcyB3aWxsIHF1aWNrbHkgcmV2ZWFsIGlmIGl0JiMzOTtzIGRlcGVuZGVudCBvbiBvdGhlciBjb21wb25lbnRzIG9yIGlmIGl0IGNhbiBiZSBlbmFibGVkIGluZGVwZW5kZW50bHkuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTIvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI3IDAwOjUwPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3NvdXJjZSBcJiMzNDtuZXQveDI1L0tjb25maWdcJiMzNDsmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtuZXQvS2NvbmZpZyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtuZXQvS2NvbmZpZz0yNjM9c291cmNlIFwmIzM0O25ldC9sbGMvS2NvbmZpZ1wmIzM0O1xubmV0L0tjb25maWc6MjY0OnNvdXJjZSBcJiMzNDtuZXQveDI1L0tjb25maWdcJiMzNDtcbm5ldC9LY29uZmlnLTI2NS1zb3VyY2UgXCYjMzQ7bmV0L2xhcGIvS2NvbmZpZ1wmIzM0O1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEzLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNyAwMDo1MDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA3NDkzCgkJCQkJCQlvdXRwdXQ6IDE4MgoJCQkJCQkJdGhvdWdodHM6IDI4CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IHN1bW1hcnksIHByZXNlbnRlZCBhcyBhIGRpcmVjdCByZWZsZWN0aW9uIG9mIG15IHRob3VnaHQgcHJvY2VzczoKCioqU3RyZWFtbGluaW5nIHRoZSBDb25maWd1cmF0aW9uKioKCkFscmlnaHQsIHRoYXQmIzM5O3MgY29ycmVjdCwgYWJzb2x1dGVseS4gTG9va2luZyBhdCB0aGlzLCBJIHNlZSBpdCYjMzk7cyB0cnVlLiBUaGUgaW5pdGlhbCBhc3Nlc3NtZW50IHdhcyBhY2N1cmF0ZS4gSXQgYXBwZWFycyB0aGF0IGBYMjVgIGlzIGluZGVlZCB0aGUgKm9ubHkqIGNvbmZpZ3VyYXRpb24gd2UgbmVlZCB0byBmb2N1cyBvbi4gV2UgY2FuIHNpbXBsaWZ5IHRoaW5ncyBkcmFzdGljYWxseSwgd2hpY2ggaXMgYWx3YXlzIGEgd2luLiBOb3csIGxldCYjMzk7cyBjYWxsIHRoZSBuZXh0IHByb2NlZHVyZS4gSSB0aGluayB3ZSB3aWxsIGNhbGwgaXQgYHNldC1yZXN1bHRzYC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjcgMDA6NTA8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O1gyNSYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O3gyNV9zdGFydF9oZWFydGJlYXQmIzM0OywKICAgICYjMzQ7eDI1X3N0b3BfaGVhcnRiZWF0JiMzNDssCiAgICAmIzM0O3gyNV9zdGFydF90MnRpbWVyJiMzNDssCiAgICAmIzM0O3gyNV9zdGFydF90MjF0aW1lciYjMzQ7LAogICAgJiMzNDt4MjVfc3RhcnRfdDIydGltZXImIzM0OywKICAgICYjMzQ7eDI1X3N0YXJ0X3QyM3RpbWVyJiMzNDssCiAgICAmIzM0O3gyNV9zdG9wX3RpbWVyJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGZpeGVzIHRpbWVyIGhhbmRsaW5nIGFuZCBzb2NrZXQgcmVmY291bnRpbmcgaW4gdGhlIFguMjUgcHJvdG9jb2wgaW1wbGVtZW50YXRpb24uIEl0IHJlcGxhY2VzIG1vZF90aW1lciB3aXRoIHNrX3Jlc2V0X3RpbWVyIGFuZCBhZGRzIHNvY2tfcHV0IHRvIHRpbWVyIGNhbGxiYWNrcyB0byBwcmV2ZW50IHVzZS1hZnRlci1mcmVlIG9yIG1lbW9yeSBsZWFrcy4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIG5ldHdvcmsgcHJvdG9jb2wgbG9naWMgdGhhdCBzaG91bGQgYmUgZnV6emVkLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtYMjUmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDt4MjVfc3RhcnRfaGVhcnRiZWF0JiMzNDssCiAgICAmIzM0O3gyNV9zdG9wX2hlYXJ0YmVhdCYjMzQ7LAogICAgJiMzNDt4MjVfc3RhcnRfdDJ0aW1lciYjMzQ7LAogICAgJiMzNDt4MjVfc3RhcnRfdDIxdGltZXImIzM0OywKICAgICYjMzQ7eDI1X3N0YXJ0X3QyMnRpbWVyJiMzNDssCiAgICAmIzM0O3gyNV9zdGFydF90MjN0aW1lciYjMzQ7LAogICAgJiMzNDt4MjVfc3RvcF90aW1lciYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBmaXhlcyB0aW1lciBoYW5kbGluZyBhbmQgc29ja2V0IHJlZmNvdW50aW5nIGluIHRoZSBYLjI1IHByb3RvY29sIGltcGxlbWVudGF0aW9uLiBJdCByZXBsYWNlcyBtb2RfdGltZXIgd2l0aCBza19yZXNldF90aW1lciBhbmQgYWRkcyBzb2NrX3B1dCB0byB0aW1lciBjYWxsYmFja3MgdG8gcHJldmVudCB1c2UtYWZ0ZXItZnJlZSBvciBtZW1vcnkgbGVha3MuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiBuZXR3b3JrIHByb3RvY29sIGxvZ2ljIHRoYXQgc2hvdWxkIGJlIGZ1enplZC4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI3VDAwOjUwOjA2LjgyNTU4NDg3OVoiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjMyNzM0NzcxOTQ5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIlgyNVwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcIngyNV9zdGFydF9oZWFydGJlYXRcIixcbiAgICBcIngyNV9zdG9wX2hlYXJ0YmVhdFwiLFxuICAgIFwieDI1X3N0YXJ0X3QydGltZXJcIixcbiAgICBcIngyNV9zdGFydF90MjF0aW1lclwiLFxuICAgIFwieDI1X3N0YXJ0X3QyMnRpbWVyXCIsXG4gICAgXCJ4MjVfc3RhcnRfdDIzdGltZXJcIixcbiAgICBcIngyNV9zdG9wX3RpbWVyXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggZml4ZXMgdGltZXIgaGFuZGxpbmcgYW5kIHNvY2tldCByZWZjb3VudGluZyBpbiB0aGUgWC4yNSBwcm90b2NvbCBpbXBsZW1lbnRhdGlvbi4gSXQgcmVwbGFjZXMgbW9kX3RpbWVyIHdpdGggc2tfcmVzZXRfdGltZXIgYW5kIGFkZHMgc29ja19wdXQgdG8gdGltZXIgY2FsbGJhY2tzIHRvIHByZXZlbnQgdXNlLWFmdGVyLWZyZWUgb3IgbWVtb3J5IGxlYWtzLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gbmV0d29yayBwcm90b2NvbCBsb2dpYyB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI3VDAwOjUwOjA2LjgyNTU5MTUwOVoiLCJTZXEiOjEsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoicmVhZC1wYXRjaC1kaWZmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NTE3NzUxOTMwLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJQYXRjaERpZmZcIjogXCJjb21taXQgYTc0MjYxYzQ0M2U0YWY0MmNhOTViZjUyYThiMjdkN2U2MjVlYWVhNVxcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXFx1MDAzZVxcbkRhdGU6ICAgTW9uIEp1bCAyNyAwMDo1MDowNSAyMDI2ICswMDAwXFxuXFxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xcblxcbmRpZmYgLS1naXQgYS9uZXQveDI1L2FmX3gyNS5jIGIvbmV0L3gyNS9hZl94MjUuY1xcbmluZGV4IGMzMWQyYWY1ZGQyMjMzLi41ZjJmZWU0ZGE4NTMwNCAxMDA2NDRcXG4tLS0gYS9uZXQveDI1L2FmX3gyNS5jXFxuKysrIGIvbmV0L3gyNS9hZl94MjUuY1xcbkBAIC0zNjMsNiArMzYzLDcgQEAgc3RhdGljIHZvaWQgeDI1X2Rlc3Ryb3lfdGltZXIoc3RydWN0IHRpbWVyX2xpc3QgKnQpXFxuIFxcdHN0cnVjdCBzb2NrICpzayA9IHRpbWVyX2NvbnRhaW5lcl9vZihzaywgdCwgc2tfdGltZXIpO1xcbiBcXG4gXFx0eDI1X2Rlc3Ryb3lfc29ja2V0X2Zyb21fdGltZXIoc2spO1xcbitcXHRzb2NrX3B1dChzayk7XFxuIH1cXG4gXFxuIC8qXFxuQEAgLTM5OCw5ICszOTksOCBAQCBzdGF0aWMgdm9pZCBfX3gyNV9kZXN0cm95X3NvY2tldChzdHJ1Y3Qgc29jayAqc2spXFxuIFxcbiBcXHRpZiAoc2tfaGFzX2FsbG9jYXRpb25zKHNrKSkge1xcbiBcXHRcXHQvKiBEZWZlcjogb3V0c3RhbmRpbmcgYnVmZmVycyAqL1xcbi1cXHRcXHRzay1cXHUwMDNlc2tfdGltZXIuZXhwaXJlcyAgPSBqaWZmaWVzICsgMTAgKiBIWjtcXG4gXFx0XFx0c2stXFx1MDAzZXNrX3RpbWVyLmZ1bmN0aW9uID0geDI1X2Rlc3Ryb3lfdGltZXI7XFxuLVxcdFxcdGFkZF90aW1lcihcXHUwMDI2c2stXFx1MDAzZXNrX3RpbWVyKTtcXG4rXFx0XFx0c2tfcmVzZXRfdGltZXIoc2ssIFxcdTAwMjZzay1cXHUwMDNlc2tfdGltZXIsIGppZmZpZXMgKyAxMCAqIEhaKTtcXG4gXFx0fSBlbHNlIHtcXG4gXFx0XFx0LyogZHJvcCBsYXN0IHJlZmVyZW5jZSBzbyBzb2NrX3B1dCB3aWxsIGZyZWUgKi9cXG4gXFx0XFx0X19zb2NrX3B1dChzayk7XFxuZGlmZiAtLWdpdCBhL25ldC94MjUveDI1X3RpbWVyLmMgYi9uZXQveDI1L3gyNV90aW1lci5jXFxuaW5kZXggMmVjNjNhMWY0YzZkNDIuLjc4OTZjZDQzZjFjYzFlIDEwMDY0NFxcbi0tLSBhL25ldC94MjUveDI1X3RpbWVyLmNcXG4rKysgYi9uZXQveDI1L3gyNV90aW1lci5jXFxuQEAgLTM2LDQ1ICszNiw0NSBAQCB2b2lkIHgyNV9pbml0X3RpbWVycyhzdHJ1Y3Qgc29jayAqc2spXFxuIFxcbiB2b2lkIHgyNV9zdGFydF9oZWFydGJlYXQoc3RydWN0IHNvY2sgKnNrKVxcbiB7XFxuLVxcdG1vZF90aW1lcihcXHUwMDI2c2stXFx1MDAzZXNrX3RpbWVyLCBqaWZmaWVzICsgNSAqIEhaKTtcXG4rXFx0c2tfcmVzZXRfdGltZXIoc2ssIFxcdTAwMjZzay1cXHUwMDNlc2tfdGltZXIsIGppZmZpZXMgKyA1ICogSFopO1xcbiB9XFxuIFxcbiB2b2lkIHgyNV9zdG9wX2hlYXJ0YmVhdChzdHJ1Y3Qgc29jayAqc2spXFxuIHtcXG4tXFx0dGltZXJfZGVsZXRlKFxcdTAwMjZzay1cXHUwMDNlc2tfdGltZXIpO1xcbitcXHRza19zdG9wX3RpbWVyKHNrLCBcXHUwMDI2c2stXFx1MDAzZXNrX3RpbWVyKTtcXG4gfVxcbiBcXG4gdm9pZCB4MjVfc3RhcnRfdDJ0aW1lcihzdHJ1Y3Qgc29jayAqc2spXFxuIHtcXG4gXFx0c3RydWN0IHgyNV9zb2NrICp4MjUgPSB4MjVfc2soc2spO1xcbiBcXG4tXFx0bW9kX3RpbWVyKFxcdTAwMjZ4MjUtXFx1MDAzZXRpbWVyLCBqaWZmaWVzICsgeDI1LVxcdTAwM2V0Mik7XFxuK1xcdHNrX3Jlc2V0X3RpbWVyKHNrLCBcXHUwMDI2eDI1LVxcdTAwM2V0aW1lciwgamlmZmllcyArIHgyNS1cXHUwMDNldDIpO1xcbiB9XFxuIFxcbiB2b2lkIHgyNV9zdGFydF90MjF0aW1lcihzdHJ1Y3Qgc29jayAqc2spXFxuIHtcXG4gXFx0c3RydWN0IHgyNV9zb2NrICp4MjUgPSB4MjVfc2soc2spO1xcbiBcXG4tXFx0bW9kX3RpbWVyKFxcdTAwMjZ4MjUtXFx1MDAzZXRpbWVyLCBqaWZmaWVzICsgeDI1LVxcdTAwM2V0MjEpO1xcbitcXHRza19yZXNldF90aW1lcihzaywgXFx1MDAyNngyNS1cXHUwMDNldGltZXIsIGppZmZpZXMgKyB4MjUtXFx1MDAzZXQyMSk7XFxuIH1cXG4gXFxuIHZvaWQgeDI1X3N0YXJ0X3QyMnRpbWVyKHN0cnVjdCBzb2NrICpzaylcXG4ge1xcbiBcXHRzdHJ1Y3QgeDI1X3NvY2sgKngyNSA9IHgyNV9zayhzayk7XFxuIFxcbi1cXHRtb2RfdGltZXIoXFx1MDAyNngyNS1cXHUwMDNldGltZXIsIGppZmZpZXMgKyB4MjUtXFx1MDAzZXQyMik7XFxuK1xcdHNrX3Jlc2V0X3RpbWVyKHNrLCBcXHUwMDI2eDI1LVxcdTAwM2V0aW1lciwgamlmZmllcyArIHgyNS1cXHUwMDNldDIyKTtcXG4gfVxcbiBcXG4gdm9pZCB4MjVfc3RhcnRfdDIzdGltZXIoc3RydWN0IHNvY2sgKnNrKVxcbiB7XFxuIFxcdHN0cnVjdCB4MjVfc29jayAqeDI1ID0geDI1X3NrKHNrKTtcXG4gXFxuLVxcdG1vZF90aW1lcihcXHUwMDI2eDI1LVxcdTAwM2V0aW1lciwgamlmZmllcyArIHgyNS1cXHUwMDNldDIzKTtcXG4rXFx0c2tfcmVzZXRfdGltZXIoc2ssIFxcdTAwMjZ4MjUtXFx1MDAzZXRpbWVyLCBqaWZmaWVzICsgeDI1LVxcdTAwM2V0MjMpO1xcbiB9XFxuIFxcbiB2b2lkIHgyNV9zdG9wX3RpbWVyKHN0cnVjdCBzb2NrICpzaylcXG4ge1xcbi1cXHR0aW1lcl9kZWxldGUoXFx1MDAyNngyNV9zayhzayktXFx1MDAzZXRpbWVyKTtcXG4rXFx0c2tfc3RvcF90aW1lcihzaywgXFx1MDAyNngyNV9zayhzayktXFx1MDAzZXRpbWVyKTtcXG4gfVxcbiBcXG4gdW5zaWduZWQgbG9uZyB4MjVfZGlzcGxheV90aW1lcihzdHJ1Y3Qgc29jayAqc2spXFxuQEAgLTEwOCw3ICsxMDgsNyBAQCBzdGF0aWMgdm9pZCB4MjVfaGVhcnRiZWF0X2V4cGlyeShzdHJ1Y3QgdGltZXJfbGlzdCAqdClcXG4gXFx0XFx0XFx0ICAgICBzb2NrX2ZsYWcoc2ssIFNPQ0tfREVBRCkpKSB7XFxuIFxcdFxcdFxcdFxcdGJoX3VubG9ja19zb2NrKHNrKTtcXG4gXFx0XFx0XFx0XFx0eDI1X2Rlc3Ryb3lfc29ja2V0X2Zyb21fdGltZXIoc2spO1xcbi1cXHRcXHRcXHRcXHRyZXR1cm47XFxuK1xcdFxcdFxcdFxcdGdvdG8gb3V0O1xcbiBcXHRcXHRcXHR9XFxuIFxcdFxcdFxcdGJyZWFrO1xcbiBcXG5AQCAtMTIwLDggKzEyMCwxNCBAQCBzdGF0aWMgdm9pZCB4MjVfaGVhcnRiZWF0X2V4cGlyeShzdHJ1Y3QgdGltZXJfbGlzdCAqdClcXG4gXFx0XFx0XFx0YnJlYWs7XFxuIFxcdH1cXG4gcmVzdGFydF9oZWFydGJlYXQ6XFxuLVxcdHgyNV9zdGFydF9oZWFydGJlYXQoc2spO1xcbitcXHQvKiBEbyBub3QgcmVhcm0gb25jZSBfX3gyNV9kZXN0cm95X3NvY2tldCgpIGhhcyB1bmxpbmtlZCB0aGUgc29ja2V0OlxcbitcXHQgKiBpdCBpcyBwYXN0IGl0cyBjYW5jZWwgcG9pbnQgYW5kIG93bnMgdGhlIHRlYXJkb3duIGZyb20gdGhlcmUgb24uXFxuK1xcdCAqL1xcbitcXHRpZiAoc2tfaGFzaGVkKHNrKSlcXG4rXFx0XFx0eDI1X3N0YXJ0X2hlYXJ0YmVhdChzayk7XFxuIFxcdGJoX3VubG9ja19zb2NrKHNrKTtcXG4rb3V0OlxcbitcXHRzb2NrX3B1dChzayk7XFxuIH1cXG4gXFxuIC8qXFxuQEAgLTE2Niw0ICsxNzIsNSBAQCBzdGF0aWMgdm9pZCB4MjVfdGltZXJfZXhwaXJ5KHN0cnVjdCB0aW1lcl9saXN0ICp0KVxcbiBcXHR9IGVsc2VcXG4gXFx0XFx0eDI1X2RvX3RpbWVyX2V4cGlyeShzayk7XFxuIFxcdGJoX3VubG9ja19zb2NrKHNrKTtcXG4rXFx0c29ja19wdXQoc2spO1xcbiB9XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI3VDAwOjUwOjA3LjM0NDEzODg0OVoiLCJTZXEiOjIsIk5lc3RpbmciOjEsIlR5cGUiOiJhZ2VudCIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImJlc3QtZXhwZW5zaXZlIiwiRHVyYXRpb24iOjMyMjE2MjA5NDc5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIlgyNVwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcIngyNV9zdGFydF9oZWFydGJlYXRcIixcbiAgICBcIngyNV9zdG9wX2hlYXJ0YmVhdFwiLFxuICAgIFwieDI1X3N0YXJ0X3QydGltZXJcIixcbiAgICBcIngyNV9zdGFydF90MjF0aW1lclwiLFxuICAgIFwieDI1X3N0YXJ0X3QyMnRpbWVyXCIsXG4gICAgXCJ4MjVfc3RhcnRfdDIzdGltZXJcIixcbiAgICBcIngyNV9zdG9wX3RpbWVyXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggZml4ZXMgdGltZXIgaGFuZGxpbmcgYW5kIHNvY2tldCByZWZjb3VudGluZyBpbiB0aGUgWC4yNSBwcm90b2NvbCBpbXBsZW1lbnRhdGlvbi4gSXQgcmVwbGFjZXMgbW9kX3RpbWVyIHdpdGggc2tfcmVzZXRfdGltZXIgYW5kIGFkZHMgc29ja19wdXQgdG8gdGltZXIgY2FsbGJhY2tzIHRvIHByZXZlbnQgdXNlLWFmdGVyLWZyZWUgb3IgbWVtb3J5IGxlYWtzLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gbmV0d29yayBwcm90b2NvbCBsb2dpYyB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLlxuWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmVcbmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cblxuSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluXG55b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHlcbnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuXG5cblJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6XG4tIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuXG4tIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLlxuLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuXG4tIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSxcbiAgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLlxuLSBDb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCxcbiAgaW9uaWMsIGFtZGdwdSkgdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuXG4tIERyaXZlciAucmVtb3ZlLCAuc2h1dGRvd24sIG9yIHBjaV91bnJlZ2lzdGVyX2RyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKGUuZy4sIGlnYl9yZW1vdmUpXG4gIHRoYXQgYXJlIGV4ZWN1dGVkIG9ubHkgZHVyaW5nIFBDSSBob3QtdW5wbHVnIG9yIHN5c2ZzIGRyaXZlciB1bmJpbmQgb3BlcmF0aW9ucy5cblxuSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaFxudG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuXG5cbldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOlxuMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy5cbiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLlxuICAgUHJlZmVyIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIEFQSSBlbnRyeXBvaW50IGZ1bmN0aW9ucyBvdmVyIGludGVybmFsIHN0YXRpYyBoZWxwZXIgZnVuY3Rpb25zXG4gICAod2hpY2ggYXJlIGlubGluZWQgYnkgdGhlIGNvbXBpbGVyIGFuZCBkbyBub3QgaGF2ZSBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzKS5cbjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLlxuICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLlxuICAgQWxzbyBjaGVjayBcImRlcGVuZHMgb25cIiBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3NcbiAgIG5lZWRlZCBmb3IgS2J1aWxkIHRvIGNvbXBpbGUgdGhlIGNvZGUgc3RhdGljYWxseSBpbnRvIHZtbGludXguIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlnc1xuICAgb3V0cHV0IGFycmF5LCBhbmQgRE8gTk9UIGFkZCBhICdDT05GSUdfJyBwcmVmaXggKGUuZy4sIHJldHVybiBcIk5FVF9JUFY0XCIgaW5zdGVhZCBvZiBcIkNPTkZJR19ORVRfSVBWNFwiKS5cblByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLlxuXG5cblVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuXG5JdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS5cbklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC5cbiIsIlByb21wdCI6IkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOlxuY29tbWl0IGE3NDI2MWM0NDNlNGFmNDJjYTk1YmY1MmE4YjI3ZDdlNjI1ZWFlYTVcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgTW9uIEp1bCAyNyAwMDo1MDowNSAyMDI2ICswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL25ldC94MjUvYWZfeDI1LmMgYi9uZXQveDI1L2FmX3gyNS5jXG5pbmRleCBjMzFkMmFmNWRkMjIzMy4uNWYyZmVlNGRhODUzMDQgMTAwNjQ0XG4tLS0gYS9uZXQveDI1L2FmX3gyNS5jXG4rKysgYi9uZXQveDI1L2FmX3gyNS5jXG5AQCAtMzYzLDYgKzM2Myw3IEBAIHN0YXRpYyB2b2lkIHgyNV9kZXN0cm95X3RpbWVyKHN0cnVjdCB0aW1lcl9saXN0ICp0KVxuIFx0c3RydWN0IHNvY2sgKnNrID0gdGltZXJfY29udGFpbmVyX29mKHNrLCB0LCBza190aW1lcik7XG4gXG4gXHR4MjVfZGVzdHJveV9zb2NrZXRfZnJvbV90aW1lcihzayk7XG4rXHRzb2NrX3B1dChzayk7XG4gfVxuIFxuIC8qXG5AQCAtMzk4LDkgKzM5OSw4IEBAIHN0YXRpYyB2b2lkIF9feDI1X2Rlc3Ryb3lfc29ja2V0KHN0cnVjdCBzb2NrICpzaylcbiBcbiBcdGlmIChza19oYXNfYWxsb2NhdGlvbnMoc2spKSB7XG4gXHRcdC8qIERlZmVyOiBvdXRzdGFuZGluZyBidWZmZXJzICovXG4tXHRcdHNrLVx1MDAzZXNrX3RpbWVyLmV4cGlyZXMgID0gamlmZmllcyArIDEwICogSFo7XG4gXHRcdHNrLVx1MDAzZXNrX3RpbWVyLmZ1bmN0aW9uID0geDI1X2Rlc3Ryb3lfdGltZXI7XG4tXHRcdGFkZF90aW1lcihcdTAwMjZzay1cdTAwM2Vza190aW1lcik7XG4rXHRcdHNrX3Jlc2V0X3RpbWVyKHNrLCBcdTAwMjZzay1cdTAwM2Vza190aW1lciwgamlmZmllcyArIDEwICogSFopO1xuIFx0fSBlbHNlIHtcbiBcdFx0LyogZHJvcCBsYXN0IHJlZmVyZW5jZSBzbyBzb2NrX3B1dCB3aWxsIGZyZWUgKi9cbiBcdFx0X19zb2NrX3B1dChzayk7XG5kaWZmIC0tZ2l0IGEvbmV0L3gyNS94MjVfdGltZXIuYyBiL25ldC94MjUveDI1X3RpbWVyLmNcbmluZGV4IDJlYzYzYTFmNGM2ZDQyLi43ODk2Y2Q0M2YxY2MxZSAxMDA2NDRcbi0tLSBhL25ldC94MjUveDI1X3RpbWVyLmNcbisrKyBiL25ldC94MjUveDI1X3RpbWVyLmNcbkBAIC0zNiw0NSArMzYsNDUgQEAgdm9pZCB4MjVfaW5pdF90aW1lcnMoc3RydWN0IHNvY2sgKnNrKVxuIFxuIHZvaWQgeDI1X3N0YXJ0X2hlYXJ0YmVhdChzdHJ1Y3Qgc29jayAqc2spXG4ge1xuLVx0bW9kX3RpbWVyKFx1MDAyNnNrLVx1MDAzZXNrX3RpbWVyLCBqaWZmaWVzICsgNSAqIEhaKTtcbitcdHNrX3Jlc2V0X3RpbWVyKHNrLCBcdTAwMjZzay1cdTAwM2Vza190aW1lciwgamlmZmllcyArIDUgKiBIWik7XG4gfVxuIFxuIHZvaWQgeDI1X3N0b3BfaGVhcnRiZWF0KHN0cnVjdCBzb2NrICpzaylcbiB7XG4tXHR0aW1lcl9kZWxldGUoXHUwMDI2c2stXHUwMDNlc2tfdGltZXIpO1xuK1x0c2tfc3RvcF90aW1lcihzaywgXHUwMDI2c2stXHUwMDNlc2tfdGltZXIpO1xuIH1cbiBcbiB2b2lkIHgyNV9zdGFydF90MnRpbWVyKHN0cnVjdCBzb2NrICpzaylcbiB7XG4gXHRzdHJ1Y3QgeDI1X3NvY2sgKngyNSA9IHgyNV9zayhzayk7XG4gXG4tXHRtb2RfdGltZXIoXHUwMDI2eDI1LVx1MDAzZXRpbWVyLCBqaWZmaWVzICsgeDI1LVx1MDAzZXQyKTtcbitcdHNrX3Jlc2V0X3RpbWVyKHNrLCBcdTAwMjZ4MjUtXHUwMDNldGltZXIsIGppZmZpZXMgKyB4MjUtXHUwMDNldDIpO1xuIH1cbiBcbiB2b2lkIHgyNV9zdGFydF90MjF0aW1lcihzdHJ1Y3Qgc29jayAqc2spXG4ge1xuIFx0c3RydWN0IHgyNV9zb2NrICp4MjUgPSB4MjVfc2soc2spO1xuIFxuLVx0bW9kX3RpbWVyKFx1MDAyNngyNS1cdTAwM2V0aW1lciwgamlmZmllcyArIHgyNS1cdTAwM2V0MjEpO1xuK1x0c2tfcmVzZXRfdGltZXIoc2ssIFx1MDAyNngyNS1cdTAwM2V0aW1lciwgamlmZmllcyArIHgyNS1cdTAwM2V0MjEpO1xuIH1cbiBcbiB2b2lkIHgyNV9zdGFydF90MjJ0aW1lcihzdHJ1Y3Qgc29jayAqc2spXG4ge1xuIFx0c3RydWN0IHgyNV9zb2NrICp4MjUgPSB4MjVfc2soc2spO1xuIFxuLVx0bW9kX3RpbWVyKFx1MDAyNngyNS1cdTAwM2V0aW1lciwgamlmZmllcyArIHgyNS1cdTAwM2V0MjIpO1xuK1x0c2tfcmVzZXRfdGltZXIoc2ssIFx1MDAyNngyNS1cdTAwM2V0aW1lciwgamlmZmllcyArIHgyNS1cdTAwM2V0MjIpO1xuIH1cbiBcbiB2b2lkIHgyNV9zdGFydF90MjN0aW1lcihzdHJ1Y3Qgc29jayAqc2spXG4ge1xuIFx0c3RydWN0IHgyNV9zb2NrICp4MjUgPSB4MjVfc2soc2spO1xuIFxuLVx0bW9kX3RpbWVyKFx1MDAyNngyNS1cdTAwM2V0aW1lciwgamlmZmllcyArIHgyNS1cdTAwM2V0MjMpO1xuK1x0c2tfcmVzZXRfdGltZXIoc2ssIFx1MDAyNngyNS1cdTAwM2V0aW1lciwgamlmZmllcyArIHgyNS1cdTAwM2V0MjMpO1xuIH1cbiBcbiB2b2lkIHgyNV9zdG9wX3RpbWVyKHN0cnVjdCBzb2NrICpzaylcbiB7XG4tXHR0aW1lcl9kZWxldGUoXHUwMDI2eDI1X3NrKHNrKS1cdTAwM2V0aW1lcik7XG4rXHRza19zdG9wX3RpbWVyKHNrLCBcdTAwMjZ4MjVfc2soc2spLVx1MDAzZXRpbWVyKTtcbiB9XG4gXG4gdW5zaWduZWQgbG9uZyB4MjVfZGlzcGxheV90aW1lcihzdHJ1Y3Qgc29jayAqc2spXG5AQCAtMTA4LDcgKzEwOCw3IEBAIHN0YXRpYyB2b2lkIHgyNV9oZWFydGJlYXRfZXhwaXJ5KHN0cnVjdCB0aW1lcl9saXN0ICp0KVxuIFx0XHRcdCAgICAgc29ja19mbGFnKHNrLCBTT0NLX0RFQUQpKSkge1xuIFx0XHRcdFx0YmhfdW5sb2NrX3NvY2soc2spO1xuIFx0XHRcdFx0eDI1X2Rlc3Ryb3lfc29ja2V0X2Zyb21fdGltZXIoc2spO1xuLVx0XHRcdFx0cmV0dXJuO1xuK1x0XHRcdFx0Z290byBvdXQ7XG4gXHRcdFx0fVxuIFx0XHRcdGJyZWFrO1xuIFxuQEAgLTEyMCw4ICsxMjAsMTQgQEAgc3RhdGljIHZvaWQgeDI1X2hlYXJ0YmVhdF9leHBpcnkoc3RydWN0IHRpbWVyX2xpc3QgKnQpXG4gXHRcdFx0YnJlYWs7XG4gXHR9XG4gcmVzdGFydF9oZWFydGJlYXQ6XG4tXHR4MjVfc3RhcnRfaGVhcnRiZWF0KHNrKTtcbitcdC8qIERvIG5vdCByZWFybSBvbmNlIF9feDI1X2Rlc3Ryb3lfc29ja2V0KCkgaGFzIHVubGlua2VkIHRoZSBzb2NrZXQ6XG4rXHQgKiBpdCBpcyBwYXN0IGl0cyBjYW5jZWwgcG9pbnQgYW5kIG93bnMgdGhlIHRlYXJkb3duIGZyb20gdGhlcmUgb24uXG4rXHQgKi9cbitcdGlmIChza19oYXNoZWQoc2spKVxuK1x0XHR4MjVfc3RhcnRfaGVhcnRiZWF0KHNrKTtcbiBcdGJoX3VubG9ja19zb2NrKHNrKTtcbitvdXQ6XG4rXHRzb2NrX3B1dChzayk7XG4gfVxuIFxuIC8qXG5AQCAtMTY2LDQgKzE3Miw1IEBAIHN0YXRpYyB2b2lkIHgyNV90aW1lcl9leHBpcnkoc3RydWN0IHRpbWVyX2xpc3QgKnQpXG4gXHR9IGVsc2VcbiBcdFx0eDI1X2RvX3RpbWVyX2V4cGlyeShzayk7XG4gXHRiaF91bmxvY2tfc29jayhzayk7XG4rXHRzb2NrX3B1dChzayk7XG4gfVxuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjdUMDA6NTA6MDcuMzQ0MTQwMTA5WiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDUxMTc4NDE1MywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipYLjI1IFNvY2tldCBUaW1lciBSZWZhY3RvcmluZyAtIE15IE1lbnRhbCBDaGVja2xpc3QqKlxuXG5Pa2F5LCBzbyBJJ3ZlIGdvdCB0aGlzIHBhdGNoIOKAkyBsb29rcyBsaWtlIGl0J3MgYSBjcml0aWNhbCBmaXgsIHRvdWNoaW5nIGBuZXQveDI1L2FmX3gyNS5jYCBhbmQgYG5ldC94MjUveDI1X3RpbWVyLmNgLiBJbnRlcmVzdGluZy4gVGhlIGNvcmUgb2YgdGhpcyBzZWVtcyB0byBiZSBhIHNpZ25pZmljYW50IHJlZmFjdG9yaW5nIG9mIHRoZSB0aW1lciBoYW5kbGluZyB3aXRoaW4gdGhlIFguMjUgc29ja2V0IGltcGxlbWVudGF0aW9uLiBSZXBsYWNpbmcgYG1vZF90aW1lcmAgd2l0aCBgc2tfcmVzZXRfdGltZXJgLCBgdGltZXJfZGVsZXRlYCB3aXRoIGBza19zdG9wX3RpbWVyYCwgYW5kIGFkZGluZyBgc29ja19wdXQoc2spYCBpbiB0aGUgdGltZXIgY2FsbGJhY2tz4oCmIHRoYXQgc2NyZWFtcyByZWZjb3VudGluZyBhbmQgcmVzb3VyY2UgbWFuYWdlbWVudCBpbXByb3ZlbWVudHMuIFRoaXMgaXMgZ29vZDsgYWRkcmVzc2luZyBwb3RlbnRpYWwgdGltZXItcmVsYXRlZCBidWdzIGluIGEgcHJvdG9jb2wgbGlrZSBYLjI1IGlzIGltcG9ydGFudCBmb3Igc3RhYmlsaXR5LlxuXG5Ob3csIGJlZm9yZSBJIGRpZyBkZWVwZXIgaW50byB0aGUgY29kZSBjaGFuZ2VzIHRoZW1zZWx2ZXMsIEkgbmVlZCB0byBnZXQgYSBoYW5kbGUgb24gdGhlIGJpZ2dlciBwaWN0dXJlLiBJIHNob3VsZCBmaWd1cmUgb3V0IHRoZSByZWxldmFudCBjb25maWd1cmF0aW9uIG9wdGlvbiBmb3IgWC4yNSB0byB1bmRlcnN0YW5kIGlmIGl0IGlzIGVuYWJsZWQuIE15IGdvLXRvIGhlcmUgaXMgdG8gdXNlIGBncmVwcGVyYC4gSSdsbCBydW4gYGdyZXBwZXJgIGFuZCBzZWFyY2ggZm9yIHNvbWV0aGluZyBsaWtlIGBYMjVgIHdpdGhpbiBgbmV0L3gyNS9LY29uZmlnYCBvciBldmVuIHRoZSBicm9hZGVyIGBuZXQvS2NvbmZpZ2AgZmlsZXMuIFRoYXQgc2hvdWxkIHBvaW50IG1lIHRvIHRoZSBjb3JyZWN0IGNvbmZpZ3VyYXRpb24gb3B0aW9uLCBvciBvcHRpb25zLCB0byB2ZXJpZnkgdGhpcyBmZWF0dXJlLiBLbm93aW5nIHRoZSBjb25maWcgb3B0aW9ucyB3aWxsIHB1dCB0aGlzIGNoYW5nZSBpbnRvIGNvbnRleHQuIFRoYXQgd2lsbCBoZWxwIG1lIHRvIGRldGVybWluZSBob3cgaW1wb3J0YW50IHRoaXMgZml4IGlzIGFuZCB3aGF0IHRoZSBpbXBhY3Qgb2YgZW5hYmxpbmcgb3IgZGlzYWJsaW5nIFguMjUgbWlnaHQgYmUuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjMyODIsIk91dHB1dFRva2VucyI6MzIsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxNTksIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yN1QwMDo1MDoxMS44NTU5MjY1MTJaIiwiU2VxIjo0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTEwNDUxODg4LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNvbmZpZyBYMjVcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwibmV0L3gyNS9LY29uZmlnXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIm5ldC94MjUvS2NvbmZpZy01LVxcbm5ldC94MjUvS2NvbmZpZzo2OmNvbmZpZyBYMjVcXG5uZXQveDI1L0tjb25maWctNy1cXHR0cmlzdGF0ZSBcXFwiQ0NJVFQgWC4yNSBQYWNrZXQgTGF5ZXJcXFwiXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI3VDAwOjUwOjExLjk2NjM4NDM3WiIsIlNlcSI6NSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6OTM0MTk2OTEyMCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipYLjI1IFRpbWVyIE1hbmFnZW1lbnQgQW5hbHlzaXMqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIGBYMjVgIGNvbmZpZ3VyYXRpb24gb3B0aW9uLCBzcGVjaWZpY2FsbHkgZm9jdXNpbmcgb24gaXRzIHRpbWVyIGltcGxlbWVudGF0aW9ucy4gTGV0J3Mgc2VlLi4uIEkndmUgemVyb2VkIGluIG9uIGBuZXQveDI1L2FmX3gyNS5jYCBhbmQgYG5ldC94MjUveDI1X3RpbWVyLmNgIHRvIGlkZW50aWZ5IHRoZSBrZXkgZnVuY3Rpb25zLiBNeSBpbml0aWFsIHNjYW4gaGFzIHR1cm5lZCB1cCBhIGhhbmRmdWwgb2YgbW9kaWZpZWQgZnVuY3Rpb25zLCBhbGwgb2Ygd2hpY2ggc2VlbSBpbnRpbWF0ZWx5IHRpZWQgdG8gWC4yNSB0aW1lcnM6IGB4MjVfZGVzdHJveV90aW1lcmAsIGBfX3gyNV9kZXN0cm95X3NvY2tldGAsIGB4MjVfc3RhcnRfaGVhcnRiZWF0YCwgYHgyNV9zdG9wX2hlYXJ0YmVhdGAsIGB4MjVfc3RhcnRfdDJ0aW1lcmAsIGB4MjVfc3RhcnRfdDIxdGltZXJgLCBgeDI1X3N0YXJ0X3QyMnRpbWVyYCwgYHgyNV9zdGFydF90MjN0aW1lcmAsIGB4MjVfc3RvcF90aW1lcmAsIGB4MjVfaGVhcnRiZWF0X2V4cGlyeWAsIGFuZCBgeDI1X3RpbWVyX2V4cGlyeWAuXG5cbkVzc2VudGlhbGx5LCBJJ3ZlIGdvdCB0aW1lciBjYWxsYmFja3MgLSBgeDI1X2Rlc3Ryb3lfdGltZXJgLCBgeDI1X2hlYXJ0YmVhdF9leHBpcnlgLCBhbmQgYHgyNV90aW1lcl9leHBpcnlgIC0gYW5kLCBhIHNvY2tldCB0ZWFyZG93biBmdW5jdGlvbiwgYF9feDI1X2Rlc3Ryb3lfc29ja2V0YCwgYW5kIHRoZW4gdGhlIGNvcmUgdGltZXIgbWFuYWdlbWVudCBmdW5jdGlvbnM6IGB4MjVfc3RhcnRfaGVhcnRiZWF0YCwgYHgyNV9zdG9wX2hlYXJ0YmVhdGAsIGFuZCBhbGwgdGhlIGB4MjVfc3RhcnRfdFh0aW1lcmAgYW5kIGB4MjVfc3RvcF90aW1lcmAgZnVuY3Rpb25zLlxuXG5JIG5lZWQgdG8ga2VlcCBpbiBtaW5kLCB0aGVyZSBpcyBhbHNvIGB4MjVfZGVzdHJveV9zb2NrZXRfZnJvbV90aW1lcmAgd2hpY2ggaXMgY2FsbGVkLlxuXG5BbHJpZ2h0LCBhIG1vcmUgZm9jdXNlZCBsaXN0IG9mIHRoZSBtb2RpZmllZCBmdW5jdGlvbnM6IGBfX3gyNV9kZXN0cm95X3NvY2tldGAsIGB4MjVfc3RhcnRfaGVhcnRiZWF0YCwgYHgyNV9zdG9wX2hlYXJ0YmVhdGAsIGB4MjVfc3RhcnRfdDJ0aW1lcmAsIGB4MjVfc3RhcnRfdDIxdGltZXJgLCBgeDI1X3N0YXJ0X3QyMnRpbWVyYCwgYHgyNV9zdGFydF90MjN0aW1lcmAsIGFuZCBgeDI1X3N0b3BfdGltZXJgLlxuXG5Ib2xkIG9uLCBzb21ldGhpbmcncyBuYWdnaW5nIG1lLiBUaW1lciBjYWxsYmFja3MuLi4gdGhvc2UgYXJlIHVzdWFsbHkgZXhlY3V0ZWQgYXN5bmNocm9ub3VzbHksIGJ1dCB0aGV5J3JlICpzdGF0aWMqIGluIHRoaXMgY2FzZTogYHgyNV9oZWFydGJlYXRfZXhwaXJ5YCwgYHgyNV90aW1lcl9leHBpcnlgLCBhbmQgYHgyNV9kZXN0cm95X3RpbWVyYC4gSSBzaG91bGQgY29uZmlybSB0aGF0IHF1aWNrbHkuIEFoIHllcywgdGhleSBhcmUsIGluIGZhY3QsIGRlY2xhcmVkIGFzIHN0YXRpYy5cblxuU28sIHRoZSBub24tc3RhdGljIG9uZXMgYXJlIGB4MjVfc3RhcnRfaGVhcnRiZWF0YCwgYHgyNV9zdG9wX2hlYXJ0YmVhdGAsIGB4MjVfc3RhcnRfdDJ0aW1lcmAsIGB4MjVfc3RhcnRfdDIxdGltZXJgLCBgeDI1X3N0YXJ0X3QyMnRpbWVyYCwgYHgyNV9zdGFydF90MjN0aW1lcmAsIGFuZCBgeDI1X3N0b3BfdGltZXJgLlxuXG5XYWl0IGEgbWludXRlLCBgX194MjVfZGVzdHJveV9zb2NrZXRgIGlzIHN0YXRpYyB0b28hIEkga25ldyB0aGF0IHdhcyBmaXNoeS4gTGV0IG1lIGp1c3QgZG91YmxlLWNoZWNrIHRoYXQgaW4gYG5ldC94MjUvYWZfeDI1LmNgIHRvIG1ha2UgYWJzb2x1dGVseSBzdXJlLiBZdXAsIGNvbmZpcm1lZDogYHN0YXRpYyB2b2lkIF9feDI1X2Rlc3Ryb3lfc29ja2V0KHN0cnVjdCBzb2NrICpzaylgLiBUaW1lIHRvIHBpdm90IHRvIGBuZXQveDI1L3gyNV90aW1lci5jYCB0byByb3VuZCBvdXQgdGhlIHBpY3R1cmUgb24gdGhlIG5vbi1zdGF0aWMgZnVuY3Rpb25zLi4uXG5cblxuIiwiSW5wdXRUb2tlbnMiOjM4NTcsIk91dHB1dFRva2VucyI6NDIsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo3NzMsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMjdUMDA6NTA6MjEuMzA4MzU1ODVaIiwiU2VxIjo2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MzE0MTEyOTg0LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInZvaWQgeDI1X3N0YXJ0X2hlYXJ0YmVhdFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJuZXQveDI1L3gyNV90aW1lci5jXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIm5ldC94MjUveDI1X3RpbWVyLmM9Mjc9dm9pZCB4MjVfaW5pdF90aW1lcnMoc3RydWN0IHNvY2sgKnNrKVxcbi0tXFxubmV0L3gyNS94MjVfdGltZXIuYy0zNi1cXG5uZXQveDI1L3gyNV90aW1lci5jOjM3OnZvaWQgeDI1X3N0YXJ0X2hlYXJ0YmVhdChzdHJ1Y3Qgc29jayAqc2spXFxubmV0L3gyNS94MjVfdGltZXIuYy0zOC17XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI3VDAwOjUwOjIxLjYyMjQ3NTc2NFoiLCJTZXEiOjcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjY5Njc5MTQ5NDYsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqTXkgQW5hbHlzaXMgb2YgdGhlIFguMjUgVGltZXIgYW5kIFNvY2tldCBSZWZjb3VudGluZyBQYXRjaCoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggYW5kIGNvbmZpcm1pbmcgdGhhdCBpdCBkZWFscyB3aXRoIG5vbi1zdGF0aWMgZnVuY3Rpb25zLiBSaWdodCBhd2F5LCBJIHNlZSB0aGUgY29yZSBmdW5jdGlvbnMgaW52b2x2ZWQ6IGB4MjVfc3RhcnRfaGVhcnRiZWF0YCwgYHgyNV9zdG9wX2hlYXJ0YmVhdGAsIGB4MjVfc3RhcnRfdDJ0aW1lcmAsIGB4MjVfc3RhcnRfdDIxdGltZXJgLCBgeDI1X3N0YXJ0X3QyMnRpbWVyYCwgYHgyNV9zdGFydF90MjN0aW1lcmAsIGFuZCBgeDI1X3N0b3BfdGltZXJgLiBUaGVzZSBhcmUgdGhlIG9uZXMgd2hlcmUgdGltZXIgbWFuYWdlbWVudCBpcyBiZWluZyBtb2RpZmllZCwgc28gdGhleSBhcmUgY3JpdGljYWwuXG5cbkkgbmVlZCB0byBxdWlja2x5IHNjYW4gdG8gc2VlIHdoaWNoIG90aGVyIGVudHJ5IHBvaW50cyB0cmlnZ2VyIHRoZXNlIHRpbWVyIGZ1bmN0aW9ucy4gTGV0J3Mgc2VlLi4uIGxvb2tpbmcgYXQgdGhlIGNvZGUsIEkgc2VlIHRoYXQgZnVuY3Rpb25zIHN1Y2ggYXMgYHgyNV9jb25uZWN0YCwgYHgyNV9yZWxlYXNlYCwgYHgyNV9zZW5kbXNnYCwgYHgyNV9yZWN2bXNnYCwgbWlnaHQgYmUgcmVsZXZhbnQuIEJlc3QgdG8gZ2V0IGEgZnVsbCBsaXN0IG9mIG1vZGlmaWVkLCBub24tc3RhdGljIGZ1bmN0aW9ucyB0aG91Z2guXG5cbkFoYSEgYHgyNV9zdGFydF9oZWFydGJlYXRgIGlzIGNhbGxlZCBmcm9tIGJvdGggYHgyNV9pbml0X3RpbWVyc2AgYW5kIGB4MjVfaGVhcnRiZWF0X2V4cGlyeWAuIE5vdywgYHgyNV9pbml0X3RpbWVyc2AgaXMgc3BlY2lmaWNhbGx5IGNhbGxlZCBmcm9tIGB4MjVfY3JlYXRlYCwgd2hpY2ggaXMgd2hlcmUgdGhpbmdzIGdldCBpbnRlcmVzdGluZy4gU2luY2UgYHgyNV9jcmVhdGVgIGhhbmRsZXMgc29ja2V0IGNyZWF0aW9uLCBmdXp6aW5nIHRoZSBjcmVhdGlvbiBvZiBYLjI1IHNvY2tldHMgYW5kIG90aGVyIHNvY2tldCBvcGVyYXRpb25zIHdvdWxkIGJlIHRoZSBwZXJmZWN0IHdheSB0byB0ZXN0IHRoZXNlIHRpbWVyIGZ1bmN0aW9uYWxpdGllcy5cblxuU28sIEknbGwgZm9jdXMgbXkgZnV6emluZyBlZmZvcnRzIG9uOlxuXG5geDI1X3N0YXJ0X2hlYXJ0YmVhdGBcbmB4MjVfc3RvcF9oZWFydGJlYXRgXG5geDI1X3N0YXJ0X3QydGltZXJgXG5geDI1X3N0YXJ0X3QyMXRpbWVyYFxuYHgyNV9zdGFydF90MjJ0aW1lcmBcbmB4MjVfc3RhcnRfdDIzdGltZXJgXG5geDI1X3N0b3BfdGltZXJgXG5cblRoZSBjb25maWd1cmF0aW9uIEknbSB1c2luZyBpcyBgWDI1YC5cblxuVGhpcyBwYXRjaCBpcyBhbGwgYWJvdXQgZml4aW5nIHRpbWVyIGhhbmRsaW5nIGFuZCBzb2NrZXQgcmVmY291bnRpbmcgd2l0aGluIHRoZSBYLjI1IHByb3RvY29sIGltcGxlbWVudGF0aW9uLiBJdCdzIHN1YnN0aXR1dGluZyBgbW9kX3RpbWVyYCB3aXRoIGBza19yZXNldF90aW1lcmAgYW5kIGFkZGluZyBgc29ja19wdXRgIGNhbGxzIGluIHRpbWVyIGNhbGxiYWNrcy4gVGhpcyB3aWxsIHByZXZlbnQgdXNlLWFmdGVyLWZyZWUgY29uZGl0aW9ucyBhbmQgbWVtb3J5IGxlYWtzLiBUaGUgY2hhbmdlcyBhcmUgZnVuZGFtZW50YWwgdG8gdGhlIG5ldHdvcmsgcHJvdG9jb2wncyBvcGVyYXRpb24sIHNvIHRoZXkncmUgcHJpbWUgdGFyZ2V0cyBmb3IgZnV6emluZy5cblxuSSBzaG91bGQgYWxzbyBkb3VibGUtY2hlY2sgcXVpY2tseSB0byBzZWUgaWYgYFgyNWAgaXRzZWxmIGRlcGVuZHMgb24gYW55dGhpbmcgZWxzZS4gVGhhdCBjb3VsZCBvcGVuIHVwIG1vcmUgYXR0YWNrIHN1cmZhY2VzLlxuXG5cbiIsIklucHV0VG9rZW5zIjo1NTIxLCJPdXRwdXRUb2tlbnMiOjMwLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NDI0LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI3VDAwOjUwOjI4LjU5MDM5MzJaIiwiU2VxIjo4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTA2MjQ2OTM4LCJFcnJvciI6Im5vIG1hdGNoZXMiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJkZXBlbmRzIG9uXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcIm5ldC94MjUvS2NvbmZpZ1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJlcnJvclwiOiBcIm5vIG1hdGNoZXNcIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjdUMDA6NTA6MjguNjk2NjUwNzM4WiIsIlNlcSI6OSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzU4MjI1MjE1MSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgbGV0J3MgZGl2ZSBpbnRvIHRoaXMuIEhlcmUncyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCBhcyBpZiB0aGV5J3JlIG15IG93bjpcblxuKipBbmFseXppbmcgdGhlIEtjb25maWcgZm9yIG5ldC94MjUqKlxuXG5BbHJpZ2h0LCB0aW1lIHRvIGdldCBpbnRvIHRoZSBkZXRhaWxzLiBJIHNlZSB3ZSdyZSBsb29raW5nIGF0IGBuZXQveDI1L0tjb25maWdgLiBSaWdodCBhd2F5LCBteSBleHBlcnQgbWluZCBraWNrcyBpbiDigJMgSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBmb3IgdGhlIFguMjUgbmV0d29ya2luZyBzdGFjayB3aXRoaW4gdGhpcyBrZXJuZWwgbW9kdWxlLiBXaGF0IGZlYXR1cmVzIGNhbiBiZSBlbmFibGVkIG9yIGRpc2FibGVkPyBXaGF0IGRlcGVuZGVuY2llcyBleGlzdD8gQXJlIHRoZXJlIGFueSBvYnZpb3VzIGFyZWFzIGZvciBvcHRpbWl6YXRpb24gb3IgcG90ZW50aWFsIGNvbmZsaWN0cyBiYXNlZCBvbiB3aGF0IEkgYWxyZWFkeSBrbm93IGFib3V0IFguMjU/XG5cbkknbSBtZW50YWxseSBzaWZ0aW5nIHRocm91Z2ggdGhpcyBmaWxlLCBub3RpbmcgdGhlIGxpa2VseSBzdHJ1Y3R1cmUuIEkgZXhwZWN0IHRvIHNlZSBgY29uZmlnYCBzdGF0ZW1lbnRzIGRlZmluaW5nIHZhcmlvdXMgZmVhdHVyZXMsIGBib29sYCwgYHRyaXN0YXRlYCwgYGludGAsIGV0Yy4sIGRldGVybWluaW5nIHRoZSBjb25maWd1cmF0aW9uIHR5cGUuIFRoZXJlJ2xsIGJlIGBkZXBlbmRzIG9uYCBjbGF1c2VzIGxpbmtpbmcgdGhlc2Ugb3B0aW9ucyB0byBvdGhlciBrZXJuZWwgZmVhdHVyZXMuIGBoZWxwYCB0ZXh0IHByb3ZpZGluZyBjcnVjaWFsIGNvbnRleHQuIEknbSBsb29raW5nIGZvciBhbnl0aGluZyB1bnVzdWFsIG9yIHBhcnRpY3VsYXJseSBpbnRlcmVzdGluZy4uLiBzb21lIGFkdmFuY2VkIG9yIGVzb3RlcmljIGZlYXR1cmUuIEFueSBvYnZpb3VzIG1haW50YWluZXIgbm90ZXMgdGhhdCBhcmUgaW1wb3J0YW50IHRvIGhlZWQgZm9yIGZ1dHVyZSB3b3JrP1xuXG5UaGlzIEtjb25maWcgd2lsbCBkaWN0YXRlIGhvdyBmbGV4aWJsZSBvciBzcGVjaWZpYyB0aGlzIFguMjUgaW1wbGVtZW50YXRpb24gaXMuIFRoZSBnb2FsIGlzIHRvIHNlZSBob3cgdGhlIHN5c3RlbSBpcyBjdXJyZW50bHkgY29uZmlndXJlZCBmb3IgdGhpcyB0eXBlIG9mIG5ldHdvcmssIGhvdyBjYW4gaXQgYmUgZW5oYW5jZWQgZm9yIG90aGVyIG5lZWRzLlxuXG5cbiIsIklucHV0VG9rZW5zIjo2NTQyLCJPdXRwdXRUb2tlbnMiOjM0LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTQsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMjdUMDA6NTA6MzIuMjc4OTA2NjM4WiIsIlNlcSI6MTAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InJlYWQtZmlsZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjgwNzg5LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRmlsZVwiOiBcIm5ldC94MjUvS2NvbmZpZ1wiLFxuICBcIkZpcnN0TGluZVwiOiAxLFxuICBcIkxpbmVDb3VudFwiOiAyMFxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiQ29udGVudHNcIjogXCIgICAxOlxcdCMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25seVxcbiAgIDI6XFx0I1xcbiAgIDM6XFx0IyBDQ0lUVCBYLjI1IFBhY2tldCBMYXllclxcbiAgIDQ6XFx0I1xcbiAgIDU6XFx0XFxuICAgNjpcXHRjb25maWcgWDI1XFxuICAgNzpcXHRcXHR0cmlzdGF0ZSBcXFwiQ0NJVFQgWC4yNSBQYWNrZXQgTGF5ZXJcXFwiXFxuICAgODpcXHRcXHRoZWxwXFxuICAgOTpcXHRcXHQgIFguMjUgaXMgYSBzZXQgb2Ygc3RhbmRhcmRpemVkIG5ldHdvcmsgcHJvdG9jb2xzLCBzaW1pbGFyIGluIHNjb3BlIHRvXFxuICAxMDpcXHRcXHQgIGZyYW1lIHJlbGF5OyB0aGUgb25lIHBoeXNpY2FsIGxpbmUgZnJvbSB5b3VyIGJveCB0byB0aGUgWC4yNSBuZXR3b3JrXFxuICAxMTpcXHRcXHQgIGVudHJ5IHBvaW50IGNhbiBjYXJyeSBzZXZlcmFsIGxvZ2ljYWwgcG9pbnQtdG8tcG9pbnQgY29ubmVjdGlvbnNcXG4gIDEyOlxcdFxcdCAgKGNhbGxlZCBcXFwidmlydHVhbCBjaXJjdWl0c1xcXCIpIHRvIG90aGVyIGNvbXB1dGVycyBjb25uZWN0ZWQgdG8gdGhlIFguMjVcXG4gIDEzOlxcdFxcdCAgbmV0d29yay4gR292ZXJubWVudHMsIGJhbmtzLCBhbmQgb3RoZXIgb3JnYW5pemF0aW9ucyB0ZW5kIHRvIHVzZSBpdFxcbiAgMTQ6XFx0XFx0ICB0byBjb25uZWN0IHRvIGVhY2ggb3RoZXIgb3IgdG8gZm9ybSBXaWRlIEFyZWEgTmV0d29ya3MgKFdBTnMpLiBNYW55XFxuICAxNTpcXHRcXHQgIGNvdW50cmllcyBoYXZlIHB1YmxpYyBYLjI1IG5ldHdvcmtzLiBYLjI1IGNvbnNpc3RzIG9mIHR3b1xcbiAgMTY6XFx0XFx0ICBwcm90b2NvbHM6IHRoZSBoaWdoZXIgbGV2ZWwgUGFja2V0IExheWVyIFByb3RvY29sIChQTFApIChzYXkgWSBoZXJlXFxuICAxNzpcXHRcXHQgIGlmIHlvdSB3YW50IHRoYXQpIGFuZCB0aGUgbG93ZXIgbGV2ZWwgZGF0YSBsaW5rIGxheWVyIHByb3RvY29sIExBUEJcXG4gIDE4OlxcdFxcdCAgKHNheSBZIHRvIFxcXCJMQVBCIERhdGEgTGluayBEcml2ZXJcXFwiIGJlbG93IGlmIHlvdSB3YW50IHRoYXQpLlxcbiAgMTk6XFx0XFxuICAyMDpcXHRcXHQgIEluZm9ybWF0aW9uIGFib3V0IFguMjUgZm9yIExpbnV4IGlzIGNvbnRhaW5lZCBpbiB0aGUgZmlsZXNcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjdUMDA6NTA6MzIuMjc4OTg5OTY5WiIsIlNlcSI6MTEsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjI5ODQzMjYyMDMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSB0aG91Z2h0IHByb2Nlc3Mgc3VtbWFyaXplZCwgZ2VhcmVkIHRvd2FyZHMgYW4gZXhwZXJ0OlxuXG4qKkludmVzdGlnYXRpbmcgYSBQb3RlbnRpYWwgTmV0d29yayBDb25maWd1cmF0aW9uIERlcGVuZGVuY3kqKlxuXG5BbHJpZ2h0LCBJIG5lZWQgdG8gZmlndXJlIHNvbWV0aGluZyBvdXQsIGFuZCB0aGUgc2l0dWF0aW9uIGxvb2tzIHNpbXBsZSBlbm91Z2ggdG8gc3RhcnQgd2l0aCBhIGRlcGVuZGVuY3kgY2hlY2suIEknbSBhc3N1bWluZyBubyBvYnZpb3VzIGV4dGVybmFsIGxpYnJhcmllcyBvciBtb2R1bGVzIGFyZSBkaXJlY3RseSBpbmZsdWVuY2luZyB0aGlzLlxuXG5UaGUgaW1tZWRpYXRlIHN0ZXAgSSdtIHRha2luZyBpcyB0byBkZWx2ZSBpbnRvIHRoZSBgbmV0L0tjb25maWdgIGZpbGUuIEdpdmVuIG15IGV4cGVyaWVuY2UsIHRoYXQncyBhbG1vc3QgYWx3YXlzIHRoZSBmaXJzdCBwbGFjZSB0byBsb29rIHdoZW4gZGVhbGluZyB3aXRoIG5ldHdvcmsgY29uZmlndXJhdGlvbiBvcHRpb25zIGluIHRoaXMgZW52aXJvbm1lbnQuIFNwZWNpZmljYWxseSwgSSdtIHRyeWluZyB0byBkZXRlcm1pbmUgaWYgdGhlIGBYMjVgIG9wdGlvbiBpcyBzb3VyY2VkIGFueXdoZXJlLiBUaGlzIHdpbGwgcXVpY2tseSByZXZlYWwgaWYgaXQncyBkZXBlbmRlbnQgb24gb3RoZXIgY29tcG9uZW50cyBvciBpZiBpdCBjYW4gYmUgZW5hYmxlZCBpbmRlcGVuZGVudGx5LlxuXG5cbiIsIklucHV0VG9rZW5zIjo3MjExLCJPdXRwdXRUb2tlbnMiOjM1LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjUsIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yN1QwMDo1MDozNS4yNjMzMTgzNDFaIiwiU2VxIjoxMiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjI5ODIxODU4NCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJzb3VyY2UgXFxcIm5ldC94MjUvS2NvbmZpZ1xcXCJcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwibmV0L0tjb25maWdcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwibmV0L0tjb25maWc9MjYzPXNvdXJjZSBcXFwibmV0L2xsYy9LY29uZmlnXFxcIlxcbm5ldC9LY29uZmlnOjI2NDpzb3VyY2UgXFxcIm5ldC94MjUvS2NvbmZpZ1xcXCJcXG5uZXQvS2NvbmZpZy0yNjUtc291cmNlIFxcXCJuZXQvbGFwYi9LY29uZmlnXFxcIlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yN1QwMDo1MDozNS41NjE1NDE5NjVaIiwiU2VxIjoxMywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzkyMTk3NjI5NSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IHN1bW1hcnksIHByZXNlbnRlZCBhcyBhIGRpcmVjdCByZWZsZWN0aW9uIG9mIG15IHRob3VnaHQgcHJvY2VzczpcblxuKipTdHJlYW1saW5pbmcgdGhlIENvbmZpZ3VyYXRpb24qKlxuXG5BbHJpZ2h0LCB0aGF0J3MgY29ycmVjdCwgYWJzb2x1dGVseS4gTG9va2luZyBhdCB0aGlzLCBJIHNlZSBpdCdzIHRydWUuIFRoZSBpbml0aWFsIGFzc2Vzc21lbnQgd2FzIGFjY3VyYXRlLiBJdCBhcHBlYXJzIHRoYXQgYFgyNWAgaXMgaW5kZWVkIHRoZSAqb25seSogY29uZmlndXJhdGlvbiB3ZSBuZWVkIHRvIGZvY3VzIG9uLiBXZSBjYW4gc2ltcGxpZnkgdGhpbmdzIGRyYXN0aWNhbGx5LCB3aGljaCBpcyBhbHdheXMgYSB3aW4uIE5vdywgbGV0J3MgY2FsbCB0aGUgbmV4dCBwcm9jZWR1cmUuIEkgdGhpbmsgd2Ugd2lsbCBjYWxsIGl0IGBzZXQtcmVzdWx0c2AuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjc0OTMsIk91dHB1dFRva2VucyI6MTgyLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjgsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMjdUMDA6NTA6MzkuNDgzNTIwOThaIiwiU2VxIjoxNCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo3NjgyNDYwOCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiWDI1XCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwieDI1X3N0YXJ0X2hlYXJ0YmVhdFwiLFxuICAgIFwieDI1X3N0b3BfaGVhcnRiZWF0XCIsXG4gICAgXCJ4MjVfc3RhcnRfdDJ0aW1lclwiLFxuICAgIFwieDI1X3N0YXJ0X3QyMXRpbWVyXCIsXG4gICAgXCJ4MjVfc3RhcnRfdDIydGltZXJcIixcbiAgICBcIngyNV9zdGFydF90MjN0aW1lclwiLFxuICAgIFwieDI1X3N0b3BfdGltZXJcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBmaXhlcyB0aW1lciBoYW5kbGluZyBhbmQgc29ja2V0IHJlZmNvdW50aW5nIGluIHRoZSBYLjI1IHByb3RvY29sIGltcGxlbWVudGF0aW9uLiBJdCByZXBsYWNlcyBtb2RfdGltZXIgd2l0aCBza19yZXNldF90aW1lciBhbmQgYWRkcyBzb2NrX3B1dCB0byB0aW1lciBjYWxsYmFja3MgdG8gcHJldmVudCB1c2UtYWZ0ZXItZnJlZSBvciBtZW1vcnkgbGVha3MuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiBuZXR3b3JrIHByb3RvY29sIGxvZ2ljIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJYMjVcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJ4MjVfc3RhcnRfaGVhcnRiZWF0XCIsXG4gICAgXCJ4MjVfc3RvcF9oZWFydGJlYXRcIixcbiAgICBcIngyNV9zdGFydF90MnRpbWVyXCIsXG4gICAgXCJ4MjVfc3RhcnRfdDIxdGltZXJcIixcbiAgICBcIngyNV9zdGFydF90MjJ0aW1lclwiLFxuICAgIFwieDI1X3N0YXJ0X3QyM3RpbWVyXCIsXG4gICAgXCJ4MjVfc3RvcF90aW1lclwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGZpeGVzIHRpbWVyIGhhbmRsaW5nIGFuZCBzb2NrZXQgcmVmY291bnRpbmcgaW4gdGhlIFguMjUgcHJvdG9jb2wgaW1wbGVtZW50YXRpb24uIEl0IHJlcGxhY2VzIG1vZF90aW1lciB3aXRoIHNrX3Jlc2V0X3RpbWVyIGFuZCBhZGRzIHNvY2tfcHV0IHRvIHRpbWVyIGNhbGxiYWNrcyB0byBwcmV2ZW50IHVzZS1hZnRlci1mcmVlIG9yIG1lbW9yeSBsZWFrcy4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIG5ldHdvcmsgcHJvdG9jb2wgbG9naWMgdGhhdCBzaG91bGQgYmUgZnV6emVkLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH1dOwoJCQlpZiAoIXJhd0RhdGEgfHwgcmF3RGF0YS5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpOwoJCQlkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKTsKCQkJZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpIHsKCQkJY29uc3Qgc3RhdHMgPSB7CgkJCQlsbG06IHsgY291bnQ6IDAsIHRva2VuczogMCwgZHVyYXRpb246IDAgfSwKCQkJCXRvb2w6IHsgY291bnQ6IDAsIGR1cmF0aW9uOiAwIH0KCQkJfTsKCgkJCXJhd0RhdGEuZm9yRWFjaChzID0+IHsKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOyAKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iKSB7CgkJCQkJc3RhdHMubGxtLmNvdW50Kys7CgkJCQkJc3RhdHMubGxtLnRva2VucyArPSAocy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2Vucyk7CgkJCQkJc3RhdHMubGxtLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0gZWxzZSBpZiAocy5UeXBlID09PSAidG9vbCIpIHsKCQkJCQlzdGF0cy50b29sLmNvdW50Kys7CgkJCQkJc3RhdHMudG9vbC5kdXJhdGlvbiArPSBkdXI7CgkJCQl9CgkJCX0pOwoKCQkJY29uc3QgYXZnTGxtRHVyID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0uZHVyYXRpb24gLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdMbG1Ub2tlbiA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLnRva2VucyAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z1Rvb2xEdXIgPSBzdGF0cy50b29sLmNvdW50ID4gMCA/IChzdGF0cy50b29sLmR1cmF0aW9uIC8gc3RhdHMudG9vbC5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgoJCQljb25zdCBsbG1TdW1hcnlDZWxscyA9IFtzdGF0cy5sbG0uY291bnQsIHN0YXRzLmxsbS50b2tlbnMsIGF2Z0xsbVRva2VuLCBzdGF0cy5sbG0uZHVyYXRpb24sIGF2Z0xsbUR1cl07CgkJCWNvbnN0IHRvb2xTdW1tYXJ5Q2VsbHMgPSBbc3RhdHMudG9vbC5jb3VudCwgc3RhdHMudG9vbC5kdXJhdGlvbiwgYXZnVG9vbER1cl07CgoJCQljb25zdCBsbG1TdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsbG1fc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCWxsbVN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCBsbG1UciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCWxsbVN1bWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQlsbG1Uci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQlsbG1TdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZChsbG1Ucik7CgoJCQljb25zdCB0b29sU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJdG9vbFN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCB0b29sVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQl0b29sU3VtbWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQl0b29sVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJdG9vbFN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKHRvb2xUcik7CgkJfQoKCQlmdW5jdGlvbiBkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGZpbHRlcmVkU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IFsibGxtIiwgInRvb2wiXS5pbmNsdWRlcyhkLlR5cGUpKTsKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnRHVyYXRpb24nKTsKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsgCgoJCQlmaWx0ZXJlZFN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQkKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOwoJCQkJbGV0IHRvb2x0aXAgPSBzLk5hbWU7CgkJCQlpZiAocy5UeXBlID09PSAibGxtIiAmJiBzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgkJCQlkYXRhLmFkZFJvdyhbYCR7cy5TZXF9YCwgZHVyLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVGltZSBDb25zdW1wdGlvbiBvZiBMTE0vVG9vbCBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNL1Rvb2wgU3RlcHMnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnU2Vjb25kcycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZHVyYXRpb25fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGxsbVN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBkLlR5cGUgPT09ICJsbG0iKTsKCQkJaWYgKGxsbVN0ZXBzLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnVG9rZW5zJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3N0eWxlJ30pOwkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsJCgoJCQljb25zdCBhZ2VudENvbG9ycyA9IHt9OwoJCQljb25zdCBwYWxldHRlID0gWycjNDI4NUY0JywgJyNEQjQ0MzcnLCAnI0Y0QjQwMCcsICcjMEY5RDU4JywgJyNBQjQ3QkMnLCAnIzAwQUNDMSddOwoJCQlsZXQgY29sb3JJZHggPSAwOwoJCQljb25zdCBhZ2VudExMTUNvdW50cyA9IHt9OwoJCQlsbG1TdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJaWYgKCFhZ2VudENvbG9yc1tzLk5hbWVdKSB7CgkJCQkJYWdlbnRDb2xvcnNbcy5OYW1lXSA9IHBhbGV0dGVbY29sb3JJZHggJSBwYWxldHRlLmxlbmd0aF07CgkJCQkJY29sb3JJZHgrKzsKCQkJCX0KCgkJCQlhZ2VudExMTUNvdW50c1tzLk5hbWVdID0gKGFnZW50TExNQ291bnRzW3MuTmFtZV0gfHwgMCkgKyAxOwoJCQkJY29uc3QgbGFiZWwgPSBgJHtzLk5hbWV9LSR7YWdlbnRMTE1Db3VudHNbcy5OYW1lXX1gOwoJCQkJY29uc3QgdG90YWxUb2tlbnMgPSBzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zOwoJCQkJY29uc3Qgc3R5bGUgPSBgY29sb3I6ICR7YWdlbnRDb2xvcnNbcy5OYW1lXX1gOwoJCQkJbGV0IHRvb2x0aXAgPSBgVG90YWwgVG9rZW5zOiAke3RvdGFsVG9rZW5zfVxuKEluOiAke3MuSW5wdXRUb2tlbnN9LCBPdXQ6ICR7cy5PdXRwdXRUb2tlbnN9LCBUaG91Z2h0czogJHtzLk91dHB1dFRob3VnaHRzVG9rZW5zfSlgOwoJCQkJaWYgKHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCgkJCQlkYXRhLmFkZFJvdyhbbGFiZWwsIHRvdGFsVG9rZW5zLCBzdHlsZSwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1Rva2VuIENvbnN1bXB0aW9uIGJ5IExMTSBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNIENhbGwgU2VxdWVuY2UnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnQ29uc3VtZWQgVG9rZW5zJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b2tlbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoJCWxldCBhbGxFeHBhbmRlZCA9IGZhbHNlOwoJCWZ1bmN0aW9uIHRvZ2dsZUFsbERldGFpbHMoKSB7CgkJCWFsbEV4cGFuZGVkID0gIWFsbEV4cGFuZGVkOwoJCQlkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdkZXRhaWxzJykuZm9yRWFjaChkID0+IHsKCQkJCWlmIChhbGxFeHBhbmRlZCkgZC5zZXRBdHRyaWJ1dGUoJ29wZW4nLCAnJyk7CgkJCQllbHNlIGQucmVtb3ZlQXR0cmlidXRlKCdvcGVuJyk7CgkJCX0pOwoJCX0KCTwvc2NyaXB0PgoKCjwvYm9keT4KPC9odG1sPgo=" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowhhkcd[1] Phase: Succeeded StartedAt: 2026-07-27 00:50:51 +0000 UTC FinishedAt: 2026-07-27 00:50:51 +0000 UTC Input: nil Output: nil --------- Name: series-workflowhhkcd[1].abort-on-skip-outcome Phase: Skipped StartedAt: 2026-07-27 00:50:51 +0000 UTC FinishedAt: 2026-07-27 00:50:51 +0000 UTC Input: nil Output: nil --------- Name: series-workflowhhkcd[2] Phase: Succeeded StartedAt: 2026-07-27 00:50:51 +0000 UTC FinishedAt: 2026-07-27 05:32:38 +0000 UTC Input: nil Output: nil --------- Name: series-workflowhhkcd[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"39e88f28fb32bf02bd4b525c24c842c9cff5663d","config_name":"upstream-apparmor-kasan.config","enable_configs":["X25"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["x25_start_heartbeat","x25_stop_heartbeat","x25_start_t2timer","x25_start_t21timer","x25_start_t22timer","x25_start_t23timer","x25_stop_timer"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"39e88f28fb32bf02bd4b525c24c842c9cff5663d","config_name":"upstream-apparmor-kasan.config","enable_configs":["X25"],"series_id":"990cd1a2-558b-4bce-a0cc-6efb77d10e65","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN) Phase: Succeeded StartedAt: 2026-07-27 00:50:51 +0000 UTC FinishedAt: 2026-07-27 05:32:38 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:element,Default:nil,Value:*{"base":{"arch":"amd64","commit_hash":"39e88f28fb32bf02bd4b525c24c842c9cff5663d","config_name":"upstream-apparmor-kasan.config","enable_configs":["X25"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},"fuzz":{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["x25_start_heartbeat","x25_stop_heartbeat","x25_start_t2timer","x25_start_t21timer","x25_start_t22timer","x25_start_t23timer","x25_stop_timer"],"skip_cover_check":false},"patched":{"arch":"amd64","commit_hash":"39e88f28fb32bf02bd4b525c24c842c9cff5663d","config_name":"upstream-apparmor-kasan.config","enable_configs":["X25"],"series_id":"990cd1a2-558b-4bce-a0cc-6efb77d10e65","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},"retest":null,"track":"KASAN"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: nil --------- Name: series-workflowhhkcd[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"39e88f28fb32bf02bd4b525c24c842c9cff5663d","config_name":"upstream-apparmor-kasan.config","enable_configs":["X25"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["x25_start_heartbeat","x25_stop_heartbeat","x25_start_t2timer","x25_start_t21timer","x25_start_t22timer","x25_start_t23timer","x25_stop_timer"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"39e88f28fb32bf02bd4b525c24c842c9cff5663d","config_name":"upstream-apparmor-kasan.config","enable_configs":["X25"],"series_id":"990cd1a2-558b-4bce-a0cc-6efb77d10e65","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[0] Phase: Succeeded StartedAt: 2026-07-27 00:50:51 +0000 UTC FinishedAt: 2026-07-27 00:51:12 +0000 UTC Input: nil Output: nil --------- Name: series-workflowhhkcd[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"39e88f28fb32bf02bd4b525c24c842c9cff5663d","config_name":"upstream-apparmor-kasan.config","enable_configs":["X25"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["x25_start_heartbeat","x25_stop_heartbeat","x25_start_t2timer","x25_start_t21timer","x25_start_t22timer","x25_start_t23timer","x25_stop_timer"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"39e88f28fb32bf02bd4b525c24c842c9cff5663d","config_name":"upstream-apparmor-kasan.config","enable_configs":["X25"],"series_id":"990cd1a2-558b-4bce-a0cc-6efb77d10e65","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[0].save-base-req Phase: Succeeded StartedAt: 2026-07-27 00:50:51 +0000 UTC FinishedAt: 2026-07-27 00:50:56 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"39e88f28fb32bf02bd4b525c24c842c9cff5663d","config_name":"upstream-apparmor-kasan.config","enable_configs":["X25"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.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-workflowhhkcd/series-workflowhhkcd-convert-artifact-4159497945/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowhhkcd[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"39e88f28fb32bf02bd4b525c24c842c9cff5663d","config_name":"upstream-apparmor-kasan.config","enable_configs":["X25"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["x25_start_heartbeat","x25_stop_heartbeat","x25_start_t2timer","x25_start_t21timer","x25_start_t22timer","x25_start_t23timer","x25_stop_timer"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"39e88f28fb32bf02bd4b525c24c842c9cff5663d","config_name":"upstream-apparmor-kasan.config","enable_configs":["X25"],"series_id":"990cd1a2-558b-4bce-a0cc-6efb77d10e65","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[1] Phase: Succeeded StartedAt: 2026-07-27 00:51:12 +0000 UTC FinishedAt: 2026-07-27 01:37:55 +0000 UTC Input: nil Output: nil --------- Name: series-workflowhhkcd[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"39e88f28fb32bf02bd4b525c24c842c9cff5663d","config_name":"upstream-apparmor-kasan.config","enable_configs":["X25"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["x25_start_heartbeat","x25_stop_heartbeat","x25_start_t2timer","x25_start_t21timer","x25_start_t22timer","x25_start_t23timer","x25_stop_timer"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"39e88f28fb32bf02bd4b525c24c842c9cff5663d","config_name":"upstream-apparmor-kasan.config","enable_configs":["X25"],"series_id":"990cd1a2-558b-4bce-a0cc-6efb77d10e65","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[1].base-build Phase: Succeeded StartedAt: 2026-07-27 00:51:12 +0000 UTC FinishedAt: 2026-07-27 01:37:55 +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:*16b5b1f7-3d92-4413-9a2a-1efe4dc8ab55,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-workflowhhkcd/series-workflowhhkcd-convert-artifact-4159497945/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": "08fa7c03-4f8c-48d3-9630-e9c1d10fb4ce", "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-workflowhhkcd/series-workflowhhkcd-build-action-861996919/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowhhkcd[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"39e88f28fb32bf02bd4b525c24c842c9cff5663d","config_name":"upstream-apparmor-kasan.config","enable_configs":["X25"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["x25_start_heartbeat","x25_stop_heartbeat","x25_start_t2timer","x25_start_t21timer","x25_start_t22timer","x25_start_t23timer","x25_stop_timer"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"39e88f28fb32bf02bd4b525c24c842c9cff5663d","config_name":"upstream-apparmor-kasan.config","enable_configs":["X25"],"series_id":"990cd1a2-558b-4bce-a0cc-6efb77d10e65","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[1].base-build(0) Phase: Succeeded StartedAt: 2026-07-27 00:51:12 +0000 UTC FinishedAt: 2026-07-27 01:34:20 +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:*16b5b1f7-3d92-4413-9a2a-1efe4dc8ab55,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-workflowhhkcd/series-workflowhhkcd-convert-artifact-4159497945/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": "08fa7c03-4f8c-48d3-9630-e9c1d10fb4ce", "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-workflowhhkcd/series-workflowhhkcd-build-action-861996919/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowhhkcd[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"39e88f28fb32bf02bd4b525c24c842c9cff5663d","config_name":"upstream-apparmor-kasan.config","enable_configs":["X25"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["x25_start_heartbeat","x25_stop_heartbeat","x25_start_t2timer","x25_start_t21timer","x25_start_t22timer","x25_start_t23timer","x25_stop_timer"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"39e88f28fb32bf02bd4b525c24c842c9cff5663d","config_name":"upstream-apparmor-kasan.config","enable_configs":["X25"],"series_id":"990cd1a2-558b-4bce-a0cc-6efb77d10e65","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[2] Phase: Succeeded StartedAt: 2026-07-27 01:37:55 +0000 UTC FinishedAt: 2026-07-27 01:37:55 +0000 UTC Input: nil Output: nil --------- Name: series-workflowhhkcd[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"39e88f28fb32bf02bd4b525c24c842c9cff5663d","config_name":"upstream-apparmor-kasan.config","enable_configs":["X25"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["x25_start_heartbeat","x25_stop_heartbeat","x25_start_t2timer","x25_start_t21timer","x25_start_t22timer","x25_start_t23timer","x25_stop_timer"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"39e88f28fb32bf02bd4b525c24c842c9cff5663d","config_name":"upstream-apparmor-kasan.config","enable_configs":["X25"],"series_id":"990cd1a2-558b-4bce-a0cc-6efb77d10e65","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[2].abort-if-base-build-failed Phase: Skipped StartedAt: 2026-07-27 01:37:55 +0000 UTC FinishedAt: 2026-07-27 01:37:55 +0000 UTC Input: nil Output: nil --------- Name: series-workflowhhkcd[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"39e88f28fb32bf02bd4b525c24c842c9cff5663d","config_name":"upstream-apparmor-kasan.config","enable_configs":["X25"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["x25_start_heartbeat","x25_stop_heartbeat","x25_start_t2timer","x25_start_t21timer","x25_start_t22timer","x25_start_t23timer","x25_stop_timer"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"39e88f28fb32bf02bd4b525c24c842c9cff5663d","config_name":"upstream-apparmor-kasan.config","enable_configs":["X25"],"series_id":"990cd1a2-558b-4bce-a0cc-6efb77d10e65","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[3] Phase: Succeeded StartedAt: 2026-07-27 01:37:55 +0000 UTC FinishedAt: 2026-07-27 01:38:15 +0000 UTC Input: nil Output: nil --------- Name: series-workflowhhkcd[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"39e88f28fb32bf02bd4b525c24c842c9cff5663d","config_name":"upstream-apparmor-kasan.config","enable_configs":["X25"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["x25_start_heartbeat","x25_stop_heartbeat","x25_start_t2timer","x25_start_t21timer","x25_start_t22timer","x25_start_t23timer","x25_stop_timer"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"39e88f28fb32bf02bd4b525c24c842c9cff5663d","config_name":"upstream-apparmor-kasan.config","enable_configs":["X25"],"series_id":"990cd1a2-558b-4bce-a0cc-6efb77d10e65","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[3].save-patched-req Phase: Succeeded StartedAt: 2026-07-27 01:37:55 +0000 UTC FinishedAt: 2026-07-27 01:38:08 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"39e88f28fb32bf02bd4b525c24c842c9cff5663d","config_name":"upstream-apparmor-kasan.config","enable_configs":["X25"],"series_id":"990cd1a2-558b-4bce-a0cc-6efb77d10e65","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.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-workflowhhkcd/series-workflowhhkcd-convert-artifact-2605766572/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowhhkcd[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"39e88f28fb32bf02bd4b525c24c842c9cff5663d","config_name":"upstream-apparmor-kasan.config","enable_configs":["X25"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["x25_start_heartbeat","x25_stop_heartbeat","x25_start_t2timer","x25_start_t21timer","x25_start_t22timer","x25_start_t23timer","x25_stop_timer"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"39e88f28fb32bf02bd4b525c24c842c9cff5663d","config_name":"upstream-apparmor-kasan.config","enable_configs":["X25"],"series_id":"990cd1a2-558b-4bce-a0cc-6efb77d10e65","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[4] Phase: Succeeded StartedAt: 2026-07-27 01:38:15 +0000 UTC FinishedAt: 2026-07-27 01:40:38 +0000 UTC Input: nil Output: nil --------- Name: series-workflowhhkcd[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"39e88f28fb32bf02bd4b525c24c842c9cff5663d","config_name":"upstream-apparmor-kasan.config","enable_configs":["X25"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["x25_start_heartbeat","x25_stop_heartbeat","x25_start_t2timer","x25_start_t21timer","x25_start_t22timer","x25_start_t23timer","x25_stop_timer"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"39e88f28fb32bf02bd4b525c24c842c9cff5663d","config_name":"upstream-apparmor-kasan.config","enable_configs":["X25"],"series_id":"990cd1a2-558b-4bce-a0cc-6efb77d10e65","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[4].boot-test-base Phase: Succeeded StartedAt: 2026-07-27 01:38:15 +0000 UTC FinishedAt: 2026-07-27 01:40:28 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*08fa7c03-4f8c-48d3-9630-e9c1d10fb4ce,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-workflowhhkcd/series-workflowhhkcd-build-action-861996919/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-workflowhhkcd[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"39e88f28fb32bf02bd4b525c24c842c9cff5663d","config_name":"upstream-apparmor-kasan.config","enable_configs":["X25"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["x25_start_heartbeat","x25_stop_heartbeat","x25_start_t2timer","x25_start_t21timer","x25_start_t22timer","x25_start_t23timer","x25_stop_timer"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"39e88f28fb32bf02bd4b525c24c842c9cff5663d","config_name":"upstream-apparmor-kasan.config","enable_configs":["X25"],"series_id":"990cd1a2-558b-4bce-a0cc-6efb77d10e65","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[5] Phase: Succeeded StartedAt: 2026-07-27 01:40:38 +0000 UTC FinishedAt: 2026-07-27 01:40:38 +0000 UTC Input: nil Output: nil --------- Name: series-workflowhhkcd[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"39e88f28fb32bf02bd4b525c24c842c9cff5663d","config_name":"upstream-apparmor-kasan.config","enable_configs":["X25"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["x25_start_heartbeat","x25_stop_heartbeat","x25_start_t2timer","x25_start_t21timer","x25_start_t22timer","x25_start_t23timer","x25_stop_timer"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"39e88f28fb32bf02bd4b525c24c842c9cff5663d","config_name":"upstream-apparmor-kasan.config","enable_configs":["X25"],"series_id":"990cd1a2-558b-4bce-a0cc-6efb77d10e65","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[5].abort-if-base-boot-failed Phase: Skipped StartedAt: 2026-07-27 01:40:38 +0000 UTC FinishedAt: 2026-07-27 01:40:38 +0000 UTC Input: nil Output: nil --------- Name: series-workflowhhkcd[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"39e88f28fb32bf02bd4b525c24c842c9cff5663d","config_name":"upstream-apparmor-kasan.config","enable_configs":["X25"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["x25_start_heartbeat","x25_stop_heartbeat","x25_start_t2timer","x25_start_t21timer","x25_start_t22timer","x25_start_t23timer","x25_stop_timer"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"39e88f28fb32bf02bd4b525c24c842c9cff5663d","config_name":"upstream-apparmor-kasan.config","enable_configs":["X25"],"series_id":"990cd1a2-558b-4bce-a0cc-6efb77d10e65","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[6] Phase: Succeeded StartedAt: 2026-07-27 01:40:38 +0000 UTC FinishedAt: 2026-07-27 02:26:55 +0000 UTC Input: nil Output: nil --------- Name: series-workflowhhkcd[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"39e88f28fb32bf02bd4b525c24c842c9cff5663d","config_name":"upstream-apparmor-kasan.config","enable_configs":["X25"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["x25_start_heartbeat","x25_stop_heartbeat","x25_start_t2timer","x25_start_t21timer","x25_start_t22timer","x25_start_t23timer","x25_stop_timer"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"39e88f28fb32bf02bd4b525c24c842c9cff5663d","config_name":"upstream-apparmor-kasan.config","enable_configs":["X25"],"series_id":"990cd1a2-558b-4bce-a0cc-6efb77d10e65","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[6].patched-build Phase: Succeeded StartedAt: 2026-07-27 01:40:38 +0000 UTC FinishedAt: 2026-07-27 02:26:55 +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:*16b5b1f7-3d92-4413-9a2a-1efe4dc8ab55,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-workflowhhkcd/series-workflowhhkcd-convert-artifact-2605766572/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": "0d41d2ee-4191-48ca-9dac-3840522b8777", "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-workflowhhkcd/series-workflowhhkcd-build-action-141712968/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowhhkcd[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"39e88f28fb32bf02bd4b525c24c842c9cff5663d","config_name":"upstream-apparmor-kasan.config","enable_configs":["X25"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["x25_start_heartbeat","x25_stop_heartbeat","x25_start_t2timer","x25_start_t21timer","x25_start_t22timer","x25_start_t23timer","x25_stop_timer"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"39e88f28fb32bf02bd4b525c24c842c9cff5663d","config_name":"upstream-apparmor-kasan.config","enable_configs":["X25"],"series_id":"990cd1a2-558b-4bce-a0cc-6efb77d10e65","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[6].patched-build(0) Phase: Succeeded StartedAt: 2026-07-27 01:40:38 +0000 UTC FinishedAt: 2026-07-27 02:26:45 +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:*16b5b1f7-3d92-4413-9a2a-1efe4dc8ab55,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-workflowhhkcd/series-workflowhhkcd-convert-artifact-2605766572/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": "0d41d2ee-4191-48ca-9dac-3840522b8777", "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-workflowhhkcd/series-workflowhhkcd-build-action-141712968/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowhhkcd[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"39e88f28fb32bf02bd4b525c24c842c9cff5663d","config_name":"upstream-apparmor-kasan.config","enable_configs":["X25"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["x25_start_heartbeat","x25_stop_heartbeat","x25_start_t2timer","x25_start_t21timer","x25_start_t22timer","x25_start_t23timer","x25_stop_timer"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"39e88f28fb32bf02bd4b525c24c842c9cff5663d","config_name":"upstream-apparmor-kasan.config","enable_configs":["X25"],"series_id":"990cd1a2-558b-4bce-a0cc-6efb77d10e65","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[7] Phase: Succeeded StartedAt: 2026-07-27 02:26:55 +0000 UTC FinishedAt: 2026-07-27 02:26:55 +0000 UTC Input: nil Output: nil --------- Name: series-workflowhhkcd[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"39e88f28fb32bf02bd4b525c24c842c9cff5663d","config_name":"upstream-apparmor-kasan.config","enable_configs":["X25"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["x25_start_heartbeat","x25_stop_heartbeat","x25_start_t2timer","x25_start_t21timer","x25_start_t22timer","x25_start_t23timer","x25_stop_timer"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"39e88f28fb32bf02bd4b525c24c842c9cff5663d","config_name":"upstream-apparmor-kasan.config","enable_configs":["X25"],"series_id":"990cd1a2-558b-4bce-a0cc-6efb77d10e65","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[7].abort-if-patched-build-failed Phase: Skipped StartedAt: 2026-07-27 02:26:55 +0000 UTC FinishedAt: 2026-07-27 02:26:55 +0000 UTC Input: nil Output: nil --------- Name: series-workflowhhkcd[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"39e88f28fb32bf02bd4b525c24c842c9cff5663d","config_name":"upstream-apparmor-kasan.config","enable_configs":["X25"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["x25_start_heartbeat","x25_stop_heartbeat","x25_start_t2timer","x25_start_t21timer","x25_start_t22timer","x25_start_t23timer","x25_stop_timer"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"39e88f28fb32bf02bd4b525c24c842c9cff5663d","config_name":"upstream-apparmor-kasan.config","enable_configs":["X25"],"series_id":"990cd1a2-558b-4bce-a0cc-6efb77d10e65","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[8] Phase: Succeeded StartedAt: 2026-07-27 02:26:55 +0000 UTC FinishedAt: 2026-07-27 02:29:03 +0000 UTC Input: nil Output: nil --------- Name: series-workflowhhkcd[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"39e88f28fb32bf02bd4b525c24c842c9cff5663d","config_name":"upstream-apparmor-kasan.config","enable_configs":["X25"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["x25_start_heartbeat","x25_stop_heartbeat","x25_start_t2timer","x25_start_t21timer","x25_start_t22timer","x25_start_t23timer","x25_stop_timer"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"39e88f28fb32bf02bd4b525c24c842c9cff5663d","config_name":"upstream-apparmor-kasan.config","enable_configs":["X25"],"series_id":"990cd1a2-558b-4bce-a0cc-6efb77d10e65","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[8].boot-test-patched Phase: Succeeded StartedAt: 2026-07-27 02:26:55 +0000 UTC FinishedAt: 2026-07-27 02:28:53 +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:*0d41d2ee-4191-48ca-9dac-3840522b8777,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-workflowhhkcd/series-workflowhhkcd-build-action-141712968/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-workflowhhkcd[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"39e88f28fb32bf02bd4b525c24c842c9cff5663d","config_name":"upstream-apparmor-kasan.config","enable_configs":["X25"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["x25_start_heartbeat","x25_stop_heartbeat","x25_start_t2timer","x25_start_t21timer","x25_start_t22timer","x25_start_t23timer","x25_stop_timer"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"39e88f28fb32bf02bd4b525c24c842c9cff5663d","config_name":"upstream-apparmor-kasan.config","enable_configs":["X25"],"series_id":"990cd1a2-558b-4bce-a0cc-6efb77d10e65","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[10] Phase: Succeeded StartedAt: 2026-07-27 02:29:03 +0000 UTC FinishedAt: 2026-07-27 05:32:38 +0000 UTC Input: nil Output: nil --------- Name: series-workflowhhkcd[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"39e88f28fb32bf02bd4b525c24c842c9cff5663d","config_name":"upstream-apparmor-kasan.config","enable_configs":["X25"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["x25_start_heartbeat","x25_stop_heartbeat","x25_start_t2timer","x25_start_t21timer","x25_start_t22timer","x25_start_t23timer","x25_stop_timer"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"39e88f28fb32bf02bd4b525c24c842c9cff5663d","config_name":"upstream-apparmor-kasan.config","enable_configs":["X25"],"series_id":"990cd1a2-558b-4bce-a0cc-6efb77d10e65","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[10].run-fuzz Phase: Succeeded StartedAt: 2026-07-27 02:29:03 +0000 UTC FinishedAt: 2026-07-27 05:32:38 +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":["x25_start_heartbeat","x25_stop_heartbeat","x25_start_t2timer","x25_start_t21timer","x25_start_t22timer","x25_start_t23timer","x25_stop_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:*08fa7c03-4f8c-48d3-9630-e9c1d10fb4ce,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*0d41d2ee-4191-48ca-9dac-3840522b8777,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-workflowhhkcd/series-workflowhhkcd-build-action-861996919/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-workflowhhkcd/series-workflowhhkcd-build-action-141712968/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: nil --------- Name: series-workflowhhkcd[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"39e88f28fb32bf02bd4b525c24c842c9cff5663d","config_name":"upstream-apparmor-kasan.config","enable_configs":["X25"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["x25_start_heartbeat","x25_stop_heartbeat","x25_start_t2timer","x25_start_t21timer","x25_start_t22timer","x25_start_t23timer","x25_stop_timer"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"39e88f28fb32bf02bd4b525c24c842c9cff5663d","config_name":"upstream-apparmor-kasan.config","enable_configs":["X25"],"series_id":"990cd1a2-558b-4bce-a0cc-6efb77d10e65","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[10].run-fuzz[0] Phase: Succeeded StartedAt: 2026-07-27 02:29:03 +0000 UTC FinishedAt: 2026-07-27 02:29:29 +0000 UTC Input: nil Output: nil --------- Name: series-workflowhhkcd[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"39e88f28fb32bf02bd4b525c24c842c9cff5663d","config_name":"upstream-apparmor-kasan.config","enable_configs":["X25"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["x25_start_heartbeat","x25_stop_heartbeat","x25_start_t2timer","x25_start_t21timer","x25_start_t22timer","x25_start_t23timer","x25_stop_timer"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"39e88f28fb32bf02bd4b525c24c842c9cff5663d","config_name":"upstream-apparmor-kasan.config","enable_configs":["X25"],"series_id":"990cd1a2-558b-4bce-a0cc-6efb77d10e65","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[10].run-fuzz[0].save-fuzz-config Phase: Succeeded StartedAt: 2026-07-27 02:29:03 +0000 UTC FinishedAt: 2026-07-27 02:29:21 +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":["x25_start_heartbeat","x25_stop_heartbeat","x25_start_t2timer","x25_start_t21timer","x25_start_t22timer","x25_start_t23timer","x25_stop_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-workflowhhkcd/series-workflowhhkcd-convert-artifact-3714989973/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowhhkcd[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"39e88f28fb32bf02bd4b525c24c842c9cff5663d","config_name":"upstream-apparmor-kasan.config","enable_configs":["X25"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["x25_start_heartbeat","x25_stop_heartbeat","x25_start_t2timer","x25_start_t21timer","x25_start_t22timer","x25_start_t23timer","x25_stop_timer"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"39e88f28fb32bf02bd4b525c24c842c9cff5663d","config_name":"upstream-apparmor-kasan.config","enable_configs":["X25"],"series_id":"990cd1a2-558b-4bce-a0cc-6efb77d10e65","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[10].run-retest Phase: Skipped StartedAt: 2026-07-27 02:29:03 +0000 UTC FinishedAt: 2026-07-27 02:29:03 +0000 UTC Input: nil Output: nil --------- Name: series-workflowhhkcd[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"39e88f28fb32bf02bd4b525c24c842c9cff5663d","config_name":"upstream-apparmor-kasan.config","enable_configs":["X25"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["x25_start_heartbeat","x25_stop_heartbeat","x25_start_t2timer","x25_start_t21timer","x25_start_t22timer","x25_start_t23timer","x25_stop_timer"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"39e88f28fb32bf02bd4b525c24c842c9cff5663d","config_name":"upstream-apparmor-kasan.config","enable_configs":["X25"],"series_id":"990cd1a2-558b-4bce-a0cc-6efb77d10e65","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[9] Phase: Succeeded StartedAt: 2026-07-27 02:29:03 +0000 UTC FinishedAt: 2026-07-27 02:29:03 +0000 UTC Input: nil Output: nil --------- Name: series-workflowhhkcd[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"39e88f28fb32bf02bd4b525c24c842c9cff5663d","config_name":"upstream-apparmor-kasan.config","enable_configs":["X25"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["x25_start_heartbeat","x25_stop_heartbeat","x25_start_t2timer","x25_start_t21timer","x25_start_t22timer","x25_start_t23timer","x25_stop_timer"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"39e88f28fb32bf02bd4b525c24c842c9cff5663d","config_name":"upstream-apparmor-kasan.config","enable_configs":["X25"],"series_id":"990cd1a2-558b-4bce-a0cc-6efb77d10e65","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[9].abort-if-patched-boot-failed Phase: Skipped StartedAt: 2026-07-27 02:29:03 +0000 UTC FinishedAt: 2026-07-27 02:29:03 +0000 UTC Input: nil Output: nil --------- Name: series-workflowhhkcd[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"39e88f28fb32bf02bd4b525c24c842c9cff5663d","config_name":"upstream-apparmor-kasan.config","enable_configs":["X25"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["x25_start_heartbeat","x25_stop_heartbeat","x25_start_t2timer","x25_start_t21timer","x25_start_t22timer","x25_start_t23timer","x25_stop_timer"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"39e88f28fb32bf02bd4b525c24c842c9cff5663d","config_name":"upstream-apparmor-kasan.config","enable_configs":["X25"],"series_id":"990cd1a2-558b-4bce-a0cc-6efb77d10e65","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[10].run-fuzz[1] Phase: Succeeded StartedAt: 2026-07-27 02:29:29 +0000 UTC FinishedAt: 2026-07-27 05:32:38 +0000 UTC Input: nil Output: nil --------- Name: series-workflowhhkcd[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"39e88f28fb32bf02bd4b525c24c842c9cff5663d","config_name":"upstream-apparmor-kasan.config","enable_configs":["X25"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["x25_start_heartbeat","x25_stop_heartbeat","x25_start_t2timer","x25_start_t21timer","x25_start_t22timer","x25_start_t23timer","x25_stop_timer"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"39e88f28fb32bf02bd4b525c24c842c9cff5663d","config_name":"upstream-apparmor-kasan.config","enable_configs":["X25"],"series_id":"990cd1a2-558b-4bce-a0cc-6efb77d10e65","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[10].run-fuzz[1].fuzz Phase: Succeeded StartedAt: 2026-07-27 02:29:29 +0000 UTC FinishedAt: 2026-07-27 05:32:28 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*08fa7c03-4f8c-48d3-9630-e9c1d10fb4ce,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*0d41d2ee-4191-48ca-9dac-3840522b8777,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-workflowhhkcd/series-workflowhhkcd-build-action-861996919/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-workflowhhkcd/series-workflowhhkcd-build-action-141712968/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-workflowhhkcd/series-workflowhhkcd-convert-artifact-3714989973/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,}