Name: series-workflow5whq6 Phase: Succeeded StartedAt: 2026-07-17 22:54:17 +0000 UTC FinishedAt: 2026-07-18 03:24:00 +0000 UTC Input: nil Output: nil --------- Name: series-workflow5whq6[0] Phase: Succeeded StartedAt: 2026-07-17 22:54:17 +0000 UTC FinishedAt: 2026-07-17 23:13:21 +0000 UTC Input: nil Output: nil --------- Name: series-workflow5whq6[0].run-triage Phase: Succeeded StartedAt: 2026-07-17 22:54:17 +0000 UTC FinishedAt: 2026-07-17 23:13:21 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "torvalds", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux", "commit_hash": "8d187d4b33c262c0f3e44842553521151d8629e8", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "TIPC" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "torvalds", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux", "commit_hash": "8d187d4b33c262c0f3e44842553521151d8629e8", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "TIPC" ], "series_id": "a24fe85a-ef5b-44c1-b49e-ca61c7b893a7" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [ "tipc_named_node_up", "tipc_named_dist_cluster_scope", "tipc_node_dist_bulk", "named_distribute" ], "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+CgkJCTx0ZD4yMDI2LzA3LzE3IDIzOjEyPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O1RJUEMmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDt0aXBjX25hbWVkX25vZGVfdXAmIzM0OywKICAgICYjMzQ7dGlwY19uYW1lZF9kaXN0X2NsdXN0ZXJfc2NvcGUmIzM0OywKICAgICYjMzQ7dGlwY19ub2RlX2Rpc3RfYnVsayYjMzQ7LAogICAgJiMzNDtuYW1lZF9kaXN0cmlidXRlJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBUSVBDIHByb3RvY29sJiMzOTtzIG5vZGUgaW5pdGlhbGl6YXRpb24gYW5kIGJ1bGsgcHVibGljYXRpb24gZGlzdHJpYnV0aW9uIGxvZ2ljLCBpbnRyb2R1Y2luZyBhIG5ldyB3b3JrIGl0ZW0gYW5kIHN5bmNocm9uaXphdGlvbiBtZWNoYW5pc20uIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgY29yZSBUSVBDIGxvZ2ljIHRoYXQgc2hvdWxkIGJlIGZ1enplZC4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNyAyMzoxMjwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IDA3YzFjYjc0NGNkNjljYjhmZGJkZDg4NzQyZWIwYTE4NWJiYWI0YTdcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgRnJpIEp1bCAxNyAyMzoxMjo0OSAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9uZXQvdGlwYy9jb3JlLmMgYi9uZXQvdGlwYy9jb3JlLmNcbmluZGV4IDQzNGU3MGVhYmUwODEyLi5jZTE2NDUwOWQ5ZTI3YSAxMDA2NDRcbi0tLSBhL25ldC90aXBjL2NvcmUuY1xuJiM0MzsmIzQzOyYjNDM7IGIvbmV0L3RpcGMvY29yZS5jXG5AQCAtNjAsNiAmIzQzOzYwLDcgQEAgc3RhdGljIGludCBfX25ldF9pbml0IHRpcGNfaW5pdF9uZXQoc3RydWN0IG5ldCAqbmV0KVxuIFx0dG4tXHUwMDNldHJpYWxfYWRkciA9IDA7XG4gXHR0bi1cdTAwM2VhZGRyX3RyaWFsX2VuZCA9IDA7XG4gXHR0bi1cdTAwM2VjYXBhYmlsaXRpZXMgPSBUSVBDX05PREVfQ0FQQUJJTElUSUVTO1xuJiM0MztcdGF0b21pY19zZXQoXHUwMDI2dG4tXHUwMDNlZmluYWxpemVkLCAwKTtcbiBcdElOSVRfV09SSyhcdTAwMjZ0bi1cdTAwM2V3b3JrLCB0aXBjX25ldF9maW5hbGl6ZV93b3JrKTtcbiBcdG1lbXNldCh0bi1cdTAwM2Vub2RlX2lkLCAwLCBzaXplb2YodG4tXHUwMDNlbm9kZV9pZCkpO1xuIFx0bWVtc2V0KHRuLVx1MDAzZW5vZGVfaWRfc3RyaW5nLCAwLCBzaXplb2YodG4tXHUwMDNlbm9kZV9pZF9zdHJpbmcpKTtcbmRpZmYgLS1naXQgYS9uZXQvdGlwYy9jb3JlLmggYi9uZXQvdGlwYy9jb3JlLmhcbmluZGV4IDljZTVmOWZmNmNjMDMxLi43Njc2ODg0NGM4MDgxNCAxMDA2NDRcbi0tLSBhL25ldC90aXBjL2NvcmUuaFxuJiM0MzsmIzQzOyYjNDM7IGIvbmV0L3RpcGMvY29yZS5oXG5AQCAtMTQ1LDYgJiM0MzsxNDUsOCBAQCBzdHJ1Y3QgdGlwY19uZXQge1xuIFx0c3RydWN0IHdvcmtfc3RydWN0IHdvcms7XG4gXHQvKiBUaGUgbnVtYmVycyBvZiB3b3JrIHF1ZXVlcyBpbiBzY2hlZHVsZSAqL1xuIFx0YXRvbWljX3Qgd3FfY291bnQ7XG4mIzQzO1x0LyogZmxhZyB0byBpbmRpY2F0ZSB3b3JrIGhhcyBmaW5pc2hlZCAqL1xuJiM0MztcdGF0b21pY190IGZpbmFsaXplZDtcbiB9O1xuIFxuIHN0YXRpYyBpbmxpbmUgc3RydWN0IHRpcGNfbmV0ICp0aXBjX25ldChzdHJ1Y3QgbmV0ICpuZXQpXG5kaWZmIC0tZ2l0IGEvbmV0L3RpcGMvbmFtZV9kaXN0ci5jIGIvbmV0L3RpcGMvbmFtZV9kaXN0ci5jXG5pbmRleCAxOTBiNDljNWNiYzNlYy4uNWIwZmIwOTIyNmZjNjggMTAwNjQ0XG4tLS0gYS9uZXQvdGlwYy9uYW1lX2Rpc3RyLmNcbiYjNDM7JiM0MzsmIzQzOyBiL25ldC90aXBjL25hbWVfZGlzdHIuY1xuQEAgLTE0Nyw3ICYjNDM7MTQ3LDcgQEAgc3RydWN0IHNrX2J1ZmYgKnRpcGNfbmFtZWRfd2l0aGRyYXcoc3RydWN0IG5ldCAqbmV0LCBzdHJ1Y3QgcHVibGljYXRpb24gKnApXG4gICogQHBsczogbGlua2VkIGxpc3Qgb2YgcHVibGljYXRpb24gaXRlbXMgdG8gYmUgcGFja2VkIGludG8gYnVmZmVyIGNoYWluXG4gICogQHNlcW5vOiBzZXF1ZW5jZSBudW1iZXIgZm9yIHRoaXMgbWVzc2FnZVxuICAqL1xuLXN0YXRpYyB2b2lkIG5hbWVkX2Rpc3RyaWJ1dGUoc3RydWN0IG5ldCAqbmV0LCBzdHJ1Y3Qgc2tfYnVmZl9oZWFkICpsaXN0LFxuJiM0MztzdGF0aWMgaW50IG5hbWVkX2Rpc3RyaWJ1dGUoc3RydWN0IG5ldCAqbmV0LCBzdHJ1Y3Qgc2tfYnVmZl9oZWFkICpsaXN0LFxuIFx0XHRcdCAgICAgdTMyIGRub2RlLCBzdHJ1Y3QgbGlzdF9oZWFkICpwbHMsIHUxNiBzZXFubylcbiB7XG4gXHRzdHJ1Y3QgcHVibGljYXRpb24gKnB1Ymw7XG5AQCAtMTY0LDggJiM0MzsxNjQsOSBAQCBzdGF0aWMgdm9pZCBuYW1lZF9kaXN0cmlidXRlKHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0IHNrX2J1ZmZfaGVhZCAqbGlzdCxcbiBcdFx0XHRza2IgPSBuYW1lZF9wcmVwYXJlX2J1ZihuZXQsIFBVQkxJQ0FUSU9OLCBtc2dfcmVtLFxuIFx0XHRcdFx0XHRcdGRub2RlKTtcbiBcdFx0XHRpZiAoIXNrYikge1xuJiM0MztcdFx0XHRcdF9fc2tiX3F1ZXVlX3B1cmdlKGxpc3QpO1xuIFx0XHRcdFx0cHJfd2FybihcJiMzNDtCdWxrIHB1YmxpY2F0aW9uIGZhaWx1cmVcXG5cJiMzNDspO1xuLVx0XHRcdFx0cmV0dXJuO1xuJiM0MztcdFx0XHRcdHJldHVybiAxO1xuIFx0XHRcdH1cbiBcdFx0XHRoZHIgPSBidWZfbXNnKHNrYik7XG4gXHRcdFx0bXNnX3NldF9iY19hY2tfaW52YWxpZChoZHIsIHRydWUpO1xuQEAgLTE5Miw5ICYjNDM7MTkzLDE1IEBAIHN0YXRpYyB2b2lkIG5hbWVkX2Rpc3RyaWJ1dGUoc3RydWN0IG5ldCAqbmV0LCBzdHJ1Y3Qgc2tfYnVmZl9oZWFkICpsaXN0LFxuIFx0XHRza2JfdHJpbShza2IsIElOVF9IX1NJWkUgJiM0MzsgKG1zZ19kc3ogLSBtc2dfcmVtKSk7XG4gXHRcdF9fc2tiX3F1ZXVlX3RhaWwobGlzdCwgc2tiKTtcbiBcdH1cbiYjNDM7XHRpZiAoc2tiX3F1ZXVlX2VtcHR5KGxpc3QpKSB7XG4mIzQzO1x0XHRwcl93YXJuKFwmIzM0O0J1bGsgcHVibGljYXRpb24gbGlzdCBlbXB0eSwgbm90aGluZyB0byBkaXN0cmlidXRlXFxuXCYjMzQ7KTtcbiYjNDM7XHRcdHJldHVybiAxO1xuJiM0MztcdH1cbiBcdGhkciA9IGJ1Zl9tc2coc2tiX3BlZWtfdGFpbChsaXN0KSk7XG4gXHRtc2dfc2V0X2xhc3RfYnVsayhoZHIpO1xuIFx0bXNnX3NldF9uYW1lZF9zZXFubyhoZHIsIHNlcW5vKTtcbiYjNDM7XG4mIzQzO1x0cmV0dXJuIDA7XG4gfVxuIFxuIC8qKlxuQEAgLTIwMyw3ICYjNDM7MjEwLDcgQEAgc3RhdGljIHZvaWQgbmFtZWRfZGlzdHJpYnV0ZShzdHJ1Y3QgbmV0ICpuZXQsIHN0cnVjdCBza19idWZmX2hlYWQgKmxpc3QsXG4gICogQGRub2RlOiBkZXN0aW5hdGlvbiBub2RlXG4gICogQGNhcGFiaWxpdGllczogcGVlciBub2RlJiMzOTtzIGNhcGFiaWxpdGllc1xuICAqL1xuLXZvaWQgdGlwY19uYW1lZF9ub2RlX3VwKHN0cnVjdCBuZXQgKm5ldCwgdTMyIGRub2RlLCB1MTYgY2FwYWJpbGl0aWVzKVxuJiM0MztpbnQgdGlwY19uYW1lZF9ub2RlX3VwKHN0cnVjdCBuZXQgKm5ldCwgdTMyIGRub2RlLCB1MTYgY2FwYWJpbGl0aWVzKVxuIHtcbiBcdHN0cnVjdCBuYW1lX3RhYmxlICpudCA9IHRpcGNfbmFtZV90YWJsZShuZXQpO1xuIFx0c3RydWN0IHRpcGNfbmV0ICp0biA9IHRpcGNfbmV0KG5ldCk7XG5AQCAtMjE4LDkgJiM0MzsyMjUsNTMgQEAgdm9pZCB0aXBjX25hbWVkX25vZGVfdXAoc3RydWN0IG5ldCAqbmV0LCB1MzIgZG5vZGUsIHUxNiBjYXBhYmlsaXRpZXMpXG4gXHRzcGluX3VubG9ja19iaChcdTAwMjZ0bi1cdTAwM2VuYW1ldGJsX2xvY2spO1xuIFxuIFx0cmVhZF9sb2NrX2JoKFx1MDAyNm50LVx1MDAzZWNsdXN0ZXJfc2NvcGVfbG9jayk7XG4tXHRuYW1lZF9kaXN0cmlidXRlKG5ldCwgXHUwMDI2aGVhZCwgZG5vZGUsIFx1MDAyNm50LVx1MDAzZWNsdXN0ZXJfc2NvcGUsIHNlcW5vKTtcbiYjNDM7XHQvKiB0aXBjX25ldF9maW5hbGl6ZV93b3JrKCkgaGFzIG5vdCBmaW5pc2hlZCBpbnNlcnRpbmcgc2VsZiBhZGRyZXNzIHRvXG4mIzQzO1x0ICogbmFtZSB0YWJsZSB5ZXQuXG4mIzQzO1x0ICovXG4mIzQzO1x0aWYgKHVubGlrZWx5KGxpc3RfZW1wdHkoXHUwMDI2bnQtXHUwMDNlY2x1c3Rlcl9zY29wZSkpKSB7XG4mIzQzO1x0XHRyZWFkX3VubG9ja19iaChcdTAwMjZudC1cdTAwM2VjbHVzdGVyX3Njb3BlX2xvY2spO1xuJiM0MztcdFx0cmV0dXJuIDE7XG4mIzQzO1x0fVxuJiM0MztcbiYjNDM7XHRpZiAobmFtZWRfZGlzdHJpYnV0ZShuZXQsIFx1MDAyNmhlYWQsIGRub2RlLCBcdTAwMjZudC1cdTAwM2VjbHVzdGVyX3Njb3BlLCBzZXFubykpIHtcbiYjNDM7XHRcdHJlYWRfdW5sb2NrX2JoKFx1MDAyNm50LVx1MDAzZWNsdXN0ZXJfc2NvcGVfbG9jayk7XG4mIzQzO1x0XHRyZXR1cm4gLUVOT0JVRlM7XG4mIzQzO1x0fVxuJiM0MztcbiBcdHRpcGNfbm9kZV94bWl0KG5ldCwgXHUwMDI2aGVhZCwgZG5vZGUsIDApO1xuIFx0cmVhZF91bmxvY2tfYmgoXHUwMDI2bnQtXHUwMDNlY2x1c3Rlcl9zY29wZV9sb2NrKTtcbiYjNDM7XHRyZXR1cm4gMDtcbiYjNDM7fVxuJiM0MztcbiYjNDM7aW50IHRpcGNfbmFtZWRfZGlzdF9jbHVzdGVyX3Njb3BlKHN0cnVjdCBuZXQgKm5ldCwgdTMyIGRub2RlKVxuJiM0Mzt7XG4mIzQzO1x0c3RydWN0IG5hbWVfdGFibGUgKm50ID0gdGlwY19uYW1lX3RhYmxlKG5ldCk7XG4mIzQzO1x0c3RydWN0IHRpcGNfbmV0ICp0biA9IHRpcGNfbmV0KG5ldCk7XG4mIzQzO1x0c3RydWN0IHNrX2J1ZmZfaGVhZCBoZWFkO1xuJiM0MztcdHUxNiBzZXFubztcbiYjNDM7XG4mIzQzO1x0X19za2JfcXVldWVfaGVhZF9pbml0KFx1MDAyNmhlYWQpO1xuJiM0MztcdHdhaXRfdmFyX2V2ZW50KFx1MDAyNnRuLVx1MDAzZWZpbmFsaXplZCwgYXRvbWljX3JlYWQoXHUwMDI2dG4tXHUwMDNlZmluYWxpemVkKSk7XG4mIzQzO1x0c3Bpbl9sb2NrX2JoKFx1MDAyNnRuLVx1MDAzZW5hbWV0YmxfbG9jayk7XG4mIzQzO1x0c2Vxbm8gPSBudC1cdTAwM2VzbmRfbnh0O1xuJiM0MztcdHNwaW5fdW5sb2NrX2JoKFx1MDAyNnRuLVx1MDAzZW5hbWV0YmxfbG9jayk7XG4mIzQzO1xuJiM0MztcdHJlYWRfbG9ja19iaChcdTAwMjZudC1cdTAwM2VjbHVzdGVyX3Njb3BlX2xvY2spO1xuJiM0MztcdGlmICh1bmxpa2VseShsaXN0X2VtcHR5KFx1MDAyNm50LVx1MDAzZWNsdXN0ZXJfc2NvcGUpKSkge1xuJiM0MztcdFx0LyogZmluYWxpemUgaXMgZG9uZSBidXQgbm90aGluZyB3YXMgcHVibGlzaGVkIChwdWJsaXNoXG4mIzQzO1x0XHQgKiBmYWlsZWQpOiBhIHBlcm1hbmVudCBzdGF0ZSwgbm90aGluZyB0byBzeW5jaHJvbml6ZS5cbiYjNDM7XHRcdCAqL1xuJiM0MztcdFx0cmVhZF91bmxvY2tfYmgoXHUwMDI2bnQtXHUwMDNlY2x1c3Rlcl9zY29wZV9sb2NrKTtcbiYjNDM7XHRcdHJldHVybiAwO1xuJiM0MztcdH1cbiYjNDM7XHRpZiAobmFtZWRfZGlzdHJpYnV0ZShuZXQsIFx1MDAyNmhlYWQsIGRub2RlLCBcdTAwMjZudC1cdTAwM2VjbHVzdGVyX3Njb3BlLCBzZXFubykpIHtcbiYjNDM7XHRcdHJlYWRfdW5sb2NrX2JoKFx1MDAyNm50LVx1MDAzZWNsdXN0ZXJfc2NvcGVfbG9jayk7XG4mIzQzO1x0XHRyZXR1cm4gLUVOT0JVRlM7XG4mIzQzO1x0fVxuJiM0MztcdHRpcGNfbm9kZV94bWl0KG5ldCwgXHUwMDI2aGVhZCwgZG5vZGUsIDApO1xuJiM0MztcdHJlYWRfdW5sb2NrX2JoKFx1MDAyNm50LVx1MDAzZWNsdXN0ZXJfc2NvcGVfbG9jayk7XG4mIzQzO1xuJiM0MztcdHJldHVybiAwO1xuIH1cbiBcbiAvKipcbmRpZmYgLS1naXQgYS9uZXQvdGlwYy9uYW1lX2Rpc3RyLmggYi9uZXQvdGlwYy9uYW1lX2Rpc3RyLmhcbmluZGV4IGM2NzdmNmYwODJkZmI3Li5jYWRmNGU4YzNlNjZjMiAxMDA2NDRcbi0tLSBhL25ldC90aXBjL25hbWVfZGlzdHIuaFxuJiM0MzsmIzQzOyYjNDM7IGIvbmV0L3RpcGMvbmFtZV9kaXN0ci5oXG5AQCAtNjksNyAmIzQzOzY5LDggQEAgc3RydWN0IGRpc3RyX2l0ZW0ge1xuIFxuIHN0cnVjdCBza19idWZmICp0aXBjX25hbWVkX3B1Ymxpc2goc3RydWN0IG5ldCAqbmV0LCBzdHJ1Y3QgcHVibGljYXRpb24gKnB1YmwpO1xuIHN0cnVjdCBza19idWZmICp0aXBjX25hbWVkX3dpdGhkcmF3KHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0IHB1YmxpY2F0aW9uICpwdWJsKTtcbi12b2lkIHRpcGNfbmFtZWRfbm9kZV91cChzdHJ1Y3QgbmV0ICpuZXQsIHUzMiBkbm9kZSwgdTE2IGNhcGFiaWxpdGllcyk7XG4mIzQzO2ludCB0aXBjX25hbWVkX25vZGVfdXAoc3RydWN0IG5ldCAqbmV0LCB1MzIgZG5vZGUsIHUxNiBjYXBhYmlsaXRpZXMpO1xuJiM0MztpbnQgdGlwY19uYW1lZF9kaXN0X2NsdXN0ZXJfc2NvcGUoc3RydWN0IG5ldCAqbmV0LCB1MzIgZG5vZGUpO1xuIHZvaWQgdGlwY19uYW1lZF9yY3Yoc3RydWN0IG5ldCAqbmV0LCBzdHJ1Y3Qgc2tfYnVmZl9oZWFkICpuYW1lZHEsXG4gXHRcdCAgICB1MTYgKnJjdl9ueHQsIGJvb2wgKm9wZW4pO1xuIHZvaWQgdGlwY19uYW1lZF9yZWluaXQoc3RydWN0IG5ldCAqbmV0KTtcbmRpZmYgLS1naXQgYS9uZXQvdGlwYy9uZXQuYyBiL25ldC90aXBjL25ldC5jXG5pbmRleCA3ZTY1ZDBiMGM0YThkMS4uMmFhODgxMmM1NTFhZGQgMTAwNjQ0XG4tLS0gYS9uZXQvdGlwYy9uZXQuY1xuJiM0MzsmIzQzOyYjNDM7IGIvbmV0L3RpcGMvbmV0LmNcbkBAIC0xMzgsNyAmIzQzOzEzOCwxMCBAQCBzdGF0aWMgdm9pZCB0aXBjX25ldF9maW5hbGl6ZShzdHJ1Y3QgbmV0ICpuZXQsIHUzMiBhZGRyKVxuIFx0dGlwY19uYW1lZF9yZWluaXQobmV0KTtcbiBcdHRpcGNfc2tfcmVpbml0KG5ldCk7XG4gXHR0aXBjX21vbl9yZWluaXRfc2VsZihuZXQpO1xuLVx0dGlwY19uYW1ldGJsX3B1Ymxpc2gobmV0LCBcdTAwMjZ1YSwgXHUwMDI2c2ssIGFkZHIpO1xuJiM0MztcdGlmICghdGlwY19uYW1ldGJsX3B1Ymxpc2gobmV0LCBcdTAwMjZ1YSwgXHUwMDI2c2ssIGFkZHIpKVxuJiM0MztcdFx0cHJfd2FybihcJiMzNDtGYWlsZWQgdG8gcHVibGlzaCBvd24gbm9kZSBzdGF0ZVxcblwmIzM0Oyk7XG4mIzQzO1x0YXRvbWljX2luYyhcdTAwMjZ0bi1cdTAwM2VmaW5hbGl6ZWQpO1xuJiM0MztcdHdha2VfdXBfdmFyKFx1MDAyNnRuLVx1MDAzZWZpbmFsaXplZCk7XG4gfVxuIFxuIHZvaWQgdGlwY19uZXRfZmluYWxpemVfd29yayhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspXG5kaWZmIC0tZ2l0IGEvbmV0L3RpcGMvbm9kZS5jIGIvbmV0L3RpcGMvbm9kZS5jXG5pbmRleCA5N2FhOTcwYTBkODNjYS4uNDI4YzRlYWNkMDJmMWYgMTAwNjQ0XG4tLS0gYS9uZXQvdGlwYy9ub2RlLmNcbiYjNDM7JiM0MzsmIzQzOyBiL25ldC90aXBjL25vZGUuY1xuQEAgLTE0NSw2ICYjNDM7MTQ1LDggQEAgc3RydWN0IHRpcGNfbm9kZSB7XG4gI2lmZGVmIENPTkZJR19USVBDX0NSWVBUT1xuIFx0c3RydWN0IHRpcGNfY3J5cHRvICpjcnlwdG9fcng7XG4gI2VuZGlmXG4mIzQzO1x0LyogV29yayBpdGVtIGZvciBidWxrIGRpc3RyaWJ1dGlvbiBvZiBjbHVzdGVyIHNjb3BlIHB1YmxpY2F0aW9ucyAqL1xuJiM0MztcdHN0cnVjdCB3b3JrX3N0cnVjdCB3b3JrO1xuIH07XG4gXG4gLyogTm9kZSBGU00gc3RhdGVzIGFuZCBldmVudHM6XG5AQCAtMzAzLDYgJiM0MzszMDUsNyBAQCBzdGF0aWMgdm9pZCB0aXBjX25vZGVfZnJlZShzdHJ1Y3QgcmN1X2hlYWQgKnJwKVxuICNpZmRlZiBDT05GSUdfVElQQ19DUllQVE9cbiBcdHRpcGNfY3J5cHRvX3N0b3AoXHUwMDI2bi1cdTAwM2VjcnlwdG9fcngpO1xuICNlbmRpZlxuJiM0MztcdGNhbmNlbF93b3JrX3N5bmMoXHUwMDI2bi1cdTAwM2V3b3JrKTtcbiBcdGtmcmVlKG4pO1xuIH1cbiBcbkBAIC0zOTMsNiAmIzQzOzM5NiwxOSBAQCBzdGF0aWMgdm9pZCB0aXBjX25vZGVfd3JpdGVfdW5sb2NrX2Zhc3Qoc3RydWN0IHRpcGNfbm9kZSAqbilcbiBcdHdyaXRlX3VubG9ja19iaChcdTAwMjZuLVx1MDAzZWxvY2spO1xuIH1cbiBcbiYjNDM7c3RhdGljIHZvaWQgdGlwY19ub2RlX2Rpc3RfYnVsayhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspXG4mIzQzO3tcbiYjNDM7XHRzdHJ1Y3QgdGlwY19ub2RlICpub2RlID0gY29udGFpbmVyX29mKHdvcmssIHN0cnVjdCB0aXBjX25vZGUsIHdvcmspO1xuJiM0MztcbiYjNDM7XHRpZiAodGlwY19uYW1lZF9kaXN0X2NsdXN0ZXJfc2NvcGUobm9kZS1cdTAwM2VuZXQsIG5vZGUtXHUwMDNlYWRkcikgXHUwMDNjIDApIHtcbiYjNDM7XHRcdHUzMiBiZWFyZXJfaWQgPSBub2RlLVx1MDAzZWxpbmtfaWQgXHUwMDI2IDB4ZmZmZjtcbiYjNDM7XG4mIzQzO1x0XHR0aXBjX25vZGVfbGlua19kb3duKG5vZGUsIGJlYXJlcl9pZCwgZmFsc2UpO1xuJiM0MztcdH1cbiYjNDM7XG4mIzQzO1x0dGlwY19ub2RlX3B1dChub2RlKTtcbiYjNDM7fVxuJiM0MztcbiBzdGF0aWMgdm9pZCB0aXBjX25vZGVfd3JpdGVfdW5sb2NrKHN0cnVjdCB0aXBjX25vZGUgKm4pXG4gXHRfX3JlbGVhc2VzKG4tXHUwMDNlbG9jaylcbiB7XG5AQCAtNDI0LDggJiM0Mzs0NDAsMjIgQEAgc3RhdGljIHZvaWQgdGlwY19ub2RlX3dyaXRlX3VubG9jayhzdHJ1Y3QgdGlwY19ub2RlICpuKVxuIFx0aWYgKGZsYWdzIFx1MDAyNiBUSVBDX05PVElGWV9OT0RFX0RPV04pXG4gXHRcdHRpcGNfcHVibF9ub3RpZnkobmV0LCBwdWJsX2xpc3QsIG5vZGUsIG4tXHUwMDNlY2FwYWJpbGl0aWVzKTtcbiBcbi1cdGlmIChmbGFncyBcdTAwMjYgVElQQ19OT1RJRllfTk9ERV9VUClcbi1cdFx0dGlwY19uYW1lZF9ub2RlX3VwKG5ldCwgbm9kZSwgbi1cdTAwM2VjYXBhYmlsaXRpZXMpO1xuJiM0MztcdGlmIChmbGFncyBcdTAwMjYgVElQQ19OT1RJRllfTk9ERV9VUCkge1xuJiM0MztcdFx0aW50IHJjID0gMDtcbiYjNDM7XG4mIzQzO1x0XHRyYyA9IHRpcGNfbmFtZWRfbm9kZV91cChuZXQsIG5vZGUsIG4tXHUwMDNlY2FwYWJpbGl0aWVzKTtcbiYjNDM7XHRcdC8qIERlZmVyIGJ1bGsgZGlzdHJpYnV0aW9uIHRvIHdvcmsgcXVldWUgKi9cbiYjNDM7XHRcdGlmIChyYyBcdTAwM2UgMCkge1xuJiM0MztcdFx0XHR0aXBjX25vZGVfZ2V0KG4pO1xuJiM0MztcdFx0XHRpZiAoIXNjaGVkdWxlX3dvcmsoXHUwMDI2bi1cdTAwM2V3b3JrKSlcbiYjNDM7XHRcdFx0XHR0aXBjX25vZGVfcHV0KG4pO1xuJiM0MztcdFx0fSBlbHNlIGlmIChyYyBcdTAwM2MgMCkge1xuJiM0MztcdFx0XHQvKiBCcmluZyB0aGUgbGluayBkb3duIHRvIHN0YXJ0IG92ZXIgYnVsayBkaXN0cmlidXRpb25cbiYjNDM7XHRcdFx0ICogd2hlbiB0aGUgbGluayBpcyB1cCBhZ2Fpbi5cbiYjNDM7XHRcdFx0ICovXG4mIzQzO1x0XHRcdHRpcGNfbm9kZV9saW5rX2Rvd24obiwgYmVhcmVyX2lkLCBmYWxzZSk7XG4mIzQzO1x0XHR9XG4mIzQzO1x0fVxuIFxuIFx0aWYgKGZsYWdzIFx1MDAyNiBUSVBDX05PVElGWV9MSU5LX1VQKSB7XG4gXHRcdHRpcGNfbW9uX3BlZXJfdXAobmV0LCBub2RlLCBiZWFyZXJfaWQpO1xuQEAgLTU2NCw2ICYjNDM7NTk0LDcgQEAgc3RydWN0IHRpcGNfbm9kZSAqdGlwY19ub2RlX2NyZWF0ZShzdHJ1Y3QgbmV0ICpuZXQsIHUzMiBhZGRyLCB1OCAqcGVlcl9pZCxcbiBcdElOSVRfTElTVF9IRUFEKFx1MDAyNm4tXHUwMDNlbGlzdCk7XG4gXHRJTklUX0xJU1RfSEVBRChcdTAwMjZuLVx1MDAzZXB1YmxfbGlzdCk7XG4gXHRJTklUX0xJU1RfSEVBRChcdTAwMjZuLVx1MDAzZWNvbm5fc2tzKTtcbiYjNDM7XHRJTklUX1dPUksoXHUwMDI2bi1cdTAwM2V3b3JrLCB0aXBjX25vZGVfZGlzdF9idWxrKTtcbiBcdHNrYl9xdWV1ZV9oZWFkX2luaXQoXHUwMDI2bi1cdTAwM2ViY19lbnRyeS5uYW1lZHEpO1xuIFx0c2tiX3F1ZXVlX2hlYWRfaW5pdChcdTAwMjZuLVx1MDAzZWJjX2VudHJ5LmlucHV0cTEpO1xuIFx0X19za2JfcXVldWVfaGVhZF9pbml0KFx1MDAyNm4tXHUwMDNlYmNfZW50cnkuYXJydnEpO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE3IDIzOjEyPC90ZD4KCQkJPHRkPmFnZW50PC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O1RJUEMmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDt0aXBjX25hbWVkX25vZGVfdXAmIzM0OywKICAgICYjMzQ7dGlwY19uYW1lZF9kaXN0X2NsdXN0ZXJfc2NvcGUmIzM0OywKICAgICYjMzQ7dGlwY19ub2RlX2Rpc3RfYnVsayYjMzQ7LAogICAgJiMzNDtuYW1lZF9kaXN0cmlidXRlJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBUSVBDIHByb3RvY29sJiMzOTtzIG5vZGUgaW5pdGlhbGl6YXRpb24gYW5kIGJ1bGsgcHVibGljYXRpb24gZGlzdHJpYnV0aW9uIGxvZ2ljLCBpbnRyb2R1Y2luZyBhIG5ldyB3b3JrIGl0ZW0gYW5kIHN5bmNocm9uaXphdGlvbiBtZWNoYW5pc20uIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgY29yZSBUSVBDIGxvZ2ljIHRoYXQgc2hvdWxkIGJlIGZ1enplZC4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkluc3RydWN0aW9uOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+WW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuCllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lCmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC4KCklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpbgp5b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHkKdXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy4KClJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6Ci0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy4KLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy4KLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuCi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLApldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuCgpJZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoCnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLgoKV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086CjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuCiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLgoyLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS4KICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLgogICBEbyBub3QgbGlzdCB0b28gZ2VuZXJpYyBjb25maWdzICh3ZSBhbHJlYWR5IGhhdmUgdGhlbSBlbmFibGVkKS4gT25seSBsaXN0IHRob3NlIHRoYXQKICAgc3BlY2lmaWNhbGx5IGNvdmVyIHRoZSBtb2RpZmllZCBjb2RlLiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3Mgb3V0cHV0IGFycmF5LAogICBhbmQgRE8gTk9UIGFkZCBhICYjMzk7Q09ORklHXyYjMzk7IHByZWZpeCAoZS5nLiwgcmV0dXJuICYjMzQ7TkVUX0lQVjQmIzM0OyBpbnN0ZWFkIG9mICYjMzQ7Q09ORklHX05FVF9JUFY0JiMzNDspLgpQcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy4KCgpVc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLgpJdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS4KSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlByb21wdDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOgpjb21taXQgMDdjMWNiNzQ0Y2Q2OWNiOGZkYmRkODg3NDJlYjBhMTg1YmJhYjRhNwpBdXRob3I6IHN5ei1jbHVzdGVyICZsdDt0cmlhZ2VAc3l6a2FsbGVyLmNvbSZndDsKRGF0ZTogICBGcmkgSnVsIDE3IDIzOjEyOjQ5IDIwMjYgJiM0MzswMDAwCgogICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3CgpkaWZmIC0tZ2l0IGEvbmV0L3RpcGMvY29yZS5jIGIvbmV0L3RpcGMvY29yZS5jCmluZGV4IDQzNGU3MGVhYmUwODEyLi5jZTE2NDUwOWQ5ZTI3YSAxMDA2NDQKLS0tIGEvbmV0L3RpcGMvY29yZS5jCiYjNDM7JiM0MzsmIzQzOyBiL25ldC90aXBjL2NvcmUuYwpAQCAtNjAsNiAmIzQzOzYwLDcgQEAgc3RhdGljIGludCBfX25ldF9pbml0IHRpcGNfaW5pdF9uZXQoc3RydWN0IG5ldCAqbmV0KQogCXRuLSZndDt0cmlhbF9hZGRyID0gMDsKIAl0bi0mZ3Q7YWRkcl90cmlhbF9lbmQgPSAwOwogCXRuLSZndDtjYXBhYmlsaXRpZXMgPSBUSVBDX05PREVfQ0FQQUJJTElUSUVTOwomIzQzOwlhdG9taWNfc2V0KCZhbXA7dG4tJmd0O2ZpbmFsaXplZCwgMCk7CiAJSU5JVF9XT1JLKCZhbXA7dG4tJmd0O3dvcmssIHRpcGNfbmV0X2ZpbmFsaXplX3dvcmspOwogCW1lbXNldCh0bi0mZ3Q7bm9kZV9pZCwgMCwgc2l6ZW9mKHRuLSZndDtub2RlX2lkKSk7CiAJbWVtc2V0KHRuLSZndDtub2RlX2lkX3N0cmluZywgMCwgc2l6ZW9mKHRuLSZndDtub2RlX2lkX3N0cmluZykpOwpkaWZmIC0tZ2l0IGEvbmV0L3RpcGMvY29yZS5oIGIvbmV0L3RpcGMvY29yZS5oCmluZGV4IDljZTVmOWZmNmNjMDMxLi43Njc2ODg0NGM4MDgxNCAxMDA2NDQKLS0tIGEvbmV0L3RpcGMvY29yZS5oCiYjNDM7JiM0MzsmIzQzOyBiL25ldC90aXBjL2NvcmUuaApAQCAtMTQ1LDYgJiM0MzsxNDUsOCBAQCBzdHJ1Y3QgdGlwY19uZXQgewogCXN0cnVjdCB3b3JrX3N0cnVjdCB3b3JrOwogCS8qIFRoZSBudW1iZXJzIG9mIHdvcmsgcXVldWVzIGluIHNjaGVkdWxlICovCiAJYXRvbWljX3Qgd3FfY291bnQ7CiYjNDM7CS8qIGZsYWcgdG8gaW5kaWNhdGUgd29yayBoYXMgZmluaXNoZWQgKi8KJiM0MzsJYXRvbWljX3QgZmluYWxpemVkOwogfTsKIAogc3RhdGljIGlubGluZSBzdHJ1Y3QgdGlwY19uZXQgKnRpcGNfbmV0KHN0cnVjdCBuZXQgKm5ldCkKZGlmZiAtLWdpdCBhL25ldC90aXBjL25hbWVfZGlzdHIuYyBiL25ldC90aXBjL25hbWVfZGlzdHIuYwppbmRleCAxOTBiNDljNWNiYzNlYy4uNWIwZmIwOTIyNmZjNjggMTAwNjQ0Ci0tLSBhL25ldC90aXBjL25hbWVfZGlzdHIuYwomIzQzOyYjNDM7JiM0MzsgYi9uZXQvdGlwYy9uYW1lX2Rpc3RyLmMKQEAgLTE0Nyw3ICYjNDM7MTQ3LDcgQEAgc3RydWN0IHNrX2J1ZmYgKnRpcGNfbmFtZWRfd2l0aGRyYXcoc3RydWN0IG5ldCAqbmV0LCBzdHJ1Y3QgcHVibGljYXRpb24gKnApCiAgKiBAcGxzOiBsaW5rZWQgbGlzdCBvZiBwdWJsaWNhdGlvbiBpdGVtcyB0byBiZSBwYWNrZWQgaW50byBidWZmZXIgY2hhaW4KICAqIEBzZXFubzogc2VxdWVuY2UgbnVtYmVyIGZvciB0aGlzIG1lc3NhZ2UKICAqLwotc3RhdGljIHZvaWQgbmFtZWRfZGlzdHJpYnV0ZShzdHJ1Y3QgbmV0ICpuZXQsIHN0cnVjdCBza19idWZmX2hlYWQgKmxpc3QsCiYjNDM7c3RhdGljIGludCBuYW1lZF9kaXN0cmlidXRlKHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0IHNrX2J1ZmZfaGVhZCAqbGlzdCwKIAkJCSAgICAgdTMyIGRub2RlLCBzdHJ1Y3QgbGlzdF9oZWFkICpwbHMsIHUxNiBzZXFubykKIHsKIAlzdHJ1Y3QgcHVibGljYXRpb24gKnB1Ymw7CkBAIC0xNjQsOCAmIzQzOzE2NCw5IEBAIHN0YXRpYyB2b2lkIG5hbWVkX2Rpc3RyaWJ1dGUoc3RydWN0IG5ldCAqbmV0LCBzdHJ1Y3Qgc2tfYnVmZl9oZWFkICpsaXN0LAogCQkJc2tiID0gbmFtZWRfcHJlcGFyZV9idWYobmV0LCBQVUJMSUNBVElPTiwgbXNnX3JlbSwKIAkJCQkJCWRub2RlKTsKIAkJCWlmICghc2tiKSB7CiYjNDM7CQkJCV9fc2tiX3F1ZXVlX3B1cmdlKGxpc3QpOwogCQkJCXByX3dhcm4oJiMzNDtCdWxrIHB1YmxpY2F0aW9uIGZhaWx1cmVcbiYjMzQ7KTsKLQkJCQlyZXR1cm47CiYjNDM7CQkJCXJldHVybiAxOwogCQkJfQogCQkJaGRyID0gYnVmX21zZyhza2IpOwogCQkJbXNnX3NldF9iY19hY2tfaW52YWxpZChoZHIsIHRydWUpOwpAQCAtMTkyLDkgJiM0MzsxOTMsMTUgQEAgc3RhdGljIHZvaWQgbmFtZWRfZGlzdHJpYnV0ZShzdHJ1Y3QgbmV0ICpuZXQsIHN0cnVjdCBza19idWZmX2hlYWQgKmxpc3QsCiAJCXNrYl90cmltKHNrYiwgSU5UX0hfU0laRSAmIzQzOyAobXNnX2RzeiAtIG1zZ19yZW0pKTsKIAkJX19za2JfcXVldWVfdGFpbChsaXN0LCBza2IpOwogCX0KJiM0MzsJaWYgKHNrYl9xdWV1ZV9lbXB0eShsaXN0KSkgewomIzQzOwkJcHJfd2FybigmIzM0O0J1bGsgcHVibGljYXRpb24gbGlzdCBlbXB0eSwgbm90aGluZyB0byBkaXN0cmlidXRlXG4mIzM0Oyk7CiYjNDM7CQlyZXR1cm4gMTsKJiM0MzsJfQogCWhkciA9IGJ1Zl9tc2coc2tiX3BlZWtfdGFpbChsaXN0KSk7CiAJbXNnX3NldF9sYXN0X2J1bGsoaGRyKTsKIAltc2dfc2V0X25hbWVkX3NlcW5vKGhkciwgc2Vxbm8pOwomIzQzOwomIzQzOwlyZXR1cm4gMDsKIH0KIAogLyoqCkBAIC0yMDMsNyAmIzQzOzIxMCw3IEBAIHN0YXRpYyB2b2lkIG5hbWVkX2Rpc3RyaWJ1dGUoc3RydWN0IG5ldCAqbmV0LCBzdHJ1Y3Qgc2tfYnVmZl9oZWFkICpsaXN0LAogICogQGRub2RlOiBkZXN0aW5hdGlvbiBub2RlCiAgKiBAY2FwYWJpbGl0aWVzOiBwZWVyIG5vZGUmIzM5O3MgY2FwYWJpbGl0aWVzCiAgKi8KLXZvaWQgdGlwY19uYW1lZF9ub2RlX3VwKHN0cnVjdCBuZXQgKm5ldCwgdTMyIGRub2RlLCB1MTYgY2FwYWJpbGl0aWVzKQomIzQzO2ludCB0aXBjX25hbWVkX25vZGVfdXAoc3RydWN0IG5ldCAqbmV0LCB1MzIgZG5vZGUsIHUxNiBjYXBhYmlsaXRpZXMpCiB7CiAJc3RydWN0IG5hbWVfdGFibGUgKm50ID0gdGlwY19uYW1lX3RhYmxlKG5ldCk7CiAJc3RydWN0IHRpcGNfbmV0ICp0biA9IHRpcGNfbmV0KG5ldCk7CkBAIC0yMTgsOSAmIzQzOzIyNSw1MyBAQCB2b2lkIHRpcGNfbmFtZWRfbm9kZV91cChzdHJ1Y3QgbmV0ICpuZXQsIHUzMiBkbm9kZSwgdTE2IGNhcGFiaWxpdGllcykKIAlzcGluX3VubG9ja19iaCgmYW1wO3RuLSZndDtuYW1ldGJsX2xvY2spOwogCiAJcmVhZF9sb2NrX2JoKCZhbXA7bnQtJmd0O2NsdXN0ZXJfc2NvcGVfbG9jayk7Ci0JbmFtZWRfZGlzdHJpYnV0ZShuZXQsICZhbXA7aGVhZCwgZG5vZGUsICZhbXA7bnQtJmd0O2NsdXN0ZXJfc2NvcGUsIHNlcW5vKTsKJiM0MzsJLyogdGlwY19uZXRfZmluYWxpemVfd29yaygpIGhhcyBub3QgZmluaXNoZWQgaW5zZXJ0aW5nIHNlbGYgYWRkcmVzcyB0bwomIzQzOwkgKiBuYW1lIHRhYmxlIHlldC4KJiM0MzsJICovCiYjNDM7CWlmICh1bmxpa2VseShsaXN0X2VtcHR5KCZhbXA7bnQtJmd0O2NsdXN0ZXJfc2NvcGUpKSkgewomIzQzOwkJcmVhZF91bmxvY2tfYmgoJmFtcDtudC0mZ3Q7Y2x1c3Rlcl9zY29wZV9sb2NrKTsKJiM0MzsJCXJldHVybiAxOwomIzQzOwl9CiYjNDM7CiYjNDM7CWlmIChuYW1lZF9kaXN0cmlidXRlKG5ldCwgJmFtcDtoZWFkLCBkbm9kZSwgJmFtcDtudC0mZ3Q7Y2x1c3Rlcl9zY29wZSwgc2Vxbm8pKSB7CiYjNDM7CQlyZWFkX3VubG9ja19iaCgmYW1wO250LSZndDtjbHVzdGVyX3Njb3BlX2xvY2spOwomIzQzOwkJcmV0dXJuIC1FTk9CVUZTOwomIzQzOwl9CiYjNDM7CiAJdGlwY19ub2RlX3htaXQobmV0LCAmYW1wO2hlYWQsIGRub2RlLCAwKTsKIAlyZWFkX3VubG9ja19iaCgmYW1wO250LSZndDtjbHVzdGVyX3Njb3BlX2xvY2spOwomIzQzOwlyZXR1cm4gMDsKJiM0Mzt9CiYjNDM7CiYjNDM7aW50IHRpcGNfbmFtZWRfZGlzdF9jbHVzdGVyX3Njb3BlKHN0cnVjdCBuZXQgKm5ldCwgdTMyIGRub2RlKQomIzQzO3sKJiM0MzsJc3RydWN0IG5hbWVfdGFibGUgKm50ID0gdGlwY19uYW1lX3RhYmxlKG5ldCk7CiYjNDM7CXN0cnVjdCB0aXBjX25ldCAqdG4gPSB0aXBjX25ldChuZXQpOwomIzQzOwlzdHJ1Y3Qgc2tfYnVmZl9oZWFkIGhlYWQ7CiYjNDM7CXUxNiBzZXFubzsKJiM0MzsKJiM0MzsJX19za2JfcXVldWVfaGVhZF9pbml0KCZhbXA7aGVhZCk7CiYjNDM7CXdhaXRfdmFyX2V2ZW50KCZhbXA7dG4tJmd0O2ZpbmFsaXplZCwgYXRvbWljX3JlYWQoJmFtcDt0bi0mZ3Q7ZmluYWxpemVkKSk7CiYjNDM7CXNwaW5fbG9ja19iaCgmYW1wO3RuLSZndDtuYW1ldGJsX2xvY2spOwomIzQzOwlzZXFubyA9IG50LSZndDtzbmRfbnh0OwomIzQzOwlzcGluX3VubG9ja19iaCgmYW1wO3RuLSZndDtuYW1ldGJsX2xvY2spOwomIzQzOwomIzQzOwlyZWFkX2xvY2tfYmgoJmFtcDtudC0mZ3Q7Y2x1c3Rlcl9zY29wZV9sb2NrKTsKJiM0MzsJaWYgKHVubGlrZWx5KGxpc3RfZW1wdHkoJmFtcDtudC0mZ3Q7Y2x1c3Rlcl9zY29wZSkpKSB7CiYjNDM7CQkvKiBmaW5hbGl6ZSBpcyBkb25lIGJ1dCBub3RoaW5nIHdhcyBwdWJsaXNoZWQgKHB1Ymxpc2gKJiM0MzsJCSAqIGZhaWxlZCk6IGEgcGVybWFuZW50IHN0YXRlLCBub3RoaW5nIHRvIHN5bmNocm9uaXplLgomIzQzOwkJICovCiYjNDM7CQlyZWFkX3VubG9ja19iaCgmYW1wO250LSZndDtjbHVzdGVyX3Njb3BlX2xvY2spOwomIzQzOwkJcmV0dXJuIDA7CiYjNDM7CX0KJiM0MzsJaWYgKG5hbWVkX2Rpc3RyaWJ1dGUobmV0LCAmYW1wO2hlYWQsIGRub2RlLCAmYW1wO250LSZndDtjbHVzdGVyX3Njb3BlLCBzZXFubykpIHsKJiM0MzsJCXJlYWRfdW5sb2NrX2JoKCZhbXA7bnQtJmd0O2NsdXN0ZXJfc2NvcGVfbG9jayk7CiYjNDM7CQlyZXR1cm4gLUVOT0JVRlM7CiYjNDM7CX0KJiM0MzsJdGlwY19ub2RlX3htaXQobmV0LCAmYW1wO2hlYWQsIGRub2RlLCAwKTsKJiM0MzsJcmVhZF91bmxvY2tfYmgoJmFtcDtudC0mZ3Q7Y2x1c3Rlcl9zY29wZV9sb2NrKTsKJiM0MzsKJiM0MzsJcmV0dXJuIDA7CiB9CiAKIC8qKgpkaWZmIC0tZ2l0IGEvbmV0L3RpcGMvbmFtZV9kaXN0ci5oIGIvbmV0L3RpcGMvbmFtZV9kaXN0ci5oCmluZGV4IGM2NzdmNmYwODJkZmI3Li5jYWRmNGU4YzNlNjZjMiAxMDA2NDQKLS0tIGEvbmV0L3RpcGMvbmFtZV9kaXN0ci5oCiYjNDM7JiM0MzsmIzQzOyBiL25ldC90aXBjL25hbWVfZGlzdHIuaApAQCAtNjksNyAmIzQzOzY5LDggQEAgc3RydWN0IGRpc3RyX2l0ZW0gewogCiBzdHJ1Y3Qgc2tfYnVmZiAqdGlwY19uYW1lZF9wdWJsaXNoKHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0IHB1YmxpY2F0aW9uICpwdWJsKTsKIHN0cnVjdCBza19idWZmICp0aXBjX25hbWVkX3dpdGhkcmF3KHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0IHB1YmxpY2F0aW9uICpwdWJsKTsKLXZvaWQgdGlwY19uYW1lZF9ub2RlX3VwKHN0cnVjdCBuZXQgKm5ldCwgdTMyIGRub2RlLCB1MTYgY2FwYWJpbGl0aWVzKTsKJiM0MztpbnQgdGlwY19uYW1lZF9ub2RlX3VwKHN0cnVjdCBuZXQgKm5ldCwgdTMyIGRub2RlLCB1MTYgY2FwYWJpbGl0aWVzKTsKJiM0MztpbnQgdGlwY19uYW1lZF9kaXN0X2NsdXN0ZXJfc2NvcGUoc3RydWN0IG5ldCAqbmV0LCB1MzIgZG5vZGUpOwogdm9pZCB0aXBjX25hbWVkX3JjdihzdHJ1Y3QgbmV0ICpuZXQsIHN0cnVjdCBza19idWZmX2hlYWQgKm5hbWVkcSwKIAkJICAgIHUxNiAqcmN2X254dCwgYm9vbCAqb3Blbik7CiB2b2lkIHRpcGNfbmFtZWRfcmVpbml0KHN0cnVjdCBuZXQgKm5ldCk7CmRpZmYgLS1naXQgYS9uZXQvdGlwYy9uZXQuYyBiL25ldC90aXBjL25ldC5jCmluZGV4IDdlNjVkMGIwYzRhOGQxLi4yYWE4ODEyYzU1MWFkZCAxMDA2NDQKLS0tIGEvbmV0L3RpcGMvbmV0LmMKJiM0MzsmIzQzOyYjNDM7IGIvbmV0L3RpcGMvbmV0LmMKQEAgLTEzOCw3ICYjNDM7MTM4LDEwIEBAIHN0YXRpYyB2b2lkIHRpcGNfbmV0X2ZpbmFsaXplKHN0cnVjdCBuZXQgKm5ldCwgdTMyIGFkZHIpCiAJdGlwY19uYW1lZF9yZWluaXQobmV0KTsKIAl0aXBjX3NrX3JlaW5pdChuZXQpOwogCXRpcGNfbW9uX3JlaW5pdF9zZWxmKG5ldCk7Ci0JdGlwY19uYW1ldGJsX3B1Ymxpc2gobmV0LCAmYW1wO3VhLCAmYW1wO3NrLCBhZGRyKTsKJiM0MzsJaWYgKCF0aXBjX25hbWV0YmxfcHVibGlzaChuZXQsICZhbXA7dWEsICZhbXA7c2ssIGFkZHIpKQomIzQzOwkJcHJfd2FybigmIzM0O0ZhaWxlZCB0byBwdWJsaXNoIG93biBub2RlIHN0YXRlXG4mIzM0Oyk7CiYjNDM7CWF0b21pY19pbmMoJmFtcDt0bi0mZ3Q7ZmluYWxpemVkKTsKJiM0MzsJd2FrZV91cF92YXIoJmFtcDt0bi0mZ3Q7ZmluYWxpemVkKTsKIH0KIAogdm9pZCB0aXBjX25ldF9maW5hbGl6ZV93b3JrKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykKZGlmZiAtLWdpdCBhL25ldC90aXBjL25vZGUuYyBiL25ldC90aXBjL25vZGUuYwppbmRleCA5N2FhOTcwYTBkODNjYS4uNDI4YzRlYWNkMDJmMWYgMTAwNjQ0Ci0tLSBhL25ldC90aXBjL25vZGUuYwomIzQzOyYjNDM7JiM0MzsgYi9uZXQvdGlwYy9ub2RlLmMKQEAgLTE0NSw2ICYjNDM7MTQ1LDggQEAgc3RydWN0IHRpcGNfbm9kZSB7CiAjaWZkZWYgQ09ORklHX1RJUENfQ1JZUFRPCiAJc3RydWN0IHRpcGNfY3J5cHRvICpjcnlwdG9fcng7CiAjZW5kaWYKJiM0MzsJLyogV29yayBpdGVtIGZvciBidWxrIGRpc3RyaWJ1dGlvbiBvZiBjbHVzdGVyIHNjb3BlIHB1YmxpY2F0aW9ucyAqLwomIzQzOwlzdHJ1Y3Qgd29ya19zdHJ1Y3Qgd29yazsKIH07CiAKIC8qIE5vZGUgRlNNIHN0YXRlcyBhbmQgZXZlbnRzOgpAQCAtMzAzLDYgJiM0MzszMDUsNyBAQCBzdGF0aWMgdm9pZCB0aXBjX25vZGVfZnJlZShzdHJ1Y3QgcmN1X2hlYWQgKnJwKQogI2lmZGVmIENPTkZJR19USVBDX0NSWVBUTwogCXRpcGNfY3J5cHRvX3N0b3AoJmFtcDtuLSZndDtjcnlwdG9fcngpOwogI2VuZGlmCiYjNDM7CWNhbmNlbF93b3JrX3N5bmMoJmFtcDtuLSZndDt3b3JrKTsKIAlrZnJlZShuKTsKIH0KIApAQCAtMzkzLDYgJiM0MzszOTYsMTkgQEAgc3RhdGljIHZvaWQgdGlwY19ub2RlX3dyaXRlX3VubG9ja19mYXN0KHN0cnVjdCB0aXBjX25vZGUgKm4pCiAJd3JpdGVfdW5sb2NrX2JoKCZhbXA7bi0mZ3Q7bG9jayk7CiB9CiAKJiM0MztzdGF0aWMgdm9pZCB0aXBjX25vZGVfZGlzdF9idWxrKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykKJiM0Mzt7CiYjNDM7CXN0cnVjdCB0aXBjX25vZGUgKm5vZGUgPSBjb250YWluZXJfb2Yod29yaywgc3RydWN0IHRpcGNfbm9kZSwgd29yayk7CiYjNDM7CiYjNDM7CWlmICh0aXBjX25hbWVkX2Rpc3RfY2x1c3Rlcl9zY29wZShub2RlLSZndDtuZXQsIG5vZGUtJmd0O2FkZHIpICZsdDsgMCkgewomIzQzOwkJdTMyIGJlYXJlcl9pZCA9IG5vZGUtJmd0O2xpbmtfaWQgJmFtcDsgMHhmZmZmOwomIzQzOwomIzQzOwkJdGlwY19ub2RlX2xpbmtfZG93bihub2RlLCBiZWFyZXJfaWQsIGZhbHNlKTsKJiM0MzsJfQomIzQzOwomIzQzOwl0aXBjX25vZGVfcHV0KG5vZGUpOwomIzQzO30KJiM0MzsKIHN0YXRpYyB2b2lkIHRpcGNfbm9kZV93cml0ZV91bmxvY2soc3RydWN0IHRpcGNfbm9kZSAqbikKIAlfX3JlbGVhc2VzKG4tJmd0O2xvY2spCiB7CkBAIC00MjQsOCAmIzQzOzQ0MCwyMiBAQCBzdGF0aWMgdm9pZCB0aXBjX25vZGVfd3JpdGVfdW5sb2NrKHN0cnVjdCB0aXBjX25vZGUgKm4pCiAJaWYgKGZsYWdzICZhbXA7IFRJUENfTk9USUZZX05PREVfRE9XTikKIAkJdGlwY19wdWJsX25vdGlmeShuZXQsIHB1YmxfbGlzdCwgbm9kZSwgbi0mZ3Q7Y2FwYWJpbGl0aWVzKTsKIAotCWlmIChmbGFncyAmYW1wOyBUSVBDX05PVElGWV9OT0RFX1VQKQotCQl0aXBjX25hbWVkX25vZGVfdXAobmV0LCBub2RlLCBuLSZndDtjYXBhYmlsaXRpZXMpOwomIzQzOwlpZiAoZmxhZ3MgJmFtcDsgVElQQ19OT1RJRllfTk9ERV9VUCkgewomIzQzOwkJaW50IHJjID0gMDsKJiM0MzsKJiM0MzsJCXJjID0gdGlwY19uYW1lZF9ub2RlX3VwKG5ldCwgbm9kZSwgbi0mZ3Q7Y2FwYWJpbGl0aWVzKTsKJiM0MzsJCS8qIERlZmVyIGJ1bGsgZGlzdHJpYnV0aW9uIHRvIHdvcmsgcXVldWUgKi8KJiM0MzsJCWlmIChyYyAmZ3Q7IDApIHsKJiM0MzsJCQl0aXBjX25vZGVfZ2V0KG4pOwomIzQzOwkJCWlmICghc2NoZWR1bGVfd29yaygmYW1wO24tJmd0O3dvcmspKQomIzQzOwkJCQl0aXBjX25vZGVfcHV0KG4pOwomIzQzOwkJfSBlbHNlIGlmIChyYyAmbHQ7IDApIHsKJiM0MzsJCQkvKiBCcmluZyB0aGUgbGluayBkb3duIHRvIHN0YXJ0IG92ZXIgYnVsayBkaXN0cmlidXRpb24KJiM0MzsJCQkgKiB3aGVuIHRoZSBsaW5rIGlzIHVwIGFnYWluLgomIzQzOwkJCSAqLwomIzQzOwkJCXRpcGNfbm9kZV9saW5rX2Rvd24obiwgYmVhcmVyX2lkLCBmYWxzZSk7CiYjNDM7CQl9CiYjNDM7CX0KIAogCWlmIChmbGFncyAmYW1wOyBUSVBDX05PVElGWV9MSU5LX1VQKSB7CiAJCXRpcGNfbW9uX3BlZXJfdXAobmV0LCBub2RlLCBiZWFyZXJfaWQpOwpAQCAtNTY0LDYgJiM0Mzs1OTQsNyBAQCBzdHJ1Y3QgdGlwY19ub2RlICp0aXBjX25vZGVfY3JlYXRlKHN0cnVjdCBuZXQgKm5ldCwgdTMyIGFkZHIsIHU4ICpwZWVyX2lkLAogCUlOSVRfTElTVF9IRUFEKCZhbXA7bi0mZ3Q7bGlzdCk7CiAJSU5JVF9MSVNUX0hFQUQoJmFtcDtuLSZndDtwdWJsX2xpc3QpOwogCUlOSVRfTElTVF9IRUFEKCZhbXA7bi0mZ3Q7Y29ubl9za3MpOwomIzQzOwlJTklUX1dPUksoJmFtcDtuLSZndDt3b3JrLCB0aXBjX25vZGVfZGlzdF9idWxrKTsKIAlza2JfcXVldWVfaGVhZF9pbml0KCZhbXA7bi0mZ3Q7YmNfZW50cnkubmFtZWRxKTsKIAlza2JfcXVldWVfaGVhZF9pbml0KCZhbXA7bi0mZ3Q7YmNfZW50cnkuaW5wdXRxMSk7CiAJX19za2JfcXVldWVfaGVhZF9pbml0KCZhbXA7bi0mZ3Q7YmNfZW50cnkuYXJydnEpOwo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNyAyMzoxMjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA1MDA2CgkJCQkJCQlvdXRwdXQ6IDE3CgkJCQkJCQl0aG91Z2h0czogMjAxCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyBhIFRJUEMgUGF0Y2gqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggZm9yIHRoZSBUSVBDIHN1YnN5c3RlbSBpbiB0aGUgTGludXgga2VybmVsLiBTZWVtcyBsaWtlIGEgc29saWQgZnVuY3Rpb25hbCBjaGFuZ2U7IGl0JiMzOTtzIGdldHRpbmcgZGVlcCBpbnRvIHRoZSBjb3JlIGxvZ2ljLiBTcGVjaWZpY2FsbHksIHRoZXkmIzM5O3ZlIGludHJvZHVjZWQgYSBgZmluYWxpemVkYCBhdG9taWMgdmFyaWFibGUgaW4gYHN0cnVjdCB0aXBjX25ldGAgYW5kIGEgYHdvcmtgIGl0ZW0gaW4gYHN0cnVjdCB0aXBjX25vZGVgLiBJbnRlcmVzdGluZy4uLnRoaXMgcG9pbnRzIHRvIGhhbmRsaW5nIHNvbWUgc29ydCBvZiBidWxrIHB1YmxpY2F0aW9uIGRpc3RyaWJ1dGlvbiBhdCB0aGUgY2x1c3RlciBsZXZlbC4gVGhlIG1vZGlmaWNhdGlvbnMgdG8gYHRpcGNfbmFtZWRfbm9kZV91cGAgdG8gcmV0dXJuIGFuIGludGVnZXIgaW5zdGVhZCBvZiB2b2lkLCBhbmQgdGhlIGFkZGl0aW9uIG9mIGB0aXBjX25hbWVkX2Rpc3RfY2x1c3Rlcl9zY29wZWAgZnVydGhlciBjb25maXJtcyBteSBzdXNwaWNpb24gdGhhdCB0aGV5JiMzOTtyZSBhZGRyZXNzaW5nIGEgcmFjZSBjb25kaXRpb24gb3Igc3luY2hyb25pemF0aW9uIGlzc3VlLCBwcm9iYWJseSBkdXJpbmcgbm9kZSBpbml0aWFsaXphdGlvbiBhbmQgaW5pdGlhbCBwdWJsaWNhdGlvbiBkaXN0cmlidXRpb24uCgpUaGUgcGF0Y2ggYWxzbyBoYXMgY2hhbmdlcyBpbiBgdGlwY19ub2RlX3dyaXRlX3VubG9ja2AgdG8gaGFuZGxlIHRoZSByZXR1cm4gdmFsdWUgb2YgYHRpcGNfbmFtZWRfbm9kZV91cGAgYW5kIHNjaGVkdWxlIHRoYXQgd29yayBpdGVtLiBTbWFydDsgdGhhdCBsaWtlbHkgdGllcyB0aGUgdW5sb2NraW5nIHRvIGEgZGVmZXJyZWQgcHJvY2Vzc2luZyBzdGVwLCB3aGljaCBpcyBhIGNvbW1vbiB3YXkgdG8gYXZvaWQgY29udGVudGlvbi4KCkJlZm9yZSBJIGRpZyBpbnRvIHRoZSBzcGVjaWZpY3Mgb2YgdGhlIGNvZGUsIEkgc2hvdWxkIHByb2JhYmx5IGNoZWNrIHRoZSByZWxldmFudCBLY29uZmlnIG9wdGlvbnMuIExldCYjMzk7cyBzZWUuLi5JIHRoaW5rIGBkZWZhdWx0X2FwaTpncmVwcGVyYCBzaG91bGQgZ2l2ZSBtZSBhIHF1aWNrIHJvdXRlIHRvIHRoZSBUSVBDIEtjb25maWcuIEdvdHRhIGdldCB0aGUgY29uZmlndXJhdGlvbiBjb250ZXh0IHJpZ2h0LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE3IDIzOjEyPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2NvbmZpZyBUSVBDJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O25ldC90aXBjL0tjb25maWctNS1cbm5ldC90aXBjL0tjb25maWc6NjptZW51Y29uZmlnIFRJUENcbm5ldC90aXBjL0tjb25maWctNy1cdHRyaXN0YXRlIFwmIzM0O1RoZSBUSVBDIFByb3RvY29sXCYjMzQ7XG4tLVxubmV0L3RpcGMvS2NvbmZpZy0yMy1cbm5ldC90aXBjL0tjb25maWc6MjQ6Y29uZmlnIFRJUENfTUVESUFfSUJcbm5ldC90aXBjL0tjb25maWctMjUtXHRib29sIFwmIzM0O0luZmluaUJhbmQgbWVkaWEgdHlwZSBzdXBwb3J0XCYjMzQ7XG4tLVxubmV0L3RpcGMvS2NvbmZpZy0yOS1cdCAgSVAtb3Zlci1JbmZpbmlCYW5kIGRldmljZXMuXG5uZXQvdGlwYy9LY29uZmlnOjMwOmNvbmZpZyBUSVBDX01FRElBX1VEUFxubmV0L3RpcGMvS2NvbmZpZy0zMS1cdGJvb2wgXCYjMzQ7SVAvVURQIG1lZGlhIHR5cGUgc3VwcG9ydFwmIzM0O1xuLS1cbm5ldC90aXBjL0tjb25maWctMzctXG5uZXQvdGlwYy9LY29uZmlnOjM4OmNvbmZpZyBUSVBDX0NSWVBUT1xubmV0L3RpcGMvS2NvbmZpZy0zOS1cdGJvb2wgXCYjMzQ7VElQQyBlbmNyeXB0aW9uIHN1cHBvcnRcJiMzNDtcbi0tXG5uZXQvdGlwYy9LY29uZmlnLTUyLVxubmV0L3RpcGMvS2NvbmZpZzo1Mzpjb25maWcgVElQQ19ESUFHXG5uZXQvdGlwYy9LY29uZmlnLTU0LVx0dHJpc3RhdGUgXCYjMzQ7VElQQzogc29ja2V0IG1vbml0b3JpbmcgaW50ZXJmYWNlXCYjMzQ7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTcgMjM6MTM8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNTc4OQoJCQkJCQkJb3V0cHV0OiAxMjAKCQkJCQkJCXRob3VnaHRzOiA0MDEKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqRnV6emluZyBTdHJhdGVneSBmb3IgVElQQyBDb3JlIEZ1bmN0aW9uYWxpdHkqKgoKT2theSwgaGVyZSYjMzk7cyB3aGF0IEkmIzM5O20gdGhpbmtpbmcuIFRoaXMgcGF0Y2ggaXMgZGVmaW5pdGVseSBjZW50ZXJlZCBhcm91bmQgdGhlIGBUSVBDYCBjb25maWd1cmF0aW9uIOKAkyB0aGF0JiMzOTtzIHRoZSBtYWluIGRyaXZlci4gTG9va2luZyBhdCB0aGUgZmlsZSBtb2RpZmljYXRpb25zLCBpdCYjMzk7cyBoaXR0aW5nIHRoZSBjb3JlIG9mIHRoZSBUSVBDIGltcGxlbWVudGF0aW9uOiBgY29yZS5jYCwgYG5hbWVfZGlzdHIuY2AsIGBuZXQuY2AsIGFuZCBgbm9kZS5jYC4gVGhpcyBzdWdnZXN0cyBpdCYjMzk7cyBkaWdnaW5nIGludG8gaG93IFRJUEMgbm9kZXMgYXJlIGluaXRpYWxpemVkLCBob3cgbmFtZXMgYXJlIGRpc3RyaWJ1dGVkIGFjcm9zcyB0aGUgbmV0d29yaywgYW5kIHRoZSBvdmVyYWxsIG5ldHdvcmsgbWFuYWdlbWVudC4KClRoZSBsaXN0ZWQgZnVuY3Rpb24gY2hhbmdlcyBhcmUgdGhlIGtleSBoZXJlOiBgdGlwY19pbml0X25ldGAsIGBuYW1lZF9kaXN0cmlidXRlYCwgYHRpcGNfbmFtZWRfbm9kZV91cGAsIGB0aXBjX25hbWVkX2Rpc3RfY2x1c3Rlcl9zY29wZWAsIGB0aXBjX25ldF9maW5hbGl6ZWAsIGB0aXBjX25vZGVfZnJlZWAsIGB0aXBjX25vZGVfZGlzdF9idWxrYCwgYHRpcGNfbm9kZV93cml0ZV91bmxvY2tgLCBhbmQgYHRpcGNfbm9kZV9jcmVhdGVgLiBTcGVjaWZpY2FsbHksIGB0aXBjX25hbWVkX25vZGVfdXBgLCBgdGlwY19uYW1lZF9kaXN0X2NsdXN0ZXJfc2NvcGVgLCBgdGlwY19ub2RlX2Rpc3RfYnVsa2AsIGFuZCBgbmFtZWRfZGlzdHJpYnV0ZWAganVtcCBvdXQgYXQgbWUgYXMgcG90ZW50aWFsIHRyb3VibGUgc3BvdHMsIHNvIEkmIzM5O20gZm9jdXNpbmcgb24gdGhvc2UuCgpOb3csIGp1c3QgdG8gYmUgc3VyZSwgSSBuZWVkIHRvIGNvbmZpcm0gdGhhdCBgVElQQ2AgaXMgdGhlIG9ubHkgY29uZmlnIHJlcXVpcmVkIHRvIGhpdCB0aGlzIGNvZGUuIFllcCwgaXQgc2VlbXMgdGhhdCBgVElQQ2AgYWxvbmUgaXMgdGhlIHRyaWdnZXIsIG5vIG90aGVyIGRlcGVuZGVuY2llcy4gQWxzbywgd2l0aCBUSVBDIGJlaW5nIGEgbmV0d29yayBwcm90b2NvbCwgSSYjMzk7bSBjb25maWRlbnQgdGhhdCB0aGVzZSBmdW5jdGlvbnMgYXJlIHJlYWNoYWJsZSDigJMgbGlrZWx5IHRocm91Z2ggc29ja2V0IEFQSXMgYW5kIG5ldGxpbmsgaW50ZXJhY3Rpb25zLCB0aGUgc3RhbmRhcmQgd2F5IHRvIGludGVyYWN0IHdpdGggdGhlc2Ugc3Vic3lzdGVtcy4gVGhlIGNoYW5nZXMgYXJlIGluIGhvdyBub2RlcyBjb25uZWN0IGFuZCBuYW1lIGluZm9ybWF0aW9uIGlzIGRpc3NlbWluYXRlZCwgc28gdGhhdCBtYWtlcyBzZW5zZS4KClNvLCBJJiMzOTttIGdvaW5nIHRvIHNldCB1cCBteSBmdXp6aW5nIHN0cmF0ZWd5IGxpa2UgdGhpczoKCiogICBgV29ydGhGdXp6aW5nYDogYHRydWVgIOKAkyBiZWNhdXNlIHRoaXMgcGF0Y2ggdG91Y2hlcyBjb3JlIG5ldHdvcmsgbG9naWMgd2l0aCBmdW5jdGlvbnMgZm9yIGRpc3RyaWJ1dGluZyBuZXR3b3JrIGRhdGEgdGhhdCBhcmUgb2YgaW50ZXJlc3QgZm9yIGZ1enppbmcuCiogICBgRW5hYmxlQ29uZmlnc2A6IGBbJiMzNDtUSVBDJiMzNDtdYCDigJMgdG8gYWN0aXZhdGUgdGhlIGNvcnJlY3QgY29kZS4KKiAgIGBGb2N1c1N5bWJvbHNgOiBgWyYjMzQ7dGlwY19uYW1lZF9ub2RlX3VwJiMzNDssICYjMzQ7dGlwY19uYW1lZF9kaXN0X2NsdXN0ZXJfc2NvcGUmIzM0OywgJiMzNDt0aXBjX25vZGVfZGlzdF9idWxrJiMzNDssICYjMzQ7bmFtZWRfZGlzdHJpYnV0ZSYjMzQ7XWAg4oCTIHRoZSBmdW5jdGlvbnMgdGhhdCBzZWVtIG1vc3QgbGlrZWx5IHRvIGV4cG9zZSB2dWxuZXJhYmlsaXRpZXMuCiogICBgUmVhc29uaW5nYDogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIFRJUEMgcHJvdG9jb2wmIzM5O3Mgbm9kZSBpbml0aWFsaXphdGlvbiBhbmQgYnVsayBwdWJsaWNhdGlvbiBkaXN0cmlidXRpb24gbG9naWMsIGludHJvZHVjaW5nIGEgbmV3IHdvcmsgaXRlbSBhbmQgc3luY2hyb25pemF0aW9uIG1lY2hhbmlzbS4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSBjb3JlIFRJUEMgbG9naWMgdGhhdCBzaG91bGQgYmUgZnV6emVkLiYjMzQ7IOKAkyB0aGF0IHN1bW1hcml6ZXMgd2h5IHRoZXNlIGZ1bmN0aW9ucyBhcmUgaW1wb3J0YW50LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE3IDIzOjEzPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+c2V0LXJlc3VsdHM8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtUSVBDJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7dGlwY19uYW1lZF9ub2RlX3VwJiMzNDssCiAgICAmIzM0O3RpcGNfbmFtZWRfZGlzdF9jbHVzdGVyX3Njb3BlJiMzNDssCiAgICAmIzM0O3RpcGNfbm9kZV9kaXN0X2J1bGsmIzM0OywKICAgICYjMzQ7bmFtZWRfZGlzdHJpYnV0ZSYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgVElQQyBwcm90b2NvbCYjMzk7cyBub2RlIGluaXRpYWxpemF0aW9uIGFuZCBidWxrIHB1YmxpY2F0aW9uIGRpc3RyaWJ1dGlvbiBsb2dpYywgaW50cm9kdWNpbmcgYSBuZXcgd29yayBpdGVtIGFuZCBzeW5jaHJvbml6YXRpb24gbWVjaGFuaXNtLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIGNvcmUgVElQQyBsb2dpYyB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O1RJUEMmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDt0aXBjX25hbWVkX25vZGVfdXAmIzM0OywKICAgICYjMzQ7dGlwY19uYW1lZF9kaXN0X2NsdXN0ZXJfc2NvcGUmIzM0OywKICAgICYjMzQ7dGlwY19ub2RlX2Rpc3RfYnVsayYjMzQ7LAogICAgJiMzNDtuYW1lZF9kaXN0cmlidXRlJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBUSVBDIHByb3RvY29sJiMzOTtzIG5vZGUgaW5pdGlhbGl6YXRpb24gYW5kIGJ1bGsgcHVibGljYXRpb24gZGlzdHJpYnV0aW9uIGxvZ2ljLCBpbnRyb2R1Y2luZyBhIG5ldyB3b3JrIGl0ZW0gYW5kIHN5bmNocm9uaXphdGlvbiBtZWNoYW5pc20uIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgY29yZSBUSVBDIGxvZ2ljIHRoYXQgc2hvdWxkIGJlIGZ1enplZC4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE3VDIzOjEyOjUxLjMxMDE2MzQwNloiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE4MDc4OTgwMTYyLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIlRJUENcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJ0aXBjX25hbWVkX25vZGVfdXBcIixcbiAgICBcInRpcGNfbmFtZWRfZGlzdF9jbHVzdGVyX3Njb3BlXCIsXG4gICAgXCJ0aXBjX25vZGVfZGlzdF9idWxrXCIsXG4gICAgXCJuYW1lZF9kaXN0cmlidXRlXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIFRJUEMgcHJvdG9jb2wncyBub2RlIGluaXRpYWxpemF0aW9uIGFuZCBidWxrIHB1YmxpY2F0aW9uIGRpc3RyaWJ1dGlvbiBsb2dpYywgaW50cm9kdWNpbmcgYSBuZXcgd29yayBpdGVtIGFuZCBzeW5jaHJvbml6YXRpb24gbWVjaGFuaXNtLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIGNvcmUgVElQQyBsb2dpYyB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE3VDIzOjEyOjUxLjMxMDE2ODg4NloiLCJTZXEiOjEsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoicmVhZC1wYXRjaC1kaWZmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTE2NjcyNTUyNSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiUGF0Y2hEaWZmXCI6IFwiY29tbWl0IDA3YzFjYjc0NGNkNjljYjhmZGJkZDg4NzQyZWIwYTE4NWJiYWI0YTdcXG5BdXRob3I6IHN5ei1jbHVzdGVyIFxcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVxcdTAwM2VcXG5EYXRlOiAgIEZyaSBKdWwgMTcgMjM6MTI6NDkgMjAyNiArMDAwMFxcblxcbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcXG5cXG5kaWZmIC0tZ2l0IGEvbmV0L3RpcGMvY29yZS5jIGIvbmV0L3RpcGMvY29yZS5jXFxuaW5kZXggNDM0ZTcwZWFiZTA4MTIuLmNlMTY0NTA5ZDllMjdhIDEwMDY0NFxcbi0tLSBhL25ldC90aXBjL2NvcmUuY1xcbisrKyBiL25ldC90aXBjL2NvcmUuY1xcbkBAIC02MCw2ICs2MCw3IEBAIHN0YXRpYyBpbnQgX19uZXRfaW5pdCB0aXBjX2luaXRfbmV0KHN0cnVjdCBuZXQgKm5ldClcXG4gXFx0dG4tXFx1MDAzZXRyaWFsX2FkZHIgPSAwO1xcbiBcXHR0bi1cXHUwMDNlYWRkcl90cmlhbF9lbmQgPSAwO1xcbiBcXHR0bi1cXHUwMDNlY2FwYWJpbGl0aWVzID0gVElQQ19OT0RFX0NBUEFCSUxJVElFUztcXG4rXFx0YXRvbWljX3NldChcXHUwMDI2dG4tXFx1MDAzZWZpbmFsaXplZCwgMCk7XFxuIFxcdElOSVRfV09SSyhcXHUwMDI2dG4tXFx1MDAzZXdvcmssIHRpcGNfbmV0X2ZpbmFsaXplX3dvcmspO1xcbiBcXHRtZW1zZXQodG4tXFx1MDAzZW5vZGVfaWQsIDAsIHNpemVvZih0bi1cXHUwMDNlbm9kZV9pZCkpO1xcbiBcXHRtZW1zZXQodG4tXFx1MDAzZW5vZGVfaWRfc3RyaW5nLCAwLCBzaXplb2YodG4tXFx1MDAzZW5vZGVfaWRfc3RyaW5nKSk7XFxuZGlmZiAtLWdpdCBhL25ldC90aXBjL2NvcmUuaCBiL25ldC90aXBjL2NvcmUuaFxcbmluZGV4IDljZTVmOWZmNmNjMDMxLi43Njc2ODg0NGM4MDgxNCAxMDA2NDRcXG4tLS0gYS9uZXQvdGlwYy9jb3JlLmhcXG4rKysgYi9uZXQvdGlwYy9jb3JlLmhcXG5AQCAtMTQ1LDYgKzE0NSw4IEBAIHN0cnVjdCB0aXBjX25ldCB7XFxuIFxcdHN0cnVjdCB3b3JrX3N0cnVjdCB3b3JrO1xcbiBcXHQvKiBUaGUgbnVtYmVycyBvZiB3b3JrIHF1ZXVlcyBpbiBzY2hlZHVsZSAqL1xcbiBcXHRhdG9taWNfdCB3cV9jb3VudDtcXG4rXFx0LyogZmxhZyB0byBpbmRpY2F0ZSB3b3JrIGhhcyBmaW5pc2hlZCAqL1xcbitcXHRhdG9taWNfdCBmaW5hbGl6ZWQ7XFxuIH07XFxuIFxcbiBzdGF0aWMgaW5saW5lIHN0cnVjdCB0aXBjX25ldCAqdGlwY19uZXQoc3RydWN0IG5ldCAqbmV0KVxcbmRpZmYgLS1naXQgYS9uZXQvdGlwYy9uYW1lX2Rpc3RyLmMgYi9uZXQvdGlwYy9uYW1lX2Rpc3RyLmNcXG5pbmRleCAxOTBiNDljNWNiYzNlYy4uNWIwZmIwOTIyNmZjNjggMTAwNjQ0XFxuLS0tIGEvbmV0L3RpcGMvbmFtZV9kaXN0ci5jXFxuKysrIGIvbmV0L3RpcGMvbmFtZV9kaXN0ci5jXFxuQEAgLTE0Nyw3ICsxNDcsNyBAQCBzdHJ1Y3Qgc2tfYnVmZiAqdGlwY19uYW1lZF93aXRoZHJhdyhzdHJ1Y3QgbmV0ICpuZXQsIHN0cnVjdCBwdWJsaWNhdGlvbiAqcClcXG4gICogQHBsczogbGlua2VkIGxpc3Qgb2YgcHVibGljYXRpb24gaXRlbXMgdG8gYmUgcGFja2VkIGludG8gYnVmZmVyIGNoYWluXFxuICAqIEBzZXFubzogc2VxdWVuY2UgbnVtYmVyIGZvciB0aGlzIG1lc3NhZ2VcXG4gICovXFxuLXN0YXRpYyB2b2lkIG5hbWVkX2Rpc3RyaWJ1dGUoc3RydWN0IG5ldCAqbmV0LCBzdHJ1Y3Qgc2tfYnVmZl9oZWFkICpsaXN0LFxcbitzdGF0aWMgaW50IG5hbWVkX2Rpc3RyaWJ1dGUoc3RydWN0IG5ldCAqbmV0LCBzdHJ1Y3Qgc2tfYnVmZl9oZWFkICpsaXN0LFxcbiBcXHRcXHRcXHQgICAgIHUzMiBkbm9kZSwgc3RydWN0IGxpc3RfaGVhZCAqcGxzLCB1MTYgc2Vxbm8pXFxuIHtcXG4gXFx0c3RydWN0IHB1YmxpY2F0aW9uICpwdWJsO1xcbkBAIC0xNjQsOCArMTY0LDkgQEAgc3RhdGljIHZvaWQgbmFtZWRfZGlzdHJpYnV0ZShzdHJ1Y3QgbmV0ICpuZXQsIHN0cnVjdCBza19idWZmX2hlYWQgKmxpc3QsXFxuIFxcdFxcdFxcdHNrYiA9IG5hbWVkX3ByZXBhcmVfYnVmKG5ldCwgUFVCTElDQVRJT04sIG1zZ19yZW0sXFxuIFxcdFxcdFxcdFxcdFxcdFxcdGRub2RlKTtcXG4gXFx0XFx0XFx0aWYgKCFza2IpIHtcXG4rXFx0XFx0XFx0XFx0X19za2JfcXVldWVfcHVyZ2UobGlzdCk7XFxuIFxcdFxcdFxcdFxcdHByX3dhcm4oXFxcIkJ1bGsgcHVibGljYXRpb24gZmFpbHVyZVxcXFxuXFxcIik7XFxuLVxcdFxcdFxcdFxcdHJldHVybjtcXG4rXFx0XFx0XFx0XFx0cmV0dXJuIDE7XFxuIFxcdFxcdFxcdH1cXG4gXFx0XFx0XFx0aGRyID0gYnVmX21zZyhza2IpO1xcbiBcXHRcXHRcXHRtc2dfc2V0X2JjX2Fja19pbnZhbGlkKGhkciwgdHJ1ZSk7XFxuQEAgLTE5Miw5ICsxOTMsMTUgQEAgc3RhdGljIHZvaWQgbmFtZWRfZGlzdHJpYnV0ZShzdHJ1Y3QgbmV0ICpuZXQsIHN0cnVjdCBza19idWZmX2hlYWQgKmxpc3QsXFxuIFxcdFxcdHNrYl90cmltKHNrYiwgSU5UX0hfU0laRSArIChtc2dfZHN6IC0gbXNnX3JlbSkpO1xcbiBcXHRcXHRfX3NrYl9xdWV1ZV90YWlsKGxpc3QsIHNrYik7XFxuIFxcdH1cXG4rXFx0aWYgKHNrYl9xdWV1ZV9lbXB0eShsaXN0KSkge1xcbitcXHRcXHRwcl93YXJuKFxcXCJCdWxrIHB1YmxpY2F0aW9uIGxpc3QgZW1wdHksIG5vdGhpbmcgdG8gZGlzdHJpYnV0ZVxcXFxuXFxcIik7XFxuK1xcdFxcdHJldHVybiAxO1xcbitcXHR9XFxuIFxcdGhkciA9IGJ1Zl9tc2coc2tiX3BlZWtfdGFpbChsaXN0KSk7XFxuIFxcdG1zZ19zZXRfbGFzdF9idWxrKGhkcik7XFxuIFxcdG1zZ19zZXRfbmFtZWRfc2Vxbm8oaGRyLCBzZXFubyk7XFxuK1xcbitcXHRyZXR1cm4gMDtcXG4gfVxcbiBcXG4gLyoqXFxuQEAgLTIwMyw3ICsyMTAsNyBAQCBzdGF0aWMgdm9pZCBuYW1lZF9kaXN0cmlidXRlKHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0IHNrX2J1ZmZfaGVhZCAqbGlzdCxcXG4gICogQGRub2RlOiBkZXN0aW5hdGlvbiBub2RlXFxuICAqIEBjYXBhYmlsaXRpZXM6IHBlZXIgbm9kZSdzIGNhcGFiaWxpdGllc1xcbiAgKi9cXG4tdm9pZCB0aXBjX25hbWVkX25vZGVfdXAoc3RydWN0IG5ldCAqbmV0LCB1MzIgZG5vZGUsIHUxNiBjYXBhYmlsaXRpZXMpXFxuK2ludCB0aXBjX25hbWVkX25vZGVfdXAoc3RydWN0IG5ldCAqbmV0LCB1MzIgZG5vZGUsIHUxNiBjYXBhYmlsaXRpZXMpXFxuIHtcXG4gXFx0c3RydWN0IG5hbWVfdGFibGUgKm50ID0gdGlwY19uYW1lX3RhYmxlKG5ldCk7XFxuIFxcdHN0cnVjdCB0aXBjX25ldCAqdG4gPSB0aXBjX25ldChuZXQpO1xcbkBAIC0yMTgsOSArMjI1LDUzIEBAIHZvaWQgdGlwY19uYW1lZF9ub2RlX3VwKHN0cnVjdCBuZXQgKm5ldCwgdTMyIGRub2RlLCB1MTYgY2FwYWJpbGl0aWVzKVxcbiBcXHRzcGluX3VubG9ja19iaChcXHUwMDI2dG4tXFx1MDAzZW5hbWV0YmxfbG9jayk7XFxuIFxcbiBcXHRyZWFkX2xvY2tfYmgoXFx1MDAyNm50LVxcdTAwM2VjbHVzdGVyX3Njb3BlX2xvY2spO1xcbi1cXHRuYW1lZF9kaXN0cmlidXRlKG5ldCwgXFx1MDAyNmhlYWQsIGRub2RlLCBcXHUwMDI2bnQtXFx1MDAzZWNsdXN0ZXJfc2NvcGUsIHNlcW5vKTtcXG4rXFx0LyogdGlwY19uZXRfZmluYWxpemVfd29yaygpIGhhcyBub3QgZmluaXNoZWQgaW5zZXJ0aW5nIHNlbGYgYWRkcmVzcyB0b1xcbitcXHQgKiBuYW1lIHRhYmxlIHlldC5cXG4rXFx0ICovXFxuK1xcdGlmICh1bmxpa2VseShsaXN0X2VtcHR5KFxcdTAwMjZudC1cXHUwMDNlY2x1c3Rlcl9zY29wZSkpKSB7XFxuK1xcdFxcdHJlYWRfdW5sb2NrX2JoKFxcdTAwMjZudC1cXHUwMDNlY2x1c3Rlcl9zY29wZV9sb2NrKTtcXG4rXFx0XFx0cmV0dXJuIDE7XFxuK1xcdH1cXG4rXFxuK1xcdGlmIChuYW1lZF9kaXN0cmlidXRlKG5ldCwgXFx1MDAyNmhlYWQsIGRub2RlLCBcXHUwMDI2bnQtXFx1MDAzZWNsdXN0ZXJfc2NvcGUsIHNlcW5vKSkge1xcbitcXHRcXHRyZWFkX3VubG9ja19iaChcXHUwMDI2bnQtXFx1MDAzZWNsdXN0ZXJfc2NvcGVfbG9jayk7XFxuK1xcdFxcdHJldHVybiAtRU5PQlVGUztcXG4rXFx0fVxcbitcXG4gXFx0dGlwY19ub2RlX3htaXQobmV0LCBcXHUwMDI2aGVhZCwgZG5vZGUsIDApO1xcbiBcXHRyZWFkX3VubG9ja19iaChcXHUwMDI2bnQtXFx1MDAzZWNsdXN0ZXJfc2NvcGVfbG9jayk7XFxuK1xcdHJldHVybiAwO1xcbit9XFxuK1xcbitpbnQgdGlwY19uYW1lZF9kaXN0X2NsdXN0ZXJfc2NvcGUoc3RydWN0IG5ldCAqbmV0LCB1MzIgZG5vZGUpXFxuK3tcXG4rXFx0c3RydWN0IG5hbWVfdGFibGUgKm50ID0gdGlwY19uYW1lX3RhYmxlKG5ldCk7XFxuK1xcdHN0cnVjdCB0aXBjX25ldCAqdG4gPSB0aXBjX25ldChuZXQpO1xcbitcXHRzdHJ1Y3Qgc2tfYnVmZl9oZWFkIGhlYWQ7XFxuK1xcdHUxNiBzZXFubztcXG4rXFxuK1xcdF9fc2tiX3F1ZXVlX2hlYWRfaW5pdChcXHUwMDI2aGVhZCk7XFxuK1xcdHdhaXRfdmFyX2V2ZW50KFxcdTAwMjZ0bi1cXHUwMDNlZmluYWxpemVkLCBhdG9taWNfcmVhZChcXHUwMDI2dG4tXFx1MDAzZWZpbmFsaXplZCkpO1xcbitcXHRzcGluX2xvY2tfYmgoXFx1MDAyNnRuLVxcdTAwM2VuYW1ldGJsX2xvY2spO1xcbitcXHRzZXFubyA9IG50LVxcdTAwM2VzbmRfbnh0O1xcbitcXHRzcGluX3VubG9ja19iaChcXHUwMDI2dG4tXFx1MDAzZW5hbWV0YmxfbG9jayk7XFxuK1xcbitcXHRyZWFkX2xvY2tfYmgoXFx1MDAyNm50LVxcdTAwM2VjbHVzdGVyX3Njb3BlX2xvY2spO1xcbitcXHRpZiAodW5saWtlbHkobGlzdF9lbXB0eShcXHUwMDI2bnQtXFx1MDAzZWNsdXN0ZXJfc2NvcGUpKSkge1xcbitcXHRcXHQvKiBmaW5hbGl6ZSBpcyBkb25lIGJ1dCBub3RoaW5nIHdhcyBwdWJsaXNoZWQgKHB1Ymxpc2hcXG4rXFx0XFx0ICogZmFpbGVkKTogYSBwZXJtYW5lbnQgc3RhdGUsIG5vdGhpbmcgdG8gc3luY2hyb25pemUuXFxuK1xcdFxcdCAqL1xcbitcXHRcXHRyZWFkX3VubG9ja19iaChcXHUwMDI2bnQtXFx1MDAzZWNsdXN0ZXJfc2NvcGVfbG9jayk7XFxuK1xcdFxcdHJldHVybiAwO1xcbitcXHR9XFxuK1xcdGlmIChuYW1lZF9kaXN0cmlidXRlKG5ldCwgXFx1MDAyNmhlYWQsIGRub2RlLCBcXHUwMDI2bnQtXFx1MDAzZWNsdXN0ZXJfc2NvcGUsIHNlcW5vKSkge1xcbitcXHRcXHRyZWFkX3VubG9ja19iaChcXHUwMDI2bnQtXFx1MDAzZWNsdXN0ZXJfc2NvcGVfbG9jayk7XFxuK1xcdFxcdHJldHVybiAtRU5PQlVGUztcXG4rXFx0fVxcbitcXHR0aXBjX25vZGVfeG1pdChuZXQsIFxcdTAwMjZoZWFkLCBkbm9kZSwgMCk7XFxuK1xcdHJlYWRfdW5sb2NrX2JoKFxcdTAwMjZudC1cXHUwMDNlY2x1c3Rlcl9zY29wZV9sb2NrKTtcXG4rXFxuK1xcdHJldHVybiAwO1xcbiB9XFxuIFxcbiAvKipcXG5kaWZmIC0tZ2l0IGEvbmV0L3RpcGMvbmFtZV9kaXN0ci5oIGIvbmV0L3RpcGMvbmFtZV9kaXN0ci5oXFxuaW5kZXggYzY3N2Y2ZjA4MmRmYjcuLmNhZGY0ZThjM2U2NmMyIDEwMDY0NFxcbi0tLSBhL25ldC90aXBjL25hbWVfZGlzdHIuaFxcbisrKyBiL25ldC90aXBjL25hbWVfZGlzdHIuaFxcbkBAIC02OSw3ICs2OSw4IEBAIHN0cnVjdCBkaXN0cl9pdGVtIHtcXG4gXFxuIHN0cnVjdCBza19idWZmICp0aXBjX25hbWVkX3B1Ymxpc2goc3RydWN0IG5ldCAqbmV0LCBzdHJ1Y3QgcHVibGljYXRpb24gKnB1YmwpO1xcbiBzdHJ1Y3Qgc2tfYnVmZiAqdGlwY19uYW1lZF93aXRoZHJhdyhzdHJ1Y3QgbmV0ICpuZXQsIHN0cnVjdCBwdWJsaWNhdGlvbiAqcHVibCk7XFxuLXZvaWQgdGlwY19uYW1lZF9ub2RlX3VwKHN0cnVjdCBuZXQgKm5ldCwgdTMyIGRub2RlLCB1MTYgY2FwYWJpbGl0aWVzKTtcXG4raW50IHRpcGNfbmFtZWRfbm9kZV91cChzdHJ1Y3QgbmV0ICpuZXQsIHUzMiBkbm9kZSwgdTE2IGNhcGFiaWxpdGllcyk7XFxuK2ludCB0aXBjX25hbWVkX2Rpc3RfY2x1c3Rlcl9zY29wZShzdHJ1Y3QgbmV0ICpuZXQsIHUzMiBkbm9kZSk7XFxuIHZvaWQgdGlwY19uYW1lZF9yY3Yoc3RydWN0IG5ldCAqbmV0LCBzdHJ1Y3Qgc2tfYnVmZl9oZWFkICpuYW1lZHEsXFxuIFxcdFxcdCAgICB1MTYgKnJjdl9ueHQsIGJvb2wgKm9wZW4pO1xcbiB2b2lkIHRpcGNfbmFtZWRfcmVpbml0KHN0cnVjdCBuZXQgKm5ldCk7XFxuZGlmZiAtLWdpdCBhL25ldC90aXBjL25ldC5jIGIvbmV0L3RpcGMvbmV0LmNcXG5pbmRleCA3ZTY1ZDBiMGM0YThkMS4uMmFhODgxMmM1NTFhZGQgMTAwNjQ0XFxuLS0tIGEvbmV0L3RpcGMvbmV0LmNcXG4rKysgYi9uZXQvdGlwYy9uZXQuY1xcbkBAIC0xMzgsNyArMTM4LDEwIEBAIHN0YXRpYyB2b2lkIHRpcGNfbmV0X2ZpbmFsaXplKHN0cnVjdCBuZXQgKm5ldCwgdTMyIGFkZHIpXFxuIFxcdHRpcGNfbmFtZWRfcmVpbml0KG5ldCk7XFxuIFxcdHRpcGNfc2tfcmVpbml0KG5ldCk7XFxuIFxcdHRpcGNfbW9uX3JlaW5pdF9zZWxmKG5ldCk7XFxuLVxcdHRpcGNfbmFtZXRibF9wdWJsaXNoKG5ldCwgXFx1MDAyNnVhLCBcXHUwMDI2c2ssIGFkZHIpO1xcbitcXHRpZiAoIXRpcGNfbmFtZXRibF9wdWJsaXNoKG5ldCwgXFx1MDAyNnVhLCBcXHUwMDI2c2ssIGFkZHIpKVxcbitcXHRcXHRwcl93YXJuKFxcXCJGYWlsZWQgdG8gcHVibGlzaCBvd24gbm9kZSBzdGF0ZVxcXFxuXFxcIik7XFxuK1xcdGF0b21pY19pbmMoXFx1MDAyNnRuLVxcdTAwM2VmaW5hbGl6ZWQpO1xcbitcXHR3YWtlX3VwX3ZhcihcXHUwMDI2dG4tXFx1MDAzZWZpbmFsaXplZCk7XFxuIH1cXG4gXFxuIHZvaWQgdGlwY19uZXRfZmluYWxpemVfd29yayhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspXFxuZGlmZiAtLWdpdCBhL25ldC90aXBjL25vZGUuYyBiL25ldC90aXBjL25vZGUuY1xcbmluZGV4IDk3YWE5NzBhMGQ4M2NhLi40MjhjNGVhY2QwMmYxZiAxMDA2NDRcXG4tLS0gYS9uZXQvdGlwYy9ub2RlLmNcXG4rKysgYi9uZXQvdGlwYy9ub2RlLmNcXG5AQCAtMTQ1LDYgKzE0NSw4IEBAIHN0cnVjdCB0aXBjX25vZGUge1xcbiAjaWZkZWYgQ09ORklHX1RJUENfQ1JZUFRPXFxuIFxcdHN0cnVjdCB0aXBjX2NyeXB0byAqY3J5cHRvX3J4O1xcbiAjZW5kaWZcXG4rXFx0LyogV29yayBpdGVtIGZvciBidWxrIGRpc3RyaWJ1dGlvbiBvZiBjbHVzdGVyIHNjb3BlIHB1YmxpY2F0aW9ucyAqL1xcbitcXHRzdHJ1Y3Qgd29ya19zdHJ1Y3Qgd29yaztcXG4gfTtcXG4gXFxuIC8qIE5vZGUgRlNNIHN0YXRlcyBhbmQgZXZlbnRzOlxcbkBAIC0zMDMsNiArMzA1LDcgQEAgc3RhdGljIHZvaWQgdGlwY19ub2RlX2ZyZWUoc3RydWN0IHJjdV9oZWFkICpycClcXG4gI2lmZGVmIENPTkZJR19USVBDX0NSWVBUT1xcbiBcXHR0aXBjX2NyeXB0b19zdG9wKFxcdTAwMjZuLVxcdTAwM2VjcnlwdG9fcngpO1xcbiAjZW5kaWZcXG4rXFx0Y2FuY2VsX3dvcmtfc3luYyhcXHUwMDI2bi1cXHUwMDNld29yayk7XFxuIFxcdGtmcmVlKG4pO1xcbiB9XFxuIFxcbkBAIC0zOTMsNiArMzk2LDE5IEBAIHN0YXRpYyB2b2lkIHRpcGNfbm9kZV93cml0ZV91bmxvY2tfZmFzdChzdHJ1Y3QgdGlwY19ub2RlICpuKVxcbiBcXHR3cml0ZV91bmxvY2tfYmgoXFx1MDAyNm4tXFx1MDAzZWxvY2spO1xcbiB9XFxuIFxcbitzdGF0aWMgdm9pZCB0aXBjX25vZGVfZGlzdF9idWxrKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaylcXG4re1xcbitcXHRzdHJ1Y3QgdGlwY19ub2RlICpub2RlID0gY29udGFpbmVyX29mKHdvcmssIHN0cnVjdCB0aXBjX25vZGUsIHdvcmspO1xcbitcXG4rXFx0aWYgKHRpcGNfbmFtZWRfZGlzdF9jbHVzdGVyX3Njb3BlKG5vZGUtXFx1MDAzZW5ldCwgbm9kZS1cXHUwMDNlYWRkcikgXFx1MDAzYyAwKSB7XFxuK1xcdFxcdHUzMiBiZWFyZXJfaWQgPSBub2RlLVxcdTAwM2VsaW5rX2lkIFxcdTAwMjYgMHhmZmZmO1xcbitcXG4rXFx0XFx0dGlwY19ub2RlX2xpbmtfZG93bihub2RlLCBiZWFyZXJfaWQsIGZhbHNlKTtcXG4rXFx0fVxcbitcXG4rXFx0dGlwY19ub2RlX3B1dChub2RlKTtcXG4rfVxcbitcXG4gc3RhdGljIHZvaWQgdGlwY19ub2RlX3dyaXRlX3VubG9jayhzdHJ1Y3QgdGlwY19ub2RlICpuKVxcbiBcXHRfX3JlbGVhc2VzKG4tXFx1MDAzZWxvY2spXFxuIHtcXG5AQCAtNDI0LDggKzQ0MCwyMiBAQCBzdGF0aWMgdm9pZCB0aXBjX25vZGVfd3JpdGVfdW5sb2NrKHN0cnVjdCB0aXBjX25vZGUgKm4pXFxuIFxcdGlmIChmbGFncyBcXHUwMDI2IFRJUENfTk9USUZZX05PREVfRE9XTilcXG4gXFx0XFx0dGlwY19wdWJsX25vdGlmeShuZXQsIHB1YmxfbGlzdCwgbm9kZSwgbi1cXHUwMDNlY2FwYWJpbGl0aWVzKTtcXG4gXFxuLVxcdGlmIChmbGFncyBcXHUwMDI2IFRJUENfTk9USUZZX05PREVfVVApXFxuLVxcdFxcdHRpcGNfbmFtZWRfbm9kZV91cChuZXQsIG5vZGUsIG4tXFx1MDAzZWNhcGFiaWxpdGllcyk7XFxuK1xcdGlmIChmbGFncyBcXHUwMDI2IFRJUENfTk9USUZZX05PREVfVVApIHtcXG4rXFx0XFx0aW50IHJjID0gMDtcXG4rXFxuK1xcdFxcdHJjID0gdGlwY19uYW1lZF9ub2RlX3VwKG5ldCwgbm9kZSwgbi1cXHUwMDNlY2FwYWJpbGl0aWVzKTtcXG4rXFx0XFx0LyogRGVmZXIgYnVsayBkaXN0cmlidXRpb24gdG8gd29yayBxdWV1ZSAqL1xcbitcXHRcXHRpZiAocmMgXFx1MDAzZSAwKSB7XFxuK1xcdFxcdFxcdHRpcGNfbm9kZV9nZXQobik7XFxuK1xcdFxcdFxcdGlmICghc2NoZWR1bGVfd29yayhcXHUwMDI2bi1cXHUwMDNld29yaykpXFxuK1xcdFxcdFxcdFxcdHRpcGNfbm9kZV9wdXQobik7XFxuK1xcdFxcdH0gZWxzZSBpZiAocmMgXFx1MDAzYyAwKSB7XFxuK1xcdFxcdFxcdC8qIEJyaW5nIHRoZSBsaW5rIGRvd24gdG8gc3RhcnQgb3ZlciBidWxrIGRpc3RyaWJ1dGlvblxcbitcXHRcXHRcXHQgKiB3aGVuIHRoZSBsaW5rIGlzIHVwIGFnYWluLlxcbitcXHRcXHRcXHQgKi9cXG4rXFx0XFx0XFx0dGlwY19ub2RlX2xpbmtfZG93bihuLCBiZWFyZXJfaWQsIGZhbHNlKTtcXG4rXFx0XFx0fVxcbitcXHR9XFxuIFxcbiBcXHRpZiAoZmxhZ3MgXFx1MDAyNiBUSVBDX05PVElGWV9MSU5LX1VQKSB7XFxuIFxcdFxcdHRpcGNfbW9uX3BlZXJfdXAobmV0LCBub2RlLCBiZWFyZXJfaWQpO1xcbkBAIC01NjQsNiArNTk0LDcgQEAgc3RydWN0IHRpcGNfbm9kZSAqdGlwY19ub2RlX2NyZWF0ZShzdHJ1Y3QgbmV0ICpuZXQsIHUzMiBhZGRyLCB1OCAqcGVlcl9pZCxcXG4gXFx0SU5JVF9MSVNUX0hFQUQoXFx1MDAyNm4tXFx1MDAzZWxpc3QpO1xcbiBcXHRJTklUX0xJU1RfSEVBRChcXHUwMDI2bi1cXHUwMDNlcHVibF9saXN0KTtcXG4gXFx0SU5JVF9MSVNUX0hFQUQoXFx1MDAyNm4tXFx1MDAzZWNvbm5fc2tzKTtcXG4rXFx0SU5JVF9XT1JLKFxcdTAwMjZuLVxcdTAwM2V3b3JrLCB0aXBjX25vZGVfZGlzdF9idWxrKTtcXG4gXFx0c2tiX3F1ZXVlX2hlYWRfaW5pdChcXHUwMDI2bi1cXHUwMDNlYmNfZW50cnkubmFtZWRxKTtcXG4gXFx0c2tiX3F1ZXVlX2hlYWRfaW5pdChcXHUwMDI2bi1cXHUwMDNlYmNfZW50cnkuaW5wdXRxMSk7XFxuIFxcdF9fc2tiX3F1ZXVlX2hlYWRfaW5pdChcXHUwMDI2bi1cXHUwMDNlYmNfZW50cnkuYXJydnEpO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xN1QyMzoxMjo1Mi40Nzc4NDQ4MTFaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjE2OTExMjg0MjE2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIlRJUENcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJ0aXBjX25hbWVkX25vZGVfdXBcIixcbiAgICBcInRpcGNfbmFtZWRfZGlzdF9jbHVzdGVyX3Njb3BlXCIsXG4gICAgXCJ0aXBjX25vZGVfZGlzdF9idWxrXCIsXG4gICAgXCJuYW1lZF9kaXN0cmlidXRlXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIFRJUEMgcHJvdG9jb2wncyBub2RlIGluaXRpYWxpemF0aW9uIGFuZCBidWxrIHB1YmxpY2F0aW9uIGRpc3RyaWJ1dGlvbiBsb2dpYywgaW50cm9kdWNpbmcgYSBuZXcgd29yayBpdGVtIGFuZCBzeW5jaHJvbml6YXRpb24gbWVjaGFuaXNtLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIGNvcmUgVElQQyBsb2dpYyB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLlxuWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmVcbmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cblxuSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluXG55b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHlcbnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuXG5cblJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6XG4tIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuXG4tIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLlxuLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuXG4tIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSxcbmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS5cblxuSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaFxudG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuXG5cbldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOlxuMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy5cbiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLlxuMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuXG4gICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuXG4gICBEbyBub3QgbGlzdCB0b28gZ2VuZXJpYyBjb25maWdzICh3ZSBhbHJlYWR5IGhhdmUgdGhlbSBlbmFibGVkKS4gT25seSBsaXN0IHRob3NlIHRoYXRcbiAgIHNwZWNpZmljYWxseSBjb3ZlciB0aGUgbW9kaWZpZWQgY29kZS4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzIG91dHB1dCBhcnJheSxcbiAgIGFuZCBETyBOT1QgYWRkIGEgJ0NPTkZJR18nIHByZWZpeCAoZS5nLiwgcmV0dXJuIFwiTkVUX0lQVjRcIiBpbnN0ZWFkIG9mIFwiQ09ORklHX05FVF9JUFY0XCIpLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgMDdjMWNiNzQ0Y2Q2OWNiOGZkYmRkODg3NDJlYjBhMTg1YmJhYjRhN1xuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBGcmkgSnVsIDE3IDIzOjEyOjQ5IDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvbmV0L3RpcGMvY29yZS5jIGIvbmV0L3RpcGMvY29yZS5jXG5pbmRleCA0MzRlNzBlYWJlMDgxMi4uY2UxNjQ1MDlkOWUyN2EgMTAwNjQ0XG4tLS0gYS9uZXQvdGlwYy9jb3JlLmNcbisrKyBiL25ldC90aXBjL2NvcmUuY1xuQEAgLTYwLDYgKzYwLDcgQEAgc3RhdGljIGludCBfX25ldF9pbml0IHRpcGNfaW5pdF9uZXQoc3RydWN0IG5ldCAqbmV0KVxuIFx0dG4tXHUwMDNldHJpYWxfYWRkciA9IDA7XG4gXHR0bi1cdTAwM2VhZGRyX3RyaWFsX2VuZCA9IDA7XG4gXHR0bi1cdTAwM2VjYXBhYmlsaXRpZXMgPSBUSVBDX05PREVfQ0FQQUJJTElUSUVTO1xuK1x0YXRvbWljX3NldChcdTAwMjZ0bi1cdTAwM2VmaW5hbGl6ZWQsIDApO1xuIFx0SU5JVF9XT1JLKFx1MDAyNnRuLVx1MDAzZXdvcmssIHRpcGNfbmV0X2ZpbmFsaXplX3dvcmspO1xuIFx0bWVtc2V0KHRuLVx1MDAzZW5vZGVfaWQsIDAsIHNpemVvZih0bi1cdTAwM2Vub2RlX2lkKSk7XG4gXHRtZW1zZXQodG4tXHUwMDNlbm9kZV9pZF9zdHJpbmcsIDAsIHNpemVvZih0bi1cdTAwM2Vub2RlX2lkX3N0cmluZykpO1xuZGlmZiAtLWdpdCBhL25ldC90aXBjL2NvcmUuaCBiL25ldC90aXBjL2NvcmUuaFxuaW5kZXggOWNlNWY5ZmY2Y2MwMzEuLjc2NzY4ODQ0YzgwODE0IDEwMDY0NFxuLS0tIGEvbmV0L3RpcGMvY29yZS5oXG4rKysgYi9uZXQvdGlwYy9jb3JlLmhcbkBAIC0xNDUsNiArMTQ1LDggQEAgc3RydWN0IHRpcGNfbmV0IHtcbiBcdHN0cnVjdCB3b3JrX3N0cnVjdCB3b3JrO1xuIFx0LyogVGhlIG51bWJlcnMgb2Ygd29yayBxdWV1ZXMgaW4gc2NoZWR1bGUgKi9cbiBcdGF0b21pY190IHdxX2NvdW50O1xuK1x0LyogZmxhZyB0byBpbmRpY2F0ZSB3b3JrIGhhcyBmaW5pc2hlZCAqL1xuK1x0YXRvbWljX3QgZmluYWxpemVkO1xuIH07XG4gXG4gc3RhdGljIGlubGluZSBzdHJ1Y3QgdGlwY19uZXQgKnRpcGNfbmV0KHN0cnVjdCBuZXQgKm5ldClcbmRpZmYgLS1naXQgYS9uZXQvdGlwYy9uYW1lX2Rpc3RyLmMgYi9uZXQvdGlwYy9uYW1lX2Rpc3RyLmNcbmluZGV4IDE5MGI0OWM1Y2JjM2VjLi41YjBmYjA5MjI2ZmM2OCAxMDA2NDRcbi0tLSBhL25ldC90aXBjL25hbWVfZGlzdHIuY1xuKysrIGIvbmV0L3RpcGMvbmFtZV9kaXN0ci5jXG5AQCAtMTQ3LDcgKzE0Nyw3IEBAIHN0cnVjdCBza19idWZmICp0aXBjX25hbWVkX3dpdGhkcmF3KHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0IHB1YmxpY2F0aW9uICpwKVxuICAqIEBwbHM6IGxpbmtlZCBsaXN0IG9mIHB1YmxpY2F0aW9uIGl0ZW1zIHRvIGJlIHBhY2tlZCBpbnRvIGJ1ZmZlciBjaGFpblxuICAqIEBzZXFubzogc2VxdWVuY2UgbnVtYmVyIGZvciB0aGlzIG1lc3NhZ2VcbiAgKi9cbi1zdGF0aWMgdm9pZCBuYW1lZF9kaXN0cmlidXRlKHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0IHNrX2J1ZmZfaGVhZCAqbGlzdCxcbitzdGF0aWMgaW50IG5hbWVkX2Rpc3RyaWJ1dGUoc3RydWN0IG5ldCAqbmV0LCBzdHJ1Y3Qgc2tfYnVmZl9oZWFkICpsaXN0LFxuIFx0XHRcdCAgICAgdTMyIGRub2RlLCBzdHJ1Y3QgbGlzdF9oZWFkICpwbHMsIHUxNiBzZXFubylcbiB7XG4gXHRzdHJ1Y3QgcHVibGljYXRpb24gKnB1Ymw7XG5AQCAtMTY0LDggKzE2NCw5IEBAIHN0YXRpYyB2b2lkIG5hbWVkX2Rpc3RyaWJ1dGUoc3RydWN0IG5ldCAqbmV0LCBzdHJ1Y3Qgc2tfYnVmZl9oZWFkICpsaXN0LFxuIFx0XHRcdHNrYiA9IG5hbWVkX3ByZXBhcmVfYnVmKG5ldCwgUFVCTElDQVRJT04sIG1zZ19yZW0sXG4gXHRcdFx0XHRcdFx0ZG5vZGUpO1xuIFx0XHRcdGlmICghc2tiKSB7XG4rXHRcdFx0XHRfX3NrYl9xdWV1ZV9wdXJnZShsaXN0KTtcbiBcdFx0XHRcdHByX3dhcm4oXCJCdWxrIHB1YmxpY2F0aW9uIGZhaWx1cmVcXG5cIik7XG4tXHRcdFx0XHRyZXR1cm47XG4rXHRcdFx0XHRyZXR1cm4gMTtcbiBcdFx0XHR9XG4gXHRcdFx0aGRyID0gYnVmX21zZyhza2IpO1xuIFx0XHRcdG1zZ19zZXRfYmNfYWNrX2ludmFsaWQoaGRyLCB0cnVlKTtcbkBAIC0xOTIsOSArMTkzLDE1IEBAIHN0YXRpYyB2b2lkIG5hbWVkX2Rpc3RyaWJ1dGUoc3RydWN0IG5ldCAqbmV0LCBzdHJ1Y3Qgc2tfYnVmZl9oZWFkICpsaXN0LFxuIFx0XHRza2JfdHJpbShza2IsIElOVF9IX1NJWkUgKyAobXNnX2RzeiAtIG1zZ19yZW0pKTtcbiBcdFx0X19za2JfcXVldWVfdGFpbChsaXN0LCBza2IpO1xuIFx0fVxuK1x0aWYgKHNrYl9xdWV1ZV9lbXB0eShsaXN0KSkge1xuK1x0XHRwcl93YXJuKFwiQnVsayBwdWJsaWNhdGlvbiBsaXN0IGVtcHR5LCBub3RoaW5nIHRvIGRpc3RyaWJ1dGVcXG5cIik7XG4rXHRcdHJldHVybiAxO1xuK1x0fVxuIFx0aGRyID0gYnVmX21zZyhza2JfcGVla190YWlsKGxpc3QpKTtcbiBcdG1zZ19zZXRfbGFzdF9idWxrKGhkcik7XG4gXHRtc2dfc2V0X25hbWVkX3NlcW5vKGhkciwgc2Vxbm8pO1xuK1xuK1x0cmV0dXJuIDA7XG4gfVxuIFxuIC8qKlxuQEAgLTIwMyw3ICsyMTAsNyBAQCBzdGF0aWMgdm9pZCBuYW1lZF9kaXN0cmlidXRlKHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0IHNrX2J1ZmZfaGVhZCAqbGlzdCxcbiAgKiBAZG5vZGU6IGRlc3RpbmF0aW9uIG5vZGVcbiAgKiBAY2FwYWJpbGl0aWVzOiBwZWVyIG5vZGUncyBjYXBhYmlsaXRpZXNcbiAgKi9cbi12b2lkIHRpcGNfbmFtZWRfbm9kZV91cChzdHJ1Y3QgbmV0ICpuZXQsIHUzMiBkbm9kZSwgdTE2IGNhcGFiaWxpdGllcylcbitpbnQgdGlwY19uYW1lZF9ub2RlX3VwKHN0cnVjdCBuZXQgKm5ldCwgdTMyIGRub2RlLCB1MTYgY2FwYWJpbGl0aWVzKVxuIHtcbiBcdHN0cnVjdCBuYW1lX3RhYmxlICpudCA9IHRpcGNfbmFtZV90YWJsZShuZXQpO1xuIFx0c3RydWN0IHRpcGNfbmV0ICp0biA9IHRpcGNfbmV0KG5ldCk7XG5AQCAtMjE4LDkgKzIyNSw1MyBAQCB2b2lkIHRpcGNfbmFtZWRfbm9kZV91cChzdHJ1Y3QgbmV0ICpuZXQsIHUzMiBkbm9kZSwgdTE2IGNhcGFiaWxpdGllcylcbiBcdHNwaW5fdW5sb2NrX2JoKFx1MDAyNnRuLVx1MDAzZW5hbWV0YmxfbG9jayk7XG4gXG4gXHRyZWFkX2xvY2tfYmgoXHUwMDI2bnQtXHUwMDNlY2x1c3Rlcl9zY29wZV9sb2NrKTtcbi1cdG5hbWVkX2Rpc3RyaWJ1dGUobmV0LCBcdTAwMjZoZWFkLCBkbm9kZSwgXHUwMDI2bnQtXHUwMDNlY2x1c3Rlcl9zY29wZSwgc2Vxbm8pO1xuK1x0LyogdGlwY19uZXRfZmluYWxpemVfd29yaygpIGhhcyBub3QgZmluaXNoZWQgaW5zZXJ0aW5nIHNlbGYgYWRkcmVzcyB0b1xuK1x0ICogbmFtZSB0YWJsZSB5ZXQuXG4rXHQgKi9cbitcdGlmICh1bmxpa2VseShsaXN0X2VtcHR5KFx1MDAyNm50LVx1MDAzZWNsdXN0ZXJfc2NvcGUpKSkge1xuK1x0XHRyZWFkX3VubG9ja19iaChcdTAwMjZudC1cdTAwM2VjbHVzdGVyX3Njb3BlX2xvY2spO1xuK1x0XHRyZXR1cm4gMTtcbitcdH1cbitcbitcdGlmIChuYW1lZF9kaXN0cmlidXRlKG5ldCwgXHUwMDI2aGVhZCwgZG5vZGUsIFx1MDAyNm50LVx1MDAzZWNsdXN0ZXJfc2NvcGUsIHNlcW5vKSkge1xuK1x0XHRyZWFkX3VubG9ja19iaChcdTAwMjZudC1cdTAwM2VjbHVzdGVyX3Njb3BlX2xvY2spO1xuK1x0XHRyZXR1cm4gLUVOT0JVRlM7XG4rXHR9XG4rXG4gXHR0aXBjX25vZGVfeG1pdChuZXQsIFx1MDAyNmhlYWQsIGRub2RlLCAwKTtcbiBcdHJlYWRfdW5sb2NrX2JoKFx1MDAyNm50LVx1MDAzZWNsdXN0ZXJfc2NvcGVfbG9jayk7XG4rXHRyZXR1cm4gMDtcbit9XG4rXG4raW50IHRpcGNfbmFtZWRfZGlzdF9jbHVzdGVyX3Njb3BlKHN0cnVjdCBuZXQgKm5ldCwgdTMyIGRub2RlKVxuK3tcbitcdHN0cnVjdCBuYW1lX3RhYmxlICpudCA9IHRpcGNfbmFtZV90YWJsZShuZXQpO1xuK1x0c3RydWN0IHRpcGNfbmV0ICp0biA9IHRpcGNfbmV0KG5ldCk7XG4rXHRzdHJ1Y3Qgc2tfYnVmZl9oZWFkIGhlYWQ7XG4rXHR1MTYgc2Vxbm87XG4rXG4rXHRfX3NrYl9xdWV1ZV9oZWFkX2luaXQoXHUwMDI2aGVhZCk7XG4rXHR3YWl0X3Zhcl9ldmVudChcdTAwMjZ0bi1cdTAwM2VmaW5hbGl6ZWQsIGF0b21pY19yZWFkKFx1MDAyNnRuLVx1MDAzZWZpbmFsaXplZCkpO1xuK1x0c3Bpbl9sb2NrX2JoKFx1MDAyNnRuLVx1MDAzZW5hbWV0YmxfbG9jayk7XG4rXHRzZXFubyA9IG50LVx1MDAzZXNuZF9ueHQ7XG4rXHRzcGluX3VubG9ja19iaChcdTAwMjZ0bi1cdTAwM2VuYW1ldGJsX2xvY2spO1xuK1xuK1x0cmVhZF9sb2NrX2JoKFx1MDAyNm50LVx1MDAzZWNsdXN0ZXJfc2NvcGVfbG9jayk7XG4rXHRpZiAodW5saWtlbHkobGlzdF9lbXB0eShcdTAwMjZudC1cdTAwM2VjbHVzdGVyX3Njb3BlKSkpIHtcbitcdFx0LyogZmluYWxpemUgaXMgZG9uZSBidXQgbm90aGluZyB3YXMgcHVibGlzaGVkIChwdWJsaXNoXG4rXHRcdCAqIGZhaWxlZCk6IGEgcGVybWFuZW50IHN0YXRlLCBub3RoaW5nIHRvIHN5bmNocm9uaXplLlxuK1x0XHQgKi9cbitcdFx0cmVhZF91bmxvY2tfYmgoXHUwMDI2bnQtXHUwMDNlY2x1c3Rlcl9zY29wZV9sb2NrKTtcbitcdFx0cmV0dXJuIDA7XG4rXHR9XG4rXHRpZiAobmFtZWRfZGlzdHJpYnV0ZShuZXQsIFx1MDAyNmhlYWQsIGRub2RlLCBcdTAwMjZudC1cdTAwM2VjbHVzdGVyX3Njb3BlLCBzZXFubykpIHtcbitcdFx0cmVhZF91bmxvY2tfYmgoXHUwMDI2bnQtXHUwMDNlY2x1c3Rlcl9zY29wZV9sb2NrKTtcbitcdFx0cmV0dXJuIC1FTk9CVUZTO1xuK1x0fVxuK1x0dGlwY19ub2RlX3htaXQobmV0LCBcdTAwMjZoZWFkLCBkbm9kZSwgMCk7XG4rXHRyZWFkX3VubG9ja19iaChcdTAwMjZudC1cdTAwM2VjbHVzdGVyX3Njb3BlX2xvY2spO1xuK1xuK1x0cmV0dXJuIDA7XG4gfVxuIFxuIC8qKlxuZGlmZiAtLWdpdCBhL25ldC90aXBjL25hbWVfZGlzdHIuaCBiL25ldC90aXBjL25hbWVfZGlzdHIuaFxuaW5kZXggYzY3N2Y2ZjA4MmRmYjcuLmNhZGY0ZThjM2U2NmMyIDEwMDY0NFxuLS0tIGEvbmV0L3RpcGMvbmFtZV9kaXN0ci5oXG4rKysgYi9uZXQvdGlwYy9uYW1lX2Rpc3RyLmhcbkBAIC02OSw3ICs2OSw4IEBAIHN0cnVjdCBkaXN0cl9pdGVtIHtcbiBcbiBzdHJ1Y3Qgc2tfYnVmZiAqdGlwY19uYW1lZF9wdWJsaXNoKHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0IHB1YmxpY2F0aW9uICpwdWJsKTtcbiBzdHJ1Y3Qgc2tfYnVmZiAqdGlwY19uYW1lZF93aXRoZHJhdyhzdHJ1Y3QgbmV0ICpuZXQsIHN0cnVjdCBwdWJsaWNhdGlvbiAqcHVibCk7XG4tdm9pZCB0aXBjX25hbWVkX25vZGVfdXAoc3RydWN0IG5ldCAqbmV0LCB1MzIgZG5vZGUsIHUxNiBjYXBhYmlsaXRpZXMpO1xuK2ludCB0aXBjX25hbWVkX25vZGVfdXAoc3RydWN0IG5ldCAqbmV0LCB1MzIgZG5vZGUsIHUxNiBjYXBhYmlsaXRpZXMpO1xuK2ludCB0aXBjX25hbWVkX2Rpc3RfY2x1c3Rlcl9zY29wZShzdHJ1Y3QgbmV0ICpuZXQsIHUzMiBkbm9kZSk7XG4gdm9pZCB0aXBjX25hbWVkX3JjdihzdHJ1Y3QgbmV0ICpuZXQsIHN0cnVjdCBza19idWZmX2hlYWQgKm5hbWVkcSxcbiBcdFx0ICAgIHUxNiAqcmN2X254dCwgYm9vbCAqb3Blbik7XG4gdm9pZCB0aXBjX25hbWVkX3JlaW5pdChzdHJ1Y3QgbmV0ICpuZXQpO1xuZGlmZiAtLWdpdCBhL25ldC90aXBjL25ldC5jIGIvbmV0L3RpcGMvbmV0LmNcbmluZGV4IDdlNjVkMGIwYzRhOGQxLi4yYWE4ODEyYzU1MWFkZCAxMDA2NDRcbi0tLSBhL25ldC90aXBjL25ldC5jXG4rKysgYi9uZXQvdGlwYy9uZXQuY1xuQEAgLTEzOCw3ICsxMzgsMTAgQEAgc3RhdGljIHZvaWQgdGlwY19uZXRfZmluYWxpemUoc3RydWN0IG5ldCAqbmV0LCB1MzIgYWRkcilcbiBcdHRpcGNfbmFtZWRfcmVpbml0KG5ldCk7XG4gXHR0aXBjX3NrX3JlaW5pdChuZXQpO1xuIFx0dGlwY19tb25fcmVpbml0X3NlbGYobmV0KTtcbi1cdHRpcGNfbmFtZXRibF9wdWJsaXNoKG5ldCwgXHUwMDI2dWEsIFx1MDAyNnNrLCBhZGRyKTtcbitcdGlmICghdGlwY19uYW1ldGJsX3B1Ymxpc2gobmV0LCBcdTAwMjZ1YSwgXHUwMDI2c2ssIGFkZHIpKVxuK1x0XHRwcl93YXJuKFwiRmFpbGVkIHRvIHB1Ymxpc2ggb3duIG5vZGUgc3RhdGVcXG5cIik7XG4rXHRhdG9taWNfaW5jKFx1MDAyNnRuLVx1MDAzZWZpbmFsaXplZCk7XG4rXHR3YWtlX3VwX3ZhcihcdTAwMjZ0bi1cdTAwM2VmaW5hbGl6ZWQpO1xuIH1cbiBcbiB2b2lkIHRpcGNfbmV0X2ZpbmFsaXplX3dvcmsoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKVxuZGlmZiAtLWdpdCBhL25ldC90aXBjL25vZGUuYyBiL25ldC90aXBjL25vZGUuY1xuaW5kZXggOTdhYTk3MGEwZDgzY2EuLjQyOGM0ZWFjZDAyZjFmIDEwMDY0NFxuLS0tIGEvbmV0L3RpcGMvbm9kZS5jXG4rKysgYi9uZXQvdGlwYy9ub2RlLmNcbkBAIC0xNDUsNiArMTQ1LDggQEAgc3RydWN0IHRpcGNfbm9kZSB7XG4gI2lmZGVmIENPTkZJR19USVBDX0NSWVBUT1xuIFx0c3RydWN0IHRpcGNfY3J5cHRvICpjcnlwdG9fcng7XG4gI2VuZGlmXG4rXHQvKiBXb3JrIGl0ZW0gZm9yIGJ1bGsgZGlzdHJpYnV0aW9uIG9mIGNsdXN0ZXIgc2NvcGUgcHVibGljYXRpb25zICovXG4rXHRzdHJ1Y3Qgd29ya19zdHJ1Y3Qgd29yaztcbiB9O1xuIFxuIC8qIE5vZGUgRlNNIHN0YXRlcyBhbmQgZXZlbnRzOlxuQEAgLTMwMyw2ICszMDUsNyBAQCBzdGF0aWMgdm9pZCB0aXBjX25vZGVfZnJlZShzdHJ1Y3QgcmN1X2hlYWQgKnJwKVxuICNpZmRlZiBDT05GSUdfVElQQ19DUllQVE9cbiBcdHRpcGNfY3J5cHRvX3N0b3AoXHUwMDI2bi1cdTAwM2VjcnlwdG9fcngpO1xuICNlbmRpZlxuK1x0Y2FuY2VsX3dvcmtfc3luYyhcdTAwMjZuLVx1MDAzZXdvcmspO1xuIFx0a2ZyZWUobik7XG4gfVxuIFxuQEAgLTM5Myw2ICszOTYsMTkgQEAgc3RhdGljIHZvaWQgdGlwY19ub2RlX3dyaXRlX3VubG9ja19mYXN0KHN0cnVjdCB0aXBjX25vZGUgKm4pXG4gXHR3cml0ZV91bmxvY2tfYmgoXHUwMDI2bi1cdTAwM2Vsb2NrKTtcbiB9XG4gXG4rc3RhdGljIHZvaWQgdGlwY19ub2RlX2Rpc3RfYnVsayhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspXG4re1xuK1x0c3RydWN0IHRpcGNfbm9kZSAqbm9kZSA9IGNvbnRhaW5lcl9vZih3b3JrLCBzdHJ1Y3QgdGlwY19ub2RlLCB3b3JrKTtcbitcbitcdGlmICh0aXBjX25hbWVkX2Rpc3RfY2x1c3Rlcl9zY29wZShub2RlLVx1MDAzZW5ldCwgbm9kZS1cdTAwM2VhZGRyKSBcdTAwM2MgMCkge1xuK1x0XHR1MzIgYmVhcmVyX2lkID0gbm9kZS1cdTAwM2VsaW5rX2lkIFx1MDAyNiAweGZmZmY7XG4rXG4rXHRcdHRpcGNfbm9kZV9saW5rX2Rvd24obm9kZSwgYmVhcmVyX2lkLCBmYWxzZSk7XG4rXHR9XG4rXG4rXHR0aXBjX25vZGVfcHV0KG5vZGUpO1xuK31cbitcbiBzdGF0aWMgdm9pZCB0aXBjX25vZGVfd3JpdGVfdW5sb2NrKHN0cnVjdCB0aXBjX25vZGUgKm4pXG4gXHRfX3JlbGVhc2VzKG4tXHUwMDNlbG9jaylcbiB7XG5AQCAtNDI0LDggKzQ0MCwyMiBAQCBzdGF0aWMgdm9pZCB0aXBjX25vZGVfd3JpdGVfdW5sb2NrKHN0cnVjdCB0aXBjX25vZGUgKm4pXG4gXHRpZiAoZmxhZ3MgXHUwMDI2IFRJUENfTk9USUZZX05PREVfRE9XTilcbiBcdFx0dGlwY19wdWJsX25vdGlmeShuZXQsIHB1YmxfbGlzdCwgbm9kZSwgbi1cdTAwM2VjYXBhYmlsaXRpZXMpO1xuIFxuLVx0aWYgKGZsYWdzIFx1MDAyNiBUSVBDX05PVElGWV9OT0RFX1VQKVxuLVx0XHR0aXBjX25hbWVkX25vZGVfdXAobmV0LCBub2RlLCBuLVx1MDAzZWNhcGFiaWxpdGllcyk7XG4rXHRpZiAoZmxhZ3MgXHUwMDI2IFRJUENfTk9USUZZX05PREVfVVApIHtcbitcdFx0aW50IHJjID0gMDtcbitcbitcdFx0cmMgPSB0aXBjX25hbWVkX25vZGVfdXAobmV0LCBub2RlLCBuLVx1MDAzZWNhcGFiaWxpdGllcyk7XG4rXHRcdC8qIERlZmVyIGJ1bGsgZGlzdHJpYnV0aW9uIHRvIHdvcmsgcXVldWUgKi9cbitcdFx0aWYgKHJjIFx1MDAzZSAwKSB7XG4rXHRcdFx0dGlwY19ub2RlX2dldChuKTtcbitcdFx0XHRpZiAoIXNjaGVkdWxlX3dvcmsoXHUwMDI2bi1cdTAwM2V3b3JrKSlcbitcdFx0XHRcdHRpcGNfbm9kZV9wdXQobik7XG4rXHRcdH0gZWxzZSBpZiAocmMgXHUwMDNjIDApIHtcbitcdFx0XHQvKiBCcmluZyB0aGUgbGluayBkb3duIHRvIHN0YXJ0IG92ZXIgYnVsayBkaXN0cmlidXRpb25cbitcdFx0XHQgKiB3aGVuIHRoZSBsaW5rIGlzIHVwIGFnYWluLlxuK1x0XHRcdCAqL1xuK1x0XHRcdHRpcGNfbm9kZV9saW5rX2Rvd24obiwgYmVhcmVyX2lkLCBmYWxzZSk7XG4rXHRcdH1cbitcdH1cbiBcbiBcdGlmIChmbGFncyBcdTAwMjYgVElQQ19OT1RJRllfTElOS19VUCkge1xuIFx0XHR0aXBjX21vbl9wZWVyX3VwKG5ldCwgbm9kZSwgYmVhcmVyX2lkKTtcbkBAIC01NjQsNiArNTk0LDcgQEAgc3RydWN0IHRpcGNfbm9kZSAqdGlwY19ub2RlX2NyZWF0ZShzdHJ1Y3QgbmV0ICpuZXQsIHUzMiBhZGRyLCB1OCAqcGVlcl9pZCxcbiBcdElOSVRfTElTVF9IRUFEKFx1MDAyNm4tXHUwMDNlbGlzdCk7XG4gXHRJTklUX0xJU1RfSEVBRChcdTAwMjZuLVx1MDAzZXB1YmxfbGlzdCk7XG4gXHRJTklUX0xJU1RfSEVBRChcdTAwMjZuLVx1MDAzZWNvbm5fc2tzKTtcbitcdElOSVRfV09SSyhcdTAwMjZuLVx1MDAzZXdvcmssIHRpcGNfbm9kZV9kaXN0X2J1bGspO1xuIFx0c2tiX3F1ZXVlX2hlYWRfaW5pdChcdTAwMjZuLVx1MDAzZWJjX2VudHJ5Lm5hbWVkcSk7XG4gXHRza2JfcXVldWVfaGVhZF9pbml0KFx1MDAyNm4tXHUwMDNlYmNfZW50cnkuaW5wdXRxMSk7XG4gXHRfX3NrYl9xdWV1ZV9oZWFkX2luaXQoXHUwMDI2bi1cdTAwM2ViY19lbnRyeS5hcnJ2cSk7XG4iLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xN1QyMzoxMjo1Mi40Nzc4NDY3MjFaIiwiU2VxIjozLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0MzczNDQ2OTE2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyBhIFRJUEMgUGF0Y2gqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIHBhdGNoIGZvciB0aGUgVElQQyBzdWJzeXN0ZW0gaW4gdGhlIExpbnV4IGtlcm5lbC4gU2VlbXMgbGlrZSBhIHNvbGlkIGZ1bmN0aW9uYWwgY2hhbmdlOyBpdCdzIGdldHRpbmcgZGVlcCBpbnRvIHRoZSBjb3JlIGxvZ2ljLiBTcGVjaWZpY2FsbHksIHRoZXkndmUgaW50cm9kdWNlZCBhIGBmaW5hbGl6ZWRgIGF0b21pYyB2YXJpYWJsZSBpbiBgc3RydWN0IHRpcGNfbmV0YCBhbmQgYSBgd29ya2AgaXRlbSBpbiBgc3RydWN0IHRpcGNfbm9kZWAuIEludGVyZXN0aW5nLi4udGhpcyBwb2ludHMgdG8gaGFuZGxpbmcgc29tZSBzb3J0IG9mIGJ1bGsgcHVibGljYXRpb24gZGlzdHJpYnV0aW9uIGF0IHRoZSBjbHVzdGVyIGxldmVsLiBUaGUgbW9kaWZpY2F0aW9ucyB0byBgdGlwY19uYW1lZF9ub2RlX3VwYCB0byByZXR1cm4gYW4gaW50ZWdlciBpbnN0ZWFkIG9mIHZvaWQsIGFuZCB0aGUgYWRkaXRpb24gb2YgYHRpcGNfbmFtZWRfZGlzdF9jbHVzdGVyX3Njb3BlYCBmdXJ0aGVyIGNvbmZpcm1zIG15IHN1c3BpY2lvbiB0aGF0IHRoZXkncmUgYWRkcmVzc2luZyBhIHJhY2UgY29uZGl0aW9uIG9yIHN5bmNocm9uaXphdGlvbiBpc3N1ZSwgcHJvYmFibHkgZHVyaW5nIG5vZGUgaW5pdGlhbGl6YXRpb24gYW5kIGluaXRpYWwgcHVibGljYXRpb24gZGlzdHJpYnV0aW9uLlxuXG5UaGUgcGF0Y2ggYWxzbyBoYXMgY2hhbmdlcyBpbiBgdGlwY19ub2RlX3dyaXRlX3VubG9ja2AgdG8gaGFuZGxlIHRoZSByZXR1cm4gdmFsdWUgb2YgYHRpcGNfbmFtZWRfbm9kZV91cGAgYW5kIHNjaGVkdWxlIHRoYXQgd29yayBpdGVtLiBTbWFydDsgdGhhdCBsaWtlbHkgdGllcyB0aGUgdW5sb2NraW5nIHRvIGEgZGVmZXJyZWQgcHJvY2Vzc2luZyBzdGVwLCB3aGljaCBpcyBhIGNvbW1vbiB3YXkgdG8gYXZvaWQgY29udGVudGlvbi5cblxuQmVmb3JlIEkgZGlnIGludG8gdGhlIHNwZWNpZmljcyBvZiB0aGUgY29kZSwgSSBzaG91bGQgcHJvYmFibHkgY2hlY2sgdGhlIHJlbGV2YW50IEtjb25maWcgb3B0aW9ucy4gTGV0J3Mgc2VlLi4uSSB0aGluayBgZGVmYXVsdF9hcGk6Z3JlcHBlcmAgc2hvdWxkIGdpdmUgbWUgYSBxdWljayByb3V0ZSB0byB0aGUgVElQQyBLY29uZmlnLiBHb3R0YSBnZXQgdGhlIGNvbmZpZ3VyYXRpb24gY29udGV4dCByaWdodC5cblxuXG4iLCJJbnB1dFRva2VucyI6NTAwNiwiT3V0cHV0VG9rZW5zIjoxNywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjIwMSwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE3VDIzOjEyOjU2Ljg1MTI5NTcyN1oiLCJTZXEiOjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1MDkxNzA5NzcxLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNvbmZpZyBUSVBDXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIm5ldC90aXBjL0tjb25maWctNS1cXG5uZXQvdGlwYy9LY29uZmlnOjY6bWVudWNvbmZpZyBUSVBDXFxubmV0L3RpcGMvS2NvbmZpZy03LVxcdHRyaXN0YXRlIFxcXCJUaGUgVElQQyBQcm90b2NvbFxcXCJcXG4tLVxcbm5ldC90aXBjL0tjb25maWctMjMtXFxubmV0L3RpcGMvS2NvbmZpZzoyNDpjb25maWcgVElQQ19NRURJQV9JQlxcbm5ldC90aXBjL0tjb25maWctMjUtXFx0Ym9vbCBcXFwiSW5maW5pQmFuZCBtZWRpYSB0eXBlIHN1cHBvcnRcXFwiXFxuLS1cXG5uZXQvdGlwYy9LY29uZmlnLTI5LVxcdCAgSVAtb3Zlci1JbmZpbmlCYW5kIGRldmljZXMuXFxubmV0L3RpcGMvS2NvbmZpZzozMDpjb25maWcgVElQQ19NRURJQV9VRFBcXG5uZXQvdGlwYy9LY29uZmlnLTMxLVxcdGJvb2wgXFxcIklQL1VEUCBtZWRpYSB0eXBlIHN1cHBvcnRcXFwiXFxuLS1cXG5uZXQvdGlwYy9LY29uZmlnLTM3LVxcbm5ldC90aXBjL0tjb25maWc6Mzg6Y29uZmlnIFRJUENfQ1JZUFRPXFxubmV0L3RpcGMvS2NvbmZpZy0zOS1cXHRib29sIFxcXCJUSVBDIGVuY3J5cHRpb24gc3VwcG9ydFxcXCJcXG4tLVxcbm5ldC90aXBjL0tjb25maWctNTItXFxubmV0L3RpcGMvS2NvbmZpZzo1Mzpjb25maWcgVElQQ19ESUFHXFxubmV0L3RpcGMvS2NvbmZpZy01NC1cXHR0cmlzdGF0ZSBcXFwiVElQQzogc29ja2V0IG1vbml0b3JpbmcgaW50ZXJmYWNlXFxcIlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xN1QyMzoxMzowMS45NDMwMTEwMThaIiwiU2VxIjo1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo3MjY4MDE3NTAzLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkZ1enppbmcgU3RyYXRlZ3kgZm9yIFRJUEMgQ29yZSBGdW5jdGlvbmFsaXR5KipcblxuT2theSwgaGVyZSdzIHdoYXQgSSdtIHRoaW5raW5nLiBUaGlzIHBhdGNoIGlzIGRlZmluaXRlbHkgY2VudGVyZWQgYXJvdW5kIHRoZSBgVElQQ2AgY29uZmlndXJhdGlvbiDigJMgdGhhdCdzIHRoZSBtYWluIGRyaXZlci4gTG9va2luZyBhdCB0aGUgZmlsZSBtb2RpZmljYXRpb25zLCBpdCdzIGhpdHRpbmcgdGhlIGNvcmUgb2YgdGhlIFRJUEMgaW1wbGVtZW50YXRpb246IGBjb3JlLmNgLCBgbmFtZV9kaXN0ci5jYCwgYG5ldC5jYCwgYW5kIGBub2RlLmNgLiBUaGlzIHN1Z2dlc3RzIGl0J3MgZGlnZ2luZyBpbnRvIGhvdyBUSVBDIG5vZGVzIGFyZSBpbml0aWFsaXplZCwgaG93IG5hbWVzIGFyZSBkaXN0cmlidXRlZCBhY3Jvc3MgdGhlIG5ldHdvcmssIGFuZCB0aGUgb3ZlcmFsbCBuZXR3b3JrIG1hbmFnZW1lbnQuXG5cblRoZSBsaXN0ZWQgZnVuY3Rpb24gY2hhbmdlcyBhcmUgdGhlIGtleSBoZXJlOiBgdGlwY19pbml0X25ldGAsIGBuYW1lZF9kaXN0cmlidXRlYCwgYHRpcGNfbmFtZWRfbm9kZV91cGAsIGB0aXBjX25hbWVkX2Rpc3RfY2x1c3Rlcl9zY29wZWAsIGB0aXBjX25ldF9maW5hbGl6ZWAsIGB0aXBjX25vZGVfZnJlZWAsIGB0aXBjX25vZGVfZGlzdF9idWxrYCwgYHRpcGNfbm9kZV93cml0ZV91bmxvY2tgLCBhbmQgYHRpcGNfbm9kZV9jcmVhdGVgLiBTcGVjaWZpY2FsbHksIGB0aXBjX25hbWVkX25vZGVfdXBgLCBgdGlwY19uYW1lZF9kaXN0X2NsdXN0ZXJfc2NvcGVgLCBgdGlwY19ub2RlX2Rpc3RfYnVsa2AsIGFuZCBgbmFtZWRfZGlzdHJpYnV0ZWAganVtcCBvdXQgYXQgbWUgYXMgcG90ZW50aWFsIHRyb3VibGUgc3BvdHMsIHNvIEknbSBmb2N1c2luZyBvbiB0aG9zZS5cblxuTm93LCBqdXN0IHRvIGJlIHN1cmUsIEkgbmVlZCB0byBjb25maXJtIHRoYXQgYFRJUENgIGlzIHRoZSBvbmx5IGNvbmZpZyByZXF1aXJlZCB0byBoaXQgdGhpcyBjb2RlLiBZZXAsIGl0IHNlZW1zIHRoYXQgYFRJUENgIGFsb25lIGlzIHRoZSB0cmlnZ2VyLCBubyBvdGhlciBkZXBlbmRlbmNpZXMuIEFsc28sIHdpdGggVElQQyBiZWluZyBhIG5ldHdvcmsgcHJvdG9jb2wsIEknbSBjb25maWRlbnQgdGhhdCB0aGVzZSBmdW5jdGlvbnMgYXJlIHJlYWNoYWJsZSDigJMgbGlrZWx5IHRocm91Z2ggc29ja2V0IEFQSXMgYW5kIG5ldGxpbmsgaW50ZXJhY3Rpb25zLCB0aGUgc3RhbmRhcmQgd2F5IHRvIGludGVyYWN0IHdpdGggdGhlc2Ugc3Vic3lzdGVtcy4gVGhlIGNoYW5nZXMgYXJlIGluIGhvdyBub2RlcyBjb25uZWN0IGFuZCBuYW1lIGluZm9ybWF0aW9uIGlzIGRpc3NlbWluYXRlZCwgc28gdGhhdCBtYWtlcyBzZW5zZS5cblxuU28sIEknbSBnb2luZyB0byBzZXQgdXAgbXkgZnV6emluZyBzdHJhdGVneSBsaWtlIHRoaXM6XG5cbiogICBgV29ydGhGdXp6aW5nYDogYHRydWVgIOKAkyBiZWNhdXNlIHRoaXMgcGF0Y2ggdG91Y2hlcyBjb3JlIG5ldHdvcmsgbG9naWMgd2l0aCBmdW5jdGlvbnMgZm9yIGRpc3RyaWJ1dGluZyBuZXR3b3JrIGRhdGEgdGhhdCBhcmUgb2YgaW50ZXJlc3QgZm9yIGZ1enppbmcuXG4qICAgYEVuYWJsZUNvbmZpZ3NgOiBgW1wiVElQQ1wiXWAg4oCTIHRvIGFjdGl2YXRlIHRoZSBjb3JyZWN0IGNvZGUuXG4qICAgYEZvY3VzU3ltYm9sc2A6IGBbXCJ0aXBjX25hbWVkX25vZGVfdXBcIiwgXCJ0aXBjX25hbWVkX2Rpc3RfY2x1c3Rlcl9zY29wZVwiLCBcInRpcGNfbm9kZV9kaXN0X2J1bGtcIiwgXCJuYW1lZF9kaXN0cmlidXRlXCJdYCDigJMgdGhlIGZ1bmN0aW9ucyB0aGF0IHNlZW0gbW9zdCBsaWtlbHkgdG8gZXhwb3NlIHZ1bG5lcmFiaWxpdGllcy5cbiogICBgUmVhc29uaW5nYDogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIFRJUEMgcHJvdG9jb2wncyBub2RlIGluaXRpYWxpemF0aW9uIGFuZCBidWxrIHB1YmxpY2F0aW9uIGRpc3RyaWJ1dGlvbiBsb2dpYywgaW50cm9kdWNpbmcgYSBuZXcgd29yayBpdGVtIGFuZCBzeW5jaHJvbml6YXRpb24gbWVjaGFuaXNtLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIGNvcmUgVElQQyBsb2dpYyB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXCIg4oCTIHRoYXQgc3VtbWFyaXplcyB3aHkgdGhlc2UgZnVuY3Rpb25zIGFyZSBpbXBvcnRhbnQuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjU3ODksIk91dHB1dFRva2VucyI6MTIwLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NDAxLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE3VDIzOjEzOjA5LjIxMTAzMDg4MVoiLCJTZXEiOjYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InNldC1yZXN1bHRzIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTc4MDgzOTU2LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJUSVBDXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwidGlwY19uYW1lZF9ub2RlX3VwXCIsXG4gICAgXCJ0aXBjX25hbWVkX2Rpc3RfY2x1c3Rlcl9zY29wZVwiLFxuICAgIFwidGlwY19ub2RlX2Rpc3RfYnVsa1wiLFxuICAgIFwibmFtZWRfZGlzdHJpYnV0ZVwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBUSVBDIHByb3RvY29sJ3Mgbm9kZSBpbml0aWFsaXphdGlvbiBhbmQgYnVsayBwdWJsaWNhdGlvbiBkaXN0cmlidXRpb24gbG9naWMsIGludHJvZHVjaW5nIGEgbmV3IHdvcmsgaXRlbSBhbmQgc3luY2hyb25pemF0aW9uIG1lY2hhbmlzbS4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSBjb3JlIFRJUEMgbG9naWMgdGhhdCBzaG91bGQgYmUgZnV6emVkLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIlRJUENcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJ0aXBjX25hbWVkX25vZGVfdXBcIixcbiAgICBcInRpcGNfbmFtZWRfZGlzdF9jbHVzdGVyX3Njb3BlXCIsXG4gICAgXCJ0aXBjX25vZGVfZGlzdF9idWxrXCIsXG4gICAgXCJuYW1lZF9kaXN0cmlidXRlXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIFRJUEMgcHJvdG9jb2wncyBub2RlIGluaXRpYWxpemF0aW9uIGFuZCBidWxrIHB1YmxpY2F0aW9uIGRpc3RyaWJ1dGlvbiBsb2dpYywgaW50cm9kdWNpbmcgYSBuZXcgd29yayBpdGVtIGFuZCBzeW5jaHJvbml6YXRpb24gbWVjaGFuaXNtLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIGNvcmUgVElQQyBsb2dpYyB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0udG9rZW5zIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnVG9vbER1ciA9IHN0YXRzLnRvb2wuY291bnQgPiAwID8gKHN0YXRzLnRvb2wuZHVyYXRpb24gLyBzdGF0cy50b29sLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCgkJCWNvbnN0IGxsbVN1bWFyeUNlbGxzID0gW3N0YXRzLmxsbS5jb3VudCwgc3RhdHMubGxtLnRva2VucywgYXZnTGxtVG9rZW4sIHN0YXRzLmxsbS5kdXJhdGlvbiwgYXZnTGxtRHVyXTsKCQkJY29uc3QgdG9vbFN1bW1hcnlDZWxscyA9IFtzdGF0cy50b29sLmNvdW50LCBzdGF0cy50b29sLmR1cmF0aW9uLCBhdmdUb29sRHVyXTsKCgkJCWNvbnN0IGxsbVN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xsbV9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJbGxtU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IGxsbVRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJbGxtU3VtYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCWxsbVRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCWxsbVN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKGxsbVRyKTsKCgkJCWNvbnN0IHRvb2xTdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b29sX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQl0b29sU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IHRvb2xUciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCXRvb2xTdW1tYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCXRvb2xUci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQl0b29sU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQodG9vbFRyKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgZmlsdGVyZWRTdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gWyJsbG0iLCAidG9vbCJdLmluY2x1ZGVzKGQuVHlwZSkpOwoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdEdXJhdGlvbicpOwoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOyAKCgkJCWZpbHRlcmVkU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCQoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7CgkJCQlsZXQgdG9vbHRpcCA9IHMuTmFtZTsKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iICYmIHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCQkJCWRhdGEuYWRkUm93KFtgJHtzLlNlcX1gLCBkdXIsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUaW1lIENvbnN1bXB0aW9uIG9mIExMTS9Ub29sIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0vVG9vbCBTdGVwcycsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdTZWNvbmRzJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkdXJhdGlvbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgbGxtU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IGQuVHlwZSA9PT0gImxsbSIpOwoJCQlpZiAobGxtU3RlcHMubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdUb2tlbnMnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAnc3R5bGUnfSk7CQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOwkKCgkJCWNvbnN0IGFnZW50Q29sb3JzID0ge307CgkJCWNvbnN0IHBhbGV0dGUgPSBbJyM0Mjg1RjQnLCAnI0RCNDQzNycsICcjRjRCNDAwJywgJyMwRjlENTgnLCAnI0FCNDdCQycsICcjMDBBQ0MxJ107CgkJCWxldCBjb2xvcklkeCA9IDA7CgkJCWNvbnN0IGFnZW50TExNQ291bnRzID0ge307CgkJCWxsbVN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQlpZiAoIWFnZW50Q29sb3JzW3MuTmFtZV0pIHsKCQkJCQlhZ2VudENvbG9yc1tzLk5hbWVdID0gcGFsZXR0ZVtjb2xvcklkeCAlIHBhbGV0dGUubGVuZ3RoXTsKCQkJCQljb2xvcklkeCsrOwoJCQkJfQoKCQkJCWFnZW50TExNQ291bnRzW3MuTmFtZV0gPSAoYWdlbnRMTE1Db3VudHNbcy5OYW1lXSB8fCAwKSArIDE7CgkJCQljb25zdCBsYWJlbCA9IGAke3MuTmFtZX0tJHthZ2VudExMTUNvdW50c1tzLk5hbWVdfWA7CgkJCQljb25zdCB0b3RhbFRva2VucyA9IHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnM7CgkJCQljb25zdCBzdHlsZSA9IGBjb2xvcjogJHthZ2VudENvbG9yc1tzLk5hbWVdfWA7CgkJCQlsZXQgdG9vbHRpcCA9IGBUb3RhbCBUb2tlbnM6ICR7dG90YWxUb2tlbnN9XG4oSW46ICR7cy5JbnB1dFRva2Vuc30sIE91dDogJHtzLk91dHB1dFRva2Vuc30sIFRob3VnaHRzOiAke3MuT3V0cHV0VGhvdWdodHNUb2tlbnN9KWA7CgkJCQlpZiAocy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoKCQkJCWRhdGEuYWRkUm93KFtsYWJlbCwgdG90YWxUb2tlbnMsIHN0eWxlLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVG9rZW4gQ29uc3VtcHRpb24gYnkgTExNIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0gQ2FsbCBTZXF1ZW5jZScsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdDb25zdW1lZCBUb2tlbnMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rva2VuX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgkJbGV0IGFsbEV4cGFuZGVkID0gZmFsc2U7CgkJZnVuY3Rpb24gdG9nZ2xlQWxsRGV0YWlscygpIHsKCQkJYWxsRXhwYW5kZWQgPSAhYWxsRXhwYW5kZWQ7CgkJCWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2RldGFpbHMnKS5mb3JFYWNoKGQgPT4gewoJCQkJaWYgKGFsbEV4cGFuZGVkKSBkLnNldEF0dHJpYnV0ZSgnb3BlbicsICcnKTsKCQkJCWVsc2UgZC5yZW1vdmVBdHRyaWJ1dGUoJ29wZW4nKTsKCQkJfSk7CgkJfQoJPC9zY3JpcHQ+CgoKPC9ib2R5Pgo8L2h0bWw+Cg==" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflow5whq6[0].run-triage(0) Phase: Succeeded StartedAt: 2026-07-17 22:54:17 +0000 UTC FinishedAt: 2026-07-17 23:13:11 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "torvalds", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux", "commit_hash": "8d187d4b33c262c0f3e44842553521151d8629e8", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "TIPC" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "torvalds", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux", "commit_hash": "8d187d4b33c262c0f3e44842553521151d8629e8", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "TIPC" ], "series_id": "a24fe85a-ef5b-44c1-b49e-ca61c7b893a7" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [ "tipc_named_node_up", "tipc_named_dist_cluster_scope", "tipc_node_dist_bulk", "named_distribute" ], "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+CgkJCTx0ZD4yMDI2LzA3LzE3IDIzOjEyPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O1RJUEMmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDt0aXBjX25hbWVkX25vZGVfdXAmIzM0OywKICAgICYjMzQ7dGlwY19uYW1lZF9kaXN0X2NsdXN0ZXJfc2NvcGUmIzM0OywKICAgICYjMzQ7dGlwY19ub2RlX2Rpc3RfYnVsayYjMzQ7LAogICAgJiMzNDtuYW1lZF9kaXN0cmlidXRlJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBUSVBDIHByb3RvY29sJiMzOTtzIG5vZGUgaW5pdGlhbGl6YXRpb24gYW5kIGJ1bGsgcHVibGljYXRpb24gZGlzdHJpYnV0aW9uIGxvZ2ljLCBpbnRyb2R1Y2luZyBhIG5ldyB3b3JrIGl0ZW0gYW5kIHN5bmNocm9uaXphdGlvbiBtZWNoYW5pc20uIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgY29yZSBUSVBDIGxvZ2ljIHRoYXQgc2hvdWxkIGJlIGZ1enplZC4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNyAyMzoxMjwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IDA3YzFjYjc0NGNkNjljYjhmZGJkZDg4NzQyZWIwYTE4NWJiYWI0YTdcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgRnJpIEp1bCAxNyAyMzoxMjo0OSAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9uZXQvdGlwYy9jb3JlLmMgYi9uZXQvdGlwYy9jb3JlLmNcbmluZGV4IDQzNGU3MGVhYmUwODEyLi5jZTE2NDUwOWQ5ZTI3YSAxMDA2NDRcbi0tLSBhL25ldC90aXBjL2NvcmUuY1xuJiM0MzsmIzQzOyYjNDM7IGIvbmV0L3RpcGMvY29yZS5jXG5AQCAtNjAsNiAmIzQzOzYwLDcgQEAgc3RhdGljIGludCBfX25ldF9pbml0IHRpcGNfaW5pdF9uZXQoc3RydWN0IG5ldCAqbmV0KVxuIFx0dG4tXHUwMDNldHJpYWxfYWRkciA9IDA7XG4gXHR0bi1cdTAwM2VhZGRyX3RyaWFsX2VuZCA9IDA7XG4gXHR0bi1cdTAwM2VjYXBhYmlsaXRpZXMgPSBUSVBDX05PREVfQ0FQQUJJTElUSUVTO1xuJiM0MztcdGF0b21pY19zZXQoXHUwMDI2dG4tXHUwMDNlZmluYWxpemVkLCAwKTtcbiBcdElOSVRfV09SSyhcdTAwMjZ0bi1cdTAwM2V3b3JrLCB0aXBjX25ldF9maW5hbGl6ZV93b3JrKTtcbiBcdG1lbXNldCh0bi1cdTAwM2Vub2RlX2lkLCAwLCBzaXplb2YodG4tXHUwMDNlbm9kZV9pZCkpO1xuIFx0bWVtc2V0KHRuLVx1MDAzZW5vZGVfaWRfc3RyaW5nLCAwLCBzaXplb2YodG4tXHUwMDNlbm9kZV9pZF9zdHJpbmcpKTtcbmRpZmYgLS1naXQgYS9uZXQvdGlwYy9jb3JlLmggYi9uZXQvdGlwYy9jb3JlLmhcbmluZGV4IDljZTVmOWZmNmNjMDMxLi43Njc2ODg0NGM4MDgxNCAxMDA2NDRcbi0tLSBhL25ldC90aXBjL2NvcmUuaFxuJiM0MzsmIzQzOyYjNDM7IGIvbmV0L3RpcGMvY29yZS5oXG5AQCAtMTQ1LDYgJiM0MzsxNDUsOCBAQCBzdHJ1Y3QgdGlwY19uZXQge1xuIFx0c3RydWN0IHdvcmtfc3RydWN0IHdvcms7XG4gXHQvKiBUaGUgbnVtYmVycyBvZiB3b3JrIHF1ZXVlcyBpbiBzY2hlZHVsZSAqL1xuIFx0YXRvbWljX3Qgd3FfY291bnQ7XG4mIzQzO1x0LyogZmxhZyB0byBpbmRpY2F0ZSB3b3JrIGhhcyBmaW5pc2hlZCAqL1xuJiM0MztcdGF0b21pY190IGZpbmFsaXplZDtcbiB9O1xuIFxuIHN0YXRpYyBpbmxpbmUgc3RydWN0IHRpcGNfbmV0ICp0aXBjX25ldChzdHJ1Y3QgbmV0ICpuZXQpXG5kaWZmIC0tZ2l0IGEvbmV0L3RpcGMvbmFtZV9kaXN0ci5jIGIvbmV0L3RpcGMvbmFtZV9kaXN0ci5jXG5pbmRleCAxOTBiNDljNWNiYzNlYy4uNWIwZmIwOTIyNmZjNjggMTAwNjQ0XG4tLS0gYS9uZXQvdGlwYy9uYW1lX2Rpc3RyLmNcbiYjNDM7JiM0MzsmIzQzOyBiL25ldC90aXBjL25hbWVfZGlzdHIuY1xuQEAgLTE0Nyw3ICYjNDM7MTQ3LDcgQEAgc3RydWN0IHNrX2J1ZmYgKnRpcGNfbmFtZWRfd2l0aGRyYXcoc3RydWN0IG5ldCAqbmV0LCBzdHJ1Y3QgcHVibGljYXRpb24gKnApXG4gICogQHBsczogbGlua2VkIGxpc3Qgb2YgcHVibGljYXRpb24gaXRlbXMgdG8gYmUgcGFja2VkIGludG8gYnVmZmVyIGNoYWluXG4gICogQHNlcW5vOiBzZXF1ZW5jZSBudW1iZXIgZm9yIHRoaXMgbWVzc2FnZVxuICAqL1xuLXN0YXRpYyB2b2lkIG5hbWVkX2Rpc3RyaWJ1dGUoc3RydWN0IG5ldCAqbmV0LCBzdHJ1Y3Qgc2tfYnVmZl9oZWFkICpsaXN0LFxuJiM0MztzdGF0aWMgaW50IG5hbWVkX2Rpc3RyaWJ1dGUoc3RydWN0IG5ldCAqbmV0LCBzdHJ1Y3Qgc2tfYnVmZl9oZWFkICpsaXN0LFxuIFx0XHRcdCAgICAgdTMyIGRub2RlLCBzdHJ1Y3QgbGlzdF9oZWFkICpwbHMsIHUxNiBzZXFubylcbiB7XG4gXHRzdHJ1Y3QgcHVibGljYXRpb24gKnB1Ymw7XG5AQCAtMTY0LDggJiM0MzsxNjQsOSBAQCBzdGF0aWMgdm9pZCBuYW1lZF9kaXN0cmlidXRlKHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0IHNrX2J1ZmZfaGVhZCAqbGlzdCxcbiBcdFx0XHRza2IgPSBuYW1lZF9wcmVwYXJlX2J1ZihuZXQsIFBVQkxJQ0FUSU9OLCBtc2dfcmVtLFxuIFx0XHRcdFx0XHRcdGRub2RlKTtcbiBcdFx0XHRpZiAoIXNrYikge1xuJiM0MztcdFx0XHRcdF9fc2tiX3F1ZXVlX3B1cmdlKGxpc3QpO1xuIFx0XHRcdFx0cHJfd2FybihcJiMzNDtCdWxrIHB1YmxpY2F0aW9uIGZhaWx1cmVcXG5cJiMzNDspO1xuLVx0XHRcdFx0cmV0dXJuO1xuJiM0MztcdFx0XHRcdHJldHVybiAxO1xuIFx0XHRcdH1cbiBcdFx0XHRoZHIgPSBidWZfbXNnKHNrYik7XG4gXHRcdFx0bXNnX3NldF9iY19hY2tfaW52YWxpZChoZHIsIHRydWUpO1xuQEAgLTE5Miw5ICYjNDM7MTkzLDE1IEBAIHN0YXRpYyB2b2lkIG5hbWVkX2Rpc3RyaWJ1dGUoc3RydWN0IG5ldCAqbmV0LCBzdHJ1Y3Qgc2tfYnVmZl9oZWFkICpsaXN0LFxuIFx0XHRza2JfdHJpbShza2IsIElOVF9IX1NJWkUgJiM0MzsgKG1zZ19kc3ogLSBtc2dfcmVtKSk7XG4gXHRcdF9fc2tiX3F1ZXVlX3RhaWwobGlzdCwgc2tiKTtcbiBcdH1cbiYjNDM7XHRpZiAoc2tiX3F1ZXVlX2VtcHR5KGxpc3QpKSB7XG4mIzQzO1x0XHRwcl93YXJuKFwmIzM0O0J1bGsgcHVibGljYXRpb24gbGlzdCBlbXB0eSwgbm90aGluZyB0byBkaXN0cmlidXRlXFxuXCYjMzQ7KTtcbiYjNDM7XHRcdHJldHVybiAxO1xuJiM0MztcdH1cbiBcdGhkciA9IGJ1Zl9tc2coc2tiX3BlZWtfdGFpbChsaXN0KSk7XG4gXHRtc2dfc2V0X2xhc3RfYnVsayhoZHIpO1xuIFx0bXNnX3NldF9uYW1lZF9zZXFubyhoZHIsIHNlcW5vKTtcbiYjNDM7XG4mIzQzO1x0cmV0dXJuIDA7XG4gfVxuIFxuIC8qKlxuQEAgLTIwMyw3ICYjNDM7MjEwLDcgQEAgc3RhdGljIHZvaWQgbmFtZWRfZGlzdHJpYnV0ZShzdHJ1Y3QgbmV0ICpuZXQsIHN0cnVjdCBza19idWZmX2hlYWQgKmxpc3QsXG4gICogQGRub2RlOiBkZXN0aW5hdGlvbiBub2RlXG4gICogQGNhcGFiaWxpdGllczogcGVlciBub2RlJiMzOTtzIGNhcGFiaWxpdGllc1xuICAqL1xuLXZvaWQgdGlwY19uYW1lZF9ub2RlX3VwKHN0cnVjdCBuZXQgKm5ldCwgdTMyIGRub2RlLCB1MTYgY2FwYWJpbGl0aWVzKVxuJiM0MztpbnQgdGlwY19uYW1lZF9ub2RlX3VwKHN0cnVjdCBuZXQgKm5ldCwgdTMyIGRub2RlLCB1MTYgY2FwYWJpbGl0aWVzKVxuIHtcbiBcdHN0cnVjdCBuYW1lX3RhYmxlICpudCA9IHRpcGNfbmFtZV90YWJsZShuZXQpO1xuIFx0c3RydWN0IHRpcGNfbmV0ICp0biA9IHRpcGNfbmV0KG5ldCk7XG5AQCAtMjE4LDkgJiM0MzsyMjUsNTMgQEAgdm9pZCB0aXBjX25hbWVkX25vZGVfdXAoc3RydWN0IG5ldCAqbmV0LCB1MzIgZG5vZGUsIHUxNiBjYXBhYmlsaXRpZXMpXG4gXHRzcGluX3VubG9ja19iaChcdTAwMjZ0bi1cdTAwM2VuYW1ldGJsX2xvY2spO1xuIFxuIFx0cmVhZF9sb2NrX2JoKFx1MDAyNm50LVx1MDAzZWNsdXN0ZXJfc2NvcGVfbG9jayk7XG4tXHRuYW1lZF9kaXN0cmlidXRlKG5ldCwgXHUwMDI2aGVhZCwgZG5vZGUsIFx1MDAyNm50LVx1MDAzZWNsdXN0ZXJfc2NvcGUsIHNlcW5vKTtcbiYjNDM7XHQvKiB0aXBjX25ldF9maW5hbGl6ZV93b3JrKCkgaGFzIG5vdCBmaW5pc2hlZCBpbnNlcnRpbmcgc2VsZiBhZGRyZXNzIHRvXG4mIzQzO1x0ICogbmFtZSB0YWJsZSB5ZXQuXG4mIzQzO1x0ICovXG4mIzQzO1x0aWYgKHVubGlrZWx5KGxpc3RfZW1wdHkoXHUwMDI2bnQtXHUwMDNlY2x1c3Rlcl9zY29wZSkpKSB7XG4mIzQzO1x0XHRyZWFkX3VubG9ja19iaChcdTAwMjZudC1cdTAwM2VjbHVzdGVyX3Njb3BlX2xvY2spO1xuJiM0MztcdFx0cmV0dXJuIDE7XG4mIzQzO1x0fVxuJiM0MztcbiYjNDM7XHRpZiAobmFtZWRfZGlzdHJpYnV0ZShuZXQsIFx1MDAyNmhlYWQsIGRub2RlLCBcdTAwMjZudC1cdTAwM2VjbHVzdGVyX3Njb3BlLCBzZXFubykpIHtcbiYjNDM7XHRcdHJlYWRfdW5sb2NrX2JoKFx1MDAyNm50LVx1MDAzZWNsdXN0ZXJfc2NvcGVfbG9jayk7XG4mIzQzO1x0XHRyZXR1cm4gLUVOT0JVRlM7XG4mIzQzO1x0fVxuJiM0MztcbiBcdHRpcGNfbm9kZV94bWl0KG5ldCwgXHUwMDI2aGVhZCwgZG5vZGUsIDApO1xuIFx0cmVhZF91bmxvY2tfYmgoXHUwMDI2bnQtXHUwMDNlY2x1c3Rlcl9zY29wZV9sb2NrKTtcbiYjNDM7XHRyZXR1cm4gMDtcbiYjNDM7fVxuJiM0MztcbiYjNDM7aW50IHRpcGNfbmFtZWRfZGlzdF9jbHVzdGVyX3Njb3BlKHN0cnVjdCBuZXQgKm5ldCwgdTMyIGRub2RlKVxuJiM0Mzt7XG4mIzQzO1x0c3RydWN0IG5hbWVfdGFibGUgKm50ID0gdGlwY19uYW1lX3RhYmxlKG5ldCk7XG4mIzQzO1x0c3RydWN0IHRpcGNfbmV0ICp0biA9IHRpcGNfbmV0KG5ldCk7XG4mIzQzO1x0c3RydWN0IHNrX2J1ZmZfaGVhZCBoZWFkO1xuJiM0MztcdHUxNiBzZXFubztcbiYjNDM7XG4mIzQzO1x0X19za2JfcXVldWVfaGVhZF9pbml0KFx1MDAyNmhlYWQpO1xuJiM0MztcdHdhaXRfdmFyX2V2ZW50KFx1MDAyNnRuLVx1MDAzZWZpbmFsaXplZCwgYXRvbWljX3JlYWQoXHUwMDI2dG4tXHUwMDNlZmluYWxpemVkKSk7XG4mIzQzO1x0c3Bpbl9sb2NrX2JoKFx1MDAyNnRuLVx1MDAzZW5hbWV0YmxfbG9jayk7XG4mIzQzO1x0c2Vxbm8gPSBudC1cdTAwM2VzbmRfbnh0O1xuJiM0MztcdHNwaW5fdW5sb2NrX2JoKFx1MDAyNnRuLVx1MDAzZW5hbWV0YmxfbG9jayk7XG4mIzQzO1xuJiM0MztcdHJlYWRfbG9ja19iaChcdTAwMjZudC1cdTAwM2VjbHVzdGVyX3Njb3BlX2xvY2spO1xuJiM0MztcdGlmICh1bmxpa2VseShsaXN0X2VtcHR5KFx1MDAyNm50LVx1MDAzZWNsdXN0ZXJfc2NvcGUpKSkge1xuJiM0MztcdFx0LyogZmluYWxpemUgaXMgZG9uZSBidXQgbm90aGluZyB3YXMgcHVibGlzaGVkIChwdWJsaXNoXG4mIzQzO1x0XHQgKiBmYWlsZWQpOiBhIHBlcm1hbmVudCBzdGF0ZSwgbm90aGluZyB0byBzeW5jaHJvbml6ZS5cbiYjNDM7XHRcdCAqL1xuJiM0MztcdFx0cmVhZF91bmxvY2tfYmgoXHUwMDI2bnQtXHUwMDNlY2x1c3Rlcl9zY29wZV9sb2NrKTtcbiYjNDM7XHRcdHJldHVybiAwO1xuJiM0MztcdH1cbiYjNDM7XHRpZiAobmFtZWRfZGlzdHJpYnV0ZShuZXQsIFx1MDAyNmhlYWQsIGRub2RlLCBcdTAwMjZudC1cdTAwM2VjbHVzdGVyX3Njb3BlLCBzZXFubykpIHtcbiYjNDM7XHRcdHJlYWRfdW5sb2NrX2JoKFx1MDAyNm50LVx1MDAzZWNsdXN0ZXJfc2NvcGVfbG9jayk7XG4mIzQzO1x0XHRyZXR1cm4gLUVOT0JVRlM7XG4mIzQzO1x0fVxuJiM0MztcdHRpcGNfbm9kZV94bWl0KG5ldCwgXHUwMDI2aGVhZCwgZG5vZGUsIDApO1xuJiM0MztcdHJlYWRfdW5sb2NrX2JoKFx1MDAyNm50LVx1MDAzZWNsdXN0ZXJfc2NvcGVfbG9jayk7XG4mIzQzO1xuJiM0MztcdHJldHVybiAwO1xuIH1cbiBcbiAvKipcbmRpZmYgLS1naXQgYS9uZXQvdGlwYy9uYW1lX2Rpc3RyLmggYi9uZXQvdGlwYy9uYW1lX2Rpc3RyLmhcbmluZGV4IGM2NzdmNmYwODJkZmI3Li5jYWRmNGU4YzNlNjZjMiAxMDA2NDRcbi0tLSBhL25ldC90aXBjL25hbWVfZGlzdHIuaFxuJiM0MzsmIzQzOyYjNDM7IGIvbmV0L3RpcGMvbmFtZV9kaXN0ci5oXG5AQCAtNjksNyAmIzQzOzY5LDggQEAgc3RydWN0IGRpc3RyX2l0ZW0ge1xuIFxuIHN0cnVjdCBza19idWZmICp0aXBjX25hbWVkX3B1Ymxpc2goc3RydWN0IG5ldCAqbmV0LCBzdHJ1Y3QgcHVibGljYXRpb24gKnB1YmwpO1xuIHN0cnVjdCBza19idWZmICp0aXBjX25hbWVkX3dpdGhkcmF3KHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0IHB1YmxpY2F0aW9uICpwdWJsKTtcbi12b2lkIHRpcGNfbmFtZWRfbm9kZV91cChzdHJ1Y3QgbmV0ICpuZXQsIHUzMiBkbm9kZSwgdTE2IGNhcGFiaWxpdGllcyk7XG4mIzQzO2ludCB0aXBjX25hbWVkX25vZGVfdXAoc3RydWN0IG5ldCAqbmV0LCB1MzIgZG5vZGUsIHUxNiBjYXBhYmlsaXRpZXMpO1xuJiM0MztpbnQgdGlwY19uYW1lZF9kaXN0X2NsdXN0ZXJfc2NvcGUoc3RydWN0IG5ldCAqbmV0LCB1MzIgZG5vZGUpO1xuIHZvaWQgdGlwY19uYW1lZF9yY3Yoc3RydWN0IG5ldCAqbmV0LCBzdHJ1Y3Qgc2tfYnVmZl9oZWFkICpuYW1lZHEsXG4gXHRcdCAgICB1MTYgKnJjdl9ueHQsIGJvb2wgKm9wZW4pO1xuIHZvaWQgdGlwY19uYW1lZF9yZWluaXQoc3RydWN0IG5ldCAqbmV0KTtcbmRpZmYgLS1naXQgYS9uZXQvdGlwYy9uZXQuYyBiL25ldC90aXBjL25ldC5jXG5pbmRleCA3ZTY1ZDBiMGM0YThkMS4uMmFhODgxMmM1NTFhZGQgMTAwNjQ0XG4tLS0gYS9uZXQvdGlwYy9uZXQuY1xuJiM0MzsmIzQzOyYjNDM7IGIvbmV0L3RpcGMvbmV0LmNcbkBAIC0xMzgsNyAmIzQzOzEzOCwxMCBAQCBzdGF0aWMgdm9pZCB0aXBjX25ldF9maW5hbGl6ZShzdHJ1Y3QgbmV0ICpuZXQsIHUzMiBhZGRyKVxuIFx0dGlwY19uYW1lZF9yZWluaXQobmV0KTtcbiBcdHRpcGNfc2tfcmVpbml0KG5ldCk7XG4gXHR0aXBjX21vbl9yZWluaXRfc2VsZihuZXQpO1xuLVx0dGlwY19uYW1ldGJsX3B1Ymxpc2gobmV0LCBcdTAwMjZ1YSwgXHUwMDI2c2ssIGFkZHIpO1xuJiM0MztcdGlmICghdGlwY19uYW1ldGJsX3B1Ymxpc2gobmV0LCBcdTAwMjZ1YSwgXHUwMDI2c2ssIGFkZHIpKVxuJiM0MztcdFx0cHJfd2FybihcJiMzNDtGYWlsZWQgdG8gcHVibGlzaCBvd24gbm9kZSBzdGF0ZVxcblwmIzM0Oyk7XG4mIzQzO1x0YXRvbWljX2luYyhcdTAwMjZ0bi1cdTAwM2VmaW5hbGl6ZWQpO1xuJiM0MztcdHdha2VfdXBfdmFyKFx1MDAyNnRuLVx1MDAzZWZpbmFsaXplZCk7XG4gfVxuIFxuIHZvaWQgdGlwY19uZXRfZmluYWxpemVfd29yayhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspXG5kaWZmIC0tZ2l0IGEvbmV0L3RpcGMvbm9kZS5jIGIvbmV0L3RpcGMvbm9kZS5jXG5pbmRleCA5N2FhOTcwYTBkODNjYS4uNDI4YzRlYWNkMDJmMWYgMTAwNjQ0XG4tLS0gYS9uZXQvdGlwYy9ub2RlLmNcbiYjNDM7JiM0MzsmIzQzOyBiL25ldC90aXBjL25vZGUuY1xuQEAgLTE0NSw2ICYjNDM7MTQ1LDggQEAgc3RydWN0IHRpcGNfbm9kZSB7XG4gI2lmZGVmIENPTkZJR19USVBDX0NSWVBUT1xuIFx0c3RydWN0IHRpcGNfY3J5cHRvICpjcnlwdG9fcng7XG4gI2VuZGlmXG4mIzQzO1x0LyogV29yayBpdGVtIGZvciBidWxrIGRpc3RyaWJ1dGlvbiBvZiBjbHVzdGVyIHNjb3BlIHB1YmxpY2F0aW9ucyAqL1xuJiM0MztcdHN0cnVjdCB3b3JrX3N0cnVjdCB3b3JrO1xuIH07XG4gXG4gLyogTm9kZSBGU00gc3RhdGVzIGFuZCBldmVudHM6XG5AQCAtMzAzLDYgJiM0MzszMDUsNyBAQCBzdGF0aWMgdm9pZCB0aXBjX25vZGVfZnJlZShzdHJ1Y3QgcmN1X2hlYWQgKnJwKVxuICNpZmRlZiBDT05GSUdfVElQQ19DUllQVE9cbiBcdHRpcGNfY3J5cHRvX3N0b3AoXHUwMDI2bi1cdTAwM2VjcnlwdG9fcngpO1xuICNlbmRpZlxuJiM0MztcdGNhbmNlbF93b3JrX3N5bmMoXHUwMDI2bi1cdTAwM2V3b3JrKTtcbiBcdGtmcmVlKG4pO1xuIH1cbiBcbkBAIC0zOTMsNiAmIzQzOzM5NiwxOSBAQCBzdGF0aWMgdm9pZCB0aXBjX25vZGVfd3JpdGVfdW5sb2NrX2Zhc3Qoc3RydWN0IHRpcGNfbm9kZSAqbilcbiBcdHdyaXRlX3VubG9ja19iaChcdTAwMjZuLVx1MDAzZWxvY2spO1xuIH1cbiBcbiYjNDM7c3RhdGljIHZvaWQgdGlwY19ub2RlX2Rpc3RfYnVsayhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspXG4mIzQzO3tcbiYjNDM7XHRzdHJ1Y3QgdGlwY19ub2RlICpub2RlID0gY29udGFpbmVyX29mKHdvcmssIHN0cnVjdCB0aXBjX25vZGUsIHdvcmspO1xuJiM0MztcbiYjNDM7XHRpZiAodGlwY19uYW1lZF9kaXN0X2NsdXN0ZXJfc2NvcGUobm9kZS1cdTAwM2VuZXQsIG5vZGUtXHUwMDNlYWRkcikgXHUwMDNjIDApIHtcbiYjNDM7XHRcdHUzMiBiZWFyZXJfaWQgPSBub2RlLVx1MDAzZWxpbmtfaWQgXHUwMDI2IDB4ZmZmZjtcbiYjNDM7XG4mIzQzO1x0XHR0aXBjX25vZGVfbGlua19kb3duKG5vZGUsIGJlYXJlcl9pZCwgZmFsc2UpO1xuJiM0MztcdH1cbiYjNDM7XG4mIzQzO1x0dGlwY19ub2RlX3B1dChub2RlKTtcbiYjNDM7fVxuJiM0MztcbiBzdGF0aWMgdm9pZCB0aXBjX25vZGVfd3JpdGVfdW5sb2NrKHN0cnVjdCB0aXBjX25vZGUgKm4pXG4gXHRfX3JlbGVhc2VzKG4tXHUwMDNlbG9jaylcbiB7XG5AQCAtNDI0LDggJiM0Mzs0NDAsMjIgQEAgc3RhdGljIHZvaWQgdGlwY19ub2RlX3dyaXRlX3VubG9jayhzdHJ1Y3QgdGlwY19ub2RlICpuKVxuIFx0aWYgKGZsYWdzIFx1MDAyNiBUSVBDX05PVElGWV9OT0RFX0RPV04pXG4gXHRcdHRpcGNfcHVibF9ub3RpZnkobmV0LCBwdWJsX2xpc3QsIG5vZGUsIG4tXHUwMDNlY2FwYWJpbGl0aWVzKTtcbiBcbi1cdGlmIChmbGFncyBcdTAwMjYgVElQQ19OT1RJRllfTk9ERV9VUClcbi1cdFx0dGlwY19uYW1lZF9ub2RlX3VwKG5ldCwgbm9kZSwgbi1cdTAwM2VjYXBhYmlsaXRpZXMpO1xuJiM0MztcdGlmIChmbGFncyBcdTAwMjYgVElQQ19OT1RJRllfTk9ERV9VUCkge1xuJiM0MztcdFx0aW50IHJjID0gMDtcbiYjNDM7XG4mIzQzO1x0XHRyYyA9IHRpcGNfbmFtZWRfbm9kZV91cChuZXQsIG5vZGUsIG4tXHUwMDNlY2FwYWJpbGl0aWVzKTtcbiYjNDM7XHRcdC8qIERlZmVyIGJ1bGsgZGlzdHJpYnV0aW9uIHRvIHdvcmsgcXVldWUgKi9cbiYjNDM7XHRcdGlmIChyYyBcdTAwM2UgMCkge1xuJiM0MztcdFx0XHR0aXBjX25vZGVfZ2V0KG4pO1xuJiM0MztcdFx0XHRpZiAoIXNjaGVkdWxlX3dvcmsoXHUwMDI2bi1cdTAwM2V3b3JrKSlcbiYjNDM7XHRcdFx0XHR0aXBjX25vZGVfcHV0KG4pO1xuJiM0MztcdFx0fSBlbHNlIGlmIChyYyBcdTAwM2MgMCkge1xuJiM0MztcdFx0XHQvKiBCcmluZyB0aGUgbGluayBkb3duIHRvIHN0YXJ0IG92ZXIgYnVsayBkaXN0cmlidXRpb25cbiYjNDM7XHRcdFx0ICogd2hlbiB0aGUgbGluayBpcyB1cCBhZ2Fpbi5cbiYjNDM7XHRcdFx0ICovXG4mIzQzO1x0XHRcdHRpcGNfbm9kZV9saW5rX2Rvd24obiwgYmVhcmVyX2lkLCBmYWxzZSk7XG4mIzQzO1x0XHR9XG4mIzQzO1x0fVxuIFxuIFx0aWYgKGZsYWdzIFx1MDAyNiBUSVBDX05PVElGWV9MSU5LX1VQKSB7XG4gXHRcdHRpcGNfbW9uX3BlZXJfdXAobmV0LCBub2RlLCBiZWFyZXJfaWQpO1xuQEAgLTU2NCw2ICYjNDM7NTk0LDcgQEAgc3RydWN0IHRpcGNfbm9kZSAqdGlwY19ub2RlX2NyZWF0ZShzdHJ1Y3QgbmV0ICpuZXQsIHUzMiBhZGRyLCB1OCAqcGVlcl9pZCxcbiBcdElOSVRfTElTVF9IRUFEKFx1MDAyNm4tXHUwMDNlbGlzdCk7XG4gXHRJTklUX0xJU1RfSEVBRChcdTAwMjZuLVx1MDAzZXB1YmxfbGlzdCk7XG4gXHRJTklUX0xJU1RfSEVBRChcdTAwMjZuLVx1MDAzZWNvbm5fc2tzKTtcbiYjNDM7XHRJTklUX1dPUksoXHUwMDI2bi1cdTAwM2V3b3JrLCB0aXBjX25vZGVfZGlzdF9idWxrKTtcbiBcdHNrYl9xdWV1ZV9oZWFkX2luaXQoXHUwMDI2bi1cdTAwM2ViY19lbnRyeS5uYW1lZHEpO1xuIFx0c2tiX3F1ZXVlX2hlYWRfaW5pdChcdTAwMjZuLVx1MDAzZWJjX2VudHJ5LmlucHV0cTEpO1xuIFx0X19za2JfcXVldWVfaGVhZF9pbml0KFx1MDAyNm4tXHUwMDNlYmNfZW50cnkuYXJydnEpO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE3IDIzOjEyPC90ZD4KCQkJPHRkPmFnZW50PC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O1RJUEMmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDt0aXBjX25hbWVkX25vZGVfdXAmIzM0OywKICAgICYjMzQ7dGlwY19uYW1lZF9kaXN0X2NsdXN0ZXJfc2NvcGUmIzM0OywKICAgICYjMzQ7dGlwY19ub2RlX2Rpc3RfYnVsayYjMzQ7LAogICAgJiMzNDtuYW1lZF9kaXN0cmlidXRlJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBUSVBDIHByb3RvY29sJiMzOTtzIG5vZGUgaW5pdGlhbGl6YXRpb24gYW5kIGJ1bGsgcHVibGljYXRpb24gZGlzdHJpYnV0aW9uIGxvZ2ljLCBpbnRyb2R1Y2luZyBhIG5ldyB3b3JrIGl0ZW0gYW5kIHN5bmNocm9uaXphdGlvbiBtZWNoYW5pc20uIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgY29yZSBUSVBDIGxvZ2ljIHRoYXQgc2hvdWxkIGJlIGZ1enplZC4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkluc3RydWN0aW9uOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+WW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuCllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lCmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC4KCklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpbgp5b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHkKdXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy4KClJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6Ci0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy4KLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy4KLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuCi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLApldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuCgpJZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoCnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLgoKV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086CjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuCiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLgoyLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS4KICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLgogICBEbyBub3QgbGlzdCB0b28gZ2VuZXJpYyBjb25maWdzICh3ZSBhbHJlYWR5IGhhdmUgdGhlbSBlbmFibGVkKS4gT25seSBsaXN0IHRob3NlIHRoYXQKICAgc3BlY2lmaWNhbGx5IGNvdmVyIHRoZSBtb2RpZmllZCBjb2RlLiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3Mgb3V0cHV0IGFycmF5LAogICBhbmQgRE8gTk9UIGFkZCBhICYjMzk7Q09ORklHXyYjMzk7IHByZWZpeCAoZS5nLiwgcmV0dXJuICYjMzQ7TkVUX0lQVjQmIzM0OyBpbnN0ZWFkIG9mICYjMzQ7Q09ORklHX05FVF9JUFY0JiMzNDspLgpQcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy4KCgpVc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLgpJdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS4KSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlByb21wdDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOgpjb21taXQgMDdjMWNiNzQ0Y2Q2OWNiOGZkYmRkODg3NDJlYjBhMTg1YmJhYjRhNwpBdXRob3I6IHN5ei1jbHVzdGVyICZsdDt0cmlhZ2VAc3l6a2FsbGVyLmNvbSZndDsKRGF0ZTogICBGcmkgSnVsIDE3IDIzOjEyOjQ5IDIwMjYgJiM0MzswMDAwCgogICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3CgpkaWZmIC0tZ2l0IGEvbmV0L3RpcGMvY29yZS5jIGIvbmV0L3RpcGMvY29yZS5jCmluZGV4IDQzNGU3MGVhYmUwODEyLi5jZTE2NDUwOWQ5ZTI3YSAxMDA2NDQKLS0tIGEvbmV0L3RpcGMvY29yZS5jCiYjNDM7JiM0MzsmIzQzOyBiL25ldC90aXBjL2NvcmUuYwpAQCAtNjAsNiAmIzQzOzYwLDcgQEAgc3RhdGljIGludCBfX25ldF9pbml0IHRpcGNfaW5pdF9uZXQoc3RydWN0IG5ldCAqbmV0KQogCXRuLSZndDt0cmlhbF9hZGRyID0gMDsKIAl0bi0mZ3Q7YWRkcl90cmlhbF9lbmQgPSAwOwogCXRuLSZndDtjYXBhYmlsaXRpZXMgPSBUSVBDX05PREVfQ0FQQUJJTElUSUVTOwomIzQzOwlhdG9taWNfc2V0KCZhbXA7dG4tJmd0O2ZpbmFsaXplZCwgMCk7CiAJSU5JVF9XT1JLKCZhbXA7dG4tJmd0O3dvcmssIHRpcGNfbmV0X2ZpbmFsaXplX3dvcmspOwogCW1lbXNldCh0bi0mZ3Q7bm9kZV9pZCwgMCwgc2l6ZW9mKHRuLSZndDtub2RlX2lkKSk7CiAJbWVtc2V0KHRuLSZndDtub2RlX2lkX3N0cmluZywgMCwgc2l6ZW9mKHRuLSZndDtub2RlX2lkX3N0cmluZykpOwpkaWZmIC0tZ2l0IGEvbmV0L3RpcGMvY29yZS5oIGIvbmV0L3RpcGMvY29yZS5oCmluZGV4IDljZTVmOWZmNmNjMDMxLi43Njc2ODg0NGM4MDgxNCAxMDA2NDQKLS0tIGEvbmV0L3RpcGMvY29yZS5oCiYjNDM7JiM0MzsmIzQzOyBiL25ldC90aXBjL2NvcmUuaApAQCAtMTQ1LDYgJiM0MzsxNDUsOCBAQCBzdHJ1Y3QgdGlwY19uZXQgewogCXN0cnVjdCB3b3JrX3N0cnVjdCB3b3JrOwogCS8qIFRoZSBudW1iZXJzIG9mIHdvcmsgcXVldWVzIGluIHNjaGVkdWxlICovCiAJYXRvbWljX3Qgd3FfY291bnQ7CiYjNDM7CS8qIGZsYWcgdG8gaW5kaWNhdGUgd29yayBoYXMgZmluaXNoZWQgKi8KJiM0MzsJYXRvbWljX3QgZmluYWxpemVkOwogfTsKIAogc3RhdGljIGlubGluZSBzdHJ1Y3QgdGlwY19uZXQgKnRpcGNfbmV0KHN0cnVjdCBuZXQgKm5ldCkKZGlmZiAtLWdpdCBhL25ldC90aXBjL25hbWVfZGlzdHIuYyBiL25ldC90aXBjL25hbWVfZGlzdHIuYwppbmRleCAxOTBiNDljNWNiYzNlYy4uNWIwZmIwOTIyNmZjNjggMTAwNjQ0Ci0tLSBhL25ldC90aXBjL25hbWVfZGlzdHIuYwomIzQzOyYjNDM7JiM0MzsgYi9uZXQvdGlwYy9uYW1lX2Rpc3RyLmMKQEAgLTE0Nyw3ICYjNDM7MTQ3LDcgQEAgc3RydWN0IHNrX2J1ZmYgKnRpcGNfbmFtZWRfd2l0aGRyYXcoc3RydWN0IG5ldCAqbmV0LCBzdHJ1Y3QgcHVibGljYXRpb24gKnApCiAgKiBAcGxzOiBsaW5rZWQgbGlzdCBvZiBwdWJsaWNhdGlvbiBpdGVtcyB0byBiZSBwYWNrZWQgaW50byBidWZmZXIgY2hhaW4KICAqIEBzZXFubzogc2VxdWVuY2UgbnVtYmVyIGZvciB0aGlzIG1lc3NhZ2UKICAqLwotc3RhdGljIHZvaWQgbmFtZWRfZGlzdHJpYnV0ZShzdHJ1Y3QgbmV0ICpuZXQsIHN0cnVjdCBza19idWZmX2hlYWQgKmxpc3QsCiYjNDM7c3RhdGljIGludCBuYW1lZF9kaXN0cmlidXRlKHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0IHNrX2J1ZmZfaGVhZCAqbGlzdCwKIAkJCSAgICAgdTMyIGRub2RlLCBzdHJ1Y3QgbGlzdF9oZWFkICpwbHMsIHUxNiBzZXFubykKIHsKIAlzdHJ1Y3QgcHVibGljYXRpb24gKnB1Ymw7CkBAIC0xNjQsOCAmIzQzOzE2NCw5IEBAIHN0YXRpYyB2b2lkIG5hbWVkX2Rpc3RyaWJ1dGUoc3RydWN0IG5ldCAqbmV0LCBzdHJ1Y3Qgc2tfYnVmZl9oZWFkICpsaXN0LAogCQkJc2tiID0gbmFtZWRfcHJlcGFyZV9idWYobmV0LCBQVUJMSUNBVElPTiwgbXNnX3JlbSwKIAkJCQkJCWRub2RlKTsKIAkJCWlmICghc2tiKSB7CiYjNDM7CQkJCV9fc2tiX3F1ZXVlX3B1cmdlKGxpc3QpOwogCQkJCXByX3dhcm4oJiMzNDtCdWxrIHB1YmxpY2F0aW9uIGZhaWx1cmVcbiYjMzQ7KTsKLQkJCQlyZXR1cm47CiYjNDM7CQkJCXJldHVybiAxOwogCQkJfQogCQkJaGRyID0gYnVmX21zZyhza2IpOwogCQkJbXNnX3NldF9iY19hY2tfaW52YWxpZChoZHIsIHRydWUpOwpAQCAtMTkyLDkgJiM0MzsxOTMsMTUgQEAgc3RhdGljIHZvaWQgbmFtZWRfZGlzdHJpYnV0ZShzdHJ1Y3QgbmV0ICpuZXQsIHN0cnVjdCBza19idWZmX2hlYWQgKmxpc3QsCiAJCXNrYl90cmltKHNrYiwgSU5UX0hfU0laRSAmIzQzOyAobXNnX2RzeiAtIG1zZ19yZW0pKTsKIAkJX19za2JfcXVldWVfdGFpbChsaXN0LCBza2IpOwogCX0KJiM0MzsJaWYgKHNrYl9xdWV1ZV9lbXB0eShsaXN0KSkgewomIzQzOwkJcHJfd2FybigmIzM0O0J1bGsgcHVibGljYXRpb24gbGlzdCBlbXB0eSwgbm90aGluZyB0byBkaXN0cmlidXRlXG4mIzM0Oyk7CiYjNDM7CQlyZXR1cm4gMTsKJiM0MzsJfQogCWhkciA9IGJ1Zl9tc2coc2tiX3BlZWtfdGFpbChsaXN0KSk7CiAJbXNnX3NldF9sYXN0X2J1bGsoaGRyKTsKIAltc2dfc2V0X25hbWVkX3NlcW5vKGhkciwgc2Vxbm8pOwomIzQzOwomIzQzOwlyZXR1cm4gMDsKIH0KIAogLyoqCkBAIC0yMDMsNyAmIzQzOzIxMCw3IEBAIHN0YXRpYyB2b2lkIG5hbWVkX2Rpc3RyaWJ1dGUoc3RydWN0IG5ldCAqbmV0LCBzdHJ1Y3Qgc2tfYnVmZl9oZWFkICpsaXN0LAogICogQGRub2RlOiBkZXN0aW5hdGlvbiBub2RlCiAgKiBAY2FwYWJpbGl0aWVzOiBwZWVyIG5vZGUmIzM5O3MgY2FwYWJpbGl0aWVzCiAgKi8KLXZvaWQgdGlwY19uYW1lZF9ub2RlX3VwKHN0cnVjdCBuZXQgKm5ldCwgdTMyIGRub2RlLCB1MTYgY2FwYWJpbGl0aWVzKQomIzQzO2ludCB0aXBjX25hbWVkX25vZGVfdXAoc3RydWN0IG5ldCAqbmV0LCB1MzIgZG5vZGUsIHUxNiBjYXBhYmlsaXRpZXMpCiB7CiAJc3RydWN0IG5hbWVfdGFibGUgKm50ID0gdGlwY19uYW1lX3RhYmxlKG5ldCk7CiAJc3RydWN0IHRpcGNfbmV0ICp0biA9IHRpcGNfbmV0KG5ldCk7CkBAIC0yMTgsOSAmIzQzOzIyNSw1MyBAQCB2b2lkIHRpcGNfbmFtZWRfbm9kZV91cChzdHJ1Y3QgbmV0ICpuZXQsIHUzMiBkbm9kZSwgdTE2IGNhcGFiaWxpdGllcykKIAlzcGluX3VubG9ja19iaCgmYW1wO3RuLSZndDtuYW1ldGJsX2xvY2spOwogCiAJcmVhZF9sb2NrX2JoKCZhbXA7bnQtJmd0O2NsdXN0ZXJfc2NvcGVfbG9jayk7Ci0JbmFtZWRfZGlzdHJpYnV0ZShuZXQsICZhbXA7aGVhZCwgZG5vZGUsICZhbXA7bnQtJmd0O2NsdXN0ZXJfc2NvcGUsIHNlcW5vKTsKJiM0MzsJLyogdGlwY19uZXRfZmluYWxpemVfd29yaygpIGhhcyBub3QgZmluaXNoZWQgaW5zZXJ0aW5nIHNlbGYgYWRkcmVzcyB0bwomIzQzOwkgKiBuYW1lIHRhYmxlIHlldC4KJiM0MzsJICovCiYjNDM7CWlmICh1bmxpa2VseShsaXN0X2VtcHR5KCZhbXA7bnQtJmd0O2NsdXN0ZXJfc2NvcGUpKSkgewomIzQzOwkJcmVhZF91bmxvY2tfYmgoJmFtcDtudC0mZ3Q7Y2x1c3Rlcl9zY29wZV9sb2NrKTsKJiM0MzsJCXJldHVybiAxOwomIzQzOwl9CiYjNDM7CiYjNDM7CWlmIChuYW1lZF9kaXN0cmlidXRlKG5ldCwgJmFtcDtoZWFkLCBkbm9kZSwgJmFtcDtudC0mZ3Q7Y2x1c3Rlcl9zY29wZSwgc2Vxbm8pKSB7CiYjNDM7CQlyZWFkX3VubG9ja19iaCgmYW1wO250LSZndDtjbHVzdGVyX3Njb3BlX2xvY2spOwomIzQzOwkJcmV0dXJuIC1FTk9CVUZTOwomIzQzOwl9CiYjNDM7CiAJdGlwY19ub2RlX3htaXQobmV0LCAmYW1wO2hlYWQsIGRub2RlLCAwKTsKIAlyZWFkX3VubG9ja19iaCgmYW1wO250LSZndDtjbHVzdGVyX3Njb3BlX2xvY2spOwomIzQzOwlyZXR1cm4gMDsKJiM0Mzt9CiYjNDM7CiYjNDM7aW50IHRpcGNfbmFtZWRfZGlzdF9jbHVzdGVyX3Njb3BlKHN0cnVjdCBuZXQgKm5ldCwgdTMyIGRub2RlKQomIzQzO3sKJiM0MzsJc3RydWN0IG5hbWVfdGFibGUgKm50ID0gdGlwY19uYW1lX3RhYmxlKG5ldCk7CiYjNDM7CXN0cnVjdCB0aXBjX25ldCAqdG4gPSB0aXBjX25ldChuZXQpOwomIzQzOwlzdHJ1Y3Qgc2tfYnVmZl9oZWFkIGhlYWQ7CiYjNDM7CXUxNiBzZXFubzsKJiM0MzsKJiM0MzsJX19za2JfcXVldWVfaGVhZF9pbml0KCZhbXA7aGVhZCk7CiYjNDM7CXdhaXRfdmFyX2V2ZW50KCZhbXA7dG4tJmd0O2ZpbmFsaXplZCwgYXRvbWljX3JlYWQoJmFtcDt0bi0mZ3Q7ZmluYWxpemVkKSk7CiYjNDM7CXNwaW5fbG9ja19iaCgmYW1wO3RuLSZndDtuYW1ldGJsX2xvY2spOwomIzQzOwlzZXFubyA9IG50LSZndDtzbmRfbnh0OwomIzQzOwlzcGluX3VubG9ja19iaCgmYW1wO3RuLSZndDtuYW1ldGJsX2xvY2spOwomIzQzOwomIzQzOwlyZWFkX2xvY2tfYmgoJmFtcDtudC0mZ3Q7Y2x1c3Rlcl9zY29wZV9sb2NrKTsKJiM0MzsJaWYgKHVubGlrZWx5KGxpc3RfZW1wdHkoJmFtcDtudC0mZ3Q7Y2x1c3Rlcl9zY29wZSkpKSB7CiYjNDM7CQkvKiBmaW5hbGl6ZSBpcyBkb25lIGJ1dCBub3RoaW5nIHdhcyBwdWJsaXNoZWQgKHB1Ymxpc2gKJiM0MzsJCSAqIGZhaWxlZCk6IGEgcGVybWFuZW50IHN0YXRlLCBub3RoaW5nIHRvIHN5bmNocm9uaXplLgomIzQzOwkJICovCiYjNDM7CQlyZWFkX3VubG9ja19iaCgmYW1wO250LSZndDtjbHVzdGVyX3Njb3BlX2xvY2spOwomIzQzOwkJcmV0dXJuIDA7CiYjNDM7CX0KJiM0MzsJaWYgKG5hbWVkX2Rpc3RyaWJ1dGUobmV0LCAmYW1wO2hlYWQsIGRub2RlLCAmYW1wO250LSZndDtjbHVzdGVyX3Njb3BlLCBzZXFubykpIHsKJiM0MzsJCXJlYWRfdW5sb2NrX2JoKCZhbXA7bnQtJmd0O2NsdXN0ZXJfc2NvcGVfbG9jayk7CiYjNDM7CQlyZXR1cm4gLUVOT0JVRlM7CiYjNDM7CX0KJiM0MzsJdGlwY19ub2RlX3htaXQobmV0LCAmYW1wO2hlYWQsIGRub2RlLCAwKTsKJiM0MzsJcmVhZF91bmxvY2tfYmgoJmFtcDtudC0mZ3Q7Y2x1c3Rlcl9zY29wZV9sb2NrKTsKJiM0MzsKJiM0MzsJcmV0dXJuIDA7CiB9CiAKIC8qKgpkaWZmIC0tZ2l0IGEvbmV0L3RpcGMvbmFtZV9kaXN0ci5oIGIvbmV0L3RpcGMvbmFtZV9kaXN0ci5oCmluZGV4IGM2NzdmNmYwODJkZmI3Li5jYWRmNGU4YzNlNjZjMiAxMDA2NDQKLS0tIGEvbmV0L3RpcGMvbmFtZV9kaXN0ci5oCiYjNDM7JiM0MzsmIzQzOyBiL25ldC90aXBjL25hbWVfZGlzdHIuaApAQCAtNjksNyAmIzQzOzY5LDggQEAgc3RydWN0IGRpc3RyX2l0ZW0gewogCiBzdHJ1Y3Qgc2tfYnVmZiAqdGlwY19uYW1lZF9wdWJsaXNoKHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0IHB1YmxpY2F0aW9uICpwdWJsKTsKIHN0cnVjdCBza19idWZmICp0aXBjX25hbWVkX3dpdGhkcmF3KHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0IHB1YmxpY2F0aW9uICpwdWJsKTsKLXZvaWQgdGlwY19uYW1lZF9ub2RlX3VwKHN0cnVjdCBuZXQgKm5ldCwgdTMyIGRub2RlLCB1MTYgY2FwYWJpbGl0aWVzKTsKJiM0MztpbnQgdGlwY19uYW1lZF9ub2RlX3VwKHN0cnVjdCBuZXQgKm5ldCwgdTMyIGRub2RlLCB1MTYgY2FwYWJpbGl0aWVzKTsKJiM0MztpbnQgdGlwY19uYW1lZF9kaXN0X2NsdXN0ZXJfc2NvcGUoc3RydWN0IG5ldCAqbmV0LCB1MzIgZG5vZGUpOwogdm9pZCB0aXBjX25hbWVkX3JjdihzdHJ1Y3QgbmV0ICpuZXQsIHN0cnVjdCBza19idWZmX2hlYWQgKm5hbWVkcSwKIAkJICAgIHUxNiAqcmN2X254dCwgYm9vbCAqb3Blbik7CiB2b2lkIHRpcGNfbmFtZWRfcmVpbml0KHN0cnVjdCBuZXQgKm5ldCk7CmRpZmYgLS1naXQgYS9uZXQvdGlwYy9uZXQuYyBiL25ldC90aXBjL25ldC5jCmluZGV4IDdlNjVkMGIwYzRhOGQxLi4yYWE4ODEyYzU1MWFkZCAxMDA2NDQKLS0tIGEvbmV0L3RpcGMvbmV0LmMKJiM0MzsmIzQzOyYjNDM7IGIvbmV0L3RpcGMvbmV0LmMKQEAgLTEzOCw3ICYjNDM7MTM4LDEwIEBAIHN0YXRpYyB2b2lkIHRpcGNfbmV0X2ZpbmFsaXplKHN0cnVjdCBuZXQgKm5ldCwgdTMyIGFkZHIpCiAJdGlwY19uYW1lZF9yZWluaXQobmV0KTsKIAl0aXBjX3NrX3JlaW5pdChuZXQpOwogCXRpcGNfbW9uX3JlaW5pdF9zZWxmKG5ldCk7Ci0JdGlwY19uYW1ldGJsX3B1Ymxpc2gobmV0LCAmYW1wO3VhLCAmYW1wO3NrLCBhZGRyKTsKJiM0MzsJaWYgKCF0aXBjX25hbWV0YmxfcHVibGlzaChuZXQsICZhbXA7dWEsICZhbXA7c2ssIGFkZHIpKQomIzQzOwkJcHJfd2FybigmIzM0O0ZhaWxlZCB0byBwdWJsaXNoIG93biBub2RlIHN0YXRlXG4mIzM0Oyk7CiYjNDM7CWF0b21pY19pbmMoJmFtcDt0bi0mZ3Q7ZmluYWxpemVkKTsKJiM0MzsJd2FrZV91cF92YXIoJmFtcDt0bi0mZ3Q7ZmluYWxpemVkKTsKIH0KIAogdm9pZCB0aXBjX25ldF9maW5hbGl6ZV93b3JrKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykKZGlmZiAtLWdpdCBhL25ldC90aXBjL25vZGUuYyBiL25ldC90aXBjL25vZGUuYwppbmRleCA5N2FhOTcwYTBkODNjYS4uNDI4YzRlYWNkMDJmMWYgMTAwNjQ0Ci0tLSBhL25ldC90aXBjL25vZGUuYwomIzQzOyYjNDM7JiM0MzsgYi9uZXQvdGlwYy9ub2RlLmMKQEAgLTE0NSw2ICYjNDM7MTQ1LDggQEAgc3RydWN0IHRpcGNfbm9kZSB7CiAjaWZkZWYgQ09ORklHX1RJUENfQ1JZUFRPCiAJc3RydWN0IHRpcGNfY3J5cHRvICpjcnlwdG9fcng7CiAjZW5kaWYKJiM0MzsJLyogV29yayBpdGVtIGZvciBidWxrIGRpc3RyaWJ1dGlvbiBvZiBjbHVzdGVyIHNjb3BlIHB1YmxpY2F0aW9ucyAqLwomIzQzOwlzdHJ1Y3Qgd29ya19zdHJ1Y3Qgd29yazsKIH07CiAKIC8qIE5vZGUgRlNNIHN0YXRlcyBhbmQgZXZlbnRzOgpAQCAtMzAzLDYgJiM0MzszMDUsNyBAQCBzdGF0aWMgdm9pZCB0aXBjX25vZGVfZnJlZShzdHJ1Y3QgcmN1X2hlYWQgKnJwKQogI2lmZGVmIENPTkZJR19USVBDX0NSWVBUTwogCXRpcGNfY3J5cHRvX3N0b3AoJmFtcDtuLSZndDtjcnlwdG9fcngpOwogI2VuZGlmCiYjNDM7CWNhbmNlbF93b3JrX3N5bmMoJmFtcDtuLSZndDt3b3JrKTsKIAlrZnJlZShuKTsKIH0KIApAQCAtMzkzLDYgJiM0MzszOTYsMTkgQEAgc3RhdGljIHZvaWQgdGlwY19ub2RlX3dyaXRlX3VubG9ja19mYXN0KHN0cnVjdCB0aXBjX25vZGUgKm4pCiAJd3JpdGVfdW5sb2NrX2JoKCZhbXA7bi0mZ3Q7bG9jayk7CiB9CiAKJiM0MztzdGF0aWMgdm9pZCB0aXBjX25vZGVfZGlzdF9idWxrKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykKJiM0Mzt7CiYjNDM7CXN0cnVjdCB0aXBjX25vZGUgKm5vZGUgPSBjb250YWluZXJfb2Yod29yaywgc3RydWN0IHRpcGNfbm9kZSwgd29yayk7CiYjNDM7CiYjNDM7CWlmICh0aXBjX25hbWVkX2Rpc3RfY2x1c3Rlcl9zY29wZShub2RlLSZndDtuZXQsIG5vZGUtJmd0O2FkZHIpICZsdDsgMCkgewomIzQzOwkJdTMyIGJlYXJlcl9pZCA9IG5vZGUtJmd0O2xpbmtfaWQgJmFtcDsgMHhmZmZmOwomIzQzOwomIzQzOwkJdGlwY19ub2RlX2xpbmtfZG93bihub2RlLCBiZWFyZXJfaWQsIGZhbHNlKTsKJiM0MzsJfQomIzQzOwomIzQzOwl0aXBjX25vZGVfcHV0KG5vZGUpOwomIzQzO30KJiM0MzsKIHN0YXRpYyB2b2lkIHRpcGNfbm9kZV93cml0ZV91bmxvY2soc3RydWN0IHRpcGNfbm9kZSAqbikKIAlfX3JlbGVhc2VzKG4tJmd0O2xvY2spCiB7CkBAIC00MjQsOCAmIzQzOzQ0MCwyMiBAQCBzdGF0aWMgdm9pZCB0aXBjX25vZGVfd3JpdGVfdW5sb2NrKHN0cnVjdCB0aXBjX25vZGUgKm4pCiAJaWYgKGZsYWdzICZhbXA7IFRJUENfTk9USUZZX05PREVfRE9XTikKIAkJdGlwY19wdWJsX25vdGlmeShuZXQsIHB1YmxfbGlzdCwgbm9kZSwgbi0mZ3Q7Y2FwYWJpbGl0aWVzKTsKIAotCWlmIChmbGFncyAmYW1wOyBUSVBDX05PVElGWV9OT0RFX1VQKQotCQl0aXBjX25hbWVkX25vZGVfdXAobmV0LCBub2RlLCBuLSZndDtjYXBhYmlsaXRpZXMpOwomIzQzOwlpZiAoZmxhZ3MgJmFtcDsgVElQQ19OT1RJRllfTk9ERV9VUCkgewomIzQzOwkJaW50IHJjID0gMDsKJiM0MzsKJiM0MzsJCXJjID0gdGlwY19uYW1lZF9ub2RlX3VwKG5ldCwgbm9kZSwgbi0mZ3Q7Y2FwYWJpbGl0aWVzKTsKJiM0MzsJCS8qIERlZmVyIGJ1bGsgZGlzdHJpYnV0aW9uIHRvIHdvcmsgcXVldWUgKi8KJiM0MzsJCWlmIChyYyAmZ3Q7IDApIHsKJiM0MzsJCQl0aXBjX25vZGVfZ2V0KG4pOwomIzQzOwkJCWlmICghc2NoZWR1bGVfd29yaygmYW1wO24tJmd0O3dvcmspKQomIzQzOwkJCQl0aXBjX25vZGVfcHV0KG4pOwomIzQzOwkJfSBlbHNlIGlmIChyYyAmbHQ7IDApIHsKJiM0MzsJCQkvKiBCcmluZyB0aGUgbGluayBkb3duIHRvIHN0YXJ0IG92ZXIgYnVsayBkaXN0cmlidXRpb24KJiM0MzsJCQkgKiB3aGVuIHRoZSBsaW5rIGlzIHVwIGFnYWluLgomIzQzOwkJCSAqLwomIzQzOwkJCXRpcGNfbm9kZV9saW5rX2Rvd24obiwgYmVhcmVyX2lkLCBmYWxzZSk7CiYjNDM7CQl9CiYjNDM7CX0KIAogCWlmIChmbGFncyAmYW1wOyBUSVBDX05PVElGWV9MSU5LX1VQKSB7CiAJCXRpcGNfbW9uX3BlZXJfdXAobmV0LCBub2RlLCBiZWFyZXJfaWQpOwpAQCAtNTY0LDYgJiM0Mzs1OTQsNyBAQCBzdHJ1Y3QgdGlwY19ub2RlICp0aXBjX25vZGVfY3JlYXRlKHN0cnVjdCBuZXQgKm5ldCwgdTMyIGFkZHIsIHU4ICpwZWVyX2lkLAogCUlOSVRfTElTVF9IRUFEKCZhbXA7bi0mZ3Q7bGlzdCk7CiAJSU5JVF9MSVNUX0hFQUQoJmFtcDtuLSZndDtwdWJsX2xpc3QpOwogCUlOSVRfTElTVF9IRUFEKCZhbXA7bi0mZ3Q7Y29ubl9za3MpOwomIzQzOwlJTklUX1dPUksoJmFtcDtuLSZndDt3b3JrLCB0aXBjX25vZGVfZGlzdF9idWxrKTsKIAlza2JfcXVldWVfaGVhZF9pbml0KCZhbXA7bi0mZ3Q7YmNfZW50cnkubmFtZWRxKTsKIAlza2JfcXVldWVfaGVhZF9pbml0KCZhbXA7bi0mZ3Q7YmNfZW50cnkuaW5wdXRxMSk7CiAJX19za2JfcXVldWVfaGVhZF9pbml0KCZhbXA7bi0mZ3Q7YmNfZW50cnkuYXJydnEpOwo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNyAyMzoxMjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA1MDA2CgkJCQkJCQlvdXRwdXQ6IDE3CgkJCQkJCQl0aG91Z2h0czogMjAxCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyBhIFRJUEMgUGF0Y2gqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggZm9yIHRoZSBUSVBDIHN1YnN5c3RlbSBpbiB0aGUgTGludXgga2VybmVsLiBTZWVtcyBsaWtlIGEgc29saWQgZnVuY3Rpb25hbCBjaGFuZ2U7IGl0JiMzOTtzIGdldHRpbmcgZGVlcCBpbnRvIHRoZSBjb3JlIGxvZ2ljLiBTcGVjaWZpY2FsbHksIHRoZXkmIzM5O3ZlIGludHJvZHVjZWQgYSBgZmluYWxpemVkYCBhdG9taWMgdmFyaWFibGUgaW4gYHN0cnVjdCB0aXBjX25ldGAgYW5kIGEgYHdvcmtgIGl0ZW0gaW4gYHN0cnVjdCB0aXBjX25vZGVgLiBJbnRlcmVzdGluZy4uLnRoaXMgcG9pbnRzIHRvIGhhbmRsaW5nIHNvbWUgc29ydCBvZiBidWxrIHB1YmxpY2F0aW9uIGRpc3RyaWJ1dGlvbiBhdCB0aGUgY2x1c3RlciBsZXZlbC4gVGhlIG1vZGlmaWNhdGlvbnMgdG8gYHRpcGNfbmFtZWRfbm9kZV91cGAgdG8gcmV0dXJuIGFuIGludGVnZXIgaW5zdGVhZCBvZiB2b2lkLCBhbmQgdGhlIGFkZGl0aW9uIG9mIGB0aXBjX25hbWVkX2Rpc3RfY2x1c3Rlcl9zY29wZWAgZnVydGhlciBjb25maXJtcyBteSBzdXNwaWNpb24gdGhhdCB0aGV5JiMzOTtyZSBhZGRyZXNzaW5nIGEgcmFjZSBjb25kaXRpb24gb3Igc3luY2hyb25pemF0aW9uIGlzc3VlLCBwcm9iYWJseSBkdXJpbmcgbm9kZSBpbml0aWFsaXphdGlvbiBhbmQgaW5pdGlhbCBwdWJsaWNhdGlvbiBkaXN0cmlidXRpb24uCgpUaGUgcGF0Y2ggYWxzbyBoYXMgY2hhbmdlcyBpbiBgdGlwY19ub2RlX3dyaXRlX3VubG9ja2AgdG8gaGFuZGxlIHRoZSByZXR1cm4gdmFsdWUgb2YgYHRpcGNfbmFtZWRfbm9kZV91cGAgYW5kIHNjaGVkdWxlIHRoYXQgd29yayBpdGVtLiBTbWFydDsgdGhhdCBsaWtlbHkgdGllcyB0aGUgdW5sb2NraW5nIHRvIGEgZGVmZXJyZWQgcHJvY2Vzc2luZyBzdGVwLCB3aGljaCBpcyBhIGNvbW1vbiB3YXkgdG8gYXZvaWQgY29udGVudGlvbi4KCkJlZm9yZSBJIGRpZyBpbnRvIHRoZSBzcGVjaWZpY3Mgb2YgdGhlIGNvZGUsIEkgc2hvdWxkIHByb2JhYmx5IGNoZWNrIHRoZSByZWxldmFudCBLY29uZmlnIG9wdGlvbnMuIExldCYjMzk7cyBzZWUuLi5JIHRoaW5rIGBkZWZhdWx0X2FwaTpncmVwcGVyYCBzaG91bGQgZ2l2ZSBtZSBhIHF1aWNrIHJvdXRlIHRvIHRoZSBUSVBDIEtjb25maWcuIEdvdHRhIGdldCB0aGUgY29uZmlndXJhdGlvbiBjb250ZXh0IHJpZ2h0LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE3IDIzOjEyPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2NvbmZpZyBUSVBDJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O25ldC90aXBjL0tjb25maWctNS1cbm5ldC90aXBjL0tjb25maWc6NjptZW51Y29uZmlnIFRJUENcbm5ldC90aXBjL0tjb25maWctNy1cdHRyaXN0YXRlIFwmIzM0O1RoZSBUSVBDIFByb3RvY29sXCYjMzQ7XG4tLVxubmV0L3RpcGMvS2NvbmZpZy0yMy1cbm5ldC90aXBjL0tjb25maWc6MjQ6Y29uZmlnIFRJUENfTUVESUFfSUJcbm5ldC90aXBjL0tjb25maWctMjUtXHRib29sIFwmIzM0O0luZmluaUJhbmQgbWVkaWEgdHlwZSBzdXBwb3J0XCYjMzQ7XG4tLVxubmV0L3RpcGMvS2NvbmZpZy0yOS1cdCAgSVAtb3Zlci1JbmZpbmlCYW5kIGRldmljZXMuXG5uZXQvdGlwYy9LY29uZmlnOjMwOmNvbmZpZyBUSVBDX01FRElBX1VEUFxubmV0L3RpcGMvS2NvbmZpZy0zMS1cdGJvb2wgXCYjMzQ7SVAvVURQIG1lZGlhIHR5cGUgc3VwcG9ydFwmIzM0O1xuLS1cbm5ldC90aXBjL0tjb25maWctMzctXG5uZXQvdGlwYy9LY29uZmlnOjM4OmNvbmZpZyBUSVBDX0NSWVBUT1xubmV0L3RpcGMvS2NvbmZpZy0zOS1cdGJvb2wgXCYjMzQ7VElQQyBlbmNyeXB0aW9uIHN1cHBvcnRcJiMzNDtcbi0tXG5uZXQvdGlwYy9LY29uZmlnLTUyLVxubmV0L3RpcGMvS2NvbmZpZzo1Mzpjb25maWcgVElQQ19ESUFHXG5uZXQvdGlwYy9LY29uZmlnLTU0LVx0dHJpc3RhdGUgXCYjMzQ7VElQQzogc29ja2V0IG1vbml0b3JpbmcgaW50ZXJmYWNlXCYjMzQ7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTcgMjM6MTM8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNTc4OQoJCQkJCQkJb3V0cHV0OiAxMjAKCQkJCQkJCXRob3VnaHRzOiA0MDEKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqRnV6emluZyBTdHJhdGVneSBmb3IgVElQQyBDb3JlIEZ1bmN0aW9uYWxpdHkqKgoKT2theSwgaGVyZSYjMzk7cyB3aGF0IEkmIzM5O20gdGhpbmtpbmcuIFRoaXMgcGF0Y2ggaXMgZGVmaW5pdGVseSBjZW50ZXJlZCBhcm91bmQgdGhlIGBUSVBDYCBjb25maWd1cmF0aW9uIOKAkyB0aGF0JiMzOTtzIHRoZSBtYWluIGRyaXZlci4gTG9va2luZyBhdCB0aGUgZmlsZSBtb2RpZmljYXRpb25zLCBpdCYjMzk7cyBoaXR0aW5nIHRoZSBjb3JlIG9mIHRoZSBUSVBDIGltcGxlbWVudGF0aW9uOiBgY29yZS5jYCwgYG5hbWVfZGlzdHIuY2AsIGBuZXQuY2AsIGFuZCBgbm9kZS5jYC4gVGhpcyBzdWdnZXN0cyBpdCYjMzk7cyBkaWdnaW5nIGludG8gaG93IFRJUEMgbm9kZXMgYXJlIGluaXRpYWxpemVkLCBob3cgbmFtZXMgYXJlIGRpc3RyaWJ1dGVkIGFjcm9zcyB0aGUgbmV0d29yaywgYW5kIHRoZSBvdmVyYWxsIG5ldHdvcmsgbWFuYWdlbWVudC4KClRoZSBsaXN0ZWQgZnVuY3Rpb24gY2hhbmdlcyBhcmUgdGhlIGtleSBoZXJlOiBgdGlwY19pbml0X25ldGAsIGBuYW1lZF9kaXN0cmlidXRlYCwgYHRpcGNfbmFtZWRfbm9kZV91cGAsIGB0aXBjX25hbWVkX2Rpc3RfY2x1c3Rlcl9zY29wZWAsIGB0aXBjX25ldF9maW5hbGl6ZWAsIGB0aXBjX25vZGVfZnJlZWAsIGB0aXBjX25vZGVfZGlzdF9idWxrYCwgYHRpcGNfbm9kZV93cml0ZV91bmxvY2tgLCBhbmQgYHRpcGNfbm9kZV9jcmVhdGVgLiBTcGVjaWZpY2FsbHksIGB0aXBjX25hbWVkX25vZGVfdXBgLCBgdGlwY19uYW1lZF9kaXN0X2NsdXN0ZXJfc2NvcGVgLCBgdGlwY19ub2RlX2Rpc3RfYnVsa2AsIGFuZCBgbmFtZWRfZGlzdHJpYnV0ZWAganVtcCBvdXQgYXQgbWUgYXMgcG90ZW50aWFsIHRyb3VibGUgc3BvdHMsIHNvIEkmIzM5O20gZm9jdXNpbmcgb24gdGhvc2UuCgpOb3csIGp1c3QgdG8gYmUgc3VyZSwgSSBuZWVkIHRvIGNvbmZpcm0gdGhhdCBgVElQQ2AgaXMgdGhlIG9ubHkgY29uZmlnIHJlcXVpcmVkIHRvIGhpdCB0aGlzIGNvZGUuIFllcCwgaXQgc2VlbXMgdGhhdCBgVElQQ2AgYWxvbmUgaXMgdGhlIHRyaWdnZXIsIG5vIG90aGVyIGRlcGVuZGVuY2llcy4gQWxzbywgd2l0aCBUSVBDIGJlaW5nIGEgbmV0d29yayBwcm90b2NvbCwgSSYjMzk7bSBjb25maWRlbnQgdGhhdCB0aGVzZSBmdW5jdGlvbnMgYXJlIHJlYWNoYWJsZSDigJMgbGlrZWx5IHRocm91Z2ggc29ja2V0IEFQSXMgYW5kIG5ldGxpbmsgaW50ZXJhY3Rpb25zLCB0aGUgc3RhbmRhcmQgd2F5IHRvIGludGVyYWN0IHdpdGggdGhlc2Ugc3Vic3lzdGVtcy4gVGhlIGNoYW5nZXMgYXJlIGluIGhvdyBub2RlcyBjb25uZWN0IGFuZCBuYW1lIGluZm9ybWF0aW9uIGlzIGRpc3NlbWluYXRlZCwgc28gdGhhdCBtYWtlcyBzZW5zZS4KClNvLCBJJiMzOTttIGdvaW5nIHRvIHNldCB1cCBteSBmdXp6aW5nIHN0cmF0ZWd5IGxpa2UgdGhpczoKCiogICBgV29ydGhGdXp6aW5nYDogYHRydWVgIOKAkyBiZWNhdXNlIHRoaXMgcGF0Y2ggdG91Y2hlcyBjb3JlIG5ldHdvcmsgbG9naWMgd2l0aCBmdW5jdGlvbnMgZm9yIGRpc3RyaWJ1dGluZyBuZXR3b3JrIGRhdGEgdGhhdCBhcmUgb2YgaW50ZXJlc3QgZm9yIGZ1enppbmcuCiogICBgRW5hYmxlQ29uZmlnc2A6IGBbJiMzNDtUSVBDJiMzNDtdYCDigJMgdG8gYWN0aXZhdGUgdGhlIGNvcnJlY3QgY29kZS4KKiAgIGBGb2N1c1N5bWJvbHNgOiBgWyYjMzQ7dGlwY19uYW1lZF9ub2RlX3VwJiMzNDssICYjMzQ7dGlwY19uYW1lZF9kaXN0X2NsdXN0ZXJfc2NvcGUmIzM0OywgJiMzNDt0aXBjX25vZGVfZGlzdF9idWxrJiMzNDssICYjMzQ7bmFtZWRfZGlzdHJpYnV0ZSYjMzQ7XWAg4oCTIHRoZSBmdW5jdGlvbnMgdGhhdCBzZWVtIG1vc3QgbGlrZWx5IHRvIGV4cG9zZSB2dWxuZXJhYmlsaXRpZXMuCiogICBgUmVhc29uaW5nYDogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIFRJUEMgcHJvdG9jb2wmIzM5O3Mgbm9kZSBpbml0aWFsaXphdGlvbiBhbmQgYnVsayBwdWJsaWNhdGlvbiBkaXN0cmlidXRpb24gbG9naWMsIGludHJvZHVjaW5nIGEgbmV3IHdvcmsgaXRlbSBhbmQgc3luY2hyb25pemF0aW9uIG1lY2hhbmlzbS4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSBjb3JlIFRJUEMgbG9naWMgdGhhdCBzaG91bGQgYmUgZnV6emVkLiYjMzQ7IOKAkyB0aGF0IHN1bW1hcml6ZXMgd2h5IHRoZXNlIGZ1bmN0aW9ucyBhcmUgaW1wb3J0YW50LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE3IDIzOjEzPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+c2V0LXJlc3VsdHM8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtUSVBDJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7dGlwY19uYW1lZF9ub2RlX3VwJiMzNDssCiAgICAmIzM0O3RpcGNfbmFtZWRfZGlzdF9jbHVzdGVyX3Njb3BlJiMzNDssCiAgICAmIzM0O3RpcGNfbm9kZV9kaXN0X2J1bGsmIzM0OywKICAgICYjMzQ7bmFtZWRfZGlzdHJpYnV0ZSYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgVElQQyBwcm90b2NvbCYjMzk7cyBub2RlIGluaXRpYWxpemF0aW9uIGFuZCBidWxrIHB1YmxpY2F0aW9uIGRpc3RyaWJ1dGlvbiBsb2dpYywgaW50cm9kdWNpbmcgYSBuZXcgd29yayBpdGVtIGFuZCBzeW5jaHJvbml6YXRpb24gbWVjaGFuaXNtLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIGNvcmUgVElQQyBsb2dpYyB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O1RJUEMmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDt0aXBjX25hbWVkX25vZGVfdXAmIzM0OywKICAgICYjMzQ7dGlwY19uYW1lZF9kaXN0X2NsdXN0ZXJfc2NvcGUmIzM0OywKICAgICYjMzQ7dGlwY19ub2RlX2Rpc3RfYnVsayYjMzQ7LAogICAgJiMzNDtuYW1lZF9kaXN0cmlidXRlJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBUSVBDIHByb3RvY29sJiMzOTtzIG5vZGUgaW5pdGlhbGl6YXRpb24gYW5kIGJ1bGsgcHVibGljYXRpb24gZGlzdHJpYnV0aW9uIGxvZ2ljLCBpbnRyb2R1Y2luZyBhIG5ldyB3b3JrIGl0ZW0gYW5kIHN5bmNocm9uaXphdGlvbiBtZWNoYW5pc20uIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgY29yZSBUSVBDIGxvZ2ljIHRoYXQgc2hvdWxkIGJlIGZ1enplZC4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE3VDIzOjEyOjUxLjMxMDE2MzQwNloiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE4MDc4OTgwMTYyLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIlRJUENcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJ0aXBjX25hbWVkX25vZGVfdXBcIixcbiAgICBcInRpcGNfbmFtZWRfZGlzdF9jbHVzdGVyX3Njb3BlXCIsXG4gICAgXCJ0aXBjX25vZGVfZGlzdF9idWxrXCIsXG4gICAgXCJuYW1lZF9kaXN0cmlidXRlXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIFRJUEMgcHJvdG9jb2wncyBub2RlIGluaXRpYWxpemF0aW9uIGFuZCBidWxrIHB1YmxpY2F0aW9uIGRpc3RyaWJ1dGlvbiBsb2dpYywgaW50cm9kdWNpbmcgYSBuZXcgd29yayBpdGVtIGFuZCBzeW5jaHJvbml6YXRpb24gbWVjaGFuaXNtLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIGNvcmUgVElQQyBsb2dpYyB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE3VDIzOjEyOjUxLjMxMDE2ODg4NloiLCJTZXEiOjEsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoicmVhZC1wYXRjaC1kaWZmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTE2NjcyNTUyNSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiUGF0Y2hEaWZmXCI6IFwiY29tbWl0IDA3YzFjYjc0NGNkNjljYjhmZGJkZDg4NzQyZWIwYTE4NWJiYWI0YTdcXG5BdXRob3I6IHN5ei1jbHVzdGVyIFxcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVxcdTAwM2VcXG5EYXRlOiAgIEZyaSBKdWwgMTcgMjM6MTI6NDkgMjAyNiArMDAwMFxcblxcbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcXG5cXG5kaWZmIC0tZ2l0IGEvbmV0L3RpcGMvY29yZS5jIGIvbmV0L3RpcGMvY29yZS5jXFxuaW5kZXggNDM0ZTcwZWFiZTA4MTIuLmNlMTY0NTA5ZDllMjdhIDEwMDY0NFxcbi0tLSBhL25ldC90aXBjL2NvcmUuY1xcbisrKyBiL25ldC90aXBjL2NvcmUuY1xcbkBAIC02MCw2ICs2MCw3IEBAIHN0YXRpYyBpbnQgX19uZXRfaW5pdCB0aXBjX2luaXRfbmV0KHN0cnVjdCBuZXQgKm5ldClcXG4gXFx0dG4tXFx1MDAzZXRyaWFsX2FkZHIgPSAwO1xcbiBcXHR0bi1cXHUwMDNlYWRkcl90cmlhbF9lbmQgPSAwO1xcbiBcXHR0bi1cXHUwMDNlY2FwYWJpbGl0aWVzID0gVElQQ19OT0RFX0NBUEFCSUxJVElFUztcXG4rXFx0YXRvbWljX3NldChcXHUwMDI2dG4tXFx1MDAzZWZpbmFsaXplZCwgMCk7XFxuIFxcdElOSVRfV09SSyhcXHUwMDI2dG4tXFx1MDAzZXdvcmssIHRpcGNfbmV0X2ZpbmFsaXplX3dvcmspO1xcbiBcXHRtZW1zZXQodG4tXFx1MDAzZW5vZGVfaWQsIDAsIHNpemVvZih0bi1cXHUwMDNlbm9kZV9pZCkpO1xcbiBcXHRtZW1zZXQodG4tXFx1MDAzZW5vZGVfaWRfc3RyaW5nLCAwLCBzaXplb2YodG4tXFx1MDAzZW5vZGVfaWRfc3RyaW5nKSk7XFxuZGlmZiAtLWdpdCBhL25ldC90aXBjL2NvcmUuaCBiL25ldC90aXBjL2NvcmUuaFxcbmluZGV4IDljZTVmOWZmNmNjMDMxLi43Njc2ODg0NGM4MDgxNCAxMDA2NDRcXG4tLS0gYS9uZXQvdGlwYy9jb3JlLmhcXG4rKysgYi9uZXQvdGlwYy9jb3JlLmhcXG5AQCAtMTQ1LDYgKzE0NSw4IEBAIHN0cnVjdCB0aXBjX25ldCB7XFxuIFxcdHN0cnVjdCB3b3JrX3N0cnVjdCB3b3JrO1xcbiBcXHQvKiBUaGUgbnVtYmVycyBvZiB3b3JrIHF1ZXVlcyBpbiBzY2hlZHVsZSAqL1xcbiBcXHRhdG9taWNfdCB3cV9jb3VudDtcXG4rXFx0LyogZmxhZyB0byBpbmRpY2F0ZSB3b3JrIGhhcyBmaW5pc2hlZCAqL1xcbitcXHRhdG9taWNfdCBmaW5hbGl6ZWQ7XFxuIH07XFxuIFxcbiBzdGF0aWMgaW5saW5lIHN0cnVjdCB0aXBjX25ldCAqdGlwY19uZXQoc3RydWN0IG5ldCAqbmV0KVxcbmRpZmYgLS1naXQgYS9uZXQvdGlwYy9uYW1lX2Rpc3RyLmMgYi9uZXQvdGlwYy9uYW1lX2Rpc3RyLmNcXG5pbmRleCAxOTBiNDljNWNiYzNlYy4uNWIwZmIwOTIyNmZjNjggMTAwNjQ0XFxuLS0tIGEvbmV0L3RpcGMvbmFtZV9kaXN0ci5jXFxuKysrIGIvbmV0L3RpcGMvbmFtZV9kaXN0ci5jXFxuQEAgLTE0Nyw3ICsxNDcsNyBAQCBzdHJ1Y3Qgc2tfYnVmZiAqdGlwY19uYW1lZF93aXRoZHJhdyhzdHJ1Y3QgbmV0ICpuZXQsIHN0cnVjdCBwdWJsaWNhdGlvbiAqcClcXG4gICogQHBsczogbGlua2VkIGxpc3Qgb2YgcHVibGljYXRpb24gaXRlbXMgdG8gYmUgcGFja2VkIGludG8gYnVmZmVyIGNoYWluXFxuICAqIEBzZXFubzogc2VxdWVuY2UgbnVtYmVyIGZvciB0aGlzIG1lc3NhZ2VcXG4gICovXFxuLXN0YXRpYyB2b2lkIG5hbWVkX2Rpc3RyaWJ1dGUoc3RydWN0IG5ldCAqbmV0LCBzdHJ1Y3Qgc2tfYnVmZl9oZWFkICpsaXN0LFxcbitzdGF0aWMgaW50IG5hbWVkX2Rpc3RyaWJ1dGUoc3RydWN0IG5ldCAqbmV0LCBzdHJ1Y3Qgc2tfYnVmZl9oZWFkICpsaXN0LFxcbiBcXHRcXHRcXHQgICAgIHUzMiBkbm9kZSwgc3RydWN0IGxpc3RfaGVhZCAqcGxzLCB1MTYgc2Vxbm8pXFxuIHtcXG4gXFx0c3RydWN0IHB1YmxpY2F0aW9uICpwdWJsO1xcbkBAIC0xNjQsOCArMTY0LDkgQEAgc3RhdGljIHZvaWQgbmFtZWRfZGlzdHJpYnV0ZShzdHJ1Y3QgbmV0ICpuZXQsIHN0cnVjdCBza19idWZmX2hlYWQgKmxpc3QsXFxuIFxcdFxcdFxcdHNrYiA9IG5hbWVkX3ByZXBhcmVfYnVmKG5ldCwgUFVCTElDQVRJT04sIG1zZ19yZW0sXFxuIFxcdFxcdFxcdFxcdFxcdFxcdGRub2RlKTtcXG4gXFx0XFx0XFx0aWYgKCFza2IpIHtcXG4rXFx0XFx0XFx0XFx0X19za2JfcXVldWVfcHVyZ2UobGlzdCk7XFxuIFxcdFxcdFxcdFxcdHByX3dhcm4oXFxcIkJ1bGsgcHVibGljYXRpb24gZmFpbHVyZVxcXFxuXFxcIik7XFxuLVxcdFxcdFxcdFxcdHJldHVybjtcXG4rXFx0XFx0XFx0XFx0cmV0dXJuIDE7XFxuIFxcdFxcdFxcdH1cXG4gXFx0XFx0XFx0aGRyID0gYnVmX21zZyhza2IpO1xcbiBcXHRcXHRcXHRtc2dfc2V0X2JjX2Fja19pbnZhbGlkKGhkciwgdHJ1ZSk7XFxuQEAgLTE5Miw5ICsxOTMsMTUgQEAgc3RhdGljIHZvaWQgbmFtZWRfZGlzdHJpYnV0ZShzdHJ1Y3QgbmV0ICpuZXQsIHN0cnVjdCBza19idWZmX2hlYWQgKmxpc3QsXFxuIFxcdFxcdHNrYl90cmltKHNrYiwgSU5UX0hfU0laRSArIChtc2dfZHN6IC0gbXNnX3JlbSkpO1xcbiBcXHRcXHRfX3NrYl9xdWV1ZV90YWlsKGxpc3QsIHNrYik7XFxuIFxcdH1cXG4rXFx0aWYgKHNrYl9xdWV1ZV9lbXB0eShsaXN0KSkge1xcbitcXHRcXHRwcl93YXJuKFxcXCJCdWxrIHB1YmxpY2F0aW9uIGxpc3QgZW1wdHksIG5vdGhpbmcgdG8gZGlzdHJpYnV0ZVxcXFxuXFxcIik7XFxuK1xcdFxcdHJldHVybiAxO1xcbitcXHR9XFxuIFxcdGhkciA9IGJ1Zl9tc2coc2tiX3BlZWtfdGFpbChsaXN0KSk7XFxuIFxcdG1zZ19zZXRfbGFzdF9idWxrKGhkcik7XFxuIFxcdG1zZ19zZXRfbmFtZWRfc2Vxbm8oaGRyLCBzZXFubyk7XFxuK1xcbitcXHRyZXR1cm4gMDtcXG4gfVxcbiBcXG4gLyoqXFxuQEAgLTIwMyw3ICsyMTAsNyBAQCBzdGF0aWMgdm9pZCBuYW1lZF9kaXN0cmlidXRlKHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0IHNrX2J1ZmZfaGVhZCAqbGlzdCxcXG4gICogQGRub2RlOiBkZXN0aW5hdGlvbiBub2RlXFxuICAqIEBjYXBhYmlsaXRpZXM6IHBlZXIgbm9kZSdzIGNhcGFiaWxpdGllc1xcbiAgKi9cXG4tdm9pZCB0aXBjX25hbWVkX25vZGVfdXAoc3RydWN0IG5ldCAqbmV0LCB1MzIgZG5vZGUsIHUxNiBjYXBhYmlsaXRpZXMpXFxuK2ludCB0aXBjX25hbWVkX25vZGVfdXAoc3RydWN0IG5ldCAqbmV0LCB1MzIgZG5vZGUsIHUxNiBjYXBhYmlsaXRpZXMpXFxuIHtcXG4gXFx0c3RydWN0IG5hbWVfdGFibGUgKm50ID0gdGlwY19uYW1lX3RhYmxlKG5ldCk7XFxuIFxcdHN0cnVjdCB0aXBjX25ldCAqdG4gPSB0aXBjX25ldChuZXQpO1xcbkBAIC0yMTgsOSArMjI1LDUzIEBAIHZvaWQgdGlwY19uYW1lZF9ub2RlX3VwKHN0cnVjdCBuZXQgKm5ldCwgdTMyIGRub2RlLCB1MTYgY2FwYWJpbGl0aWVzKVxcbiBcXHRzcGluX3VubG9ja19iaChcXHUwMDI2dG4tXFx1MDAzZW5hbWV0YmxfbG9jayk7XFxuIFxcbiBcXHRyZWFkX2xvY2tfYmgoXFx1MDAyNm50LVxcdTAwM2VjbHVzdGVyX3Njb3BlX2xvY2spO1xcbi1cXHRuYW1lZF9kaXN0cmlidXRlKG5ldCwgXFx1MDAyNmhlYWQsIGRub2RlLCBcXHUwMDI2bnQtXFx1MDAzZWNsdXN0ZXJfc2NvcGUsIHNlcW5vKTtcXG4rXFx0LyogdGlwY19uZXRfZmluYWxpemVfd29yaygpIGhhcyBub3QgZmluaXNoZWQgaW5zZXJ0aW5nIHNlbGYgYWRkcmVzcyB0b1xcbitcXHQgKiBuYW1lIHRhYmxlIHlldC5cXG4rXFx0ICovXFxuK1xcdGlmICh1bmxpa2VseShsaXN0X2VtcHR5KFxcdTAwMjZudC1cXHUwMDNlY2x1c3Rlcl9zY29wZSkpKSB7XFxuK1xcdFxcdHJlYWRfdW5sb2NrX2JoKFxcdTAwMjZudC1cXHUwMDNlY2x1c3Rlcl9zY29wZV9sb2NrKTtcXG4rXFx0XFx0cmV0dXJuIDE7XFxuK1xcdH1cXG4rXFxuK1xcdGlmIChuYW1lZF9kaXN0cmlidXRlKG5ldCwgXFx1MDAyNmhlYWQsIGRub2RlLCBcXHUwMDI2bnQtXFx1MDAzZWNsdXN0ZXJfc2NvcGUsIHNlcW5vKSkge1xcbitcXHRcXHRyZWFkX3VubG9ja19iaChcXHUwMDI2bnQtXFx1MDAzZWNsdXN0ZXJfc2NvcGVfbG9jayk7XFxuK1xcdFxcdHJldHVybiAtRU5PQlVGUztcXG4rXFx0fVxcbitcXG4gXFx0dGlwY19ub2RlX3htaXQobmV0LCBcXHUwMDI2aGVhZCwgZG5vZGUsIDApO1xcbiBcXHRyZWFkX3VubG9ja19iaChcXHUwMDI2bnQtXFx1MDAzZWNsdXN0ZXJfc2NvcGVfbG9jayk7XFxuK1xcdHJldHVybiAwO1xcbit9XFxuK1xcbitpbnQgdGlwY19uYW1lZF9kaXN0X2NsdXN0ZXJfc2NvcGUoc3RydWN0IG5ldCAqbmV0LCB1MzIgZG5vZGUpXFxuK3tcXG4rXFx0c3RydWN0IG5hbWVfdGFibGUgKm50ID0gdGlwY19uYW1lX3RhYmxlKG5ldCk7XFxuK1xcdHN0cnVjdCB0aXBjX25ldCAqdG4gPSB0aXBjX25ldChuZXQpO1xcbitcXHRzdHJ1Y3Qgc2tfYnVmZl9oZWFkIGhlYWQ7XFxuK1xcdHUxNiBzZXFubztcXG4rXFxuK1xcdF9fc2tiX3F1ZXVlX2hlYWRfaW5pdChcXHUwMDI2aGVhZCk7XFxuK1xcdHdhaXRfdmFyX2V2ZW50KFxcdTAwMjZ0bi1cXHUwMDNlZmluYWxpemVkLCBhdG9taWNfcmVhZChcXHUwMDI2dG4tXFx1MDAzZWZpbmFsaXplZCkpO1xcbitcXHRzcGluX2xvY2tfYmgoXFx1MDAyNnRuLVxcdTAwM2VuYW1ldGJsX2xvY2spO1xcbitcXHRzZXFubyA9IG50LVxcdTAwM2VzbmRfbnh0O1xcbitcXHRzcGluX3VubG9ja19iaChcXHUwMDI2dG4tXFx1MDAzZW5hbWV0YmxfbG9jayk7XFxuK1xcbitcXHRyZWFkX2xvY2tfYmgoXFx1MDAyNm50LVxcdTAwM2VjbHVzdGVyX3Njb3BlX2xvY2spO1xcbitcXHRpZiAodW5saWtlbHkobGlzdF9lbXB0eShcXHUwMDI2bnQtXFx1MDAzZWNsdXN0ZXJfc2NvcGUpKSkge1xcbitcXHRcXHQvKiBmaW5hbGl6ZSBpcyBkb25lIGJ1dCBub3RoaW5nIHdhcyBwdWJsaXNoZWQgKHB1Ymxpc2hcXG4rXFx0XFx0ICogZmFpbGVkKTogYSBwZXJtYW5lbnQgc3RhdGUsIG5vdGhpbmcgdG8gc3luY2hyb25pemUuXFxuK1xcdFxcdCAqL1xcbitcXHRcXHRyZWFkX3VubG9ja19iaChcXHUwMDI2bnQtXFx1MDAzZWNsdXN0ZXJfc2NvcGVfbG9jayk7XFxuK1xcdFxcdHJldHVybiAwO1xcbitcXHR9XFxuK1xcdGlmIChuYW1lZF9kaXN0cmlidXRlKG5ldCwgXFx1MDAyNmhlYWQsIGRub2RlLCBcXHUwMDI2bnQtXFx1MDAzZWNsdXN0ZXJfc2NvcGUsIHNlcW5vKSkge1xcbitcXHRcXHRyZWFkX3VubG9ja19iaChcXHUwMDI2bnQtXFx1MDAzZWNsdXN0ZXJfc2NvcGVfbG9jayk7XFxuK1xcdFxcdHJldHVybiAtRU5PQlVGUztcXG4rXFx0fVxcbitcXHR0aXBjX25vZGVfeG1pdChuZXQsIFxcdTAwMjZoZWFkLCBkbm9kZSwgMCk7XFxuK1xcdHJlYWRfdW5sb2NrX2JoKFxcdTAwMjZudC1cXHUwMDNlY2x1c3Rlcl9zY29wZV9sb2NrKTtcXG4rXFxuK1xcdHJldHVybiAwO1xcbiB9XFxuIFxcbiAvKipcXG5kaWZmIC0tZ2l0IGEvbmV0L3RpcGMvbmFtZV9kaXN0ci5oIGIvbmV0L3RpcGMvbmFtZV9kaXN0ci5oXFxuaW5kZXggYzY3N2Y2ZjA4MmRmYjcuLmNhZGY0ZThjM2U2NmMyIDEwMDY0NFxcbi0tLSBhL25ldC90aXBjL25hbWVfZGlzdHIuaFxcbisrKyBiL25ldC90aXBjL25hbWVfZGlzdHIuaFxcbkBAIC02OSw3ICs2OSw4IEBAIHN0cnVjdCBkaXN0cl9pdGVtIHtcXG4gXFxuIHN0cnVjdCBza19idWZmICp0aXBjX25hbWVkX3B1Ymxpc2goc3RydWN0IG5ldCAqbmV0LCBzdHJ1Y3QgcHVibGljYXRpb24gKnB1YmwpO1xcbiBzdHJ1Y3Qgc2tfYnVmZiAqdGlwY19uYW1lZF93aXRoZHJhdyhzdHJ1Y3QgbmV0ICpuZXQsIHN0cnVjdCBwdWJsaWNhdGlvbiAqcHVibCk7XFxuLXZvaWQgdGlwY19uYW1lZF9ub2RlX3VwKHN0cnVjdCBuZXQgKm5ldCwgdTMyIGRub2RlLCB1MTYgY2FwYWJpbGl0aWVzKTtcXG4raW50IHRpcGNfbmFtZWRfbm9kZV91cChzdHJ1Y3QgbmV0ICpuZXQsIHUzMiBkbm9kZSwgdTE2IGNhcGFiaWxpdGllcyk7XFxuK2ludCB0aXBjX25hbWVkX2Rpc3RfY2x1c3Rlcl9zY29wZShzdHJ1Y3QgbmV0ICpuZXQsIHUzMiBkbm9kZSk7XFxuIHZvaWQgdGlwY19uYW1lZF9yY3Yoc3RydWN0IG5ldCAqbmV0LCBzdHJ1Y3Qgc2tfYnVmZl9oZWFkICpuYW1lZHEsXFxuIFxcdFxcdCAgICB1MTYgKnJjdl9ueHQsIGJvb2wgKm9wZW4pO1xcbiB2b2lkIHRpcGNfbmFtZWRfcmVpbml0KHN0cnVjdCBuZXQgKm5ldCk7XFxuZGlmZiAtLWdpdCBhL25ldC90aXBjL25ldC5jIGIvbmV0L3RpcGMvbmV0LmNcXG5pbmRleCA3ZTY1ZDBiMGM0YThkMS4uMmFhODgxMmM1NTFhZGQgMTAwNjQ0XFxuLS0tIGEvbmV0L3RpcGMvbmV0LmNcXG4rKysgYi9uZXQvdGlwYy9uZXQuY1xcbkBAIC0xMzgsNyArMTM4LDEwIEBAIHN0YXRpYyB2b2lkIHRpcGNfbmV0X2ZpbmFsaXplKHN0cnVjdCBuZXQgKm5ldCwgdTMyIGFkZHIpXFxuIFxcdHRpcGNfbmFtZWRfcmVpbml0KG5ldCk7XFxuIFxcdHRpcGNfc2tfcmVpbml0KG5ldCk7XFxuIFxcdHRpcGNfbW9uX3JlaW5pdF9zZWxmKG5ldCk7XFxuLVxcdHRpcGNfbmFtZXRibF9wdWJsaXNoKG5ldCwgXFx1MDAyNnVhLCBcXHUwMDI2c2ssIGFkZHIpO1xcbitcXHRpZiAoIXRpcGNfbmFtZXRibF9wdWJsaXNoKG5ldCwgXFx1MDAyNnVhLCBcXHUwMDI2c2ssIGFkZHIpKVxcbitcXHRcXHRwcl93YXJuKFxcXCJGYWlsZWQgdG8gcHVibGlzaCBvd24gbm9kZSBzdGF0ZVxcXFxuXFxcIik7XFxuK1xcdGF0b21pY19pbmMoXFx1MDAyNnRuLVxcdTAwM2VmaW5hbGl6ZWQpO1xcbitcXHR3YWtlX3VwX3ZhcihcXHUwMDI2dG4tXFx1MDAzZWZpbmFsaXplZCk7XFxuIH1cXG4gXFxuIHZvaWQgdGlwY19uZXRfZmluYWxpemVfd29yayhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspXFxuZGlmZiAtLWdpdCBhL25ldC90aXBjL25vZGUuYyBiL25ldC90aXBjL25vZGUuY1xcbmluZGV4IDk3YWE5NzBhMGQ4M2NhLi40MjhjNGVhY2QwMmYxZiAxMDA2NDRcXG4tLS0gYS9uZXQvdGlwYy9ub2RlLmNcXG4rKysgYi9uZXQvdGlwYy9ub2RlLmNcXG5AQCAtMTQ1LDYgKzE0NSw4IEBAIHN0cnVjdCB0aXBjX25vZGUge1xcbiAjaWZkZWYgQ09ORklHX1RJUENfQ1JZUFRPXFxuIFxcdHN0cnVjdCB0aXBjX2NyeXB0byAqY3J5cHRvX3J4O1xcbiAjZW5kaWZcXG4rXFx0LyogV29yayBpdGVtIGZvciBidWxrIGRpc3RyaWJ1dGlvbiBvZiBjbHVzdGVyIHNjb3BlIHB1YmxpY2F0aW9ucyAqL1xcbitcXHRzdHJ1Y3Qgd29ya19zdHJ1Y3Qgd29yaztcXG4gfTtcXG4gXFxuIC8qIE5vZGUgRlNNIHN0YXRlcyBhbmQgZXZlbnRzOlxcbkBAIC0zMDMsNiArMzA1LDcgQEAgc3RhdGljIHZvaWQgdGlwY19ub2RlX2ZyZWUoc3RydWN0IHJjdV9oZWFkICpycClcXG4gI2lmZGVmIENPTkZJR19USVBDX0NSWVBUT1xcbiBcXHR0aXBjX2NyeXB0b19zdG9wKFxcdTAwMjZuLVxcdTAwM2VjcnlwdG9fcngpO1xcbiAjZW5kaWZcXG4rXFx0Y2FuY2VsX3dvcmtfc3luYyhcXHUwMDI2bi1cXHUwMDNld29yayk7XFxuIFxcdGtmcmVlKG4pO1xcbiB9XFxuIFxcbkBAIC0zOTMsNiArMzk2LDE5IEBAIHN0YXRpYyB2b2lkIHRpcGNfbm9kZV93cml0ZV91bmxvY2tfZmFzdChzdHJ1Y3QgdGlwY19ub2RlICpuKVxcbiBcXHR3cml0ZV91bmxvY2tfYmgoXFx1MDAyNm4tXFx1MDAzZWxvY2spO1xcbiB9XFxuIFxcbitzdGF0aWMgdm9pZCB0aXBjX25vZGVfZGlzdF9idWxrKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaylcXG4re1xcbitcXHRzdHJ1Y3QgdGlwY19ub2RlICpub2RlID0gY29udGFpbmVyX29mKHdvcmssIHN0cnVjdCB0aXBjX25vZGUsIHdvcmspO1xcbitcXG4rXFx0aWYgKHRpcGNfbmFtZWRfZGlzdF9jbHVzdGVyX3Njb3BlKG5vZGUtXFx1MDAzZW5ldCwgbm9kZS1cXHUwMDNlYWRkcikgXFx1MDAzYyAwKSB7XFxuK1xcdFxcdHUzMiBiZWFyZXJfaWQgPSBub2RlLVxcdTAwM2VsaW5rX2lkIFxcdTAwMjYgMHhmZmZmO1xcbitcXG4rXFx0XFx0dGlwY19ub2RlX2xpbmtfZG93bihub2RlLCBiZWFyZXJfaWQsIGZhbHNlKTtcXG4rXFx0fVxcbitcXG4rXFx0dGlwY19ub2RlX3B1dChub2RlKTtcXG4rfVxcbitcXG4gc3RhdGljIHZvaWQgdGlwY19ub2RlX3dyaXRlX3VubG9jayhzdHJ1Y3QgdGlwY19ub2RlICpuKVxcbiBcXHRfX3JlbGVhc2VzKG4tXFx1MDAzZWxvY2spXFxuIHtcXG5AQCAtNDI0LDggKzQ0MCwyMiBAQCBzdGF0aWMgdm9pZCB0aXBjX25vZGVfd3JpdGVfdW5sb2NrKHN0cnVjdCB0aXBjX25vZGUgKm4pXFxuIFxcdGlmIChmbGFncyBcXHUwMDI2IFRJUENfTk9USUZZX05PREVfRE9XTilcXG4gXFx0XFx0dGlwY19wdWJsX25vdGlmeShuZXQsIHB1YmxfbGlzdCwgbm9kZSwgbi1cXHUwMDNlY2FwYWJpbGl0aWVzKTtcXG4gXFxuLVxcdGlmIChmbGFncyBcXHUwMDI2IFRJUENfTk9USUZZX05PREVfVVApXFxuLVxcdFxcdHRpcGNfbmFtZWRfbm9kZV91cChuZXQsIG5vZGUsIG4tXFx1MDAzZWNhcGFiaWxpdGllcyk7XFxuK1xcdGlmIChmbGFncyBcXHUwMDI2IFRJUENfTk9USUZZX05PREVfVVApIHtcXG4rXFx0XFx0aW50IHJjID0gMDtcXG4rXFxuK1xcdFxcdHJjID0gdGlwY19uYW1lZF9ub2RlX3VwKG5ldCwgbm9kZSwgbi1cXHUwMDNlY2FwYWJpbGl0aWVzKTtcXG4rXFx0XFx0LyogRGVmZXIgYnVsayBkaXN0cmlidXRpb24gdG8gd29yayBxdWV1ZSAqL1xcbitcXHRcXHRpZiAocmMgXFx1MDAzZSAwKSB7XFxuK1xcdFxcdFxcdHRpcGNfbm9kZV9nZXQobik7XFxuK1xcdFxcdFxcdGlmICghc2NoZWR1bGVfd29yayhcXHUwMDI2bi1cXHUwMDNld29yaykpXFxuK1xcdFxcdFxcdFxcdHRpcGNfbm9kZV9wdXQobik7XFxuK1xcdFxcdH0gZWxzZSBpZiAocmMgXFx1MDAzYyAwKSB7XFxuK1xcdFxcdFxcdC8qIEJyaW5nIHRoZSBsaW5rIGRvd24gdG8gc3RhcnQgb3ZlciBidWxrIGRpc3RyaWJ1dGlvblxcbitcXHRcXHRcXHQgKiB3aGVuIHRoZSBsaW5rIGlzIHVwIGFnYWluLlxcbitcXHRcXHRcXHQgKi9cXG4rXFx0XFx0XFx0dGlwY19ub2RlX2xpbmtfZG93bihuLCBiZWFyZXJfaWQsIGZhbHNlKTtcXG4rXFx0XFx0fVxcbitcXHR9XFxuIFxcbiBcXHRpZiAoZmxhZ3MgXFx1MDAyNiBUSVBDX05PVElGWV9MSU5LX1VQKSB7XFxuIFxcdFxcdHRpcGNfbW9uX3BlZXJfdXAobmV0LCBub2RlLCBiZWFyZXJfaWQpO1xcbkBAIC01NjQsNiArNTk0LDcgQEAgc3RydWN0IHRpcGNfbm9kZSAqdGlwY19ub2RlX2NyZWF0ZShzdHJ1Y3QgbmV0ICpuZXQsIHUzMiBhZGRyLCB1OCAqcGVlcl9pZCxcXG4gXFx0SU5JVF9MSVNUX0hFQUQoXFx1MDAyNm4tXFx1MDAzZWxpc3QpO1xcbiBcXHRJTklUX0xJU1RfSEVBRChcXHUwMDI2bi1cXHUwMDNlcHVibF9saXN0KTtcXG4gXFx0SU5JVF9MSVNUX0hFQUQoXFx1MDAyNm4tXFx1MDAzZWNvbm5fc2tzKTtcXG4rXFx0SU5JVF9XT1JLKFxcdTAwMjZuLVxcdTAwM2V3b3JrLCB0aXBjX25vZGVfZGlzdF9idWxrKTtcXG4gXFx0c2tiX3F1ZXVlX2hlYWRfaW5pdChcXHUwMDI2bi1cXHUwMDNlYmNfZW50cnkubmFtZWRxKTtcXG4gXFx0c2tiX3F1ZXVlX2hlYWRfaW5pdChcXHUwMDI2bi1cXHUwMDNlYmNfZW50cnkuaW5wdXRxMSk7XFxuIFxcdF9fc2tiX3F1ZXVlX2hlYWRfaW5pdChcXHUwMDI2bi1cXHUwMDNlYmNfZW50cnkuYXJydnEpO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xN1QyMzoxMjo1Mi40Nzc4NDQ4MTFaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjE2OTExMjg0MjE2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIlRJUENcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJ0aXBjX25hbWVkX25vZGVfdXBcIixcbiAgICBcInRpcGNfbmFtZWRfZGlzdF9jbHVzdGVyX3Njb3BlXCIsXG4gICAgXCJ0aXBjX25vZGVfZGlzdF9idWxrXCIsXG4gICAgXCJuYW1lZF9kaXN0cmlidXRlXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIFRJUEMgcHJvdG9jb2wncyBub2RlIGluaXRpYWxpemF0aW9uIGFuZCBidWxrIHB1YmxpY2F0aW9uIGRpc3RyaWJ1dGlvbiBsb2dpYywgaW50cm9kdWNpbmcgYSBuZXcgd29yayBpdGVtIGFuZCBzeW5jaHJvbml6YXRpb24gbWVjaGFuaXNtLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIGNvcmUgVElQQyBsb2dpYyB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLlxuWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmVcbmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cblxuSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluXG55b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHlcbnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuXG5cblJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6XG4tIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuXG4tIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLlxuLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuXG4tIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSxcbmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS5cblxuSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaFxudG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuXG5cbldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOlxuMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy5cbiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLlxuMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuXG4gICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuXG4gICBEbyBub3QgbGlzdCB0b28gZ2VuZXJpYyBjb25maWdzICh3ZSBhbHJlYWR5IGhhdmUgdGhlbSBlbmFibGVkKS4gT25seSBsaXN0IHRob3NlIHRoYXRcbiAgIHNwZWNpZmljYWxseSBjb3ZlciB0aGUgbW9kaWZpZWQgY29kZS4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzIG91dHB1dCBhcnJheSxcbiAgIGFuZCBETyBOT1QgYWRkIGEgJ0NPTkZJR18nIHByZWZpeCAoZS5nLiwgcmV0dXJuIFwiTkVUX0lQVjRcIiBpbnN0ZWFkIG9mIFwiQ09ORklHX05FVF9JUFY0XCIpLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgMDdjMWNiNzQ0Y2Q2OWNiOGZkYmRkODg3NDJlYjBhMTg1YmJhYjRhN1xuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBGcmkgSnVsIDE3IDIzOjEyOjQ5IDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvbmV0L3RpcGMvY29yZS5jIGIvbmV0L3RpcGMvY29yZS5jXG5pbmRleCA0MzRlNzBlYWJlMDgxMi4uY2UxNjQ1MDlkOWUyN2EgMTAwNjQ0XG4tLS0gYS9uZXQvdGlwYy9jb3JlLmNcbisrKyBiL25ldC90aXBjL2NvcmUuY1xuQEAgLTYwLDYgKzYwLDcgQEAgc3RhdGljIGludCBfX25ldF9pbml0IHRpcGNfaW5pdF9uZXQoc3RydWN0IG5ldCAqbmV0KVxuIFx0dG4tXHUwMDNldHJpYWxfYWRkciA9IDA7XG4gXHR0bi1cdTAwM2VhZGRyX3RyaWFsX2VuZCA9IDA7XG4gXHR0bi1cdTAwM2VjYXBhYmlsaXRpZXMgPSBUSVBDX05PREVfQ0FQQUJJTElUSUVTO1xuK1x0YXRvbWljX3NldChcdTAwMjZ0bi1cdTAwM2VmaW5hbGl6ZWQsIDApO1xuIFx0SU5JVF9XT1JLKFx1MDAyNnRuLVx1MDAzZXdvcmssIHRpcGNfbmV0X2ZpbmFsaXplX3dvcmspO1xuIFx0bWVtc2V0KHRuLVx1MDAzZW5vZGVfaWQsIDAsIHNpemVvZih0bi1cdTAwM2Vub2RlX2lkKSk7XG4gXHRtZW1zZXQodG4tXHUwMDNlbm9kZV9pZF9zdHJpbmcsIDAsIHNpemVvZih0bi1cdTAwM2Vub2RlX2lkX3N0cmluZykpO1xuZGlmZiAtLWdpdCBhL25ldC90aXBjL2NvcmUuaCBiL25ldC90aXBjL2NvcmUuaFxuaW5kZXggOWNlNWY5ZmY2Y2MwMzEuLjc2NzY4ODQ0YzgwODE0IDEwMDY0NFxuLS0tIGEvbmV0L3RpcGMvY29yZS5oXG4rKysgYi9uZXQvdGlwYy9jb3JlLmhcbkBAIC0xNDUsNiArMTQ1LDggQEAgc3RydWN0IHRpcGNfbmV0IHtcbiBcdHN0cnVjdCB3b3JrX3N0cnVjdCB3b3JrO1xuIFx0LyogVGhlIG51bWJlcnMgb2Ygd29yayBxdWV1ZXMgaW4gc2NoZWR1bGUgKi9cbiBcdGF0b21pY190IHdxX2NvdW50O1xuK1x0LyogZmxhZyB0byBpbmRpY2F0ZSB3b3JrIGhhcyBmaW5pc2hlZCAqL1xuK1x0YXRvbWljX3QgZmluYWxpemVkO1xuIH07XG4gXG4gc3RhdGljIGlubGluZSBzdHJ1Y3QgdGlwY19uZXQgKnRpcGNfbmV0KHN0cnVjdCBuZXQgKm5ldClcbmRpZmYgLS1naXQgYS9uZXQvdGlwYy9uYW1lX2Rpc3RyLmMgYi9uZXQvdGlwYy9uYW1lX2Rpc3RyLmNcbmluZGV4IDE5MGI0OWM1Y2JjM2VjLi41YjBmYjA5MjI2ZmM2OCAxMDA2NDRcbi0tLSBhL25ldC90aXBjL25hbWVfZGlzdHIuY1xuKysrIGIvbmV0L3RpcGMvbmFtZV9kaXN0ci5jXG5AQCAtMTQ3LDcgKzE0Nyw3IEBAIHN0cnVjdCBza19idWZmICp0aXBjX25hbWVkX3dpdGhkcmF3KHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0IHB1YmxpY2F0aW9uICpwKVxuICAqIEBwbHM6IGxpbmtlZCBsaXN0IG9mIHB1YmxpY2F0aW9uIGl0ZW1zIHRvIGJlIHBhY2tlZCBpbnRvIGJ1ZmZlciBjaGFpblxuICAqIEBzZXFubzogc2VxdWVuY2UgbnVtYmVyIGZvciB0aGlzIG1lc3NhZ2VcbiAgKi9cbi1zdGF0aWMgdm9pZCBuYW1lZF9kaXN0cmlidXRlKHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0IHNrX2J1ZmZfaGVhZCAqbGlzdCxcbitzdGF0aWMgaW50IG5hbWVkX2Rpc3RyaWJ1dGUoc3RydWN0IG5ldCAqbmV0LCBzdHJ1Y3Qgc2tfYnVmZl9oZWFkICpsaXN0LFxuIFx0XHRcdCAgICAgdTMyIGRub2RlLCBzdHJ1Y3QgbGlzdF9oZWFkICpwbHMsIHUxNiBzZXFubylcbiB7XG4gXHRzdHJ1Y3QgcHVibGljYXRpb24gKnB1Ymw7XG5AQCAtMTY0LDggKzE2NCw5IEBAIHN0YXRpYyB2b2lkIG5hbWVkX2Rpc3RyaWJ1dGUoc3RydWN0IG5ldCAqbmV0LCBzdHJ1Y3Qgc2tfYnVmZl9oZWFkICpsaXN0LFxuIFx0XHRcdHNrYiA9IG5hbWVkX3ByZXBhcmVfYnVmKG5ldCwgUFVCTElDQVRJT04sIG1zZ19yZW0sXG4gXHRcdFx0XHRcdFx0ZG5vZGUpO1xuIFx0XHRcdGlmICghc2tiKSB7XG4rXHRcdFx0XHRfX3NrYl9xdWV1ZV9wdXJnZShsaXN0KTtcbiBcdFx0XHRcdHByX3dhcm4oXCJCdWxrIHB1YmxpY2F0aW9uIGZhaWx1cmVcXG5cIik7XG4tXHRcdFx0XHRyZXR1cm47XG4rXHRcdFx0XHRyZXR1cm4gMTtcbiBcdFx0XHR9XG4gXHRcdFx0aGRyID0gYnVmX21zZyhza2IpO1xuIFx0XHRcdG1zZ19zZXRfYmNfYWNrX2ludmFsaWQoaGRyLCB0cnVlKTtcbkBAIC0xOTIsOSArMTkzLDE1IEBAIHN0YXRpYyB2b2lkIG5hbWVkX2Rpc3RyaWJ1dGUoc3RydWN0IG5ldCAqbmV0LCBzdHJ1Y3Qgc2tfYnVmZl9oZWFkICpsaXN0LFxuIFx0XHRza2JfdHJpbShza2IsIElOVF9IX1NJWkUgKyAobXNnX2RzeiAtIG1zZ19yZW0pKTtcbiBcdFx0X19za2JfcXVldWVfdGFpbChsaXN0LCBza2IpO1xuIFx0fVxuK1x0aWYgKHNrYl9xdWV1ZV9lbXB0eShsaXN0KSkge1xuK1x0XHRwcl93YXJuKFwiQnVsayBwdWJsaWNhdGlvbiBsaXN0IGVtcHR5LCBub3RoaW5nIHRvIGRpc3RyaWJ1dGVcXG5cIik7XG4rXHRcdHJldHVybiAxO1xuK1x0fVxuIFx0aGRyID0gYnVmX21zZyhza2JfcGVla190YWlsKGxpc3QpKTtcbiBcdG1zZ19zZXRfbGFzdF9idWxrKGhkcik7XG4gXHRtc2dfc2V0X25hbWVkX3NlcW5vKGhkciwgc2Vxbm8pO1xuK1xuK1x0cmV0dXJuIDA7XG4gfVxuIFxuIC8qKlxuQEAgLTIwMyw3ICsyMTAsNyBAQCBzdGF0aWMgdm9pZCBuYW1lZF9kaXN0cmlidXRlKHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0IHNrX2J1ZmZfaGVhZCAqbGlzdCxcbiAgKiBAZG5vZGU6IGRlc3RpbmF0aW9uIG5vZGVcbiAgKiBAY2FwYWJpbGl0aWVzOiBwZWVyIG5vZGUncyBjYXBhYmlsaXRpZXNcbiAgKi9cbi12b2lkIHRpcGNfbmFtZWRfbm9kZV91cChzdHJ1Y3QgbmV0ICpuZXQsIHUzMiBkbm9kZSwgdTE2IGNhcGFiaWxpdGllcylcbitpbnQgdGlwY19uYW1lZF9ub2RlX3VwKHN0cnVjdCBuZXQgKm5ldCwgdTMyIGRub2RlLCB1MTYgY2FwYWJpbGl0aWVzKVxuIHtcbiBcdHN0cnVjdCBuYW1lX3RhYmxlICpudCA9IHRpcGNfbmFtZV90YWJsZShuZXQpO1xuIFx0c3RydWN0IHRpcGNfbmV0ICp0biA9IHRpcGNfbmV0KG5ldCk7XG5AQCAtMjE4LDkgKzIyNSw1MyBAQCB2b2lkIHRpcGNfbmFtZWRfbm9kZV91cChzdHJ1Y3QgbmV0ICpuZXQsIHUzMiBkbm9kZSwgdTE2IGNhcGFiaWxpdGllcylcbiBcdHNwaW5fdW5sb2NrX2JoKFx1MDAyNnRuLVx1MDAzZW5hbWV0YmxfbG9jayk7XG4gXG4gXHRyZWFkX2xvY2tfYmgoXHUwMDI2bnQtXHUwMDNlY2x1c3Rlcl9zY29wZV9sb2NrKTtcbi1cdG5hbWVkX2Rpc3RyaWJ1dGUobmV0LCBcdTAwMjZoZWFkLCBkbm9kZSwgXHUwMDI2bnQtXHUwMDNlY2x1c3Rlcl9zY29wZSwgc2Vxbm8pO1xuK1x0LyogdGlwY19uZXRfZmluYWxpemVfd29yaygpIGhhcyBub3QgZmluaXNoZWQgaW5zZXJ0aW5nIHNlbGYgYWRkcmVzcyB0b1xuK1x0ICogbmFtZSB0YWJsZSB5ZXQuXG4rXHQgKi9cbitcdGlmICh1bmxpa2VseShsaXN0X2VtcHR5KFx1MDAyNm50LVx1MDAzZWNsdXN0ZXJfc2NvcGUpKSkge1xuK1x0XHRyZWFkX3VubG9ja19iaChcdTAwMjZudC1cdTAwM2VjbHVzdGVyX3Njb3BlX2xvY2spO1xuK1x0XHRyZXR1cm4gMTtcbitcdH1cbitcbitcdGlmIChuYW1lZF9kaXN0cmlidXRlKG5ldCwgXHUwMDI2aGVhZCwgZG5vZGUsIFx1MDAyNm50LVx1MDAzZWNsdXN0ZXJfc2NvcGUsIHNlcW5vKSkge1xuK1x0XHRyZWFkX3VubG9ja19iaChcdTAwMjZudC1cdTAwM2VjbHVzdGVyX3Njb3BlX2xvY2spO1xuK1x0XHRyZXR1cm4gLUVOT0JVRlM7XG4rXHR9XG4rXG4gXHR0aXBjX25vZGVfeG1pdChuZXQsIFx1MDAyNmhlYWQsIGRub2RlLCAwKTtcbiBcdHJlYWRfdW5sb2NrX2JoKFx1MDAyNm50LVx1MDAzZWNsdXN0ZXJfc2NvcGVfbG9jayk7XG4rXHRyZXR1cm4gMDtcbit9XG4rXG4raW50IHRpcGNfbmFtZWRfZGlzdF9jbHVzdGVyX3Njb3BlKHN0cnVjdCBuZXQgKm5ldCwgdTMyIGRub2RlKVxuK3tcbitcdHN0cnVjdCBuYW1lX3RhYmxlICpudCA9IHRpcGNfbmFtZV90YWJsZShuZXQpO1xuK1x0c3RydWN0IHRpcGNfbmV0ICp0biA9IHRpcGNfbmV0KG5ldCk7XG4rXHRzdHJ1Y3Qgc2tfYnVmZl9oZWFkIGhlYWQ7XG4rXHR1MTYgc2Vxbm87XG4rXG4rXHRfX3NrYl9xdWV1ZV9oZWFkX2luaXQoXHUwMDI2aGVhZCk7XG4rXHR3YWl0X3Zhcl9ldmVudChcdTAwMjZ0bi1cdTAwM2VmaW5hbGl6ZWQsIGF0b21pY19yZWFkKFx1MDAyNnRuLVx1MDAzZWZpbmFsaXplZCkpO1xuK1x0c3Bpbl9sb2NrX2JoKFx1MDAyNnRuLVx1MDAzZW5hbWV0YmxfbG9jayk7XG4rXHRzZXFubyA9IG50LVx1MDAzZXNuZF9ueHQ7XG4rXHRzcGluX3VubG9ja19iaChcdTAwMjZ0bi1cdTAwM2VuYW1ldGJsX2xvY2spO1xuK1xuK1x0cmVhZF9sb2NrX2JoKFx1MDAyNm50LVx1MDAzZWNsdXN0ZXJfc2NvcGVfbG9jayk7XG4rXHRpZiAodW5saWtlbHkobGlzdF9lbXB0eShcdTAwMjZudC1cdTAwM2VjbHVzdGVyX3Njb3BlKSkpIHtcbitcdFx0LyogZmluYWxpemUgaXMgZG9uZSBidXQgbm90aGluZyB3YXMgcHVibGlzaGVkIChwdWJsaXNoXG4rXHRcdCAqIGZhaWxlZCk6IGEgcGVybWFuZW50IHN0YXRlLCBub3RoaW5nIHRvIHN5bmNocm9uaXplLlxuK1x0XHQgKi9cbitcdFx0cmVhZF91bmxvY2tfYmgoXHUwMDI2bnQtXHUwMDNlY2x1c3Rlcl9zY29wZV9sb2NrKTtcbitcdFx0cmV0dXJuIDA7XG4rXHR9XG4rXHRpZiAobmFtZWRfZGlzdHJpYnV0ZShuZXQsIFx1MDAyNmhlYWQsIGRub2RlLCBcdTAwMjZudC1cdTAwM2VjbHVzdGVyX3Njb3BlLCBzZXFubykpIHtcbitcdFx0cmVhZF91bmxvY2tfYmgoXHUwMDI2bnQtXHUwMDNlY2x1c3Rlcl9zY29wZV9sb2NrKTtcbitcdFx0cmV0dXJuIC1FTk9CVUZTO1xuK1x0fVxuK1x0dGlwY19ub2RlX3htaXQobmV0LCBcdTAwMjZoZWFkLCBkbm9kZSwgMCk7XG4rXHRyZWFkX3VubG9ja19iaChcdTAwMjZudC1cdTAwM2VjbHVzdGVyX3Njb3BlX2xvY2spO1xuK1xuK1x0cmV0dXJuIDA7XG4gfVxuIFxuIC8qKlxuZGlmZiAtLWdpdCBhL25ldC90aXBjL25hbWVfZGlzdHIuaCBiL25ldC90aXBjL25hbWVfZGlzdHIuaFxuaW5kZXggYzY3N2Y2ZjA4MmRmYjcuLmNhZGY0ZThjM2U2NmMyIDEwMDY0NFxuLS0tIGEvbmV0L3RpcGMvbmFtZV9kaXN0ci5oXG4rKysgYi9uZXQvdGlwYy9uYW1lX2Rpc3RyLmhcbkBAIC02OSw3ICs2OSw4IEBAIHN0cnVjdCBkaXN0cl9pdGVtIHtcbiBcbiBzdHJ1Y3Qgc2tfYnVmZiAqdGlwY19uYW1lZF9wdWJsaXNoKHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0IHB1YmxpY2F0aW9uICpwdWJsKTtcbiBzdHJ1Y3Qgc2tfYnVmZiAqdGlwY19uYW1lZF93aXRoZHJhdyhzdHJ1Y3QgbmV0ICpuZXQsIHN0cnVjdCBwdWJsaWNhdGlvbiAqcHVibCk7XG4tdm9pZCB0aXBjX25hbWVkX25vZGVfdXAoc3RydWN0IG5ldCAqbmV0LCB1MzIgZG5vZGUsIHUxNiBjYXBhYmlsaXRpZXMpO1xuK2ludCB0aXBjX25hbWVkX25vZGVfdXAoc3RydWN0IG5ldCAqbmV0LCB1MzIgZG5vZGUsIHUxNiBjYXBhYmlsaXRpZXMpO1xuK2ludCB0aXBjX25hbWVkX2Rpc3RfY2x1c3Rlcl9zY29wZShzdHJ1Y3QgbmV0ICpuZXQsIHUzMiBkbm9kZSk7XG4gdm9pZCB0aXBjX25hbWVkX3JjdihzdHJ1Y3QgbmV0ICpuZXQsIHN0cnVjdCBza19idWZmX2hlYWQgKm5hbWVkcSxcbiBcdFx0ICAgIHUxNiAqcmN2X254dCwgYm9vbCAqb3Blbik7XG4gdm9pZCB0aXBjX25hbWVkX3JlaW5pdChzdHJ1Y3QgbmV0ICpuZXQpO1xuZGlmZiAtLWdpdCBhL25ldC90aXBjL25ldC5jIGIvbmV0L3RpcGMvbmV0LmNcbmluZGV4IDdlNjVkMGIwYzRhOGQxLi4yYWE4ODEyYzU1MWFkZCAxMDA2NDRcbi0tLSBhL25ldC90aXBjL25ldC5jXG4rKysgYi9uZXQvdGlwYy9uZXQuY1xuQEAgLTEzOCw3ICsxMzgsMTAgQEAgc3RhdGljIHZvaWQgdGlwY19uZXRfZmluYWxpemUoc3RydWN0IG5ldCAqbmV0LCB1MzIgYWRkcilcbiBcdHRpcGNfbmFtZWRfcmVpbml0KG5ldCk7XG4gXHR0aXBjX3NrX3JlaW5pdChuZXQpO1xuIFx0dGlwY19tb25fcmVpbml0X3NlbGYobmV0KTtcbi1cdHRpcGNfbmFtZXRibF9wdWJsaXNoKG5ldCwgXHUwMDI2dWEsIFx1MDAyNnNrLCBhZGRyKTtcbitcdGlmICghdGlwY19uYW1ldGJsX3B1Ymxpc2gobmV0LCBcdTAwMjZ1YSwgXHUwMDI2c2ssIGFkZHIpKVxuK1x0XHRwcl93YXJuKFwiRmFpbGVkIHRvIHB1Ymxpc2ggb3duIG5vZGUgc3RhdGVcXG5cIik7XG4rXHRhdG9taWNfaW5jKFx1MDAyNnRuLVx1MDAzZWZpbmFsaXplZCk7XG4rXHR3YWtlX3VwX3ZhcihcdTAwMjZ0bi1cdTAwM2VmaW5hbGl6ZWQpO1xuIH1cbiBcbiB2b2lkIHRpcGNfbmV0X2ZpbmFsaXplX3dvcmsoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKVxuZGlmZiAtLWdpdCBhL25ldC90aXBjL25vZGUuYyBiL25ldC90aXBjL25vZGUuY1xuaW5kZXggOTdhYTk3MGEwZDgzY2EuLjQyOGM0ZWFjZDAyZjFmIDEwMDY0NFxuLS0tIGEvbmV0L3RpcGMvbm9kZS5jXG4rKysgYi9uZXQvdGlwYy9ub2RlLmNcbkBAIC0xNDUsNiArMTQ1LDggQEAgc3RydWN0IHRpcGNfbm9kZSB7XG4gI2lmZGVmIENPTkZJR19USVBDX0NSWVBUT1xuIFx0c3RydWN0IHRpcGNfY3J5cHRvICpjcnlwdG9fcng7XG4gI2VuZGlmXG4rXHQvKiBXb3JrIGl0ZW0gZm9yIGJ1bGsgZGlzdHJpYnV0aW9uIG9mIGNsdXN0ZXIgc2NvcGUgcHVibGljYXRpb25zICovXG4rXHRzdHJ1Y3Qgd29ya19zdHJ1Y3Qgd29yaztcbiB9O1xuIFxuIC8qIE5vZGUgRlNNIHN0YXRlcyBhbmQgZXZlbnRzOlxuQEAgLTMwMyw2ICszMDUsNyBAQCBzdGF0aWMgdm9pZCB0aXBjX25vZGVfZnJlZShzdHJ1Y3QgcmN1X2hlYWQgKnJwKVxuICNpZmRlZiBDT05GSUdfVElQQ19DUllQVE9cbiBcdHRpcGNfY3J5cHRvX3N0b3AoXHUwMDI2bi1cdTAwM2VjcnlwdG9fcngpO1xuICNlbmRpZlxuK1x0Y2FuY2VsX3dvcmtfc3luYyhcdTAwMjZuLVx1MDAzZXdvcmspO1xuIFx0a2ZyZWUobik7XG4gfVxuIFxuQEAgLTM5Myw2ICszOTYsMTkgQEAgc3RhdGljIHZvaWQgdGlwY19ub2RlX3dyaXRlX3VubG9ja19mYXN0KHN0cnVjdCB0aXBjX25vZGUgKm4pXG4gXHR3cml0ZV91bmxvY2tfYmgoXHUwMDI2bi1cdTAwM2Vsb2NrKTtcbiB9XG4gXG4rc3RhdGljIHZvaWQgdGlwY19ub2RlX2Rpc3RfYnVsayhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspXG4re1xuK1x0c3RydWN0IHRpcGNfbm9kZSAqbm9kZSA9IGNvbnRhaW5lcl9vZih3b3JrLCBzdHJ1Y3QgdGlwY19ub2RlLCB3b3JrKTtcbitcbitcdGlmICh0aXBjX25hbWVkX2Rpc3RfY2x1c3Rlcl9zY29wZShub2RlLVx1MDAzZW5ldCwgbm9kZS1cdTAwM2VhZGRyKSBcdTAwM2MgMCkge1xuK1x0XHR1MzIgYmVhcmVyX2lkID0gbm9kZS1cdTAwM2VsaW5rX2lkIFx1MDAyNiAweGZmZmY7XG4rXG4rXHRcdHRpcGNfbm9kZV9saW5rX2Rvd24obm9kZSwgYmVhcmVyX2lkLCBmYWxzZSk7XG4rXHR9XG4rXG4rXHR0aXBjX25vZGVfcHV0KG5vZGUpO1xuK31cbitcbiBzdGF0aWMgdm9pZCB0aXBjX25vZGVfd3JpdGVfdW5sb2NrKHN0cnVjdCB0aXBjX25vZGUgKm4pXG4gXHRfX3JlbGVhc2VzKG4tXHUwMDNlbG9jaylcbiB7XG5AQCAtNDI0LDggKzQ0MCwyMiBAQCBzdGF0aWMgdm9pZCB0aXBjX25vZGVfd3JpdGVfdW5sb2NrKHN0cnVjdCB0aXBjX25vZGUgKm4pXG4gXHRpZiAoZmxhZ3MgXHUwMDI2IFRJUENfTk9USUZZX05PREVfRE9XTilcbiBcdFx0dGlwY19wdWJsX25vdGlmeShuZXQsIHB1YmxfbGlzdCwgbm9kZSwgbi1cdTAwM2VjYXBhYmlsaXRpZXMpO1xuIFxuLVx0aWYgKGZsYWdzIFx1MDAyNiBUSVBDX05PVElGWV9OT0RFX1VQKVxuLVx0XHR0aXBjX25hbWVkX25vZGVfdXAobmV0LCBub2RlLCBuLVx1MDAzZWNhcGFiaWxpdGllcyk7XG4rXHRpZiAoZmxhZ3MgXHUwMDI2IFRJUENfTk9USUZZX05PREVfVVApIHtcbitcdFx0aW50IHJjID0gMDtcbitcbitcdFx0cmMgPSB0aXBjX25hbWVkX25vZGVfdXAobmV0LCBub2RlLCBuLVx1MDAzZWNhcGFiaWxpdGllcyk7XG4rXHRcdC8qIERlZmVyIGJ1bGsgZGlzdHJpYnV0aW9uIHRvIHdvcmsgcXVldWUgKi9cbitcdFx0aWYgKHJjIFx1MDAzZSAwKSB7XG4rXHRcdFx0dGlwY19ub2RlX2dldChuKTtcbitcdFx0XHRpZiAoIXNjaGVkdWxlX3dvcmsoXHUwMDI2bi1cdTAwM2V3b3JrKSlcbitcdFx0XHRcdHRpcGNfbm9kZV9wdXQobik7XG4rXHRcdH0gZWxzZSBpZiAocmMgXHUwMDNjIDApIHtcbitcdFx0XHQvKiBCcmluZyB0aGUgbGluayBkb3duIHRvIHN0YXJ0IG92ZXIgYnVsayBkaXN0cmlidXRpb25cbitcdFx0XHQgKiB3aGVuIHRoZSBsaW5rIGlzIHVwIGFnYWluLlxuK1x0XHRcdCAqL1xuK1x0XHRcdHRpcGNfbm9kZV9saW5rX2Rvd24obiwgYmVhcmVyX2lkLCBmYWxzZSk7XG4rXHRcdH1cbitcdH1cbiBcbiBcdGlmIChmbGFncyBcdTAwMjYgVElQQ19OT1RJRllfTElOS19VUCkge1xuIFx0XHR0aXBjX21vbl9wZWVyX3VwKG5ldCwgbm9kZSwgYmVhcmVyX2lkKTtcbkBAIC01NjQsNiArNTk0LDcgQEAgc3RydWN0IHRpcGNfbm9kZSAqdGlwY19ub2RlX2NyZWF0ZShzdHJ1Y3QgbmV0ICpuZXQsIHUzMiBhZGRyLCB1OCAqcGVlcl9pZCxcbiBcdElOSVRfTElTVF9IRUFEKFx1MDAyNm4tXHUwMDNlbGlzdCk7XG4gXHRJTklUX0xJU1RfSEVBRChcdTAwMjZuLVx1MDAzZXB1YmxfbGlzdCk7XG4gXHRJTklUX0xJU1RfSEVBRChcdTAwMjZuLVx1MDAzZWNvbm5fc2tzKTtcbitcdElOSVRfV09SSyhcdTAwMjZuLVx1MDAzZXdvcmssIHRpcGNfbm9kZV9kaXN0X2J1bGspO1xuIFx0c2tiX3F1ZXVlX2hlYWRfaW5pdChcdTAwMjZuLVx1MDAzZWJjX2VudHJ5Lm5hbWVkcSk7XG4gXHRza2JfcXVldWVfaGVhZF9pbml0KFx1MDAyNm4tXHUwMDNlYmNfZW50cnkuaW5wdXRxMSk7XG4gXHRfX3NrYl9xdWV1ZV9oZWFkX2luaXQoXHUwMDI2bi1cdTAwM2ViY19lbnRyeS5hcnJ2cSk7XG4iLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xN1QyMzoxMjo1Mi40Nzc4NDY3MjFaIiwiU2VxIjozLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0MzczNDQ2OTE2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyBhIFRJUEMgUGF0Y2gqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIHBhdGNoIGZvciB0aGUgVElQQyBzdWJzeXN0ZW0gaW4gdGhlIExpbnV4IGtlcm5lbC4gU2VlbXMgbGlrZSBhIHNvbGlkIGZ1bmN0aW9uYWwgY2hhbmdlOyBpdCdzIGdldHRpbmcgZGVlcCBpbnRvIHRoZSBjb3JlIGxvZ2ljLiBTcGVjaWZpY2FsbHksIHRoZXkndmUgaW50cm9kdWNlZCBhIGBmaW5hbGl6ZWRgIGF0b21pYyB2YXJpYWJsZSBpbiBgc3RydWN0IHRpcGNfbmV0YCBhbmQgYSBgd29ya2AgaXRlbSBpbiBgc3RydWN0IHRpcGNfbm9kZWAuIEludGVyZXN0aW5nLi4udGhpcyBwb2ludHMgdG8gaGFuZGxpbmcgc29tZSBzb3J0IG9mIGJ1bGsgcHVibGljYXRpb24gZGlzdHJpYnV0aW9uIGF0IHRoZSBjbHVzdGVyIGxldmVsLiBUaGUgbW9kaWZpY2F0aW9ucyB0byBgdGlwY19uYW1lZF9ub2RlX3VwYCB0byByZXR1cm4gYW4gaW50ZWdlciBpbnN0ZWFkIG9mIHZvaWQsIGFuZCB0aGUgYWRkaXRpb24gb2YgYHRpcGNfbmFtZWRfZGlzdF9jbHVzdGVyX3Njb3BlYCBmdXJ0aGVyIGNvbmZpcm1zIG15IHN1c3BpY2lvbiB0aGF0IHRoZXkncmUgYWRkcmVzc2luZyBhIHJhY2UgY29uZGl0aW9uIG9yIHN5bmNocm9uaXphdGlvbiBpc3N1ZSwgcHJvYmFibHkgZHVyaW5nIG5vZGUgaW5pdGlhbGl6YXRpb24gYW5kIGluaXRpYWwgcHVibGljYXRpb24gZGlzdHJpYnV0aW9uLlxuXG5UaGUgcGF0Y2ggYWxzbyBoYXMgY2hhbmdlcyBpbiBgdGlwY19ub2RlX3dyaXRlX3VubG9ja2AgdG8gaGFuZGxlIHRoZSByZXR1cm4gdmFsdWUgb2YgYHRpcGNfbmFtZWRfbm9kZV91cGAgYW5kIHNjaGVkdWxlIHRoYXQgd29yayBpdGVtLiBTbWFydDsgdGhhdCBsaWtlbHkgdGllcyB0aGUgdW5sb2NraW5nIHRvIGEgZGVmZXJyZWQgcHJvY2Vzc2luZyBzdGVwLCB3aGljaCBpcyBhIGNvbW1vbiB3YXkgdG8gYXZvaWQgY29udGVudGlvbi5cblxuQmVmb3JlIEkgZGlnIGludG8gdGhlIHNwZWNpZmljcyBvZiB0aGUgY29kZSwgSSBzaG91bGQgcHJvYmFibHkgY2hlY2sgdGhlIHJlbGV2YW50IEtjb25maWcgb3B0aW9ucy4gTGV0J3Mgc2VlLi4uSSB0aGluayBgZGVmYXVsdF9hcGk6Z3JlcHBlcmAgc2hvdWxkIGdpdmUgbWUgYSBxdWljayByb3V0ZSB0byB0aGUgVElQQyBLY29uZmlnLiBHb3R0YSBnZXQgdGhlIGNvbmZpZ3VyYXRpb24gY29udGV4dCByaWdodC5cblxuXG4iLCJJbnB1dFRva2VucyI6NTAwNiwiT3V0cHV0VG9rZW5zIjoxNywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjIwMSwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE3VDIzOjEyOjU2Ljg1MTI5NTcyN1oiLCJTZXEiOjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1MDkxNzA5NzcxLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNvbmZpZyBUSVBDXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIm5ldC90aXBjL0tjb25maWctNS1cXG5uZXQvdGlwYy9LY29uZmlnOjY6bWVudWNvbmZpZyBUSVBDXFxubmV0L3RpcGMvS2NvbmZpZy03LVxcdHRyaXN0YXRlIFxcXCJUaGUgVElQQyBQcm90b2NvbFxcXCJcXG4tLVxcbm5ldC90aXBjL0tjb25maWctMjMtXFxubmV0L3RpcGMvS2NvbmZpZzoyNDpjb25maWcgVElQQ19NRURJQV9JQlxcbm5ldC90aXBjL0tjb25maWctMjUtXFx0Ym9vbCBcXFwiSW5maW5pQmFuZCBtZWRpYSB0eXBlIHN1cHBvcnRcXFwiXFxuLS1cXG5uZXQvdGlwYy9LY29uZmlnLTI5LVxcdCAgSVAtb3Zlci1JbmZpbmlCYW5kIGRldmljZXMuXFxubmV0L3RpcGMvS2NvbmZpZzozMDpjb25maWcgVElQQ19NRURJQV9VRFBcXG5uZXQvdGlwYy9LY29uZmlnLTMxLVxcdGJvb2wgXFxcIklQL1VEUCBtZWRpYSB0eXBlIHN1cHBvcnRcXFwiXFxuLS1cXG5uZXQvdGlwYy9LY29uZmlnLTM3LVxcbm5ldC90aXBjL0tjb25maWc6Mzg6Y29uZmlnIFRJUENfQ1JZUFRPXFxubmV0L3RpcGMvS2NvbmZpZy0zOS1cXHRib29sIFxcXCJUSVBDIGVuY3J5cHRpb24gc3VwcG9ydFxcXCJcXG4tLVxcbm5ldC90aXBjL0tjb25maWctNTItXFxubmV0L3RpcGMvS2NvbmZpZzo1Mzpjb25maWcgVElQQ19ESUFHXFxubmV0L3RpcGMvS2NvbmZpZy01NC1cXHR0cmlzdGF0ZSBcXFwiVElQQzogc29ja2V0IG1vbml0b3JpbmcgaW50ZXJmYWNlXFxcIlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xN1QyMzoxMzowMS45NDMwMTEwMThaIiwiU2VxIjo1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo3MjY4MDE3NTAzLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkZ1enppbmcgU3RyYXRlZ3kgZm9yIFRJUEMgQ29yZSBGdW5jdGlvbmFsaXR5KipcblxuT2theSwgaGVyZSdzIHdoYXQgSSdtIHRoaW5raW5nLiBUaGlzIHBhdGNoIGlzIGRlZmluaXRlbHkgY2VudGVyZWQgYXJvdW5kIHRoZSBgVElQQ2AgY29uZmlndXJhdGlvbiDigJMgdGhhdCdzIHRoZSBtYWluIGRyaXZlci4gTG9va2luZyBhdCB0aGUgZmlsZSBtb2RpZmljYXRpb25zLCBpdCdzIGhpdHRpbmcgdGhlIGNvcmUgb2YgdGhlIFRJUEMgaW1wbGVtZW50YXRpb246IGBjb3JlLmNgLCBgbmFtZV9kaXN0ci5jYCwgYG5ldC5jYCwgYW5kIGBub2RlLmNgLiBUaGlzIHN1Z2dlc3RzIGl0J3MgZGlnZ2luZyBpbnRvIGhvdyBUSVBDIG5vZGVzIGFyZSBpbml0aWFsaXplZCwgaG93IG5hbWVzIGFyZSBkaXN0cmlidXRlZCBhY3Jvc3MgdGhlIG5ldHdvcmssIGFuZCB0aGUgb3ZlcmFsbCBuZXR3b3JrIG1hbmFnZW1lbnQuXG5cblRoZSBsaXN0ZWQgZnVuY3Rpb24gY2hhbmdlcyBhcmUgdGhlIGtleSBoZXJlOiBgdGlwY19pbml0X25ldGAsIGBuYW1lZF9kaXN0cmlidXRlYCwgYHRpcGNfbmFtZWRfbm9kZV91cGAsIGB0aXBjX25hbWVkX2Rpc3RfY2x1c3Rlcl9zY29wZWAsIGB0aXBjX25ldF9maW5hbGl6ZWAsIGB0aXBjX25vZGVfZnJlZWAsIGB0aXBjX25vZGVfZGlzdF9idWxrYCwgYHRpcGNfbm9kZV93cml0ZV91bmxvY2tgLCBhbmQgYHRpcGNfbm9kZV9jcmVhdGVgLiBTcGVjaWZpY2FsbHksIGB0aXBjX25hbWVkX25vZGVfdXBgLCBgdGlwY19uYW1lZF9kaXN0X2NsdXN0ZXJfc2NvcGVgLCBgdGlwY19ub2RlX2Rpc3RfYnVsa2AsIGFuZCBgbmFtZWRfZGlzdHJpYnV0ZWAganVtcCBvdXQgYXQgbWUgYXMgcG90ZW50aWFsIHRyb3VibGUgc3BvdHMsIHNvIEknbSBmb2N1c2luZyBvbiB0aG9zZS5cblxuTm93LCBqdXN0IHRvIGJlIHN1cmUsIEkgbmVlZCB0byBjb25maXJtIHRoYXQgYFRJUENgIGlzIHRoZSBvbmx5IGNvbmZpZyByZXF1aXJlZCB0byBoaXQgdGhpcyBjb2RlLiBZZXAsIGl0IHNlZW1zIHRoYXQgYFRJUENgIGFsb25lIGlzIHRoZSB0cmlnZ2VyLCBubyBvdGhlciBkZXBlbmRlbmNpZXMuIEFsc28sIHdpdGggVElQQyBiZWluZyBhIG5ldHdvcmsgcHJvdG9jb2wsIEknbSBjb25maWRlbnQgdGhhdCB0aGVzZSBmdW5jdGlvbnMgYXJlIHJlYWNoYWJsZSDigJMgbGlrZWx5IHRocm91Z2ggc29ja2V0IEFQSXMgYW5kIG5ldGxpbmsgaW50ZXJhY3Rpb25zLCB0aGUgc3RhbmRhcmQgd2F5IHRvIGludGVyYWN0IHdpdGggdGhlc2Ugc3Vic3lzdGVtcy4gVGhlIGNoYW5nZXMgYXJlIGluIGhvdyBub2RlcyBjb25uZWN0IGFuZCBuYW1lIGluZm9ybWF0aW9uIGlzIGRpc3NlbWluYXRlZCwgc28gdGhhdCBtYWtlcyBzZW5zZS5cblxuU28sIEknbSBnb2luZyB0byBzZXQgdXAgbXkgZnV6emluZyBzdHJhdGVneSBsaWtlIHRoaXM6XG5cbiogICBgV29ydGhGdXp6aW5nYDogYHRydWVgIOKAkyBiZWNhdXNlIHRoaXMgcGF0Y2ggdG91Y2hlcyBjb3JlIG5ldHdvcmsgbG9naWMgd2l0aCBmdW5jdGlvbnMgZm9yIGRpc3RyaWJ1dGluZyBuZXR3b3JrIGRhdGEgdGhhdCBhcmUgb2YgaW50ZXJlc3QgZm9yIGZ1enppbmcuXG4qICAgYEVuYWJsZUNvbmZpZ3NgOiBgW1wiVElQQ1wiXWAg4oCTIHRvIGFjdGl2YXRlIHRoZSBjb3JyZWN0IGNvZGUuXG4qICAgYEZvY3VzU3ltYm9sc2A6IGBbXCJ0aXBjX25hbWVkX25vZGVfdXBcIiwgXCJ0aXBjX25hbWVkX2Rpc3RfY2x1c3Rlcl9zY29wZVwiLCBcInRpcGNfbm9kZV9kaXN0X2J1bGtcIiwgXCJuYW1lZF9kaXN0cmlidXRlXCJdYCDigJMgdGhlIGZ1bmN0aW9ucyB0aGF0IHNlZW0gbW9zdCBsaWtlbHkgdG8gZXhwb3NlIHZ1bG5lcmFiaWxpdGllcy5cbiogICBgUmVhc29uaW5nYDogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIFRJUEMgcHJvdG9jb2wncyBub2RlIGluaXRpYWxpemF0aW9uIGFuZCBidWxrIHB1YmxpY2F0aW9uIGRpc3RyaWJ1dGlvbiBsb2dpYywgaW50cm9kdWNpbmcgYSBuZXcgd29yayBpdGVtIGFuZCBzeW5jaHJvbml6YXRpb24gbWVjaGFuaXNtLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIGNvcmUgVElQQyBsb2dpYyB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXCIg4oCTIHRoYXQgc3VtbWFyaXplcyB3aHkgdGhlc2UgZnVuY3Rpb25zIGFyZSBpbXBvcnRhbnQuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjU3ODksIk91dHB1dFRva2VucyI6MTIwLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NDAxLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE3VDIzOjEzOjA5LjIxMTAzMDg4MVoiLCJTZXEiOjYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InNldC1yZXN1bHRzIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTc4MDgzOTU2LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJUSVBDXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwidGlwY19uYW1lZF9ub2RlX3VwXCIsXG4gICAgXCJ0aXBjX25hbWVkX2Rpc3RfY2x1c3Rlcl9zY29wZVwiLFxuICAgIFwidGlwY19ub2RlX2Rpc3RfYnVsa1wiLFxuICAgIFwibmFtZWRfZGlzdHJpYnV0ZVwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBUSVBDIHByb3RvY29sJ3Mgbm9kZSBpbml0aWFsaXphdGlvbiBhbmQgYnVsayBwdWJsaWNhdGlvbiBkaXN0cmlidXRpb24gbG9naWMsIGludHJvZHVjaW5nIGEgbmV3IHdvcmsgaXRlbSBhbmQgc3luY2hyb25pemF0aW9uIG1lY2hhbmlzbS4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSBjb3JlIFRJUEMgbG9naWMgdGhhdCBzaG91bGQgYmUgZnV6emVkLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIlRJUENcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJ0aXBjX25hbWVkX25vZGVfdXBcIixcbiAgICBcInRpcGNfbmFtZWRfZGlzdF9jbHVzdGVyX3Njb3BlXCIsXG4gICAgXCJ0aXBjX25vZGVfZGlzdF9idWxrXCIsXG4gICAgXCJuYW1lZF9kaXN0cmlidXRlXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIFRJUEMgcHJvdG9jb2wncyBub2RlIGluaXRpYWxpemF0aW9uIGFuZCBidWxrIHB1YmxpY2F0aW9uIGRpc3RyaWJ1dGlvbiBsb2dpYywgaW50cm9kdWNpbmcgYSBuZXcgd29yayBpdGVtIGFuZCBzeW5jaHJvbml6YXRpb24gbWVjaGFuaXNtLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIGNvcmUgVElQQyBsb2dpYyB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0udG9rZW5zIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnVG9vbER1ciA9IHN0YXRzLnRvb2wuY291bnQgPiAwID8gKHN0YXRzLnRvb2wuZHVyYXRpb24gLyBzdGF0cy50b29sLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCgkJCWNvbnN0IGxsbVN1bWFyeUNlbGxzID0gW3N0YXRzLmxsbS5jb3VudCwgc3RhdHMubGxtLnRva2VucywgYXZnTGxtVG9rZW4sIHN0YXRzLmxsbS5kdXJhdGlvbiwgYXZnTGxtRHVyXTsKCQkJY29uc3QgdG9vbFN1bW1hcnlDZWxscyA9IFtzdGF0cy50b29sLmNvdW50LCBzdGF0cy50b29sLmR1cmF0aW9uLCBhdmdUb29sRHVyXTsKCgkJCWNvbnN0IGxsbVN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xsbV9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJbGxtU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IGxsbVRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJbGxtU3VtYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCWxsbVRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCWxsbVN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKGxsbVRyKTsKCgkJCWNvbnN0IHRvb2xTdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b29sX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQl0b29sU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IHRvb2xUciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCXRvb2xTdW1tYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCXRvb2xUci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQl0b29sU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQodG9vbFRyKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgZmlsdGVyZWRTdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gWyJsbG0iLCAidG9vbCJdLmluY2x1ZGVzKGQuVHlwZSkpOwoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdEdXJhdGlvbicpOwoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOyAKCgkJCWZpbHRlcmVkU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCQoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7CgkJCQlsZXQgdG9vbHRpcCA9IHMuTmFtZTsKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iICYmIHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCQkJCWRhdGEuYWRkUm93KFtgJHtzLlNlcX1gLCBkdXIsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUaW1lIENvbnN1bXB0aW9uIG9mIExMTS9Ub29sIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0vVG9vbCBTdGVwcycsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdTZWNvbmRzJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkdXJhdGlvbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgbGxtU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IGQuVHlwZSA9PT0gImxsbSIpOwoJCQlpZiAobGxtU3RlcHMubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdUb2tlbnMnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAnc3R5bGUnfSk7CQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOwkKCgkJCWNvbnN0IGFnZW50Q29sb3JzID0ge307CgkJCWNvbnN0IHBhbGV0dGUgPSBbJyM0Mjg1RjQnLCAnI0RCNDQzNycsICcjRjRCNDAwJywgJyMwRjlENTgnLCAnI0FCNDdCQycsICcjMDBBQ0MxJ107CgkJCWxldCBjb2xvcklkeCA9IDA7CgkJCWNvbnN0IGFnZW50TExNQ291bnRzID0ge307CgkJCWxsbVN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQlpZiAoIWFnZW50Q29sb3JzW3MuTmFtZV0pIHsKCQkJCQlhZ2VudENvbG9yc1tzLk5hbWVdID0gcGFsZXR0ZVtjb2xvcklkeCAlIHBhbGV0dGUubGVuZ3RoXTsKCQkJCQljb2xvcklkeCsrOwoJCQkJfQoKCQkJCWFnZW50TExNQ291bnRzW3MuTmFtZV0gPSAoYWdlbnRMTE1Db3VudHNbcy5OYW1lXSB8fCAwKSArIDE7CgkJCQljb25zdCBsYWJlbCA9IGAke3MuTmFtZX0tJHthZ2VudExMTUNvdW50c1tzLk5hbWVdfWA7CgkJCQljb25zdCB0b3RhbFRva2VucyA9IHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnM7CgkJCQljb25zdCBzdHlsZSA9IGBjb2xvcjogJHthZ2VudENvbG9yc1tzLk5hbWVdfWA7CgkJCQlsZXQgdG9vbHRpcCA9IGBUb3RhbCBUb2tlbnM6ICR7dG90YWxUb2tlbnN9XG4oSW46ICR7cy5JbnB1dFRva2Vuc30sIE91dDogJHtzLk91dHB1dFRva2Vuc30sIFRob3VnaHRzOiAke3MuT3V0cHV0VGhvdWdodHNUb2tlbnN9KWA7CgkJCQlpZiAocy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoKCQkJCWRhdGEuYWRkUm93KFtsYWJlbCwgdG90YWxUb2tlbnMsIHN0eWxlLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVG9rZW4gQ29uc3VtcHRpb24gYnkgTExNIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0gQ2FsbCBTZXF1ZW5jZScsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdDb25zdW1lZCBUb2tlbnMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rva2VuX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgkJbGV0IGFsbEV4cGFuZGVkID0gZmFsc2U7CgkJZnVuY3Rpb24gdG9nZ2xlQWxsRGV0YWlscygpIHsKCQkJYWxsRXhwYW5kZWQgPSAhYWxsRXhwYW5kZWQ7CgkJCWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2RldGFpbHMnKS5mb3JFYWNoKGQgPT4gewoJCQkJaWYgKGFsbEV4cGFuZGVkKSBkLnNldEF0dHJpYnV0ZSgnb3BlbicsICcnKTsKCQkJCWVsc2UgZC5yZW1vdmVBdHRyaWJ1dGUoJ29wZW4nKTsKCQkJfSk7CgkJfQoJPC9zY3JpcHQ+CgoKPC9ib2R5Pgo8L2h0bWw+Cg==" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflow5whq6[1] Phase: Succeeded StartedAt: 2026-07-17 23:13:21 +0000 UTC FinishedAt: 2026-07-17 23:13:21 +0000 UTC Input: nil Output: nil --------- Name: series-workflow5whq6[1].abort-on-skip-outcome Phase: Skipped StartedAt: 2026-07-17 23:13:21 +0000 UTC FinishedAt: 2026-07-17 23:13:21 +0000 UTC Input: nil Output: nil --------- Name: series-workflow5whq6[2] Phase: Succeeded StartedAt: 2026-07-17 23:13:21 +0000 UTC FinishedAt: 2026-07-18 03:24:00 +0000 UTC Input: nil Output: nil --------- Name: series-workflow5whq6[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"8d187d4b33c262c0f3e44842553521151d8629e8","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["tipc_named_node_up","tipc_named_dist_cluster_scope","tipc_node_dist_bulk","named_distribute"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"8d187d4b33c262c0f3e44842553521151d8629e8","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC"],"series_id":"a24fe85a-ef5b-44c1-b49e-ca61c7b893a7","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN) Phase: Succeeded StartedAt: 2026-07-17 23:13:22 +0000 UTC FinishedAt: 2026-07-18 03:24:00 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:element,Default:nil,Value:*{"base":{"arch":"amd64","commit_hash":"8d187d4b33c262c0f3e44842553521151d8629e8","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},"fuzz":{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["tipc_named_node_up","tipc_named_dist_cluster_scope","tipc_node_dist_bulk","named_distribute"],"skip_cover_check":false},"patched":{"arch":"amd64","commit_hash":"8d187d4b33c262c0f3e44842553521151d8629e8","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC"],"series_id":"a24fe85a-ef5b-44c1-b49e-ca61c7b893a7","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},"retest":null,"track":"KASAN"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: nil --------- Name: series-workflow5whq6[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"8d187d4b33c262c0f3e44842553521151d8629e8","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["tipc_named_node_up","tipc_named_dist_cluster_scope","tipc_node_dist_bulk","named_distribute"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"8d187d4b33c262c0f3e44842553521151d8629e8","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC"],"series_id":"a24fe85a-ef5b-44c1-b49e-ca61c7b893a7","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[0] Phase: Succeeded StartedAt: 2026-07-17 23:13:22 +0000 UTC FinishedAt: 2026-07-17 23:13:57 +0000 UTC Input: nil Output: nil --------- Name: series-workflow5whq6[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"8d187d4b33c262c0f3e44842553521151d8629e8","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["tipc_named_node_up","tipc_named_dist_cluster_scope","tipc_node_dist_bulk","named_distribute"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"8d187d4b33c262c0f3e44842553521151d8629e8","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC"],"series_id":"a24fe85a-ef5b-44c1-b49e-ca61c7b893a7","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[0].save-base-req Phase: Succeeded StartedAt: 2026-07-17 23:13:22 +0000 UTC FinishedAt: 2026-07-17 23:13:51 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"8d187d4b33c262c0f3e44842553521151d8629e8","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},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-workflow5whq6/series-workflow5whq6-convert-artifact-2183854991/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow5whq6[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"8d187d4b33c262c0f3e44842553521151d8629e8","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["tipc_named_node_up","tipc_named_dist_cluster_scope","tipc_node_dist_bulk","named_distribute"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"8d187d4b33c262c0f3e44842553521151d8629e8","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC"],"series_id":"a24fe85a-ef5b-44c1-b49e-ca61c7b893a7","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[1] Phase: Succeeded StartedAt: 2026-07-17 23:13:57 +0000 UTC FinishedAt: 2026-07-17 23:40:42 +0000 UTC Input: nil Output: nil --------- Name: series-workflow5whq6[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"8d187d4b33c262c0f3e44842553521151d8629e8","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["tipc_named_node_up","tipc_named_dist_cluster_scope","tipc_node_dist_bulk","named_distribute"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"8d187d4b33c262c0f3e44842553521151d8629e8","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC"],"series_id":"a24fe85a-ef5b-44c1-b49e-ca61c7b893a7","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[1].base-build Phase: Succeeded StartedAt: 2026-07-17 23:13:57 +0000 UTC FinishedAt: 2026-07-17 23:40:42 +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:*71ed6369-d223-4cd7-82c4-9f2a8d61ebda,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-workflow5whq6/series-workflow5whq6-convert-artifact-2183854991/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": "4c27a2d8-7c97-4e23-8082-c3d2d7f2449c", "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-workflow5whq6/series-workflow5whq6-build-action-827910357/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow5whq6[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"8d187d4b33c262c0f3e44842553521151d8629e8","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["tipc_named_node_up","tipc_named_dist_cluster_scope","tipc_node_dist_bulk","named_distribute"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"8d187d4b33c262c0f3e44842553521151d8629e8","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC"],"series_id":"a24fe85a-ef5b-44c1-b49e-ca61c7b893a7","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[1].base-build(0) Phase: Succeeded StartedAt: 2026-07-17 23:13:57 +0000 UTC FinishedAt: 2026-07-17 23:40:12 +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:*71ed6369-d223-4cd7-82c4-9f2a8d61ebda,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-workflow5whq6/series-workflow5whq6-convert-artifact-2183854991/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": "4c27a2d8-7c97-4e23-8082-c3d2d7f2449c", "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-workflow5whq6/series-workflow5whq6-build-action-827910357/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow5whq6[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"8d187d4b33c262c0f3e44842553521151d8629e8","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["tipc_named_node_up","tipc_named_dist_cluster_scope","tipc_node_dist_bulk","named_distribute"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"8d187d4b33c262c0f3e44842553521151d8629e8","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC"],"series_id":"a24fe85a-ef5b-44c1-b49e-ca61c7b893a7","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[2] Phase: Succeeded StartedAt: 2026-07-17 23:40:42 +0000 UTC FinishedAt: 2026-07-17 23:40:42 +0000 UTC Input: nil Output: nil --------- Name: series-workflow5whq6[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"8d187d4b33c262c0f3e44842553521151d8629e8","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["tipc_named_node_up","tipc_named_dist_cluster_scope","tipc_node_dist_bulk","named_distribute"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"8d187d4b33c262c0f3e44842553521151d8629e8","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC"],"series_id":"a24fe85a-ef5b-44c1-b49e-ca61c7b893a7","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[2].abort-if-base-build-failed Phase: Skipped StartedAt: 2026-07-17 23:40:42 +0000 UTC FinishedAt: 2026-07-17 23:40:42 +0000 UTC Input: nil Output: nil --------- Name: series-workflow5whq6[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"8d187d4b33c262c0f3e44842553521151d8629e8","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["tipc_named_node_up","tipc_named_dist_cluster_scope","tipc_node_dist_bulk","named_distribute"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"8d187d4b33c262c0f3e44842553521151d8629e8","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC"],"series_id":"a24fe85a-ef5b-44c1-b49e-ca61c7b893a7","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[3] Phase: Succeeded StartedAt: 2026-07-17 23:40:42 +0000 UTC FinishedAt: 2026-07-17 23:40:53 +0000 UTC Input: nil Output: nil --------- Name: series-workflow5whq6[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"8d187d4b33c262c0f3e44842553521151d8629e8","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["tipc_named_node_up","tipc_named_dist_cluster_scope","tipc_node_dist_bulk","named_distribute"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"8d187d4b33c262c0f3e44842553521151d8629e8","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC"],"series_id":"a24fe85a-ef5b-44c1-b49e-ca61c7b893a7","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[3].save-patched-req Phase: Succeeded StartedAt: 2026-07-17 23:40:42 +0000 UTC FinishedAt: 2026-07-17 23:40:49 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"8d187d4b33c262c0f3e44842553521151d8629e8","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC"],"series_id":"a24fe85a-ef5b-44c1-b49e-ca61c7b893a7","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},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-workflow5whq6/series-workflow5whq6-convert-artifact-4157070046/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow5whq6[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"8d187d4b33c262c0f3e44842553521151d8629e8","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["tipc_named_node_up","tipc_named_dist_cluster_scope","tipc_node_dist_bulk","named_distribute"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"8d187d4b33c262c0f3e44842553521151d8629e8","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC"],"series_id":"a24fe85a-ef5b-44c1-b49e-ca61c7b893a7","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[4] Phase: Succeeded StartedAt: 2026-07-17 23:40:53 +0000 UTC FinishedAt: 2026-07-17 23:42:54 +0000 UTC Input: nil Output: nil --------- Name: series-workflow5whq6[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"8d187d4b33c262c0f3e44842553521151d8629e8","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["tipc_named_node_up","tipc_named_dist_cluster_scope","tipc_node_dist_bulk","named_distribute"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"8d187d4b33c262c0f3e44842553521151d8629e8","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC"],"series_id":"a24fe85a-ef5b-44c1-b49e-ca61c7b893a7","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[4].boot-test-base Phase: Succeeded StartedAt: 2026-07-17 23:40:53 +0000 UTC FinishedAt: 2026-07-17 23:42:42 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*4c27a2d8-7c97-4e23-8082-c3d2d7f2449c,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-workflow5whq6/series-workflow5whq6-build-action-827910357/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-workflow5whq6[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"8d187d4b33c262c0f3e44842553521151d8629e8","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["tipc_named_node_up","tipc_named_dist_cluster_scope","tipc_node_dist_bulk","named_distribute"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"8d187d4b33c262c0f3e44842553521151d8629e8","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC"],"series_id":"a24fe85a-ef5b-44c1-b49e-ca61c7b893a7","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[5] Phase: Succeeded StartedAt: 2026-07-17 23:42:54 +0000 UTC FinishedAt: 2026-07-17 23:42:55 +0000 UTC Input: nil Output: nil --------- Name: series-workflow5whq6[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"8d187d4b33c262c0f3e44842553521151d8629e8","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["tipc_named_node_up","tipc_named_dist_cluster_scope","tipc_node_dist_bulk","named_distribute"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"8d187d4b33c262c0f3e44842553521151d8629e8","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC"],"series_id":"a24fe85a-ef5b-44c1-b49e-ca61c7b893a7","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[5].abort-if-base-boot-failed Phase: Skipped StartedAt: 2026-07-17 23:42:54 +0000 UTC FinishedAt: 2026-07-17 23:42:54 +0000 UTC Input: nil Output: nil --------- Name: series-workflow5whq6[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"8d187d4b33c262c0f3e44842553521151d8629e8","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["tipc_named_node_up","tipc_named_dist_cluster_scope","tipc_node_dist_bulk","named_distribute"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"8d187d4b33c262c0f3e44842553521151d8629e8","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC"],"series_id":"a24fe85a-ef5b-44c1-b49e-ca61c7b893a7","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[6] Phase: Succeeded StartedAt: 2026-07-17 23:42:55 +0000 UTC FinishedAt: 2026-07-18 00:14:39 +0000 UTC Input: nil Output: nil --------- Name: series-workflow5whq6[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"8d187d4b33c262c0f3e44842553521151d8629e8","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["tipc_named_node_up","tipc_named_dist_cluster_scope","tipc_node_dist_bulk","named_distribute"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"8d187d4b33c262c0f3e44842553521151d8629e8","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC"],"series_id":"a24fe85a-ef5b-44c1-b49e-ca61c7b893a7","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[6].patched-build Phase: Succeeded StartedAt: 2026-07-17 23:42:55 +0000 UTC FinishedAt: 2026-07-18 00:14:39 +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:*71ed6369-d223-4cd7-82c4-9f2a8d61ebda,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-workflow5whq6/series-workflow5whq6-convert-artifact-4157070046/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": "b7d1da42-2d18-41bb-b21f-2f073c9c63f9", "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-workflow5whq6/series-workflow5whq6-build-action-3668517810/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow5whq6[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"8d187d4b33c262c0f3e44842553521151d8629e8","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["tipc_named_node_up","tipc_named_dist_cluster_scope","tipc_node_dist_bulk","named_distribute"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"8d187d4b33c262c0f3e44842553521151d8629e8","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC"],"series_id":"a24fe85a-ef5b-44c1-b49e-ca61c7b893a7","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[6].patched-build(0) Phase: Succeeded StartedAt: 2026-07-17 23:42:55 +0000 UTC FinishedAt: 2026-07-18 00:14:29 +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:*71ed6369-d223-4cd7-82c4-9f2a8d61ebda,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-workflow5whq6/series-workflow5whq6-convert-artifact-4157070046/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": "b7d1da42-2d18-41bb-b21f-2f073c9c63f9", "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-workflow5whq6/series-workflow5whq6-build-action-3668517810/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow5whq6[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"8d187d4b33c262c0f3e44842553521151d8629e8","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["tipc_named_node_up","tipc_named_dist_cluster_scope","tipc_node_dist_bulk","named_distribute"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"8d187d4b33c262c0f3e44842553521151d8629e8","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC"],"series_id":"a24fe85a-ef5b-44c1-b49e-ca61c7b893a7","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[7] Phase: Succeeded StartedAt: 2026-07-18 00:14:39 +0000 UTC FinishedAt: 2026-07-18 00:14:39 +0000 UTC Input: nil Output: nil --------- Name: series-workflow5whq6[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"8d187d4b33c262c0f3e44842553521151d8629e8","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["tipc_named_node_up","tipc_named_dist_cluster_scope","tipc_node_dist_bulk","named_distribute"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"8d187d4b33c262c0f3e44842553521151d8629e8","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC"],"series_id":"a24fe85a-ef5b-44c1-b49e-ca61c7b893a7","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[7].abort-if-patched-build-failed Phase: Skipped StartedAt: 2026-07-18 00:14:39 +0000 UTC FinishedAt: 2026-07-18 00:14:39 +0000 UTC Input: nil Output: nil --------- Name: series-workflow5whq6[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"8d187d4b33c262c0f3e44842553521151d8629e8","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["tipc_named_node_up","tipc_named_dist_cluster_scope","tipc_node_dist_bulk","named_distribute"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"8d187d4b33c262c0f3e44842553521151d8629e8","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC"],"series_id":"a24fe85a-ef5b-44c1-b49e-ca61c7b893a7","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[8] Phase: Succeeded StartedAt: 2026-07-18 00:14:39 +0000 UTC FinishedAt: 2026-07-18 00:16:49 +0000 UTC Input: nil Output: nil --------- Name: series-workflow5whq6[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"8d187d4b33c262c0f3e44842553521151d8629e8","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["tipc_named_node_up","tipc_named_dist_cluster_scope","tipc_node_dist_bulk","named_distribute"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"8d187d4b33c262c0f3e44842553521151d8629e8","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC"],"series_id":"a24fe85a-ef5b-44c1-b49e-ca61c7b893a7","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[8].boot-test-patched Phase: Succeeded StartedAt: 2026-07-18 00:14:39 +0000 UTC FinishedAt: 2026-07-18 00:16:39 +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:*b7d1da42-2d18-41bb-b21f-2f073c9c63f9,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-workflow5whq6/series-workflow5whq6-build-action-3668517810/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-workflow5whq6[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"8d187d4b33c262c0f3e44842553521151d8629e8","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["tipc_named_node_up","tipc_named_dist_cluster_scope","tipc_node_dist_bulk","named_distribute"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"8d187d4b33c262c0f3e44842553521151d8629e8","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC"],"series_id":"a24fe85a-ef5b-44c1-b49e-ca61c7b893a7","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[10] Phase: Succeeded StartedAt: 2026-07-18 00:16:49 +0000 UTC FinishedAt: 2026-07-18 03:24:00 +0000 UTC Input: nil Output: nil --------- Name: series-workflow5whq6[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"8d187d4b33c262c0f3e44842553521151d8629e8","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["tipc_named_node_up","tipc_named_dist_cluster_scope","tipc_node_dist_bulk","named_distribute"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"8d187d4b33c262c0f3e44842553521151d8629e8","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC"],"series_id":"a24fe85a-ef5b-44c1-b49e-ca61c7b893a7","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[10].run-fuzz Phase: Succeeded StartedAt: 2026-07-18 00:16:49 +0000 UTC FinishedAt: 2026-07-18 03:24:00 +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":["tipc_named_node_up","tipc_named_dist_cluster_scope","tipc_node_dist_bulk","named_distribute"],"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:*4c27a2d8-7c97-4e23-8082-c3d2d7f2449c,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*b7d1da42-2d18-41bb-b21f-2f073c9c63f9,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-workflow5whq6/series-workflow5whq6-build-action-827910357/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-workflow5whq6/series-workflow5whq6-build-action-3668517810/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: nil --------- Name: series-workflow5whq6[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"8d187d4b33c262c0f3e44842553521151d8629e8","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["tipc_named_node_up","tipc_named_dist_cluster_scope","tipc_node_dist_bulk","named_distribute"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"8d187d4b33c262c0f3e44842553521151d8629e8","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC"],"series_id":"a24fe85a-ef5b-44c1-b49e-ca61c7b893a7","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[10].run-fuzz[0] Phase: Succeeded StartedAt: 2026-07-18 00:16:49 +0000 UTC FinishedAt: 2026-07-18 00:17:34 +0000 UTC Input: nil Output: nil --------- Name: series-workflow5whq6[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"8d187d4b33c262c0f3e44842553521151d8629e8","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["tipc_named_node_up","tipc_named_dist_cluster_scope","tipc_node_dist_bulk","named_distribute"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"8d187d4b33c262c0f3e44842553521151d8629e8","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC"],"series_id":"a24fe85a-ef5b-44c1-b49e-ca61c7b893a7","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[10].run-fuzz[0].save-fuzz-config Phase: Succeeded StartedAt: 2026-07-18 00:16:49 +0000 UTC FinishedAt: 2026-07-18 00:17:26 +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":["tipc_named_node_up","tipc_named_dist_cluster_scope","tipc_node_dist_bulk","named_distribute"],"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-workflow5whq6/series-workflow5whq6-convert-artifact-3320561123/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow5whq6[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"8d187d4b33c262c0f3e44842553521151d8629e8","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["tipc_named_node_up","tipc_named_dist_cluster_scope","tipc_node_dist_bulk","named_distribute"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"8d187d4b33c262c0f3e44842553521151d8629e8","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC"],"series_id":"a24fe85a-ef5b-44c1-b49e-ca61c7b893a7","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[9] Phase: Succeeded StartedAt: 2026-07-18 00:16:49 +0000 UTC FinishedAt: 2026-07-18 00:16:49 +0000 UTC Input: nil Output: nil --------- Name: series-workflow5whq6[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"8d187d4b33c262c0f3e44842553521151d8629e8","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["tipc_named_node_up","tipc_named_dist_cluster_scope","tipc_node_dist_bulk","named_distribute"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"8d187d4b33c262c0f3e44842553521151d8629e8","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC"],"series_id":"a24fe85a-ef5b-44c1-b49e-ca61c7b893a7","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[9].abort-if-patched-boot-failed Phase: Skipped StartedAt: 2026-07-18 00:16:49 +0000 UTC FinishedAt: 2026-07-18 00:16:49 +0000 UTC Input: nil Output: nil --------- Name: series-workflow5whq6[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"8d187d4b33c262c0f3e44842553521151d8629e8","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["tipc_named_node_up","tipc_named_dist_cluster_scope","tipc_node_dist_bulk","named_distribute"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"8d187d4b33c262c0f3e44842553521151d8629e8","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC"],"series_id":"a24fe85a-ef5b-44c1-b49e-ca61c7b893a7","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[10].run-retest Phase: Skipped StartedAt: 2026-07-18 00:16:50 +0000 UTC FinishedAt: 2026-07-18 00:16:50 +0000 UTC Input: nil Output: nil --------- Name: series-workflow5whq6[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"8d187d4b33c262c0f3e44842553521151d8629e8","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["tipc_named_node_up","tipc_named_dist_cluster_scope","tipc_node_dist_bulk","named_distribute"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"8d187d4b33c262c0f3e44842553521151d8629e8","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC"],"series_id":"a24fe85a-ef5b-44c1-b49e-ca61c7b893a7","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[10].run-fuzz[1] Phase: Succeeded StartedAt: 2026-07-18 00:17:34 +0000 UTC FinishedAt: 2026-07-18 03:24:00 +0000 UTC Input: nil Output: nil --------- Name: series-workflow5whq6[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"8d187d4b33c262c0f3e44842553521151d8629e8","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["tipc_named_node_up","tipc_named_dist_cluster_scope","tipc_node_dist_bulk","named_distribute"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"8d187d4b33c262c0f3e44842553521151d8629e8","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC"],"series_id":"a24fe85a-ef5b-44c1-b49e-ca61c7b893a7","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[10].run-fuzz[1].fuzz Phase: Succeeded StartedAt: 2026-07-18 00:17:34 +0000 UTC FinishedAt: 2026-07-18 03:23:50 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*4c27a2d8-7c97-4e23-8082-c3d2d7f2449c,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*b7d1da42-2d18-41bb-b21f-2f073c9c63f9,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-workflow5whq6/series-workflow5whq6-build-action-827910357/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-workflow5whq6/series-workflow5whq6-build-action-3668517810/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-workflow5whq6/series-workflow5whq6-convert-artifact-3320561123/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,}