Name: series-workflowxdbb7 Phase: Succeeded StartedAt: 2026-07-20 13:28:57 +0000 UTC FinishedAt: 2026-07-20 17:54:50 +0000 UTC Input: nil Output: nil --------- Name: series-workflowxdbb7[0] Phase: Succeeded StartedAt: 2026-07-20 13:28:57 +0000 UTC FinishedAt: 2026-07-20 13:50:47 +0000 UTC Input: nil Output: nil --------- Name: series-workflowxdbb7[0].run-triage Phase: Succeeded StartedAt: 2026-07-20 13:28:57 +0000 UTC FinishedAt: 2026-07-20 13:50:47 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "mm-new", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git", "commit_hash": "890f8c4e827c918dac668a12eaf63180ba8a9e6d", "config_name": "upstream-apparmor-kasan.config", "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "mm-new", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git", "commit_hash": "890f8c4e827c918dac668a12eaf63180ba8a9e6d", "config_name": "upstream-apparmor-kasan.config", "series_id": "219e843a-a07e-4f7b-b28f-5d176780782c" }, "track": "KASAN", "fuzz": { "focus": null, "focus_symbols": [ "__cpa_collapse_large_pages", "split_large_page" ], "corpus_urls": [ "https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db" ], "skip_cover_check": true, "bug_title_re": "" }, "retest": null } ], "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIwIDEzOjUwPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7X19jcGFfY29sbGFwc2VfbGFyZ2VfcGFnZXMmIzM0OywKICAgICYjMzQ7c3BsaXRfbGFyZ2VfcGFnZSYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyBjb3JlIHg4NiBtZW1vcnkgbWFuYWdlbWVudCBjb2RlIChDUEEgLSBjaGFuZ2UgcGFnZSBhdHRyaWJ1dGUpIHRvIGNvcnJlY3RseSBhbGxvY2F0ZSBhbmQgZnJlZSBwYWdlIHRhYmxlcyB1c2luZyBgcHRlX2FsbG9jX29uZV9rZXJuZWxgIGFuZCBgcHRlX2ZyZWVfa2VybmVsYCAvIGBwYWdldGFibGVfZHRvcl9mcmVlYC4gVGhpcyBhZmZlY3RzIHBhZ2Ugc3BsaXR0aW5nIGFuZCBjb2xsYXBzaW5nLCB3aGljaCBpcyByZWFjaGFibGUgdmlhIGZlYXR1cmVzIHRoYXQgY2hhbmdlIG1lbW9yeSBwZXJtaXNzaW9ucyAoZS5nLiwgQlBGLCBtb2R1bGUgbG9hZGluZywga3Byb2JlcykuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MS8xPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjAgMTM6NTA8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPnJlYWQtcGF0Y2gtZGlmZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1BhdGNoRGlmZiYjMzQ7OiAmIzM0O2NvbW1pdCAyYjI1YzAyY2Q3ZTY4NDIyMTg4MTc4OTAxMmVjZTY2MDRlYmU4ODNiXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIE1vbiBKdWwgMjAgMTM6NTA6MTEgMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvYXJjaC94ODYvbW0vcGF0L3NldF9tZW1vcnkuYyBiL2FyY2gveDg2L21tL3BhdC9zZXRfbWVtb3J5LmNcbmluZGV4IDMwMWZiOWU3N2Q5MWJhLi5hNjdjYTMzYjlkZDEyMSAxMDA2NDRcbi0tLSBhL2FyY2gveDg2L21tL3BhdC9zZXRfbWVtb3J5LmNcbiYjNDM7JiM0MzsmIzQzOyBiL2FyY2gveDg2L21tL3BhdC9zZXRfbWVtb3J5LmNcbkBAIC00MzksNyAmIzQzOzQzOSwxMSBAQCBzdGF0aWMgdm9pZCBfX2NwYV9jb2xsYXBzZV9sYXJnZV9wYWdlcyhzdHJ1Y3QgY3BhX2RhdGEgKmNwYSlcbiBcbiBcdGxpc3RfZm9yX2VhY2hfZW50cnlfc2FmZShwdGRlc2MsIHRtcCwgXHUwMDI2cGd0YWJsZXMsIHB0X2xpc3QpIHtcbiBcdFx0bGlzdF9kZWwoXHUwMDI2cHRkZXNjLVx1MDAzZXB0X2xpc3QpO1xuLVx0XHRwYWdldGFibGVfZnJlZShwdGRlc2MpO1xuJiM0MztcbiYjNDM7XHRcdGlmIChmb2xpb190ZXN0X3BndGFibGUocHRkZXNjX2ZvbGlvKHB0ZGVzYykpKVxuJiM0MztcdFx0XHRwYWdldGFibGVfZHRvcl9mcmVlKHB0ZGVzYyk7XG4mIzQzO1x0XHRlbHNlXG4mIzQzO1x0XHRcdHBhZ2V0YWJsZV9mcmVlKHB0ZGVzYyk7XG4gXHR9XG4gfVxuIFxuQEAgLTExMzgsMTEgJiM0MzsxMTQyLDEwIEBAIHN0YXRpYyB2b2lkIHNwbGl0X3NldF9wdGUoc3RydWN0IGNwYV9kYXRhICpjcGEsIHB0ZV90ICpwdGUsIHVuc2lnbmVkIGxvbmcgcGZuLFxuIFxuIHN0YXRpYyBpbnRcbiBfX3NwbGl0X2xhcmdlX3BhZ2Uoc3RydWN0IGNwYV9kYXRhICpjcGEsIHB0ZV90ICprcHRlLCB1bnNpZ25lZCBsb25nIGFkZHJlc3MsXG4tXHRcdCAgIHN0cnVjdCBwdGRlc2MgKnB0ZGVzYylcbiYjNDM7XHRcdCAgIHB0ZV90ICpwYmFzZSlcbiB7XG4gXHR1bnNpZ25lZCBsb25nIGxwYWRkciwgbHBpbmMsIHJlZl9wZm4sIHBmbiwgcGZuaW5jID0gMTtcbi1cdHN0cnVjdCBwYWdlICpiYXNlID0gcHRkZXNjX3BhZ2UocHRkZXNjKTtcbi1cdHB0ZV90ICpwYmFzZSA9IChwdGVfdCAqKXBhZ2VfYWRkcmVzcyhiYXNlKTtcbiYjNDM7XHRzdHJ1Y3QgcGFnZSAqYmFzZSA9IHZpcnRfdG9fcGFnZShwYmFzZSk7XG4gXHR1bnNpZ25lZCBpbnQgaSwgbGV2ZWw7XG4gXHRwZ3Byb3RfdCByZWZfcHJvdDtcbiBcdGJvb2wgbngsIHJ3O1xuQEAgLTEyNDYsMTggJiM0MzsxMjQ5LDE4IEBAIF9fc3BsaXRfbGFyZ2VfcGFnZShzdHJ1Y3QgY3BhX2RhdGEgKmNwYSwgcHRlX3QgKmtwdGUsIHVuc2lnbmVkIGxvbmcgYWRkcmVzcyxcbiBzdGF0aWMgaW50IHNwbGl0X2xhcmdlX3BhZ2Uoc3RydWN0IGNwYV9kYXRhICpjcGEsIHB0ZV90ICprcHRlLFxuIFx0XHRcdCAgICB1bnNpZ25lZCBsb25nIGFkZHJlc3MpXG4ge1xuLVx0c3RydWN0IHB0ZGVzYyAqcHRkZXNjO1xuJiM0MztcdHB0ZV90ICpwdGU7XG4gXG4gXHRpZiAoIWRlYnVnX3BhZ2VhbGxvY19lbmFibGVkKCkpXG4gXHRcdHNwaW5fdW5sb2NrKFx1MDAyNmNwYV9sb2NrKTtcbi1cdHB0ZGVzYyA9IHBhZ2V0YWJsZV9hbGxvYyhHRlBfS0VSTkVMLCAwKTtcbiYjNDM7XHRwdGUgPSBwdGVfYWxsb2Nfb25lX2tlcm5lbChcdTAwMjZpbml0X21tKTtcbiBcdGlmICghZGVidWdfcGFnZWFsbG9jX2VuYWJsZWQoKSlcbiBcdFx0c3Bpbl9sb2NrKFx1MDAyNmNwYV9sb2NrKTtcbi1cdGlmICghcHRkZXNjKVxuJiM0MztcdGlmICghcHRlKVxuIFx0XHRyZXR1cm4gLUVOT01FTTtcbiBcbi1cdGlmIChfX3NwbGl0X2xhcmdlX3BhZ2UoY3BhLCBrcHRlLCBhZGRyZXNzLCBwdGRlc2MpKVxuLVx0XHRwYWdldGFibGVfZnJlZShwdGRlc2MpO1xuJiM0MztcdGlmIChfX3NwbGl0X2xhcmdlX3BhZ2UoY3BhLCBrcHRlLCBhZGRyZXNzLCBwdGUpKVxuJiM0MztcdFx0cHRlX2ZyZWVfa2VybmVsKFx1MDAyNmluaXRfbW0sIHB0ZSk7XG4gXG4gXHRyZXR1cm4gMDtcbiB9XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjAgMTM6NTA8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IG51bGwsCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtfX2NwYV9jb2xsYXBzZV9sYXJnZV9wYWdlcyYjMzQ7LAogICAgJiMzNDtzcGxpdF9sYXJnZV9wYWdlJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIGNvcmUgeDg2IG1lbW9yeSBtYW5hZ2VtZW50IGNvZGUgKENQQSAtIGNoYW5nZSBwYWdlIGF0dHJpYnV0ZSkgdG8gY29ycmVjdGx5IGFsbG9jYXRlIGFuZCBmcmVlIHBhZ2UgdGFibGVzIHVzaW5nIGBwdGVfYWxsb2Nfb25lX2tlcm5lbGAgYW5kIGBwdGVfZnJlZV9rZXJuZWxgIC8gYHBhZ2V0YWJsZV9kdG9yX2ZyZWVgLiBUaGlzIGFmZmVjdHMgcGFnZSBzcGxpdHRpbmcgYW5kIGNvbGxhcHNpbmcsIHdoaWNoIGlzIHJlYWNoYWJsZSB2aWEgZmVhdHVyZXMgdGhhdCBjaGFuZ2UgbWVtb3J5IHBlcm1pc3Npb25zIChlLmcuLCBCUEYsIG1vZHVsZSBsb2FkaW5nLCBrcHJvYmVzKS4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkluc3RydWN0aW9uOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+WW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuCllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lCmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC4KCklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpbgp5b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHkKdXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy4KClJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6Ci0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy4KLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy4KLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuCi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLApldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuCgpJZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoCnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLgoKV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086CjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuCiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLgoyLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS4KICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLgogICBEbyBub3QgbGlzdCB0b28gZ2VuZXJpYyBjb25maWdzICh3ZSBhbHJlYWR5IGhhdmUgdGhlbSBlbmFibGVkKS4gT25seSBsaXN0IHRob3NlIHRoYXQKICAgc3BlY2lmaWNhbGx5IGNvdmVyIHRoZSBtb2RpZmllZCBjb2RlLiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3Mgb3V0cHV0IGFycmF5LAogICBhbmQgRE8gTk9UIGFkZCBhICYjMzk7Q09ORklHXyYjMzk7IHByZWZpeCAoZS5nLiwgcmV0dXJuICYjMzQ7TkVUX0lQVjQmIzM0OyBpbnN0ZWFkIG9mICYjMzQ7Q09ORklHX05FVF9JUFY0JiMzNDspLgpQcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy4KCgpVc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLgpJdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS4KSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlByb21wdDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOgpjb21taXQgMmIyNWMwMmNkN2U2ODQyMjE4ODE3ODkwMTJlY2U2NjA0ZWJlODgzYgpBdXRob3I6IHN5ei1jbHVzdGVyICZsdDt0cmlhZ2VAc3l6a2FsbGVyLmNvbSZndDsKRGF0ZTogICBNb24gSnVsIDIwIDEzOjUwOjExIDIwMjYgJiM0MzswMDAwCgogICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3CgpkaWZmIC0tZ2l0IGEvYXJjaC94ODYvbW0vcGF0L3NldF9tZW1vcnkuYyBiL2FyY2gveDg2L21tL3BhdC9zZXRfbWVtb3J5LmMKaW5kZXggMzAxZmI5ZTc3ZDkxYmEuLmE2N2NhMzNiOWRkMTIxIDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9tbS9wYXQvc2V0X21lbW9yeS5jCiYjNDM7JiM0MzsmIzQzOyBiL2FyY2gveDg2L21tL3BhdC9zZXRfbWVtb3J5LmMKQEAgLTQzOSw3ICYjNDM7NDM5LDExIEBAIHN0YXRpYyB2b2lkIF9fY3BhX2NvbGxhcHNlX2xhcmdlX3BhZ2VzKHN0cnVjdCBjcGFfZGF0YSAqY3BhKQogCiAJbGlzdF9mb3JfZWFjaF9lbnRyeV9zYWZlKHB0ZGVzYywgdG1wLCAmYW1wO3BndGFibGVzLCBwdF9saXN0KSB7CiAJCWxpc3RfZGVsKCZhbXA7cHRkZXNjLSZndDtwdF9saXN0KTsKLQkJcGFnZXRhYmxlX2ZyZWUocHRkZXNjKTsKJiM0MzsKJiM0MzsJCWlmIChmb2xpb190ZXN0X3BndGFibGUocHRkZXNjX2ZvbGlvKHB0ZGVzYykpKQomIzQzOwkJCXBhZ2V0YWJsZV9kdG9yX2ZyZWUocHRkZXNjKTsKJiM0MzsJCWVsc2UKJiM0MzsJCQlwYWdldGFibGVfZnJlZShwdGRlc2MpOwogCX0KIH0KIApAQCAtMTEzOCwxMSAmIzQzOzExNDIsMTAgQEAgc3RhdGljIHZvaWQgc3BsaXRfc2V0X3B0ZShzdHJ1Y3QgY3BhX2RhdGEgKmNwYSwgcHRlX3QgKnB0ZSwgdW5zaWduZWQgbG9uZyBwZm4sCiAKIHN0YXRpYyBpbnQKIF9fc3BsaXRfbGFyZ2VfcGFnZShzdHJ1Y3QgY3BhX2RhdGEgKmNwYSwgcHRlX3QgKmtwdGUsIHVuc2lnbmVkIGxvbmcgYWRkcmVzcywKLQkJICAgc3RydWN0IHB0ZGVzYyAqcHRkZXNjKQomIzQzOwkJICAgcHRlX3QgKnBiYXNlKQogewogCXVuc2lnbmVkIGxvbmcgbHBhZGRyLCBscGluYywgcmVmX3BmbiwgcGZuLCBwZm5pbmMgPSAxOwotCXN0cnVjdCBwYWdlICpiYXNlID0gcHRkZXNjX3BhZ2UocHRkZXNjKTsKLQlwdGVfdCAqcGJhc2UgPSAocHRlX3QgKilwYWdlX2FkZHJlc3MoYmFzZSk7CiYjNDM7CXN0cnVjdCBwYWdlICpiYXNlID0gdmlydF90b19wYWdlKHBiYXNlKTsKIAl1bnNpZ25lZCBpbnQgaSwgbGV2ZWw7CiAJcGdwcm90X3QgcmVmX3Byb3Q7CiAJYm9vbCBueCwgcnc7CkBAIC0xMjQ2LDE4ICYjNDM7MTI0OSwxOCBAQCBfX3NwbGl0X2xhcmdlX3BhZ2Uoc3RydWN0IGNwYV9kYXRhICpjcGEsIHB0ZV90ICprcHRlLCB1bnNpZ25lZCBsb25nIGFkZHJlc3MsCiBzdGF0aWMgaW50IHNwbGl0X2xhcmdlX3BhZ2Uoc3RydWN0IGNwYV9kYXRhICpjcGEsIHB0ZV90ICprcHRlLAogCQkJICAgIHVuc2lnbmVkIGxvbmcgYWRkcmVzcykKIHsKLQlzdHJ1Y3QgcHRkZXNjICpwdGRlc2M7CiYjNDM7CXB0ZV90ICpwdGU7CiAKIAlpZiAoIWRlYnVnX3BhZ2VhbGxvY19lbmFibGVkKCkpCiAJCXNwaW5fdW5sb2NrKCZhbXA7Y3BhX2xvY2spOwotCXB0ZGVzYyA9IHBhZ2V0YWJsZV9hbGxvYyhHRlBfS0VSTkVMLCAwKTsKJiM0MzsJcHRlID0gcHRlX2FsbG9jX29uZV9rZXJuZWwoJmFtcDtpbml0X21tKTsKIAlpZiAoIWRlYnVnX3BhZ2VhbGxvY19lbmFibGVkKCkpCiAJCXNwaW5fbG9jaygmYW1wO2NwYV9sb2NrKTsKLQlpZiAoIXB0ZGVzYykKJiM0MzsJaWYgKCFwdGUpCiAJCXJldHVybiAtRU5PTUVNOwogCi0JaWYgKF9fc3BsaXRfbGFyZ2VfcGFnZShjcGEsIGtwdGUsIGFkZHJlc3MsIHB0ZGVzYykpCi0JCXBhZ2V0YWJsZV9mcmVlKHB0ZGVzYyk7CiYjNDM7CWlmIChfX3NwbGl0X2xhcmdlX3BhZ2UoY3BhLCBrcHRlLCBhZGRyZXNzLCBwdGUpKQomIzQzOwkJcHRlX2ZyZWVfa2VybmVsKCZhbXA7aW5pdF9tbSwgcHRlKTsKIAogCXJldHVybiAwOwogfQo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMCAxMzo1MDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyMzk4CgkJCQkJCQlvdXRwdXQ6IDM2CgkJCQkJCQl0aG91Z2h0czogMjk3CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgUGF0Y2ggdG8gYGFyY2gveDg2L21tL3BhdC9zZXRfbWVtb3J5LmNgKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCBhIHBhdGNoIHRoYXQmIzM5O3MgdG91Y2hpbmcgYGFyY2gveDg2L21tL3BhdC9zZXRfbWVtb3J5LmNgLiBSaWdodCBhd2F5LCB0aGlzIHRlbGxzIG1lIHdlJiMzOTtyZSBkZWFsaW5nIHdpdGggYSBjb3JlIGNvbXBvbmVudCBvZiB4ODYgbWVtb3J5IG1hbmFnZW1lbnQsIHNwZWNpZmljYWxseSBjb25jZXJuaW5nIHRoZSBQYWdlIEF0dHJpYnV0ZSBUYWJsZSAoUEFUKSBhbmQgaG93IHdlJiMzOTtyZSBjaGFuZ2luZyBwYWdlIGF0dHJpYnV0ZXMgKENQQSkuIEdpdmVuIGl0cyBsb2NhdGlvbiwgSSBjYW4gYmUgcHJldHR5IHN1cmUgdGhpcyBpcyBmdW5jdGlvbmFsIGNvZGUgYW5kIGlzIGRlZmluaXRlbHkgcmVhY2hhYmxlLgoKVGhlIGtleSBjaGFuZ2VzIHRoYXQgc3RhbmQgb3V0IGFyZSB3aXRoaW4gdGhyZWUgZnVuY3Rpb25zOiBgX19jcGFfY29sbGFwc2VfbGFyZ2VfcGFnZXNgLCBgX19zcGxpdF9sYXJnZV9wYWdlYCwgYW5kIGBzcGxpdF9sYXJnZV9wYWdlYC4gSXQgbG9va3MgbGlrZSB0aGVyZSBhcmUgc29tZSBkaXJlY3QgcmVwbGFjZW1lbnRzIGFuZCBwYXJhbWV0ZXIgYWRqdXN0bWVudHMuIFNwZWNpZmljYWxseSwgSSBzZWUgYHBhZ2V0YWJsZV9hbGxvY2AgcmVwbGFjZWQgYnkgYHB0ZV9hbGxvY19vbmVfa2VybmVsYCBpbiBgc3BsaXRfbGFyZ2VfcGFnZWAuIEluIGBfX2NwYV9jb2xsYXBzZV9sYXJnZV9wYWdlc2AgdGhlIHBhdGNoIHN3YXBzIGBwYWdldGFibGVfZnJlZWAgd2l0aCBlaXRoZXIgYHBhZ2V0YWJsZV9kdG9yX2ZyZWVgIG9yIHRoZSBvcmlnaW5hbCBgcGFnZXRhYmxlX2ZyZWVgLiBUaGVyZSYjMzk7cyBhbHNvIGEgbW9kaWZpY2F0aW9uIHdoZXJlIGBfX3NwbGl0X2xhcmdlX3BhZ2VgIG5vdyByZWNlaXZlcyBhIGBwdGVfdCAqcGJhc2VgIGFyZ3VtZW50IGluc3RlYWQgb2YgYHN0cnVjdCBwdGRlc2MgKnB0ZGVzY2AuCgpJJiMzOTtsbCBuZWVkIHRvIGRpZyBpbnRvIHRoZXNlIGZ1bmN0aW9uIGNoYW5nZXMuIEkmIzM5O2xsIG5lZWQgdG8gdHJhY2UgdGhlIGltcGxpY2F0aW9ucyBvZiByZXBsYWNpbmcgdGhlc2UgYWxsb2NhdGlvbiBhbmQgZGVhbGxvY2F0aW9uIGZ1bmN0aW9ucywgYW5kIHdoYXQgdGhhdCBjaGFuZ2Ugb2YgYXJndW1lbnRzIGZvciBgX19zcGxpdF9sYXJnZV9wYWdlYCBtZWFucywgZXNwZWNpYWxseSBob3cgdGhpcyBwYmFzZSBhcmd1bWVudCByZWxhdGVzIHRvIHRoZSBwdGUuCgpCZWZvcmUgSSBnbyBmdXJ0aGVyLCBJIHNob3VsZCBjaGVjayBpZiB0aGVyZSBhcmUgYW55IGNvbmZpZyBkZXBlbmRlbmNpZXMsIHBhcnRpY3VsYXJseSBgQ09ORklHX1g4Nl9QQVRgLiBJJiMzOTtsbCBxdWlja2x5IGxvb2sgaW4gdGhlIGBhcmNoL3g4Ni9tbS9wYXQvTWFrZWZpbGVgIG9yIGBhcmNoL3g4Ni9LY29uZmlnYCB0byBjb25maXJtLCBhcyB0aGlzIHdvdWxkIGNsZWFybHkgaW5mbHVlbmNlIHRoZSBjb250ZXh0IG9mIHRoZSBjaGFuZ2VzLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIwIDEzOjUwPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3NldF9tZW1vcnkubyYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2FyY2gveDg2L21tL3BhdC9NYWtlZmlsZSYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDthcmNoL3g4Ni9tbS9wYXQvTWFrZWZpbGUtMi1cbmFyY2gveDg2L21tL3BhdC9NYWtlZmlsZTozOm9iai15XHRcdFx0XHQ6PSBzZXRfbWVtb3J5Lm8gbWVtdHlwZS5vXG5hcmNoL3g4Ni9tbS9wYXQvTWFrZWZpbGUtNC1cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMCAxMzo1MDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzMjA2CgkJCQkJCQlvdXRwdXQ6IDQ0CgkJCQkJCQl0aG91Z2h0czogMjExCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyBQb3RlbnRpYWwgQXR0YWNrIFN1cmZhY2VzIGluIGFuIHg4NiBLZXJuZWwqKgoKT2theSwgc28gdGhpcyBpcyBidWlsdCB1bmNvbmRpdGlvbmFsbHkgZm9yIHg4Ni4gVGhhdCYjMzk7cyBvdXIgYmFzZWxpbmUuIE5vdywgSSBuZWVkIHRvIGZpZ3VyZSBvdXQgdGhlIHJlYWNoYWJpbGl0eSBvZiB0aGVzZSBwb3RlbnRpYWxseSBwcm9ibGVtYXRpYyBmdW5jdGlvbnMsIGBzcGxpdF9sYXJnZV9wYWdlYCBhbmQgYF9fY3BhX2NvbGxhcHNlX2xhcmdlX3BhZ2VzYC4gQXJlIHRoZXkgb25seSB1c2VkIGludGVybmFsbHksIG9yIGFyZSB0aGV5IGFjY2Vzc2libGUgdGhyb3VnaCBzeXN0ZW0gY2FsbHM/IFRoZSBhbmFseXNpcyBzaG93cyB0aGV5IGFyZSBjYWxsZWQgZnJvbSBmdW5jdGlvbnMgbGlrZSBgY2hhbmdlX3BhZ2VfYXR0cl9zZXRfY2xyYCBhbmQgc2ltaWxhciwgd2hpY2ggaXMgdGhlbiB1c2VkIGJ5IGZ1bmN0aW9ucyBsaWtlIGBzZXRfbWVtb3J5X3JvYCwgYHNldF9tZW1vcnlfcndgLCBgc2V0X21lbW9yeV9ueGAsIGFuZCBgc2V0X21lbW9yeV94YCwgYW5kIHRoZXNlIGFyZSBoZWF2aWx5IHVzZWQgYnkgaW1wb3J0YW50IGtlcm5lbCBmZWF0dXJlcyBsaWtlIEJQRiwgbW9kdWxlIGxvYWRpbmcsIGtwcm9iZXMsIGFuZCBmdHJhY2UuIEJpbmdvISBGdXp6aW5nIEJQRiBvciBtb2R1bGUgbG9hZGluZyBsb29rcyBsaWtlIGl0IGNvdWxkIGRlZmluaXRlbHkgdHJpZ2dlciB0aGlzIGNvZGUgcGF0aC4gVGltZSB0byBmb2N1cyBteSBhdHRlbnRpb24gb24gdGhvc2UgdHdvIGtleSBzeW1ib2xzOiBgX19jcGFfY29sbGFwc2VfbGFyZ2VfcGFnZXNgIGFuZCBgc3BsaXRfbGFyZ2VfcGFnZWAuCgpOZXh0LCBJJiMzOTtsbCBxdWlja2x5IGNoZWNrIGlmIGBzZXRfbWVtb3J5LmNgIGhhcyBhbnkgY29uZGl0aW9uYWwgY29uZmlndXJhdGlvbnMgdGhhdCBtaWdodCBhZmZlY3QgdGhpcy4gTm9wZSwgaXQmIzM5O3MgY29tcGlsZWQgaW4uIE5vIHN1cnByaXNlcyB0aGVyZS4KCkFscmlnaHQsIHRpbWUgdG8gZG91YmxlLWNoZWNrIG15IGZpbmRpbmdzIG9uIGBfX2NwYV9jb2xsYXBzZV9sYXJnZV9wYWdlc2AgYW5kIGBzcGxpdF9sYXJnZV9wYWdlYC4gTGV0JiMzOTtzIGRpZyBkZWVwZXIgaW50byB0aGUgY2FsbCBncmFwaHMgYW5kIHVuZGVyc3RhbmQgcHJlY2lzZWx5IGhvdyB0aGV5JiMzOTtyZSBleHBvc2VkIGFuZCB3aGF0IGtpbmQgb2YgYXJndW1lbnRzIHRoZXkgdGFrZS4gVGhpcyBpcyB3aGVyZSB0aGUgcmVhbCB3b3JrIGJlZ2lucy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMCAxMzo1MDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtfX2NwYV9jb2xsYXBzZV9sYXJnZV9wYWdlcyYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2FyY2gveDg2L21tL3BhdC9zZXRfbWVtb3J5LmMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7YXJjaC94ODYvbW0vcGF0L3NldF9tZW1vcnkuYz00MTI9c3RhdGljIGludCBjb2xsYXBzZV9sYXJnZV9wYWdlcyh1bnNpZ25lZCBsb25nIGFkZHIsIHN0cnVjdCBsaXN0X2hlYWQgKnBndGFibGVzKTtcbmFyY2gveDg2L21tL3BhdC9zZXRfbWVtb3J5LmMtNDEzLVxuYXJjaC94ODYvbW0vcGF0L3NldF9tZW1vcnkuYzo0MTQ6c3RhdGljIHZvaWQgX19jcGFfY29sbGFwc2VfbGFyZ2VfcGFnZXMoc3RydWN0IGNwYV9kYXRhICpjcGEpXG5hcmNoL3g4Ni9tbS9wYXQvc2V0X21lbW9yeS5jLTQxNS17XG4tLVxuYXJjaC94ODYvbW0vcGF0L3NldF9tZW1vcnkuYz00NTA9c3RhdGljIHZvaWQgY3BhX2NvbGxhcHNlX2xhcmdlX3BhZ2VzKHN0cnVjdCBjcGFfZGF0YSAqY3BhKVxuLS1cbmFyY2gveDg2L21tL3BhdC9zZXRfbWVtb3J5LmMtNDU4LVx0c2NvcGVkX2d1YXJkKG1tYXBfd3JpdGVfbG9jaywgXHUwMDI2aW5pdF9tbSlcbmFyY2gveDg2L21tL3BhdC9zZXRfbWVtb3J5LmM6NDU5Olx0XHRfX2NwYV9jb2xsYXBzZV9sYXJnZV9wYWdlcyhjcGEpO1xuYXJjaC94ODYvbW0vcGF0L3NldF9tZW1vcnkuYy00NjAtfVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIwIDEzOjUwPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDQwNTEKCQkJCQkJCW91dHB1dDogMzMKCQkJCQkJCXRob3VnaHRzOiA1NAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCBmcmFtZWQgYXMgbXkgb3duIG1lbnRhbCBwcm9jZXNzaW5nIGFzIGFuIHg4NiBtZW1vcnkgbWFuYWdlbWVudCBleHBlcnQ6CgoqKkNvcmUgeDg2IE1lbW9yeSBNYW5hZ2VtZW50IFJvdXRpbmUgRXhhbWluYXRpb24qKgoKQWxyaWdodCwgSSYjMzk7bSBkaWdnaW5nIGludG8gc29tZSBjb3JlIHg4NiBtZW1vcnkgbWFuYWdlbWVudCBjb2RlLiBJJiMzOTt2ZSBnb3QgbXkgZm9jdXMgbmFycm93ZWQgZG93biB0byBhIGNvdXBsZSBvZiBrZXkgc3ltYm9sczogYF9fY3BhX2NvbGxhcHNlX2xhcmdlX3BhZ2VzYCBhbmQgYHNwbGl0X2xhcmdlX3BhZ2VgLiBUaGVzZSBhcmUgcHJldHR5IGNvbW1vbiBtYXJrZXJzIGZvciBkZWFsaW5nIHdpdGggbGFyZ2UgcGFnZSBtYW5hZ2VtZW50LCBzbyB0aGF0JiMzOTtzIHdoZXJlIG15IGF0dGVudGlvbiBpcy4gU3BlY2lmaWNhbGx5LCBJIGRvbiYjMzk7dCBzZWUgYW55IHNwZWNpYWwgY29uZmlnIG9wdGlvbnMgZmxhZ2dlZCwgc28gdGhpcyBsb29rcyB0byBiZSBzdGFuZGFyZCB4ODYgbWVtb3J5IG1hbmFnZW1lbnQgY29kZS4gTm93LCBsZXQgbWUgcXVpY2tseSBjaGVjayBpZiBgcHRlX2FsbG9jX29uZV9rZXJuZWxgIGlzIGRlZmluZWQgaW4gdGhlIGNvbnRleHQgb2Ygd2hhdCBJJiMzOTttIGxvb2tpbmcgYXQuIEkmIzM5O20gdHJ5aW5nIHRvIGdldCBhIGhhbmRsZSBvbiBob3cgdGhlc2UgbGFyZ2UgcGFnZSBvcGVyYXRpb25zIGFyZSBoYW5kbGluZyBQVEUgKFBhZ2UgVGFibGUgRW50cnkpIGFsbG9jYXRpb24gd2l0aGluIHRoZSBrZXJuZWwgc3BhY2UsIHNvIGZpbmRpbmcgd2hlcmUgdGhhdCYjMzk7cyBkZWZpbmVkLCBvciBub3QsIHdpbGwgYmUgYSBjcml0aWNhbCBuZXh0IHN0ZXAuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjAgMTM6NTA8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7cHRlX2FsbG9jX29uZV9rZXJuZWwmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDthcmNoL3g4Ni8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7YXJjaC94ODYvbW0vcGF0L3NldF9tZW1vcnkuYz0xMjQ5PXN0YXRpYyBpbnQgc3BsaXRfbGFyZ2VfcGFnZShzdHJ1Y3QgY3BhX2RhdGEgKmNwYSwgcHRlX3QgKmtwdGUsXG4tLVxuYXJjaC94ODYvbW0vcGF0L3NldF9tZW1vcnkuYy0xMjU1LVx0XHRzcGluX3VubG9jayhcdTAwMjZjcGFfbG9jayk7XG5hcmNoL3g4Ni9tbS9wYXQvc2V0X21lbW9yeS5jOjEyNTY6XHRwdGUgPSBwdGVfYWxsb2Nfb25lX2tlcm5lbChcdTAwMjZpbml0X21tKTtcbmFyY2gveDg2L21tL3BhdC9zZXRfbWVtb3J5LmMtMTI1Ny1cdGlmICghZGVidWdfcGFnZWFsbG9jX2VuYWJsZWQoKSlcbi0tXG5hcmNoL3g4Ni9tbS9wYXQvc2V0X21lbW9yeS5jPTE1NjM9c3RhdGljIGludCBhbGxvY19wdGVfcGFnZShwbWRfdCAqcG1kKVxuYXJjaC94ODYvbW0vcGF0L3NldF9tZW1vcnkuYy0xNTY0LXtcbmFyY2gveDg2L21tL3BhdC9zZXRfbWVtb3J5LmM6MTU2NTpcdHB0ZV90ICpwdGUgPSBwdGVfYWxsb2Nfb25lX2tlcm5lbChcdTAwMjZpbml0X21tKTtcbmFyY2gveDg2L21tL3BhdC9zZXRfbWVtb3J5LmMtMTU2Ni1cdGlmICghcHRlKVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjkvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIwIDEzOjUwPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDQ2NDMKCQkJCQkJCW91dHB1dDogMTM0CgkJCQkJCQl0aG91Z2h0czogMTk1CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgUGF0Y2g6IEEgU3RhbmRhcmQgRml4IHdpdGggRnV6emluZyBJbXBsaWNhdGlvbnMqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgcGF0Y2gsIGFuZCBpdCYjMzk7cyBhIHByZXR0eSBzdHJhaWdodGZvcndhcmQgZml4LiBUaGV5JiMzOTt2ZSBpZGVudGlmaWVkIGEgc3BvdCB3aGVyZSBgcGFnZXRhYmxlX2FsbG9jYCB3YXMgYmVpbmcgdXNlZCB3aGVuIGBwdGVfYWxsb2Nfb25lX2tlcm5lbGAgc2hvdWxkIGhhdmUgYmVlbi4gSXQmIzM5O3MgYSBmdW5jdGlvbmFsIGNvcnJlY3Rpb24sIG5vdGhpbmcgdG9vIGdyb3VuZGJyZWFraW5nLCBidXQgaW1wb3J0YW50IG5vbmV0aGVsZXNzLiBUaGUgcmlzayBpcyBtaXNzaW5nIGNydWNpYWwgaW5pdGlhbGl6YXRpb25zIC0gYHB0ZGVzY2AgYW5kIHBhZ2UgdGFibGUgbG9jayBpbml0aWFsaXphdGlvbiBhcmUgbWVudGlvbmVkLCBtZWFuaW5nIHRoZSBleGlzdGluZyBjb2RlIHdhcyBwb3RlbnRpYWxseSBvcGVyYXRpbmcgd2l0aCB1bmluaXRpYWxpemVkIHJlc291cmNlcywgd2hpY2ggaXMgYWx3YXlzIHByb2JsZW1hdGljIGluIG1lbW9yeSBtYW5hZ2VtZW50LgoKTm93LCBsZXQmIzM5O3MgY29uc2lkZXIgdGhlIGltcGxpY2F0aW9ucyBmb3IgZnV6emluZy4gVGhpcyBpcyB3aGVyZSBpdCBnZXRzIGludGVyZXN0aW5nLiBJJiMzOTttIGdvaW5nIHRvIHNldCBgV29ydGhGdXp6aW5nYCB0byBgdHJ1ZWAuIEFuZCB0aGUgYEZvY3VzU3ltYm9sc2AgYXJlIHF1aXRlIHRlbGxpbmc6IGBfX2NwYV9jb2xsYXBzZV9sYXJnZV9wYWdlc2AgYW5kIGBzcGxpdF9sYXJnZV9wYWdlYC4gVGhpcyBwYXRjaCBkaXJlY3RseSB0b3VjaGVzIHRoZSBjb3JlIHg4NiBtZW1vcnkgbWFuYWdlbWVudCBjb2RlLCBzcGVjaWZpY2FsbHkgcmVsYXRlZCB0byBDUEEgKENoYW5nZSBQYWdlIEF0dHJpYnV0ZSkgb3BlcmF0aW9ucywgcGFnZSBzcGxpdHRpbmcsIGFuZCBjb2xsYXBzaW5nLiBUaGUgY2hhbmdlIG1ha2VzIHN1cmUgYWxsb2NhdGlvbiBhbmQgZGVhbGxvY2F0aW9uIG9mIHBhZ2UgdGFibGVzIGlzIGRvbmUgY29ycmVjdGx5LCB1c2luZyBgcHRlX2FsbG9jX29uZV9rZXJuZWxgIGFuZCBgcHRlX2ZyZWVfa2VybmVsYCAvIGBwYWdldGFibGVfZHRvcl9mcmVlYC4gU28sIHRoZSBhZmZlY3RlZCBjb2RlIGlzIHJlYWNoZWQgdGhyb3VnaCBmZWF0dXJlcyB0aGF0IG1lc3Mgd2l0aCBtZW1vcnkgcGVybWlzc2lvbnMgLSBCUEYsIG1vZHVsZSBsb2FkaW5nLCBrcHJvYmVzLiBUaGlzIHNvdW5kcyBsaWtlIGFuIGFyZWEgcmlwZSBmb3IgdW5jb3ZlcmluZyBzdWJ0bGUgbWVtb3J5IGNvcnJ1cHRpb24gaXNzdWVzIG9yIHVuZXhwZWN0ZWQgYmVoYXZpb3IuIE5vIHNwZWNpZmljIGNvbmZpZ3VyYXRpb25zIGFyZSByZXF1aXJlZCB0byByZXByb2R1Y2UgaXQgLSBgRW5hYmxlQ29uZmlnc2AgaXMgZW1wdHkuIFRoZSByZWFzb25pbmcgaXMgY2xlYXIsIHRoZSBmaXggY291bGQgZXhwb3NlIGlzc3VlcyByZWxhdGVkIHRvIGhvdyB0aGUga2VybmVsIGhhbmRsZXMgY2hhbmdlcyBpbiBtZW1vcnkgcGVybWlzc2lvbnMgYW5kIGxhcmdlIHBhZ2UgbWFuYWdlbWVudC4gVGhlcmVmb3JlLCBpdCYjMzk7cyB3b3J0aCBhIGNsb3NlIGxvb2sgYW5kIGZ1enppbmcgZWZmb3J0LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMCAxMzo1MDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFtdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7X19jcGFfY29sbGFwc2VfbGFyZ2VfcGFnZXMmIzM0OywKICAgICYjMzQ7c3BsaXRfbGFyZ2VfcGFnZSYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyBjb3JlIHg4NiBtZW1vcnkgbWFuYWdlbWVudCBjb2RlIChDUEEgLSBjaGFuZ2UgcGFnZSBhdHRyaWJ1dGUpIHRvIGNvcnJlY3RseSBhbGxvY2F0ZSBhbmQgZnJlZSBwYWdlIHRhYmxlcyB1c2luZyBgcHRlX2FsbG9jX29uZV9rZXJuZWxgIGFuZCBgcHRlX2ZyZWVfa2VybmVsYCAvIGBwYWdldGFibGVfZHRvcl9mcmVlYC4gVGhpcyBhZmZlY3RzIHBhZ2Ugc3BsaXR0aW5nIGFuZCBjb2xsYXBzaW5nLCB3aGljaCBpcyByZWFjaGFibGUgdmlhIGZlYXR1cmVzIHRoYXQgY2hhbmdlIG1lbW9yeSBwZXJtaXNzaW9ucyAoZS5nLiwgQlBGLCBtb2R1bGUgbG9hZGluZywga3Byb2JlcykuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7X19jcGFfY29sbGFwc2VfbGFyZ2VfcGFnZXMmIzM0OywKICAgICYjMzQ7c3BsaXRfbGFyZ2VfcGFnZSYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyBjb3JlIHg4NiBtZW1vcnkgbWFuYWdlbWVudCBjb2RlIChDUEEgLSBjaGFuZ2UgcGFnZSBhdHRyaWJ1dGUpIHRvIGNvcnJlY3RseSBhbGxvY2F0ZSBhbmQgZnJlZSBwYWdlIHRhYmxlcyB1c2luZyBgcHRlX2FsbG9jX29uZV9rZXJuZWxgIGFuZCBgcHRlX2ZyZWVfa2VybmVsYCAvIGBwYWdldGFibGVfZHRvcl9mcmVlYC4gVGhpcyBhZmZlY3RzIHBhZ2Ugc3BsaXR0aW5nIGFuZCBjb2xsYXBzaW5nLCB3aGljaCBpcyByZWFjaGFibGUgdmlhIGZlYXR1cmVzIHRoYXQgY2hhbmdlIG1lbW9yeSBwZXJtaXNzaW9ucyAoZS5nLiwgQlBGLCBtb2R1bGUgbG9hZGluZywga3Byb2JlcykuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPC90Ym9keT4KCTwvdGFibGU+CgoJPGRpdiBpZD0ibGxtX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5MTE0gQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBUb2tlbnM8L3RoPgoJCQkJCTx0aD5BdmcgVG9rZW5zPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9ImxsbV9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9InRvb2xfc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPlRvb2wgQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0idG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9ImR1cmF0aW9uX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCTxkaXYgaWQ9InRva2VuX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL2pzYXBpIj48L3NjcmlwdD4KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCQlnb29nbGUubG9hZCgidmlzdWFsaXphdGlvbiIsICIxIiwge3BhY2thZ2VzOlsiY29yZWNoYXJ0Il19KTsKCQlnb29nbGUuc2V0T25Mb2FkQ2FsbGJhY2soZHJhd0NoYXJ0cyk7CgoJCWZ1bmN0aW9uIGRyYXdDaGFydHMoKSB7CgkJCWNvbnN0IHJhd0RhdGEgPSBbeyJTdGFydGVkIjoiMjAyNi0wNy0yMFQxMzo1MDoxMy4xMjE0MDAxODlaIiwiU2VxIjowLCJOZXN0aW5nIjowLCJUeXBlIjoiZmxvdyIsIk5hbWUiOiJwYXRjaC10cmlhZ2UiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyMzEzMjIzMjA4MywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJfX2NwYV9jb2xsYXBzZV9sYXJnZV9wYWdlc1wiLFxuICAgIFwic3BsaXRfbGFyZ2VfcGFnZVwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIGNvcmUgeDg2IG1lbW9yeSBtYW5hZ2VtZW50IGNvZGUgKENQQSAtIGNoYW5nZSBwYWdlIGF0dHJpYnV0ZSkgdG8gY29ycmVjdGx5IGFsbG9jYXRlIGFuZCBmcmVlIHBhZ2UgdGFibGVzIHVzaW5nIGBwdGVfYWxsb2Nfb25lX2tlcm5lbGAgYW5kIGBwdGVfZnJlZV9rZXJuZWxgIC8gYHBhZ2V0YWJsZV9kdG9yX2ZyZWVgLiBUaGlzIGFmZmVjdHMgcGFnZSBzcGxpdHRpbmcgYW5kIGNvbGxhcHNpbmcsIHdoaWNoIGlzIHJlYWNoYWJsZSB2aWEgZmVhdHVyZXMgdGhhdCBjaGFuZ2UgbWVtb3J5IHBlcm1pc3Npb25zIChlLmcuLCBCUEYsIG1vZHVsZSBsb2FkaW5nLCBrcHJvYmVzKS5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjBUMTM6NTA6MTMuMTIxNDA2MTU5WiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo2MTMxNDQ0MTYsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIlBhdGNoRGlmZlwiOiBcImNvbW1pdCAyYjI1YzAyY2Q3ZTY4NDIyMTg4MTc4OTAxMmVjZTY2MDRlYmU4ODNiXFxuQXV0aG9yOiBzeXotY2x1c3RlciBcXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cXHUwMDNlXFxuRGF0ZTogICBNb24gSnVsIDIwIDEzOjUwOjExIDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL2FyY2gveDg2L21tL3BhdC9zZXRfbWVtb3J5LmMgYi9hcmNoL3g4Ni9tbS9wYXQvc2V0X21lbW9yeS5jXFxuaW5kZXggMzAxZmI5ZTc3ZDkxYmEuLmE2N2NhMzNiOWRkMTIxIDEwMDY0NFxcbi0tLSBhL2FyY2gveDg2L21tL3BhdC9zZXRfbWVtb3J5LmNcXG4rKysgYi9hcmNoL3g4Ni9tbS9wYXQvc2V0X21lbW9yeS5jXFxuQEAgLTQzOSw3ICs0MzksMTEgQEAgc3RhdGljIHZvaWQgX19jcGFfY29sbGFwc2VfbGFyZ2VfcGFnZXMoc3RydWN0IGNwYV9kYXRhICpjcGEpXFxuIFxcbiBcXHRsaXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmUocHRkZXNjLCB0bXAsIFxcdTAwMjZwZ3RhYmxlcywgcHRfbGlzdCkge1xcbiBcXHRcXHRsaXN0X2RlbChcXHUwMDI2cHRkZXNjLVxcdTAwM2VwdF9saXN0KTtcXG4tXFx0XFx0cGFnZXRhYmxlX2ZyZWUocHRkZXNjKTtcXG4rXFxuK1xcdFxcdGlmIChmb2xpb190ZXN0X3BndGFibGUocHRkZXNjX2ZvbGlvKHB0ZGVzYykpKVxcbitcXHRcXHRcXHRwYWdldGFibGVfZHRvcl9mcmVlKHB0ZGVzYyk7XFxuK1xcdFxcdGVsc2VcXG4rXFx0XFx0XFx0cGFnZXRhYmxlX2ZyZWUocHRkZXNjKTtcXG4gXFx0fVxcbiB9XFxuIFxcbkBAIC0xMTM4LDExICsxMTQyLDEwIEBAIHN0YXRpYyB2b2lkIHNwbGl0X3NldF9wdGUoc3RydWN0IGNwYV9kYXRhICpjcGEsIHB0ZV90ICpwdGUsIHVuc2lnbmVkIGxvbmcgcGZuLFxcbiBcXG4gc3RhdGljIGludFxcbiBfX3NwbGl0X2xhcmdlX3BhZ2Uoc3RydWN0IGNwYV9kYXRhICpjcGEsIHB0ZV90ICprcHRlLCB1bnNpZ25lZCBsb25nIGFkZHJlc3MsXFxuLVxcdFxcdCAgIHN0cnVjdCBwdGRlc2MgKnB0ZGVzYylcXG4rXFx0XFx0ICAgcHRlX3QgKnBiYXNlKVxcbiB7XFxuIFxcdHVuc2lnbmVkIGxvbmcgbHBhZGRyLCBscGluYywgcmVmX3BmbiwgcGZuLCBwZm5pbmMgPSAxO1xcbi1cXHRzdHJ1Y3QgcGFnZSAqYmFzZSA9IHB0ZGVzY19wYWdlKHB0ZGVzYyk7XFxuLVxcdHB0ZV90ICpwYmFzZSA9IChwdGVfdCAqKXBhZ2VfYWRkcmVzcyhiYXNlKTtcXG4rXFx0c3RydWN0IHBhZ2UgKmJhc2UgPSB2aXJ0X3RvX3BhZ2UocGJhc2UpO1xcbiBcXHR1bnNpZ25lZCBpbnQgaSwgbGV2ZWw7XFxuIFxcdHBncHJvdF90IHJlZl9wcm90O1xcbiBcXHRib29sIG54LCBydztcXG5AQCAtMTI0NiwxOCArMTI0OSwxOCBAQCBfX3NwbGl0X2xhcmdlX3BhZ2Uoc3RydWN0IGNwYV9kYXRhICpjcGEsIHB0ZV90ICprcHRlLCB1bnNpZ25lZCBsb25nIGFkZHJlc3MsXFxuIHN0YXRpYyBpbnQgc3BsaXRfbGFyZ2VfcGFnZShzdHJ1Y3QgY3BhX2RhdGEgKmNwYSwgcHRlX3QgKmtwdGUsXFxuIFxcdFxcdFxcdCAgICB1bnNpZ25lZCBsb25nIGFkZHJlc3MpXFxuIHtcXG4tXFx0c3RydWN0IHB0ZGVzYyAqcHRkZXNjO1xcbitcXHRwdGVfdCAqcHRlO1xcbiBcXG4gXFx0aWYgKCFkZWJ1Z19wYWdlYWxsb2NfZW5hYmxlZCgpKVxcbiBcXHRcXHRzcGluX3VubG9jayhcXHUwMDI2Y3BhX2xvY2spO1xcbi1cXHRwdGRlc2MgPSBwYWdldGFibGVfYWxsb2MoR0ZQX0tFUk5FTCwgMCk7XFxuK1xcdHB0ZSA9IHB0ZV9hbGxvY19vbmVfa2VybmVsKFxcdTAwMjZpbml0X21tKTtcXG4gXFx0aWYgKCFkZWJ1Z19wYWdlYWxsb2NfZW5hYmxlZCgpKVxcbiBcXHRcXHRzcGluX2xvY2soXFx1MDAyNmNwYV9sb2NrKTtcXG4tXFx0aWYgKCFwdGRlc2MpXFxuK1xcdGlmICghcHRlKVxcbiBcXHRcXHRyZXR1cm4gLUVOT01FTTtcXG4gXFxuLVxcdGlmIChfX3NwbGl0X2xhcmdlX3BhZ2UoY3BhLCBrcHRlLCBhZGRyZXNzLCBwdGRlc2MpKVxcbi1cXHRcXHRwYWdldGFibGVfZnJlZShwdGRlc2MpO1xcbitcXHRpZiAoX19zcGxpdF9sYXJnZV9wYWdlKGNwYSwga3B0ZSwgYWRkcmVzcywgcHRlKSlcXG4rXFx0XFx0cHRlX2ZyZWVfa2VybmVsKFxcdTAwMjZpbml0X21tLCBwdGUpO1xcbiBcXG4gXFx0cmV0dXJuIDA7XFxuIH1cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjBUMTM6NTA6MTMuNzM1MzM4ODA1WiIsIlNlcSI6MiwiTmVzdGluZyI6MSwiVHlwZSI6ImFnZW50IiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoyMjUxODI4NjIyNiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJfX2NwYV9jb2xsYXBzZV9sYXJnZV9wYWdlc1wiLFxuICAgIFwic3BsaXRfbGFyZ2VfcGFnZVwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIGNvcmUgeDg2IG1lbW9yeSBtYW5hZ2VtZW50IGNvZGUgKENQQSAtIGNoYW5nZSBwYWdlIGF0dHJpYnV0ZSkgdG8gY29ycmVjdGx5IGFsbG9jYXRlIGFuZCBmcmVlIHBhZ2UgdGFibGVzIHVzaW5nIGBwdGVfYWxsb2Nfb25lX2tlcm5lbGAgYW5kIGBwdGVfZnJlZV9rZXJuZWxgIC8gYHBhZ2V0YWJsZV9kdG9yX2ZyZWVgLiBUaGlzIGFmZmVjdHMgcGFnZSBzcGxpdHRpbmcgYW5kIGNvbGxhcHNpbmcsIHdoaWNoIGlzIHJlYWNoYWJsZSB2aWEgZmVhdHVyZXMgdGhhdCBjaGFuZ2UgbWVtb3J5IHBlcm1pc3Npb25zIChlLmcuLCBCUEYsIG1vZHVsZSBsb2FkaW5nLCBrcHJvYmVzKS5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiWW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuXG5Zb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZVxuaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLlxuXG5JTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW5cbnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseVxudXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy5cblxuUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczpcbi0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy5cbi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuXG4tIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy5cbi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLFxuZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLlxuXG5JZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoXG50b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS5cblxuV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086XG4xLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLlxuICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuXG4yLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS5cbiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy5cbiAgIERvIG5vdCBsaXN0IHRvbyBnZW5lcmljIGNvbmZpZ3MgKHdlIGFscmVhZHkgaGF2ZSB0aGVtIGVuYWJsZWQpLiBPbmx5IGxpc3QgdGhvc2UgdGhhdFxuICAgc3BlY2lmaWNhbGx5IGNvdmVyIHRoZSBtb2RpZmllZCBjb2RlLiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3Mgb3V0cHV0IGFycmF5LFxuICAgYW5kIERPIE5PVCBhZGQgYSAnQ09ORklHXycgcHJlZml4IChlLmcuLCByZXR1cm4gXCJORVRfSVBWNFwiIGluc3RlYWQgb2YgXCJDT05GSUdfTkVUX0lQVjRcIikuXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCAyYjI1YzAyY2Q3ZTY4NDIyMTg4MTc4OTAxMmVjZTY2MDRlYmU4ODNiXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIE1vbiBKdWwgMjAgMTM6NTA6MTEgMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9tbS9wYXQvc2V0X21lbW9yeS5jIGIvYXJjaC94ODYvbW0vcGF0L3NldF9tZW1vcnkuY1xuaW5kZXggMzAxZmI5ZTc3ZDkxYmEuLmE2N2NhMzNiOWRkMTIxIDEwMDY0NFxuLS0tIGEvYXJjaC94ODYvbW0vcGF0L3NldF9tZW1vcnkuY1xuKysrIGIvYXJjaC94ODYvbW0vcGF0L3NldF9tZW1vcnkuY1xuQEAgLTQzOSw3ICs0MzksMTEgQEAgc3RhdGljIHZvaWQgX19jcGFfY29sbGFwc2VfbGFyZ2VfcGFnZXMoc3RydWN0IGNwYV9kYXRhICpjcGEpXG4gXG4gXHRsaXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmUocHRkZXNjLCB0bXAsIFx1MDAyNnBndGFibGVzLCBwdF9saXN0KSB7XG4gXHRcdGxpc3RfZGVsKFx1MDAyNnB0ZGVzYy1cdTAwM2VwdF9saXN0KTtcbi1cdFx0cGFnZXRhYmxlX2ZyZWUocHRkZXNjKTtcbitcbitcdFx0aWYgKGZvbGlvX3Rlc3RfcGd0YWJsZShwdGRlc2NfZm9saW8ocHRkZXNjKSkpXG4rXHRcdFx0cGFnZXRhYmxlX2R0b3JfZnJlZShwdGRlc2MpO1xuK1x0XHRlbHNlXG4rXHRcdFx0cGFnZXRhYmxlX2ZyZWUocHRkZXNjKTtcbiBcdH1cbiB9XG4gXG5AQCAtMTEzOCwxMSArMTE0MiwxMCBAQCBzdGF0aWMgdm9pZCBzcGxpdF9zZXRfcHRlKHN0cnVjdCBjcGFfZGF0YSAqY3BhLCBwdGVfdCAqcHRlLCB1bnNpZ25lZCBsb25nIHBmbixcbiBcbiBzdGF0aWMgaW50XG4gX19zcGxpdF9sYXJnZV9wYWdlKHN0cnVjdCBjcGFfZGF0YSAqY3BhLCBwdGVfdCAqa3B0ZSwgdW5zaWduZWQgbG9uZyBhZGRyZXNzLFxuLVx0XHQgICBzdHJ1Y3QgcHRkZXNjICpwdGRlc2MpXG4rXHRcdCAgIHB0ZV90ICpwYmFzZSlcbiB7XG4gXHR1bnNpZ25lZCBsb25nIGxwYWRkciwgbHBpbmMsIHJlZl9wZm4sIHBmbiwgcGZuaW5jID0gMTtcbi1cdHN0cnVjdCBwYWdlICpiYXNlID0gcHRkZXNjX3BhZ2UocHRkZXNjKTtcbi1cdHB0ZV90ICpwYmFzZSA9IChwdGVfdCAqKXBhZ2VfYWRkcmVzcyhiYXNlKTtcbitcdHN0cnVjdCBwYWdlICpiYXNlID0gdmlydF90b19wYWdlKHBiYXNlKTtcbiBcdHVuc2lnbmVkIGludCBpLCBsZXZlbDtcbiBcdHBncHJvdF90IHJlZl9wcm90O1xuIFx0Ym9vbCBueCwgcnc7XG5AQCAtMTI0NiwxOCArMTI0OSwxOCBAQCBfX3NwbGl0X2xhcmdlX3BhZ2Uoc3RydWN0IGNwYV9kYXRhICpjcGEsIHB0ZV90ICprcHRlLCB1bnNpZ25lZCBsb25nIGFkZHJlc3MsXG4gc3RhdGljIGludCBzcGxpdF9sYXJnZV9wYWdlKHN0cnVjdCBjcGFfZGF0YSAqY3BhLCBwdGVfdCAqa3B0ZSxcbiBcdFx0XHQgICAgdW5zaWduZWQgbG9uZyBhZGRyZXNzKVxuIHtcbi1cdHN0cnVjdCBwdGRlc2MgKnB0ZGVzYztcbitcdHB0ZV90ICpwdGU7XG4gXG4gXHRpZiAoIWRlYnVnX3BhZ2VhbGxvY19lbmFibGVkKCkpXG4gXHRcdHNwaW5fdW5sb2NrKFx1MDAyNmNwYV9sb2NrKTtcbi1cdHB0ZGVzYyA9IHBhZ2V0YWJsZV9hbGxvYyhHRlBfS0VSTkVMLCAwKTtcbitcdHB0ZSA9IHB0ZV9hbGxvY19vbmVfa2VybmVsKFx1MDAyNmluaXRfbW0pO1xuIFx0aWYgKCFkZWJ1Z19wYWdlYWxsb2NfZW5hYmxlZCgpKVxuIFx0XHRzcGluX2xvY2soXHUwMDI2Y3BhX2xvY2spO1xuLVx0aWYgKCFwdGRlc2MpXG4rXHRpZiAoIXB0ZSlcbiBcdFx0cmV0dXJuIC1FTk9NRU07XG4gXG4tXHRpZiAoX19zcGxpdF9sYXJnZV9wYWdlKGNwYSwga3B0ZSwgYWRkcmVzcywgcHRkZXNjKSlcbi1cdFx0cGFnZXRhYmxlX2ZyZWUocHRkZXNjKTtcbitcdGlmIChfX3NwbGl0X2xhcmdlX3BhZ2UoY3BhLCBrcHRlLCBhZGRyZXNzLCBwdGUpKVxuK1x0XHRwdGVfZnJlZV9rZXJuZWwoXHUwMDI2aW5pdF9tbSwgcHRlKTtcbiBcbiBcdHJldHVybiAwO1xuIH1cbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIwVDEzOjUwOjEzLjczNTM0MDg4NVoiLCJTZXEiOjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjYwMTI2MzA2MjMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBQYXRjaCB0byBgYXJjaC94ODYvbW0vcGF0L3NldF9tZW1vcnkuY2AqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCBhIHBhdGNoIHRoYXQncyB0b3VjaGluZyBgYXJjaC94ODYvbW0vcGF0L3NldF9tZW1vcnkuY2AuIFJpZ2h0IGF3YXksIHRoaXMgdGVsbHMgbWUgd2UncmUgZGVhbGluZyB3aXRoIGEgY29yZSBjb21wb25lbnQgb2YgeDg2IG1lbW9yeSBtYW5hZ2VtZW50LCBzcGVjaWZpY2FsbHkgY29uY2VybmluZyB0aGUgUGFnZSBBdHRyaWJ1dGUgVGFibGUgKFBBVCkgYW5kIGhvdyB3ZSdyZSBjaGFuZ2luZyBwYWdlIGF0dHJpYnV0ZXMgKENQQSkuIEdpdmVuIGl0cyBsb2NhdGlvbiwgSSBjYW4gYmUgcHJldHR5IHN1cmUgdGhpcyBpcyBmdW5jdGlvbmFsIGNvZGUgYW5kIGlzIGRlZmluaXRlbHkgcmVhY2hhYmxlLlxuXG5UaGUga2V5IGNoYW5nZXMgdGhhdCBzdGFuZCBvdXQgYXJlIHdpdGhpbiB0aHJlZSBmdW5jdGlvbnM6IGBfX2NwYV9jb2xsYXBzZV9sYXJnZV9wYWdlc2AsIGBfX3NwbGl0X2xhcmdlX3BhZ2VgLCBhbmQgYHNwbGl0X2xhcmdlX3BhZ2VgLiBJdCBsb29rcyBsaWtlIHRoZXJlIGFyZSBzb21lIGRpcmVjdCByZXBsYWNlbWVudHMgYW5kIHBhcmFtZXRlciBhZGp1c3RtZW50cy4gU3BlY2lmaWNhbGx5LCBJIHNlZSBgcGFnZXRhYmxlX2FsbG9jYCByZXBsYWNlZCBieSBgcHRlX2FsbG9jX29uZV9rZXJuZWxgIGluIGBzcGxpdF9sYXJnZV9wYWdlYC4gSW4gYF9fY3BhX2NvbGxhcHNlX2xhcmdlX3BhZ2VzYCB0aGUgcGF0Y2ggc3dhcHMgYHBhZ2V0YWJsZV9mcmVlYCB3aXRoIGVpdGhlciBgcGFnZXRhYmxlX2R0b3JfZnJlZWAgb3IgdGhlIG9yaWdpbmFsIGBwYWdldGFibGVfZnJlZWAuIFRoZXJlJ3MgYWxzbyBhIG1vZGlmaWNhdGlvbiB3aGVyZSBgX19zcGxpdF9sYXJnZV9wYWdlYCBub3cgcmVjZWl2ZXMgYSBgcHRlX3QgKnBiYXNlYCBhcmd1bWVudCBpbnN0ZWFkIG9mIGBzdHJ1Y3QgcHRkZXNjICpwdGRlc2NgLlxuXG5JJ2xsIG5lZWQgdG8gZGlnIGludG8gdGhlc2UgZnVuY3Rpb24gY2hhbmdlcy4gSSdsbCBuZWVkIHRvIHRyYWNlIHRoZSBpbXBsaWNhdGlvbnMgb2YgcmVwbGFjaW5nIHRoZXNlIGFsbG9jYXRpb24gYW5kIGRlYWxsb2NhdGlvbiBmdW5jdGlvbnMsIGFuZCB3aGF0IHRoYXQgY2hhbmdlIG9mIGFyZ3VtZW50cyBmb3IgYF9fc3BsaXRfbGFyZ2VfcGFnZWAgbWVhbnMsIGVzcGVjaWFsbHkgaG93IHRoaXMgcGJhc2UgYXJndW1lbnQgcmVsYXRlcyB0byB0aGUgcHRlLlxuXG5CZWZvcmUgSSBnbyBmdXJ0aGVyLCBJIHNob3VsZCBjaGVjayBpZiB0aGVyZSBhcmUgYW55IGNvbmZpZyBkZXBlbmRlbmNpZXMsIHBhcnRpY3VsYXJseSBgQ09ORklHX1g4Nl9QQVRgLiBJJ2xsIHF1aWNrbHkgbG9vayBpbiB0aGUgYGFyY2gveDg2L21tL3BhdC9NYWtlZmlsZWAgb3IgYGFyY2gveDg2L0tjb25maWdgIHRvIGNvbmZpcm0sIGFzIHRoaXMgd291bGQgY2xlYXJseSBpbmZsdWVuY2UgdGhlIGNvbnRleHQgb2YgdGhlIGNoYW5nZXMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjIzOTgsIk91dHB1dFRva2VucyI6MzYsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyOTcsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yMFQxMzo1MDoxOS43NDc5NzQxNDhaIiwiU2VxIjo0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTA0MDA2MzY4LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInNldF9tZW1vcnkub1wiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJhcmNoL3g4Ni9tbS9wYXQvTWFrZWZpbGVcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiYXJjaC94ODYvbW0vcGF0L01ha2VmaWxlLTItXFxuYXJjaC94ODYvbW0vcGF0L01ha2VmaWxlOjM6b2JqLXlcXHRcXHRcXHRcXHQ6PSBzZXRfbWVtb3J5Lm8gbWVtdHlwZS5vXFxuYXJjaC94ODYvbW0vcGF0L01ha2VmaWxlLTQtXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIwVDEzOjUwOjE5Ljg1MTk4NjU2NVoiLCJTZXEiOjUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjU0MTcyMzAzMzYsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIFBvdGVudGlhbCBBdHRhY2sgU3VyZmFjZXMgaW4gYW4geDg2IEtlcm5lbCoqXG5cbk9rYXksIHNvIHRoaXMgaXMgYnVpbHQgdW5jb25kaXRpb25hbGx5IGZvciB4ODYuIFRoYXQncyBvdXIgYmFzZWxpbmUuIE5vdywgSSBuZWVkIHRvIGZpZ3VyZSBvdXQgdGhlIHJlYWNoYWJpbGl0eSBvZiB0aGVzZSBwb3RlbnRpYWxseSBwcm9ibGVtYXRpYyBmdW5jdGlvbnMsIGBzcGxpdF9sYXJnZV9wYWdlYCBhbmQgYF9fY3BhX2NvbGxhcHNlX2xhcmdlX3BhZ2VzYC4gQXJlIHRoZXkgb25seSB1c2VkIGludGVybmFsbHksIG9yIGFyZSB0aGV5IGFjY2Vzc2libGUgdGhyb3VnaCBzeXN0ZW0gY2FsbHM/IFRoZSBhbmFseXNpcyBzaG93cyB0aGV5IGFyZSBjYWxsZWQgZnJvbSBmdW5jdGlvbnMgbGlrZSBgY2hhbmdlX3BhZ2VfYXR0cl9zZXRfY2xyYCBhbmQgc2ltaWxhciwgd2hpY2ggaXMgdGhlbiB1c2VkIGJ5IGZ1bmN0aW9ucyBsaWtlIGBzZXRfbWVtb3J5X3JvYCwgYHNldF9tZW1vcnlfcndgLCBgc2V0X21lbW9yeV9ueGAsIGFuZCBgc2V0X21lbW9yeV94YCwgYW5kIHRoZXNlIGFyZSBoZWF2aWx5IHVzZWQgYnkgaW1wb3J0YW50IGtlcm5lbCBmZWF0dXJlcyBsaWtlIEJQRiwgbW9kdWxlIGxvYWRpbmcsIGtwcm9iZXMsIGFuZCBmdHJhY2UuIEJpbmdvISBGdXp6aW5nIEJQRiBvciBtb2R1bGUgbG9hZGluZyBsb29rcyBsaWtlIGl0IGNvdWxkIGRlZmluaXRlbHkgdHJpZ2dlciB0aGlzIGNvZGUgcGF0aC4gVGltZSB0byBmb2N1cyBteSBhdHRlbnRpb24gb24gdGhvc2UgdHdvIGtleSBzeW1ib2xzOiBgX19jcGFfY29sbGFwc2VfbGFyZ2VfcGFnZXNgIGFuZCBgc3BsaXRfbGFyZ2VfcGFnZWAuXG5cbk5leHQsIEknbGwgcXVpY2tseSBjaGVjayBpZiBgc2V0X21lbW9yeS5jYCBoYXMgYW55IGNvbmRpdGlvbmFsIGNvbmZpZ3VyYXRpb25zIHRoYXQgbWlnaHQgYWZmZWN0IHRoaXMuIE5vcGUsIGl0J3MgY29tcGlsZWQgaW4uIE5vIHN1cnByaXNlcyB0aGVyZS5cblxuQWxyaWdodCwgdGltZSB0byBkb3VibGUtY2hlY2sgbXkgZmluZGluZ3Mgb24gYF9fY3BhX2NvbGxhcHNlX2xhcmdlX3BhZ2VzYCBhbmQgYHNwbGl0X2xhcmdlX3BhZ2VgLiBMZXQncyBkaWcgZGVlcGVyIGludG8gdGhlIGNhbGwgZ3JhcGhzIGFuZCB1bmRlcnN0YW5kIHByZWNpc2VseSBob3cgdGhleSdyZSBleHBvc2VkIGFuZCB3aGF0IGtpbmQgb2YgYXJndW1lbnRzIHRoZXkgdGFrZS4gVGhpcyBpcyB3aGVyZSB0aGUgcmVhbCB3b3JrIGJlZ2lucy5cblxuXG4iLCJJbnB1dFRva2VucyI6MzIwNiwiT3V0cHV0VG9rZW5zIjo0NCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjIxMSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yMFQxMzo1MDoyNS4yNjkyMTkzNDJaIiwiU2VxIjo2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTI3NTE1MTE3LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIl9fY3BhX2NvbGxhcHNlX2xhcmdlX3BhZ2VzXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImFyY2gveDg2L21tL3BhdC9zZXRfbWVtb3J5LmNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiYXJjaC94ODYvbW0vcGF0L3NldF9tZW1vcnkuYz00MTI9c3RhdGljIGludCBjb2xsYXBzZV9sYXJnZV9wYWdlcyh1bnNpZ25lZCBsb25nIGFkZHIsIHN0cnVjdCBsaXN0X2hlYWQgKnBndGFibGVzKTtcXG5hcmNoL3g4Ni9tbS9wYXQvc2V0X21lbW9yeS5jLTQxMy1cXG5hcmNoL3g4Ni9tbS9wYXQvc2V0X21lbW9yeS5jOjQxNDpzdGF0aWMgdm9pZCBfX2NwYV9jb2xsYXBzZV9sYXJnZV9wYWdlcyhzdHJ1Y3QgY3BhX2RhdGEgKmNwYSlcXG5hcmNoL3g4Ni9tbS9wYXQvc2V0X21lbW9yeS5jLTQxNS17XFxuLS1cXG5hcmNoL3g4Ni9tbS9wYXQvc2V0X21lbW9yeS5jPTQ1MD1zdGF0aWMgdm9pZCBjcGFfY29sbGFwc2VfbGFyZ2VfcGFnZXMoc3RydWN0IGNwYV9kYXRhICpjcGEpXFxuLS1cXG5hcmNoL3g4Ni9tbS9wYXQvc2V0X21lbW9yeS5jLTQ1OC1cXHRzY29wZWRfZ3VhcmQobW1hcF93cml0ZV9sb2NrLCBcXHUwMDI2aW5pdF9tbSlcXG5hcmNoL3g4Ni9tbS9wYXQvc2V0X21lbW9yeS5jOjQ1OTpcXHRcXHRfX2NwYV9jb2xsYXBzZV9sYXJnZV9wYWdlcyhjcGEpO1xcbmFyY2gveDg2L21tL3BhdC9zZXRfbWVtb3J5LmMtNDYwLX1cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjBUMTM6NTA6MjUuMzk2NzQxMDE5WiIsIlNlcSI6NywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzQ1ODY5MDEyMSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIGZyYW1lZCBhcyBteSBvd24gbWVudGFsIHByb2Nlc3NpbmcgYXMgYW4geDg2IG1lbW9yeSBtYW5hZ2VtZW50IGV4cGVydDpcblxuKipDb3JlIHg4NiBNZW1vcnkgTWFuYWdlbWVudCBSb3V0aW5lIEV4YW1pbmF0aW9uKipcblxuQWxyaWdodCwgSSdtIGRpZ2dpbmcgaW50byBzb21lIGNvcmUgeDg2IG1lbW9yeSBtYW5hZ2VtZW50IGNvZGUuIEkndmUgZ290IG15IGZvY3VzIG5hcnJvd2VkIGRvd24gdG8gYSBjb3VwbGUgb2Yga2V5IHN5bWJvbHM6IGBfX2NwYV9jb2xsYXBzZV9sYXJnZV9wYWdlc2AgYW5kIGBzcGxpdF9sYXJnZV9wYWdlYC4gVGhlc2UgYXJlIHByZXR0eSBjb21tb24gbWFya2VycyBmb3IgZGVhbGluZyB3aXRoIGxhcmdlIHBhZ2UgbWFuYWdlbWVudCwgc28gdGhhdCdzIHdoZXJlIG15IGF0dGVudGlvbiBpcy4gU3BlY2lmaWNhbGx5LCBJIGRvbid0IHNlZSBhbnkgc3BlY2lhbCBjb25maWcgb3B0aW9ucyBmbGFnZ2VkLCBzbyB0aGlzIGxvb2tzIHRvIGJlIHN0YW5kYXJkIHg4NiBtZW1vcnkgbWFuYWdlbWVudCBjb2RlLiBOb3csIGxldCBtZSBxdWlja2x5IGNoZWNrIGlmIGBwdGVfYWxsb2Nfb25lX2tlcm5lbGAgaXMgZGVmaW5lZCBpbiB0aGUgY29udGV4dCBvZiB3aGF0IEknbSBsb29raW5nIGF0LiBJJ20gdHJ5aW5nIHRvIGdldCBhIGhhbmRsZSBvbiBob3cgdGhlc2UgbGFyZ2UgcGFnZSBvcGVyYXRpb25zIGFyZSBoYW5kbGluZyBQVEUgKFBhZ2UgVGFibGUgRW50cnkpIGFsbG9jYXRpb24gd2l0aGluIHRoZSBrZXJuZWwgc3BhY2UsIHNvIGZpbmRpbmcgd2hlcmUgdGhhdCdzIGRlZmluZWQsIG9yIG5vdCwgd2lsbCBiZSBhIGNyaXRpY2FsIG5leHQgc3RlcC5cblxuXG4iLCJJbnB1dFRva2VucyI6NDA1MSwiT3V0cHV0VG9rZW5zIjozMywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjU0LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIwVDEzOjUwOjI4Ljg1NTQzMjczWiIsIlNlcSI6OCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE3OTI5NjYyNiwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJwdGVfYWxsb2Nfb25lX2tlcm5lbFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJhcmNoL3g4Ni9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiYXJjaC94ODYvbW0vcGF0L3NldF9tZW1vcnkuYz0xMjQ5PXN0YXRpYyBpbnQgc3BsaXRfbGFyZ2VfcGFnZShzdHJ1Y3QgY3BhX2RhdGEgKmNwYSwgcHRlX3QgKmtwdGUsXFxuLS1cXG5hcmNoL3g4Ni9tbS9wYXQvc2V0X21lbW9yeS5jLTEyNTUtXFx0XFx0c3Bpbl91bmxvY2soXFx1MDAyNmNwYV9sb2NrKTtcXG5hcmNoL3g4Ni9tbS9wYXQvc2V0X21lbW9yeS5jOjEyNTY6XFx0cHRlID0gcHRlX2FsbG9jX29uZV9rZXJuZWwoXFx1MDAyNmluaXRfbW0pO1xcbmFyY2gveDg2L21tL3BhdC9zZXRfbWVtb3J5LmMtMTI1Ny1cXHRpZiAoIWRlYnVnX3BhZ2VhbGxvY19lbmFibGVkKCkpXFxuLS1cXG5hcmNoL3g4Ni9tbS9wYXQvc2V0X21lbW9yeS5jPTE1NjM9c3RhdGljIGludCBhbGxvY19wdGVfcGFnZShwbWRfdCAqcG1kKVxcbmFyY2gveDg2L21tL3BhdC9zZXRfbWVtb3J5LmMtMTU2NC17XFxuYXJjaC94ODYvbW0vcGF0L3NldF9tZW1vcnkuYzoxNTY1OlxcdHB0ZV90ICpwdGUgPSBwdGVfYWxsb2Nfb25lX2tlcm5lbChcXHUwMDI2aW5pdF9tbSk7XFxuYXJjaC94ODYvbW0vcGF0L3NldF9tZW1vcnkuYy0xNTY2LVxcdGlmICghcHRlKVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yMFQxMzo1MDoyOS4wMzQ3MzQ0OTZaIiwiU2VxIjo5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo3MjE4ODYyMTI2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgUGF0Y2g6IEEgU3RhbmRhcmQgRml4IHdpdGggRnV6emluZyBJbXBsaWNhdGlvbnMqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIHBhdGNoLCBhbmQgaXQncyBhIHByZXR0eSBzdHJhaWdodGZvcndhcmQgZml4LiBUaGV5J3ZlIGlkZW50aWZpZWQgYSBzcG90IHdoZXJlIGBwYWdldGFibGVfYWxsb2NgIHdhcyBiZWluZyB1c2VkIHdoZW4gYHB0ZV9hbGxvY19vbmVfa2VybmVsYCBzaG91bGQgaGF2ZSBiZWVuLiBJdCdzIGEgZnVuY3Rpb25hbCBjb3JyZWN0aW9uLCBub3RoaW5nIHRvbyBncm91bmRicmVha2luZywgYnV0IGltcG9ydGFudCBub25ldGhlbGVzcy4gVGhlIHJpc2sgaXMgbWlzc2luZyBjcnVjaWFsIGluaXRpYWxpemF0aW9ucyAtIGBwdGRlc2NgIGFuZCBwYWdlIHRhYmxlIGxvY2sgaW5pdGlhbGl6YXRpb24gYXJlIG1lbnRpb25lZCwgbWVhbmluZyB0aGUgZXhpc3RpbmcgY29kZSB3YXMgcG90ZW50aWFsbHkgb3BlcmF0aW5nIHdpdGggdW5pbml0aWFsaXplZCByZXNvdXJjZXMsIHdoaWNoIGlzIGFsd2F5cyBwcm9ibGVtYXRpYyBpbiBtZW1vcnkgbWFuYWdlbWVudC5cblxuTm93LCBsZXQncyBjb25zaWRlciB0aGUgaW1wbGljYXRpb25zIGZvciBmdXp6aW5nLiBUaGlzIGlzIHdoZXJlIGl0IGdldHMgaW50ZXJlc3RpbmcuIEknbSBnb2luZyB0byBzZXQgYFdvcnRoRnV6emluZ2AgdG8gYHRydWVgLiBBbmQgdGhlIGBGb2N1c1N5bWJvbHNgIGFyZSBxdWl0ZSB0ZWxsaW5nOiBgX19jcGFfY29sbGFwc2VfbGFyZ2VfcGFnZXNgIGFuZCBgc3BsaXRfbGFyZ2VfcGFnZWAuIFRoaXMgcGF0Y2ggZGlyZWN0bHkgdG91Y2hlcyB0aGUgY29yZSB4ODYgbWVtb3J5IG1hbmFnZW1lbnQgY29kZSwgc3BlY2lmaWNhbGx5IHJlbGF0ZWQgdG8gQ1BBIChDaGFuZ2UgUGFnZSBBdHRyaWJ1dGUpIG9wZXJhdGlvbnMsIHBhZ2Ugc3BsaXR0aW5nLCBhbmQgY29sbGFwc2luZy4gVGhlIGNoYW5nZSBtYWtlcyBzdXJlIGFsbG9jYXRpb24gYW5kIGRlYWxsb2NhdGlvbiBvZiBwYWdlIHRhYmxlcyBpcyBkb25lIGNvcnJlY3RseSwgdXNpbmcgYHB0ZV9hbGxvY19vbmVfa2VybmVsYCBhbmQgYHB0ZV9mcmVlX2tlcm5lbGAgLyBgcGFnZXRhYmxlX2R0b3JfZnJlZWAuIFNvLCB0aGUgYWZmZWN0ZWQgY29kZSBpcyByZWFjaGVkIHRocm91Z2ggZmVhdHVyZXMgdGhhdCBtZXNzIHdpdGggbWVtb3J5IHBlcm1pc3Npb25zIC0gQlBGLCBtb2R1bGUgbG9hZGluZywga3Byb2Jlcy4gVGhpcyBzb3VuZHMgbGlrZSBhbiBhcmVhIHJpcGUgZm9yIHVuY292ZXJpbmcgc3VidGxlIG1lbW9yeSBjb3JydXB0aW9uIGlzc3VlcyBvciB1bmV4cGVjdGVkIGJlaGF2aW9yLiBObyBzcGVjaWZpYyBjb25maWd1cmF0aW9ucyBhcmUgcmVxdWlyZWQgdG8gcmVwcm9kdWNlIGl0IC0gYEVuYWJsZUNvbmZpZ3NgIGlzIGVtcHR5LiBUaGUgcmVhc29uaW5nIGlzIGNsZWFyLCB0aGUgZml4IGNvdWxkIGV4cG9zZSBpc3N1ZXMgcmVsYXRlZCB0byBob3cgdGhlIGtlcm5lbCBoYW5kbGVzIGNoYW5nZXMgaW4gbWVtb3J5IHBlcm1pc3Npb25zIGFuZCBsYXJnZSBwYWdlIG1hbmFnZW1lbnQuIFRoZXJlZm9yZSwgaXQncyB3b3J0aCBhIGNsb3NlIGxvb2sgYW5kIGZ1enppbmcgZWZmb3J0LlxuXG5cbiIsIklucHV0VG9rZW5zIjo0NjQzLCJPdXRwdXRUb2tlbnMiOjEzNCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE5NSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yMFQxMzo1MDozNi4yNTM1OTg2ODJaIiwiU2VxIjoxMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyMzgyMCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW10sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcIl9fY3BhX2NvbGxhcHNlX2xhcmdlX3BhZ2VzXCIsXG4gICAgXCJzcGxpdF9sYXJnZV9wYWdlXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgY29yZSB4ODYgbWVtb3J5IG1hbmFnZW1lbnQgY29kZSAoQ1BBIC0gY2hhbmdlIHBhZ2UgYXR0cmlidXRlKSB0byBjb3JyZWN0bHkgYWxsb2NhdGUgYW5kIGZyZWUgcGFnZSB0YWJsZXMgdXNpbmcgYHB0ZV9hbGxvY19vbmVfa2VybmVsYCBhbmQgYHB0ZV9mcmVlX2tlcm5lbGAgLyBgcGFnZXRhYmxlX2R0b3JfZnJlZWAuIFRoaXMgYWZmZWN0cyBwYWdlIHNwbGl0dGluZyBhbmQgY29sbGFwc2luZywgd2hpY2ggaXMgcmVhY2hhYmxlIHZpYSBmZWF0dXJlcyB0aGF0IGNoYW5nZSBtZW1vcnkgcGVybWlzc2lvbnMgKGUuZy4sIEJQRiwgbW9kdWxlIGxvYWRpbmcsIGtwcm9iZXMpLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcIl9fY3BhX2NvbGxhcHNlX2xhcmdlX3BhZ2VzXCIsXG4gICAgXCJzcGxpdF9sYXJnZV9wYWdlXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgY29yZSB4ODYgbWVtb3J5IG1hbmFnZW1lbnQgY29kZSAoQ1BBIC0gY2hhbmdlIHBhZ2UgYXR0cmlidXRlKSB0byBjb3JyZWN0bHkgYWxsb2NhdGUgYW5kIGZyZWUgcGFnZSB0YWJsZXMgdXNpbmcgYHB0ZV9hbGxvY19vbmVfa2VybmVsYCBhbmQgYHB0ZV9mcmVlX2tlcm5lbGAgLyBgcGFnZXRhYmxlX2R0b3JfZnJlZWAuIFRoaXMgYWZmZWN0cyBwYWdlIHNwbGl0dGluZyBhbmQgY29sbGFwc2luZywgd2hpY2ggaXMgcmVhY2hhYmxlIHZpYSBmZWF0dXJlcyB0aGF0IGNoYW5nZSBtZW1vcnkgcGVybWlzc2lvbnMgKGUuZy4sIEJQRiwgbW9kdWxlIGxvYWRpbmcsIGtwcm9iZXMpLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH1dOwoJCQlpZiAoIXJhd0RhdGEgfHwgcmF3RGF0YS5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpOwoJCQlkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKTsKCQkJZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpIHsKCQkJY29uc3Qgc3RhdHMgPSB7CgkJCQlsbG06IHsgY291bnQ6IDAsIHRva2VuczogMCwgZHVyYXRpb246IDAgfSwKCQkJCXRvb2w6IHsgY291bnQ6IDAsIGR1cmF0aW9uOiAwIH0KCQkJfTsKCgkJCXJhd0RhdGEuZm9yRWFjaChzID0+IHsKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOyAKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iKSB7CgkJCQkJc3RhdHMubGxtLmNvdW50Kys7CgkJCQkJc3RhdHMubGxtLnRva2VucyArPSAocy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2Vucyk7CgkJCQkJc3RhdHMubGxtLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0gZWxzZSBpZiAocy5UeXBlID09PSAidG9vbCIpIHsKCQkJCQlzdGF0cy50b29sLmNvdW50Kys7CgkJCQkJc3RhdHMudG9vbC5kdXJhdGlvbiArPSBkdXI7CgkJCQl9CgkJCX0pOwoKCQkJY29uc3QgYXZnTGxtRHVyID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0uZHVyYXRpb24gLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdMbG1Ub2tlbiA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLnRva2VucyAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z1Rvb2xEdXIgPSBzdGF0cy50b29sLmNvdW50ID4gMCA/IChzdGF0cy50b29sLmR1cmF0aW9uIC8gc3RhdHMudG9vbC5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgoJCQljb25zdCBsbG1TdW1hcnlDZWxscyA9IFtzdGF0cy5sbG0uY291bnQsIHN0YXRzLmxsbS50b2tlbnMsIGF2Z0xsbVRva2VuLCBzdGF0cy5sbG0uZHVyYXRpb24sIGF2Z0xsbUR1cl07CgkJCWNvbnN0IHRvb2xTdW1tYXJ5Q2VsbHMgPSBbc3RhdHMudG9vbC5jb3VudCwgc3RhdHMudG9vbC5kdXJhdGlvbiwgYXZnVG9vbER1cl07CgoJCQljb25zdCBsbG1TdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsbG1fc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCWxsbVN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCBsbG1UciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCWxsbVN1bWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQlsbG1Uci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQlsbG1TdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZChsbG1Ucik7CgoJCQljb25zdCB0b29sU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJdG9vbFN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCB0b29sVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQl0b29sU3VtbWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQl0b29sVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJdG9vbFN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKHRvb2xUcik7CgkJfQoKCQlmdW5jdGlvbiBkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGZpbHRlcmVkU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IFsibGxtIiwgInRvb2wiXS5pbmNsdWRlcyhkLlR5cGUpKTsKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnRHVyYXRpb24nKTsKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsgCgoJCQlmaWx0ZXJlZFN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQkKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOwoJCQkJbGV0IHRvb2x0aXAgPSBzLk5hbWU7CgkJCQlpZiAocy5UeXBlID09PSAibGxtIiAmJiBzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgkJCQlkYXRhLmFkZFJvdyhbYCR7cy5TZXF9YCwgZHVyLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVGltZSBDb25zdW1wdGlvbiBvZiBMTE0vVG9vbCBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNL1Rvb2wgU3RlcHMnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnU2Vjb25kcycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZHVyYXRpb25fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGxsbVN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBkLlR5cGUgPT09ICJsbG0iKTsKCQkJaWYgKGxsbVN0ZXBzLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnVG9rZW5zJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3N0eWxlJ30pOwkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsJCgoJCQljb25zdCBhZ2VudENvbG9ycyA9IHt9OwoJCQljb25zdCBwYWxldHRlID0gWycjNDI4NUY0JywgJyNEQjQ0MzcnLCAnI0Y0QjQwMCcsICcjMEY5RDU4JywgJyNBQjQ3QkMnLCAnIzAwQUNDMSddOwoJCQlsZXQgY29sb3JJZHggPSAwOwoJCQljb25zdCBhZ2VudExMTUNvdW50cyA9IHt9OwoJCQlsbG1TdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJaWYgKCFhZ2VudENvbG9yc1tzLk5hbWVdKSB7CgkJCQkJYWdlbnRDb2xvcnNbcy5OYW1lXSA9IHBhbGV0dGVbY29sb3JJZHggJSBwYWxldHRlLmxlbmd0aF07CgkJCQkJY29sb3JJZHgrKzsKCQkJCX0KCgkJCQlhZ2VudExMTUNvdW50c1tzLk5hbWVdID0gKGFnZW50TExNQ291bnRzW3MuTmFtZV0gfHwgMCkgKyAxOwoJCQkJY29uc3QgbGFiZWwgPSBgJHtzLk5hbWV9LSR7YWdlbnRMTE1Db3VudHNbcy5OYW1lXX1gOwoJCQkJY29uc3QgdG90YWxUb2tlbnMgPSBzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zOwoJCQkJY29uc3Qgc3R5bGUgPSBgY29sb3I6ICR7YWdlbnRDb2xvcnNbcy5OYW1lXX1gOwoJCQkJbGV0IHRvb2x0aXAgPSBgVG90YWwgVG9rZW5zOiAke3RvdGFsVG9rZW5zfVxuKEluOiAke3MuSW5wdXRUb2tlbnN9LCBPdXQ6ICR7cy5PdXRwdXRUb2tlbnN9LCBUaG91Z2h0czogJHtzLk91dHB1dFRob3VnaHRzVG9rZW5zfSlgOwoJCQkJaWYgKHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCgkJCQlkYXRhLmFkZFJvdyhbbGFiZWwsIHRvdGFsVG9rZW5zLCBzdHlsZSwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1Rva2VuIENvbnN1bXB0aW9uIGJ5IExMTSBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNIENhbGwgU2VxdWVuY2UnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnQ29uc3VtZWQgVG9rZW5zJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b2tlbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoJCWxldCBhbGxFeHBhbmRlZCA9IGZhbHNlOwoJCWZ1bmN0aW9uIHRvZ2dsZUFsbERldGFpbHMoKSB7CgkJCWFsbEV4cGFuZGVkID0gIWFsbEV4cGFuZGVkOwoJCQlkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdkZXRhaWxzJykuZm9yRWFjaChkID0+IHsKCQkJCWlmIChhbGxFeHBhbmRlZCkgZC5zZXRBdHRyaWJ1dGUoJ29wZW4nLCAnJyk7CgkJCQllbHNlIGQucmVtb3ZlQXR0cmlidXRlKCdvcGVuJyk7CgkJCX0pOwoJCX0KCTwvc2NyaXB0PgoKCjwvYm9keT4KPC9odG1sPgo=" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowxdbb7[0].run-triage(0) Phase: Succeeded StartedAt: 2026-07-20 13:28:57 +0000 UTC FinishedAt: 2026-07-20 13:50:37 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "mm-new", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git", "commit_hash": "890f8c4e827c918dac668a12eaf63180ba8a9e6d", "config_name": "upstream-apparmor-kasan.config", "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "mm-new", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git", "commit_hash": "890f8c4e827c918dac668a12eaf63180ba8a9e6d", "config_name": "upstream-apparmor-kasan.config", "series_id": "219e843a-a07e-4f7b-b28f-5d176780782c" }, "track": "KASAN", "fuzz": { "focus": null, "focus_symbols": [ "__cpa_collapse_large_pages", "split_large_page" ], "corpus_urls": [ "https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db" ], "skip_cover_check": true, "bug_title_re": "" }, "retest": null } ], "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIwIDEzOjUwPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7X19jcGFfY29sbGFwc2VfbGFyZ2VfcGFnZXMmIzM0OywKICAgICYjMzQ7c3BsaXRfbGFyZ2VfcGFnZSYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyBjb3JlIHg4NiBtZW1vcnkgbWFuYWdlbWVudCBjb2RlIChDUEEgLSBjaGFuZ2UgcGFnZSBhdHRyaWJ1dGUpIHRvIGNvcnJlY3RseSBhbGxvY2F0ZSBhbmQgZnJlZSBwYWdlIHRhYmxlcyB1c2luZyBgcHRlX2FsbG9jX29uZV9rZXJuZWxgIGFuZCBgcHRlX2ZyZWVfa2VybmVsYCAvIGBwYWdldGFibGVfZHRvcl9mcmVlYC4gVGhpcyBhZmZlY3RzIHBhZ2Ugc3BsaXR0aW5nIGFuZCBjb2xsYXBzaW5nLCB3aGljaCBpcyByZWFjaGFibGUgdmlhIGZlYXR1cmVzIHRoYXQgY2hhbmdlIG1lbW9yeSBwZXJtaXNzaW9ucyAoZS5nLiwgQlBGLCBtb2R1bGUgbG9hZGluZywga3Byb2JlcykuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MS8xPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjAgMTM6NTA8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPnJlYWQtcGF0Y2gtZGlmZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1BhdGNoRGlmZiYjMzQ7OiAmIzM0O2NvbW1pdCAyYjI1YzAyY2Q3ZTY4NDIyMTg4MTc4OTAxMmVjZTY2MDRlYmU4ODNiXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIE1vbiBKdWwgMjAgMTM6NTA6MTEgMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvYXJjaC94ODYvbW0vcGF0L3NldF9tZW1vcnkuYyBiL2FyY2gveDg2L21tL3BhdC9zZXRfbWVtb3J5LmNcbmluZGV4IDMwMWZiOWU3N2Q5MWJhLi5hNjdjYTMzYjlkZDEyMSAxMDA2NDRcbi0tLSBhL2FyY2gveDg2L21tL3BhdC9zZXRfbWVtb3J5LmNcbiYjNDM7JiM0MzsmIzQzOyBiL2FyY2gveDg2L21tL3BhdC9zZXRfbWVtb3J5LmNcbkBAIC00MzksNyAmIzQzOzQzOSwxMSBAQCBzdGF0aWMgdm9pZCBfX2NwYV9jb2xsYXBzZV9sYXJnZV9wYWdlcyhzdHJ1Y3QgY3BhX2RhdGEgKmNwYSlcbiBcbiBcdGxpc3RfZm9yX2VhY2hfZW50cnlfc2FmZShwdGRlc2MsIHRtcCwgXHUwMDI2cGd0YWJsZXMsIHB0X2xpc3QpIHtcbiBcdFx0bGlzdF9kZWwoXHUwMDI2cHRkZXNjLVx1MDAzZXB0X2xpc3QpO1xuLVx0XHRwYWdldGFibGVfZnJlZShwdGRlc2MpO1xuJiM0MztcbiYjNDM7XHRcdGlmIChmb2xpb190ZXN0X3BndGFibGUocHRkZXNjX2ZvbGlvKHB0ZGVzYykpKVxuJiM0MztcdFx0XHRwYWdldGFibGVfZHRvcl9mcmVlKHB0ZGVzYyk7XG4mIzQzO1x0XHRlbHNlXG4mIzQzO1x0XHRcdHBhZ2V0YWJsZV9mcmVlKHB0ZGVzYyk7XG4gXHR9XG4gfVxuIFxuQEAgLTExMzgsMTEgJiM0MzsxMTQyLDEwIEBAIHN0YXRpYyB2b2lkIHNwbGl0X3NldF9wdGUoc3RydWN0IGNwYV9kYXRhICpjcGEsIHB0ZV90ICpwdGUsIHVuc2lnbmVkIGxvbmcgcGZuLFxuIFxuIHN0YXRpYyBpbnRcbiBfX3NwbGl0X2xhcmdlX3BhZ2Uoc3RydWN0IGNwYV9kYXRhICpjcGEsIHB0ZV90ICprcHRlLCB1bnNpZ25lZCBsb25nIGFkZHJlc3MsXG4tXHRcdCAgIHN0cnVjdCBwdGRlc2MgKnB0ZGVzYylcbiYjNDM7XHRcdCAgIHB0ZV90ICpwYmFzZSlcbiB7XG4gXHR1bnNpZ25lZCBsb25nIGxwYWRkciwgbHBpbmMsIHJlZl9wZm4sIHBmbiwgcGZuaW5jID0gMTtcbi1cdHN0cnVjdCBwYWdlICpiYXNlID0gcHRkZXNjX3BhZ2UocHRkZXNjKTtcbi1cdHB0ZV90ICpwYmFzZSA9IChwdGVfdCAqKXBhZ2VfYWRkcmVzcyhiYXNlKTtcbiYjNDM7XHRzdHJ1Y3QgcGFnZSAqYmFzZSA9IHZpcnRfdG9fcGFnZShwYmFzZSk7XG4gXHR1bnNpZ25lZCBpbnQgaSwgbGV2ZWw7XG4gXHRwZ3Byb3RfdCByZWZfcHJvdDtcbiBcdGJvb2wgbngsIHJ3O1xuQEAgLTEyNDYsMTggJiM0MzsxMjQ5LDE4IEBAIF9fc3BsaXRfbGFyZ2VfcGFnZShzdHJ1Y3QgY3BhX2RhdGEgKmNwYSwgcHRlX3QgKmtwdGUsIHVuc2lnbmVkIGxvbmcgYWRkcmVzcyxcbiBzdGF0aWMgaW50IHNwbGl0X2xhcmdlX3BhZ2Uoc3RydWN0IGNwYV9kYXRhICpjcGEsIHB0ZV90ICprcHRlLFxuIFx0XHRcdCAgICB1bnNpZ25lZCBsb25nIGFkZHJlc3MpXG4ge1xuLVx0c3RydWN0IHB0ZGVzYyAqcHRkZXNjO1xuJiM0MztcdHB0ZV90ICpwdGU7XG4gXG4gXHRpZiAoIWRlYnVnX3BhZ2VhbGxvY19lbmFibGVkKCkpXG4gXHRcdHNwaW5fdW5sb2NrKFx1MDAyNmNwYV9sb2NrKTtcbi1cdHB0ZGVzYyA9IHBhZ2V0YWJsZV9hbGxvYyhHRlBfS0VSTkVMLCAwKTtcbiYjNDM7XHRwdGUgPSBwdGVfYWxsb2Nfb25lX2tlcm5lbChcdTAwMjZpbml0X21tKTtcbiBcdGlmICghZGVidWdfcGFnZWFsbG9jX2VuYWJsZWQoKSlcbiBcdFx0c3Bpbl9sb2NrKFx1MDAyNmNwYV9sb2NrKTtcbi1cdGlmICghcHRkZXNjKVxuJiM0MztcdGlmICghcHRlKVxuIFx0XHRyZXR1cm4gLUVOT01FTTtcbiBcbi1cdGlmIChfX3NwbGl0X2xhcmdlX3BhZ2UoY3BhLCBrcHRlLCBhZGRyZXNzLCBwdGRlc2MpKVxuLVx0XHRwYWdldGFibGVfZnJlZShwdGRlc2MpO1xuJiM0MztcdGlmIChfX3NwbGl0X2xhcmdlX3BhZ2UoY3BhLCBrcHRlLCBhZGRyZXNzLCBwdGUpKVxuJiM0MztcdFx0cHRlX2ZyZWVfa2VybmVsKFx1MDAyNmluaXRfbW0sIHB0ZSk7XG4gXG4gXHRyZXR1cm4gMDtcbiB9XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjAgMTM6NTA8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IG51bGwsCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtfX2NwYV9jb2xsYXBzZV9sYXJnZV9wYWdlcyYjMzQ7LAogICAgJiMzNDtzcGxpdF9sYXJnZV9wYWdlJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIGNvcmUgeDg2IG1lbW9yeSBtYW5hZ2VtZW50IGNvZGUgKENQQSAtIGNoYW5nZSBwYWdlIGF0dHJpYnV0ZSkgdG8gY29ycmVjdGx5IGFsbG9jYXRlIGFuZCBmcmVlIHBhZ2UgdGFibGVzIHVzaW5nIGBwdGVfYWxsb2Nfb25lX2tlcm5lbGAgYW5kIGBwdGVfZnJlZV9rZXJuZWxgIC8gYHBhZ2V0YWJsZV9kdG9yX2ZyZWVgLiBUaGlzIGFmZmVjdHMgcGFnZSBzcGxpdHRpbmcgYW5kIGNvbGxhcHNpbmcsIHdoaWNoIGlzIHJlYWNoYWJsZSB2aWEgZmVhdHVyZXMgdGhhdCBjaGFuZ2UgbWVtb3J5IHBlcm1pc3Npb25zIChlLmcuLCBCUEYsIG1vZHVsZSBsb2FkaW5nLCBrcHJvYmVzKS4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkluc3RydWN0aW9uOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+WW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuCllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lCmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC4KCklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpbgp5b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHkKdXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy4KClJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6Ci0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy4KLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy4KLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuCi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLApldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuCgpJZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoCnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLgoKV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086CjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuCiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLgoyLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS4KICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLgogICBEbyBub3QgbGlzdCB0b28gZ2VuZXJpYyBjb25maWdzICh3ZSBhbHJlYWR5IGhhdmUgdGhlbSBlbmFibGVkKS4gT25seSBsaXN0IHRob3NlIHRoYXQKICAgc3BlY2lmaWNhbGx5IGNvdmVyIHRoZSBtb2RpZmllZCBjb2RlLiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3Mgb3V0cHV0IGFycmF5LAogICBhbmQgRE8gTk9UIGFkZCBhICYjMzk7Q09ORklHXyYjMzk7IHByZWZpeCAoZS5nLiwgcmV0dXJuICYjMzQ7TkVUX0lQVjQmIzM0OyBpbnN0ZWFkIG9mICYjMzQ7Q09ORklHX05FVF9JUFY0JiMzNDspLgpQcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy4KCgpVc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLgpJdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS4KSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlByb21wdDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOgpjb21taXQgMmIyNWMwMmNkN2U2ODQyMjE4ODE3ODkwMTJlY2U2NjA0ZWJlODgzYgpBdXRob3I6IHN5ei1jbHVzdGVyICZsdDt0cmlhZ2VAc3l6a2FsbGVyLmNvbSZndDsKRGF0ZTogICBNb24gSnVsIDIwIDEzOjUwOjExIDIwMjYgJiM0MzswMDAwCgogICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3CgpkaWZmIC0tZ2l0IGEvYXJjaC94ODYvbW0vcGF0L3NldF9tZW1vcnkuYyBiL2FyY2gveDg2L21tL3BhdC9zZXRfbWVtb3J5LmMKaW5kZXggMzAxZmI5ZTc3ZDkxYmEuLmE2N2NhMzNiOWRkMTIxIDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9tbS9wYXQvc2V0X21lbW9yeS5jCiYjNDM7JiM0MzsmIzQzOyBiL2FyY2gveDg2L21tL3BhdC9zZXRfbWVtb3J5LmMKQEAgLTQzOSw3ICYjNDM7NDM5LDExIEBAIHN0YXRpYyB2b2lkIF9fY3BhX2NvbGxhcHNlX2xhcmdlX3BhZ2VzKHN0cnVjdCBjcGFfZGF0YSAqY3BhKQogCiAJbGlzdF9mb3JfZWFjaF9lbnRyeV9zYWZlKHB0ZGVzYywgdG1wLCAmYW1wO3BndGFibGVzLCBwdF9saXN0KSB7CiAJCWxpc3RfZGVsKCZhbXA7cHRkZXNjLSZndDtwdF9saXN0KTsKLQkJcGFnZXRhYmxlX2ZyZWUocHRkZXNjKTsKJiM0MzsKJiM0MzsJCWlmIChmb2xpb190ZXN0X3BndGFibGUocHRkZXNjX2ZvbGlvKHB0ZGVzYykpKQomIzQzOwkJCXBhZ2V0YWJsZV9kdG9yX2ZyZWUocHRkZXNjKTsKJiM0MzsJCWVsc2UKJiM0MzsJCQlwYWdldGFibGVfZnJlZShwdGRlc2MpOwogCX0KIH0KIApAQCAtMTEzOCwxMSAmIzQzOzExNDIsMTAgQEAgc3RhdGljIHZvaWQgc3BsaXRfc2V0X3B0ZShzdHJ1Y3QgY3BhX2RhdGEgKmNwYSwgcHRlX3QgKnB0ZSwgdW5zaWduZWQgbG9uZyBwZm4sCiAKIHN0YXRpYyBpbnQKIF9fc3BsaXRfbGFyZ2VfcGFnZShzdHJ1Y3QgY3BhX2RhdGEgKmNwYSwgcHRlX3QgKmtwdGUsIHVuc2lnbmVkIGxvbmcgYWRkcmVzcywKLQkJICAgc3RydWN0IHB0ZGVzYyAqcHRkZXNjKQomIzQzOwkJICAgcHRlX3QgKnBiYXNlKQogewogCXVuc2lnbmVkIGxvbmcgbHBhZGRyLCBscGluYywgcmVmX3BmbiwgcGZuLCBwZm5pbmMgPSAxOwotCXN0cnVjdCBwYWdlICpiYXNlID0gcHRkZXNjX3BhZ2UocHRkZXNjKTsKLQlwdGVfdCAqcGJhc2UgPSAocHRlX3QgKilwYWdlX2FkZHJlc3MoYmFzZSk7CiYjNDM7CXN0cnVjdCBwYWdlICpiYXNlID0gdmlydF90b19wYWdlKHBiYXNlKTsKIAl1bnNpZ25lZCBpbnQgaSwgbGV2ZWw7CiAJcGdwcm90X3QgcmVmX3Byb3Q7CiAJYm9vbCBueCwgcnc7CkBAIC0xMjQ2LDE4ICYjNDM7MTI0OSwxOCBAQCBfX3NwbGl0X2xhcmdlX3BhZ2Uoc3RydWN0IGNwYV9kYXRhICpjcGEsIHB0ZV90ICprcHRlLCB1bnNpZ25lZCBsb25nIGFkZHJlc3MsCiBzdGF0aWMgaW50IHNwbGl0X2xhcmdlX3BhZ2Uoc3RydWN0IGNwYV9kYXRhICpjcGEsIHB0ZV90ICprcHRlLAogCQkJICAgIHVuc2lnbmVkIGxvbmcgYWRkcmVzcykKIHsKLQlzdHJ1Y3QgcHRkZXNjICpwdGRlc2M7CiYjNDM7CXB0ZV90ICpwdGU7CiAKIAlpZiAoIWRlYnVnX3BhZ2VhbGxvY19lbmFibGVkKCkpCiAJCXNwaW5fdW5sb2NrKCZhbXA7Y3BhX2xvY2spOwotCXB0ZGVzYyA9IHBhZ2V0YWJsZV9hbGxvYyhHRlBfS0VSTkVMLCAwKTsKJiM0MzsJcHRlID0gcHRlX2FsbG9jX29uZV9rZXJuZWwoJmFtcDtpbml0X21tKTsKIAlpZiAoIWRlYnVnX3BhZ2VhbGxvY19lbmFibGVkKCkpCiAJCXNwaW5fbG9jaygmYW1wO2NwYV9sb2NrKTsKLQlpZiAoIXB0ZGVzYykKJiM0MzsJaWYgKCFwdGUpCiAJCXJldHVybiAtRU5PTUVNOwogCi0JaWYgKF9fc3BsaXRfbGFyZ2VfcGFnZShjcGEsIGtwdGUsIGFkZHJlc3MsIHB0ZGVzYykpCi0JCXBhZ2V0YWJsZV9mcmVlKHB0ZGVzYyk7CiYjNDM7CWlmIChfX3NwbGl0X2xhcmdlX3BhZ2UoY3BhLCBrcHRlLCBhZGRyZXNzLCBwdGUpKQomIzQzOwkJcHRlX2ZyZWVfa2VybmVsKCZhbXA7aW5pdF9tbSwgcHRlKTsKIAogCXJldHVybiAwOwogfQo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMCAxMzo1MDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyMzk4CgkJCQkJCQlvdXRwdXQ6IDM2CgkJCQkJCQl0aG91Z2h0czogMjk3CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgUGF0Y2ggdG8gYGFyY2gveDg2L21tL3BhdC9zZXRfbWVtb3J5LmNgKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCBhIHBhdGNoIHRoYXQmIzM5O3MgdG91Y2hpbmcgYGFyY2gveDg2L21tL3BhdC9zZXRfbWVtb3J5LmNgLiBSaWdodCBhd2F5LCB0aGlzIHRlbGxzIG1lIHdlJiMzOTtyZSBkZWFsaW5nIHdpdGggYSBjb3JlIGNvbXBvbmVudCBvZiB4ODYgbWVtb3J5IG1hbmFnZW1lbnQsIHNwZWNpZmljYWxseSBjb25jZXJuaW5nIHRoZSBQYWdlIEF0dHJpYnV0ZSBUYWJsZSAoUEFUKSBhbmQgaG93IHdlJiMzOTtyZSBjaGFuZ2luZyBwYWdlIGF0dHJpYnV0ZXMgKENQQSkuIEdpdmVuIGl0cyBsb2NhdGlvbiwgSSBjYW4gYmUgcHJldHR5IHN1cmUgdGhpcyBpcyBmdW5jdGlvbmFsIGNvZGUgYW5kIGlzIGRlZmluaXRlbHkgcmVhY2hhYmxlLgoKVGhlIGtleSBjaGFuZ2VzIHRoYXQgc3RhbmQgb3V0IGFyZSB3aXRoaW4gdGhyZWUgZnVuY3Rpb25zOiBgX19jcGFfY29sbGFwc2VfbGFyZ2VfcGFnZXNgLCBgX19zcGxpdF9sYXJnZV9wYWdlYCwgYW5kIGBzcGxpdF9sYXJnZV9wYWdlYC4gSXQgbG9va3MgbGlrZSB0aGVyZSBhcmUgc29tZSBkaXJlY3QgcmVwbGFjZW1lbnRzIGFuZCBwYXJhbWV0ZXIgYWRqdXN0bWVudHMuIFNwZWNpZmljYWxseSwgSSBzZWUgYHBhZ2V0YWJsZV9hbGxvY2AgcmVwbGFjZWQgYnkgYHB0ZV9hbGxvY19vbmVfa2VybmVsYCBpbiBgc3BsaXRfbGFyZ2VfcGFnZWAuIEluIGBfX2NwYV9jb2xsYXBzZV9sYXJnZV9wYWdlc2AgdGhlIHBhdGNoIHN3YXBzIGBwYWdldGFibGVfZnJlZWAgd2l0aCBlaXRoZXIgYHBhZ2V0YWJsZV9kdG9yX2ZyZWVgIG9yIHRoZSBvcmlnaW5hbCBgcGFnZXRhYmxlX2ZyZWVgLiBUaGVyZSYjMzk7cyBhbHNvIGEgbW9kaWZpY2F0aW9uIHdoZXJlIGBfX3NwbGl0X2xhcmdlX3BhZ2VgIG5vdyByZWNlaXZlcyBhIGBwdGVfdCAqcGJhc2VgIGFyZ3VtZW50IGluc3RlYWQgb2YgYHN0cnVjdCBwdGRlc2MgKnB0ZGVzY2AuCgpJJiMzOTtsbCBuZWVkIHRvIGRpZyBpbnRvIHRoZXNlIGZ1bmN0aW9uIGNoYW5nZXMuIEkmIzM5O2xsIG5lZWQgdG8gdHJhY2UgdGhlIGltcGxpY2F0aW9ucyBvZiByZXBsYWNpbmcgdGhlc2UgYWxsb2NhdGlvbiBhbmQgZGVhbGxvY2F0aW9uIGZ1bmN0aW9ucywgYW5kIHdoYXQgdGhhdCBjaGFuZ2Ugb2YgYXJndW1lbnRzIGZvciBgX19zcGxpdF9sYXJnZV9wYWdlYCBtZWFucywgZXNwZWNpYWxseSBob3cgdGhpcyBwYmFzZSBhcmd1bWVudCByZWxhdGVzIHRvIHRoZSBwdGUuCgpCZWZvcmUgSSBnbyBmdXJ0aGVyLCBJIHNob3VsZCBjaGVjayBpZiB0aGVyZSBhcmUgYW55IGNvbmZpZyBkZXBlbmRlbmNpZXMsIHBhcnRpY3VsYXJseSBgQ09ORklHX1g4Nl9QQVRgLiBJJiMzOTtsbCBxdWlja2x5IGxvb2sgaW4gdGhlIGBhcmNoL3g4Ni9tbS9wYXQvTWFrZWZpbGVgIG9yIGBhcmNoL3g4Ni9LY29uZmlnYCB0byBjb25maXJtLCBhcyB0aGlzIHdvdWxkIGNsZWFybHkgaW5mbHVlbmNlIHRoZSBjb250ZXh0IG9mIHRoZSBjaGFuZ2VzLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIwIDEzOjUwPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3NldF9tZW1vcnkubyYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2FyY2gveDg2L21tL3BhdC9NYWtlZmlsZSYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDthcmNoL3g4Ni9tbS9wYXQvTWFrZWZpbGUtMi1cbmFyY2gveDg2L21tL3BhdC9NYWtlZmlsZTozOm9iai15XHRcdFx0XHQ6PSBzZXRfbWVtb3J5Lm8gbWVtdHlwZS5vXG5hcmNoL3g4Ni9tbS9wYXQvTWFrZWZpbGUtNC1cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMCAxMzo1MDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzMjA2CgkJCQkJCQlvdXRwdXQ6IDQ0CgkJCQkJCQl0aG91Z2h0czogMjExCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyBQb3RlbnRpYWwgQXR0YWNrIFN1cmZhY2VzIGluIGFuIHg4NiBLZXJuZWwqKgoKT2theSwgc28gdGhpcyBpcyBidWlsdCB1bmNvbmRpdGlvbmFsbHkgZm9yIHg4Ni4gVGhhdCYjMzk7cyBvdXIgYmFzZWxpbmUuIE5vdywgSSBuZWVkIHRvIGZpZ3VyZSBvdXQgdGhlIHJlYWNoYWJpbGl0eSBvZiB0aGVzZSBwb3RlbnRpYWxseSBwcm9ibGVtYXRpYyBmdW5jdGlvbnMsIGBzcGxpdF9sYXJnZV9wYWdlYCBhbmQgYF9fY3BhX2NvbGxhcHNlX2xhcmdlX3BhZ2VzYC4gQXJlIHRoZXkgb25seSB1c2VkIGludGVybmFsbHksIG9yIGFyZSB0aGV5IGFjY2Vzc2libGUgdGhyb3VnaCBzeXN0ZW0gY2FsbHM/IFRoZSBhbmFseXNpcyBzaG93cyB0aGV5IGFyZSBjYWxsZWQgZnJvbSBmdW5jdGlvbnMgbGlrZSBgY2hhbmdlX3BhZ2VfYXR0cl9zZXRfY2xyYCBhbmQgc2ltaWxhciwgd2hpY2ggaXMgdGhlbiB1c2VkIGJ5IGZ1bmN0aW9ucyBsaWtlIGBzZXRfbWVtb3J5X3JvYCwgYHNldF9tZW1vcnlfcndgLCBgc2V0X21lbW9yeV9ueGAsIGFuZCBgc2V0X21lbW9yeV94YCwgYW5kIHRoZXNlIGFyZSBoZWF2aWx5IHVzZWQgYnkgaW1wb3J0YW50IGtlcm5lbCBmZWF0dXJlcyBsaWtlIEJQRiwgbW9kdWxlIGxvYWRpbmcsIGtwcm9iZXMsIGFuZCBmdHJhY2UuIEJpbmdvISBGdXp6aW5nIEJQRiBvciBtb2R1bGUgbG9hZGluZyBsb29rcyBsaWtlIGl0IGNvdWxkIGRlZmluaXRlbHkgdHJpZ2dlciB0aGlzIGNvZGUgcGF0aC4gVGltZSB0byBmb2N1cyBteSBhdHRlbnRpb24gb24gdGhvc2UgdHdvIGtleSBzeW1ib2xzOiBgX19jcGFfY29sbGFwc2VfbGFyZ2VfcGFnZXNgIGFuZCBgc3BsaXRfbGFyZ2VfcGFnZWAuCgpOZXh0LCBJJiMzOTtsbCBxdWlja2x5IGNoZWNrIGlmIGBzZXRfbWVtb3J5LmNgIGhhcyBhbnkgY29uZGl0aW9uYWwgY29uZmlndXJhdGlvbnMgdGhhdCBtaWdodCBhZmZlY3QgdGhpcy4gTm9wZSwgaXQmIzM5O3MgY29tcGlsZWQgaW4uIE5vIHN1cnByaXNlcyB0aGVyZS4KCkFscmlnaHQsIHRpbWUgdG8gZG91YmxlLWNoZWNrIG15IGZpbmRpbmdzIG9uIGBfX2NwYV9jb2xsYXBzZV9sYXJnZV9wYWdlc2AgYW5kIGBzcGxpdF9sYXJnZV9wYWdlYC4gTGV0JiMzOTtzIGRpZyBkZWVwZXIgaW50byB0aGUgY2FsbCBncmFwaHMgYW5kIHVuZGVyc3RhbmQgcHJlY2lzZWx5IGhvdyB0aGV5JiMzOTtyZSBleHBvc2VkIGFuZCB3aGF0IGtpbmQgb2YgYXJndW1lbnRzIHRoZXkgdGFrZS4gVGhpcyBpcyB3aGVyZSB0aGUgcmVhbCB3b3JrIGJlZ2lucy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMCAxMzo1MDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtfX2NwYV9jb2xsYXBzZV9sYXJnZV9wYWdlcyYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2FyY2gveDg2L21tL3BhdC9zZXRfbWVtb3J5LmMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7YXJjaC94ODYvbW0vcGF0L3NldF9tZW1vcnkuYz00MTI9c3RhdGljIGludCBjb2xsYXBzZV9sYXJnZV9wYWdlcyh1bnNpZ25lZCBsb25nIGFkZHIsIHN0cnVjdCBsaXN0X2hlYWQgKnBndGFibGVzKTtcbmFyY2gveDg2L21tL3BhdC9zZXRfbWVtb3J5LmMtNDEzLVxuYXJjaC94ODYvbW0vcGF0L3NldF9tZW1vcnkuYzo0MTQ6c3RhdGljIHZvaWQgX19jcGFfY29sbGFwc2VfbGFyZ2VfcGFnZXMoc3RydWN0IGNwYV9kYXRhICpjcGEpXG5hcmNoL3g4Ni9tbS9wYXQvc2V0X21lbW9yeS5jLTQxNS17XG4tLVxuYXJjaC94ODYvbW0vcGF0L3NldF9tZW1vcnkuYz00NTA9c3RhdGljIHZvaWQgY3BhX2NvbGxhcHNlX2xhcmdlX3BhZ2VzKHN0cnVjdCBjcGFfZGF0YSAqY3BhKVxuLS1cbmFyY2gveDg2L21tL3BhdC9zZXRfbWVtb3J5LmMtNDU4LVx0c2NvcGVkX2d1YXJkKG1tYXBfd3JpdGVfbG9jaywgXHUwMDI2aW5pdF9tbSlcbmFyY2gveDg2L21tL3BhdC9zZXRfbWVtb3J5LmM6NDU5Olx0XHRfX2NwYV9jb2xsYXBzZV9sYXJnZV9wYWdlcyhjcGEpO1xuYXJjaC94ODYvbW0vcGF0L3NldF9tZW1vcnkuYy00NjAtfVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIwIDEzOjUwPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDQwNTEKCQkJCQkJCW91dHB1dDogMzMKCQkJCQkJCXRob3VnaHRzOiA1NAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCBmcmFtZWQgYXMgbXkgb3duIG1lbnRhbCBwcm9jZXNzaW5nIGFzIGFuIHg4NiBtZW1vcnkgbWFuYWdlbWVudCBleHBlcnQ6CgoqKkNvcmUgeDg2IE1lbW9yeSBNYW5hZ2VtZW50IFJvdXRpbmUgRXhhbWluYXRpb24qKgoKQWxyaWdodCwgSSYjMzk7bSBkaWdnaW5nIGludG8gc29tZSBjb3JlIHg4NiBtZW1vcnkgbWFuYWdlbWVudCBjb2RlLiBJJiMzOTt2ZSBnb3QgbXkgZm9jdXMgbmFycm93ZWQgZG93biB0byBhIGNvdXBsZSBvZiBrZXkgc3ltYm9sczogYF9fY3BhX2NvbGxhcHNlX2xhcmdlX3BhZ2VzYCBhbmQgYHNwbGl0X2xhcmdlX3BhZ2VgLiBUaGVzZSBhcmUgcHJldHR5IGNvbW1vbiBtYXJrZXJzIGZvciBkZWFsaW5nIHdpdGggbGFyZ2UgcGFnZSBtYW5hZ2VtZW50LCBzbyB0aGF0JiMzOTtzIHdoZXJlIG15IGF0dGVudGlvbiBpcy4gU3BlY2lmaWNhbGx5LCBJIGRvbiYjMzk7dCBzZWUgYW55IHNwZWNpYWwgY29uZmlnIG9wdGlvbnMgZmxhZ2dlZCwgc28gdGhpcyBsb29rcyB0byBiZSBzdGFuZGFyZCB4ODYgbWVtb3J5IG1hbmFnZW1lbnQgY29kZS4gTm93LCBsZXQgbWUgcXVpY2tseSBjaGVjayBpZiBgcHRlX2FsbG9jX29uZV9rZXJuZWxgIGlzIGRlZmluZWQgaW4gdGhlIGNvbnRleHQgb2Ygd2hhdCBJJiMzOTttIGxvb2tpbmcgYXQuIEkmIzM5O20gdHJ5aW5nIHRvIGdldCBhIGhhbmRsZSBvbiBob3cgdGhlc2UgbGFyZ2UgcGFnZSBvcGVyYXRpb25zIGFyZSBoYW5kbGluZyBQVEUgKFBhZ2UgVGFibGUgRW50cnkpIGFsbG9jYXRpb24gd2l0aGluIHRoZSBrZXJuZWwgc3BhY2UsIHNvIGZpbmRpbmcgd2hlcmUgdGhhdCYjMzk7cyBkZWZpbmVkLCBvciBub3QsIHdpbGwgYmUgYSBjcml0aWNhbCBuZXh0IHN0ZXAuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjAgMTM6NTA8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7cHRlX2FsbG9jX29uZV9rZXJuZWwmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDthcmNoL3g4Ni8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7YXJjaC94ODYvbW0vcGF0L3NldF9tZW1vcnkuYz0xMjQ5PXN0YXRpYyBpbnQgc3BsaXRfbGFyZ2VfcGFnZShzdHJ1Y3QgY3BhX2RhdGEgKmNwYSwgcHRlX3QgKmtwdGUsXG4tLVxuYXJjaC94ODYvbW0vcGF0L3NldF9tZW1vcnkuYy0xMjU1LVx0XHRzcGluX3VubG9jayhcdTAwMjZjcGFfbG9jayk7XG5hcmNoL3g4Ni9tbS9wYXQvc2V0X21lbW9yeS5jOjEyNTY6XHRwdGUgPSBwdGVfYWxsb2Nfb25lX2tlcm5lbChcdTAwMjZpbml0X21tKTtcbmFyY2gveDg2L21tL3BhdC9zZXRfbWVtb3J5LmMtMTI1Ny1cdGlmICghZGVidWdfcGFnZWFsbG9jX2VuYWJsZWQoKSlcbi0tXG5hcmNoL3g4Ni9tbS9wYXQvc2V0X21lbW9yeS5jPTE1NjM9c3RhdGljIGludCBhbGxvY19wdGVfcGFnZShwbWRfdCAqcG1kKVxuYXJjaC94ODYvbW0vcGF0L3NldF9tZW1vcnkuYy0xNTY0LXtcbmFyY2gveDg2L21tL3BhdC9zZXRfbWVtb3J5LmM6MTU2NTpcdHB0ZV90ICpwdGUgPSBwdGVfYWxsb2Nfb25lX2tlcm5lbChcdTAwMjZpbml0X21tKTtcbmFyY2gveDg2L21tL3BhdC9zZXRfbWVtb3J5LmMtMTU2Ni1cdGlmICghcHRlKVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjkvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIwIDEzOjUwPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDQ2NDMKCQkJCQkJCW91dHB1dDogMTM0CgkJCQkJCQl0aG91Z2h0czogMTk1CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgUGF0Y2g6IEEgU3RhbmRhcmQgRml4IHdpdGggRnV6emluZyBJbXBsaWNhdGlvbnMqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgcGF0Y2gsIGFuZCBpdCYjMzk7cyBhIHByZXR0eSBzdHJhaWdodGZvcndhcmQgZml4LiBUaGV5JiMzOTt2ZSBpZGVudGlmaWVkIGEgc3BvdCB3aGVyZSBgcGFnZXRhYmxlX2FsbG9jYCB3YXMgYmVpbmcgdXNlZCB3aGVuIGBwdGVfYWxsb2Nfb25lX2tlcm5lbGAgc2hvdWxkIGhhdmUgYmVlbi4gSXQmIzM5O3MgYSBmdW5jdGlvbmFsIGNvcnJlY3Rpb24sIG5vdGhpbmcgdG9vIGdyb3VuZGJyZWFraW5nLCBidXQgaW1wb3J0YW50IG5vbmV0aGVsZXNzLiBUaGUgcmlzayBpcyBtaXNzaW5nIGNydWNpYWwgaW5pdGlhbGl6YXRpb25zIC0gYHB0ZGVzY2AgYW5kIHBhZ2UgdGFibGUgbG9jayBpbml0aWFsaXphdGlvbiBhcmUgbWVudGlvbmVkLCBtZWFuaW5nIHRoZSBleGlzdGluZyBjb2RlIHdhcyBwb3RlbnRpYWxseSBvcGVyYXRpbmcgd2l0aCB1bmluaXRpYWxpemVkIHJlc291cmNlcywgd2hpY2ggaXMgYWx3YXlzIHByb2JsZW1hdGljIGluIG1lbW9yeSBtYW5hZ2VtZW50LgoKTm93LCBsZXQmIzM5O3MgY29uc2lkZXIgdGhlIGltcGxpY2F0aW9ucyBmb3IgZnV6emluZy4gVGhpcyBpcyB3aGVyZSBpdCBnZXRzIGludGVyZXN0aW5nLiBJJiMzOTttIGdvaW5nIHRvIHNldCBgV29ydGhGdXp6aW5nYCB0byBgdHJ1ZWAuIEFuZCB0aGUgYEZvY3VzU3ltYm9sc2AgYXJlIHF1aXRlIHRlbGxpbmc6IGBfX2NwYV9jb2xsYXBzZV9sYXJnZV9wYWdlc2AgYW5kIGBzcGxpdF9sYXJnZV9wYWdlYC4gVGhpcyBwYXRjaCBkaXJlY3RseSB0b3VjaGVzIHRoZSBjb3JlIHg4NiBtZW1vcnkgbWFuYWdlbWVudCBjb2RlLCBzcGVjaWZpY2FsbHkgcmVsYXRlZCB0byBDUEEgKENoYW5nZSBQYWdlIEF0dHJpYnV0ZSkgb3BlcmF0aW9ucywgcGFnZSBzcGxpdHRpbmcsIGFuZCBjb2xsYXBzaW5nLiBUaGUgY2hhbmdlIG1ha2VzIHN1cmUgYWxsb2NhdGlvbiBhbmQgZGVhbGxvY2F0aW9uIG9mIHBhZ2UgdGFibGVzIGlzIGRvbmUgY29ycmVjdGx5LCB1c2luZyBgcHRlX2FsbG9jX29uZV9rZXJuZWxgIGFuZCBgcHRlX2ZyZWVfa2VybmVsYCAvIGBwYWdldGFibGVfZHRvcl9mcmVlYC4gU28sIHRoZSBhZmZlY3RlZCBjb2RlIGlzIHJlYWNoZWQgdGhyb3VnaCBmZWF0dXJlcyB0aGF0IG1lc3Mgd2l0aCBtZW1vcnkgcGVybWlzc2lvbnMgLSBCUEYsIG1vZHVsZSBsb2FkaW5nLCBrcHJvYmVzLiBUaGlzIHNvdW5kcyBsaWtlIGFuIGFyZWEgcmlwZSBmb3IgdW5jb3ZlcmluZyBzdWJ0bGUgbWVtb3J5IGNvcnJ1cHRpb24gaXNzdWVzIG9yIHVuZXhwZWN0ZWQgYmVoYXZpb3IuIE5vIHNwZWNpZmljIGNvbmZpZ3VyYXRpb25zIGFyZSByZXF1aXJlZCB0byByZXByb2R1Y2UgaXQgLSBgRW5hYmxlQ29uZmlnc2AgaXMgZW1wdHkuIFRoZSByZWFzb25pbmcgaXMgY2xlYXIsIHRoZSBmaXggY291bGQgZXhwb3NlIGlzc3VlcyByZWxhdGVkIHRvIGhvdyB0aGUga2VybmVsIGhhbmRsZXMgY2hhbmdlcyBpbiBtZW1vcnkgcGVybWlzc2lvbnMgYW5kIGxhcmdlIHBhZ2UgbWFuYWdlbWVudC4gVGhlcmVmb3JlLCBpdCYjMzk7cyB3b3J0aCBhIGNsb3NlIGxvb2sgYW5kIGZ1enppbmcgZWZmb3J0LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMCAxMzo1MDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFtdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7X19jcGFfY29sbGFwc2VfbGFyZ2VfcGFnZXMmIzM0OywKICAgICYjMzQ7c3BsaXRfbGFyZ2VfcGFnZSYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyBjb3JlIHg4NiBtZW1vcnkgbWFuYWdlbWVudCBjb2RlIChDUEEgLSBjaGFuZ2UgcGFnZSBhdHRyaWJ1dGUpIHRvIGNvcnJlY3RseSBhbGxvY2F0ZSBhbmQgZnJlZSBwYWdlIHRhYmxlcyB1c2luZyBgcHRlX2FsbG9jX29uZV9rZXJuZWxgIGFuZCBgcHRlX2ZyZWVfa2VybmVsYCAvIGBwYWdldGFibGVfZHRvcl9mcmVlYC4gVGhpcyBhZmZlY3RzIHBhZ2Ugc3BsaXR0aW5nIGFuZCBjb2xsYXBzaW5nLCB3aGljaCBpcyByZWFjaGFibGUgdmlhIGZlYXR1cmVzIHRoYXQgY2hhbmdlIG1lbW9yeSBwZXJtaXNzaW9ucyAoZS5nLiwgQlBGLCBtb2R1bGUgbG9hZGluZywga3Byb2JlcykuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7X19jcGFfY29sbGFwc2VfbGFyZ2VfcGFnZXMmIzM0OywKICAgICYjMzQ7c3BsaXRfbGFyZ2VfcGFnZSYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyBjb3JlIHg4NiBtZW1vcnkgbWFuYWdlbWVudCBjb2RlIChDUEEgLSBjaGFuZ2UgcGFnZSBhdHRyaWJ1dGUpIHRvIGNvcnJlY3RseSBhbGxvY2F0ZSBhbmQgZnJlZSBwYWdlIHRhYmxlcyB1c2luZyBgcHRlX2FsbG9jX29uZV9rZXJuZWxgIGFuZCBgcHRlX2ZyZWVfa2VybmVsYCAvIGBwYWdldGFibGVfZHRvcl9mcmVlYC4gVGhpcyBhZmZlY3RzIHBhZ2Ugc3BsaXR0aW5nIGFuZCBjb2xsYXBzaW5nLCB3aGljaCBpcyByZWFjaGFibGUgdmlhIGZlYXR1cmVzIHRoYXQgY2hhbmdlIG1lbW9yeSBwZXJtaXNzaW9ucyAoZS5nLiwgQlBGLCBtb2R1bGUgbG9hZGluZywga3Byb2JlcykuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPC90Ym9keT4KCTwvdGFibGU+CgoJPGRpdiBpZD0ibGxtX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5MTE0gQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBUb2tlbnM8L3RoPgoJCQkJCTx0aD5BdmcgVG9rZW5zPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9ImxsbV9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9InRvb2xfc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPlRvb2wgQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0idG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9ImR1cmF0aW9uX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCTxkaXYgaWQ9InRva2VuX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL2pzYXBpIj48L3NjcmlwdD4KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCQlnb29nbGUubG9hZCgidmlzdWFsaXphdGlvbiIsICIxIiwge3BhY2thZ2VzOlsiY29yZWNoYXJ0Il19KTsKCQlnb29nbGUuc2V0T25Mb2FkQ2FsbGJhY2soZHJhd0NoYXJ0cyk7CgoJCWZ1bmN0aW9uIGRyYXdDaGFydHMoKSB7CgkJCWNvbnN0IHJhd0RhdGEgPSBbeyJTdGFydGVkIjoiMjAyNi0wNy0yMFQxMzo1MDoxMy4xMjE0MDAxODlaIiwiU2VxIjowLCJOZXN0aW5nIjowLCJUeXBlIjoiZmxvdyIsIk5hbWUiOiJwYXRjaC10cmlhZ2UiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyMzEzMjIzMjA4MywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJfX2NwYV9jb2xsYXBzZV9sYXJnZV9wYWdlc1wiLFxuICAgIFwic3BsaXRfbGFyZ2VfcGFnZVwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIGNvcmUgeDg2IG1lbW9yeSBtYW5hZ2VtZW50IGNvZGUgKENQQSAtIGNoYW5nZSBwYWdlIGF0dHJpYnV0ZSkgdG8gY29ycmVjdGx5IGFsbG9jYXRlIGFuZCBmcmVlIHBhZ2UgdGFibGVzIHVzaW5nIGBwdGVfYWxsb2Nfb25lX2tlcm5lbGAgYW5kIGBwdGVfZnJlZV9rZXJuZWxgIC8gYHBhZ2V0YWJsZV9kdG9yX2ZyZWVgLiBUaGlzIGFmZmVjdHMgcGFnZSBzcGxpdHRpbmcgYW5kIGNvbGxhcHNpbmcsIHdoaWNoIGlzIHJlYWNoYWJsZSB2aWEgZmVhdHVyZXMgdGhhdCBjaGFuZ2UgbWVtb3J5IHBlcm1pc3Npb25zIChlLmcuLCBCUEYsIG1vZHVsZSBsb2FkaW5nLCBrcHJvYmVzKS5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjBUMTM6NTA6MTMuMTIxNDA2MTU5WiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo2MTMxNDQ0MTYsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIlBhdGNoRGlmZlwiOiBcImNvbW1pdCAyYjI1YzAyY2Q3ZTY4NDIyMTg4MTc4OTAxMmVjZTY2MDRlYmU4ODNiXFxuQXV0aG9yOiBzeXotY2x1c3RlciBcXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cXHUwMDNlXFxuRGF0ZTogICBNb24gSnVsIDIwIDEzOjUwOjExIDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL2FyY2gveDg2L21tL3BhdC9zZXRfbWVtb3J5LmMgYi9hcmNoL3g4Ni9tbS9wYXQvc2V0X21lbW9yeS5jXFxuaW5kZXggMzAxZmI5ZTc3ZDkxYmEuLmE2N2NhMzNiOWRkMTIxIDEwMDY0NFxcbi0tLSBhL2FyY2gveDg2L21tL3BhdC9zZXRfbWVtb3J5LmNcXG4rKysgYi9hcmNoL3g4Ni9tbS9wYXQvc2V0X21lbW9yeS5jXFxuQEAgLTQzOSw3ICs0MzksMTEgQEAgc3RhdGljIHZvaWQgX19jcGFfY29sbGFwc2VfbGFyZ2VfcGFnZXMoc3RydWN0IGNwYV9kYXRhICpjcGEpXFxuIFxcbiBcXHRsaXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmUocHRkZXNjLCB0bXAsIFxcdTAwMjZwZ3RhYmxlcywgcHRfbGlzdCkge1xcbiBcXHRcXHRsaXN0X2RlbChcXHUwMDI2cHRkZXNjLVxcdTAwM2VwdF9saXN0KTtcXG4tXFx0XFx0cGFnZXRhYmxlX2ZyZWUocHRkZXNjKTtcXG4rXFxuK1xcdFxcdGlmIChmb2xpb190ZXN0X3BndGFibGUocHRkZXNjX2ZvbGlvKHB0ZGVzYykpKVxcbitcXHRcXHRcXHRwYWdldGFibGVfZHRvcl9mcmVlKHB0ZGVzYyk7XFxuK1xcdFxcdGVsc2VcXG4rXFx0XFx0XFx0cGFnZXRhYmxlX2ZyZWUocHRkZXNjKTtcXG4gXFx0fVxcbiB9XFxuIFxcbkBAIC0xMTM4LDExICsxMTQyLDEwIEBAIHN0YXRpYyB2b2lkIHNwbGl0X3NldF9wdGUoc3RydWN0IGNwYV9kYXRhICpjcGEsIHB0ZV90ICpwdGUsIHVuc2lnbmVkIGxvbmcgcGZuLFxcbiBcXG4gc3RhdGljIGludFxcbiBfX3NwbGl0X2xhcmdlX3BhZ2Uoc3RydWN0IGNwYV9kYXRhICpjcGEsIHB0ZV90ICprcHRlLCB1bnNpZ25lZCBsb25nIGFkZHJlc3MsXFxuLVxcdFxcdCAgIHN0cnVjdCBwdGRlc2MgKnB0ZGVzYylcXG4rXFx0XFx0ICAgcHRlX3QgKnBiYXNlKVxcbiB7XFxuIFxcdHVuc2lnbmVkIGxvbmcgbHBhZGRyLCBscGluYywgcmVmX3BmbiwgcGZuLCBwZm5pbmMgPSAxO1xcbi1cXHRzdHJ1Y3QgcGFnZSAqYmFzZSA9IHB0ZGVzY19wYWdlKHB0ZGVzYyk7XFxuLVxcdHB0ZV90ICpwYmFzZSA9IChwdGVfdCAqKXBhZ2VfYWRkcmVzcyhiYXNlKTtcXG4rXFx0c3RydWN0IHBhZ2UgKmJhc2UgPSB2aXJ0X3RvX3BhZ2UocGJhc2UpO1xcbiBcXHR1bnNpZ25lZCBpbnQgaSwgbGV2ZWw7XFxuIFxcdHBncHJvdF90IHJlZl9wcm90O1xcbiBcXHRib29sIG54LCBydztcXG5AQCAtMTI0NiwxOCArMTI0OSwxOCBAQCBfX3NwbGl0X2xhcmdlX3BhZ2Uoc3RydWN0IGNwYV9kYXRhICpjcGEsIHB0ZV90ICprcHRlLCB1bnNpZ25lZCBsb25nIGFkZHJlc3MsXFxuIHN0YXRpYyBpbnQgc3BsaXRfbGFyZ2VfcGFnZShzdHJ1Y3QgY3BhX2RhdGEgKmNwYSwgcHRlX3QgKmtwdGUsXFxuIFxcdFxcdFxcdCAgICB1bnNpZ25lZCBsb25nIGFkZHJlc3MpXFxuIHtcXG4tXFx0c3RydWN0IHB0ZGVzYyAqcHRkZXNjO1xcbitcXHRwdGVfdCAqcHRlO1xcbiBcXG4gXFx0aWYgKCFkZWJ1Z19wYWdlYWxsb2NfZW5hYmxlZCgpKVxcbiBcXHRcXHRzcGluX3VubG9jayhcXHUwMDI2Y3BhX2xvY2spO1xcbi1cXHRwdGRlc2MgPSBwYWdldGFibGVfYWxsb2MoR0ZQX0tFUk5FTCwgMCk7XFxuK1xcdHB0ZSA9IHB0ZV9hbGxvY19vbmVfa2VybmVsKFxcdTAwMjZpbml0X21tKTtcXG4gXFx0aWYgKCFkZWJ1Z19wYWdlYWxsb2NfZW5hYmxlZCgpKVxcbiBcXHRcXHRzcGluX2xvY2soXFx1MDAyNmNwYV9sb2NrKTtcXG4tXFx0aWYgKCFwdGRlc2MpXFxuK1xcdGlmICghcHRlKVxcbiBcXHRcXHRyZXR1cm4gLUVOT01FTTtcXG4gXFxuLVxcdGlmIChfX3NwbGl0X2xhcmdlX3BhZ2UoY3BhLCBrcHRlLCBhZGRyZXNzLCBwdGRlc2MpKVxcbi1cXHRcXHRwYWdldGFibGVfZnJlZShwdGRlc2MpO1xcbitcXHRpZiAoX19zcGxpdF9sYXJnZV9wYWdlKGNwYSwga3B0ZSwgYWRkcmVzcywgcHRlKSlcXG4rXFx0XFx0cHRlX2ZyZWVfa2VybmVsKFxcdTAwMjZpbml0X21tLCBwdGUpO1xcbiBcXG4gXFx0cmV0dXJuIDA7XFxuIH1cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjBUMTM6NTA6MTMuNzM1MzM4ODA1WiIsIlNlcSI6MiwiTmVzdGluZyI6MSwiVHlwZSI6ImFnZW50IiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoyMjUxODI4NjIyNiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJfX2NwYV9jb2xsYXBzZV9sYXJnZV9wYWdlc1wiLFxuICAgIFwic3BsaXRfbGFyZ2VfcGFnZVwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIGNvcmUgeDg2IG1lbW9yeSBtYW5hZ2VtZW50IGNvZGUgKENQQSAtIGNoYW5nZSBwYWdlIGF0dHJpYnV0ZSkgdG8gY29ycmVjdGx5IGFsbG9jYXRlIGFuZCBmcmVlIHBhZ2UgdGFibGVzIHVzaW5nIGBwdGVfYWxsb2Nfb25lX2tlcm5lbGAgYW5kIGBwdGVfZnJlZV9rZXJuZWxgIC8gYHBhZ2V0YWJsZV9kdG9yX2ZyZWVgLiBUaGlzIGFmZmVjdHMgcGFnZSBzcGxpdHRpbmcgYW5kIGNvbGxhcHNpbmcsIHdoaWNoIGlzIHJlYWNoYWJsZSB2aWEgZmVhdHVyZXMgdGhhdCBjaGFuZ2UgbWVtb3J5IHBlcm1pc3Npb25zIChlLmcuLCBCUEYsIG1vZHVsZSBsb2FkaW5nLCBrcHJvYmVzKS5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiWW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuXG5Zb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZVxuaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLlxuXG5JTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW5cbnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseVxudXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy5cblxuUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczpcbi0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy5cbi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuXG4tIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy5cbi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLFxuZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLlxuXG5JZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoXG50b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS5cblxuV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086XG4xLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLlxuICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuXG4yLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS5cbiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy5cbiAgIERvIG5vdCBsaXN0IHRvbyBnZW5lcmljIGNvbmZpZ3MgKHdlIGFscmVhZHkgaGF2ZSB0aGVtIGVuYWJsZWQpLiBPbmx5IGxpc3QgdGhvc2UgdGhhdFxuICAgc3BlY2lmaWNhbGx5IGNvdmVyIHRoZSBtb2RpZmllZCBjb2RlLiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3Mgb3V0cHV0IGFycmF5LFxuICAgYW5kIERPIE5PVCBhZGQgYSAnQ09ORklHXycgcHJlZml4IChlLmcuLCByZXR1cm4gXCJORVRfSVBWNFwiIGluc3RlYWQgb2YgXCJDT05GSUdfTkVUX0lQVjRcIikuXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCAyYjI1YzAyY2Q3ZTY4NDIyMTg4MTc4OTAxMmVjZTY2MDRlYmU4ODNiXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIE1vbiBKdWwgMjAgMTM6NTA6MTEgMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9tbS9wYXQvc2V0X21lbW9yeS5jIGIvYXJjaC94ODYvbW0vcGF0L3NldF9tZW1vcnkuY1xuaW5kZXggMzAxZmI5ZTc3ZDkxYmEuLmE2N2NhMzNiOWRkMTIxIDEwMDY0NFxuLS0tIGEvYXJjaC94ODYvbW0vcGF0L3NldF9tZW1vcnkuY1xuKysrIGIvYXJjaC94ODYvbW0vcGF0L3NldF9tZW1vcnkuY1xuQEAgLTQzOSw3ICs0MzksMTEgQEAgc3RhdGljIHZvaWQgX19jcGFfY29sbGFwc2VfbGFyZ2VfcGFnZXMoc3RydWN0IGNwYV9kYXRhICpjcGEpXG4gXG4gXHRsaXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmUocHRkZXNjLCB0bXAsIFx1MDAyNnBndGFibGVzLCBwdF9saXN0KSB7XG4gXHRcdGxpc3RfZGVsKFx1MDAyNnB0ZGVzYy1cdTAwM2VwdF9saXN0KTtcbi1cdFx0cGFnZXRhYmxlX2ZyZWUocHRkZXNjKTtcbitcbitcdFx0aWYgKGZvbGlvX3Rlc3RfcGd0YWJsZShwdGRlc2NfZm9saW8ocHRkZXNjKSkpXG4rXHRcdFx0cGFnZXRhYmxlX2R0b3JfZnJlZShwdGRlc2MpO1xuK1x0XHRlbHNlXG4rXHRcdFx0cGFnZXRhYmxlX2ZyZWUocHRkZXNjKTtcbiBcdH1cbiB9XG4gXG5AQCAtMTEzOCwxMSArMTE0MiwxMCBAQCBzdGF0aWMgdm9pZCBzcGxpdF9zZXRfcHRlKHN0cnVjdCBjcGFfZGF0YSAqY3BhLCBwdGVfdCAqcHRlLCB1bnNpZ25lZCBsb25nIHBmbixcbiBcbiBzdGF0aWMgaW50XG4gX19zcGxpdF9sYXJnZV9wYWdlKHN0cnVjdCBjcGFfZGF0YSAqY3BhLCBwdGVfdCAqa3B0ZSwgdW5zaWduZWQgbG9uZyBhZGRyZXNzLFxuLVx0XHQgICBzdHJ1Y3QgcHRkZXNjICpwdGRlc2MpXG4rXHRcdCAgIHB0ZV90ICpwYmFzZSlcbiB7XG4gXHR1bnNpZ25lZCBsb25nIGxwYWRkciwgbHBpbmMsIHJlZl9wZm4sIHBmbiwgcGZuaW5jID0gMTtcbi1cdHN0cnVjdCBwYWdlICpiYXNlID0gcHRkZXNjX3BhZ2UocHRkZXNjKTtcbi1cdHB0ZV90ICpwYmFzZSA9IChwdGVfdCAqKXBhZ2VfYWRkcmVzcyhiYXNlKTtcbitcdHN0cnVjdCBwYWdlICpiYXNlID0gdmlydF90b19wYWdlKHBiYXNlKTtcbiBcdHVuc2lnbmVkIGludCBpLCBsZXZlbDtcbiBcdHBncHJvdF90IHJlZl9wcm90O1xuIFx0Ym9vbCBueCwgcnc7XG5AQCAtMTI0NiwxOCArMTI0OSwxOCBAQCBfX3NwbGl0X2xhcmdlX3BhZ2Uoc3RydWN0IGNwYV9kYXRhICpjcGEsIHB0ZV90ICprcHRlLCB1bnNpZ25lZCBsb25nIGFkZHJlc3MsXG4gc3RhdGljIGludCBzcGxpdF9sYXJnZV9wYWdlKHN0cnVjdCBjcGFfZGF0YSAqY3BhLCBwdGVfdCAqa3B0ZSxcbiBcdFx0XHQgICAgdW5zaWduZWQgbG9uZyBhZGRyZXNzKVxuIHtcbi1cdHN0cnVjdCBwdGRlc2MgKnB0ZGVzYztcbitcdHB0ZV90ICpwdGU7XG4gXG4gXHRpZiAoIWRlYnVnX3BhZ2VhbGxvY19lbmFibGVkKCkpXG4gXHRcdHNwaW5fdW5sb2NrKFx1MDAyNmNwYV9sb2NrKTtcbi1cdHB0ZGVzYyA9IHBhZ2V0YWJsZV9hbGxvYyhHRlBfS0VSTkVMLCAwKTtcbitcdHB0ZSA9IHB0ZV9hbGxvY19vbmVfa2VybmVsKFx1MDAyNmluaXRfbW0pO1xuIFx0aWYgKCFkZWJ1Z19wYWdlYWxsb2NfZW5hYmxlZCgpKVxuIFx0XHRzcGluX2xvY2soXHUwMDI2Y3BhX2xvY2spO1xuLVx0aWYgKCFwdGRlc2MpXG4rXHRpZiAoIXB0ZSlcbiBcdFx0cmV0dXJuIC1FTk9NRU07XG4gXG4tXHRpZiAoX19zcGxpdF9sYXJnZV9wYWdlKGNwYSwga3B0ZSwgYWRkcmVzcywgcHRkZXNjKSlcbi1cdFx0cGFnZXRhYmxlX2ZyZWUocHRkZXNjKTtcbitcdGlmIChfX3NwbGl0X2xhcmdlX3BhZ2UoY3BhLCBrcHRlLCBhZGRyZXNzLCBwdGUpKVxuK1x0XHRwdGVfZnJlZV9rZXJuZWwoXHUwMDI2aW5pdF9tbSwgcHRlKTtcbiBcbiBcdHJldHVybiAwO1xuIH1cbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIwVDEzOjUwOjEzLjczNTM0MDg4NVoiLCJTZXEiOjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjYwMTI2MzA2MjMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBQYXRjaCB0byBgYXJjaC94ODYvbW0vcGF0L3NldF9tZW1vcnkuY2AqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCBhIHBhdGNoIHRoYXQncyB0b3VjaGluZyBgYXJjaC94ODYvbW0vcGF0L3NldF9tZW1vcnkuY2AuIFJpZ2h0IGF3YXksIHRoaXMgdGVsbHMgbWUgd2UncmUgZGVhbGluZyB3aXRoIGEgY29yZSBjb21wb25lbnQgb2YgeDg2IG1lbW9yeSBtYW5hZ2VtZW50LCBzcGVjaWZpY2FsbHkgY29uY2VybmluZyB0aGUgUGFnZSBBdHRyaWJ1dGUgVGFibGUgKFBBVCkgYW5kIGhvdyB3ZSdyZSBjaGFuZ2luZyBwYWdlIGF0dHJpYnV0ZXMgKENQQSkuIEdpdmVuIGl0cyBsb2NhdGlvbiwgSSBjYW4gYmUgcHJldHR5IHN1cmUgdGhpcyBpcyBmdW5jdGlvbmFsIGNvZGUgYW5kIGlzIGRlZmluaXRlbHkgcmVhY2hhYmxlLlxuXG5UaGUga2V5IGNoYW5nZXMgdGhhdCBzdGFuZCBvdXQgYXJlIHdpdGhpbiB0aHJlZSBmdW5jdGlvbnM6IGBfX2NwYV9jb2xsYXBzZV9sYXJnZV9wYWdlc2AsIGBfX3NwbGl0X2xhcmdlX3BhZ2VgLCBhbmQgYHNwbGl0X2xhcmdlX3BhZ2VgLiBJdCBsb29rcyBsaWtlIHRoZXJlIGFyZSBzb21lIGRpcmVjdCByZXBsYWNlbWVudHMgYW5kIHBhcmFtZXRlciBhZGp1c3RtZW50cy4gU3BlY2lmaWNhbGx5LCBJIHNlZSBgcGFnZXRhYmxlX2FsbG9jYCByZXBsYWNlZCBieSBgcHRlX2FsbG9jX29uZV9rZXJuZWxgIGluIGBzcGxpdF9sYXJnZV9wYWdlYC4gSW4gYF9fY3BhX2NvbGxhcHNlX2xhcmdlX3BhZ2VzYCB0aGUgcGF0Y2ggc3dhcHMgYHBhZ2V0YWJsZV9mcmVlYCB3aXRoIGVpdGhlciBgcGFnZXRhYmxlX2R0b3JfZnJlZWAgb3IgdGhlIG9yaWdpbmFsIGBwYWdldGFibGVfZnJlZWAuIFRoZXJlJ3MgYWxzbyBhIG1vZGlmaWNhdGlvbiB3aGVyZSBgX19zcGxpdF9sYXJnZV9wYWdlYCBub3cgcmVjZWl2ZXMgYSBgcHRlX3QgKnBiYXNlYCBhcmd1bWVudCBpbnN0ZWFkIG9mIGBzdHJ1Y3QgcHRkZXNjICpwdGRlc2NgLlxuXG5JJ2xsIG5lZWQgdG8gZGlnIGludG8gdGhlc2UgZnVuY3Rpb24gY2hhbmdlcy4gSSdsbCBuZWVkIHRvIHRyYWNlIHRoZSBpbXBsaWNhdGlvbnMgb2YgcmVwbGFjaW5nIHRoZXNlIGFsbG9jYXRpb24gYW5kIGRlYWxsb2NhdGlvbiBmdW5jdGlvbnMsIGFuZCB3aGF0IHRoYXQgY2hhbmdlIG9mIGFyZ3VtZW50cyBmb3IgYF9fc3BsaXRfbGFyZ2VfcGFnZWAgbWVhbnMsIGVzcGVjaWFsbHkgaG93IHRoaXMgcGJhc2UgYXJndW1lbnQgcmVsYXRlcyB0byB0aGUgcHRlLlxuXG5CZWZvcmUgSSBnbyBmdXJ0aGVyLCBJIHNob3VsZCBjaGVjayBpZiB0aGVyZSBhcmUgYW55IGNvbmZpZyBkZXBlbmRlbmNpZXMsIHBhcnRpY3VsYXJseSBgQ09ORklHX1g4Nl9QQVRgLiBJJ2xsIHF1aWNrbHkgbG9vayBpbiB0aGUgYGFyY2gveDg2L21tL3BhdC9NYWtlZmlsZWAgb3IgYGFyY2gveDg2L0tjb25maWdgIHRvIGNvbmZpcm0sIGFzIHRoaXMgd291bGQgY2xlYXJseSBpbmZsdWVuY2UgdGhlIGNvbnRleHQgb2YgdGhlIGNoYW5nZXMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjIzOTgsIk91dHB1dFRva2VucyI6MzYsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyOTcsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yMFQxMzo1MDoxOS43NDc5NzQxNDhaIiwiU2VxIjo0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTA0MDA2MzY4LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInNldF9tZW1vcnkub1wiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJhcmNoL3g4Ni9tbS9wYXQvTWFrZWZpbGVcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiYXJjaC94ODYvbW0vcGF0L01ha2VmaWxlLTItXFxuYXJjaC94ODYvbW0vcGF0L01ha2VmaWxlOjM6b2JqLXlcXHRcXHRcXHRcXHQ6PSBzZXRfbWVtb3J5Lm8gbWVtdHlwZS5vXFxuYXJjaC94ODYvbW0vcGF0L01ha2VmaWxlLTQtXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIwVDEzOjUwOjE5Ljg1MTk4NjU2NVoiLCJTZXEiOjUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjU0MTcyMzAzMzYsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIFBvdGVudGlhbCBBdHRhY2sgU3VyZmFjZXMgaW4gYW4geDg2IEtlcm5lbCoqXG5cbk9rYXksIHNvIHRoaXMgaXMgYnVpbHQgdW5jb25kaXRpb25hbGx5IGZvciB4ODYuIFRoYXQncyBvdXIgYmFzZWxpbmUuIE5vdywgSSBuZWVkIHRvIGZpZ3VyZSBvdXQgdGhlIHJlYWNoYWJpbGl0eSBvZiB0aGVzZSBwb3RlbnRpYWxseSBwcm9ibGVtYXRpYyBmdW5jdGlvbnMsIGBzcGxpdF9sYXJnZV9wYWdlYCBhbmQgYF9fY3BhX2NvbGxhcHNlX2xhcmdlX3BhZ2VzYC4gQXJlIHRoZXkgb25seSB1c2VkIGludGVybmFsbHksIG9yIGFyZSB0aGV5IGFjY2Vzc2libGUgdGhyb3VnaCBzeXN0ZW0gY2FsbHM/IFRoZSBhbmFseXNpcyBzaG93cyB0aGV5IGFyZSBjYWxsZWQgZnJvbSBmdW5jdGlvbnMgbGlrZSBgY2hhbmdlX3BhZ2VfYXR0cl9zZXRfY2xyYCBhbmQgc2ltaWxhciwgd2hpY2ggaXMgdGhlbiB1c2VkIGJ5IGZ1bmN0aW9ucyBsaWtlIGBzZXRfbWVtb3J5X3JvYCwgYHNldF9tZW1vcnlfcndgLCBgc2V0X21lbW9yeV9ueGAsIGFuZCBgc2V0X21lbW9yeV94YCwgYW5kIHRoZXNlIGFyZSBoZWF2aWx5IHVzZWQgYnkgaW1wb3J0YW50IGtlcm5lbCBmZWF0dXJlcyBsaWtlIEJQRiwgbW9kdWxlIGxvYWRpbmcsIGtwcm9iZXMsIGFuZCBmdHJhY2UuIEJpbmdvISBGdXp6aW5nIEJQRiBvciBtb2R1bGUgbG9hZGluZyBsb29rcyBsaWtlIGl0IGNvdWxkIGRlZmluaXRlbHkgdHJpZ2dlciB0aGlzIGNvZGUgcGF0aC4gVGltZSB0byBmb2N1cyBteSBhdHRlbnRpb24gb24gdGhvc2UgdHdvIGtleSBzeW1ib2xzOiBgX19jcGFfY29sbGFwc2VfbGFyZ2VfcGFnZXNgIGFuZCBgc3BsaXRfbGFyZ2VfcGFnZWAuXG5cbk5leHQsIEknbGwgcXVpY2tseSBjaGVjayBpZiBgc2V0X21lbW9yeS5jYCBoYXMgYW55IGNvbmRpdGlvbmFsIGNvbmZpZ3VyYXRpb25zIHRoYXQgbWlnaHQgYWZmZWN0IHRoaXMuIE5vcGUsIGl0J3MgY29tcGlsZWQgaW4uIE5vIHN1cnByaXNlcyB0aGVyZS5cblxuQWxyaWdodCwgdGltZSB0byBkb3VibGUtY2hlY2sgbXkgZmluZGluZ3Mgb24gYF9fY3BhX2NvbGxhcHNlX2xhcmdlX3BhZ2VzYCBhbmQgYHNwbGl0X2xhcmdlX3BhZ2VgLiBMZXQncyBkaWcgZGVlcGVyIGludG8gdGhlIGNhbGwgZ3JhcGhzIGFuZCB1bmRlcnN0YW5kIHByZWNpc2VseSBob3cgdGhleSdyZSBleHBvc2VkIGFuZCB3aGF0IGtpbmQgb2YgYXJndW1lbnRzIHRoZXkgdGFrZS4gVGhpcyBpcyB3aGVyZSB0aGUgcmVhbCB3b3JrIGJlZ2lucy5cblxuXG4iLCJJbnB1dFRva2VucyI6MzIwNiwiT3V0cHV0VG9rZW5zIjo0NCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjIxMSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yMFQxMzo1MDoyNS4yNjkyMTkzNDJaIiwiU2VxIjo2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTI3NTE1MTE3LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIl9fY3BhX2NvbGxhcHNlX2xhcmdlX3BhZ2VzXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImFyY2gveDg2L21tL3BhdC9zZXRfbWVtb3J5LmNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiYXJjaC94ODYvbW0vcGF0L3NldF9tZW1vcnkuYz00MTI9c3RhdGljIGludCBjb2xsYXBzZV9sYXJnZV9wYWdlcyh1bnNpZ25lZCBsb25nIGFkZHIsIHN0cnVjdCBsaXN0X2hlYWQgKnBndGFibGVzKTtcXG5hcmNoL3g4Ni9tbS9wYXQvc2V0X21lbW9yeS5jLTQxMy1cXG5hcmNoL3g4Ni9tbS9wYXQvc2V0X21lbW9yeS5jOjQxNDpzdGF0aWMgdm9pZCBfX2NwYV9jb2xsYXBzZV9sYXJnZV9wYWdlcyhzdHJ1Y3QgY3BhX2RhdGEgKmNwYSlcXG5hcmNoL3g4Ni9tbS9wYXQvc2V0X21lbW9yeS5jLTQxNS17XFxuLS1cXG5hcmNoL3g4Ni9tbS9wYXQvc2V0X21lbW9yeS5jPTQ1MD1zdGF0aWMgdm9pZCBjcGFfY29sbGFwc2VfbGFyZ2VfcGFnZXMoc3RydWN0IGNwYV9kYXRhICpjcGEpXFxuLS1cXG5hcmNoL3g4Ni9tbS9wYXQvc2V0X21lbW9yeS5jLTQ1OC1cXHRzY29wZWRfZ3VhcmQobW1hcF93cml0ZV9sb2NrLCBcXHUwMDI2aW5pdF9tbSlcXG5hcmNoL3g4Ni9tbS9wYXQvc2V0X21lbW9yeS5jOjQ1OTpcXHRcXHRfX2NwYV9jb2xsYXBzZV9sYXJnZV9wYWdlcyhjcGEpO1xcbmFyY2gveDg2L21tL3BhdC9zZXRfbWVtb3J5LmMtNDYwLX1cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjBUMTM6NTA6MjUuMzk2NzQxMDE5WiIsIlNlcSI6NywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzQ1ODY5MDEyMSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIGZyYW1lZCBhcyBteSBvd24gbWVudGFsIHByb2Nlc3NpbmcgYXMgYW4geDg2IG1lbW9yeSBtYW5hZ2VtZW50IGV4cGVydDpcblxuKipDb3JlIHg4NiBNZW1vcnkgTWFuYWdlbWVudCBSb3V0aW5lIEV4YW1pbmF0aW9uKipcblxuQWxyaWdodCwgSSdtIGRpZ2dpbmcgaW50byBzb21lIGNvcmUgeDg2IG1lbW9yeSBtYW5hZ2VtZW50IGNvZGUuIEkndmUgZ290IG15IGZvY3VzIG5hcnJvd2VkIGRvd24gdG8gYSBjb3VwbGUgb2Yga2V5IHN5bWJvbHM6IGBfX2NwYV9jb2xsYXBzZV9sYXJnZV9wYWdlc2AgYW5kIGBzcGxpdF9sYXJnZV9wYWdlYC4gVGhlc2UgYXJlIHByZXR0eSBjb21tb24gbWFya2VycyBmb3IgZGVhbGluZyB3aXRoIGxhcmdlIHBhZ2UgbWFuYWdlbWVudCwgc28gdGhhdCdzIHdoZXJlIG15IGF0dGVudGlvbiBpcy4gU3BlY2lmaWNhbGx5LCBJIGRvbid0IHNlZSBhbnkgc3BlY2lhbCBjb25maWcgb3B0aW9ucyBmbGFnZ2VkLCBzbyB0aGlzIGxvb2tzIHRvIGJlIHN0YW5kYXJkIHg4NiBtZW1vcnkgbWFuYWdlbWVudCBjb2RlLiBOb3csIGxldCBtZSBxdWlja2x5IGNoZWNrIGlmIGBwdGVfYWxsb2Nfb25lX2tlcm5lbGAgaXMgZGVmaW5lZCBpbiB0aGUgY29udGV4dCBvZiB3aGF0IEknbSBsb29raW5nIGF0LiBJJ20gdHJ5aW5nIHRvIGdldCBhIGhhbmRsZSBvbiBob3cgdGhlc2UgbGFyZ2UgcGFnZSBvcGVyYXRpb25zIGFyZSBoYW5kbGluZyBQVEUgKFBhZ2UgVGFibGUgRW50cnkpIGFsbG9jYXRpb24gd2l0aGluIHRoZSBrZXJuZWwgc3BhY2UsIHNvIGZpbmRpbmcgd2hlcmUgdGhhdCdzIGRlZmluZWQsIG9yIG5vdCwgd2lsbCBiZSBhIGNyaXRpY2FsIG5leHQgc3RlcC5cblxuXG4iLCJJbnB1dFRva2VucyI6NDA1MSwiT3V0cHV0VG9rZW5zIjozMywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjU0LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIwVDEzOjUwOjI4Ljg1NTQzMjczWiIsIlNlcSI6OCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE3OTI5NjYyNiwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJwdGVfYWxsb2Nfb25lX2tlcm5lbFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJhcmNoL3g4Ni9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiYXJjaC94ODYvbW0vcGF0L3NldF9tZW1vcnkuYz0xMjQ5PXN0YXRpYyBpbnQgc3BsaXRfbGFyZ2VfcGFnZShzdHJ1Y3QgY3BhX2RhdGEgKmNwYSwgcHRlX3QgKmtwdGUsXFxuLS1cXG5hcmNoL3g4Ni9tbS9wYXQvc2V0X21lbW9yeS5jLTEyNTUtXFx0XFx0c3Bpbl91bmxvY2soXFx1MDAyNmNwYV9sb2NrKTtcXG5hcmNoL3g4Ni9tbS9wYXQvc2V0X21lbW9yeS5jOjEyNTY6XFx0cHRlID0gcHRlX2FsbG9jX29uZV9rZXJuZWwoXFx1MDAyNmluaXRfbW0pO1xcbmFyY2gveDg2L21tL3BhdC9zZXRfbWVtb3J5LmMtMTI1Ny1cXHRpZiAoIWRlYnVnX3BhZ2VhbGxvY19lbmFibGVkKCkpXFxuLS1cXG5hcmNoL3g4Ni9tbS9wYXQvc2V0X21lbW9yeS5jPTE1NjM9c3RhdGljIGludCBhbGxvY19wdGVfcGFnZShwbWRfdCAqcG1kKVxcbmFyY2gveDg2L21tL3BhdC9zZXRfbWVtb3J5LmMtMTU2NC17XFxuYXJjaC94ODYvbW0vcGF0L3NldF9tZW1vcnkuYzoxNTY1OlxcdHB0ZV90ICpwdGUgPSBwdGVfYWxsb2Nfb25lX2tlcm5lbChcXHUwMDI2aW5pdF9tbSk7XFxuYXJjaC94ODYvbW0vcGF0L3NldF9tZW1vcnkuYy0xNTY2LVxcdGlmICghcHRlKVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yMFQxMzo1MDoyOS4wMzQ3MzQ0OTZaIiwiU2VxIjo5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo3MjE4ODYyMTI2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgUGF0Y2g6IEEgU3RhbmRhcmQgRml4IHdpdGggRnV6emluZyBJbXBsaWNhdGlvbnMqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIHBhdGNoLCBhbmQgaXQncyBhIHByZXR0eSBzdHJhaWdodGZvcndhcmQgZml4LiBUaGV5J3ZlIGlkZW50aWZpZWQgYSBzcG90IHdoZXJlIGBwYWdldGFibGVfYWxsb2NgIHdhcyBiZWluZyB1c2VkIHdoZW4gYHB0ZV9hbGxvY19vbmVfa2VybmVsYCBzaG91bGQgaGF2ZSBiZWVuLiBJdCdzIGEgZnVuY3Rpb25hbCBjb3JyZWN0aW9uLCBub3RoaW5nIHRvbyBncm91bmRicmVha2luZywgYnV0IGltcG9ydGFudCBub25ldGhlbGVzcy4gVGhlIHJpc2sgaXMgbWlzc2luZyBjcnVjaWFsIGluaXRpYWxpemF0aW9ucyAtIGBwdGRlc2NgIGFuZCBwYWdlIHRhYmxlIGxvY2sgaW5pdGlhbGl6YXRpb24gYXJlIG1lbnRpb25lZCwgbWVhbmluZyB0aGUgZXhpc3RpbmcgY29kZSB3YXMgcG90ZW50aWFsbHkgb3BlcmF0aW5nIHdpdGggdW5pbml0aWFsaXplZCByZXNvdXJjZXMsIHdoaWNoIGlzIGFsd2F5cyBwcm9ibGVtYXRpYyBpbiBtZW1vcnkgbWFuYWdlbWVudC5cblxuTm93LCBsZXQncyBjb25zaWRlciB0aGUgaW1wbGljYXRpb25zIGZvciBmdXp6aW5nLiBUaGlzIGlzIHdoZXJlIGl0IGdldHMgaW50ZXJlc3RpbmcuIEknbSBnb2luZyB0byBzZXQgYFdvcnRoRnV6emluZ2AgdG8gYHRydWVgLiBBbmQgdGhlIGBGb2N1c1N5bWJvbHNgIGFyZSBxdWl0ZSB0ZWxsaW5nOiBgX19jcGFfY29sbGFwc2VfbGFyZ2VfcGFnZXNgIGFuZCBgc3BsaXRfbGFyZ2VfcGFnZWAuIFRoaXMgcGF0Y2ggZGlyZWN0bHkgdG91Y2hlcyB0aGUgY29yZSB4ODYgbWVtb3J5IG1hbmFnZW1lbnQgY29kZSwgc3BlY2lmaWNhbGx5IHJlbGF0ZWQgdG8gQ1BBIChDaGFuZ2UgUGFnZSBBdHRyaWJ1dGUpIG9wZXJhdGlvbnMsIHBhZ2Ugc3BsaXR0aW5nLCBhbmQgY29sbGFwc2luZy4gVGhlIGNoYW5nZSBtYWtlcyBzdXJlIGFsbG9jYXRpb24gYW5kIGRlYWxsb2NhdGlvbiBvZiBwYWdlIHRhYmxlcyBpcyBkb25lIGNvcnJlY3RseSwgdXNpbmcgYHB0ZV9hbGxvY19vbmVfa2VybmVsYCBhbmQgYHB0ZV9mcmVlX2tlcm5lbGAgLyBgcGFnZXRhYmxlX2R0b3JfZnJlZWAuIFNvLCB0aGUgYWZmZWN0ZWQgY29kZSBpcyByZWFjaGVkIHRocm91Z2ggZmVhdHVyZXMgdGhhdCBtZXNzIHdpdGggbWVtb3J5IHBlcm1pc3Npb25zIC0gQlBGLCBtb2R1bGUgbG9hZGluZywga3Byb2Jlcy4gVGhpcyBzb3VuZHMgbGlrZSBhbiBhcmVhIHJpcGUgZm9yIHVuY292ZXJpbmcgc3VidGxlIG1lbW9yeSBjb3JydXB0aW9uIGlzc3VlcyBvciB1bmV4cGVjdGVkIGJlaGF2aW9yLiBObyBzcGVjaWZpYyBjb25maWd1cmF0aW9ucyBhcmUgcmVxdWlyZWQgdG8gcmVwcm9kdWNlIGl0IC0gYEVuYWJsZUNvbmZpZ3NgIGlzIGVtcHR5LiBUaGUgcmVhc29uaW5nIGlzIGNsZWFyLCB0aGUgZml4IGNvdWxkIGV4cG9zZSBpc3N1ZXMgcmVsYXRlZCB0byBob3cgdGhlIGtlcm5lbCBoYW5kbGVzIGNoYW5nZXMgaW4gbWVtb3J5IHBlcm1pc3Npb25zIGFuZCBsYXJnZSBwYWdlIG1hbmFnZW1lbnQuIFRoZXJlZm9yZSwgaXQncyB3b3J0aCBhIGNsb3NlIGxvb2sgYW5kIGZ1enppbmcgZWZmb3J0LlxuXG5cbiIsIklucHV0VG9rZW5zIjo0NjQzLCJPdXRwdXRUb2tlbnMiOjEzNCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE5NSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yMFQxMzo1MDozNi4yNTM1OTg2ODJaIiwiU2VxIjoxMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyMzgyMCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW10sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcIl9fY3BhX2NvbGxhcHNlX2xhcmdlX3BhZ2VzXCIsXG4gICAgXCJzcGxpdF9sYXJnZV9wYWdlXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgY29yZSB4ODYgbWVtb3J5IG1hbmFnZW1lbnQgY29kZSAoQ1BBIC0gY2hhbmdlIHBhZ2UgYXR0cmlidXRlKSB0byBjb3JyZWN0bHkgYWxsb2NhdGUgYW5kIGZyZWUgcGFnZSB0YWJsZXMgdXNpbmcgYHB0ZV9hbGxvY19vbmVfa2VybmVsYCBhbmQgYHB0ZV9mcmVlX2tlcm5lbGAgLyBgcGFnZXRhYmxlX2R0b3JfZnJlZWAuIFRoaXMgYWZmZWN0cyBwYWdlIHNwbGl0dGluZyBhbmQgY29sbGFwc2luZywgd2hpY2ggaXMgcmVhY2hhYmxlIHZpYSBmZWF0dXJlcyB0aGF0IGNoYW5nZSBtZW1vcnkgcGVybWlzc2lvbnMgKGUuZy4sIEJQRiwgbW9kdWxlIGxvYWRpbmcsIGtwcm9iZXMpLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcIl9fY3BhX2NvbGxhcHNlX2xhcmdlX3BhZ2VzXCIsXG4gICAgXCJzcGxpdF9sYXJnZV9wYWdlXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgY29yZSB4ODYgbWVtb3J5IG1hbmFnZW1lbnQgY29kZSAoQ1BBIC0gY2hhbmdlIHBhZ2UgYXR0cmlidXRlKSB0byBjb3JyZWN0bHkgYWxsb2NhdGUgYW5kIGZyZWUgcGFnZSB0YWJsZXMgdXNpbmcgYHB0ZV9hbGxvY19vbmVfa2VybmVsYCBhbmQgYHB0ZV9mcmVlX2tlcm5lbGAgLyBgcGFnZXRhYmxlX2R0b3JfZnJlZWAuIFRoaXMgYWZmZWN0cyBwYWdlIHNwbGl0dGluZyBhbmQgY29sbGFwc2luZywgd2hpY2ggaXMgcmVhY2hhYmxlIHZpYSBmZWF0dXJlcyB0aGF0IGNoYW5nZSBtZW1vcnkgcGVybWlzc2lvbnMgKGUuZy4sIEJQRiwgbW9kdWxlIGxvYWRpbmcsIGtwcm9iZXMpLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH1dOwoJCQlpZiAoIXJhd0RhdGEgfHwgcmF3RGF0YS5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpOwoJCQlkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKTsKCQkJZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpIHsKCQkJY29uc3Qgc3RhdHMgPSB7CgkJCQlsbG06IHsgY291bnQ6IDAsIHRva2VuczogMCwgZHVyYXRpb246IDAgfSwKCQkJCXRvb2w6IHsgY291bnQ6IDAsIGR1cmF0aW9uOiAwIH0KCQkJfTsKCgkJCXJhd0RhdGEuZm9yRWFjaChzID0+IHsKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOyAKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iKSB7CgkJCQkJc3RhdHMubGxtLmNvdW50Kys7CgkJCQkJc3RhdHMubGxtLnRva2VucyArPSAocy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2Vucyk7CgkJCQkJc3RhdHMubGxtLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0gZWxzZSBpZiAocy5UeXBlID09PSAidG9vbCIpIHsKCQkJCQlzdGF0cy50b29sLmNvdW50Kys7CgkJCQkJc3RhdHMudG9vbC5kdXJhdGlvbiArPSBkdXI7CgkJCQl9CgkJCX0pOwoKCQkJY29uc3QgYXZnTGxtRHVyID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0uZHVyYXRpb24gLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdMbG1Ub2tlbiA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLnRva2VucyAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z1Rvb2xEdXIgPSBzdGF0cy50b29sLmNvdW50ID4gMCA/IChzdGF0cy50b29sLmR1cmF0aW9uIC8gc3RhdHMudG9vbC5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgoJCQljb25zdCBsbG1TdW1hcnlDZWxscyA9IFtzdGF0cy5sbG0uY291bnQsIHN0YXRzLmxsbS50b2tlbnMsIGF2Z0xsbVRva2VuLCBzdGF0cy5sbG0uZHVyYXRpb24sIGF2Z0xsbUR1cl07CgkJCWNvbnN0IHRvb2xTdW1tYXJ5Q2VsbHMgPSBbc3RhdHMudG9vbC5jb3VudCwgc3RhdHMudG9vbC5kdXJhdGlvbiwgYXZnVG9vbER1cl07CgoJCQljb25zdCBsbG1TdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsbG1fc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCWxsbVN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCBsbG1UciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCWxsbVN1bWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQlsbG1Uci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQlsbG1TdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZChsbG1Ucik7CgoJCQljb25zdCB0b29sU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJdG9vbFN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCB0b29sVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQl0b29sU3VtbWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQl0b29sVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJdG9vbFN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKHRvb2xUcik7CgkJfQoKCQlmdW5jdGlvbiBkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGZpbHRlcmVkU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IFsibGxtIiwgInRvb2wiXS5pbmNsdWRlcyhkLlR5cGUpKTsKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnRHVyYXRpb24nKTsKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsgCgoJCQlmaWx0ZXJlZFN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQkKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOwoJCQkJbGV0IHRvb2x0aXAgPSBzLk5hbWU7CgkJCQlpZiAocy5UeXBlID09PSAibGxtIiAmJiBzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgkJCQlkYXRhLmFkZFJvdyhbYCR7cy5TZXF9YCwgZHVyLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVGltZSBDb25zdW1wdGlvbiBvZiBMTE0vVG9vbCBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNL1Rvb2wgU3RlcHMnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnU2Vjb25kcycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZHVyYXRpb25fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGxsbVN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBkLlR5cGUgPT09ICJsbG0iKTsKCQkJaWYgKGxsbVN0ZXBzLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnVG9rZW5zJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3N0eWxlJ30pOwkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsJCgoJCQljb25zdCBhZ2VudENvbG9ycyA9IHt9OwoJCQljb25zdCBwYWxldHRlID0gWycjNDI4NUY0JywgJyNEQjQ0MzcnLCAnI0Y0QjQwMCcsICcjMEY5RDU4JywgJyNBQjQ3QkMnLCAnIzAwQUNDMSddOwoJCQlsZXQgY29sb3JJZHggPSAwOwoJCQljb25zdCBhZ2VudExMTUNvdW50cyA9IHt9OwoJCQlsbG1TdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJaWYgKCFhZ2VudENvbG9yc1tzLk5hbWVdKSB7CgkJCQkJYWdlbnRDb2xvcnNbcy5OYW1lXSA9IHBhbGV0dGVbY29sb3JJZHggJSBwYWxldHRlLmxlbmd0aF07CgkJCQkJY29sb3JJZHgrKzsKCQkJCX0KCgkJCQlhZ2VudExMTUNvdW50c1tzLk5hbWVdID0gKGFnZW50TExNQ291bnRzW3MuTmFtZV0gfHwgMCkgKyAxOwoJCQkJY29uc3QgbGFiZWwgPSBgJHtzLk5hbWV9LSR7YWdlbnRMTE1Db3VudHNbcy5OYW1lXX1gOwoJCQkJY29uc3QgdG90YWxUb2tlbnMgPSBzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zOwoJCQkJY29uc3Qgc3R5bGUgPSBgY29sb3I6ICR7YWdlbnRDb2xvcnNbcy5OYW1lXX1gOwoJCQkJbGV0IHRvb2x0aXAgPSBgVG90YWwgVG9rZW5zOiAke3RvdGFsVG9rZW5zfVxuKEluOiAke3MuSW5wdXRUb2tlbnN9LCBPdXQ6ICR7cy5PdXRwdXRUb2tlbnN9LCBUaG91Z2h0czogJHtzLk91dHB1dFRob3VnaHRzVG9rZW5zfSlgOwoJCQkJaWYgKHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCgkJCQlkYXRhLmFkZFJvdyhbbGFiZWwsIHRvdGFsVG9rZW5zLCBzdHlsZSwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1Rva2VuIENvbnN1bXB0aW9uIGJ5IExMTSBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNIENhbGwgU2VxdWVuY2UnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnQ29uc3VtZWQgVG9rZW5zJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b2tlbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoJCWxldCBhbGxFeHBhbmRlZCA9IGZhbHNlOwoJCWZ1bmN0aW9uIHRvZ2dsZUFsbERldGFpbHMoKSB7CgkJCWFsbEV4cGFuZGVkID0gIWFsbEV4cGFuZGVkOwoJCQlkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdkZXRhaWxzJykuZm9yRWFjaChkID0+IHsKCQkJCWlmIChhbGxFeHBhbmRlZCkgZC5zZXRBdHRyaWJ1dGUoJ29wZW4nLCAnJyk7CgkJCQllbHNlIGQucmVtb3ZlQXR0cmlidXRlKCdvcGVuJyk7CgkJCX0pOwoJCX0KCTwvc2NyaXB0PgoKCjwvYm9keT4KPC9odG1sPgo=" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowxdbb7[1] Phase: Succeeded StartedAt: 2026-07-20 13:50:47 +0000 UTC FinishedAt: 2026-07-20 13:50:47 +0000 UTC Input: nil Output: nil --------- Name: series-workflowxdbb7[1].abort-on-skip-outcome Phase: Skipped StartedAt: 2026-07-20 13:50:47 +0000 UTC FinishedAt: 2026-07-20 13:50:47 +0000 UTC Input: nil Output: nil --------- Name: series-workflowxdbb7[2] Phase: Succeeded StartedAt: 2026-07-20 13:50:47 +0000 UTC FinishedAt: 2026-07-20 17:54:50 +0000 UTC Input: nil Output: nil --------- Name: series-workflowxdbb7[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"890f8c4e827c918dac668a12eaf63180ba8a9e6d","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["__cpa_collapse_large_pages","split_large_page"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"890f8c4e827c918dac668a12eaf63180ba8a9e6d","config_name":"upstream-apparmor-kasan.config","series_id":"219e843a-a07e-4f7b-b28f-5d176780782c","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN) Phase: Succeeded StartedAt: 2026-07-20 13:50:47 +0000 UTC FinishedAt: 2026-07-20 17:54:50 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:element,Default:nil,Value:*{"base":{"arch":"amd64","commit_hash":"890f8c4e827c918dac668a12eaf63180ba8a9e6d","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},"fuzz":{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["__cpa_collapse_large_pages","split_large_page"],"skip_cover_check":true},"patched":{"arch":"amd64","commit_hash":"890f8c4e827c918dac668a12eaf63180ba8a9e6d","config_name":"upstream-apparmor-kasan.config","series_id":"219e843a-a07e-4f7b-b28f-5d176780782c","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},"retest":null,"track":"KASAN"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: nil --------- Name: series-workflowxdbb7[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"890f8c4e827c918dac668a12eaf63180ba8a9e6d","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["__cpa_collapse_large_pages","split_large_page"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"890f8c4e827c918dac668a12eaf63180ba8a9e6d","config_name":"upstream-apparmor-kasan.config","series_id":"219e843a-a07e-4f7b-b28f-5d176780782c","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[0] Phase: Succeeded StartedAt: 2026-07-20 13:50:47 +0000 UTC FinishedAt: 2026-07-20 13:51:09 +0000 UTC Input: nil Output: nil --------- Name: series-workflowxdbb7[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"890f8c4e827c918dac668a12eaf63180ba8a9e6d","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["__cpa_collapse_large_pages","split_large_page"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"890f8c4e827c918dac668a12eaf63180ba8a9e6d","config_name":"upstream-apparmor-kasan.config","series_id":"219e843a-a07e-4f7b-b28f-5d176780782c","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[0].save-base-req Phase: Succeeded StartedAt: 2026-07-20 13:50:47 +0000 UTC FinishedAt: 2026-07-20 13:50:56 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"890f8c4e827c918dac668a12eaf63180ba8a9e6d","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.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-workflowxdbb7/series-workflowxdbb7-convert-artifact-4167340396/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowxdbb7[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"890f8c4e827c918dac668a12eaf63180ba8a9e6d","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["__cpa_collapse_large_pages","split_large_page"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"890f8c4e827c918dac668a12eaf63180ba8a9e6d","config_name":"upstream-apparmor-kasan.config","series_id":"219e843a-a07e-4f7b-b28f-5d176780782c","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[1] Phase: Succeeded StartedAt: 2026-07-20 13:51:09 +0000 UTC FinishedAt: 2026-07-20 14:20:21 +0000 UTC Input: nil Output: nil --------- Name: series-workflowxdbb7[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"890f8c4e827c918dac668a12eaf63180ba8a9e6d","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["__cpa_collapse_large_pages","split_large_page"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"890f8c4e827c918dac668a12eaf63180ba8a9e6d","config_name":"upstream-apparmor-kasan.config","series_id":"219e843a-a07e-4f7b-b28f-5d176780782c","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[1].base-build Phase: Succeeded StartedAt: 2026-07-20 13:51:09 +0000 UTC FinishedAt: 2026-07-20 14:20:21 +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:*c2efbd9d-1612-4d2c-8e2c-99c5069192c7,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-workflowxdbb7/series-workflowxdbb7-convert-artifact-4167340396/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": "ed104656-fc8e-4c30-908b-f4894b0a909c", "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-workflowxdbb7/series-workflowxdbb7-build-action-3363961754/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowxdbb7[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"890f8c4e827c918dac668a12eaf63180ba8a9e6d","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["__cpa_collapse_large_pages","split_large_page"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"890f8c4e827c918dac668a12eaf63180ba8a9e6d","config_name":"upstream-apparmor-kasan.config","series_id":"219e843a-a07e-4f7b-b28f-5d176780782c","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[1].base-build(0) Phase: Succeeded StartedAt: 2026-07-20 13:51:09 +0000 UTC FinishedAt: 2026-07-20 14:20:11 +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:*c2efbd9d-1612-4d2c-8e2c-99c5069192c7,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-workflowxdbb7/series-workflowxdbb7-convert-artifact-4167340396/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": "ed104656-fc8e-4c30-908b-f4894b0a909c", "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-workflowxdbb7/series-workflowxdbb7-build-action-3363961754/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowxdbb7[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"890f8c4e827c918dac668a12eaf63180ba8a9e6d","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["__cpa_collapse_large_pages","split_large_page"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"890f8c4e827c918dac668a12eaf63180ba8a9e6d","config_name":"upstream-apparmor-kasan.config","series_id":"219e843a-a07e-4f7b-b28f-5d176780782c","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[2] Phase: Succeeded StartedAt: 2026-07-20 14:20:21 +0000 UTC FinishedAt: 2026-07-20 14:20:21 +0000 UTC Input: nil Output: nil --------- Name: series-workflowxdbb7[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"890f8c4e827c918dac668a12eaf63180ba8a9e6d","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["__cpa_collapse_large_pages","split_large_page"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"890f8c4e827c918dac668a12eaf63180ba8a9e6d","config_name":"upstream-apparmor-kasan.config","series_id":"219e843a-a07e-4f7b-b28f-5d176780782c","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[2].abort-if-base-build-failed Phase: Skipped StartedAt: 2026-07-20 14:20:21 +0000 UTC FinishedAt: 2026-07-20 14:20:21 +0000 UTC Input: nil Output: nil --------- Name: series-workflowxdbb7[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"890f8c4e827c918dac668a12eaf63180ba8a9e6d","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["__cpa_collapse_large_pages","split_large_page"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"890f8c4e827c918dac668a12eaf63180ba8a9e6d","config_name":"upstream-apparmor-kasan.config","series_id":"219e843a-a07e-4f7b-b28f-5d176780782c","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[3] Phase: Succeeded StartedAt: 2026-07-20 14:20:21 +0000 UTC FinishedAt: 2026-07-20 14:20:32 +0000 UTC Input: nil Output: nil --------- Name: series-workflowxdbb7[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"890f8c4e827c918dac668a12eaf63180ba8a9e6d","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["__cpa_collapse_large_pages","split_large_page"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"890f8c4e827c918dac668a12eaf63180ba8a9e6d","config_name":"upstream-apparmor-kasan.config","series_id":"219e843a-a07e-4f7b-b28f-5d176780782c","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[3].save-patched-req Phase: Succeeded StartedAt: 2026-07-20 14:20:21 +0000 UTC FinishedAt: 2026-07-20 14:20:29 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"890f8c4e827c918dac668a12eaf63180ba8a9e6d","config_name":"upstream-apparmor-kasan.config","series_id":"219e843a-a07e-4f7b-b28f-5d176780782c","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.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-workflowxdbb7/series-workflowxdbb7-convert-artifact-2740816427/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowxdbb7[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"890f8c4e827c918dac668a12eaf63180ba8a9e6d","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["__cpa_collapse_large_pages","split_large_page"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"890f8c4e827c918dac668a12eaf63180ba8a9e6d","config_name":"upstream-apparmor-kasan.config","series_id":"219e843a-a07e-4f7b-b28f-5d176780782c","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[4] Phase: Succeeded StartedAt: 2026-07-20 14:20:32 +0000 UTC FinishedAt: 2026-07-20 14:22:51 +0000 UTC Input: nil Output: nil --------- Name: series-workflowxdbb7[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"890f8c4e827c918dac668a12eaf63180ba8a9e6d","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["__cpa_collapse_large_pages","split_large_page"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"890f8c4e827c918dac668a12eaf63180ba8a9e6d","config_name":"upstream-apparmor-kasan.config","series_id":"219e843a-a07e-4f7b-b28f-5d176780782c","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[4].boot-test-base Phase: Succeeded StartedAt: 2026-07-20 14:20:32 +0000 UTC FinishedAt: 2026-07-20 14:22:41 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*ed104656-fc8e-4c30-908b-f4894b0a909c,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-workflowxdbb7/series-workflowxdbb7-build-action-3363961754/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-workflowxdbb7[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"890f8c4e827c918dac668a12eaf63180ba8a9e6d","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["__cpa_collapse_large_pages","split_large_page"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"890f8c4e827c918dac668a12eaf63180ba8a9e6d","config_name":"upstream-apparmor-kasan.config","series_id":"219e843a-a07e-4f7b-b28f-5d176780782c","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[5] Phase: Succeeded StartedAt: 2026-07-20 14:22:51 +0000 UTC FinishedAt: 2026-07-20 14:22:51 +0000 UTC Input: nil Output: nil --------- Name: series-workflowxdbb7[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"890f8c4e827c918dac668a12eaf63180ba8a9e6d","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["__cpa_collapse_large_pages","split_large_page"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"890f8c4e827c918dac668a12eaf63180ba8a9e6d","config_name":"upstream-apparmor-kasan.config","series_id":"219e843a-a07e-4f7b-b28f-5d176780782c","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[5].abort-if-base-boot-failed Phase: Skipped StartedAt: 2026-07-20 14:22:51 +0000 UTC FinishedAt: 2026-07-20 14:22:51 +0000 UTC Input: nil Output: nil --------- Name: series-workflowxdbb7[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"890f8c4e827c918dac668a12eaf63180ba8a9e6d","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["__cpa_collapse_large_pages","split_large_page"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"890f8c4e827c918dac668a12eaf63180ba8a9e6d","config_name":"upstream-apparmor-kasan.config","series_id":"219e843a-a07e-4f7b-b28f-5d176780782c","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[6] Phase: Succeeded StartedAt: 2026-07-20 14:22:51 +0000 UTC FinishedAt: 2026-07-20 14:49:22 +0000 UTC Input: nil Output: nil --------- Name: series-workflowxdbb7[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"890f8c4e827c918dac668a12eaf63180ba8a9e6d","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["__cpa_collapse_large_pages","split_large_page"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"890f8c4e827c918dac668a12eaf63180ba8a9e6d","config_name":"upstream-apparmor-kasan.config","series_id":"219e843a-a07e-4f7b-b28f-5d176780782c","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[6].patched-build Phase: Succeeded StartedAt: 2026-07-20 14:22:51 +0000 UTC FinishedAt: 2026-07-20 14:49: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:*c2efbd9d-1612-4d2c-8e2c-99c5069192c7,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-workflowxdbb7/series-workflowxdbb7-convert-artifact-2740816427/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": "ce1e4694-a8bd-4393-b5f3-9f5ab5255c11", "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-workflowxdbb7/series-workflowxdbb7-build-action-3293002319/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowxdbb7[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"890f8c4e827c918dac668a12eaf63180ba8a9e6d","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["__cpa_collapse_large_pages","split_large_page"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"890f8c4e827c918dac668a12eaf63180ba8a9e6d","config_name":"upstream-apparmor-kasan.config","series_id":"219e843a-a07e-4f7b-b28f-5d176780782c","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[6].patched-build(0) Phase: Succeeded StartedAt: 2026-07-20 14:22:51 +0000 UTC FinishedAt: 2026-07-20 14:49: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:*c2efbd9d-1612-4d2c-8e2c-99c5069192c7,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-workflowxdbb7/series-workflowxdbb7-convert-artifact-2740816427/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": "ce1e4694-a8bd-4393-b5f3-9f5ab5255c11", "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-workflowxdbb7/series-workflowxdbb7-build-action-3293002319/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowxdbb7[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"890f8c4e827c918dac668a12eaf63180ba8a9e6d","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["__cpa_collapse_large_pages","split_large_page"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"890f8c4e827c918dac668a12eaf63180ba8a9e6d","config_name":"upstream-apparmor-kasan.config","series_id":"219e843a-a07e-4f7b-b28f-5d176780782c","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[7] Phase: Succeeded StartedAt: 2026-07-20 14:49:22 +0000 UTC FinishedAt: 2026-07-20 14:49:22 +0000 UTC Input: nil Output: nil --------- Name: series-workflowxdbb7[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"890f8c4e827c918dac668a12eaf63180ba8a9e6d","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["__cpa_collapse_large_pages","split_large_page"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"890f8c4e827c918dac668a12eaf63180ba8a9e6d","config_name":"upstream-apparmor-kasan.config","series_id":"219e843a-a07e-4f7b-b28f-5d176780782c","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[7].abort-if-patched-build-failed Phase: Skipped StartedAt: 2026-07-20 14:49:22 +0000 UTC FinishedAt: 2026-07-20 14:49:22 +0000 UTC Input: nil Output: nil --------- Name: series-workflowxdbb7[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"890f8c4e827c918dac668a12eaf63180ba8a9e6d","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["__cpa_collapse_large_pages","split_large_page"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"890f8c4e827c918dac668a12eaf63180ba8a9e6d","config_name":"upstream-apparmor-kasan.config","series_id":"219e843a-a07e-4f7b-b28f-5d176780782c","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[8] Phase: Succeeded StartedAt: 2026-07-20 14:49:22 +0000 UTC FinishedAt: 2026-07-20 14:51:43 +0000 UTC Input: nil Output: nil --------- Name: series-workflowxdbb7[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"890f8c4e827c918dac668a12eaf63180ba8a9e6d","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["__cpa_collapse_large_pages","split_large_page"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"890f8c4e827c918dac668a12eaf63180ba8a9e6d","config_name":"upstream-apparmor-kasan.config","series_id":"219e843a-a07e-4f7b-b28f-5d176780782c","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[8].boot-test-patched Phase: Succeeded StartedAt: 2026-07-20 14:49:22 +0000 UTC FinishedAt: 2026-07-20 14:51:33 +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:*ce1e4694-a8bd-4393-b5f3-9f5ab5255c11,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-workflowxdbb7/series-workflowxdbb7-build-action-3293002319/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-workflowxdbb7[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"890f8c4e827c918dac668a12eaf63180ba8a9e6d","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["__cpa_collapse_large_pages","split_large_page"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"890f8c4e827c918dac668a12eaf63180ba8a9e6d","config_name":"upstream-apparmor-kasan.config","series_id":"219e843a-a07e-4f7b-b28f-5d176780782c","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[10] Phase: Succeeded StartedAt: 2026-07-20 14:51:43 +0000 UTC FinishedAt: 2026-07-20 17:54:50 +0000 UTC Input: nil Output: nil --------- Name: series-workflowxdbb7[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"890f8c4e827c918dac668a12eaf63180ba8a9e6d","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["__cpa_collapse_large_pages","split_large_page"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"890f8c4e827c918dac668a12eaf63180ba8a9e6d","config_name":"upstream-apparmor-kasan.config","series_id":"219e843a-a07e-4f7b-b28f-5d176780782c","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[10].run-fuzz Phase: Succeeded StartedAt: 2026-07-20 14:51:43 +0000 UTC FinishedAt: 2026-07-20 17:54:50 +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-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["__cpa_collapse_large_pages","split_large_page"],"skip_cover_check":true},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:*ed104656-fc8e-4c30-908b-f4894b0a909c,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*ce1e4694-a8bd-4393-b5f3-9f5ab5255c11,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-workflowxdbb7/series-workflowxdbb7-build-action-3363961754/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-workflowxdbb7/series-workflowxdbb7-build-action-3293002319/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: nil --------- Name: series-workflowxdbb7[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"890f8c4e827c918dac668a12eaf63180ba8a9e6d","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["__cpa_collapse_large_pages","split_large_page"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"890f8c4e827c918dac668a12eaf63180ba8a9e6d","config_name":"upstream-apparmor-kasan.config","series_id":"219e843a-a07e-4f7b-b28f-5d176780782c","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[10].run-fuzz[0] Phase: Succeeded StartedAt: 2026-07-20 14:51:43 +0000 UTC FinishedAt: 2026-07-20 14:51:53 +0000 UTC Input: nil Output: nil --------- Name: series-workflowxdbb7[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"890f8c4e827c918dac668a12eaf63180ba8a9e6d","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["__cpa_collapse_large_pages","split_large_page"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"890f8c4e827c918dac668a12eaf63180ba8a9e6d","config_name":"upstream-apparmor-kasan.config","series_id":"219e843a-a07e-4f7b-b28f-5d176780782c","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[10].run-fuzz[0].save-fuzz-config Phase: Succeeded StartedAt: 2026-07-20 14:51:43 +0000 UTC FinishedAt: 2026-07-20 14:51:48 +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-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["__cpa_collapse_large_pages","split_large_page"],"skip_cover_check":true},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-workflowxdbb7/series-workflowxdbb7-convert-artifact-2414669380/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowxdbb7[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"890f8c4e827c918dac668a12eaf63180ba8a9e6d","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["__cpa_collapse_large_pages","split_large_page"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"890f8c4e827c918dac668a12eaf63180ba8a9e6d","config_name":"upstream-apparmor-kasan.config","series_id":"219e843a-a07e-4f7b-b28f-5d176780782c","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[10].run-retest Phase: Skipped StartedAt: 2026-07-20 14:51:43 +0000 UTC FinishedAt: 2026-07-20 14:51:43 +0000 UTC Input: nil Output: nil --------- Name: series-workflowxdbb7[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"890f8c4e827c918dac668a12eaf63180ba8a9e6d","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["__cpa_collapse_large_pages","split_large_page"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"890f8c4e827c918dac668a12eaf63180ba8a9e6d","config_name":"upstream-apparmor-kasan.config","series_id":"219e843a-a07e-4f7b-b28f-5d176780782c","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[9] Phase: Succeeded StartedAt: 2026-07-20 14:51:43 +0000 UTC FinishedAt: 2026-07-20 14:51:43 +0000 UTC Input: nil Output: nil --------- Name: series-workflowxdbb7[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"890f8c4e827c918dac668a12eaf63180ba8a9e6d","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["__cpa_collapse_large_pages","split_large_page"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"890f8c4e827c918dac668a12eaf63180ba8a9e6d","config_name":"upstream-apparmor-kasan.config","series_id":"219e843a-a07e-4f7b-b28f-5d176780782c","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[9].abort-if-patched-boot-failed Phase: Skipped StartedAt: 2026-07-20 14:51:43 +0000 UTC FinishedAt: 2026-07-20 14:51:43 +0000 UTC Input: nil Output: nil --------- Name: series-workflowxdbb7[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"890f8c4e827c918dac668a12eaf63180ba8a9e6d","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["__cpa_collapse_large_pages","split_large_page"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"890f8c4e827c918dac668a12eaf63180ba8a9e6d","config_name":"upstream-apparmor-kasan.config","series_id":"219e843a-a07e-4f7b-b28f-5d176780782c","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[10].run-fuzz[1] Phase: Succeeded StartedAt: 2026-07-20 14:51:53 +0000 UTC FinishedAt: 2026-07-20 17:54:50 +0000 UTC Input: nil Output: nil --------- Name: series-workflowxdbb7[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"890f8c4e827c918dac668a12eaf63180ba8a9e6d","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["__cpa_collapse_large_pages","split_large_page"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"890f8c4e827c918dac668a12eaf63180ba8a9e6d","config_name":"upstream-apparmor-kasan.config","series_id":"219e843a-a07e-4f7b-b28f-5d176780782c","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[10].run-fuzz[1].fuzz Phase: Succeeded StartedAt: 2026-07-20 14:51:53 +0000 UTC FinishedAt: 2026-07-20 17:54:40 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*ed104656-fc8e-4c30-908b-f4894b0a909c,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*ce1e4694-a8bd-4393-b5f3-9f5ab5255c11,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-workflowxdbb7/series-workflowxdbb7-build-action-3363961754/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-workflowxdbb7/series-workflowxdbb7-build-action-3293002319/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-workflowxdbb7/series-workflowxdbb7-convert-artifact-2414669380/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,}