Name: series-workflowhm22j Phase: Succeeded StartedAt: 2026-07-16 10:46:44 +0000 UTC FinishedAt: 2026-07-16 13:24:58 +0000 UTC Input: nil Output: nil --------- Name: series-workflowhm22j[0] Phase: Succeeded StartedAt: 2026-07-16 10:46:44 +0000 UTC FinishedAt: 2026-07-16 11:15:35 +0000 UTC Input: nil Output: nil --------- Name: series-workflowhm22j[0].run-triage Phase: Succeeded StartedAt: 2026-07-16 10:46:44 +0000 UTC FinishedAt: 2026-07-16 11:15:35 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "net-next", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git", "commit_hash": "f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e", "config_name": "upstream-apparmor-kasan.config", "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "net-next", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git", "commit_hash": "f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e", "config_name": "upstream-apparmor-kasan.config", "series_id": "f2ff1656-c00b-4ed8-ba3f-0ba0768df446" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [ "tty_set_ldisc" ], "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+CgkJCTx0ZD4yMDI2LzA3LzE2IDExOjE1PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7dHR5X3NldF9sZGlzYyYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgbG9ja2luZyBiZWhhdmlvciBpbiBgdHR5X3NldF9sZGlzY2AgZHVyaW5nIGxpbmUgZGlzY2lwbGluZSB0cmFuc2l0aW9ucywgd2hpY2ggaXMgYSBjb3JlIFRUWSBvcGVyYXRpb24gcmVhY2hhYmxlIHZpYSB0aGUgYFRJT0NTRVREYCBpb2N0bC4gVGhpcyBpcyBmdW5jdGlvbmFsIGFuZCBzaG91bGQgYmUgZnV6emVkIHRvIGVuc3VyZSBubyBkZWFkbG9ja3Mgb3IgcmFjZSBjb25kaXRpb25zIGFyZSBpbnRyb2R1Y2VkLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE2IDExOjE1PC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5yZWFkLXBhdGNoLWRpZmY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtQYXRjaERpZmYmIzM0OzogJiMzNDtjb21taXQgZmY2NmI2NThkMTViMGM2YjliYmFmZDRhMTI3NmMxMWZiOWQ2ZTAzMVxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBUaHUgSnVsIDE2IDExOjE1OjA0IDIwMjYgJiM0MzswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvdHR5L3R0eV9sZGlzYy5jIGIvZHJpdmVycy90dHkvdHR5X2xkaXNjLmNcbmluZGV4IDI3ZmU4MjM2ZjY2MjMwLi4yNDhhNjk5NWNjNTNhMSAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvdHR5L3R0eV9sZGlzYy5jXG4mIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL3R0eS90dHlfbGRpc2MuY1xuQEAgLTU1NiwxNSAmIzQzOzU1NiwyOCBAQCBpbnQgdHR5X3NldF9sZGlzYyhzdHJ1Y3QgdHR5X3N0cnVjdCAqdHR5LCBpbnQgZGlzYylcbiBcdC8qIFNodXRkb3duIHRoZSBvbGQgZGlzY2lwbGluZS4gKi9cbiBcdHR0eV9sZGlzY19jbG9zZSh0dHksIG9sZF9sZGlzYyk7XG4gXG4tXHQvKiBOb3cgc2V0IHVwIHRoZSBuZXcgbGluZSBkaXNjaXBsaW5lLiAqL1xuLVx0dHR5LVx1MDAzZWxkaXNjID0gbmV3X2xkaXNjO1xuJiM0MztcdC8qIENsZWFyIHR0eS1cdTAwM2VsZGlzYyBzbyBjb25jdXJyZW50IHJlYWRlcnMgYmFjayBvZmYgZHVyaW5nIHRyYW5zaXRpb24gKi9cbiYjNDM7XHR0dHktXHUwMDNlbGRpc2MgPSBOVUxMO1xuIFx0dHR5X3NldF90ZXJtaW9zX2xkaXNjKHR0eSwgZGlzYyk7XG4mIzQzO1x0dHR5X2xkaXNjX3VubG9jayh0dHkpO1xuIFxuJiM0MztcdC8qXG4mIzQzO1x0ICogT3BlbiB0aGUgbmV3IGRpc2NpcGxpbmUgb3V0c2lkZSBsZGlzY19zZW0uIFRoZSBsZGlzYyAub3BlbigpXG4mIzQzO1x0ICogbWF5IGFjcXVpcmUgbG9ja3MgKGUuZy4sIHJ0bmxfbXV0ZXgpIHRoYXQgd291bGQgY3JlYXRlIGNpcmN1bGFyXG4mIzQzO1x0ICogZGVwZW5kZW5jaWVzIGlmIHRha2VuIHVuZGVyIGxkaXNjX3NlbS4gdHR5X2xvY2sgaXMgc3RpbGwgaGVsZCxcbiYjNDM7XHQgKiBwcmV2ZW50aW5nIGNvbmN1cnJlbnQgbGRpc2MgY2hhbmdlcyBhbmQgaGFuZ3VwLlxuJiM0MztcdCAqL1xuIFx0cmV0dmFsID0gdHR5X2xkaXNjX29wZW4odHR5LCBuZXdfbGRpc2MpO1xuJiM0MztcbiYjNDM7XHR0dHlfbGRpc2NfbG9jayh0dHksIE1BWF9TQ0hFRFVMRV9USU1FT1VUKTtcbiYjNDM7XG4gXHRpZiAocmV0dmFsIFx1MDAzYyAwKSB7XG4gXHRcdC8qIEJhY2sgdG8gdGhlIG9sZCBvbmUgb3IgTl9UVFkgaWYgd2UgY2FuJiMzOTt0ICovXG4gXHRcdHR0eV9sZGlzY19wdXQobmV3X2xkaXNjKTtcbiBcdFx0dHR5X2xkaXNjX3Jlc3RvcmUodHR5LCBvbGRfbGRpc2MpO1xuJiM0MztcdH0gZWxzZSB7XG4mIzQzO1x0XHQvKiBTdWNjZXNzIC0gaW5zdGFsbCBuZXcgbGRpc2MgKi9cbiYjNDM7XHRcdHR0eS1cdTAwM2VsZGlzYyA9IG5ld19sZGlzYztcbiBcdH1cbiBcbiBcdGlmICh0dHktXHUwMDNlbGRpc2MtXHUwMDNlb3BzLVx1MDAzZW51bSAhPSBvbGRfbGRpc2MtXHUwMDNlb3BzLVx1MDAzZW51bSBcdTAwMjZcdTAwMjYgdHR5LVx1MDAzZW9wcy1cdTAwM2VzZXRfbGRpc2MpIHtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNiAxMToxNTwvdGQ+CgkJCTx0ZD5hZ2VudDwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogbnVsbCwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O3R0eV9zZXRfbGRpc2MmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIGxvY2tpbmcgYmVoYXZpb3IgaW4gYHR0eV9zZXRfbGRpc2NgIGR1cmluZyBsaW5lIGRpc2NpcGxpbmUgdHJhbnNpdGlvbnMsIHdoaWNoIGlzIGEgY29yZSBUVFkgb3BlcmF0aW9uIHJlYWNoYWJsZSB2aWEgdGhlIGBUSU9DU0VURGAgaW9jdGwuIFRoaXMgaXMgZnVuY3Rpb25hbCBhbmQgc2hvdWxkIGJlIGZ1enplZCB0byBlbnN1cmUgbm8gZGVhZGxvY2tzIG9yIHJhY2UgY29uZGl0aW9ucyBhcmUgaW50cm9kdWNlZC4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkluc3RydWN0aW9uOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+WW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuCllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lCmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC4KCklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpbgp5b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHkKdXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy4KClJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6Ci0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy4KLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy4KLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuCi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLApldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuCgpJZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoCnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLgoKV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086CjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuCiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLgoyLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS4KICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLgogICBEbyBub3QgbGlzdCB0b28gZ2VuZXJpYyBjb25maWdzICh3ZSBhbHJlYWR5IGhhdmUgdGhlbSBlbmFibGVkKS4gT25seSBsaXN0IHRob3NlIHRoYXQKICAgc3BlY2lmaWNhbGx5IGNvdmVyIHRoZSBtb2RpZmllZCBjb2RlLiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3Mgb3V0cHV0IGFycmF5LAogICBhbmQgRE8gTk9UIGFkZCBhICYjMzk7Q09ORklHXyYjMzk7IHByZWZpeCAoZS5nLiwgcmV0dXJuICYjMzQ7TkVUX0lQVjQmIzM0OyBpbnN0ZWFkIG9mICYjMzQ7Q09ORklHX05FVF9JUFY0JiMzNDspLgpQcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy4KCgpVc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLgpJdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS4KSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlByb21wdDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOgpjb21taXQgZmY2NmI2NThkMTViMGM2YjliYmFmZDRhMTI3NmMxMWZiOWQ2ZTAzMQpBdXRob3I6IHN5ei1jbHVzdGVyICZsdDt0cmlhZ2VAc3l6a2FsbGVyLmNvbSZndDsKRGF0ZTogICBUaHUgSnVsIDE2IDExOjE1OjA0IDIwMjYgJiM0MzswMDAwCgogICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3CgpkaWZmIC0tZ2l0IGEvZHJpdmVycy90dHkvdHR5X2xkaXNjLmMgYi9kcml2ZXJzL3R0eS90dHlfbGRpc2MuYwppbmRleCAyN2ZlODIzNmY2NjIzMC4uMjQ4YTY5OTVjYzUzYTEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdHR5L3R0eV9sZGlzYy5jCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvdHR5L3R0eV9sZGlzYy5jCkBAIC01NTYsMTUgJiM0Mzs1NTYsMjggQEAgaW50IHR0eV9zZXRfbGRpc2Moc3RydWN0IHR0eV9zdHJ1Y3QgKnR0eSwgaW50IGRpc2MpCiAJLyogU2h1dGRvd24gdGhlIG9sZCBkaXNjaXBsaW5lLiAqLwogCXR0eV9sZGlzY19jbG9zZSh0dHksIG9sZF9sZGlzYyk7CiAKLQkvKiBOb3cgc2V0IHVwIHRoZSBuZXcgbGluZSBkaXNjaXBsaW5lLiAqLwotCXR0eS0mZ3Q7bGRpc2MgPSBuZXdfbGRpc2M7CiYjNDM7CS8qIENsZWFyIHR0eS0mZ3Q7bGRpc2Mgc28gY29uY3VycmVudCByZWFkZXJzIGJhY2sgb2ZmIGR1cmluZyB0cmFuc2l0aW9uICovCiYjNDM7CXR0eS0mZ3Q7bGRpc2MgPSBOVUxMOwogCXR0eV9zZXRfdGVybWlvc19sZGlzYyh0dHksIGRpc2MpOwomIzQzOwl0dHlfbGRpc2NfdW5sb2NrKHR0eSk7CiAKJiM0MzsJLyoKJiM0MzsJICogT3BlbiB0aGUgbmV3IGRpc2NpcGxpbmUgb3V0c2lkZSBsZGlzY19zZW0uIFRoZSBsZGlzYyAub3BlbigpCiYjNDM7CSAqIG1heSBhY3F1aXJlIGxvY2tzIChlLmcuLCBydG5sX211dGV4KSB0aGF0IHdvdWxkIGNyZWF0ZSBjaXJjdWxhcgomIzQzOwkgKiBkZXBlbmRlbmNpZXMgaWYgdGFrZW4gdW5kZXIgbGRpc2Nfc2VtLiB0dHlfbG9jayBpcyBzdGlsbCBoZWxkLAomIzQzOwkgKiBwcmV2ZW50aW5nIGNvbmN1cnJlbnQgbGRpc2MgY2hhbmdlcyBhbmQgaGFuZ3VwLgomIzQzOwkgKi8KIAlyZXR2YWwgPSB0dHlfbGRpc2Nfb3Blbih0dHksIG5ld19sZGlzYyk7CiYjNDM7CiYjNDM7CXR0eV9sZGlzY19sb2NrKHR0eSwgTUFYX1NDSEVEVUxFX1RJTUVPVVQpOwomIzQzOwogCWlmIChyZXR2YWwgJmx0OyAwKSB7CiAJCS8qIEJhY2sgdG8gdGhlIG9sZCBvbmUgb3IgTl9UVFkgaWYgd2UgY2FuJiMzOTt0ICovCiAJCXR0eV9sZGlzY19wdXQobmV3X2xkaXNjKTsKIAkJdHR5X2xkaXNjX3Jlc3RvcmUodHR5LCBvbGRfbGRpc2MpOwomIzQzOwl9IGVsc2UgewomIzQzOwkJLyogU3VjY2VzcyAtIGluc3RhbGwgbmV3IGxkaXNjICovCiYjNDM7CQl0dHktJmd0O2xkaXNjID0gbmV3X2xkaXNjOwogCX0KIAogCWlmICh0dHktJmd0O2xkaXNjLSZndDtvcHMtJmd0O251bSAhPSBvbGRfbGRpc2MtJmd0O29wcy0mZ3Q7bnVtICZhbXA7JmFtcDsgdHR5LSZndDtvcHMtJmd0O3NldF9sZGlzYykgewo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNiAxMToxNTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyMTIzCgkJCQkJCQlvdXRwdXQ6IDM2CgkJCQkJCQl0aG91Z2h0czogMTM0CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgVFRZIExpbmUgRGlzY2lwbGluZSBQYXRjaCoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCB0aGF0JiMzOTtzIHRpbmtlcmluZyB3aXRoIGB0dHlfc2V0X2xkaXNjYCB3aXRoaW4gYGRyaXZlcnMvdHR5L3R0eV9sZGlzYy5jYC4gUmlnaHQgYXdheSwgdGhlIGNoYW5nZSB0aGF0JiMzOTtzIGNhdWdodCBteSBleWUgaXMgdGhlIG1vZGlmaWNhdGlvbiB0byBob3cgdGhlIGxvY2tpbmcgd29ya3MgYXJvdW5kIGB0dHlfbGRpc2Nfb3BlbmAuIEl0IGFwcGVhcnMgdGhleSYjMzk7cmUgc3RyYXRlZ2ljYWxseSB1bmxvY2tpbmcgYGxkaXNjX3NlbWAgKmJlZm9yZSogY2FsbGluZyBgdHR5X2xkaXNjX29wZW5gLiBUaGVuLCB0aGV5JiMzOTtyZSByZS1sb2NraW5nIGl0IGltbWVkaWF0ZWx5IGFmdGVyd2FyZC4gSW50ZXJlc3RpbmcuIFRoYXQmIzM5O3MgYSBjbGFzc2ljIHNpZ25hbCB0aGF0IHRoZXJlJiMzOTtzIGEgcG90ZW50aWFsIHJhY2UgY29uZGl0aW9uIHRoZXkmIzM5O3JlIHRyeWluZyB0byBtaXRpZ2F0ZSwgb3IgcGVyaGFwcyB0aGV5JiMzOTtyZSBvcHRpbWl6aW5nIGZvciBjb25jdXJyZW5jeS4KClBsdXMsIEkgbm90aWNlIHRoZXkmIzM5O3JlIG51bGxpZnlpbmcgYHR0eS0mZ3Q7bGRpc2NgICpiZWZvcmUqIHRoZSB1bmxvY2suIFRoaXMgaXMgbGlrZWx5IHRvIHByZXZlbnQgYSB1c2UtYWZ0ZXItZnJlZSBzY2VuYXJpby4gQW5kIHRoZW4sIGlmIGB0dHlfbGRpc2Nfb3BlbmAgYWN0dWFsbHkgc3VjY2VlZHMsIHRoZXkgcmVhc3NpZ24gdGhlIGB0dHktJmd0O2xkaXNjYCBwb2ludGVyICphZnRlciogcmUtYWNxdWlyaW5nIHRoZSBsb2NrLCB0byB0aGUgYG5ld19sZGlzY2AuIE1ha2VzIHNlbnNlLCB0byBlbnN1cmUgY29uc2lzdGVuY3kgYW5kIHByZXZlbnQgZGFuZ2xpbmcgcG9pbnRlcnMuIFNvLCBJIG5lZWQgdG8gdW5kZXJzdGFuZCB3aHkgdGhpcyBzcGVjaWZpYyBzZXF1ZW5jZSBpcyBuZWNlc3NhcnkgYW5kIHdoYXQgY29uY3VycmVuY3kgY29uY2VybnMgdGhleSYjMzk7cmUgbGlrZWx5IGFkZHJlc3NpbmcuIFRpbWUgdG8gZGlnIGRlZXBlciBpbnRvIHRoZSByYXRpb25hbGUgYmVoaW5kIHRoaXMgYXBwcm9hY2ggYW5kIHRoZSBwb3RlbnRpYWwgcmFjZSBjb25kaXRpb25zIHRoZXkgbWlnaHQgYmUgcHJlZW1wdGluZy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNiAxMToxNTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDt0dHlfc2V0X2xkaXNjJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy90dHkvdHR5X2xkaXNjLmMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy90dHkvdHR5X2xkaXNjLmM9NDkxPXN0YXRpYyB2b2lkIHR0eV9sZGlzY19yZXN0b3JlKHN0cnVjdCB0dHlfc3RydWN0ICp0dHksIHN0cnVjdCB0dHlfbGRpc2MgKm9sZClcbi0tXG5kcml2ZXJzL3R0eS90dHlfbGRpc2MuYy01MDktLyoqXG5kcml2ZXJzL3R0eS90dHlfbGRpc2MuYzo1MTA6ICogdHR5X3NldF9sZGlzY1x0XHQtXHRzZXQgbGluZSBkaXNjaXBsaW5lXG5kcml2ZXJzL3R0eS90dHlfbGRpc2MuYy01MTEtICogQHR0eTogdGhlIHRlcm1pbmFsIHRvIHNldFxuLS1cbmRyaXZlcnMvdHR5L3R0eV9sZGlzYy5jLTUxOC0gKi9cbmRyaXZlcnMvdHR5L3R0eV9sZGlzYy5jOjUxOTppbnQgdHR5X3NldF9sZGlzYyhzdHJ1Y3QgdHR5X3N0cnVjdCAqdHR5LCBpbnQgZGlzYylcbmRyaXZlcnMvdHR5L3R0eV9sZGlzYy5jLTUyMC17XG4tLVxuZHJpdmVycy90dHkvdHR5X2xkaXNjLmMtNjA5LX1cbmRyaXZlcnMvdHR5L3R0eV9sZGlzYy5jOjYxMDpFWFBPUlRfU1lNQk9MX0dQTCh0dHlfc2V0X2xkaXNjKTtcbmRyaXZlcnMvdHR5L3R0eV9sZGlzYy5jLTYxMS1cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNiAxMToxNTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyODMzCgkJCQkJCQlvdXRwdXQ6IDMwCgkJCQkJCQl0aG91Z2h0czogODkKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgZnJhbWVkIGZyb20gbXkgZXhwZXJ0IHBlcnNwZWN0aXZlOgoKKipQYXRjaCBBbmFseXNpcyBhbmQgVFRZIENvbmZpZ3VyYXRpb24gUmV2aWV3KioKCkFscmlnaHQsIHNvIHRoZSBwYXRjaCBpcyBpbi4gU2VlbXMgbGlrZSBpdCYjMzk7cyBhIHNvbGlkIGZ1bmN0aW9uYWwgY2hhbmdlLCBhbmQgaXQmIzM5O3MgdG91Y2hpbmcgY29yZSBUVFkgbG9naWMg4oCTIGFsd2F5cyBhIHNlbnNpdGl2ZSBhcmVhLiBNeSBmaXJzdCBvcmRlciBvZiBidXNpbmVzcyBpcyB0byB0aG9yb3VnaGx5IHVuZGVyc3RhbmQgdGhlIHBvdGVudGlhbCBjb25maWd1cmF0aW9uIGltcGxpY2F0aW9ucy4gU2luY2UgaXQmIzM5O3MgaW50ZXJhY3Rpbmcgd2l0aCB0aGUgVFRZIGxheWVyIGRpcmVjdGx5LCBJJiMzOTtsbCBuZWVkIHRvIGNvbmZpcm0gaWYgdGhlcmUgYXJlIGFueSBzZXR0aW5ncyB0aGF0IG1pZ2h0IG5lZWQgYWRqdXN0bWVudCB0byBhY2NvbW1vZGF0ZSB0aGlzIGNoYW5nZSBvciwgd29yc2UsIGlmIHRoZXJlIGFyZSBpbnRlcmFjdGlvbnMgdGhhdCBjb3VsZCBjYXVzZSByZWdyZXNzaW9ucyBpbiBjZXJ0YWluIGNvbmZpZ3VyYXRpb25zLgoKSSYjMzk7bSB6ZXJvaW5nIGluIG9uIGBkcml2ZXJzL3R0eS90dHlfbGRpc2MuY2AgYXMgdGhlIHJlbGV2YW50IGZpbGUsIHdoaWNoIG1ha2VzIHNlbnNlLiBLbm93aW5nIGhvdyB0aGUgVFRZIHN1YnN5c3RlbSBpcyBzdHJ1Y3R1cmVkLCB0aGF0JiMzOTtzIHdoZXJlIEkmIzM5O2QgZXhwZWN0IGxpbmUgZGlzY2lwbGluZSByZWxhdGVkIGNoYW5nZXMuIE5vdywgc3BlY2lmaWNhbGx5LCBJ4oCZbSBpbnRlcmVzdGVkIGluIGhvdyB0aGlzIGludGVyYWN0cyB3aXRoIGB0dHlfc2V0X2xkaXNjYCwgYmVjYXVzZSB0aGF0IGlzIHRoZSBjcnVjaWFsIGZ1bmN0aW9uLiBJIGtub3cgdGhhdCBmdW5jdGlvbiBpcyB0cmlnZ2VyZWQgYnkgYHRpb2NzZXRkYCwgd2hpY2ggaXMgdGhlIGBUSU9DU0VURGAgaW9jdGwgY2FsbC4gVGhhdCBuYXJyb3dzIGRvd24gbXkgZm9jdXMuIE5vdyBJIG5lZWQgdG8ga25vdyBpZiB0aGVyZSBhcmUgYW55IG5pY2hlIFRUWSBzZXR0aW5ncyB0aGF0IG1pZ2h0IGFmZmVjdCB0aGUgcGF0Y2guIFRUWSBpcyBnZW5lcmFsbHkgYWx3YXlzIGVuYWJsZWQsIGJ1dCBJJiMzOTtsbCBtYWtlIHN1cmUgdGhlcmUmIzM5O3Mgbm90aGluZyBzdHJhbmdlIHRoYXQgSSYjMzk7bSBtaXNzaW5nLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE2IDExOjE1PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3R0eV9zZXRfbGRpc2MmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL3R0eS8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy90dHkvdHR5X2lvLmM9MjM4MD1zdGF0aWMgaW50IHRpb2Njb25zKHN0cnVjdCBmaWxlICpmaWxlKVxuLS1cbmRyaXZlcnMvdHR5L3R0eV9pby5jLTI0MTgtICpcbmRyaXZlcnMvdHR5L3R0eV9pby5jOjI0MTk6ICogTG9ja2luZzogc2VlIHR0eV9zZXRfbGRpc2MoKSwgdGhpcyBmdW5jdGlvbiBpcyBqdXN0IGEgaGVscGVyXG5kcml2ZXJzL3R0eS90dHlfaW8uYy0yNDIwLSAqL1xuZHJpdmVycy90dHkvdHR5X2lvLmM9MjQyMT1zdGF0aWMgaW50IHRpb2NzZXRkKHN0cnVjdCB0dHlfc3RydWN0ICp0dHksIGludCBfX3VzZXIgKnApXG4tLVxuZHJpdmVycy90dHkvdHR5X2lvLmMtMjQyOC1cbmRyaXZlcnMvdHR5L3R0eV9pby5jOjI0Mjk6XHRyZXQgPSB0dHlfc2V0X2xkaXNjKHR0eSwgZGlzYyk7XG5kcml2ZXJzL3R0eS90dHlfaW8uYy0yNDMwLVxuLS1cbmRyaXZlcnMvdHR5L3R0eV9sZGlzYy5jPTQ5MT1zdGF0aWMgdm9pZCB0dHlfbGRpc2NfcmVzdG9yZShzdHJ1Y3QgdHR5X3N0cnVjdCAqdHR5LCBzdHJ1Y3QgdHR5X2xkaXNjICpvbGQpXG4tLVxuZHJpdmVycy90dHkvdHR5X2xkaXNjLmMtNTA5LS8qKlxuZHJpdmVycy90dHkvdHR5X2xkaXNjLmM6NTEwOiAqIHR0eV9zZXRfbGRpc2NcdFx0LVx0c2V0IGxpbmUgZGlzY2lwbGluZVxuZHJpdmVycy90dHkvdHR5X2xkaXNjLmMtNTExLSAqIEB0dHk6IHRoZSB0ZXJtaW5hbCB0byBzZXRcbi0tXG5kcml2ZXJzL3R0eS90dHlfbGRpc2MuYy01MTgtICovXG5kcml2ZXJzL3R0eS90dHlfbGRpc2MuYzo1MTk6aW50IHR0eV9zZXRfbGRpc2Moc3RydWN0IHR0eV9zdHJ1Y3QgKnR0eSwgaW50IGRpc2MpXG5kcml2ZXJzL3R0eS90dHlfbGRpc2MuYy01MjAte1xuLS1cbmRyaXZlcnMvdHR5L3R0eV9sZGlzYy5jLTYwOS19XG5kcml2ZXJzL3R0eS90dHlfbGRpc2MuYzo2MTA6RVhQT1JUX1NZTUJPTF9HUEwodHR5X3NldF9sZGlzYyk7XG5kcml2ZXJzL3R0eS90dHlfbGRpc2MuYy02MTEtXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ny8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTYgMTE6MTU8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzY5MwoJCQkJCQkJb3V0cHV0OiAzMQoJCQkJCQkJdGhvdWdodHM6IDczCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBsZXQmIzM5O3MgYnJlYWsgdGhpcyBkb3duLgoKKipGdXp6aW5nIFRhcmdldCBJZGVudGlmaWNhdGlvbjogdHR5X3NldF9sZGlzYyoqCgpSaWdodCwgYHR0eV9zZXRfbGRpc2NgLiBUaGF0IGZ1bmN0aW9uICpkZWZpbml0ZWx5KiBsb29rcyBsaWtlIGEgZ29vZCB0YXJnZXQgZm9yIGZ1enppbmcuIEl0JiMzOTtzIGJ1cmllZCBpbiB0aGUgVFRZIGxheWVyLCB3aGljaCBpcyBwcmV0dHkgZnVuZGFtZW50YWwuIE15IGluc3RpbmN0cyB0ZWxsIG1lIGl0JiMzOTtzIGxpa2VseSByZWFjaGFibGUgZ2l2ZW4gaG93IGNvcmUgaXQgaXMsIHdoaWNoIGFsd2F5cyBwaXF1ZXMgbXkgaW50ZXJlc3QuIFRoZSBmb2N1cyBoZXJlIGlzIGNsZWFybHkgb24gYHR0eV9zZXRfbGRpc2NgIHNwZWNpZmljYWxseS4gSSBuZWVkIHRvIG1ha2Ugc3VyZSBJIHVuZGVyc3RhbmQgdGhlIGNvbnRleHQuCgpJIG5lZWQgdG8gY29uZmlybSB0aGF0IHRoZSBUVFkgY29kZSBpcyBlbmFibGVkIGJ5IGRlZmF1bHQuIE9mdGVuLCBkZWZhdWx0IGNvbmZpZ3VyYXRpb25zIGFyZSB0aGUgcmljaGVzdCB0ZXN0aW5nIGdyb3VuZCBiZWNhdXNlIHRoZXkmIzM5O3JlIHRoZSBtb3N0IGNvbW1vbmx5IGVuY291bnRlcmVkLiBUaGVuIEkgd2lsbCBkb3VibGUtY2hlY2sgd2hldGhlciB0aGUgY29kZSBmb3IgYHR0eV9sZGlzYy5jYCBpcyBjb21waWxlZCBpbiB0aGlzIGNvbmZpZ3VyYXRpb24uIEVuc3VyaW5nIHRoZSBiYXNpYyBUVFkgZnVuY3Rpb25hbGl0eSBpcyBlbmFibGVkIGlzIGtleSBmb3IgdGVzdGluZyB0aGlzIGZ1bmN0aW9uLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE2IDExOjE1PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3R0eV9sZGlzYy5vJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy90dHkvTWFrZWZpbGUmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy90dHkvTWFrZWZpbGUtMS0jIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wXG5kcml2ZXJzL3R0eS9NYWtlZmlsZToyOm9iai0kKENPTkZJR19UVFkpXHRcdCYjNDM7PSB0dHlfaW8ubyBuX3R0eS5vIHR0eV9pb2N0bC5vIHR0eV9sZGlzYy5vIFxcXG5kcml2ZXJzL3R0eS9NYWtlZmlsZS0zLVx0XHRcdFx0ICAgdHR5X2J1ZmZlci5vIHR0eV9wb3J0Lm8gdHR5X211dGV4Lm8gXFxcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD45LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNiAxMToxNTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA0MDg4CgkJCQkJCQlvdXRwdXQ6IDk4CgkJCQkJCQl0aG91Z2h0czogMTg0CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgS2VybmVsIFBhdGNoIGZvciBGdXp6aW5nIFBvdGVudGlhbCoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCBhbmQgZmlndXJpbmcgb3V0IGhvdyBiZXN0IHRvIGFwcHJvYWNoIGZ1enppbmcgaXQuIFRoZSBpbml0aWFsIHRob3VnaHQgd2FzIHRvIHNpbXBseSBsaXN0IGBDT05GSUdfVFRZYCBiZWNhdXNlIGl0JiMzOTtzIHVzdWFsbHkgZW5hYmxlZCwgYnV0IHRoZSBwcm9tcHQmIzM5O3MgY2xlYXI6ICYjMzQ7RG9uJiMzOTt0IGxpc3QgZ2VuZXJpYyBjb25maWdzLCBvbmx5IHRob3NlIHNwZWNpZmljYWxseSB0aWVkIHRvIHRoZSBtb2RpZmllZCBjb2RlLiYjMzQ7IGBDT05GSUdfVFRZYCBpcyAqd2F5KiB0b28gYnJvYWQgaGVyZS4KCk5vdywgbGV0JiMzOTtzIHNlZSB3aGF0JiMzOTtzIGFjdHVhbGx5IGJlZW4gdG91Y2hlZC4gQWgsIG9ubHkgYHR0eV9zZXRfbGRpc2NgLiBUaGF0JiMzOTtzIGl0LCB0aGF0JiMzOTtzIHRoZSBrZXkuCgpNeSByZWFzb25pbmcgaXMgc3RyYWlnaHRmb3J3YXJkOiB0aGlzIHBhdGNoIGlzIG1lc3Npbmcgd2l0aCB0aGUgbG9ja2luZyBpbiBgdHR5X3NldF9sZGlzY2AgZHVyaW5nIGxpbmUgZGlzY2lwbGluZSB0cmFuc2l0aW9ucy4gVGhhdCBmdW5jdGlvbiBpcyBwcmV0dHkgY3J1Y2lhbDsgaXQmIzM5O3MgcmlnaHQgaW4gdGhlIGhlYXJ0IG9mIFRUWSBvcGVyYXRpb25zLCBlc3BlY2lhbGx5IHJlYWNoYWJsZSB0aHJvdWdoIHRoZSBgVElPQ1NFVERgIGlvY3RsLiBUaGlzIGlzIGRlZmluaXRlbHkgYSBmdW5jdGlvbmFsIG1vZGlmaWNhdGlvbiwgYW5kIHRob3NlIGFyZSBwcmltZSBjYW5kaWRhdGVzIGZvciBmdXp6aW5nIHRvIGNhdGNoIGFueSBuZXcgZGVhZGxvY2tzIG9yIHJhY2UgY29uZGl0aW9ucy4gVGhlIGdvYWwgaXMgdG8gbWFrZSBzdXJlIG5vdGhpbmcgaGFzIGJlZW4gYnJva2VuLCBzbyBpdCBpcyBpbXBvcnRhbnQgdG8gY2hlY2sgdGhlIGxvY2tpbmcgaW4gdGhlIG1vZGlmaWVkIGNvZGUuCgpTbywgdGhlIGBGb2N1c1N5bWJvbGAgaXMgYHR0eV9zZXRfbGRpc2NgLiBObyBzcGVjaWZpYyBjb25maWcgb3B0aW9ucyBuZWVkIHRvIGJlIGVuYWJsZWQgYmVmb3JlIGZ1enppbmcsIHNvIGBFbmFibGVDb25maWdzYCBpcyBlbXB0eS4gVGhlIGBXb3J0aEZ1enppbmdgIGZsYWcgaXMgZGVmaW5pdGVseSBgdHJ1ZWAgaW4gbXkgYm9vay4gV2UgbmVlZCB0byBoaXQgdGhpcyB3aXRoIGZ1enppbmcuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE2IDExOjE1PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+c2V0LXJlc3VsdHM8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogW10sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDt0dHlfc2V0X2xkaXNjJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBsb2NraW5nIGJlaGF2aW9yIGluIGB0dHlfc2V0X2xkaXNjYCBkdXJpbmcgbGluZSBkaXNjaXBsaW5lIHRyYW5zaXRpb25zLCB3aGljaCBpcyBhIGNvcmUgVFRZIG9wZXJhdGlvbiByZWFjaGFibGUgdmlhIHRoZSBgVElPQ1NFVERgIGlvY3RsLiBUaGlzIGlzIGZ1bmN0aW9uYWwgYW5kIHNob3VsZCBiZSBmdXp6ZWQgdG8gZW5zdXJlIG5vIGRlYWRsb2NrcyBvciByYWNlIGNvbmRpdGlvbnMgYXJlIGludHJvZHVjZWQuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7dHR5X3NldF9sZGlzYyYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgbG9ja2luZyBiZWhhdmlvciBpbiBgdHR5X3NldF9sZGlzY2AgZHVyaW5nIGxpbmUgZGlzY2lwbGluZSB0cmFuc2l0aW9ucywgd2hpY2ggaXMgYSBjb3JlIFRUWSBvcGVyYXRpb24gcmVhY2hhYmxlIHZpYSB0aGUgYFRJT0NTRVREYCBpb2N0bC4gVGhpcyBpcyBmdW5jdGlvbmFsIGFuZCBzaG91bGQgYmUgZnV6emVkIHRvIGVuc3VyZSBubyBkZWFkbG9ja3Mgb3IgcmFjZSBjb25kaXRpb25zIGFyZSBpbnRyb2R1Y2VkLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTwvdGJvZHk+Cgk8L3RhYmxlPgoKCTxkaXYgaWQ9ImxsbV9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+TExNIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgVG9rZW5zPC90aD4KCQkJCQk8dGg+QXZnIFRva2VuczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJsbG1fc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJ0b29sX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5Ub29sIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9InRvb2xfc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJkdXJhdGlvbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+Cgk8ZGl2IGlkPSJ0b2tlbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+CgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9qc2FwaSI+PC9zY3JpcHQ+Cgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CgkJZ29vZ2xlLmxvYWQoInZpc3VhbGl6YXRpb24iLCAiMSIsIHtwYWNrYWdlczpbImNvcmVjaGFydCJdfSk7CgkJZ29vZ2xlLnNldE9uTG9hZENhbGxiYWNrKGRyYXdDaGFydHMpOwoKCQlmdW5jdGlvbiBkcmF3Q2hhcnRzKCkgewoJCQljb25zdCByYXdEYXRhID0gW3siU3RhcnRlZCI6IjIwMjYtMDctMTZUMTE6MTU6MDUuOTQ1MzgzMjY4WiIsIlNlcSI6MCwiTmVzdGluZyI6MCwiVHlwZSI6ImZsb3ciLCJOYW1lIjoicGF0Y2gtdHJpYWdlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTc2ODkwMDY1MTgsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwidHR5X3NldF9sZGlzY1wiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBsb2NraW5nIGJlaGF2aW9yIGluIGB0dHlfc2V0X2xkaXNjYCBkdXJpbmcgbGluZSBkaXNjaXBsaW5lIHRyYW5zaXRpb25zLCB3aGljaCBpcyBhIGNvcmUgVFRZIG9wZXJhdGlvbiByZWFjaGFibGUgdmlhIHRoZSBgVElPQ1NFVERgIGlvY3RsLiBUaGlzIGlzIGZ1bmN0aW9uYWwgYW5kIHNob3VsZCBiZSBmdXp6ZWQgdG8gZW5zdXJlIG5vIGRlYWRsb2NrcyBvciByYWNlIGNvbmRpdGlvbnMgYXJlIGludHJvZHVjZWQuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE2VDExOjE1OjA1Ljk0NTQ4Mjk0OFoiLCJTZXEiOjEsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoicmVhZC1wYXRjaC1kaWZmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NjUxODA4Mjg2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJQYXRjaERpZmZcIjogXCJjb21taXQgZmY2NmI2NThkMTViMGM2YjliYmFmZDRhMTI3NmMxMWZiOWQ2ZTAzMVxcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXFx1MDAzZVxcbkRhdGU6ICAgVGh1IEp1bCAxNiAxMToxNTowNCAyMDI2ICswMDAwXFxuXFxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xcblxcbmRpZmYgLS1naXQgYS9kcml2ZXJzL3R0eS90dHlfbGRpc2MuYyBiL2RyaXZlcnMvdHR5L3R0eV9sZGlzYy5jXFxuaW5kZXggMjdmZTgyMzZmNjYyMzAuLjI0OGE2OTk1Y2M1M2ExIDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvdHR5L3R0eV9sZGlzYy5jXFxuKysrIGIvZHJpdmVycy90dHkvdHR5X2xkaXNjLmNcXG5AQCAtNTU2LDE1ICs1NTYsMjggQEAgaW50IHR0eV9zZXRfbGRpc2Moc3RydWN0IHR0eV9zdHJ1Y3QgKnR0eSwgaW50IGRpc2MpXFxuIFxcdC8qIFNodXRkb3duIHRoZSBvbGQgZGlzY2lwbGluZS4gKi9cXG4gXFx0dHR5X2xkaXNjX2Nsb3NlKHR0eSwgb2xkX2xkaXNjKTtcXG4gXFxuLVxcdC8qIE5vdyBzZXQgdXAgdGhlIG5ldyBsaW5lIGRpc2NpcGxpbmUuICovXFxuLVxcdHR0eS1cXHUwMDNlbGRpc2MgPSBuZXdfbGRpc2M7XFxuK1xcdC8qIENsZWFyIHR0eS1cXHUwMDNlbGRpc2Mgc28gY29uY3VycmVudCByZWFkZXJzIGJhY2sgb2ZmIGR1cmluZyB0cmFuc2l0aW9uICovXFxuK1xcdHR0eS1cXHUwMDNlbGRpc2MgPSBOVUxMO1xcbiBcXHR0dHlfc2V0X3Rlcm1pb3NfbGRpc2ModHR5LCBkaXNjKTtcXG4rXFx0dHR5X2xkaXNjX3VubG9jayh0dHkpO1xcbiBcXG4rXFx0LypcXG4rXFx0ICogT3BlbiB0aGUgbmV3IGRpc2NpcGxpbmUgb3V0c2lkZSBsZGlzY19zZW0uIFRoZSBsZGlzYyAub3BlbigpXFxuK1xcdCAqIG1heSBhY3F1aXJlIGxvY2tzIChlLmcuLCBydG5sX211dGV4KSB0aGF0IHdvdWxkIGNyZWF0ZSBjaXJjdWxhclxcbitcXHQgKiBkZXBlbmRlbmNpZXMgaWYgdGFrZW4gdW5kZXIgbGRpc2Nfc2VtLiB0dHlfbG9jayBpcyBzdGlsbCBoZWxkLFxcbitcXHQgKiBwcmV2ZW50aW5nIGNvbmN1cnJlbnQgbGRpc2MgY2hhbmdlcyBhbmQgaGFuZ3VwLlxcbitcXHQgKi9cXG4gXFx0cmV0dmFsID0gdHR5X2xkaXNjX29wZW4odHR5LCBuZXdfbGRpc2MpO1xcbitcXG4rXFx0dHR5X2xkaXNjX2xvY2sodHR5LCBNQVhfU0NIRURVTEVfVElNRU9VVCk7XFxuK1xcbiBcXHRpZiAocmV0dmFsIFxcdTAwM2MgMCkge1xcbiBcXHRcXHQvKiBCYWNrIHRvIHRoZSBvbGQgb25lIG9yIE5fVFRZIGlmIHdlIGNhbid0ICovXFxuIFxcdFxcdHR0eV9sZGlzY19wdXQobmV3X2xkaXNjKTtcXG4gXFx0XFx0dHR5X2xkaXNjX3Jlc3RvcmUodHR5LCBvbGRfbGRpc2MpO1xcbitcXHR9IGVsc2Uge1xcbitcXHRcXHQvKiBTdWNjZXNzIC0gaW5zdGFsbCBuZXcgbGRpc2MgKi9cXG4rXFx0XFx0dHR5LVxcdTAwM2VsZGlzYyA9IG5ld19sZGlzYztcXG4gXFx0fVxcbiBcXG4gXFx0aWYgKHR0eS1cXHUwMDNlbGRpc2MtXFx1MDAzZW9wcy1cXHUwMDNlbnVtICE9IG9sZF9sZGlzYy1cXHUwMDNlb3BzLVxcdTAwM2VudW0gXFx1MDAyNlxcdTAwMjYgdHR5LVxcdTAwM2VvcHMtXFx1MDAzZXNldF9sZGlzYykge1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xNlQxMToxNTowNi41OTc5MzA5MDRaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjE3MDM2NDUwMDcxLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcInR0eV9zZXRfbGRpc2NcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgbG9ja2luZyBiZWhhdmlvciBpbiBgdHR5X3NldF9sZGlzY2AgZHVyaW5nIGxpbmUgZGlzY2lwbGluZSB0cmFuc2l0aW9ucywgd2hpY2ggaXMgYSBjb3JlIFRUWSBvcGVyYXRpb24gcmVhY2hhYmxlIHZpYSB0aGUgYFRJT0NTRVREYCBpb2N0bC4gVGhpcyBpcyBmdW5jdGlvbmFsIGFuZCBzaG91bGQgYmUgZnV6emVkIHRvIGVuc3VyZSBubyBkZWFkbG9ja3Mgb3IgcmFjZSBjb25kaXRpb25zIGFyZSBpbnRyb2R1Y2VkLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiJZb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci5cbllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lXG5pZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXG5cbklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpblxueW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5XG51c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLlxuXG5SZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOlxuLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLlxuLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy5cbi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LlxuLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsXG5ldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuXG5cbklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2hcbnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLlxuXG5XaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzpcbjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuXG4gICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy5cbjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLlxuICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLlxuICAgRG8gbm90IGxpc3QgdG9vIGdlbmVyaWMgY29uZmlncyAod2UgYWxyZWFkeSBoYXZlIHRoZW0gZW5hYmxlZCkuIE9ubHkgbGlzdCB0aG9zZSB0aGF0XG4gICBzcGVjaWZpY2FsbHkgY292ZXIgdGhlIG1vZGlmaWVkIGNvZGUuIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncyBvdXRwdXQgYXJyYXksXG4gICBhbmQgRE8gTk9UIGFkZCBhICdDT05GSUdfJyBwcmVmaXggKGUuZy4sIHJldHVybiBcIk5FVF9JUFY0XCIgaW5zdGVhZCBvZiBcIkNPTkZJR19ORVRfSVBWNFwiKS5cblByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLlxuXG5cblVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuXG5JdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS5cbklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC5cbiIsIlByb21wdCI6IkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOlxuY29tbWl0IGZmNjZiNjU4ZDE1YjBjNmI5YmJhZmQ0YTEyNzZjMTFmYjlkNmUwMzFcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgVGh1IEp1bCAxNiAxMToxNTowNCAyMDI2ICswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvdHR5L3R0eV9sZGlzYy5jIGIvZHJpdmVycy90dHkvdHR5X2xkaXNjLmNcbmluZGV4IDI3ZmU4MjM2ZjY2MjMwLi4yNDhhNjk5NWNjNTNhMSAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvdHR5L3R0eV9sZGlzYy5jXG4rKysgYi9kcml2ZXJzL3R0eS90dHlfbGRpc2MuY1xuQEAgLTU1NiwxNSArNTU2LDI4IEBAIGludCB0dHlfc2V0X2xkaXNjKHN0cnVjdCB0dHlfc3RydWN0ICp0dHksIGludCBkaXNjKVxuIFx0LyogU2h1dGRvd24gdGhlIG9sZCBkaXNjaXBsaW5lLiAqL1xuIFx0dHR5X2xkaXNjX2Nsb3NlKHR0eSwgb2xkX2xkaXNjKTtcbiBcbi1cdC8qIE5vdyBzZXQgdXAgdGhlIG5ldyBsaW5lIGRpc2NpcGxpbmUuICovXG4tXHR0dHktXHUwMDNlbGRpc2MgPSBuZXdfbGRpc2M7XG4rXHQvKiBDbGVhciB0dHktXHUwMDNlbGRpc2Mgc28gY29uY3VycmVudCByZWFkZXJzIGJhY2sgb2ZmIGR1cmluZyB0cmFuc2l0aW9uICovXG4rXHR0dHktXHUwMDNlbGRpc2MgPSBOVUxMO1xuIFx0dHR5X3NldF90ZXJtaW9zX2xkaXNjKHR0eSwgZGlzYyk7XG4rXHR0dHlfbGRpc2NfdW5sb2NrKHR0eSk7XG4gXG4rXHQvKlxuK1x0ICogT3BlbiB0aGUgbmV3IGRpc2NpcGxpbmUgb3V0c2lkZSBsZGlzY19zZW0uIFRoZSBsZGlzYyAub3BlbigpXG4rXHQgKiBtYXkgYWNxdWlyZSBsb2NrcyAoZS5nLiwgcnRubF9tdXRleCkgdGhhdCB3b3VsZCBjcmVhdGUgY2lyY3VsYXJcbitcdCAqIGRlcGVuZGVuY2llcyBpZiB0YWtlbiB1bmRlciBsZGlzY19zZW0uIHR0eV9sb2NrIGlzIHN0aWxsIGhlbGQsXG4rXHQgKiBwcmV2ZW50aW5nIGNvbmN1cnJlbnQgbGRpc2MgY2hhbmdlcyBhbmQgaGFuZ3VwLlxuK1x0ICovXG4gXHRyZXR2YWwgPSB0dHlfbGRpc2Nfb3Blbih0dHksIG5ld19sZGlzYyk7XG4rXG4rXHR0dHlfbGRpc2NfbG9jayh0dHksIE1BWF9TQ0hFRFVMRV9USU1FT1VUKTtcbitcbiBcdGlmIChyZXR2YWwgXHUwMDNjIDApIHtcbiBcdFx0LyogQmFjayB0byB0aGUgb2xkIG9uZSBvciBOX1RUWSBpZiB3ZSBjYW4ndCAqL1xuIFx0XHR0dHlfbGRpc2NfcHV0KG5ld19sZGlzYyk7XG4gXHRcdHR0eV9sZGlzY19yZXN0b3JlKHR0eSwgb2xkX2xkaXNjKTtcbitcdH0gZWxzZSB7XG4rXHRcdC8qIFN1Y2Nlc3MgLSBpbnN0YWxsIG5ldyBsZGlzYyAqL1xuK1x0XHR0dHktXHUwMDNlbGRpc2MgPSBuZXdfbGRpc2M7XG4gXHR9XG4gXG4gXHRpZiAodHR5LVx1MDAzZWxkaXNjLVx1MDAzZW9wcy1cdTAwM2VudW0gIT0gb2xkX2xkaXNjLVx1MDAzZW9wcy1cdTAwM2VudW0gXHUwMDI2XHUwMDI2IHR0eS1cdTAwM2VvcHMtXHUwMDNlc2V0X2xkaXNjKSB7XG4iLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xNlQxMToxNTowNi41OTc5MzIzMDRaIiwiU2VxIjozLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0MDQwNDg3MTc1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgVFRZIExpbmUgRGlzY2lwbGluZSBQYXRjaCoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggdGhhdCdzIHRpbmtlcmluZyB3aXRoIGB0dHlfc2V0X2xkaXNjYCB3aXRoaW4gYGRyaXZlcnMvdHR5L3R0eV9sZGlzYy5jYC4gUmlnaHQgYXdheSwgdGhlIGNoYW5nZSB0aGF0J3MgY2F1Z2h0IG15IGV5ZSBpcyB0aGUgbW9kaWZpY2F0aW9uIHRvIGhvdyB0aGUgbG9ja2luZyB3b3JrcyBhcm91bmQgYHR0eV9sZGlzY19vcGVuYC4gSXQgYXBwZWFycyB0aGV5J3JlIHN0cmF0ZWdpY2FsbHkgdW5sb2NraW5nIGBsZGlzY19zZW1gICpiZWZvcmUqIGNhbGxpbmcgYHR0eV9sZGlzY19vcGVuYC4gVGhlbiwgdGhleSdyZSByZS1sb2NraW5nIGl0IGltbWVkaWF0ZWx5IGFmdGVyd2FyZC4gSW50ZXJlc3RpbmcuIFRoYXQncyBhIGNsYXNzaWMgc2lnbmFsIHRoYXQgdGhlcmUncyBhIHBvdGVudGlhbCByYWNlIGNvbmRpdGlvbiB0aGV5J3JlIHRyeWluZyB0byBtaXRpZ2F0ZSwgb3IgcGVyaGFwcyB0aGV5J3JlIG9wdGltaXppbmcgZm9yIGNvbmN1cnJlbmN5LlxuXG5QbHVzLCBJIG5vdGljZSB0aGV5J3JlIG51bGxpZnlpbmcgYHR0eS1cdTAwM2VsZGlzY2AgKmJlZm9yZSogdGhlIHVubG9jay4gVGhpcyBpcyBsaWtlbHkgdG8gcHJldmVudCBhIHVzZS1hZnRlci1mcmVlIHNjZW5hcmlvLiBBbmQgdGhlbiwgaWYgYHR0eV9sZGlzY19vcGVuYCBhY3R1YWxseSBzdWNjZWVkcywgdGhleSByZWFzc2lnbiB0aGUgYHR0eS1cdTAwM2VsZGlzY2AgcG9pbnRlciAqYWZ0ZXIqIHJlLWFjcXVpcmluZyB0aGUgbG9jaywgdG8gdGhlIGBuZXdfbGRpc2NgLiBNYWtlcyBzZW5zZSwgdG8gZW5zdXJlIGNvbnNpc3RlbmN5IGFuZCBwcmV2ZW50IGRhbmdsaW5nIHBvaW50ZXJzLiBTbywgSSBuZWVkIHRvIHVuZGVyc3RhbmQgd2h5IHRoaXMgc3BlY2lmaWMgc2VxdWVuY2UgaXMgbmVjZXNzYXJ5IGFuZCB3aGF0IGNvbmN1cnJlbmN5IGNvbmNlcm5zIHRoZXkncmUgbGlrZWx5IGFkZHJlc3NpbmcuIFRpbWUgdG8gZGlnIGRlZXBlciBpbnRvIHRoZSByYXRpb25hbGUgYmVoaW5kIHRoaXMgYXBwcm9hY2ggYW5kIHRoZSBwb3RlbnRpYWwgcmFjZSBjb25kaXRpb25zIHRoZXkgbWlnaHQgYmUgcHJlZW1wdGluZy5cblxuXG4iLCJJbnB1dFRva2VucyI6MjEyMywiT3V0cHV0VG9rZW5zIjozNiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjEzNCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE2VDExOjE1OjEwLjYzODQyMTI5OVoiLCJTZXEiOjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjozNTYyODE0NjMsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwidHR5X3NldF9sZGlzY1wiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL3R0eS90dHlfbGRpc2MuY1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL3R0eS90dHlfbGRpc2MuYz00OTE9c3RhdGljIHZvaWQgdHR5X2xkaXNjX3Jlc3RvcmUoc3RydWN0IHR0eV9zdHJ1Y3QgKnR0eSwgc3RydWN0IHR0eV9sZGlzYyAqb2xkKVxcbi0tXFxuZHJpdmVycy90dHkvdHR5X2xkaXNjLmMtNTA5LS8qKlxcbmRyaXZlcnMvdHR5L3R0eV9sZGlzYy5jOjUxMDogKiB0dHlfc2V0X2xkaXNjXFx0XFx0LVxcdHNldCBsaW5lIGRpc2NpcGxpbmVcXG5kcml2ZXJzL3R0eS90dHlfbGRpc2MuYy01MTEtICogQHR0eTogdGhlIHRlcm1pbmFsIHRvIHNldFxcbi0tXFxuZHJpdmVycy90dHkvdHR5X2xkaXNjLmMtNTE4LSAqL1xcbmRyaXZlcnMvdHR5L3R0eV9sZGlzYy5jOjUxOTppbnQgdHR5X3NldF9sZGlzYyhzdHJ1Y3QgdHR5X3N0cnVjdCAqdHR5LCBpbnQgZGlzYylcXG5kcml2ZXJzL3R0eS90dHlfbGRpc2MuYy01MjAte1xcbi0tXFxuZHJpdmVycy90dHkvdHR5X2xkaXNjLmMtNjA5LX1cXG5kcml2ZXJzL3R0eS90dHlfbGRpc2MuYzo2MTA6RVhQT1JUX1NZTUJPTF9HUEwodHR5X3NldF9sZGlzYyk7XFxuZHJpdmVycy90dHkvdHR5X2xkaXNjLmMtNjExLVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xNlQxMToxNToxMC45OTQ3MTIwNDJaIiwiU2VxIjo1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozOTA2MTQ3NTA3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgZnJhbWVkIGZyb20gbXkgZXhwZXJ0IHBlcnNwZWN0aXZlOlxuXG4qKlBhdGNoIEFuYWx5c2lzIGFuZCBUVFkgQ29uZmlndXJhdGlvbiBSZXZpZXcqKlxuXG5BbHJpZ2h0LCBzbyB0aGUgcGF0Y2ggaXMgaW4uIFNlZW1zIGxpa2UgaXQncyBhIHNvbGlkIGZ1bmN0aW9uYWwgY2hhbmdlLCBhbmQgaXQncyB0b3VjaGluZyBjb3JlIFRUWSBsb2dpYyDigJMgYWx3YXlzIGEgc2Vuc2l0aXZlIGFyZWEuIE15IGZpcnN0IG9yZGVyIG9mIGJ1c2luZXNzIGlzIHRvIHRob3JvdWdobHkgdW5kZXJzdGFuZCB0aGUgcG90ZW50aWFsIGNvbmZpZ3VyYXRpb24gaW1wbGljYXRpb25zLiBTaW5jZSBpdCdzIGludGVyYWN0aW5nIHdpdGggdGhlIFRUWSBsYXllciBkaXJlY3RseSwgSSdsbCBuZWVkIHRvIGNvbmZpcm0gaWYgdGhlcmUgYXJlIGFueSBzZXR0aW5ncyB0aGF0IG1pZ2h0IG5lZWQgYWRqdXN0bWVudCB0byBhY2NvbW1vZGF0ZSB0aGlzIGNoYW5nZSBvciwgd29yc2UsIGlmIHRoZXJlIGFyZSBpbnRlcmFjdGlvbnMgdGhhdCBjb3VsZCBjYXVzZSByZWdyZXNzaW9ucyBpbiBjZXJ0YWluIGNvbmZpZ3VyYXRpb25zLlxuXG5JJ20gemVyb2luZyBpbiBvbiBgZHJpdmVycy90dHkvdHR5X2xkaXNjLmNgIGFzIHRoZSByZWxldmFudCBmaWxlLCB3aGljaCBtYWtlcyBzZW5zZS4gS25vd2luZyBob3cgdGhlIFRUWSBzdWJzeXN0ZW0gaXMgc3RydWN0dXJlZCwgdGhhdCdzIHdoZXJlIEknZCBleHBlY3QgbGluZSBkaXNjaXBsaW5lIHJlbGF0ZWQgY2hhbmdlcy4gTm93LCBzcGVjaWZpY2FsbHksIEnigJltIGludGVyZXN0ZWQgaW4gaG93IHRoaXMgaW50ZXJhY3RzIHdpdGggYHR0eV9zZXRfbGRpc2NgLCBiZWNhdXNlIHRoYXQgaXMgdGhlIGNydWNpYWwgZnVuY3Rpb24uIEkga25vdyB0aGF0IGZ1bmN0aW9uIGlzIHRyaWdnZXJlZCBieSBgdGlvY3NldGRgLCB3aGljaCBpcyB0aGUgYFRJT0NTRVREYCBpb2N0bCBjYWxsLiBUaGF0IG5hcnJvd3MgZG93biBteSBmb2N1cy4gTm93IEkgbmVlZCB0byBrbm93IGlmIHRoZXJlIGFyZSBhbnkgbmljaGUgVFRZIHNldHRpbmdzIHRoYXQgbWlnaHQgYWZmZWN0IHRoZSBwYXRjaC4gVFRZIGlzIGdlbmVyYWxseSBhbHdheXMgZW5hYmxlZCwgYnV0IEknbGwgbWFrZSBzdXJlIHRoZXJlJ3Mgbm90aGluZyBzdHJhbmdlIHRoYXQgSSdtIG1pc3NpbmcuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjI4MzMsIk91dHB1dFRva2VucyI6MzAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo4OSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0xNlQxMToxNToxNC45MDA4NjE5MTlaIiwiU2VxIjo2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NzA1NDEwMTksIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwidHR5X3NldF9sZGlzY1wiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL3R0eS9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy90dHkvdHR5X2lvLmM9MjM4MD1zdGF0aWMgaW50IHRpb2Njb25zKHN0cnVjdCBmaWxlICpmaWxlKVxcbi0tXFxuZHJpdmVycy90dHkvdHR5X2lvLmMtMjQxOC0gKlxcbmRyaXZlcnMvdHR5L3R0eV9pby5jOjI0MTk6ICogTG9ja2luZzogc2VlIHR0eV9zZXRfbGRpc2MoKSwgdGhpcyBmdW5jdGlvbiBpcyBqdXN0IGEgaGVscGVyXFxuZHJpdmVycy90dHkvdHR5X2lvLmMtMjQyMC0gKi9cXG5kcml2ZXJzL3R0eS90dHlfaW8uYz0yNDIxPXN0YXRpYyBpbnQgdGlvY3NldGQoc3RydWN0IHR0eV9zdHJ1Y3QgKnR0eSwgaW50IF9fdXNlciAqcClcXG4tLVxcbmRyaXZlcnMvdHR5L3R0eV9pby5jLTI0MjgtXFxuZHJpdmVycy90dHkvdHR5X2lvLmM6MjQyOTpcXHRyZXQgPSB0dHlfc2V0X2xkaXNjKHR0eSwgZGlzYyk7XFxuZHJpdmVycy90dHkvdHR5X2lvLmMtMjQzMC1cXG4tLVxcbmRyaXZlcnMvdHR5L3R0eV9sZGlzYy5jPTQ5MT1zdGF0aWMgdm9pZCB0dHlfbGRpc2NfcmVzdG9yZShzdHJ1Y3QgdHR5X3N0cnVjdCAqdHR5LCBzdHJ1Y3QgdHR5X2xkaXNjICpvbGQpXFxuLS1cXG5kcml2ZXJzL3R0eS90dHlfbGRpc2MuYy01MDktLyoqXFxuZHJpdmVycy90dHkvdHR5X2xkaXNjLmM6NTEwOiAqIHR0eV9zZXRfbGRpc2NcXHRcXHQtXFx0c2V0IGxpbmUgZGlzY2lwbGluZVxcbmRyaXZlcnMvdHR5L3R0eV9sZGlzYy5jLTUxMS0gKiBAdHR5OiB0aGUgdGVybWluYWwgdG8gc2V0XFxuLS1cXG5kcml2ZXJzL3R0eS90dHlfbGRpc2MuYy01MTgtICovXFxuZHJpdmVycy90dHkvdHR5X2xkaXNjLmM6NTE5OmludCB0dHlfc2V0X2xkaXNjKHN0cnVjdCB0dHlfc3RydWN0ICp0dHksIGludCBkaXNjKVxcbmRyaXZlcnMvdHR5L3R0eV9sZGlzYy5jLTUyMC17XFxuLS1cXG5kcml2ZXJzL3R0eS90dHlfbGRpc2MuYy02MDktfVxcbmRyaXZlcnMvdHR5L3R0eV9sZGlzYy5jOjYxMDpFWFBPUlRfU1lNQk9MX0dQTCh0dHlfc2V0X2xkaXNjKTtcXG5kcml2ZXJzL3R0eS90dHlfbGRpc2MuYy02MTEtXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE2VDExOjE1OjE0Ljk3MTQwODYwOFoiLCJTZXEiOjcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjMyNzUxNjczNDEsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGxldCdzIGJyZWFrIHRoaXMgZG93bi5cblxuKipGdXp6aW5nIFRhcmdldCBJZGVudGlmaWNhdGlvbjogdHR5X3NldF9sZGlzYyoqXG5cblJpZ2h0LCBgdHR5X3NldF9sZGlzY2AuIFRoYXQgZnVuY3Rpb24gKmRlZmluaXRlbHkqIGxvb2tzIGxpa2UgYSBnb29kIHRhcmdldCBmb3IgZnV6emluZy4gSXQncyBidXJpZWQgaW4gdGhlIFRUWSBsYXllciwgd2hpY2ggaXMgcHJldHR5IGZ1bmRhbWVudGFsLiBNeSBpbnN0aW5jdHMgdGVsbCBtZSBpdCdzIGxpa2VseSByZWFjaGFibGUgZ2l2ZW4gaG93IGNvcmUgaXQgaXMsIHdoaWNoIGFsd2F5cyBwaXF1ZXMgbXkgaW50ZXJlc3QuIFRoZSBmb2N1cyBoZXJlIGlzIGNsZWFybHkgb24gYHR0eV9zZXRfbGRpc2NgIHNwZWNpZmljYWxseS4gSSBuZWVkIHRvIG1ha2Ugc3VyZSBJIHVuZGVyc3RhbmQgdGhlIGNvbnRleHQuXG5cbkkgbmVlZCB0byBjb25maXJtIHRoYXQgdGhlIFRUWSBjb2RlIGlzIGVuYWJsZWQgYnkgZGVmYXVsdC4gT2Z0ZW4sIGRlZmF1bHQgY29uZmlndXJhdGlvbnMgYXJlIHRoZSByaWNoZXN0IHRlc3RpbmcgZ3JvdW5kIGJlY2F1c2UgdGhleSdyZSB0aGUgbW9zdCBjb21tb25seSBlbmNvdW50ZXJlZC4gVGhlbiBJIHdpbGwgZG91YmxlLWNoZWNrIHdoZXRoZXIgdGhlIGNvZGUgZm9yIGB0dHlfbGRpc2MuY2AgaXMgY29tcGlsZWQgaW4gdGhpcyBjb25maWd1cmF0aW9uLiBFbnN1cmluZyB0aGUgYmFzaWMgVFRZIGZ1bmN0aW9uYWxpdHkgaXMgZW5hYmxlZCBpcyBrZXkgZm9yIHRlc3RpbmcgdGhpcyBmdW5jdGlvbi5cblxuXG4iLCJJbnB1dFRva2VucyI6MzY5MywiT3V0cHV0VG9rZW5zIjozMSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjczLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE2VDExOjE1OjE4LjI0NjU3ODAzOVoiLCJTZXEiOjgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxOTcwMTUyNzYsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwidHR5X2xkaXNjLm9cIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy90dHkvTWFrZWZpbGVcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy90dHkvTWFrZWZpbGUtMS0jIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wXFxuZHJpdmVycy90dHkvTWFrZWZpbGU6MjpvYmotJChDT05GSUdfVFRZKVxcdFxcdCs9IHR0eV9pby5vIG5fdHR5Lm8gdHR5X2lvY3RsLm8gdHR5X2xkaXNjLm8gXFxcXFxcbmRyaXZlcnMvdHR5L01ha2VmaWxlLTMtXFx0XFx0XFx0XFx0ICAgdHR5X2J1ZmZlci5vIHR0eV9wb3J0Lm8gdHR5X211dGV4Lm8gXFxcXFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xNlQxMToxNToxOC40NDM1OTk3MzVaIiwiU2VxIjo5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo1MTkwNzM5OTExLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgS2VybmVsIFBhdGNoIGZvciBGdXp6aW5nIFBvdGVudGlhbCoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggYW5kIGZpZ3VyaW5nIG91dCBob3cgYmVzdCB0byBhcHByb2FjaCBmdXp6aW5nIGl0LiBUaGUgaW5pdGlhbCB0aG91Z2h0IHdhcyB0byBzaW1wbHkgbGlzdCBgQ09ORklHX1RUWWAgYmVjYXVzZSBpdCdzIHVzdWFsbHkgZW5hYmxlZCwgYnV0IHRoZSBwcm9tcHQncyBjbGVhcjogXCJEb24ndCBsaXN0IGdlbmVyaWMgY29uZmlncywgb25seSB0aG9zZSBzcGVjaWZpY2FsbHkgdGllZCB0byB0aGUgbW9kaWZpZWQgY29kZS5cIiBgQ09ORklHX1RUWWAgaXMgKndheSogdG9vIGJyb2FkIGhlcmUuXG5cbk5vdywgbGV0J3Mgc2VlIHdoYXQncyBhY3R1YWxseSBiZWVuIHRvdWNoZWQuIEFoLCBvbmx5IGB0dHlfc2V0X2xkaXNjYC4gVGhhdCdzIGl0LCB0aGF0J3MgdGhlIGtleS5cblxuTXkgcmVhc29uaW5nIGlzIHN0cmFpZ2h0Zm9yd2FyZDogdGhpcyBwYXRjaCBpcyBtZXNzaW5nIHdpdGggdGhlIGxvY2tpbmcgaW4gYHR0eV9zZXRfbGRpc2NgIGR1cmluZyBsaW5lIGRpc2NpcGxpbmUgdHJhbnNpdGlvbnMuIFRoYXQgZnVuY3Rpb24gaXMgcHJldHR5IGNydWNpYWw7IGl0J3MgcmlnaHQgaW4gdGhlIGhlYXJ0IG9mIFRUWSBvcGVyYXRpb25zLCBlc3BlY2lhbGx5IHJlYWNoYWJsZSB0aHJvdWdoIHRoZSBgVElPQ1NFVERgIGlvY3RsLiBUaGlzIGlzIGRlZmluaXRlbHkgYSBmdW5jdGlvbmFsIG1vZGlmaWNhdGlvbiwgYW5kIHRob3NlIGFyZSBwcmltZSBjYW5kaWRhdGVzIGZvciBmdXp6aW5nIHRvIGNhdGNoIGFueSBuZXcgZGVhZGxvY2tzIG9yIHJhY2UgY29uZGl0aW9ucy4gVGhlIGdvYWwgaXMgdG8gbWFrZSBzdXJlIG5vdGhpbmcgaGFzIGJlZW4gYnJva2VuLCBzbyBpdCBpcyBpbXBvcnRhbnQgdG8gY2hlY2sgdGhlIGxvY2tpbmcgaW4gdGhlIG1vZGlmaWVkIGNvZGUuXG5cblNvLCB0aGUgYEZvY3VzU3ltYm9sYCBpcyBgdHR5X3NldF9sZGlzY2AuIE5vIHNwZWNpZmljIGNvbmZpZyBvcHRpb25zIG5lZWQgdG8gYmUgZW5hYmxlZCBiZWZvcmUgZnV6emluZywgc28gYEVuYWJsZUNvbmZpZ3NgIGlzIGVtcHR5LiBUaGUgYFdvcnRoRnV6emluZ2AgZmxhZyBpcyBkZWZpbml0ZWx5IGB0cnVlYCBpbiBteSBib29rLiBXZSBuZWVkIHRvIGhpdCB0aGlzIHdpdGggZnV6emluZy5cblxuXG4iLCJJbnB1dFRva2VucyI6NDA4OCwiT3V0cHV0VG9rZW5zIjo5OCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE4NCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0xNlQxMToxNToyMy42MzQzNDIwNzZaIiwiU2VxIjoxMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjozNjM2MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW10sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcInR0eV9zZXRfbGRpc2NcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgbG9ja2luZyBiZWhhdmlvciBpbiBgdHR5X3NldF9sZGlzY2AgZHVyaW5nIGxpbmUgZGlzY2lwbGluZSB0cmFuc2l0aW9ucywgd2hpY2ggaXMgYSBjb3JlIFRUWSBvcGVyYXRpb24gcmVhY2hhYmxlIHZpYSB0aGUgYFRJT0NTRVREYCBpb2N0bC4gVGhpcyBpcyBmdW5jdGlvbmFsIGFuZCBzaG91bGQgYmUgZnV6emVkIHRvIGVuc3VyZSBubyBkZWFkbG9ja3Mgb3IgcmFjZSBjb25kaXRpb25zIGFyZSBpbnRyb2R1Y2VkLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcInR0eV9zZXRfbGRpc2NcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgbG9ja2luZyBiZWhhdmlvciBpbiBgdHR5X3NldF9sZGlzY2AgZHVyaW5nIGxpbmUgZGlzY2lwbGluZSB0cmFuc2l0aW9ucywgd2hpY2ggaXMgYSBjb3JlIFRUWSBvcGVyYXRpb24gcmVhY2hhYmxlIHZpYSB0aGUgYFRJT0NTRVREYCBpb2N0bC4gVGhpcyBpcyBmdW5jdGlvbmFsIGFuZCBzaG91bGQgYmUgZnV6emVkIHRvIGVuc3VyZSBubyBkZWFkbG9ja3Mgb3IgcmFjZSBjb25kaXRpb25zIGFyZSBpbnRyb2R1Y2VkLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH1dOwoJCQlpZiAoIXJhd0RhdGEgfHwgcmF3RGF0YS5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpOwoJCQlkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKTsKCQkJZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpIHsKCQkJY29uc3Qgc3RhdHMgPSB7CgkJCQlsbG06IHsgY291bnQ6IDAsIHRva2VuczogMCwgZHVyYXRpb246IDAgfSwKCQkJCXRvb2w6IHsgY291bnQ6IDAsIGR1cmF0aW9uOiAwIH0KCQkJfTsKCgkJCXJhd0RhdGEuZm9yRWFjaChzID0+IHsKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOyAKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iKSB7CgkJCQkJc3RhdHMubGxtLmNvdW50Kys7CgkJCQkJc3RhdHMubGxtLnRva2VucyArPSAocy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2Vucyk7CgkJCQkJc3RhdHMubGxtLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0gZWxzZSBpZiAocy5UeXBlID09PSAidG9vbCIpIHsKCQkJCQlzdGF0cy50b29sLmNvdW50Kys7CgkJCQkJc3RhdHMudG9vbC5kdXJhdGlvbiArPSBkdXI7CgkJCQl9CgkJCX0pOwoKCQkJY29uc3QgYXZnTGxtRHVyID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0uZHVyYXRpb24gLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdMbG1Ub2tlbiA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLnRva2VucyAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z1Rvb2xEdXIgPSBzdGF0cy50b29sLmNvdW50ID4gMCA/IChzdGF0cy50b29sLmR1cmF0aW9uIC8gc3RhdHMudG9vbC5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgoJCQljb25zdCBsbG1TdW1hcnlDZWxscyA9IFtzdGF0cy5sbG0uY291bnQsIHN0YXRzLmxsbS50b2tlbnMsIGF2Z0xsbVRva2VuLCBzdGF0cy5sbG0uZHVyYXRpb24sIGF2Z0xsbUR1cl07CgkJCWNvbnN0IHRvb2xTdW1tYXJ5Q2VsbHMgPSBbc3RhdHMudG9vbC5jb3VudCwgc3RhdHMudG9vbC5kdXJhdGlvbiwgYXZnVG9vbER1cl07CgoJCQljb25zdCBsbG1TdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsbG1fc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCWxsbVN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCBsbG1UciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCWxsbVN1bWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQlsbG1Uci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQlsbG1TdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZChsbG1Ucik7CgoJCQljb25zdCB0b29sU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJdG9vbFN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCB0b29sVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQl0b29sU3VtbWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQl0b29sVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJdG9vbFN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKHRvb2xUcik7CgkJfQoKCQlmdW5jdGlvbiBkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGZpbHRlcmVkU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IFsibGxtIiwgInRvb2wiXS5pbmNsdWRlcyhkLlR5cGUpKTsKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnRHVyYXRpb24nKTsKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsgCgoJCQlmaWx0ZXJlZFN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQkKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOwoJCQkJbGV0IHRvb2x0aXAgPSBzLk5hbWU7CgkJCQlpZiAocy5UeXBlID09PSAibGxtIiAmJiBzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgkJCQlkYXRhLmFkZFJvdyhbYCR7cy5TZXF9YCwgZHVyLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVGltZSBDb25zdW1wdGlvbiBvZiBMTE0vVG9vbCBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNL1Rvb2wgU3RlcHMnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnU2Vjb25kcycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZHVyYXRpb25fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGxsbVN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBkLlR5cGUgPT09ICJsbG0iKTsKCQkJaWYgKGxsbVN0ZXBzLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnVG9rZW5zJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3N0eWxlJ30pOwkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsJCgoJCQljb25zdCBhZ2VudENvbG9ycyA9IHt9OwoJCQljb25zdCBwYWxldHRlID0gWycjNDI4NUY0JywgJyNEQjQ0MzcnLCAnI0Y0QjQwMCcsICcjMEY5RDU4JywgJyNBQjQ3QkMnLCAnIzAwQUNDMSddOwoJCQlsZXQgY29sb3JJZHggPSAwOwoJCQljb25zdCBhZ2VudExMTUNvdW50cyA9IHt9OwoJCQlsbG1TdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJaWYgKCFhZ2VudENvbG9yc1tzLk5hbWVdKSB7CgkJCQkJYWdlbnRDb2xvcnNbcy5OYW1lXSA9IHBhbGV0dGVbY29sb3JJZHggJSBwYWxldHRlLmxlbmd0aF07CgkJCQkJY29sb3JJZHgrKzsKCQkJCX0KCgkJCQlhZ2VudExMTUNvdW50c1tzLk5hbWVdID0gKGFnZW50TExNQ291bnRzW3MuTmFtZV0gfHwgMCkgKyAxOwoJCQkJY29uc3QgbGFiZWwgPSBgJHtzLk5hbWV9LSR7YWdlbnRMTE1Db3VudHNbcy5OYW1lXX1gOwoJCQkJY29uc3QgdG90YWxUb2tlbnMgPSBzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zOwoJCQkJY29uc3Qgc3R5bGUgPSBgY29sb3I6ICR7YWdlbnRDb2xvcnNbcy5OYW1lXX1gOwoJCQkJbGV0IHRvb2x0aXAgPSBgVG90YWwgVG9rZW5zOiAke3RvdGFsVG9rZW5zfVxuKEluOiAke3MuSW5wdXRUb2tlbnN9LCBPdXQ6ICR7cy5PdXRwdXRUb2tlbnN9LCBUaG91Z2h0czogJHtzLk91dHB1dFRob3VnaHRzVG9rZW5zfSlgOwoJCQkJaWYgKHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCgkJCQlkYXRhLmFkZFJvdyhbbGFiZWwsIHRvdGFsVG9rZW5zLCBzdHlsZSwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1Rva2VuIENvbnN1bXB0aW9uIGJ5IExMTSBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNIENhbGwgU2VxdWVuY2UnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnQ29uc3VtZWQgVG9rZW5zJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b2tlbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoJCWxldCBhbGxFeHBhbmRlZCA9IGZhbHNlOwoJCWZ1bmN0aW9uIHRvZ2dsZUFsbERldGFpbHMoKSB7CgkJCWFsbEV4cGFuZGVkID0gIWFsbEV4cGFuZGVkOwoJCQlkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdkZXRhaWxzJykuZm9yRWFjaChkID0+IHsKCQkJCWlmIChhbGxFeHBhbmRlZCkgZC5zZXRBdHRyaWJ1dGUoJ29wZW4nLCAnJyk7CgkJCQllbHNlIGQucmVtb3ZlQXR0cmlidXRlKCdvcGVuJyk7CgkJCX0pOwoJCX0KCTwvc2NyaXB0PgoKCjwvYm9keT4KPC9odG1sPgo=" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowhm22j[0].run-triage(0) Phase: Succeeded StartedAt: 2026-07-16 10:46:44 +0000 UTC FinishedAt: 2026-07-16 11:15:25 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "net-next", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git", "commit_hash": "f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e", "config_name": "upstream-apparmor-kasan.config", "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "net-next", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git", "commit_hash": "f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e", "config_name": "upstream-apparmor-kasan.config", "series_id": "f2ff1656-c00b-4ed8-ba3f-0ba0768df446" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [ "tty_set_ldisc" ], "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+CgkJCTx0ZD4yMDI2LzA3LzE2IDExOjE1PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7dHR5X3NldF9sZGlzYyYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgbG9ja2luZyBiZWhhdmlvciBpbiBgdHR5X3NldF9sZGlzY2AgZHVyaW5nIGxpbmUgZGlzY2lwbGluZSB0cmFuc2l0aW9ucywgd2hpY2ggaXMgYSBjb3JlIFRUWSBvcGVyYXRpb24gcmVhY2hhYmxlIHZpYSB0aGUgYFRJT0NTRVREYCBpb2N0bC4gVGhpcyBpcyBmdW5jdGlvbmFsIGFuZCBzaG91bGQgYmUgZnV6emVkIHRvIGVuc3VyZSBubyBkZWFkbG9ja3Mgb3IgcmFjZSBjb25kaXRpb25zIGFyZSBpbnRyb2R1Y2VkLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE2IDExOjE1PC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5yZWFkLXBhdGNoLWRpZmY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtQYXRjaERpZmYmIzM0OzogJiMzNDtjb21taXQgZmY2NmI2NThkMTViMGM2YjliYmFmZDRhMTI3NmMxMWZiOWQ2ZTAzMVxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBUaHUgSnVsIDE2IDExOjE1OjA0IDIwMjYgJiM0MzswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvdHR5L3R0eV9sZGlzYy5jIGIvZHJpdmVycy90dHkvdHR5X2xkaXNjLmNcbmluZGV4IDI3ZmU4MjM2ZjY2MjMwLi4yNDhhNjk5NWNjNTNhMSAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvdHR5L3R0eV9sZGlzYy5jXG4mIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL3R0eS90dHlfbGRpc2MuY1xuQEAgLTU1NiwxNSAmIzQzOzU1NiwyOCBAQCBpbnQgdHR5X3NldF9sZGlzYyhzdHJ1Y3QgdHR5X3N0cnVjdCAqdHR5LCBpbnQgZGlzYylcbiBcdC8qIFNodXRkb3duIHRoZSBvbGQgZGlzY2lwbGluZS4gKi9cbiBcdHR0eV9sZGlzY19jbG9zZSh0dHksIG9sZF9sZGlzYyk7XG4gXG4tXHQvKiBOb3cgc2V0IHVwIHRoZSBuZXcgbGluZSBkaXNjaXBsaW5lLiAqL1xuLVx0dHR5LVx1MDAzZWxkaXNjID0gbmV3X2xkaXNjO1xuJiM0MztcdC8qIENsZWFyIHR0eS1cdTAwM2VsZGlzYyBzbyBjb25jdXJyZW50IHJlYWRlcnMgYmFjayBvZmYgZHVyaW5nIHRyYW5zaXRpb24gKi9cbiYjNDM7XHR0dHktXHUwMDNlbGRpc2MgPSBOVUxMO1xuIFx0dHR5X3NldF90ZXJtaW9zX2xkaXNjKHR0eSwgZGlzYyk7XG4mIzQzO1x0dHR5X2xkaXNjX3VubG9jayh0dHkpO1xuIFxuJiM0MztcdC8qXG4mIzQzO1x0ICogT3BlbiB0aGUgbmV3IGRpc2NpcGxpbmUgb3V0c2lkZSBsZGlzY19zZW0uIFRoZSBsZGlzYyAub3BlbigpXG4mIzQzO1x0ICogbWF5IGFjcXVpcmUgbG9ja3MgKGUuZy4sIHJ0bmxfbXV0ZXgpIHRoYXQgd291bGQgY3JlYXRlIGNpcmN1bGFyXG4mIzQzO1x0ICogZGVwZW5kZW5jaWVzIGlmIHRha2VuIHVuZGVyIGxkaXNjX3NlbS4gdHR5X2xvY2sgaXMgc3RpbGwgaGVsZCxcbiYjNDM7XHQgKiBwcmV2ZW50aW5nIGNvbmN1cnJlbnQgbGRpc2MgY2hhbmdlcyBhbmQgaGFuZ3VwLlxuJiM0MztcdCAqL1xuIFx0cmV0dmFsID0gdHR5X2xkaXNjX29wZW4odHR5LCBuZXdfbGRpc2MpO1xuJiM0MztcbiYjNDM7XHR0dHlfbGRpc2NfbG9jayh0dHksIE1BWF9TQ0hFRFVMRV9USU1FT1VUKTtcbiYjNDM7XG4gXHRpZiAocmV0dmFsIFx1MDAzYyAwKSB7XG4gXHRcdC8qIEJhY2sgdG8gdGhlIG9sZCBvbmUgb3IgTl9UVFkgaWYgd2UgY2FuJiMzOTt0ICovXG4gXHRcdHR0eV9sZGlzY19wdXQobmV3X2xkaXNjKTtcbiBcdFx0dHR5X2xkaXNjX3Jlc3RvcmUodHR5LCBvbGRfbGRpc2MpO1xuJiM0MztcdH0gZWxzZSB7XG4mIzQzO1x0XHQvKiBTdWNjZXNzIC0gaW5zdGFsbCBuZXcgbGRpc2MgKi9cbiYjNDM7XHRcdHR0eS1cdTAwM2VsZGlzYyA9IG5ld19sZGlzYztcbiBcdH1cbiBcbiBcdGlmICh0dHktXHUwMDNlbGRpc2MtXHUwMDNlb3BzLVx1MDAzZW51bSAhPSBvbGRfbGRpc2MtXHUwMDNlb3BzLVx1MDAzZW51bSBcdTAwMjZcdTAwMjYgdHR5LVx1MDAzZW9wcy1cdTAwM2VzZXRfbGRpc2MpIHtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNiAxMToxNTwvdGQ+CgkJCTx0ZD5hZ2VudDwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogbnVsbCwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O3R0eV9zZXRfbGRpc2MmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIGxvY2tpbmcgYmVoYXZpb3IgaW4gYHR0eV9zZXRfbGRpc2NgIGR1cmluZyBsaW5lIGRpc2NpcGxpbmUgdHJhbnNpdGlvbnMsIHdoaWNoIGlzIGEgY29yZSBUVFkgb3BlcmF0aW9uIHJlYWNoYWJsZSB2aWEgdGhlIGBUSU9DU0VURGAgaW9jdGwuIFRoaXMgaXMgZnVuY3Rpb25hbCBhbmQgc2hvdWxkIGJlIGZ1enplZCB0byBlbnN1cmUgbm8gZGVhZGxvY2tzIG9yIHJhY2UgY29uZGl0aW9ucyBhcmUgaW50cm9kdWNlZC4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkluc3RydWN0aW9uOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+WW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuCllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lCmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC4KCklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpbgp5b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHkKdXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy4KClJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6Ci0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy4KLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy4KLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuCi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLApldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuCgpJZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoCnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLgoKV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086CjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuCiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLgoyLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS4KICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLgogICBEbyBub3QgbGlzdCB0b28gZ2VuZXJpYyBjb25maWdzICh3ZSBhbHJlYWR5IGhhdmUgdGhlbSBlbmFibGVkKS4gT25seSBsaXN0IHRob3NlIHRoYXQKICAgc3BlY2lmaWNhbGx5IGNvdmVyIHRoZSBtb2RpZmllZCBjb2RlLiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3Mgb3V0cHV0IGFycmF5LAogICBhbmQgRE8gTk9UIGFkZCBhICYjMzk7Q09ORklHXyYjMzk7IHByZWZpeCAoZS5nLiwgcmV0dXJuICYjMzQ7TkVUX0lQVjQmIzM0OyBpbnN0ZWFkIG9mICYjMzQ7Q09ORklHX05FVF9JUFY0JiMzNDspLgpQcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy4KCgpVc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLgpJdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS4KSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlByb21wdDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOgpjb21taXQgZmY2NmI2NThkMTViMGM2YjliYmFmZDRhMTI3NmMxMWZiOWQ2ZTAzMQpBdXRob3I6IHN5ei1jbHVzdGVyICZsdDt0cmlhZ2VAc3l6a2FsbGVyLmNvbSZndDsKRGF0ZTogICBUaHUgSnVsIDE2IDExOjE1OjA0IDIwMjYgJiM0MzswMDAwCgogICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3CgpkaWZmIC0tZ2l0IGEvZHJpdmVycy90dHkvdHR5X2xkaXNjLmMgYi9kcml2ZXJzL3R0eS90dHlfbGRpc2MuYwppbmRleCAyN2ZlODIzNmY2NjIzMC4uMjQ4YTY5OTVjYzUzYTEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdHR5L3R0eV9sZGlzYy5jCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvdHR5L3R0eV9sZGlzYy5jCkBAIC01NTYsMTUgJiM0Mzs1NTYsMjggQEAgaW50IHR0eV9zZXRfbGRpc2Moc3RydWN0IHR0eV9zdHJ1Y3QgKnR0eSwgaW50IGRpc2MpCiAJLyogU2h1dGRvd24gdGhlIG9sZCBkaXNjaXBsaW5lLiAqLwogCXR0eV9sZGlzY19jbG9zZSh0dHksIG9sZF9sZGlzYyk7CiAKLQkvKiBOb3cgc2V0IHVwIHRoZSBuZXcgbGluZSBkaXNjaXBsaW5lLiAqLwotCXR0eS0mZ3Q7bGRpc2MgPSBuZXdfbGRpc2M7CiYjNDM7CS8qIENsZWFyIHR0eS0mZ3Q7bGRpc2Mgc28gY29uY3VycmVudCByZWFkZXJzIGJhY2sgb2ZmIGR1cmluZyB0cmFuc2l0aW9uICovCiYjNDM7CXR0eS0mZ3Q7bGRpc2MgPSBOVUxMOwogCXR0eV9zZXRfdGVybWlvc19sZGlzYyh0dHksIGRpc2MpOwomIzQzOwl0dHlfbGRpc2NfdW5sb2NrKHR0eSk7CiAKJiM0MzsJLyoKJiM0MzsJICogT3BlbiB0aGUgbmV3IGRpc2NpcGxpbmUgb3V0c2lkZSBsZGlzY19zZW0uIFRoZSBsZGlzYyAub3BlbigpCiYjNDM7CSAqIG1heSBhY3F1aXJlIGxvY2tzIChlLmcuLCBydG5sX211dGV4KSB0aGF0IHdvdWxkIGNyZWF0ZSBjaXJjdWxhcgomIzQzOwkgKiBkZXBlbmRlbmNpZXMgaWYgdGFrZW4gdW5kZXIgbGRpc2Nfc2VtLiB0dHlfbG9jayBpcyBzdGlsbCBoZWxkLAomIzQzOwkgKiBwcmV2ZW50aW5nIGNvbmN1cnJlbnQgbGRpc2MgY2hhbmdlcyBhbmQgaGFuZ3VwLgomIzQzOwkgKi8KIAlyZXR2YWwgPSB0dHlfbGRpc2Nfb3Blbih0dHksIG5ld19sZGlzYyk7CiYjNDM7CiYjNDM7CXR0eV9sZGlzY19sb2NrKHR0eSwgTUFYX1NDSEVEVUxFX1RJTUVPVVQpOwomIzQzOwogCWlmIChyZXR2YWwgJmx0OyAwKSB7CiAJCS8qIEJhY2sgdG8gdGhlIG9sZCBvbmUgb3IgTl9UVFkgaWYgd2UgY2FuJiMzOTt0ICovCiAJCXR0eV9sZGlzY19wdXQobmV3X2xkaXNjKTsKIAkJdHR5X2xkaXNjX3Jlc3RvcmUodHR5LCBvbGRfbGRpc2MpOwomIzQzOwl9IGVsc2UgewomIzQzOwkJLyogU3VjY2VzcyAtIGluc3RhbGwgbmV3IGxkaXNjICovCiYjNDM7CQl0dHktJmd0O2xkaXNjID0gbmV3X2xkaXNjOwogCX0KIAogCWlmICh0dHktJmd0O2xkaXNjLSZndDtvcHMtJmd0O251bSAhPSBvbGRfbGRpc2MtJmd0O29wcy0mZ3Q7bnVtICZhbXA7JmFtcDsgdHR5LSZndDtvcHMtJmd0O3NldF9sZGlzYykgewo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNiAxMToxNTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyMTIzCgkJCQkJCQlvdXRwdXQ6IDM2CgkJCQkJCQl0aG91Z2h0czogMTM0CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgVFRZIExpbmUgRGlzY2lwbGluZSBQYXRjaCoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCB0aGF0JiMzOTtzIHRpbmtlcmluZyB3aXRoIGB0dHlfc2V0X2xkaXNjYCB3aXRoaW4gYGRyaXZlcnMvdHR5L3R0eV9sZGlzYy5jYC4gUmlnaHQgYXdheSwgdGhlIGNoYW5nZSB0aGF0JiMzOTtzIGNhdWdodCBteSBleWUgaXMgdGhlIG1vZGlmaWNhdGlvbiB0byBob3cgdGhlIGxvY2tpbmcgd29ya3MgYXJvdW5kIGB0dHlfbGRpc2Nfb3BlbmAuIEl0IGFwcGVhcnMgdGhleSYjMzk7cmUgc3RyYXRlZ2ljYWxseSB1bmxvY2tpbmcgYGxkaXNjX3NlbWAgKmJlZm9yZSogY2FsbGluZyBgdHR5X2xkaXNjX29wZW5gLiBUaGVuLCB0aGV5JiMzOTtyZSByZS1sb2NraW5nIGl0IGltbWVkaWF0ZWx5IGFmdGVyd2FyZC4gSW50ZXJlc3RpbmcuIFRoYXQmIzM5O3MgYSBjbGFzc2ljIHNpZ25hbCB0aGF0IHRoZXJlJiMzOTtzIGEgcG90ZW50aWFsIHJhY2UgY29uZGl0aW9uIHRoZXkmIzM5O3JlIHRyeWluZyB0byBtaXRpZ2F0ZSwgb3IgcGVyaGFwcyB0aGV5JiMzOTtyZSBvcHRpbWl6aW5nIGZvciBjb25jdXJyZW5jeS4KClBsdXMsIEkgbm90aWNlIHRoZXkmIzM5O3JlIG51bGxpZnlpbmcgYHR0eS0mZ3Q7bGRpc2NgICpiZWZvcmUqIHRoZSB1bmxvY2suIFRoaXMgaXMgbGlrZWx5IHRvIHByZXZlbnQgYSB1c2UtYWZ0ZXItZnJlZSBzY2VuYXJpby4gQW5kIHRoZW4sIGlmIGB0dHlfbGRpc2Nfb3BlbmAgYWN0dWFsbHkgc3VjY2VlZHMsIHRoZXkgcmVhc3NpZ24gdGhlIGB0dHktJmd0O2xkaXNjYCBwb2ludGVyICphZnRlciogcmUtYWNxdWlyaW5nIHRoZSBsb2NrLCB0byB0aGUgYG5ld19sZGlzY2AuIE1ha2VzIHNlbnNlLCB0byBlbnN1cmUgY29uc2lzdGVuY3kgYW5kIHByZXZlbnQgZGFuZ2xpbmcgcG9pbnRlcnMuIFNvLCBJIG5lZWQgdG8gdW5kZXJzdGFuZCB3aHkgdGhpcyBzcGVjaWZpYyBzZXF1ZW5jZSBpcyBuZWNlc3NhcnkgYW5kIHdoYXQgY29uY3VycmVuY3kgY29uY2VybnMgdGhleSYjMzk7cmUgbGlrZWx5IGFkZHJlc3NpbmcuIFRpbWUgdG8gZGlnIGRlZXBlciBpbnRvIHRoZSByYXRpb25hbGUgYmVoaW5kIHRoaXMgYXBwcm9hY2ggYW5kIHRoZSBwb3RlbnRpYWwgcmFjZSBjb25kaXRpb25zIHRoZXkgbWlnaHQgYmUgcHJlZW1wdGluZy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNiAxMToxNTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDt0dHlfc2V0X2xkaXNjJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy90dHkvdHR5X2xkaXNjLmMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy90dHkvdHR5X2xkaXNjLmM9NDkxPXN0YXRpYyB2b2lkIHR0eV9sZGlzY19yZXN0b3JlKHN0cnVjdCB0dHlfc3RydWN0ICp0dHksIHN0cnVjdCB0dHlfbGRpc2MgKm9sZClcbi0tXG5kcml2ZXJzL3R0eS90dHlfbGRpc2MuYy01MDktLyoqXG5kcml2ZXJzL3R0eS90dHlfbGRpc2MuYzo1MTA6ICogdHR5X3NldF9sZGlzY1x0XHQtXHRzZXQgbGluZSBkaXNjaXBsaW5lXG5kcml2ZXJzL3R0eS90dHlfbGRpc2MuYy01MTEtICogQHR0eTogdGhlIHRlcm1pbmFsIHRvIHNldFxuLS1cbmRyaXZlcnMvdHR5L3R0eV9sZGlzYy5jLTUxOC0gKi9cbmRyaXZlcnMvdHR5L3R0eV9sZGlzYy5jOjUxOTppbnQgdHR5X3NldF9sZGlzYyhzdHJ1Y3QgdHR5X3N0cnVjdCAqdHR5LCBpbnQgZGlzYylcbmRyaXZlcnMvdHR5L3R0eV9sZGlzYy5jLTUyMC17XG4tLVxuZHJpdmVycy90dHkvdHR5X2xkaXNjLmMtNjA5LX1cbmRyaXZlcnMvdHR5L3R0eV9sZGlzYy5jOjYxMDpFWFBPUlRfU1lNQk9MX0dQTCh0dHlfc2V0X2xkaXNjKTtcbmRyaXZlcnMvdHR5L3R0eV9sZGlzYy5jLTYxMS1cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNiAxMToxNTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyODMzCgkJCQkJCQlvdXRwdXQ6IDMwCgkJCQkJCQl0aG91Z2h0czogODkKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgZnJhbWVkIGZyb20gbXkgZXhwZXJ0IHBlcnNwZWN0aXZlOgoKKipQYXRjaCBBbmFseXNpcyBhbmQgVFRZIENvbmZpZ3VyYXRpb24gUmV2aWV3KioKCkFscmlnaHQsIHNvIHRoZSBwYXRjaCBpcyBpbi4gU2VlbXMgbGlrZSBpdCYjMzk7cyBhIHNvbGlkIGZ1bmN0aW9uYWwgY2hhbmdlLCBhbmQgaXQmIzM5O3MgdG91Y2hpbmcgY29yZSBUVFkgbG9naWMg4oCTIGFsd2F5cyBhIHNlbnNpdGl2ZSBhcmVhLiBNeSBmaXJzdCBvcmRlciBvZiBidXNpbmVzcyBpcyB0byB0aG9yb3VnaGx5IHVuZGVyc3RhbmQgdGhlIHBvdGVudGlhbCBjb25maWd1cmF0aW9uIGltcGxpY2F0aW9ucy4gU2luY2UgaXQmIzM5O3MgaW50ZXJhY3Rpbmcgd2l0aCB0aGUgVFRZIGxheWVyIGRpcmVjdGx5LCBJJiMzOTtsbCBuZWVkIHRvIGNvbmZpcm0gaWYgdGhlcmUgYXJlIGFueSBzZXR0aW5ncyB0aGF0IG1pZ2h0IG5lZWQgYWRqdXN0bWVudCB0byBhY2NvbW1vZGF0ZSB0aGlzIGNoYW5nZSBvciwgd29yc2UsIGlmIHRoZXJlIGFyZSBpbnRlcmFjdGlvbnMgdGhhdCBjb3VsZCBjYXVzZSByZWdyZXNzaW9ucyBpbiBjZXJ0YWluIGNvbmZpZ3VyYXRpb25zLgoKSSYjMzk7bSB6ZXJvaW5nIGluIG9uIGBkcml2ZXJzL3R0eS90dHlfbGRpc2MuY2AgYXMgdGhlIHJlbGV2YW50IGZpbGUsIHdoaWNoIG1ha2VzIHNlbnNlLiBLbm93aW5nIGhvdyB0aGUgVFRZIHN1YnN5c3RlbSBpcyBzdHJ1Y3R1cmVkLCB0aGF0JiMzOTtzIHdoZXJlIEkmIzM5O2QgZXhwZWN0IGxpbmUgZGlzY2lwbGluZSByZWxhdGVkIGNoYW5nZXMuIE5vdywgc3BlY2lmaWNhbGx5LCBJ4oCZbSBpbnRlcmVzdGVkIGluIGhvdyB0aGlzIGludGVyYWN0cyB3aXRoIGB0dHlfc2V0X2xkaXNjYCwgYmVjYXVzZSB0aGF0IGlzIHRoZSBjcnVjaWFsIGZ1bmN0aW9uLiBJIGtub3cgdGhhdCBmdW5jdGlvbiBpcyB0cmlnZ2VyZWQgYnkgYHRpb2NzZXRkYCwgd2hpY2ggaXMgdGhlIGBUSU9DU0VURGAgaW9jdGwgY2FsbC4gVGhhdCBuYXJyb3dzIGRvd24gbXkgZm9jdXMuIE5vdyBJIG5lZWQgdG8ga25vdyBpZiB0aGVyZSBhcmUgYW55IG5pY2hlIFRUWSBzZXR0aW5ncyB0aGF0IG1pZ2h0IGFmZmVjdCB0aGUgcGF0Y2guIFRUWSBpcyBnZW5lcmFsbHkgYWx3YXlzIGVuYWJsZWQsIGJ1dCBJJiMzOTtsbCBtYWtlIHN1cmUgdGhlcmUmIzM5O3Mgbm90aGluZyBzdHJhbmdlIHRoYXQgSSYjMzk7bSBtaXNzaW5nLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE2IDExOjE1PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3R0eV9zZXRfbGRpc2MmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL3R0eS8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy90dHkvdHR5X2lvLmM9MjM4MD1zdGF0aWMgaW50IHRpb2Njb25zKHN0cnVjdCBmaWxlICpmaWxlKVxuLS1cbmRyaXZlcnMvdHR5L3R0eV9pby5jLTI0MTgtICpcbmRyaXZlcnMvdHR5L3R0eV9pby5jOjI0MTk6ICogTG9ja2luZzogc2VlIHR0eV9zZXRfbGRpc2MoKSwgdGhpcyBmdW5jdGlvbiBpcyBqdXN0IGEgaGVscGVyXG5kcml2ZXJzL3R0eS90dHlfaW8uYy0yNDIwLSAqL1xuZHJpdmVycy90dHkvdHR5X2lvLmM9MjQyMT1zdGF0aWMgaW50IHRpb2NzZXRkKHN0cnVjdCB0dHlfc3RydWN0ICp0dHksIGludCBfX3VzZXIgKnApXG4tLVxuZHJpdmVycy90dHkvdHR5X2lvLmMtMjQyOC1cbmRyaXZlcnMvdHR5L3R0eV9pby5jOjI0Mjk6XHRyZXQgPSB0dHlfc2V0X2xkaXNjKHR0eSwgZGlzYyk7XG5kcml2ZXJzL3R0eS90dHlfaW8uYy0yNDMwLVxuLS1cbmRyaXZlcnMvdHR5L3R0eV9sZGlzYy5jPTQ5MT1zdGF0aWMgdm9pZCB0dHlfbGRpc2NfcmVzdG9yZShzdHJ1Y3QgdHR5X3N0cnVjdCAqdHR5LCBzdHJ1Y3QgdHR5X2xkaXNjICpvbGQpXG4tLVxuZHJpdmVycy90dHkvdHR5X2xkaXNjLmMtNTA5LS8qKlxuZHJpdmVycy90dHkvdHR5X2xkaXNjLmM6NTEwOiAqIHR0eV9zZXRfbGRpc2NcdFx0LVx0c2V0IGxpbmUgZGlzY2lwbGluZVxuZHJpdmVycy90dHkvdHR5X2xkaXNjLmMtNTExLSAqIEB0dHk6IHRoZSB0ZXJtaW5hbCB0byBzZXRcbi0tXG5kcml2ZXJzL3R0eS90dHlfbGRpc2MuYy01MTgtICovXG5kcml2ZXJzL3R0eS90dHlfbGRpc2MuYzo1MTk6aW50IHR0eV9zZXRfbGRpc2Moc3RydWN0IHR0eV9zdHJ1Y3QgKnR0eSwgaW50IGRpc2MpXG5kcml2ZXJzL3R0eS90dHlfbGRpc2MuYy01MjAte1xuLS1cbmRyaXZlcnMvdHR5L3R0eV9sZGlzYy5jLTYwOS19XG5kcml2ZXJzL3R0eS90dHlfbGRpc2MuYzo2MTA6RVhQT1JUX1NZTUJPTF9HUEwodHR5X3NldF9sZGlzYyk7XG5kcml2ZXJzL3R0eS90dHlfbGRpc2MuYy02MTEtXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ny8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTYgMTE6MTU8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzY5MwoJCQkJCQkJb3V0cHV0OiAzMQoJCQkJCQkJdGhvdWdodHM6IDczCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBsZXQmIzM5O3MgYnJlYWsgdGhpcyBkb3duLgoKKipGdXp6aW5nIFRhcmdldCBJZGVudGlmaWNhdGlvbjogdHR5X3NldF9sZGlzYyoqCgpSaWdodCwgYHR0eV9zZXRfbGRpc2NgLiBUaGF0IGZ1bmN0aW9uICpkZWZpbml0ZWx5KiBsb29rcyBsaWtlIGEgZ29vZCB0YXJnZXQgZm9yIGZ1enppbmcuIEl0JiMzOTtzIGJ1cmllZCBpbiB0aGUgVFRZIGxheWVyLCB3aGljaCBpcyBwcmV0dHkgZnVuZGFtZW50YWwuIE15IGluc3RpbmN0cyB0ZWxsIG1lIGl0JiMzOTtzIGxpa2VseSByZWFjaGFibGUgZ2l2ZW4gaG93IGNvcmUgaXQgaXMsIHdoaWNoIGFsd2F5cyBwaXF1ZXMgbXkgaW50ZXJlc3QuIFRoZSBmb2N1cyBoZXJlIGlzIGNsZWFybHkgb24gYHR0eV9zZXRfbGRpc2NgIHNwZWNpZmljYWxseS4gSSBuZWVkIHRvIG1ha2Ugc3VyZSBJIHVuZGVyc3RhbmQgdGhlIGNvbnRleHQuCgpJIG5lZWQgdG8gY29uZmlybSB0aGF0IHRoZSBUVFkgY29kZSBpcyBlbmFibGVkIGJ5IGRlZmF1bHQuIE9mdGVuLCBkZWZhdWx0IGNvbmZpZ3VyYXRpb25zIGFyZSB0aGUgcmljaGVzdCB0ZXN0aW5nIGdyb3VuZCBiZWNhdXNlIHRoZXkmIzM5O3JlIHRoZSBtb3N0IGNvbW1vbmx5IGVuY291bnRlcmVkLiBUaGVuIEkgd2lsbCBkb3VibGUtY2hlY2sgd2hldGhlciB0aGUgY29kZSBmb3IgYHR0eV9sZGlzYy5jYCBpcyBjb21waWxlZCBpbiB0aGlzIGNvbmZpZ3VyYXRpb24uIEVuc3VyaW5nIHRoZSBiYXNpYyBUVFkgZnVuY3Rpb25hbGl0eSBpcyBlbmFibGVkIGlzIGtleSBmb3IgdGVzdGluZyB0aGlzIGZ1bmN0aW9uLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE2IDExOjE1PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3R0eV9sZGlzYy5vJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy90dHkvTWFrZWZpbGUmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy90dHkvTWFrZWZpbGUtMS0jIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wXG5kcml2ZXJzL3R0eS9NYWtlZmlsZToyOm9iai0kKENPTkZJR19UVFkpXHRcdCYjNDM7PSB0dHlfaW8ubyBuX3R0eS5vIHR0eV9pb2N0bC5vIHR0eV9sZGlzYy5vIFxcXG5kcml2ZXJzL3R0eS9NYWtlZmlsZS0zLVx0XHRcdFx0ICAgdHR5X2J1ZmZlci5vIHR0eV9wb3J0Lm8gdHR5X211dGV4Lm8gXFxcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD45LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNiAxMToxNTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA0MDg4CgkJCQkJCQlvdXRwdXQ6IDk4CgkJCQkJCQl0aG91Z2h0czogMTg0CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgS2VybmVsIFBhdGNoIGZvciBGdXp6aW5nIFBvdGVudGlhbCoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCBhbmQgZmlndXJpbmcgb3V0IGhvdyBiZXN0IHRvIGFwcHJvYWNoIGZ1enppbmcgaXQuIFRoZSBpbml0aWFsIHRob3VnaHQgd2FzIHRvIHNpbXBseSBsaXN0IGBDT05GSUdfVFRZYCBiZWNhdXNlIGl0JiMzOTtzIHVzdWFsbHkgZW5hYmxlZCwgYnV0IHRoZSBwcm9tcHQmIzM5O3MgY2xlYXI6ICYjMzQ7RG9uJiMzOTt0IGxpc3QgZ2VuZXJpYyBjb25maWdzLCBvbmx5IHRob3NlIHNwZWNpZmljYWxseSB0aWVkIHRvIHRoZSBtb2RpZmllZCBjb2RlLiYjMzQ7IGBDT05GSUdfVFRZYCBpcyAqd2F5KiB0b28gYnJvYWQgaGVyZS4KCk5vdywgbGV0JiMzOTtzIHNlZSB3aGF0JiMzOTtzIGFjdHVhbGx5IGJlZW4gdG91Y2hlZC4gQWgsIG9ubHkgYHR0eV9zZXRfbGRpc2NgLiBUaGF0JiMzOTtzIGl0LCB0aGF0JiMzOTtzIHRoZSBrZXkuCgpNeSByZWFzb25pbmcgaXMgc3RyYWlnaHRmb3J3YXJkOiB0aGlzIHBhdGNoIGlzIG1lc3Npbmcgd2l0aCB0aGUgbG9ja2luZyBpbiBgdHR5X3NldF9sZGlzY2AgZHVyaW5nIGxpbmUgZGlzY2lwbGluZSB0cmFuc2l0aW9ucy4gVGhhdCBmdW5jdGlvbiBpcyBwcmV0dHkgY3J1Y2lhbDsgaXQmIzM5O3MgcmlnaHQgaW4gdGhlIGhlYXJ0IG9mIFRUWSBvcGVyYXRpb25zLCBlc3BlY2lhbGx5IHJlYWNoYWJsZSB0aHJvdWdoIHRoZSBgVElPQ1NFVERgIGlvY3RsLiBUaGlzIGlzIGRlZmluaXRlbHkgYSBmdW5jdGlvbmFsIG1vZGlmaWNhdGlvbiwgYW5kIHRob3NlIGFyZSBwcmltZSBjYW5kaWRhdGVzIGZvciBmdXp6aW5nIHRvIGNhdGNoIGFueSBuZXcgZGVhZGxvY2tzIG9yIHJhY2UgY29uZGl0aW9ucy4gVGhlIGdvYWwgaXMgdG8gbWFrZSBzdXJlIG5vdGhpbmcgaGFzIGJlZW4gYnJva2VuLCBzbyBpdCBpcyBpbXBvcnRhbnQgdG8gY2hlY2sgdGhlIGxvY2tpbmcgaW4gdGhlIG1vZGlmaWVkIGNvZGUuCgpTbywgdGhlIGBGb2N1c1N5bWJvbGAgaXMgYHR0eV9zZXRfbGRpc2NgLiBObyBzcGVjaWZpYyBjb25maWcgb3B0aW9ucyBuZWVkIHRvIGJlIGVuYWJsZWQgYmVmb3JlIGZ1enppbmcsIHNvIGBFbmFibGVDb25maWdzYCBpcyBlbXB0eS4gVGhlIGBXb3J0aEZ1enppbmdgIGZsYWcgaXMgZGVmaW5pdGVseSBgdHJ1ZWAgaW4gbXkgYm9vay4gV2UgbmVlZCB0byBoaXQgdGhpcyB3aXRoIGZ1enppbmcuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE2IDExOjE1PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+c2V0LXJlc3VsdHM8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogW10sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDt0dHlfc2V0X2xkaXNjJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBsb2NraW5nIGJlaGF2aW9yIGluIGB0dHlfc2V0X2xkaXNjYCBkdXJpbmcgbGluZSBkaXNjaXBsaW5lIHRyYW5zaXRpb25zLCB3aGljaCBpcyBhIGNvcmUgVFRZIG9wZXJhdGlvbiByZWFjaGFibGUgdmlhIHRoZSBgVElPQ1NFVERgIGlvY3RsLiBUaGlzIGlzIGZ1bmN0aW9uYWwgYW5kIHNob3VsZCBiZSBmdXp6ZWQgdG8gZW5zdXJlIG5vIGRlYWRsb2NrcyBvciByYWNlIGNvbmRpdGlvbnMgYXJlIGludHJvZHVjZWQuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7dHR5X3NldF9sZGlzYyYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgbG9ja2luZyBiZWhhdmlvciBpbiBgdHR5X3NldF9sZGlzY2AgZHVyaW5nIGxpbmUgZGlzY2lwbGluZSB0cmFuc2l0aW9ucywgd2hpY2ggaXMgYSBjb3JlIFRUWSBvcGVyYXRpb24gcmVhY2hhYmxlIHZpYSB0aGUgYFRJT0NTRVREYCBpb2N0bC4gVGhpcyBpcyBmdW5jdGlvbmFsIGFuZCBzaG91bGQgYmUgZnV6emVkIHRvIGVuc3VyZSBubyBkZWFkbG9ja3Mgb3IgcmFjZSBjb25kaXRpb25zIGFyZSBpbnRyb2R1Y2VkLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTwvdGJvZHk+Cgk8L3RhYmxlPgoKCTxkaXYgaWQ9ImxsbV9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+TExNIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgVG9rZW5zPC90aD4KCQkJCQk8dGg+QXZnIFRva2VuczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJsbG1fc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJ0b29sX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5Ub29sIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9InRvb2xfc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJkdXJhdGlvbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+Cgk8ZGl2IGlkPSJ0b2tlbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+CgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9qc2FwaSI+PC9zY3JpcHQ+Cgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CgkJZ29vZ2xlLmxvYWQoInZpc3VhbGl6YXRpb24iLCAiMSIsIHtwYWNrYWdlczpbImNvcmVjaGFydCJdfSk7CgkJZ29vZ2xlLnNldE9uTG9hZENhbGxiYWNrKGRyYXdDaGFydHMpOwoKCQlmdW5jdGlvbiBkcmF3Q2hhcnRzKCkgewoJCQljb25zdCByYXdEYXRhID0gW3siU3RhcnRlZCI6IjIwMjYtMDctMTZUMTE6MTU6MDUuOTQ1MzgzMjY4WiIsIlNlcSI6MCwiTmVzdGluZyI6MCwiVHlwZSI6ImZsb3ciLCJOYW1lIjoicGF0Y2gtdHJpYWdlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTc2ODkwMDY1MTgsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwidHR5X3NldF9sZGlzY1wiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBsb2NraW5nIGJlaGF2aW9yIGluIGB0dHlfc2V0X2xkaXNjYCBkdXJpbmcgbGluZSBkaXNjaXBsaW5lIHRyYW5zaXRpb25zLCB3aGljaCBpcyBhIGNvcmUgVFRZIG9wZXJhdGlvbiByZWFjaGFibGUgdmlhIHRoZSBgVElPQ1NFVERgIGlvY3RsLiBUaGlzIGlzIGZ1bmN0aW9uYWwgYW5kIHNob3VsZCBiZSBmdXp6ZWQgdG8gZW5zdXJlIG5vIGRlYWRsb2NrcyBvciByYWNlIGNvbmRpdGlvbnMgYXJlIGludHJvZHVjZWQuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE2VDExOjE1OjA1Ljk0NTQ4Mjk0OFoiLCJTZXEiOjEsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoicmVhZC1wYXRjaC1kaWZmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NjUxODA4Mjg2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJQYXRjaERpZmZcIjogXCJjb21taXQgZmY2NmI2NThkMTViMGM2YjliYmFmZDRhMTI3NmMxMWZiOWQ2ZTAzMVxcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXFx1MDAzZVxcbkRhdGU6ICAgVGh1IEp1bCAxNiAxMToxNTowNCAyMDI2ICswMDAwXFxuXFxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xcblxcbmRpZmYgLS1naXQgYS9kcml2ZXJzL3R0eS90dHlfbGRpc2MuYyBiL2RyaXZlcnMvdHR5L3R0eV9sZGlzYy5jXFxuaW5kZXggMjdmZTgyMzZmNjYyMzAuLjI0OGE2OTk1Y2M1M2ExIDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvdHR5L3R0eV9sZGlzYy5jXFxuKysrIGIvZHJpdmVycy90dHkvdHR5X2xkaXNjLmNcXG5AQCAtNTU2LDE1ICs1NTYsMjggQEAgaW50IHR0eV9zZXRfbGRpc2Moc3RydWN0IHR0eV9zdHJ1Y3QgKnR0eSwgaW50IGRpc2MpXFxuIFxcdC8qIFNodXRkb3duIHRoZSBvbGQgZGlzY2lwbGluZS4gKi9cXG4gXFx0dHR5X2xkaXNjX2Nsb3NlKHR0eSwgb2xkX2xkaXNjKTtcXG4gXFxuLVxcdC8qIE5vdyBzZXQgdXAgdGhlIG5ldyBsaW5lIGRpc2NpcGxpbmUuICovXFxuLVxcdHR0eS1cXHUwMDNlbGRpc2MgPSBuZXdfbGRpc2M7XFxuK1xcdC8qIENsZWFyIHR0eS1cXHUwMDNlbGRpc2Mgc28gY29uY3VycmVudCByZWFkZXJzIGJhY2sgb2ZmIGR1cmluZyB0cmFuc2l0aW9uICovXFxuK1xcdHR0eS1cXHUwMDNlbGRpc2MgPSBOVUxMO1xcbiBcXHR0dHlfc2V0X3Rlcm1pb3NfbGRpc2ModHR5LCBkaXNjKTtcXG4rXFx0dHR5X2xkaXNjX3VubG9jayh0dHkpO1xcbiBcXG4rXFx0LypcXG4rXFx0ICogT3BlbiB0aGUgbmV3IGRpc2NpcGxpbmUgb3V0c2lkZSBsZGlzY19zZW0uIFRoZSBsZGlzYyAub3BlbigpXFxuK1xcdCAqIG1heSBhY3F1aXJlIGxvY2tzIChlLmcuLCBydG5sX211dGV4KSB0aGF0IHdvdWxkIGNyZWF0ZSBjaXJjdWxhclxcbitcXHQgKiBkZXBlbmRlbmNpZXMgaWYgdGFrZW4gdW5kZXIgbGRpc2Nfc2VtLiB0dHlfbG9jayBpcyBzdGlsbCBoZWxkLFxcbitcXHQgKiBwcmV2ZW50aW5nIGNvbmN1cnJlbnQgbGRpc2MgY2hhbmdlcyBhbmQgaGFuZ3VwLlxcbitcXHQgKi9cXG4gXFx0cmV0dmFsID0gdHR5X2xkaXNjX29wZW4odHR5LCBuZXdfbGRpc2MpO1xcbitcXG4rXFx0dHR5X2xkaXNjX2xvY2sodHR5LCBNQVhfU0NIRURVTEVfVElNRU9VVCk7XFxuK1xcbiBcXHRpZiAocmV0dmFsIFxcdTAwM2MgMCkge1xcbiBcXHRcXHQvKiBCYWNrIHRvIHRoZSBvbGQgb25lIG9yIE5fVFRZIGlmIHdlIGNhbid0ICovXFxuIFxcdFxcdHR0eV9sZGlzY19wdXQobmV3X2xkaXNjKTtcXG4gXFx0XFx0dHR5X2xkaXNjX3Jlc3RvcmUodHR5LCBvbGRfbGRpc2MpO1xcbitcXHR9IGVsc2Uge1xcbitcXHRcXHQvKiBTdWNjZXNzIC0gaW5zdGFsbCBuZXcgbGRpc2MgKi9cXG4rXFx0XFx0dHR5LVxcdTAwM2VsZGlzYyA9IG5ld19sZGlzYztcXG4gXFx0fVxcbiBcXG4gXFx0aWYgKHR0eS1cXHUwMDNlbGRpc2MtXFx1MDAzZW9wcy1cXHUwMDNlbnVtICE9IG9sZF9sZGlzYy1cXHUwMDNlb3BzLVxcdTAwM2VudW0gXFx1MDAyNlxcdTAwMjYgdHR5LVxcdTAwM2VvcHMtXFx1MDAzZXNldF9sZGlzYykge1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xNlQxMToxNTowNi41OTc5MzA5MDRaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjE3MDM2NDUwMDcxLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcInR0eV9zZXRfbGRpc2NcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgbG9ja2luZyBiZWhhdmlvciBpbiBgdHR5X3NldF9sZGlzY2AgZHVyaW5nIGxpbmUgZGlzY2lwbGluZSB0cmFuc2l0aW9ucywgd2hpY2ggaXMgYSBjb3JlIFRUWSBvcGVyYXRpb24gcmVhY2hhYmxlIHZpYSB0aGUgYFRJT0NTRVREYCBpb2N0bC4gVGhpcyBpcyBmdW5jdGlvbmFsIGFuZCBzaG91bGQgYmUgZnV6emVkIHRvIGVuc3VyZSBubyBkZWFkbG9ja3Mgb3IgcmFjZSBjb25kaXRpb25zIGFyZSBpbnRyb2R1Y2VkLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiJZb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci5cbllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lXG5pZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXG5cbklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpblxueW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5XG51c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLlxuXG5SZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOlxuLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLlxuLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy5cbi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LlxuLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsXG5ldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuXG5cbklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2hcbnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLlxuXG5XaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzpcbjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuXG4gICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy5cbjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLlxuICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLlxuICAgRG8gbm90IGxpc3QgdG9vIGdlbmVyaWMgY29uZmlncyAod2UgYWxyZWFkeSBoYXZlIHRoZW0gZW5hYmxlZCkuIE9ubHkgbGlzdCB0aG9zZSB0aGF0XG4gICBzcGVjaWZpY2FsbHkgY292ZXIgdGhlIG1vZGlmaWVkIGNvZGUuIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncyBvdXRwdXQgYXJyYXksXG4gICBhbmQgRE8gTk9UIGFkZCBhICdDT05GSUdfJyBwcmVmaXggKGUuZy4sIHJldHVybiBcIk5FVF9JUFY0XCIgaW5zdGVhZCBvZiBcIkNPTkZJR19ORVRfSVBWNFwiKS5cblByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLlxuXG5cblVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuXG5JdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS5cbklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC5cbiIsIlByb21wdCI6IkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOlxuY29tbWl0IGZmNjZiNjU4ZDE1YjBjNmI5YmJhZmQ0YTEyNzZjMTFmYjlkNmUwMzFcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgVGh1IEp1bCAxNiAxMToxNTowNCAyMDI2ICswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvdHR5L3R0eV9sZGlzYy5jIGIvZHJpdmVycy90dHkvdHR5X2xkaXNjLmNcbmluZGV4IDI3ZmU4MjM2ZjY2MjMwLi4yNDhhNjk5NWNjNTNhMSAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvdHR5L3R0eV9sZGlzYy5jXG4rKysgYi9kcml2ZXJzL3R0eS90dHlfbGRpc2MuY1xuQEAgLTU1NiwxNSArNTU2LDI4IEBAIGludCB0dHlfc2V0X2xkaXNjKHN0cnVjdCB0dHlfc3RydWN0ICp0dHksIGludCBkaXNjKVxuIFx0LyogU2h1dGRvd24gdGhlIG9sZCBkaXNjaXBsaW5lLiAqL1xuIFx0dHR5X2xkaXNjX2Nsb3NlKHR0eSwgb2xkX2xkaXNjKTtcbiBcbi1cdC8qIE5vdyBzZXQgdXAgdGhlIG5ldyBsaW5lIGRpc2NpcGxpbmUuICovXG4tXHR0dHktXHUwMDNlbGRpc2MgPSBuZXdfbGRpc2M7XG4rXHQvKiBDbGVhciB0dHktXHUwMDNlbGRpc2Mgc28gY29uY3VycmVudCByZWFkZXJzIGJhY2sgb2ZmIGR1cmluZyB0cmFuc2l0aW9uICovXG4rXHR0dHktXHUwMDNlbGRpc2MgPSBOVUxMO1xuIFx0dHR5X3NldF90ZXJtaW9zX2xkaXNjKHR0eSwgZGlzYyk7XG4rXHR0dHlfbGRpc2NfdW5sb2NrKHR0eSk7XG4gXG4rXHQvKlxuK1x0ICogT3BlbiB0aGUgbmV3IGRpc2NpcGxpbmUgb3V0c2lkZSBsZGlzY19zZW0uIFRoZSBsZGlzYyAub3BlbigpXG4rXHQgKiBtYXkgYWNxdWlyZSBsb2NrcyAoZS5nLiwgcnRubF9tdXRleCkgdGhhdCB3b3VsZCBjcmVhdGUgY2lyY3VsYXJcbitcdCAqIGRlcGVuZGVuY2llcyBpZiB0YWtlbiB1bmRlciBsZGlzY19zZW0uIHR0eV9sb2NrIGlzIHN0aWxsIGhlbGQsXG4rXHQgKiBwcmV2ZW50aW5nIGNvbmN1cnJlbnQgbGRpc2MgY2hhbmdlcyBhbmQgaGFuZ3VwLlxuK1x0ICovXG4gXHRyZXR2YWwgPSB0dHlfbGRpc2Nfb3Blbih0dHksIG5ld19sZGlzYyk7XG4rXG4rXHR0dHlfbGRpc2NfbG9jayh0dHksIE1BWF9TQ0hFRFVMRV9USU1FT1VUKTtcbitcbiBcdGlmIChyZXR2YWwgXHUwMDNjIDApIHtcbiBcdFx0LyogQmFjayB0byB0aGUgb2xkIG9uZSBvciBOX1RUWSBpZiB3ZSBjYW4ndCAqL1xuIFx0XHR0dHlfbGRpc2NfcHV0KG5ld19sZGlzYyk7XG4gXHRcdHR0eV9sZGlzY19yZXN0b3JlKHR0eSwgb2xkX2xkaXNjKTtcbitcdH0gZWxzZSB7XG4rXHRcdC8qIFN1Y2Nlc3MgLSBpbnN0YWxsIG5ldyBsZGlzYyAqL1xuK1x0XHR0dHktXHUwMDNlbGRpc2MgPSBuZXdfbGRpc2M7XG4gXHR9XG4gXG4gXHRpZiAodHR5LVx1MDAzZWxkaXNjLVx1MDAzZW9wcy1cdTAwM2VudW0gIT0gb2xkX2xkaXNjLVx1MDAzZW9wcy1cdTAwM2VudW0gXHUwMDI2XHUwMDI2IHR0eS1cdTAwM2VvcHMtXHUwMDNlc2V0X2xkaXNjKSB7XG4iLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xNlQxMToxNTowNi41OTc5MzIzMDRaIiwiU2VxIjozLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0MDQwNDg3MTc1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgVFRZIExpbmUgRGlzY2lwbGluZSBQYXRjaCoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggdGhhdCdzIHRpbmtlcmluZyB3aXRoIGB0dHlfc2V0X2xkaXNjYCB3aXRoaW4gYGRyaXZlcnMvdHR5L3R0eV9sZGlzYy5jYC4gUmlnaHQgYXdheSwgdGhlIGNoYW5nZSB0aGF0J3MgY2F1Z2h0IG15IGV5ZSBpcyB0aGUgbW9kaWZpY2F0aW9uIHRvIGhvdyB0aGUgbG9ja2luZyB3b3JrcyBhcm91bmQgYHR0eV9sZGlzY19vcGVuYC4gSXQgYXBwZWFycyB0aGV5J3JlIHN0cmF0ZWdpY2FsbHkgdW5sb2NraW5nIGBsZGlzY19zZW1gICpiZWZvcmUqIGNhbGxpbmcgYHR0eV9sZGlzY19vcGVuYC4gVGhlbiwgdGhleSdyZSByZS1sb2NraW5nIGl0IGltbWVkaWF0ZWx5IGFmdGVyd2FyZC4gSW50ZXJlc3RpbmcuIFRoYXQncyBhIGNsYXNzaWMgc2lnbmFsIHRoYXQgdGhlcmUncyBhIHBvdGVudGlhbCByYWNlIGNvbmRpdGlvbiB0aGV5J3JlIHRyeWluZyB0byBtaXRpZ2F0ZSwgb3IgcGVyaGFwcyB0aGV5J3JlIG9wdGltaXppbmcgZm9yIGNvbmN1cnJlbmN5LlxuXG5QbHVzLCBJIG5vdGljZSB0aGV5J3JlIG51bGxpZnlpbmcgYHR0eS1cdTAwM2VsZGlzY2AgKmJlZm9yZSogdGhlIHVubG9jay4gVGhpcyBpcyBsaWtlbHkgdG8gcHJldmVudCBhIHVzZS1hZnRlci1mcmVlIHNjZW5hcmlvLiBBbmQgdGhlbiwgaWYgYHR0eV9sZGlzY19vcGVuYCBhY3R1YWxseSBzdWNjZWVkcywgdGhleSByZWFzc2lnbiB0aGUgYHR0eS1cdTAwM2VsZGlzY2AgcG9pbnRlciAqYWZ0ZXIqIHJlLWFjcXVpcmluZyB0aGUgbG9jaywgdG8gdGhlIGBuZXdfbGRpc2NgLiBNYWtlcyBzZW5zZSwgdG8gZW5zdXJlIGNvbnNpc3RlbmN5IGFuZCBwcmV2ZW50IGRhbmdsaW5nIHBvaW50ZXJzLiBTbywgSSBuZWVkIHRvIHVuZGVyc3RhbmQgd2h5IHRoaXMgc3BlY2lmaWMgc2VxdWVuY2UgaXMgbmVjZXNzYXJ5IGFuZCB3aGF0IGNvbmN1cnJlbmN5IGNvbmNlcm5zIHRoZXkncmUgbGlrZWx5IGFkZHJlc3NpbmcuIFRpbWUgdG8gZGlnIGRlZXBlciBpbnRvIHRoZSByYXRpb25hbGUgYmVoaW5kIHRoaXMgYXBwcm9hY2ggYW5kIHRoZSBwb3RlbnRpYWwgcmFjZSBjb25kaXRpb25zIHRoZXkgbWlnaHQgYmUgcHJlZW1wdGluZy5cblxuXG4iLCJJbnB1dFRva2VucyI6MjEyMywiT3V0cHV0VG9rZW5zIjozNiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjEzNCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE2VDExOjE1OjEwLjYzODQyMTI5OVoiLCJTZXEiOjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjozNTYyODE0NjMsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwidHR5X3NldF9sZGlzY1wiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL3R0eS90dHlfbGRpc2MuY1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL3R0eS90dHlfbGRpc2MuYz00OTE9c3RhdGljIHZvaWQgdHR5X2xkaXNjX3Jlc3RvcmUoc3RydWN0IHR0eV9zdHJ1Y3QgKnR0eSwgc3RydWN0IHR0eV9sZGlzYyAqb2xkKVxcbi0tXFxuZHJpdmVycy90dHkvdHR5X2xkaXNjLmMtNTA5LS8qKlxcbmRyaXZlcnMvdHR5L3R0eV9sZGlzYy5jOjUxMDogKiB0dHlfc2V0X2xkaXNjXFx0XFx0LVxcdHNldCBsaW5lIGRpc2NpcGxpbmVcXG5kcml2ZXJzL3R0eS90dHlfbGRpc2MuYy01MTEtICogQHR0eTogdGhlIHRlcm1pbmFsIHRvIHNldFxcbi0tXFxuZHJpdmVycy90dHkvdHR5X2xkaXNjLmMtNTE4LSAqL1xcbmRyaXZlcnMvdHR5L3R0eV9sZGlzYy5jOjUxOTppbnQgdHR5X3NldF9sZGlzYyhzdHJ1Y3QgdHR5X3N0cnVjdCAqdHR5LCBpbnQgZGlzYylcXG5kcml2ZXJzL3R0eS90dHlfbGRpc2MuYy01MjAte1xcbi0tXFxuZHJpdmVycy90dHkvdHR5X2xkaXNjLmMtNjA5LX1cXG5kcml2ZXJzL3R0eS90dHlfbGRpc2MuYzo2MTA6RVhQT1JUX1NZTUJPTF9HUEwodHR5X3NldF9sZGlzYyk7XFxuZHJpdmVycy90dHkvdHR5X2xkaXNjLmMtNjExLVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xNlQxMToxNToxMC45OTQ3MTIwNDJaIiwiU2VxIjo1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozOTA2MTQ3NTA3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgZnJhbWVkIGZyb20gbXkgZXhwZXJ0IHBlcnNwZWN0aXZlOlxuXG4qKlBhdGNoIEFuYWx5c2lzIGFuZCBUVFkgQ29uZmlndXJhdGlvbiBSZXZpZXcqKlxuXG5BbHJpZ2h0LCBzbyB0aGUgcGF0Y2ggaXMgaW4uIFNlZW1zIGxpa2UgaXQncyBhIHNvbGlkIGZ1bmN0aW9uYWwgY2hhbmdlLCBhbmQgaXQncyB0b3VjaGluZyBjb3JlIFRUWSBsb2dpYyDigJMgYWx3YXlzIGEgc2Vuc2l0aXZlIGFyZWEuIE15IGZpcnN0IG9yZGVyIG9mIGJ1c2luZXNzIGlzIHRvIHRob3JvdWdobHkgdW5kZXJzdGFuZCB0aGUgcG90ZW50aWFsIGNvbmZpZ3VyYXRpb24gaW1wbGljYXRpb25zLiBTaW5jZSBpdCdzIGludGVyYWN0aW5nIHdpdGggdGhlIFRUWSBsYXllciBkaXJlY3RseSwgSSdsbCBuZWVkIHRvIGNvbmZpcm0gaWYgdGhlcmUgYXJlIGFueSBzZXR0aW5ncyB0aGF0IG1pZ2h0IG5lZWQgYWRqdXN0bWVudCB0byBhY2NvbW1vZGF0ZSB0aGlzIGNoYW5nZSBvciwgd29yc2UsIGlmIHRoZXJlIGFyZSBpbnRlcmFjdGlvbnMgdGhhdCBjb3VsZCBjYXVzZSByZWdyZXNzaW9ucyBpbiBjZXJ0YWluIGNvbmZpZ3VyYXRpb25zLlxuXG5JJ20gemVyb2luZyBpbiBvbiBgZHJpdmVycy90dHkvdHR5X2xkaXNjLmNgIGFzIHRoZSByZWxldmFudCBmaWxlLCB3aGljaCBtYWtlcyBzZW5zZS4gS25vd2luZyBob3cgdGhlIFRUWSBzdWJzeXN0ZW0gaXMgc3RydWN0dXJlZCwgdGhhdCdzIHdoZXJlIEknZCBleHBlY3QgbGluZSBkaXNjaXBsaW5lIHJlbGF0ZWQgY2hhbmdlcy4gTm93LCBzcGVjaWZpY2FsbHksIEnigJltIGludGVyZXN0ZWQgaW4gaG93IHRoaXMgaW50ZXJhY3RzIHdpdGggYHR0eV9zZXRfbGRpc2NgLCBiZWNhdXNlIHRoYXQgaXMgdGhlIGNydWNpYWwgZnVuY3Rpb24uIEkga25vdyB0aGF0IGZ1bmN0aW9uIGlzIHRyaWdnZXJlZCBieSBgdGlvY3NldGRgLCB3aGljaCBpcyB0aGUgYFRJT0NTRVREYCBpb2N0bCBjYWxsLiBUaGF0IG5hcnJvd3MgZG93biBteSBmb2N1cy4gTm93IEkgbmVlZCB0byBrbm93IGlmIHRoZXJlIGFyZSBhbnkgbmljaGUgVFRZIHNldHRpbmdzIHRoYXQgbWlnaHQgYWZmZWN0IHRoZSBwYXRjaC4gVFRZIGlzIGdlbmVyYWxseSBhbHdheXMgZW5hYmxlZCwgYnV0IEknbGwgbWFrZSBzdXJlIHRoZXJlJ3Mgbm90aGluZyBzdHJhbmdlIHRoYXQgSSdtIG1pc3NpbmcuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjI4MzMsIk91dHB1dFRva2VucyI6MzAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo4OSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0xNlQxMToxNToxNC45MDA4NjE5MTlaIiwiU2VxIjo2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NzA1NDEwMTksIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwidHR5X3NldF9sZGlzY1wiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL3R0eS9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy90dHkvdHR5X2lvLmM9MjM4MD1zdGF0aWMgaW50IHRpb2Njb25zKHN0cnVjdCBmaWxlICpmaWxlKVxcbi0tXFxuZHJpdmVycy90dHkvdHR5X2lvLmMtMjQxOC0gKlxcbmRyaXZlcnMvdHR5L3R0eV9pby5jOjI0MTk6ICogTG9ja2luZzogc2VlIHR0eV9zZXRfbGRpc2MoKSwgdGhpcyBmdW5jdGlvbiBpcyBqdXN0IGEgaGVscGVyXFxuZHJpdmVycy90dHkvdHR5X2lvLmMtMjQyMC0gKi9cXG5kcml2ZXJzL3R0eS90dHlfaW8uYz0yNDIxPXN0YXRpYyBpbnQgdGlvY3NldGQoc3RydWN0IHR0eV9zdHJ1Y3QgKnR0eSwgaW50IF9fdXNlciAqcClcXG4tLVxcbmRyaXZlcnMvdHR5L3R0eV9pby5jLTI0MjgtXFxuZHJpdmVycy90dHkvdHR5X2lvLmM6MjQyOTpcXHRyZXQgPSB0dHlfc2V0X2xkaXNjKHR0eSwgZGlzYyk7XFxuZHJpdmVycy90dHkvdHR5X2lvLmMtMjQzMC1cXG4tLVxcbmRyaXZlcnMvdHR5L3R0eV9sZGlzYy5jPTQ5MT1zdGF0aWMgdm9pZCB0dHlfbGRpc2NfcmVzdG9yZShzdHJ1Y3QgdHR5X3N0cnVjdCAqdHR5LCBzdHJ1Y3QgdHR5X2xkaXNjICpvbGQpXFxuLS1cXG5kcml2ZXJzL3R0eS90dHlfbGRpc2MuYy01MDktLyoqXFxuZHJpdmVycy90dHkvdHR5X2xkaXNjLmM6NTEwOiAqIHR0eV9zZXRfbGRpc2NcXHRcXHQtXFx0c2V0IGxpbmUgZGlzY2lwbGluZVxcbmRyaXZlcnMvdHR5L3R0eV9sZGlzYy5jLTUxMS0gKiBAdHR5OiB0aGUgdGVybWluYWwgdG8gc2V0XFxuLS1cXG5kcml2ZXJzL3R0eS90dHlfbGRpc2MuYy01MTgtICovXFxuZHJpdmVycy90dHkvdHR5X2xkaXNjLmM6NTE5OmludCB0dHlfc2V0X2xkaXNjKHN0cnVjdCB0dHlfc3RydWN0ICp0dHksIGludCBkaXNjKVxcbmRyaXZlcnMvdHR5L3R0eV9sZGlzYy5jLTUyMC17XFxuLS1cXG5kcml2ZXJzL3R0eS90dHlfbGRpc2MuYy02MDktfVxcbmRyaXZlcnMvdHR5L3R0eV9sZGlzYy5jOjYxMDpFWFBPUlRfU1lNQk9MX0dQTCh0dHlfc2V0X2xkaXNjKTtcXG5kcml2ZXJzL3R0eS90dHlfbGRpc2MuYy02MTEtXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE2VDExOjE1OjE0Ljk3MTQwODYwOFoiLCJTZXEiOjcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjMyNzUxNjczNDEsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGxldCdzIGJyZWFrIHRoaXMgZG93bi5cblxuKipGdXp6aW5nIFRhcmdldCBJZGVudGlmaWNhdGlvbjogdHR5X3NldF9sZGlzYyoqXG5cblJpZ2h0LCBgdHR5X3NldF9sZGlzY2AuIFRoYXQgZnVuY3Rpb24gKmRlZmluaXRlbHkqIGxvb2tzIGxpa2UgYSBnb29kIHRhcmdldCBmb3IgZnV6emluZy4gSXQncyBidXJpZWQgaW4gdGhlIFRUWSBsYXllciwgd2hpY2ggaXMgcHJldHR5IGZ1bmRhbWVudGFsLiBNeSBpbnN0aW5jdHMgdGVsbCBtZSBpdCdzIGxpa2VseSByZWFjaGFibGUgZ2l2ZW4gaG93IGNvcmUgaXQgaXMsIHdoaWNoIGFsd2F5cyBwaXF1ZXMgbXkgaW50ZXJlc3QuIFRoZSBmb2N1cyBoZXJlIGlzIGNsZWFybHkgb24gYHR0eV9zZXRfbGRpc2NgIHNwZWNpZmljYWxseS4gSSBuZWVkIHRvIG1ha2Ugc3VyZSBJIHVuZGVyc3RhbmQgdGhlIGNvbnRleHQuXG5cbkkgbmVlZCB0byBjb25maXJtIHRoYXQgdGhlIFRUWSBjb2RlIGlzIGVuYWJsZWQgYnkgZGVmYXVsdC4gT2Z0ZW4sIGRlZmF1bHQgY29uZmlndXJhdGlvbnMgYXJlIHRoZSByaWNoZXN0IHRlc3RpbmcgZ3JvdW5kIGJlY2F1c2UgdGhleSdyZSB0aGUgbW9zdCBjb21tb25seSBlbmNvdW50ZXJlZC4gVGhlbiBJIHdpbGwgZG91YmxlLWNoZWNrIHdoZXRoZXIgdGhlIGNvZGUgZm9yIGB0dHlfbGRpc2MuY2AgaXMgY29tcGlsZWQgaW4gdGhpcyBjb25maWd1cmF0aW9uLiBFbnN1cmluZyB0aGUgYmFzaWMgVFRZIGZ1bmN0aW9uYWxpdHkgaXMgZW5hYmxlZCBpcyBrZXkgZm9yIHRlc3RpbmcgdGhpcyBmdW5jdGlvbi5cblxuXG4iLCJJbnB1dFRva2VucyI6MzY5MywiT3V0cHV0VG9rZW5zIjozMSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjczLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE2VDExOjE1OjE4LjI0NjU3ODAzOVoiLCJTZXEiOjgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxOTcwMTUyNzYsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwidHR5X2xkaXNjLm9cIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy90dHkvTWFrZWZpbGVcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy90dHkvTWFrZWZpbGUtMS0jIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wXFxuZHJpdmVycy90dHkvTWFrZWZpbGU6MjpvYmotJChDT05GSUdfVFRZKVxcdFxcdCs9IHR0eV9pby5vIG5fdHR5Lm8gdHR5X2lvY3RsLm8gdHR5X2xkaXNjLm8gXFxcXFxcbmRyaXZlcnMvdHR5L01ha2VmaWxlLTMtXFx0XFx0XFx0XFx0ICAgdHR5X2J1ZmZlci5vIHR0eV9wb3J0Lm8gdHR5X211dGV4Lm8gXFxcXFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xNlQxMToxNToxOC40NDM1OTk3MzVaIiwiU2VxIjo5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo1MTkwNzM5OTExLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgS2VybmVsIFBhdGNoIGZvciBGdXp6aW5nIFBvdGVudGlhbCoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggYW5kIGZpZ3VyaW5nIG91dCBob3cgYmVzdCB0byBhcHByb2FjaCBmdXp6aW5nIGl0LiBUaGUgaW5pdGlhbCB0aG91Z2h0IHdhcyB0byBzaW1wbHkgbGlzdCBgQ09ORklHX1RUWWAgYmVjYXVzZSBpdCdzIHVzdWFsbHkgZW5hYmxlZCwgYnV0IHRoZSBwcm9tcHQncyBjbGVhcjogXCJEb24ndCBsaXN0IGdlbmVyaWMgY29uZmlncywgb25seSB0aG9zZSBzcGVjaWZpY2FsbHkgdGllZCB0byB0aGUgbW9kaWZpZWQgY29kZS5cIiBgQ09ORklHX1RUWWAgaXMgKndheSogdG9vIGJyb2FkIGhlcmUuXG5cbk5vdywgbGV0J3Mgc2VlIHdoYXQncyBhY3R1YWxseSBiZWVuIHRvdWNoZWQuIEFoLCBvbmx5IGB0dHlfc2V0X2xkaXNjYC4gVGhhdCdzIGl0LCB0aGF0J3MgdGhlIGtleS5cblxuTXkgcmVhc29uaW5nIGlzIHN0cmFpZ2h0Zm9yd2FyZDogdGhpcyBwYXRjaCBpcyBtZXNzaW5nIHdpdGggdGhlIGxvY2tpbmcgaW4gYHR0eV9zZXRfbGRpc2NgIGR1cmluZyBsaW5lIGRpc2NpcGxpbmUgdHJhbnNpdGlvbnMuIFRoYXQgZnVuY3Rpb24gaXMgcHJldHR5IGNydWNpYWw7IGl0J3MgcmlnaHQgaW4gdGhlIGhlYXJ0IG9mIFRUWSBvcGVyYXRpb25zLCBlc3BlY2lhbGx5IHJlYWNoYWJsZSB0aHJvdWdoIHRoZSBgVElPQ1NFVERgIGlvY3RsLiBUaGlzIGlzIGRlZmluaXRlbHkgYSBmdW5jdGlvbmFsIG1vZGlmaWNhdGlvbiwgYW5kIHRob3NlIGFyZSBwcmltZSBjYW5kaWRhdGVzIGZvciBmdXp6aW5nIHRvIGNhdGNoIGFueSBuZXcgZGVhZGxvY2tzIG9yIHJhY2UgY29uZGl0aW9ucy4gVGhlIGdvYWwgaXMgdG8gbWFrZSBzdXJlIG5vdGhpbmcgaGFzIGJlZW4gYnJva2VuLCBzbyBpdCBpcyBpbXBvcnRhbnQgdG8gY2hlY2sgdGhlIGxvY2tpbmcgaW4gdGhlIG1vZGlmaWVkIGNvZGUuXG5cblNvLCB0aGUgYEZvY3VzU3ltYm9sYCBpcyBgdHR5X3NldF9sZGlzY2AuIE5vIHNwZWNpZmljIGNvbmZpZyBvcHRpb25zIG5lZWQgdG8gYmUgZW5hYmxlZCBiZWZvcmUgZnV6emluZywgc28gYEVuYWJsZUNvbmZpZ3NgIGlzIGVtcHR5LiBUaGUgYFdvcnRoRnV6emluZ2AgZmxhZyBpcyBkZWZpbml0ZWx5IGB0cnVlYCBpbiBteSBib29rLiBXZSBuZWVkIHRvIGhpdCB0aGlzIHdpdGggZnV6emluZy5cblxuXG4iLCJJbnB1dFRva2VucyI6NDA4OCwiT3V0cHV0VG9rZW5zIjo5OCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE4NCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0xNlQxMToxNToyMy42MzQzNDIwNzZaIiwiU2VxIjoxMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjozNjM2MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW10sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcInR0eV9zZXRfbGRpc2NcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgbG9ja2luZyBiZWhhdmlvciBpbiBgdHR5X3NldF9sZGlzY2AgZHVyaW5nIGxpbmUgZGlzY2lwbGluZSB0cmFuc2l0aW9ucywgd2hpY2ggaXMgYSBjb3JlIFRUWSBvcGVyYXRpb24gcmVhY2hhYmxlIHZpYSB0aGUgYFRJT0NTRVREYCBpb2N0bC4gVGhpcyBpcyBmdW5jdGlvbmFsIGFuZCBzaG91bGQgYmUgZnV6emVkIHRvIGVuc3VyZSBubyBkZWFkbG9ja3Mgb3IgcmFjZSBjb25kaXRpb25zIGFyZSBpbnRyb2R1Y2VkLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcInR0eV9zZXRfbGRpc2NcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgbG9ja2luZyBiZWhhdmlvciBpbiBgdHR5X3NldF9sZGlzY2AgZHVyaW5nIGxpbmUgZGlzY2lwbGluZSB0cmFuc2l0aW9ucywgd2hpY2ggaXMgYSBjb3JlIFRUWSBvcGVyYXRpb24gcmVhY2hhYmxlIHZpYSB0aGUgYFRJT0NTRVREYCBpb2N0bC4gVGhpcyBpcyBmdW5jdGlvbmFsIGFuZCBzaG91bGQgYmUgZnV6emVkIHRvIGVuc3VyZSBubyBkZWFkbG9ja3Mgb3IgcmFjZSBjb25kaXRpb25zIGFyZSBpbnRyb2R1Y2VkLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH1dOwoJCQlpZiAoIXJhd0RhdGEgfHwgcmF3RGF0YS5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpOwoJCQlkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKTsKCQkJZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpIHsKCQkJY29uc3Qgc3RhdHMgPSB7CgkJCQlsbG06IHsgY291bnQ6IDAsIHRva2VuczogMCwgZHVyYXRpb246IDAgfSwKCQkJCXRvb2w6IHsgY291bnQ6IDAsIGR1cmF0aW9uOiAwIH0KCQkJfTsKCgkJCXJhd0RhdGEuZm9yRWFjaChzID0+IHsKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOyAKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iKSB7CgkJCQkJc3RhdHMubGxtLmNvdW50Kys7CgkJCQkJc3RhdHMubGxtLnRva2VucyArPSAocy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2Vucyk7CgkJCQkJc3RhdHMubGxtLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0gZWxzZSBpZiAocy5UeXBlID09PSAidG9vbCIpIHsKCQkJCQlzdGF0cy50b29sLmNvdW50Kys7CgkJCQkJc3RhdHMudG9vbC5kdXJhdGlvbiArPSBkdXI7CgkJCQl9CgkJCX0pOwoKCQkJY29uc3QgYXZnTGxtRHVyID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0uZHVyYXRpb24gLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdMbG1Ub2tlbiA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLnRva2VucyAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z1Rvb2xEdXIgPSBzdGF0cy50b29sLmNvdW50ID4gMCA/IChzdGF0cy50b29sLmR1cmF0aW9uIC8gc3RhdHMudG9vbC5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgoJCQljb25zdCBsbG1TdW1hcnlDZWxscyA9IFtzdGF0cy5sbG0uY291bnQsIHN0YXRzLmxsbS50b2tlbnMsIGF2Z0xsbVRva2VuLCBzdGF0cy5sbG0uZHVyYXRpb24sIGF2Z0xsbUR1cl07CgkJCWNvbnN0IHRvb2xTdW1tYXJ5Q2VsbHMgPSBbc3RhdHMudG9vbC5jb3VudCwgc3RhdHMudG9vbC5kdXJhdGlvbiwgYXZnVG9vbER1cl07CgoJCQljb25zdCBsbG1TdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsbG1fc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCWxsbVN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCBsbG1UciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCWxsbVN1bWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQlsbG1Uci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQlsbG1TdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZChsbG1Ucik7CgoJCQljb25zdCB0b29sU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJdG9vbFN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCB0b29sVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQl0b29sU3VtbWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQl0b29sVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJdG9vbFN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKHRvb2xUcik7CgkJfQoKCQlmdW5jdGlvbiBkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGZpbHRlcmVkU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IFsibGxtIiwgInRvb2wiXS5pbmNsdWRlcyhkLlR5cGUpKTsKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnRHVyYXRpb24nKTsKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsgCgoJCQlmaWx0ZXJlZFN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQkKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOwoJCQkJbGV0IHRvb2x0aXAgPSBzLk5hbWU7CgkJCQlpZiAocy5UeXBlID09PSAibGxtIiAmJiBzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgkJCQlkYXRhLmFkZFJvdyhbYCR7cy5TZXF9YCwgZHVyLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVGltZSBDb25zdW1wdGlvbiBvZiBMTE0vVG9vbCBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNL1Rvb2wgU3RlcHMnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnU2Vjb25kcycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZHVyYXRpb25fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGxsbVN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBkLlR5cGUgPT09ICJsbG0iKTsKCQkJaWYgKGxsbVN0ZXBzLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnVG9rZW5zJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3N0eWxlJ30pOwkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsJCgoJCQljb25zdCBhZ2VudENvbG9ycyA9IHt9OwoJCQljb25zdCBwYWxldHRlID0gWycjNDI4NUY0JywgJyNEQjQ0MzcnLCAnI0Y0QjQwMCcsICcjMEY5RDU4JywgJyNBQjQ3QkMnLCAnIzAwQUNDMSddOwoJCQlsZXQgY29sb3JJZHggPSAwOwoJCQljb25zdCBhZ2VudExMTUNvdW50cyA9IHt9OwoJCQlsbG1TdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJaWYgKCFhZ2VudENvbG9yc1tzLk5hbWVdKSB7CgkJCQkJYWdlbnRDb2xvcnNbcy5OYW1lXSA9IHBhbGV0dGVbY29sb3JJZHggJSBwYWxldHRlLmxlbmd0aF07CgkJCQkJY29sb3JJZHgrKzsKCQkJCX0KCgkJCQlhZ2VudExMTUNvdW50c1tzLk5hbWVdID0gKGFnZW50TExNQ291bnRzW3MuTmFtZV0gfHwgMCkgKyAxOwoJCQkJY29uc3QgbGFiZWwgPSBgJHtzLk5hbWV9LSR7YWdlbnRMTE1Db3VudHNbcy5OYW1lXX1gOwoJCQkJY29uc3QgdG90YWxUb2tlbnMgPSBzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zOwoJCQkJY29uc3Qgc3R5bGUgPSBgY29sb3I6ICR7YWdlbnRDb2xvcnNbcy5OYW1lXX1gOwoJCQkJbGV0IHRvb2x0aXAgPSBgVG90YWwgVG9rZW5zOiAke3RvdGFsVG9rZW5zfVxuKEluOiAke3MuSW5wdXRUb2tlbnN9LCBPdXQ6ICR7cy5PdXRwdXRUb2tlbnN9LCBUaG91Z2h0czogJHtzLk91dHB1dFRob3VnaHRzVG9rZW5zfSlgOwoJCQkJaWYgKHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCgkJCQlkYXRhLmFkZFJvdyhbbGFiZWwsIHRvdGFsVG9rZW5zLCBzdHlsZSwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1Rva2VuIENvbnN1bXB0aW9uIGJ5IExMTSBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNIENhbGwgU2VxdWVuY2UnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnQ29uc3VtZWQgVG9rZW5zJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b2tlbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoJCWxldCBhbGxFeHBhbmRlZCA9IGZhbHNlOwoJCWZ1bmN0aW9uIHRvZ2dsZUFsbERldGFpbHMoKSB7CgkJCWFsbEV4cGFuZGVkID0gIWFsbEV4cGFuZGVkOwoJCQlkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdkZXRhaWxzJykuZm9yRWFjaChkID0+IHsKCQkJCWlmIChhbGxFeHBhbmRlZCkgZC5zZXRBdHRyaWJ1dGUoJ29wZW4nLCAnJyk7CgkJCQllbHNlIGQucmVtb3ZlQXR0cmlidXRlKCdvcGVuJyk7CgkJCX0pOwoJCX0KCTwvc2NyaXB0PgoKCjwvYm9keT4KPC9odG1sPgo=" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowhm22j[1] Phase: Succeeded StartedAt: 2026-07-16 11:15:35 +0000 UTC FinishedAt: 2026-07-16 11:15:35 +0000 UTC Input: nil Output: nil --------- Name: series-workflowhm22j[1].abort-on-skip-outcome Phase: Skipped StartedAt: 2026-07-16 11:15:35 +0000 UTC FinishedAt: 2026-07-16 11:15:35 +0000 UTC Input: nil Output: nil --------- Name: series-workflowhm22j[2] Phase: Succeeded StartedAt: 2026-07-16 11:15:35 +0000 UTC FinishedAt: 2026-07-16 13:24:58 +0000 UTC Input: nil Output: nil --------- Name: series-workflowhm22j[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["tty_set_ldisc"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","series_id":"f2ff1656-c00b-4ed8-ba3f-0ba0768df446","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN) Phase: Succeeded StartedAt: 2026-07-16 11:15:35 +0000 UTC FinishedAt: 2026-07-16 13:24:58 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:element,Default:nil,Value:*{"base":{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},"fuzz":{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["tty_set_ldisc"],"skip_cover_check":false},"patched":{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","series_id":"f2ff1656-c00b-4ed8-ba3f-0ba0768df446","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},"retest":null,"track":"KASAN"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: nil --------- Name: series-workflowhm22j[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["tty_set_ldisc"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","series_id":"f2ff1656-c00b-4ed8-ba3f-0ba0768df446","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[0] Phase: Succeeded StartedAt: 2026-07-16 11:15:35 +0000 UTC FinishedAt: 2026-07-16 11:16:20 +0000 UTC Input: nil Output: nil --------- Name: series-workflowhm22j[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["tty_set_ldisc"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","series_id":"f2ff1656-c00b-4ed8-ba3f-0ba0768df446","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[0].save-base-req Phase: Succeeded StartedAt: 2026-07-16 11:15:35 +0000 UTC FinishedAt: 2026-07-16 11:16:15 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{Artifact{Name:artifact,Path:/tmp/artifact,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowhm22j/series-workflowhm22j-convert-artifact-1444973130/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowhm22j[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["tty_set_ldisc"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","series_id":"f2ff1656-c00b-4ed8-ba3f-0ba0768df446","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[1] Phase: Succeeded StartedAt: 2026-07-16 11:16:20 +0000 UTC FinishedAt: 2026-07-16 11:48:17 +0000 UTC Input: nil Output: nil --------- Name: series-workflowhm22j[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["tty_set_ldisc"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","series_id":"f2ff1656-c00b-4ed8-ba3f-0ba0768df446","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[1].base-build Phase: Succeeded StartedAt: 2026-07-16 11:16:20 +0000 UTC FinishedAt: 2026-07-16 11:48:17 +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:*c048e2dc-a4ed-454f-9e3b-0b8bd616dba6,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-workflowhm22j/series-workflowhm22j-convert-artifact-1444973130/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": "7488ffe8-956f-4303-90c2-f42aa88c4a4a", "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-workflowhm22j/series-workflowhm22j-build-action-2306155064/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowhm22j[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["tty_set_ldisc"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","series_id":"f2ff1656-c00b-4ed8-ba3f-0ba0768df446","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[1].base-build(0) Phase: Succeeded StartedAt: 2026-07-16 11:16:20 +0000 UTC FinishedAt: 2026-07-16 11:48:06 +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:*c048e2dc-a4ed-454f-9e3b-0b8bd616dba6,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-workflowhm22j/series-workflowhm22j-convert-artifact-1444973130/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": "7488ffe8-956f-4303-90c2-f42aa88c4a4a", "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-workflowhm22j/series-workflowhm22j-build-action-2306155064/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowhm22j[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["tty_set_ldisc"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","series_id":"f2ff1656-c00b-4ed8-ba3f-0ba0768df446","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[2] Phase: Succeeded StartedAt: 2026-07-16 11:48:17 +0000 UTC FinishedAt: 2026-07-16 11:48:17 +0000 UTC Input: nil Output: nil --------- Name: series-workflowhm22j[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["tty_set_ldisc"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","series_id":"f2ff1656-c00b-4ed8-ba3f-0ba0768df446","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[2].abort-if-base-build-failed Phase: Skipped StartedAt: 2026-07-16 11:48:17 +0000 UTC FinishedAt: 2026-07-16 11:48:17 +0000 UTC Input: nil Output: nil --------- Name: series-workflowhm22j[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["tty_set_ldisc"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","series_id":"f2ff1656-c00b-4ed8-ba3f-0ba0768df446","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[3] Phase: Succeeded StartedAt: 2026-07-16 11:48:17 +0000 UTC FinishedAt: 2026-07-16 11:48:28 +0000 UTC Input: nil Output: nil --------- Name: series-workflowhm22j[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["tty_set_ldisc"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","series_id":"f2ff1656-c00b-4ed8-ba3f-0ba0768df446","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[3].save-patched-req Phase: Succeeded StartedAt: 2026-07-16 11:48:17 +0000 UTC FinishedAt: 2026-07-16 11:48:24 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","series_id":"f2ff1656-c00b-4ed8-ba3f-0ba0768df446","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{Artifact{Name:artifact,Path:/tmp/artifact,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowhm22j/series-workflowhm22j-convert-artifact-1160878053/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowhm22j[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["tty_set_ldisc"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","series_id":"f2ff1656-c00b-4ed8-ba3f-0ba0768df446","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[4] Phase: Succeeded StartedAt: 2026-07-16 11:48:28 +0000 UTC FinishedAt: 2026-07-16 11:50:42 +0000 UTC Input: nil Output: nil --------- Name: series-workflowhm22j[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["tty_set_ldisc"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","series_id":"f2ff1656-c00b-4ed8-ba3f-0ba0768df446","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[4].boot-test-base Phase: Succeeded StartedAt: 2026-07-16 11:48:28 +0000 UTC FinishedAt: 2026-07-16 11:50:32 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*7488ffe8-956f-4303-90c2-f42aa88c4a4a,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-workflowhm22j/series-workflowhm22j-build-action-2306155064/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-workflowhm22j[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["tty_set_ldisc"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","series_id":"f2ff1656-c00b-4ed8-ba3f-0ba0768df446","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[5] Phase: Succeeded StartedAt: 2026-07-16 11:50:42 +0000 UTC FinishedAt: 2026-07-16 11:50:42 +0000 UTC Input: nil Output: nil --------- Name: series-workflowhm22j[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["tty_set_ldisc"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","series_id":"f2ff1656-c00b-4ed8-ba3f-0ba0768df446","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[5].abort-if-base-boot-failed Phase: Skipped StartedAt: 2026-07-16 11:50:42 +0000 UTC FinishedAt: 2026-07-16 11:50:42 +0000 UTC Input: nil Output: nil --------- Name: series-workflowhm22j[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["tty_set_ldisc"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","series_id":"f2ff1656-c00b-4ed8-ba3f-0ba0768df446","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[6] Phase: Succeeded StartedAt: 2026-07-16 11:50:42 +0000 UTC FinishedAt: 2026-07-16 12:27:14 +0000 UTC Input: nil Output: nil --------- Name: series-workflowhm22j[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["tty_set_ldisc"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","series_id":"f2ff1656-c00b-4ed8-ba3f-0ba0768df446","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[6].patched-build Phase: Succeeded StartedAt: 2026-07-16 11:50:42 +0000 UTC FinishedAt: 2026-07-16 12:27:14 +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:*c048e2dc-a4ed-454f-9e3b-0b8bd616dba6,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-workflowhm22j/series-workflowhm22j-convert-artifact-1160878053/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": "847f06a2-6bf1-4724-b9eb-66171e88f2bf", "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-workflowhm22j/series-workflowhm22j-build-action-3782503473/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowhm22j[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["tty_set_ldisc"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","series_id":"f2ff1656-c00b-4ed8-ba3f-0ba0768df446","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[6].patched-build(0) Phase: Succeeded StartedAt: 2026-07-16 11:50:42 +0000 UTC FinishedAt: 2026-07-16 12:27:02 +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:*c048e2dc-a4ed-454f-9e3b-0b8bd616dba6,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-workflowhm22j/series-workflowhm22j-convert-artifact-1160878053/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": "847f06a2-6bf1-4724-b9eb-66171e88f2bf", "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-workflowhm22j/series-workflowhm22j-build-action-3782503473/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowhm22j[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["tty_set_ldisc"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","series_id":"f2ff1656-c00b-4ed8-ba3f-0ba0768df446","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[7] Phase: Succeeded StartedAt: 2026-07-16 12:27:14 +0000 UTC FinishedAt: 2026-07-16 12:27:14 +0000 UTC Input: nil Output: nil --------- Name: series-workflowhm22j[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["tty_set_ldisc"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","series_id":"f2ff1656-c00b-4ed8-ba3f-0ba0768df446","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[7].abort-if-patched-build-failed Phase: Skipped StartedAt: 2026-07-16 12:27:14 +0000 UTC FinishedAt: 2026-07-16 12:27:14 +0000 UTC Input: nil Output: nil --------- Name: series-workflowhm22j[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["tty_set_ldisc"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","series_id":"f2ff1656-c00b-4ed8-ba3f-0ba0768df446","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[8] Phase: Succeeded StartedAt: 2026-07-16 12:27:14 +0000 UTC FinishedAt: 2026-07-16 12:29:33 +0000 UTC Input: nil Output: nil --------- Name: series-workflowhm22j[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["tty_set_ldisc"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","series_id":"f2ff1656-c00b-4ed8-ba3f-0ba0768df446","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[8].boot-test-patched Phase: Succeeded StartedAt: 2026-07-16 12:27:14 +0000 UTC FinishedAt: 2026-07-16 12:29:22 +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:*847f06a2-6bf1-4724-b9eb-66171e88f2bf,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-workflowhm22j/series-workflowhm22j-build-action-3782503473/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-workflowhm22j[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["tty_set_ldisc"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","series_id":"f2ff1656-c00b-4ed8-ba3f-0ba0768df446","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[9] Phase: Succeeded StartedAt: 2026-07-16 12:29:33 +0000 UTC FinishedAt: 2026-07-16 12:29:34 +0000 UTC Input: nil Output: nil --------- Name: series-workflowhm22j[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["tty_set_ldisc"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","series_id":"f2ff1656-c00b-4ed8-ba3f-0ba0768df446","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[10] Phase: Succeeded StartedAt: 2026-07-16 12:29:34 +0000 UTC FinishedAt: 2026-07-16 13:24:58 +0000 UTC Input: nil Output: nil --------- Name: series-workflowhm22j[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["tty_set_ldisc"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","series_id":"f2ff1656-c00b-4ed8-ba3f-0ba0768df446","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[10].run-fuzz Phase: Succeeded StartedAt: 2026-07-16 12:29:34 +0000 UTC FinishedAt: 2026-07-16 13:24:58 +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":["tty_set_ldisc"],"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:*7488ffe8-956f-4303-90c2-f42aa88c4a4a,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*847f06a2-6bf1-4724-b9eb-66171e88f2bf,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-workflowhm22j/series-workflowhm22j-build-action-2306155064/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-workflowhm22j/series-workflowhm22j-build-action-3782503473/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: nil --------- Name: series-workflowhm22j[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["tty_set_ldisc"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","series_id":"f2ff1656-c00b-4ed8-ba3f-0ba0768df446","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[10].run-fuzz[0] Phase: Succeeded StartedAt: 2026-07-16 12:29:34 +0000 UTC FinishedAt: 2026-07-16 12:29:45 +0000 UTC Input: nil Output: nil --------- Name: series-workflowhm22j[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["tty_set_ldisc"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","series_id":"f2ff1656-c00b-4ed8-ba3f-0ba0768df446","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[10].run-fuzz[0].save-fuzz-config Phase: Succeeded StartedAt: 2026-07-16 12:29:34 +0000 UTC FinishedAt: 2026-07-16 12:29:39 +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":["tty_set_ldisc"],"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-workflowhm22j/series-workflowhm22j-convert-artifact-1763763818/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowhm22j[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["tty_set_ldisc"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","series_id":"f2ff1656-c00b-4ed8-ba3f-0ba0768df446","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[10].run-retest Phase: Skipped StartedAt: 2026-07-16 12:29:34 +0000 UTC FinishedAt: 2026-07-16 12:29:34 +0000 UTC Input: nil Output: nil --------- Name: series-workflowhm22j[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["tty_set_ldisc"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","series_id":"f2ff1656-c00b-4ed8-ba3f-0ba0768df446","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[9].abort-if-patched-boot-failed Phase: Skipped StartedAt: 2026-07-16 12:29:34 +0000 UTC FinishedAt: 2026-07-16 12:29:34 +0000 UTC Input: nil Output: nil --------- Name: series-workflowhm22j[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["tty_set_ldisc"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","series_id":"f2ff1656-c00b-4ed8-ba3f-0ba0768df446","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[10].run-fuzz[1] Phase: Succeeded StartedAt: 2026-07-16 12:29:45 +0000 UTC FinishedAt: 2026-07-16 13:24:58 +0000 UTC Input: nil Output: nil --------- Name: series-workflowhm22j[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["tty_set_ldisc"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","series_id":"f2ff1656-c00b-4ed8-ba3f-0ba0768df446","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[10].run-fuzz[1].fuzz Phase: Succeeded StartedAt: 2026-07-16 12:29:45 +0000 UTC FinishedAt: 2026-07-16 13:24:48 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*7488ffe8-956f-4303-90c2-f42aa88c4a4a,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*847f06a2-6bf1-4724-b9eb-66171e88f2bf,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-workflowhm22j/series-workflowhm22j-build-action-2306155064/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-workflowhm22j/series-workflowhm22j-build-action-3782503473/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-workflowhm22j/series-workflowhm22j-convert-artifact-1763763818/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,}