Name: series-workflow6bcpk Phase: Succeeded StartedAt: 2026-07-12 03:17:57 +0000 UTC FinishedAt: 2026-07-12 05:28:04 +0000 UTC Input: nil Output: nil --------- Name: series-workflow6bcpk[0] Phase: Succeeded StartedAt: 2026-07-12 03:17:57 +0000 UTC FinishedAt: 2026-07-12 03:49:37 +0000 UTC Input: nil Output: nil --------- Name: series-workflow6bcpk[0].run-triage Phase: Succeeded StartedAt: 2026-07-12 03:17:57 +0000 UTC FinishedAt: 2026-07-12 03:49:37 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "bpf", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git", "commit_hash": "7cbd0c4cebe4c9f678d15e6b9ba975e1155a107f", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "BPF_JIT" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "bpf", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git", "commit_hash": "7cbd0c4cebe4c9f678d15e6b9ba975e1155a107f", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "BPF_JIT" ], "series_id": "3d659dff-6055-482a-93e1-86d188e2eb63" }, "track": "KASAN", "fuzz": { "focus": [ "bpf" ], "focus_symbols": [ "build_insn", "bpf_int_jit_compile" ], "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+CgkJCTx0ZD4yMDI2LzA3LzEyIDAzOjQ4PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0JQRl9KSVQmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtidWlsZF9pbnNuJiMzNDssCiAgICAmIzM0O2JwZl9pbnRfaml0X2NvbXBpbGUmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBMb29uZ0FyY2ggQlBGIEpJVCBjb21waWxlciwgZml4aW5nIGJ1Z3MgaW4gQlBGX05FRyBhbmQgQlBGX0pBIGluc3RydWN0aW9uIGdlbmVyYXRpb24sIGFzIHdlbGwgYXMgYW4gaXNzdWUgd2l0aCBpbW1lZGlhdGUgbW92ZXMuIFRoZXNlIGNoYW5nZXMgYWZmZWN0IGhvdyBlQlBGIHByb2dyYW1zIGFyZSBjb21waWxlZCB0byBuYXRpdmUgY29kZSBhbmQgc2hvdWxkIGJlIGZ1enplZC4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xMiAwMzo0ODwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IDVlYjlhYWE0ZjIxMWZlNjk4ZTQ1N2RiYzJjMzNjNTcxMzJlOWM4YTVcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgU3VuIEp1bCAxMiAwMzo0ODo1NiAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9hcmNoL2xvb25nYXJjaC9uZXQvYnBmX2ppdC5jIGIvYXJjaC9sb29uZ2FyY2gvbmV0L2JwZl9qaXQuY1xuaW5kZXggMjczOGI0ZGIxMTY1MzMuLjY5YmMzMGY4OGM0NGY0IDEwMDY0NFxuLS0tIGEvYXJjaC9sb29uZ2FyY2gvbmV0L2JwZl9qaXQuY1xuJiM0MzsmIzQzOyYjNDM7IGIvYXJjaC9sb29uZ2FyY2gvbmV0L2JwZl9qaXQuY1xuQEAgLTg5NCw3ICYjNDM7ODk0LDYgQEAgc3RhdGljIGludCBidWlsZF9pbnNuKGNvbnN0IHN0cnVjdCBicGZfaW5zbiAqaW5zbiwgc3RydWN0IGppdF9jdHggKmN0eCwgYm9vbCBleHRcbiBcdC8qIGRzdCA9IC1kc3QgKi9cbiBcdGNhc2UgQlBGX0FMVSB8IEJQRl9ORUc6XG4gXHRjYXNlIEJQRl9BTFU2NCB8IEJQRl9ORUc6XG4tXHRcdG1vdmVfaW1tKGN0eCwgdDEsIGltbSwgaXMzMik7XG4gXHRcdGVtaXRfaW5zbihjdHgsIHN1YmQsIGRzdCwgTE9PTkdBUkNIX0dQUl9aRVJPLCBkc3QpO1xuIFx0XHRlbWl0X3pleHRfMzIoY3R4LCBkc3QsIGlzMzIpO1xuIFx0XHRicmVhaztcbkBAIC0xMTUxLDExICYjNDM7MTE1MCwxMiBAQCBzdGF0aWMgaW50IGJ1aWxkX2luc24oY29uc3Qgc3RydWN0IGJwZl9pbnNuICppbnNuLCBzdHJ1Y3Qgaml0X2N0eCAqY3R4LCBib29sIGV4dFxuIFxuIFx0LyogUEMgJiM0Mzs9IG9mZiAqL1xuIFx0Y2FzZSBCUEZfSk1QIHwgQlBGX0pBOlxuJiM0MztcdFx0am1wX29mZnNldCA9IGJwZjJsYV9vZmZzZXQoaSwgb2ZmLCBjdHgpO1xuJiM0MztcdFx0aWYgKGVtaXRfdW5jb25kX2ptcChjdHgsIGptcF9vZmZzZXQpIFx1MDAzYyAwKVxuJiM0MztcdFx0XHRnb3RvIHRvb2ZhcjtcbiYjNDM7XHRcdGJyZWFrO1xuIFx0Y2FzZSBCUEZfSk1QMzIgfCBCUEZfSkE6XG4tXHRcdGlmIChCUEZfQ0xBU1MoY29kZSkgPT0gQlBGX0pNUClcbi1cdFx0XHRqbXBfb2Zmc2V0ID0gYnBmMmxhX29mZnNldChpLCBvZmYsIGN0eCk7XG4tXHRcdGVsc2Vcbi1cdFx0XHRqbXBfb2Zmc2V0ID0gYnBmMmxhX29mZnNldChpLCBpbW0sIGN0eCk7XG4mIzQzO1x0XHRqbXBfb2Zmc2V0ID0gYnBmMmxhX29mZnNldChpLCBpbW0sIGN0eCk7XG4gXHRcdGlmIChlbWl0X3VuY29uZF9qbXAoY3R4LCBqbXBfb2Zmc2V0KSBcdTAwM2MgMClcbiBcdFx0XHRnb3RvIHRvb2ZhcjtcbiBcdFx0YnJlYWs7XG5kaWZmIC0tZ2l0IGEvYXJjaC9sb29uZ2FyY2gvbmV0L2JwZl9qaXQuaCBiL2FyY2gvbG9vbmdhcmNoL25ldC9icGZfaml0LmhcbmluZGV4IGE4ZTI5YmUzNWZhODE1Li5iYjU4YzQyYzJmMmE5NyAxMDA2NDRcbi0tLSBhL2FyY2gvbG9vbmdhcmNoL25ldC9icGZfaml0LmhcbiYjNDM7JiM0MzsmIzQzOyBiL2FyY2gvbG9vbmdhcmNoL25ldC9icGZfaml0LmhcbkBAIC0xNTYsNyAmIzQzOzE1Niw3IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBtb3ZlX2ltbShzdHJ1Y3Qgaml0X2N0eCAqY3R4LCBlbnVtIGxvb25nYXJjaF9ncHIgcmQsIGxvbmcgaW1tXG4gXHQvKiBvcmkgcmQsICR6ZXJvLCBpbW1fMTFfMCAqL1xuIFx0aWYgKGlzX3Vuc2lnbmVkX2ltbTEyKGltbSkpIHtcbiBcdFx0ZW1pdF9pbnNuKGN0eCwgb3JpLCByZCwgTE9PTkdBUkNIX0dQUl9aRVJPLCBpbW0pO1xuLVx0XHRnb3RvIHpleHQ7XG4mIzQzO1x0XHRyZXR1cm47XG4gXHR9XG4gXG4gXHQvKiBsdTUyaWQgcmQsICR6ZXJvLCBpbW1fNjNfNTIgKi9cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xMiAwMzo0ODwvdGQ+CgkJCTx0ZD5hZ2VudDwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtCUEZfSklUJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7YnVpbGRfaW5zbiYjMzQ7LAogICAgJiMzNDticGZfaW50X2ppdF9jb21waWxlJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUgTG9vbmdBcmNoIEJQRiBKSVQgY29tcGlsZXIsIGZpeGluZyBidWdzIGluIEJQRl9ORUcgYW5kIEJQRl9KQSBpbnN0cnVjdGlvbiBnZW5lcmF0aW9uLCBhcyB3ZWxsIGFzIGFuIGlzc3VlIHdpdGggaW1tZWRpYXRlIG1vdmVzLiBUaGVzZSBjaGFuZ2VzIGFmZmVjdCBob3cgZUJQRiBwcm9ncmFtcyBhcmUgY29tcGlsZWQgdG8gbmF0aXZlIGNvZGUgYW5kIHNob3VsZCBiZSBmdXp6ZWQuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZQppZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5CnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuCgpSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOgotIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuCi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuCi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LgotIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwKZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLgoKSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaAp0b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS4KCldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOgoxLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLgogICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy4KMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuCiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy4KICAgRG8gbm90IGxpc3QgdG9vIGdlbmVyaWMgY29uZmlncyAod2UgYWxyZWFkeSBoYXZlIHRoZW0gZW5hYmxlZCkuIE9ubHkgbGlzdCB0aG9zZSB0aGF0CiAgIHNwZWNpZmljYWxseSBjb3ZlciB0aGUgbW9kaWZpZWQgY29kZS4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzIG91dHB1dCBhcnJheSwKICAgYW5kIERPIE5PVCBhZGQgYSAmIzM5O0NPTkZJR18mIzM5OyBwcmVmaXggKGUuZy4sIHJldHVybiAmIzM0O05FVF9JUFY0JiMzNDsgaW5zdGVhZCBvZiAmIzM0O0NPTkZJR19ORVRfSVBWNCYjMzQ7KS4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IDVlYjlhYWE0ZjIxMWZlNjk4ZTQ1N2RiYzJjMzNjNTcxMzJlOWM4YTUKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgU3VuIEp1bCAxMiAwMzo0ODo1NiAyMDI2ICYjNDM7MDAwMAoKICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldwoKZGlmZiAtLWdpdCBhL2FyY2gvbG9vbmdhcmNoL25ldC9icGZfaml0LmMgYi9hcmNoL2xvb25nYXJjaC9uZXQvYnBmX2ppdC5jCmluZGV4IDI3MzhiNGRiMTE2NTMzLi42OWJjMzBmODhjNDRmNCAxMDA2NDQKLS0tIGEvYXJjaC9sb29uZ2FyY2gvbmV0L2JwZl9qaXQuYwomIzQzOyYjNDM7JiM0MzsgYi9hcmNoL2xvb25nYXJjaC9uZXQvYnBmX2ppdC5jCkBAIC04OTQsNyAmIzQzOzg5NCw2IEBAIHN0YXRpYyBpbnQgYnVpbGRfaW5zbihjb25zdCBzdHJ1Y3QgYnBmX2luc24gKmluc24sIHN0cnVjdCBqaXRfY3R4ICpjdHgsIGJvb2wgZXh0CiAJLyogZHN0ID0gLWRzdCAqLwogCWNhc2UgQlBGX0FMVSB8IEJQRl9ORUc6CiAJY2FzZSBCUEZfQUxVNjQgfCBCUEZfTkVHOgotCQltb3ZlX2ltbShjdHgsIHQxLCBpbW0sIGlzMzIpOwogCQllbWl0X2luc24oY3R4LCBzdWJkLCBkc3QsIExPT05HQVJDSF9HUFJfWkVSTywgZHN0KTsKIAkJZW1pdF96ZXh0XzMyKGN0eCwgZHN0LCBpczMyKTsKIAkJYnJlYWs7CkBAIC0xMTUxLDExICYjNDM7MTE1MCwxMiBAQCBzdGF0aWMgaW50IGJ1aWxkX2luc24oY29uc3Qgc3RydWN0IGJwZl9pbnNuICppbnNuLCBzdHJ1Y3Qgaml0X2N0eCAqY3R4LCBib29sIGV4dAogCiAJLyogUEMgJiM0Mzs9IG9mZiAqLwogCWNhc2UgQlBGX0pNUCB8IEJQRl9KQToKJiM0MzsJCWptcF9vZmZzZXQgPSBicGYybGFfb2Zmc2V0KGksIG9mZiwgY3R4KTsKJiM0MzsJCWlmIChlbWl0X3VuY29uZF9qbXAoY3R4LCBqbXBfb2Zmc2V0KSAmbHQ7IDApCiYjNDM7CQkJZ290byB0b29mYXI7CiYjNDM7CQlicmVhazsKIAljYXNlIEJQRl9KTVAzMiB8IEJQRl9KQToKLQkJaWYgKEJQRl9DTEFTUyhjb2RlKSA9PSBCUEZfSk1QKQotCQkJam1wX29mZnNldCA9IGJwZjJsYV9vZmZzZXQoaSwgb2ZmLCBjdHgpOwotCQllbHNlCi0JCQlqbXBfb2Zmc2V0ID0gYnBmMmxhX29mZnNldChpLCBpbW0sIGN0eCk7CiYjNDM7CQlqbXBfb2Zmc2V0ID0gYnBmMmxhX29mZnNldChpLCBpbW0sIGN0eCk7CiAJCWlmIChlbWl0X3VuY29uZF9qbXAoY3R4LCBqbXBfb2Zmc2V0KSAmbHQ7IDApCiAJCQlnb3RvIHRvb2ZhcjsKIAkJYnJlYWs7CmRpZmYgLS1naXQgYS9hcmNoL2xvb25nYXJjaC9uZXQvYnBmX2ppdC5oIGIvYXJjaC9sb29uZ2FyY2gvbmV0L2JwZl9qaXQuaAppbmRleCBhOGUyOWJlMzVmYTgxNS4uYmI1OGM0MmMyZjJhOTcgMTAwNjQ0Ci0tLSBhL2FyY2gvbG9vbmdhcmNoL25ldC9icGZfaml0LmgKJiM0MzsmIzQzOyYjNDM7IGIvYXJjaC9sb29uZ2FyY2gvbmV0L2JwZl9qaXQuaApAQCAtMTU2LDcgJiM0MzsxNTYsNyBAQCBzdGF0aWMgaW5saW5lIHZvaWQgbW92ZV9pbW0oc3RydWN0IGppdF9jdHggKmN0eCwgZW51bSBsb29uZ2FyY2hfZ3ByIHJkLCBsb25nIGltbQogCS8qIG9yaSByZCwgJHplcm8sIGltbV8xMV8wICovCiAJaWYgKGlzX3Vuc2lnbmVkX2ltbTEyKGltbSkpIHsKIAkJZW1pdF9pbnNuKGN0eCwgb3JpLCByZCwgTE9PTkdBUkNIX0dQUl9aRVJPLCBpbW0pOwotCQlnb3RvIHpleHQ7CiYjNDM7CQlyZXR1cm47CiAJfQogCiAJLyogbHU1MmlkIHJkLCAkemVybywgaW1tXzYzXzUyICovCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzEyIDAzOjQ4PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDIzODYKCQkJCQkJCW91dHB1dDogMzUKCQkJCQkJCXRob3VnaHRzOiA0NDYKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqTG9vbmdBcmNoIEJQRiBKSVQgUGF0Y2ggQW5hbHlzaXMqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggYW5kIGl0JiMzOTtzIHRvdWNoaW5nIGBhcmNoL2xvb25nYXJjaC9uZXQvYnBmX2ppdC5jYCBhbmQgYGFyY2gvbG9vbmdhcmNoL25ldC9icGZfaml0LmhgLiBJdCYjMzk7cyBhIEJQRiBKSVQgY29tcGlsZXIgZml4IHNwZWNpZmljYWxseSBmb3IgTG9vbmdBcmNoLiBUaGUgY2hhbmdlcyBzZWVtIHByZXR0eSBzdHJhaWdodGZvcndhcmQ6IGl0IGFkZHJlc3NlcyBhIGJ1ZyBpbiBob3cgYEJQRl9BTFUgfCBCUEZfTkVHYCBhbmQgYEJQRl9BTFU2NCB8IEJQRl9ORUdgIGluc3RydWN0aW9ucyB3ZXJlIGJlaW5nIGhhbmRsZWQsIHNwZWNpZmljYWxseSBhIHJlZHVuZGFudCBhbmQgcG90ZW50aWFsbHkgcHJvYmxlbWF0aWMgYG1vdmVfaW1tYCBjYWxsLiBUaGVyZSYjMzk7cyBhbHNvIHNvbWUgY29ycmVjdGlvbiBpbiB0aGUgaGFuZGxpbmcgb2YgYEJQRl9KTVAgfCBCUEZfSkFgIGFuZCBgQlBGX0pNUDMyIHwgQlBGX0pBYC4gSW4gYWRkaXRpb24gdG8gdGhhdCwgYSBtaW5vciB1cGRhdGUgdG8gYG1vdmVfaW1tYCB3aGVyZSBhIGBnb3RvIHpleHQ7YCBnZXRzIHR1cm5lZCBpbnRvIGByZXR1cm47YCB3aGVuIGRlYWxpbmcgd2l0aCBzbWFsbCB1bnNpZ25lZCBpbW1lZGlhdGVzLCBhbmQgdGhhdCBtYWtlcyBzZW5zZS4KClRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSwgYSBidWcgZml4LiBUaGUgY29uY2VybiBpcywgb2YgY291cnNlLCB0aGF0IHRoaXMgaXMgTG9vbmdBcmNoLXNwZWNpZmljIGNvZGUuIFN5emthbGxlciwgbXkgbWFpbiBmdXp6ZXIsIHR5cGljYWxseSBydW5zIG9uIHg4Nl82NCwgYXJtNjQsIFJJU0MtViwgZXRjLiBNeSBrbmVlLWplcmsgcmVhY3Rpb24gaXMgdGhhdCBpdCBtaWdodCBiZSB1bnJlYWNoYWJsZSBpbiBhIGxvdCBvZiBteSB0eXBpY2FsIGZ1enppbmcgY29uZmlndXJhdGlvbnMuIFRoZW4gYWdhaW4sIHRoZSBwcm9tcHQgc2F5cyAmIzM0O0NvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSYjMzQ7LiBTbywgUUVNVSBpcyBhbiBvcHRpb24gaGVyZSwgYW5kIEkgY2FuIHJ1biBMb29uZ0FyY2ggaW4gUUVNVS4gCgpBIHF1aWNrIGNoZWNrIGNvbmZpcm1zIHN5emthbGxlciAqZG9lcyogc3VwcG9ydCBMb29uZ0FyY2gsIGV4Y2VsbGVudCEgVGhpcyBkZWZpbml0ZWx5IG1ha2VzIGl0IGZ1enphYmxlLiBJIG5lZWQgdG8gbWFrZSBzdXJlIHRoZSByaWdodCBjb25maWdzIGFyZSBzZXQ6IGBDT05GSUdfQlBGX0pJVGAgYW5kIG9mIGNvdXJzZSBgQ09ORklHX0xPT05HQVJDSGAuIFNvLCBJJiMzOTtsbCByZXZpZXcgYGFyY2gvbG9vbmdhcmNoL25ldC9icGZfaml0LmNgIGFuZCBgYXJjaC9sb29uZ2FyY2gvbmV0L2JwZl9qaXQuaGAgdG8gc2VlIGV4YWN0bHkgd2hhdCYjMzk7cyBnb2luZyBvbiBhbmQgdmVyaWZ5IHRoYXQgdGhlc2UgY29uZmlncyBhcmUgc2V0IGNvcnJlY3RseSB0byBnaXZlIGl0IGEgZnV6emluZyBnby4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xMiAwMzo0OTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtDT05GSUdfQlBGX0pJVCYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2FyY2gvbG9vbmdhcmNoL25ldC8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7YXJjaC9sb29uZ2FyY2gvbmV0L01ha2VmaWxlLTYtI1xuYXJjaC9sb29uZ2FyY2gvbmV0L01ha2VmaWxlOjc6b2JqLSQoQ09ORklHX0JQRl9KSVQpICYjNDM7PSBicGZfaml0Lm9cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xMiAwMzo0OTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzMzkzCgkJCQkJCQlvdXRwdXQ6IDM4CgkJCQkJCQl0aG91Z2h0czogNzAKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqTXkgQlBGIEpJVCBDb25maWd1cmF0aW9uIENoZWNrKioKCk9rYXksIHNvIEkgc2VlIHdlIGFic29sdXRlbHkgbmVlZCBgQ09ORklHX0JQRl9KSVRgIGVuYWJsZWQuIFRoYXQmIzM5O3MgdGhlIGJhc2VsaW5lLCB0aGUgZm91bmRhdGlvbi4gTm93LCBiZWZvcmUgSSBkaXZlIHRvbyBkZWVwLCBsZXQmIzM5O3MganVzdCBxdWlja2x5IHNjYW4gYW5kIHNlZSBpZiB0aGVyZSBhcmUgYW55IG90aGVyIGNvbmZpZ3VyYXRpb24gdmFyaWFibGVzIHRoYXQgYXJlIHN1YnRseSByZWxhdGVkLCBhbnl0aGluZyBlbHNlIEkgc2hvdWxkIGJlIGF3YXJlIG9mIG9yIG1pZ2h0IG5lZWQgdG8gdHdlYWsgaW4gY29uanVuY3Rpb24gd2l0aCB0aGlzLiBNeSBwcmltYXJ5IGZvY3VzIGlzIHRoZSBgYnVpbGRfaW5zbmAgYW5kIGBtb3ZlX2ltbWAgZnVuY3Rpb25zLCB0aGV5JiMzOTtyZSB0aGUgb25lcyB0aGF0IGhhdmUgc2VlbiBtb2RpZmljYXRpb24sIHNvIHRoZXkgYXJlIHRoZSBwbGFjZXMgdG8gc3RhcnQuIEkmIzM5O2xsIG5lZWQgdG8gbG9jYXRlIGBidWlsZF9pbnNuYCwgc28gbGV0JiMzOTtzIG5hdmlnYXRlIHRvIGBhcmNoL2xvb25nYXJjaC9uZXQvYnBmX2ppdC5jYC4gVGhpcyBpcyB3aGVyZSB0aGUgbWFnaWMgaGFwcGVucywgYW5kIHdoZXJlIEkgd2lsbCBmb2N1cyBteSBpbml0aWFsIHJldmlldy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xMiAwMzo0OTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtidWlsZF9pbnNuJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7YXJjaC9sb29uZ2FyY2gvbmV0L2JwZl9qaXQuYyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDthcmNoL2xvb25nYXJjaC9uZXQvYnBmX2ppdC5jPTY1Mz1zdGF0aWMgaW50IGFkZF9leGNlcHRpb25faGFuZGxlcihjb25zdCBzdHJ1Y3QgYnBmX2luc24gKmluc24sXG4tLVxuYXJjaC9sb29uZ2FyY2gvbmV0L2JwZl9qaXQuYy03MTQtXG5hcmNoL2xvb25nYXJjaC9uZXQvYnBmX2ppdC5jOjcxNTpzdGF0aWMgaW50IGJ1aWxkX2luc24oY29uc3Qgc3RydWN0IGJwZl9pbnNuICppbnNuLCBzdHJ1Y3Qgaml0X2N0eCAqY3R4LCBib29sIGV4dHJhX3Bhc3MpXG5hcmNoL2xvb25nYXJjaC9uZXQvYnBmX2ppdC5jLTcxNi17XG4tLVxuYXJjaC9sb29uZ2FyY2gvbmV0L2JwZl9qaXQuYz0xNDc0PXN0YXRpYyBpbnQgYnVpbGRfYm9keShzdHJ1Y3Qgaml0X2N0eCAqY3R4LCBib29sIGV4dHJhX3Bhc3MpXG4tLVxuYXJjaC9sb29uZ2FyY2gvbmV0L2JwZl9qaXQuYy0xNDg1LVxuYXJjaC9sb29uZ2FyY2gvbmV0L2JwZl9qaXQuYzoxNDg2Olx0XHRyZXQgPSBidWlsZF9pbnNuKGluc24sIGN0eCwgZXh0cmFfcGFzcyk7XG5hcmNoL2xvb25nYXJjaC9uZXQvYnBmX2ppdC5jLTE0ODctXHRcdGlmIChyZXQgXHUwMDNlIDApIHtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD43LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xMiAwMzo0OTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzOTQ3CgkJCQkJCQlvdXRwdXQ6IDQyCgkJCQkJCQl0aG91Z2h0czogMTI5CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkJQRiBKSVQgb24gTG9vbmdBcmNoIC0gRm9jdXNpbmcgdGhlIExlbnMqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgQlBGIEpJVCBpbXBsZW1lbnRhdGlvbiBmb3IgTG9vbmdBcmNoLCBhbmQgdGhlIGtleSBwbGF5ZXIgaGVyZSBzZWVtcyB0byBiZSB0aGUgYGJ1aWxkX2luc25gIGZ1bmN0aW9uLiBUaGF0JiMzOTtzIHRoZSBtYWluIGluc3RydWN0aW9uIGJ1aWxkZXIsIGFuZCBteSBmb2N1cyBuZWVkcyB0byBiZSBzaGFycGVzdCB0aGVyZS4gSSBzZWUgYG1vdmVfaW1tYCBpcyBpbmxpbmUsIGRlY2xhcmVkIGluIHRoZSBoZWFkZXIuIFRoYXQgbWlnaHQgYmUgbGVzcyBvZiBhIHRhcmdldCwgYnV0IEkmIzM5O2xsIG1ha2UgYSBtZW50YWwgbm90ZSBvZiBpdDsgbWF5YmUgSSYjMzk7bGwgbmVlZCB0byBjaGFzZSBpdHMgY2FsbHMgZG93biB0aGUgbGluZS4gVGhlIGdvb2QgbmV3cyBpcywgYmFzZWQgb24gd2hhdCBJJiMzOTttIHNlZWluZywgdGhpcyBsb29rcyBsaWtlIGEgZnVuY3Rpb25hbCBwYXRjaC4gTXkgaW5zdGluY3QgdGVsbHMgbWUgdG8gc2V0IGBXb3J0aEZ1enppbmc9dHJ1ZWAuCgpHaXZlbiB0aGUgaW5saW5lIG5hdHVyZSBvZiBgbW92ZV9pbW1gLCBsZXQmIzM5O3MgYnJvYWRlbiB0aGUgcG90ZW50aWFsIHRhcmdldCBhIGJpdC4gSWYgYG1vdmVfaW1tYCBpcyBhIGNhbmRpZGF0ZSBmb3IgZnV6emluZywgdGhlbiBtYXliZSBpdHMgcGFyZW50IGZ1bmN0aW9uIGBidWlsZF9ib2R5YCBvciB0aGUgZnVuY3Rpb24gdGhhdCB1bHRpbWF0ZWx5IGNhbGxzIGBidWlsZF9pbnNuYCB3aGljaCBpcyBgYnBmX2ludF9qaXRfY29tcGlsZWAgY291bGQgYmUgbW9yZSByZWxldmFudC4gUmlnaHQsIGl0JiMzOTtzIHRpbWUgdG8gY2hlY2sgdGhhdCBgYnBmX2ludF9qaXRfY29tcGlsZWAgZnVuY3Rpb24gbW9yZSBjbG9zZWx5LiBMZXQmIzM5O3Mgc2VlIHdoYXQmIzM5O3MgaW4gdGhlcmUuLi4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD44LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xMiAwMzo0OTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDticGZfaW50X2ppdF9jb21waWxlJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7YXJjaC9sb29uZ2FyY2gvbmV0L2JwZl9qaXQuYyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDthcmNoL2xvb25nYXJjaC9uZXQvYnBmX2ppdC5jPTIxODI9aW50IGFyY2hfYnBmX3RyYW1wb2xpbmVfc2l6ZShjb25zdCBzdHJ1Y3QgYnRmX2Z1bmNfbW9kZWwgKm0sIHUzMiBmbGFncyxcbi0tXG5hcmNoL2xvb25nYXJjaC9uZXQvYnBmX2ppdC5jLTIxOTYtXG5hcmNoL2xvb25nYXJjaC9uZXQvYnBmX2ppdC5jOjIxOTc6c3RydWN0IGJwZl9wcm9nICpicGZfaW50X2ppdF9jb21waWxlKHN0cnVjdCBicGZfdmVyaWZpZXJfZW52ICplbnYsIHN0cnVjdCBicGZfcHJvZyAqcHJvZylcbmFyY2gvbG9vbmdhcmNoL25ldC9icGZfaml0LmMtMjE5OC17XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTIgMDM6NDk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNDUzMwoJCQkJCQkJb3V0cHV0OiAzMwoJCQkJCQkJdGhvdWdodHM6IDExMwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIENvbmZpZ3VyYXRpb24gUmVxdWlyZW1lbnRzIGZvciBKSVQgQ29tcGlsYXRpb24qKgoKT2theSwgc28gSSBuZWVkIHRvIHN1bW1hcml6ZSB0aGUgY29uZmlndXJhdGlvbnMgcmVsYXRlZCB0byB0aGlzIGNvZGUuIFRoZSBwcm9tcHQgc3BlY2lmaWNhbGx5IHNheXMgdG8gYXZvaWQgZ2VuZXJpYyBjb25maWd1cmF0aW9ucyB0aGF0IGFyZSBsaWtlbHkgYWxyZWFkeSBlbmFibGVkIGFuZCBvbmx5IGxpc3QgdGhvc2UgdGhhdCBhcmUgZGlyZWN0bHkgcmVsZXZhbnQgdG8gdGhlIG1vZGlmaWVkIGNvZGUuIE15IGluaXRpYWwgZm9jdXMgaXMgb24gYGJ1aWxkX2luc25gIGFuZCBgYnBmX2ludF9qaXRfY29tcGlsZWAsIHdoaWNoIHN1Z2dlc3QgYSBCUEYgSklUIGNvbXBpbGVyIGlzIGF0IHBsYXkuCgpUaGUgb2J2aW91cyBjb25maWd1cmF0aW9uLCBgQlBGX0pJVGAsIHNwcmluZ3MgdG8gbWluZCBiZWNhdXNlIGl0JiMzOTtzIHRoZSBtb3N0IGRpcmVjdCBpbmRpY2F0b3Igb2YgSklUIGNvbXBpbGF0aW9uIHdpdGhpbiB0aGUgQlBGIGZyYW1ld29yay4gQnV0LCB0aGUgcHJvbXB0IGltcGxpZXMgdGhlcmUgbWlnaHQgYmUgc29tZXRoaW5nIG1vcmUgc3BlY2lmaWMgdG8gdGhpcyBjb2RlLiBXaGlsZSBgQlBGX0pJVGAgaXMgcHJldHR5IHN0YW5kYXJkIGZvciBKSVQgc3VwcG9ydCwgaXQmIzM5O3MgKnRoZSogY29uZmlndXJhdGlvbiBmb3IgdGhpcyBmaWxlJiMzOTtzIEpJVCBpbXBsZW1lbnRhdGlvbiwgc28gaXQmIzM5O3Mgd29ydGggbm90aW5nLgoKVGhlIGJlc3QgYXBwcm9hY2ggc2VlbXMgdG8gYmUgY3Jvc3MtcmVmZXJlbmNpbmcgdGhpcyB3aXRoIHRoZSBhcmNoaXRlY3R1cmUgc3BlY2lmaWMgS2NvbmZpZyBmaWxlLiBMZXQgbWUgY2hlY2sgYGFyY2gvbG9vbmdhcmNoL0tjb25maWdgIHRvIHNlZSBpZiB0aGVyZSBhcmUgYW55IGFyY2hpdGVjdHVyZS1zcGVjaWZpYyBjb25maWd1cmF0aW9ucyBvciBkZXBlbmRlbmNpZXMgcmVsYXRlZCB0byBgQlBGX0pJVGAuIFRoYXQgc2hvdWxkIGdpdmUgbWUgYSBiZXR0ZXIgdmlldyBvZiB3aGljaCBjb25maWcgb3B0aW9ucyBhcmUgaW1wb3J0YW50LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xMiAwMzo0OTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtCUEZfSklUJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7YXJjaC9sb29uZ2FyY2gvS2NvbmZpZyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDthcmNoL2xvb25nYXJjaC9LY29uZmlnPTI9Y29uZmlnIExPT05HQVJDSFxuLS1cbmFyY2gvbG9vbmdhcmNoL0tjb25maWctNzktXHRzZWxlY3QgQVJDSF9VU0VfUVVFVUVEX1NQSU5MT0NLU1xuYXJjaC9sb29uZ2FyY2gvS2NvbmZpZzo4MDpcdHNlbGVjdCBBUkNIX1dBTlRfREVGQVVMVF9CUEZfSklUIGlmIEhBVkVfRUJQRl9KSVRcbmFyY2gvbG9vbmdhcmNoL0tjb25maWctODEtXHRzZWxlY3QgQVJDSF9XQU5UX0RFRkFVTFRfVE9QRE9XTl9NTUFQX0xBWU9VVFxuLS1cbmFyY2gvbG9vbmdhcmNoL0tjb25maWctMTQzLVx0c2VsZWN0IEhBVkVfRFlOQU1JQ19GVFJBQ0VfV0lUSF9SRUdTXG5hcmNoL2xvb25nYXJjaC9LY29uZmlnOjE0NDpcdHNlbGVjdCBIQVZFX0VCUEZfSklUIGlmIDY0QklUXG5hcmNoL2xvb25nYXJjaC9LY29uZmlnLTE0NS1cdHNlbGVjdCBIQVZFX0VGRklDSUVOVF9VTkFMSUdORURfQUNDRVNTIGlmICFBUkNIX1NUUklDVF9BTElHTlxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjExLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xMiAwMzo0OTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA1MTM0CgkJCQkJCQlvdXRwdXQ6IDExNQoJCQkJCQkJdGhvdWdodHM6IDU1OAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBBc3Nlc3NtZW50IG9mIHRoZSBCUEYgSklUIENvbmZpZ3VyYXRpb24gYW5kIFBhdGNoKioKCk9rYXksIHNvIGl0IGxvb2tzIGxpa2UgYEJQRl9KSVRgIGlzIGVuYWJsZWQgYnkgZGVmYXVsdCBpZiB0aGUgYXJjaGl0ZWN0dXJlIGhhcyBgSEFWRV9FQlBGX0pJVGAsIHdoaWNoIG1ha2VzIHNlbnNlLiBJJiMzOTtsbCBuZWVkIHRvIGFkZCBgQlBGX0pJVGAgdG8gdGhlIGBFbmFibGVDb25maWdzYCBzZXR0aW5nIHRvIHJlZmxlY3QgdGhhdC4gSXQmIzM5O3MgYWxzbyB3b3J0aCBub3RpbmcgdGhhdCBgQlBGX1NZU0NBTExgIGlzIGEgZGVwZW5kZW5jeSBmb3IgQlBGIGluIGdlbmVyYWwsIGFsdGhvdWdoIGBCUEZfSklUYCBpcyB0aGUgY3JpdGljYWwgcGllY2UgaGVyZS4KCk5vdywgbGV0IG1lIGp1c3QgcmV2aWV3IHRoZSBwYXRjaCBpdHNlbGYgdG8gY29uZmlybSBldmVyeXRoaW5nJiMzOTtzIHNoaXAtc2hhcGUuCgpUaGUgZmlyc3Qgc2VjdGlvbiwgdGhlIG5lZ2F0aXZlIG9wZXJhdGlvbiwgbG9va3MgZ29vZC4gSXQgc2VlbXMgbGlrZSB0aGUgaW1tZWRpYXRlIHZhbHVlIGxvYWRpbmcgaGFzIGJlZW4gcmVtb3ZlZCwgcmVwbGFjZWQgd2l0aCBhIGRpcmVjdCBzdWJ0cmFjdGlvbiBmcm9tIHplcm8uIFRoYXQgc2hvdWxkIHdvcmsgYXMgaW50ZW5kZWQuCgpOZXh0LCB0aGUgdW5jb25kaXRpb25hbCBqdW1wIGNvZGUgYWxzbyBhcHBlYXJzIGZ1bmN0aW9uYWwuIFRoZSBsb2dpYyBmb3IgY2FsY3VsYXRpbmcgdGhlIGp1bXAgb2Zmc2V0IGFuZCBlbWl0dGluZyB0aGUganVtcCBpbnN0cnVjdGlvbiBzZWVtcyBzb3VuZCwgd2l0aCB0aGUgMzItYml0IHZlcnNpb24gYWxzbyBoYW5kbGVkIGNvcnJlY3RseS4gSSBhbHNvIG5vdGVkIHRoYXQgdGhlIGp1bXAgb2Zmc2V0IGNhbGN1bGF0aW9uIHVzaW5nIGBicGYybGFfb2Zmc2V0KClgIGlzIGluIHRoZSByaWdodCBwbGFjZSwgc28gbm8gaXNzdWVzIHRoZXJlLgoKRmluYWxseSwgdGhlIGltbWVkaWF0ZSB2YWx1ZSBsb2FkaW5nIGNvZGUgbG9va3MgY29ycmVjdC4gVGhlIGBvcmlgIGluc3RydWN0aW9uIGlzIGJlaW5nIHVzZWQgdG8gbG9hZCB1bnNpZ25lZCBpbW1lZGlhdGVzLCBhbmQgdGhlIGB6ZXh0YCBpcyByZW1vdmVkLCByZXBsYWNlZCB3aXRoIHRoZSBgcmV0dXJuYCBzdGF0ZW1lbnQuIFRoaXMgYWxzbyBzZWVtcyB0byBiZSBmdW5jdGlvbmFsbHkgY29tcGxldGUuCgpHaXZlbiBhbGwgdGhpcywgSSYjMzk7bSBjb25maWRlbnQgdGhhdCB0aGVzZSBjaGFuZ2VzIGFyZSBmdW5jdGlvbmFsLiBUaGVyZWZvcmUsIEkgY2FuIGNvbmZpZGVudGx5IHNldCBgV29ydGhGdXp6aW5nPXRydWVgLiBJIHdpbGwgZm9jdXMgbXkgZnV6emluZyBlZmZvcnRzIG9uIGBidWlsZF9pbnNuYCBhbmQgYGJwZl9pbnRfaml0X2NvbXBpbGVgLiBUaGUgYEVuYWJsZUNvbmZpZ3NgIHNob3VsZCBiZSBzZXQgdG8gYEJQRl9KSVRgIC4KCkkmIzM5O20gcmVhZHkgdG8gY2FsbCBgc2V0LXJlc3VsdHNgIG5vdy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMi8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTIgMDM6NDk8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0JQRl9KSVQmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtidWlsZF9pbnNuJiMzNDssCiAgICAmIzM0O2JwZl9pbnRfaml0X2NvbXBpbGUmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBMb29uZ0FyY2ggQlBGIEpJVCBjb21waWxlciwgZml4aW5nIGJ1Z3MgaW4gQlBGX05FRyBhbmQgQlBGX0pBIGluc3RydWN0aW9uIGdlbmVyYXRpb24sIGFzIHdlbGwgYXMgYW4gaXNzdWUgd2l0aCBpbW1lZGlhdGUgbW92ZXMuIFRoZXNlIGNoYW5nZXMgYWZmZWN0IGhvdyBlQlBGIHByb2dyYW1zIGFyZSBjb21waWxlZCB0byBuYXRpdmUgY29kZSBhbmQgc2hvdWxkIGJlIGZ1enplZC4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7QlBGX0pJVCYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2J1aWxkX2luc24mIzM0OywKICAgICYjMzQ7YnBmX2ludF9qaXRfY29tcGlsZSYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIExvb25nQXJjaCBCUEYgSklUIGNvbXBpbGVyLCBmaXhpbmcgYnVncyBpbiBCUEZfTkVHIGFuZCBCUEZfSkEgaW5zdHJ1Y3Rpb24gZ2VuZXJhdGlvbiwgYXMgd2VsbCBhcyBhbiBpc3N1ZSB3aXRoIGltbWVkaWF0ZSBtb3Zlcy4gVGhlc2UgY2hhbmdlcyBhZmZlY3QgaG93IGVCUEYgcHJvZ3JhbXMgYXJlIGNvbXBpbGVkIHRvIG5hdGl2ZSBjb2RlIGFuZCBzaG91bGQgYmUgZnV6emVkLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTwvdGJvZHk+Cgk8L3RhYmxlPgoKCTxkaXYgaWQ9ImxsbV9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+TExNIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgVG9rZW5zPC90aD4KCQkJCQk8dGg+QXZnIFRva2VuczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJsbG1fc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJ0b29sX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5Ub29sIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9InRvb2xfc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJkdXJhdGlvbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+Cgk8ZGl2IGlkPSJ0b2tlbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+CgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9qc2FwaSI+PC9zY3JpcHQ+Cgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CgkJZ29vZ2xlLmxvYWQoInZpc3VhbGl6YXRpb24iLCAiMSIsIHtwYWNrYWdlczpbImNvcmVjaGFydCJdfSk7CgkJZ29vZ2xlLnNldE9uTG9hZENhbGxiYWNrKGRyYXdDaGFydHMpOwoKCQlmdW5jdGlvbiBkcmF3Q2hhcnRzKCkgewoJCQljb25zdCByYXdEYXRhID0gW3siU3RhcnRlZCI6IjIwMjYtMDctMTJUMDM6NDg6NTguMzMyNTQ2NTFaIiwiU2VxIjowLCJOZXN0aW5nIjowLCJUeXBlIjoiZmxvdyIsIk5hbWUiOiJwYXRjaC10cmlhZ2UiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyNzgzMDA1OTcxNywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJCUEZfSklUXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiYnVpbGRfaW5zblwiLFxuICAgIFwiYnBmX2ludF9qaXRfY29tcGlsZVwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUgTG9vbmdBcmNoIEJQRiBKSVQgY29tcGlsZXIsIGZpeGluZyBidWdzIGluIEJQRl9ORUcgYW5kIEJQRl9KQSBpbnN0cnVjdGlvbiBnZW5lcmF0aW9uLCBhcyB3ZWxsIGFzIGFuIGlzc3VlIHdpdGggaW1tZWRpYXRlIG1vdmVzLiBUaGVzZSBjaGFuZ2VzIGFmZmVjdCBob3cgZUJQRiBwcm9ncmFtcyBhcmUgY29tcGlsZWQgdG8gbmF0aXZlIGNvZGUgYW5kIHNob3VsZCBiZSBmdXp6ZWQuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTEyVDAzOjQ4OjU4LjMzMjU3OTMzWiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo3MTAzMTA3MzksIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIlBhdGNoRGlmZlwiOiBcImNvbW1pdCA1ZWI5YWFhNGYyMTFmZTY5OGU0NTdkYmMyYzMzYzU3MTMyZTljOGE1XFxuQXV0aG9yOiBzeXotY2x1c3RlciBcXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cXHUwMDNlXFxuRGF0ZTogICBTdW4gSnVsIDEyIDAzOjQ4OjU2IDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL2FyY2gvbG9vbmdhcmNoL25ldC9icGZfaml0LmMgYi9hcmNoL2xvb25nYXJjaC9uZXQvYnBmX2ppdC5jXFxuaW5kZXggMjczOGI0ZGIxMTY1MzMuLjY5YmMzMGY4OGM0NGY0IDEwMDY0NFxcbi0tLSBhL2FyY2gvbG9vbmdhcmNoL25ldC9icGZfaml0LmNcXG4rKysgYi9hcmNoL2xvb25nYXJjaC9uZXQvYnBmX2ppdC5jXFxuQEAgLTg5NCw3ICs4OTQsNiBAQCBzdGF0aWMgaW50IGJ1aWxkX2luc24oY29uc3Qgc3RydWN0IGJwZl9pbnNuICppbnNuLCBzdHJ1Y3Qgaml0X2N0eCAqY3R4LCBib29sIGV4dFxcbiBcXHQvKiBkc3QgPSAtZHN0ICovXFxuIFxcdGNhc2UgQlBGX0FMVSB8IEJQRl9ORUc6XFxuIFxcdGNhc2UgQlBGX0FMVTY0IHwgQlBGX05FRzpcXG4tXFx0XFx0bW92ZV9pbW0oY3R4LCB0MSwgaW1tLCBpczMyKTtcXG4gXFx0XFx0ZW1pdF9pbnNuKGN0eCwgc3ViZCwgZHN0LCBMT09OR0FSQ0hfR1BSX1pFUk8sIGRzdCk7XFxuIFxcdFxcdGVtaXRfemV4dF8zMihjdHgsIGRzdCwgaXMzMik7XFxuIFxcdFxcdGJyZWFrO1xcbkBAIC0xMTUxLDExICsxMTUwLDEyIEBAIHN0YXRpYyBpbnQgYnVpbGRfaW5zbihjb25zdCBzdHJ1Y3QgYnBmX2luc24gKmluc24sIHN0cnVjdCBqaXRfY3R4ICpjdHgsIGJvb2wgZXh0XFxuIFxcbiBcXHQvKiBQQyArPSBvZmYgKi9cXG4gXFx0Y2FzZSBCUEZfSk1QIHwgQlBGX0pBOlxcbitcXHRcXHRqbXBfb2Zmc2V0ID0gYnBmMmxhX29mZnNldChpLCBvZmYsIGN0eCk7XFxuK1xcdFxcdGlmIChlbWl0X3VuY29uZF9qbXAoY3R4LCBqbXBfb2Zmc2V0KSBcXHUwMDNjIDApXFxuK1xcdFxcdFxcdGdvdG8gdG9vZmFyO1xcbitcXHRcXHRicmVhaztcXG4gXFx0Y2FzZSBCUEZfSk1QMzIgfCBCUEZfSkE6XFxuLVxcdFxcdGlmIChCUEZfQ0xBU1MoY29kZSkgPT0gQlBGX0pNUClcXG4tXFx0XFx0XFx0am1wX29mZnNldCA9IGJwZjJsYV9vZmZzZXQoaSwgb2ZmLCBjdHgpO1xcbi1cXHRcXHRlbHNlXFxuLVxcdFxcdFxcdGptcF9vZmZzZXQgPSBicGYybGFfb2Zmc2V0KGksIGltbSwgY3R4KTtcXG4rXFx0XFx0am1wX29mZnNldCA9IGJwZjJsYV9vZmZzZXQoaSwgaW1tLCBjdHgpO1xcbiBcXHRcXHRpZiAoZW1pdF91bmNvbmRfam1wKGN0eCwgam1wX29mZnNldCkgXFx1MDAzYyAwKVxcbiBcXHRcXHRcXHRnb3RvIHRvb2ZhcjtcXG4gXFx0XFx0YnJlYWs7XFxuZGlmZiAtLWdpdCBhL2FyY2gvbG9vbmdhcmNoL25ldC9icGZfaml0LmggYi9hcmNoL2xvb25nYXJjaC9uZXQvYnBmX2ppdC5oXFxuaW5kZXggYThlMjliZTM1ZmE4MTUuLmJiNThjNDJjMmYyYTk3IDEwMDY0NFxcbi0tLSBhL2FyY2gvbG9vbmdhcmNoL25ldC9icGZfaml0LmhcXG4rKysgYi9hcmNoL2xvb25nYXJjaC9uZXQvYnBmX2ppdC5oXFxuQEAgLTE1Niw3ICsxNTYsNyBAQCBzdGF0aWMgaW5saW5lIHZvaWQgbW92ZV9pbW0oc3RydWN0IGppdF9jdHggKmN0eCwgZW51bSBsb29uZ2FyY2hfZ3ByIHJkLCBsb25nIGltbVxcbiBcXHQvKiBvcmkgcmQsICR6ZXJvLCBpbW1fMTFfMCAqL1xcbiBcXHRpZiAoaXNfdW5zaWduZWRfaW1tMTIoaW1tKSkge1xcbiBcXHRcXHRlbWl0X2luc24oY3R4LCBvcmksIHJkLCBMT09OR0FSQ0hfR1BSX1pFUk8sIGltbSk7XFxuLVxcdFxcdGdvdG8gemV4dDtcXG4rXFx0XFx0cmV0dXJuO1xcbiBcXHR9XFxuIFxcbiBcXHQvKiBsdTUyaWQgcmQsICR6ZXJvLCBpbW1fNjNfNTIgKi9cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTJUMDM6NDg6NTkuMDQ0MTQ1MDk5WiIsIlNlcSI6MiwiTmVzdGluZyI6MSwiVHlwZSI6ImFnZW50IiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoyNzExODM5MTg5OCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJCUEZfSklUXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiYnVpbGRfaW5zblwiLFxuICAgIFwiYnBmX2ludF9qaXRfY29tcGlsZVwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUgTG9vbmdBcmNoIEJQRiBKSVQgY29tcGlsZXIsIGZpeGluZyBidWdzIGluIEJQRl9ORUcgYW5kIEJQRl9KQSBpbnN0cnVjdGlvbiBnZW5lcmF0aW9uLCBhcyB3ZWxsIGFzIGFuIGlzc3VlIHdpdGggaW1tZWRpYXRlIG1vdmVzLiBUaGVzZSBjaGFuZ2VzIGFmZmVjdCBob3cgZUJQRiBwcm9ncmFtcyBhcmUgY29tcGlsZWQgdG8gbmF0aXZlIGNvZGUgYW5kIHNob3VsZCBiZSBmdXp6ZWQuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLlxuWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmVcbmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cblxuSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluXG55b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHlcbnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuXG5cblJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6XG4tIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuXG4tIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLlxuLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuXG4tIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSxcbmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS5cblxuSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaFxudG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuXG5cbldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOlxuMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy5cbiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLlxuMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuXG4gICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuXG4gICBEbyBub3QgbGlzdCB0b28gZ2VuZXJpYyBjb25maWdzICh3ZSBhbHJlYWR5IGhhdmUgdGhlbSBlbmFibGVkKS4gT25seSBsaXN0IHRob3NlIHRoYXRcbiAgIHNwZWNpZmljYWxseSBjb3ZlciB0aGUgbW9kaWZpZWQgY29kZS4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzIG91dHB1dCBhcnJheSxcbiAgIGFuZCBETyBOT1QgYWRkIGEgJ0NPTkZJR18nIHByZWZpeCAoZS5nLiwgcmV0dXJuIFwiTkVUX0lQVjRcIiBpbnN0ZWFkIG9mIFwiQ09ORklHX05FVF9JUFY0XCIpLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgNWViOWFhYTRmMjExZmU2OThlNDU3ZGJjMmMzM2M1NzEzMmU5YzhhNVxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBTdW4gSnVsIDEyIDAzOjQ4OjU2IDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvYXJjaC9sb29uZ2FyY2gvbmV0L2JwZl9qaXQuYyBiL2FyY2gvbG9vbmdhcmNoL25ldC9icGZfaml0LmNcbmluZGV4IDI3MzhiNGRiMTE2NTMzLi42OWJjMzBmODhjNDRmNCAxMDA2NDRcbi0tLSBhL2FyY2gvbG9vbmdhcmNoL25ldC9icGZfaml0LmNcbisrKyBiL2FyY2gvbG9vbmdhcmNoL25ldC9icGZfaml0LmNcbkBAIC04OTQsNyArODk0LDYgQEAgc3RhdGljIGludCBidWlsZF9pbnNuKGNvbnN0IHN0cnVjdCBicGZfaW5zbiAqaW5zbiwgc3RydWN0IGppdF9jdHggKmN0eCwgYm9vbCBleHRcbiBcdC8qIGRzdCA9IC1kc3QgKi9cbiBcdGNhc2UgQlBGX0FMVSB8IEJQRl9ORUc6XG4gXHRjYXNlIEJQRl9BTFU2NCB8IEJQRl9ORUc6XG4tXHRcdG1vdmVfaW1tKGN0eCwgdDEsIGltbSwgaXMzMik7XG4gXHRcdGVtaXRfaW5zbihjdHgsIHN1YmQsIGRzdCwgTE9PTkdBUkNIX0dQUl9aRVJPLCBkc3QpO1xuIFx0XHRlbWl0X3pleHRfMzIoY3R4LCBkc3QsIGlzMzIpO1xuIFx0XHRicmVhaztcbkBAIC0xMTUxLDExICsxMTUwLDEyIEBAIHN0YXRpYyBpbnQgYnVpbGRfaW5zbihjb25zdCBzdHJ1Y3QgYnBmX2luc24gKmluc24sIHN0cnVjdCBqaXRfY3R4ICpjdHgsIGJvb2wgZXh0XG4gXG4gXHQvKiBQQyArPSBvZmYgKi9cbiBcdGNhc2UgQlBGX0pNUCB8IEJQRl9KQTpcbitcdFx0am1wX29mZnNldCA9IGJwZjJsYV9vZmZzZXQoaSwgb2ZmLCBjdHgpO1xuK1x0XHRpZiAoZW1pdF91bmNvbmRfam1wKGN0eCwgam1wX29mZnNldCkgXHUwMDNjIDApXG4rXHRcdFx0Z290byB0b29mYXI7XG4rXHRcdGJyZWFrO1xuIFx0Y2FzZSBCUEZfSk1QMzIgfCBCUEZfSkE6XG4tXHRcdGlmIChCUEZfQ0xBU1MoY29kZSkgPT0gQlBGX0pNUClcbi1cdFx0XHRqbXBfb2Zmc2V0ID0gYnBmMmxhX29mZnNldChpLCBvZmYsIGN0eCk7XG4tXHRcdGVsc2Vcbi1cdFx0XHRqbXBfb2Zmc2V0ID0gYnBmMmxhX29mZnNldChpLCBpbW0sIGN0eCk7XG4rXHRcdGptcF9vZmZzZXQgPSBicGYybGFfb2Zmc2V0KGksIGltbSwgY3R4KTtcbiBcdFx0aWYgKGVtaXRfdW5jb25kX2ptcChjdHgsIGptcF9vZmZzZXQpIFx1MDAzYyAwKVxuIFx0XHRcdGdvdG8gdG9vZmFyO1xuIFx0XHRicmVhaztcbmRpZmYgLS1naXQgYS9hcmNoL2xvb25nYXJjaC9uZXQvYnBmX2ppdC5oIGIvYXJjaC9sb29uZ2FyY2gvbmV0L2JwZl9qaXQuaFxuaW5kZXggYThlMjliZTM1ZmE4MTUuLmJiNThjNDJjMmYyYTk3IDEwMDY0NFxuLS0tIGEvYXJjaC9sb29uZ2FyY2gvbmV0L2JwZl9qaXQuaFxuKysrIGIvYXJjaC9sb29uZ2FyY2gvbmV0L2JwZl9qaXQuaFxuQEAgLTE1Niw3ICsxNTYsNyBAQCBzdGF0aWMgaW5saW5lIHZvaWQgbW92ZV9pbW0oc3RydWN0IGppdF9jdHggKmN0eCwgZW51bSBsb29uZ2FyY2hfZ3ByIHJkLCBsb25nIGltbVxuIFx0Lyogb3JpIHJkLCAkemVybywgaW1tXzExXzAgKi9cbiBcdGlmIChpc191bnNpZ25lZF9pbW0xMihpbW0pKSB7XG4gXHRcdGVtaXRfaW5zbihjdHgsIG9yaSwgcmQsIExPT05HQVJDSF9HUFJfWkVSTywgaW1tKTtcbi1cdFx0Z290byB6ZXh0O1xuK1x0XHRyZXR1cm47XG4gXHR9XG4gXG4gXHQvKiBsdTUyaWQgcmQsICR6ZXJvLCBpbW1fNjNfNTIgKi9cbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTEyVDAzOjQ4OjU5LjA0NDE0OTMwOVoiLCJTZXEiOjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjY5NjU5MjM5NTMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqTG9vbmdBcmNoIEJQRiBKSVQgUGF0Y2ggQW5hbHlzaXMqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIHBhdGNoIGFuZCBpdCdzIHRvdWNoaW5nIGBhcmNoL2xvb25nYXJjaC9uZXQvYnBmX2ppdC5jYCBhbmQgYGFyY2gvbG9vbmdhcmNoL25ldC9icGZfaml0LmhgLiBJdCdzIGEgQlBGIEpJVCBjb21waWxlciBmaXggc3BlY2lmaWNhbGx5IGZvciBMb29uZ0FyY2guIFRoZSBjaGFuZ2VzIHNlZW0gcHJldHR5IHN0cmFpZ2h0Zm9yd2FyZDogaXQgYWRkcmVzc2VzIGEgYnVnIGluIGhvdyBgQlBGX0FMVSB8IEJQRl9ORUdgIGFuZCBgQlBGX0FMVTY0IHwgQlBGX05FR2AgaW5zdHJ1Y3Rpb25zIHdlcmUgYmVpbmcgaGFuZGxlZCwgc3BlY2lmaWNhbGx5IGEgcmVkdW5kYW50IGFuZCBwb3RlbnRpYWxseSBwcm9ibGVtYXRpYyBgbW92ZV9pbW1gIGNhbGwuIFRoZXJlJ3MgYWxzbyBzb21lIGNvcnJlY3Rpb24gaW4gdGhlIGhhbmRsaW5nIG9mIGBCUEZfSk1QIHwgQlBGX0pBYCBhbmQgYEJQRl9KTVAzMiB8IEJQRl9KQWAuIEluIGFkZGl0aW9uIHRvIHRoYXQsIGEgbWlub3IgdXBkYXRlIHRvIGBtb3ZlX2ltbWAgd2hlcmUgYSBgZ290byB6ZXh0O2AgZ2V0cyB0dXJuZWQgaW50byBgcmV0dXJuO2Agd2hlbiBkZWFsaW5nIHdpdGggc21hbGwgdW5zaWduZWQgaW1tZWRpYXRlcywgYW5kIHRoYXQgbWFrZXMgc2Vuc2UuXG5cblRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSwgYSBidWcgZml4LiBUaGUgY29uY2VybiBpcywgb2YgY291cnNlLCB0aGF0IHRoaXMgaXMgTG9vbmdBcmNoLXNwZWNpZmljIGNvZGUuIFN5emthbGxlciwgbXkgbWFpbiBmdXp6ZXIsIHR5cGljYWxseSBydW5zIG9uIHg4Nl82NCwgYXJtNjQsIFJJU0MtViwgZXRjLiBNeSBrbmVlLWplcmsgcmVhY3Rpb24gaXMgdGhhdCBpdCBtaWdodCBiZSB1bnJlYWNoYWJsZSBpbiBhIGxvdCBvZiBteSB0eXBpY2FsIGZ1enppbmcgY29uZmlndXJhdGlvbnMuIFRoZW4gYWdhaW4sIHRoZSBwcm9tcHQgc2F5cyBcIkNvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZVwiLiBTbywgUUVNVSBpcyBhbiBvcHRpb24gaGVyZSwgYW5kIEkgY2FuIHJ1biBMb29uZ0FyY2ggaW4gUUVNVS4gXG5cbkEgcXVpY2sgY2hlY2sgY29uZmlybXMgc3l6a2FsbGVyICpkb2VzKiBzdXBwb3J0IExvb25nQXJjaCwgZXhjZWxsZW50ISBUaGlzIGRlZmluaXRlbHkgbWFrZXMgaXQgZnV6emFibGUuIEkgbmVlZCB0byBtYWtlIHN1cmUgdGhlIHJpZ2h0IGNvbmZpZ3MgYXJlIHNldDogYENPTkZJR19CUEZfSklUYCBhbmQgb2YgY291cnNlIGBDT05GSUdfTE9PTkdBUkNIYC4gU28sIEknbGwgcmV2aWV3IGBhcmNoL2xvb25nYXJjaC9uZXQvYnBmX2ppdC5jYCBhbmQgYGFyY2gvbG9vbmdhcmNoL25ldC9icGZfaml0LmhgIHRvIHNlZSBleGFjdGx5IHdoYXQncyBnb2luZyBvbiBhbmQgdmVyaWZ5IHRoYXQgdGhlc2UgY29uZmlncyBhcmUgc2V0IGNvcnJlY3RseSB0byBnaXZlIGl0IGEgZnV6emluZyBnby5cblxuXG4iLCJJbnB1dFRva2VucyI6MjM4NiwiT3V0cHV0VG9rZW5zIjozNSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjQ0NiwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTEyVDAzOjQ5OjA2LjAxMDA3NTkzMloiLCJTZXEiOjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjozNjE2MTM4MTgsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiQ09ORklHX0JQRl9KSVRcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiYXJjaC9sb29uZ2FyY2gvbmV0L1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJhcmNoL2xvb25nYXJjaC9uZXQvTWFrZWZpbGUtNi0jXFxuYXJjaC9sb29uZ2FyY2gvbmV0L01ha2VmaWxlOjc6b2JqLSQoQ09ORklHX0JQRl9KSVQpICs9IGJwZl9qaXQub1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xMlQwMzo0OTowNi4zNzE2OTQxNDFaIiwiU2VxIjo1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozMTU5MzQxNzUwLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKk15IEJQRiBKSVQgQ29uZmlndXJhdGlvbiBDaGVjayoqXG5cbk9rYXksIHNvIEkgc2VlIHdlIGFic29sdXRlbHkgbmVlZCBgQ09ORklHX0JQRl9KSVRgIGVuYWJsZWQuIFRoYXQncyB0aGUgYmFzZWxpbmUsIHRoZSBmb3VuZGF0aW9uLiBOb3csIGJlZm9yZSBJIGRpdmUgdG9vIGRlZXAsIGxldCdzIGp1c3QgcXVpY2tseSBzY2FuIGFuZCBzZWUgaWYgdGhlcmUgYXJlIGFueSBvdGhlciBjb25maWd1cmF0aW9uIHZhcmlhYmxlcyB0aGF0IGFyZSBzdWJ0bHkgcmVsYXRlZCwgYW55dGhpbmcgZWxzZSBJIHNob3VsZCBiZSBhd2FyZSBvZiBvciBtaWdodCBuZWVkIHRvIHR3ZWFrIGluIGNvbmp1bmN0aW9uIHdpdGggdGhpcy4gTXkgcHJpbWFyeSBmb2N1cyBpcyB0aGUgYGJ1aWxkX2luc25gIGFuZCBgbW92ZV9pbW1gIGZ1bmN0aW9ucywgdGhleSdyZSB0aGUgb25lcyB0aGF0IGhhdmUgc2VlbiBtb2RpZmljYXRpb24sIHNvIHRoZXkgYXJlIHRoZSBwbGFjZXMgdG8gc3RhcnQuIEknbGwgbmVlZCB0byBsb2NhdGUgYGJ1aWxkX2luc25gLCBzbyBsZXQncyBuYXZpZ2F0ZSB0byBgYXJjaC9sb29uZ2FyY2gvbmV0L2JwZl9qaXQuY2AuIFRoaXMgaXMgd2hlcmUgdGhlIG1hZ2ljIGhhcHBlbnMsIGFuZCB3aGVyZSBJIHdpbGwgZm9jdXMgbXkgaW5pdGlhbCByZXZpZXcuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjMzOTMsIk91dHB1dFRva2VucyI6MzgsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo3MCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0xMlQwMzo0OTowOS41MzEwMzg2NzFaIiwiU2VxIjo2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTMyOTI1NTY5LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImJ1aWxkX2luc25cIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiYXJjaC9sb29uZ2FyY2gvbmV0L2JwZl9qaXQuY1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJhcmNoL2xvb25nYXJjaC9uZXQvYnBmX2ppdC5jPTY1Mz1zdGF0aWMgaW50IGFkZF9leGNlcHRpb25faGFuZGxlcihjb25zdCBzdHJ1Y3QgYnBmX2luc24gKmluc24sXFxuLS1cXG5hcmNoL2xvb25nYXJjaC9uZXQvYnBmX2ppdC5jLTcxNC1cXG5hcmNoL2xvb25nYXJjaC9uZXQvYnBmX2ppdC5jOjcxNTpzdGF0aWMgaW50IGJ1aWxkX2luc24oY29uc3Qgc3RydWN0IGJwZl9pbnNuICppbnNuLCBzdHJ1Y3Qgaml0X2N0eCAqY3R4LCBib29sIGV4dHJhX3Bhc3MpXFxuYXJjaC9sb29uZ2FyY2gvbmV0L2JwZl9qaXQuYy03MTYte1xcbi0tXFxuYXJjaC9sb29uZ2FyY2gvbmV0L2JwZl9qaXQuYz0xNDc0PXN0YXRpYyBpbnQgYnVpbGRfYm9keShzdHJ1Y3Qgaml0X2N0eCAqY3R4LCBib29sIGV4dHJhX3Bhc3MpXFxuLS1cXG5hcmNoL2xvb25nYXJjaC9uZXQvYnBmX2ppdC5jLTE0ODUtXFxuYXJjaC9sb29uZ2FyY2gvbmV0L2JwZl9qaXQuYzoxNDg2OlxcdFxcdHJldCA9IGJ1aWxkX2luc24oaW5zbiwgY3R4LCBleHRyYV9wYXNzKTtcXG5hcmNoL2xvb25nYXJjaC9uZXQvYnBmX2ppdC5jLTE0ODctXFx0XFx0aWYgKHJldCBcXHUwMDNlIDApIHtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTJUMDM6NDk6MDkuNjYzOTg3ODE5WiIsIlNlcSI6NywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDIyNTg4OTcxOSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipCUEYgSklUIG9uIExvb25nQXJjaCAtIEZvY3VzaW5nIHRoZSBMZW5zKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgdGhpcyBCUEYgSklUIGltcGxlbWVudGF0aW9uIGZvciBMb29uZ0FyY2gsIGFuZCB0aGUga2V5IHBsYXllciBoZXJlIHNlZW1zIHRvIGJlIHRoZSBgYnVpbGRfaW5zbmAgZnVuY3Rpb24uIFRoYXQncyB0aGUgbWFpbiBpbnN0cnVjdGlvbiBidWlsZGVyLCBhbmQgbXkgZm9jdXMgbmVlZHMgdG8gYmUgc2hhcnBlc3QgdGhlcmUuIEkgc2VlIGBtb3ZlX2ltbWAgaXMgaW5saW5lLCBkZWNsYXJlZCBpbiB0aGUgaGVhZGVyLiBUaGF0IG1pZ2h0IGJlIGxlc3Mgb2YgYSB0YXJnZXQsIGJ1dCBJJ2xsIG1ha2UgYSBtZW50YWwgbm90ZSBvZiBpdDsgbWF5YmUgSSdsbCBuZWVkIHRvIGNoYXNlIGl0cyBjYWxscyBkb3duIHRoZSBsaW5lLiBUaGUgZ29vZCBuZXdzIGlzLCBiYXNlZCBvbiB3aGF0IEknbSBzZWVpbmcsIHRoaXMgbG9va3MgbGlrZSBhIGZ1bmN0aW9uYWwgcGF0Y2guIE15IGluc3RpbmN0IHRlbGxzIG1lIHRvIHNldCBgV29ydGhGdXp6aW5nPXRydWVgLlxuXG5HaXZlbiB0aGUgaW5saW5lIG5hdHVyZSBvZiBgbW92ZV9pbW1gLCBsZXQncyBicm9hZGVuIHRoZSBwb3RlbnRpYWwgdGFyZ2V0IGEgYml0LiBJZiBgbW92ZV9pbW1gIGlzIGEgY2FuZGlkYXRlIGZvciBmdXp6aW5nLCB0aGVuIG1heWJlIGl0cyBwYXJlbnQgZnVuY3Rpb24gYGJ1aWxkX2JvZHlgIG9yIHRoZSBmdW5jdGlvbiB0aGF0IHVsdGltYXRlbHkgY2FsbHMgYGJ1aWxkX2luc25gIHdoaWNoIGlzIGBicGZfaW50X2ppdF9jb21waWxlYCBjb3VsZCBiZSBtb3JlIHJlbGV2YW50LiBSaWdodCwgaXQncyB0aW1lIHRvIGNoZWNrIHRoYXQgYGJwZl9pbnRfaml0X2NvbXBpbGVgIGZ1bmN0aW9uIG1vcmUgY2xvc2VseS4gTGV0J3Mgc2VlIHdoYXQncyBpbiB0aGVyZS4uLlxuXG5cbiIsIklucHV0VG9rZW5zIjozOTQ3LCJPdXRwdXRUb2tlbnMiOjQyLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTI5LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTEyVDAzOjQ5OjEzLjg4OTg4MDQ3OFoiLCJTZXEiOjgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMzc2MzEzMzgsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiYnBmX2ludF9qaXRfY29tcGlsZVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJhcmNoL2xvb25nYXJjaC9uZXQvYnBmX2ppdC5jXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImFyY2gvbG9vbmdhcmNoL25ldC9icGZfaml0LmM9MjE4Mj1pbnQgYXJjaF9icGZfdHJhbXBvbGluZV9zaXplKGNvbnN0IHN0cnVjdCBidGZfZnVuY19tb2RlbCAqbSwgdTMyIGZsYWdzLFxcbi0tXFxuYXJjaC9sb29uZ2FyY2gvbmV0L2JwZl9qaXQuYy0yMTk2LVxcbmFyY2gvbG9vbmdhcmNoL25ldC9icGZfaml0LmM6MjE5NzpzdHJ1Y3QgYnBmX3Byb2cgKmJwZl9pbnRfaml0X2NvbXBpbGUoc3RydWN0IGJwZl92ZXJpZmllcl9lbnYgKmVudiwgc3RydWN0IGJwZl9wcm9nICpwcm9nKVxcbmFyY2gvbG9vbmdhcmNoL25ldC9icGZfaml0LmMtMjE5OC17XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTEyVDAzOjQ5OjE0LjAyNzc2MDc4NloiLCJTZXEiOjksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQwNTM5NDIwMTMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBDb25maWd1cmF0aW9uIFJlcXVpcmVtZW50cyBmb3IgSklUIENvbXBpbGF0aW9uKipcblxuT2theSwgc28gSSBuZWVkIHRvIHN1bW1hcml6ZSB0aGUgY29uZmlndXJhdGlvbnMgcmVsYXRlZCB0byB0aGlzIGNvZGUuIFRoZSBwcm9tcHQgc3BlY2lmaWNhbGx5IHNheXMgdG8gYXZvaWQgZ2VuZXJpYyBjb25maWd1cmF0aW9ucyB0aGF0IGFyZSBsaWtlbHkgYWxyZWFkeSBlbmFibGVkIGFuZCBvbmx5IGxpc3QgdGhvc2UgdGhhdCBhcmUgZGlyZWN0bHkgcmVsZXZhbnQgdG8gdGhlIG1vZGlmaWVkIGNvZGUuIE15IGluaXRpYWwgZm9jdXMgaXMgb24gYGJ1aWxkX2luc25gIGFuZCBgYnBmX2ludF9qaXRfY29tcGlsZWAsIHdoaWNoIHN1Z2dlc3QgYSBCUEYgSklUIGNvbXBpbGVyIGlzIGF0IHBsYXkuXG5cblRoZSBvYnZpb3VzIGNvbmZpZ3VyYXRpb24sIGBCUEZfSklUYCwgc3ByaW5ncyB0byBtaW5kIGJlY2F1c2UgaXQncyB0aGUgbW9zdCBkaXJlY3QgaW5kaWNhdG9yIG9mIEpJVCBjb21waWxhdGlvbiB3aXRoaW4gdGhlIEJQRiBmcmFtZXdvcmsuIEJ1dCwgdGhlIHByb21wdCBpbXBsaWVzIHRoZXJlIG1pZ2h0IGJlIHNvbWV0aGluZyBtb3JlIHNwZWNpZmljIHRvIHRoaXMgY29kZS4gV2hpbGUgYEJQRl9KSVRgIGlzIHByZXR0eSBzdGFuZGFyZCBmb3IgSklUIHN1cHBvcnQsIGl0J3MgKnRoZSogY29uZmlndXJhdGlvbiBmb3IgdGhpcyBmaWxlJ3MgSklUIGltcGxlbWVudGF0aW9uLCBzbyBpdCdzIHdvcnRoIG5vdGluZy5cblxuVGhlIGJlc3QgYXBwcm9hY2ggc2VlbXMgdG8gYmUgY3Jvc3MtcmVmZXJlbmNpbmcgdGhpcyB3aXRoIHRoZSBhcmNoaXRlY3R1cmUgc3BlY2lmaWMgS2NvbmZpZyBmaWxlLiBMZXQgbWUgY2hlY2sgYGFyY2gvbG9vbmdhcmNoL0tjb25maWdgIHRvIHNlZSBpZiB0aGVyZSBhcmUgYW55IGFyY2hpdGVjdHVyZS1zcGVjaWZpYyBjb25maWd1cmF0aW9ucyBvciBkZXBlbmRlbmNpZXMgcmVsYXRlZCB0byBgQlBGX0pJVGAuIFRoYXQgc2hvdWxkIGdpdmUgbWUgYSBiZXR0ZXIgdmlldyBvZiB3aGljaCBjb25maWcgb3B0aW9ucyBhcmUgaW1wb3J0YW50LlxuXG5cbiIsIklucHV0VG9rZW5zIjo0NTMzLCJPdXRwdXRUb2tlbnMiOjMzLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTEzLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTEyVDAzOjQ5OjE4LjA4MTcwNjMxOVoiLCJTZXEiOjEwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NTExOTEwNTI2LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIkJQRl9KSVRcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiYXJjaC9sb29uZ2FyY2gvS2NvbmZpZ1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJhcmNoL2xvb25nYXJjaC9LY29uZmlnPTI9Y29uZmlnIExPT05HQVJDSFxcbi0tXFxuYXJjaC9sb29uZ2FyY2gvS2NvbmZpZy03OS1cXHRzZWxlY3QgQVJDSF9VU0VfUVVFVUVEX1NQSU5MT0NLU1xcbmFyY2gvbG9vbmdhcmNoL0tjb25maWc6ODA6XFx0c2VsZWN0IEFSQ0hfV0FOVF9ERUZBVUxUX0JQRl9KSVQgaWYgSEFWRV9FQlBGX0pJVFxcbmFyY2gvbG9vbmdhcmNoL0tjb25maWctODEtXFx0c2VsZWN0IEFSQ0hfV0FOVF9ERUZBVUxUX1RPUERPV05fTU1BUF9MQVlPVVRcXG4tLVxcbmFyY2gvbG9vbmdhcmNoL0tjb25maWctMTQzLVxcdHNlbGVjdCBIQVZFX0RZTkFNSUNfRlRSQUNFX1dJVEhfUkVHU1xcbmFyY2gvbG9vbmdhcmNoL0tjb25maWc6MTQ0OlxcdHNlbGVjdCBIQVZFX0VCUEZfSklUIGlmIDY0QklUXFxuYXJjaC9sb29uZ2FyY2gvS2NvbmZpZy0xNDUtXFx0c2VsZWN0IEhBVkVfRUZGSUNJRU5UX1VOQUxJR05FRF9BQ0NFU1MgaWYgIUFSQ0hfU1RSSUNUX0FMSUdOXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTEyVDAzOjQ5OjE4LjU5MzYyNjE2NVoiLCJTZXEiOjExLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo3MzcxNDIyNTQ5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKk15IEFzc2Vzc21lbnQgb2YgdGhlIEJQRiBKSVQgQ29uZmlndXJhdGlvbiBhbmQgUGF0Y2gqKlxuXG5Pa2F5LCBzbyBpdCBsb29rcyBsaWtlIGBCUEZfSklUYCBpcyBlbmFibGVkIGJ5IGRlZmF1bHQgaWYgdGhlIGFyY2hpdGVjdHVyZSBoYXMgYEhBVkVfRUJQRl9KSVRgLCB3aGljaCBtYWtlcyBzZW5zZS4gSSdsbCBuZWVkIHRvIGFkZCBgQlBGX0pJVGAgdG8gdGhlIGBFbmFibGVDb25maWdzYCBzZXR0aW5nIHRvIHJlZmxlY3QgdGhhdC4gSXQncyBhbHNvIHdvcnRoIG5vdGluZyB0aGF0IGBCUEZfU1lTQ0FMTGAgaXMgYSBkZXBlbmRlbmN5IGZvciBCUEYgaW4gZ2VuZXJhbCwgYWx0aG91Z2ggYEJQRl9KSVRgIGlzIHRoZSBjcml0aWNhbCBwaWVjZSBoZXJlLlxuXG5Ob3csIGxldCBtZSBqdXN0IHJldmlldyB0aGUgcGF0Y2ggaXRzZWxmIHRvIGNvbmZpcm0gZXZlcnl0aGluZydzIHNoaXAtc2hhcGUuXG5cblRoZSBmaXJzdCBzZWN0aW9uLCB0aGUgbmVnYXRpdmUgb3BlcmF0aW9uLCBsb29rcyBnb29kLiBJdCBzZWVtcyBsaWtlIHRoZSBpbW1lZGlhdGUgdmFsdWUgbG9hZGluZyBoYXMgYmVlbiByZW1vdmVkLCByZXBsYWNlZCB3aXRoIGEgZGlyZWN0IHN1YnRyYWN0aW9uIGZyb20gemVyby4gVGhhdCBzaG91bGQgd29yayBhcyBpbnRlbmRlZC5cblxuTmV4dCwgdGhlIHVuY29uZGl0aW9uYWwganVtcCBjb2RlIGFsc28gYXBwZWFycyBmdW5jdGlvbmFsLiBUaGUgbG9naWMgZm9yIGNhbGN1bGF0aW5nIHRoZSBqdW1wIG9mZnNldCBhbmQgZW1pdHRpbmcgdGhlIGp1bXAgaW5zdHJ1Y3Rpb24gc2VlbXMgc291bmQsIHdpdGggdGhlIDMyLWJpdCB2ZXJzaW9uIGFsc28gaGFuZGxlZCBjb3JyZWN0bHkuIEkgYWxzbyBub3RlZCB0aGF0IHRoZSBqdW1wIG9mZnNldCBjYWxjdWxhdGlvbiB1c2luZyBgYnBmMmxhX29mZnNldCgpYCBpcyBpbiB0aGUgcmlnaHQgcGxhY2UsIHNvIG5vIGlzc3VlcyB0aGVyZS5cblxuRmluYWxseSwgdGhlIGltbWVkaWF0ZSB2YWx1ZSBsb2FkaW5nIGNvZGUgbG9va3MgY29ycmVjdC4gVGhlIGBvcmlgIGluc3RydWN0aW9uIGlzIGJlaW5nIHVzZWQgdG8gbG9hZCB1bnNpZ25lZCBpbW1lZGlhdGVzLCBhbmQgdGhlIGB6ZXh0YCBpcyByZW1vdmVkLCByZXBsYWNlZCB3aXRoIHRoZSBgcmV0dXJuYCBzdGF0ZW1lbnQuIFRoaXMgYWxzbyBzZWVtcyB0byBiZSBmdW5jdGlvbmFsbHkgY29tcGxldGUuXG5cbkdpdmVuIGFsbCB0aGlzLCBJJ20gY29uZmlkZW50IHRoYXQgdGhlc2UgY2hhbmdlcyBhcmUgZnVuY3Rpb25hbC4gVGhlcmVmb3JlLCBJIGNhbiBjb25maWRlbnRseSBzZXQgYFdvcnRoRnV6emluZz10cnVlYC4gSSB3aWxsIGZvY3VzIG15IGZ1enppbmcgZWZmb3J0cyBvbiBgYnVpbGRfaW5zbmAgYW5kIGBicGZfaW50X2ppdF9jb21waWxlYC4gVGhlIGBFbmFibGVDb25maWdzYCBzaG91bGQgYmUgc2V0IHRvIGBCUEZfSklUYCAuXG5cbkknbSByZWFkeSB0byBjYWxsIGBzZXQtcmVzdWx0c2Agbm93LlxuXG5cbiIsIklucHV0VG9rZW5zIjo1MTM0LCJPdXRwdXRUb2tlbnMiOjExNSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjU1OCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0xMlQwMzo0OToyNS45NjUwNTI2NDRaIiwiU2VxIjoxMiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxOTc0Nzc2NjMsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIkJQRl9KSVRcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJidWlsZF9pbnNuXCIsXG4gICAgXCJicGZfaW50X2ppdF9jb21waWxlXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBMb29uZ0FyY2ggQlBGIEpJVCBjb21waWxlciwgZml4aW5nIGJ1Z3MgaW4gQlBGX05FRyBhbmQgQlBGX0pBIGluc3RydWN0aW9uIGdlbmVyYXRpb24sIGFzIHdlbGwgYXMgYW4gaXNzdWUgd2l0aCBpbW1lZGlhdGUgbW92ZXMuIFRoZXNlIGNoYW5nZXMgYWZmZWN0IGhvdyBlQlBGIHByb2dyYW1zIGFyZSBjb21waWxlZCB0byBuYXRpdmUgY29kZSBhbmQgc2hvdWxkIGJlIGZ1enplZC5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJCUEZfSklUXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiYnVpbGRfaW5zblwiLFxuICAgIFwiYnBmX2ludF9qaXRfY29tcGlsZVwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUgTG9vbmdBcmNoIEJQRiBKSVQgY29tcGlsZXIsIGZpeGluZyBidWdzIGluIEJQRl9ORUcgYW5kIEJQRl9KQSBpbnN0cnVjdGlvbiBnZW5lcmF0aW9uLCBhcyB3ZWxsIGFzIGFuIGlzc3VlIHdpdGggaW1tZWRpYXRlIG1vdmVzLiBUaGVzZSBjaGFuZ2VzIGFmZmVjdCBob3cgZUJQRiBwcm9ncmFtcyBhcmUgY29tcGlsZWQgdG8gbmF0aXZlIGNvZGUgYW5kIHNob3VsZCBiZSBmdXp6ZWQuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0udG9rZW5zIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnVG9vbER1ciA9IHN0YXRzLnRvb2wuY291bnQgPiAwID8gKHN0YXRzLnRvb2wuZHVyYXRpb24gLyBzdGF0cy50b29sLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCgkJCWNvbnN0IGxsbVN1bWFyeUNlbGxzID0gW3N0YXRzLmxsbS5jb3VudCwgc3RhdHMubGxtLnRva2VucywgYXZnTGxtVG9rZW4sIHN0YXRzLmxsbS5kdXJhdGlvbiwgYXZnTGxtRHVyXTsKCQkJY29uc3QgdG9vbFN1bW1hcnlDZWxscyA9IFtzdGF0cy50b29sLmNvdW50LCBzdGF0cy50b29sLmR1cmF0aW9uLCBhdmdUb29sRHVyXTsKCgkJCWNvbnN0IGxsbVN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xsbV9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJbGxtU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IGxsbVRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJbGxtU3VtYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCWxsbVRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCWxsbVN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKGxsbVRyKTsKCgkJCWNvbnN0IHRvb2xTdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b29sX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQl0b29sU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IHRvb2xUciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCXRvb2xTdW1tYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCXRvb2xUci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQl0b29sU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQodG9vbFRyKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgZmlsdGVyZWRTdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gWyJsbG0iLCAidG9vbCJdLmluY2x1ZGVzKGQuVHlwZSkpOwoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdEdXJhdGlvbicpOwoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOyAKCgkJCWZpbHRlcmVkU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCQoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7CgkJCQlsZXQgdG9vbHRpcCA9IHMuTmFtZTsKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iICYmIHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCQkJCWRhdGEuYWRkUm93KFtgJHtzLlNlcX1gLCBkdXIsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUaW1lIENvbnN1bXB0aW9uIG9mIExMTS9Ub29sIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0vVG9vbCBTdGVwcycsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdTZWNvbmRzJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkdXJhdGlvbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgbGxtU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IGQuVHlwZSA9PT0gImxsbSIpOwoJCQlpZiAobGxtU3RlcHMubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdUb2tlbnMnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAnc3R5bGUnfSk7CQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOwkKCgkJCWNvbnN0IGFnZW50Q29sb3JzID0ge307CgkJCWNvbnN0IHBhbGV0dGUgPSBbJyM0Mjg1RjQnLCAnI0RCNDQzNycsICcjRjRCNDAwJywgJyMwRjlENTgnLCAnI0FCNDdCQycsICcjMDBBQ0MxJ107CgkJCWxldCBjb2xvcklkeCA9IDA7CgkJCWNvbnN0IGFnZW50TExNQ291bnRzID0ge307CgkJCWxsbVN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQlpZiAoIWFnZW50Q29sb3JzW3MuTmFtZV0pIHsKCQkJCQlhZ2VudENvbG9yc1tzLk5hbWVdID0gcGFsZXR0ZVtjb2xvcklkeCAlIHBhbGV0dGUubGVuZ3RoXTsKCQkJCQljb2xvcklkeCsrOwoJCQkJfQoKCQkJCWFnZW50TExNQ291bnRzW3MuTmFtZV0gPSAoYWdlbnRMTE1Db3VudHNbcy5OYW1lXSB8fCAwKSArIDE7CgkJCQljb25zdCBsYWJlbCA9IGAke3MuTmFtZX0tJHthZ2VudExMTUNvdW50c1tzLk5hbWVdfWA7CgkJCQljb25zdCB0b3RhbFRva2VucyA9IHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnM7CgkJCQljb25zdCBzdHlsZSA9IGBjb2xvcjogJHthZ2VudENvbG9yc1tzLk5hbWVdfWA7CgkJCQlsZXQgdG9vbHRpcCA9IGBUb3RhbCBUb2tlbnM6ICR7dG90YWxUb2tlbnN9XG4oSW46ICR7cy5JbnB1dFRva2Vuc30sIE91dDogJHtzLk91dHB1dFRva2Vuc30sIFRob3VnaHRzOiAke3MuT3V0cHV0VGhvdWdodHNUb2tlbnN9KWA7CgkJCQlpZiAocy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoKCQkJCWRhdGEuYWRkUm93KFtsYWJlbCwgdG90YWxUb2tlbnMsIHN0eWxlLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVG9rZW4gQ29uc3VtcHRpb24gYnkgTExNIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0gQ2FsbCBTZXF1ZW5jZScsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdDb25zdW1lZCBUb2tlbnMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rva2VuX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgkJbGV0IGFsbEV4cGFuZGVkID0gZmFsc2U7CgkJZnVuY3Rpb24gdG9nZ2xlQWxsRGV0YWlscygpIHsKCQkJYWxsRXhwYW5kZWQgPSAhYWxsRXhwYW5kZWQ7CgkJCWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2RldGFpbHMnKS5mb3JFYWNoKGQgPT4gewoJCQkJaWYgKGFsbEV4cGFuZGVkKSBkLnNldEF0dHJpYnV0ZSgnb3BlbicsICcnKTsKCQkJCWVsc2UgZC5yZW1vdmVBdHRyaWJ1dGUoJ29wZW4nKTsKCQkJfSk7CgkJfQoJPC9zY3JpcHQ+CgoKPC9ib2R5Pgo8L2h0bWw+Cg==" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflow6bcpk[0].run-triage(0) Phase: Succeeded StartedAt: 2026-07-12 03:17:57 +0000 UTC FinishedAt: 2026-07-12 03:49:27 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "bpf", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git", "commit_hash": "7cbd0c4cebe4c9f678d15e6b9ba975e1155a107f", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "BPF_JIT" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "bpf", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git", "commit_hash": "7cbd0c4cebe4c9f678d15e6b9ba975e1155a107f", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "BPF_JIT" ], "series_id": "3d659dff-6055-482a-93e1-86d188e2eb63" }, "track": "KASAN", "fuzz": { "focus": [ "bpf" ], "focus_symbols": [ "build_insn", "bpf_int_jit_compile" ], "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+CgkJCTx0ZD4yMDI2LzA3LzEyIDAzOjQ4PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0JQRl9KSVQmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtidWlsZF9pbnNuJiMzNDssCiAgICAmIzM0O2JwZl9pbnRfaml0X2NvbXBpbGUmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBMb29uZ0FyY2ggQlBGIEpJVCBjb21waWxlciwgZml4aW5nIGJ1Z3MgaW4gQlBGX05FRyBhbmQgQlBGX0pBIGluc3RydWN0aW9uIGdlbmVyYXRpb24sIGFzIHdlbGwgYXMgYW4gaXNzdWUgd2l0aCBpbW1lZGlhdGUgbW92ZXMuIFRoZXNlIGNoYW5nZXMgYWZmZWN0IGhvdyBlQlBGIHByb2dyYW1zIGFyZSBjb21waWxlZCB0byBuYXRpdmUgY29kZSBhbmQgc2hvdWxkIGJlIGZ1enplZC4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xMiAwMzo0ODwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IDVlYjlhYWE0ZjIxMWZlNjk4ZTQ1N2RiYzJjMzNjNTcxMzJlOWM4YTVcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgU3VuIEp1bCAxMiAwMzo0ODo1NiAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9hcmNoL2xvb25nYXJjaC9uZXQvYnBmX2ppdC5jIGIvYXJjaC9sb29uZ2FyY2gvbmV0L2JwZl9qaXQuY1xuaW5kZXggMjczOGI0ZGIxMTY1MzMuLjY5YmMzMGY4OGM0NGY0IDEwMDY0NFxuLS0tIGEvYXJjaC9sb29uZ2FyY2gvbmV0L2JwZl9qaXQuY1xuJiM0MzsmIzQzOyYjNDM7IGIvYXJjaC9sb29uZ2FyY2gvbmV0L2JwZl9qaXQuY1xuQEAgLTg5NCw3ICYjNDM7ODk0LDYgQEAgc3RhdGljIGludCBidWlsZF9pbnNuKGNvbnN0IHN0cnVjdCBicGZfaW5zbiAqaW5zbiwgc3RydWN0IGppdF9jdHggKmN0eCwgYm9vbCBleHRcbiBcdC8qIGRzdCA9IC1kc3QgKi9cbiBcdGNhc2UgQlBGX0FMVSB8IEJQRl9ORUc6XG4gXHRjYXNlIEJQRl9BTFU2NCB8IEJQRl9ORUc6XG4tXHRcdG1vdmVfaW1tKGN0eCwgdDEsIGltbSwgaXMzMik7XG4gXHRcdGVtaXRfaW5zbihjdHgsIHN1YmQsIGRzdCwgTE9PTkdBUkNIX0dQUl9aRVJPLCBkc3QpO1xuIFx0XHRlbWl0X3pleHRfMzIoY3R4LCBkc3QsIGlzMzIpO1xuIFx0XHRicmVhaztcbkBAIC0xMTUxLDExICYjNDM7MTE1MCwxMiBAQCBzdGF0aWMgaW50IGJ1aWxkX2luc24oY29uc3Qgc3RydWN0IGJwZl9pbnNuICppbnNuLCBzdHJ1Y3Qgaml0X2N0eCAqY3R4LCBib29sIGV4dFxuIFxuIFx0LyogUEMgJiM0Mzs9IG9mZiAqL1xuIFx0Y2FzZSBCUEZfSk1QIHwgQlBGX0pBOlxuJiM0MztcdFx0am1wX29mZnNldCA9IGJwZjJsYV9vZmZzZXQoaSwgb2ZmLCBjdHgpO1xuJiM0MztcdFx0aWYgKGVtaXRfdW5jb25kX2ptcChjdHgsIGptcF9vZmZzZXQpIFx1MDAzYyAwKVxuJiM0MztcdFx0XHRnb3RvIHRvb2ZhcjtcbiYjNDM7XHRcdGJyZWFrO1xuIFx0Y2FzZSBCUEZfSk1QMzIgfCBCUEZfSkE6XG4tXHRcdGlmIChCUEZfQ0xBU1MoY29kZSkgPT0gQlBGX0pNUClcbi1cdFx0XHRqbXBfb2Zmc2V0ID0gYnBmMmxhX29mZnNldChpLCBvZmYsIGN0eCk7XG4tXHRcdGVsc2Vcbi1cdFx0XHRqbXBfb2Zmc2V0ID0gYnBmMmxhX29mZnNldChpLCBpbW0sIGN0eCk7XG4mIzQzO1x0XHRqbXBfb2Zmc2V0ID0gYnBmMmxhX29mZnNldChpLCBpbW0sIGN0eCk7XG4gXHRcdGlmIChlbWl0X3VuY29uZF9qbXAoY3R4LCBqbXBfb2Zmc2V0KSBcdTAwM2MgMClcbiBcdFx0XHRnb3RvIHRvb2ZhcjtcbiBcdFx0YnJlYWs7XG5kaWZmIC0tZ2l0IGEvYXJjaC9sb29uZ2FyY2gvbmV0L2JwZl9qaXQuaCBiL2FyY2gvbG9vbmdhcmNoL25ldC9icGZfaml0LmhcbmluZGV4IGE4ZTI5YmUzNWZhODE1Li5iYjU4YzQyYzJmMmE5NyAxMDA2NDRcbi0tLSBhL2FyY2gvbG9vbmdhcmNoL25ldC9icGZfaml0LmhcbiYjNDM7JiM0MzsmIzQzOyBiL2FyY2gvbG9vbmdhcmNoL25ldC9icGZfaml0LmhcbkBAIC0xNTYsNyAmIzQzOzE1Niw3IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBtb3ZlX2ltbShzdHJ1Y3Qgaml0X2N0eCAqY3R4LCBlbnVtIGxvb25nYXJjaF9ncHIgcmQsIGxvbmcgaW1tXG4gXHQvKiBvcmkgcmQsICR6ZXJvLCBpbW1fMTFfMCAqL1xuIFx0aWYgKGlzX3Vuc2lnbmVkX2ltbTEyKGltbSkpIHtcbiBcdFx0ZW1pdF9pbnNuKGN0eCwgb3JpLCByZCwgTE9PTkdBUkNIX0dQUl9aRVJPLCBpbW0pO1xuLVx0XHRnb3RvIHpleHQ7XG4mIzQzO1x0XHRyZXR1cm47XG4gXHR9XG4gXG4gXHQvKiBsdTUyaWQgcmQsICR6ZXJvLCBpbW1fNjNfNTIgKi9cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xMiAwMzo0ODwvdGQ+CgkJCTx0ZD5hZ2VudDwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtCUEZfSklUJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7YnVpbGRfaW5zbiYjMzQ7LAogICAgJiMzNDticGZfaW50X2ppdF9jb21waWxlJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUgTG9vbmdBcmNoIEJQRiBKSVQgY29tcGlsZXIsIGZpeGluZyBidWdzIGluIEJQRl9ORUcgYW5kIEJQRl9KQSBpbnN0cnVjdGlvbiBnZW5lcmF0aW9uLCBhcyB3ZWxsIGFzIGFuIGlzc3VlIHdpdGggaW1tZWRpYXRlIG1vdmVzLiBUaGVzZSBjaGFuZ2VzIGFmZmVjdCBob3cgZUJQRiBwcm9ncmFtcyBhcmUgY29tcGlsZWQgdG8gbmF0aXZlIGNvZGUgYW5kIHNob3VsZCBiZSBmdXp6ZWQuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZQppZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5CnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuCgpSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOgotIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuCi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuCi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LgotIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwKZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLgoKSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaAp0b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS4KCldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOgoxLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLgogICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy4KMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuCiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy4KICAgRG8gbm90IGxpc3QgdG9vIGdlbmVyaWMgY29uZmlncyAod2UgYWxyZWFkeSBoYXZlIHRoZW0gZW5hYmxlZCkuIE9ubHkgbGlzdCB0aG9zZSB0aGF0CiAgIHNwZWNpZmljYWxseSBjb3ZlciB0aGUgbW9kaWZpZWQgY29kZS4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzIG91dHB1dCBhcnJheSwKICAgYW5kIERPIE5PVCBhZGQgYSAmIzM5O0NPTkZJR18mIzM5OyBwcmVmaXggKGUuZy4sIHJldHVybiAmIzM0O05FVF9JUFY0JiMzNDsgaW5zdGVhZCBvZiAmIzM0O0NPTkZJR19ORVRfSVBWNCYjMzQ7KS4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IDVlYjlhYWE0ZjIxMWZlNjk4ZTQ1N2RiYzJjMzNjNTcxMzJlOWM4YTUKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgU3VuIEp1bCAxMiAwMzo0ODo1NiAyMDI2ICYjNDM7MDAwMAoKICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldwoKZGlmZiAtLWdpdCBhL2FyY2gvbG9vbmdhcmNoL25ldC9icGZfaml0LmMgYi9hcmNoL2xvb25nYXJjaC9uZXQvYnBmX2ppdC5jCmluZGV4IDI3MzhiNGRiMTE2NTMzLi42OWJjMzBmODhjNDRmNCAxMDA2NDQKLS0tIGEvYXJjaC9sb29uZ2FyY2gvbmV0L2JwZl9qaXQuYwomIzQzOyYjNDM7JiM0MzsgYi9hcmNoL2xvb25nYXJjaC9uZXQvYnBmX2ppdC5jCkBAIC04OTQsNyAmIzQzOzg5NCw2IEBAIHN0YXRpYyBpbnQgYnVpbGRfaW5zbihjb25zdCBzdHJ1Y3QgYnBmX2luc24gKmluc24sIHN0cnVjdCBqaXRfY3R4ICpjdHgsIGJvb2wgZXh0CiAJLyogZHN0ID0gLWRzdCAqLwogCWNhc2UgQlBGX0FMVSB8IEJQRl9ORUc6CiAJY2FzZSBCUEZfQUxVNjQgfCBCUEZfTkVHOgotCQltb3ZlX2ltbShjdHgsIHQxLCBpbW0sIGlzMzIpOwogCQllbWl0X2luc24oY3R4LCBzdWJkLCBkc3QsIExPT05HQVJDSF9HUFJfWkVSTywgZHN0KTsKIAkJZW1pdF96ZXh0XzMyKGN0eCwgZHN0LCBpczMyKTsKIAkJYnJlYWs7CkBAIC0xMTUxLDExICYjNDM7MTE1MCwxMiBAQCBzdGF0aWMgaW50IGJ1aWxkX2luc24oY29uc3Qgc3RydWN0IGJwZl9pbnNuICppbnNuLCBzdHJ1Y3Qgaml0X2N0eCAqY3R4LCBib29sIGV4dAogCiAJLyogUEMgJiM0Mzs9IG9mZiAqLwogCWNhc2UgQlBGX0pNUCB8IEJQRl9KQToKJiM0MzsJCWptcF9vZmZzZXQgPSBicGYybGFfb2Zmc2V0KGksIG9mZiwgY3R4KTsKJiM0MzsJCWlmIChlbWl0X3VuY29uZF9qbXAoY3R4LCBqbXBfb2Zmc2V0KSAmbHQ7IDApCiYjNDM7CQkJZ290byB0b29mYXI7CiYjNDM7CQlicmVhazsKIAljYXNlIEJQRl9KTVAzMiB8IEJQRl9KQToKLQkJaWYgKEJQRl9DTEFTUyhjb2RlKSA9PSBCUEZfSk1QKQotCQkJam1wX29mZnNldCA9IGJwZjJsYV9vZmZzZXQoaSwgb2ZmLCBjdHgpOwotCQllbHNlCi0JCQlqbXBfb2Zmc2V0ID0gYnBmMmxhX29mZnNldChpLCBpbW0sIGN0eCk7CiYjNDM7CQlqbXBfb2Zmc2V0ID0gYnBmMmxhX29mZnNldChpLCBpbW0sIGN0eCk7CiAJCWlmIChlbWl0X3VuY29uZF9qbXAoY3R4LCBqbXBfb2Zmc2V0KSAmbHQ7IDApCiAJCQlnb3RvIHRvb2ZhcjsKIAkJYnJlYWs7CmRpZmYgLS1naXQgYS9hcmNoL2xvb25nYXJjaC9uZXQvYnBmX2ppdC5oIGIvYXJjaC9sb29uZ2FyY2gvbmV0L2JwZl9qaXQuaAppbmRleCBhOGUyOWJlMzVmYTgxNS4uYmI1OGM0MmMyZjJhOTcgMTAwNjQ0Ci0tLSBhL2FyY2gvbG9vbmdhcmNoL25ldC9icGZfaml0LmgKJiM0MzsmIzQzOyYjNDM7IGIvYXJjaC9sb29uZ2FyY2gvbmV0L2JwZl9qaXQuaApAQCAtMTU2LDcgJiM0MzsxNTYsNyBAQCBzdGF0aWMgaW5saW5lIHZvaWQgbW92ZV9pbW0oc3RydWN0IGppdF9jdHggKmN0eCwgZW51bSBsb29uZ2FyY2hfZ3ByIHJkLCBsb25nIGltbQogCS8qIG9yaSByZCwgJHplcm8sIGltbV8xMV8wICovCiAJaWYgKGlzX3Vuc2lnbmVkX2ltbTEyKGltbSkpIHsKIAkJZW1pdF9pbnNuKGN0eCwgb3JpLCByZCwgTE9PTkdBUkNIX0dQUl9aRVJPLCBpbW0pOwotCQlnb3RvIHpleHQ7CiYjNDM7CQlyZXR1cm47CiAJfQogCiAJLyogbHU1MmlkIHJkLCAkemVybywgaW1tXzYzXzUyICovCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzEyIDAzOjQ4PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDIzODYKCQkJCQkJCW91dHB1dDogMzUKCQkJCQkJCXRob3VnaHRzOiA0NDYKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqTG9vbmdBcmNoIEJQRiBKSVQgUGF0Y2ggQW5hbHlzaXMqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggYW5kIGl0JiMzOTtzIHRvdWNoaW5nIGBhcmNoL2xvb25nYXJjaC9uZXQvYnBmX2ppdC5jYCBhbmQgYGFyY2gvbG9vbmdhcmNoL25ldC9icGZfaml0LmhgLiBJdCYjMzk7cyBhIEJQRiBKSVQgY29tcGlsZXIgZml4IHNwZWNpZmljYWxseSBmb3IgTG9vbmdBcmNoLiBUaGUgY2hhbmdlcyBzZWVtIHByZXR0eSBzdHJhaWdodGZvcndhcmQ6IGl0IGFkZHJlc3NlcyBhIGJ1ZyBpbiBob3cgYEJQRl9BTFUgfCBCUEZfTkVHYCBhbmQgYEJQRl9BTFU2NCB8IEJQRl9ORUdgIGluc3RydWN0aW9ucyB3ZXJlIGJlaW5nIGhhbmRsZWQsIHNwZWNpZmljYWxseSBhIHJlZHVuZGFudCBhbmQgcG90ZW50aWFsbHkgcHJvYmxlbWF0aWMgYG1vdmVfaW1tYCBjYWxsLiBUaGVyZSYjMzk7cyBhbHNvIHNvbWUgY29ycmVjdGlvbiBpbiB0aGUgaGFuZGxpbmcgb2YgYEJQRl9KTVAgfCBCUEZfSkFgIGFuZCBgQlBGX0pNUDMyIHwgQlBGX0pBYC4gSW4gYWRkaXRpb24gdG8gdGhhdCwgYSBtaW5vciB1cGRhdGUgdG8gYG1vdmVfaW1tYCB3aGVyZSBhIGBnb3RvIHpleHQ7YCBnZXRzIHR1cm5lZCBpbnRvIGByZXR1cm47YCB3aGVuIGRlYWxpbmcgd2l0aCBzbWFsbCB1bnNpZ25lZCBpbW1lZGlhdGVzLCBhbmQgdGhhdCBtYWtlcyBzZW5zZS4KClRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSwgYSBidWcgZml4LiBUaGUgY29uY2VybiBpcywgb2YgY291cnNlLCB0aGF0IHRoaXMgaXMgTG9vbmdBcmNoLXNwZWNpZmljIGNvZGUuIFN5emthbGxlciwgbXkgbWFpbiBmdXp6ZXIsIHR5cGljYWxseSBydW5zIG9uIHg4Nl82NCwgYXJtNjQsIFJJU0MtViwgZXRjLiBNeSBrbmVlLWplcmsgcmVhY3Rpb24gaXMgdGhhdCBpdCBtaWdodCBiZSB1bnJlYWNoYWJsZSBpbiBhIGxvdCBvZiBteSB0eXBpY2FsIGZ1enppbmcgY29uZmlndXJhdGlvbnMuIFRoZW4gYWdhaW4sIHRoZSBwcm9tcHQgc2F5cyAmIzM0O0NvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSYjMzQ7LiBTbywgUUVNVSBpcyBhbiBvcHRpb24gaGVyZSwgYW5kIEkgY2FuIHJ1biBMb29uZ0FyY2ggaW4gUUVNVS4gCgpBIHF1aWNrIGNoZWNrIGNvbmZpcm1zIHN5emthbGxlciAqZG9lcyogc3VwcG9ydCBMb29uZ0FyY2gsIGV4Y2VsbGVudCEgVGhpcyBkZWZpbml0ZWx5IG1ha2VzIGl0IGZ1enphYmxlLiBJIG5lZWQgdG8gbWFrZSBzdXJlIHRoZSByaWdodCBjb25maWdzIGFyZSBzZXQ6IGBDT05GSUdfQlBGX0pJVGAgYW5kIG9mIGNvdXJzZSBgQ09ORklHX0xPT05HQVJDSGAuIFNvLCBJJiMzOTtsbCByZXZpZXcgYGFyY2gvbG9vbmdhcmNoL25ldC9icGZfaml0LmNgIGFuZCBgYXJjaC9sb29uZ2FyY2gvbmV0L2JwZl9qaXQuaGAgdG8gc2VlIGV4YWN0bHkgd2hhdCYjMzk7cyBnb2luZyBvbiBhbmQgdmVyaWZ5IHRoYXQgdGhlc2UgY29uZmlncyBhcmUgc2V0IGNvcnJlY3RseSB0byBnaXZlIGl0IGEgZnV6emluZyBnby4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xMiAwMzo0OTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtDT05GSUdfQlBGX0pJVCYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2FyY2gvbG9vbmdhcmNoL25ldC8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7YXJjaC9sb29uZ2FyY2gvbmV0L01ha2VmaWxlLTYtI1xuYXJjaC9sb29uZ2FyY2gvbmV0L01ha2VmaWxlOjc6b2JqLSQoQ09ORklHX0JQRl9KSVQpICYjNDM7PSBicGZfaml0Lm9cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xMiAwMzo0OTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzMzkzCgkJCQkJCQlvdXRwdXQ6IDM4CgkJCQkJCQl0aG91Z2h0czogNzAKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqTXkgQlBGIEpJVCBDb25maWd1cmF0aW9uIENoZWNrKioKCk9rYXksIHNvIEkgc2VlIHdlIGFic29sdXRlbHkgbmVlZCBgQ09ORklHX0JQRl9KSVRgIGVuYWJsZWQuIFRoYXQmIzM5O3MgdGhlIGJhc2VsaW5lLCB0aGUgZm91bmRhdGlvbi4gTm93LCBiZWZvcmUgSSBkaXZlIHRvbyBkZWVwLCBsZXQmIzM5O3MganVzdCBxdWlja2x5IHNjYW4gYW5kIHNlZSBpZiB0aGVyZSBhcmUgYW55IG90aGVyIGNvbmZpZ3VyYXRpb24gdmFyaWFibGVzIHRoYXQgYXJlIHN1YnRseSByZWxhdGVkLCBhbnl0aGluZyBlbHNlIEkgc2hvdWxkIGJlIGF3YXJlIG9mIG9yIG1pZ2h0IG5lZWQgdG8gdHdlYWsgaW4gY29uanVuY3Rpb24gd2l0aCB0aGlzLiBNeSBwcmltYXJ5IGZvY3VzIGlzIHRoZSBgYnVpbGRfaW5zbmAgYW5kIGBtb3ZlX2ltbWAgZnVuY3Rpb25zLCB0aGV5JiMzOTtyZSB0aGUgb25lcyB0aGF0IGhhdmUgc2VlbiBtb2RpZmljYXRpb24sIHNvIHRoZXkgYXJlIHRoZSBwbGFjZXMgdG8gc3RhcnQuIEkmIzM5O2xsIG5lZWQgdG8gbG9jYXRlIGBidWlsZF9pbnNuYCwgc28gbGV0JiMzOTtzIG5hdmlnYXRlIHRvIGBhcmNoL2xvb25nYXJjaC9uZXQvYnBmX2ppdC5jYC4gVGhpcyBpcyB3aGVyZSB0aGUgbWFnaWMgaGFwcGVucywgYW5kIHdoZXJlIEkgd2lsbCBmb2N1cyBteSBpbml0aWFsIHJldmlldy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xMiAwMzo0OTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtidWlsZF9pbnNuJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7YXJjaC9sb29uZ2FyY2gvbmV0L2JwZl9qaXQuYyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDthcmNoL2xvb25nYXJjaC9uZXQvYnBmX2ppdC5jPTY1Mz1zdGF0aWMgaW50IGFkZF9leGNlcHRpb25faGFuZGxlcihjb25zdCBzdHJ1Y3QgYnBmX2luc24gKmluc24sXG4tLVxuYXJjaC9sb29uZ2FyY2gvbmV0L2JwZl9qaXQuYy03MTQtXG5hcmNoL2xvb25nYXJjaC9uZXQvYnBmX2ppdC5jOjcxNTpzdGF0aWMgaW50IGJ1aWxkX2luc24oY29uc3Qgc3RydWN0IGJwZl9pbnNuICppbnNuLCBzdHJ1Y3Qgaml0X2N0eCAqY3R4LCBib29sIGV4dHJhX3Bhc3MpXG5hcmNoL2xvb25nYXJjaC9uZXQvYnBmX2ppdC5jLTcxNi17XG4tLVxuYXJjaC9sb29uZ2FyY2gvbmV0L2JwZl9qaXQuYz0xNDc0PXN0YXRpYyBpbnQgYnVpbGRfYm9keShzdHJ1Y3Qgaml0X2N0eCAqY3R4LCBib29sIGV4dHJhX3Bhc3MpXG4tLVxuYXJjaC9sb29uZ2FyY2gvbmV0L2JwZl9qaXQuYy0xNDg1LVxuYXJjaC9sb29uZ2FyY2gvbmV0L2JwZl9qaXQuYzoxNDg2Olx0XHRyZXQgPSBidWlsZF9pbnNuKGluc24sIGN0eCwgZXh0cmFfcGFzcyk7XG5hcmNoL2xvb25nYXJjaC9uZXQvYnBmX2ppdC5jLTE0ODctXHRcdGlmIChyZXQgXHUwMDNlIDApIHtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD43LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xMiAwMzo0OTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzOTQ3CgkJCQkJCQlvdXRwdXQ6IDQyCgkJCQkJCQl0aG91Z2h0czogMTI5CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkJQRiBKSVQgb24gTG9vbmdBcmNoIC0gRm9jdXNpbmcgdGhlIExlbnMqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgQlBGIEpJVCBpbXBsZW1lbnRhdGlvbiBmb3IgTG9vbmdBcmNoLCBhbmQgdGhlIGtleSBwbGF5ZXIgaGVyZSBzZWVtcyB0byBiZSB0aGUgYGJ1aWxkX2luc25gIGZ1bmN0aW9uLiBUaGF0JiMzOTtzIHRoZSBtYWluIGluc3RydWN0aW9uIGJ1aWxkZXIsIGFuZCBteSBmb2N1cyBuZWVkcyB0byBiZSBzaGFycGVzdCB0aGVyZS4gSSBzZWUgYG1vdmVfaW1tYCBpcyBpbmxpbmUsIGRlY2xhcmVkIGluIHRoZSBoZWFkZXIuIFRoYXQgbWlnaHQgYmUgbGVzcyBvZiBhIHRhcmdldCwgYnV0IEkmIzM5O2xsIG1ha2UgYSBtZW50YWwgbm90ZSBvZiBpdDsgbWF5YmUgSSYjMzk7bGwgbmVlZCB0byBjaGFzZSBpdHMgY2FsbHMgZG93biB0aGUgbGluZS4gVGhlIGdvb2QgbmV3cyBpcywgYmFzZWQgb24gd2hhdCBJJiMzOTttIHNlZWluZywgdGhpcyBsb29rcyBsaWtlIGEgZnVuY3Rpb25hbCBwYXRjaC4gTXkgaW5zdGluY3QgdGVsbHMgbWUgdG8gc2V0IGBXb3J0aEZ1enppbmc9dHJ1ZWAuCgpHaXZlbiB0aGUgaW5saW5lIG5hdHVyZSBvZiBgbW92ZV9pbW1gLCBsZXQmIzM5O3MgYnJvYWRlbiB0aGUgcG90ZW50aWFsIHRhcmdldCBhIGJpdC4gSWYgYG1vdmVfaW1tYCBpcyBhIGNhbmRpZGF0ZSBmb3IgZnV6emluZywgdGhlbiBtYXliZSBpdHMgcGFyZW50IGZ1bmN0aW9uIGBidWlsZF9ib2R5YCBvciB0aGUgZnVuY3Rpb24gdGhhdCB1bHRpbWF0ZWx5IGNhbGxzIGBidWlsZF9pbnNuYCB3aGljaCBpcyBgYnBmX2ludF9qaXRfY29tcGlsZWAgY291bGQgYmUgbW9yZSByZWxldmFudC4gUmlnaHQsIGl0JiMzOTtzIHRpbWUgdG8gY2hlY2sgdGhhdCBgYnBmX2ludF9qaXRfY29tcGlsZWAgZnVuY3Rpb24gbW9yZSBjbG9zZWx5LiBMZXQmIzM5O3Mgc2VlIHdoYXQmIzM5O3MgaW4gdGhlcmUuLi4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD44LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xMiAwMzo0OTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDticGZfaW50X2ppdF9jb21waWxlJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7YXJjaC9sb29uZ2FyY2gvbmV0L2JwZl9qaXQuYyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDthcmNoL2xvb25nYXJjaC9uZXQvYnBmX2ppdC5jPTIxODI9aW50IGFyY2hfYnBmX3RyYW1wb2xpbmVfc2l6ZShjb25zdCBzdHJ1Y3QgYnRmX2Z1bmNfbW9kZWwgKm0sIHUzMiBmbGFncyxcbi0tXG5hcmNoL2xvb25nYXJjaC9uZXQvYnBmX2ppdC5jLTIxOTYtXG5hcmNoL2xvb25nYXJjaC9uZXQvYnBmX2ppdC5jOjIxOTc6c3RydWN0IGJwZl9wcm9nICpicGZfaW50X2ppdF9jb21waWxlKHN0cnVjdCBicGZfdmVyaWZpZXJfZW52ICplbnYsIHN0cnVjdCBicGZfcHJvZyAqcHJvZylcbmFyY2gvbG9vbmdhcmNoL25ldC9icGZfaml0LmMtMjE5OC17XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTIgMDM6NDk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNDUzMwoJCQkJCQkJb3V0cHV0OiAzMwoJCQkJCQkJdGhvdWdodHM6IDExMwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIENvbmZpZ3VyYXRpb24gUmVxdWlyZW1lbnRzIGZvciBKSVQgQ29tcGlsYXRpb24qKgoKT2theSwgc28gSSBuZWVkIHRvIHN1bW1hcml6ZSB0aGUgY29uZmlndXJhdGlvbnMgcmVsYXRlZCB0byB0aGlzIGNvZGUuIFRoZSBwcm9tcHQgc3BlY2lmaWNhbGx5IHNheXMgdG8gYXZvaWQgZ2VuZXJpYyBjb25maWd1cmF0aW9ucyB0aGF0IGFyZSBsaWtlbHkgYWxyZWFkeSBlbmFibGVkIGFuZCBvbmx5IGxpc3QgdGhvc2UgdGhhdCBhcmUgZGlyZWN0bHkgcmVsZXZhbnQgdG8gdGhlIG1vZGlmaWVkIGNvZGUuIE15IGluaXRpYWwgZm9jdXMgaXMgb24gYGJ1aWxkX2luc25gIGFuZCBgYnBmX2ludF9qaXRfY29tcGlsZWAsIHdoaWNoIHN1Z2dlc3QgYSBCUEYgSklUIGNvbXBpbGVyIGlzIGF0IHBsYXkuCgpUaGUgb2J2aW91cyBjb25maWd1cmF0aW9uLCBgQlBGX0pJVGAsIHNwcmluZ3MgdG8gbWluZCBiZWNhdXNlIGl0JiMzOTtzIHRoZSBtb3N0IGRpcmVjdCBpbmRpY2F0b3Igb2YgSklUIGNvbXBpbGF0aW9uIHdpdGhpbiB0aGUgQlBGIGZyYW1ld29yay4gQnV0LCB0aGUgcHJvbXB0IGltcGxpZXMgdGhlcmUgbWlnaHQgYmUgc29tZXRoaW5nIG1vcmUgc3BlY2lmaWMgdG8gdGhpcyBjb2RlLiBXaGlsZSBgQlBGX0pJVGAgaXMgcHJldHR5IHN0YW5kYXJkIGZvciBKSVQgc3VwcG9ydCwgaXQmIzM5O3MgKnRoZSogY29uZmlndXJhdGlvbiBmb3IgdGhpcyBmaWxlJiMzOTtzIEpJVCBpbXBsZW1lbnRhdGlvbiwgc28gaXQmIzM5O3Mgd29ydGggbm90aW5nLgoKVGhlIGJlc3QgYXBwcm9hY2ggc2VlbXMgdG8gYmUgY3Jvc3MtcmVmZXJlbmNpbmcgdGhpcyB3aXRoIHRoZSBhcmNoaXRlY3R1cmUgc3BlY2lmaWMgS2NvbmZpZyBmaWxlLiBMZXQgbWUgY2hlY2sgYGFyY2gvbG9vbmdhcmNoL0tjb25maWdgIHRvIHNlZSBpZiB0aGVyZSBhcmUgYW55IGFyY2hpdGVjdHVyZS1zcGVjaWZpYyBjb25maWd1cmF0aW9ucyBvciBkZXBlbmRlbmNpZXMgcmVsYXRlZCB0byBgQlBGX0pJVGAuIFRoYXQgc2hvdWxkIGdpdmUgbWUgYSBiZXR0ZXIgdmlldyBvZiB3aGljaCBjb25maWcgb3B0aW9ucyBhcmUgaW1wb3J0YW50LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xMiAwMzo0OTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtCUEZfSklUJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7YXJjaC9sb29uZ2FyY2gvS2NvbmZpZyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDthcmNoL2xvb25nYXJjaC9LY29uZmlnPTI9Y29uZmlnIExPT05HQVJDSFxuLS1cbmFyY2gvbG9vbmdhcmNoL0tjb25maWctNzktXHRzZWxlY3QgQVJDSF9VU0VfUVVFVUVEX1NQSU5MT0NLU1xuYXJjaC9sb29uZ2FyY2gvS2NvbmZpZzo4MDpcdHNlbGVjdCBBUkNIX1dBTlRfREVGQVVMVF9CUEZfSklUIGlmIEhBVkVfRUJQRl9KSVRcbmFyY2gvbG9vbmdhcmNoL0tjb25maWctODEtXHRzZWxlY3QgQVJDSF9XQU5UX0RFRkFVTFRfVE9QRE9XTl9NTUFQX0xBWU9VVFxuLS1cbmFyY2gvbG9vbmdhcmNoL0tjb25maWctMTQzLVx0c2VsZWN0IEhBVkVfRFlOQU1JQ19GVFJBQ0VfV0lUSF9SRUdTXG5hcmNoL2xvb25nYXJjaC9LY29uZmlnOjE0NDpcdHNlbGVjdCBIQVZFX0VCUEZfSklUIGlmIDY0QklUXG5hcmNoL2xvb25nYXJjaC9LY29uZmlnLTE0NS1cdHNlbGVjdCBIQVZFX0VGRklDSUVOVF9VTkFMSUdORURfQUNDRVNTIGlmICFBUkNIX1NUUklDVF9BTElHTlxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjExLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xMiAwMzo0OTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA1MTM0CgkJCQkJCQlvdXRwdXQ6IDExNQoJCQkJCQkJdGhvdWdodHM6IDU1OAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBBc3Nlc3NtZW50IG9mIHRoZSBCUEYgSklUIENvbmZpZ3VyYXRpb24gYW5kIFBhdGNoKioKCk9rYXksIHNvIGl0IGxvb2tzIGxpa2UgYEJQRl9KSVRgIGlzIGVuYWJsZWQgYnkgZGVmYXVsdCBpZiB0aGUgYXJjaGl0ZWN0dXJlIGhhcyBgSEFWRV9FQlBGX0pJVGAsIHdoaWNoIG1ha2VzIHNlbnNlLiBJJiMzOTtsbCBuZWVkIHRvIGFkZCBgQlBGX0pJVGAgdG8gdGhlIGBFbmFibGVDb25maWdzYCBzZXR0aW5nIHRvIHJlZmxlY3QgdGhhdC4gSXQmIzM5O3MgYWxzbyB3b3J0aCBub3RpbmcgdGhhdCBgQlBGX1NZU0NBTExgIGlzIGEgZGVwZW5kZW5jeSBmb3IgQlBGIGluIGdlbmVyYWwsIGFsdGhvdWdoIGBCUEZfSklUYCBpcyB0aGUgY3JpdGljYWwgcGllY2UgaGVyZS4KCk5vdywgbGV0IG1lIGp1c3QgcmV2aWV3IHRoZSBwYXRjaCBpdHNlbGYgdG8gY29uZmlybSBldmVyeXRoaW5nJiMzOTtzIHNoaXAtc2hhcGUuCgpUaGUgZmlyc3Qgc2VjdGlvbiwgdGhlIG5lZ2F0aXZlIG9wZXJhdGlvbiwgbG9va3MgZ29vZC4gSXQgc2VlbXMgbGlrZSB0aGUgaW1tZWRpYXRlIHZhbHVlIGxvYWRpbmcgaGFzIGJlZW4gcmVtb3ZlZCwgcmVwbGFjZWQgd2l0aCBhIGRpcmVjdCBzdWJ0cmFjdGlvbiBmcm9tIHplcm8uIFRoYXQgc2hvdWxkIHdvcmsgYXMgaW50ZW5kZWQuCgpOZXh0LCB0aGUgdW5jb25kaXRpb25hbCBqdW1wIGNvZGUgYWxzbyBhcHBlYXJzIGZ1bmN0aW9uYWwuIFRoZSBsb2dpYyBmb3IgY2FsY3VsYXRpbmcgdGhlIGp1bXAgb2Zmc2V0IGFuZCBlbWl0dGluZyB0aGUganVtcCBpbnN0cnVjdGlvbiBzZWVtcyBzb3VuZCwgd2l0aCB0aGUgMzItYml0IHZlcnNpb24gYWxzbyBoYW5kbGVkIGNvcnJlY3RseS4gSSBhbHNvIG5vdGVkIHRoYXQgdGhlIGp1bXAgb2Zmc2V0IGNhbGN1bGF0aW9uIHVzaW5nIGBicGYybGFfb2Zmc2V0KClgIGlzIGluIHRoZSByaWdodCBwbGFjZSwgc28gbm8gaXNzdWVzIHRoZXJlLgoKRmluYWxseSwgdGhlIGltbWVkaWF0ZSB2YWx1ZSBsb2FkaW5nIGNvZGUgbG9va3MgY29ycmVjdC4gVGhlIGBvcmlgIGluc3RydWN0aW9uIGlzIGJlaW5nIHVzZWQgdG8gbG9hZCB1bnNpZ25lZCBpbW1lZGlhdGVzLCBhbmQgdGhlIGB6ZXh0YCBpcyByZW1vdmVkLCByZXBsYWNlZCB3aXRoIHRoZSBgcmV0dXJuYCBzdGF0ZW1lbnQuIFRoaXMgYWxzbyBzZWVtcyB0byBiZSBmdW5jdGlvbmFsbHkgY29tcGxldGUuCgpHaXZlbiBhbGwgdGhpcywgSSYjMzk7bSBjb25maWRlbnQgdGhhdCB0aGVzZSBjaGFuZ2VzIGFyZSBmdW5jdGlvbmFsLiBUaGVyZWZvcmUsIEkgY2FuIGNvbmZpZGVudGx5IHNldCBgV29ydGhGdXp6aW5nPXRydWVgLiBJIHdpbGwgZm9jdXMgbXkgZnV6emluZyBlZmZvcnRzIG9uIGBidWlsZF9pbnNuYCBhbmQgYGJwZl9pbnRfaml0X2NvbXBpbGVgLiBUaGUgYEVuYWJsZUNvbmZpZ3NgIHNob3VsZCBiZSBzZXQgdG8gYEJQRl9KSVRgIC4KCkkmIzM5O20gcmVhZHkgdG8gY2FsbCBgc2V0LXJlc3VsdHNgIG5vdy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMi8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTIgMDM6NDk8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0JQRl9KSVQmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtidWlsZF9pbnNuJiMzNDssCiAgICAmIzM0O2JwZl9pbnRfaml0X2NvbXBpbGUmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBMb29uZ0FyY2ggQlBGIEpJVCBjb21waWxlciwgZml4aW5nIGJ1Z3MgaW4gQlBGX05FRyBhbmQgQlBGX0pBIGluc3RydWN0aW9uIGdlbmVyYXRpb24sIGFzIHdlbGwgYXMgYW4gaXNzdWUgd2l0aCBpbW1lZGlhdGUgbW92ZXMuIFRoZXNlIGNoYW5nZXMgYWZmZWN0IGhvdyBlQlBGIHByb2dyYW1zIGFyZSBjb21waWxlZCB0byBuYXRpdmUgY29kZSBhbmQgc2hvdWxkIGJlIGZ1enplZC4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7QlBGX0pJVCYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2J1aWxkX2luc24mIzM0OywKICAgICYjMzQ7YnBmX2ludF9qaXRfY29tcGlsZSYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIExvb25nQXJjaCBCUEYgSklUIGNvbXBpbGVyLCBmaXhpbmcgYnVncyBpbiBCUEZfTkVHIGFuZCBCUEZfSkEgaW5zdHJ1Y3Rpb24gZ2VuZXJhdGlvbiwgYXMgd2VsbCBhcyBhbiBpc3N1ZSB3aXRoIGltbWVkaWF0ZSBtb3Zlcy4gVGhlc2UgY2hhbmdlcyBhZmZlY3QgaG93IGVCUEYgcHJvZ3JhbXMgYXJlIGNvbXBpbGVkIHRvIG5hdGl2ZSBjb2RlIGFuZCBzaG91bGQgYmUgZnV6emVkLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTwvdGJvZHk+Cgk8L3RhYmxlPgoKCTxkaXYgaWQ9ImxsbV9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+TExNIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgVG9rZW5zPC90aD4KCQkJCQk8dGg+QXZnIFRva2VuczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJsbG1fc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJ0b29sX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5Ub29sIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9InRvb2xfc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJkdXJhdGlvbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+Cgk8ZGl2IGlkPSJ0b2tlbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+CgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9qc2FwaSI+PC9zY3JpcHQ+Cgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CgkJZ29vZ2xlLmxvYWQoInZpc3VhbGl6YXRpb24iLCAiMSIsIHtwYWNrYWdlczpbImNvcmVjaGFydCJdfSk7CgkJZ29vZ2xlLnNldE9uTG9hZENhbGxiYWNrKGRyYXdDaGFydHMpOwoKCQlmdW5jdGlvbiBkcmF3Q2hhcnRzKCkgewoJCQljb25zdCByYXdEYXRhID0gW3siU3RhcnRlZCI6IjIwMjYtMDctMTJUMDM6NDg6NTguMzMyNTQ2NTFaIiwiU2VxIjowLCJOZXN0aW5nIjowLCJUeXBlIjoiZmxvdyIsIk5hbWUiOiJwYXRjaC10cmlhZ2UiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyNzgzMDA1OTcxNywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJCUEZfSklUXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiYnVpbGRfaW5zblwiLFxuICAgIFwiYnBmX2ludF9qaXRfY29tcGlsZVwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUgTG9vbmdBcmNoIEJQRiBKSVQgY29tcGlsZXIsIGZpeGluZyBidWdzIGluIEJQRl9ORUcgYW5kIEJQRl9KQSBpbnN0cnVjdGlvbiBnZW5lcmF0aW9uLCBhcyB3ZWxsIGFzIGFuIGlzc3VlIHdpdGggaW1tZWRpYXRlIG1vdmVzLiBUaGVzZSBjaGFuZ2VzIGFmZmVjdCBob3cgZUJQRiBwcm9ncmFtcyBhcmUgY29tcGlsZWQgdG8gbmF0aXZlIGNvZGUgYW5kIHNob3VsZCBiZSBmdXp6ZWQuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTEyVDAzOjQ4OjU4LjMzMjU3OTMzWiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo3MTAzMTA3MzksIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIlBhdGNoRGlmZlwiOiBcImNvbW1pdCA1ZWI5YWFhNGYyMTFmZTY5OGU0NTdkYmMyYzMzYzU3MTMyZTljOGE1XFxuQXV0aG9yOiBzeXotY2x1c3RlciBcXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cXHUwMDNlXFxuRGF0ZTogICBTdW4gSnVsIDEyIDAzOjQ4OjU2IDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL2FyY2gvbG9vbmdhcmNoL25ldC9icGZfaml0LmMgYi9hcmNoL2xvb25nYXJjaC9uZXQvYnBmX2ppdC5jXFxuaW5kZXggMjczOGI0ZGIxMTY1MzMuLjY5YmMzMGY4OGM0NGY0IDEwMDY0NFxcbi0tLSBhL2FyY2gvbG9vbmdhcmNoL25ldC9icGZfaml0LmNcXG4rKysgYi9hcmNoL2xvb25nYXJjaC9uZXQvYnBmX2ppdC5jXFxuQEAgLTg5NCw3ICs4OTQsNiBAQCBzdGF0aWMgaW50IGJ1aWxkX2luc24oY29uc3Qgc3RydWN0IGJwZl9pbnNuICppbnNuLCBzdHJ1Y3Qgaml0X2N0eCAqY3R4LCBib29sIGV4dFxcbiBcXHQvKiBkc3QgPSAtZHN0ICovXFxuIFxcdGNhc2UgQlBGX0FMVSB8IEJQRl9ORUc6XFxuIFxcdGNhc2UgQlBGX0FMVTY0IHwgQlBGX05FRzpcXG4tXFx0XFx0bW92ZV9pbW0oY3R4LCB0MSwgaW1tLCBpczMyKTtcXG4gXFx0XFx0ZW1pdF9pbnNuKGN0eCwgc3ViZCwgZHN0LCBMT09OR0FSQ0hfR1BSX1pFUk8sIGRzdCk7XFxuIFxcdFxcdGVtaXRfemV4dF8zMihjdHgsIGRzdCwgaXMzMik7XFxuIFxcdFxcdGJyZWFrO1xcbkBAIC0xMTUxLDExICsxMTUwLDEyIEBAIHN0YXRpYyBpbnQgYnVpbGRfaW5zbihjb25zdCBzdHJ1Y3QgYnBmX2luc24gKmluc24sIHN0cnVjdCBqaXRfY3R4ICpjdHgsIGJvb2wgZXh0XFxuIFxcbiBcXHQvKiBQQyArPSBvZmYgKi9cXG4gXFx0Y2FzZSBCUEZfSk1QIHwgQlBGX0pBOlxcbitcXHRcXHRqbXBfb2Zmc2V0ID0gYnBmMmxhX29mZnNldChpLCBvZmYsIGN0eCk7XFxuK1xcdFxcdGlmIChlbWl0X3VuY29uZF9qbXAoY3R4LCBqbXBfb2Zmc2V0KSBcXHUwMDNjIDApXFxuK1xcdFxcdFxcdGdvdG8gdG9vZmFyO1xcbitcXHRcXHRicmVhaztcXG4gXFx0Y2FzZSBCUEZfSk1QMzIgfCBCUEZfSkE6XFxuLVxcdFxcdGlmIChCUEZfQ0xBU1MoY29kZSkgPT0gQlBGX0pNUClcXG4tXFx0XFx0XFx0am1wX29mZnNldCA9IGJwZjJsYV9vZmZzZXQoaSwgb2ZmLCBjdHgpO1xcbi1cXHRcXHRlbHNlXFxuLVxcdFxcdFxcdGptcF9vZmZzZXQgPSBicGYybGFfb2Zmc2V0KGksIGltbSwgY3R4KTtcXG4rXFx0XFx0am1wX29mZnNldCA9IGJwZjJsYV9vZmZzZXQoaSwgaW1tLCBjdHgpO1xcbiBcXHRcXHRpZiAoZW1pdF91bmNvbmRfam1wKGN0eCwgam1wX29mZnNldCkgXFx1MDAzYyAwKVxcbiBcXHRcXHRcXHRnb3RvIHRvb2ZhcjtcXG4gXFx0XFx0YnJlYWs7XFxuZGlmZiAtLWdpdCBhL2FyY2gvbG9vbmdhcmNoL25ldC9icGZfaml0LmggYi9hcmNoL2xvb25nYXJjaC9uZXQvYnBmX2ppdC5oXFxuaW5kZXggYThlMjliZTM1ZmE4MTUuLmJiNThjNDJjMmYyYTk3IDEwMDY0NFxcbi0tLSBhL2FyY2gvbG9vbmdhcmNoL25ldC9icGZfaml0LmhcXG4rKysgYi9hcmNoL2xvb25nYXJjaC9uZXQvYnBmX2ppdC5oXFxuQEAgLTE1Niw3ICsxNTYsNyBAQCBzdGF0aWMgaW5saW5lIHZvaWQgbW92ZV9pbW0oc3RydWN0IGppdF9jdHggKmN0eCwgZW51bSBsb29uZ2FyY2hfZ3ByIHJkLCBsb25nIGltbVxcbiBcXHQvKiBvcmkgcmQsICR6ZXJvLCBpbW1fMTFfMCAqL1xcbiBcXHRpZiAoaXNfdW5zaWduZWRfaW1tMTIoaW1tKSkge1xcbiBcXHRcXHRlbWl0X2luc24oY3R4LCBvcmksIHJkLCBMT09OR0FSQ0hfR1BSX1pFUk8sIGltbSk7XFxuLVxcdFxcdGdvdG8gemV4dDtcXG4rXFx0XFx0cmV0dXJuO1xcbiBcXHR9XFxuIFxcbiBcXHQvKiBsdTUyaWQgcmQsICR6ZXJvLCBpbW1fNjNfNTIgKi9cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTJUMDM6NDg6NTkuMDQ0MTQ1MDk5WiIsIlNlcSI6MiwiTmVzdGluZyI6MSwiVHlwZSI6ImFnZW50IiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoyNzExODM5MTg5OCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJCUEZfSklUXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiYnVpbGRfaW5zblwiLFxuICAgIFwiYnBmX2ludF9qaXRfY29tcGlsZVwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUgTG9vbmdBcmNoIEJQRiBKSVQgY29tcGlsZXIsIGZpeGluZyBidWdzIGluIEJQRl9ORUcgYW5kIEJQRl9KQSBpbnN0cnVjdGlvbiBnZW5lcmF0aW9uLCBhcyB3ZWxsIGFzIGFuIGlzc3VlIHdpdGggaW1tZWRpYXRlIG1vdmVzLiBUaGVzZSBjaGFuZ2VzIGFmZmVjdCBob3cgZUJQRiBwcm9ncmFtcyBhcmUgY29tcGlsZWQgdG8gbmF0aXZlIGNvZGUgYW5kIHNob3VsZCBiZSBmdXp6ZWQuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLlxuWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmVcbmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cblxuSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluXG55b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHlcbnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuXG5cblJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6XG4tIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuXG4tIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLlxuLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuXG4tIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSxcbmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS5cblxuSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaFxudG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuXG5cbldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOlxuMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy5cbiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLlxuMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuXG4gICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuXG4gICBEbyBub3QgbGlzdCB0b28gZ2VuZXJpYyBjb25maWdzICh3ZSBhbHJlYWR5IGhhdmUgdGhlbSBlbmFibGVkKS4gT25seSBsaXN0IHRob3NlIHRoYXRcbiAgIHNwZWNpZmljYWxseSBjb3ZlciB0aGUgbW9kaWZpZWQgY29kZS4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzIG91dHB1dCBhcnJheSxcbiAgIGFuZCBETyBOT1QgYWRkIGEgJ0NPTkZJR18nIHByZWZpeCAoZS5nLiwgcmV0dXJuIFwiTkVUX0lQVjRcIiBpbnN0ZWFkIG9mIFwiQ09ORklHX05FVF9JUFY0XCIpLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgNWViOWFhYTRmMjExZmU2OThlNDU3ZGJjMmMzM2M1NzEzMmU5YzhhNVxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBTdW4gSnVsIDEyIDAzOjQ4OjU2IDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvYXJjaC9sb29uZ2FyY2gvbmV0L2JwZl9qaXQuYyBiL2FyY2gvbG9vbmdhcmNoL25ldC9icGZfaml0LmNcbmluZGV4IDI3MzhiNGRiMTE2NTMzLi42OWJjMzBmODhjNDRmNCAxMDA2NDRcbi0tLSBhL2FyY2gvbG9vbmdhcmNoL25ldC9icGZfaml0LmNcbisrKyBiL2FyY2gvbG9vbmdhcmNoL25ldC9icGZfaml0LmNcbkBAIC04OTQsNyArODk0LDYgQEAgc3RhdGljIGludCBidWlsZF9pbnNuKGNvbnN0IHN0cnVjdCBicGZfaW5zbiAqaW5zbiwgc3RydWN0IGppdF9jdHggKmN0eCwgYm9vbCBleHRcbiBcdC8qIGRzdCA9IC1kc3QgKi9cbiBcdGNhc2UgQlBGX0FMVSB8IEJQRl9ORUc6XG4gXHRjYXNlIEJQRl9BTFU2NCB8IEJQRl9ORUc6XG4tXHRcdG1vdmVfaW1tKGN0eCwgdDEsIGltbSwgaXMzMik7XG4gXHRcdGVtaXRfaW5zbihjdHgsIHN1YmQsIGRzdCwgTE9PTkdBUkNIX0dQUl9aRVJPLCBkc3QpO1xuIFx0XHRlbWl0X3pleHRfMzIoY3R4LCBkc3QsIGlzMzIpO1xuIFx0XHRicmVhaztcbkBAIC0xMTUxLDExICsxMTUwLDEyIEBAIHN0YXRpYyBpbnQgYnVpbGRfaW5zbihjb25zdCBzdHJ1Y3QgYnBmX2luc24gKmluc24sIHN0cnVjdCBqaXRfY3R4ICpjdHgsIGJvb2wgZXh0XG4gXG4gXHQvKiBQQyArPSBvZmYgKi9cbiBcdGNhc2UgQlBGX0pNUCB8IEJQRl9KQTpcbitcdFx0am1wX29mZnNldCA9IGJwZjJsYV9vZmZzZXQoaSwgb2ZmLCBjdHgpO1xuK1x0XHRpZiAoZW1pdF91bmNvbmRfam1wKGN0eCwgam1wX29mZnNldCkgXHUwMDNjIDApXG4rXHRcdFx0Z290byB0b29mYXI7XG4rXHRcdGJyZWFrO1xuIFx0Y2FzZSBCUEZfSk1QMzIgfCBCUEZfSkE6XG4tXHRcdGlmIChCUEZfQ0xBU1MoY29kZSkgPT0gQlBGX0pNUClcbi1cdFx0XHRqbXBfb2Zmc2V0ID0gYnBmMmxhX29mZnNldChpLCBvZmYsIGN0eCk7XG4tXHRcdGVsc2Vcbi1cdFx0XHRqbXBfb2Zmc2V0ID0gYnBmMmxhX29mZnNldChpLCBpbW0sIGN0eCk7XG4rXHRcdGptcF9vZmZzZXQgPSBicGYybGFfb2Zmc2V0KGksIGltbSwgY3R4KTtcbiBcdFx0aWYgKGVtaXRfdW5jb25kX2ptcChjdHgsIGptcF9vZmZzZXQpIFx1MDAzYyAwKVxuIFx0XHRcdGdvdG8gdG9vZmFyO1xuIFx0XHRicmVhaztcbmRpZmYgLS1naXQgYS9hcmNoL2xvb25nYXJjaC9uZXQvYnBmX2ppdC5oIGIvYXJjaC9sb29uZ2FyY2gvbmV0L2JwZl9qaXQuaFxuaW5kZXggYThlMjliZTM1ZmE4MTUuLmJiNThjNDJjMmYyYTk3IDEwMDY0NFxuLS0tIGEvYXJjaC9sb29uZ2FyY2gvbmV0L2JwZl9qaXQuaFxuKysrIGIvYXJjaC9sb29uZ2FyY2gvbmV0L2JwZl9qaXQuaFxuQEAgLTE1Niw3ICsxNTYsNyBAQCBzdGF0aWMgaW5saW5lIHZvaWQgbW92ZV9pbW0oc3RydWN0IGppdF9jdHggKmN0eCwgZW51bSBsb29uZ2FyY2hfZ3ByIHJkLCBsb25nIGltbVxuIFx0Lyogb3JpIHJkLCAkemVybywgaW1tXzExXzAgKi9cbiBcdGlmIChpc191bnNpZ25lZF9pbW0xMihpbW0pKSB7XG4gXHRcdGVtaXRfaW5zbihjdHgsIG9yaSwgcmQsIExPT05HQVJDSF9HUFJfWkVSTywgaW1tKTtcbi1cdFx0Z290byB6ZXh0O1xuK1x0XHRyZXR1cm47XG4gXHR9XG4gXG4gXHQvKiBsdTUyaWQgcmQsICR6ZXJvLCBpbW1fNjNfNTIgKi9cbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTEyVDAzOjQ4OjU5LjA0NDE0OTMwOVoiLCJTZXEiOjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjY5NjU5MjM5NTMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqTG9vbmdBcmNoIEJQRiBKSVQgUGF0Y2ggQW5hbHlzaXMqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIHBhdGNoIGFuZCBpdCdzIHRvdWNoaW5nIGBhcmNoL2xvb25nYXJjaC9uZXQvYnBmX2ppdC5jYCBhbmQgYGFyY2gvbG9vbmdhcmNoL25ldC9icGZfaml0LmhgLiBJdCdzIGEgQlBGIEpJVCBjb21waWxlciBmaXggc3BlY2lmaWNhbGx5IGZvciBMb29uZ0FyY2guIFRoZSBjaGFuZ2VzIHNlZW0gcHJldHR5IHN0cmFpZ2h0Zm9yd2FyZDogaXQgYWRkcmVzc2VzIGEgYnVnIGluIGhvdyBgQlBGX0FMVSB8IEJQRl9ORUdgIGFuZCBgQlBGX0FMVTY0IHwgQlBGX05FR2AgaW5zdHJ1Y3Rpb25zIHdlcmUgYmVpbmcgaGFuZGxlZCwgc3BlY2lmaWNhbGx5IGEgcmVkdW5kYW50IGFuZCBwb3RlbnRpYWxseSBwcm9ibGVtYXRpYyBgbW92ZV9pbW1gIGNhbGwuIFRoZXJlJ3MgYWxzbyBzb21lIGNvcnJlY3Rpb24gaW4gdGhlIGhhbmRsaW5nIG9mIGBCUEZfSk1QIHwgQlBGX0pBYCBhbmQgYEJQRl9KTVAzMiB8IEJQRl9KQWAuIEluIGFkZGl0aW9uIHRvIHRoYXQsIGEgbWlub3IgdXBkYXRlIHRvIGBtb3ZlX2ltbWAgd2hlcmUgYSBgZ290byB6ZXh0O2AgZ2V0cyB0dXJuZWQgaW50byBgcmV0dXJuO2Agd2hlbiBkZWFsaW5nIHdpdGggc21hbGwgdW5zaWduZWQgaW1tZWRpYXRlcywgYW5kIHRoYXQgbWFrZXMgc2Vuc2UuXG5cblRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSwgYSBidWcgZml4LiBUaGUgY29uY2VybiBpcywgb2YgY291cnNlLCB0aGF0IHRoaXMgaXMgTG9vbmdBcmNoLXNwZWNpZmljIGNvZGUuIFN5emthbGxlciwgbXkgbWFpbiBmdXp6ZXIsIHR5cGljYWxseSBydW5zIG9uIHg4Nl82NCwgYXJtNjQsIFJJU0MtViwgZXRjLiBNeSBrbmVlLWplcmsgcmVhY3Rpb24gaXMgdGhhdCBpdCBtaWdodCBiZSB1bnJlYWNoYWJsZSBpbiBhIGxvdCBvZiBteSB0eXBpY2FsIGZ1enppbmcgY29uZmlndXJhdGlvbnMuIFRoZW4gYWdhaW4sIHRoZSBwcm9tcHQgc2F5cyBcIkNvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZVwiLiBTbywgUUVNVSBpcyBhbiBvcHRpb24gaGVyZSwgYW5kIEkgY2FuIHJ1biBMb29uZ0FyY2ggaW4gUUVNVS4gXG5cbkEgcXVpY2sgY2hlY2sgY29uZmlybXMgc3l6a2FsbGVyICpkb2VzKiBzdXBwb3J0IExvb25nQXJjaCwgZXhjZWxsZW50ISBUaGlzIGRlZmluaXRlbHkgbWFrZXMgaXQgZnV6emFibGUuIEkgbmVlZCB0byBtYWtlIHN1cmUgdGhlIHJpZ2h0IGNvbmZpZ3MgYXJlIHNldDogYENPTkZJR19CUEZfSklUYCBhbmQgb2YgY291cnNlIGBDT05GSUdfTE9PTkdBUkNIYC4gU28sIEknbGwgcmV2aWV3IGBhcmNoL2xvb25nYXJjaC9uZXQvYnBmX2ppdC5jYCBhbmQgYGFyY2gvbG9vbmdhcmNoL25ldC9icGZfaml0LmhgIHRvIHNlZSBleGFjdGx5IHdoYXQncyBnb2luZyBvbiBhbmQgdmVyaWZ5IHRoYXQgdGhlc2UgY29uZmlncyBhcmUgc2V0IGNvcnJlY3RseSB0byBnaXZlIGl0IGEgZnV6emluZyBnby5cblxuXG4iLCJJbnB1dFRva2VucyI6MjM4NiwiT3V0cHV0VG9rZW5zIjozNSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjQ0NiwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTEyVDAzOjQ5OjA2LjAxMDA3NTkzMloiLCJTZXEiOjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjozNjE2MTM4MTgsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiQ09ORklHX0JQRl9KSVRcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiYXJjaC9sb29uZ2FyY2gvbmV0L1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJhcmNoL2xvb25nYXJjaC9uZXQvTWFrZWZpbGUtNi0jXFxuYXJjaC9sb29uZ2FyY2gvbmV0L01ha2VmaWxlOjc6b2JqLSQoQ09ORklHX0JQRl9KSVQpICs9IGJwZl9qaXQub1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xMlQwMzo0OTowNi4zNzE2OTQxNDFaIiwiU2VxIjo1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozMTU5MzQxNzUwLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKk15IEJQRiBKSVQgQ29uZmlndXJhdGlvbiBDaGVjayoqXG5cbk9rYXksIHNvIEkgc2VlIHdlIGFic29sdXRlbHkgbmVlZCBgQ09ORklHX0JQRl9KSVRgIGVuYWJsZWQuIFRoYXQncyB0aGUgYmFzZWxpbmUsIHRoZSBmb3VuZGF0aW9uLiBOb3csIGJlZm9yZSBJIGRpdmUgdG9vIGRlZXAsIGxldCdzIGp1c3QgcXVpY2tseSBzY2FuIGFuZCBzZWUgaWYgdGhlcmUgYXJlIGFueSBvdGhlciBjb25maWd1cmF0aW9uIHZhcmlhYmxlcyB0aGF0IGFyZSBzdWJ0bHkgcmVsYXRlZCwgYW55dGhpbmcgZWxzZSBJIHNob3VsZCBiZSBhd2FyZSBvZiBvciBtaWdodCBuZWVkIHRvIHR3ZWFrIGluIGNvbmp1bmN0aW9uIHdpdGggdGhpcy4gTXkgcHJpbWFyeSBmb2N1cyBpcyB0aGUgYGJ1aWxkX2luc25gIGFuZCBgbW92ZV9pbW1gIGZ1bmN0aW9ucywgdGhleSdyZSB0aGUgb25lcyB0aGF0IGhhdmUgc2VlbiBtb2RpZmljYXRpb24sIHNvIHRoZXkgYXJlIHRoZSBwbGFjZXMgdG8gc3RhcnQuIEknbGwgbmVlZCB0byBsb2NhdGUgYGJ1aWxkX2luc25gLCBzbyBsZXQncyBuYXZpZ2F0ZSB0byBgYXJjaC9sb29uZ2FyY2gvbmV0L2JwZl9qaXQuY2AuIFRoaXMgaXMgd2hlcmUgdGhlIG1hZ2ljIGhhcHBlbnMsIGFuZCB3aGVyZSBJIHdpbGwgZm9jdXMgbXkgaW5pdGlhbCByZXZpZXcuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjMzOTMsIk91dHB1dFRva2VucyI6MzgsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo3MCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0xMlQwMzo0OTowOS41MzEwMzg2NzFaIiwiU2VxIjo2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTMyOTI1NTY5LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImJ1aWxkX2luc25cIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiYXJjaC9sb29uZ2FyY2gvbmV0L2JwZl9qaXQuY1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJhcmNoL2xvb25nYXJjaC9uZXQvYnBmX2ppdC5jPTY1Mz1zdGF0aWMgaW50IGFkZF9leGNlcHRpb25faGFuZGxlcihjb25zdCBzdHJ1Y3QgYnBmX2luc24gKmluc24sXFxuLS1cXG5hcmNoL2xvb25nYXJjaC9uZXQvYnBmX2ppdC5jLTcxNC1cXG5hcmNoL2xvb25nYXJjaC9uZXQvYnBmX2ppdC5jOjcxNTpzdGF0aWMgaW50IGJ1aWxkX2luc24oY29uc3Qgc3RydWN0IGJwZl9pbnNuICppbnNuLCBzdHJ1Y3Qgaml0X2N0eCAqY3R4LCBib29sIGV4dHJhX3Bhc3MpXFxuYXJjaC9sb29uZ2FyY2gvbmV0L2JwZl9qaXQuYy03MTYte1xcbi0tXFxuYXJjaC9sb29uZ2FyY2gvbmV0L2JwZl9qaXQuYz0xNDc0PXN0YXRpYyBpbnQgYnVpbGRfYm9keShzdHJ1Y3Qgaml0X2N0eCAqY3R4LCBib29sIGV4dHJhX3Bhc3MpXFxuLS1cXG5hcmNoL2xvb25nYXJjaC9uZXQvYnBmX2ppdC5jLTE0ODUtXFxuYXJjaC9sb29uZ2FyY2gvbmV0L2JwZl9qaXQuYzoxNDg2OlxcdFxcdHJldCA9IGJ1aWxkX2luc24oaW5zbiwgY3R4LCBleHRyYV9wYXNzKTtcXG5hcmNoL2xvb25nYXJjaC9uZXQvYnBmX2ppdC5jLTE0ODctXFx0XFx0aWYgKHJldCBcXHUwMDNlIDApIHtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTJUMDM6NDk6MDkuNjYzOTg3ODE5WiIsIlNlcSI6NywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDIyNTg4OTcxOSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipCUEYgSklUIG9uIExvb25nQXJjaCAtIEZvY3VzaW5nIHRoZSBMZW5zKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgdGhpcyBCUEYgSklUIGltcGxlbWVudGF0aW9uIGZvciBMb29uZ0FyY2gsIGFuZCB0aGUga2V5IHBsYXllciBoZXJlIHNlZW1zIHRvIGJlIHRoZSBgYnVpbGRfaW5zbmAgZnVuY3Rpb24uIFRoYXQncyB0aGUgbWFpbiBpbnN0cnVjdGlvbiBidWlsZGVyLCBhbmQgbXkgZm9jdXMgbmVlZHMgdG8gYmUgc2hhcnBlc3QgdGhlcmUuIEkgc2VlIGBtb3ZlX2ltbWAgaXMgaW5saW5lLCBkZWNsYXJlZCBpbiB0aGUgaGVhZGVyLiBUaGF0IG1pZ2h0IGJlIGxlc3Mgb2YgYSB0YXJnZXQsIGJ1dCBJJ2xsIG1ha2UgYSBtZW50YWwgbm90ZSBvZiBpdDsgbWF5YmUgSSdsbCBuZWVkIHRvIGNoYXNlIGl0cyBjYWxscyBkb3duIHRoZSBsaW5lLiBUaGUgZ29vZCBuZXdzIGlzLCBiYXNlZCBvbiB3aGF0IEknbSBzZWVpbmcsIHRoaXMgbG9va3MgbGlrZSBhIGZ1bmN0aW9uYWwgcGF0Y2guIE15IGluc3RpbmN0IHRlbGxzIG1lIHRvIHNldCBgV29ydGhGdXp6aW5nPXRydWVgLlxuXG5HaXZlbiB0aGUgaW5saW5lIG5hdHVyZSBvZiBgbW92ZV9pbW1gLCBsZXQncyBicm9hZGVuIHRoZSBwb3RlbnRpYWwgdGFyZ2V0IGEgYml0LiBJZiBgbW92ZV9pbW1gIGlzIGEgY2FuZGlkYXRlIGZvciBmdXp6aW5nLCB0aGVuIG1heWJlIGl0cyBwYXJlbnQgZnVuY3Rpb24gYGJ1aWxkX2JvZHlgIG9yIHRoZSBmdW5jdGlvbiB0aGF0IHVsdGltYXRlbHkgY2FsbHMgYGJ1aWxkX2luc25gIHdoaWNoIGlzIGBicGZfaW50X2ppdF9jb21waWxlYCBjb3VsZCBiZSBtb3JlIHJlbGV2YW50LiBSaWdodCwgaXQncyB0aW1lIHRvIGNoZWNrIHRoYXQgYGJwZl9pbnRfaml0X2NvbXBpbGVgIGZ1bmN0aW9uIG1vcmUgY2xvc2VseS4gTGV0J3Mgc2VlIHdoYXQncyBpbiB0aGVyZS4uLlxuXG5cbiIsIklucHV0VG9rZW5zIjozOTQ3LCJPdXRwdXRUb2tlbnMiOjQyLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTI5LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTEyVDAzOjQ5OjEzLjg4OTg4MDQ3OFoiLCJTZXEiOjgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMzc2MzEzMzgsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiYnBmX2ludF9qaXRfY29tcGlsZVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJhcmNoL2xvb25nYXJjaC9uZXQvYnBmX2ppdC5jXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImFyY2gvbG9vbmdhcmNoL25ldC9icGZfaml0LmM9MjE4Mj1pbnQgYXJjaF9icGZfdHJhbXBvbGluZV9zaXplKGNvbnN0IHN0cnVjdCBidGZfZnVuY19tb2RlbCAqbSwgdTMyIGZsYWdzLFxcbi0tXFxuYXJjaC9sb29uZ2FyY2gvbmV0L2JwZl9qaXQuYy0yMTk2LVxcbmFyY2gvbG9vbmdhcmNoL25ldC9icGZfaml0LmM6MjE5NzpzdHJ1Y3QgYnBmX3Byb2cgKmJwZl9pbnRfaml0X2NvbXBpbGUoc3RydWN0IGJwZl92ZXJpZmllcl9lbnYgKmVudiwgc3RydWN0IGJwZl9wcm9nICpwcm9nKVxcbmFyY2gvbG9vbmdhcmNoL25ldC9icGZfaml0LmMtMjE5OC17XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTEyVDAzOjQ5OjE0LjAyNzc2MDc4NloiLCJTZXEiOjksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQwNTM5NDIwMTMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBDb25maWd1cmF0aW9uIFJlcXVpcmVtZW50cyBmb3IgSklUIENvbXBpbGF0aW9uKipcblxuT2theSwgc28gSSBuZWVkIHRvIHN1bW1hcml6ZSB0aGUgY29uZmlndXJhdGlvbnMgcmVsYXRlZCB0byB0aGlzIGNvZGUuIFRoZSBwcm9tcHQgc3BlY2lmaWNhbGx5IHNheXMgdG8gYXZvaWQgZ2VuZXJpYyBjb25maWd1cmF0aW9ucyB0aGF0IGFyZSBsaWtlbHkgYWxyZWFkeSBlbmFibGVkIGFuZCBvbmx5IGxpc3QgdGhvc2UgdGhhdCBhcmUgZGlyZWN0bHkgcmVsZXZhbnQgdG8gdGhlIG1vZGlmaWVkIGNvZGUuIE15IGluaXRpYWwgZm9jdXMgaXMgb24gYGJ1aWxkX2luc25gIGFuZCBgYnBmX2ludF9qaXRfY29tcGlsZWAsIHdoaWNoIHN1Z2dlc3QgYSBCUEYgSklUIGNvbXBpbGVyIGlzIGF0IHBsYXkuXG5cblRoZSBvYnZpb3VzIGNvbmZpZ3VyYXRpb24sIGBCUEZfSklUYCwgc3ByaW5ncyB0byBtaW5kIGJlY2F1c2UgaXQncyB0aGUgbW9zdCBkaXJlY3QgaW5kaWNhdG9yIG9mIEpJVCBjb21waWxhdGlvbiB3aXRoaW4gdGhlIEJQRiBmcmFtZXdvcmsuIEJ1dCwgdGhlIHByb21wdCBpbXBsaWVzIHRoZXJlIG1pZ2h0IGJlIHNvbWV0aGluZyBtb3JlIHNwZWNpZmljIHRvIHRoaXMgY29kZS4gV2hpbGUgYEJQRl9KSVRgIGlzIHByZXR0eSBzdGFuZGFyZCBmb3IgSklUIHN1cHBvcnQsIGl0J3MgKnRoZSogY29uZmlndXJhdGlvbiBmb3IgdGhpcyBmaWxlJ3MgSklUIGltcGxlbWVudGF0aW9uLCBzbyBpdCdzIHdvcnRoIG5vdGluZy5cblxuVGhlIGJlc3QgYXBwcm9hY2ggc2VlbXMgdG8gYmUgY3Jvc3MtcmVmZXJlbmNpbmcgdGhpcyB3aXRoIHRoZSBhcmNoaXRlY3R1cmUgc3BlY2lmaWMgS2NvbmZpZyBmaWxlLiBMZXQgbWUgY2hlY2sgYGFyY2gvbG9vbmdhcmNoL0tjb25maWdgIHRvIHNlZSBpZiB0aGVyZSBhcmUgYW55IGFyY2hpdGVjdHVyZS1zcGVjaWZpYyBjb25maWd1cmF0aW9ucyBvciBkZXBlbmRlbmNpZXMgcmVsYXRlZCB0byBgQlBGX0pJVGAuIFRoYXQgc2hvdWxkIGdpdmUgbWUgYSBiZXR0ZXIgdmlldyBvZiB3aGljaCBjb25maWcgb3B0aW9ucyBhcmUgaW1wb3J0YW50LlxuXG5cbiIsIklucHV0VG9rZW5zIjo0NTMzLCJPdXRwdXRUb2tlbnMiOjMzLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTEzLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTEyVDAzOjQ5OjE4LjA4MTcwNjMxOVoiLCJTZXEiOjEwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NTExOTEwNTI2LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIkJQRl9KSVRcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiYXJjaC9sb29uZ2FyY2gvS2NvbmZpZ1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJhcmNoL2xvb25nYXJjaC9LY29uZmlnPTI9Y29uZmlnIExPT05HQVJDSFxcbi0tXFxuYXJjaC9sb29uZ2FyY2gvS2NvbmZpZy03OS1cXHRzZWxlY3QgQVJDSF9VU0VfUVVFVUVEX1NQSU5MT0NLU1xcbmFyY2gvbG9vbmdhcmNoL0tjb25maWc6ODA6XFx0c2VsZWN0IEFSQ0hfV0FOVF9ERUZBVUxUX0JQRl9KSVQgaWYgSEFWRV9FQlBGX0pJVFxcbmFyY2gvbG9vbmdhcmNoL0tjb25maWctODEtXFx0c2VsZWN0IEFSQ0hfV0FOVF9ERUZBVUxUX1RPUERPV05fTU1BUF9MQVlPVVRcXG4tLVxcbmFyY2gvbG9vbmdhcmNoL0tjb25maWctMTQzLVxcdHNlbGVjdCBIQVZFX0RZTkFNSUNfRlRSQUNFX1dJVEhfUkVHU1xcbmFyY2gvbG9vbmdhcmNoL0tjb25maWc6MTQ0OlxcdHNlbGVjdCBIQVZFX0VCUEZfSklUIGlmIDY0QklUXFxuYXJjaC9sb29uZ2FyY2gvS2NvbmZpZy0xNDUtXFx0c2VsZWN0IEhBVkVfRUZGSUNJRU5UX1VOQUxJR05FRF9BQ0NFU1MgaWYgIUFSQ0hfU1RSSUNUX0FMSUdOXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTEyVDAzOjQ5OjE4LjU5MzYyNjE2NVoiLCJTZXEiOjExLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo3MzcxNDIyNTQ5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKk15IEFzc2Vzc21lbnQgb2YgdGhlIEJQRiBKSVQgQ29uZmlndXJhdGlvbiBhbmQgUGF0Y2gqKlxuXG5Pa2F5LCBzbyBpdCBsb29rcyBsaWtlIGBCUEZfSklUYCBpcyBlbmFibGVkIGJ5IGRlZmF1bHQgaWYgdGhlIGFyY2hpdGVjdHVyZSBoYXMgYEhBVkVfRUJQRl9KSVRgLCB3aGljaCBtYWtlcyBzZW5zZS4gSSdsbCBuZWVkIHRvIGFkZCBgQlBGX0pJVGAgdG8gdGhlIGBFbmFibGVDb25maWdzYCBzZXR0aW5nIHRvIHJlZmxlY3QgdGhhdC4gSXQncyBhbHNvIHdvcnRoIG5vdGluZyB0aGF0IGBCUEZfU1lTQ0FMTGAgaXMgYSBkZXBlbmRlbmN5IGZvciBCUEYgaW4gZ2VuZXJhbCwgYWx0aG91Z2ggYEJQRl9KSVRgIGlzIHRoZSBjcml0aWNhbCBwaWVjZSBoZXJlLlxuXG5Ob3csIGxldCBtZSBqdXN0IHJldmlldyB0aGUgcGF0Y2ggaXRzZWxmIHRvIGNvbmZpcm0gZXZlcnl0aGluZydzIHNoaXAtc2hhcGUuXG5cblRoZSBmaXJzdCBzZWN0aW9uLCB0aGUgbmVnYXRpdmUgb3BlcmF0aW9uLCBsb29rcyBnb29kLiBJdCBzZWVtcyBsaWtlIHRoZSBpbW1lZGlhdGUgdmFsdWUgbG9hZGluZyBoYXMgYmVlbiByZW1vdmVkLCByZXBsYWNlZCB3aXRoIGEgZGlyZWN0IHN1YnRyYWN0aW9uIGZyb20gemVyby4gVGhhdCBzaG91bGQgd29yayBhcyBpbnRlbmRlZC5cblxuTmV4dCwgdGhlIHVuY29uZGl0aW9uYWwganVtcCBjb2RlIGFsc28gYXBwZWFycyBmdW5jdGlvbmFsLiBUaGUgbG9naWMgZm9yIGNhbGN1bGF0aW5nIHRoZSBqdW1wIG9mZnNldCBhbmQgZW1pdHRpbmcgdGhlIGp1bXAgaW5zdHJ1Y3Rpb24gc2VlbXMgc291bmQsIHdpdGggdGhlIDMyLWJpdCB2ZXJzaW9uIGFsc28gaGFuZGxlZCBjb3JyZWN0bHkuIEkgYWxzbyBub3RlZCB0aGF0IHRoZSBqdW1wIG9mZnNldCBjYWxjdWxhdGlvbiB1c2luZyBgYnBmMmxhX29mZnNldCgpYCBpcyBpbiB0aGUgcmlnaHQgcGxhY2UsIHNvIG5vIGlzc3VlcyB0aGVyZS5cblxuRmluYWxseSwgdGhlIGltbWVkaWF0ZSB2YWx1ZSBsb2FkaW5nIGNvZGUgbG9va3MgY29ycmVjdC4gVGhlIGBvcmlgIGluc3RydWN0aW9uIGlzIGJlaW5nIHVzZWQgdG8gbG9hZCB1bnNpZ25lZCBpbW1lZGlhdGVzLCBhbmQgdGhlIGB6ZXh0YCBpcyByZW1vdmVkLCByZXBsYWNlZCB3aXRoIHRoZSBgcmV0dXJuYCBzdGF0ZW1lbnQuIFRoaXMgYWxzbyBzZWVtcyB0byBiZSBmdW5jdGlvbmFsbHkgY29tcGxldGUuXG5cbkdpdmVuIGFsbCB0aGlzLCBJJ20gY29uZmlkZW50IHRoYXQgdGhlc2UgY2hhbmdlcyBhcmUgZnVuY3Rpb25hbC4gVGhlcmVmb3JlLCBJIGNhbiBjb25maWRlbnRseSBzZXQgYFdvcnRoRnV6emluZz10cnVlYC4gSSB3aWxsIGZvY3VzIG15IGZ1enppbmcgZWZmb3J0cyBvbiBgYnVpbGRfaW5zbmAgYW5kIGBicGZfaW50X2ppdF9jb21waWxlYC4gVGhlIGBFbmFibGVDb25maWdzYCBzaG91bGQgYmUgc2V0IHRvIGBCUEZfSklUYCAuXG5cbkknbSByZWFkeSB0byBjYWxsIGBzZXQtcmVzdWx0c2Agbm93LlxuXG5cbiIsIklucHV0VG9rZW5zIjo1MTM0LCJPdXRwdXRUb2tlbnMiOjExNSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjU1OCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0xMlQwMzo0OToyNS45NjUwNTI2NDRaIiwiU2VxIjoxMiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxOTc0Nzc2NjMsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIkJQRl9KSVRcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJidWlsZF9pbnNuXCIsXG4gICAgXCJicGZfaW50X2ppdF9jb21waWxlXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBMb29uZ0FyY2ggQlBGIEpJVCBjb21waWxlciwgZml4aW5nIGJ1Z3MgaW4gQlBGX05FRyBhbmQgQlBGX0pBIGluc3RydWN0aW9uIGdlbmVyYXRpb24sIGFzIHdlbGwgYXMgYW4gaXNzdWUgd2l0aCBpbW1lZGlhdGUgbW92ZXMuIFRoZXNlIGNoYW5nZXMgYWZmZWN0IGhvdyBlQlBGIHByb2dyYW1zIGFyZSBjb21waWxlZCB0byBuYXRpdmUgY29kZSBhbmQgc2hvdWxkIGJlIGZ1enplZC5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJCUEZfSklUXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiYnVpbGRfaW5zblwiLFxuICAgIFwiYnBmX2ludF9qaXRfY29tcGlsZVwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUgTG9vbmdBcmNoIEJQRiBKSVQgY29tcGlsZXIsIGZpeGluZyBidWdzIGluIEJQRl9ORUcgYW5kIEJQRl9KQSBpbnN0cnVjdGlvbiBnZW5lcmF0aW9uLCBhcyB3ZWxsIGFzIGFuIGlzc3VlIHdpdGggaW1tZWRpYXRlIG1vdmVzLiBUaGVzZSBjaGFuZ2VzIGFmZmVjdCBob3cgZUJQRiBwcm9ncmFtcyBhcmUgY29tcGlsZWQgdG8gbmF0aXZlIGNvZGUgYW5kIHNob3VsZCBiZSBmdXp6ZWQuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0udG9rZW5zIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnVG9vbER1ciA9IHN0YXRzLnRvb2wuY291bnQgPiAwID8gKHN0YXRzLnRvb2wuZHVyYXRpb24gLyBzdGF0cy50b29sLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCgkJCWNvbnN0IGxsbVN1bWFyeUNlbGxzID0gW3N0YXRzLmxsbS5jb3VudCwgc3RhdHMubGxtLnRva2VucywgYXZnTGxtVG9rZW4sIHN0YXRzLmxsbS5kdXJhdGlvbiwgYXZnTGxtRHVyXTsKCQkJY29uc3QgdG9vbFN1bW1hcnlDZWxscyA9IFtzdGF0cy50b29sLmNvdW50LCBzdGF0cy50b29sLmR1cmF0aW9uLCBhdmdUb29sRHVyXTsKCgkJCWNvbnN0IGxsbVN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xsbV9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJbGxtU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IGxsbVRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJbGxtU3VtYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCWxsbVRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCWxsbVN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKGxsbVRyKTsKCgkJCWNvbnN0IHRvb2xTdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b29sX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQl0b29sU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IHRvb2xUciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCXRvb2xTdW1tYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCXRvb2xUci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQl0b29sU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQodG9vbFRyKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgZmlsdGVyZWRTdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gWyJsbG0iLCAidG9vbCJdLmluY2x1ZGVzKGQuVHlwZSkpOwoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdEdXJhdGlvbicpOwoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOyAKCgkJCWZpbHRlcmVkU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCQoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7CgkJCQlsZXQgdG9vbHRpcCA9IHMuTmFtZTsKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iICYmIHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCQkJCWRhdGEuYWRkUm93KFtgJHtzLlNlcX1gLCBkdXIsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUaW1lIENvbnN1bXB0aW9uIG9mIExMTS9Ub29sIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0vVG9vbCBTdGVwcycsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdTZWNvbmRzJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkdXJhdGlvbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgbGxtU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IGQuVHlwZSA9PT0gImxsbSIpOwoJCQlpZiAobGxtU3RlcHMubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdUb2tlbnMnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAnc3R5bGUnfSk7CQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOwkKCgkJCWNvbnN0IGFnZW50Q29sb3JzID0ge307CgkJCWNvbnN0IHBhbGV0dGUgPSBbJyM0Mjg1RjQnLCAnI0RCNDQzNycsICcjRjRCNDAwJywgJyMwRjlENTgnLCAnI0FCNDdCQycsICcjMDBBQ0MxJ107CgkJCWxldCBjb2xvcklkeCA9IDA7CgkJCWNvbnN0IGFnZW50TExNQ291bnRzID0ge307CgkJCWxsbVN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQlpZiAoIWFnZW50Q29sb3JzW3MuTmFtZV0pIHsKCQkJCQlhZ2VudENvbG9yc1tzLk5hbWVdID0gcGFsZXR0ZVtjb2xvcklkeCAlIHBhbGV0dGUubGVuZ3RoXTsKCQkJCQljb2xvcklkeCsrOwoJCQkJfQoKCQkJCWFnZW50TExNQ291bnRzW3MuTmFtZV0gPSAoYWdlbnRMTE1Db3VudHNbcy5OYW1lXSB8fCAwKSArIDE7CgkJCQljb25zdCBsYWJlbCA9IGAke3MuTmFtZX0tJHthZ2VudExMTUNvdW50c1tzLk5hbWVdfWA7CgkJCQljb25zdCB0b3RhbFRva2VucyA9IHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnM7CgkJCQljb25zdCBzdHlsZSA9IGBjb2xvcjogJHthZ2VudENvbG9yc1tzLk5hbWVdfWA7CgkJCQlsZXQgdG9vbHRpcCA9IGBUb3RhbCBUb2tlbnM6ICR7dG90YWxUb2tlbnN9XG4oSW46ICR7cy5JbnB1dFRva2Vuc30sIE91dDogJHtzLk91dHB1dFRva2Vuc30sIFRob3VnaHRzOiAke3MuT3V0cHV0VGhvdWdodHNUb2tlbnN9KWA7CgkJCQlpZiAocy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoKCQkJCWRhdGEuYWRkUm93KFtsYWJlbCwgdG90YWxUb2tlbnMsIHN0eWxlLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVG9rZW4gQ29uc3VtcHRpb24gYnkgTExNIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0gQ2FsbCBTZXF1ZW5jZScsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdDb25zdW1lZCBUb2tlbnMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rva2VuX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgkJbGV0IGFsbEV4cGFuZGVkID0gZmFsc2U7CgkJZnVuY3Rpb24gdG9nZ2xlQWxsRGV0YWlscygpIHsKCQkJYWxsRXhwYW5kZWQgPSAhYWxsRXhwYW5kZWQ7CgkJCWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2RldGFpbHMnKS5mb3JFYWNoKGQgPT4gewoJCQkJaWYgKGFsbEV4cGFuZGVkKSBkLnNldEF0dHJpYnV0ZSgnb3BlbicsICcnKTsKCQkJCWVsc2UgZC5yZW1vdmVBdHRyaWJ1dGUoJ29wZW4nKTsKCQkJfSk7CgkJfQoJPC9zY3JpcHQ+CgoKPC9ib2R5Pgo8L2h0bWw+Cg==" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflow6bcpk[1] Phase: Succeeded StartedAt: 2026-07-12 03:49:37 +0000 UTC FinishedAt: 2026-07-12 03:49:37 +0000 UTC Input: nil Output: nil --------- Name: series-workflow6bcpk[1].abort-on-skip-outcome Phase: Skipped StartedAt: 2026-07-12 03:49:37 +0000 UTC FinishedAt: 2026-07-12 03:49:37 +0000 UTC Input: nil Output: nil --------- Name: series-workflow6bcpk[2] Phase: Succeeded StartedAt: 2026-07-12 03:49:37 +0000 UTC FinishedAt: 2026-07-12 05:28:04 +0000 UTC Input: nil Output: nil --------- Name: series-workflow6bcpk[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"7cbd0c4cebe4c9f678d15e6b9ba975e1155a107f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT"],"series_id":"","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["build_insn","bpf_int_jit_compile"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"7cbd0c4cebe4c9f678d15e6b9ba975e1155a107f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT"],"series_id":"3d659dff-6055-482a-93e1-86d188e2eb63","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},retest:null,track:KASAN) Phase: Succeeded StartedAt: 2026-07-12 03:49:37 +0000 UTC FinishedAt: 2026-07-12 05:28:04 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:element,Default:nil,Value:*{"base":{"arch":"amd64","commit_hash":"7cbd0c4cebe4c9f678d15e6b9ba975e1155a107f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT"],"series_id":"","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},"fuzz":{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["build_insn","bpf_int_jit_compile"],"skip_cover_check":false},"patched":{"arch":"amd64","commit_hash":"7cbd0c4cebe4c9f678d15e6b9ba975e1155a107f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT"],"series_id":"3d659dff-6055-482a-93e1-86d188e2eb63","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},"retest":null,"track":"KASAN"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: nil --------- Name: series-workflow6bcpk[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"7cbd0c4cebe4c9f678d15e6b9ba975e1155a107f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT"],"series_id":"","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["build_insn","bpf_int_jit_compile"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"7cbd0c4cebe4c9f678d15e6b9ba975e1155a107f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT"],"series_id":"3d659dff-6055-482a-93e1-86d188e2eb63","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},retest:null,track:KASAN)[0] Phase: Succeeded StartedAt: 2026-07-12 03:49:37 +0000 UTC FinishedAt: 2026-07-12 03:49:57 +0000 UTC Input: nil Output: nil --------- Name: series-workflow6bcpk[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"7cbd0c4cebe4c9f678d15e6b9ba975e1155a107f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT"],"series_id":"","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["build_insn","bpf_int_jit_compile"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"7cbd0c4cebe4c9f678d15e6b9ba975e1155a107f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT"],"series_id":"3d659dff-6055-482a-93e1-86d188e2eb63","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},retest:null,track:KASAN)[0].save-base-req Phase: Succeeded StartedAt: 2026-07-12 03:49:37 +0000 UTC FinishedAt: 2026-07-12 03:49:44 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"7cbd0c4cebe4c9f678d15e6b9ba975e1155a107f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT"],"series_id":"","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.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-workflow6bcpk/series-workflow6bcpk-convert-artifact-592618592/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow6bcpk[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"7cbd0c4cebe4c9f678d15e6b9ba975e1155a107f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT"],"series_id":"","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["build_insn","bpf_int_jit_compile"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"7cbd0c4cebe4c9f678d15e6b9ba975e1155a107f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT"],"series_id":"3d659dff-6055-482a-93e1-86d188e2eb63","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},retest:null,track:KASAN)[1] Phase: Succeeded StartedAt: 2026-07-12 03:49:57 +0000 UTC FinishedAt: 2026-07-12 04:29:39 +0000 UTC Input: nil Output: nil --------- Name: series-workflow6bcpk[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"7cbd0c4cebe4c9f678d15e6b9ba975e1155a107f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT"],"series_id":"","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["build_insn","bpf_int_jit_compile"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"7cbd0c4cebe4c9f678d15e6b9ba975e1155a107f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT"],"series_id":"3d659dff-6055-482a-93e1-86d188e2eb63","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},retest:null,track:KASAN)[1].base-build Phase: Succeeded StartedAt: 2026-07-12 03:49:57 +0000 UTC FinishedAt: 2026-07-12 04:29:39 +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:*e3fa401e-3dff-4608-a957-fac8d173f78d,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-workflow6bcpk/series-workflow6bcpk-convert-artifact-592618592/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": "a974e5b0-725c-41a2-baf4-f8efa50aeff6", "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-workflow6bcpk/series-workflow6bcpk-build-action-658182950/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow6bcpk[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"7cbd0c4cebe4c9f678d15e6b9ba975e1155a107f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT"],"series_id":"","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["build_insn","bpf_int_jit_compile"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"7cbd0c4cebe4c9f678d15e6b9ba975e1155a107f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT"],"series_id":"3d659dff-6055-482a-93e1-86d188e2eb63","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},retest:null,track:KASAN)[1].base-build(0) Phase: Succeeded StartedAt: 2026-07-12 03:49:57 +0000 UTC FinishedAt: 2026-07-12 04:29:28 +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:*e3fa401e-3dff-4608-a957-fac8d173f78d,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-workflow6bcpk/series-workflow6bcpk-convert-artifact-592618592/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": "a974e5b0-725c-41a2-baf4-f8efa50aeff6", "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-workflow6bcpk/series-workflow6bcpk-build-action-658182950/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow6bcpk[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"7cbd0c4cebe4c9f678d15e6b9ba975e1155a107f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT"],"series_id":"","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["build_insn","bpf_int_jit_compile"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"7cbd0c4cebe4c9f678d15e6b9ba975e1155a107f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT"],"series_id":"3d659dff-6055-482a-93e1-86d188e2eb63","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},retest:null,track:KASAN)[2] Phase: Succeeded StartedAt: 2026-07-12 04:29:39 +0000 UTC FinishedAt: 2026-07-12 04:29:39 +0000 UTC Input: nil Output: nil --------- Name: series-workflow6bcpk[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"7cbd0c4cebe4c9f678d15e6b9ba975e1155a107f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT"],"series_id":"","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["build_insn","bpf_int_jit_compile"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"7cbd0c4cebe4c9f678d15e6b9ba975e1155a107f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT"],"series_id":"3d659dff-6055-482a-93e1-86d188e2eb63","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},retest:null,track:KASAN)[2].abort-if-base-build-failed Phase: Skipped StartedAt: 2026-07-12 04:29:39 +0000 UTC FinishedAt: 2026-07-12 04:29:39 +0000 UTC Input: nil Output: nil --------- Name: series-workflow6bcpk[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"7cbd0c4cebe4c9f678d15e6b9ba975e1155a107f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT"],"series_id":"","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["build_insn","bpf_int_jit_compile"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"7cbd0c4cebe4c9f678d15e6b9ba975e1155a107f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT"],"series_id":"3d659dff-6055-482a-93e1-86d188e2eb63","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},retest:null,track:KASAN)[3] Phase: Succeeded StartedAt: 2026-07-12 04:29:39 +0000 UTC FinishedAt: 2026-07-12 04:30:24 +0000 UTC Input: nil Output: nil --------- Name: series-workflow6bcpk[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"7cbd0c4cebe4c9f678d15e6b9ba975e1155a107f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT"],"series_id":"","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["build_insn","bpf_int_jit_compile"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"7cbd0c4cebe4c9f678d15e6b9ba975e1155a107f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT"],"series_id":"3d659dff-6055-482a-93e1-86d188e2eb63","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},retest:null,track:KASAN)[3].save-patched-req Phase: Succeeded StartedAt: 2026-07-12 04:29:39 +0000 UTC FinishedAt: 2026-07-12 04:30:12 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"7cbd0c4cebe4c9f678d15e6b9ba975e1155a107f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT"],"series_id":"3d659dff-6055-482a-93e1-86d188e2eb63","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.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-workflow6bcpk/series-workflow6bcpk-convert-artifact-86412423/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow6bcpk[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"7cbd0c4cebe4c9f678d15e6b9ba975e1155a107f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT"],"series_id":"","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["build_insn","bpf_int_jit_compile"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"7cbd0c4cebe4c9f678d15e6b9ba975e1155a107f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT"],"series_id":"3d659dff-6055-482a-93e1-86d188e2eb63","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},retest:null,track:KASAN)[4] Phase: Succeeded StartedAt: 2026-07-12 04:30:24 +0000 UTC FinishedAt: 2026-07-12 04:32:59 +0000 UTC Input: nil Output: nil --------- Name: series-workflow6bcpk[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"7cbd0c4cebe4c9f678d15e6b9ba975e1155a107f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT"],"series_id":"","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["build_insn","bpf_int_jit_compile"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"7cbd0c4cebe4c9f678d15e6b9ba975e1155a107f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT"],"series_id":"3d659dff-6055-482a-93e1-86d188e2eb63","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},retest:null,track:KASAN)[4].boot-test-base Phase: Succeeded StartedAt: 2026-07-12 04:30:24 +0000 UTC FinishedAt: 2026-07-12 04:32:46 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*a974e5b0-725c-41a2-baf4-f8efa50aeff6,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-workflow6bcpk/series-workflow6bcpk-build-action-658182950/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-workflow6bcpk[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"7cbd0c4cebe4c9f678d15e6b9ba975e1155a107f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT"],"series_id":"","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["build_insn","bpf_int_jit_compile"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"7cbd0c4cebe4c9f678d15e6b9ba975e1155a107f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT"],"series_id":"3d659dff-6055-482a-93e1-86d188e2eb63","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},retest:null,track:KASAN)[5] Phase: Succeeded StartedAt: 2026-07-12 04:32:59 +0000 UTC FinishedAt: 2026-07-12 04:32:59 +0000 UTC Input: nil Output: nil --------- Name: series-workflow6bcpk[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"7cbd0c4cebe4c9f678d15e6b9ba975e1155a107f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT"],"series_id":"","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["build_insn","bpf_int_jit_compile"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"7cbd0c4cebe4c9f678d15e6b9ba975e1155a107f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT"],"series_id":"3d659dff-6055-482a-93e1-86d188e2eb63","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},retest:null,track:KASAN)[5].abort-if-base-boot-failed Phase: Skipped StartedAt: 2026-07-12 04:32:59 +0000 UTC FinishedAt: 2026-07-12 04:32:59 +0000 UTC Input: nil Output: nil --------- Name: series-workflow6bcpk[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"7cbd0c4cebe4c9f678d15e6b9ba975e1155a107f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT"],"series_id":"","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["build_insn","bpf_int_jit_compile"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"7cbd0c4cebe4c9f678d15e6b9ba975e1155a107f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT"],"series_id":"3d659dff-6055-482a-93e1-86d188e2eb63","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},retest:null,track:KASAN)[6] Phase: Succeeded StartedAt: 2026-07-12 04:32:59 +0000 UTC FinishedAt: 2026-07-12 05:23:22 +0000 UTC Input: nil Output: nil --------- Name: series-workflow6bcpk[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"7cbd0c4cebe4c9f678d15e6b9ba975e1155a107f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT"],"series_id":"","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["build_insn","bpf_int_jit_compile"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"7cbd0c4cebe4c9f678d15e6b9ba975e1155a107f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT"],"series_id":"3d659dff-6055-482a-93e1-86d188e2eb63","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},retest:null,track:KASAN)[6].patched-build Phase: Succeeded StartedAt: 2026-07-12 04:33:00 +0000 UTC FinishedAt: 2026-07-12 05:23:22 +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:*e3fa401e-3dff-4608-a957-fac8d173f78d,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-workflow6bcpk/series-workflow6bcpk-convert-artifact-86412423/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": "188eb39f-bf22-4472-9ccb-b97dc7842e69", "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-workflow6bcpk/series-workflow6bcpk-build-action-2478865931/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow6bcpk[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"7cbd0c4cebe4c9f678d15e6b9ba975e1155a107f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT"],"series_id":"","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["build_insn","bpf_int_jit_compile"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"7cbd0c4cebe4c9f678d15e6b9ba975e1155a107f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT"],"series_id":"3d659dff-6055-482a-93e1-86d188e2eb63","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},retest:null,track:KASAN)[6].patched-build(0) Phase: Succeeded StartedAt: 2026-07-12 04:33:00 +0000 UTC FinishedAt: 2026-07-12 05:23:12 +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:*e3fa401e-3dff-4608-a957-fac8d173f78d,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-workflow6bcpk/series-workflow6bcpk-convert-artifact-86412423/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": "188eb39f-bf22-4472-9ccb-b97dc7842e69", "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-workflow6bcpk/series-workflow6bcpk-build-action-2478865931/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow6bcpk[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"7cbd0c4cebe4c9f678d15e6b9ba975e1155a107f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT"],"series_id":"","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["build_insn","bpf_int_jit_compile"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"7cbd0c4cebe4c9f678d15e6b9ba975e1155a107f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT"],"series_id":"3d659dff-6055-482a-93e1-86d188e2eb63","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},retest:null,track:KASAN)[7] Phase: Succeeded StartedAt: 2026-07-12 05:23:22 +0000 UTC FinishedAt: 2026-07-12 05:23:22 +0000 UTC Input: nil Output: nil --------- Name: series-workflow6bcpk[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"7cbd0c4cebe4c9f678d15e6b9ba975e1155a107f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT"],"series_id":"","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["build_insn","bpf_int_jit_compile"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"7cbd0c4cebe4c9f678d15e6b9ba975e1155a107f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT"],"series_id":"3d659dff-6055-482a-93e1-86d188e2eb63","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},retest:null,track:KASAN)[7].abort-if-patched-build-failed Phase: Skipped StartedAt: 2026-07-12 05:23:22 +0000 UTC FinishedAt: 2026-07-12 05:23:22 +0000 UTC Input: nil Output: nil --------- Name: series-workflow6bcpk[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"7cbd0c4cebe4c9f678d15e6b9ba975e1155a107f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT"],"series_id":"","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["build_insn","bpf_int_jit_compile"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"7cbd0c4cebe4c9f678d15e6b9ba975e1155a107f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT"],"series_id":"3d659dff-6055-482a-93e1-86d188e2eb63","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},retest:null,track:KASAN)[8] Phase: Succeeded StartedAt: 2026-07-12 05:23:22 +0000 UTC FinishedAt: 2026-07-12 05:25:18 +0000 UTC Input: nil Output: nil --------- Name: series-workflow6bcpk[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"7cbd0c4cebe4c9f678d15e6b9ba975e1155a107f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT"],"series_id":"","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["build_insn","bpf_int_jit_compile"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"7cbd0c4cebe4c9f678d15e6b9ba975e1155a107f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT"],"series_id":"3d659dff-6055-482a-93e1-86d188e2eb63","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},retest:null,track:KASAN)[8].boot-test-patched Phase: Succeeded StartedAt: 2026-07-12 05:23:22 +0000 UTC FinishedAt: 2026-07-12 05:25:08 +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:*188eb39f-bf22-4472-9ccb-b97dc7842e69,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-workflow6bcpk/series-workflow6bcpk-build-action-2478865931/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-workflow6bcpk[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"7cbd0c4cebe4c9f678d15e6b9ba975e1155a107f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT"],"series_id":"","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["build_insn","bpf_int_jit_compile"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"7cbd0c4cebe4c9f678d15e6b9ba975e1155a107f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT"],"series_id":"3d659dff-6055-482a-93e1-86d188e2eb63","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},retest:null,track:KASAN)[10] Phase: Succeeded StartedAt: 2026-07-12 05:25:18 +0000 UTC FinishedAt: 2026-07-12 05:28:04 +0000 UTC Input: nil Output: nil --------- Name: series-workflow6bcpk[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"7cbd0c4cebe4c9f678d15e6b9ba975e1155a107f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT"],"series_id":"","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["build_insn","bpf_int_jit_compile"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"7cbd0c4cebe4c9f678d15e6b9ba975e1155a107f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT"],"series_id":"3d659dff-6055-482a-93e1-86d188e2eb63","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},retest:null,track:KASAN)[10].run-fuzz Phase: Succeeded StartedAt: 2026-07-12 05:25:18 +0000 UTC FinishedAt: 2026-07-12 05:28:04 +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":["build_insn","bpf_int_jit_compile"],"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:*a974e5b0-725c-41a2-baf4-f8efa50aeff6,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*188eb39f-bf22-4472-9ccb-b97dc7842e69,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-workflow6bcpk/series-workflow6bcpk-build-action-658182950/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-workflow6bcpk/series-workflow6bcpk-build-action-2478865931/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: nil --------- Name: series-workflow6bcpk[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"7cbd0c4cebe4c9f678d15e6b9ba975e1155a107f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT"],"series_id":"","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["build_insn","bpf_int_jit_compile"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"7cbd0c4cebe4c9f678d15e6b9ba975e1155a107f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT"],"series_id":"3d659dff-6055-482a-93e1-86d188e2eb63","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},retest:null,track:KASAN)[10].run-fuzz[0] Phase: Succeeded StartedAt: 2026-07-12 05:25:18 +0000 UTC FinishedAt: 2026-07-12 05:25:28 +0000 UTC Input: nil Output: nil --------- Name: series-workflow6bcpk[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"7cbd0c4cebe4c9f678d15e6b9ba975e1155a107f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT"],"series_id":"","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["build_insn","bpf_int_jit_compile"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"7cbd0c4cebe4c9f678d15e6b9ba975e1155a107f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT"],"series_id":"3d659dff-6055-482a-93e1-86d188e2eb63","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},retest:null,track:KASAN)[10].run-fuzz[0].save-fuzz-config Phase: Succeeded StartedAt: 2026-07-12 05:25:18 +0000 UTC FinishedAt: 2026-07-12 05:25:22 +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":["build_insn","bpf_int_jit_compile"],"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-workflow6bcpk/series-workflow6bcpk-convert-artifact-1037687648/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow6bcpk[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"7cbd0c4cebe4c9f678d15e6b9ba975e1155a107f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT"],"series_id":"","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["build_insn","bpf_int_jit_compile"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"7cbd0c4cebe4c9f678d15e6b9ba975e1155a107f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT"],"series_id":"3d659dff-6055-482a-93e1-86d188e2eb63","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},retest:null,track:KASAN)[10].run-retest Phase: Skipped StartedAt: 2026-07-12 05:25:18 +0000 UTC FinishedAt: 2026-07-12 05:25:18 +0000 UTC Input: nil Output: nil --------- Name: series-workflow6bcpk[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"7cbd0c4cebe4c9f678d15e6b9ba975e1155a107f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT"],"series_id":"","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["build_insn","bpf_int_jit_compile"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"7cbd0c4cebe4c9f678d15e6b9ba975e1155a107f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT"],"series_id":"3d659dff-6055-482a-93e1-86d188e2eb63","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},retest:null,track:KASAN)[9] Phase: Succeeded StartedAt: 2026-07-12 05:25:18 +0000 UTC FinishedAt: 2026-07-12 05:25:18 +0000 UTC Input: nil Output: nil --------- Name: series-workflow6bcpk[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"7cbd0c4cebe4c9f678d15e6b9ba975e1155a107f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT"],"series_id":"","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["build_insn","bpf_int_jit_compile"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"7cbd0c4cebe4c9f678d15e6b9ba975e1155a107f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT"],"series_id":"3d659dff-6055-482a-93e1-86d188e2eb63","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},retest:null,track:KASAN)[9].abort-if-patched-boot-failed Phase: Skipped StartedAt: 2026-07-12 05:25:18 +0000 UTC FinishedAt: 2026-07-12 05:25:18 +0000 UTC Input: nil Output: nil --------- Name: series-workflow6bcpk[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"7cbd0c4cebe4c9f678d15e6b9ba975e1155a107f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT"],"series_id":"","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["build_insn","bpf_int_jit_compile"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"7cbd0c4cebe4c9f678d15e6b9ba975e1155a107f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT"],"series_id":"3d659dff-6055-482a-93e1-86d188e2eb63","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},retest:null,track:KASAN)[10].run-fuzz[1] Phase: Succeeded StartedAt: 2026-07-12 05:25:28 +0000 UTC FinishedAt: 2026-07-12 05:28:04 +0000 UTC Input: nil Output: nil --------- Name: series-workflow6bcpk[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"7cbd0c4cebe4c9f678d15e6b9ba975e1155a107f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT"],"series_id":"","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["build_insn","bpf_int_jit_compile"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"7cbd0c4cebe4c9f678d15e6b9ba975e1155a107f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT"],"series_id":"3d659dff-6055-482a-93e1-86d188e2eb63","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},retest:null,track:KASAN)[10].run-fuzz[1].fuzz Phase: Succeeded StartedAt: 2026-07-12 05:25:28 +0000 UTC FinishedAt: 2026-07-12 05:27:44 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*a974e5b0-725c-41a2-baf4-f8efa50aeff6,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*188eb39f-bf22-4472-9ccb-b97dc7842e69,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-workflow6bcpk/series-workflow6bcpk-build-action-658182950/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-workflow6bcpk/series-workflow6bcpk-build-action-2478865931/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-workflow6bcpk/series-workflow6bcpk-convert-artifact-1037687648/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,}