Name: series-workflowsh57w Phase: Succeeded StartedAt: 2026-07-02 16:57:07 +0000 UTC FinishedAt: 2026-07-02 21:57:55 +0000 UTC Input: nil Output: nil --------- Name: series-workflowsh57w[0] Phase: Succeeded StartedAt: 2026-07-02 16:57:07 +0000 UTC FinishedAt: 2026-07-02 17:22:50 +0000 UTC Input: nil Output: nil --------- Name: series-workflowsh57w[0].run-triage Phase: Succeeded StartedAt: 2026-07-02 16:57:07 +0000 UTC FinishedAt: 2026-07-02 17:22:50 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "bpf-next", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git", "commit_hash": "0b58988cacfc91604c4b5be2c3295f8aac0ee3d0", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "BPF_SYSCALL", "BPF_JIT" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "bpf-next", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git", "commit_hash": "0b58988cacfc91604c4b5be2c3295f8aac0ee3d0", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "BPF_SYSCALL", "BPF_JIT" ], "series_id": "ed69a3e2-60b5-48c5-861c-fa65ee3ca490" }, "track": "KASAN", "fuzz": { "focus": [ "bpf" ], "focus_symbols": [ "bpf_do_misc_fixups", "bpf_add_kfunc_call", "__bpf_prog_select_runtime" ], "corpus_urls": [ "https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-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+CgkJCTx0ZD4yMDI2LzA3LzAyIDE3OjIyPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0JQRl9TWVNDQUxMJiMzNDssCiAgICAmIzM0O0JQRl9KSVQmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDticGZfZG9fbWlzY19maXh1cHMmIzM0OywKICAgICYjMzQ7YnBmX2FkZF9rZnVuY19jYWxsJiMzNDssCiAgICAmIzM0O19fYnBmX3Byb2dfc2VsZWN0X3J1bnRpbWUmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIEJQRiB2ZXJpZmllciBhbmQgY29yZSBsb2dpYyB0byB0cmFjayB3aGV0aGVyIGEgQlBGIHByb2dyYW0gc3RyaWN0bHkgcmVxdWlyZXMgdGhlIEpJVCBjb21waWxlciAoZS5nLiwgZHVlIHRvIGtmdW5jIGNhbGxzIG9yIEpJVC1pbmxpbmVkIGhlbHBlcnMpLiBUaGlzIGFmZmVjdHMgaG93IHRoZSBydW50aW1lIGlzIHNlbGVjdGVkIGZvciBCUEYgcHJvZ3JhbXMgYW5kIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIGNvcmUgQlBGIHN1YnN5c3RlbS4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wMiAxNzoyMjwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IGQzZjkzYWUwOTRhNjQxNzJjMjQ1NzNmNTUwZTQxZTU3N2Y3ZWM1ODdcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgVGh1IEp1bCAyIDE3OjIyOjA0IDIwMjYgJiM0MzswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvYnBmLmggYi9pbmNsdWRlL2xpbnV4L2JwZi5oXG5pbmRleCBiYTA5Nzk1ZTBiZmRiNy4uNGUyYjA1OWQ3MWYzZWEgMTAwNjQ0XG4tLS0gYS9pbmNsdWRlL2xpbnV4L2JwZi5oXG4mIzQzOyYjNDM7JiM0MzsgYi9pbmNsdWRlL2xpbnV4L2JwZi5oXG5AQCAtMTg4MCw3ICYjNDM7MTg4MCw4IEBAIHN0cnVjdCBicGZfcHJvZyB7XG4gXHRcdFx0XHRjYWxsX2dldF9mdW5jX2lwOjEsIC8qIERvIHdlIGNhbGwgZ2V0X2Z1bmNfaXAoKSAqL1xuIFx0XHRcdFx0Y2FsbF9zZXNzaW9uX2Nvb2tpZToxLCAvKiBEbyB3ZSBjYWxsIGJwZl9zZXNzaW9uX2Nvb2tpZSgpICovXG4gXHRcdFx0XHR0c3RhbXBfdHlwZV9hY2Nlc3M6MSwgLyogQWNjZXNzZWQgX19za19idWZmLVx1MDAzZXRzdGFtcF90eXBlICovXG4tXHRcdFx0XHRzbGVlcGFibGU6MTtcdC8qIEJQRiBwcm9ncmFtIGlzIHNsZWVwYWJsZSAqL1xuJiM0MztcdFx0XHRcdHNsZWVwYWJsZToxLFx0LyogQlBGIHByb2dyYW0gaXMgc2xlZXBhYmxlICovXG4mIzQzO1x0XHRcdFx0aml0X3JlcXVpcmVkOjE7XHQvKiBwcm9ncmFtIHN0cmljdGx5IHJlcXVpcmVzIEpJVCBjb21waWxlciAqL1xuIFx0ZW51bSBicGZfcHJvZ190eXBlXHR0eXBlO1x0XHQvKiBUeXBlIG9mIEJQRiBwcm9ncmFtICovXG4gXHRlbnVtIGJwZl9hdHRhY2hfdHlwZVx0ZXhwZWN0ZWRfYXR0YWNoX3R5cGU7IC8qIEZvciBzb21lIHByb2cgdHlwZXMgKi9cbiBcdHUzMlx0XHRcdGxlbjtcdFx0LyogTnVtYmVyIG9mIGZpbHRlciBibG9ja3MgKi9cbmRpZmYgLS1naXQgYS9rZXJuZWwvYnBmL2NvcmUuYyBiL2tlcm5lbC9icGYvY29yZS5jXG5pbmRleCA2NDljY2U0MWUxM2YzYi4uNWZjZDE5Y2NiNDFhOWUgMTAwNjQ0XG4tLS0gYS9rZXJuZWwvYnBmL2NvcmUuY1xuJiM0MzsmIzQzOyYjNDM7IGIva2VybmVsL2JwZi9jb3JlLmNcbkBAIC0yNjE5LDggJiM0MzsyNjE5LDcgQEAgc3RydWN0IGJwZl9wcm9nICpfX2JwZl9wcm9nX3NlbGVjdF9ydW50aW1lKHN0cnVjdCBicGZfdmVyaWZpZXJfZW52ICplbnYsIHN0cnVjdFxuIFx0aWYgKGZwLVx1MDAzZWJwZl9mdW5jKVxuIFx0XHRnb3RvIGZpbmFsaXplO1xuIFxuLVx0aWYgKElTX0VOQUJMRUQoQ09ORklHX0JQRl9KSVRfQUxXQVlTX09OKSB8fFxuLVx0ICAgIGJwZl9wcm9nX2hhc19rZnVuY19jYWxsKGZwKSlcbiYjNDM7XHRpZiAoSVNfRU5BQkxFRChDT05GSUdfQlBGX0pJVF9BTFdBWVNfT04pIHx8IGZwLVx1MDAzZWppdF9yZXF1aXJlZClcbiBcdFx0aml0X25lZWRlZCA9IHRydWU7XG4gXG4gXHRpZiAoIWJwZl9wcm9nX3NlbGVjdF9pbnRlcnByZXRlcihmcCkpXG5kaWZmIC0tZ2l0IGEva2VybmVsL2JwZi9maXh1cHMuYyBiL2tlcm5lbC9icGYvZml4dXBzLmNcbmluZGV4IDEyYThhNGViNzU3ZjE4Li45NGUwNDU3YTBhYTMzYSAxMDA2NDRcbi0tLSBhL2tlcm5lbC9icGYvZml4dXBzLmNcbiYjNDM7JiM0MzsmIzQzOyBiL2tlcm5lbC9icGYvZml4dXBzLmNcbkBAIC0xODQxLDggJiM0MzsxODQxLDEwIEBAIGludCBicGZfZG9fbWlzY19maXh1cHMoc3RydWN0IGJwZl92ZXJpZmllcl9lbnYgKmVudilcbiBcdFx0fVxuIFxuIFx0XHQvKiBTa2lwIGlubGluaW5nIHRoZSBoZWxwZXIgY2FsbCBpZiB0aGUgSklUIGRvZXMgaXQuICovXG4tXHRcdGlmIChicGZfaml0X2lubGluZXNfaGVscGVyX2NhbGwoaW5zbi1cdTAwM2VpbW0pKVxuJiM0MztcdFx0aWYgKGJwZl9qaXRfaW5saW5lc19oZWxwZXJfY2FsbChpbnNuLVx1MDAzZWltbSkpIHtcbiYjNDM7XHRcdFx0cHJvZy1cdTAwM2VqaXRfcmVxdWlyZWQgPSAxO1xuIFx0XHRcdGdvdG8gbmV4dF9pbnNuO1xuJiM0MztcdFx0fVxuIFxuIFx0XHRpZiAoaW5zbi1cdTAwM2VpbW0gPT0gQlBGX0ZVTkNfZ2V0X3JvdXRlX3JlYWxtKVxuIFx0XHRcdHByb2ctXHUwMDNlZHN0X25lZWRlZCA9IDE7XG5kaWZmIC0tZ2l0IGEva2VybmVsL2JwZi92ZXJpZmllci5jIGIva2VybmVsL2JwZi92ZXJpZmllci5jXG5pbmRleCAyNWFlYTQyNzFjZDA4OS4uZjQ5NmI0NWI5ZGE0ZDEgMTAwNjQ0XG4tLS0gYS9rZXJuZWwvYnBmL3ZlcmlmaWVyLmNcbiYjNDM7JiM0MzsmIzQzOyBiL2tlcm5lbC9icGYvdmVyaWZpZXIuY1xuQEAgLTI3NjUsNiAmIzQzOzI3NjUsOCBAQCBpbnQgYnBmX2FkZF9rZnVuY19jYWxsKHN0cnVjdCBicGZfdmVyaWZpZXJfZW52ICplbnYsIHUzMiBmdW5jX2lkLCB1MTYgb2Zmc2V0KVxuIFx0ZGVzYy1cdTAwM2VmdW5jX21vZGVsID0gZnVuY19tb2RlbDtcbiBcdHNvcnQodGFiLVx1MDAzZWRlc2NzLCB0YWItXHUwMDNlbnJfZGVzY3MsIHNpemVvZih0YWItXHUwMDNlZGVzY3NbMF0pLFxuIFx0ICAgICBrZnVuY19kZXNjX2NtcF9ieV9pZF9vZmYsIE5VTEwpO1xuJiM0MztcbiYjNDM7XHRlbnYtXHUwMDNlcHJvZy1cdTAwM2VqaXRfcmVxdWlyZWQgPSAxO1xuIFx0cmV0dXJuIDA7XG4gfVxuIFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzAyIDE3OjIyPC90ZD4KCQkJPHRkPmFnZW50PC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0JQRl9TWVNDQUxMJiMzNDssCiAgICAmIzM0O0JQRl9KSVQmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDticGZfZG9fbWlzY19maXh1cHMmIzM0OywKICAgICYjMzQ7YnBmX2FkZF9rZnVuY19jYWxsJiMzNDssCiAgICAmIzM0O19fYnBmX3Byb2dfc2VsZWN0X3J1bnRpbWUmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIEJQRiB2ZXJpZmllciBhbmQgY29yZSBsb2dpYyB0byB0cmFjayB3aGV0aGVyIGEgQlBGIHByb2dyYW0gc3RyaWN0bHkgcmVxdWlyZXMgdGhlIEpJVCBjb21waWxlciAoZS5nLiwgZHVlIHRvIGtmdW5jIGNhbGxzIG9yIEpJVC1pbmxpbmVkIGhlbHBlcnMpLiBUaGlzIGFmZmVjdHMgaG93IHRoZSBydW50aW1lIGlzIHNlbGVjdGVkIGZvciBCUEYgcHJvZ3JhbXMgYW5kIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIGNvcmUgQlBGIHN1YnN5c3RlbS4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkluc3RydWN0aW9uOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+WW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuCllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lCmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC4KCklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpbgp5b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHkKdXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy4KClJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6Ci0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy4KLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy4KLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuCi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLApldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuCgpJZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoCnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLgoKV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086CjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuCiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLgoyLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS4KICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLgogICBEbyBub3QgbGlzdCB0b28gZ2VuZXJpYyBjb25maWdzICh3ZSBhbHJlYWR5IGhhdmUgdGhlbSBlbmFibGVkKS4gT25seSBsaXN0IHRob3NlIHRoYXQKICAgc3BlY2lmaWNhbGx5IGNvdmVyIHRoZSBtb2RpZmllZCBjb2RlLiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3Mgb3V0cHV0IGFycmF5LAogICBhbmQgRE8gTk9UIGFkZCBhICYjMzk7Q09ORklHXyYjMzk7IHByZWZpeCAoZS5nLiwgcmV0dXJuICYjMzQ7TkVUX0lQVjQmIzM0OyBpbnN0ZWFkIG9mICYjMzQ7Q09ORklHX05FVF9JUFY0JiMzNDspLgpQcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy4KCgpVc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLgpJdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS4KSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlByb21wdDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOgpjb21taXQgZDNmOTNhZTA5NGE2NDE3MmMyNDU3M2Y1NTBlNDFlNTc3ZjdlYzU4NwpBdXRob3I6IHN5ei1jbHVzdGVyICZsdDt0cmlhZ2VAc3l6a2FsbGVyLmNvbSZndDsKRGF0ZTogICBUaHUgSnVsIDIgMTc6MjI6MDQgMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L2JwZi5oIGIvaW5jbHVkZS9saW51eC9icGYuaAppbmRleCBiYTA5Nzk1ZTBiZmRiNy4uNGUyYjA1OWQ3MWYzZWEgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvYnBmLmgKJiM0MzsmIzQzOyYjNDM7IGIvaW5jbHVkZS9saW51eC9icGYuaApAQCAtMTg4MCw3ICYjNDM7MTg4MCw4IEBAIHN0cnVjdCBicGZfcHJvZyB7CiAJCQkJY2FsbF9nZXRfZnVuY19pcDoxLCAvKiBEbyB3ZSBjYWxsIGdldF9mdW5jX2lwKCkgKi8KIAkJCQljYWxsX3Nlc3Npb25fY29va2llOjEsIC8qIERvIHdlIGNhbGwgYnBmX3Nlc3Npb25fY29va2llKCkgKi8KIAkJCQl0c3RhbXBfdHlwZV9hY2Nlc3M6MSwgLyogQWNjZXNzZWQgX19za19idWZmLSZndDt0c3RhbXBfdHlwZSAqLwotCQkJCXNsZWVwYWJsZToxOwkvKiBCUEYgcHJvZ3JhbSBpcyBzbGVlcGFibGUgKi8KJiM0MzsJCQkJc2xlZXBhYmxlOjEsCS8qIEJQRiBwcm9ncmFtIGlzIHNsZWVwYWJsZSAqLwomIzQzOwkJCQlqaXRfcmVxdWlyZWQ6MTsJLyogcHJvZ3JhbSBzdHJpY3RseSByZXF1aXJlcyBKSVQgY29tcGlsZXIgKi8KIAllbnVtIGJwZl9wcm9nX3R5cGUJdHlwZTsJCS8qIFR5cGUgb2YgQlBGIHByb2dyYW0gKi8KIAllbnVtIGJwZl9hdHRhY2hfdHlwZQlleHBlY3RlZF9hdHRhY2hfdHlwZTsgLyogRm9yIHNvbWUgcHJvZyB0eXBlcyAqLwogCXUzMgkJCWxlbjsJCS8qIE51bWJlciBvZiBmaWx0ZXIgYmxvY2tzICovCmRpZmYgLS1naXQgYS9rZXJuZWwvYnBmL2NvcmUuYyBiL2tlcm5lbC9icGYvY29yZS5jCmluZGV4IDY0OWNjZTQxZTEzZjNiLi41ZmNkMTljY2I0MWE5ZSAxMDA2NDQKLS0tIGEva2VybmVsL2JwZi9jb3JlLmMKJiM0MzsmIzQzOyYjNDM7IGIva2VybmVsL2JwZi9jb3JlLmMKQEAgLTI2MTksOCAmIzQzOzI2MTksNyBAQCBzdHJ1Y3QgYnBmX3Byb2cgKl9fYnBmX3Byb2dfc2VsZWN0X3J1bnRpbWUoc3RydWN0IGJwZl92ZXJpZmllcl9lbnYgKmVudiwgc3RydWN0CiAJaWYgKGZwLSZndDticGZfZnVuYykKIAkJZ290byBmaW5hbGl6ZTsKIAotCWlmIChJU19FTkFCTEVEKENPTkZJR19CUEZfSklUX0FMV0FZU19PTikgfHwKLQkgICAgYnBmX3Byb2dfaGFzX2tmdW5jX2NhbGwoZnApKQomIzQzOwlpZiAoSVNfRU5BQkxFRChDT05GSUdfQlBGX0pJVF9BTFdBWVNfT04pIHx8IGZwLSZndDtqaXRfcmVxdWlyZWQpCiAJCWppdF9uZWVkZWQgPSB0cnVlOwogCiAJaWYgKCFicGZfcHJvZ19zZWxlY3RfaW50ZXJwcmV0ZXIoZnApKQpkaWZmIC0tZ2l0IGEva2VybmVsL2JwZi9maXh1cHMuYyBiL2tlcm5lbC9icGYvZml4dXBzLmMKaW5kZXggMTJhOGE0ZWI3NTdmMTguLjk0ZTA0NTdhMGFhMzNhIDEwMDY0NAotLS0gYS9rZXJuZWwvYnBmL2ZpeHVwcy5jCiYjNDM7JiM0MzsmIzQzOyBiL2tlcm5lbC9icGYvZml4dXBzLmMKQEAgLTE4NDEsOCAmIzQzOzE4NDEsMTAgQEAgaW50IGJwZl9kb19taXNjX2ZpeHVwcyhzdHJ1Y3QgYnBmX3ZlcmlmaWVyX2VudiAqZW52KQogCQl9CiAKIAkJLyogU2tpcCBpbmxpbmluZyB0aGUgaGVscGVyIGNhbGwgaWYgdGhlIEpJVCBkb2VzIGl0LiAqLwotCQlpZiAoYnBmX2ppdF9pbmxpbmVzX2hlbHBlcl9jYWxsKGluc24tJmd0O2ltbSkpCiYjNDM7CQlpZiAoYnBmX2ppdF9pbmxpbmVzX2hlbHBlcl9jYWxsKGluc24tJmd0O2ltbSkpIHsKJiM0MzsJCQlwcm9nLSZndDtqaXRfcmVxdWlyZWQgPSAxOwogCQkJZ290byBuZXh0X2luc247CiYjNDM7CQl9CiAKIAkJaWYgKGluc24tJmd0O2ltbSA9PSBCUEZfRlVOQ19nZXRfcm91dGVfcmVhbG0pCiAJCQlwcm9nLSZndDtkc3RfbmVlZGVkID0gMTsKZGlmZiAtLWdpdCBhL2tlcm5lbC9icGYvdmVyaWZpZXIuYyBiL2tlcm5lbC9icGYvdmVyaWZpZXIuYwppbmRleCAyNWFlYTQyNzFjZDA4OS4uZjQ5NmI0NWI5ZGE0ZDEgMTAwNjQ0Ci0tLSBhL2tlcm5lbC9icGYvdmVyaWZpZXIuYwomIzQzOyYjNDM7JiM0MzsgYi9rZXJuZWwvYnBmL3ZlcmlmaWVyLmMKQEAgLTI3NjUsNiAmIzQzOzI3NjUsOCBAQCBpbnQgYnBmX2FkZF9rZnVuY19jYWxsKHN0cnVjdCBicGZfdmVyaWZpZXJfZW52ICplbnYsIHUzMiBmdW5jX2lkLCB1MTYgb2Zmc2V0KQogCWRlc2MtJmd0O2Z1bmNfbW9kZWwgPSBmdW5jX21vZGVsOwogCXNvcnQodGFiLSZndDtkZXNjcywgdGFiLSZndDtucl9kZXNjcywgc2l6ZW9mKHRhYi0mZ3Q7ZGVzY3NbMF0pLAogCSAgICAga2Z1bmNfZGVzY19jbXBfYnlfaWRfb2ZmLCBOVUxMKTsKJiM0MzsKJiM0MzsJZW52LSZndDtwcm9nLSZndDtqaXRfcmVxdWlyZWQgPSAxOwogCXJldHVybiAwOwogfQogCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzAyIDE3OjIyPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDI2MzAKCQkJCQkJCW91dHB1dDogMjEKCQkJCQkJCXRob3VnaHRzOiA0MDEKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIGEgQlBGIFZlcmlmaWVyIFBhdGNoKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIHBhdGNoIHRoYXQmIzM5O3MgdHdlYWtpbmcgdGhlIEJQRiB2ZXJpZmllciBhbmQgY29yZSBsb2dpYywgc3BlY2lmaWNhbGx5IGhvdyB3ZSBkZWNpZGUgd2hldGhlciB0byBKSVQtY29tcGlsZSBhIEJQRiBwcm9ncmFtLiBUaGV5JiMzOTt2ZSBpbnRyb2R1Y2VkIGEgYGppdF9yZXF1aXJlZGAgYml0IHRvIHRoZSBgc3RydWN0IGJwZl9wcm9nYCBzdHJ1Y3R1cmUsIHdoaWNoIG1ha2VzIHNlbnNlOyBhIGZsYWcgdG8gc2lnbmFsIHRoZSBuZWVkIGZvciBKSVQgaXMgY2xlYW5lciB0aGFuIHRoZSBpbXBsaWNpdCBjaGVja3Mgd2UmIzM5O3ZlIGhhZC4KCkl0IGxvb2tzIGxpa2UgdGhlIGBqaXRfcmVxdWlyZWRgIGJpdCBnZXRzIHNldCBpbiBhIGNvdXBsZSBvZiBwbGFjZXMuIEZpcnN0LCBpbiBgYnBmX2RvX21pc2NfZml4dXBzYCB3aGVuIHdlJiMzOTtyZSBpbmxpbmluZyBoZWxwZXIgY2FsbHMgdXNpbmcgdGhlIEpJVCAoYXMgaW5kaWNhdGVkIGJ5IGBicGZfaml0X2lubGluZXNfaGVscGVyX2NhbGxgKS4gVGhpcyBpcyBnb29kOyB3ZSBkZWZpbml0ZWx5IHdhbnQgdG8gSklUIHByb2dyYW1zIHRoYXQgcmVseSBvbiBpbmxpbmVkIGhlbHBlcnMuIFRoZW4sIGl0JiMzOTtzIGFsc28gc2V0IGluIGBicGZfYWRkX2tmdW5jX2NhbGxgLCB3aGljaCBtYWtlcyBwZXJmZWN0IHNlbnNlIGFzIEtGdW5jcyBhbHdheXMgcmVxdWlyZSBKSVQuCgpUaGUgcmVhbCBtZWF0IG9mIHRoZSBjaGFuZ2UgaXMgaW4gYF9fYnBmX3Byb2dfc2VsZWN0X3J1bnRpbWVgLCB3aGVyZSB0aGUgbG9naWMgbm93IHVzZXMgYGZwLSZndDtqaXRfcmVxdWlyZWRgIHRvIGRldGVybWluZSBpZiB3ZSBuZWVkIHRoZSBKSVQuIFdlJiMzOTtyZSBlZmZlY3RpdmVseSByZXBsYWNpbmcgdGhlIGBicGZfcHJvZ19oYXNfa2Z1bmNfY2FsbChmcClgIGNoZWNrLiBUaGlzIG1lYW5zIHdlJiMzOTtyZSBub3cgY29uc2lkZXJpbmcgaW5saW5lZCBoZWxwZXJzICphbmQqIEtGdW5jcyB3aGVuIGRlY2lkaW5nIHRvIHVzZSB0aGUgSklULiBUaGF0JiMzOTtzIGEgZ29vZCBmdW5jdGlvbmFsIGNoYW5nZSwgc2ltcGxpZnlpbmcgdGhlIGxvZ2ljLiBJZiBgaml0X3JlcXVpcmVkYCBpcyBzZXQsIHRoZSBpbnRlcnByZXRlciBpcyBvdXQgb2YgdGhlIHBpY3R1cmUuCgpUbyBnZXQgYSBiZXR0ZXIgdW5kZXJzdGFuZGluZywgSSBuZWVkIHRvIGZvY3VzIG9uIHRoaXMgY29uZGl0aW9uIGFuZCB3aGF0IHRoZSBwYXRjaCBpcyBkb2luZy4gSSBuZWVkIHRvIG1ha2Ugc3VyZSBJIGFtIGF3YXJlIG9mIHRoZXNlIGNvbmRpdGlvbnMuCgpBbHJpZ2h0LCBsZXQmIzM5O3MgZmluZCB0aGUgcmVsZXZhbnQgY29uZmlncyBhbmQgZnVuY3Rpb25zLiBgQ09ORklHX0JQRl9TWVNDQUxMYCBpcyB0aGUgb2J2aW91cyBvbmUsIG1ha2luZyBzdXJlIHdlIGhhdmUgQlBGIHN1cHBvcnQgaW4gdGhlIGZpcnN0IHBsYWNlLiBBcyBmb3IgZnVuY3Rpb25zLCBJIG5lZWQgdG8gY2hlY2sgYF9fYnBmX3Byb2dfc2VsZWN0X3J1bnRpbWVgLCBgYnBmX2RvX21pc2NfZml4dXBzYCwgYW5kIGBicGZfYWRkX2tmdW5jX2NhbGxgLgoKTm93LCB3aGVyZSBhcmUgdGhvc2UgZnVuY3Rpb25zIGRlZmluZWQ/IEkgbmVlZCB0byBjaGVjayBga2VybmVsL2JwZi9jb3JlLmNgIGFuZCBga2VybmVsL2JwZi9maXh1cHMuY2AuIFdhaXQuLi4gd2FzbiYjMzk7dCBgYnBmX2RvX21pc2NfZml4dXBzYCBpbiBga2VybmVsL2JwZi9maXh1cHMuY2A/IFRoYXQgc2VlbXMgcmlnaHQuIE9oLCByaWdodCwgdGhpcyBwYXRjaCBjb3VsZCBiZSByZWZlcmVuY2luZyBhIG5ld2VyIGtlcm5lbCB3aGVyZSBgZml4dXBzLmNgIHdhcyBzcGxpdCBvZmYgZnJvbSBgdmVyaWZpZXIuY2AuIEkgbmVlZCB0byByZW1lbWJlciB0aGF0ISBMZXQmIzM5O3MgY2hlY2sgdGhlIHBhdGNoIGFnYWluc3QgdGhlIHJlbGV2YW50IGtlcm5lbCB2ZXJzaW9ucyB0byBtYWtlIHN1cmUgSSYjMzk7bSBsb29raW5nIGF0IHRoZSByaWdodCBzb3VyY2UuIFRoZW4sIGxldCYjMzk7cyB2ZXJpZnkgYWxsIHRoZSByZWxldmFudCBjb25maWdzIHRvIG1ha2Ugc3VyZSBldmVyeXRoaW5nJiMzOTtzIGFzIGV4cGVjdGVkLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzAyIDE3OjIyPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2NvbmZpZyBCUEZfU1lTQ0FMTCYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtrZXJuZWwvYnBmL0tjb25maWc9MjU9bWVudSBcJiMzNDtCUEYgc3Vic3lzdGVtXCYjMzQ7XG5rZXJuZWwvYnBmL0tjb25maWctMjYtXG5rZXJuZWwvYnBmL0tjb25maWc6Mjc6Y29uZmlnIEJQRl9TWVNDQUxMXG5rZXJuZWwvYnBmL0tjb25maWctMjgtXHRib29sIFwmIzM0O0VuYWJsZSBicGYoKSBzeXN0ZW0gY2FsbFwmIzM0O1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzAyIDE3OjIyPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDM3MTgKCQkJCQkJCW91dHB1dDogMjAKCQkJCQkJCXRob3VnaHRzOiA3MAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgbGV0JiMzOTtzIGJyZWFrIHRoaXMgZG93bi4KCioqQW5hbHl6aW5nIEJQRiBTeXNjYWxsIENvbmZpZ3VyYXRpb24gZm9yIFRhcmdldGVkIEZ1bmN0aW9uIEZvY3VzKioKClJpZ2h0LCBzbyB3ZSYjMzk7cmUgZGVhbGluZyB3aXRoIGEgYEJQRl9TWVNDQUxMYCBjb25maWd1cmF0aW9uIGhlcmUuIE15IGltbWVkaWF0ZSB0aG91Z2h0IGlzLCAmIzM0O09rYXksIGdpdmVuIHRoaXMgY29udGV4dCwgd2hpY2ggc3BlY2lmaWMgZnVuY3Rpb25zIHdpdGhpbiB0aGUgQlBGIHN5c3RlbSBhcmUgbW9zdCByZWxldmFudCBmb3IgaW52ZXN0aWdhdGlvbj8mIzM0OyBUaGF0IGZyYW1pbmcgbmFycm93cyB0aGUgc2NvcGUgc2lnbmlmaWNhbnRseSwgc28gdGhhdCYjMzk7cyB3aGVyZSBJIG5lZWQgdG8gc3RhcnQuCgpJIG5lZWQgdG8gZm9jdXMgbXkgYXR0ZW50aW9uIG9uIHRoZXNlIGZ1bmN0aW9uczogYF9fYnBmX3Byb2dfc2VsZWN0X3J1bnRpbWVgLCBgYnBmX2RvX21pc2NfZml4dXBzYCwgYW5kIGBicGZfYWRkX2tmdW5jX2NhbGxgLiBNeSBoeXBvdGhlc2lzIGlzIHRoYXQgdGhlc2UgZnVuY3Rpb25zIGhhdmUgaW50ZXJlc3RpbmcgYmVoYXZpb3Igd2l0aGluIHRoZSBjb250ZXh0IG9mIGBCUEZfU1lTQ0FMTGAsIGFuZCB1bmRlcnN0YW5kaW5nIHRoZWlyIGludGVyYWN0aW9uIGlzIGxpa2VseSBrZXkgdG8gYSBjb21wbGV0ZSB1bmRlcnN0YW5kaW5nLgoKQnV0IGhvbGQgb24sIGJlZm9yZSBJIGRpdmUgdG9vIGRlZXAgaW50byB0aG9zZSB0aHJlZSwgSSBzaG91bGQgcGF1c2UgYW5kIG1ha2Ugc3VyZSBJIGhhdmVuJiMzOTt0IG1pc3NlZCBhbnl0aGluZyBvYnZpb3VzLiBJIHNob3VsZCBxdWlja2x5IHZlcmlmeSBpZiB0aGVyZSBhcmUgYW55ICpvdGhlciogcmVsZXZhbnQgY29uZmlndXJhdGlvbnMgdGhhdCBhcmUgYXQgcGxheS4gSnVzdCB0byBiZSB0aG9yb3VnaCBhbmQgZW5zdXJlIHRoYXQgSSYjMzk7bSBub3Qgb3Zlcmxvb2tpbmcgYW55IGRlcGVuZGVuY2llcyBvciBzZWNvbmRhcnkgaW5mbHVlbmNlcy4gVGhpcyBpcyBhIGNydWNpYWwgc3RlcCB0byBhdm9pZCBtaXNzaW5nIGFueXRoaW5nIGVsc2UuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDIgMTc6MjI8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIEJQRl9KSVQmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7a2VybmVsL2JwZi9LY29uZmlnPTI3PWNvbmZpZyBCUEZfU1lTQ0FMTFxuLS1cbmtlcm5lbC9icGYvS2NvbmZpZy00MS1cbmtlcm5lbC9icGYvS2NvbmZpZzo0Mjpjb25maWcgQlBGX0pJVFxua2VybmVsL2JwZi9LY29uZmlnLTQzLVx0Ym9vbCBcJiMzNDtFbmFibGUgQlBGIEp1c3QgSW4gVGltZSBjb21waWxlclwmIzM0O1xuLS1cbmtlcm5lbC9icGYvS2NvbmZpZy01Ny1cbmtlcm5lbC9icGYvS2NvbmZpZzo1ODpjb25maWcgQlBGX0pJVF9BTFdBWVNfT05cbmtlcm5lbC9icGYvS2NvbmZpZy01OS1cdGJvb2wgXCYjMzQ7UGVybWFuZW50bHkgZW5hYmxlIEJQRiBKSVQgYW5kIHJlbW92ZSBCUEYgaW50ZXJwcmV0ZXJcJiMzNDtcbi0tXG5rZXJuZWwvYnBmL0tjb25maWctNjgtXG5rZXJuZWwvYnBmL0tjb25maWc6Njk6Y29uZmlnIEJQRl9KSVRfREVGQVVMVF9PTlxua2VybmVsL2JwZi9LY29uZmlnLTcwLVx0ZGVmX2Jvb2wgQVJDSF9XQU5UX0RFRkFVTFRfQlBGX0pJVCB8fCBCUEZfSklUX0FMV0FZU19PTlxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzAyIDE3OjIyPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDQyNzIKCQkJCQkJCW91dHB1dDogMjUKCQkJCQkJCXRob3VnaHRzOiAyNTEKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBCUEYgSklUIFNlbGVjdGlvbiBMb2dpYyoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCBhbmQgdGhlIGBfX2JwZl9wcm9nX3NlbGVjdF9ydW50aW1lYCBmdW5jdGlvbi4gVGhlIGtleSBwb2ludCBoZXJlIGlzIGhvdyBgQ09ORklHX0JQRl9KSVRfQUxXQVlTX09OYCBpbnRlcmFjdHMgd2l0aCB0aGUgSklUIGNvbXBpbGF0aW9uIHByb2Nlc3MuIFRoZSBjb2RlJiMzOTtzIGNoZWNraW5nIHRoaXMgY29uZmlndXJhdGlvbiBvcHRpb24uIElmIGl0ICppcyogZW5hYmxlZCwgdGhlbiB0aGUgSklUIGlzIGFsd2F5cyByZXF1aXJlZCwgdGhhdCYjMzk7cyBzdHJhaWdodGZvcndhcmQuCgpUaGUgaW50ZXJlc3RpbmcgcGFydCwgYW5kIHdoZXJlIHRoZSBwb3RlbnRpYWwgaXNzdWUgbGllcywgaXMgd2hlbiBgQ09ORklHX0JQRl9KSVRfQUxXQVlTX09OYCBpcyAqbm90KiBlbmFibGVkLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgbG9naWMgZmxvdyBpbiB0aGF0IHNjZW5hcmlvLCB0byB1bmRlcnN0YW5kIHRoaXMgJiMzOTtidWcmIzM5OyBvciAmIzM5O2ZlYXR1cmUmIzM5Oy4gVGhpcyBwYXRjaCBzZWVtcyB0byBiZSBhZGRyZXNzaW5nIGEgc3BlY2lmaWMgSklUIHJlcXVpcmVtZW50IHdpdGhvdXQgdGhhdCBnbG9iYWwgYWx3YXlzLW9uIGZsYWcgc2V0LgoKU28sIHRvIHByb3Blcmx5IHRlc3QgdGhlIHNjZW5hcmlvIHRoaXMgcGF0Y2ggYWRkcmVzc2VzLCBJIHNob3VsZG4mIzM5O3QgZW5hYmxlIGBCUEZfSklUX0FMV0FZU19PTmAuIEkgY291bGQganVzdCBlbmFibGUgYEJQRl9TWVNDQUxMYCBhbmQgYEJQRl9KSVRgLCBhcyB0aG9zZSBhcmUgdHlwaWNhbGx5IGVuYWJsZWQgYW55d2F5LgoKV2FpdCBhIHNlY29uZC4uLiBJZiBgQlBGX0pJVF9BTFdBWVNfT05gICppcyogZW5hYmxlZCwgdGhlIGBqaXRfbmVlZGVkYCB2YXJpYWJsZSBpcyBhbHdheXMgZ29pbmcgdG8gYmUgdHJ1ZS4gQ29uc2VxdWVudGx5LCB0aGUgYGZwLSZndDtqaXRfcmVxdWlyZWRgIGNoZWNrIGlzIGJ5cGFzc2VkIChvciwgbW9yZSBwcmVjaXNlbHksIHRoZSBleHByZXNzaW9uIGlzIGFsd2F5cyB0cnVlKS4gU28sIHRvIGFjdHVhbGx5IHZlcmlmeSB0aGUgYmVoYXZpb3Igb2YgYGZwLSZndDtqaXRfcmVxdWlyZWRgLCBJICpoYXZlKiB0byBkaXNhYmxlIGBDT05GSUdfQlBGX0pJVF9BTFdBWVNfT05gLiBUaGF0JiMzOTtzIGl0LCB0aGF0JiMzOTtzIHRoZSBrZXkuCgpUaGVyZWZvcmUsIGZvciB0aGlzIHRlc3QsIEkmIzM5O2xsIHN0aWNrIHdpdGgganVzdCBlbmFibGluZyBgQlBGX1NZU0NBTExgIGFuZCBgQlBGX0pJVGAsIGFzIHRoaXMgd2lsbCBnaXZlIG1lIHRoZSBpbnRlbmRlZCBzY2VuYXJpbyB0byB0ZXN0LgoKTmV4dCwgSSBzaG91bGQgcHJvYmFibHkgY2hlY2sgYGJwZl9qaXRfaW5saW5lc19oZWxwZXJfY2FsbGAgdG8gc2VlIGlmIHRoYXQmIzM5O3MgcmVsZXZhbnQgdG8gdGhlIHNpdHVhdGlvbi4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD44LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wMiAxNzoyMjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDticGZfaml0X2lubGluZXNfaGVscGVyX2NhbGwmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7YXJjaC9hcm02NC9uZXQvYnBmX2ppdF9jb21wLmM9MzIwMT1ib29sIGJwZl9qaXRfc3VwcG9ydHNfdGltZWRfbWF5X2dvdG8odm9pZClcbi0tXG5hcmNoL2FybTY0L25ldC9icGZfaml0X2NvbXAuYy0zMjA1LVxuYXJjaC9hcm02NC9uZXQvYnBmX2ppdF9jb21wLmM6MzIwNjpib29sIGJwZl9qaXRfaW5saW5lc19oZWxwZXJfY2FsbChzMzIgaW1tKVxuYXJjaC9hcm02NC9uZXQvYnBmX2ppdF9jb21wLmMtMzIwNy17XG4tLVxuYXJjaC9wb3dlcnBjL25ldC9icGZfaml0X2NvbXAuYz01NzI9Ym9vbCBicGZfaml0X3N1cHBvcnRzX3BlcmNwdV9pbnNuKHZvaWQpXG4tLVxuYXJjaC9wb3dlcnBjL25ldC9icGZfaml0X2NvbXAuYy01NzYtXG5hcmNoL3Bvd2VycGMvbmV0L2JwZl9qaXRfY29tcC5jOjU3Nzpib29sIGJwZl9qaXRfaW5saW5lc19oZWxwZXJfY2FsbChzMzIgaW1tKVxuYXJjaC9wb3dlcnBjL25ldC9icGZfaml0X2NvbXAuYy01Nzgte1xuLS1cbmFyY2gvcmlzY3YvbmV0L2JwZl9qaXRfY29tcDY0LmM9MjEzOT1ib29sIGJwZl9qaXRfc3VwcG9ydHNfcGVyY3B1X2luc24odm9pZClcbi0tXG5hcmNoL3Jpc2N2L25ldC9icGZfaml0X2NvbXA2NC5jLTIxNDMtXG5hcmNoL3Jpc2N2L25ldC9icGZfaml0X2NvbXA2NC5jOjIxNDQ6Ym9vbCBicGZfaml0X2lubGluZXNfaGVscGVyX2NhbGwoczMyIGltbSlcbmFyY2gvcmlzY3YvbmV0L2JwZl9qaXRfY29tcDY0LmMtMjE0NS17XG4tLVxuYXJjaC9zMzkwL25ldC9icGZfaml0X2NvbXAuYz0zMDgxPWJvb2wgYnBmX2ppdF9zdXBwb3J0c190aW1lZF9tYXlfZ290byh2b2lkKVxuLS1cbmFyY2gvczM5MC9uZXQvYnBmX2ppdF9jb21wLmMtMzA4NS1cbmFyY2gvczM5MC9uZXQvYnBmX2ppdF9jb21wLmM6MzA4Njpib29sIGJwZl9qaXRfaW5saW5lc19oZWxwZXJfY2FsbChzMzIgaW1tKVxuYXJjaC9zMzkwL25ldC9icGZfaml0X2NvbXAuYy0zMDg3LXtcbi0tXG5pbmNsdWRlL2xpbnV4L2ZpbHRlci5oPTExNzk9Ym9vbCBicGZfaml0X25lZWRzX3pleHQodm9pZCk7XG5pbmNsdWRlL2xpbnV4L2ZpbHRlci5oOjExODA6Ym9vbCBicGZfaml0X2lubGluZXNfaGVscGVyX2NhbGwoczMyIGltbSk7XG5pbmNsdWRlL2xpbnV4L2ZpbHRlci5oLTExODEtYm9vbCBicGZfaml0X3N1cHBvcnRzX3N1YnByb2dfdGFpbGNhbGxzKHZvaWQpO1xuLS1cbmtlcm5lbC9icGYvY29yZS5jPTMyMDg9Ym9vbCBfX3dlYWsgYnBmX2ppdF9ieXBhc3Nfc3BlY192NCh2b2lkKVxuLS1cbmtlcm5lbC9icGYvY29yZS5jLTMyMTgtICovXG5rZXJuZWwvYnBmL2NvcmUuYzozMjE5OmJvb2wgX193ZWFrIGJwZl9qaXRfaW5saW5lc19oZWxwZXJfY2FsbChzMzIgaW1tKVxua2VybmVsL2JwZi9jb3JlLmMtMzIyMC17XG4tLVxua2VybmVsL2JwZi9maXh1cHMuYz0xNDgxPWludCBicGZfZG9fbWlzY19maXh1cHMoc3RydWN0IGJwZl92ZXJpZmllcl9lbnYgKmVudilcbi0tXG5rZXJuZWwvYnBmL2ZpeHVwcy5jLTE4NDMtXHRcdC8qIFNraXAgaW5saW5pbmcgdGhlIGhlbHBlciBjYWxsIGlmIHRoZSBKSVQgZG9lcyBpdC4gKi9cbmtlcm5lbC9icGYvZml4dXBzLmM6MTg0NDpcdFx0aWYgKGJwZl9qaXRfaW5saW5lc19oZWxwZXJfY2FsbChpbnNuLVx1MDAzZWltbSkpIHtcbmtlcm5lbC9icGYvZml4dXBzLmMtMTg0NS1cdFx0XHRwcm9nLVx1MDAzZWppdF9yZXF1aXJlZCA9IDE7XG4tLVxua2VybmVsL2JwZi92ZXJpZmllci5jPTE2Njg1PWJvb2wgYnBmX2dldF9jYWxsX3N1bW1hcnkoc3RydWN0IGJwZl92ZXJpZmllcl9lbnYgKmVudiwgc3RydWN0IGJwZl9pbnNuICpjYWxsLFxuLS1cbmtlcm5lbC9icGYvdmVyaWZpZXIuYy0xNjY5OC1cdFx0XHQgICAgICAgKGJwZl92ZXJpZmllcl9pbmxpbmVzX2hlbHBlcl9jYWxsKGVudiwgY2FsbC1cdTAwM2VpbW0pIHx8XG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM6MTY2OTk6XHRcdFx0XHRicGZfaml0X2lubGluZXNfaGVscGVyX2NhbGwoY2FsbC1cdTAwM2VpbW0pKTtcbmtlcm5lbC9icGYvdmVyaWZpZXIuYy0xNjcwMC1cdFx0Y3MtXHUwMDNlaXNfdm9pZCA9IGZuLVx1MDAzZXJldF90eXBlID09IFJFVF9WT0lEO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjkvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzAyIDE3OjIyPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDU5NjAKCQkJCQkJCW91dHB1dDogMTQ3CgkJCQkJCQl0aG91Z2h0czogMTY3CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkZ1enppbmcgVGFyZ2V0IElkZW50aWZpY2F0aW9uKioKCk9rYXksIHNvIHRoaXMgcGF0Y2ggaXMgZmxhZ2dpbmcgYHByb2ctJmd0O2ppdF9yZXF1aXJlZCA9IDFgIHdpdGhpbiBgYnBmX2RvX21pc2NfZml4dXBzYCBhbmQgYGJwZl9hZGRfa2Z1bmNfY2FsbGAuIFRoYXQgaW1tZWRpYXRlbHkgc2NyZWFtcyBwb3RlbnRpYWwgZnV6emluZyB0YXJnZXQgdG8gbWUuIEl0JiMzOTtzIGEgY2xlYXIgc2lnbmFsIHRvIGludmVzdGlnYXRlIGhvdyBKSVQgY29tcGlsYXRpb24gZ2V0cyB0cmlnZ2VyZWQsIGVzcGVjaWFsbHkgZ2l2ZW4gdGhlIGNvbnRleHQgb2YgdGhlc2UgZnVuY3Rpb25zLgoKTXkgcHJpbWFyeSBmb2N1cyBmb3IgZnV6emluZyB3aWxsIGJlIHRoZXNlIGZ1bmN0aW9uczogYGJwZl9kb19taXNjX2ZpeHVwc2AsIGBicGZfYWRkX2tmdW5jX2NhbGxgLCBhbmQgYF9fYnBmX3Byb2dfc2VsZWN0X3J1bnRpbWVgLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCBob3cgdGhlIGludGVyYWN0aW9uIGFuZCBzdGF0ZSBvZiB0aG9zZSBmdW5jdGlvbiBsZWFkIHRvIHRoZSBjb21waWxhdGlvbiBvZiB0aGUgQlBGIHByb2dyYW0uIEkgd2lsbCBuZWVkIGBCUEZfU1lTQ0FMTGAgYW5kIGBCUEZfSklUYCBlbmFibGVkIGluIG15IHRlc3QgY29uZmlnLgoKQmVmb3JlIEkgZ28gZnVydGhlciwgSSBzaG91bGQgdmVyaWZ5IHRoZSBmdW5jdGlvbiBuYW1lcyB0aGVtc2VsdmVzLiBJdCYjMzk7cyBlYXN5IHRvIG1ha2UgYSB0eXBvLCBhbmQgYSBzaW1wbGUgY2hlY2sgbm93IGNvdWxkIHNhdmUgYSBoZWFkYWNoZSBsYXRlci4gWWVwLCBgYnBmX2RvX21pc2NfZml4dXBzYCwgYGJwZl9hZGRfa2Z1bmNfY2FsbGAsIGFuZCBgX19icGZfcHJvZ19zZWxlY3RfcnVudGltZWAgYXJlIGFsbCBjb3JyZWN0LiBFeGNlbGxlbnQuCgpOb3csIEkmIzM5O20gcmVhZHkgdG8gYmVnaW4gdGVzdGluZy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDIgMTc6MjI8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0JQRl9TWVNDQUxMJiMzNDssCiAgICAmIzM0O0JQRl9KSVQmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDticGZfZG9fbWlzY19maXh1cHMmIzM0OywKICAgICYjMzQ7YnBmX2FkZF9rZnVuY19jYWxsJiMzNDssCiAgICAmIzM0O19fYnBmX3Byb2dfc2VsZWN0X3J1bnRpbWUmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIEJQRiB2ZXJpZmllciBhbmQgY29yZSBsb2dpYyB0byB0cmFjayB3aGV0aGVyIGEgQlBGIHByb2dyYW0gc3RyaWN0bHkgcmVxdWlyZXMgdGhlIEpJVCBjb21waWxlciAoZS5nLiwgZHVlIHRvIGtmdW5jIGNhbGxzIG9yIEpJVC1pbmxpbmVkIGhlbHBlcnMpLiBUaGlzIGFmZmVjdHMgaG93IHRoZSBydW50aW1lIGlzIHNlbGVjdGVkIGZvciBCUEYgcHJvZ3JhbXMgYW5kIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIGNvcmUgQlBGIHN1YnN5c3RlbS4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7QlBGX1NZU0NBTEwmIzM0OywKICAgICYjMzQ7QlBGX0pJVCYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2JwZl9kb19taXNjX2ZpeHVwcyYjMzQ7LAogICAgJiMzNDticGZfYWRkX2tmdW5jX2NhbGwmIzM0OywKICAgICYjMzQ7X19icGZfcHJvZ19zZWxlY3RfcnVudGltZSYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgQlBGIHZlcmlmaWVyIGFuZCBjb3JlIGxvZ2ljIHRvIHRyYWNrIHdoZXRoZXIgYSBCUEYgcHJvZ3JhbSBzdHJpY3RseSByZXF1aXJlcyB0aGUgSklUIGNvbXBpbGVyIChlLmcuLCBkdWUgdG8ga2Z1bmMgY2FsbHMgb3IgSklULWlubGluZWQgaGVscGVycykuIFRoaXMgYWZmZWN0cyBob3cgdGhlIHJ1bnRpbWUgaXMgc2VsZWN0ZWQgZm9yIEJQRiBwcm9ncmFtcyBhbmQgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgY29yZSBCUEYgc3Vic3lzdGVtLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTwvdGJvZHk+Cgk8L3RhYmxlPgoKCTxkaXYgaWQ9ImxsbV9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+TExNIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgVG9rZW5zPC90aD4KCQkJCQk8dGg+QXZnIFRva2VuczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJsbG1fc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJ0b29sX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5Ub29sIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9InRvb2xfc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJkdXJhdGlvbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+Cgk8ZGl2IGlkPSJ0b2tlbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+CgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9qc2FwaSI+PC9zY3JpcHQ+Cgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CgkJZ29vZ2xlLmxvYWQoInZpc3VhbGl6YXRpb24iLCAiMSIsIHtwYWNrYWdlczpbImNvcmVjaGFydCJdfSk7CgkJZ29vZ2xlLnNldE9uTG9hZENhbGxiYWNrKGRyYXdDaGFydHMpOwoKCQlmdW5jdGlvbiBkcmF3Q2hhcnRzKCkgewoJCQljb25zdCByYXdEYXRhID0gW3siU3RhcnRlZCI6IjIwMjYtMDctMDJUMTc6MjI6MDYuNTcyMzkzMjc5WiIsIlNlcSI6MCwiTmVzdGluZyI6MCwiVHlwZSI6ImZsb3ciLCJOYW1lIjoicGF0Y2gtdHJpYWdlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MzE5NDMzODUxMzMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiQlBGX1NZU0NBTExcIixcbiAgICBcIkJQRl9KSVRcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJicGZfZG9fbWlzY19maXh1cHNcIixcbiAgICBcImJwZl9hZGRfa2Z1bmNfY2FsbFwiLFxuICAgIFwiX19icGZfcHJvZ19zZWxlY3RfcnVudGltZVwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBCUEYgdmVyaWZpZXIgYW5kIGNvcmUgbG9naWMgdG8gdHJhY2sgd2hldGhlciBhIEJQRiBwcm9ncmFtIHN0cmljdGx5IHJlcXVpcmVzIHRoZSBKSVQgY29tcGlsZXIgKGUuZy4sIGR1ZSB0byBrZnVuYyBjYWxscyBvciBKSVQtaW5saW5lZCBoZWxwZXJzKS4gVGhpcyBhZmZlY3RzIGhvdyB0aGUgcnVudGltZSBpcyBzZWxlY3RlZCBmb3IgQlBGIHByb2dyYW1zIGFuZCBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSBjb3JlIEJQRiBzdWJzeXN0ZW0uXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTAyVDE3OjIyOjA2LjU3MjM5ODY0OVoiLCJTZXEiOjEsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoicmVhZC1wYXRjaC1kaWZmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NzUwMjA2MzM5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJQYXRjaERpZmZcIjogXCJjb21taXQgZDNmOTNhZTA5NGE2NDE3MmMyNDU3M2Y1NTBlNDFlNTc3ZjdlYzU4N1xcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXFx1MDAzZVxcbkRhdGU6ICAgVGh1IEp1bCAyIDE3OjIyOjA0IDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvYnBmLmggYi9pbmNsdWRlL2xpbnV4L2JwZi5oXFxuaW5kZXggYmEwOTc5NWUwYmZkYjcuLjRlMmIwNTlkNzFmM2VhIDEwMDY0NFxcbi0tLSBhL2luY2x1ZGUvbGludXgvYnBmLmhcXG4rKysgYi9pbmNsdWRlL2xpbnV4L2JwZi5oXFxuQEAgLTE4ODAsNyArMTg4MCw4IEBAIHN0cnVjdCBicGZfcHJvZyB7XFxuIFxcdFxcdFxcdFxcdGNhbGxfZ2V0X2Z1bmNfaXA6MSwgLyogRG8gd2UgY2FsbCBnZXRfZnVuY19pcCgpICovXFxuIFxcdFxcdFxcdFxcdGNhbGxfc2Vzc2lvbl9jb29raWU6MSwgLyogRG8gd2UgY2FsbCBicGZfc2Vzc2lvbl9jb29raWUoKSAqL1xcbiBcXHRcXHRcXHRcXHR0c3RhbXBfdHlwZV9hY2Nlc3M6MSwgLyogQWNjZXNzZWQgX19za19idWZmLVxcdTAwM2V0c3RhbXBfdHlwZSAqL1xcbi1cXHRcXHRcXHRcXHRzbGVlcGFibGU6MTtcXHQvKiBCUEYgcHJvZ3JhbSBpcyBzbGVlcGFibGUgKi9cXG4rXFx0XFx0XFx0XFx0c2xlZXBhYmxlOjEsXFx0LyogQlBGIHByb2dyYW0gaXMgc2xlZXBhYmxlICovXFxuK1xcdFxcdFxcdFxcdGppdF9yZXF1aXJlZDoxO1xcdC8qIHByb2dyYW0gc3RyaWN0bHkgcmVxdWlyZXMgSklUIGNvbXBpbGVyICovXFxuIFxcdGVudW0gYnBmX3Byb2dfdHlwZVxcdHR5cGU7XFx0XFx0LyogVHlwZSBvZiBCUEYgcHJvZ3JhbSAqL1xcbiBcXHRlbnVtIGJwZl9hdHRhY2hfdHlwZVxcdGV4cGVjdGVkX2F0dGFjaF90eXBlOyAvKiBGb3Igc29tZSBwcm9nIHR5cGVzICovXFxuIFxcdHUzMlxcdFxcdFxcdGxlbjtcXHRcXHQvKiBOdW1iZXIgb2YgZmlsdGVyIGJsb2NrcyAqL1xcbmRpZmYgLS1naXQgYS9rZXJuZWwvYnBmL2NvcmUuYyBiL2tlcm5lbC9icGYvY29yZS5jXFxuaW5kZXggNjQ5Y2NlNDFlMTNmM2IuLjVmY2QxOWNjYjQxYTllIDEwMDY0NFxcbi0tLSBhL2tlcm5lbC9icGYvY29yZS5jXFxuKysrIGIva2VybmVsL2JwZi9jb3JlLmNcXG5AQCAtMjYxOSw4ICsyNjE5LDcgQEAgc3RydWN0IGJwZl9wcm9nICpfX2JwZl9wcm9nX3NlbGVjdF9ydW50aW1lKHN0cnVjdCBicGZfdmVyaWZpZXJfZW52ICplbnYsIHN0cnVjdFxcbiBcXHRpZiAoZnAtXFx1MDAzZWJwZl9mdW5jKVxcbiBcXHRcXHRnb3RvIGZpbmFsaXplO1xcbiBcXG4tXFx0aWYgKElTX0VOQUJMRUQoQ09ORklHX0JQRl9KSVRfQUxXQVlTX09OKSB8fFxcbi1cXHQgICAgYnBmX3Byb2dfaGFzX2tmdW5jX2NhbGwoZnApKVxcbitcXHRpZiAoSVNfRU5BQkxFRChDT05GSUdfQlBGX0pJVF9BTFdBWVNfT04pIHx8IGZwLVxcdTAwM2VqaXRfcmVxdWlyZWQpXFxuIFxcdFxcdGppdF9uZWVkZWQgPSB0cnVlO1xcbiBcXG4gXFx0aWYgKCFicGZfcHJvZ19zZWxlY3RfaW50ZXJwcmV0ZXIoZnApKVxcbmRpZmYgLS1naXQgYS9rZXJuZWwvYnBmL2ZpeHVwcy5jIGIva2VybmVsL2JwZi9maXh1cHMuY1xcbmluZGV4IDEyYThhNGViNzU3ZjE4Li45NGUwNDU3YTBhYTMzYSAxMDA2NDRcXG4tLS0gYS9rZXJuZWwvYnBmL2ZpeHVwcy5jXFxuKysrIGIva2VybmVsL2JwZi9maXh1cHMuY1xcbkBAIC0xODQxLDggKzE4NDEsMTAgQEAgaW50IGJwZl9kb19taXNjX2ZpeHVwcyhzdHJ1Y3QgYnBmX3ZlcmlmaWVyX2VudiAqZW52KVxcbiBcXHRcXHR9XFxuIFxcbiBcXHRcXHQvKiBTa2lwIGlubGluaW5nIHRoZSBoZWxwZXIgY2FsbCBpZiB0aGUgSklUIGRvZXMgaXQuICovXFxuLVxcdFxcdGlmIChicGZfaml0X2lubGluZXNfaGVscGVyX2NhbGwoaW5zbi1cXHUwMDNlaW1tKSlcXG4rXFx0XFx0aWYgKGJwZl9qaXRfaW5saW5lc19oZWxwZXJfY2FsbChpbnNuLVxcdTAwM2VpbW0pKSB7XFxuK1xcdFxcdFxcdHByb2ctXFx1MDAzZWppdF9yZXF1aXJlZCA9IDE7XFxuIFxcdFxcdFxcdGdvdG8gbmV4dF9pbnNuO1xcbitcXHRcXHR9XFxuIFxcbiBcXHRcXHRpZiAoaW5zbi1cXHUwMDNlaW1tID09IEJQRl9GVU5DX2dldF9yb3V0ZV9yZWFsbSlcXG4gXFx0XFx0XFx0cHJvZy1cXHUwMDNlZHN0X25lZWRlZCA9IDE7XFxuZGlmZiAtLWdpdCBhL2tlcm5lbC9icGYvdmVyaWZpZXIuYyBiL2tlcm5lbC9icGYvdmVyaWZpZXIuY1xcbmluZGV4IDI1YWVhNDI3MWNkMDg5Li5mNDk2YjQ1YjlkYTRkMSAxMDA2NDRcXG4tLS0gYS9rZXJuZWwvYnBmL3ZlcmlmaWVyLmNcXG4rKysgYi9rZXJuZWwvYnBmL3ZlcmlmaWVyLmNcXG5AQCAtMjc2NSw2ICsyNzY1LDggQEAgaW50IGJwZl9hZGRfa2Z1bmNfY2FsbChzdHJ1Y3QgYnBmX3ZlcmlmaWVyX2VudiAqZW52LCB1MzIgZnVuY19pZCwgdTE2IG9mZnNldClcXG4gXFx0ZGVzYy1cXHUwMDNlZnVuY19tb2RlbCA9IGZ1bmNfbW9kZWw7XFxuIFxcdHNvcnQodGFiLVxcdTAwM2VkZXNjcywgdGFiLVxcdTAwM2Vucl9kZXNjcywgc2l6ZW9mKHRhYi1cXHUwMDNlZGVzY3NbMF0pLFxcbiBcXHQgICAgIGtmdW5jX2Rlc2NfY21wX2J5X2lkX29mZiwgTlVMTCk7XFxuK1xcbitcXHRlbnYtXFx1MDAzZXByb2ctXFx1MDAzZWppdF9yZXF1aXJlZCA9IDE7XFxuIFxcdHJldHVybiAwO1xcbiB9XFxuIFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wMlQxNzoyMjowNy4zMjM0OTExODhaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjMxMTkyMjcyNDQ0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIkJQRl9TWVNDQUxMXCIsXG4gICAgXCJCUEZfSklUXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiYnBmX2RvX21pc2NfZml4dXBzXCIsXG4gICAgXCJicGZfYWRkX2tmdW5jX2NhbGxcIixcbiAgICBcIl9fYnBmX3Byb2dfc2VsZWN0X3J1bnRpbWVcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgQlBGIHZlcmlmaWVyIGFuZCBjb3JlIGxvZ2ljIHRvIHRyYWNrIHdoZXRoZXIgYSBCUEYgcHJvZ3JhbSBzdHJpY3RseSByZXF1aXJlcyB0aGUgSklUIGNvbXBpbGVyIChlLmcuLCBkdWUgdG8ga2Z1bmMgY2FsbHMgb3IgSklULWlubGluZWQgaGVscGVycykuIFRoaXMgYWZmZWN0cyBob3cgdGhlIHJ1bnRpbWUgaXMgc2VsZWN0ZWQgZm9yIEJQRiBwcm9ncmFtcyBhbmQgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgY29yZSBCUEYgc3Vic3lzdGVtLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiJZb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci5cbllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lXG5pZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXG5cbklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpblxueW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5XG51c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLlxuXG5SZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOlxuLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLlxuLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy5cbi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LlxuLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsXG5ldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuXG5cbklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2hcbnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLlxuXG5XaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzpcbjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuXG4gICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy5cbjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLlxuICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLlxuICAgRG8gbm90IGxpc3QgdG9vIGdlbmVyaWMgY29uZmlncyAod2UgYWxyZWFkeSBoYXZlIHRoZW0gZW5hYmxlZCkuIE9ubHkgbGlzdCB0aG9zZSB0aGF0XG4gICBzcGVjaWZpY2FsbHkgY292ZXIgdGhlIG1vZGlmaWVkIGNvZGUuIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncyBvdXRwdXQgYXJyYXksXG4gICBhbmQgRE8gTk9UIGFkZCBhICdDT05GSUdfJyBwcmVmaXggKGUuZy4sIHJldHVybiBcIk5FVF9JUFY0XCIgaW5zdGVhZCBvZiBcIkNPTkZJR19ORVRfSVBWNFwiKS5cblByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLlxuXG5cblVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuXG5JdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS5cbklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC5cbiIsIlByb21wdCI6IkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOlxuY29tbWl0IGQzZjkzYWUwOTRhNjQxNzJjMjQ1NzNmNTUwZTQxZTU3N2Y3ZWM1ODdcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgVGh1IEp1bCAyIDE3OjIyOjA0IDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9icGYuaCBiL2luY2x1ZGUvbGludXgvYnBmLmhcbmluZGV4IGJhMDk3OTVlMGJmZGI3Li40ZTJiMDU5ZDcxZjNlYSAxMDA2NDRcbi0tLSBhL2luY2x1ZGUvbGludXgvYnBmLmhcbisrKyBiL2luY2x1ZGUvbGludXgvYnBmLmhcbkBAIC0xODgwLDcgKzE4ODAsOCBAQCBzdHJ1Y3QgYnBmX3Byb2cge1xuIFx0XHRcdFx0Y2FsbF9nZXRfZnVuY19pcDoxLCAvKiBEbyB3ZSBjYWxsIGdldF9mdW5jX2lwKCkgKi9cbiBcdFx0XHRcdGNhbGxfc2Vzc2lvbl9jb29raWU6MSwgLyogRG8gd2UgY2FsbCBicGZfc2Vzc2lvbl9jb29raWUoKSAqL1xuIFx0XHRcdFx0dHN0YW1wX3R5cGVfYWNjZXNzOjEsIC8qIEFjY2Vzc2VkIF9fc2tfYnVmZi1cdTAwM2V0c3RhbXBfdHlwZSAqL1xuLVx0XHRcdFx0c2xlZXBhYmxlOjE7XHQvKiBCUEYgcHJvZ3JhbSBpcyBzbGVlcGFibGUgKi9cbitcdFx0XHRcdHNsZWVwYWJsZToxLFx0LyogQlBGIHByb2dyYW0gaXMgc2xlZXBhYmxlICovXG4rXHRcdFx0XHRqaXRfcmVxdWlyZWQ6MTtcdC8qIHByb2dyYW0gc3RyaWN0bHkgcmVxdWlyZXMgSklUIGNvbXBpbGVyICovXG4gXHRlbnVtIGJwZl9wcm9nX3R5cGVcdHR5cGU7XHRcdC8qIFR5cGUgb2YgQlBGIHByb2dyYW0gKi9cbiBcdGVudW0gYnBmX2F0dGFjaF90eXBlXHRleHBlY3RlZF9hdHRhY2hfdHlwZTsgLyogRm9yIHNvbWUgcHJvZyB0eXBlcyAqL1xuIFx0dTMyXHRcdFx0bGVuO1x0XHQvKiBOdW1iZXIgb2YgZmlsdGVyIGJsb2NrcyAqL1xuZGlmZiAtLWdpdCBhL2tlcm5lbC9icGYvY29yZS5jIGIva2VybmVsL2JwZi9jb3JlLmNcbmluZGV4IDY0OWNjZTQxZTEzZjNiLi41ZmNkMTljY2I0MWE5ZSAxMDA2NDRcbi0tLSBhL2tlcm5lbC9icGYvY29yZS5jXG4rKysgYi9rZXJuZWwvYnBmL2NvcmUuY1xuQEAgLTI2MTksOCArMjYxOSw3IEBAIHN0cnVjdCBicGZfcHJvZyAqX19icGZfcHJvZ19zZWxlY3RfcnVudGltZShzdHJ1Y3QgYnBmX3ZlcmlmaWVyX2VudiAqZW52LCBzdHJ1Y3RcbiBcdGlmIChmcC1cdTAwM2VicGZfZnVuYylcbiBcdFx0Z290byBmaW5hbGl6ZTtcbiBcbi1cdGlmIChJU19FTkFCTEVEKENPTkZJR19CUEZfSklUX0FMV0FZU19PTikgfHxcbi1cdCAgICBicGZfcHJvZ19oYXNfa2Z1bmNfY2FsbChmcCkpXG4rXHRpZiAoSVNfRU5BQkxFRChDT05GSUdfQlBGX0pJVF9BTFdBWVNfT04pIHx8IGZwLVx1MDAzZWppdF9yZXF1aXJlZClcbiBcdFx0aml0X25lZWRlZCA9IHRydWU7XG4gXG4gXHRpZiAoIWJwZl9wcm9nX3NlbGVjdF9pbnRlcnByZXRlcihmcCkpXG5kaWZmIC0tZ2l0IGEva2VybmVsL2JwZi9maXh1cHMuYyBiL2tlcm5lbC9icGYvZml4dXBzLmNcbmluZGV4IDEyYThhNGViNzU3ZjE4Li45NGUwNDU3YTBhYTMzYSAxMDA2NDRcbi0tLSBhL2tlcm5lbC9icGYvZml4dXBzLmNcbisrKyBiL2tlcm5lbC9icGYvZml4dXBzLmNcbkBAIC0xODQxLDggKzE4NDEsMTAgQEAgaW50IGJwZl9kb19taXNjX2ZpeHVwcyhzdHJ1Y3QgYnBmX3ZlcmlmaWVyX2VudiAqZW52KVxuIFx0XHR9XG4gXG4gXHRcdC8qIFNraXAgaW5saW5pbmcgdGhlIGhlbHBlciBjYWxsIGlmIHRoZSBKSVQgZG9lcyBpdC4gKi9cbi1cdFx0aWYgKGJwZl9qaXRfaW5saW5lc19oZWxwZXJfY2FsbChpbnNuLVx1MDAzZWltbSkpXG4rXHRcdGlmIChicGZfaml0X2lubGluZXNfaGVscGVyX2NhbGwoaW5zbi1cdTAwM2VpbW0pKSB7XG4rXHRcdFx0cHJvZy1cdTAwM2VqaXRfcmVxdWlyZWQgPSAxO1xuIFx0XHRcdGdvdG8gbmV4dF9pbnNuO1xuK1x0XHR9XG4gXG4gXHRcdGlmIChpbnNuLVx1MDAzZWltbSA9PSBCUEZfRlVOQ19nZXRfcm91dGVfcmVhbG0pXG4gXHRcdFx0cHJvZy1cdTAwM2Vkc3RfbmVlZGVkID0gMTtcbmRpZmYgLS1naXQgYS9rZXJuZWwvYnBmL3ZlcmlmaWVyLmMgYi9rZXJuZWwvYnBmL3ZlcmlmaWVyLmNcbmluZGV4IDI1YWVhNDI3MWNkMDg5Li5mNDk2YjQ1YjlkYTRkMSAxMDA2NDRcbi0tLSBhL2tlcm5lbC9icGYvdmVyaWZpZXIuY1xuKysrIGIva2VybmVsL2JwZi92ZXJpZmllci5jXG5AQCAtMjc2NSw2ICsyNzY1LDggQEAgaW50IGJwZl9hZGRfa2Z1bmNfY2FsbChzdHJ1Y3QgYnBmX3ZlcmlmaWVyX2VudiAqZW52LCB1MzIgZnVuY19pZCwgdTE2IG9mZnNldClcbiBcdGRlc2MtXHUwMDNlZnVuY19tb2RlbCA9IGZ1bmNfbW9kZWw7XG4gXHRzb3J0KHRhYi1cdTAwM2VkZXNjcywgdGFiLVx1MDAzZW5yX2Rlc2NzLCBzaXplb2YodGFiLVx1MDAzZWRlc2NzWzBdKSxcbiBcdCAgICAga2Z1bmNfZGVzY19jbXBfYnlfaWRfb2ZmLCBOVUxMKTtcbitcbitcdGVudi1cdTAwM2Vwcm9nLVx1MDAzZWppdF9yZXF1aXJlZCA9IDE7XG4gXHRyZXR1cm4gMDtcbiB9XG4gXG4iLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wMlQxNzoyMjowNy4zMjM0OTI4NThaIiwiU2VxIjozLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo2ODM4NDI4NDU2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyBhIEJQRiBWZXJpZmllciBQYXRjaCoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggdGhhdCdzIHR3ZWFraW5nIHRoZSBCUEYgdmVyaWZpZXIgYW5kIGNvcmUgbG9naWMsIHNwZWNpZmljYWxseSBob3cgd2UgZGVjaWRlIHdoZXRoZXIgdG8gSklULWNvbXBpbGUgYSBCUEYgcHJvZ3JhbS4gVGhleSd2ZSBpbnRyb2R1Y2VkIGEgYGppdF9yZXF1aXJlZGAgYml0IHRvIHRoZSBgc3RydWN0IGJwZl9wcm9nYCBzdHJ1Y3R1cmUsIHdoaWNoIG1ha2VzIHNlbnNlOyBhIGZsYWcgdG8gc2lnbmFsIHRoZSBuZWVkIGZvciBKSVQgaXMgY2xlYW5lciB0aGFuIHRoZSBpbXBsaWNpdCBjaGVja3Mgd2UndmUgaGFkLlxuXG5JdCBsb29rcyBsaWtlIHRoZSBgaml0X3JlcXVpcmVkYCBiaXQgZ2V0cyBzZXQgaW4gYSBjb3VwbGUgb2YgcGxhY2VzLiBGaXJzdCwgaW4gYGJwZl9kb19taXNjX2ZpeHVwc2Agd2hlbiB3ZSdyZSBpbmxpbmluZyBoZWxwZXIgY2FsbHMgdXNpbmcgdGhlIEpJVCAoYXMgaW5kaWNhdGVkIGJ5IGBicGZfaml0X2lubGluZXNfaGVscGVyX2NhbGxgKS4gVGhpcyBpcyBnb29kOyB3ZSBkZWZpbml0ZWx5IHdhbnQgdG8gSklUIHByb2dyYW1zIHRoYXQgcmVseSBvbiBpbmxpbmVkIGhlbHBlcnMuIFRoZW4sIGl0J3MgYWxzbyBzZXQgaW4gYGJwZl9hZGRfa2Z1bmNfY2FsbGAsIHdoaWNoIG1ha2VzIHBlcmZlY3Qgc2Vuc2UgYXMgS0Z1bmNzIGFsd2F5cyByZXF1aXJlIEpJVC5cblxuVGhlIHJlYWwgbWVhdCBvZiB0aGUgY2hhbmdlIGlzIGluIGBfX2JwZl9wcm9nX3NlbGVjdF9ydW50aW1lYCwgd2hlcmUgdGhlIGxvZ2ljIG5vdyB1c2VzIGBmcC1cdTAwM2VqaXRfcmVxdWlyZWRgIHRvIGRldGVybWluZSBpZiB3ZSBuZWVkIHRoZSBKSVQuIFdlJ3JlIGVmZmVjdGl2ZWx5IHJlcGxhY2luZyB0aGUgYGJwZl9wcm9nX2hhc19rZnVuY19jYWxsKGZwKWAgY2hlY2suIFRoaXMgbWVhbnMgd2UncmUgbm93IGNvbnNpZGVyaW5nIGlubGluZWQgaGVscGVycyAqYW5kKiBLRnVuY3Mgd2hlbiBkZWNpZGluZyB0byB1c2UgdGhlIEpJVC4gVGhhdCdzIGEgZ29vZCBmdW5jdGlvbmFsIGNoYW5nZSwgc2ltcGxpZnlpbmcgdGhlIGxvZ2ljLiBJZiBgaml0X3JlcXVpcmVkYCBpcyBzZXQsIHRoZSBpbnRlcnByZXRlciBpcyBvdXQgb2YgdGhlIHBpY3R1cmUuXG5cblRvIGdldCBhIGJldHRlciB1bmRlcnN0YW5kaW5nLCBJIG5lZWQgdG8gZm9jdXMgb24gdGhpcyBjb25kaXRpb24gYW5kIHdoYXQgdGhlIHBhdGNoIGlzIGRvaW5nLiBJIG5lZWQgdG8gbWFrZSBzdXJlIEkgYW0gYXdhcmUgb2YgdGhlc2UgY29uZGl0aW9ucy5cblxuQWxyaWdodCwgbGV0J3MgZmluZCB0aGUgcmVsZXZhbnQgY29uZmlncyBhbmQgZnVuY3Rpb25zLiBgQ09ORklHX0JQRl9TWVNDQUxMYCBpcyB0aGUgb2J2aW91cyBvbmUsIG1ha2luZyBzdXJlIHdlIGhhdmUgQlBGIHN1cHBvcnQgaW4gdGhlIGZpcnN0IHBsYWNlLiBBcyBmb3IgZnVuY3Rpb25zLCBJIG5lZWQgdG8gY2hlY2sgYF9fYnBmX3Byb2dfc2VsZWN0X3J1bnRpbWVgLCBgYnBmX2RvX21pc2NfZml4dXBzYCwgYW5kIGBicGZfYWRkX2tmdW5jX2NhbGxgLlxuXG5Ob3csIHdoZXJlIGFyZSB0aG9zZSBmdW5jdGlvbnMgZGVmaW5lZD8gSSBuZWVkIHRvIGNoZWNrIGBrZXJuZWwvYnBmL2NvcmUuY2AgYW5kIGBrZXJuZWwvYnBmL2ZpeHVwcy5jYC4gV2FpdC4uLiB3YXNuJ3QgYGJwZl9kb19taXNjX2ZpeHVwc2AgaW4gYGtlcm5lbC9icGYvZml4dXBzLmNgPyBUaGF0IHNlZW1zIHJpZ2h0LiBPaCwgcmlnaHQsIHRoaXMgcGF0Y2ggY291bGQgYmUgcmVmZXJlbmNpbmcgYSBuZXdlciBrZXJuZWwgd2hlcmUgYGZpeHVwcy5jYCB3YXMgc3BsaXQgb2ZmIGZyb20gYHZlcmlmaWVyLmNgLiBJIG5lZWQgdG8gcmVtZW1iZXIgdGhhdCEgTGV0J3MgY2hlY2sgdGhlIHBhdGNoIGFnYWluc3QgdGhlIHJlbGV2YW50IGtlcm5lbCB2ZXJzaW9ucyB0byBtYWtlIHN1cmUgSSdtIGxvb2tpbmcgYXQgdGhlIHJpZ2h0IHNvdXJjZS4gVGhlbiwgbGV0J3MgdmVyaWZ5IGFsbCB0aGUgcmVsZXZhbnQgY29uZmlncyB0byBtYWtlIHN1cmUgZXZlcnl0aGluZydzIGFzIGV4cGVjdGVkLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyNjMwLCJPdXRwdXRUb2tlbnMiOjIxLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NDAxLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMDJUMTc6MjI6MTQuMTYxOTIyOTY0WiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQ1MDk3ODIyOTQsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY29uZmlnIEJQRl9TWVNDQUxMXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImtlcm5lbC9icGYvS2NvbmZpZz0yNT1tZW51IFxcXCJCUEYgc3Vic3lzdGVtXFxcIlxcbmtlcm5lbC9icGYvS2NvbmZpZy0yNi1cXG5rZXJuZWwvYnBmL0tjb25maWc6Mjc6Y29uZmlnIEJQRl9TWVNDQUxMXFxua2VybmVsL2JwZi9LY29uZmlnLTI4LVxcdGJvb2wgXFxcIkVuYWJsZSBicGYoKSBzeXN0ZW0gY2FsbFxcXCJcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMDJUMTc6MjI6MTguNjcxNzEyMTg4WiIsIlNlcSI6NSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6Mzc0ODkyMTM5NiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgbGV0J3MgYnJlYWsgdGhpcyBkb3duLlxuXG4qKkFuYWx5emluZyBCUEYgU3lzY2FsbCBDb25maWd1cmF0aW9uIGZvciBUYXJnZXRlZCBGdW5jdGlvbiBGb2N1cyoqXG5cblJpZ2h0LCBzbyB3ZSdyZSBkZWFsaW5nIHdpdGggYSBgQlBGX1NZU0NBTExgIGNvbmZpZ3VyYXRpb24gaGVyZS4gTXkgaW1tZWRpYXRlIHRob3VnaHQgaXMsIFwiT2theSwgZ2l2ZW4gdGhpcyBjb250ZXh0LCB3aGljaCBzcGVjaWZpYyBmdW5jdGlvbnMgd2l0aGluIHRoZSBCUEYgc3lzdGVtIGFyZSBtb3N0IHJlbGV2YW50IGZvciBpbnZlc3RpZ2F0aW9uP1wiIFRoYXQgZnJhbWluZyBuYXJyb3dzIHRoZSBzY29wZSBzaWduaWZpY2FudGx5LCBzbyB0aGF0J3Mgd2hlcmUgSSBuZWVkIHRvIHN0YXJ0LlxuXG5JIG5lZWQgdG8gZm9jdXMgbXkgYXR0ZW50aW9uIG9uIHRoZXNlIGZ1bmN0aW9uczogYF9fYnBmX3Byb2dfc2VsZWN0X3J1bnRpbWVgLCBgYnBmX2RvX21pc2NfZml4dXBzYCwgYW5kIGBicGZfYWRkX2tmdW5jX2NhbGxgLiBNeSBoeXBvdGhlc2lzIGlzIHRoYXQgdGhlc2UgZnVuY3Rpb25zIGhhdmUgaW50ZXJlc3RpbmcgYmVoYXZpb3Igd2l0aGluIHRoZSBjb250ZXh0IG9mIGBCUEZfU1lTQ0FMTGAsIGFuZCB1bmRlcnN0YW5kaW5nIHRoZWlyIGludGVyYWN0aW9uIGlzIGxpa2VseSBrZXkgdG8gYSBjb21wbGV0ZSB1bmRlcnN0YW5kaW5nLlxuXG5CdXQgaG9sZCBvbiwgYmVmb3JlIEkgZGl2ZSB0b28gZGVlcCBpbnRvIHRob3NlIHRocmVlLCBJIHNob3VsZCBwYXVzZSBhbmQgbWFrZSBzdXJlIEkgaGF2ZW4ndCBtaXNzZWQgYW55dGhpbmcgb2J2aW91cy4gSSBzaG91bGQgcXVpY2tseSB2ZXJpZnkgaWYgdGhlcmUgYXJlIGFueSAqb3RoZXIqIHJlbGV2YW50IGNvbmZpZ3VyYXRpb25zIHRoYXQgYXJlIGF0IHBsYXkuIEp1c3QgdG8gYmUgdGhvcm91Z2ggYW5kIGVuc3VyZSB0aGF0IEknbSBub3Qgb3Zlcmxvb2tpbmcgYW55IGRlcGVuZGVuY2llcyBvciBzZWNvbmRhcnkgaW5mbHVlbmNlcy4gVGhpcyBpcyBhIGNydWNpYWwgc3RlcCB0byBhdm9pZCBtaXNzaW5nIGFueXRoaW5nIGVsc2UuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjM3MTgsIk91dHB1dFRva2VucyI6MjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo3MCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0wMlQxNzoyMjoyMi40MjA2Mzg3NDRaIiwiU2VxIjo2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjU0NjQ1MDQwNywiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJjb25maWcgQlBGX0pJVFwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJrZXJuZWwvYnBmL0tjb25maWc9Mjc9Y29uZmlnIEJQRl9TWVNDQUxMXFxuLS1cXG5rZXJuZWwvYnBmL0tjb25maWctNDEtXFxua2VybmVsL2JwZi9LY29uZmlnOjQyOmNvbmZpZyBCUEZfSklUXFxua2VybmVsL2JwZi9LY29uZmlnLTQzLVxcdGJvb2wgXFxcIkVuYWJsZSBCUEYgSnVzdCBJbiBUaW1lIGNvbXBpbGVyXFxcIlxcbi0tXFxua2VybmVsL2JwZi9LY29uZmlnLTU3LVxcbmtlcm5lbC9icGYvS2NvbmZpZzo1ODpjb25maWcgQlBGX0pJVF9BTFdBWVNfT05cXG5rZXJuZWwvYnBmL0tjb25maWctNTktXFx0Ym9vbCBcXFwiUGVybWFuZW50bHkgZW5hYmxlIEJQRiBKSVQgYW5kIHJlbW92ZSBCUEYgaW50ZXJwcmV0ZXJcXFwiXFxuLS1cXG5rZXJuZWwvYnBmL0tjb25maWctNjgtXFxua2VybmVsL2JwZi9LY29uZmlnOjY5OmNvbmZpZyBCUEZfSklUX0RFRkFVTFRfT05cXG5rZXJuZWwvYnBmL0tjb25maWctNzAtXFx0ZGVmX2Jvb2wgQVJDSF9XQU5UX0RFRkFVTFRfQlBGX0pJVCB8fCBCUEZfSklUX0FMV0FZU19PTlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wMlQxNzoyMjoyNC45NjcwOTk5MjFaIiwiU2VxIjo3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo1NzA5Mzk4MDYzLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgQlBGIEpJVCBTZWxlY3Rpb24gTG9naWMqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIHBhdGNoIGFuZCB0aGUgYF9fYnBmX3Byb2dfc2VsZWN0X3J1bnRpbWVgIGZ1bmN0aW9uLiBUaGUga2V5IHBvaW50IGhlcmUgaXMgaG93IGBDT05GSUdfQlBGX0pJVF9BTFdBWVNfT05gIGludGVyYWN0cyB3aXRoIHRoZSBKSVQgY29tcGlsYXRpb24gcHJvY2Vzcy4gVGhlIGNvZGUncyBjaGVja2luZyB0aGlzIGNvbmZpZ3VyYXRpb24gb3B0aW9uLiBJZiBpdCAqaXMqIGVuYWJsZWQsIHRoZW4gdGhlIEpJVCBpcyBhbHdheXMgcmVxdWlyZWQsIHRoYXQncyBzdHJhaWdodGZvcndhcmQuXG5cblRoZSBpbnRlcmVzdGluZyBwYXJ0LCBhbmQgd2hlcmUgdGhlIHBvdGVudGlhbCBpc3N1ZSBsaWVzLCBpcyB3aGVuIGBDT05GSUdfQlBGX0pJVF9BTFdBWVNfT05gIGlzICpub3QqIGVuYWJsZWQuIEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSBsb2dpYyBmbG93IGluIHRoYXQgc2NlbmFyaW8sIHRvIHVuZGVyc3RhbmQgdGhpcyAnYnVnJyBvciAnZmVhdHVyZScuIFRoaXMgcGF0Y2ggc2VlbXMgdG8gYmUgYWRkcmVzc2luZyBhIHNwZWNpZmljIEpJVCByZXF1aXJlbWVudCB3aXRob3V0IHRoYXQgZ2xvYmFsIGFsd2F5cy1vbiBmbGFnIHNldC5cblxuU28sIHRvIHByb3Blcmx5IHRlc3QgdGhlIHNjZW5hcmlvIHRoaXMgcGF0Y2ggYWRkcmVzc2VzLCBJIHNob3VsZG4ndCBlbmFibGUgYEJQRl9KSVRfQUxXQVlTX09OYC4gSSBjb3VsZCBqdXN0IGVuYWJsZSBgQlBGX1NZU0NBTExgIGFuZCBgQlBGX0pJVGAsIGFzIHRob3NlIGFyZSB0eXBpY2FsbHkgZW5hYmxlZCBhbnl3YXkuXG5cbldhaXQgYSBzZWNvbmQuLi4gSWYgYEJQRl9KSVRfQUxXQVlTX09OYCAqaXMqIGVuYWJsZWQsIHRoZSBgaml0X25lZWRlZGAgdmFyaWFibGUgaXMgYWx3YXlzIGdvaW5nIHRvIGJlIHRydWUuIENvbnNlcXVlbnRseSwgdGhlIGBmcC1cdTAwM2VqaXRfcmVxdWlyZWRgIGNoZWNrIGlzIGJ5cGFzc2VkIChvciwgbW9yZSBwcmVjaXNlbHksIHRoZSBleHByZXNzaW9uIGlzIGFsd2F5cyB0cnVlKS4gU28sIHRvIGFjdHVhbGx5IHZlcmlmeSB0aGUgYmVoYXZpb3Igb2YgYGZwLVx1MDAzZWppdF9yZXF1aXJlZGAsIEkgKmhhdmUqIHRvIGRpc2FibGUgYENPTkZJR19CUEZfSklUX0FMV0FZU19PTmAuIFRoYXQncyBpdCwgdGhhdCdzIHRoZSBrZXkuXG5cblRoZXJlZm9yZSwgZm9yIHRoaXMgdGVzdCwgSSdsbCBzdGljayB3aXRoIGp1c3QgZW5hYmxpbmcgYEJQRl9TWVNDQUxMYCBhbmQgYEJQRl9KSVRgLCBhcyB0aGlzIHdpbGwgZ2l2ZSBtZSB0aGUgaW50ZW5kZWQgc2NlbmFyaW8gdG8gdGVzdC5cblxuTmV4dCwgSSBzaG91bGQgcHJvYmFibHkgY2hlY2sgYGJwZl9qaXRfaW5saW5lc19oZWxwZXJfY2FsbGAgdG8gc2VlIGlmIHRoYXQncyByZWxldmFudCB0byB0aGUgc2l0dWF0aW9uLlxuXG5cbiIsIklucHV0VG9rZW5zIjo0MjcyLCJPdXRwdXRUb2tlbnMiOjI1LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjUxLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTAyVDE3OjIyOjMwLjY3NjQ5OTc5NFoiLCJTZXEiOjgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyNjA5NDY2OTMzLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImJwZl9qaXRfaW5saW5lc19oZWxwZXJfY2FsbFwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJhcmNoL2FybTY0L25ldC9icGZfaml0X2NvbXAuYz0zMjAxPWJvb2wgYnBmX2ppdF9zdXBwb3J0c190aW1lZF9tYXlfZ290byh2b2lkKVxcbi0tXFxuYXJjaC9hcm02NC9uZXQvYnBmX2ppdF9jb21wLmMtMzIwNS1cXG5hcmNoL2FybTY0L25ldC9icGZfaml0X2NvbXAuYzozMjA2OmJvb2wgYnBmX2ppdF9pbmxpbmVzX2hlbHBlcl9jYWxsKHMzMiBpbW0pXFxuYXJjaC9hcm02NC9uZXQvYnBmX2ppdF9jb21wLmMtMzIwNy17XFxuLS1cXG5hcmNoL3Bvd2VycGMvbmV0L2JwZl9qaXRfY29tcC5jPTU3Mj1ib29sIGJwZl9qaXRfc3VwcG9ydHNfcGVyY3B1X2luc24odm9pZClcXG4tLVxcbmFyY2gvcG93ZXJwYy9uZXQvYnBmX2ppdF9jb21wLmMtNTc2LVxcbmFyY2gvcG93ZXJwYy9uZXQvYnBmX2ppdF9jb21wLmM6NTc3OmJvb2wgYnBmX2ppdF9pbmxpbmVzX2hlbHBlcl9jYWxsKHMzMiBpbW0pXFxuYXJjaC9wb3dlcnBjL25ldC9icGZfaml0X2NvbXAuYy01Nzgte1xcbi0tXFxuYXJjaC9yaXNjdi9uZXQvYnBmX2ppdF9jb21wNjQuYz0yMTM5PWJvb2wgYnBmX2ppdF9zdXBwb3J0c19wZXJjcHVfaW5zbih2b2lkKVxcbi0tXFxuYXJjaC9yaXNjdi9uZXQvYnBmX2ppdF9jb21wNjQuYy0yMTQzLVxcbmFyY2gvcmlzY3YvbmV0L2JwZl9qaXRfY29tcDY0LmM6MjE0NDpib29sIGJwZl9qaXRfaW5saW5lc19oZWxwZXJfY2FsbChzMzIgaW1tKVxcbmFyY2gvcmlzY3YvbmV0L2JwZl9qaXRfY29tcDY0LmMtMjE0NS17XFxuLS1cXG5hcmNoL3MzOTAvbmV0L2JwZl9qaXRfY29tcC5jPTMwODE9Ym9vbCBicGZfaml0X3N1cHBvcnRzX3RpbWVkX21heV9nb3RvKHZvaWQpXFxuLS1cXG5hcmNoL3MzOTAvbmV0L2JwZl9qaXRfY29tcC5jLTMwODUtXFxuYXJjaC9zMzkwL25ldC9icGZfaml0X2NvbXAuYzozMDg2OmJvb2wgYnBmX2ppdF9pbmxpbmVzX2hlbHBlcl9jYWxsKHMzMiBpbW0pXFxuYXJjaC9zMzkwL25ldC9icGZfaml0X2NvbXAuYy0zMDg3LXtcXG4tLVxcbmluY2x1ZGUvbGludXgvZmlsdGVyLmg9MTE3OT1ib29sIGJwZl9qaXRfbmVlZHNfemV4dCh2b2lkKTtcXG5pbmNsdWRlL2xpbnV4L2ZpbHRlci5oOjExODA6Ym9vbCBicGZfaml0X2lubGluZXNfaGVscGVyX2NhbGwoczMyIGltbSk7XFxuaW5jbHVkZS9saW51eC9maWx0ZXIuaC0xMTgxLWJvb2wgYnBmX2ppdF9zdXBwb3J0c19zdWJwcm9nX3RhaWxjYWxscyh2b2lkKTtcXG4tLVxcbmtlcm5lbC9icGYvY29yZS5jPTMyMDg9Ym9vbCBfX3dlYWsgYnBmX2ppdF9ieXBhc3Nfc3BlY192NCh2b2lkKVxcbi0tXFxua2VybmVsL2JwZi9jb3JlLmMtMzIxOC0gKi9cXG5rZXJuZWwvYnBmL2NvcmUuYzozMjE5OmJvb2wgX193ZWFrIGJwZl9qaXRfaW5saW5lc19oZWxwZXJfY2FsbChzMzIgaW1tKVxcbmtlcm5lbC9icGYvY29yZS5jLTMyMjAte1xcbi0tXFxua2VybmVsL2JwZi9maXh1cHMuYz0xNDgxPWludCBicGZfZG9fbWlzY19maXh1cHMoc3RydWN0IGJwZl92ZXJpZmllcl9lbnYgKmVudilcXG4tLVxcbmtlcm5lbC9icGYvZml4dXBzLmMtMTg0My1cXHRcXHQvKiBTa2lwIGlubGluaW5nIHRoZSBoZWxwZXIgY2FsbCBpZiB0aGUgSklUIGRvZXMgaXQuICovXFxua2VybmVsL2JwZi9maXh1cHMuYzoxODQ0OlxcdFxcdGlmIChicGZfaml0X2lubGluZXNfaGVscGVyX2NhbGwoaW5zbi1cXHUwMDNlaW1tKSkge1xcbmtlcm5lbC9icGYvZml4dXBzLmMtMTg0NS1cXHRcXHRcXHRwcm9nLVxcdTAwM2VqaXRfcmVxdWlyZWQgPSAxO1xcbi0tXFxua2VybmVsL2JwZi92ZXJpZmllci5jPTE2Njg1PWJvb2wgYnBmX2dldF9jYWxsX3N1bW1hcnkoc3RydWN0IGJwZl92ZXJpZmllcl9lbnYgKmVudiwgc3RydWN0IGJwZl9pbnNuICpjYWxsLFxcbi0tXFxua2VybmVsL2JwZi92ZXJpZmllci5jLTE2Njk4LVxcdFxcdFxcdCAgICAgICAoYnBmX3ZlcmlmaWVyX2lubGluZXNfaGVscGVyX2NhbGwoZW52LCBjYWxsLVxcdTAwM2VpbW0pIHx8XFxua2VybmVsL2JwZi92ZXJpZmllci5jOjE2Njk5OlxcdFxcdFxcdFxcdGJwZl9qaXRfaW5saW5lc19oZWxwZXJfY2FsbChjYWxsLVxcdTAwM2VpbW0pKTtcXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtMTY3MDAtXFx0XFx0Y3MtXFx1MDAzZWlzX3ZvaWQgPSBmbi1cXHUwMDNlcmV0X3R5cGUgPT0gUkVUX1ZPSUQ7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTAyVDE3OjIyOjMzLjI4NTk3MTQ5N1oiLCJTZXEiOjksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjUwOTI4OTQwMDUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqRnV6emluZyBUYXJnZXQgSWRlbnRpZmljYXRpb24qKlxuXG5Pa2F5LCBzbyB0aGlzIHBhdGNoIGlzIGZsYWdnaW5nIGBwcm9nLVx1MDAzZWppdF9yZXF1aXJlZCA9IDFgIHdpdGhpbiBgYnBmX2RvX21pc2NfZml4dXBzYCBhbmQgYGJwZl9hZGRfa2Z1bmNfY2FsbGAuIFRoYXQgaW1tZWRpYXRlbHkgc2NyZWFtcyBwb3RlbnRpYWwgZnV6emluZyB0YXJnZXQgdG8gbWUuIEl0J3MgYSBjbGVhciBzaWduYWwgdG8gaW52ZXN0aWdhdGUgaG93IEpJVCBjb21waWxhdGlvbiBnZXRzIHRyaWdnZXJlZCwgZXNwZWNpYWxseSBnaXZlbiB0aGUgY29udGV4dCBvZiB0aGVzZSBmdW5jdGlvbnMuXG5cbk15IHByaW1hcnkgZm9jdXMgZm9yIGZ1enppbmcgd2lsbCBiZSB0aGVzZSBmdW5jdGlvbnM6IGBicGZfZG9fbWlzY19maXh1cHNgLCBgYnBmX2FkZF9rZnVuY19jYWxsYCwgYW5kIGBfX2JwZl9wcm9nX3NlbGVjdF9ydW50aW1lYC4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgaG93IHRoZSBpbnRlcmFjdGlvbiBhbmQgc3RhdGUgb2YgdGhvc2UgZnVuY3Rpb24gbGVhZCB0byB0aGUgY29tcGlsYXRpb24gb2YgdGhlIEJQRiBwcm9ncmFtLiBJIHdpbGwgbmVlZCBgQlBGX1NZU0NBTExgIGFuZCBgQlBGX0pJVGAgZW5hYmxlZCBpbiBteSB0ZXN0IGNvbmZpZy5cblxuQmVmb3JlIEkgZ28gZnVydGhlciwgSSBzaG91bGQgdmVyaWZ5IHRoZSBmdW5jdGlvbiBuYW1lcyB0aGVtc2VsdmVzLiBJdCdzIGVhc3kgdG8gbWFrZSBhIHR5cG8sIGFuZCBhIHNpbXBsZSBjaGVjayBub3cgY291bGQgc2F2ZSBhIGhlYWRhY2hlIGxhdGVyLiBZZXAsIGBicGZfZG9fbWlzY19maXh1cHNgLCBgYnBmX2FkZF9rZnVuY19jYWxsYCwgYW5kIGBfX2JwZl9wcm9nX3NlbGVjdF9ydW50aW1lYCBhcmUgYWxsIGNvcnJlY3QuIEV4Y2VsbGVudC5cblxuTm93LCBJJ20gcmVhZHkgdG8gYmVnaW4gdGVzdGluZy5cblxuXG4iLCJJbnB1dFRva2VucyI6NTk2MCwiT3V0cHV0VG9rZW5zIjoxNDcsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxNjcsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMDJUMTc6MjI6MzguMzc4ODY3MDcyWiIsIlNlcSI6MTAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InNldC1yZXN1bHRzIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTM2ODg5MzgwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJCUEZfU1lTQ0FMTFwiLFxuICAgIFwiQlBGX0pJVFwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcImJwZl9kb19taXNjX2ZpeHVwc1wiLFxuICAgIFwiYnBmX2FkZF9rZnVuY19jYWxsXCIsXG4gICAgXCJfX2JwZl9wcm9nX3NlbGVjdF9ydW50aW1lXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIEJQRiB2ZXJpZmllciBhbmQgY29yZSBsb2dpYyB0byB0cmFjayB3aGV0aGVyIGEgQlBGIHByb2dyYW0gc3RyaWN0bHkgcmVxdWlyZXMgdGhlIEpJVCBjb21waWxlciAoZS5nLiwgZHVlIHRvIGtmdW5jIGNhbGxzIG9yIEpJVC1pbmxpbmVkIGhlbHBlcnMpLiBUaGlzIGFmZmVjdHMgaG93IHRoZSBydW50aW1lIGlzIHNlbGVjdGVkIGZvciBCUEYgcHJvZ3JhbXMgYW5kIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIGNvcmUgQlBGIHN1YnN5c3RlbS5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJCUEZfU1lTQ0FMTFwiLFxuICAgIFwiQlBGX0pJVFwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcImJwZl9kb19taXNjX2ZpeHVwc1wiLFxuICAgIFwiYnBmX2FkZF9rZnVuY19jYWxsXCIsXG4gICAgXCJfX2JwZl9wcm9nX3NlbGVjdF9ydW50aW1lXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIEJQRiB2ZXJpZmllciBhbmQgY29yZSBsb2dpYyB0byB0cmFjayB3aGV0aGVyIGEgQlBGIHByb2dyYW0gc3RyaWN0bHkgcmVxdWlyZXMgdGhlIEpJVCBjb21waWxlciAoZS5nLiwgZHVlIHRvIGtmdW5jIGNhbGxzIG9yIEpJVC1pbmxpbmVkIGhlbHBlcnMpLiBUaGlzIGFmZmVjdHMgaG93IHRoZSBydW50aW1lIGlzIHNlbGVjdGVkIGZvciBCUEYgcHJvZ3JhbXMgYW5kIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIGNvcmUgQlBGIHN1YnN5c3RlbS5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9XTsKCQkJaWYgKCFyYXdEYXRhIHx8IHJhd0RhdGEubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQlkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKTsKCQkJZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSk7CgkJCWRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKSB7CgkJCWNvbnN0IHN0YXRzID0gewoJCQkJbGxtOiB7IGNvdW50OiAwLCB0b2tlbnM6IDAsIGR1cmF0aW9uOiAwIH0sCgkJCQl0b29sOiB7IGNvdW50OiAwLCBkdXJhdGlvbjogMCB9CgkJCX07CgoJCQlyYXdEYXRhLmZvckVhY2gocyA9PiB7CgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsgCgkJCQlpZiAocy5UeXBlID09PSAibGxtIikgewoJCQkJCXN0YXRzLmxsbS5jb3VudCsrOwoJCQkJCXN0YXRzLmxsbS50b2tlbnMgKz0gKHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnMpOwoJCQkJCXN0YXRzLmxsbS5kdXJhdGlvbiArPSBkdXI7CgkJCQl9IGVsc2UgaWYgKHMuVHlwZSA9PT0gInRvb2wiKSB7CgkJCQkJc3RhdHMudG9vbC5jb3VudCsrOwoJCQkJCXN0YXRzLnRvb2wuZHVyYXRpb24gKz0gZHVyOwoJCQkJfQoJCQl9KTsKCgkJCWNvbnN0IGF2Z0xsbUR1ciA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLmR1cmF0aW9uIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnTGxtVG9rZW4gPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS50b2tlbnMgLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdUb29sRHVyID0gc3RhdHMudG9vbC5jb3VudCA+IDAgPyAoc3RhdHMudG9vbC5kdXJhdGlvbiAvIHN0YXRzLnRvb2wuY291bnQpLnRvRml4ZWQoMikgOiAwOwoKCQkJY29uc3QgbGxtU3VtYXJ5Q2VsbHMgPSBbc3RhdHMubGxtLmNvdW50LCBzdGF0cy5sbG0udG9rZW5zLCBhdmdMbG1Ub2tlbiwgc3RhdHMubGxtLmR1cmF0aW9uLCBhdmdMbG1EdXJdOwoJCQljb25zdCB0b29sU3VtbWFyeUNlbGxzID0gW3N0YXRzLnRvb2wuY291bnQsIHN0YXRzLnRvb2wuZHVyYXRpb24sIGF2Z1Rvb2xEdXJdOwoKCQkJY29uc3QgbGxtU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGxtX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQlsbG1TdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgbGxtVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQlsbG1TdW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJbGxtVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJbGxtU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQobGxtVHIpOwoKCQkJY29uc3QgdG9vbFN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rvb2xfc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgdG9vbFRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJdG9vbFN1bW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJdG9vbFRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZCh0b29sVHIpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBmaWx0ZXJlZFN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBbImxsbSIsICJ0b29sIl0uaW5jbHVkZXMoZC5UeXBlKSk7CgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ0R1cmF0aW9uJyk7CgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7IAoKCQkJZmlsdGVyZWRTdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJCgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsKCQkJCWxldCB0b29sdGlwID0gcy5OYW1lOwoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIgJiYgcy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoJCQkJZGF0YS5hZGRSb3coW2Ake3MuU2VxfWAsIGR1ciwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1RpbWUgQ29uc3VtcHRpb24gb2YgTExNL1Rvb2wgQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTS9Ub29sIFN0ZXBzJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ1NlY29uZHMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2R1cmF0aW9uX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBsbG1TdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gZC5UeXBlID09PSAibGxtIik7CgkJCWlmIChsbG1TdGVwcy5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwkJCQoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ1Rva2VucycpOwkJCQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICdzdHlsZSd9KTsJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7CQoKCQkJY29uc3QgYWdlbnRDb2xvcnMgPSB7fTsKCQkJY29uc3QgcGFsZXR0ZSA9IFsnIzQyODVGNCcsICcjREI0NDM3JywgJyNGNEI0MDAnLCAnIzBGOUQ1OCcsICcjQUI0N0JDJywgJyMwMEFDQzEnXTsKCQkJbGV0IGNvbG9ySWR4ID0gMDsKCQkJY29uc3QgYWdlbnRMTE1Db3VudHMgPSB7fTsKCQkJbGxtU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCWlmICghYWdlbnRDb2xvcnNbcy5OYW1lXSkgewoJCQkJCWFnZW50Q29sb3JzW3MuTmFtZV0gPSBwYWxldHRlW2NvbG9ySWR4ICUgcGFsZXR0ZS5sZW5ndGhdOwoJCQkJCWNvbG9ySWR4Kys7CgkJCQl9CgoJCQkJYWdlbnRMTE1Db3VudHNbcy5OYW1lXSA9IChhZ2VudExMTUNvdW50c1tzLk5hbWVdIHx8IDApICsgMTsKCQkJCWNvbnN0IGxhYmVsID0gYCR7cy5OYW1lfS0ke2FnZW50TExNQ291bnRzW3MuTmFtZV19YDsKCQkJCWNvbnN0IHRvdGFsVG9rZW5zID0gcy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2VuczsKCQkJCWNvbnN0IHN0eWxlID0gYGNvbG9yOiAke2FnZW50Q29sb3JzW3MuTmFtZV19YDsKCQkJCWxldCB0b29sdGlwID0gYFRvdGFsIFRva2VuczogJHt0b3RhbFRva2Vuc31cbihJbjogJHtzLklucHV0VG9rZW5zfSwgT3V0OiAke3MuT3V0cHV0VG9rZW5zfSwgVGhvdWdodHM6ICR7cy5PdXRwdXRUaG91Z2h0c1Rva2Vuc30pYDsKCQkJCWlmIChzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgoJCQkJZGF0YS5hZGRSb3coW2xhYmVsLCB0b3RhbFRva2Vucywgc3R5bGUsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUb2tlbiBDb25zdW1wdGlvbiBieSBMTE0gQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTSBDYWxsIFNlcXVlbmNlJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ0NvbnN1bWVkIFRva2VucycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9rZW5fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCQlsZXQgYWxsRXhwYW5kZWQgPSBmYWxzZTsKCQlmdW5jdGlvbiB0b2dnbGVBbGxEZXRhaWxzKCkgewoJCQlhbGxFeHBhbmRlZCA9ICFhbGxFeHBhbmRlZDsKCQkJZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnZGV0YWlscycpLmZvckVhY2goZCA9PiB7CgkJCQlpZiAoYWxsRXhwYW5kZWQpIGQuc2V0QXR0cmlidXRlKCdvcGVuJywgJycpOwoJCQkJZWxzZSBkLnJlbW92ZUF0dHJpYnV0ZSgnb3BlbicpOwoJCQl9KTsKCQl9Cgk8L3NjcmlwdD4KCgo8L2JvZHk+CjwvaHRtbD4K" },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-workflowsh57w[0].run-triage(0) Phase: Succeeded StartedAt: 2026-07-02 16:57:07 +0000 UTC FinishedAt: 2026-07-02 17:22:40 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "bpf-next", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git", "commit_hash": "0b58988cacfc91604c4b5be2c3295f8aac0ee3d0", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "BPF_SYSCALL", "BPF_JIT" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "bpf-next", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git", "commit_hash": "0b58988cacfc91604c4b5be2c3295f8aac0ee3d0", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "BPF_SYSCALL", "BPF_JIT" ], "series_id": "ed69a3e2-60b5-48c5-861c-fa65ee3ca490" }, "track": "KASAN", "fuzz": { "focus": [ "bpf" ], "focus_symbols": [ "bpf_do_misc_fixups", "bpf_add_kfunc_call", "__bpf_prog_select_runtime" ], "corpus_urls": [ "https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-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+CgkJCTx0ZD4yMDI2LzA3LzAyIDE3OjIyPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0JQRl9TWVNDQUxMJiMzNDssCiAgICAmIzM0O0JQRl9KSVQmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDticGZfZG9fbWlzY19maXh1cHMmIzM0OywKICAgICYjMzQ7YnBmX2FkZF9rZnVuY19jYWxsJiMzNDssCiAgICAmIzM0O19fYnBmX3Byb2dfc2VsZWN0X3J1bnRpbWUmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIEJQRiB2ZXJpZmllciBhbmQgY29yZSBsb2dpYyB0byB0cmFjayB3aGV0aGVyIGEgQlBGIHByb2dyYW0gc3RyaWN0bHkgcmVxdWlyZXMgdGhlIEpJVCBjb21waWxlciAoZS5nLiwgZHVlIHRvIGtmdW5jIGNhbGxzIG9yIEpJVC1pbmxpbmVkIGhlbHBlcnMpLiBUaGlzIGFmZmVjdHMgaG93IHRoZSBydW50aW1lIGlzIHNlbGVjdGVkIGZvciBCUEYgcHJvZ3JhbXMgYW5kIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIGNvcmUgQlBGIHN1YnN5c3RlbS4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wMiAxNzoyMjwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IGQzZjkzYWUwOTRhNjQxNzJjMjQ1NzNmNTUwZTQxZTU3N2Y3ZWM1ODdcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgVGh1IEp1bCAyIDE3OjIyOjA0IDIwMjYgJiM0MzswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvYnBmLmggYi9pbmNsdWRlL2xpbnV4L2JwZi5oXG5pbmRleCBiYTA5Nzk1ZTBiZmRiNy4uNGUyYjA1OWQ3MWYzZWEgMTAwNjQ0XG4tLS0gYS9pbmNsdWRlL2xpbnV4L2JwZi5oXG4mIzQzOyYjNDM7JiM0MzsgYi9pbmNsdWRlL2xpbnV4L2JwZi5oXG5AQCAtMTg4MCw3ICYjNDM7MTg4MCw4IEBAIHN0cnVjdCBicGZfcHJvZyB7XG4gXHRcdFx0XHRjYWxsX2dldF9mdW5jX2lwOjEsIC8qIERvIHdlIGNhbGwgZ2V0X2Z1bmNfaXAoKSAqL1xuIFx0XHRcdFx0Y2FsbF9zZXNzaW9uX2Nvb2tpZToxLCAvKiBEbyB3ZSBjYWxsIGJwZl9zZXNzaW9uX2Nvb2tpZSgpICovXG4gXHRcdFx0XHR0c3RhbXBfdHlwZV9hY2Nlc3M6MSwgLyogQWNjZXNzZWQgX19za19idWZmLVx1MDAzZXRzdGFtcF90eXBlICovXG4tXHRcdFx0XHRzbGVlcGFibGU6MTtcdC8qIEJQRiBwcm9ncmFtIGlzIHNsZWVwYWJsZSAqL1xuJiM0MztcdFx0XHRcdHNsZWVwYWJsZToxLFx0LyogQlBGIHByb2dyYW0gaXMgc2xlZXBhYmxlICovXG4mIzQzO1x0XHRcdFx0aml0X3JlcXVpcmVkOjE7XHQvKiBwcm9ncmFtIHN0cmljdGx5IHJlcXVpcmVzIEpJVCBjb21waWxlciAqL1xuIFx0ZW51bSBicGZfcHJvZ190eXBlXHR0eXBlO1x0XHQvKiBUeXBlIG9mIEJQRiBwcm9ncmFtICovXG4gXHRlbnVtIGJwZl9hdHRhY2hfdHlwZVx0ZXhwZWN0ZWRfYXR0YWNoX3R5cGU7IC8qIEZvciBzb21lIHByb2cgdHlwZXMgKi9cbiBcdHUzMlx0XHRcdGxlbjtcdFx0LyogTnVtYmVyIG9mIGZpbHRlciBibG9ja3MgKi9cbmRpZmYgLS1naXQgYS9rZXJuZWwvYnBmL2NvcmUuYyBiL2tlcm5lbC9icGYvY29yZS5jXG5pbmRleCA2NDljY2U0MWUxM2YzYi4uNWZjZDE5Y2NiNDFhOWUgMTAwNjQ0XG4tLS0gYS9rZXJuZWwvYnBmL2NvcmUuY1xuJiM0MzsmIzQzOyYjNDM7IGIva2VybmVsL2JwZi9jb3JlLmNcbkBAIC0yNjE5LDggJiM0MzsyNjE5LDcgQEAgc3RydWN0IGJwZl9wcm9nICpfX2JwZl9wcm9nX3NlbGVjdF9ydW50aW1lKHN0cnVjdCBicGZfdmVyaWZpZXJfZW52ICplbnYsIHN0cnVjdFxuIFx0aWYgKGZwLVx1MDAzZWJwZl9mdW5jKVxuIFx0XHRnb3RvIGZpbmFsaXplO1xuIFxuLVx0aWYgKElTX0VOQUJMRUQoQ09ORklHX0JQRl9KSVRfQUxXQVlTX09OKSB8fFxuLVx0ICAgIGJwZl9wcm9nX2hhc19rZnVuY19jYWxsKGZwKSlcbiYjNDM7XHRpZiAoSVNfRU5BQkxFRChDT05GSUdfQlBGX0pJVF9BTFdBWVNfT04pIHx8IGZwLVx1MDAzZWppdF9yZXF1aXJlZClcbiBcdFx0aml0X25lZWRlZCA9IHRydWU7XG4gXG4gXHRpZiAoIWJwZl9wcm9nX3NlbGVjdF9pbnRlcnByZXRlcihmcCkpXG5kaWZmIC0tZ2l0IGEva2VybmVsL2JwZi9maXh1cHMuYyBiL2tlcm5lbC9icGYvZml4dXBzLmNcbmluZGV4IDEyYThhNGViNzU3ZjE4Li45NGUwNDU3YTBhYTMzYSAxMDA2NDRcbi0tLSBhL2tlcm5lbC9icGYvZml4dXBzLmNcbiYjNDM7JiM0MzsmIzQzOyBiL2tlcm5lbC9icGYvZml4dXBzLmNcbkBAIC0xODQxLDggJiM0MzsxODQxLDEwIEBAIGludCBicGZfZG9fbWlzY19maXh1cHMoc3RydWN0IGJwZl92ZXJpZmllcl9lbnYgKmVudilcbiBcdFx0fVxuIFxuIFx0XHQvKiBTa2lwIGlubGluaW5nIHRoZSBoZWxwZXIgY2FsbCBpZiB0aGUgSklUIGRvZXMgaXQuICovXG4tXHRcdGlmIChicGZfaml0X2lubGluZXNfaGVscGVyX2NhbGwoaW5zbi1cdTAwM2VpbW0pKVxuJiM0MztcdFx0aWYgKGJwZl9qaXRfaW5saW5lc19oZWxwZXJfY2FsbChpbnNuLVx1MDAzZWltbSkpIHtcbiYjNDM7XHRcdFx0cHJvZy1cdTAwM2VqaXRfcmVxdWlyZWQgPSAxO1xuIFx0XHRcdGdvdG8gbmV4dF9pbnNuO1xuJiM0MztcdFx0fVxuIFxuIFx0XHRpZiAoaW5zbi1cdTAwM2VpbW0gPT0gQlBGX0ZVTkNfZ2V0X3JvdXRlX3JlYWxtKVxuIFx0XHRcdHByb2ctXHUwMDNlZHN0X25lZWRlZCA9IDE7XG5kaWZmIC0tZ2l0IGEva2VybmVsL2JwZi92ZXJpZmllci5jIGIva2VybmVsL2JwZi92ZXJpZmllci5jXG5pbmRleCAyNWFlYTQyNzFjZDA4OS4uZjQ5NmI0NWI5ZGE0ZDEgMTAwNjQ0XG4tLS0gYS9rZXJuZWwvYnBmL3ZlcmlmaWVyLmNcbiYjNDM7JiM0MzsmIzQzOyBiL2tlcm5lbC9icGYvdmVyaWZpZXIuY1xuQEAgLTI3NjUsNiAmIzQzOzI3NjUsOCBAQCBpbnQgYnBmX2FkZF9rZnVuY19jYWxsKHN0cnVjdCBicGZfdmVyaWZpZXJfZW52ICplbnYsIHUzMiBmdW5jX2lkLCB1MTYgb2Zmc2V0KVxuIFx0ZGVzYy1cdTAwM2VmdW5jX21vZGVsID0gZnVuY19tb2RlbDtcbiBcdHNvcnQodGFiLVx1MDAzZWRlc2NzLCB0YWItXHUwMDNlbnJfZGVzY3MsIHNpemVvZih0YWItXHUwMDNlZGVzY3NbMF0pLFxuIFx0ICAgICBrZnVuY19kZXNjX2NtcF9ieV9pZF9vZmYsIE5VTEwpO1xuJiM0MztcbiYjNDM7XHRlbnYtXHUwMDNlcHJvZy1cdTAwM2VqaXRfcmVxdWlyZWQgPSAxO1xuIFx0cmV0dXJuIDA7XG4gfVxuIFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzAyIDE3OjIyPC90ZD4KCQkJPHRkPmFnZW50PC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0JQRl9TWVNDQUxMJiMzNDssCiAgICAmIzM0O0JQRl9KSVQmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDticGZfZG9fbWlzY19maXh1cHMmIzM0OywKICAgICYjMzQ7YnBmX2FkZF9rZnVuY19jYWxsJiMzNDssCiAgICAmIzM0O19fYnBmX3Byb2dfc2VsZWN0X3J1bnRpbWUmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIEJQRiB2ZXJpZmllciBhbmQgY29yZSBsb2dpYyB0byB0cmFjayB3aGV0aGVyIGEgQlBGIHByb2dyYW0gc3RyaWN0bHkgcmVxdWlyZXMgdGhlIEpJVCBjb21waWxlciAoZS5nLiwgZHVlIHRvIGtmdW5jIGNhbGxzIG9yIEpJVC1pbmxpbmVkIGhlbHBlcnMpLiBUaGlzIGFmZmVjdHMgaG93IHRoZSBydW50aW1lIGlzIHNlbGVjdGVkIGZvciBCUEYgcHJvZ3JhbXMgYW5kIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIGNvcmUgQlBGIHN1YnN5c3RlbS4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkluc3RydWN0aW9uOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+WW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuCllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lCmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC4KCklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpbgp5b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHkKdXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy4KClJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6Ci0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy4KLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy4KLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuCi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLApldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuCgpJZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoCnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLgoKV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086CjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuCiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLgoyLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS4KICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLgogICBEbyBub3QgbGlzdCB0b28gZ2VuZXJpYyBjb25maWdzICh3ZSBhbHJlYWR5IGhhdmUgdGhlbSBlbmFibGVkKS4gT25seSBsaXN0IHRob3NlIHRoYXQKICAgc3BlY2lmaWNhbGx5IGNvdmVyIHRoZSBtb2RpZmllZCBjb2RlLiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3Mgb3V0cHV0IGFycmF5LAogICBhbmQgRE8gTk9UIGFkZCBhICYjMzk7Q09ORklHXyYjMzk7IHByZWZpeCAoZS5nLiwgcmV0dXJuICYjMzQ7TkVUX0lQVjQmIzM0OyBpbnN0ZWFkIG9mICYjMzQ7Q09ORklHX05FVF9JUFY0JiMzNDspLgpQcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy4KCgpVc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLgpJdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS4KSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlByb21wdDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOgpjb21taXQgZDNmOTNhZTA5NGE2NDE3MmMyNDU3M2Y1NTBlNDFlNTc3ZjdlYzU4NwpBdXRob3I6IHN5ei1jbHVzdGVyICZsdDt0cmlhZ2VAc3l6a2FsbGVyLmNvbSZndDsKRGF0ZTogICBUaHUgSnVsIDIgMTc6MjI6MDQgMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L2JwZi5oIGIvaW5jbHVkZS9saW51eC9icGYuaAppbmRleCBiYTA5Nzk1ZTBiZmRiNy4uNGUyYjA1OWQ3MWYzZWEgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvYnBmLmgKJiM0MzsmIzQzOyYjNDM7IGIvaW5jbHVkZS9saW51eC9icGYuaApAQCAtMTg4MCw3ICYjNDM7MTg4MCw4IEBAIHN0cnVjdCBicGZfcHJvZyB7CiAJCQkJY2FsbF9nZXRfZnVuY19pcDoxLCAvKiBEbyB3ZSBjYWxsIGdldF9mdW5jX2lwKCkgKi8KIAkJCQljYWxsX3Nlc3Npb25fY29va2llOjEsIC8qIERvIHdlIGNhbGwgYnBmX3Nlc3Npb25fY29va2llKCkgKi8KIAkJCQl0c3RhbXBfdHlwZV9hY2Nlc3M6MSwgLyogQWNjZXNzZWQgX19za19idWZmLSZndDt0c3RhbXBfdHlwZSAqLwotCQkJCXNsZWVwYWJsZToxOwkvKiBCUEYgcHJvZ3JhbSBpcyBzbGVlcGFibGUgKi8KJiM0MzsJCQkJc2xlZXBhYmxlOjEsCS8qIEJQRiBwcm9ncmFtIGlzIHNsZWVwYWJsZSAqLwomIzQzOwkJCQlqaXRfcmVxdWlyZWQ6MTsJLyogcHJvZ3JhbSBzdHJpY3RseSByZXF1aXJlcyBKSVQgY29tcGlsZXIgKi8KIAllbnVtIGJwZl9wcm9nX3R5cGUJdHlwZTsJCS8qIFR5cGUgb2YgQlBGIHByb2dyYW0gKi8KIAllbnVtIGJwZl9hdHRhY2hfdHlwZQlleHBlY3RlZF9hdHRhY2hfdHlwZTsgLyogRm9yIHNvbWUgcHJvZyB0eXBlcyAqLwogCXUzMgkJCWxlbjsJCS8qIE51bWJlciBvZiBmaWx0ZXIgYmxvY2tzICovCmRpZmYgLS1naXQgYS9rZXJuZWwvYnBmL2NvcmUuYyBiL2tlcm5lbC9icGYvY29yZS5jCmluZGV4IDY0OWNjZTQxZTEzZjNiLi41ZmNkMTljY2I0MWE5ZSAxMDA2NDQKLS0tIGEva2VybmVsL2JwZi9jb3JlLmMKJiM0MzsmIzQzOyYjNDM7IGIva2VybmVsL2JwZi9jb3JlLmMKQEAgLTI2MTksOCAmIzQzOzI2MTksNyBAQCBzdHJ1Y3QgYnBmX3Byb2cgKl9fYnBmX3Byb2dfc2VsZWN0X3J1bnRpbWUoc3RydWN0IGJwZl92ZXJpZmllcl9lbnYgKmVudiwgc3RydWN0CiAJaWYgKGZwLSZndDticGZfZnVuYykKIAkJZ290byBmaW5hbGl6ZTsKIAotCWlmIChJU19FTkFCTEVEKENPTkZJR19CUEZfSklUX0FMV0FZU19PTikgfHwKLQkgICAgYnBmX3Byb2dfaGFzX2tmdW5jX2NhbGwoZnApKQomIzQzOwlpZiAoSVNfRU5BQkxFRChDT05GSUdfQlBGX0pJVF9BTFdBWVNfT04pIHx8IGZwLSZndDtqaXRfcmVxdWlyZWQpCiAJCWppdF9uZWVkZWQgPSB0cnVlOwogCiAJaWYgKCFicGZfcHJvZ19zZWxlY3RfaW50ZXJwcmV0ZXIoZnApKQpkaWZmIC0tZ2l0IGEva2VybmVsL2JwZi9maXh1cHMuYyBiL2tlcm5lbC9icGYvZml4dXBzLmMKaW5kZXggMTJhOGE0ZWI3NTdmMTguLjk0ZTA0NTdhMGFhMzNhIDEwMDY0NAotLS0gYS9rZXJuZWwvYnBmL2ZpeHVwcy5jCiYjNDM7JiM0MzsmIzQzOyBiL2tlcm5lbC9icGYvZml4dXBzLmMKQEAgLTE4NDEsOCAmIzQzOzE4NDEsMTAgQEAgaW50IGJwZl9kb19taXNjX2ZpeHVwcyhzdHJ1Y3QgYnBmX3ZlcmlmaWVyX2VudiAqZW52KQogCQl9CiAKIAkJLyogU2tpcCBpbmxpbmluZyB0aGUgaGVscGVyIGNhbGwgaWYgdGhlIEpJVCBkb2VzIGl0LiAqLwotCQlpZiAoYnBmX2ppdF9pbmxpbmVzX2hlbHBlcl9jYWxsKGluc24tJmd0O2ltbSkpCiYjNDM7CQlpZiAoYnBmX2ppdF9pbmxpbmVzX2hlbHBlcl9jYWxsKGluc24tJmd0O2ltbSkpIHsKJiM0MzsJCQlwcm9nLSZndDtqaXRfcmVxdWlyZWQgPSAxOwogCQkJZ290byBuZXh0X2luc247CiYjNDM7CQl9CiAKIAkJaWYgKGluc24tJmd0O2ltbSA9PSBCUEZfRlVOQ19nZXRfcm91dGVfcmVhbG0pCiAJCQlwcm9nLSZndDtkc3RfbmVlZGVkID0gMTsKZGlmZiAtLWdpdCBhL2tlcm5lbC9icGYvdmVyaWZpZXIuYyBiL2tlcm5lbC9icGYvdmVyaWZpZXIuYwppbmRleCAyNWFlYTQyNzFjZDA4OS4uZjQ5NmI0NWI5ZGE0ZDEgMTAwNjQ0Ci0tLSBhL2tlcm5lbC9icGYvdmVyaWZpZXIuYwomIzQzOyYjNDM7JiM0MzsgYi9rZXJuZWwvYnBmL3ZlcmlmaWVyLmMKQEAgLTI3NjUsNiAmIzQzOzI3NjUsOCBAQCBpbnQgYnBmX2FkZF9rZnVuY19jYWxsKHN0cnVjdCBicGZfdmVyaWZpZXJfZW52ICplbnYsIHUzMiBmdW5jX2lkLCB1MTYgb2Zmc2V0KQogCWRlc2MtJmd0O2Z1bmNfbW9kZWwgPSBmdW5jX21vZGVsOwogCXNvcnQodGFiLSZndDtkZXNjcywgdGFiLSZndDtucl9kZXNjcywgc2l6ZW9mKHRhYi0mZ3Q7ZGVzY3NbMF0pLAogCSAgICAga2Z1bmNfZGVzY19jbXBfYnlfaWRfb2ZmLCBOVUxMKTsKJiM0MzsKJiM0MzsJZW52LSZndDtwcm9nLSZndDtqaXRfcmVxdWlyZWQgPSAxOwogCXJldHVybiAwOwogfQogCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzAyIDE3OjIyPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDI2MzAKCQkJCQkJCW91dHB1dDogMjEKCQkJCQkJCXRob3VnaHRzOiA0MDEKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIGEgQlBGIFZlcmlmaWVyIFBhdGNoKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIHBhdGNoIHRoYXQmIzM5O3MgdHdlYWtpbmcgdGhlIEJQRiB2ZXJpZmllciBhbmQgY29yZSBsb2dpYywgc3BlY2lmaWNhbGx5IGhvdyB3ZSBkZWNpZGUgd2hldGhlciB0byBKSVQtY29tcGlsZSBhIEJQRiBwcm9ncmFtLiBUaGV5JiMzOTt2ZSBpbnRyb2R1Y2VkIGEgYGppdF9yZXF1aXJlZGAgYml0IHRvIHRoZSBgc3RydWN0IGJwZl9wcm9nYCBzdHJ1Y3R1cmUsIHdoaWNoIG1ha2VzIHNlbnNlOyBhIGZsYWcgdG8gc2lnbmFsIHRoZSBuZWVkIGZvciBKSVQgaXMgY2xlYW5lciB0aGFuIHRoZSBpbXBsaWNpdCBjaGVja3Mgd2UmIzM5O3ZlIGhhZC4KCkl0IGxvb2tzIGxpa2UgdGhlIGBqaXRfcmVxdWlyZWRgIGJpdCBnZXRzIHNldCBpbiBhIGNvdXBsZSBvZiBwbGFjZXMuIEZpcnN0LCBpbiBgYnBmX2RvX21pc2NfZml4dXBzYCB3aGVuIHdlJiMzOTtyZSBpbmxpbmluZyBoZWxwZXIgY2FsbHMgdXNpbmcgdGhlIEpJVCAoYXMgaW5kaWNhdGVkIGJ5IGBicGZfaml0X2lubGluZXNfaGVscGVyX2NhbGxgKS4gVGhpcyBpcyBnb29kOyB3ZSBkZWZpbml0ZWx5IHdhbnQgdG8gSklUIHByb2dyYW1zIHRoYXQgcmVseSBvbiBpbmxpbmVkIGhlbHBlcnMuIFRoZW4sIGl0JiMzOTtzIGFsc28gc2V0IGluIGBicGZfYWRkX2tmdW5jX2NhbGxgLCB3aGljaCBtYWtlcyBwZXJmZWN0IHNlbnNlIGFzIEtGdW5jcyBhbHdheXMgcmVxdWlyZSBKSVQuCgpUaGUgcmVhbCBtZWF0IG9mIHRoZSBjaGFuZ2UgaXMgaW4gYF9fYnBmX3Byb2dfc2VsZWN0X3J1bnRpbWVgLCB3aGVyZSB0aGUgbG9naWMgbm93IHVzZXMgYGZwLSZndDtqaXRfcmVxdWlyZWRgIHRvIGRldGVybWluZSBpZiB3ZSBuZWVkIHRoZSBKSVQuIFdlJiMzOTtyZSBlZmZlY3RpdmVseSByZXBsYWNpbmcgdGhlIGBicGZfcHJvZ19oYXNfa2Z1bmNfY2FsbChmcClgIGNoZWNrLiBUaGlzIG1lYW5zIHdlJiMzOTtyZSBub3cgY29uc2lkZXJpbmcgaW5saW5lZCBoZWxwZXJzICphbmQqIEtGdW5jcyB3aGVuIGRlY2lkaW5nIHRvIHVzZSB0aGUgSklULiBUaGF0JiMzOTtzIGEgZ29vZCBmdW5jdGlvbmFsIGNoYW5nZSwgc2ltcGxpZnlpbmcgdGhlIGxvZ2ljLiBJZiBgaml0X3JlcXVpcmVkYCBpcyBzZXQsIHRoZSBpbnRlcnByZXRlciBpcyBvdXQgb2YgdGhlIHBpY3R1cmUuCgpUbyBnZXQgYSBiZXR0ZXIgdW5kZXJzdGFuZGluZywgSSBuZWVkIHRvIGZvY3VzIG9uIHRoaXMgY29uZGl0aW9uIGFuZCB3aGF0IHRoZSBwYXRjaCBpcyBkb2luZy4gSSBuZWVkIHRvIG1ha2Ugc3VyZSBJIGFtIGF3YXJlIG9mIHRoZXNlIGNvbmRpdGlvbnMuCgpBbHJpZ2h0LCBsZXQmIzM5O3MgZmluZCB0aGUgcmVsZXZhbnQgY29uZmlncyBhbmQgZnVuY3Rpb25zLiBgQ09ORklHX0JQRl9TWVNDQUxMYCBpcyB0aGUgb2J2aW91cyBvbmUsIG1ha2luZyBzdXJlIHdlIGhhdmUgQlBGIHN1cHBvcnQgaW4gdGhlIGZpcnN0IHBsYWNlLiBBcyBmb3IgZnVuY3Rpb25zLCBJIG5lZWQgdG8gY2hlY2sgYF9fYnBmX3Byb2dfc2VsZWN0X3J1bnRpbWVgLCBgYnBmX2RvX21pc2NfZml4dXBzYCwgYW5kIGBicGZfYWRkX2tmdW5jX2NhbGxgLgoKTm93LCB3aGVyZSBhcmUgdGhvc2UgZnVuY3Rpb25zIGRlZmluZWQ/IEkgbmVlZCB0byBjaGVjayBga2VybmVsL2JwZi9jb3JlLmNgIGFuZCBga2VybmVsL2JwZi9maXh1cHMuY2AuIFdhaXQuLi4gd2FzbiYjMzk7dCBgYnBmX2RvX21pc2NfZml4dXBzYCBpbiBga2VybmVsL2JwZi9maXh1cHMuY2A/IFRoYXQgc2VlbXMgcmlnaHQuIE9oLCByaWdodCwgdGhpcyBwYXRjaCBjb3VsZCBiZSByZWZlcmVuY2luZyBhIG5ld2VyIGtlcm5lbCB3aGVyZSBgZml4dXBzLmNgIHdhcyBzcGxpdCBvZmYgZnJvbSBgdmVyaWZpZXIuY2AuIEkgbmVlZCB0byByZW1lbWJlciB0aGF0ISBMZXQmIzM5O3MgY2hlY2sgdGhlIHBhdGNoIGFnYWluc3QgdGhlIHJlbGV2YW50IGtlcm5lbCB2ZXJzaW9ucyB0byBtYWtlIHN1cmUgSSYjMzk7bSBsb29raW5nIGF0IHRoZSByaWdodCBzb3VyY2UuIFRoZW4sIGxldCYjMzk7cyB2ZXJpZnkgYWxsIHRoZSByZWxldmFudCBjb25maWdzIHRvIG1ha2Ugc3VyZSBldmVyeXRoaW5nJiMzOTtzIGFzIGV4cGVjdGVkLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzAyIDE3OjIyPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2NvbmZpZyBCUEZfU1lTQ0FMTCYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtrZXJuZWwvYnBmL0tjb25maWc9MjU9bWVudSBcJiMzNDtCUEYgc3Vic3lzdGVtXCYjMzQ7XG5rZXJuZWwvYnBmL0tjb25maWctMjYtXG5rZXJuZWwvYnBmL0tjb25maWc6Mjc6Y29uZmlnIEJQRl9TWVNDQUxMXG5rZXJuZWwvYnBmL0tjb25maWctMjgtXHRib29sIFwmIzM0O0VuYWJsZSBicGYoKSBzeXN0ZW0gY2FsbFwmIzM0O1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzAyIDE3OjIyPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDM3MTgKCQkJCQkJCW91dHB1dDogMjAKCQkJCQkJCXRob3VnaHRzOiA3MAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgbGV0JiMzOTtzIGJyZWFrIHRoaXMgZG93bi4KCioqQW5hbHl6aW5nIEJQRiBTeXNjYWxsIENvbmZpZ3VyYXRpb24gZm9yIFRhcmdldGVkIEZ1bmN0aW9uIEZvY3VzKioKClJpZ2h0LCBzbyB3ZSYjMzk7cmUgZGVhbGluZyB3aXRoIGEgYEJQRl9TWVNDQUxMYCBjb25maWd1cmF0aW9uIGhlcmUuIE15IGltbWVkaWF0ZSB0aG91Z2h0IGlzLCAmIzM0O09rYXksIGdpdmVuIHRoaXMgY29udGV4dCwgd2hpY2ggc3BlY2lmaWMgZnVuY3Rpb25zIHdpdGhpbiB0aGUgQlBGIHN5c3RlbSBhcmUgbW9zdCByZWxldmFudCBmb3IgaW52ZXN0aWdhdGlvbj8mIzM0OyBUaGF0IGZyYW1pbmcgbmFycm93cyB0aGUgc2NvcGUgc2lnbmlmaWNhbnRseSwgc28gdGhhdCYjMzk7cyB3aGVyZSBJIG5lZWQgdG8gc3RhcnQuCgpJIG5lZWQgdG8gZm9jdXMgbXkgYXR0ZW50aW9uIG9uIHRoZXNlIGZ1bmN0aW9uczogYF9fYnBmX3Byb2dfc2VsZWN0X3J1bnRpbWVgLCBgYnBmX2RvX21pc2NfZml4dXBzYCwgYW5kIGBicGZfYWRkX2tmdW5jX2NhbGxgLiBNeSBoeXBvdGhlc2lzIGlzIHRoYXQgdGhlc2UgZnVuY3Rpb25zIGhhdmUgaW50ZXJlc3RpbmcgYmVoYXZpb3Igd2l0aGluIHRoZSBjb250ZXh0IG9mIGBCUEZfU1lTQ0FMTGAsIGFuZCB1bmRlcnN0YW5kaW5nIHRoZWlyIGludGVyYWN0aW9uIGlzIGxpa2VseSBrZXkgdG8gYSBjb21wbGV0ZSB1bmRlcnN0YW5kaW5nLgoKQnV0IGhvbGQgb24sIGJlZm9yZSBJIGRpdmUgdG9vIGRlZXAgaW50byB0aG9zZSB0aHJlZSwgSSBzaG91bGQgcGF1c2UgYW5kIG1ha2Ugc3VyZSBJIGhhdmVuJiMzOTt0IG1pc3NlZCBhbnl0aGluZyBvYnZpb3VzLiBJIHNob3VsZCBxdWlja2x5IHZlcmlmeSBpZiB0aGVyZSBhcmUgYW55ICpvdGhlciogcmVsZXZhbnQgY29uZmlndXJhdGlvbnMgdGhhdCBhcmUgYXQgcGxheS4gSnVzdCB0byBiZSB0aG9yb3VnaCBhbmQgZW5zdXJlIHRoYXQgSSYjMzk7bSBub3Qgb3Zlcmxvb2tpbmcgYW55IGRlcGVuZGVuY2llcyBvciBzZWNvbmRhcnkgaW5mbHVlbmNlcy4gVGhpcyBpcyBhIGNydWNpYWwgc3RlcCB0byBhdm9pZCBtaXNzaW5nIGFueXRoaW5nIGVsc2UuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDIgMTc6MjI8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIEJQRl9KSVQmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7a2VybmVsL2JwZi9LY29uZmlnPTI3PWNvbmZpZyBCUEZfU1lTQ0FMTFxuLS1cbmtlcm5lbC9icGYvS2NvbmZpZy00MS1cbmtlcm5lbC9icGYvS2NvbmZpZzo0Mjpjb25maWcgQlBGX0pJVFxua2VybmVsL2JwZi9LY29uZmlnLTQzLVx0Ym9vbCBcJiMzNDtFbmFibGUgQlBGIEp1c3QgSW4gVGltZSBjb21waWxlclwmIzM0O1xuLS1cbmtlcm5lbC9icGYvS2NvbmZpZy01Ny1cbmtlcm5lbC9icGYvS2NvbmZpZzo1ODpjb25maWcgQlBGX0pJVF9BTFdBWVNfT05cbmtlcm5lbC9icGYvS2NvbmZpZy01OS1cdGJvb2wgXCYjMzQ7UGVybWFuZW50bHkgZW5hYmxlIEJQRiBKSVQgYW5kIHJlbW92ZSBCUEYgaW50ZXJwcmV0ZXJcJiMzNDtcbi0tXG5rZXJuZWwvYnBmL0tjb25maWctNjgtXG5rZXJuZWwvYnBmL0tjb25maWc6Njk6Y29uZmlnIEJQRl9KSVRfREVGQVVMVF9PTlxua2VybmVsL2JwZi9LY29uZmlnLTcwLVx0ZGVmX2Jvb2wgQVJDSF9XQU5UX0RFRkFVTFRfQlBGX0pJVCB8fCBCUEZfSklUX0FMV0FZU19PTlxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzAyIDE3OjIyPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDQyNzIKCQkJCQkJCW91dHB1dDogMjUKCQkJCQkJCXRob3VnaHRzOiAyNTEKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBCUEYgSklUIFNlbGVjdGlvbiBMb2dpYyoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCBhbmQgdGhlIGBfX2JwZl9wcm9nX3NlbGVjdF9ydW50aW1lYCBmdW5jdGlvbi4gVGhlIGtleSBwb2ludCBoZXJlIGlzIGhvdyBgQ09ORklHX0JQRl9KSVRfQUxXQVlTX09OYCBpbnRlcmFjdHMgd2l0aCB0aGUgSklUIGNvbXBpbGF0aW9uIHByb2Nlc3MuIFRoZSBjb2RlJiMzOTtzIGNoZWNraW5nIHRoaXMgY29uZmlndXJhdGlvbiBvcHRpb24uIElmIGl0ICppcyogZW5hYmxlZCwgdGhlbiB0aGUgSklUIGlzIGFsd2F5cyByZXF1aXJlZCwgdGhhdCYjMzk7cyBzdHJhaWdodGZvcndhcmQuCgpUaGUgaW50ZXJlc3RpbmcgcGFydCwgYW5kIHdoZXJlIHRoZSBwb3RlbnRpYWwgaXNzdWUgbGllcywgaXMgd2hlbiBgQ09ORklHX0JQRl9KSVRfQUxXQVlTX09OYCBpcyAqbm90KiBlbmFibGVkLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgbG9naWMgZmxvdyBpbiB0aGF0IHNjZW5hcmlvLCB0byB1bmRlcnN0YW5kIHRoaXMgJiMzOTtidWcmIzM5OyBvciAmIzM5O2ZlYXR1cmUmIzM5Oy4gVGhpcyBwYXRjaCBzZWVtcyB0byBiZSBhZGRyZXNzaW5nIGEgc3BlY2lmaWMgSklUIHJlcXVpcmVtZW50IHdpdGhvdXQgdGhhdCBnbG9iYWwgYWx3YXlzLW9uIGZsYWcgc2V0LgoKU28sIHRvIHByb3Blcmx5IHRlc3QgdGhlIHNjZW5hcmlvIHRoaXMgcGF0Y2ggYWRkcmVzc2VzLCBJIHNob3VsZG4mIzM5O3QgZW5hYmxlIGBCUEZfSklUX0FMV0FZU19PTmAuIEkgY291bGQganVzdCBlbmFibGUgYEJQRl9TWVNDQUxMYCBhbmQgYEJQRl9KSVRgLCBhcyB0aG9zZSBhcmUgdHlwaWNhbGx5IGVuYWJsZWQgYW55d2F5LgoKV2FpdCBhIHNlY29uZC4uLiBJZiBgQlBGX0pJVF9BTFdBWVNfT05gICppcyogZW5hYmxlZCwgdGhlIGBqaXRfbmVlZGVkYCB2YXJpYWJsZSBpcyBhbHdheXMgZ29pbmcgdG8gYmUgdHJ1ZS4gQ29uc2VxdWVudGx5LCB0aGUgYGZwLSZndDtqaXRfcmVxdWlyZWRgIGNoZWNrIGlzIGJ5cGFzc2VkIChvciwgbW9yZSBwcmVjaXNlbHksIHRoZSBleHByZXNzaW9uIGlzIGFsd2F5cyB0cnVlKS4gU28sIHRvIGFjdHVhbGx5IHZlcmlmeSB0aGUgYmVoYXZpb3Igb2YgYGZwLSZndDtqaXRfcmVxdWlyZWRgLCBJICpoYXZlKiB0byBkaXNhYmxlIGBDT05GSUdfQlBGX0pJVF9BTFdBWVNfT05gLiBUaGF0JiMzOTtzIGl0LCB0aGF0JiMzOTtzIHRoZSBrZXkuCgpUaGVyZWZvcmUsIGZvciB0aGlzIHRlc3QsIEkmIzM5O2xsIHN0aWNrIHdpdGgganVzdCBlbmFibGluZyBgQlBGX1NZU0NBTExgIGFuZCBgQlBGX0pJVGAsIGFzIHRoaXMgd2lsbCBnaXZlIG1lIHRoZSBpbnRlbmRlZCBzY2VuYXJpbyB0byB0ZXN0LgoKTmV4dCwgSSBzaG91bGQgcHJvYmFibHkgY2hlY2sgYGJwZl9qaXRfaW5saW5lc19oZWxwZXJfY2FsbGAgdG8gc2VlIGlmIHRoYXQmIzM5O3MgcmVsZXZhbnQgdG8gdGhlIHNpdHVhdGlvbi4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD44LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wMiAxNzoyMjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDticGZfaml0X2lubGluZXNfaGVscGVyX2NhbGwmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7YXJjaC9hcm02NC9uZXQvYnBmX2ppdF9jb21wLmM9MzIwMT1ib29sIGJwZl9qaXRfc3VwcG9ydHNfdGltZWRfbWF5X2dvdG8odm9pZClcbi0tXG5hcmNoL2FybTY0L25ldC9icGZfaml0X2NvbXAuYy0zMjA1LVxuYXJjaC9hcm02NC9uZXQvYnBmX2ppdF9jb21wLmM6MzIwNjpib29sIGJwZl9qaXRfaW5saW5lc19oZWxwZXJfY2FsbChzMzIgaW1tKVxuYXJjaC9hcm02NC9uZXQvYnBmX2ppdF9jb21wLmMtMzIwNy17XG4tLVxuYXJjaC9wb3dlcnBjL25ldC9icGZfaml0X2NvbXAuYz01NzI9Ym9vbCBicGZfaml0X3N1cHBvcnRzX3BlcmNwdV9pbnNuKHZvaWQpXG4tLVxuYXJjaC9wb3dlcnBjL25ldC9icGZfaml0X2NvbXAuYy01NzYtXG5hcmNoL3Bvd2VycGMvbmV0L2JwZl9qaXRfY29tcC5jOjU3Nzpib29sIGJwZl9qaXRfaW5saW5lc19oZWxwZXJfY2FsbChzMzIgaW1tKVxuYXJjaC9wb3dlcnBjL25ldC9icGZfaml0X2NvbXAuYy01Nzgte1xuLS1cbmFyY2gvcmlzY3YvbmV0L2JwZl9qaXRfY29tcDY0LmM9MjEzOT1ib29sIGJwZl9qaXRfc3VwcG9ydHNfcGVyY3B1X2luc24odm9pZClcbi0tXG5hcmNoL3Jpc2N2L25ldC9icGZfaml0X2NvbXA2NC5jLTIxNDMtXG5hcmNoL3Jpc2N2L25ldC9icGZfaml0X2NvbXA2NC5jOjIxNDQ6Ym9vbCBicGZfaml0X2lubGluZXNfaGVscGVyX2NhbGwoczMyIGltbSlcbmFyY2gvcmlzY3YvbmV0L2JwZl9qaXRfY29tcDY0LmMtMjE0NS17XG4tLVxuYXJjaC9zMzkwL25ldC9icGZfaml0X2NvbXAuYz0zMDgxPWJvb2wgYnBmX2ppdF9zdXBwb3J0c190aW1lZF9tYXlfZ290byh2b2lkKVxuLS1cbmFyY2gvczM5MC9uZXQvYnBmX2ppdF9jb21wLmMtMzA4NS1cbmFyY2gvczM5MC9uZXQvYnBmX2ppdF9jb21wLmM6MzA4Njpib29sIGJwZl9qaXRfaW5saW5lc19oZWxwZXJfY2FsbChzMzIgaW1tKVxuYXJjaC9zMzkwL25ldC9icGZfaml0X2NvbXAuYy0zMDg3LXtcbi0tXG5pbmNsdWRlL2xpbnV4L2ZpbHRlci5oPTExNzk9Ym9vbCBicGZfaml0X25lZWRzX3pleHQodm9pZCk7XG5pbmNsdWRlL2xpbnV4L2ZpbHRlci5oOjExODA6Ym9vbCBicGZfaml0X2lubGluZXNfaGVscGVyX2NhbGwoczMyIGltbSk7XG5pbmNsdWRlL2xpbnV4L2ZpbHRlci5oLTExODEtYm9vbCBicGZfaml0X3N1cHBvcnRzX3N1YnByb2dfdGFpbGNhbGxzKHZvaWQpO1xuLS1cbmtlcm5lbC9icGYvY29yZS5jPTMyMDg9Ym9vbCBfX3dlYWsgYnBmX2ppdF9ieXBhc3Nfc3BlY192NCh2b2lkKVxuLS1cbmtlcm5lbC9icGYvY29yZS5jLTMyMTgtICovXG5rZXJuZWwvYnBmL2NvcmUuYzozMjE5OmJvb2wgX193ZWFrIGJwZl9qaXRfaW5saW5lc19oZWxwZXJfY2FsbChzMzIgaW1tKVxua2VybmVsL2JwZi9jb3JlLmMtMzIyMC17XG4tLVxua2VybmVsL2JwZi9maXh1cHMuYz0xNDgxPWludCBicGZfZG9fbWlzY19maXh1cHMoc3RydWN0IGJwZl92ZXJpZmllcl9lbnYgKmVudilcbi0tXG5rZXJuZWwvYnBmL2ZpeHVwcy5jLTE4NDMtXHRcdC8qIFNraXAgaW5saW5pbmcgdGhlIGhlbHBlciBjYWxsIGlmIHRoZSBKSVQgZG9lcyBpdC4gKi9cbmtlcm5lbC9icGYvZml4dXBzLmM6MTg0NDpcdFx0aWYgKGJwZl9qaXRfaW5saW5lc19oZWxwZXJfY2FsbChpbnNuLVx1MDAzZWltbSkpIHtcbmtlcm5lbC9icGYvZml4dXBzLmMtMTg0NS1cdFx0XHRwcm9nLVx1MDAzZWppdF9yZXF1aXJlZCA9IDE7XG4tLVxua2VybmVsL2JwZi92ZXJpZmllci5jPTE2Njg1PWJvb2wgYnBmX2dldF9jYWxsX3N1bW1hcnkoc3RydWN0IGJwZl92ZXJpZmllcl9lbnYgKmVudiwgc3RydWN0IGJwZl9pbnNuICpjYWxsLFxuLS1cbmtlcm5lbC9icGYvdmVyaWZpZXIuYy0xNjY5OC1cdFx0XHQgICAgICAgKGJwZl92ZXJpZmllcl9pbmxpbmVzX2hlbHBlcl9jYWxsKGVudiwgY2FsbC1cdTAwM2VpbW0pIHx8XG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM6MTY2OTk6XHRcdFx0XHRicGZfaml0X2lubGluZXNfaGVscGVyX2NhbGwoY2FsbC1cdTAwM2VpbW0pKTtcbmtlcm5lbC9icGYvdmVyaWZpZXIuYy0xNjcwMC1cdFx0Y3MtXHUwMDNlaXNfdm9pZCA9IGZuLVx1MDAzZXJldF90eXBlID09IFJFVF9WT0lEO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjkvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzAyIDE3OjIyPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDU5NjAKCQkJCQkJCW91dHB1dDogMTQ3CgkJCQkJCQl0aG91Z2h0czogMTY3CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkZ1enppbmcgVGFyZ2V0IElkZW50aWZpY2F0aW9uKioKCk9rYXksIHNvIHRoaXMgcGF0Y2ggaXMgZmxhZ2dpbmcgYHByb2ctJmd0O2ppdF9yZXF1aXJlZCA9IDFgIHdpdGhpbiBgYnBmX2RvX21pc2NfZml4dXBzYCBhbmQgYGJwZl9hZGRfa2Z1bmNfY2FsbGAuIFRoYXQgaW1tZWRpYXRlbHkgc2NyZWFtcyBwb3RlbnRpYWwgZnV6emluZyB0YXJnZXQgdG8gbWUuIEl0JiMzOTtzIGEgY2xlYXIgc2lnbmFsIHRvIGludmVzdGlnYXRlIGhvdyBKSVQgY29tcGlsYXRpb24gZ2V0cyB0cmlnZ2VyZWQsIGVzcGVjaWFsbHkgZ2l2ZW4gdGhlIGNvbnRleHQgb2YgdGhlc2UgZnVuY3Rpb25zLgoKTXkgcHJpbWFyeSBmb2N1cyBmb3IgZnV6emluZyB3aWxsIGJlIHRoZXNlIGZ1bmN0aW9uczogYGJwZl9kb19taXNjX2ZpeHVwc2AsIGBicGZfYWRkX2tmdW5jX2NhbGxgLCBhbmQgYF9fYnBmX3Byb2dfc2VsZWN0X3J1bnRpbWVgLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCBob3cgdGhlIGludGVyYWN0aW9uIGFuZCBzdGF0ZSBvZiB0aG9zZSBmdW5jdGlvbiBsZWFkIHRvIHRoZSBjb21waWxhdGlvbiBvZiB0aGUgQlBGIHByb2dyYW0uIEkgd2lsbCBuZWVkIGBCUEZfU1lTQ0FMTGAgYW5kIGBCUEZfSklUYCBlbmFibGVkIGluIG15IHRlc3QgY29uZmlnLgoKQmVmb3JlIEkgZ28gZnVydGhlciwgSSBzaG91bGQgdmVyaWZ5IHRoZSBmdW5jdGlvbiBuYW1lcyB0aGVtc2VsdmVzLiBJdCYjMzk7cyBlYXN5IHRvIG1ha2UgYSB0eXBvLCBhbmQgYSBzaW1wbGUgY2hlY2sgbm93IGNvdWxkIHNhdmUgYSBoZWFkYWNoZSBsYXRlci4gWWVwLCBgYnBmX2RvX21pc2NfZml4dXBzYCwgYGJwZl9hZGRfa2Z1bmNfY2FsbGAsIGFuZCBgX19icGZfcHJvZ19zZWxlY3RfcnVudGltZWAgYXJlIGFsbCBjb3JyZWN0LiBFeGNlbGxlbnQuCgpOb3csIEkmIzM5O20gcmVhZHkgdG8gYmVnaW4gdGVzdGluZy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDIgMTc6MjI8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0JQRl9TWVNDQUxMJiMzNDssCiAgICAmIzM0O0JQRl9KSVQmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDticGZfZG9fbWlzY19maXh1cHMmIzM0OywKICAgICYjMzQ7YnBmX2FkZF9rZnVuY19jYWxsJiMzNDssCiAgICAmIzM0O19fYnBmX3Byb2dfc2VsZWN0X3J1bnRpbWUmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIEJQRiB2ZXJpZmllciBhbmQgY29yZSBsb2dpYyB0byB0cmFjayB3aGV0aGVyIGEgQlBGIHByb2dyYW0gc3RyaWN0bHkgcmVxdWlyZXMgdGhlIEpJVCBjb21waWxlciAoZS5nLiwgZHVlIHRvIGtmdW5jIGNhbGxzIG9yIEpJVC1pbmxpbmVkIGhlbHBlcnMpLiBUaGlzIGFmZmVjdHMgaG93IHRoZSBydW50aW1lIGlzIHNlbGVjdGVkIGZvciBCUEYgcHJvZ3JhbXMgYW5kIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIGNvcmUgQlBGIHN1YnN5c3RlbS4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7QlBGX1NZU0NBTEwmIzM0OywKICAgICYjMzQ7QlBGX0pJVCYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2JwZl9kb19taXNjX2ZpeHVwcyYjMzQ7LAogICAgJiMzNDticGZfYWRkX2tmdW5jX2NhbGwmIzM0OywKICAgICYjMzQ7X19icGZfcHJvZ19zZWxlY3RfcnVudGltZSYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgQlBGIHZlcmlmaWVyIGFuZCBjb3JlIGxvZ2ljIHRvIHRyYWNrIHdoZXRoZXIgYSBCUEYgcHJvZ3JhbSBzdHJpY3RseSByZXF1aXJlcyB0aGUgSklUIGNvbXBpbGVyIChlLmcuLCBkdWUgdG8ga2Z1bmMgY2FsbHMgb3IgSklULWlubGluZWQgaGVscGVycykuIFRoaXMgYWZmZWN0cyBob3cgdGhlIHJ1bnRpbWUgaXMgc2VsZWN0ZWQgZm9yIEJQRiBwcm9ncmFtcyBhbmQgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgY29yZSBCUEYgc3Vic3lzdGVtLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTwvdGJvZHk+Cgk8L3RhYmxlPgoKCTxkaXYgaWQ9ImxsbV9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+TExNIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgVG9rZW5zPC90aD4KCQkJCQk8dGg+QXZnIFRva2VuczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJsbG1fc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJ0b29sX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5Ub29sIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9InRvb2xfc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJkdXJhdGlvbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+Cgk8ZGl2IGlkPSJ0b2tlbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+CgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9qc2FwaSI+PC9zY3JpcHQ+Cgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CgkJZ29vZ2xlLmxvYWQoInZpc3VhbGl6YXRpb24iLCAiMSIsIHtwYWNrYWdlczpbImNvcmVjaGFydCJdfSk7CgkJZ29vZ2xlLnNldE9uTG9hZENhbGxiYWNrKGRyYXdDaGFydHMpOwoKCQlmdW5jdGlvbiBkcmF3Q2hhcnRzKCkgewoJCQljb25zdCByYXdEYXRhID0gW3siU3RhcnRlZCI6IjIwMjYtMDctMDJUMTc6MjI6MDYuNTcyMzkzMjc5WiIsIlNlcSI6MCwiTmVzdGluZyI6MCwiVHlwZSI6ImZsb3ciLCJOYW1lIjoicGF0Y2gtdHJpYWdlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MzE5NDMzODUxMzMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiQlBGX1NZU0NBTExcIixcbiAgICBcIkJQRl9KSVRcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJicGZfZG9fbWlzY19maXh1cHNcIixcbiAgICBcImJwZl9hZGRfa2Z1bmNfY2FsbFwiLFxuICAgIFwiX19icGZfcHJvZ19zZWxlY3RfcnVudGltZVwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBCUEYgdmVyaWZpZXIgYW5kIGNvcmUgbG9naWMgdG8gdHJhY2sgd2hldGhlciBhIEJQRiBwcm9ncmFtIHN0cmljdGx5IHJlcXVpcmVzIHRoZSBKSVQgY29tcGlsZXIgKGUuZy4sIGR1ZSB0byBrZnVuYyBjYWxscyBvciBKSVQtaW5saW5lZCBoZWxwZXJzKS4gVGhpcyBhZmZlY3RzIGhvdyB0aGUgcnVudGltZSBpcyBzZWxlY3RlZCBmb3IgQlBGIHByb2dyYW1zIGFuZCBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSBjb3JlIEJQRiBzdWJzeXN0ZW0uXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTAyVDE3OjIyOjA2LjU3MjM5ODY0OVoiLCJTZXEiOjEsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoicmVhZC1wYXRjaC1kaWZmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NzUwMjA2MzM5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJQYXRjaERpZmZcIjogXCJjb21taXQgZDNmOTNhZTA5NGE2NDE3MmMyNDU3M2Y1NTBlNDFlNTc3ZjdlYzU4N1xcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXFx1MDAzZVxcbkRhdGU6ICAgVGh1IEp1bCAyIDE3OjIyOjA0IDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvYnBmLmggYi9pbmNsdWRlL2xpbnV4L2JwZi5oXFxuaW5kZXggYmEwOTc5NWUwYmZkYjcuLjRlMmIwNTlkNzFmM2VhIDEwMDY0NFxcbi0tLSBhL2luY2x1ZGUvbGludXgvYnBmLmhcXG4rKysgYi9pbmNsdWRlL2xpbnV4L2JwZi5oXFxuQEAgLTE4ODAsNyArMTg4MCw4IEBAIHN0cnVjdCBicGZfcHJvZyB7XFxuIFxcdFxcdFxcdFxcdGNhbGxfZ2V0X2Z1bmNfaXA6MSwgLyogRG8gd2UgY2FsbCBnZXRfZnVuY19pcCgpICovXFxuIFxcdFxcdFxcdFxcdGNhbGxfc2Vzc2lvbl9jb29raWU6MSwgLyogRG8gd2UgY2FsbCBicGZfc2Vzc2lvbl9jb29raWUoKSAqL1xcbiBcXHRcXHRcXHRcXHR0c3RhbXBfdHlwZV9hY2Nlc3M6MSwgLyogQWNjZXNzZWQgX19za19idWZmLVxcdTAwM2V0c3RhbXBfdHlwZSAqL1xcbi1cXHRcXHRcXHRcXHRzbGVlcGFibGU6MTtcXHQvKiBCUEYgcHJvZ3JhbSBpcyBzbGVlcGFibGUgKi9cXG4rXFx0XFx0XFx0XFx0c2xlZXBhYmxlOjEsXFx0LyogQlBGIHByb2dyYW0gaXMgc2xlZXBhYmxlICovXFxuK1xcdFxcdFxcdFxcdGppdF9yZXF1aXJlZDoxO1xcdC8qIHByb2dyYW0gc3RyaWN0bHkgcmVxdWlyZXMgSklUIGNvbXBpbGVyICovXFxuIFxcdGVudW0gYnBmX3Byb2dfdHlwZVxcdHR5cGU7XFx0XFx0LyogVHlwZSBvZiBCUEYgcHJvZ3JhbSAqL1xcbiBcXHRlbnVtIGJwZl9hdHRhY2hfdHlwZVxcdGV4cGVjdGVkX2F0dGFjaF90eXBlOyAvKiBGb3Igc29tZSBwcm9nIHR5cGVzICovXFxuIFxcdHUzMlxcdFxcdFxcdGxlbjtcXHRcXHQvKiBOdW1iZXIgb2YgZmlsdGVyIGJsb2NrcyAqL1xcbmRpZmYgLS1naXQgYS9rZXJuZWwvYnBmL2NvcmUuYyBiL2tlcm5lbC9icGYvY29yZS5jXFxuaW5kZXggNjQ5Y2NlNDFlMTNmM2IuLjVmY2QxOWNjYjQxYTllIDEwMDY0NFxcbi0tLSBhL2tlcm5lbC9icGYvY29yZS5jXFxuKysrIGIva2VybmVsL2JwZi9jb3JlLmNcXG5AQCAtMjYxOSw4ICsyNjE5LDcgQEAgc3RydWN0IGJwZl9wcm9nICpfX2JwZl9wcm9nX3NlbGVjdF9ydW50aW1lKHN0cnVjdCBicGZfdmVyaWZpZXJfZW52ICplbnYsIHN0cnVjdFxcbiBcXHRpZiAoZnAtXFx1MDAzZWJwZl9mdW5jKVxcbiBcXHRcXHRnb3RvIGZpbmFsaXplO1xcbiBcXG4tXFx0aWYgKElTX0VOQUJMRUQoQ09ORklHX0JQRl9KSVRfQUxXQVlTX09OKSB8fFxcbi1cXHQgICAgYnBmX3Byb2dfaGFzX2tmdW5jX2NhbGwoZnApKVxcbitcXHRpZiAoSVNfRU5BQkxFRChDT05GSUdfQlBGX0pJVF9BTFdBWVNfT04pIHx8IGZwLVxcdTAwM2VqaXRfcmVxdWlyZWQpXFxuIFxcdFxcdGppdF9uZWVkZWQgPSB0cnVlO1xcbiBcXG4gXFx0aWYgKCFicGZfcHJvZ19zZWxlY3RfaW50ZXJwcmV0ZXIoZnApKVxcbmRpZmYgLS1naXQgYS9rZXJuZWwvYnBmL2ZpeHVwcy5jIGIva2VybmVsL2JwZi9maXh1cHMuY1xcbmluZGV4IDEyYThhNGViNzU3ZjE4Li45NGUwNDU3YTBhYTMzYSAxMDA2NDRcXG4tLS0gYS9rZXJuZWwvYnBmL2ZpeHVwcy5jXFxuKysrIGIva2VybmVsL2JwZi9maXh1cHMuY1xcbkBAIC0xODQxLDggKzE4NDEsMTAgQEAgaW50IGJwZl9kb19taXNjX2ZpeHVwcyhzdHJ1Y3QgYnBmX3ZlcmlmaWVyX2VudiAqZW52KVxcbiBcXHRcXHR9XFxuIFxcbiBcXHRcXHQvKiBTa2lwIGlubGluaW5nIHRoZSBoZWxwZXIgY2FsbCBpZiB0aGUgSklUIGRvZXMgaXQuICovXFxuLVxcdFxcdGlmIChicGZfaml0X2lubGluZXNfaGVscGVyX2NhbGwoaW5zbi1cXHUwMDNlaW1tKSlcXG4rXFx0XFx0aWYgKGJwZl9qaXRfaW5saW5lc19oZWxwZXJfY2FsbChpbnNuLVxcdTAwM2VpbW0pKSB7XFxuK1xcdFxcdFxcdHByb2ctXFx1MDAzZWppdF9yZXF1aXJlZCA9IDE7XFxuIFxcdFxcdFxcdGdvdG8gbmV4dF9pbnNuO1xcbitcXHRcXHR9XFxuIFxcbiBcXHRcXHRpZiAoaW5zbi1cXHUwMDNlaW1tID09IEJQRl9GVU5DX2dldF9yb3V0ZV9yZWFsbSlcXG4gXFx0XFx0XFx0cHJvZy1cXHUwMDNlZHN0X25lZWRlZCA9IDE7XFxuZGlmZiAtLWdpdCBhL2tlcm5lbC9icGYvdmVyaWZpZXIuYyBiL2tlcm5lbC9icGYvdmVyaWZpZXIuY1xcbmluZGV4IDI1YWVhNDI3MWNkMDg5Li5mNDk2YjQ1YjlkYTRkMSAxMDA2NDRcXG4tLS0gYS9rZXJuZWwvYnBmL3ZlcmlmaWVyLmNcXG4rKysgYi9rZXJuZWwvYnBmL3ZlcmlmaWVyLmNcXG5AQCAtMjc2NSw2ICsyNzY1LDggQEAgaW50IGJwZl9hZGRfa2Z1bmNfY2FsbChzdHJ1Y3QgYnBmX3ZlcmlmaWVyX2VudiAqZW52LCB1MzIgZnVuY19pZCwgdTE2IG9mZnNldClcXG4gXFx0ZGVzYy1cXHUwMDNlZnVuY19tb2RlbCA9IGZ1bmNfbW9kZWw7XFxuIFxcdHNvcnQodGFiLVxcdTAwM2VkZXNjcywgdGFiLVxcdTAwM2Vucl9kZXNjcywgc2l6ZW9mKHRhYi1cXHUwMDNlZGVzY3NbMF0pLFxcbiBcXHQgICAgIGtmdW5jX2Rlc2NfY21wX2J5X2lkX29mZiwgTlVMTCk7XFxuK1xcbitcXHRlbnYtXFx1MDAzZXByb2ctXFx1MDAzZWppdF9yZXF1aXJlZCA9IDE7XFxuIFxcdHJldHVybiAwO1xcbiB9XFxuIFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wMlQxNzoyMjowNy4zMjM0OTExODhaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjMxMTkyMjcyNDQ0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIkJQRl9TWVNDQUxMXCIsXG4gICAgXCJCUEZfSklUXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiYnBmX2RvX21pc2NfZml4dXBzXCIsXG4gICAgXCJicGZfYWRkX2tmdW5jX2NhbGxcIixcbiAgICBcIl9fYnBmX3Byb2dfc2VsZWN0X3J1bnRpbWVcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgQlBGIHZlcmlmaWVyIGFuZCBjb3JlIGxvZ2ljIHRvIHRyYWNrIHdoZXRoZXIgYSBCUEYgcHJvZ3JhbSBzdHJpY3RseSByZXF1aXJlcyB0aGUgSklUIGNvbXBpbGVyIChlLmcuLCBkdWUgdG8ga2Z1bmMgY2FsbHMgb3IgSklULWlubGluZWQgaGVscGVycykuIFRoaXMgYWZmZWN0cyBob3cgdGhlIHJ1bnRpbWUgaXMgc2VsZWN0ZWQgZm9yIEJQRiBwcm9ncmFtcyBhbmQgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgY29yZSBCUEYgc3Vic3lzdGVtLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiJZb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci5cbllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lXG5pZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXG5cbklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpblxueW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5XG51c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLlxuXG5SZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOlxuLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLlxuLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy5cbi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LlxuLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsXG5ldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuXG5cbklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2hcbnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLlxuXG5XaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzpcbjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuXG4gICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy5cbjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLlxuICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLlxuICAgRG8gbm90IGxpc3QgdG9vIGdlbmVyaWMgY29uZmlncyAod2UgYWxyZWFkeSBoYXZlIHRoZW0gZW5hYmxlZCkuIE9ubHkgbGlzdCB0aG9zZSB0aGF0XG4gICBzcGVjaWZpY2FsbHkgY292ZXIgdGhlIG1vZGlmaWVkIGNvZGUuIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncyBvdXRwdXQgYXJyYXksXG4gICBhbmQgRE8gTk9UIGFkZCBhICdDT05GSUdfJyBwcmVmaXggKGUuZy4sIHJldHVybiBcIk5FVF9JUFY0XCIgaW5zdGVhZCBvZiBcIkNPTkZJR19ORVRfSVBWNFwiKS5cblByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLlxuXG5cblVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuXG5JdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS5cbklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC5cbiIsIlByb21wdCI6IkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOlxuY29tbWl0IGQzZjkzYWUwOTRhNjQxNzJjMjQ1NzNmNTUwZTQxZTU3N2Y3ZWM1ODdcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgVGh1IEp1bCAyIDE3OjIyOjA0IDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9icGYuaCBiL2luY2x1ZGUvbGludXgvYnBmLmhcbmluZGV4IGJhMDk3OTVlMGJmZGI3Li40ZTJiMDU5ZDcxZjNlYSAxMDA2NDRcbi0tLSBhL2luY2x1ZGUvbGludXgvYnBmLmhcbisrKyBiL2luY2x1ZGUvbGludXgvYnBmLmhcbkBAIC0xODgwLDcgKzE4ODAsOCBAQCBzdHJ1Y3QgYnBmX3Byb2cge1xuIFx0XHRcdFx0Y2FsbF9nZXRfZnVuY19pcDoxLCAvKiBEbyB3ZSBjYWxsIGdldF9mdW5jX2lwKCkgKi9cbiBcdFx0XHRcdGNhbGxfc2Vzc2lvbl9jb29raWU6MSwgLyogRG8gd2UgY2FsbCBicGZfc2Vzc2lvbl9jb29raWUoKSAqL1xuIFx0XHRcdFx0dHN0YW1wX3R5cGVfYWNjZXNzOjEsIC8qIEFjY2Vzc2VkIF9fc2tfYnVmZi1cdTAwM2V0c3RhbXBfdHlwZSAqL1xuLVx0XHRcdFx0c2xlZXBhYmxlOjE7XHQvKiBCUEYgcHJvZ3JhbSBpcyBzbGVlcGFibGUgKi9cbitcdFx0XHRcdHNsZWVwYWJsZToxLFx0LyogQlBGIHByb2dyYW0gaXMgc2xlZXBhYmxlICovXG4rXHRcdFx0XHRqaXRfcmVxdWlyZWQ6MTtcdC8qIHByb2dyYW0gc3RyaWN0bHkgcmVxdWlyZXMgSklUIGNvbXBpbGVyICovXG4gXHRlbnVtIGJwZl9wcm9nX3R5cGVcdHR5cGU7XHRcdC8qIFR5cGUgb2YgQlBGIHByb2dyYW0gKi9cbiBcdGVudW0gYnBmX2F0dGFjaF90eXBlXHRleHBlY3RlZF9hdHRhY2hfdHlwZTsgLyogRm9yIHNvbWUgcHJvZyB0eXBlcyAqL1xuIFx0dTMyXHRcdFx0bGVuO1x0XHQvKiBOdW1iZXIgb2YgZmlsdGVyIGJsb2NrcyAqL1xuZGlmZiAtLWdpdCBhL2tlcm5lbC9icGYvY29yZS5jIGIva2VybmVsL2JwZi9jb3JlLmNcbmluZGV4IDY0OWNjZTQxZTEzZjNiLi41ZmNkMTljY2I0MWE5ZSAxMDA2NDRcbi0tLSBhL2tlcm5lbC9icGYvY29yZS5jXG4rKysgYi9rZXJuZWwvYnBmL2NvcmUuY1xuQEAgLTI2MTksOCArMjYxOSw3IEBAIHN0cnVjdCBicGZfcHJvZyAqX19icGZfcHJvZ19zZWxlY3RfcnVudGltZShzdHJ1Y3QgYnBmX3ZlcmlmaWVyX2VudiAqZW52LCBzdHJ1Y3RcbiBcdGlmIChmcC1cdTAwM2VicGZfZnVuYylcbiBcdFx0Z290byBmaW5hbGl6ZTtcbiBcbi1cdGlmIChJU19FTkFCTEVEKENPTkZJR19CUEZfSklUX0FMV0FZU19PTikgfHxcbi1cdCAgICBicGZfcHJvZ19oYXNfa2Z1bmNfY2FsbChmcCkpXG4rXHRpZiAoSVNfRU5BQkxFRChDT05GSUdfQlBGX0pJVF9BTFdBWVNfT04pIHx8IGZwLVx1MDAzZWppdF9yZXF1aXJlZClcbiBcdFx0aml0X25lZWRlZCA9IHRydWU7XG4gXG4gXHRpZiAoIWJwZl9wcm9nX3NlbGVjdF9pbnRlcnByZXRlcihmcCkpXG5kaWZmIC0tZ2l0IGEva2VybmVsL2JwZi9maXh1cHMuYyBiL2tlcm5lbC9icGYvZml4dXBzLmNcbmluZGV4IDEyYThhNGViNzU3ZjE4Li45NGUwNDU3YTBhYTMzYSAxMDA2NDRcbi0tLSBhL2tlcm5lbC9icGYvZml4dXBzLmNcbisrKyBiL2tlcm5lbC9icGYvZml4dXBzLmNcbkBAIC0xODQxLDggKzE4NDEsMTAgQEAgaW50IGJwZl9kb19taXNjX2ZpeHVwcyhzdHJ1Y3QgYnBmX3ZlcmlmaWVyX2VudiAqZW52KVxuIFx0XHR9XG4gXG4gXHRcdC8qIFNraXAgaW5saW5pbmcgdGhlIGhlbHBlciBjYWxsIGlmIHRoZSBKSVQgZG9lcyBpdC4gKi9cbi1cdFx0aWYgKGJwZl9qaXRfaW5saW5lc19oZWxwZXJfY2FsbChpbnNuLVx1MDAzZWltbSkpXG4rXHRcdGlmIChicGZfaml0X2lubGluZXNfaGVscGVyX2NhbGwoaW5zbi1cdTAwM2VpbW0pKSB7XG4rXHRcdFx0cHJvZy1cdTAwM2VqaXRfcmVxdWlyZWQgPSAxO1xuIFx0XHRcdGdvdG8gbmV4dF9pbnNuO1xuK1x0XHR9XG4gXG4gXHRcdGlmIChpbnNuLVx1MDAzZWltbSA9PSBCUEZfRlVOQ19nZXRfcm91dGVfcmVhbG0pXG4gXHRcdFx0cHJvZy1cdTAwM2Vkc3RfbmVlZGVkID0gMTtcbmRpZmYgLS1naXQgYS9rZXJuZWwvYnBmL3ZlcmlmaWVyLmMgYi9rZXJuZWwvYnBmL3ZlcmlmaWVyLmNcbmluZGV4IDI1YWVhNDI3MWNkMDg5Li5mNDk2YjQ1YjlkYTRkMSAxMDA2NDRcbi0tLSBhL2tlcm5lbC9icGYvdmVyaWZpZXIuY1xuKysrIGIva2VybmVsL2JwZi92ZXJpZmllci5jXG5AQCAtMjc2NSw2ICsyNzY1LDggQEAgaW50IGJwZl9hZGRfa2Z1bmNfY2FsbChzdHJ1Y3QgYnBmX3ZlcmlmaWVyX2VudiAqZW52LCB1MzIgZnVuY19pZCwgdTE2IG9mZnNldClcbiBcdGRlc2MtXHUwMDNlZnVuY19tb2RlbCA9IGZ1bmNfbW9kZWw7XG4gXHRzb3J0KHRhYi1cdTAwM2VkZXNjcywgdGFiLVx1MDAzZW5yX2Rlc2NzLCBzaXplb2YodGFiLVx1MDAzZWRlc2NzWzBdKSxcbiBcdCAgICAga2Z1bmNfZGVzY19jbXBfYnlfaWRfb2ZmLCBOVUxMKTtcbitcbitcdGVudi1cdTAwM2Vwcm9nLVx1MDAzZWppdF9yZXF1aXJlZCA9IDE7XG4gXHRyZXR1cm4gMDtcbiB9XG4gXG4iLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wMlQxNzoyMjowNy4zMjM0OTI4NThaIiwiU2VxIjozLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo2ODM4NDI4NDU2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyBhIEJQRiBWZXJpZmllciBQYXRjaCoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggdGhhdCdzIHR3ZWFraW5nIHRoZSBCUEYgdmVyaWZpZXIgYW5kIGNvcmUgbG9naWMsIHNwZWNpZmljYWxseSBob3cgd2UgZGVjaWRlIHdoZXRoZXIgdG8gSklULWNvbXBpbGUgYSBCUEYgcHJvZ3JhbS4gVGhleSd2ZSBpbnRyb2R1Y2VkIGEgYGppdF9yZXF1aXJlZGAgYml0IHRvIHRoZSBgc3RydWN0IGJwZl9wcm9nYCBzdHJ1Y3R1cmUsIHdoaWNoIG1ha2VzIHNlbnNlOyBhIGZsYWcgdG8gc2lnbmFsIHRoZSBuZWVkIGZvciBKSVQgaXMgY2xlYW5lciB0aGFuIHRoZSBpbXBsaWNpdCBjaGVja3Mgd2UndmUgaGFkLlxuXG5JdCBsb29rcyBsaWtlIHRoZSBgaml0X3JlcXVpcmVkYCBiaXQgZ2V0cyBzZXQgaW4gYSBjb3VwbGUgb2YgcGxhY2VzLiBGaXJzdCwgaW4gYGJwZl9kb19taXNjX2ZpeHVwc2Agd2hlbiB3ZSdyZSBpbmxpbmluZyBoZWxwZXIgY2FsbHMgdXNpbmcgdGhlIEpJVCAoYXMgaW5kaWNhdGVkIGJ5IGBicGZfaml0X2lubGluZXNfaGVscGVyX2NhbGxgKS4gVGhpcyBpcyBnb29kOyB3ZSBkZWZpbml0ZWx5IHdhbnQgdG8gSklUIHByb2dyYW1zIHRoYXQgcmVseSBvbiBpbmxpbmVkIGhlbHBlcnMuIFRoZW4sIGl0J3MgYWxzbyBzZXQgaW4gYGJwZl9hZGRfa2Z1bmNfY2FsbGAsIHdoaWNoIG1ha2VzIHBlcmZlY3Qgc2Vuc2UgYXMgS0Z1bmNzIGFsd2F5cyByZXF1aXJlIEpJVC5cblxuVGhlIHJlYWwgbWVhdCBvZiB0aGUgY2hhbmdlIGlzIGluIGBfX2JwZl9wcm9nX3NlbGVjdF9ydW50aW1lYCwgd2hlcmUgdGhlIGxvZ2ljIG5vdyB1c2VzIGBmcC1cdTAwM2VqaXRfcmVxdWlyZWRgIHRvIGRldGVybWluZSBpZiB3ZSBuZWVkIHRoZSBKSVQuIFdlJ3JlIGVmZmVjdGl2ZWx5IHJlcGxhY2luZyB0aGUgYGJwZl9wcm9nX2hhc19rZnVuY19jYWxsKGZwKWAgY2hlY2suIFRoaXMgbWVhbnMgd2UncmUgbm93IGNvbnNpZGVyaW5nIGlubGluZWQgaGVscGVycyAqYW5kKiBLRnVuY3Mgd2hlbiBkZWNpZGluZyB0byB1c2UgdGhlIEpJVC4gVGhhdCdzIGEgZ29vZCBmdW5jdGlvbmFsIGNoYW5nZSwgc2ltcGxpZnlpbmcgdGhlIGxvZ2ljLiBJZiBgaml0X3JlcXVpcmVkYCBpcyBzZXQsIHRoZSBpbnRlcnByZXRlciBpcyBvdXQgb2YgdGhlIHBpY3R1cmUuXG5cblRvIGdldCBhIGJldHRlciB1bmRlcnN0YW5kaW5nLCBJIG5lZWQgdG8gZm9jdXMgb24gdGhpcyBjb25kaXRpb24gYW5kIHdoYXQgdGhlIHBhdGNoIGlzIGRvaW5nLiBJIG5lZWQgdG8gbWFrZSBzdXJlIEkgYW0gYXdhcmUgb2YgdGhlc2UgY29uZGl0aW9ucy5cblxuQWxyaWdodCwgbGV0J3MgZmluZCB0aGUgcmVsZXZhbnQgY29uZmlncyBhbmQgZnVuY3Rpb25zLiBgQ09ORklHX0JQRl9TWVNDQUxMYCBpcyB0aGUgb2J2aW91cyBvbmUsIG1ha2luZyBzdXJlIHdlIGhhdmUgQlBGIHN1cHBvcnQgaW4gdGhlIGZpcnN0IHBsYWNlLiBBcyBmb3IgZnVuY3Rpb25zLCBJIG5lZWQgdG8gY2hlY2sgYF9fYnBmX3Byb2dfc2VsZWN0X3J1bnRpbWVgLCBgYnBmX2RvX21pc2NfZml4dXBzYCwgYW5kIGBicGZfYWRkX2tmdW5jX2NhbGxgLlxuXG5Ob3csIHdoZXJlIGFyZSB0aG9zZSBmdW5jdGlvbnMgZGVmaW5lZD8gSSBuZWVkIHRvIGNoZWNrIGBrZXJuZWwvYnBmL2NvcmUuY2AgYW5kIGBrZXJuZWwvYnBmL2ZpeHVwcy5jYC4gV2FpdC4uLiB3YXNuJ3QgYGJwZl9kb19taXNjX2ZpeHVwc2AgaW4gYGtlcm5lbC9icGYvZml4dXBzLmNgPyBUaGF0IHNlZW1zIHJpZ2h0LiBPaCwgcmlnaHQsIHRoaXMgcGF0Y2ggY291bGQgYmUgcmVmZXJlbmNpbmcgYSBuZXdlciBrZXJuZWwgd2hlcmUgYGZpeHVwcy5jYCB3YXMgc3BsaXQgb2ZmIGZyb20gYHZlcmlmaWVyLmNgLiBJIG5lZWQgdG8gcmVtZW1iZXIgdGhhdCEgTGV0J3MgY2hlY2sgdGhlIHBhdGNoIGFnYWluc3QgdGhlIHJlbGV2YW50IGtlcm5lbCB2ZXJzaW9ucyB0byBtYWtlIHN1cmUgSSdtIGxvb2tpbmcgYXQgdGhlIHJpZ2h0IHNvdXJjZS4gVGhlbiwgbGV0J3MgdmVyaWZ5IGFsbCB0aGUgcmVsZXZhbnQgY29uZmlncyB0byBtYWtlIHN1cmUgZXZlcnl0aGluZydzIGFzIGV4cGVjdGVkLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyNjMwLCJPdXRwdXRUb2tlbnMiOjIxLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NDAxLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMDJUMTc6MjI6MTQuMTYxOTIyOTY0WiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQ1MDk3ODIyOTQsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY29uZmlnIEJQRl9TWVNDQUxMXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImtlcm5lbC9icGYvS2NvbmZpZz0yNT1tZW51IFxcXCJCUEYgc3Vic3lzdGVtXFxcIlxcbmtlcm5lbC9icGYvS2NvbmZpZy0yNi1cXG5rZXJuZWwvYnBmL0tjb25maWc6Mjc6Y29uZmlnIEJQRl9TWVNDQUxMXFxua2VybmVsL2JwZi9LY29uZmlnLTI4LVxcdGJvb2wgXFxcIkVuYWJsZSBicGYoKSBzeXN0ZW0gY2FsbFxcXCJcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMDJUMTc6MjI6MTguNjcxNzEyMTg4WiIsIlNlcSI6NSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6Mzc0ODkyMTM5NiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgbGV0J3MgYnJlYWsgdGhpcyBkb3duLlxuXG4qKkFuYWx5emluZyBCUEYgU3lzY2FsbCBDb25maWd1cmF0aW9uIGZvciBUYXJnZXRlZCBGdW5jdGlvbiBGb2N1cyoqXG5cblJpZ2h0LCBzbyB3ZSdyZSBkZWFsaW5nIHdpdGggYSBgQlBGX1NZU0NBTExgIGNvbmZpZ3VyYXRpb24gaGVyZS4gTXkgaW1tZWRpYXRlIHRob3VnaHQgaXMsIFwiT2theSwgZ2l2ZW4gdGhpcyBjb250ZXh0LCB3aGljaCBzcGVjaWZpYyBmdW5jdGlvbnMgd2l0aGluIHRoZSBCUEYgc3lzdGVtIGFyZSBtb3N0IHJlbGV2YW50IGZvciBpbnZlc3RpZ2F0aW9uP1wiIFRoYXQgZnJhbWluZyBuYXJyb3dzIHRoZSBzY29wZSBzaWduaWZpY2FudGx5LCBzbyB0aGF0J3Mgd2hlcmUgSSBuZWVkIHRvIHN0YXJ0LlxuXG5JIG5lZWQgdG8gZm9jdXMgbXkgYXR0ZW50aW9uIG9uIHRoZXNlIGZ1bmN0aW9uczogYF9fYnBmX3Byb2dfc2VsZWN0X3J1bnRpbWVgLCBgYnBmX2RvX21pc2NfZml4dXBzYCwgYW5kIGBicGZfYWRkX2tmdW5jX2NhbGxgLiBNeSBoeXBvdGhlc2lzIGlzIHRoYXQgdGhlc2UgZnVuY3Rpb25zIGhhdmUgaW50ZXJlc3RpbmcgYmVoYXZpb3Igd2l0aGluIHRoZSBjb250ZXh0IG9mIGBCUEZfU1lTQ0FMTGAsIGFuZCB1bmRlcnN0YW5kaW5nIHRoZWlyIGludGVyYWN0aW9uIGlzIGxpa2VseSBrZXkgdG8gYSBjb21wbGV0ZSB1bmRlcnN0YW5kaW5nLlxuXG5CdXQgaG9sZCBvbiwgYmVmb3JlIEkgZGl2ZSB0b28gZGVlcCBpbnRvIHRob3NlIHRocmVlLCBJIHNob3VsZCBwYXVzZSBhbmQgbWFrZSBzdXJlIEkgaGF2ZW4ndCBtaXNzZWQgYW55dGhpbmcgb2J2aW91cy4gSSBzaG91bGQgcXVpY2tseSB2ZXJpZnkgaWYgdGhlcmUgYXJlIGFueSAqb3RoZXIqIHJlbGV2YW50IGNvbmZpZ3VyYXRpb25zIHRoYXQgYXJlIGF0IHBsYXkuIEp1c3QgdG8gYmUgdGhvcm91Z2ggYW5kIGVuc3VyZSB0aGF0IEknbSBub3Qgb3Zlcmxvb2tpbmcgYW55IGRlcGVuZGVuY2llcyBvciBzZWNvbmRhcnkgaW5mbHVlbmNlcy4gVGhpcyBpcyBhIGNydWNpYWwgc3RlcCB0byBhdm9pZCBtaXNzaW5nIGFueXRoaW5nIGVsc2UuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjM3MTgsIk91dHB1dFRva2VucyI6MjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo3MCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0wMlQxNzoyMjoyMi40MjA2Mzg3NDRaIiwiU2VxIjo2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjU0NjQ1MDQwNywiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJjb25maWcgQlBGX0pJVFwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJrZXJuZWwvYnBmL0tjb25maWc9Mjc9Y29uZmlnIEJQRl9TWVNDQUxMXFxuLS1cXG5rZXJuZWwvYnBmL0tjb25maWctNDEtXFxua2VybmVsL2JwZi9LY29uZmlnOjQyOmNvbmZpZyBCUEZfSklUXFxua2VybmVsL2JwZi9LY29uZmlnLTQzLVxcdGJvb2wgXFxcIkVuYWJsZSBCUEYgSnVzdCBJbiBUaW1lIGNvbXBpbGVyXFxcIlxcbi0tXFxua2VybmVsL2JwZi9LY29uZmlnLTU3LVxcbmtlcm5lbC9icGYvS2NvbmZpZzo1ODpjb25maWcgQlBGX0pJVF9BTFdBWVNfT05cXG5rZXJuZWwvYnBmL0tjb25maWctNTktXFx0Ym9vbCBcXFwiUGVybWFuZW50bHkgZW5hYmxlIEJQRiBKSVQgYW5kIHJlbW92ZSBCUEYgaW50ZXJwcmV0ZXJcXFwiXFxuLS1cXG5rZXJuZWwvYnBmL0tjb25maWctNjgtXFxua2VybmVsL2JwZi9LY29uZmlnOjY5OmNvbmZpZyBCUEZfSklUX0RFRkFVTFRfT05cXG5rZXJuZWwvYnBmL0tjb25maWctNzAtXFx0ZGVmX2Jvb2wgQVJDSF9XQU5UX0RFRkFVTFRfQlBGX0pJVCB8fCBCUEZfSklUX0FMV0FZU19PTlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wMlQxNzoyMjoyNC45NjcwOTk5MjFaIiwiU2VxIjo3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo1NzA5Mzk4MDYzLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgQlBGIEpJVCBTZWxlY3Rpb24gTG9naWMqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIHBhdGNoIGFuZCB0aGUgYF9fYnBmX3Byb2dfc2VsZWN0X3J1bnRpbWVgIGZ1bmN0aW9uLiBUaGUga2V5IHBvaW50IGhlcmUgaXMgaG93IGBDT05GSUdfQlBGX0pJVF9BTFdBWVNfT05gIGludGVyYWN0cyB3aXRoIHRoZSBKSVQgY29tcGlsYXRpb24gcHJvY2Vzcy4gVGhlIGNvZGUncyBjaGVja2luZyB0aGlzIGNvbmZpZ3VyYXRpb24gb3B0aW9uLiBJZiBpdCAqaXMqIGVuYWJsZWQsIHRoZW4gdGhlIEpJVCBpcyBhbHdheXMgcmVxdWlyZWQsIHRoYXQncyBzdHJhaWdodGZvcndhcmQuXG5cblRoZSBpbnRlcmVzdGluZyBwYXJ0LCBhbmQgd2hlcmUgdGhlIHBvdGVudGlhbCBpc3N1ZSBsaWVzLCBpcyB3aGVuIGBDT05GSUdfQlBGX0pJVF9BTFdBWVNfT05gIGlzICpub3QqIGVuYWJsZWQuIEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSBsb2dpYyBmbG93IGluIHRoYXQgc2NlbmFyaW8sIHRvIHVuZGVyc3RhbmQgdGhpcyAnYnVnJyBvciAnZmVhdHVyZScuIFRoaXMgcGF0Y2ggc2VlbXMgdG8gYmUgYWRkcmVzc2luZyBhIHNwZWNpZmljIEpJVCByZXF1aXJlbWVudCB3aXRob3V0IHRoYXQgZ2xvYmFsIGFsd2F5cy1vbiBmbGFnIHNldC5cblxuU28sIHRvIHByb3Blcmx5IHRlc3QgdGhlIHNjZW5hcmlvIHRoaXMgcGF0Y2ggYWRkcmVzc2VzLCBJIHNob3VsZG4ndCBlbmFibGUgYEJQRl9KSVRfQUxXQVlTX09OYC4gSSBjb3VsZCBqdXN0IGVuYWJsZSBgQlBGX1NZU0NBTExgIGFuZCBgQlBGX0pJVGAsIGFzIHRob3NlIGFyZSB0eXBpY2FsbHkgZW5hYmxlZCBhbnl3YXkuXG5cbldhaXQgYSBzZWNvbmQuLi4gSWYgYEJQRl9KSVRfQUxXQVlTX09OYCAqaXMqIGVuYWJsZWQsIHRoZSBgaml0X25lZWRlZGAgdmFyaWFibGUgaXMgYWx3YXlzIGdvaW5nIHRvIGJlIHRydWUuIENvbnNlcXVlbnRseSwgdGhlIGBmcC1cdTAwM2VqaXRfcmVxdWlyZWRgIGNoZWNrIGlzIGJ5cGFzc2VkIChvciwgbW9yZSBwcmVjaXNlbHksIHRoZSBleHByZXNzaW9uIGlzIGFsd2F5cyB0cnVlKS4gU28sIHRvIGFjdHVhbGx5IHZlcmlmeSB0aGUgYmVoYXZpb3Igb2YgYGZwLVx1MDAzZWppdF9yZXF1aXJlZGAsIEkgKmhhdmUqIHRvIGRpc2FibGUgYENPTkZJR19CUEZfSklUX0FMV0FZU19PTmAuIFRoYXQncyBpdCwgdGhhdCdzIHRoZSBrZXkuXG5cblRoZXJlZm9yZSwgZm9yIHRoaXMgdGVzdCwgSSdsbCBzdGljayB3aXRoIGp1c3QgZW5hYmxpbmcgYEJQRl9TWVNDQUxMYCBhbmQgYEJQRl9KSVRgLCBhcyB0aGlzIHdpbGwgZ2l2ZSBtZSB0aGUgaW50ZW5kZWQgc2NlbmFyaW8gdG8gdGVzdC5cblxuTmV4dCwgSSBzaG91bGQgcHJvYmFibHkgY2hlY2sgYGJwZl9qaXRfaW5saW5lc19oZWxwZXJfY2FsbGAgdG8gc2VlIGlmIHRoYXQncyByZWxldmFudCB0byB0aGUgc2l0dWF0aW9uLlxuXG5cbiIsIklucHV0VG9rZW5zIjo0MjcyLCJPdXRwdXRUb2tlbnMiOjI1LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjUxLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTAyVDE3OjIyOjMwLjY3NjQ5OTc5NFoiLCJTZXEiOjgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyNjA5NDY2OTMzLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImJwZl9qaXRfaW5saW5lc19oZWxwZXJfY2FsbFwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJhcmNoL2FybTY0L25ldC9icGZfaml0X2NvbXAuYz0zMjAxPWJvb2wgYnBmX2ppdF9zdXBwb3J0c190aW1lZF9tYXlfZ290byh2b2lkKVxcbi0tXFxuYXJjaC9hcm02NC9uZXQvYnBmX2ppdF9jb21wLmMtMzIwNS1cXG5hcmNoL2FybTY0L25ldC9icGZfaml0X2NvbXAuYzozMjA2OmJvb2wgYnBmX2ppdF9pbmxpbmVzX2hlbHBlcl9jYWxsKHMzMiBpbW0pXFxuYXJjaC9hcm02NC9uZXQvYnBmX2ppdF9jb21wLmMtMzIwNy17XFxuLS1cXG5hcmNoL3Bvd2VycGMvbmV0L2JwZl9qaXRfY29tcC5jPTU3Mj1ib29sIGJwZl9qaXRfc3VwcG9ydHNfcGVyY3B1X2luc24odm9pZClcXG4tLVxcbmFyY2gvcG93ZXJwYy9uZXQvYnBmX2ppdF9jb21wLmMtNTc2LVxcbmFyY2gvcG93ZXJwYy9uZXQvYnBmX2ppdF9jb21wLmM6NTc3OmJvb2wgYnBmX2ppdF9pbmxpbmVzX2hlbHBlcl9jYWxsKHMzMiBpbW0pXFxuYXJjaC9wb3dlcnBjL25ldC9icGZfaml0X2NvbXAuYy01Nzgte1xcbi0tXFxuYXJjaC9yaXNjdi9uZXQvYnBmX2ppdF9jb21wNjQuYz0yMTM5PWJvb2wgYnBmX2ppdF9zdXBwb3J0c19wZXJjcHVfaW5zbih2b2lkKVxcbi0tXFxuYXJjaC9yaXNjdi9uZXQvYnBmX2ppdF9jb21wNjQuYy0yMTQzLVxcbmFyY2gvcmlzY3YvbmV0L2JwZl9qaXRfY29tcDY0LmM6MjE0NDpib29sIGJwZl9qaXRfaW5saW5lc19oZWxwZXJfY2FsbChzMzIgaW1tKVxcbmFyY2gvcmlzY3YvbmV0L2JwZl9qaXRfY29tcDY0LmMtMjE0NS17XFxuLS1cXG5hcmNoL3MzOTAvbmV0L2JwZl9qaXRfY29tcC5jPTMwODE9Ym9vbCBicGZfaml0X3N1cHBvcnRzX3RpbWVkX21heV9nb3RvKHZvaWQpXFxuLS1cXG5hcmNoL3MzOTAvbmV0L2JwZl9qaXRfY29tcC5jLTMwODUtXFxuYXJjaC9zMzkwL25ldC9icGZfaml0X2NvbXAuYzozMDg2OmJvb2wgYnBmX2ppdF9pbmxpbmVzX2hlbHBlcl9jYWxsKHMzMiBpbW0pXFxuYXJjaC9zMzkwL25ldC9icGZfaml0X2NvbXAuYy0zMDg3LXtcXG4tLVxcbmluY2x1ZGUvbGludXgvZmlsdGVyLmg9MTE3OT1ib29sIGJwZl9qaXRfbmVlZHNfemV4dCh2b2lkKTtcXG5pbmNsdWRlL2xpbnV4L2ZpbHRlci5oOjExODA6Ym9vbCBicGZfaml0X2lubGluZXNfaGVscGVyX2NhbGwoczMyIGltbSk7XFxuaW5jbHVkZS9saW51eC9maWx0ZXIuaC0xMTgxLWJvb2wgYnBmX2ppdF9zdXBwb3J0c19zdWJwcm9nX3RhaWxjYWxscyh2b2lkKTtcXG4tLVxcbmtlcm5lbC9icGYvY29yZS5jPTMyMDg9Ym9vbCBfX3dlYWsgYnBmX2ppdF9ieXBhc3Nfc3BlY192NCh2b2lkKVxcbi0tXFxua2VybmVsL2JwZi9jb3JlLmMtMzIxOC0gKi9cXG5rZXJuZWwvYnBmL2NvcmUuYzozMjE5OmJvb2wgX193ZWFrIGJwZl9qaXRfaW5saW5lc19oZWxwZXJfY2FsbChzMzIgaW1tKVxcbmtlcm5lbC9icGYvY29yZS5jLTMyMjAte1xcbi0tXFxua2VybmVsL2JwZi9maXh1cHMuYz0xNDgxPWludCBicGZfZG9fbWlzY19maXh1cHMoc3RydWN0IGJwZl92ZXJpZmllcl9lbnYgKmVudilcXG4tLVxcbmtlcm5lbC9icGYvZml4dXBzLmMtMTg0My1cXHRcXHQvKiBTa2lwIGlubGluaW5nIHRoZSBoZWxwZXIgY2FsbCBpZiB0aGUgSklUIGRvZXMgaXQuICovXFxua2VybmVsL2JwZi9maXh1cHMuYzoxODQ0OlxcdFxcdGlmIChicGZfaml0X2lubGluZXNfaGVscGVyX2NhbGwoaW5zbi1cXHUwMDNlaW1tKSkge1xcbmtlcm5lbC9icGYvZml4dXBzLmMtMTg0NS1cXHRcXHRcXHRwcm9nLVxcdTAwM2VqaXRfcmVxdWlyZWQgPSAxO1xcbi0tXFxua2VybmVsL2JwZi92ZXJpZmllci5jPTE2Njg1PWJvb2wgYnBmX2dldF9jYWxsX3N1bW1hcnkoc3RydWN0IGJwZl92ZXJpZmllcl9lbnYgKmVudiwgc3RydWN0IGJwZl9pbnNuICpjYWxsLFxcbi0tXFxua2VybmVsL2JwZi92ZXJpZmllci5jLTE2Njk4LVxcdFxcdFxcdCAgICAgICAoYnBmX3ZlcmlmaWVyX2lubGluZXNfaGVscGVyX2NhbGwoZW52LCBjYWxsLVxcdTAwM2VpbW0pIHx8XFxua2VybmVsL2JwZi92ZXJpZmllci5jOjE2Njk5OlxcdFxcdFxcdFxcdGJwZl9qaXRfaW5saW5lc19oZWxwZXJfY2FsbChjYWxsLVxcdTAwM2VpbW0pKTtcXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtMTY3MDAtXFx0XFx0Y3MtXFx1MDAzZWlzX3ZvaWQgPSBmbi1cXHUwMDNlcmV0X3R5cGUgPT0gUkVUX1ZPSUQ7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTAyVDE3OjIyOjMzLjI4NTk3MTQ5N1oiLCJTZXEiOjksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjUwOTI4OTQwMDUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqRnV6emluZyBUYXJnZXQgSWRlbnRpZmljYXRpb24qKlxuXG5Pa2F5LCBzbyB0aGlzIHBhdGNoIGlzIGZsYWdnaW5nIGBwcm9nLVx1MDAzZWppdF9yZXF1aXJlZCA9IDFgIHdpdGhpbiBgYnBmX2RvX21pc2NfZml4dXBzYCBhbmQgYGJwZl9hZGRfa2Z1bmNfY2FsbGAuIFRoYXQgaW1tZWRpYXRlbHkgc2NyZWFtcyBwb3RlbnRpYWwgZnV6emluZyB0YXJnZXQgdG8gbWUuIEl0J3MgYSBjbGVhciBzaWduYWwgdG8gaW52ZXN0aWdhdGUgaG93IEpJVCBjb21waWxhdGlvbiBnZXRzIHRyaWdnZXJlZCwgZXNwZWNpYWxseSBnaXZlbiB0aGUgY29udGV4dCBvZiB0aGVzZSBmdW5jdGlvbnMuXG5cbk15IHByaW1hcnkgZm9jdXMgZm9yIGZ1enppbmcgd2lsbCBiZSB0aGVzZSBmdW5jdGlvbnM6IGBicGZfZG9fbWlzY19maXh1cHNgLCBgYnBmX2FkZF9rZnVuY19jYWxsYCwgYW5kIGBfX2JwZl9wcm9nX3NlbGVjdF9ydW50aW1lYC4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgaG93IHRoZSBpbnRlcmFjdGlvbiBhbmQgc3RhdGUgb2YgdGhvc2UgZnVuY3Rpb24gbGVhZCB0byB0aGUgY29tcGlsYXRpb24gb2YgdGhlIEJQRiBwcm9ncmFtLiBJIHdpbGwgbmVlZCBgQlBGX1NZU0NBTExgIGFuZCBgQlBGX0pJVGAgZW5hYmxlZCBpbiBteSB0ZXN0IGNvbmZpZy5cblxuQmVmb3JlIEkgZ28gZnVydGhlciwgSSBzaG91bGQgdmVyaWZ5IHRoZSBmdW5jdGlvbiBuYW1lcyB0aGVtc2VsdmVzLiBJdCdzIGVhc3kgdG8gbWFrZSBhIHR5cG8sIGFuZCBhIHNpbXBsZSBjaGVjayBub3cgY291bGQgc2F2ZSBhIGhlYWRhY2hlIGxhdGVyLiBZZXAsIGBicGZfZG9fbWlzY19maXh1cHNgLCBgYnBmX2FkZF9rZnVuY19jYWxsYCwgYW5kIGBfX2JwZl9wcm9nX3NlbGVjdF9ydW50aW1lYCBhcmUgYWxsIGNvcnJlY3QuIEV4Y2VsbGVudC5cblxuTm93LCBJJ20gcmVhZHkgdG8gYmVnaW4gdGVzdGluZy5cblxuXG4iLCJJbnB1dFRva2VucyI6NTk2MCwiT3V0cHV0VG9rZW5zIjoxNDcsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxNjcsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMDJUMTc6MjI6MzguMzc4ODY3MDcyWiIsIlNlcSI6MTAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InNldC1yZXN1bHRzIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTM2ODg5MzgwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJCUEZfU1lTQ0FMTFwiLFxuICAgIFwiQlBGX0pJVFwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcImJwZl9kb19taXNjX2ZpeHVwc1wiLFxuICAgIFwiYnBmX2FkZF9rZnVuY19jYWxsXCIsXG4gICAgXCJfX2JwZl9wcm9nX3NlbGVjdF9ydW50aW1lXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIEJQRiB2ZXJpZmllciBhbmQgY29yZSBsb2dpYyB0byB0cmFjayB3aGV0aGVyIGEgQlBGIHByb2dyYW0gc3RyaWN0bHkgcmVxdWlyZXMgdGhlIEpJVCBjb21waWxlciAoZS5nLiwgZHVlIHRvIGtmdW5jIGNhbGxzIG9yIEpJVC1pbmxpbmVkIGhlbHBlcnMpLiBUaGlzIGFmZmVjdHMgaG93IHRoZSBydW50aW1lIGlzIHNlbGVjdGVkIGZvciBCUEYgcHJvZ3JhbXMgYW5kIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIGNvcmUgQlBGIHN1YnN5c3RlbS5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJCUEZfU1lTQ0FMTFwiLFxuICAgIFwiQlBGX0pJVFwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcImJwZl9kb19taXNjX2ZpeHVwc1wiLFxuICAgIFwiYnBmX2FkZF9rZnVuY19jYWxsXCIsXG4gICAgXCJfX2JwZl9wcm9nX3NlbGVjdF9ydW50aW1lXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIEJQRiB2ZXJpZmllciBhbmQgY29yZSBsb2dpYyB0byB0cmFjayB3aGV0aGVyIGEgQlBGIHByb2dyYW0gc3RyaWN0bHkgcmVxdWlyZXMgdGhlIEpJVCBjb21waWxlciAoZS5nLiwgZHVlIHRvIGtmdW5jIGNhbGxzIG9yIEpJVC1pbmxpbmVkIGhlbHBlcnMpLiBUaGlzIGFmZmVjdHMgaG93IHRoZSBydW50aW1lIGlzIHNlbGVjdGVkIGZvciBCUEYgcHJvZ3JhbXMgYW5kIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIGNvcmUgQlBGIHN1YnN5c3RlbS5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9XTsKCQkJaWYgKCFyYXdEYXRhIHx8IHJhd0RhdGEubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQlkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKTsKCQkJZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSk7CgkJCWRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKSB7CgkJCWNvbnN0IHN0YXRzID0gewoJCQkJbGxtOiB7IGNvdW50OiAwLCB0b2tlbnM6IDAsIGR1cmF0aW9uOiAwIH0sCgkJCQl0b29sOiB7IGNvdW50OiAwLCBkdXJhdGlvbjogMCB9CgkJCX07CgoJCQlyYXdEYXRhLmZvckVhY2gocyA9PiB7CgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsgCgkJCQlpZiAocy5UeXBlID09PSAibGxtIikgewoJCQkJCXN0YXRzLmxsbS5jb3VudCsrOwoJCQkJCXN0YXRzLmxsbS50b2tlbnMgKz0gKHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnMpOwoJCQkJCXN0YXRzLmxsbS5kdXJhdGlvbiArPSBkdXI7CgkJCQl9IGVsc2UgaWYgKHMuVHlwZSA9PT0gInRvb2wiKSB7CgkJCQkJc3RhdHMudG9vbC5jb3VudCsrOwoJCQkJCXN0YXRzLnRvb2wuZHVyYXRpb24gKz0gZHVyOwoJCQkJfQoJCQl9KTsKCgkJCWNvbnN0IGF2Z0xsbUR1ciA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLmR1cmF0aW9uIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnTGxtVG9rZW4gPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS50b2tlbnMgLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdUb29sRHVyID0gc3RhdHMudG9vbC5jb3VudCA+IDAgPyAoc3RhdHMudG9vbC5kdXJhdGlvbiAvIHN0YXRzLnRvb2wuY291bnQpLnRvRml4ZWQoMikgOiAwOwoKCQkJY29uc3QgbGxtU3VtYXJ5Q2VsbHMgPSBbc3RhdHMubGxtLmNvdW50LCBzdGF0cy5sbG0udG9rZW5zLCBhdmdMbG1Ub2tlbiwgc3RhdHMubGxtLmR1cmF0aW9uLCBhdmdMbG1EdXJdOwoJCQljb25zdCB0b29sU3VtbWFyeUNlbGxzID0gW3N0YXRzLnRvb2wuY291bnQsIHN0YXRzLnRvb2wuZHVyYXRpb24sIGF2Z1Rvb2xEdXJdOwoKCQkJY29uc3QgbGxtU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGxtX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQlsbG1TdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgbGxtVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQlsbG1TdW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJbGxtVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJbGxtU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQobGxtVHIpOwoKCQkJY29uc3QgdG9vbFN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rvb2xfc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgdG9vbFRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJdG9vbFN1bW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJdG9vbFRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZCh0b29sVHIpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBmaWx0ZXJlZFN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBbImxsbSIsICJ0b29sIl0uaW5jbHVkZXMoZC5UeXBlKSk7CgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ0R1cmF0aW9uJyk7CgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7IAoKCQkJZmlsdGVyZWRTdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJCgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsKCQkJCWxldCB0b29sdGlwID0gcy5OYW1lOwoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIgJiYgcy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoJCQkJZGF0YS5hZGRSb3coW2Ake3MuU2VxfWAsIGR1ciwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1RpbWUgQ29uc3VtcHRpb24gb2YgTExNL1Rvb2wgQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTS9Ub29sIFN0ZXBzJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ1NlY29uZHMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2R1cmF0aW9uX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBsbG1TdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gZC5UeXBlID09PSAibGxtIik7CgkJCWlmIChsbG1TdGVwcy5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwkJCQoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ1Rva2VucycpOwkJCQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICdzdHlsZSd9KTsJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7CQoKCQkJY29uc3QgYWdlbnRDb2xvcnMgPSB7fTsKCQkJY29uc3QgcGFsZXR0ZSA9IFsnIzQyODVGNCcsICcjREI0NDM3JywgJyNGNEI0MDAnLCAnIzBGOUQ1OCcsICcjQUI0N0JDJywgJyMwMEFDQzEnXTsKCQkJbGV0IGNvbG9ySWR4ID0gMDsKCQkJY29uc3QgYWdlbnRMTE1Db3VudHMgPSB7fTsKCQkJbGxtU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCWlmICghYWdlbnRDb2xvcnNbcy5OYW1lXSkgewoJCQkJCWFnZW50Q29sb3JzW3MuTmFtZV0gPSBwYWxldHRlW2NvbG9ySWR4ICUgcGFsZXR0ZS5sZW5ndGhdOwoJCQkJCWNvbG9ySWR4Kys7CgkJCQl9CgoJCQkJYWdlbnRMTE1Db3VudHNbcy5OYW1lXSA9IChhZ2VudExMTUNvdW50c1tzLk5hbWVdIHx8IDApICsgMTsKCQkJCWNvbnN0IGxhYmVsID0gYCR7cy5OYW1lfS0ke2FnZW50TExNQ291bnRzW3MuTmFtZV19YDsKCQkJCWNvbnN0IHRvdGFsVG9rZW5zID0gcy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2VuczsKCQkJCWNvbnN0IHN0eWxlID0gYGNvbG9yOiAke2FnZW50Q29sb3JzW3MuTmFtZV19YDsKCQkJCWxldCB0b29sdGlwID0gYFRvdGFsIFRva2VuczogJHt0b3RhbFRva2Vuc31cbihJbjogJHtzLklucHV0VG9rZW5zfSwgT3V0OiAke3MuT3V0cHV0VG9rZW5zfSwgVGhvdWdodHM6ICR7cy5PdXRwdXRUaG91Z2h0c1Rva2Vuc30pYDsKCQkJCWlmIChzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgoJCQkJZGF0YS5hZGRSb3coW2xhYmVsLCB0b3RhbFRva2Vucywgc3R5bGUsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUb2tlbiBDb25zdW1wdGlvbiBieSBMTE0gQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTSBDYWxsIFNlcXVlbmNlJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ0NvbnN1bWVkIFRva2VucycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9rZW5fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCQlsZXQgYWxsRXhwYW5kZWQgPSBmYWxzZTsKCQlmdW5jdGlvbiB0b2dnbGVBbGxEZXRhaWxzKCkgewoJCQlhbGxFeHBhbmRlZCA9ICFhbGxFeHBhbmRlZDsKCQkJZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnZGV0YWlscycpLmZvckVhY2goZCA9PiB7CgkJCQlpZiAoYWxsRXhwYW5kZWQpIGQuc2V0QXR0cmlidXRlKCdvcGVuJywgJycpOwoJCQkJZWxzZSBkLnJlbW92ZUF0dHJpYnV0ZSgnb3BlbicpOwoJCQl9KTsKCQl9Cgk8L3NjcmlwdD4KCgo8L2JvZHk+CjwvaHRtbD4K" },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-workflowsh57w[1] Phase: Succeeded StartedAt: 2026-07-02 17:22:50 +0000 UTC FinishedAt: 2026-07-02 17:22:50 +0000 UTC Input: nil Output: nil --------- Name: series-workflowsh57w[1].abort-on-skip-outcome Phase: Skipped StartedAt: 2026-07-02 17:22:50 +0000 UTC FinishedAt: 2026-07-02 17:22:50 +0000 UTC Input: nil Output: nil --------- Name: series-workflowsh57w[2] Phase: Succeeded StartedAt: 2026-07-02 17:22:50 +0000 UTC FinishedAt: 2026-07-02 21:57:55 +0000 UTC Input: nil Output: nil --------- Name: series-workflowsh57w[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"0b58988cacfc91604c4b5be2c3295f8aac0ee3d0","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL","BPF_JIT"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["bpf_do_misc_fixups","bpf_add_kfunc_call","__bpf_prog_select_runtime"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"0b58988cacfc91604c4b5be2c3295f8aac0ee3d0","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL","BPF_JIT"],"series_id":"ed69a3e2-60b5-48c5-861c-fa65ee3ca490","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN) Phase: Succeeded StartedAt: 2026-07-02 17:22:50 +0000 UTC FinishedAt: 2026-07-02 21:57:55 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:element,Default:nil,Value:*{"base":{"arch":"amd64","commit_hash":"0b58988cacfc91604c4b5be2c3295f8aac0ee3d0","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL","BPF_JIT"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},"fuzz":{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["bpf_do_misc_fixups","bpf_add_kfunc_call","__bpf_prog_select_runtime"],"skip_cover_check":false},"patched":{"arch":"amd64","commit_hash":"0b58988cacfc91604c4b5be2c3295f8aac0ee3d0","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL","BPF_JIT"],"series_id":"ed69a3e2-60b5-48c5-861c-fa65ee3ca490","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},"retest":null,"track":"KASAN"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: nil --------- Name: series-workflowsh57w[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"0b58988cacfc91604c4b5be2c3295f8aac0ee3d0","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL","BPF_JIT"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["bpf_do_misc_fixups","bpf_add_kfunc_call","__bpf_prog_select_runtime"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"0b58988cacfc91604c4b5be2c3295f8aac0ee3d0","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL","BPF_JIT"],"series_id":"ed69a3e2-60b5-48c5-861c-fa65ee3ca490","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[0] Phase: Succeeded StartedAt: 2026-07-02 17:22:50 +0000 UTC FinishedAt: 2026-07-02 17:24:43 +0000 UTC Input: nil Output: nil --------- Name: series-workflowsh57w[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"0b58988cacfc91604c4b5be2c3295f8aac0ee3d0","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL","BPF_JIT"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["bpf_do_misc_fixups","bpf_add_kfunc_call","__bpf_prog_select_runtime"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"0b58988cacfc91604c4b5be2c3295f8aac0ee3d0","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL","BPF_JIT"],"series_id":"ed69a3e2-60b5-48c5-861c-fa65ee3ca490","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[0].save-base-req Phase: Succeeded StartedAt: 2026-07-02 17:22:50 +0000 UTC FinishedAt: 2026-07-02 17:23:08 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"0b58988cacfc91604c4b5be2c3295f8aac0ee3d0","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL","BPF_JIT"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-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-workflowsh57w/series-workflowsh57w-convert-artifact-711720296/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowsh57w[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"0b58988cacfc91604c4b5be2c3295f8aac0ee3d0","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL","BPF_JIT"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["bpf_do_misc_fixups","bpf_add_kfunc_call","__bpf_prog_select_runtime"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"0b58988cacfc91604c4b5be2c3295f8aac0ee3d0","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL","BPF_JIT"],"series_id":"ed69a3e2-60b5-48c5-861c-fa65ee3ca490","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[1] Phase: Succeeded StartedAt: 2026-07-02 17:24:43 +0000 UTC FinishedAt: 2026-07-02 18:05:58 +0000 UTC Input: nil Output: nil --------- Name: series-workflowsh57w[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"0b58988cacfc91604c4b5be2c3295f8aac0ee3d0","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL","BPF_JIT"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["bpf_do_misc_fixups","bpf_add_kfunc_call","__bpf_prog_select_runtime"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"0b58988cacfc91604c4b5be2c3295f8aac0ee3d0","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL","BPF_JIT"],"series_id":"ed69a3e2-60b5-48c5-861c-fa65ee3ca490","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[1].base-build Phase: Succeeded StartedAt: 2026-07-02 17:24:43 +0000 UTC FinishedAt: 2026-07-02 18:05:58 +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:*91579db8-8f46-46bf-92da-793e8c985160,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-workflowsh57w/series-workflowsh57w-convert-artifact-711720296/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": "107bb870-50aa-453f-9caf-8c5a9fcbb0a6", "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-workflowsh57w/series-workflowsh57w-build-action-3651175134/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowsh57w[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"0b58988cacfc91604c4b5be2c3295f8aac0ee3d0","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL","BPF_JIT"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["bpf_do_misc_fixups","bpf_add_kfunc_call","__bpf_prog_select_runtime"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"0b58988cacfc91604c4b5be2c3295f8aac0ee3d0","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL","BPF_JIT"],"series_id":"ed69a3e2-60b5-48c5-861c-fa65ee3ca490","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[1].base-build(0) Phase: Succeeded StartedAt: 2026-07-02 17:24:43 +0000 UTC FinishedAt: 2026-07-02 18:03:32 +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:*91579db8-8f46-46bf-92da-793e8c985160,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-workflowsh57w/series-workflowsh57w-convert-artifact-711720296/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": "107bb870-50aa-453f-9caf-8c5a9fcbb0a6", "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-workflowsh57w/series-workflowsh57w-build-action-3651175134/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowsh57w[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"0b58988cacfc91604c4b5be2c3295f8aac0ee3d0","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL","BPF_JIT"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["bpf_do_misc_fixups","bpf_add_kfunc_call","__bpf_prog_select_runtime"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"0b58988cacfc91604c4b5be2c3295f8aac0ee3d0","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL","BPF_JIT"],"series_id":"ed69a3e2-60b5-48c5-861c-fa65ee3ca490","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[2] Phase: Succeeded StartedAt: 2026-07-02 18:05:58 +0000 UTC FinishedAt: 2026-07-02 18:05:58 +0000 UTC Input: nil Output: nil --------- Name: series-workflowsh57w[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"0b58988cacfc91604c4b5be2c3295f8aac0ee3d0","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL","BPF_JIT"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["bpf_do_misc_fixups","bpf_add_kfunc_call","__bpf_prog_select_runtime"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"0b58988cacfc91604c4b5be2c3295f8aac0ee3d0","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL","BPF_JIT"],"series_id":"ed69a3e2-60b5-48c5-861c-fa65ee3ca490","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[2].abort-if-base-build-failed Phase: Skipped StartedAt: 2026-07-02 18:05:58 +0000 UTC FinishedAt: 2026-07-02 18:05:58 +0000 UTC Input: nil Output: nil --------- Name: series-workflowsh57w[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"0b58988cacfc91604c4b5be2c3295f8aac0ee3d0","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL","BPF_JIT"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["bpf_do_misc_fixups","bpf_add_kfunc_call","__bpf_prog_select_runtime"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"0b58988cacfc91604c4b5be2c3295f8aac0ee3d0","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL","BPF_JIT"],"series_id":"ed69a3e2-60b5-48c5-861c-fa65ee3ca490","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[3] Phase: Succeeded StartedAt: 2026-07-02 18:05:58 +0000 UTC FinishedAt: 2026-07-02 18:06:18 +0000 UTC Input: nil Output: nil --------- Name: series-workflowsh57w[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"0b58988cacfc91604c4b5be2c3295f8aac0ee3d0","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL","BPF_JIT"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["bpf_do_misc_fixups","bpf_add_kfunc_call","__bpf_prog_select_runtime"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"0b58988cacfc91604c4b5be2c3295f8aac0ee3d0","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL","BPF_JIT"],"series_id":"ed69a3e2-60b5-48c5-861c-fa65ee3ca490","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[3].save-patched-req Phase: Succeeded StartedAt: 2026-07-02 18:05:58 +0000 UTC FinishedAt: 2026-07-02 18:06:08 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"0b58988cacfc91604c4b5be2c3295f8aac0ee3d0","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL","BPF_JIT"],"series_id":"ed69a3e2-60b5-48c5-861c-fa65ee3ca490","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-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-workflowsh57w/series-workflowsh57w-convert-artifact-3851967311/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowsh57w[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"0b58988cacfc91604c4b5be2c3295f8aac0ee3d0","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL","BPF_JIT"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["bpf_do_misc_fixups","bpf_add_kfunc_call","__bpf_prog_select_runtime"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"0b58988cacfc91604c4b5be2c3295f8aac0ee3d0","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL","BPF_JIT"],"series_id":"ed69a3e2-60b5-48c5-861c-fa65ee3ca490","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[4] Phase: Succeeded StartedAt: 2026-07-02 18:06:18 +0000 UTC FinishedAt: 2026-07-02 18:08:53 +0000 UTC Input: nil Output: nil --------- Name: series-workflowsh57w[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"0b58988cacfc91604c4b5be2c3295f8aac0ee3d0","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL","BPF_JIT"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["bpf_do_misc_fixups","bpf_add_kfunc_call","__bpf_prog_select_runtime"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"0b58988cacfc91604c4b5be2c3295f8aac0ee3d0","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL","BPF_JIT"],"series_id":"ed69a3e2-60b5-48c5-861c-fa65ee3ca490","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[4].boot-test-base Phase: Succeeded StartedAt: 2026-07-02 18:06:18 +0000 UTC FinishedAt: 2026-07-02 18:08:43 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*107bb870-50aa-453f-9caf-8c5a9fcbb0a6,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-workflowsh57w/series-workflowsh57w-build-action-3651175134/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-workflowsh57w[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"0b58988cacfc91604c4b5be2c3295f8aac0ee3d0","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL","BPF_JIT"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["bpf_do_misc_fixups","bpf_add_kfunc_call","__bpf_prog_select_runtime"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"0b58988cacfc91604c4b5be2c3295f8aac0ee3d0","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL","BPF_JIT"],"series_id":"ed69a3e2-60b5-48c5-861c-fa65ee3ca490","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[5] Phase: Succeeded StartedAt: 2026-07-02 18:08:53 +0000 UTC FinishedAt: 2026-07-02 18:08:53 +0000 UTC Input: nil Output: nil --------- Name: series-workflowsh57w[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"0b58988cacfc91604c4b5be2c3295f8aac0ee3d0","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL","BPF_JIT"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["bpf_do_misc_fixups","bpf_add_kfunc_call","__bpf_prog_select_runtime"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"0b58988cacfc91604c4b5be2c3295f8aac0ee3d0","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL","BPF_JIT"],"series_id":"ed69a3e2-60b5-48c5-861c-fa65ee3ca490","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[5].abort-if-base-boot-failed Phase: Skipped StartedAt: 2026-07-02 18:08:53 +0000 UTC FinishedAt: 2026-07-02 18:08:53 +0000 UTC Input: nil Output: nil --------- Name: series-workflowsh57w[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"0b58988cacfc91604c4b5be2c3295f8aac0ee3d0","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL","BPF_JIT"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["bpf_do_misc_fixups","bpf_add_kfunc_call","__bpf_prog_select_runtime"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"0b58988cacfc91604c4b5be2c3295f8aac0ee3d0","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL","BPF_JIT"],"series_id":"ed69a3e2-60b5-48c5-861c-fa65ee3ca490","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[6] Phase: Succeeded StartedAt: 2026-07-02 18:08:53 +0000 UTC FinishedAt: 2026-07-02 18:52:46 +0000 UTC Input: nil Output: nil --------- Name: series-workflowsh57w[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"0b58988cacfc91604c4b5be2c3295f8aac0ee3d0","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL","BPF_JIT"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["bpf_do_misc_fixups","bpf_add_kfunc_call","__bpf_prog_select_runtime"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"0b58988cacfc91604c4b5be2c3295f8aac0ee3d0","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL","BPF_JIT"],"series_id":"ed69a3e2-60b5-48c5-861c-fa65ee3ca490","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[6].patched-build Phase: Succeeded StartedAt: 2026-07-02 18:08:53 +0000 UTC FinishedAt: 2026-07-02 18:52:46 +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:*91579db8-8f46-46bf-92da-793e8c985160,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-workflowsh57w/series-workflowsh57w-convert-artifact-3851967311/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": "c71e1a95-046b-4e21-a2b0-35de338747b6", "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-workflowsh57w/series-workflowsh57w-build-action-2958287715/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowsh57w[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"0b58988cacfc91604c4b5be2c3295f8aac0ee3d0","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL","BPF_JIT"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["bpf_do_misc_fixups","bpf_add_kfunc_call","__bpf_prog_select_runtime"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"0b58988cacfc91604c4b5be2c3295f8aac0ee3d0","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL","BPF_JIT"],"series_id":"ed69a3e2-60b5-48c5-861c-fa65ee3ca490","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[6].patched-build(0) Phase: Succeeded StartedAt: 2026-07-02 18:08:53 +0000 UTC FinishedAt: 2026-07-02 18:51:29 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:findings,Default:nil,Value:*true,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:test-name,Default:nil,Value:*[KASAN] Build Patched,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:smoke-build,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:session-id,Default:nil,Value:*91579db8-8f46-46bf-92da-793e8c985160,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-workflowsh57w/series-workflowsh57w-convert-artifact-3851967311/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": "c71e1a95-046b-4e21-a2b0-35de338747b6", "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-workflowsh57w/series-workflowsh57w-build-action-2958287715/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowsh57w[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"0b58988cacfc91604c4b5be2c3295f8aac0ee3d0","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL","BPF_JIT"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["bpf_do_misc_fixups","bpf_add_kfunc_call","__bpf_prog_select_runtime"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"0b58988cacfc91604c4b5be2c3295f8aac0ee3d0","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL","BPF_JIT"],"series_id":"ed69a3e2-60b5-48c5-861c-fa65ee3ca490","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[7] Phase: Succeeded StartedAt: 2026-07-02 18:52:46 +0000 UTC FinishedAt: 2026-07-02 18:52:46 +0000 UTC Input: nil Output: nil --------- Name: series-workflowsh57w[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"0b58988cacfc91604c4b5be2c3295f8aac0ee3d0","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL","BPF_JIT"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["bpf_do_misc_fixups","bpf_add_kfunc_call","__bpf_prog_select_runtime"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"0b58988cacfc91604c4b5be2c3295f8aac0ee3d0","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL","BPF_JIT"],"series_id":"ed69a3e2-60b5-48c5-861c-fa65ee3ca490","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[7].abort-if-patched-build-failed Phase: Skipped StartedAt: 2026-07-02 18:52:46 +0000 UTC FinishedAt: 2026-07-02 18:52:46 +0000 UTC Input: nil Output: nil --------- Name: series-workflowsh57w[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"0b58988cacfc91604c4b5be2c3295f8aac0ee3d0","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL","BPF_JIT"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["bpf_do_misc_fixups","bpf_add_kfunc_call","__bpf_prog_select_runtime"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"0b58988cacfc91604c4b5be2c3295f8aac0ee3d0","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL","BPF_JIT"],"series_id":"ed69a3e2-60b5-48c5-861c-fa65ee3ca490","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[8] Phase: Succeeded StartedAt: 2026-07-02 18:52:46 +0000 UTC FinishedAt: 2026-07-02 18:54:47 +0000 UTC Input: nil Output: nil --------- Name: series-workflowsh57w[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"0b58988cacfc91604c4b5be2c3295f8aac0ee3d0","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL","BPF_JIT"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["bpf_do_misc_fixups","bpf_add_kfunc_call","__bpf_prog_select_runtime"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"0b58988cacfc91604c4b5be2c3295f8aac0ee3d0","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL","BPF_JIT"],"series_id":"ed69a3e2-60b5-48c5-861c-fa65ee3ca490","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[8].boot-test-patched Phase: Succeeded StartedAt: 2026-07-02 18:52:46 +0000 UTC FinishedAt: 2026-07-02 18:54:37 +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:*c71e1a95-046b-4e21-a2b0-35de338747b6,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-workflowsh57w/series-workflowsh57w-build-action-2958287715/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-workflowsh57w[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"0b58988cacfc91604c4b5be2c3295f8aac0ee3d0","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL","BPF_JIT"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["bpf_do_misc_fixups","bpf_add_kfunc_call","__bpf_prog_select_runtime"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"0b58988cacfc91604c4b5be2c3295f8aac0ee3d0","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL","BPF_JIT"],"series_id":"ed69a3e2-60b5-48c5-861c-fa65ee3ca490","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[10] Phase: Succeeded StartedAt: 2026-07-02 18:54:47 +0000 UTC FinishedAt: 2026-07-02 21:57:55 +0000 UTC Input: nil Output: nil --------- Name: series-workflowsh57w[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"0b58988cacfc91604c4b5be2c3295f8aac0ee3d0","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL","BPF_JIT"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["bpf_do_misc_fixups","bpf_add_kfunc_call","__bpf_prog_select_runtime"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"0b58988cacfc91604c4b5be2c3295f8aac0ee3d0","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL","BPF_JIT"],"series_id":"ed69a3e2-60b5-48c5-861c-fa65ee3ca490","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[10].run-fuzz Phase: Succeeded StartedAt: 2026-07-02 18:54:47 +0000 UTC FinishedAt: 2026-07-02 21:57:55 +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-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["bpf_do_misc_fixups","bpf_add_kfunc_call","__bpf_prog_select_runtime"],"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:*107bb870-50aa-453f-9caf-8c5a9fcbb0a6,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*c71e1a95-046b-4e21-a2b0-35de338747b6,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-workflowsh57w/series-workflowsh57w-build-action-3651175134/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-workflowsh57w/series-workflowsh57w-build-action-2958287715/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: nil --------- Name: series-workflowsh57w[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"0b58988cacfc91604c4b5be2c3295f8aac0ee3d0","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL","BPF_JIT"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["bpf_do_misc_fixups","bpf_add_kfunc_call","__bpf_prog_select_runtime"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"0b58988cacfc91604c4b5be2c3295f8aac0ee3d0","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL","BPF_JIT"],"series_id":"ed69a3e2-60b5-48c5-861c-fa65ee3ca490","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[10].run-fuzz[0] Phase: Succeeded StartedAt: 2026-07-02 18:54:47 +0000 UTC FinishedAt: 2026-07-02 18:55:08 +0000 UTC Input: nil Output: nil --------- Name: series-workflowsh57w[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"0b58988cacfc91604c4b5be2c3295f8aac0ee3d0","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL","BPF_JIT"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["bpf_do_misc_fixups","bpf_add_kfunc_call","__bpf_prog_select_runtime"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"0b58988cacfc91604c4b5be2c3295f8aac0ee3d0","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL","BPF_JIT"],"series_id":"ed69a3e2-60b5-48c5-861c-fa65ee3ca490","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[10].run-fuzz[0].save-fuzz-config Phase: Succeeded StartedAt: 2026-07-02 18:54:47 +0000 UTC FinishedAt: 2026-07-02 18:54:56 +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-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["bpf_do_misc_fixups","bpf_add_kfunc_call","__bpf_prog_select_runtime"],"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-workflowsh57w/series-workflowsh57w-convert-artifact-2302481416/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowsh57w[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"0b58988cacfc91604c4b5be2c3295f8aac0ee3d0","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL","BPF_JIT"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["bpf_do_misc_fixups","bpf_add_kfunc_call","__bpf_prog_select_runtime"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"0b58988cacfc91604c4b5be2c3295f8aac0ee3d0","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL","BPF_JIT"],"series_id":"ed69a3e2-60b5-48c5-861c-fa65ee3ca490","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[10].run-retest Phase: Skipped StartedAt: 2026-07-02 18:54:47 +0000 UTC FinishedAt: 2026-07-02 18:54:47 +0000 UTC Input: nil Output: nil --------- Name: series-workflowsh57w[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"0b58988cacfc91604c4b5be2c3295f8aac0ee3d0","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL","BPF_JIT"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["bpf_do_misc_fixups","bpf_add_kfunc_call","__bpf_prog_select_runtime"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"0b58988cacfc91604c4b5be2c3295f8aac0ee3d0","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL","BPF_JIT"],"series_id":"ed69a3e2-60b5-48c5-861c-fa65ee3ca490","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[9] Phase: Succeeded StartedAt: 2026-07-02 18:54:47 +0000 UTC FinishedAt: 2026-07-02 18:54:47 +0000 UTC Input: nil Output: nil --------- Name: series-workflowsh57w[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"0b58988cacfc91604c4b5be2c3295f8aac0ee3d0","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL","BPF_JIT"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["bpf_do_misc_fixups","bpf_add_kfunc_call","__bpf_prog_select_runtime"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"0b58988cacfc91604c4b5be2c3295f8aac0ee3d0","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL","BPF_JIT"],"series_id":"ed69a3e2-60b5-48c5-861c-fa65ee3ca490","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[9].abort-if-patched-boot-failed Phase: Skipped StartedAt: 2026-07-02 18:54:47 +0000 UTC FinishedAt: 2026-07-02 18:54:47 +0000 UTC Input: nil Output: nil --------- Name: series-workflowsh57w[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"0b58988cacfc91604c4b5be2c3295f8aac0ee3d0","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL","BPF_JIT"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["bpf_do_misc_fixups","bpf_add_kfunc_call","__bpf_prog_select_runtime"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"0b58988cacfc91604c4b5be2c3295f8aac0ee3d0","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL","BPF_JIT"],"series_id":"ed69a3e2-60b5-48c5-861c-fa65ee3ca490","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[10].run-fuzz[1] Phase: Succeeded StartedAt: 2026-07-02 18:55:08 +0000 UTC FinishedAt: 2026-07-02 21:57:55 +0000 UTC Input: nil Output: nil --------- Name: series-workflowsh57w[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"0b58988cacfc91604c4b5be2c3295f8aac0ee3d0","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL","BPF_JIT"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["bpf_do_misc_fixups","bpf_add_kfunc_call","__bpf_prog_select_runtime"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"0b58988cacfc91604c4b5be2c3295f8aac0ee3d0","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL","BPF_JIT"],"series_id":"ed69a3e2-60b5-48c5-861c-fa65ee3ca490","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[10].run-fuzz[1].fuzz Phase: Succeeded StartedAt: 2026-07-02 18:55:08 +0000 UTC FinishedAt: 2026-07-02 21:57:46 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*107bb870-50aa-453f-9caf-8c5a9fcbb0a6,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*c71e1a95-046b-4e21-a2b0-35de338747b6,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-workflowsh57w/series-workflowsh57w-build-action-3651175134/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-workflowsh57w/series-workflowsh57w-build-action-2958287715/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-workflowsh57w/series-workflowsh57w-convert-artifact-2302481416/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,}