Name: series-workflow6jlzt Phase: Succeeded StartedAt: 2026-07-10 11:24:14 +0000 UTC FinishedAt: 2026-07-10 15:58:26 +0000 UTC Input: nil Output: nil --------- Name: series-workflow6jlzt[0] Phase: Succeeded StartedAt: 2026-07-10 11:24:14 +0000 UTC FinishedAt: 2026-07-10 11:36:14 +0000 UTC Input: nil Output: nil --------- Name: series-workflow6jlzt[0].run-triage Phase: Succeeded StartedAt: 2026-07-10 11:24:14 +0000 UTC FinishedAt: 2026-07-10 11:36:14 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "bpf-next", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git", "commit_hash": "36ffa86c42f91c8a57071e024afc4ffb51a8958f", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "BPF_SYSCALL" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "bpf-next", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git", "commit_hash": "36ffa86c42f91c8a57071e024afc4ffb51a8958f", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "BPF_SYSCALL" ], "series_id": "1d4dba8b-1d06-4607-b613-3eaa602f0175" }, "track": "KASAN", "fuzz": { "focus": [ "bpf" ], "focus_symbols": [ "check_mem_access" ], "corpus_urls": [ "https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db" ], "skip_cover_check": false, "bug_title_re": "" }, "retest": null } ], "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzEwIDExOjM1PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0JQRl9TWVNDQUxMJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7Y2hlY2tfbWVtX2FjY2VzcyYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBmaXhlcyBhIGJ1ZyBpbiB0aGUgQlBGIHZlcmlmaWVyIHdoZXJlIGEgc2lnbi1leHRlbmRpbmcgbG9hZCBjb3VsZCBpbmNvcnJlY3RseSBrZWVwIGEgc2hhcmVkIHNjYWxhciBJRCwgbGVhZGluZyB0byBpbmNvcnJlY3QgYm91bmRzIHRyYWNraW5nLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIHZlcmlmaWVyJiMzOTtzIGNvcmUgbG9naWMgYW5kIHNob3VsZCBiZSBmdXp6ZWQuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MS8xPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTAgMTE6MzU8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPnJlYWQtcGF0Y2gtZGlmZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1BhdGNoRGlmZiYjMzQ7OiAmIzM0O2NvbW1pdCA1MzM1ODlmOTU3ZTM5YjNlODBhMjBlOGFlMzcwMTdiNDQyMmZhM2YzXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIEZyaSBKdWwgMTAgMTE6MzQ6NTkgMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEva2VybmVsL2JwZi92ZXJpZmllci5jIGIva2VybmVsL2JwZi92ZXJpZmllci5jXG5pbmRleCAyMzM0NzJhODcxYmU1Ny4uYTA4MzBhZDZiZWJiZTIgMTAwNjQ0XG4tLS0gYS9rZXJuZWwvYnBmL3ZlcmlmaWVyLmNcbiYjNDM7JiM0MzsmIzQzOyBiL2tlcm5lbC9icGYvdmVyaWZpZXIuY1xuQEAgLTYzOTQsMTEgJiM0Mzs2Mzk0LDIzIEBAIHN0YXRpYyBpbnQgY2hlY2tfbWVtX2FjY2VzcyhzdHJ1Y3QgYnBmX3ZlcmlmaWVyX2VudiAqZW52LCBpbnQgaW5zbl9pZHgsIHN0cnVjdCBiXG4gXG4gXHRpZiAoIWVyciBcdTAwMjZcdTAwMjYgc2l6ZSBcdTAwM2MgQlBGX1JFR19TSVpFIFx1MDAyNlx1MDAyNiB2YWx1ZV9yZWdubyBcdTAwM2U9IDAgXHUwMDI2XHUwMDI2IHQgPT0gQlBGX1JFQUQgXHUwMDI2XHUwMDI2XG4gXHQgICAgcmVnc1t2YWx1ZV9yZWdub10udHlwZSA9PSBTQ0FMQVJfVkFMVUUpIHtcbi1cdFx0aWYgKCFpc19sZHN4KVxuJiM0MztcdFx0aWYgKCFpc19sZHN4KSB7XG4gXHRcdFx0LyogYi9oL3cgbG9hZCB6ZXJvLWV4dGVuZHMsIG1hcmsgdXBwZXIgYml0cyBhcyBrbm93biAwICovXG4gXHRcdFx0Y29lcmNlX3JlZ190b19zaXplKFx1MDAyNnJlZ3NbdmFsdWVfcmVnbm9dLCBzaXplKTtcbi1cdFx0ZWxzZVxuJiM0MztcdFx0fSBlbHNlIHtcbiYjNDM7XHRcdFx0LypcbiYjNDM7XHRcdFx0ICogU2lnbi1leHRlbnNpb24gY2FuIGNoYW5nZSB0aGUgcmVnaXN0ZXIgdmFsdWUgcmVsYXRpdmVcbiYjNDM7XHRcdFx0ICogdG8gYSBzY2FsYXIgaXQgaXMgbGlua2VkIHdpdGggYnkgaWQgKGUuZy4gYSB6ZXJvLVxuJiM0MztcdFx0XHQgKiBleHRlbmRpbmcgZmlsbCBvZiB0aGUgc2FtZSBzcGlsbGVkIHN0YWNrIHNsb3QpLCB0aHVzXG4mIzQzO1x0XHRcdCAqIGRyb3AgdGhlIHNoYXJlZCBpZCBpbiB0aGF0IGNhc2UuXG4mIzQzO1x0XHRcdCAqL1xuJiM0MztcdFx0XHRib29sIG5vX3NleHQgPSByZWdfdW1heChcdTAwMjZyZWdzW3ZhbHVlX3JlZ25vXSkgXHUwMDNjXG4mIzQzO1x0XHRcdFx0XHQoMVVMTCBcdTAwM2NcdTAwM2MgKHNpemUgKiBCSVRTX1BFUl9CWVRFIC0gMSkpO1xuJiM0MztcbiBcdFx0XHRjb2VyY2VfcmVnX3RvX3NpemVfc3goXHUwMDI2cmVnc1t2YWx1ZV9yZWdub10sIHNpemUpO1xuJiM0MztcdFx0XHRpZiAoIW5vX3NleHQpXG4mIzQzO1x0XHRcdFx0Y2xlYXJfc2NhbGFyX2lkKFx1MDAyNnJlZ3NbdmFsdWVfcmVnbm9dKTtcbiYjNDM7XHRcdH1cbiBcdH1cbiBcdHJldHVybiBlcnI7XG4gfVxuZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9zY2FsYXJfaWRzLmMgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfc2NhbGFyX2lkcy5jXG5pbmRleCBlMzhmMTAyZGE0NWYyZS4uNjYzZDE1ZmM1ZmQyNmEgMTAwNjQ0XG4tLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfc2NhbGFyX2lkcy5jXG4mIzQzOyYjNDM7JiM0MzsgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfc2NhbGFyX2lkcy5jXG5AQCAtNCw2ICYjNDM7NCwxMyBAQFxuICNpbmNsdWRlIFx1MDAzY2JwZi9icGZfaGVscGVycy5oXHUwMDNlXG4gI2luY2x1ZGUgXCYjMzQ7YnBmX21pc2MuaFwmIzM0O1xuIFxuJiM0MztzdHJ1Y3Qge1xuJiM0MztcdF9fdWludCh0eXBlLCBCUEZfTUFQX1RZUEVfSEFTSCk7XG4mIzQzO1x0X191aW50KG1heF9lbnRyaWVzLCAxKTtcbiYjNDM7XHRfX3R5cGUoa2V5LCBsb25nIGxvbmcpO1xuJiM0MztcdF9fdHlwZSh2YWx1ZSwgbG9uZyBsb25nKTtcbiYjNDM7fSBtYXBfaGFzaF84YiBTRUMoXCYjMzQ7Lm1hcHNcJiMzNDspO1xuJiM0MztcbiAvKiBDaGVjayB0aGF0IHByZWNpc2lvbiBtYXJrcyBwcm9wYWdhdGUgdGhyb3VnaCBzY2FsYXIgSURzLlxuICAqIFJlZ2lzdGVycyByezAsMSwyfSBoYXZlIHRoZSBzYW1lIHNjYWxhciBJRC5cbiAgKiBSYW5nZSBpbmZvcm1hdGlvbiBpcyBwcm9wYWdhdGVkIGZvciBzY2FsYXJzIHNoYXJpbmcgc2FtZSBJRC5cbkBAIC05MTUsNCAmIzQzOzkyMiw1MyBAQCBfX25ha2VkIHZvaWQgbGlua2VkX3JlZ3NfYW5kX3N1YnJlZ19kZWYodm9pZClcbiBcdDogX19jbG9iYmVyX2FsbCk7XG4gfVxuIFxuJiM0MzsvKlxuJiM0MzsgKiBBIHNjYWxhciBpcyBzcGlsbGVkIHRvIHRoZSBzdGFjayBhbmQgdGhlbiBmaWxsZWQgdHdpY2U6IG9uY2UgdmlhIGFcbiYjNDM7ICogc2lnbi1leHRlbmRpbmcgbG9hZCAoQlBGX01FTVNYKSBpbnRvIHI0IGFuZCBvbmNlIHZpYSBhIHplcm8tZXh0ZW5kaW5nXG4mIzQzOyAqIGxvYWQgKEJQRl9NRU0pIGludG8gcjUuIGNvZXJjZV9yZWdfdG9fc2l6ZV9zeCgpIGdpdmVzIHI0IGEgZGlmZmVyZW50XG4mIzQzOyAqIHZhbHVlIHRoYW4gdGhlIHNwaWxsZWQvemVyby1leHRlbmRlZCBzaWJsaW5ncywgc28gcjQgbXVzdCBub3Qga2VlcCB0aGVcbiYjNDM7ICogc2hhcmVkIHNjYWxhciBpZC4gT3RoZXJ3aXNlIHRoZSBsYXRlciAmIzM5O2lmIHI1ID09IDB4ODAwMDAwMDAmIzM5OyByZWZpbmVzIHI0XG4mIzQzOyAqIHRocm91Z2ggc3luY19saW5rZWRfcmVncygpIHRvIGEga25vd24gMHg4MDAwMDAwMCwgd2hpbGUgYXQgcnVudGltZSByNFxuJiM0MzsgKiBpcyB0aGUgc2lnbi1leHRlbmRlZCAweGZmZmZmZmZmODAwMDAwMDAuIFRoZSB0ZXN0IHR1cm5zIHRoYXQgZGlzY3JlcGFuY3lcbiYjNDM7ICogaW50byBhbiBvdXQtb2YtYm91bmRzIG1hcCB2YWx1ZSBhY2Nlc3MgKHI0IFx1MDAzZVx1MDAzZSA2MyBpcyBiZWxpZXZlZCAwIGJ1dCBpcyAxXG4mIzQzOyAqIGF0IHJ1bnRpbWUpLCB3aGljaCBtdXN0IGJlIHJlamVjdGVkLlxuJiM0MzsgKi9cbiYjNDM7U0VDKFwmIzM0O3NvY2tldFwmIzM0OylcbiYjNDM7X19mYWlsdXJlIF9fbXNnKFwmIzM0O1IwIG1heCB2YWx1ZSBpcyBvdXRzaWRlIG9mIHRoZSBhbGxvd2VkIG1lbW9yeSByYW5nZVwmIzM0OylcbiYjNDM7X19uYWtlZCB2b2lkIGxkc3hfZmlsbF9zY2FsYXJfaWRfbm90X3NoYXJlZCh2b2lkKVxuJiM0Mzt7XG4mIzQzO1x0YXNtIHZvbGF0aWxlIChcJiMzNDtcdFx0XHRcdFx0XFxcbiYjNDM7XHRyMSA9IDA7XHRcdFx0XHRcdFx0XFxcbiYjNDM7XHQqKHU2NCopKHIxMCAtIDgpID0gcjE7XHRcdFx0XHRcXFxuJiM0MztcdHIyID0gcjEwO1x0XHRcdFx0XHRcXFxuJiM0MztcdHIyICYjNDM7PSAtODtcdFx0XHRcdFx0XFxcbiYjNDM7XHRyMSA9ICVbbWFwX2hhc2hfOGJdIGxsO1x0XHRcdFx0XFxcbiYjNDM7XHRjYWxsICVbYnBmX21hcF9sb29rdXBfZWxlbV07XHRcdFx0XFxcbiYjNDM7XHRpZiByMCA9PSAwIGdvdG8gbDBfJT07XHRcdFx0XHRcXFxuJiM0MztcdC8qIHI3ID0gdW5rbm93biB1MzIsIGtlZXAgb25seSBiaXQgMzEgKi9cdFxcXG4mIzQzO1x0cjcgPSAqKHUzMiopKHIwICYjNDM7IDApO1x0XHRcdFx0XFxcbiYjNDM7XHRyMiA9IDB4ODAwMDAwMDAgbGw7XHRcdFx0XHRcXFxuJiM0MztcdHI3IFx1MDAyNj0gcjI7XHRcdFx0XHRcdFxcXG4mIzQzO1x0LyogbGluayByNiBhbmQgcjcgdmlhIGEgZnJlc2ggc2NhbGFyIGlkICovXHRcXFxuJiM0MztcdHI2ID0gcjc7XHRcdFx0XHRcdFxcXG4mIzQzO1x0Lyogc3BpbGwgcjcgKHUzMikgdG8gdGhlIHN0YWNrICovXHRcdFxcXG4mIzQzO1x0Kih1MzIqKShyMTAgLSA4KSA9IHI3O1x0XHRcdFx0XFxcbiYjNDM7XHQvKiBzaWduLWV4dGVuZGluZyBmaWxsOiBtdXN0IGRyb3AgdGhlIGlkICovXHRcXFxuJiM0MztcdHI0ID0gKihzMzIqKShyMTAgLSA4KTtcdFx0XHRcdFxcXG4mIzQzO1x0LyogemVyby1leHRlbmRpbmcgZmlsbDoga2VlcHMgdGhlIGlkICovXHRcdFxcXG4mIzQzO1x0cjUgPSAqKHUzMiopKHIxMCAtIDgpO1x0XHRcdFx0XFxcbiYjNDM7XHQvKiByNSBiZWNvbWVzIGtub3duIDB4ODAwMDAwMDAgb24gZmFsbC10aHJvdWdoICovXFxcbiYjNDM7XHRpZiByNSAhPSByMiBnb3RvIGwwXyU9O1x0XHRcdFx0XFxcbiYjNDM7XHQvKiB2ZXJpZmllciBiZWxpZXZlcyByNCA9PSAwIGhlcmUsIHJ1bnRpbWUgaXMgMSAqL1xcXG4mIzQzO1x0cjQgXHUwMDNlXHUwMDNlPSA2MztcdFx0XHRcdFx0XFxcbiYjNDM7XHRyMCAmIzQzOz0gcjQ7XHRcdFx0XHRcdFxcXG4mIzQzO1x0cjAgPSAqKHU4KikocjAgJiM0MzsgNyk7XHRcdFx0XHRcXFxuJiM0MztsMF8lPTpcdHIwID0gMDtcdFx0XHRcdFx0XHRcXFxuJiM0MztcdGV4aXQ7XHRcdFx0XHRcdFx0XFxcbiYjNDM7XCYjMzQ7XHQ6XG4mIzQzO1x0OiBfX2ltbShicGZfbWFwX2xvb2t1cF9lbGVtKSxcbiYjNDM7XHQgIF9faW1tX2FkZHIobWFwX2hhc2hfOGIpXG4mIzQzO1x0OiBfX2Nsb2JiZXJfYWxsKTtcbiYjNDM7fVxuJiM0MztcbiBjaGFyIF9saWNlbnNlW10gU0VDKFwmIzM0O2xpY2Vuc2VcJiMzNDspID0gXCYjMzQ7R1BMXCYjMzQ7O1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzEwIDExOjM1PC90ZD4KCQkJPHRkPmFnZW50PC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0JQRl9TWVNDQUxMJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7Y2hlY2tfbWVtX2FjY2VzcyYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBmaXhlcyBhIGJ1ZyBpbiB0aGUgQlBGIHZlcmlmaWVyIHdoZXJlIGEgc2lnbi1leHRlbmRpbmcgbG9hZCBjb3VsZCBpbmNvcnJlY3RseSBrZWVwIGEgc2hhcmVkIHNjYWxhciBJRCwgbGVhZGluZyB0byBpbmNvcnJlY3QgYm91bmRzIHRyYWNraW5nLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIHZlcmlmaWVyJiMzOTtzIGNvcmUgbG9naWMgYW5kIHNob3VsZCBiZSBmdXp6ZWQuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZQppZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5CnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuCgpSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOgotIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuCi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuCi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LgotIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwKZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLgoKSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaAp0b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS4KCldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOgoxLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLgogICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy4KMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuCiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy4KICAgRG8gbm90IGxpc3QgdG9vIGdlbmVyaWMgY29uZmlncyAod2UgYWxyZWFkeSBoYXZlIHRoZW0gZW5hYmxlZCkuIE9ubHkgbGlzdCB0aG9zZSB0aGF0CiAgIHNwZWNpZmljYWxseSBjb3ZlciB0aGUgbW9kaWZpZWQgY29kZS4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzIG91dHB1dCBhcnJheSwKICAgYW5kIERPIE5PVCBhZGQgYSAmIzM5O0NPTkZJR18mIzM5OyBwcmVmaXggKGUuZy4sIHJldHVybiAmIzM0O05FVF9JUFY0JiMzNDsgaW5zdGVhZCBvZiAmIzM0O0NPTkZJR19ORVRfSVBWNCYjMzQ7KS4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IDUzMzU4OWY5NTdlMzliM2U4MGEyMGU4YWUzNzAxN2I0NDIyZmEzZjMKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgRnJpIEp1bCAxMCAxMTozNDo1OSAyMDI2ICYjNDM7MDAwMAoKICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldwoKZGlmZiAtLWdpdCBhL2tlcm5lbC9icGYvdmVyaWZpZXIuYyBiL2tlcm5lbC9icGYvdmVyaWZpZXIuYwppbmRleCAyMzM0NzJhODcxYmU1Ny4uYTA4MzBhZDZiZWJiZTIgMTAwNjQ0Ci0tLSBhL2tlcm5lbC9icGYvdmVyaWZpZXIuYwomIzQzOyYjNDM7JiM0MzsgYi9rZXJuZWwvYnBmL3ZlcmlmaWVyLmMKQEAgLTYzOTQsMTEgJiM0Mzs2Mzk0LDIzIEBAIHN0YXRpYyBpbnQgY2hlY2tfbWVtX2FjY2VzcyhzdHJ1Y3QgYnBmX3ZlcmlmaWVyX2VudiAqZW52LCBpbnQgaW5zbl9pZHgsIHN0cnVjdCBiCiAKIAlpZiAoIWVyciAmYW1wOyZhbXA7IHNpemUgJmx0OyBCUEZfUkVHX1NJWkUgJmFtcDsmYW1wOyB2YWx1ZV9yZWdubyAmZ3Q7PSAwICZhbXA7JmFtcDsgdCA9PSBCUEZfUkVBRCAmYW1wOyZhbXA7CiAJICAgIHJlZ3NbdmFsdWVfcmVnbm9dLnR5cGUgPT0gU0NBTEFSX1ZBTFVFKSB7Ci0JCWlmICghaXNfbGRzeCkKJiM0MzsJCWlmICghaXNfbGRzeCkgewogCQkJLyogYi9oL3cgbG9hZCB6ZXJvLWV4dGVuZHMsIG1hcmsgdXBwZXIgYml0cyBhcyBrbm93biAwICovCiAJCQljb2VyY2VfcmVnX3RvX3NpemUoJmFtcDtyZWdzW3ZhbHVlX3JlZ25vXSwgc2l6ZSk7Ci0JCWVsc2UKJiM0MzsJCX0gZWxzZSB7CiYjNDM7CQkJLyoKJiM0MzsJCQkgKiBTaWduLWV4dGVuc2lvbiBjYW4gY2hhbmdlIHRoZSByZWdpc3RlciB2YWx1ZSByZWxhdGl2ZQomIzQzOwkJCSAqIHRvIGEgc2NhbGFyIGl0IGlzIGxpbmtlZCB3aXRoIGJ5IGlkIChlLmcuIGEgemVyby0KJiM0MzsJCQkgKiBleHRlbmRpbmcgZmlsbCBvZiB0aGUgc2FtZSBzcGlsbGVkIHN0YWNrIHNsb3QpLCB0aHVzCiYjNDM7CQkJICogZHJvcCB0aGUgc2hhcmVkIGlkIGluIHRoYXQgY2FzZS4KJiM0MzsJCQkgKi8KJiM0MzsJCQlib29sIG5vX3NleHQgPSByZWdfdW1heCgmYW1wO3JlZ3NbdmFsdWVfcmVnbm9dKSAmbHQ7CiYjNDM7CQkJCQkoMVVMTCAmbHQ7Jmx0OyAoc2l6ZSAqIEJJVFNfUEVSX0JZVEUgLSAxKSk7CiYjNDM7CiAJCQljb2VyY2VfcmVnX3RvX3NpemVfc3goJmFtcDtyZWdzW3ZhbHVlX3JlZ25vXSwgc2l6ZSk7CiYjNDM7CQkJaWYgKCFub19zZXh0KQomIzQzOwkJCQljbGVhcl9zY2FsYXJfaWQoJmFtcDtyZWdzW3ZhbHVlX3JlZ25vXSk7CiYjNDM7CQl9CiAJfQogCXJldHVybiBlcnI7CiB9CmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfc2NhbGFyX2lkcy5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX3NjYWxhcl9pZHMuYwppbmRleCBlMzhmMTAyZGE0NWYyZS4uNjYzZDE1ZmM1ZmQyNmEgMTAwNjQ0Ci0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9zY2FsYXJfaWRzLmMKJiM0MzsmIzQzOyYjNDM7IGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX3NjYWxhcl9pZHMuYwpAQCAtNCw2ICYjNDM7NCwxMyBAQAogI2luY2x1ZGUgJmx0O2JwZi9icGZfaGVscGVycy5oJmd0OwogI2luY2x1ZGUgJiMzNDticGZfbWlzYy5oJiMzNDsKIAomIzQzO3N0cnVjdCB7CiYjNDM7CV9fdWludCh0eXBlLCBCUEZfTUFQX1RZUEVfSEFTSCk7CiYjNDM7CV9fdWludChtYXhfZW50cmllcywgMSk7CiYjNDM7CV9fdHlwZShrZXksIGxvbmcgbG9uZyk7CiYjNDM7CV9fdHlwZSh2YWx1ZSwgbG9uZyBsb25nKTsKJiM0Mzt9IG1hcF9oYXNoXzhiIFNFQygmIzM0Oy5tYXBzJiMzNDspOwomIzQzOwogLyogQ2hlY2sgdGhhdCBwcmVjaXNpb24gbWFya3MgcHJvcGFnYXRlIHRocm91Z2ggc2NhbGFyIElEcy4KICAqIFJlZ2lzdGVycyByezAsMSwyfSBoYXZlIHRoZSBzYW1lIHNjYWxhciBJRC4KICAqIFJhbmdlIGluZm9ybWF0aW9uIGlzIHByb3BhZ2F0ZWQgZm9yIHNjYWxhcnMgc2hhcmluZyBzYW1lIElELgpAQCAtOTE1LDQgJiM0Mzs5MjIsNTMgQEAgX19uYWtlZCB2b2lkIGxpbmtlZF9yZWdzX2FuZF9zdWJyZWdfZGVmKHZvaWQpCiAJOiBfX2Nsb2JiZXJfYWxsKTsKIH0KIAomIzQzOy8qCiYjNDM7ICogQSBzY2FsYXIgaXMgc3BpbGxlZCB0byB0aGUgc3RhY2sgYW5kIHRoZW4gZmlsbGVkIHR3aWNlOiBvbmNlIHZpYSBhCiYjNDM7ICogc2lnbi1leHRlbmRpbmcgbG9hZCAoQlBGX01FTVNYKSBpbnRvIHI0IGFuZCBvbmNlIHZpYSBhIHplcm8tZXh0ZW5kaW5nCiYjNDM7ICogbG9hZCAoQlBGX01FTSkgaW50byByNS4gY29lcmNlX3JlZ190b19zaXplX3N4KCkgZ2l2ZXMgcjQgYSBkaWZmZXJlbnQKJiM0MzsgKiB2YWx1ZSB0aGFuIHRoZSBzcGlsbGVkL3plcm8tZXh0ZW5kZWQgc2libGluZ3MsIHNvIHI0IG11c3Qgbm90IGtlZXAgdGhlCiYjNDM7ICogc2hhcmVkIHNjYWxhciBpZC4gT3RoZXJ3aXNlIHRoZSBsYXRlciAmIzM5O2lmIHI1ID09IDB4ODAwMDAwMDAmIzM5OyByZWZpbmVzIHI0CiYjNDM7ICogdGhyb3VnaCBzeW5jX2xpbmtlZF9yZWdzKCkgdG8gYSBrbm93biAweDgwMDAwMDAwLCB3aGlsZSBhdCBydW50aW1lIHI0CiYjNDM7ICogaXMgdGhlIHNpZ24tZXh0ZW5kZWQgMHhmZmZmZmZmZjgwMDAwMDAwLiBUaGUgdGVzdCB0dXJucyB0aGF0IGRpc2NyZXBhbmN5CiYjNDM7ICogaW50byBhbiBvdXQtb2YtYm91bmRzIG1hcCB2YWx1ZSBhY2Nlc3MgKHI0ICZndDsmZ3Q7IDYzIGlzIGJlbGlldmVkIDAgYnV0IGlzIDEKJiM0MzsgKiBhdCBydW50aW1lKSwgd2hpY2ggbXVzdCBiZSByZWplY3RlZC4KJiM0MzsgKi8KJiM0MztTRUMoJiMzNDtzb2NrZXQmIzM0OykKJiM0MztfX2ZhaWx1cmUgX19tc2coJiMzNDtSMCBtYXggdmFsdWUgaXMgb3V0c2lkZSBvZiB0aGUgYWxsb3dlZCBtZW1vcnkgcmFuZ2UmIzM0OykKJiM0MztfX25ha2VkIHZvaWQgbGRzeF9maWxsX3NjYWxhcl9pZF9ub3Rfc2hhcmVkKHZvaWQpCiYjNDM7ewomIzQzOwlhc20gdm9sYXRpbGUgKCYjMzQ7CQkJCQlcCiYjNDM7CXIxID0gMDsJCQkJCQlcCiYjNDM7CSoodTY0KikocjEwIC0gOCkgPSByMTsJCQkJXAomIzQzOwlyMiA9IHIxMDsJCQkJCVwKJiM0MzsJcjIgJiM0Mzs9IC04OwkJCQkJXAomIzQzOwlyMSA9ICVbbWFwX2hhc2hfOGJdIGxsOwkJCQlcCiYjNDM7CWNhbGwgJVticGZfbWFwX2xvb2t1cF9lbGVtXTsJCQlcCiYjNDM7CWlmIHIwID09IDAgZ290byBsMF8lPTsJCQkJXAomIzQzOwkvKiByNyA9IHVua25vd24gdTMyLCBrZWVwIG9ubHkgYml0IDMxICovCVwKJiM0MzsJcjcgPSAqKHUzMiopKHIwICYjNDM7IDApOwkJCQlcCiYjNDM7CXIyID0gMHg4MDAwMDAwMCBsbDsJCQkJXAomIzQzOwlyNyAmYW1wOz0gcjI7CQkJCQlcCiYjNDM7CS8qIGxpbmsgcjYgYW5kIHI3IHZpYSBhIGZyZXNoIHNjYWxhciBpZCAqLwlcCiYjNDM7CXI2ID0gcjc7CQkJCQlcCiYjNDM7CS8qIHNwaWxsIHI3ICh1MzIpIHRvIHRoZSBzdGFjayAqLwkJXAomIzQzOwkqKHUzMiopKHIxMCAtIDgpID0gcjc7CQkJCVwKJiM0MzsJLyogc2lnbi1leHRlbmRpbmcgZmlsbDogbXVzdCBkcm9wIHRoZSBpZCAqLwlcCiYjNDM7CXI0ID0gKihzMzIqKShyMTAgLSA4KTsJCQkJXAomIzQzOwkvKiB6ZXJvLWV4dGVuZGluZyBmaWxsOiBrZWVwcyB0aGUgaWQgKi8JCVwKJiM0MzsJcjUgPSAqKHUzMiopKHIxMCAtIDgpOwkJCQlcCiYjNDM7CS8qIHI1IGJlY29tZXMga25vd24gMHg4MDAwMDAwMCBvbiBmYWxsLXRocm91Z2ggKi9cCiYjNDM7CWlmIHI1ICE9IHIyIGdvdG8gbDBfJT07CQkJCVwKJiM0MzsJLyogdmVyaWZpZXIgYmVsaWV2ZXMgcjQgPT0gMCBoZXJlLCBydW50aW1lIGlzIDEgKi9cCiYjNDM7CXI0ICZndDsmZ3Q7PSA2MzsJCQkJCVwKJiM0MzsJcjAgJiM0Mzs9IHI0OwkJCQkJXAomIzQzOwlyMCA9ICoodTgqKShyMCAmIzQzOyA3KTsJCQkJXAomIzQzO2wwXyU9OglyMCA9IDA7CQkJCQkJXAomIzQzOwlleGl0OwkJCQkJCVwKJiM0MzsmIzM0Owk6CiYjNDM7CTogX19pbW0oYnBmX21hcF9sb29rdXBfZWxlbSksCiYjNDM7CSAgX19pbW1fYWRkcihtYXBfaGFzaF84YikKJiM0MzsJOiBfX2Nsb2JiZXJfYWxsKTsKJiM0Mzt9CiYjNDM7CiBjaGFyIF9saWNlbnNlW10gU0VDKCYjMzQ7bGljZW5zZSYjMzQ7KSA9ICYjMzQ7R1BMJiMzNDs7CjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzEwIDExOjM1PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDMxNzYKCQkJCQkJCW91dHB1dDogMzMKCQkJCQkJCXRob3VnaHRzOiAyNjQKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqTXkgQXNzZXNzbWVudCBvZiB0aGUgQlBGIFZlcmlmaWVyIFBhdGNoKioKCk9rYXksIHNvIHRoaXMgcGF0Y2ggaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSB3aXRoaW4gdGhlIEJQRiB2ZXJpZmllciwgc3BlY2lmaWNhbGx5IGluIGBrZXJuZWwvYnBmL3ZlcmlmaWVyLmNgLiBJdCYjMzk7cyBhbHRlcmluZyB0aGUgYmVoYXZpb3Igb2YgdGhlIHNoYXJlZCBzY2FsYXIgSUQgdHJhY2tpbmcgd2hlbiBzaWduLWV4dGVuZGluZyBsb2FkcyBvY2N1ci4gRXNzZW50aWFsbHksIGl0IGRyb3BzIHRoZSBzY2FsYXIgSUQgd2hlbiBhIHNpZ24tZXh0ZW5kaW5nIGxvYWQgbW9kaWZpZXMgdGhlIHJlZ2lzdGVyIHZhbHVlIHJlbGF0aXZlIHRvIGEgc2NhbGFyIGl0JiMzOTtzIHRpZWQgdG8uIFRoZSBtb2RpZmllZCBmdW5jdGlvbiBpcyBgY2hlY2tfbWVtX2FjY2VzcygpYCwgd2hpY2ggaXMgaW1wb3J0YW50IGZvciBwcm9ncmFtIHZlcmlmaWNhdGlvbi4KCkxvb2tpbmcgY2xvc2VseSwgdGhlIHBhdGNoIGludHJvZHVjZXMgYSBuZXcgY29uZGl0aW9uIHdpdGhpbiBgY2hlY2tfbWVtX2FjY2VzcygpYDogYGJvb2wgbm9fc2V4dCA9IHJlZ191bWF4KCZhbXA7cmVnc1t2YWx1ZV9yZWdub10pICZsdDsgKDFVTEwgJmx0OyZsdDsgKHNpemUgKiBCSVRTX1BFUl9CWVRFIC0gMSkpO2AuIElmIHRoaXMgY29uZGl0aW9uLCBgIW5vX3NleHRgLCBpcyB0cnVlLCBtZWFuaW5nIHRoZSByZWdpc3RlciAqZG9lcyogZ2V0IHNpZ24tZXh0ZW5kZWQsIGl0IGNsZWFycyB0aGUgc2NhbGFyIElELiBNYWtlcyBzZW5zZS4KCkdpdmVuIHRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgdmVyaWZpZXIsIGZ1enppbmcgaXMgZGVmaW5pdGVseSBpbiBvcmRlci4gSSBuZWVkIHRvIGJlIHN1cmUgdGhlIG1vZGlmaWVkIHZlcmlmaWNhdGlvbiBsb2dpYyBpcyBzb2xpZC4KCk15IGZvY3VzIHNob3VsZCBiZSBvbiBgY2hlY2tfbWVtX2FjY2VzcygpYCBhcyBhIGtleSBzeW1ib2wsIGFuZCBhZnRlciBhIG1vbWVudCYjMzk7cyBjb25zaWRlcmF0aW9uLCBJIGNvbmN1ci4gV2hpbGUgaXQmIzM5O3MgY2VudHJhbCB0byB0aGUgQlBGIHZlcmlmaWVyLCBpdCYjMzk7cyBub3QgYSBwZXJmb3JtYW5jZS1jcml0aWNhbCBob3QgcGF0aCBsaWtlIHBhY2tldCBwcm9jZXNzaW5nIGZ1bmN0aW9ucy4gSXQmIzM5O3MgaW52b2tlZCBkdXJpbmcgQlBGIHByb2dyYW0gbG9hZCwgbWFraW5nIGl0IGEgc3VpdGFibGUgY2FuZGlkYXRlIGZvciB0YXJnZXRlZCBmdXp6aW5nLiBJIGNhbiBpc29sYXRlIGl0IG1vcmUgZWFzaWx5IHRoaXMgd2F5LgoKTm93LCBsZXQgbWUgZG91YmxlLWNoZWNrIHRoZSBuZWNlc3NhcnkgY29uZmlndXJhdGlvbnMuIGBDT05GSUdfQlBGX1NZU0NBTExgIGlzIHRoZSBjcnVjaWFsIG9uZSBmb3IgQlBGIHN5c3RlbSBjYWxscy4gSSYjMzk7bGwgbmVlZCB0byBjb25maXJtIHRoYXQgdGhpcyBpcyBpbmRlZWQgc3VmZmljaWVudCB0byB0cmlnZ2VyIHRoZSByZWxldmFudCBjb2RlIHBhdGhzLiBUaW1lIHRvIGZpcmUgdXAgdGhlIHRvb2xzIGFuZCB2ZXJpZnkgZXZlcnl0aGluZy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xMCAxMTozNTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtjaGVja19tZW1fYWNjZXNzJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7a2VybmVsL2JwZi92ZXJpZmllci5jJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2tlcm5lbC9icGYvdmVyaWZpZXIuYz01Nz1zdGF0aWMgYm9vbCBicGZfZ2xvYmFsX3BlcmNwdV9tYV9zZXQ7XG4tLVxua2VybmVsL2JwZi92ZXJpZmllci5jLTEwNC0gKiBjYW4gYmU6IFBUUl9UT19NQVBfVkFMVUUsIFBUUl9UT19DVFgsIFBUUl9UT19TVEFDSywgUFRSX1RPX1NPQ0tFVC4gVGhlc2UgYXJlXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM6MTA1OiAqIGZvdXIgcG9pbnRlciB0eXBlcyByZWNvZ25pemVkIGJ5IGNoZWNrX21lbV9hY2Nlc3MoKSBmdW5jdGlvbi5cbmtlcm5lbC9icGYvdmVyaWZpZXIuYy0xMDYtICpcbi0tXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM9ODUwPXN0YXRpYyBib29sIGlzX2R5bnB0cl9yZWdfdmFsaWRfdW5pbml0KHN0cnVjdCBicGZfdmVyaWZpZXJfZW52ICplbnYsIHN0cnVjdCBicGZfcmVnX3N0YXRlICpyZWcpXG4tLVxua2VybmVsL2JwZi92ZXJpZmllci5jLTg2MC1cdCAqIGVycm9yIGJlY2F1c2UgdGhpcyBqdXN0IG1lYW5zIHRoZSBzdGFjayBzdGF0ZSBoYXNuJiMzOTt0IGJlZW4gdXBkYXRlZCB5ZXQuXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM6ODYxOlx0ICogV2Ugd2lsbCBkbyBjaGVja19tZW1fYWNjZXNzIHRvIGNoZWNrIGFuZCB1cGRhdGUgc3RhY2sgYm91bmRzIGxhdGVyLlxua2VybmVsL2JwZi92ZXJpZmllci5jLTg2Mi1cdCAqL1xuLS1cbmtlcm5lbC9icGYvdmVyaWZpZXIuYz0xMDA2PXN0YXRpYyBib29sIGlzX2l0ZXJfcmVnX3ZhbGlkX3VuaW5pdChzdHJ1Y3QgYnBmX3ZlcmlmaWVyX2VudiAqZW52LFxuLS1cbmtlcm5lbC9icGYvdmVyaWZpZXIuYy0xMDEyLVx0LyogRm9yIC1FUkFOR0UgKGkuZS4gc3BpIG5vdCBmYWxsaW5nIGludG8gYWxsb2NhdGVkIHN0YWNrIHNsb3RzKSwgd2Vcbmtlcm5lbC9icGYvdmVyaWZpZXIuYzoxMDEzOlx0ICogd2lsbCBkbyBjaGVja19tZW1fYWNjZXNzIHRvIGNoZWNrIGFuZCB1cGRhdGUgc3RhY2sgYm91bmRzIGxhdGVyLCBzb1xua2VybmVsL2JwZi92ZXJpZmllci5jLTEwMTQtXHQgKiByZXR1cm4gdHJ1ZSBmb3IgdGhhdCBjYXNlLlxuLS1cbmtlcm5lbC9icGYvdmVyaWZpZXIuYz0xMTUxPXN0YXRpYyBib29sIGlzX2lycV9mbGFnX3JlZ192YWxpZF91bmluaXQoc3RydWN0IGJwZl92ZXJpZmllcl9lbnYgKmVudiwgc3RydWN0IGJwZl9yZWdfc3RhdGUgKnJlZylcbi0tXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtMTE1Ny1cdC8qIEZvciAtRVJBTkdFIChpLmUuIHNwaSBub3QgZmFsbGluZyBpbnRvIGFsbG9jYXRlZCBzdGFjayBzbG90cyksIHdlXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM6MTE1ODpcdCAqIHdpbGwgZG8gY2hlY2tfbWVtX2FjY2VzcyB0byBjaGVjayBhbmQgdXBkYXRlIHN0YWNrIGJvdW5kcyBsYXRlciwgc29cbmtlcm5lbC9icGYvdmVyaWZpZXIuYy0xMTU5LVx0ICogcmV0dXJuIHRydWUgZm9yIHRoYXQgY2FzZS5cbi0tXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM9MzQ3Nj1zdGF0aWMgdm9pZCBzY3J1Yl9zcGVjaWFsX3Nsb3Qoc3RydWN0IGJwZl9mdW5jX3N0YXRlICpzdGF0ZSwgaW50IHNwaSlcbi0tXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtMzQ4OC0vKiBjaGVja19zdGFja197cmVhZCx3cml0ZX1fZml4ZWRfb2ZmIGZ1bmN0aW9ucyB0cmFjayBzcGlsbC9maWxsIG9mIHJlZ2lzdGVycyxcbmtlcm5lbC9icGYvdmVyaWZpZXIuYzozNDg5OiAqIHN0YWNrIGJvdW5kYXJ5IGFuZCBhbGlnbm1lbnQgYXJlIGNoZWNrZWQgaW4gY2hlY2tfbWVtX2FjY2VzcygpXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtMzQ5MC0gKi9cbi0tXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM9NDIwOD1zdGF0aWMgaW50IGNoZWNrX21hcF9hY2Nlc3NfdHlwZShzdHJ1Y3QgYnBmX3ZlcmlmaWVyX2VudiAqZW52LCBzdHJ1Y3QgYnBmX3JlZ19zdGF0ZSAqcmVnLFxuLS1cbmtlcm5lbC9icGYvdmVyaWZpZXIuYy00MjI5LS8qIGNoZWNrIHJlYWQvd3JpdGUgaW50byBtZW1vcnkgcmVnaW9uIChlLmcuLCBtYXAgdmFsdWUsIHJpbmdidWYgc2FtcGxlLCBldGMpICovXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM6NDIzMDpzdGF0aWMgaW50IF9fY2hlY2tfbWVtX2FjY2VzcyhzdHJ1Y3QgYnBmX3ZlcmlmaWVyX2VudiAqZW52LCBzdHJ1Y3QgYnBmX3JlZ19zdGF0ZSAqcmVnLCBhcmdub190IGFyZ25vLFxua2VybmVsL2JwZi92ZXJpZmllci5jLTQyMzEtXHRcdFx0ICAgICAgaW50IG9mZiwgaW50IHNpemUsIHUzMiBtZW1fc2l6ZSxcbi0tXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM9NDI2OD1zdGF0aWMgaW50IGNoZWNrX21lbV9yZWdpb25fYWNjZXNzKHN0cnVjdCBicGZfdmVyaWZpZXJfZW52ICplbnYsIHN0cnVjdCBicGZfcmVnX3N0YXRlICpyZWcsIGFyZ25vX3QgYXJnbm8sXG4tLVxua2VybmVsL2JwZi92ZXJpZmllci5jLTQyOTEtXHR9XG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM6NDI5MjpcdGVyciA9IF9fY2hlY2tfbWVtX2FjY2VzcyhlbnYsIHJlZywgYXJnbm8sIHJlZ19zbWluKHJlZykgJiM0Mzsgb2ZmLCBzaXplLFxua2VybmVsL2JwZi92ZXJpZmllci5jLTQyOTMtXHRcdFx0XHQgbWVtX3NpemUsIHplcm9fc2l6ZV9hbGxvd2VkKTtcbi0tXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtNDMwOC1cdH1cbmtlcm5lbC9icGYvdmVyaWZpZXIuYzo0MzA5Olx0ZXJyID0gX19jaGVja19tZW1fYWNjZXNzKGVudiwgcmVnLCBhcmdubywgcmVnX3VtYXgocmVnKSAmIzQzOyBvZmYsIHNpemUsXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtNDMxMC1cdFx0XHRcdCBtZW1fc2l6ZSwgemVyb19zaXplX2FsbG93ZWQpO1xuLS1cbmtlcm5lbC9icGYvdmVyaWZpZXIuYz00NzE5PXN0YXRpYyBpbnQgY2hlY2tfcGFja2V0X2FjY2VzcyhzdHJ1Y3QgYnBmX3ZlcmlmaWVyX2VudiAqZW52LCBzdHJ1Y3QgYnBmX3JlZ19zdGF0ZSAqcmVnLCBhcmdub190IGFyZ25vLCBpbnQgb2ZmLFxuLS1cbmtlcm5lbC9icGYvdmVyaWZpZXIuYy00NzMyLVxua2VybmVsL2JwZi92ZXJpZmllci5jOjQ3MzM6XHQvKiBfX2NoZWNrX21lbV9hY2Nlc3MgaGFzIG1hZGUgc3VyZSBcJiMzNDtvZmYgJiM0Mzsgc2l6ZSAtIDFcJiMzNDsgaXMgd2l0aGluIHUxNi5cbmtlcm5lbC9icGYvdmVyaWZpZXIuYy00NzM0LVx0ICogcmVnX3VtYXgocmVnKSBjYW4mIzM5O3QgYmUgYmlnZ2VyIHRoYW4gTUFYX1BBQ0tFVF9PRkYgd2hpY2ggaXMgMHhmZmZmLFxua2VybmVsL2JwZi92ZXJpZmllci5jLTQ3MzUtXHQgKiBvdGhlcndpc2UgZmluZF9nb29kX3BrdF9wb2ludGVycyB3b3VsZCBoYXZlIHJlZnVzZWQgdG8gc2V0IHJhbmdlIGluZm9cbmtlcm5lbC9icGYvdmVyaWZpZXIuYzo0NzM2Olx0ICogdGhhdCBfX2NoZWNrX21lbV9hY2Nlc3Mgd291bGQgaGF2ZSByZWplY3RlZCB0aGlzIHBrdCBhY2Nlc3MuXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtNDczNy1cdCAqIFRoZXJlZm9yZSwgXCYjMzQ7b2ZmICYjNDM7IHJlZ191bWF4KHJlZykgJiM0Mzsgc2l6ZSAtIDFcJiMzNDsgd29uJiMzOTt0IG92ZXJmbG93IHUzMi5cbi0tXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM9NjEyMz1zdGF0aWMgdm9pZCBhZGRfc2NhbGFyX3RvX3JlZyhzdHJ1Y3QgYnBmX3JlZ19zdGF0ZSAqZHN0X3JlZywgczY0IHZhbClcbi0tXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtNjE0NS0gKi9cbmtlcm5lbC9icGYvdmVyaWZpZXIuYzo2MTQ2OnN0YXRpYyBpbnQgY2hlY2tfbWVtX2FjY2VzcyhzdHJ1Y3QgYnBmX3ZlcmlmaWVyX2VudiAqZW52LCBpbnQgaW5zbl9pZHgsIHN0cnVjdCBicGZfcmVnX3N0YXRlICpyZWcsIGFyZ25vX3QgYXJnbm8sXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtNjE0Ny1cdFx0XHQgICAgaW50IG9mZiwgaW50IGJwZl9zaXplLCBlbnVtIGJwZl9hY2Nlc3NfdHlwZSB0LFxuLS1cbmtlcm5lbC9icGYvdmVyaWZpZXIuYz02NDIxPXN0YXRpYyBpbnQgY2hlY2tfbG9hZF9tZW0oc3RydWN0IGJwZl92ZXJpZmllcl9lbnYgKmVudiwgc3RydWN0IGJwZl9pbnNuICppbnNuLFxuLS1cbmtlcm5lbC9icGYvdmVyaWZpZXIuYy02NDUzLVx0ICovXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM6NjQ1NDpcdGVyciA9IGNoZWNrX21lbV9hY2Nlc3MoZW52LCBlbnYtXHUwMDNlaW5zbl9pZHgsIHJlZ3MgJiM0MzsgaW5zbi1cdTAwM2VzcmNfcmVnLCBhcmdub19mcm9tX3JlZyhpbnNuLVx1MDAzZXNyY19yZWcpLCBpbnNuLVx1MDAzZW9mZixcbmtlcm5lbC9icGYvdmVyaWZpZXIuYy02NDU1LVx0XHRcdCAgICAgICBCUEZfU0laRShpbnNuLVx1MDAzZWNvZGUpLCBCUEZfUkVBRCwgaW5zbi1cdTAwM2Vkc3RfcmVnLFxuLS1cbmtlcm5lbC9icGYvdmVyaWZpZXIuYz02NDY0PXN0YXRpYyBpbnQgY2hlY2tfc3RvcmVfcmVnKHN0cnVjdCBicGZfdmVyaWZpZXJfZW52ICplbnYsIHN0cnVjdCBicGZfaW5zbiAqaW5zbixcbi0tXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtNjQ5My1cdC8qIENoZWNrIGlmIChkc3RfcmVnICYjNDM7IG9mZikgaXMgd3JpdGVhYmxlLiAqL1xua2VybmVsL2JwZi92ZXJpZmllci5jOjY0OTQ6XHRlcnIgPSBjaGVja19tZW1fYWNjZXNzKGVudiwgZW52LVx1MDAzZWluc25faWR4LCByZWdzICYjNDM7IGluc24tXHUwMDNlZHN0X3JlZywgYXJnbm9fZnJvbV9yZWcoaW5zbi1cdTAwM2Vkc3RfcmVnKSwgaW5zbi1cdTAwM2VvZmYsXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtNjQ5NS1cdFx0XHQgICAgICAgQlBGX1NJWkUoaW5zbi1cdTAwM2Vjb2RlKSwgQlBGX1dSSVRFLCBpbnNuLVx1MDAzZXNyY19yZWcsXG4tLVxua2VybmVsL2JwZi92ZXJpZmllci5jPTY1MDI9c3RhdGljIGludCBjaGVja19hdG9taWNfcm13KHN0cnVjdCBicGZfdmVyaWZpZXJfZW52ICplbnYsXG4tLVxua2VybmVsL2JwZi92ZXJpZmllci5jLTY1NzEtXHQgKi9cbmtlcm5lbC9icGYvdmVyaWZpZXIuYzo2NTcyOlx0ZXJyID0gY2hlY2tfbWVtX2FjY2VzcyhlbnYsIGVudi1cdTAwM2VpbnNuX2lkeCwgZHN0X3JlZywgYXJnbm9fZnJvbV9yZWcoaW5zbi1cdTAwM2Vkc3RfcmVnKSwgaW5zbi1cdTAwM2VvZmYsXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtNjU3My1cdFx0XHQgICAgICAgQlBGX1NJWkUoaW5zbi1cdTAwM2Vjb2RlKSwgQlBGX1JFQUQsIC0xLCB0cnVlLCBmYWxzZSk7XG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtNjU3NC1cdGlmICghZXJyIFx1MDAyNlx1MDAyNiBsb2FkX3JlZyBcdTAwM2U9IDApXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM6NjU3NTpcdFx0ZXJyID0gY2hlY2tfbWVtX2FjY2VzcyhlbnYsIGVudi1cdTAwM2VpbnNuX2lkeCwgZHN0X3JlZywgYXJnbm9fZnJvbV9yZWcoaW5zbi1cdTAwM2Vkc3RfcmVnKSxcbmtlcm5lbC9icGYvdmVyaWZpZXIuYy02NTc2LVx0XHRcdFx0ICAgICAgIGluc24tXHUwMDNlb2ZmLCBCUEZfU0laRShpbnNuLVx1MDAzZWNvZGUpLFxuLS1cbmtlcm5lbC9icGYvdmVyaWZpZXIuYy02NTg2LVx0LyogQ2hlY2sgd2hldGhlciB3ZSBjYW4gd3JpdGUgaW50byB0aGUgc2FtZSBtZW1vcnkuICovXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM6NjU4NzpcdGVyciA9IGNoZWNrX21lbV9hY2Nlc3MoZW52LCBlbnYtXHUwMDNlaW5zbl9pZHgsIGRzdF9yZWcsIGFyZ25vX2Zyb21fcmVnKGluc24tXHUwMDNlZHN0X3JlZyksIGluc24tXHUwMDNlb2ZmLFxua2VybmVsL2JwZi92ZXJpZmllci5jLTY1ODgtXHRcdFx0ICAgICAgIEJQRl9TSVpFKGluc24tXHUwMDNlY29kZSksIEJQRl9XUklURSwgLTEsIHRydWUsIGZhbHNlKTtcbi0tXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM9NzMxOD1zdGF0aWMgaW50IHByb2Nlc3NfZHlucHRyX2Z1bmMoc3RydWN0IGJwZl92ZXJpZmllcl9lbnYgKmVudiwgc3RydWN0IGJwZl9yZWdfc3RhdGUgKnJlZyxcbi0tXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtNzM1NC1cdFx0Zm9yIChpID0gMDsgaSBcdTAwM2MgQlBGX0RZTlBUUl9TSVpFOyBpICYjNDM7PSA4KSB7XG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM6NzM1NTpcdFx0XHRlcnIgPSBjaGVja19tZW1fYWNjZXNzKGVudiwgaW5zbl9pZHgsIHJlZywgYXJnbm8sXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtNzM1Ni1cdFx0XHRcdFx0ICAgICAgIGksIEJQRl9EVywgQlBGX1dSSVRFLCAtMSwgZmFsc2UsIGZhbHNlKTtcbi0tXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM9NzQzOD1zdGF0aWMgaW50IHByb2Nlc3NfaXRlcl9hcmcoc3RydWN0IGJwZl92ZXJpZmllcl9lbnYgKmVudiwgc3RydWN0IGJwZl9yZWdfc3RhdGUgKnJlZywgYXJnbm9fdCBhcmdubywgaW50IGluc25faWR4LFxuLS1cbmtlcm5lbC9icGYvdmVyaWZpZXIuYy03NDc1LVx0XHRmb3IgKGkgPSAwOyBpIFx1MDAzYyBucl9zbG90cyAqIDg7IGkgJiM0Mzs9IEJQRl9SRUdfU0laRSkge1xua2VybmVsL2JwZi92ZXJpZmllci5jOjc0NzY6XHRcdFx0ZXJyID0gY2hlY2tfbWVtX2FjY2VzcyhlbnYsIGluc25faWR4LCByZWcsIGFyZ25vLFxua2VybmVsL2JwZi92ZXJpZmllci5jLTc0NzctXHRcdFx0XHRcdCAgICAgICBpLCBCUEZfRFcsIEJQRl9XUklURSwgLTEsIGZhbHNlLCBmYWxzZSk7XG4tLVxua2VybmVsL2JwZi92ZXJpZmllci5jPTEwMjQ1PXN0YXRpYyBpbnQgY2hlY2tfaGVscGVyX2NhbGwoc3RydWN0IGJwZl92ZXJpZmllcl9lbnYgKmVudiwgc3RydWN0IGJwZl9pbnNuICppbnNuLFxuLS1cbmtlcm5lbC9icGYvdmVyaWZpZXIuYy0xMDMzMS1cdGZvciAoaSA9IDA7IGkgXHUwMDNjIG1ldGEuYWNjZXNzX3NpemU7IGkmIzQzOyYjNDM7KSB7XG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM6MTAzMzI6XHRcdGVyciA9IGNoZWNrX21lbV9hY2Nlc3MoZW52LCBpbnNuX2lkeCwgcmVncyAmIzQzOyBtZXRhLnJlZ25vLCBhcmdub19mcm9tX3JlZyhtZXRhLnJlZ25vKSwgaSwgQlBGX0IsXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtMTAzMzMtXHRcdFx0XHQgICAgICAgQlBGX1dSSVRFLCAtMSwgZmFsc2UsIGZhbHNlKTtcbi0tXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtMTA1NzktXHRcdFx0XHQgKiBpdCB3aWxsIGNvbmZ1c2UgdGhlIGNoZWNrIG9mIFBUUl9UT19CVEZfSUQgaW5cbmtlcm5lbC9icGYvdmVyaWZpZXIuYzoxMDU4MDpcdFx0XHRcdCAqIGNoZWNrX21lbV9hY2Nlc3MoKS5cbmtlcm5lbC9icGYvdmVyaWZpZXIuYy0xMDU4MS1cdFx0XHRcdCAqL1xuLS1cbmtlcm5lbC9icGYvdmVyaWZpZXIuYz0xMTUwOD1zdGF0aWMgaW50IHByb2Nlc3NfaXJxX2ZsYWcoc3RydWN0IGJwZl92ZXJpZmllcl9lbnYgKmVudiwgc3RydWN0IGJwZl9yZWdfc3RhdGUgKnJlZywgYXJnbm9fdCBhcmdubyxcbi0tXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtMTE1MzUtXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM6MTE1MzY6XHRcdGVyciA9IGNoZWNrX21lbV9hY2Nlc3MoZW52LCBlbnYtXHUwMDNlaW5zbl9pZHgsIHJlZywgYXJnbm8sIDAsIEJQRl9EVyxcbmtlcm5lbC9icGYvdmVyaWZpZXIuYy0xMTUzNy1cdFx0XHRcdCAgICAgICBCUEZfV1JJVEUsIC0xLCBmYWxzZSwgZmFsc2UpO1xuLS1cbmtlcm5lbC9icGYvdmVyaWZpZXIuYz0xNzMxMT1zdGF0aWMgaW50IGRvX2NoZWNrX2luc24oc3RydWN0IGJwZl92ZXJpZmllcl9lbnYgKmVudiwgYm9vbCAqZG9fcHJpbnRfc3RhdGUpXG4tLVxua2VybmVsL2JwZi92ZXJpZmllci5jLTE3MzQ4LVxua2VybmVsL2JwZi92ZXJpZmllci5jOjE3MzQ5Olx0XHRlcnIgPSBjaGVja19tZW1fYWNjZXNzKGVudiwgZW52LVx1MDAzZWluc25faWR4LCBjdXJfcmVncyhlbnYpICYjNDM7IGluc24tXHUwMDNlZHN0X3JlZywgYXJnbm9fZnJvbV9yZWcoaW5zbi1cdTAwM2Vkc3RfcmVnKSxcbmtlcm5lbC9icGYvdmVyaWZpZXIuYy0xNzM1MC1cdFx0XHRcdCAgICAgICBpbnNuLVx1MDAzZW9mZiwgQlBGX1NJWkUoaW5zbi1cdTAwM2Vjb2RlKSxcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xMCAxMTozNTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA2OTM1CgkJCQkJCQlvdXRwdXQ6IDQzCgkJCQkJCQl0aG91Z2h0czogODIKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGxldCYjMzk7cyBicmVhayB0aGlzIGRvd24uCgoqKkFuYWx5emluZyB0aGUgTWVtb3J5IEFjY2VzcyBWZXJpZmljYXRpb24qKgoKUmlnaHQsIHNvIEkmIzM5O20gZm9jdXNpbmcgb24gdGhlIGBjaGVja19tZW1fYWNjZXNzYCBmdW5jdGlvbjsgdGhhdCYjMzk7cyBjbGVhcmx5IGEgcGl2b3RhbCBlbGVtZW50IGluIHRoZSB2ZXJpZmljYXRpb24gcHJvY2Vzcy4gSSBuZWVkIHRvIGJlIHN1cmUgSSYjMzk7dmUgYWNjb3VudGVkIGZvciBhbnkgb3RoZXIgY29uZmlndXJhdGlvbnMgdGhhdCBtaWdodCBpbnRlcmFjdCB3aXRoIGl0LgoKSSBzZWUgdGhhdCB0aGUgYHZlcmlmaWVyX3NjYWxhcl9pZHMuY2AgdGVzdCBoYXMgYmVlbiBhZGRlZC4gTm93LCB0aGUgbmV4dCBzdGVwIGlzIHRvIGV4YW1pbmUgdGhlIGNvbnRlbnRzIG9mIGB0b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfc2NhbGFyX2lkcy5jYC4gVGhpcyBleGFtaW5hdGlvbiBpcyBrZXkgYmVjYXVzZSBpdCBtaWdodCByZXZlYWwgYWRkaXRpb25hbCwgc3BlY2lmaWMgY29uZmlndXJhdGlvbnMgb3IgaW50ZXJhY3Rpb25zIHRoYXQgSSBuZWVkIHRvIGNvbnNpZGVyLCBlc3BlY2lhbGx5IGNvbmNlcm5pbmcgc2NhbGFyIGlkZW50aWZpZXIgaGFuZGxpbmcgd2l0aGluIG1lbW9yeSBhY2Nlc3MgdmVyaWZpY2F0aW9uLiBFc3NlbnRpYWxseSwgSSBuZWVkIHRvIHVuZGVyc3RhbmQgaG93IHRoZSB0ZXN0IGV4ZXJjaXNlcyB0aGUgdmVyaWZpZXIgaW4gdGhpcyBjb250ZXh0LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzEwIDExOjM1PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5FcnJvcjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm5vIG1hdGNoZXM8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Q09ORklHXyYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9zY2FsYXJfaWRzLmMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7ZXJyb3ImIzM0OzogJiMzNDtubyBtYXRjaGVzJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzEwIDExOjM1PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDcyNDIKCQkJCQkJCW91dHB1dDogMzAKCQkJCQkJCXRob3VnaHRzOiAzNgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlLCBhbmQgd3JpdHRlbiBhcyBpZiB0aGV5IHdlcmUgbXkgb3duOgoKKipJbnZlc3RpZ2F0aW5nIHRoZSBCUEYgVmVyaWZpZXIgUGF0Y2gqKgoKQWxyaWdodCwgdGhlIHBhdGNoIGlzIHBpbnBvaW50ZWQgd2l0aGluIGBrZXJuZWwvYnBmL3ZlcmlmaWVyLmNgLiBNeSBpbW1lZGlhdGUgdGhvdWdodCBpcywgJiMzNDtMZXQmIzM5O3MgZGlnIGluIGFuZCBtYWtlIHN1cmUgdGhpcyBpcyB0aGUgcmlnaHQgYXJlYS4mIzM0OyBJ4oCZbGwgZmlyc3QgY2hlY2sgaWYgdGhlcmUgYXJlIGFueSBhcmNoaXRlY3R1cmUtc3BlY2lmaWMgb3IgY29uZmlndXJhdGlvbi1kZXBlbmRlbnQgZ3VhcmRzIGFyb3VuZCB0aGUgY29kZSBjaGFuZ2VzIHdpdGhpbiB0aGF0IGZpbGUuIEkmIzM5O20gbG9va2luZyBmb3IgY29uZGl0aW9uYWwgY29tcGlsYXRpb24gYmFzZWQgb24ga2VybmVsIGNvbmZpZ3MgbGlrZSBgQ09ORklHX0JQRl9KSVRgLCBgQ09ORklHX0JQRl9FVkVOVFNgLCBvciBldmVuIG1vcmUgZ3JhbnVsYXIgb3B0aW9ucyB0aGF0IG1pZ2h0IGFmZmVjdCBob3cgdGhlIHZlcmlmaWVyIG9wZXJhdGVzLiBVbmRlcnN0YW5kaW5nIHRob3NlIGRlcGVuZGVuY2llcyBpcyBjcnVjaWFsIGJlZm9yZSBJIGV2ZW4gc3RhcnQgcmV2aWV3aW5nIHRoZSBkaWZmcyB0aGVtc2VsdmVzLiBJIG5lZWQgdG8ga25vdyB0aGUgZXhhY3QgY29udGV4dCBpbiB3aGljaCB0aGlzIGNvZGUgd2lsbCBiZSBydW5uaW5nIGFuZCB3aGF0IGtlcm5lbCBmZWF0dXJlcyBhcmUgZW5hYmxlZCB3aGVuIHRoaXMgcGF0Y2ggaXMgZWZmZWN0aXZlLiBJdCB3b3VsZCBiZSBhIHdhc3RlIG9mIHRpbWUgdG8gbG9vayBhdCB0aGUgcGF0Y2ggaWYgYSBjb25maWcgcHJldmVudGVkIGl0IGZyb20gcnVubmluZy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD44LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xMCAxMTozNTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtDT05GSUdfJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7a2VybmVsL2JwZi92ZXJpZmllci5jJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2tlcm5lbC9icGYvdmVyaWZpZXIuYz0yNzQyPWludCBicGZfYWRkX2tmdW5jX2NhbGwoc3RydWN0IGJwZl92ZXJpZmllcl9lbnYgKmVudiwgdTMyIGZ1bmNfaWQsIHUxNiBvZmZzZXQpXG4tLVxua2VybmVsL2JwZi92ZXJpZmllci5jLTI3NTctXHRcdGlmICghYnRmX3ZtbGludXgpIHtcbmtlcm5lbC9icGYvdmVyaWZpZXIuYzoyNzU4Olx0XHRcdHZlcmJvc2UoZW52LCBcJiMzNDtjYWxsaW5nIGtlcm5lbCBmdW5jdGlvbiBpcyBub3Qgc3VwcG9ydGVkIHdpdGhvdXQgQ09ORklHX0RFQlVHX0lORk9fQlRGXFxuXCYjMzQ7KTtcbmtlcm5lbC9icGYvdmVyaWZpZXIuYy0yNzU5LVx0XHRcdHJldHVybiAtRU5PVFNVUFA7XG4tLVxua2VybmVsL2JwZi92ZXJpZmllci5jPTQ0NTQ9QlRGX1NFVF9TVEFSVChyY3VfcHJvdGVjdGVkX3R5cGVzKVxua2VybmVsL2JwZi92ZXJpZmllci5jOjQ0NTU6I2lmZGVmIENPTkZJR19ORVRcbmtlcm5lbC9icGYvdmVyaWZpZXIuYy00NDU2LUJURl9JRChzdHJ1Y3QsIHByb2dfdGVzdF9yZWZfa2Z1bmMpXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtNDQ1Ny0jZW5kaWZcbmtlcm5lbC9icGYvdmVyaWZpZXIuYzo0NDU4OiNpZmRlZiBDT05GSUdfQ0dST1VQU1xua2VybmVsL2JwZi92ZXJpZmllci5jLTQ0NTktQlRGX0lEKHN0cnVjdCwgY2dyb3VwKVxua2VybmVsL2JwZi92ZXJpZmllci5jLTQ0NjAtI2VuZGlmXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM6NDQ2MTojaWZkZWYgQ09ORklHX0JQRl9KSVRcbmtlcm5lbC9icGYvdmVyaWZpZXIuYy00NDYyLUJURl9JRChzdHJ1Y3QsIGJwZl9jcHVtYXNrKVxuLS1cbmtlcm5lbC9icGYvdmVyaWZpZXIuYz00NDY0PUJURl9JRChzdHJ1Y3QsIHRhc2tfc3RydWN0KVxua2VybmVsL2JwZi92ZXJpZmllci5jOjQ0NjU6I2lmZGVmIENPTkZJR19DUllQVE9cbmtlcm5lbC9icGYvdmVyaWZpZXIuYy00NDY2LUJURl9JRChzdHJ1Y3QsIGJwZl9jcnlwdG9fY3R4KVxuLS1cbmtlcm5lbC9icGYvdmVyaWZpZXIuYz00OTM4PXN0YXRpYyB1MzIgKnJlZzJidGZfaWRzW19fQlBGX1JFR19UWVBFX01BWF0gPSB7XG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM6NDkzOTojaWZkZWYgQ09ORklHX05FVFxua2VybmVsL2JwZi92ZXJpZmllci5jLTQ5NDAtXHRbUFRSX1RPX1NPQ0tFVF0gPSBcdTAwMjZidGZfc29ja19pZHNbQlRGX1NPQ0tfVFlQRV9TT0NLXSxcbi0tXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM9NDk4MT1zdGF0aWMgaW50IGNoZWNrX3BrdF9wdHJfYWxpZ25tZW50KHN0cnVjdCBicGZfdmVyaWZpZXJfZW52ICplbnYsXG4tLVxua2VybmVsL2JwZi92ZXJpZmllci5jLTQ5OTItXHQvKiBGb3IgcGxhdGZvcm1zIHRoYXQgZG8gbm90IGhhdmUgYSBLY29uZmlnIGVuYWJsaW5nXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM6NDk5MzpcdCAqIENPTkZJR19IQVZFX0VGRklDSUVOVF9VTkFMSUdORURfQUNDRVNTIHRoZSB2YWx1ZSBvZlxua2VybmVsL2JwZi92ZXJpZmllci5jLTQ5OTQtXHQgKiBORVRfSVBfQUxJR04gaXMgdW5pdmVyc2FsbHkgc2V0IHRvICYjMzk7MiYjMzk7LiAgQW5kIG9uIHBsYXRmb3Jtc1xua2VybmVsL2JwZi92ZXJpZmllci5jOjQ5OTU6XHQgKiB0aGF0IGRvIHNldCBDT05GSUdfSEFWRV9FRkZJQ0lFTlRfVU5BTElHTkVEX0FDQ0VTUywgd2UgZ2V0XG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtNDk5Ni1cdCAqIHRvIHRoaXMgY29kZSBvbmx5IGluIHN0cmljdCBtb2RlIHdoZXJlIHdlIHdhbnQgdG8gZW11bGF0ZVxuLS1cbmtlcm5lbC9icGYvdmVyaWZpZXIuYz01MTQ3PXN0YXRpYyBpbnQgY2hlY2tfbWF4X3N0YWNrX2RlcHRoX3N1YnByb2coc3RydWN0IGJwZl92ZXJpZmllcl9lbnYgKmVudiwgaW50IGlkeCxcbi0tXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtNTE5MS1cdHN1YnByb2dfZGVwdGggPSByb3VuZF91cF9zdGFja19kZXB0aChlbnYsIHN1YnByb2dbaWR4XS5zdGFja19kZXB0aCk7XG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM6NTE5MjpcdGlmIChJU19FTkFCTEVEKENPTkZJR19YODZfNjQpIFx1MDAyNlx1MDAyNiBzdWJwcm9nW2lkeF0uc3RhY2tfYXJnX2NudCkge1xua2VybmVsL2JwZi92ZXJpZmllci5jLTUxOTMtXHRcdC8qIHg4Ni02NCB1c2VzIFI5IGZvciBib3RoIHByaXZhdGUgc3RhY2sgZnJhbWUgcG9pbnRlciBhbmQgYXJnNi4gKi9cbi0tXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM9NTcwMT1CVEZfVFlQRV9TQUZFX1JDVV9PUl9OVUxMKHN0cnVjdCBtbV9zdHJ1Y3QpIHtcbmtlcm5lbC9icGYvdmVyaWZpZXIuYy01NzAyLVx0c3RydWN0IGZpbGUgX19yY3UgKmV4ZV9maWxlO1xua2VybmVsL2JwZi92ZXJpZmllci5jOjU3MDM6I2lmZGVmIENPTkZJR19NRU1DR1xua2VybmVsL2JwZi92ZXJpZmllci5jLTU3MDQtXHRzdHJ1Y3QgdGFza19zdHJ1Y3QgX19yY3UgKm93bmVyO1xuLS1cbmtlcm5lbC9icGYvdmVyaWZpZXIuYz01OTYxPXN0YXRpYyBpbnQgY2hlY2tfcHRyX3RvX21hcF9hY2Nlc3Moc3RydWN0IGJwZl92ZXJpZmllcl9lbnYgKmVudixcbi0tXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtNTk3NS1cdGlmICghYnRmX3ZtbGludXgpIHtcbmtlcm5lbC9icGYvdmVyaWZpZXIuYzo1OTc2Olx0XHR2ZXJib3NlKGVudiwgXCYjMzQ7bWFwX3B0ciBhY2Nlc3Mgbm90IHN1cHBvcnRlZCB3aXRob3V0IENPTkZJR19ERUJVR19JTkZPX0JURlxcblwmIzM0Oyk7XG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtNTk3Ny1cdFx0cmV0dXJuIC1FTk9UU1VQUDtcbi0tXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM9NzIyNT1zdGF0aWMgaW50IHByb2Nlc3NfdGltZXJfZnVuYyhzdHJ1Y3QgYnBmX3ZlcmlmaWVyX2VudiAqZW52LCBzdHJ1Y3QgYnBmX3JlZ19zdGF0ZSAqcmVnLCBhcmdub190IGFyZ25vLFxuLS1cbmtlcm5lbC9icGYvdmVyaWZpZXIuYy03MjI3LXtcbmtlcm5lbC9icGYvdmVyaWZpZXIuYzo3MjI4Olx0aWYgKElTX0VOQUJMRUQoQ09ORklHX1BSRUVNUFRfUlQpKSB7XG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtNzIyOS1cdFx0dmVyYm9zZShlbnYsIFwmIzM0O2JwZl90aW1lciBjYW5ub3QgYmUgdXNlZCBmb3IgUFJFRU1QVF9SVC5cXG5cJiMzNDspO1xuLS1cbmtlcm5lbC9icGYvdmVyaWZpZXIuYz03ODA0PXN0YXRpYyBjb25zdCBzdHJ1Y3QgYnBmX3JlZ190eXBlcyBzb2NrX3R5cGVzID0ge1xuLS1cbmtlcm5lbC9icGYvdmVyaWZpZXIuYy03ODEyLVxua2VybmVsL2JwZi92ZXJpZmllci5jOjc4MTM6I2lmZGVmIENPTkZJR19ORVRcbmtlcm5lbC9icGYvdmVyaWZpZXIuYy03ODE0LXN0YXRpYyBjb25zdCBzdHJ1Y3QgYnBmX3JlZ190eXBlcyBidGZfaWRfc29ja19jb21tb25fdHlwZXMgPSB7XG4tLVxua2VybmVsL2JwZi92ZXJpZmllci5jPTc4ODc9c3RhdGljIGNvbnN0IHN0cnVjdCBicGZfcmVnX3R5cGVzICpjb21wYXRpYmxlX3JlZ190eXBlc1tfX0JQRl9BUkdfVFlQRV9NQVhdID0ge1xuLS1cbmtlcm5lbC9icGYvdmVyaWZpZXIuYy03ODk1LVx0W0FSR19QVFJfVE9fU09DS19DT01NT05dXHQ9IFx1MDAyNnNvY2tfdHlwZXMsXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM6Nzg5NjojaWZkZWYgQ09ORklHX05FVFxua2VybmVsL2JwZi92ZXJpZmllci5jLTc4OTctXHRbQVJHX1BUUl9UT19CVEZfSURfU09DS19DT01NT05dXHQ9IFx1MDAyNmJ0Zl9pZF9zb2NrX2NvbW1vbl90eXBlcyxcbi0tXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM9MTAyNDU9c3RhdGljIGludCBjaGVja19oZWxwZXJfY2FsbChzdHJ1Y3QgYnBmX3ZlcmlmaWVyX2VudiAqZW52LCBzdHJ1Y3QgYnBmX2luc24gKmluc24sXG4tLVxua2VybmVsL2JwZi92ZXJpZmllci5jLTEwNjg1LVxua2VybmVsL2JwZi92ZXJpZmllci5jOjEwNjg2OiNpZmRlZiBDT05GSUdfUEVSRl9FVkVOVFNcbmtlcm5lbC9icGYvdmVyaWZpZXIuYy0xMDY4Ny1cdFx0ZXJyID0gZ2V0X2NhbGxjaGFpbl9idWZmZXJzKHN5c2N0bF9wZXJmX2V2ZW50X21heF9zdGFjayk7XG4tLVxua2VybmVsL2JwZi92ZXJpZmllci5jLTEwNjkwLVx0XHRlcnIgPSAtRU5PVFNVUFA7XG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM6MTA2OTE6XHRcdGVycl9zdHIgPSBcJiMzNDtmdW5jICVzIyVkIG5vdCBzdXBwb3J0ZWQgd2l0aG91dCBDT05GSUdfUEVSRl9FVkVOVFNcXG5cJiMzNDs7XG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtMTA2OTItI2VuZGlmXG4tLVxua2VybmVsL2JwZi92ZXJpZmllci5jPTExMTgxPUJURl9JRChmdW5jLCBicGZfcmJ0cmVlX3JpZ2h0KVxua2VybmVsL2JwZi92ZXJpZmllci5jOjExMTgyOiNpZmRlZiBDT05GSUdfTkVUXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtMTExODMtQlRGX0lEKGZ1bmMsIGJwZl9keW5wdHJfZnJvbV9za2IpXG4tLVxua2VybmVsL2JwZi92ZXJpZmllci5jPTExMjAzPUJURl9JRChmdW5jLCBicGZfcHJlZW1wdF9lbmFibGUpXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM6MTEyMDQ6I2lmZGVmIENPTkZJR19DR1JPVVBTXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtMTEyMDUtQlRGX0lEKGZ1bmMsIGJwZl9pdGVyX2Nzc190YXNrX25ldylcbi0tXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM9MTEyMDc9QlRGX0lEX1VOVVNFRFxua2VybmVsL2JwZi92ZXJpZmllci5jLTExMjA4LSNlbmRpZlxua2VybmVsL2JwZi92ZXJpZmllci5jOjExMjA5OiNpZmRlZiBDT05GSUdfQlBGX0VWRU5UU1xua2VybmVsL2JwZi92ZXJpZmllci5jLTExMjEwLUJURl9JRChmdW5jLCBicGZfc2Vzc2lvbl9jb29raWUpXG4tLVxua2VybmVsL2JwZi92ZXJpZmllci5jPTExMjE5PUJURl9JRChmdW5jLCBicGZfaXRlcl9udW1fZGVzdHJveSlcbmtlcm5lbC9icGYvdmVyaWZpZXIuYzoxMTIyMDojaWZkZWYgQ09ORklHX0JQRl9MU01cbmtlcm5lbC9icGYvdmVyaWZpZXIuYy0xMTIyMS1CVEZfSUQoZnVuYywgYnBmX3NldF9kZW50cnlfeGF0dHIpXG4tLVxua2VybmVsL2JwZi92ZXJpZmllci5jPTExMjM4PUJURl9JRChmdW5jLCBicGZfYXJlbmFfcmVzZXJ2ZV9wYWdlcylcbmtlcm5lbC9icGYvdmVyaWZpZXIuYzoxMTIzOTojaWZkZWYgQ09ORklHX0JQRl9FVkVOVFNcbmtlcm5lbC9icGYvdmVyaWZpZXIuYy0xMTI0MC1CVEZfSUQoZnVuYywgYnBmX3Nlc3Npb25faXNfcmV0dXJuKVxuLS1cbmtlcm5lbC9icGYvdmVyaWZpZXIuYz0xNDUzNj1zdGF0aWMgdm9pZCBzY2FsYXJfYnl0ZV9zd2FwKHN0cnVjdCBicGZfcmVnX3N0YXRlICpkc3RfcmVnLCBzdHJ1Y3QgYnBmX2luc24gKmluc24pXG4tLVxua2VybmVsL2JwZi92ZXJpZmllci5jLTE0NTUxLVx0Ym9vbCBpc19iaWdfZW5kaWFuO1xua2VybmVsL2JwZi92ZXJpZmllci5jOjE0NTUyOiNpZmRlZiBDT05GSUdfQ1BVX0JJR19FTkRJQU5cbmtlcm5lbC9icGYvdmVyaWZpZXIuYy0xNDU1My1cdGlzX2JpZ19lbmRpYW4gPSB0cnVlO1xuLS1cbmtlcm5lbC9icGYvdmVyaWZpZXIuYz0xNjczMD1ib29sIGJwZl92ZXJpZmllcl9pbmxpbmVzX2hlbHBlcl9jYWxsKHN0cnVjdCBicGZfdmVyaWZpZXJfZW52ICplbnYsIHMzMiBpbW0pXG4tLVxua2VybmVsL2JwZi92ZXJpZmllci5jLTE2NzMyLVx0c3dpdGNoIChpbW0pIHtcbmtlcm5lbC9icGYvdmVyaWZpZXIuYzoxNjczMzojaWZkZWYgQ09ORklHX1g4Nl82NFxua2VybmVsL2JwZi92ZXJpZmllci5jLTE2NzM0LVx0Y2FzZSBCUEZfRlVOQ19nZXRfc21wX3Byb2Nlc3Nvcl9pZDpcbmtlcm5lbC9icGYvdmVyaWZpZXIuYzoxNjczNTojaWZkZWYgQ09ORklHX1NNUFxua2VybmVsL2JwZi92ZXJpZmllci5jLTE2NzM2LVx0Y2FzZSBCUEZfRlVOQ19nZXRfY3VycmVudF90YXNrX2J0Zjpcbi0tXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM9MTc3NjQ9c3RhdGljIGludCBjaGVja19wc2V1ZG9fYnRmX2lkKHN0cnVjdCBicGZfdmVyaWZpZXJfZW52ICplbnYsXG4tLVxua2VybmVsL2JwZi92ZXJpZmllci5jLTE3NzgwLVx0XHRpZiAoIWJ0Zl92bWxpbnV4KSB7XG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM6MTc3ODE6XHRcdFx0dmVyYm9zZShlbnYsIFwmIzM0O2tlcm5lbCBpcyBtaXNzaW5nIEJURiwgbWFrZSBzdXJlIENPTkZJR19ERUJVR19JTkZPX0JURj15IGlzIHNwZWNpZmllZCBpbiBLY29uZmlnLlxcblwmIzM0Oyk7XG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtMTc3ODItXHRcdFx0cmV0dXJuIC1FSU5WQUw7XG4tLVxua2VybmVsL2JwZi92ZXJpZmllci5jPTE4NzUyPXN0YXRpYyBpbnQgY2hlY2tfc3RydWN0X29wc19idGZfaWQoc3RydWN0IGJwZl92ZXJpZmllcl9lbnYgKmVudilcbi0tXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtMTg4NjItXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM6MTg4NjM6I2lmZGVmIENPTkZJR19GVU5DVElPTl9FUlJPUl9JTkpFQ1RJT05cbmtlcm5lbC9icGYvdmVyaWZpZXIuYy0xODg2NC1cbi0tXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM9MTg4NzI9QlRGX0lEKGZ1bmMsIF9fZmlsZW1hcF9hZGRfZm9saW8pXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM6MTg4NzM6I2lmZGVmIENPTkZJR19GQUlMX1BBR0VfQUxMT0Ncbmtlcm5lbC9icGYvdmVyaWZpZXIuYy0xODg3NC1CVEZfSUQoZnVuYywgc2hvdWxkX2ZhaWxfYWxsb2NfcGFnZSlcbmtlcm5lbC9icGYvdmVyaWZpZXIuYy0xODg3NS0jZW5kaWZcbmtlcm5lbC9icGYvdmVyaWZpZXIuYzoxODg3NjojaWZkZWYgQ09ORklHX0ZBSUxTTEFCXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtMTg4NzctQlRGX0lEKGZ1bmMsIHNob3VsZF9mYWlsc2xhYilcbi0tXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM9MTg5NDQ9c3RhdGljIGludCBjaGVja19hdHRhY2hfbW9kaWZ5X3JldHVybih1bnNpZ25lZCBsb25nIGFkZHIsIGNvbnN0IGNoYXIgKmZ1bmNfbmFtZSlcbi0tXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtMTg5NTItXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM6MTg5NTM6I2VuZGlmIC8qIENPTkZJR19GVU5DVElPTl9FUlJPUl9JTkpFQ1RJT04gKi9cbmtlcm5lbC9icGYvdmVyaWZpZXIuYy0xODk1NC1cbi0tXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM9MTkzNDI9QlRGX0lEX1VOVVNFRFxua2VybmVsL2JwZi92ZXJpZmllci5jOjE5MzQzOiNpZmRlZiBDT05GSUdfU01QXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtMTkzNDQtQlRGX0lEKGZ1bmMsIF9fX21pZ3JhdGVfZW5hYmxlKVxuLS1cbmtlcm5lbC9icGYvdmVyaWZpZXIuYz0xOTM0Nj1CVEZfSUQoZnVuYywgbWlncmF0ZV9lbmFibGUpXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtMTkzNDctI2VuZGlmXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM6MTkzNDg6I2lmICFkZWZpbmVkIENPTkZJR19QUkVFTVBUX1JDVSBcdTAwMjZcdTAwMjYgIWRlZmluZWQgQ09ORklHX1RJTllfUkNVXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtMTkzNDktQlRGX0lEKGZ1bmMsIHJjdV9yZWFkX3VubG9ja19zdHJpY3QpXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtMTkzNTAtI2VuZGlmXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM6MTkzNTE6I2lmIGRlZmluZWQoQ09ORklHX0RFQlVHX1BSRUVNUFQpIHx8IGRlZmluZWQoQ09ORklHX1RSQUNFX1BSRUVNUFRfVE9HR0xFKVxua2VybmVsL2JwZi92ZXJpZmllci5jLTE5MzUyLUJURl9JRChmdW5jLCBwcmVlbXB0X2NvdW50X2FkZClcbmtlcm5lbC9icGYvdmVyaWZpZXIuYz0xOTM1Mz1CVEZfSUQoZnVuYywgcHJlZW1wdF9jb3VudF9zdWIpXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtMTkzNTQtI2VuZGlmXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM6MTkzNTU6I2lmZGVmIENPTkZJR19QUkVFTVBUX1JDVVxua2VybmVsL2JwZi92ZXJpZmllci5jLTE5MzU2LUJURl9JRChmdW5jLCBfX3JjdV9yZWFkX2xvY2spXG4tLVxua2VybmVsL2JwZi92ZXJpZmllci5jPTE5MzY1PUJURl9TRVRfU1RBUlQobm9yZXR1cm5fZGVueSlcbmtlcm5lbC9icGYvdmVyaWZpZXIuYzoxOTM2NjojaWZkZWYgQ09ORklHX0lBMzJfRU1VTEFUSU9OXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtMTkzNjctQlRGX0lEKGZ1bmMsIF9faWEzMl9zeXNfZXhpdClcbmtlcm5lbC9icGYvdmVyaWZpZXIuYz0xOTM2OD1CVEZfSUQoZnVuYywgX19pYTMyX3N5c19leGl0X2dyb3VwKVxua2VybmVsL2JwZi92ZXJpZmllci5jLTE5MzY5LSNlbmRpZlxua2VybmVsL2JwZi92ZXJpZmllci5jOjE5MzcwOiNpZmRlZiBDT05GSUdfS1VOSVRcbmtlcm5lbC9icGYvdmVyaWZpZXIuYy0xOTM3MS1CVEZfSUQoZnVuYywgX19rdW5pdF9hYm9ydClcbmtlcm5lbC9icGYvdmVyaWZpZXIuYz0xOTM3Mj1CVEZfSUQoZnVuYywga3VuaXRfdHJ5X2NhdGNoX3Rocm93KVxua2VybmVsL2JwZi92ZXJpZmllci5jLTE5MzczLSNlbmRpZlxua2VybmVsL2JwZi92ZXJpZmllci5jOjE5Mzc0OiNpZmRlZiBDT05GSUdfTU9EVUxFU1xua2VybmVsL2JwZi92ZXJpZmllci5jLTE5Mzc1LUJURl9JRChmdW5jLCBfX21vZHVsZV9wdXRfYW5kX2t0aHJlYWRfZXhpdClcbmtlcm5lbC9icGYvdmVyaWZpZXIuYy0xOTM3Ni0jZW5kaWZcbmtlcm5lbC9icGYvdmVyaWZpZXIuYzoxOTM3NzojaWZkZWYgQ09ORklHX1g4Nl82NFxua2VybmVsL2JwZi92ZXJpZmllci5jLTE5Mzc4LUJURl9JRChmdW5jLCBfX3g2NF9zeXNfZXhpdClcbi0tXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM9MTk1NzA9c3RydWN0IGJ0ZiAqYnBmX2dldF9idGZfdm1saW51eCh2b2lkKVxuLS1cbmtlcm5lbC9icGYvdmVyaWZpZXIuYy0xOTU3NC1cbmtlcm5lbC9icGYvdmVyaWZpZXIuYzoxOTU3NTpcdGlmICghYnRmIFx1MDAyNlx1MDAyNiBJU19FTkFCTEVEKENPTkZJR19ERUJVR19JTkZPX0JURikpIHtcbmtlcm5lbC9icGYvdmVyaWZpZXIuYy0xOTU3Ni1cdFx0bXV0ZXhfbG9jayhcdTAwMjZidGZfdm1saW51eF9sb2NrKTtcbi0tXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM9MjAwNDE9aW50IGJwZl9jaGVjayhzdHJ1Y3QgYnBmX3Byb2cgKipwcm9nLCB1bmlvbiBicGZfYXR0ciAqYXR0ciwgYnBmcHRyX3QgdWF0dHIsXG4tLVxua2VybmVsL2JwZi92ZXJpZmllci5jLTIwMTI4LVx0ZW52LVx1MDAzZXN0cmljdF9hbGlnbm1lbnQgPSAhIShhdHRyLVx1MDAzZXByb2dfZmxhZ3MgXHUwMDI2IEJQRl9GX1NUUklDVF9BTElHTk1FTlQpO1xua2VybmVsL2JwZi92ZXJpZmllci5jOjIwMTI5Olx0aWYgKCFJU19FTkFCTEVEKENPTkZJR19IQVZFX0VGRklDSUVOVF9VTkFMSUdORURfQUNDRVNTKSlcbmtlcm5lbC9icGYvdmVyaWZpZXIuYy0yMDEzMC1cdFx0ZW52LVx1MDAzZXN0cmljdF9hbGlnbm1lbnQgPSB0cnVlO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjkvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzEwIDExOjM1PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDExNTA5CgkJCQkJCQlvdXRwdXQ6IDk4CgkJCQkJCQl0aG91Z2h0czogMTM3CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgQlBGIFZlcmlmaWVyIFBhdGNoKioKCk9rYXksIHNvIHRoaXMgcGF0Y2ggaXMgc2l0dGluZyB3aXRoaW4gYGNoZWNrX21lbV9hY2Nlc3NgLCB3aGljaCBpcyB0aGUgZnVuY3Rpb24gdGhhdCBnZXRzIGNhbGxlZCB3aGVuZXZlciBhIEJQRiBwcm9ncmFtIGFjY2Vzc2VzIG1lbW9yeS4gSXQmIzM5O3MgdGllZCB0byB0aGlzIGBCUEZfU1lTQ0FMTGAgY29uZmlnLCB3aGljaCBtYWtlcyBzZW5zZS4gTG9va2luZyBhdCB0aGUgcmVhc29uaW5nLCBpdCYjMzk7cyBhIGJ1ZyBmaXggaW4gdGhlIEJQRiB2ZXJpZmllciBpdHNlbGYuIFNwZWNpZmljYWxseSwgYSBzaWduLWV4dGVuZGluZyBsb2FkIGNvdWxkIGJlIGtlZXBpbmcgYSBzaGFyZWQgc2NhbGFyIElELCB3aGljaCB0aHJvd3Mgb2ZmIHRoZSBib3VuZHMgdHJhY2tpbmcuIFJpZ2h0LCBzbyBhIGNvcmUgbG9naWMgY2hhbmdlIGluIHRoZSB2ZXJpZmllcjsgdGhhdCBkZWZpbml0ZWx5IHdhcnJhbnRzIHNvbWUgZnV6emluZy4KCk5vdywgdGhlIHF1ZXN0aW9uIGlzIHdoZXRoZXIgYEJQRl9TWVNDQUxMYCBpcyAqc3VmZmljaWVudCogZm9yIGVuYWJsaW5nIHRoZSB2ZXJpZmllciBpbiB0aGUgZmlyc3QgcGxhY2UuIEkgbmVlZCB0byB2ZXJpZnkgdGhhdC4gQWgsIHllcywgY29uZmlybWVkLiBFbmFibGluZyBgQlBGX1NZU0NBTExgIGFsc28gZW5hYmxlcyB0aGUgdmVyaWZpZXIsIHNvIHdlIGFyZSBnb29kIHRvIGdvLgoKVGltZSB0byBjYWxsIGBzZXQtcmVzdWx0c2AuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzEwIDExOjM1PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+c2V0LXJlc3VsdHM8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtCUEZfU1lTQ0FMTCYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2NoZWNrX21lbV9hY2Nlc3MmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggZml4ZXMgYSBidWcgaW4gdGhlIEJQRiB2ZXJpZmllciB3aGVyZSBhIHNpZ24tZXh0ZW5kaW5nIGxvYWQgY291bGQgaW5jb3JyZWN0bHkga2VlcCBhIHNoYXJlZCBzY2FsYXIgSUQsIGxlYWRpbmcgdG8gaW5jb3JyZWN0IGJvdW5kcyB0cmFja2luZy4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSB2ZXJpZmllciYjMzk7cyBjb3JlIGxvZ2ljIGFuZCBzaG91bGQgYmUgZnV6emVkLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtCUEZfU1lTQ0FMTCYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2NoZWNrX21lbV9hY2Nlc3MmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggZml4ZXMgYSBidWcgaW4gdGhlIEJQRiB2ZXJpZmllciB3aGVyZSBhIHNpZ24tZXh0ZW5kaW5nIGxvYWQgY291bGQgaW5jb3JyZWN0bHkga2VlcCBhIHNoYXJlZCBzY2FsYXIgSUQsIGxlYWRpbmcgdG8gaW5jb3JyZWN0IGJvdW5kcyB0cmFja2luZy4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSB2ZXJpZmllciYjMzk7cyBjb3JlIGxvZ2ljIGFuZCBzaG91bGQgYmUgZnV6emVkLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTwvdGJvZHk+Cgk8L3RhYmxlPgoKCTxkaXYgaWQ9ImxsbV9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+TExNIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgVG9rZW5zPC90aD4KCQkJCQk8dGg+QXZnIFRva2VuczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJsbG1fc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJ0b29sX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5Ub29sIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9InRvb2xfc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJkdXJhdGlvbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+Cgk8ZGl2IGlkPSJ0b2tlbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+CgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9qc2FwaSI+PC9zY3JpcHQ+Cgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CgkJZ29vZ2xlLmxvYWQoInZpc3VhbGl6YXRpb24iLCAiMSIsIHtwYWNrYWdlczpbImNvcmVjaGFydCJdfSk7CgkJZ29vZ2xlLnNldE9uTG9hZENhbGxiYWNrKGRyYXdDaGFydHMpOwoKCQlmdW5jdGlvbiBkcmF3Q2hhcnRzKCkgewoJCQljb25zdCByYXdEYXRhID0gW3siU3RhcnRlZCI6IjIwMjYtMDctMTBUMTE6MzU6MDIuMTg1NTE5MDAzWiIsIlNlcSI6MCwiTmVzdGluZyI6MCwiVHlwZSI6ImZsb3ciLCJOYW1lIjoicGF0Y2gtdHJpYWdlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTc0MzE3MDk2MDAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiQlBGX1NZU0NBTExcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJjaGVja19tZW1fYWNjZXNzXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggZml4ZXMgYSBidWcgaW4gdGhlIEJQRiB2ZXJpZmllciB3aGVyZSBhIHNpZ24tZXh0ZW5kaW5nIGxvYWQgY291bGQgaW5jb3JyZWN0bHkga2VlcCBhIHNoYXJlZCBzY2FsYXIgSUQsIGxlYWRpbmcgdG8gaW5jb3JyZWN0IGJvdW5kcyB0cmFja2luZy4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSB2ZXJpZmllcidzIGNvcmUgbG9naWMgYW5kIHNob3VsZCBiZSBmdXp6ZWQuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTEwVDExOjM1OjAyLjE4NTUyNDQyM1oiLCJTZXEiOjEsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoicmVhZC1wYXRjaC1kaWZmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NTQ2NTA3ODc2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJQYXRjaERpZmZcIjogXCJjb21taXQgNTMzNTg5Zjk1N2UzOWIzZTgwYTIwZThhZTM3MDE3YjQ0MjJmYTNmM1xcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXFx1MDAzZVxcbkRhdGU6ICAgRnJpIEp1bCAxMCAxMTozNDo1OSAyMDI2ICswMDAwXFxuXFxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xcblxcbmRpZmYgLS1naXQgYS9rZXJuZWwvYnBmL3ZlcmlmaWVyLmMgYi9rZXJuZWwvYnBmL3ZlcmlmaWVyLmNcXG5pbmRleCAyMzM0NzJhODcxYmU1Ny4uYTA4MzBhZDZiZWJiZTIgMTAwNjQ0XFxuLS0tIGEva2VybmVsL2JwZi92ZXJpZmllci5jXFxuKysrIGIva2VybmVsL2JwZi92ZXJpZmllci5jXFxuQEAgLTYzOTQsMTEgKzYzOTQsMjMgQEAgc3RhdGljIGludCBjaGVja19tZW1fYWNjZXNzKHN0cnVjdCBicGZfdmVyaWZpZXJfZW52ICplbnYsIGludCBpbnNuX2lkeCwgc3RydWN0IGJcXG4gXFxuIFxcdGlmICghZXJyIFxcdTAwMjZcXHUwMDI2IHNpemUgXFx1MDAzYyBCUEZfUkVHX1NJWkUgXFx1MDAyNlxcdTAwMjYgdmFsdWVfcmVnbm8gXFx1MDAzZT0gMCBcXHUwMDI2XFx1MDAyNiB0ID09IEJQRl9SRUFEIFxcdTAwMjZcXHUwMDI2XFxuIFxcdCAgICByZWdzW3ZhbHVlX3JlZ25vXS50eXBlID09IFNDQUxBUl9WQUxVRSkge1xcbi1cXHRcXHRpZiAoIWlzX2xkc3gpXFxuK1xcdFxcdGlmICghaXNfbGRzeCkge1xcbiBcXHRcXHRcXHQvKiBiL2gvdyBsb2FkIHplcm8tZXh0ZW5kcywgbWFyayB1cHBlciBiaXRzIGFzIGtub3duIDAgKi9cXG4gXFx0XFx0XFx0Y29lcmNlX3JlZ190b19zaXplKFxcdTAwMjZyZWdzW3ZhbHVlX3JlZ25vXSwgc2l6ZSk7XFxuLVxcdFxcdGVsc2VcXG4rXFx0XFx0fSBlbHNlIHtcXG4rXFx0XFx0XFx0LypcXG4rXFx0XFx0XFx0ICogU2lnbi1leHRlbnNpb24gY2FuIGNoYW5nZSB0aGUgcmVnaXN0ZXIgdmFsdWUgcmVsYXRpdmVcXG4rXFx0XFx0XFx0ICogdG8gYSBzY2FsYXIgaXQgaXMgbGlua2VkIHdpdGggYnkgaWQgKGUuZy4gYSB6ZXJvLVxcbitcXHRcXHRcXHQgKiBleHRlbmRpbmcgZmlsbCBvZiB0aGUgc2FtZSBzcGlsbGVkIHN0YWNrIHNsb3QpLCB0aHVzXFxuK1xcdFxcdFxcdCAqIGRyb3AgdGhlIHNoYXJlZCBpZCBpbiB0aGF0IGNhc2UuXFxuK1xcdFxcdFxcdCAqL1xcbitcXHRcXHRcXHRib29sIG5vX3NleHQgPSByZWdfdW1heChcXHUwMDI2cmVnc1t2YWx1ZV9yZWdub10pIFxcdTAwM2NcXG4rXFx0XFx0XFx0XFx0XFx0KDFVTEwgXFx1MDAzY1xcdTAwM2MgKHNpemUgKiBCSVRTX1BFUl9CWVRFIC0gMSkpO1xcbitcXG4gXFx0XFx0XFx0Y29lcmNlX3JlZ190b19zaXplX3N4KFxcdTAwMjZyZWdzW3ZhbHVlX3JlZ25vXSwgc2l6ZSk7XFxuK1xcdFxcdFxcdGlmICghbm9fc2V4dClcXG4rXFx0XFx0XFx0XFx0Y2xlYXJfc2NhbGFyX2lkKFxcdTAwMjZyZWdzW3ZhbHVlX3JlZ25vXSk7XFxuK1xcdFxcdH1cXG4gXFx0fVxcbiBcXHRyZXR1cm4gZXJyO1xcbiB9XFxuZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9zY2FsYXJfaWRzLmMgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfc2NhbGFyX2lkcy5jXFxuaW5kZXggZTM4ZjEwMmRhNDVmMmUuLjY2M2QxNWZjNWZkMjZhIDEwMDY0NFxcbi0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9zY2FsYXJfaWRzLmNcXG4rKysgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfc2NhbGFyX2lkcy5jXFxuQEAgLTQsNiArNCwxMyBAQFxcbiAjaW5jbHVkZSBcXHUwMDNjYnBmL2JwZl9oZWxwZXJzLmhcXHUwMDNlXFxuICNpbmNsdWRlIFxcXCJicGZfbWlzYy5oXFxcIlxcbiBcXG4rc3RydWN0IHtcXG4rXFx0X191aW50KHR5cGUsIEJQRl9NQVBfVFlQRV9IQVNIKTtcXG4rXFx0X191aW50KG1heF9lbnRyaWVzLCAxKTtcXG4rXFx0X190eXBlKGtleSwgbG9uZyBsb25nKTtcXG4rXFx0X190eXBlKHZhbHVlLCBsb25nIGxvbmcpO1xcbit9IG1hcF9oYXNoXzhiIFNFQyhcXFwiLm1hcHNcXFwiKTtcXG4rXFxuIC8qIENoZWNrIHRoYXQgcHJlY2lzaW9uIG1hcmtzIHByb3BhZ2F0ZSB0aHJvdWdoIHNjYWxhciBJRHMuXFxuICAqIFJlZ2lzdGVycyByezAsMSwyfSBoYXZlIHRoZSBzYW1lIHNjYWxhciBJRC5cXG4gICogUmFuZ2UgaW5mb3JtYXRpb24gaXMgcHJvcGFnYXRlZCBmb3Igc2NhbGFycyBzaGFyaW5nIHNhbWUgSUQuXFxuQEAgLTkxNSw0ICs5MjIsNTMgQEAgX19uYWtlZCB2b2lkIGxpbmtlZF9yZWdzX2FuZF9zdWJyZWdfZGVmKHZvaWQpXFxuIFxcdDogX19jbG9iYmVyX2FsbCk7XFxuIH1cXG4gXFxuKy8qXFxuKyAqIEEgc2NhbGFyIGlzIHNwaWxsZWQgdG8gdGhlIHN0YWNrIGFuZCB0aGVuIGZpbGxlZCB0d2ljZTogb25jZSB2aWEgYVxcbisgKiBzaWduLWV4dGVuZGluZyBsb2FkIChCUEZfTUVNU1gpIGludG8gcjQgYW5kIG9uY2UgdmlhIGEgemVyby1leHRlbmRpbmdcXG4rICogbG9hZCAoQlBGX01FTSkgaW50byByNS4gY29lcmNlX3JlZ190b19zaXplX3N4KCkgZ2l2ZXMgcjQgYSBkaWZmZXJlbnRcXG4rICogdmFsdWUgdGhhbiB0aGUgc3BpbGxlZC96ZXJvLWV4dGVuZGVkIHNpYmxpbmdzLCBzbyByNCBtdXN0IG5vdCBrZWVwIHRoZVxcbisgKiBzaGFyZWQgc2NhbGFyIGlkLiBPdGhlcndpc2UgdGhlIGxhdGVyICdpZiByNSA9PSAweDgwMDAwMDAwJyByZWZpbmVzIHI0XFxuKyAqIHRocm91Z2ggc3luY19saW5rZWRfcmVncygpIHRvIGEga25vd24gMHg4MDAwMDAwMCwgd2hpbGUgYXQgcnVudGltZSByNFxcbisgKiBpcyB0aGUgc2lnbi1leHRlbmRlZCAweGZmZmZmZmZmODAwMDAwMDAuIFRoZSB0ZXN0IHR1cm5zIHRoYXQgZGlzY3JlcGFuY3lcXG4rICogaW50byBhbiBvdXQtb2YtYm91bmRzIG1hcCB2YWx1ZSBhY2Nlc3MgKHI0IFxcdTAwM2VcXHUwMDNlIDYzIGlzIGJlbGlldmVkIDAgYnV0IGlzIDFcXG4rICogYXQgcnVudGltZSksIHdoaWNoIG11c3QgYmUgcmVqZWN0ZWQuXFxuKyAqL1xcbitTRUMoXFxcInNvY2tldFxcXCIpXFxuK19fZmFpbHVyZSBfX21zZyhcXFwiUjAgbWF4IHZhbHVlIGlzIG91dHNpZGUgb2YgdGhlIGFsbG93ZWQgbWVtb3J5IHJhbmdlXFxcIilcXG4rX19uYWtlZCB2b2lkIGxkc3hfZmlsbF9zY2FsYXJfaWRfbm90X3NoYXJlZCh2b2lkKVxcbit7XFxuK1xcdGFzbSB2b2xhdGlsZSAoXFxcIlxcdFxcdFxcdFxcdFxcdFxcXFxcXG4rXFx0cjEgPSAwO1xcdFxcdFxcdFxcdFxcdFxcdFxcXFxcXG4rXFx0Kih1NjQqKShyMTAgLSA4KSA9IHIxO1xcdFxcdFxcdFxcdFxcXFxcXG4rXFx0cjIgPSByMTA7XFx0XFx0XFx0XFx0XFx0XFxcXFxcbitcXHRyMiArPSAtODtcXHRcXHRcXHRcXHRcXHRcXFxcXFxuK1xcdHIxID0gJVttYXBfaGFzaF84Yl0gbGw7XFx0XFx0XFx0XFx0XFxcXFxcbitcXHRjYWxsICVbYnBmX21hcF9sb29rdXBfZWxlbV07XFx0XFx0XFx0XFxcXFxcbitcXHRpZiByMCA9PSAwIGdvdG8gbDBfJT07XFx0XFx0XFx0XFx0XFxcXFxcbitcXHQvKiByNyA9IHVua25vd24gdTMyLCBrZWVwIG9ubHkgYml0IDMxICovXFx0XFxcXFxcbitcXHRyNyA9ICoodTMyKikocjAgKyAwKTtcXHRcXHRcXHRcXHRcXFxcXFxuK1xcdHIyID0gMHg4MDAwMDAwMCBsbDtcXHRcXHRcXHRcXHRcXFxcXFxuK1xcdHI3IFxcdTAwMjY9IHIyO1xcdFxcdFxcdFxcdFxcdFxcXFxcXG4rXFx0LyogbGluayByNiBhbmQgcjcgdmlhIGEgZnJlc2ggc2NhbGFyIGlkICovXFx0XFxcXFxcbitcXHRyNiA9IHI3O1xcdFxcdFxcdFxcdFxcdFxcXFxcXG4rXFx0Lyogc3BpbGwgcjcgKHUzMikgdG8gdGhlIHN0YWNrICovXFx0XFx0XFxcXFxcbitcXHQqKHUzMiopKHIxMCAtIDgpID0gcjc7XFx0XFx0XFx0XFx0XFxcXFxcbitcXHQvKiBzaWduLWV4dGVuZGluZyBmaWxsOiBtdXN0IGRyb3AgdGhlIGlkICovXFx0XFxcXFxcbitcXHRyNCA9ICooczMyKikocjEwIC0gOCk7XFx0XFx0XFx0XFx0XFxcXFxcbitcXHQvKiB6ZXJvLWV4dGVuZGluZyBmaWxsOiBrZWVwcyB0aGUgaWQgKi9cXHRcXHRcXFxcXFxuK1xcdHI1ID0gKih1MzIqKShyMTAgLSA4KTtcXHRcXHRcXHRcXHRcXFxcXFxuK1xcdC8qIHI1IGJlY29tZXMga25vd24gMHg4MDAwMDAwMCBvbiBmYWxsLXRocm91Z2ggKi9cXFxcXFxuK1xcdGlmIHI1ICE9IHIyIGdvdG8gbDBfJT07XFx0XFx0XFx0XFx0XFxcXFxcbitcXHQvKiB2ZXJpZmllciBiZWxpZXZlcyByNCA9PSAwIGhlcmUsIHJ1bnRpbWUgaXMgMSAqL1xcXFxcXG4rXFx0cjQgXFx1MDAzZVxcdTAwM2U9IDYzO1xcdFxcdFxcdFxcdFxcdFxcXFxcXG4rXFx0cjAgKz0gcjQ7XFx0XFx0XFx0XFx0XFx0XFxcXFxcbitcXHRyMCA9ICoodTgqKShyMCArIDcpO1xcdFxcdFxcdFxcdFxcXFxcXG4rbDBfJT06XFx0cjAgPSAwO1xcdFxcdFxcdFxcdFxcdFxcdFxcXFxcXG4rXFx0ZXhpdDtcXHRcXHRcXHRcXHRcXHRcXHRcXFxcXFxuK1xcXCJcXHQ6XFxuK1xcdDogX19pbW0oYnBmX21hcF9sb29rdXBfZWxlbSksXFxuK1xcdCAgX19pbW1fYWRkcihtYXBfaGFzaF84YilcXG4rXFx0OiBfX2Nsb2JiZXJfYWxsKTtcXG4rfVxcbitcXG4gY2hhciBfbGljZW5zZVtdIFNFQyhcXFwibGljZW5zZVxcXCIpID0gXFxcIkdQTFxcXCI7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTEwVDExOjM1OjAyLjczMjc2NjY1OVoiLCJTZXEiOjIsIk5lc3RpbmciOjEsIlR5cGUiOiJhZ2VudCIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MTY4ODQ0NDk3NTQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiQlBGX1NZU0NBTExcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJjaGVja19tZW1fYWNjZXNzXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggZml4ZXMgYSBidWcgaW4gdGhlIEJQRiB2ZXJpZmllciB3aGVyZSBhIHNpZ24tZXh0ZW5kaW5nIGxvYWQgY291bGQgaW5jb3JyZWN0bHkga2VlcCBhIHNoYXJlZCBzY2FsYXIgSUQsIGxlYWRpbmcgdG8gaW5jb3JyZWN0IGJvdW5kcyB0cmFja2luZy4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSB2ZXJpZmllcidzIGNvcmUgbG9naWMgYW5kIHNob3VsZCBiZSBmdXp6ZWQuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLlxuWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmVcbmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cblxuSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluXG55b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHlcbnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuXG5cblJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6XG4tIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuXG4tIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLlxuLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuXG4tIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSxcbmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS5cblxuSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaFxudG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuXG5cbldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOlxuMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy5cbiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLlxuMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuXG4gICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuXG4gICBEbyBub3QgbGlzdCB0b28gZ2VuZXJpYyBjb25maWdzICh3ZSBhbHJlYWR5IGhhdmUgdGhlbSBlbmFibGVkKS4gT25seSBsaXN0IHRob3NlIHRoYXRcbiAgIHNwZWNpZmljYWxseSBjb3ZlciB0aGUgbW9kaWZpZWQgY29kZS4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzIG91dHB1dCBhcnJheSxcbiAgIGFuZCBETyBOT1QgYWRkIGEgJ0NPTkZJR18nIHByZWZpeCAoZS5nLiwgcmV0dXJuIFwiTkVUX0lQVjRcIiBpbnN0ZWFkIG9mIFwiQ09ORklHX05FVF9JUFY0XCIpLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgNTMzNTg5Zjk1N2UzOWIzZTgwYTIwZThhZTM3MDE3YjQ0MjJmYTNmM1xuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBGcmkgSnVsIDEwIDExOjM0OjU5IDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEva2VybmVsL2JwZi92ZXJpZmllci5jIGIva2VybmVsL2JwZi92ZXJpZmllci5jXG5pbmRleCAyMzM0NzJhODcxYmU1Ny4uYTA4MzBhZDZiZWJiZTIgMTAwNjQ0XG4tLS0gYS9rZXJuZWwvYnBmL3ZlcmlmaWVyLmNcbisrKyBiL2tlcm5lbC9icGYvdmVyaWZpZXIuY1xuQEAgLTYzOTQsMTEgKzYzOTQsMjMgQEAgc3RhdGljIGludCBjaGVja19tZW1fYWNjZXNzKHN0cnVjdCBicGZfdmVyaWZpZXJfZW52ICplbnYsIGludCBpbnNuX2lkeCwgc3RydWN0IGJcbiBcbiBcdGlmICghZXJyIFx1MDAyNlx1MDAyNiBzaXplIFx1MDAzYyBCUEZfUkVHX1NJWkUgXHUwMDI2XHUwMDI2IHZhbHVlX3JlZ25vIFx1MDAzZT0gMCBcdTAwMjZcdTAwMjYgdCA9PSBCUEZfUkVBRCBcdTAwMjZcdTAwMjZcbiBcdCAgICByZWdzW3ZhbHVlX3JlZ25vXS50eXBlID09IFNDQUxBUl9WQUxVRSkge1xuLVx0XHRpZiAoIWlzX2xkc3gpXG4rXHRcdGlmICghaXNfbGRzeCkge1xuIFx0XHRcdC8qIGIvaC93IGxvYWQgemVyby1leHRlbmRzLCBtYXJrIHVwcGVyIGJpdHMgYXMga25vd24gMCAqL1xuIFx0XHRcdGNvZXJjZV9yZWdfdG9fc2l6ZShcdTAwMjZyZWdzW3ZhbHVlX3JlZ25vXSwgc2l6ZSk7XG4tXHRcdGVsc2VcbitcdFx0fSBlbHNlIHtcbitcdFx0XHQvKlxuK1x0XHRcdCAqIFNpZ24tZXh0ZW5zaW9uIGNhbiBjaGFuZ2UgdGhlIHJlZ2lzdGVyIHZhbHVlIHJlbGF0aXZlXG4rXHRcdFx0ICogdG8gYSBzY2FsYXIgaXQgaXMgbGlua2VkIHdpdGggYnkgaWQgKGUuZy4gYSB6ZXJvLVxuK1x0XHRcdCAqIGV4dGVuZGluZyBmaWxsIG9mIHRoZSBzYW1lIHNwaWxsZWQgc3RhY2sgc2xvdCksIHRodXNcbitcdFx0XHQgKiBkcm9wIHRoZSBzaGFyZWQgaWQgaW4gdGhhdCBjYXNlLlxuK1x0XHRcdCAqL1xuK1x0XHRcdGJvb2wgbm9fc2V4dCA9IHJlZ191bWF4KFx1MDAyNnJlZ3NbdmFsdWVfcmVnbm9dKSBcdTAwM2NcbitcdFx0XHRcdFx0KDFVTEwgXHUwMDNjXHUwMDNjIChzaXplICogQklUU19QRVJfQllURSAtIDEpKTtcbitcbiBcdFx0XHRjb2VyY2VfcmVnX3RvX3NpemVfc3goXHUwMDI2cmVnc1t2YWx1ZV9yZWdub10sIHNpemUpO1xuK1x0XHRcdGlmICghbm9fc2V4dClcbitcdFx0XHRcdGNsZWFyX3NjYWxhcl9pZChcdTAwMjZyZWdzW3ZhbHVlX3JlZ25vXSk7XG4rXHRcdH1cbiBcdH1cbiBcdHJldHVybiBlcnI7XG4gfVxuZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9zY2FsYXJfaWRzLmMgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfc2NhbGFyX2lkcy5jXG5pbmRleCBlMzhmMTAyZGE0NWYyZS4uNjYzZDE1ZmM1ZmQyNmEgMTAwNjQ0XG4tLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfc2NhbGFyX2lkcy5jXG4rKysgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfc2NhbGFyX2lkcy5jXG5AQCAtNCw2ICs0LDEzIEBAXG4gI2luY2x1ZGUgXHUwMDNjYnBmL2JwZl9oZWxwZXJzLmhcdTAwM2VcbiAjaW5jbHVkZSBcImJwZl9taXNjLmhcIlxuIFxuK3N0cnVjdCB7XG4rXHRfX3VpbnQodHlwZSwgQlBGX01BUF9UWVBFX0hBU0gpO1xuK1x0X191aW50KG1heF9lbnRyaWVzLCAxKTtcbitcdF9fdHlwZShrZXksIGxvbmcgbG9uZyk7XG4rXHRfX3R5cGUodmFsdWUsIGxvbmcgbG9uZyk7XG4rfSBtYXBfaGFzaF84YiBTRUMoXCIubWFwc1wiKTtcbitcbiAvKiBDaGVjayB0aGF0IHByZWNpc2lvbiBtYXJrcyBwcm9wYWdhdGUgdGhyb3VnaCBzY2FsYXIgSURzLlxuICAqIFJlZ2lzdGVycyByezAsMSwyfSBoYXZlIHRoZSBzYW1lIHNjYWxhciBJRC5cbiAgKiBSYW5nZSBpbmZvcm1hdGlvbiBpcyBwcm9wYWdhdGVkIGZvciBzY2FsYXJzIHNoYXJpbmcgc2FtZSBJRC5cbkBAIC05MTUsNCArOTIyLDUzIEBAIF9fbmFrZWQgdm9pZCBsaW5rZWRfcmVnc19hbmRfc3VicmVnX2RlZih2b2lkKVxuIFx0OiBfX2Nsb2JiZXJfYWxsKTtcbiB9XG4gXG4rLypcbisgKiBBIHNjYWxhciBpcyBzcGlsbGVkIHRvIHRoZSBzdGFjayBhbmQgdGhlbiBmaWxsZWQgdHdpY2U6IG9uY2UgdmlhIGFcbisgKiBzaWduLWV4dGVuZGluZyBsb2FkIChCUEZfTUVNU1gpIGludG8gcjQgYW5kIG9uY2UgdmlhIGEgemVyby1leHRlbmRpbmdcbisgKiBsb2FkIChCUEZfTUVNKSBpbnRvIHI1LiBjb2VyY2VfcmVnX3RvX3NpemVfc3goKSBnaXZlcyByNCBhIGRpZmZlcmVudFxuKyAqIHZhbHVlIHRoYW4gdGhlIHNwaWxsZWQvemVyby1leHRlbmRlZCBzaWJsaW5ncywgc28gcjQgbXVzdCBub3Qga2VlcCB0aGVcbisgKiBzaGFyZWQgc2NhbGFyIGlkLiBPdGhlcndpc2UgdGhlIGxhdGVyICdpZiByNSA9PSAweDgwMDAwMDAwJyByZWZpbmVzIHI0XG4rICogdGhyb3VnaCBzeW5jX2xpbmtlZF9yZWdzKCkgdG8gYSBrbm93biAweDgwMDAwMDAwLCB3aGlsZSBhdCBydW50aW1lIHI0XG4rICogaXMgdGhlIHNpZ24tZXh0ZW5kZWQgMHhmZmZmZmZmZjgwMDAwMDAwLiBUaGUgdGVzdCB0dXJucyB0aGF0IGRpc2NyZXBhbmN5XG4rICogaW50byBhbiBvdXQtb2YtYm91bmRzIG1hcCB2YWx1ZSBhY2Nlc3MgKHI0IFx1MDAzZVx1MDAzZSA2MyBpcyBiZWxpZXZlZCAwIGJ1dCBpcyAxXG4rICogYXQgcnVudGltZSksIHdoaWNoIG11c3QgYmUgcmVqZWN0ZWQuXG4rICovXG4rU0VDKFwic29ja2V0XCIpXG4rX19mYWlsdXJlIF9fbXNnKFwiUjAgbWF4IHZhbHVlIGlzIG91dHNpZGUgb2YgdGhlIGFsbG93ZWQgbWVtb3J5IHJhbmdlXCIpXG4rX19uYWtlZCB2b2lkIGxkc3hfZmlsbF9zY2FsYXJfaWRfbm90X3NoYXJlZCh2b2lkKVxuK3tcbitcdGFzbSB2b2xhdGlsZSAoXCJcdFx0XHRcdFx0XFxcbitcdHIxID0gMDtcdFx0XHRcdFx0XHRcXFxuK1x0Kih1NjQqKShyMTAgLSA4KSA9IHIxO1x0XHRcdFx0XFxcbitcdHIyID0gcjEwO1x0XHRcdFx0XHRcXFxuK1x0cjIgKz0gLTg7XHRcdFx0XHRcdFxcXG4rXHRyMSA9ICVbbWFwX2hhc2hfOGJdIGxsO1x0XHRcdFx0XFxcbitcdGNhbGwgJVticGZfbWFwX2xvb2t1cF9lbGVtXTtcdFx0XHRcXFxuK1x0aWYgcjAgPT0gMCBnb3RvIGwwXyU9O1x0XHRcdFx0XFxcbitcdC8qIHI3ID0gdW5rbm93biB1MzIsIGtlZXAgb25seSBiaXQgMzEgKi9cdFxcXG4rXHRyNyA9ICoodTMyKikocjAgKyAwKTtcdFx0XHRcdFxcXG4rXHRyMiA9IDB4ODAwMDAwMDAgbGw7XHRcdFx0XHRcXFxuK1x0cjcgXHUwMDI2PSByMjtcdFx0XHRcdFx0XFxcbitcdC8qIGxpbmsgcjYgYW5kIHI3IHZpYSBhIGZyZXNoIHNjYWxhciBpZCAqL1x0XFxcbitcdHI2ID0gcjc7XHRcdFx0XHRcdFxcXG4rXHQvKiBzcGlsbCByNyAodTMyKSB0byB0aGUgc3RhY2sgKi9cdFx0XFxcbitcdCoodTMyKikocjEwIC0gOCkgPSByNztcdFx0XHRcdFxcXG4rXHQvKiBzaWduLWV4dGVuZGluZyBmaWxsOiBtdXN0IGRyb3AgdGhlIGlkICovXHRcXFxuK1x0cjQgPSAqKHMzMiopKHIxMCAtIDgpO1x0XHRcdFx0XFxcbitcdC8qIHplcm8tZXh0ZW5kaW5nIGZpbGw6IGtlZXBzIHRoZSBpZCAqL1x0XHRcXFxuK1x0cjUgPSAqKHUzMiopKHIxMCAtIDgpO1x0XHRcdFx0XFxcbitcdC8qIHI1IGJlY29tZXMga25vd24gMHg4MDAwMDAwMCBvbiBmYWxsLXRocm91Z2ggKi9cXFxuK1x0aWYgcjUgIT0gcjIgZ290byBsMF8lPTtcdFx0XHRcdFxcXG4rXHQvKiB2ZXJpZmllciBiZWxpZXZlcyByNCA9PSAwIGhlcmUsIHJ1bnRpbWUgaXMgMSAqL1xcXG4rXHRyNCBcdTAwM2VcdTAwM2U9IDYzO1x0XHRcdFx0XHRcXFxuK1x0cjAgKz0gcjQ7XHRcdFx0XHRcdFxcXG4rXHRyMCA9ICoodTgqKShyMCArIDcpO1x0XHRcdFx0XFxcbitsMF8lPTpcdHIwID0gMDtcdFx0XHRcdFx0XHRcXFxuK1x0ZXhpdDtcdFx0XHRcdFx0XHRcXFxuK1wiXHQ6XG4rXHQ6IF9faW1tKGJwZl9tYXBfbG9va3VwX2VsZW0pLFxuK1x0ICBfX2ltbV9hZGRyKG1hcF9oYXNoXzhiKVxuK1x0OiBfX2Nsb2JiZXJfYWxsKTtcbit9XG4rXG4gY2hhciBfbGljZW5zZVtdIFNFQyhcImxpY2Vuc2VcIikgPSBcIkdQTFwiO1xuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTBUMTE6MzU6MDIuNzMyNzY4MzY5WiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NTkzNjMzNjQwNSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipNeSBBc3Nlc3NtZW50IG9mIHRoZSBCUEYgVmVyaWZpZXIgUGF0Y2gqKlxuXG5Pa2F5LCBzbyB0aGlzIHBhdGNoIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2Ugd2l0aGluIHRoZSBCUEYgdmVyaWZpZXIsIHNwZWNpZmljYWxseSBpbiBga2VybmVsL2JwZi92ZXJpZmllci5jYC4gSXQncyBhbHRlcmluZyB0aGUgYmVoYXZpb3Igb2YgdGhlIHNoYXJlZCBzY2FsYXIgSUQgdHJhY2tpbmcgd2hlbiBzaWduLWV4dGVuZGluZyBsb2FkcyBvY2N1ci4gRXNzZW50aWFsbHksIGl0IGRyb3BzIHRoZSBzY2FsYXIgSUQgd2hlbiBhIHNpZ24tZXh0ZW5kaW5nIGxvYWQgbW9kaWZpZXMgdGhlIHJlZ2lzdGVyIHZhbHVlIHJlbGF0aXZlIHRvIGEgc2NhbGFyIGl0J3MgdGllZCB0by4gVGhlIG1vZGlmaWVkIGZ1bmN0aW9uIGlzIGBjaGVja19tZW1fYWNjZXNzKClgLCB3aGljaCBpcyBpbXBvcnRhbnQgZm9yIHByb2dyYW0gdmVyaWZpY2F0aW9uLlxuXG5Mb29raW5nIGNsb3NlbHksIHRoZSBwYXRjaCBpbnRyb2R1Y2VzIGEgbmV3IGNvbmRpdGlvbiB3aXRoaW4gYGNoZWNrX21lbV9hY2Nlc3MoKWA6IGBib29sIG5vX3NleHQgPSByZWdfdW1heChcdTAwMjZyZWdzW3ZhbHVlX3JlZ25vXSkgXHUwMDNjICgxVUxMIFx1MDAzY1x1MDAzYyAoc2l6ZSAqIEJJVFNfUEVSX0JZVEUgLSAxKSk7YC4gSWYgdGhpcyBjb25kaXRpb24sIGAhbm9fc2V4dGAsIGlzIHRydWUsIG1lYW5pbmcgdGhlIHJlZ2lzdGVyICpkb2VzKiBnZXQgc2lnbi1leHRlbmRlZCwgaXQgY2xlYXJzIHRoZSBzY2FsYXIgSUQuIE1ha2VzIHNlbnNlLlxuXG5HaXZlbiB0aGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIHZlcmlmaWVyLCBmdXp6aW5nIGlzIGRlZmluaXRlbHkgaW4gb3JkZXIuIEkgbmVlZCB0byBiZSBzdXJlIHRoZSBtb2RpZmllZCB2ZXJpZmljYXRpb24gbG9naWMgaXMgc29saWQuXG5cbk15IGZvY3VzIHNob3VsZCBiZSBvbiBgY2hlY2tfbWVtX2FjY2VzcygpYCBhcyBhIGtleSBzeW1ib2wsIGFuZCBhZnRlciBhIG1vbWVudCdzIGNvbnNpZGVyYXRpb24sIEkgY29uY3VyLiBXaGlsZSBpdCdzIGNlbnRyYWwgdG8gdGhlIEJQRiB2ZXJpZmllciwgaXQncyBub3QgYSBwZXJmb3JtYW5jZS1jcml0aWNhbCBob3QgcGF0aCBsaWtlIHBhY2tldCBwcm9jZXNzaW5nIGZ1bmN0aW9ucy4gSXQncyBpbnZva2VkIGR1cmluZyBCUEYgcHJvZ3JhbSBsb2FkLCBtYWtpbmcgaXQgYSBzdWl0YWJsZSBjYW5kaWRhdGUgZm9yIHRhcmdldGVkIGZ1enppbmcuIEkgY2FuIGlzb2xhdGUgaXQgbW9yZSBlYXNpbHkgdGhpcyB3YXkuXG5cbk5vdywgbGV0IG1lIGRvdWJsZS1jaGVjayB0aGUgbmVjZXNzYXJ5IGNvbmZpZ3VyYXRpb25zLiBgQ09ORklHX0JQRl9TWVNDQUxMYCBpcyB0aGUgY3J1Y2lhbCBvbmUgZm9yIEJQRiBzeXN0ZW0gY2FsbHMuIEknbGwgbmVlZCB0byBjb25maXJtIHRoYXQgdGhpcyBpcyBpbmRlZWQgc3VmZmljaWVudCB0byB0cmlnZ2VyIHRoZSByZWxldmFudCBjb2RlIHBhdGhzLiBUaW1lIHRvIGZpcmUgdXAgdGhlIHRvb2xzIGFuZCB2ZXJpZnkgZXZlcnl0aGluZy5cblxuXG4iLCJJbnB1dFRva2VucyI6MzE3NiwiT3V0cHV0VG9rZW5zIjozMywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjI2NCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTEwVDExOjM1OjA4LjY2OTEwNjc3NFoiLCJTZXEiOjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1ODYxNjYzMCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJjaGVja19tZW1fYWNjZXNzXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImtlcm5lbC9icGYvdmVyaWZpZXIuY1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJrZXJuZWwvYnBmL3ZlcmlmaWVyLmM9NTc9c3RhdGljIGJvb2wgYnBmX2dsb2JhbF9wZXJjcHVfbWFfc2V0O1xcbi0tXFxua2VybmVsL2JwZi92ZXJpZmllci5jLTEwNC0gKiBjYW4gYmU6IFBUUl9UT19NQVBfVkFMVUUsIFBUUl9UT19DVFgsIFBUUl9UT19TVEFDSywgUFRSX1RPX1NPQ0tFVC4gVGhlc2UgYXJlXFxua2VybmVsL2JwZi92ZXJpZmllci5jOjEwNTogKiBmb3VyIHBvaW50ZXIgdHlwZXMgcmVjb2duaXplZCBieSBjaGVja19tZW1fYWNjZXNzKCkgZnVuY3Rpb24uXFxua2VybmVsL2JwZi92ZXJpZmllci5jLTEwNi0gKlxcbi0tXFxua2VybmVsL2JwZi92ZXJpZmllci5jPTg1MD1zdGF0aWMgYm9vbCBpc19keW5wdHJfcmVnX3ZhbGlkX3VuaW5pdChzdHJ1Y3QgYnBmX3ZlcmlmaWVyX2VudiAqZW52LCBzdHJ1Y3QgYnBmX3JlZ19zdGF0ZSAqcmVnKVxcbi0tXFxua2VybmVsL2JwZi92ZXJpZmllci5jLTg2MC1cXHQgKiBlcnJvciBiZWNhdXNlIHRoaXMganVzdCBtZWFucyB0aGUgc3RhY2sgc3RhdGUgaGFzbid0IGJlZW4gdXBkYXRlZCB5ZXQuXFxua2VybmVsL2JwZi92ZXJpZmllci5jOjg2MTpcXHQgKiBXZSB3aWxsIGRvIGNoZWNrX21lbV9hY2Nlc3MgdG8gY2hlY2sgYW5kIHVwZGF0ZSBzdGFjayBib3VuZHMgbGF0ZXIuXFxua2VybmVsL2JwZi92ZXJpZmllci5jLTg2Mi1cXHQgKi9cXG4tLVxcbmtlcm5lbC9icGYvdmVyaWZpZXIuYz0xMDA2PXN0YXRpYyBib29sIGlzX2l0ZXJfcmVnX3ZhbGlkX3VuaW5pdChzdHJ1Y3QgYnBmX3ZlcmlmaWVyX2VudiAqZW52LFxcbi0tXFxua2VybmVsL2JwZi92ZXJpZmllci5jLTEwMTItXFx0LyogRm9yIC1FUkFOR0UgKGkuZS4gc3BpIG5vdCBmYWxsaW5nIGludG8gYWxsb2NhdGVkIHN0YWNrIHNsb3RzKSwgd2VcXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM6MTAxMzpcXHQgKiB3aWxsIGRvIGNoZWNrX21lbV9hY2Nlc3MgdG8gY2hlY2sgYW5kIHVwZGF0ZSBzdGFjayBib3VuZHMgbGF0ZXIsIHNvXFxua2VybmVsL2JwZi92ZXJpZmllci5jLTEwMTQtXFx0ICogcmV0dXJuIHRydWUgZm9yIHRoYXQgY2FzZS5cXG4tLVxcbmtlcm5lbC9icGYvdmVyaWZpZXIuYz0xMTUxPXN0YXRpYyBib29sIGlzX2lycV9mbGFnX3JlZ192YWxpZF91bmluaXQoc3RydWN0IGJwZl92ZXJpZmllcl9lbnYgKmVudiwgc3RydWN0IGJwZl9yZWdfc3RhdGUgKnJlZylcXG4tLVxcbmtlcm5lbC9icGYvdmVyaWZpZXIuYy0xMTU3LVxcdC8qIEZvciAtRVJBTkdFIChpLmUuIHNwaSBub3QgZmFsbGluZyBpbnRvIGFsbG9jYXRlZCBzdGFjayBzbG90cyksIHdlXFxua2VybmVsL2JwZi92ZXJpZmllci5jOjExNTg6XFx0ICogd2lsbCBkbyBjaGVja19tZW1fYWNjZXNzIHRvIGNoZWNrIGFuZCB1cGRhdGUgc3RhY2sgYm91bmRzIGxhdGVyLCBzb1xcbmtlcm5lbC9icGYvdmVyaWZpZXIuYy0xMTU5LVxcdCAqIHJldHVybiB0cnVlIGZvciB0aGF0IGNhc2UuXFxuLS1cXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM9MzQ3Nj1zdGF0aWMgdm9pZCBzY3J1Yl9zcGVjaWFsX3Nsb3Qoc3RydWN0IGJwZl9mdW5jX3N0YXRlICpzdGF0ZSwgaW50IHNwaSlcXG4tLVxcbmtlcm5lbC9icGYvdmVyaWZpZXIuYy0zNDg4LS8qIGNoZWNrX3N0YWNrX3tyZWFkLHdyaXRlfV9maXhlZF9vZmYgZnVuY3Rpb25zIHRyYWNrIHNwaWxsL2ZpbGwgb2YgcmVnaXN0ZXJzLFxcbmtlcm5lbC9icGYvdmVyaWZpZXIuYzozNDg5OiAqIHN0YWNrIGJvdW5kYXJ5IGFuZCBhbGlnbm1lbnQgYXJlIGNoZWNrZWQgaW4gY2hlY2tfbWVtX2FjY2VzcygpXFxua2VybmVsL2JwZi92ZXJpZmllci5jLTM0OTAtICovXFxuLS1cXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM9NDIwOD1zdGF0aWMgaW50IGNoZWNrX21hcF9hY2Nlc3NfdHlwZShzdHJ1Y3QgYnBmX3ZlcmlmaWVyX2VudiAqZW52LCBzdHJ1Y3QgYnBmX3JlZ19zdGF0ZSAqcmVnLFxcbi0tXFxua2VybmVsL2JwZi92ZXJpZmllci5jLTQyMjktLyogY2hlY2sgcmVhZC93cml0ZSBpbnRvIG1lbW9yeSByZWdpb24gKGUuZy4sIG1hcCB2YWx1ZSwgcmluZ2J1ZiBzYW1wbGUsIGV0YykgKi9cXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM6NDIzMDpzdGF0aWMgaW50IF9fY2hlY2tfbWVtX2FjY2VzcyhzdHJ1Y3QgYnBmX3ZlcmlmaWVyX2VudiAqZW52LCBzdHJ1Y3QgYnBmX3JlZ19zdGF0ZSAqcmVnLCBhcmdub190IGFyZ25vLFxcbmtlcm5lbC9icGYvdmVyaWZpZXIuYy00MjMxLVxcdFxcdFxcdCAgICAgIGludCBvZmYsIGludCBzaXplLCB1MzIgbWVtX3NpemUsXFxuLS1cXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM9NDI2OD1zdGF0aWMgaW50IGNoZWNrX21lbV9yZWdpb25fYWNjZXNzKHN0cnVjdCBicGZfdmVyaWZpZXJfZW52ICplbnYsIHN0cnVjdCBicGZfcmVnX3N0YXRlICpyZWcsIGFyZ25vX3QgYXJnbm8sXFxuLS1cXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtNDI5MS1cXHR9XFxua2VybmVsL2JwZi92ZXJpZmllci5jOjQyOTI6XFx0ZXJyID0gX19jaGVja19tZW1fYWNjZXNzKGVudiwgcmVnLCBhcmdubywgcmVnX3NtaW4ocmVnKSArIG9mZiwgc2l6ZSxcXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtNDI5My1cXHRcXHRcXHRcXHQgbWVtX3NpemUsIHplcm9fc2l6ZV9hbGxvd2VkKTtcXG4tLVxcbmtlcm5lbC9icGYvdmVyaWZpZXIuYy00MzA4LVxcdH1cXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM6NDMwOTpcXHRlcnIgPSBfX2NoZWNrX21lbV9hY2Nlc3MoZW52LCByZWcsIGFyZ25vLCByZWdfdW1heChyZWcpICsgb2ZmLCBzaXplLFxcbmtlcm5lbC9icGYvdmVyaWZpZXIuYy00MzEwLVxcdFxcdFxcdFxcdCBtZW1fc2l6ZSwgemVyb19zaXplX2FsbG93ZWQpO1xcbi0tXFxua2VybmVsL2JwZi92ZXJpZmllci5jPTQ3MTk9c3RhdGljIGludCBjaGVja19wYWNrZXRfYWNjZXNzKHN0cnVjdCBicGZfdmVyaWZpZXJfZW52ICplbnYsIHN0cnVjdCBicGZfcmVnX3N0YXRlICpyZWcsIGFyZ25vX3QgYXJnbm8sIGludCBvZmYsXFxuLS1cXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtNDczMi1cXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM6NDczMzpcXHQvKiBfX2NoZWNrX21lbV9hY2Nlc3MgaGFzIG1hZGUgc3VyZSBcXFwib2ZmICsgc2l6ZSAtIDFcXFwiIGlzIHdpdGhpbiB1MTYuXFxua2VybmVsL2JwZi92ZXJpZmllci5jLTQ3MzQtXFx0ICogcmVnX3VtYXgocmVnKSBjYW4ndCBiZSBiaWdnZXIgdGhhbiBNQVhfUEFDS0VUX09GRiB3aGljaCBpcyAweGZmZmYsXFxua2VybmVsL2JwZi92ZXJpZmllci5jLTQ3MzUtXFx0ICogb3RoZXJ3aXNlIGZpbmRfZ29vZF9wa3RfcG9pbnRlcnMgd291bGQgaGF2ZSByZWZ1c2VkIHRvIHNldCByYW5nZSBpbmZvXFxua2VybmVsL2JwZi92ZXJpZmllci5jOjQ3MzY6XFx0ICogdGhhdCBfX2NoZWNrX21lbV9hY2Nlc3Mgd291bGQgaGF2ZSByZWplY3RlZCB0aGlzIHBrdCBhY2Nlc3MuXFxua2VybmVsL2JwZi92ZXJpZmllci5jLTQ3MzctXFx0ICogVGhlcmVmb3JlLCBcXFwib2ZmICsgcmVnX3VtYXgocmVnKSArIHNpemUgLSAxXFxcIiB3b24ndCBvdmVyZmxvdyB1MzIuXFxuLS1cXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM9NjEyMz1zdGF0aWMgdm9pZCBhZGRfc2NhbGFyX3RvX3JlZyhzdHJ1Y3QgYnBmX3JlZ19zdGF0ZSAqZHN0X3JlZywgczY0IHZhbClcXG4tLVxcbmtlcm5lbC9icGYvdmVyaWZpZXIuYy02MTQ1LSAqL1xcbmtlcm5lbC9icGYvdmVyaWZpZXIuYzo2MTQ2OnN0YXRpYyBpbnQgY2hlY2tfbWVtX2FjY2VzcyhzdHJ1Y3QgYnBmX3ZlcmlmaWVyX2VudiAqZW52LCBpbnQgaW5zbl9pZHgsIHN0cnVjdCBicGZfcmVnX3N0YXRlICpyZWcsIGFyZ25vX3QgYXJnbm8sXFxua2VybmVsL2JwZi92ZXJpZmllci5jLTYxNDctXFx0XFx0XFx0ICAgIGludCBvZmYsIGludCBicGZfc2l6ZSwgZW51bSBicGZfYWNjZXNzX3R5cGUgdCxcXG4tLVxcbmtlcm5lbC9icGYvdmVyaWZpZXIuYz02NDIxPXN0YXRpYyBpbnQgY2hlY2tfbG9hZF9tZW0oc3RydWN0IGJwZl92ZXJpZmllcl9lbnYgKmVudiwgc3RydWN0IGJwZl9pbnNuICppbnNuLFxcbi0tXFxua2VybmVsL2JwZi92ZXJpZmllci5jLTY0NTMtXFx0ICovXFxua2VybmVsL2JwZi92ZXJpZmllci5jOjY0NTQ6XFx0ZXJyID0gY2hlY2tfbWVtX2FjY2VzcyhlbnYsIGVudi1cXHUwMDNlaW5zbl9pZHgsIHJlZ3MgKyBpbnNuLVxcdTAwM2VzcmNfcmVnLCBhcmdub19mcm9tX3JlZyhpbnNuLVxcdTAwM2VzcmNfcmVnKSwgaW5zbi1cXHUwMDNlb2ZmLFxcbmtlcm5lbC9icGYvdmVyaWZpZXIuYy02NDU1LVxcdFxcdFxcdCAgICAgICBCUEZfU0laRShpbnNuLVxcdTAwM2Vjb2RlKSwgQlBGX1JFQUQsIGluc24tXFx1MDAzZWRzdF9yZWcsXFxuLS1cXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM9NjQ2ND1zdGF0aWMgaW50IGNoZWNrX3N0b3JlX3JlZyhzdHJ1Y3QgYnBmX3ZlcmlmaWVyX2VudiAqZW52LCBzdHJ1Y3QgYnBmX2luc24gKmluc24sXFxuLS1cXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtNjQ5My1cXHQvKiBDaGVjayBpZiAoZHN0X3JlZyArIG9mZikgaXMgd3JpdGVhYmxlLiAqL1xcbmtlcm5lbC9icGYvdmVyaWZpZXIuYzo2NDk0OlxcdGVyciA9IGNoZWNrX21lbV9hY2Nlc3MoZW52LCBlbnYtXFx1MDAzZWluc25faWR4LCByZWdzICsgaW5zbi1cXHUwMDNlZHN0X3JlZywgYXJnbm9fZnJvbV9yZWcoaW5zbi1cXHUwMDNlZHN0X3JlZyksIGluc24tXFx1MDAzZW9mZixcXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtNjQ5NS1cXHRcXHRcXHQgICAgICAgQlBGX1NJWkUoaW5zbi1cXHUwMDNlY29kZSksIEJQRl9XUklURSwgaW5zbi1cXHUwMDNlc3JjX3JlZyxcXG4tLVxcbmtlcm5lbC9icGYvdmVyaWZpZXIuYz02NTAyPXN0YXRpYyBpbnQgY2hlY2tfYXRvbWljX3JtdyhzdHJ1Y3QgYnBmX3ZlcmlmaWVyX2VudiAqZW52LFxcbi0tXFxua2VybmVsL2JwZi92ZXJpZmllci5jLTY1NzEtXFx0ICovXFxua2VybmVsL2JwZi92ZXJpZmllci5jOjY1NzI6XFx0ZXJyID0gY2hlY2tfbWVtX2FjY2VzcyhlbnYsIGVudi1cXHUwMDNlaW5zbl9pZHgsIGRzdF9yZWcsIGFyZ25vX2Zyb21fcmVnKGluc24tXFx1MDAzZWRzdF9yZWcpLCBpbnNuLVxcdTAwM2VvZmYsXFxua2VybmVsL2JwZi92ZXJpZmllci5jLTY1NzMtXFx0XFx0XFx0ICAgICAgIEJQRl9TSVpFKGluc24tXFx1MDAzZWNvZGUpLCBCUEZfUkVBRCwgLTEsIHRydWUsIGZhbHNlKTtcXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtNjU3NC1cXHRpZiAoIWVyciBcXHUwMDI2XFx1MDAyNiBsb2FkX3JlZyBcXHUwMDNlPSAwKVxcbmtlcm5lbC9icGYvdmVyaWZpZXIuYzo2NTc1OlxcdFxcdGVyciA9IGNoZWNrX21lbV9hY2Nlc3MoZW52LCBlbnYtXFx1MDAzZWluc25faWR4LCBkc3RfcmVnLCBhcmdub19mcm9tX3JlZyhpbnNuLVxcdTAwM2Vkc3RfcmVnKSxcXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtNjU3Ni1cXHRcXHRcXHRcXHQgICAgICAgaW5zbi1cXHUwMDNlb2ZmLCBCUEZfU0laRShpbnNuLVxcdTAwM2Vjb2RlKSxcXG4tLVxcbmtlcm5lbC9icGYvdmVyaWZpZXIuYy02NTg2LVxcdC8qIENoZWNrIHdoZXRoZXIgd2UgY2FuIHdyaXRlIGludG8gdGhlIHNhbWUgbWVtb3J5LiAqL1xcbmtlcm5lbC9icGYvdmVyaWZpZXIuYzo2NTg3OlxcdGVyciA9IGNoZWNrX21lbV9hY2Nlc3MoZW52LCBlbnYtXFx1MDAzZWluc25faWR4LCBkc3RfcmVnLCBhcmdub19mcm9tX3JlZyhpbnNuLVxcdTAwM2Vkc3RfcmVnKSwgaW5zbi1cXHUwMDNlb2ZmLFxcbmtlcm5lbC9icGYvdmVyaWZpZXIuYy02NTg4LVxcdFxcdFxcdCAgICAgICBCUEZfU0laRShpbnNuLVxcdTAwM2Vjb2RlKSwgQlBGX1dSSVRFLCAtMSwgdHJ1ZSwgZmFsc2UpO1xcbi0tXFxua2VybmVsL2JwZi92ZXJpZmllci5jPTczMTg9c3RhdGljIGludCBwcm9jZXNzX2R5bnB0cl9mdW5jKHN0cnVjdCBicGZfdmVyaWZpZXJfZW52ICplbnYsIHN0cnVjdCBicGZfcmVnX3N0YXRlICpyZWcsXFxuLS1cXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtNzM1NC1cXHRcXHRmb3IgKGkgPSAwOyBpIFxcdTAwM2MgQlBGX0RZTlBUUl9TSVpFOyBpICs9IDgpIHtcXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM6NzM1NTpcXHRcXHRcXHRlcnIgPSBjaGVja19tZW1fYWNjZXNzKGVudiwgaW5zbl9pZHgsIHJlZywgYXJnbm8sXFxua2VybmVsL2JwZi92ZXJpZmllci5jLTczNTYtXFx0XFx0XFx0XFx0XFx0ICAgICAgIGksIEJQRl9EVywgQlBGX1dSSVRFLCAtMSwgZmFsc2UsIGZhbHNlKTtcXG4tLVxcbmtlcm5lbC9icGYvdmVyaWZpZXIuYz03NDM4PXN0YXRpYyBpbnQgcHJvY2Vzc19pdGVyX2FyZyhzdHJ1Y3QgYnBmX3ZlcmlmaWVyX2VudiAqZW52LCBzdHJ1Y3QgYnBmX3JlZ19zdGF0ZSAqcmVnLCBhcmdub190IGFyZ25vLCBpbnQgaW5zbl9pZHgsXFxuLS1cXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtNzQ3NS1cXHRcXHRmb3IgKGkgPSAwOyBpIFxcdTAwM2MgbnJfc2xvdHMgKiA4OyBpICs9IEJQRl9SRUdfU0laRSkge1xcbmtlcm5lbC9icGYvdmVyaWZpZXIuYzo3NDc2OlxcdFxcdFxcdGVyciA9IGNoZWNrX21lbV9hY2Nlc3MoZW52LCBpbnNuX2lkeCwgcmVnLCBhcmdubyxcXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtNzQ3Ny1cXHRcXHRcXHRcXHRcXHQgICAgICAgaSwgQlBGX0RXLCBCUEZfV1JJVEUsIC0xLCBmYWxzZSwgZmFsc2UpO1xcbi0tXFxua2VybmVsL2JwZi92ZXJpZmllci5jPTEwMjQ1PXN0YXRpYyBpbnQgY2hlY2tfaGVscGVyX2NhbGwoc3RydWN0IGJwZl92ZXJpZmllcl9lbnYgKmVudiwgc3RydWN0IGJwZl9pbnNuICppbnNuLFxcbi0tXFxua2VybmVsL2JwZi92ZXJpZmllci5jLTEwMzMxLVxcdGZvciAoaSA9IDA7IGkgXFx1MDAzYyBtZXRhLmFjY2Vzc19zaXplOyBpKyspIHtcXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM6MTAzMzI6XFx0XFx0ZXJyID0gY2hlY2tfbWVtX2FjY2VzcyhlbnYsIGluc25faWR4LCByZWdzICsgbWV0YS5yZWdubywgYXJnbm9fZnJvbV9yZWcobWV0YS5yZWdubyksIGksIEJQRl9CLFxcbmtlcm5lbC9icGYvdmVyaWZpZXIuYy0xMDMzMy1cXHRcXHRcXHRcXHQgICAgICAgQlBGX1dSSVRFLCAtMSwgZmFsc2UsIGZhbHNlKTtcXG4tLVxcbmtlcm5lbC9icGYvdmVyaWZpZXIuYy0xMDU3OS1cXHRcXHRcXHRcXHQgKiBpdCB3aWxsIGNvbmZ1c2UgdGhlIGNoZWNrIG9mIFBUUl9UT19CVEZfSUQgaW5cXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM6MTA1ODA6XFx0XFx0XFx0XFx0ICogY2hlY2tfbWVtX2FjY2VzcygpLlxcbmtlcm5lbC9icGYvdmVyaWZpZXIuYy0xMDU4MS1cXHRcXHRcXHRcXHQgKi9cXG4tLVxcbmtlcm5lbC9icGYvdmVyaWZpZXIuYz0xMTUwOD1zdGF0aWMgaW50IHByb2Nlc3NfaXJxX2ZsYWcoc3RydWN0IGJwZl92ZXJpZmllcl9lbnYgKmVudiwgc3RydWN0IGJwZl9yZWdfc3RhdGUgKnJlZywgYXJnbm9fdCBhcmdubyxcXG4tLVxcbmtlcm5lbC9icGYvdmVyaWZpZXIuYy0xMTUzNS1cXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM6MTE1MzY6XFx0XFx0ZXJyID0gY2hlY2tfbWVtX2FjY2VzcyhlbnYsIGVudi1cXHUwMDNlaW5zbl9pZHgsIHJlZywgYXJnbm8sIDAsIEJQRl9EVyxcXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtMTE1MzctXFx0XFx0XFx0XFx0ICAgICAgIEJQRl9XUklURSwgLTEsIGZhbHNlLCBmYWxzZSk7XFxuLS1cXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM9MTczMTE9c3RhdGljIGludCBkb19jaGVja19pbnNuKHN0cnVjdCBicGZfdmVyaWZpZXJfZW52ICplbnYsIGJvb2wgKmRvX3ByaW50X3N0YXRlKVxcbi0tXFxua2VybmVsL2JwZi92ZXJpZmllci5jLTE3MzQ4LVxcbmtlcm5lbC9icGYvdmVyaWZpZXIuYzoxNzM0OTpcXHRcXHRlcnIgPSBjaGVja19tZW1fYWNjZXNzKGVudiwgZW52LVxcdTAwM2VpbnNuX2lkeCwgY3VyX3JlZ3MoZW52KSArIGluc24tXFx1MDAzZWRzdF9yZWcsIGFyZ25vX2Zyb21fcmVnKGluc24tXFx1MDAzZWRzdF9yZWcpLFxcbmtlcm5lbC9icGYvdmVyaWZpZXIuYy0xNzM1MC1cXHRcXHRcXHRcXHQgICAgICAgaW5zbi1cXHUwMDNlb2ZmLCBCUEZfU0laRShpbnNuLVxcdTAwM2Vjb2RlKSxcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTBUMTE6MzU6MDguNzI3NzI5MzE0WiIsIlNlcSI6NSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzA4NzQ1NzA5NywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgbGV0J3MgYnJlYWsgdGhpcyBkb3duLlxuXG4qKkFuYWx5emluZyB0aGUgTWVtb3J5IEFjY2VzcyBWZXJpZmljYXRpb24qKlxuXG5SaWdodCwgc28gSSdtIGZvY3VzaW5nIG9uIHRoZSBgY2hlY2tfbWVtX2FjY2Vzc2AgZnVuY3Rpb247IHRoYXQncyBjbGVhcmx5IGEgcGl2b3RhbCBlbGVtZW50IGluIHRoZSB2ZXJpZmljYXRpb24gcHJvY2Vzcy4gSSBuZWVkIHRvIGJlIHN1cmUgSSd2ZSBhY2NvdW50ZWQgZm9yIGFueSBvdGhlciBjb25maWd1cmF0aW9ucyB0aGF0IG1pZ2h0IGludGVyYWN0IHdpdGggaXQuXG5cbkkgc2VlIHRoYXQgdGhlIGB2ZXJpZmllcl9zY2FsYXJfaWRzLmNgIHRlc3QgaGFzIGJlZW4gYWRkZWQuIE5vdywgdGhlIG5leHQgc3RlcCBpcyB0byBleGFtaW5lIHRoZSBjb250ZW50cyBvZiBgdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX3NjYWxhcl9pZHMuY2AuIFRoaXMgZXhhbWluYXRpb24gaXMga2V5IGJlY2F1c2UgaXQgbWlnaHQgcmV2ZWFsIGFkZGl0aW9uYWwsIHNwZWNpZmljIGNvbmZpZ3VyYXRpb25zIG9yIGludGVyYWN0aW9ucyB0aGF0IEkgbmVlZCB0byBjb25zaWRlciwgZXNwZWNpYWxseSBjb25jZXJuaW5nIHNjYWxhciBpZGVudGlmaWVyIGhhbmRsaW5nIHdpdGhpbiBtZW1vcnkgYWNjZXNzIHZlcmlmaWNhdGlvbi4gRXNzZW50aWFsbHksIEkgbmVlZCB0byB1bmRlcnN0YW5kIGhvdyB0aGUgdGVzdCBleGVyY2lzZXMgdGhlIHZlcmlmaWVyIGluIHRoaXMgY29udGV4dC5cblxuXG4iLCJJbnB1dFRva2VucyI6NjkzNSwiT3V0cHV0VG9rZW5zIjo0MywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjgyLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTEwVDExOjM1OjExLjgxNTE4ODc0MVoiLCJTZXEiOjYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo2MjIwMzcyOSwiRXJyb3IiOiJubyBtYXRjaGVzIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiQ09ORklHX1wiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJ0b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfc2NhbGFyX2lkcy5jXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcImVycm9yXCI6IFwibm8gbWF0Y2hlc1wiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xMFQxMTozNToxMS44Nzc0MDY2NFoiLCJTZXEiOjcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjMzMzE1Nzg0NzUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlLCBhbmQgd3JpdHRlbiBhcyBpZiB0aGV5IHdlcmUgbXkgb3duOlxuXG4qKkludmVzdGlnYXRpbmcgdGhlIEJQRiBWZXJpZmllciBQYXRjaCoqXG5cbkFscmlnaHQsIHRoZSBwYXRjaCBpcyBwaW5wb2ludGVkIHdpdGhpbiBga2VybmVsL2JwZi92ZXJpZmllci5jYC4gTXkgaW1tZWRpYXRlIHRob3VnaHQgaXMsIFwiTGV0J3MgZGlnIGluIGFuZCBtYWtlIHN1cmUgdGhpcyBpcyB0aGUgcmlnaHQgYXJlYS5cIiBJ4oCZbGwgZmlyc3QgY2hlY2sgaWYgdGhlcmUgYXJlIGFueSBhcmNoaXRlY3R1cmUtc3BlY2lmaWMgb3IgY29uZmlndXJhdGlvbi1kZXBlbmRlbnQgZ3VhcmRzIGFyb3VuZCB0aGUgY29kZSBjaGFuZ2VzIHdpdGhpbiB0aGF0IGZpbGUuIEknbSBsb29raW5nIGZvciBjb25kaXRpb25hbCBjb21waWxhdGlvbiBiYXNlZCBvbiBrZXJuZWwgY29uZmlncyBsaWtlIGBDT05GSUdfQlBGX0pJVGAsIGBDT05GSUdfQlBGX0VWRU5UU2AsIG9yIGV2ZW4gbW9yZSBncmFudWxhciBvcHRpb25zIHRoYXQgbWlnaHQgYWZmZWN0IGhvdyB0aGUgdmVyaWZpZXIgb3BlcmF0ZXMuIFVuZGVyc3RhbmRpbmcgdGhvc2UgZGVwZW5kZW5jaWVzIGlzIGNydWNpYWwgYmVmb3JlIEkgZXZlbiBzdGFydCByZXZpZXdpbmcgdGhlIGRpZmZzIHRoZW1zZWx2ZXMuIEkgbmVlZCB0byBrbm93IHRoZSBleGFjdCBjb250ZXh0IGluIHdoaWNoIHRoaXMgY29kZSB3aWxsIGJlIHJ1bm5pbmcgYW5kIHdoYXQga2VybmVsIGZlYXR1cmVzIGFyZSBlbmFibGVkIHdoZW4gdGhpcyBwYXRjaCBpcyBlZmZlY3RpdmUuIEl0IHdvdWxkIGJlIGEgd2FzdGUgb2YgdGltZSB0byBsb29rIGF0IHRoZSBwYXRjaCBpZiBhIGNvbmZpZyBwcmV2ZW50ZWQgaXQgZnJvbSBydW5uaW5nLlxuXG5cbiIsIklucHV0VG9rZW5zIjo3MjQyLCJPdXRwdXRUb2tlbnMiOjMwLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MzYsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMTBUMTE6MzU6MTUuMjA4OTg3MzA1WiIsIlNlcSI6OCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjk2NzAwNDMzLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIkNPTkZJR19cIixcbiAgXCJQYXRoUHJlZml4XCI6IFwia2VybmVsL2JwZi92ZXJpZmllci5jXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImtlcm5lbC9icGYvdmVyaWZpZXIuYz0yNzQyPWludCBicGZfYWRkX2tmdW5jX2NhbGwoc3RydWN0IGJwZl92ZXJpZmllcl9lbnYgKmVudiwgdTMyIGZ1bmNfaWQsIHUxNiBvZmZzZXQpXFxuLS1cXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtMjc1Ny1cXHRcXHRpZiAoIWJ0Zl92bWxpbnV4KSB7XFxua2VybmVsL2JwZi92ZXJpZmllci5jOjI3NTg6XFx0XFx0XFx0dmVyYm9zZShlbnYsIFxcXCJjYWxsaW5nIGtlcm5lbCBmdW5jdGlvbiBpcyBub3Qgc3VwcG9ydGVkIHdpdGhvdXQgQ09ORklHX0RFQlVHX0lORk9fQlRGXFxcXG5cXFwiKTtcXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtMjc1OS1cXHRcXHRcXHRyZXR1cm4gLUVOT1RTVVBQO1xcbi0tXFxua2VybmVsL2JwZi92ZXJpZmllci5jPTQ0NTQ9QlRGX1NFVF9TVEFSVChyY3VfcHJvdGVjdGVkX3R5cGVzKVxcbmtlcm5lbC9icGYvdmVyaWZpZXIuYzo0NDU1OiNpZmRlZiBDT05GSUdfTkVUXFxua2VybmVsL2JwZi92ZXJpZmllci5jLTQ0NTYtQlRGX0lEKHN0cnVjdCwgcHJvZ190ZXN0X3JlZl9rZnVuYylcXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtNDQ1Ny0jZW5kaWZcXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM6NDQ1ODojaWZkZWYgQ09ORklHX0NHUk9VUFNcXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtNDQ1OS1CVEZfSUQoc3RydWN0LCBjZ3JvdXApXFxua2VybmVsL2JwZi92ZXJpZmllci5jLTQ0NjAtI2VuZGlmXFxua2VybmVsL2JwZi92ZXJpZmllci5jOjQ0NjE6I2lmZGVmIENPTkZJR19CUEZfSklUXFxua2VybmVsL2JwZi92ZXJpZmllci5jLTQ0NjItQlRGX0lEKHN0cnVjdCwgYnBmX2NwdW1hc2spXFxuLS1cXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM9NDQ2ND1CVEZfSUQoc3RydWN0LCB0YXNrX3N0cnVjdClcXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM6NDQ2NTojaWZkZWYgQ09ORklHX0NSWVBUT1xcbmtlcm5lbC9icGYvdmVyaWZpZXIuYy00NDY2LUJURl9JRChzdHJ1Y3QsIGJwZl9jcnlwdG9fY3R4KVxcbi0tXFxua2VybmVsL2JwZi92ZXJpZmllci5jPTQ5Mzg9c3RhdGljIHUzMiAqcmVnMmJ0Zl9pZHNbX19CUEZfUkVHX1RZUEVfTUFYXSA9IHtcXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM6NDkzOTojaWZkZWYgQ09ORklHX05FVFxcbmtlcm5lbC9icGYvdmVyaWZpZXIuYy00OTQwLVxcdFtQVFJfVE9fU09DS0VUXSA9IFxcdTAwMjZidGZfc29ja19pZHNbQlRGX1NPQ0tfVFlQRV9TT0NLXSxcXG4tLVxcbmtlcm5lbC9icGYvdmVyaWZpZXIuYz00OTgxPXN0YXRpYyBpbnQgY2hlY2tfcGt0X3B0cl9hbGlnbm1lbnQoc3RydWN0IGJwZl92ZXJpZmllcl9lbnYgKmVudixcXG4tLVxcbmtlcm5lbC9icGYvdmVyaWZpZXIuYy00OTkyLVxcdC8qIEZvciBwbGF0Zm9ybXMgdGhhdCBkbyBub3QgaGF2ZSBhIEtjb25maWcgZW5hYmxpbmdcXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM6NDk5MzpcXHQgKiBDT05GSUdfSEFWRV9FRkZJQ0lFTlRfVU5BTElHTkVEX0FDQ0VTUyB0aGUgdmFsdWUgb2ZcXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtNDk5NC1cXHQgKiBORVRfSVBfQUxJR04gaXMgdW5pdmVyc2FsbHkgc2V0IHRvICcyJy4gIEFuZCBvbiBwbGF0Zm9ybXNcXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM6NDk5NTpcXHQgKiB0aGF0IGRvIHNldCBDT05GSUdfSEFWRV9FRkZJQ0lFTlRfVU5BTElHTkVEX0FDQ0VTUywgd2UgZ2V0XFxua2VybmVsL2JwZi92ZXJpZmllci5jLTQ5OTYtXFx0ICogdG8gdGhpcyBjb2RlIG9ubHkgaW4gc3RyaWN0IG1vZGUgd2hlcmUgd2Ugd2FudCB0byBlbXVsYXRlXFxuLS1cXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM9NTE0Nz1zdGF0aWMgaW50IGNoZWNrX21heF9zdGFja19kZXB0aF9zdWJwcm9nKHN0cnVjdCBicGZfdmVyaWZpZXJfZW52ICplbnYsIGludCBpZHgsXFxuLS1cXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtNTE5MS1cXHRzdWJwcm9nX2RlcHRoID0gcm91bmRfdXBfc3RhY2tfZGVwdGgoZW52LCBzdWJwcm9nW2lkeF0uc3RhY2tfZGVwdGgpO1xcbmtlcm5lbC9icGYvdmVyaWZpZXIuYzo1MTkyOlxcdGlmIChJU19FTkFCTEVEKENPTkZJR19YODZfNjQpIFxcdTAwMjZcXHUwMDI2IHN1YnByb2dbaWR4XS5zdGFja19hcmdfY250KSB7XFxua2VybmVsL2JwZi92ZXJpZmllci5jLTUxOTMtXFx0XFx0LyogeDg2LTY0IHVzZXMgUjkgZm9yIGJvdGggcHJpdmF0ZSBzdGFjayBmcmFtZSBwb2ludGVyIGFuZCBhcmc2LiAqL1xcbi0tXFxua2VybmVsL2JwZi92ZXJpZmllci5jPTU3MDE9QlRGX1RZUEVfU0FGRV9SQ1VfT1JfTlVMTChzdHJ1Y3QgbW1fc3RydWN0KSB7XFxua2VybmVsL2JwZi92ZXJpZmllci5jLTU3MDItXFx0c3RydWN0IGZpbGUgX19yY3UgKmV4ZV9maWxlO1xcbmtlcm5lbC9icGYvdmVyaWZpZXIuYzo1NzAzOiNpZmRlZiBDT05GSUdfTUVNQ0dcXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtNTcwNC1cXHRzdHJ1Y3QgdGFza19zdHJ1Y3QgX19yY3UgKm93bmVyO1xcbi0tXFxua2VybmVsL2JwZi92ZXJpZmllci5jPTU5NjE9c3RhdGljIGludCBjaGVja19wdHJfdG9fbWFwX2FjY2VzcyhzdHJ1Y3QgYnBmX3ZlcmlmaWVyX2VudiAqZW52LFxcbi0tXFxua2VybmVsL2JwZi92ZXJpZmllci5jLTU5NzUtXFx0aWYgKCFidGZfdm1saW51eCkge1xcbmtlcm5lbC9icGYvdmVyaWZpZXIuYzo1OTc2OlxcdFxcdHZlcmJvc2UoZW52LCBcXFwibWFwX3B0ciBhY2Nlc3Mgbm90IHN1cHBvcnRlZCB3aXRob3V0IENPTkZJR19ERUJVR19JTkZPX0JURlxcXFxuXFxcIik7XFxua2VybmVsL2JwZi92ZXJpZmllci5jLTU5NzctXFx0XFx0cmV0dXJuIC1FTk9UU1VQUDtcXG4tLVxcbmtlcm5lbC9icGYvdmVyaWZpZXIuYz03MjI1PXN0YXRpYyBpbnQgcHJvY2Vzc190aW1lcl9mdW5jKHN0cnVjdCBicGZfdmVyaWZpZXJfZW52ICplbnYsIHN0cnVjdCBicGZfcmVnX3N0YXRlICpyZWcsIGFyZ25vX3QgYXJnbm8sXFxuLS1cXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtNzIyNy17XFxua2VybmVsL2JwZi92ZXJpZmllci5jOjcyMjg6XFx0aWYgKElTX0VOQUJMRUQoQ09ORklHX1BSRUVNUFRfUlQpKSB7XFxua2VybmVsL2JwZi92ZXJpZmllci5jLTcyMjktXFx0XFx0dmVyYm9zZShlbnYsIFxcXCJicGZfdGltZXIgY2Fubm90IGJlIHVzZWQgZm9yIFBSRUVNUFRfUlQuXFxcXG5cXFwiKTtcXG4tLVxcbmtlcm5lbC9icGYvdmVyaWZpZXIuYz03ODA0PXN0YXRpYyBjb25zdCBzdHJ1Y3QgYnBmX3JlZ190eXBlcyBzb2NrX3R5cGVzID0ge1xcbi0tXFxua2VybmVsL2JwZi92ZXJpZmllci5jLTc4MTItXFxua2VybmVsL2JwZi92ZXJpZmllci5jOjc4MTM6I2lmZGVmIENPTkZJR19ORVRcXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtNzgxNC1zdGF0aWMgY29uc3Qgc3RydWN0IGJwZl9yZWdfdHlwZXMgYnRmX2lkX3NvY2tfY29tbW9uX3R5cGVzID0ge1xcbi0tXFxua2VybmVsL2JwZi92ZXJpZmllci5jPTc4ODc9c3RhdGljIGNvbnN0IHN0cnVjdCBicGZfcmVnX3R5cGVzICpjb21wYXRpYmxlX3JlZ190eXBlc1tfX0JQRl9BUkdfVFlQRV9NQVhdID0ge1xcbi0tXFxua2VybmVsL2JwZi92ZXJpZmllci5jLTc4OTUtXFx0W0FSR19QVFJfVE9fU09DS19DT01NT05dXFx0PSBcXHUwMDI2c29ja190eXBlcyxcXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM6Nzg5NjojaWZkZWYgQ09ORklHX05FVFxcbmtlcm5lbC9icGYvdmVyaWZpZXIuYy03ODk3LVxcdFtBUkdfUFRSX1RPX0JURl9JRF9TT0NLX0NPTU1PTl1cXHQ9IFxcdTAwMjZidGZfaWRfc29ja19jb21tb25fdHlwZXMsXFxuLS1cXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM9MTAyNDU9c3RhdGljIGludCBjaGVja19oZWxwZXJfY2FsbChzdHJ1Y3QgYnBmX3ZlcmlmaWVyX2VudiAqZW52LCBzdHJ1Y3QgYnBmX2luc24gKmluc24sXFxuLS1cXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtMTA2ODUtXFxua2VybmVsL2JwZi92ZXJpZmllci5jOjEwNjg2OiNpZmRlZiBDT05GSUdfUEVSRl9FVkVOVFNcXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtMTA2ODctXFx0XFx0ZXJyID0gZ2V0X2NhbGxjaGFpbl9idWZmZXJzKHN5c2N0bF9wZXJmX2V2ZW50X21heF9zdGFjayk7XFxuLS1cXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtMTA2OTAtXFx0XFx0ZXJyID0gLUVOT1RTVVBQO1xcbmtlcm5lbC9icGYvdmVyaWZpZXIuYzoxMDY5MTpcXHRcXHRlcnJfc3RyID0gXFxcImZ1bmMgJXMjJWQgbm90IHN1cHBvcnRlZCB3aXRob3V0IENPTkZJR19QRVJGX0VWRU5UU1xcXFxuXFxcIjtcXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtMTA2OTItI2VuZGlmXFxuLS1cXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM9MTExODE9QlRGX0lEKGZ1bmMsIGJwZl9yYnRyZWVfcmlnaHQpXFxua2VybmVsL2JwZi92ZXJpZmllci5jOjExMTgyOiNpZmRlZiBDT05GSUdfTkVUXFxua2VybmVsL2JwZi92ZXJpZmllci5jLTExMTgzLUJURl9JRChmdW5jLCBicGZfZHlucHRyX2Zyb21fc2tiKVxcbi0tXFxua2VybmVsL2JwZi92ZXJpZmllci5jPTExMjAzPUJURl9JRChmdW5jLCBicGZfcHJlZW1wdF9lbmFibGUpXFxua2VybmVsL2JwZi92ZXJpZmllci5jOjExMjA0OiNpZmRlZiBDT05GSUdfQ0dST1VQU1xcbmtlcm5lbC9icGYvdmVyaWZpZXIuYy0xMTIwNS1CVEZfSUQoZnVuYywgYnBmX2l0ZXJfY3NzX3Rhc2tfbmV3KVxcbi0tXFxua2VybmVsL2JwZi92ZXJpZmllci5jPTExMjA3PUJURl9JRF9VTlVTRURcXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtMTEyMDgtI2VuZGlmXFxua2VybmVsL2JwZi92ZXJpZmllci5jOjExMjA5OiNpZmRlZiBDT05GSUdfQlBGX0VWRU5UU1xcbmtlcm5lbC9icGYvdmVyaWZpZXIuYy0xMTIxMC1CVEZfSUQoZnVuYywgYnBmX3Nlc3Npb25fY29va2llKVxcbi0tXFxua2VybmVsL2JwZi92ZXJpZmllci5jPTExMjE5PUJURl9JRChmdW5jLCBicGZfaXRlcl9udW1fZGVzdHJveSlcXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM6MTEyMjA6I2lmZGVmIENPTkZJR19CUEZfTFNNXFxua2VybmVsL2JwZi92ZXJpZmllci5jLTExMjIxLUJURl9JRChmdW5jLCBicGZfc2V0X2RlbnRyeV94YXR0cilcXG4tLVxcbmtlcm5lbC9icGYvdmVyaWZpZXIuYz0xMTIzOD1CVEZfSUQoZnVuYywgYnBmX2FyZW5hX3Jlc2VydmVfcGFnZXMpXFxua2VybmVsL2JwZi92ZXJpZmllci5jOjExMjM5OiNpZmRlZiBDT05GSUdfQlBGX0VWRU5UU1xcbmtlcm5lbC9icGYvdmVyaWZpZXIuYy0xMTI0MC1CVEZfSUQoZnVuYywgYnBmX3Nlc3Npb25faXNfcmV0dXJuKVxcbi0tXFxua2VybmVsL2JwZi92ZXJpZmllci5jPTE0NTM2PXN0YXRpYyB2b2lkIHNjYWxhcl9ieXRlX3N3YXAoc3RydWN0IGJwZl9yZWdfc3RhdGUgKmRzdF9yZWcsIHN0cnVjdCBicGZfaW5zbiAqaW5zbilcXG4tLVxcbmtlcm5lbC9icGYvdmVyaWZpZXIuYy0xNDU1MS1cXHRib29sIGlzX2JpZ19lbmRpYW47XFxua2VybmVsL2JwZi92ZXJpZmllci5jOjE0NTUyOiNpZmRlZiBDT05GSUdfQ1BVX0JJR19FTkRJQU5cXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtMTQ1NTMtXFx0aXNfYmlnX2VuZGlhbiA9IHRydWU7XFxuLS1cXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM9MTY3MzA9Ym9vbCBicGZfdmVyaWZpZXJfaW5saW5lc19oZWxwZXJfY2FsbChzdHJ1Y3QgYnBmX3ZlcmlmaWVyX2VudiAqZW52LCBzMzIgaW1tKVxcbi0tXFxua2VybmVsL2JwZi92ZXJpZmllci5jLTE2NzMyLVxcdHN3aXRjaCAoaW1tKSB7XFxua2VybmVsL2JwZi92ZXJpZmllci5jOjE2NzMzOiNpZmRlZiBDT05GSUdfWDg2XzY0XFxua2VybmVsL2JwZi92ZXJpZmllci5jLTE2NzM0LVxcdGNhc2UgQlBGX0ZVTkNfZ2V0X3NtcF9wcm9jZXNzb3JfaWQ6XFxua2VybmVsL2JwZi92ZXJpZmllci5jOjE2NzM1OiNpZmRlZiBDT05GSUdfU01QXFxua2VybmVsL2JwZi92ZXJpZmllci5jLTE2NzM2LVxcdGNhc2UgQlBGX0ZVTkNfZ2V0X2N1cnJlbnRfdGFza19idGY6XFxuLS1cXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM9MTc3NjQ9c3RhdGljIGludCBjaGVja19wc2V1ZG9fYnRmX2lkKHN0cnVjdCBicGZfdmVyaWZpZXJfZW52ICplbnYsXFxuLS1cXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtMTc3ODAtXFx0XFx0aWYgKCFidGZfdm1saW51eCkge1xcbmtlcm5lbC9icGYvdmVyaWZpZXIuYzoxNzc4MTpcXHRcXHRcXHR2ZXJib3NlKGVudiwgXFxcImtlcm5lbCBpcyBtaXNzaW5nIEJURiwgbWFrZSBzdXJlIENPTkZJR19ERUJVR19JTkZPX0JURj15IGlzIHNwZWNpZmllZCBpbiBLY29uZmlnLlxcXFxuXFxcIik7XFxua2VybmVsL2JwZi92ZXJpZmllci5jLTE3NzgyLVxcdFxcdFxcdHJldHVybiAtRUlOVkFMO1xcbi0tXFxua2VybmVsL2JwZi92ZXJpZmllci5jPTE4NzUyPXN0YXRpYyBpbnQgY2hlY2tfc3RydWN0X29wc19idGZfaWQoc3RydWN0IGJwZl92ZXJpZmllcl9lbnYgKmVudilcXG4tLVxcbmtlcm5lbC9icGYvdmVyaWZpZXIuYy0xODg2Mi1cXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM6MTg4NjM6I2lmZGVmIENPTkZJR19GVU5DVElPTl9FUlJPUl9JTkpFQ1RJT05cXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtMTg4NjQtXFxuLS1cXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM9MTg4NzI9QlRGX0lEKGZ1bmMsIF9fZmlsZW1hcF9hZGRfZm9saW8pXFxua2VybmVsL2JwZi92ZXJpZmllci5jOjE4ODczOiNpZmRlZiBDT05GSUdfRkFJTF9QQUdFX0FMTE9DXFxua2VybmVsL2JwZi92ZXJpZmllci5jLTE4ODc0LUJURl9JRChmdW5jLCBzaG91bGRfZmFpbF9hbGxvY19wYWdlKVxcbmtlcm5lbC9icGYvdmVyaWZpZXIuYy0xODg3NS0jZW5kaWZcXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM6MTg4NzY6I2lmZGVmIENPTkZJR19GQUlMU0xBQlxcbmtlcm5lbC9icGYvdmVyaWZpZXIuYy0xODg3Ny1CVEZfSUQoZnVuYywgc2hvdWxkX2ZhaWxzbGFiKVxcbi0tXFxua2VybmVsL2JwZi92ZXJpZmllci5jPTE4OTQ0PXN0YXRpYyBpbnQgY2hlY2tfYXR0YWNoX21vZGlmeV9yZXR1cm4odW5zaWduZWQgbG9uZyBhZGRyLCBjb25zdCBjaGFyICpmdW5jX25hbWUpXFxuLS1cXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtMTg5NTItXFxua2VybmVsL2JwZi92ZXJpZmllci5jOjE4OTUzOiNlbmRpZiAvKiBDT05GSUdfRlVOQ1RJT05fRVJST1JfSU5KRUNUSU9OICovXFxua2VybmVsL2JwZi92ZXJpZmllci5jLTE4OTU0LVxcbi0tXFxua2VybmVsL2JwZi92ZXJpZmllci5jPTE5MzQyPUJURl9JRF9VTlVTRURcXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM6MTkzNDM6I2lmZGVmIENPTkZJR19TTVBcXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtMTkzNDQtQlRGX0lEKGZ1bmMsIF9fX21pZ3JhdGVfZW5hYmxlKVxcbi0tXFxua2VybmVsL2JwZi92ZXJpZmllci5jPTE5MzQ2PUJURl9JRChmdW5jLCBtaWdyYXRlX2VuYWJsZSlcXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtMTkzNDctI2VuZGlmXFxua2VybmVsL2JwZi92ZXJpZmllci5jOjE5MzQ4OiNpZiAhZGVmaW5lZCBDT05GSUdfUFJFRU1QVF9SQ1UgXFx1MDAyNlxcdTAwMjYgIWRlZmluZWQgQ09ORklHX1RJTllfUkNVXFxua2VybmVsL2JwZi92ZXJpZmllci5jLTE5MzQ5LUJURl9JRChmdW5jLCByY3VfcmVhZF91bmxvY2tfc3RyaWN0KVxcbmtlcm5lbC9icGYvdmVyaWZpZXIuYy0xOTM1MC0jZW5kaWZcXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM6MTkzNTE6I2lmIGRlZmluZWQoQ09ORklHX0RFQlVHX1BSRUVNUFQpIHx8IGRlZmluZWQoQ09ORklHX1RSQUNFX1BSRUVNUFRfVE9HR0xFKVxcbmtlcm5lbC9icGYvdmVyaWZpZXIuYy0xOTM1Mi1CVEZfSUQoZnVuYywgcHJlZW1wdF9jb3VudF9hZGQpXFxua2VybmVsL2JwZi92ZXJpZmllci5jPTE5MzUzPUJURl9JRChmdW5jLCBwcmVlbXB0X2NvdW50X3N1YilcXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtMTkzNTQtI2VuZGlmXFxua2VybmVsL2JwZi92ZXJpZmllci5jOjE5MzU1OiNpZmRlZiBDT05GSUdfUFJFRU1QVF9SQ1VcXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtMTkzNTYtQlRGX0lEKGZ1bmMsIF9fcmN1X3JlYWRfbG9jaylcXG4tLVxcbmtlcm5lbC9icGYvdmVyaWZpZXIuYz0xOTM2NT1CVEZfU0VUX1NUQVJUKG5vcmV0dXJuX2RlbnkpXFxua2VybmVsL2JwZi92ZXJpZmllci5jOjE5MzY2OiNpZmRlZiBDT05GSUdfSUEzMl9FTVVMQVRJT05cXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtMTkzNjctQlRGX0lEKGZ1bmMsIF9faWEzMl9zeXNfZXhpdClcXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM9MTkzNjg9QlRGX0lEKGZ1bmMsIF9faWEzMl9zeXNfZXhpdF9ncm91cClcXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtMTkzNjktI2VuZGlmXFxua2VybmVsL2JwZi92ZXJpZmllci5jOjE5MzcwOiNpZmRlZiBDT05GSUdfS1VOSVRcXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtMTkzNzEtQlRGX0lEKGZ1bmMsIF9fa3VuaXRfYWJvcnQpXFxua2VybmVsL2JwZi92ZXJpZmllci5jPTE5MzcyPUJURl9JRChmdW5jLCBrdW5pdF90cnlfY2F0Y2hfdGhyb3cpXFxua2VybmVsL2JwZi92ZXJpZmllci5jLTE5MzczLSNlbmRpZlxcbmtlcm5lbC9icGYvdmVyaWZpZXIuYzoxOTM3NDojaWZkZWYgQ09ORklHX01PRFVMRVNcXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtMTkzNzUtQlRGX0lEKGZ1bmMsIF9fbW9kdWxlX3B1dF9hbmRfa3RocmVhZF9leGl0KVxcbmtlcm5lbC9icGYvdmVyaWZpZXIuYy0xOTM3Ni0jZW5kaWZcXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM6MTkzNzc6I2lmZGVmIENPTkZJR19YODZfNjRcXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtMTkzNzgtQlRGX0lEKGZ1bmMsIF9feDY0X3N5c19leGl0KVxcbi0tXFxua2VybmVsL2JwZi92ZXJpZmllci5jPTE5NTcwPXN0cnVjdCBidGYgKmJwZl9nZXRfYnRmX3ZtbGludXgodm9pZClcXG4tLVxcbmtlcm5lbC9icGYvdmVyaWZpZXIuYy0xOTU3NC1cXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM6MTk1NzU6XFx0aWYgKCFidGYgXFx1MDAyNlxcdTAwMjYgSVNfRU5BQkxFRChDT05GSUdfREVCVUdfSU5GT19CVEYpKSB7XFxua2VybmVsL2JwZi92ZXJpZmllci5jLTE5NTc2LVxcdFxcdG11dGV4X2xvY2soXFx1MDAyNmJ0Zl92bWxpbnV4X2xvY2spO1xcbi0tXFxua2VybmVsL2JwZi92ZXJpZmllci5jPTIwMDQxPWludCBicGZfY2hlY2soc3RydWN0IGJwZl9wcm9nICoqcHJvZywgdW5pb24gYnBmX2F0dHIgKmF0dHIsIGJwZnB0cl90IHVhdHRyLFxcbi0tXFxua2VybmVsL2JwZi92ZXJpZmllci5jLTIwMTI4LVxcdGVudi1cXHUwMDNlc3RyaWN0X2FsaWdubWVudCA9ICEhKGF0dHItXFx1MDAzZXByb2dfZmxhZ3MgXFx1MDAyNiBCUEZfRl9TVFJJQ1RfQUxJR05NRU5UKTtcXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM6MjAxMjk6XFx0aWYgKCFJU19FTkFCTEVEKENPTkZJR19IQVZFX0VGRklDSUVOVF9VTkFMSUdORURfQUNDRVNTKSlcXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtMjAxMzAtXFx0XFx0ZW52LVxcdTAwM2VzdHJpY3RfYWxpZ25tZW50ID0gdHJ1ZTtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTBUMTE6MzU6MTUuMzA1NjkyNjE4WiIsIlNlcSI6OSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDIxOTQ2OTY0MiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIEJQRiBWZXJpZmllciBQYXRjaCoqXG5cbk9rYXksIHNvIHRoaXMgcGF0Y2ggaXMgc2l0dGluZyB3aXRoaW4gYGNoZWNrX21lbV9hY2Nlc3NgLCB3aGljaCBpcyB0aGUgZnVuY3Rpb24gdGhhdCBnZXRzIGNhbGxlZCB3aGVuZXZlciBhIEJQRiBwcm9ncmFtIGFjY2Vzc2VzIG1lbW9yeS4gSXQncyB0aWVkIHRvIHRoaXMgYEJQRl9TWVNDQUxMYCBjb25maWcsIHdoaWNoIG1ha2VzIHNlbnNlLiBMb29raW5nIGF0IHRoZSByZWFzb25pbmcsIGl0J3MgYSBidWcgZml4IGluIHRoZSBCUEYgdmVyaWZpZXIgaXRzZWxmLiBTcGVjaWZpY2FsbHksIGEgc2lnbi1leHRlbmRpbmcgbG9hZCBjb3VsZCBiZSBrZWVwaW5nIGEgc2hhcmVkIHNjYWxhciBJRCwgd2hpY2ggdGhyb3dzIG9mZiB0aGUgYm91bmRzIHRyYWNraW5nLiBSaWdodCwgc28gYSBjb3JlIGxvZ2ljIGNoYW5nZSBpbiB0aGUgdmVyaWZpZXI7IHRoYXQgZGVmaW5pdGVseSB3YXJyYW50cyBzb21lIGZ1enppbmcuXG5cbk5vdywgdGhlIHF1ZXN0aW9uIGlzIHdoZXRoZXIgYEJQRl9TWVNDQUxMYCBpcyAqc3VmZmljaWVudCogZm9yIGVuYWJsaW5nIHRoZSB2ZXJpZmllciBpbiB0aGUgZmlyc3QgcGxhY2UuIEkgbmVlZCB0byB2ZXJpZnkgdGhhdC4gQWgsIHllcywgY29uZmlybWVkLiBFbmFibGluZyBgQlBGX1NZU0NBTExgIGFsc28gZW5hYmxlcyB0aGUgdmVyaWZpZXIsIHNvIHdlIGFyZSBnb29kIHRvIGdvLlxuXG5UaW1lIHRvIGNhbGwgYHNldC1yZXN1bHRzYC5cblxuXG4iLCJJbnB1dFRva2VucyI6MTE1MDksIk91dHB1dFRva2VucyI6OTgsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxMzcsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMTBUMTE6MzU6MTkuNTI1MTY0NjFaIiwiU2VxIjoxMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo5MjA0NzgyNCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiQlBGX1NZU0NBTExcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJjaGVja19tZW1fYWNjZXNzXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggZml4ZXMgYSBidWcgaW4gdGhlIEJQRiB2ZXJpZmllciB3aGVyZSBhIHNpZ24tZXh0ZW5kaW5nIGxvYWQgY291bGQgaW5jb3JyZWN0bHkga2VlcCBhIHNoYXJlZCBzY2FsYXIgSUQsIGxlYWRpbmcgdG8gaW5jb3JyZWN0IGJvdW5kcyB0cmFja2luZy4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSB2ZXJpZmllcidzIGNvcmUgbG9naWMgYW5kIHNob3VsZCBiZSBmdXp6ZWQuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiQlBGX1NZU0NBTExcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJjaGVja19tZW1fYWNjZXNzXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggZml4ZXMgYSBidWcgaW4gdGhlIEJQRiB2ZXJpZmllciB3aGVyZSBhIHNpZ24tZXh0ZW5kaW5nIGxvYWQgY291bGQgaW5jb3JyZWN0bHkga2VlcCBhIHNoYXJlZCBzY2FsYXIgSUQsIGxlYWRpbmcgdG8gaW5jb3JyZWN0IGJvdW5kcyB0cmFja2luZy4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSB2ZXJpZmllcidzIGNvcmUgbG9naWMgYW5kIHNob3VsZCBiZSBmdXp6ZWQuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0udG9rZW5zIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnVG9vbER1ciA9IHN0YXRzLnRvb2wuY291bnQgPiAwID8gKHN0YXRzLnRvb2wuZHVyYXRpb24gLyBzdGF0cy50b29sLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCgkJCWNvbnN0IGxsbVN1bWFyeUNlbGxzID0gW3N0YXRzLmxsbS5jb3VudCwgc3RhdHMubGxtLnRva2VucywgYXZnTGxtVG9rZW4sIHN0YXRzLmxsbS5kdXJhdGlvbiwgYXZnTGxtRHVyXTsKCQkJY29uc3QgdG9vbFN1bW1hcnlDZWxscyA9IFtzdGF0cy50b29sLmNvdW50LCBzdGF0cy50b29sLmR1cmF0aW9uLCBhdmdUb29sRHVyXTsKCgkJCWNvbnN0IGxsbVN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xsbV9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJbGxtU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IGxsbVRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJbGxtU3VtYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCWxsbVRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCWxsbVN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKGxsbVRyKTsKCgkJCWNvbnN0IHRvb2xTdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b29sX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQl0b29sU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IHRvb2xUciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCXRvb2xTdW1tYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCXRvb2xUci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQl0b29sU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQodG9vbFRyKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgZmlsdGVyZWRTdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gWyJsbG0iLCAidG9vbCJdLmluY2x1ZGVzKGQuVHlwZSkpOwoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdEdXJhdGlvbicpOwoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOyAKCgkJCWZpbHRlcmVkU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCQoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7CgkJCQlsZXQgdG9vbHRpcCA9IHMuTmFtZTsKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iICYmIHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCQkJCWRhdGEuYWRkUm93KFtgJHtzLlNlcX1gLCBkdXIsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUaW1lIENvbnN1bXB0aW9uIG9mIExMTS9Ub29sIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0vVG9vbCBTdGVwcycsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdTZWNvbmRzJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkdXJhdGlvbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgbGxtU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IGQuVHlwZSA9PT0gImxsbSIpOwoJCQlpZiAobGxtU3RlcHMubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdUb2tlbnMnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAnc3R5bGUnfSk7CQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOwkKCgkJCWNvbnN0IGFnZW50Q29sb3JzID0ge307CgkJCWNvbnN0IHBhbGV0dGUgPSBbJyM0Mjg1RjQnLCAnI0RCNDQzNycsICcjRjRCNDAwJywgJyMwRjlENTgnLCAnI0FCNDdCQycsICcjMDBBQ0MxJ107CgkJCWxldCBjb2xvcklkeCA9IDA7CgkJCWNvbnN0IGFnZW50TExNQ291bnRzID0ge307CgkJCWxsbVN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQlpZiAoIWFnZW50Q29sb3JzW3MuTmFtZV0pIHsKCQkJCQlhZ2VudENvbG9yc1tzLk5hbWVdID0gcGFsZXR0ZVtjb2xvcklkeCAlIHBhbGV0dGUubGVuZ3RoXTsKCQkJCQljb2xvcklkeCsrOwoJCQkJfQoKCQkJCWFnZW50TExNQ291bnRzW3MuTmFtZV0gPSAoYWdlbnRMTE1Db3VudHNbcy5OYW1lXSB8fCAwKSArIDE7CgkJCQljb25zdCBsYWJlbCA9IGAke3MuTmFtZX0tJHthZ2VudExMTUNvdW50c1tzLk5hbWVdfWA7CgkJCQljb25zdCB0b3RhbFRva2VucyA9IHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnM7CgkJCQljb25zdCBzdHlsZSA9IGBjb2xvcjogJHthZ2VudENvbG9yc1tzLk5hbWVdfWA7CgkJCQlsZXQgdG9vbHRpcCA9IGBUb3RhbCBUb2tlbnM6ICR7dG90YWxUb2tlbnN9XG4oSW46ICR7cy5JbnB1dFRva2Vuc30sIE91dDogJHtzLk91dHB1dFRva2Vuc30sIFRob3VnaHRzOiAke3MuT3V0cHV0VGhvdWdodHNUb2tlbnN9KWA7CgkJCQlpZiAocy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoKCQkJCWRhdGEuYWRkUm93KFtsYWJlbCwgdG90YWxUb2tlbnMsIHN0eWxlLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVG9rZW4gQ29uc3VtcHRpb24gYnkgTExNIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0gQ2FsbCBTZXF1ZW5jZScsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdDb25zdW1lZCBUb2tlbnMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rva2VuX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgkJbGV0IGFsbEV4cGFuZGVkID0gZmFsc2U7CgkJZnVuY3Rpb24gdG9nZ2xlQWxsRGV0YWlscygpIHsKCQkJYWxsRXhwYW5kZWQgPSAhYWxsRXhwYW5kZWQ7CgkJCWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2RldGFpbHMnKS5mb3JFYWNoKGQgPT4gewoJCQkJaWYgKGFsbEV4cGFuZGVkKSBkLnNldEF0dHJpYnV0ZSgnb3BlbicsICcnKTsKCQkJCWVsc2UgZC5yZW1vdmVBdHRyaWJ1dGUoJ29wZW4nKTsKCQkJfSk7CgkJfQoJPC9zY3JpcHQ+CgoKPC9ib2R5Pgo8L2h0bWw+Cg==" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflow6jlzt[0].run-triage(0) Phase: Succeeded StartedAt: 2026-07-10 11:24:14 +0000 UTC FinishedAt: 2026-07-10 11:35:21 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "bpf-next", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git", "commit_hash": "36ffa86c42f91c8a57071e024afc4ffb51a8958f", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "BPF_SYSCALL" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "bpf-next", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git", "commit_hash": "36ffa86c42f91c8a57071e024afc4ffb51a8958f", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "BPF_SYSCALL" ], "series_id": "1d4dba8b-1d06-4607-b613-3eaa602f0175" }, "track": "KASAN", "fuzz": { "focus": [ "bpf" ], "focus_symbols": [ "check_mem_access" ], "corpus_urls": [ "https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db" ], "skip_cover_check": false, "bug_title_re": "" }, "retest": null } ], "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzEwIDExOjM1PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0JQRl9TWVNDQUxMJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7Y2hlY2tfbWVtX2FjY2VzcyYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBmaXhlcyBhIGJ1ZyBpbiB0aGUgQlBGIHZlcmlmaWVyIHdoZXJlIGEgc2lnbi1leHRlbmRpbmcgbG9hZCBjb3VsZCBpbmNvcnJlY3RseSBrZWVwIGEgc2hhcmVkIHNjYWxhciBJRCwgbGVhZGluZyB0byBpbmNvcnJlY3QgYm91bmRzIHRyYWNraW5nLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIHZlcmlmaWVyJiMzOTtzIGNvcmUgbG9naWMgYW5kIHNob3VsZCBiZSBmdXp6ZWQuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MS8xPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTAgMTE6MzU8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPnJlYWQtcGF0Y2gtZGlmZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1BhdGNoRGlmZiYjMzQ7OiAmIzM0O2NvbW1pdCA1MzM1ODlmOTU3ZTM5YjNlODBhMjBlOGFlMzcwMTdiNDQyMmZhM2YzXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIEZyaSBKdWwgMTAgMTE6MzQ6NTkgMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEva2VybmVsL2JwZi92ZXJpZmllci5jIGIva2VybmVsL2JwZi92ZXJpZmllci5jXG5pbmRleCAyMzM0NzJhODcxYmU1Ny4uYTA4MzBhZDZiZWJiZTIgMTAwNjQ0XG4tLS0gYS9rZXJuZWwvYnBmL3ZlcmlmaWVyLmNcbiYjNDM7JiM0MzsmIzQzOyBiL2tlcm5lbC9icGYvdmVyaWZpZXIuY1xuQEAgLTYzOTQsMTEgJiM0Mzs2Mzk0LDIzIEBAIHN0YXRpYyBpbnQgY2hlY2tfbWVtX2FjY2VzcyhzdHJ1Y3QgYnBmX3ZlcmlmaWVyX2VudiAqZW52LCBpbnQgaW5zbl9pZHgsIHN0cnVjdCBiXG4gXG4gXHRpZiAoIWVyciBcdTAwMjZcdTAwMjYgc2l6ZSBcdTAwM2MgQlBGX1JFR19TSVpFIFx1MDAyNlx1MDAyNiB2YWx1ZV9yZWdubyBcdTAwM2U9IDAgXHUwMDI2XHUwMDI2IHQgPT0gQlBGX1JFQUQgXHUwMDI2XHUwMDI2XG4gXHQgICAgcmVnc1t2YWx1ZV9yZWdub10udHlwZSA9PSBTQ0FMQVJfVkFMVUUpIHtcbi1cdFx0aWYgKCFpc19sZHN4KVxuJiM0MztcdFx0aWYgKCFpc19sZHN4KSB7XG4gXHRcdFx0LyogYi9oL3cgbG9hZCB6ZXJvLWV4dGVuZHMsIG1hcmsgdXBwZXIgYml0cyBhcyBrbm93biAwICovXG4gXHRcdFx0Y29lcmNlX3JlZ190b19zaXplKFx1MDAyNnJlZ3NbdmFsdWVfcmVnbm9dLCBzaXplKTtcbi1cdFx0ZWxzZVxuJiM0MztcdFx0fSBlbHNlIHtcbiYjNDM7XHRcdFx0LypcbiYjNDM7XHRcdFx0ICogU2lnbi1leHRlbnNpb24gY2FuIGNoYW5nZSB0aGUgcmVnaXN0ZXIgdmFsdWUgcmVsYXRpdmVcbiYjNDM7XHRcdFx0ICogdG8gYSBzY2FsYXIgaXQgaXMgbGlua2VkIHdpdGggYnkgaWQgKGUuZy4gYSB6ZXJvLVxuJiM0MztcdFx0XHQgKiBleHRlbmRpbmcgZmlsbCBvZiB0aGUgc2FtZSBzcGlsbGVkIHN0YWNrIHNsb3QpLCB0aHVzXG4mIzQzO1x0XHRcdCAqIGRyb3AgdGhlIHNoYXJlZCBpZCBpbiB0aGF0IGNhc2UuXG4mIzQzO1x0XHRcdCAqL1xuJiM0MztcdFx0XHRib29sIG5vX3NleHQgPSByZWdfdW1heChcdTAwMjZyZWdzW3ZhbHVlX3JlZ25vXSkgXHUwMDNjXG4mIzQzO1x0XHRcdFx0XHQoMVVMTCBcdTAwM2NcdTAwM2MgKHNpemUgKiBCSVRTX1BFUl9CWVRFIC0gMSkpO1xuJiM0MztcbiBcdFx0XHRjb2VyY2VfcmVnX3RvX3NpemVfc3goXHUwMDI2cmVnc1t2YWx1ZV9yZWdub10sIHNpemUpO1xuJiM0MztcdFx0XHRpZiAoIW5vX3NleHQpXG4mIzQzO1x0XHRcdFx0Y2xlYXJfc2NhbGFyX2lkKFx1MDAyNnJlZ3NbdmFsdWVfcmVnbm9dKTtcbiYjNDM7XHRcdH1cbiBcdH1cbiBcdHJldHVybiBlcnI7XG4gfVxuZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9zY2FsYXJfaWRzLmMgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfc2NhbGFyX2lkcy5jXG5pbmRleCBlMzhmMTAyZGE0NWYyZS4uNjYzZDE1ZmM1ZmQyNmEgMTAwNjQ0XG4tLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfc2NhbGFyX2lkcy5jXG4mIzQzOyYjNDM7JiM0MzsgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfc2NhbGFyX2lkcy5jXG5AQCAtNCw2ICYjNDM7NCwxMyBAQFxuICNpbmNsdWRlIFx1MDAzY2JwZi9icGZfaGVscGVycy5oXHUwMDNlXG4gI2luY2x1ZGUgXCYjMzQ7YnBmX21pc2MuaFwmIzM0O1xuIFxuJiM0MztzdHJ1Y3Qge1xuJiM0MztcdF9fdWludCh0eXBlLCBCUEZfTUFQX1RZUEVfSEFTSCk7XG4mIzQzO1x0X191aW50KG1heF9lbnRyaWVzLCAxKTtcbiYjNDM7XHRfX3R5cGUoa2V5LCBsb25nIGxvbmcpO1xuJiM0MztcdF9fdHlwZSh2YWx1ZSwgbG9uZyBsb25nKTtcbiYjNDM7fSBtYXBfaGFzaF84YiBTRUMoXCYjMzQ7Lm1hcHNcJiMzNDspO1xuJiM0MztcbiAvKiBDaGVjayB0aGF0IHByZWNpc2lvbiBtYXJrcyBwcm9wYWdhdGUgdGhyb3VnaCBzY2FsYXIgSURzLlxuICAqIFJlZ2lzdGVycyByezAsMSwyfSBoYXZlIHRoZSBzYW1lIHNjYWxhciBJRC5cbiAgKiBSYW5nZSBpbmZvcm1hdGlvbiBpcyBwcm9wYWdhdGVkIGZvciBzY2FsYXJzIHNoYXJpbmcgc2FtZSBJRC5cbkBAIC05MTUsNCAmIzQzOzkyMiw1MyBAQCBfX25ha2VkIHZvaWQgbGlua2VkX3JlZ3NfYW5kX3N1YnJlZ19kZWYodm9pZClcbiBcdDogX19jbG9iYmVyX2FsbCk7XG4gfVxuIFxuJiM0MzsvKlxuJiM0MzsgKiBBIHNjYWxhciBpcyBzcGlsbGVkIHRvIHRoZSBzdGFjayBhbmQgdGhlbiBmaWxsZWQgdHdpY2U6IG9uY2UgdmlhIGFcbiYjNDM7ICogc2lnbi1leHRlbmRpbmcgbG9hZCAoQlBGX01FTVNYKSBpbnRvIHI0IGFuZCBvbmNlIHZpYSBhIHplcm8tZXh0ZW5kaW5nXG4mIzQzOyAqIGxvYWQgKEJQRl9NRU0pIGludG8gcjUuIGNvZXJjZV9yZWdfdG9fc2l6ZV9zeCgpIGdpdmVzIHI0IGEgZGlmZmVyZW50XG4mIzQzOyAqIHZhbHVlIHRoYW4gdGhlIHNwaWxsZWQvemVyby1leHRlbmRlZCBzaWJsaW5ncywgc28gcjQgbXVzdCBub3Qga2VlcCB0aGVcbiYjNDM7ICogc2hhcmVkIHNjYWxhciBpZC4gT3RoZXJ3aXNlIHRoZSBsYXRlciAmIzM5O2lmIHI1ID09IDB4ODAwMDAwMDAmIzM5OyByZWZpbmVzIHI0XG4mIzQzOyAqIHRocm91Z2ggc3luY19saW5rZWRfcmVncygpIHRvIGEga25vd24gMHg4MDAwMDAwMCwgd2hpbGUgYXQgcnVudGltZSByNFxuJiM0MzsgKiBpcyB0aGUgc2lnbi1leHRlbmRlZCAweGZmZmZmZmZmODAwMDAwMDAuIFRoZSB0ZXN0IHR1cm5zIHRoYXQgZGlzY3JlcGFuY3lcbiYjNDM7ICogaW50byBhbiBvdXQtb2YtYm91bmRzIG1hcCB2YWx1ZSBhY2Nlc3MgKHI0IFx1MDAzZVx1MDAzZSA2MyBpcyBiZWxpZXZlZCAwIGJ1dCBpcyAxXG4mIzQzOyAqIGF0IHJ1bnRpbWUpLCB3aGljaCBtdXN0IGJlIHJlamVjdGVkLlxuJiM0MzsgKi9cbiYjNDM7U0VDKFwmIzM0O3NvY2tldFwmIzM0OylcbiYjNDM7X19mYWlsdXJlIF9fbXNnKFwmIzM0O1IwIG1heCB2YWx1ZSBpcyBvdXRzaWRlIG9mIHRoZSBhbGxvd2VkIG1lbW9yeSByYW5nZVwmIzM0OylcbiYjNDM7X19uYWtlZCB2b2lkIGxkc3hfZmlsbF9zY2FsYXJfaWRfbm90X3NoYXJlZCh2b2lkKVxuJiM0Mzt7XG4mIzQzO1x0YXNtIHZvbGF0aWxlIChcJiMzNDtcdFx0XHRcdFx0XFxcbiYjNDM7XHRyMSA9IDA7XHRcdFx0XHRcdFx0XFxcbiYjNDM7XHQqKHU2NCopKHIxMCAtIDgpID0gcjE7XHRcdFx0XHRcXFxuJiM0MztcdHIyID0gcjEwO1x0XHRcdFx0XHRcXFxuJiM0MztcdHIyICYjNDM7PSAtODtcdFx0XHRcdFx0XFxcbiYjNDM7XHRyMSA9ICVbbWFwX2hhc2hfOGJdIGxsO1x0XHRcdFx0XFxcbiYjNDM7XHRjYWxsICVbYnBmX21hcF9sb29rdXBfZWxlbV07XHRcdFx0XFxcbiYjNDM7XHRpZiByMCA9PSAwIGdvdG8gbDBfJT07XHRcdFx0XHRcXFxuJiM0MztcdC8qIHI3ID0gdW5rbm93biB1MzIsIGtlZXAgb25seSBiaXQgMzEgKi9cdFxcXG4mIzQzO1x0cjcgPSAqKHUzMiopKHIwICYjNDM7IDApO1x0XHRcdFx0XFxcbiYjNDM7XHRyMiA9IDB4ODAwMDAwMDAgbGw7XHRcdFx0XHRcXFxuJiM0MztcdHI3IFx1MDAyNj0gcjI7XHRcdFx0XHRcdFxcXG4mIzQzO1x0LyogbGluayByNiBhbmQgcjcgdmlhIGEgZnJlc2ggc2NhbGFyIGlkICovXHRcXFxuJiM0MztcdHI2ID0gcjc7XHRcdFx0XHRcdFxcXG4mIzQzO1x0Lyogc3BpbGwgcjcgKHUzMikgdG8gdGhlIHN0YWNrICovXHRcdFxcXG4mIzQzO1x0Kih1MzIqKShyMTAgLSA4KSA9IHI3O1x0XHRcdFx0XFxcbiYjNDM7XHQvKiBzaWduLWV4dGVuZGluZyBmaWxsOiBtdXN0IGRyb3AgdGhlIGlkICovXHRcXFxuJiM0MztcdHI0ID0gKihzMzIqKShyMTAgLSA4KTtcdFx0XHRcdFxcXG4mIzQzO1x0LyogemVyby1leHRlbmRpbmcgZmlsbDoga2VlcHMgdGhlIGlkICovXHRcdFxcXG4mIzQzO1x0cjUgPSAqKHUzMiopKHIxMCAtIDgpO1x0XHRcdFx0XFxcbiYjNDM7XHQvKiByNSBiZWNvbWVzIGtub3duIDB4ODAwMDAwMDAgb24gZmFsbC10aHJvdWdoICovXFxcbiYjNDM7XHRpZiByNSAhPSByMiBnb3RvIGwwXyU9O1x0XHRcdFx0XFxcbiYjNDM7XHQvKiB2ZXJpZmllciBiZWxpZXZlcyByNCA9PSAwIGhlcmUsIHJ1bnRpbWUgaXMgMSAqL1xcXG4mIzQzO1x0cjQgXHUwMDNlXHUwMDNlPSA2MztcdFx0XHRcdFx0XFxcbiYjNDM7XHRyMCAmIzQzOz0gcjQ7XHRcdFx0XHRcdFxcXG4mIzQzO1x0cjAgPSAqKHU4KikocjAgJiM0MzsgNyk7XHRcdFx0XHRcXFxuJiM0MztsMF8lPTpcdHIwID0gMDtcdFx0XHRcdFx0XHRcXFxuJiM0MztcdGV4aXQ7XHRcdFx0XHRcdFx0XFxcbiYjNDM7XCYjMzQ7XHQ6XG4mIzQzO1x0OiBfX2ltbShicGZfbWFwX2xvb2t1cF9lbGVtKSxcbiYjNDM7XHQgIF9faW1tX2FkZHIobWFwX2hhc2hfOGIpXG4mIzQzO1x0OiBfX2Nsb2JiZXJfYWxsKTtcbiYjNDM7fVxuJiM0MztcbiBjaGFyIF9saWNlbnNlW10gU0VDKFwmIzM0O2xpY2Vuc2VcJiMzNDspID0gXCYjMzQ7R1BMXCYjMzQ7O1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzEwIDExOjM1PC90ZD4KCQkJPHRkPmFnZW50PC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0JQRl9TWVNDQUxMJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7Y2hlY2tfbWVtX2FjY2VzcyYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBmaXhlcyBhIGJ1ZyBpbiB0aGUgQlBGIHZlcmlmaWVyIHdoZXJlIGEgc2lnbi1leHRlbmRpbmcgbG9hZCBjb3VsZCBpbmNvcnJlY3RseSBrZWVwIGEgc2hhcmVkIHNjYWxhciBJRCwgbGVhZGluZyB0byBpbmNvcnJlY3QgYm91bmRzIHRyYWNraW5nLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIHZlcmlmaWVyJiMzOTtzIGNvcmUgbG9naWMgYW5kIHNob3VsZCBiZSBmdXp6ZWQuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZQppZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5CnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuCgpSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOgotIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuCi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuCi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LgotIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwKZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLgoKSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaAp0b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS4KCldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOgoxLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLgogICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy4KMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuCiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy4KICAgRG8gbm90IGxpc3QgdG9vIGdlbmVyaWMgY29uZmlncyAod2UgYWxyZWFkeSBoYXZlIHRoZW0gZW5hYmxlZCkuIE9ubHkgbGlzdCB0aG9zZSB0aGF0CiAgIHNwZWNpZmljYWxseSBjb3ZlciB0aGUgbW9kaWZpZWQgY29kZS4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzIG91dHB1dCBhcnJheSwKICAgYW5kIERPIE5PVCBhZGQgYSAmIzM5O0NPTkZJR18mIzM5OyBwcmVmaXggKGUuZy4sIHJldHVybiAmIzM0O05FVF9JUFY0JiMzNDsgaW5zdGVhZCBvZiAmIzM0O0NPTkZJR19ORVRfSVBWNCYjMzQ7KS4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IDUzMzU4OWY5NTdlMzliM2U4MGEyMGU4YWUzNzAxN2I0NDIyZmEzZjMKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgRnJpIEp1bCAxMCAxMTozNDo1OSAyMDI2ICYjNDM7MDAwMAoKICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldwoKZGlmZiAtLWdpdCBhL2tlcm5lbC9icGYvdmVyaWZpZXIuYyBiL2tlcm5lbC9icGYvdmVyaWZpZXIuYwppbmRleCAyMzM0NzJhODcxYmU1Ny4uYTA4MzBhZDZiZWJiZTIgMTAwNjQ0Ci0tLSBhL2tlcm5lbC9icGYvdmVyaWZpZXIuYwomIzQzOyYjNDM7JiM0MzsgYi9rZXJuZWwvYnBmL3ZlcmlmaWVyLmMKQEAgLTYzOTQsMTEgJiM0Mzs2Mzk0LDIzIEBAIHN0YXRpYyBpbnQgY2hlY2tfbWVtX2FjY2VzcyhzdHJ1Y3QgYnBmX3ZlcmlmaWVyX2VudiAqZW52LCBpbnQgaW5zbl9pZHgsIHN0cnVjdCBiCiAKIAlpZiAoIWVyciAmYW1wOyZhbXA7IHNpemUgJmx0OyBCUEZfUkVHX1NJWkUgJmFtcDsmYW1wOyB2YWx1ZV9yZWdubyAmZ3Q7PSAwICZhbXA7JmFtcDsgdCA9PSBCUEZfUkVBRCAmYW1wOyZhbXA7CiAJICAgIHJlZ3NbdmFsdWVfcmVnbm9dLnR5cGUgPT0gU0NBTEFSX1ZBTFVFKSB7Ci0JCWlmICghaXNfbGRzeCkKJiM0MzsJCWlmICghaXNfbGRzeCkgewogCQkJLyogYi9oL3cgbG9hZCB6ZXJvLWV4dGVuZHMsIG1hcmsgdXBwZXIgYml0cyBhcyBrbm93biAwICovCiAJCQljb2VyY2VfcmVnX3RvX3NpemUoJmFtcDtyZWdzW3ZhbHVlX3JlZ25vXSwgc2l6ZSk7Ci0JCWVsc2UKJiM0MzsJCX0gZWxzZSB7CiYjNDM7CQkJLyoKJiM0MzsJCQkgKiBTaWduLWV4dGVuc2lvbiBjYW4gY2hhbmdlIHRoZSByZWdpc3RlciB2YWx1ZSByZWxhdGl2ZQomIzQzOwkJCSAqIHRvIGEgc2NhbGFyIGl0IGlzIGxpbmtlZCB3aXRoIGJ5IGlkIChlLmcuIGEgemVyby0KJiM0MzsJCQkgKiBleHRlbmRpbmcgZmlsbCBvZiB0aGUgc2FtZSBzcGlsbGVkIHN0YWNrIHNsb3QpLCB0aHVzCiYjNDM7CQkJICogZHJvcCB0aGUgc2hhcmVkIGlkIGluIHRoYXQgY2FzZS4KJiM0MzsJCQkgKi8KJiM0MzsJCQlib29sIG5vX3NleHQgPSByZWdfdW1heCgmYW1wO3JlZ3NbdmFsdWVfcmVnbm9dKSAmbHQ7CiYjNDM7CQkJCQkoMVVMTCAmbHQ7Jmx0OyAoc2l6ZSAqIEJJVFNfUEVSX0JZVEUgLSAxKSk7CiYjNDM7CiAJCQljb2VyY2VfcmVnX3RvX3NpemVfc3goJmFtcDtyZWdzW3ZhbHVlX3JlZ25vXSwgc2l6ZSk7CiYjNDM7CQkJaWYgKCFub19zZXh0KQomIzQzOwkJCQljbGVhcl9zY2FsYXJfaWQoJmFtcDtyZWdzW3ZhbHVlX3JlZ25vXSk7CiYjNDM7CQl9CiAJfQogCXJldHVybiBlcnI7CiB9CmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfc2NhbGFyX2lkcy5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX3NjYWxhcl9pZHMuYwppbmRleCBlMzhmMTAyZGE0NWYyZS4uNjYzZDE1ZmM1ZmQyNmEgMTAwNjQ0Ci0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9zY2FsYXJfaWRzLmMKJiM0MzsmIzQzOyYjNDM7IGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX3NjYWxhcl9pZHMuYwpAQCAtNCw2ICYjNDM7NCwxMyBAQAogI2luY2x1ZGUgJmx0O2JwZi9icGZfaGVscGVycy5oJmd0OwogI2luY2x1ZGUgJiMzNDticGZfbWlzYy5oJiMzNDsKIAomIzQzO3N0cnVjdCB7CiYjNDM7CV9fdWludCh0eXBlLCBCUEZfTUFQX1RZUEVfSEFTSCk7CiYjNDM7CV9fdWludChtYXhfZW50cmllcywgMSk7CiYjNDM7CV9fdHlwZShrZXksIGxvbmcgbG9uZyk7CiYjNDM7CV9fdHlwZSh2YWx1ZSwgbG9uZyBsb25nKTsKJiM0Mzt9IG1hcF9oYXNoXzhiIFNFQygmIzM0Oy5tYXBzJiMzNDspOwomIzQzOwogLyogQ2hlY2sgdGhhdCBwcmVjaXNpb24gbWFya3MgcHJvcGFnYXRlIHRocm91Z2ggc2NhbGFyIElEcy4KICAqIFJlZ2lzdGVycyByezAsMSwyfSBoYXZlIHRoZSBzYW1lIHNjYWxhciBJRC4KICAqIFJhbmdlIGluZm9ybWF0aW9uIGlzIHByb3BhZ2F0ZWQgZm9yIHNjYWxhcnMgc2hhcmluZyBzYW1lIElELgpAQCAtOTE1LDQgJiM0Mzs5MjIsNTMgQEAgX19uYWtlZCB2b2lkIGxpbmtlZF9yZWdzX2FuZF9zdWJyZWdfZGVmKHZvaWQpCiAJOiBfX2Nsb2JiZXJfYWxsKTsKIH0KIAomIzQzOy8qCiYjNDM7ICogQSBzY2FsYXIgaXMgc3BpbGxlZCB0byB0aGUgc3RhY2sgYW5kIHRoZW4gZmlsbGVkIHR3aWNlOiBvbmNlIHZpYSBhCiYjNDM7ICogc2lnbi1leHRlbmRpbmcgbG9hZCAoQlBGX01FTVNYKSBpbnRvIHI0IGFuZCBvbmNlIHZpYSBhIHplcm8tZXh0ZW5kaW5nCiYjNDM7ICogbG9hZCAoQlBGX01FTSkgaW50byByNS4gY29lcmNlX3JlZ190b19zaXplX3N4KCkgZ2l2ZXMgcjQgYSBkaWZmZXJlbnQKJiM0MzsgKiB2YWx1ZSB0aGFuIHRoZSBzcGlsbGVkL3plcm8tZXh0ZW5kZWQgc2libGluZ3MsIHNvIHI0IG11c3Qgbm90IGtlZXAgdGhlCiYjNDM7ICogc2hhcmVkIHNjYWxhciBpZC4gT3RoZXJ3aXNlIHRoZSBsYXRlciAmIzM5O2lmIHI1ID09IDB4ODAwMDAwMDAmIzM5OyByZWZpbmVzIHI0CiYjNDM7ICogdGhyb3VnaCBzeW5jX2xpbmtlZF9yZWdzKCkgdG8gYSBrbm93biAweDgwMDAwMDAwLCB3aGlsZSBhdCBydW50aW1lIHI0CiYjNDM7ICogaXMgdGhlIHNpZ24tZXh0ZW5kZWQgMHhmZmZmZmZmZjgwMDAwMDAwLiBUaGUgdGVzdCB0dXJucyB0aGF0IGRpc2NyZXBhbmN5CiYjNDM7ICogaW50byBhbiBvdXQtb2YtYm91bmRzIG1hcCB2YWx1ZSBhY2Nlc3MgKHI0ICZndDsmZ3Q7IDYzIGlzIGJlbGlldmVkIDAgYnV0IGlzIDEKJiM0MzsgKiBhdCBydW50aW1lKSwgd2hpY2ggbXVzdCBiZSByZWplY3RlZC4KJiM0MzsgKi8KJiM0MztTRUMoJiMzNDtzb2NrZXQmIzM0OykKJiM0MztfX2ZhaWx1cmUgX19tc2coJiMzNDtSMCBtYXggdmFsdWUgaXMgb3V0c2lkZSBvZiB0aGUgYWxsb3dlZCBtZW1vcnkgcmFuZ2UmIzM0OykKJiM0MztfX25ha2VkIHZvaWQgbGRzeF9maWxsX3NjYWxhcl9pZF9ub3Rfc2hhcmVkKHZvaWQpCiYjNDM7ewomIzQzOwlhc20gdm9sYXRpbGUgKCYjMzQ7CQkJCQlcCiYjNDM7CXIxID0gMDsJCQkJCQlcCiYjNDM7CSoodTY0KikocjEwIC0gOCkgPSByMTsJCQkJXAomIzQzOwlyMiA9IHIxMDsJCQkJCVwKJiM0MzsJcjIgJiM0Mzs9IC04OwkJCQkJXAomIzQzOwlyMSA9ICVbbWFwX2hhc2hfOGJdIGxsOwkJCQlcCiYjNDM7CWNhbGwgJVticGZfbWFwX2xvb2t1cF9lbGVtXTsJCQlcCiYjNDM7CWlmIHIwID09IDAgZ290byBsMF8lPTsJCQkJXAomIzQzOwkvKiByNyA9IHVua25vd24gdTMyLCBrZWVwIG9ubHkgYml0IDMxICovCVwKJiM0MzsJcjcgPSAqKHUzMiopKHIwICYjNDM7IDApOwkJCQlcCiYjNDM7CXIyID0gMHg4MDAwMDAwMCBsbDsJCQkJXAomIzQzOwlyNyAmYW1wOz0gcjI7CQkJCQlcCiYjNDM7CS8qIGxpbmsgcjYgYW5kIHI3IHZpYSBhIGZyZXNoIHNjYWxhciBpZCAqLwlcCiYjNDM7CXI2ID0gcjc7CQkJCQlcCiYjNDM7CS8qIHNwaWxsIHI3ICh1MzIpIHRvIHRoZSBzdGFjayAqLwkJXAomIzQzOwkqKHUzMiopKHIxMCAtIDgpID0gcjc7CQkJCVwKJiM0MzsJLyogc2lnbi1leHRlbmRpbmcgZmlsbDogbXVzdCBkcm9wIHRoZSBpZCAqLwlcCiYjNDM7CXI0ID0gKihzMzIqKShyMTAgLSA4KTsJCQkJXAomIzQzOwkvKiB6ZXJvLWV4dGVuZGluZyBmaWxsOiBrZWVwcyB0aGUgaWQgKi8JCVwKJiM0MzsJcjUgPSAqKHUzMiopKHIxMCAtIDgpOwkJCQlcCiYjNDM7CS8qIHI1IGJlY29tZXMga25vd24gMHg4MDAwMDAwMCBvbiBmYWxsLXRocm91Z2ggKi9cCiYjNDM7CWlmIHI1ICE9IHIyIGdvdG8gbDBfJT07CQkJCVwKJiM0MzsJLyogdmVyaWZpZXIgYmVsaWV2ZXMgcjQgPT0gMCBoZXJlLCBydW50aW1lIGlzIDEgKi9cCiYjNDM7CXI0ICZndDsmZ3Q7PSA2MzsJCQkJCVwKJiM0MzsJcjAgJiM0Mzs9IHI0OwkJCQkJXAomIzQzOwlyMCA9ICoodTgqKShyMCAmIzQzOyA3KTsJCQkJXAomIzQzO2wwXyU9OglyMCA9IDA7CQkJCQkJXAomIzQzOwlleGl0OwkJCQkJCVwKJiM0MzsmIzM0Owk6CiYjNDM7CTogX19pbW0oYnBmX21hcF9sb29rdXBfZWxlbSksCiYjNDM7CSAgX19pbW1fYWRkcihtYXBfaGFzaF84YikKJiM0MzsJOiBfX2Nsb2JiZXJfYWxsKTsKJiM0Mzt9CiYjNDM7CiBjaGFyIF9saWNlbnNlW10gU0VDKCYjMzQ7bGljZW5zZSYjMzQ7KSA9ICYjMzQ7R1BMJiMzNDs7CjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzEwIDExOjM1PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDMxNzYKCQkJCQkJCW91dHB1dDogMzMKCQkJCQkJCXRob3VnaHRzOiAyNjQKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqTXkgQXNzZXNzbWVudCBvZiB0aGUgQlBGIFZlcmlmaWVyIFBhdGNoKioKCk9rYXksIHNvIHRoaXMgcGF0Y2ggaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSB3aXRoaW4gdGhlIEJQRiB2ZXJpZmllciwgc3BlY2lmaWNhbGx5IGluIGBrZXJuZWwvYnBmL3ZlcmlmaWVyLmNgLiBJdCYjMzk7cyBhbHRlcmluZyB0aGUgYmVoYXZpb3Igb2YgdGhlIHNoYXJlZCBzY2FsYXIgSUQgdHJhY2tpbmcgd2hlbiBzaWduLWV4dGVuZGluZyBsb2FkcyBvY2N1ci4gRXNzZW50aWFsbHksIGl0IGRyb3BzIHRoZSBzY2FsYXIgSUQgd2hlbiBhIHNpZ24tZXh0ZW5kaW5nIGxvYWQgbW9kaWZpZXMgdGhlIHJlZ2lzdGVyIHZhbHVlIHJlbGF0aXZlIHRvIGEgc2NhbGFyIGl0JiMzOTtzIHRpZWQgdG8uIFRoZSBtb2RpZmllZCBmdW5jdGlvbiBpcyBgY2hlY2tfbWVtX2FjY2VzcygpYCwgd2hpY2ggaXMgaW1wb3J0YW50IGZvciBwcm9ncmFtIHZlcmlmaWNhdGlvbi4KCkxvb2tpbmcgY2xvc2VseSwgdGhlIHBhdGNoIGludHJvZHVjZXMgYSBuZXcgY29uZGl0aW9uIHdpdGhpbiBgY2hlY2tfbWVtX2FjY2VzcygpYDogYGJvb2wgbm9fc2V4dCA9IHJlZ191bWF4KCZhbXA7cmVnc1t2YWx1ZV9yZWdub10pICZsdDsgKDFVTEwgJmx0OyZsdDsgKHNpemUgKiBCSVRTX1BFUl9CWVRFIC0gMSkpO2AuIElmIHRoaXMgY29uZGl0aW9uLCBgIW5vX3NleHRgLCBpcyB0cnVlLCBtZWFuaW5nIHRoZSByZWdpc3RlciAqZG9lcyogZ2V0IHNpZ24tZXh0ZW5kZWQsIGl0IGNsZWFycyB0aGUgc2NhbGFyIElELiBNYWtlcyBzZW5zZS4KCkdpdmVuIHRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgdmVyaWZpZXIsIGZ1enppbmcgaXMgZGVmaW5pdGVseSBpbiBvcmRlci4gSSBuZWVkIHRvIGJlIHN1cmUgdGhlIG1vZGlmaWVkIHZlcmlmaWNhdGlvbiBsb2dpYyBpcyBzb2xpZC4KCk15IGZvY3VzIHNob3VsZCBiZSBvbiBgY2hlY2tfbWVtX2FjY2VzcygpYCBhcyBhIGtleSBzeW1ib2wsIGFuZCBhZnRlciBhIG1vbWVudCYjMzk7cyBjb25zaWRlcmF0aW9uLCBJIGNvbmN1ci4gV2hpbGUgaXQmIzM5O3MgY2VudHJhbCB0byB0aGUgQlBGIHZlcmlmaWVyLCBpdCYjMzk7cyBub3QgYSBwZXJmb3JtYW5jZS1jcml0aWNhbCBob3QgcGF0aCBsaWtlIHBhY2tldCBwcm9jZXNzaW5nIGZ1bmN0aW9ucy4gSXQmIzM5O3MgaW52b2tlZCBkdXJpbmcgQlBGIHByb2dyYW0gbG9hZCwgbWFraW5nIGl0IGEgc3VpdGFibGUgY2FuZGlkYXRlIGZvciB0YXJnZXRlZCBmdXp6aW5nLiBJIGNhbiBpc29sYXRlIGl0IG1vcmUgZWFzaWx5IHRoaXMgd2F5LgoKTm93LCBsZXQgbWUgZG91YmxlLWNoZWNrIHRoZSBuZWNlc3NhcnkgY29uZmlndXJhdGlvbnMuIGBDT05GSUdfQlBGX1NZU0NBTExgIGlzIHRoZSBjcnVjaWFsIG9uZSBmb3IgQlBGIHN5c3RlbSBjYWxscy4gSSYjMzk7bGwgbmVlZCB0byBjb25maXJtIHRoYXQgdGhpcyBpcyBpbmRlZWQgc3VmZmljaWVudCB0byB0cmlnZ2VyIHRoZSByZWxldmFudCBjb2RlIHBhdGhzLiBUaW1lIHRvIGZpcmUgdXAgdGhlIHRvb2xzIGFuZCB2ZXJpZnkgZXZlcnl0aGluZy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xMCAxMTozNTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtjaGVja19tZW1fYWNjZXNzJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7a2VybmVsL2JwZi92ZXJpZmllci5jJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2tlcm5lbC9icGYvdmVyaWZpZXIuYz01Nz1zdGF0aWMgYm9vbCBicGZfZ2xvYmFsX3BlcmNwdV9tYV9zZXQ7XG4tLVxua2VybmVsL2JwZi92ZXJpZmllci5jLTEwNC0gKiBjYW4gYmU6IFBUUl9UT19NQVBfVkFMVUUsIFBUUl9UT19DVFgsIFBUUl9UT19TVEFDSywgUFRSX1RPX1NPQ0tFVC4gVGhlc2UgYXJlXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM6MTA1OiAqIGZvdXIgcG9pbnRlciB0eXBlcyByZWNvZ25pemVkIGJ5IGNoZWNrX21lbV9hY2Nlc3MoKSBmdW5jdGlvbi5cbmtlcm5lbC9icGYvdmVyaWZpZXIuYy0xMDYtICpcbi0tXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM9ODUwPXN0YXRpYyBib29sIGlzX2R5bnB0cl9yZWdfdmFsaWRfdW5pbml0KHN0cnVjdCBicGZfdmVyaWZpZXJfZW52ICplbnYsIHN0cnVjdCBicGZfcmVnX3N0YXRlICpyZWcpXG4tLVxua2VybmVsL2JwZi92ZXJpZmllci5jLTg2MC1cdCAqIGVycm9yIGJlY2F1c2UgdGhpcyBqdXN0IG1lYW5zIHRoZSBzdGFjayBzdGF0ZSBoYXNuJiMzOTt0IGJlZW4gdXBkYXRlZCB5ZXQuXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM6ODYxOlx0ICogV2Ugd2lsbCBkbyBjaGVja19tZW1fYWNjZXNzIHRvIGNoZWNrIGFuZCB1cGRhdGUgc3RhY2sgYm91bmRzIGxhdGVyLlxua2VybmVsL2JwZi92ZXJpZmllci5jLTg2Mi1cdCAqL1xuLS1cbmtlcm5lbC9icGYvdmVyaWZpZXIuYz0xMDA2PXN0YXRpYyBib29sIGlzX2l0ZXJfcmVnX3ZhbGlkX3VuaW5pdChzdHJ1Y3QgYnBmX3ZlcmlmaWVyX2VudiAqZW52LFxuLS1cbmtlcm5lbC9icGYvdmVyaWZpZXIuYy0xMDEyLVx0LyogRm9yIC1FUkFOR0UgKGkuZS4gc3BpIG5vdCBmYWxsaW5nIGludG8gYWxsb2NhdGVkIHN0YWNrIHNsb3RzKSwgd2Vcbmtlcm5lbC9icGYvdmVyaWZpZXIuYzoxMDEzOlx0ICogd2lsbCBkbyBjaGVja19tZW1fYWNjZXNzIHRvIGNoZWNrIGFuZCB1cGRhdGUgc3RhY2sgYm91bmRzIGxhdGVyLCBzb1xua2VybmVsL2JwZi92ZXJpZmllci5jLTEwMTQtXHQgKiByZXR1cm4gdHJ1ZSBmb3IgdGhhdCBjYXNlLlxuLS1cbmtlcm5lbC9icGYvdmVyaWZpZXIuYz0xMTUxPXN0YXRpYyBib29sIGlzX2lycV9mbGFnX3JlZ192YWxpZF91bmluaXQoc3RydWN0IGJwZl92ZXJpZmllcl9lbnYgKmVudiwgc3RydWN0IGJwZl9yZWdfc3RhdGUgKnJlZylcbi0tXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtMTE1Ny1cdC8qIEZvciAtRVJBTkdFIChpLmUuIHNwaSBub3QgZmFsbGluZyBpbnRvIGFsbG9jYXRlZCBzdGFjayBzbG90cyksIHdlXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM6MTE1ODpcdCAqIHdpbGwgZG8gY2hlY2tfbWVtX2FjY2VzcyB0byBjaGVjayBhbmQgdXBkYXRlIHN0YWNrIGJvdW5kcyBsYXRlciwgc29cbmtlcm5lbC9icGYvdmVyaWZpZXIuYy0xMTU5LVx0ICogcmV0dXJuIHRydWUgZm9yIHRoYXQgY2FzZS5cbi0tXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM9MzQ3Nj1zdGF0aWMgdm9pZCBzY3J1Yl9zcGVjaWFsX3Nsb3Qoc3RydWN0IGJwZl9mdW5jX3N0YXRlICpzdGF0ZSwgaW50IHNwaSlcbi0tXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtMzQ4OC0vKiBjaGVja19zdGFja197cmVhZCx3cml0ZX1fZml4ZWRfb2ZmIGZ1bmN0aW9ucyB0cmFjayBzcGlsbC9maWxsIG9mIHJlZ2lzdGVycyxcbmtlcm5lbC9icGYvdmVyaWZpZXIuYzozNDg5OiAqIHN0YWNrIGJvdW5kYXJ5IGFuZCBhbGlnbm1lbnQgYXJlIGNoZWNrZWQgaW4gY2hlY2tfbWVtX2FjY2VzcygpXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtMzQ5MC0gKi9cbi0tXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM9NDIwOD1zdGF0aWMgaW50IGNoZWNrX21hcF9hY2Nlc3NfdHlwZShzdHJ1Y3QgYnBmX3ZlcmlmaWVyX2VudiAqZW52LCBzdHJ1Y3QgYnBmX3JlZ19zdGF0ZSAqcmVnLFxuLS1cbmtlcm5lbC9icGYvdmVyaWZpZXIuYy00MjI5LS8qIGNoZWNrIHJlYWQvd3JpdGUgaW50byBtZW1vcnkgcmVnaW9uIChlLmcuLCBtYXAgdmFsdWUsIHJpbmdidWYgc2FtcGxlLCBldGMpICovXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM6NDIzMDpzdGF0aWMgaW50IF9fY2hlY2tfbWVtX2FjY2VzcyhzdHJ1Y3QgYnBmX3ZlcmlmaWVyX2VudiAqZW52LCBzdHJ1Y3QgYnBmX3JlZ19zdGF0ZSAqcmVnLCBhcmdub190IGFyZ25vLFxua2VybmVsL2JwZi92ZXJpZmllci5jLTQyMzEtXHRcdFx0ICAgICAgaW50IG9mZiwgaW50IHNpemUsIHUzMiBtZW1fc2l6ZSxcbi0tXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM9NDI2OD1zdGF0aWMgaW50IGNoZWNrX21lbV9yZWdpb25fYWNjZXNzKHN0cnVjdCBicGZfdmVyaWZpZXJfZW52ICplbnYsIHN0cnVjdCBicGZfcmVnX3N0YXRlICpyZWcsIGFyZ25vX3QgYXJnbm8sXG4tLVxua2VybmVsL2JwZi92ZXJpZmllci5jLTQyOTEtXHR9XG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM6NDI5MjpcdGVyciA9IF9fY2hlY2tfbWVtX2FjY2VzcyhlbnYsIHJlZywgYXJnbm8sIHJlZ19zbWluKHJlZykgJiM0Mzsgb2ZmLCBzaXplLFxua2VybmVsL2JwZi92ZXJpZmllci5jLTQyOTMtXHRcdFx0XHQgbWVtX3NpemUsIHplcm9fc2l6ZV9hbGxvd2VkKTtcbi0tXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtNDMwOC1cdH1cbmtlcm5lbC9icGYvdmVyaWZpZXIuYzo0MzA5Olx0ZXJyID0gX19jaGVja19tZW1fYWNjZXNzKGVudiwgcmVnLCBhcmdubywgcmVnX3VtYXgocmVnKSAmIzQzOyBvZmYsIHNpemUsXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtNDMxMC1cdFx0XHRcdCBtZW1fc2l6ZSwgemVyb19zaXplX2FsbG93ZWQpO1xuLS1cbmtlcm5lbC9icGYvdmVyaWZpZXIuYz00NzE5PXN0YXRpYyBpbnQgY2hlY2tfcGFja2V0X2FjY2VzcyhzdHJ1Y3QgYnBmX3ZlcmlmaWVyX2VudiAqZW52LCBzdHJ1Y3QgYnBmX3JlZ19zdGF0ZSAqcmVnLCBhcmdub190IGFyZ25vLCBpbnQgb2ZmLFxuLS1cbmtlcm5lbC9icGYvdmVyaWZpZXIuYy00NzMyLVxua2VybmVsL2JwZi92ZXJpZmllci5jOjQ3MzM6XHQvKiBfX2NoZWNrX21lbV9hY2Nlc3MgaGFzIG1hZGUgc3VyZSBcJiMzNDtvZmYgJiM0Mzsgc2l6ZSAtIDFcJiMzNDsgaXMgd2l0aGluIHUxNi5cbmtlcm5lbC9icGYvdmVyaWZpZXIuYy00NzM0LVx0ICogcmVnX3VtYXgocmVnKSBjYW4mIzM5O3QgYmUgYmlnZ2VyIHRoYW4gTUFYX1BBQ0tFVF9PRkYgd2hpY2ggaXMgMHhmZmZmLFxua2VybmVsL2JwZi92ZXJpZmllci5jLTQ3MzUtXHQgKiBvdGhlcndpc2UgZmluZF9nb29kX3BrdF9wb2ludGVycyB3b3VsZCBoYXZlIHJlZnVzZWQgdG8gc2V0IHJhbmdlIGluZm9cbmtlcm5lbC9icGYvdmVyaWZpZXIuYzo0NzM2Olx0ICogdGhhdCBfX2NoZWNrX21lbV9hY2Nlc3Mgd291bGQgaGF2ZSByZWplY3RlZCB0aGlzIHBrdCBhY2Nlc3MuXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtNDczNy1cdCAqIFRoZXJlZm9yZSwgXCYjMzQ7b2ZmICYjNDM7IHJlZ191bWF4KHJlZykgJiM0Mzsgc2l6ZSAtIDFcJiMzNDsgd29uJiMzOTt0IG92ZXJmbG93IHUzMi5cbi0tXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM9NjEyMz1zdGF0aWMgdm9pZCBhZGRfc2NhbGFyX3RvX3JlZyhzdHJ1Y3QgYnBmX3JlZ19zdGF0ZSAqZHN0X3JlZywgczY0IHZhbClcbi0tXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtNjE0NS0gKi9cbmtlcm5lbC9icGYvdmVyaWZpZXIuYzo2MTQ2OnN0YXRpYyBpbnQgY2hlY2tfbWVtX2FjY2VzcyhzdHJ1Y3QgYnBmX3ZlcmlmaWVyX2VudiAqZW52LCBpbnQgaW5zbl9pZHgsIHN0cnVjdCBicGZfcmVnX3N0YXRlICpyZWcsIGFyZ25vX3QgYXJnbm8sXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtNjE0Ny1cdFx0XHQgICAgaW50IG9mZiwgaW50IGJwZl9zaXplLCBlbnVtIGJwZl9hY2Nlc3NfdHlwZSB0LFxuLS1cbmtlcm5lbC9icGYvdmVyaWZpZXIuYz02NDIxPXN0YXRpYyBpbnQgY2hlY2tfbG9hZF9tZW0oc3RydWN0IGJwZl92ZXJpZmllcl9lbnYgKmVudiwgc3RydWN0IGJwZl9pbnNuICppbnNuLFxuLS1cbmtlcm5lbC9icGYvdmVyaWZpZXIuYy02NDUzLVx0ICovXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM6NjQ1NDpcdGVyciA9IGNoZWNrX21lbV9hY2Nlc3MoZW52LCBlbnYtXHUwMDNlaW5zbl9pZHgsIHJlZ3MgJiM0MzsgaW5zbi1cdTAwM2VzcmNfcmVnLCBhcmdub19mcm9tX3JlZyhpbnNuLVx1MDAzZXNyY19yZWcpLCBpbnNuLVx1MDAzZW9mZixcbmtlcm5lbC9icGYvdmVyaWZpZXIuYy02NDU1LVx0XHRcdCAgICAgICBCUEZfU0laRShpbnNuLVx1MDAzZWNvZGUpLCBCUEZfUkVBRCwgaW5zbi1cdTAwM2Vkc3RfcmVnLFxuLS1cbmtlcm5lbC9icGYvdmVyaWZpZXIuYz02NDY0PXN0YXRpYyBpbnQgY2hlY2tfc3RvcmVfcmVnKHN0cnVjdCBicGZfdmVyaWZpZXJfZW52ICplbnYsIHN0cnVjdCBicGZfaW5zbiAqaW5zbixcbi0tXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtNjQ5My1cdC8qIENoZWNrIGlmIChkc3RfcmVnICYjNDM7IG9mZikgaXMgd3JpdGVhYmxlLiAqL1xua2VybmVsL2JwZi92ZXJpZmllci5jOjY0OTQ6XHRlcnIgPSBjaGVja19tZW1fYWNjZXNzKGVudiwgZW52LVx1MDAzZWluc25faWR4LCByZWdzICYjNDM7IGluc24tXHUwMDNlZHN0X3JlZywgYXJnbm9fZnJvbV9yZWcoaW5zbi1cdTAwM2Vkc3RfcmVnKSwgaW5zbi1cdTAwM2VvZmYsXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtNjQ5NS1cdFx0XHQgICAgICAgQlBGX1NJWkUoaW5zbi1cdTAwM2Vjb2RlKSwgQlBGX1dSSVRFLCBpbnNuLVx1MDAzZXNyY19yZWcsXG4tLVxua2VybmVsL2JwZi92ZXJpZmllci5jPTY1MDI9c3RhdGljIGludCBjaGVja19hdG9taWNfcm13KHN0cnVjdCBicGZfdmVyaWZpZXJfZW52ICplbnYsXG4tLVxua2VybmVsL2JwZi92ZXJpZmllci5jLTY1NzEtXHQgKi9cbmtlcm5lbC9icGYvdmVyaWZpZXIuYzo2NTcyOlx0ZXJyID0gY2hlY2tfbWVtX2FjY2VzcyhlbnYsIGVudi1cdTAwM2VpbnNuX2lkeCwgZHN0X3JlZywgYXJnbm9fZnJvbV9yZWcoaW5zbi1cdTAwM2Vkc3RfcmVnKSwgaW5zbi1cdTAwM2VvZmYsXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtNjU3My1cdFx0XHQgICAgICAgQlBGX1NJWkUoaW5zbi1cdTAwM2Vjb2RlKSwgQlBGX1JFQUQsIC0xLCB0cnVlLCBmYWxzZSk7XG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtNjU3NC1cdGlmICghZXJyIFx1MDAyNlx1MDAyNiBsb2FkX3JlZyBcdTAwM2U9IDApXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM6NjU3NTpcdFx0ZXJyID0gY2hlY2tfbWVtX2FjY2VzcyhlbnYsIGVudi1cdTAwM2VpbnNuX2lkeCwgZHN0X3JlZywgYXJnbm9fZnJvbV9yZWcoaW5zbi1cdTAwM2Vkc3RfcmVnKSxcbmtlcm5lbC9icGYvdmVyaWZpZXIuYy02NTc2LVx0XHRcdFx0ICAgICAgIGluc24tXHUwMDNlb2ZmLCBCUEZfU0laRShpbnNuLVx1MDAzZWNvZGUpLFxuLS1cbmtlcm5lbC9icGYvdmVyaWZpZXIuYy02NTg2LVx0LyogQ2hlY2sgd2hldGhlciB3ZSBjYW4gd3JpdGUgaW50byB0aGUgc2FtZSBtZW1vcnkuICovXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM6NjU4NzpcdGVyciA9IGNoZWNrX21lbV9hY2Nlc3MoZW52LCBlbnYtXHUwMDNlaW5zbl9pZHgsIGRzdF9yZWcsIGFyZ25vX2Zyb21fcmVnKGluc24tXHUwMDNlZHN0X3JlZyksIGluc24tXHUwMDNlb2ZmLFxua2VybmVsL2JwZi92ZXJpZmllci5jLTY1ODgtXHRcdFx0ICAgICAgIEJQRl9TSVpFKGluc24tXHUwMDNlY29kZSksIEJQRl9XUklURSwgLTEsIHRydWUsIGZhbHNlKTtcbi0tXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM9NzMxOD1zdGF0aWMgaW50IHByb2Nlc3NfZHlucHRyX2Z1bmMoc3RydWN0IGJwZl92ZXJpZmllcl9lbnYgKmVudiwgc3RydWN0IGJwZl9yZWdfc3RhdGUgKnJlZyxcbi0tXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtNzM1NC1cdFx0Zm9yIChpID0gMDsgaSBcdTAwM2MgQlBGX0RZTlBUUl9TSVpFOyBpICYjNDM7PSA4KSB7XG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM6NzM1NTpcdFx0XHRlcnIgPSBjaGVja19tZW1fYWNjZXNzKGVudiwgaW5zbl9pZHgsIHJlZywgYXJnbm8sXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtNzM1Ni1cdFx0XHRcdFx0ICAgICAgIGksIEJQRl9EVywgQlBGX1dSSVRFLCAtMSwgZmFsc2UsIGZhbHNlKTtcbi0tXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM9NzQzOD1zdGF0aWMgaW50IHByb2Nlc3NfaXRlcl9hcmcoc3RydWN0IGJwZl92ZXJpZmllcl9lbnYgKmVudiwgc3RydWN0IGJwZl9yZWdfc3RhdGUgKnJlZywgYXJnbm9fdCBhcmdubywgaW50IGluc25faWR4LFxuLS1cbmtlcm5lbC9icGYvdmVyaWZpZXIuYy03NDc1LVx0XHRmb3IgKGkgPSAwOyBpIFx1MDAzYyBucl9zbG90cyAqIDg7IGkgJiM0Mzs9IEJQRl9SRUdfU0laRSkge1xua2VybmVsL2JwZi92ZXJpZmllci5jOjc0NzY6XHRcdFx0ZXJyID0gY2hlY2tfbWVtX2FjY2VzcyhlbnYsIGluc25faWR4LCByZWcsIGFyZ25vLFxua2VybmVsL2JwZi92ZXJpZmllci5jLTc0NzctXHRcdFx0XHRcdCAgICAgICBpLCBCUEZfRFcsIEJQRl9XUklURSwgLTEsIGZhbHNlLCBmYWxzZSk7XG4tLVxua2VybmVsL2JwZi92ZXJpZmllci5jPTEwMjQ1PXN0YXRpYyBpbnQgY2hlY2tfaGVscGVyX2NhbGwoc3RydWN0IGJwZl92ZXJpZmllcl9lbnYgKmVudiwgc3RydWN0IGJwZl9pbnNuICppbnNuLFxuLS1cbmtlcm5lbC9icGYvdmVyaWZpZXIuYy0xMDMzMS1cdGZvciAoaSA9IDA7IGkgXHUwMDNjIG1ldGEuYWNjZXNzX3NpemU7IGkmIzQzOyYjNDM7KSB7XG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM6MTAzMzI6XHRcdGVyciA9IGNoZWNrX21lbV9hY2Nlc3MoZW52LCBpbnNuX2lkeCwgcmVncyAmIzQzOyBtZXRhLnJlZ25vLCBhcmdub19mcm9tX3JlZyhtZXRhLnJlZ25vKSwgaSwgQlBGX0IsXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtMTAzMzMtXHRcdFx0XHQgICAgICAgQlBGX1dSSVRFLCAtMSwgZmFsc2UsIGZhbHNlKTtcbi0tXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtMTA1NzktXHRcdFx0XHQgKiBpdCB3aWxsIGNvbmZ1c2UgdGhlIGNoZWNrIG9mIFBUUl9UT19CVEZfSUQgaW5cbmtlcm5lbC9icGYvdmVyaWZpZXIuYzoxMDU4MDpcdFx0XHRcdCAqIGNoZWNrX21lbV9hY2Nlc3MoKS5cbmtlcm5lbC9icGYvdmVyaWZpZXIuYy0xMDU4MS1cdFx0XHRcdCAqL1xuLS1cbmtlcm5lbC9icGYvdmVyaWZpZXIuYz0xMTUwOD1zdGF0aWMgaW50IHByb2Nlc3NfaXJxX2ZsYWcoc3RydWN0IGJwZl92ZXJpZmllcl9lbnYgKmVudiwgc3RydWN0IGJwZl9yZWdfc3RhdGUgKnJlZywgYXJnbm9fdCBhcmdubyxcbi0tXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtMTE1MzUtXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM6MTE1MzY6XHRcdGVyciA9IGNoZWNrX21lbV9hY2Nlc3MoZW52LCBlbnYtXHUwMDNlaW5zbl9pZHgsIHJlZywgYXJnbm8sIDAsIEJQRl9EVyxcbmtlcm5lbC9icGYvdmVyaWZpZXIuYy0xMTUzNy1cdFx0XHRcdCAgICAgICBCUEZfV1JJVEUsIC0xLCBmYWxzZSwgZmFsc2UpO1xuLS1cbmtlcm5lbC9icGYvdmVyaWZpZXIuYz0xNzMxMT1zdGF0aWMgaW50IGRvX2NoZWNrX2luc24oc3RydWN0IGJwZl92ZXJpZmllcl9lbnYgKmVudiwgYm9vbCAqZG9fcHJpbnRfc3RhdGUpXG4tLVxua2VybmVsL2JwZi92ZXJpZmllci5jLTE3MzQ4LVxua2VybmVsL2JwZi92ZXJpZmllci5jOjE3MzQ5Olx0XHRlcnIgPSBjaGVja19tZW1fYWNjZXNzKGVudiwgZW52LVx1MDAzZWluc25faWR4LCBjdXJfcmVncyhlbnYpICYjNDM7IGluc24tXHUwMDNlZHN0X3JlZywgYXJnbm9fZnJvbV9yZWcoaW5zbi1cdTAwM2Vkc3RfcmVnKSxcbmtlcm5lbC9icGYvdmVyaWZpZXIuYy0xNzM1MC1cdFx0XHRcdCAgICAgICBpbnNuLVx1MDAzZW9mZiwgQlBGX1NJWkUoaW5zbi1cdTAwM2Vjb2RlKSxcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xMCAxMTozNTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA2OTM1CgkJCQkJCQlvdXRwdXQ6IDQzCgkJCQkJCQl0aG91Z2h0czogODIKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGxldCYjMzk7cyBicmVhayB0aGlzIGRvd24uCgoqKkFuYWx5emluZyB0aGUgTWVtb3J5IEFjY2VzcyBWZXJpZmljYXRpb24qKgoKUmlnaHQsIHNvIEkmIzM5O20gZm9jdXNpbmcgb24gdGhlIGBjaGVja19tZW1fYWNjZXNzYCBmdW5jdGlvbjsgdGhhdCYjMzk7cyBjbGVhcmx5IGEgcGl2b3RhbCBlbGVtZW50IGluIHRoZSB2ZXJpZmljYXRpb24gcHJvY2Vzcy4gSSBuZWVkIHRvIGJlIHN1cmUgSSYjMzk7dmUgYWNjb3VudGVkIGZvciBhbnkgb3RoZXIgY29uZmlndXJhdGlvbnMgdGhhdCBtaWdodCBpbnRlcmFjdCB3aXRoIGl0LgoKSSBzZWUgdGhhdCB0aGUgYHZlcmlmaWVyX3NjYWxhcl9pZHMuY2AgdGVzdCBoYXMgYmVlbiBhZGRlZC4gTm93LCB0aGUgbmV4dCBzdGVwIGlzIHRvIGV4YW1pbmUgdGhlIGNvbnRlbnRzIG9mIGB0b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfc2NhbGFyX2lkcy5jYC4gVGhpcyBleGFtaW5hdGlvbiBpcyBrZXkgYmVjYXVzZSBpdCBtaWdodCByZXZlYWwgYWRkaXRpb25hbCwgc3BlY2lmaWMgY29uZmlndXJhdGlvbnMgb3IgaW50ZXJhY3Rpb25zIHRoYXQgSSBuZWVkIHRvIGNvbnNpZGVyLCBlc3BlY2lhbGx5IGNvbmNlcm5pbmcgc2NhbGFyIGlkZW50aWZpZXIgaGFuZGxpbmcgd2l0aGluIG1lbW9yeSBhY2Nlc3MgdmVyaWZpY2F0aW9uLiBFc3NlbnRpYWxseSwgSSBuZWVkIHRvIHVuZGVyc3RhbmQgaG93IHRoZSB0ZXN0IGV4ZXJjaXNlcyB0aGUgdmVyaWZpZXIgaW4gdGhpcyBjb250ZXh0LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzEwIDExOjM1PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5FcnJvcjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm5vIG1hdGNoZXM8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Q09ORklHXyYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9zY2FsYXJfaWRzLmMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7ZXJyb3ImIzM0OzogJiMzNDtubyBtYXRjaGVzJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzEwIDExOjM1PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDcyNDIKCQkJCQkJCW91dHB1dDogMzAKCQkJCQkJCXRob3VnaHRzOiAzNgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlLCBhbmQgd3JpdHRlbiBhcyBpZiB0aGV5IHdlcmUgbXkgb3duOgoKKipJbnZlc3RpZ2F0aW5nIHRoZSBCUEYgVmVyaWZpZXIgUGF0Y2gqKgoKQWxyaWdodCwgdGhlIHBhdGNoIGlzIHBpbnBvaW50ZWQgd2l0aGluIGBrZXJuZWwvYnBmL3ZlcmlmaWVyLmNgLiBNeSBpbW1lZGlhdGUgdGhvdWdodCBpcywgJiMzNDtMZXQmIzM5O3MgZGlnIGluIGFuZCBtYWtlIHN1cmUgdGhpcyBpcyB0aGUgcmlnaHQgYXJlYS4mIzM0OyBJ4oCZbGwgZmlyc3QgY2hlY2sgaWYgdGhlcmUgYXJlIGFueSBhcmNoaXRlY3R1cmUtc3BlY2lmaWMgb3IgY29uZmlndXJhdGlvbi1kZXBlbmRlbnQgZ3VhcmRzIGFyb3VuZCB0aGUgY29kZSBjaGFuZ2VzIHdpdGhpbiB0aGF0IGZpbGUuIEkmIzM5O20gbG9va2luZyBmb3IgY29uZGl0aW9uYWwgY29tcGlsYXRpb24gYmFzZWQgb24ga2VybmVsIGNvbmZpZ3MgbGlrZSBgQ09ORklHX0JQRl9KSVRgLCBgQ09ORklHX0JQRl9FVkVOVFNgLCBvciBldmVuIG1vcmUgZ3JhbnVsYXIgb3B0aW9ucyB0aGF0IG1pZ2h0IGFmZmVjdCBob3cgdGhlIHZlcmlmaWVyIG9wZXJhdGVzLiBVbmRlcnN0YW5kaW5nIHRob3NlIGRlcGVuZGVuY2llcyBpcyBjcnVjaWFsIGJlZm9yZSBJIGV2ZW4gc3RhcnQgcmV2aWV3aW5nIHRoZSBkaWZmcyB0aGVtc2VsdmVzLiBJIG5lZWQgdG8ga25vdyB0aGUgZXhhY3QgY29udGV4dCBpbiB3aGljaCB0aGlzIGNvZGUgd2lsbCBiZSBydW5uaW5nIGFuZCB3aGF0IGtlcm5lbCBmZWF0dXJlcyBhcmUgZW5hYmxlZCB3aGVuIHRoaXMgcGF0Y2ggaXMgZWZmZWN0aXZlLiBJdCB3b3VsZCBiZSBhIHdhc3RlIG9mIHRpbWUgdG8gbG9vayBhdCB0aGUgcGF0Y2ggaWYgYSBjb25maWcgcHJldmVudGVkIGl0IGZyb20gcnVubmluZy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD44LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xMCAxMTozNTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtDT05GSUdfJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7a2VybmVsL2JwZi92ZXJpZmllci5jJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2tlcm5lbC9icGYvdmVyaWZpZXIuYz0yNzQyPWludCBicGZfYWRkX2tmdW5jX2NhbGwoc3RydWN0IGJwZl92ZXJpZmllcl9lbnYgKmVudiwgdTMyIGZ1bmNfaWQsIHUxNiBvZmZzZXQpXG4tLVxua2VybmVsL2JwZi92ZXJpZmllci5jLTI3NTctXHRcdGlmICghYnRmX3ZtbGludXgpIHtcbmtlcm5lbC9icGYvdmVyaWZpZXIuYzoyNzU4Olx0XHRcdHZlcmJvc2UoZW52LCBcJiMzNDtjYWxsaW5nIGtlcm5lbCBmdW5jdGlvbiBpcyBub3Qgc3VwcG9ydGVkIHdpdGhvdXQgQ09ORklHX0RFQlVHX0lORk9fQlRGXFxuXCYjMzQ7KTtcbmtlcm5lbC9icGYvdmVyaWZpZXIuYy0yNzU5LVx0XHRcdHJldHVybiAtRU5PVFNVUFA7XG4tLVxua2VybmVsL2JwZi92ZXJpZmllci5jPTQ0NTQ9QlRGX1NFVF9TVEFSVChyY3VfcHJvdGVjdGVkX3R5cGVzKVxua2VybmVsL2JwZi92ZXJpZmllci5jOjQ0NTU6I2lmZGVmIENPTkZJR19ORVRcbmtlcm5lbC9icGYvdmVyaWZpZXIuYy00NDU2LUJURl9JRChzdHJ1Y3QsIHByb2dfdGVzdF9yZWZfa2Z1bmMpXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtNDQ1Ny0jZW5kaWZcbmtlcm5lbC9icGYvdmVyaWZpZXIuYzo0NDU4OiNpZmRlZiBDT05GSUdfQ0dST1VQU1xua2VybmVsL2JwZi92ZXJpZmllci5jLTQ0NTktQlRGX0lEKHN0cnVjdCwgY2dyb3VwKVxua2VybmVsL2JwZi92ZXJpZmllci5jLTQ0NjAtI2VuZGlmXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM6NDQ2MTojaWZkZWYgQ09ORklHX0JQRl9KSVRcbmtlcm5lbC9icGYvdmVyaWZpZXIuYy00NDYyLUJURl9JRChzdHJ1Y3QsIGJwZl9jcHVtYXNrKVxuLS1cbmtlcm5lbC9icGYvdmVyaWZpZXIuYz00NDY0PUJURl9JRChzdHJ1Y3QsIHRhc2tfc3RydWN0KVxua2VybmVsL2JwZi92ZXJpZmllci5jOjQ0NjU6I2lmZGVmIENPTkZJR19DUllQVE9cbmtlcm5lbC9icGYvdmVyaWZpZXIuYy00NDY2LUJURl9JRChzdHJ1Y3QsIGJwZl9jcnlwdG9fY3R4KVxuLS1cbmtlcm5lbC9icGYvdmVyaWZpZXIuYz00OTM4PXN0YXRpYyB1MzIgKnJlZzJidGZfaWRzW19fQlBGX1JFR19UWVBFX01BWF0gPSB7XG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM6NDkzOTojaWZkZWYgQ09ORklHX05FVFxua2VybmVsL2JwZi92ZXJpZmllci5jLTQ5NDAtXHRbUFRSX1RPX1NPQ0tFVF0gPSBcdTAwMjZidGZfc29ja19pZHNbQlRGX1NPQ0tfVFlQRV9TT0NLXSxcbi0tXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM9NDk4MT1zdGF0aWMgaW50IGNoZWNrX3BrdF9wdHJfYWxpZ25tZW50KHN0cnVjdCBicGZfdmVyaWZpZXJfZW52ICplbnYsXG4tLVxua2VybmVsL2JwZi92ZXJpZmllci5jLTQ5OTItXHQvKiBGb3IgcGxhdGZvcm1zIHRoYXQgZG8gbm90IGhhdmUgYSBLY29uZmlnIGVuYWJsaW5nXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM6NDk5MzpcdCAqIENPTkZJR19IQVZFX0VGRklDSUVOVF9VTkFMSUdORURfQUNDRVNTIHRoZSB2YWx1ZSBvZlxua2VybmVsL2JwZi92ZXJpZmllci5jLTQ5OTQtXHQgKiBORVRfSVBfQUxJR04gaXMgdW5pdmVyc2FsbHkgc2V0IHRvICYjMzk7MiYjMzk7LiAgQW5kIG9uIHBsYXRmb3Jtc1xua2VybmVsL2JwZi92ZXJpZmllci5jOjQ5OTU6XHQgKiB0aGF0IGRvIHNldCBDT05GSUdfSEFWRV9FRkZJQ0lFTlRfVU5BTElHTkVEX0FDQ0VTUywgd2UgZ2V0XG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtNDk5Ni1cdCAqIHRvIHRoaXMgY29kZSBvbmx5IGluIHN0cmljdCBtb2RlIHdoZXJlIHdlIHdhbnQgdG8gZW11bGF0ZVxuLS1cbmtlcm5lbC9icGYvdmVyaWZpZXIuYz01MTQ3PXN0YXRpYyBpbnQgY2hlY2tfbWF4X3N0YWNrX2RlcHRoX3N1YnByb2coc3RydWN0IGJwZl92ZXJpZmllcl9lbnYgKmVudiwgaW50IGlkeCxcbi0tXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtNTE5MS1cdHN1YnByb2dfZGVwdGggPSByb3VuZF91cF9zdGFja19kZXB0aChlbnYsIHN1YnByb2dbaWR4XS5zdGFja19kZXB0aCk7XG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM6NTE5MjpcdGlmIChJU19FTkFCTEVEKENPTkZJR19YODZfNjQpIFx1MDAyNlx1MDAyNiBzdWJwcm9nW2lkeF0uc3RhY2tfYXJnX2NudCkge1xua2VybmVsL2JwZi92ZXJpZmllci5jLTUxOTMtXHRcdC8qIHg4Ni02NCB1c2VzIFI5IGZvciBib3RoIHByaXZhdGUgc3RhY2sgZnJhbWUgcG9pbnRlciBhbmQgYXJnNi4gKi9cbi0tXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM9NTcwMT1CVEZfVFlQRV9TQUZFX1JDVV9PUl9OVUxMKHN0cnVjdCBtbV9zdHJ1Y3QpIHtcbmtlcm5lbC9icGYvdmVyaWZpZXIuYy01NzAyLVx0c3RydWN0IGZpbGUgX19yY3UgKmV4ZV9maWxlO1xua2VybmVsL2JwZi92ZXJpZmllci5jOjU3MDM6I2lmZGVmIENPTkZJR19NRU1DR1xua2VybmVsL2JwZi92ZXJpZmllci5jLTU3MDQtXHRzdHJ1Y3QgdGFza19zdHJ1Y3QgX19yY3UgKm93bmVyO1xuLS1cbmtlcm5lbC9icGYvdmVyaWZpZXIuYz01OTYxPXN0YXRpYyBpbnQgY2hlY2tfcHRyX3RvX21hcF9hY2Nlc3Moc3RydWN0IGJwZl92ZXJpZmllcl9lbnYgKmVudixcbi0tXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtNTk3NS1cdGlmICghYnRmX3ZtbGludXgpIHtcbmtlcm5lbC9icGYvdmVyaWZpZXIuYzo1OTc2Olx0XHR2ZXJib3NlKGVudiwgXCYjMzQ7bWFwX3B0ciBhY2Nlc3Mgbm90IHN1cHBvcnRlZCB3aXRob3V0IENPTkZJR19ERUJVR19JTkZPX0JURlxcblwmIzM0Oyk7XG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtNTk3Ny1cdFx0cmV0dXJuIC1FTk9UU1VQUDtcbi0tXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM9NzIyNT1zdGF0aWMgaW50IHByb2Nlc3NfdGltZXJfZnVuYyhzdHJ1Y3QgYnBmX3ZlcmlmaWVyX2VudiAqZW52LCBzdHJ1Y3QgYnBmX3JlZ19zdGF0ZSAqcmVnLCBhcmdub190IGFyZ25vLFxuLS1cbmtlcm5lbC9icGYvdmVyaWZpZXIuYy03MjI3LXtcbmtlcm5lbC9icGYvdmVyaWZpZXIuYzo3MjI4Olx0aWYgKElTX0VOQUJMRUQoQ09ORklHX1BSRUVNUFRfUlQpKSB7XG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtNzIyOS1cdFx0dmVyYm9zZShlbnYsIFwmIzM0O2JwZl90aW1lciBjYW5ub3QgYmUgdXNlZCBmb3IgUFJFRU1QVF9SVC5cXG5cJiMzNDspO1xuLS1cbmtlcm5lbC9icGYvdmVyaWZpZXIuYz03ODA0PXN0YXRpYyBjb25zdCBzdHJ1Y3QgYnBmX3JlZ190eXBlcyBzb2NrX3R5cGVzID0ge1xuLS1cbmtlcm5lbC9icGYvdmVyaWZpZXIuYy03ODEyLVxua2VybmVsL2JwZi92ZXJpZmllci5jOjc4MTM6I2lmZGVmIENPTkZJR19ORVRcbmtlcm5lbC9icGYvdmVyaWZpZXIuYy03ODE0LXN0YXRpYyBjb25zdCBzdHJ1Y3QgYnBmX3JlZ190eXBlcyBidGZfaWRfc29ja19jb21tb25fdHlwZXMgPSB7XG4tLVxua2VybmVsL2JwZi92ZXJpZmllci5jPTc4ODc9c3RhdGljIGNvbnN0IHN0cnVjdCBicGZfcmVnX3R5cGVzICpjb21wYXRpYmxlX3JlZ190eXBlc1tfX0JQRl9BUkdfVFlQRV9NQVhdID0ge1xuLS1cbmtlcm5lbC9icGYvdmVyaWZpZXIuYy03ODk1LVx0W0FSR19QVFJfVE9fU09DS19DT01NT05dXHQ9IFx1MDAyNnNvY2tfdHlwZXMsXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM6Nzg5NjojaWZkZWYgQ09ORklHX05FVFxua2VybmVsL2JwZi92ZXJpZmllci5jLTc4OTctXHRbQVJHX1BUUl9UT19CVEZfSURfU09DS19DT01NT05dXHQ9IFx1MDAyNmJ0Zl9pZF9zb2NrX2NvbW1vbl90eXBlcyxcbi0tXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM9MTAyNDU9c3RhdGljIGludCBjaGVja19oZWxwZXJfY2FsbChzdHJ1Y3QgYnBmX3ZlcmlmaWVyX2VudiAqZW52LCBzdHJ1Y3QgYnBmX2luc24gKmluc24sXG4tLVxua2VybmVsL2JwZi92ZXJpZmllci5jLTEwNjg1LVxua2VybmVsL2JwZi92ZXJpZmllci5jOjEwNjg2OiNpZmRlZiBDT05GSUdfUEVSRl9FVkVOVFNcbmtlcm5lbC9icGYvdmVyaWZpZXIuYy0xMDY4Ny1cdFx0ZXJyID0gZ2V0X2NhbGxjaGFpbl9idWZmZXJzKHN5c2N0bF9wZXJmX2V2ZW50X21heF9zdGFjayk7XG4tLVxua2VybmVsL2JwZi92ZXJpZmllci5jLTEwNjkwLVx0XHRlcnIgPSAtRU5PVFNVUFA7XG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM6MTA2OTE6XHRcdGVycl9zdHIgPSBcJiMzNDtmdW5jICVzIyVkIG5vdCBzdXBwb3J0ZWQgd2l0aG91dCBDT05GSUdfUEVSRl9FVkVOVFNcXG5cJiMzNDs7XG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtMTA2OTItI2VuZGlmXG4tLVxua2VybmVsL2JwZi92ZXJpZmllci5jPTExMTgxPUJURl9JRChmdW5jLCBicGZfcmJ0cmVlX3JpZ2h0KVxua2VybmVsL2JwZi92ZXJpZmllci5jOjExMTgyOiNpZmRlZiBDT05GSUdfTkVUXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtMTExODMtQlRGX0lEKGZ1bmMsIGJwZl9keW5wdHJfZnJvbV9za2IpXG4tLVxua2VybmVsL2JwZi92ZXJpZmllci5jPTExMjAzPUJURl9JRChmdW5jLCBicGZfcHJlZW1wdF9lbmFibGUpXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM6MTEyMDQ6I2lmZGVmIENPTkZJR19DR1JPVVBTXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtMTEyMDUtQlRGX0lEKGZ1bmMsIGJwZl9pdGVyX2Nzc190YXNrX25ldylcbi0tXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM9MTEyMDc9QlRGX0lEX1VOVVNFRFxua2VybmVsL2JwZi92ZXJpZmllci5jLTExMjA4LSNlbmRpZlxua2VybmVsL2JwZi92ZXJpZmllci5jOjExMjA5OiNpZmRlZiBDT05GSUdfQlBGX0VWRU5UU1xua2VybmVsL2JwZi92ZXJpZmllci5jLTExMjEwLUJURl9JRChmdW5jLCBicGZfc2Vzc2lvbl9jb29raWUpXG4tLVxua2VybmVsL2JwZi92ZXJpZmllci5jPTExMjE5PUJURl9JRChmdW5jLCBicGZfaXRlcl9udW1fZGVzdHJveSlcbmtlcm5lbC9icGYvdmVyaWZpZXIuYzoxMTIyMDojaWZkZWYgQ09ORklHX0JQRl9MU01cbmtlcm5lbC9icGYvdmVyaWZpZXIuYy0xMTIyMS1CVEZfSUQoZnVuYywgYnBmX3NldF9kZW50cnlfeGF0dHIpXG4tLVxua2VybmVsL2JwZi92ZXJpZmllci5jPTExMjM4PUJURl9JRChmdW5jLCBicGZfYXJlbmFfcmVzZXJ2ZV9wYWdlcylcbmtlcm5lbC9icGYvdmVyaWZpZXIuYzoxMTIzOTojaWZkZWYgQ09ORklHX0JQRl9FVkVOVFNcbmtlcm5lbC9icGYvdmVyaWZpZXIuYy0xMTI0MC1CVEZfSUQoZnVuYywgYnBmX3Nlc3Npb25faXNfcmV0dXJuKVxuLS1cbmtlcm5lbC9icGYvdmVyaWZpZXIuYz0xNDUzNj1zdGF0aWMgdm9pZCBzY2FsYXJfYnl0ZV9zd2FwKHN0cnVjdCBicGZfcmVnX3N0YXRlICpkc3RfcmVnLCBzdHJ1Y3QgYnBmX2luc24gKmluc24pXG4tLVxua2VybmVsL2JwZi92ZXJpZmllci5jLTE0NTUxLVx0Ym9vbCBpc19iaWdfZW5kaWFuO1xua2VybmVsL2JwZi92ZXJpZmllci5jOjE0NTUyOiNpZmRlZiBDT05GSUdfQ1BVX0JJR19FTkRJQU5cbmtlcm5lbC9icGYvdmVyaWZpZXIuYy0xNDU1My1cdGlzX2JpZ19lbmRpYW4gPSB0cnVlO1xuLS1cbmtlcm5lbC9icGYvdmVyaWZpZXIuYz0xNjczMD1ib29sIGJwZl92ZXJpZmllcl9pbmxpbmVzX2hlbHBlcl9jYWxsKHN0cnVjdCBicGZfdmVyaWZpZXJfZW52ICplbnYsIHMzMiBpbW0pXG4tLVxua2VybmVsL2JwZi92ZXJpZmllci5jLTE2NzMyLVx0c3dpdGNoIChpbW0pIHtcbmtlcm5lbC9icGYvdmVyaWZpZXIuYzoxNjczMzojaWZkZWYgQ09ORklHX1g4Nl82NFxua2VybmVsL2JwZi92ZXJpZmllci5jLTE2NzM0LVx0Y2FzZSBCUEZfRlVOQ19nZXRfc21wX3Byb2Nlc3Nvcl9pZDpcbmtlcm5lbC9icGYvdmVyaWZpZXIuYzoxNjczNTojaWZkZWYgQ09ORklHX1NNUFxua2VybmVsL2JwZi92ZXJpZmllci5jLTE2NzM2LVx0Y2FzZSBCUEZfRlVOQ19nZXRfY3VycmVudF90YXNrX2J0Zjpcbi0tXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM9MTc3NjQ9c3RhdGljIGludCBjaGVja19wc2V1ZG9fYnRmX2lkKHN0cnVjdCBicGZfdmVyaWZpZXJfZW52ICplbnYsXG4tLVxua2VybmVsL2JwZi92ZXJpZmllci5jLTE3NzgwLVx0XHRpZiAoIWJ0Zl92bWxpbnV4KSB7XG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM6MTc3ODE6XHRcdFx0dmVyYm9zZShlbnYsIFwmIzM0O2tlcm5lbCBpcyBtaXNzaW5nIEJURiwgbWFrZSBzdXJlIENPTkZJR19ERUJVR19JTkZPX0JURj15IGlzIHNwZWNpZmllZCBpbiBLY29uZmlnLlxcblwmIzM0Oyk7XG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtMTc3ODItXHRcdFx0cmV0dXJuIC1FSU5WQUw7XG4tLVxua2VybmVsL2JwZi92ZXJpZmllci5jPTE4NzUyPXN0YXRpYyBpbnQgY2hlY2tfc3RydWN0X29wc19idGZfaWQoc3RydWN0IGJwZl92ZXJpZmllcl9lbnYgKmVudilcbi0tXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtMTg4NjItXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM6MTg4NjM6I2lmZGVmIENPTkZJR19GVU5DVElPTl9FUlJPUl9JTkpFQ1RJT05cbmtlcm5lbC9icGYvdmVyaWZpZXIuYy0xODg2NC1cbi0tXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM9MTg4NzI9QlRGX0lEKGZ1bmMsIF9fZmlsZW1hcF9hZGRfZm9saW8pXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM6MTg4NzM6I2lmZGVmIENPTkZJR19GQUlMX1BBR0VfQUxMT0Ncbmtlcm5lbC9icGYvdmVyaWZpZXIuYy0xODg3NC1CVEZfSUQoZnVuYywgc2hvdWxkX2ZhaWxfYWxsb2NfcGFnZSlcbmtlcm5lbC9icGYvdmVyaWZpZXIuYy0xODg3NS0jZW5kaWZcbmtlcm5lbC9icGYvdmVyaWZpZXIuYzoxODg3NjojaWZkZWYgQ09ORklHX0ZBSUxTTEFCXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtMTg4NzctQlRGX0lEKGZ1bmMsIHNob3VsZF9mYWlsc2xhYilcbi0tXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM9MTg5NDQ9c3RhdGljIGludCBjaGVja19hdHRhY2hfbW9kaWZ5X3JldHVybih1bnNpZ25lZCBsb25nIGFkZHIsIGNvbnN0IGNoYXIgKmZ1bmNfbmFtZSlcbi0tXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtMTg5NTItXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM6MTg5NTM6I2VuZGlmIC8qIENPTkZJR19GVU5DVElPTl9FUlJPUl9JTkpFQ1RJT04gKi9cbmtlcm5lbC9icGYvdmVyaWZpZXIuYy0xODk1NC1cbi0tXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM9MTkzNDI9QlRGX0lEX1VOVVNFRFxua2VybmVsL2JwZi92ZXJpZmllci5jOjE5MzQzOiNpZmRlZiBDT05GSUdfU01QXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtMTkzNDQtQlRGX0lEKGZ1bmMsIF9fX21pZ3JhdGVfZW5hYmxlKVxuLS1cbmtlcm5lbC9icGYvdmVyaWZpZXIuYz0xOTM0Nj1CVEZfSUQoZnVuYywgbWlncmF0ZV9lbmFibGUpXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtMTkzNDctI2VuZGlmXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM6MTkzNDg6I2lmICFkZWZpbmVkIENPTkZJR19QUkVFTVBUX1JDVSBcdTAwMjZcdTAwMjYgIWRlZmluZWQgQ09ORklHX1RJTllfUkNVXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtMTkzNDktQlRGX0lEKGZ1bmMsIHJjdV9yZWFkX3VubG9ja19zdHJpY3QpXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtMTkzNTAtI2VuZGlmXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM6MTkzNTE6I2lmIGRlZmluZWQoQ09ORklHX0RFQlVHX1BSRUVNUFQpIHx8IGRlZmluZWQoQ09ORklHX1RSQUNFX1BSRUVNUFRfVE9HR0xFKVxua2VybmVsL2JwZi92ZXJpZmllci5jLTE5MzUyLUJURl9JRChmdW5jLCBwcmVlbXB0X2NvdW50X2FkZClcbmtlcm5lbC9icGYvdmVyaWZpZXIuYz0xOTM1Mz1CVEZfSUQoZnVuYywgcHJlZW1wdF9jb3VudF9zdWIpXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtMTkzNTQtI2VuZGlmXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM6MTkzNTU6I2lmZGVmIENPTkZJR19QUkVFTVBUX1JDVVxua2VybmVsL2JwZi92ZXJpZmllci5jLTE5MzU2LUJURl9JRChmdW5jLCBfX3JjdV9yZWFkX2xvY2spXG4tLVxua2VybmVsL2JwZi92ZXJpZmllci5jPTE5MzY1PUJURl9TRVRfU1RBUlQobm9yZXR1cm5fZGVueSlcbmtlcm5lbC9icGYvdmVyaWZpZXIuYzoxOTM2NjojaWZkZWYgQ09ORklHX0lBMzJfRU1VTEFUSU9OXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtMTkzNjctQlRGX0lEKGZ1bmMsIF9faWEzMl9zeXNfZXhpdClcbmtlcm5lbC9icGYvdmVyaWZpZXIuYz0xOTM2OD1CVEZfSUQoZnVuYywgX19pYTMyX3N5c19leGl0X2dyb3VwKVxua2VybmVsL2JwZi92ZXJpZmllci5jLTE5MzY5LSNlbmRpZlxua2VybmVsL2JwZi92ZXJpZmllci5jOjE5MzcwOiNpZmRlZiBDT05GSUdfS1VOSVRcbmtlcm5lbC9icGYvdmVyaWZpZXIuYy0xOTM3MS1CVEZfSUQoZnVuYywgX19rdW5pdF9hYm9ydClcbmtlcm5lbC9icGYvdmVyaWZpZXIuYz0xOTM3Mj1CVEZfSUQoZnVuYywga3VuaXRfdHJ5X2NhdGNoX3Rocm93KVxua2VybmVsL2JwZi92ZXJpZmllci5jLTE5MzczLSNlbmRpZlxua2VybmVsL2JwZi92ZXJpZmllci5jOjE5Mzc0OiNpZmRlZiBDT05GSUdfTU9EVUxFU1xua2VybmVsL2JwZi92ZXJpZmllci5jLTE5Mzc1LUJURl9JRChmdW5jLCBfX21vZHVsZV9wdXRfYW5kX2t0aHJlYWRfZXhpdClcbmtlcm5lbC9icGYvdmVyaWZpZXIuYy0xOTM3Ni0jZW5kaWZcbmtlcm5lbC9icGYvdmVyaWZpZXIuYzoxOTM3NzojaWZkZWYgQ09ORklHX1g4Nl82NFxua2VybmVsL2JwZi92ZXJpZmllci5jLTE5Mzc4LUJURl9JRChmdW5jLCBfX3g2NF9zeXNfZXhpdClcbi0tXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM9MTk1NzA9c3RydWN0IGJ0ZiAqYnBmX2dldF9idGZfdm1saW51eCh2b2lkKVxuLS1cbmtlcm5lbC9icGYvdmVyaWZpZXIuYy0xOTU3NC1cbmtlcm5lbC9icGYvdmVyaWZpZXIuYzoxOTU3NTpcdGlmICghYnRmIFx1MDAyNlx1MDAyNiBJU19FTkFCTEVEKENPTkZJR19ERUJVR19JTkZPX0JURikpIHtcbmtlcm5lbC9icGYvdmVyaWZpZXIuYy0xOTU3Ni1cdFx0bXV0ZXhfbG9jayhcdTAwMjZidGZfdm1saW51eF9sb2NrKTtcbi0tXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM9MjAwNDE9aW50IGJwZl9jaGVjayhzdHJ1Y3QgYnBmX3Byb2cgKipwcm9nLCB1bmlvbiBicGZfYXR0ciAqYXR0ciwgYnBmcHRyX3QgdWF0dHIsXG4tLVxua2VybmVsL2JwZi92ZXJpZmllci5jLTIwMTI4LVx0ZW52LVx1MDAzZXN0cmljdF9hbGlnbm1lbnQgPSAhIShhdHRyLVx1MDAzZXByb2dfZmxhZ3MgXHUwMDI2IEJQRl9GX1NUUklDVF9BTElHTk1FTlQpO1xua2VybmVsL2JwZi92ZXJpZmllci5jOjIwMTI5Olx0aWYgKCFJU19FTkFCTEVEKENPTkZJR19IQVZFX0VGRklDSUVOVF9VTkFMSUdORURfQUNDRVNTKSlcbmtlcm5lbC9icGYvdmVyaWZpZXIuYy0yMDEzMC1cdFx0ZW52LVx1MDAzZXN0cmljdF9hbGlnbm1lbnQgPSB0cnVlO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjkvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzEwIDExOjM1PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDExNTA5CgkJCQkJCQlvdXRwdXQ6IDk4CgkJCQkJCQl0aG91Z2h0czogMTM3CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgQlBGIFZlcmlmaWVyIFBhdGNoKioKCk9rYXksIHNvIHRoaXMgcGF0Y2ggaXMgc2l0dGluZyB3aXRoaW4gYGNoZWNrX21lbV9hY2Nlc3NgLCB3aGljaCBpcyB0aGUgZnVuY3Rpb24gdGhhdCBnZXRzIGNhbGxlZCB3aGVuZXZlciBhIEJQRiBwcm9ncmFtIGFjY2Vzc2VzIG1lbW9yeS4gSXQmIzM5O3MgdGllZCB0byB0aGlzIGBCUEZfU1lTQ0FMTGAgY29uZmlnLCB3aGljaCBtYWtlcyBzZW5zZS4gTG9va2luZyBhdCB0aGUgcmVhc29uaW5nLCBpdCYjMzk7cyBhIGJ1ZyBmaXggaW4gdGhlIEJQRiB2ZXJpZmllciBpdHNlbGYuIFNwZWNpZmljYWxseSwgYSBzaWduLWV4dGVuZGluZyBsb2FkIGNvdWxkIGJlIGtlZXBpbmcgYSBzaGFyZWQgc2NhbGFyIElELCB3aGljaCB0aHJvd3Mgb2ZmIHRoZSBib3VuZHMgdHJhY2tpbmcuIFJpZ2h0LCBzbyBhIGNvcmUgbG9naWMgY2hhbmdlIGluIHRoZSB2ZXJpZmllcjsgdGhhdCBkZWZpbml0ZWx5IHdhcnJhbnRzIHNvbWUgZnV6emluZy4KCk5vdywgdGhlIHF1ZXN0aW9uIGlzIHdoZXRoZXIgYEJQRl9TWVNDQUxMYCBpcyAqc3VmZmljaWVudCogZm9yIGVuYWJsaW5nIHRoZSB2ZXJpZmllciBpbiB0aGUgZmlyc3QgcGxhY2UuIEkgbmVlZCB0byB2ZXJpZnkgdGhhdC4gQWgsIHllcywgY29uZmlybWVkLiBFbmFibGluZyBgQlBGX1NZU0NBTExgIGFsc28gZW5hYmxlcyB0aGUgdmVyaWZpZXIsIHNvIHdlIGFyZSBnb29kIHRvIGdvLgoKVGltZSB0byBjYWxsIGBzZXQtcmVzdWx0c2AuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzEwIDExOjM1PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+c2V0LXJlc3VsdHM8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtCUEZfU1lTQ0FMTCYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2NoZWNrX21lbV9hY2Nlc3MmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggZml4ZXMgYSBidWcgaW4gdGhlIEJQRiB2ZXJpZmllciB3aGVyZSBhIHNpZ24tZXh0ZW5kaW5nIGxvYWQgY291bGQgaW5jb3JyZWN0bHkga2VlcCBhIHNoYXJlZCBzY2FsYXIgSUQsIGxlYWRpbmcgdG8gaW5jb3JyZWN0IGJvdW5kcyB0cmFja2luZy4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSB2ZXJpZmllciYjMzk7cyBjb3JlIGxvZ2ljIGFuZCBzaG91bGQgYmUgZnV6emVkLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtCUEZfU1lTQ0FMTCYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2NoZWNrX21lbV9hY2Nlc3MmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggZml4ZXMgYSBidWcgaW4gdGhlIEJQRiB2ZXJpZmllciB3aGVyZSBhIHNpZ24tZXh0ZW5kaW5nIGxvYWQgY291bGQgaW5jb3JyZWN0bHkga2VlcCBhIHNoYXJlZCBzY2FsYXIgSUQsIGxlYWRpbmcgdG8gaW5jb3JyZWN0IGJvdW5kcyB0cmFja2luZy4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSB2ZXJpZmllciYjMzk7cyBjb3JlIGxvZ2ljIGFuZCBzaG91bGQgYmUgZnV6emVkLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTwvdGJvZHk+Cgk8L3RhYmxlPgoKCTxkaXYgaWQ9ImxsbV9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+TExNIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgVG9rZW5zPC90aD4KCQkJCQk8dGg+QXZnIFRva2VuczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJsbG1fc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJ0b29sX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5Ub29sIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9InRvb2xfc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJkdXJhdGlvbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+Cgk8ZGl2IGlkPSJ0b2tlbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+CgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9qc2FwaSI+PC9zY3JpcHQ+Cgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CgkJZ29vZ2xlLmxvYWQoInZpc3VhbGl6YXRpb24iLCAiMSIsIHtwYWNrYWdlczpbImNvcmVjaGFydCJdfSk7CgkJZ29vZ2xlLnNldE9uTG9hZENhbGxiYWNrKGRyYXdDaGFydHMpOwoKCQlmdW5jdGlvbiBkcmF3Q2hhcnRzKCkgewoJCQljb25zdCByYXdEYXRhID0gW3siU3RhcnRlZCI6IjIwMjYtMDctMTBUMTE6MzU6MDIuMTg1NTE5MDAzWiIsIlNlcSI6MCwiTmVzdGluZyI6MCwiVHlwZSI6ImZsb3ciLCJOYW1lIjoicGF0Y2gtdHJpYWdlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTc0MzE3MDk2MDAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiQlBGX1NZU0NBTExcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJjaGVja19tZW1fYWNjZXNzXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggZml4ZXMgYSBidWcgaW4gdGhlIEJQRiB2ZXJpZmllciB3aGVyZSBhIHNpZ24tZXh0ZW5kaW5nIGxvYWQgY291bGQgaW5jb3JyZWN0bHkga2VlcCBhIHNoYXJlZCBzY2FsYXIgSUQsIGxlYWRpbmcgdG8gaW5jb3JyZWN0IGJvdW5kcyB0cmFja2luZy4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSB2ZXJpZmllcidzIGNvcmUgbG9naWMgYW5kIHNob3VsZCBiZSBmdXp6ZWQuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTEwVDExOjM1OjAyLjE4NTUyNDQyM1oiLCJTZXEiOjEsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoicmVhZC1wYXRjaC1kaWZmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NTQ2NTA3ODc2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJQYXRjaERpZmZcIjogXCJjb21taXQgNTMzNTg5Zjk1N2UzOWIzZTgwYTIwZThhZTM3MDE3YjQ0MjJmYTNmM1xcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXFx1MDAzZVxcbkRhdGU6ICAgRnJpIEp1bCAxMCAxMTozNDo1OSAyMDI2ICswMDAwXFxuXFxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xcblxcbmRpZmYgLS1naXQgYS9rZXJuZWwvYnBmL3ZlcmlmaWVyLmMgYi9rZXJuZWwvYnBmL3ZlcmlmaWVyLmNcXG5pbmRleCAyMzM0NzJhODcxYmU1Ny4uYTA4MzBhZDZiZWJiZTIgMTAwNjQ0XFxuLS0tIGEva2VybmVsL2JwZi92ZXJpZmllci5jXFxuKysrIGIva2VybmVsL2JwZi92ZXJpZmllci5jXFxuQEAgLTYzOTQsMTEgKzYzOTQsMjMgQEAgc3RhdGljIGludCBjaGVja19tZW1fYWNjZXNzKHN0cnVjdCBicGZfdmVyaWZpZXJfZW52ICplbnYsIGludCBpbnNuX2lkeCwgc3RydWN0IGJcXG4gXFxuIFxcdGlmICghZXJyIFxcdTAwMjZcXHUwMDI2IHNpemUgXFx1MDAzYyBCUEZfUkVHX1NJWkUgXFx1MDAyNlxcdTAwMjYgdmFsdWVfcmVnbm8gXFx1MDAzZT0gMCBcXHUwMDI2XFx1MDAyNiB0ID09IEJQRl9SRUFEIFxcdTAwMjZcXHUwMDI2XFxuIFxcdCAgICByZWdzW3ZhbHVlX3JlZ25vXS50eXBlID09IFNDQUxBUl9WQUxVRSkge1xcbi1cXHRcXHRpZiAoIWlzX2xkc3gpXFxuK1xcdFxcdGlmICghaXNfbGRzeCkge1xcbiBcXHRcXHRcXHQvKiBiL2gvdyBsb2FkIHplcm8tZXh0ZW5kcywgbWFyayB1cHBlciBiaXRzIGFzIGtub3duIDAgKi9cXG4gXFx0XFx0XFx0Y29lcmNlX3JlZ190b19zaXplKFxcdTAwMjZyZWdzW3ZhbHVlX3JlZ25vXSwgc2l6ZSk7XFxuLVxcdFxcdGVsc2VcXG4rXFx0XFx0fSBlbHNlIHtcXG4rXFx0XFx0XFx0LypcXG4rXFx0XFx0XFx0ICogU2lnbi1leHRlbnNpb24gY2FuIGNoYW5nZSB0aGUgcmVnaXN0ZXIgdmFsdWUgcmVsYXRpdmVcXG4rXFx0XFx0XFx0ICogdG8gYSBzY2FsYXIgaXQgaXMgbGlua2VkIHdpdGggYnkgaWQgKGUuZy4gYSB6ZXJvLVxcbitcXHRcXHRcXHQgKiBleHRlbmRpbmcgZmlsbCBvZiB0aGUgc2FtZSBzcGlsbGVkIHN0YWNrIHNsb3QpLCB0aHVzXFxuK1xcdFxcdFxcdCAqIGRyb3AgdGhlIHNoYXJlZCBpZCBpbiB0aGF0IGNhc2UuXFxuK1xcdFxcdFxcdCAqL1xcbitcXHRcXHRcXHRib29sIG5vX3NleHQgPSByZWdfdW1heChcXHUwMDI2cmVnc1t2YWx1ZV9yZWdub10pIFxcdTAwM2NcXG4rXFx0XFx0XFx0XFx0XFx0KDFVTEwgXFx1MDAzY1xcdTAwM2MgKHNpemUgKiBCSVRTX1BFUl9CWVRFIC0gMSkpO1xcbitcXG4gXFx0XFx0XFx0Y29lcmNlX3JlZ190b19zaXplX3N4KFxcdTAwMjZyZWdzW3ZhbHVlX3JlZ25vXSwgc2l6ZSk7XFxuK1xcdFxcdFxcdGlmICghbm9fc2V4dClcXG4rXFx0XFx0XFx0XFx0Y2xlYXJfc2NhbGFyX2lkKFxcdTAwMjZyZWdzW3ZhbHVlX3JlZ25vXSk7XFxuK1xcdFxcdH1cXG4gXFx0fVxcbiBcXHRyZXR1cm4gZXJyO1xcbiB9XFxuZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9zY2FsYXJfaWRzLmMgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfc2NhbGFyX2lkcy5jXFxuaW5kZXggZTM4ZjEwMmRhNDVmMmUuLjY2M2QxNWZjNWZkMjZhIDEwMDY0NFxcbi0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9zY2FsYXJfaWRzLmNcXG4rKysgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfc2NhbGFyX2lkcy5jXFxuQEAgLTQsNiArNCwxMyBAQFxcbiAjaW5jbHVkZSBcXHUwMDNjYnBmL2JwZl9oZWxwZXJzLmhcXHUwMDNlXFxuICNpbmNsdWRlIFxcXCJicGZfbWlzYy5oXFxcIlxcbiBcXG4rc3RydWN0IHtcXG4rXFx0X191aW50KHR5cGUsIEJQRl9NQVBfVFlQRV9IQVNIKTtcXG4rXFx0X191aW50KG1heF9lbnRyaWVzLCAxKTtcXG4rXFx0X190eXBlKGtleSwgbG9uZyBsb25nKTtcXG4rXFx0X190eXBlKHZhbHVlLCBsb25nIGxvbmcpO1xcbit9IG1hcF9oYXNoXzhiIFNFQyhcXFwiLm1hcHNcXFwiKTtcXG4rXFxuIC8qIENoZWNrIHRoYXQgcHJlY2lzaW9uIG1hcmtzIHByb3BhZ2F0ZSB0aHJvdWdoIHNjYWxhciBJRHMuXFxuICAqIFJlZ2lzdGVycyByezAsMSwyfSBoYXZlIHRoZSBzYW1lIHNjYWxhciBJRC5cXG4gICogUmFuZ2UgaW5mb3JtYXRpb24gaXMgcHJvcGFnYXRlZCBmb3Igc2NhbGFycyBzaGFyaW5nIHNhbWUgSUQuXFxuQEAgLTkxNSw0ICs5MjIsNTMgQEAgX19uYWtlZCB2b2lkIGxpbmtlZF9yZWdzX2FuZF9zdWJyZWdfZGVmKHZvaWQpXFxuIFxcdDogX19jbG9iYmVyX2FsbCk7XFxuIH1cXG4gXFxuKy8qXFxuKyAqIEEgc2NhbGFyIGlzIHNwaWxsZWQgdG8gdGhlIHN0YWNrIGFuZCB0aGVuIGZpbGxlZCB0d2ljZTogb25jZSB2aWEgYVxcbisgKiBzaWduLWV4dGVuZGluZyBsb2FkIChCUEZfTUVNU1gpIGludG8gcjQgYW5kIG9uY2UgdmlhIGEgemVyby1leHRlbmRpbmdcXG4rICogbG9hZCAoQlBGX01FTSkgaW50byByNS4gY29lcmNlX3JlZ190b19zaXplX3N4KCkgZ2l2ZXMgcjQgYSBkaWZmZXJlbnRcXG4rICogdmFsdWUgdGhhbiB0aGUgc3BpbGxlZC96ZXJvLWV4dGVuZGVkIHNpYmxpbmdzLCBzbyByNCBtdXN0IG5vdCBrZWVwIHRoZVxcbisgKiBzaGFyZWQgc2NhbGFyIGlkLiBPdGhlcndpc2UgdGhlIGxhdGVyICdpZiByNSA9PSAweDgwMDAwMDAwJyByZWZpbmVzIHI0XFxuKyAqIHRocm91Z2ggc3luY19saW5rZWRfcmVncygpIHRvIGEga25vd24gMHg4MDAwMDAwMCwgd2hpbGUgYXQgcnVudGltZSByNFxcbisgKiBpcyB0aGUgc2lnbi1leHRlbmRlZCAweGZmZmZmZmZmODAwMDAwMDAuIFRoZSB0ZXN0IHR1cm5zIHRoYXQgZGlzY3JlcGFuY3lcXG4rICogaW50byBhbiBvdXQtb2YtYm91bmRzIG1hcCB2YWx1ZSBhY2Nlc3MgKHI0IFxcdTAwM2VcXHUwMDNlIDYzIGlzIGJlbGlldmVkIDAgYnV0IGlzIDFcXG4rICogYXQgcnVudGltZSksIHdoaWNoIG11c3QgYmUgcmVqZWN0ZWQuXFxuKyAqL1xcbitTRUMoXFxcInNvY2tldFxcXCIpXFxuK19fZmFpbHVyZSBfX21zZyhcXFwiUjAgbWF4IHZhbHVlIGlzIG91dHNpZGUgb2YgdGhlIGFsbG93ZWQgbWVtb3J5IHJhbmdlXFxcIilcXG4rX19uYWtlZCB2b2lkIGxkc3hfZmlsbF9zY2FsYXJfaWRfbm90X3NoYXJlZCh2b2lkKVxcbit7XFxuK1xcdGFzbSB2b2xhdGlsZSAoXFxcIlxcdFxcdFxcdFxcdFxcdFxcXFxcXG4rXFx0cjEgPSAwO1xcdFxcdFxcdFxcdFxcdFxcdFxcXFxcXG4rXFx0Kih1NjQqKShyMTAgLSA4KSA9IHIxO1xcdFxcdFxcdFxcdFxcXFxcXG4rXFx0cjIgPSByMTA7XFx0XFx0XFx0XFx0XFx0XFxcXFxcbitcXHRyMiArPSAtODtcXHRcXHRcXHRcXHRcXHRcXFxcXFxuK1xcdHIxID0gJVttYXBfaGFzaF84Yl0gbGw7XFx0XFx0XFx0XFx0XFxcXFxcbitcXHRjYWxsICVbYnBmX21hcF9sb29rdXBfZWxlbV07XFx0XFx0XFx0XFxcXFxcbitcXHRpZiByMCA9PSAwIGdvdG8gbDBfJT07XFx0XFx0XFx0XFx0XFxcXFxcbitcXHQvKiByNyA9IHVua25vd24gdTMyLCBrZWVwIG9ubHkgYml0IDMxICovXFx0XFxcXFxcbitcXHRyNyA9ICoodTMyKikocjAgKyAwKTtcXHRcXHRcXHRcXHRcXFxcXFxuK1xcdHIyID0gMHg4MDAwMDAwMCBsbDtcXHRcXHRcXHRcXHRcXFxcXFxuK1xcdHI3IFxcdTAwMjY9IHIyO1xcdFxcdFxcdFxcdFxcdFxcXFxcXG4rXFx0LyogbGluayByNiBhbmQgcjcgdmlhIGEgZnJlc2ggc2NhbGFyIGlkICovXFx0XFxcXFxcbitcXHRyNiA9IHI3O1xcdFxcdFxcdFxcdFxcdFxcXFxcXG4rXFx0Lyogc3BpbGwgcjcgKHUzMikgdG8gdGhlIHN0YWNrICovXFx0XFx0XFxcXFxcbitcXHQqKHUzMiopKHIxMCAtIDgpID0gcjc7XFx0XFx0XFx0XFx0XFxcXFxcbitcXHQvKiBzaWduLWV4dGVuZGluZyBmaWxsOiBtdXN0IGRyb3AgdGhlIGlkICovXFx0XFxcXFxcbitcXHRyNCA9ICooczMyKikocjEwIC0gOCk7XFx0XFx0XFx0XFx0XFxcXFxcbitcXHQvKiB6ZXJvLWV4dGVuZGluZyBmaWxsOiBrZWVwcyB0aGUgaWQgKi9cXHRcXHRcXFxcXFxuK1xcdHI1ID0gKih1MzIqKShyMTAgLSA4KTtcXHRcXHRcXHRcXHRcXFxcXFxuK1xcdC8qIHI1IGJlY29tZXMga25vd24gMHg4MDAwMDAwMCBvbiBmYWxsLXRocm91Z2ggKi9cXFxcXFxuK1xcdGlmIHI1ICE9IHIyIGdvdG8gbDBfJT07XFx0XFx0XFx0XFx0XFxcXFxcbitcXHQvKiB2ZXJpZmllciBiZWxpZXZlcyByNCA9PSAwIGhlcmUsIHJ1bnRpbWUgaXMgMSAqL1xcXFxcXG4rXFx0cjQgXFx1MDAzZVxcdTAwM2U9IDYzO1xcdFxcdFxcdFxcdFxcdFxcXFxcXG4rXFx0cjAgKz0gcjQ7XFx0XFx0XFx0XFx0XFx0XFxcXFxcbitcXHRyMCA9ICoodTgqKShyMCArIDcpO1xcdFxcdFxcdFxcdFxcXFxcXG4rbDBfJT06XFx0cjAgPSAwO1xcdFxcdFxcdFxcdFxcdFxcdFxcXFxcXG4rXFx0ZXhpdDtcXHRcXHRcXHRcXHRcXHRcXHRcXFxcXFxuK1xcXCJcXHQ6XFxuK1xcdDogX19pbW0oYnBmX21hcF9sb29rdXBfZWxlbSksXFxuK1xcdCAgX19pbW1fYWRkcihtYXBfaGFzaF84YilcXG4rXFx0OiBfX2Nsb2JiZXJfYWxsKTtcXG4rfVxcbitcXG4gY2hhciBfbGljZW5zZVtdIFNFQyhcXFwibGljZW5zZVxcXCIpID0gXFxcIkdQTFxcXCI7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTEwVDExOjM1OjAyLjczMjc2NjY1OVoiLCJTZXEiOjIsIk5lc3RpbmciOjEsIlR5cGUiOiJhZ2VudCIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MTY4ODQ0NDk3NTQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiQlBGX1NZU0NBTExcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJjaGVja19tZW1fYWNjZXNzXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggZml4ZXMgYSBidWcgaW4gdGhlIEJQRiB2ZXJpZmllciB3aGVyZSBhIHNpZ24tZXh0ZW5kaW5nIGxvYWQgY291bGQgaW5jb3JyZWN0bHkga2VlcCBhIHNoYXJlZCBzY2FsYXIgSUQsIGxlYWRpbmcgdG8gaW5jb3JyZWN0IGJvdW5kcyB0cmFja2luZy4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSB2ZXJpZmllcidzIGNvcmUgbG9naWMgYW5kIHNob3VsZCBiZSBmdXp6ZWQuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLlxuWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmVcbmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cblxuSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluXG55b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHlcbnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuXG5cblJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6XG4tIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuXG4tIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLlxuLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuXG4tIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSxcbmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS5cblxuSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaFxudG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuXG5cbldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOlxuMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy5cbiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLlxuMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuXG4gICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuXG4gICBEbyBub3QgbGlzdCB0b28gZ2VuZXJpYyBjb25maWdzICh3ZSBhbHJlYWR5IGhhdmUgdGhlbSBlbmFibGVkKS4gT25seSBsaXN0IHRob3NlIHRoYXRcbiAgIHNwZWNpZmljYWxseSBjb3ZlciB0aGUgbW9kaWZpZWQgY29kZS4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzIG91dHB1dCBhcnJheSxcbiAgIGFuZCBETyBOT1QgYWRkIGEgJ0NPTkZJR18nIHByZWZpeCAoZS5nLiwgcmV0dXJuIFwiTkVUX0lQVjRcIiBpbnN0ZWFkIG9mIFwiQ09ORklHX05FVF9JUFY0XCIpLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgNTMzNTg5Zjk1N2UzOWIzZTgwYTIwZThhZTM3MDE3YjQ0MjJmYTNmM1xuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBGcmkgSnVsIDEwIDExOjM0OjU5IDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEva2VybmVsL2JwZi92ZXJpZmllci5jIGIva2VybmVsL2JwZi92ZXJpZmllci5jXG5pbmRleCAyMzM0NzJhODcxYmU1Ny4uYTA4MzBhZDZiZWJiZTIgMTAwNjQ0XG4tLS0gYS9rZXJuZWwvYnBmL3ZlcmlmaWVyLmNcbisrKyBiL2tlcm5lbC9icGYvdmVyaWZpZXIuY1xuQEAgLTYzOTQsMTEgKzYzOTQsMjMgQEAgc3RhdGljIGludCBjaGVja19tZW1fYWNjZXNzKHN0cnVjdCBicGZfdmVyaWZpZXJfZW52ICplbnYsIGludCBpbnNuX2lkeCwgc3RydWN0IGJcbiBcbiBcdGlmICghZXJyIFx1MDAyNlx1MDAyNiBzaXplIFx1MDAzYyBCUEZfUkVHX1NJWkUgXHUwMDI2XHUwMDI2IHZhbHVlX3JlZ25vIFx1MDAzZT0gMCBcdTAwMjZcdTAwMjYgdCA9PSBCUEZfUkVBRCBcdTAwMjZcdTAwMjZcbiBcdCAgICByZWdzW3ZhbHVlX3JlZ25vXS50eXBlID09IFNDQUxBUl9WQUxVRSkge1xuLVx0XHRpZiAoIWlzX2xkc3gpXG4rXHRcdGlmICghaXNfbGRzeCkge1xuIFx0XHRcdC8qIGIvaC93IGxvYWQgemVyby1leHRlbmRzLCBtYXJrIHVwcGVyIGJpdHMgYXMga25vd24gMCAqL1xuIFx0XHRcdGNvZXJjZV9yZWdfdG9fc2l6ZShcdTAwMjZyZWdzW3ZhbHVlX3JlZ25vXSwgc2l6ZSk7XG4tXHRcdGVsc2VcbitcdFx0fSBlbHNlIHtcbitcdFx0XHQvKlxuK1x0XHRcdCAqIFNpZ24tZXh0ZW5zaW9uIGNhbiBjaGFuZ2UgdGhlIHJlZ2lzdGVyIHZhbHVlIHJlbGF0aXZlXG4rXHRcdFx0ICogdG8gYSBzY2FsYXIgaXQgaXMgbGlua2VkIHdpdGggYnkgaWQgKGUuZy4gYSB6ZXJvLVxuK1x0XHRcdCAqIGV4dGVuZGluZyBmaWxsIG9mIHRoZSBzYW1lIHNwaWxsZWQgc3RhY2sgc2xvdCksIHRodXNcbitcdFx0XHQgKiBkcm9wIHRoZSBzaGFyZWQgaWQgaW4gdGhhdCBjYXNlLlxuK1x0XHRcdCAqL1xuK1x0XHRcdGJvb2wgbm9fc2V4dCA9IHJlZ191bWF4KFx1MDAyNnJlZ3NbdmFsdWVfcmVnbm9dKSBcdTAwM2NcbitcdFx0XHRcdFx0KDFVTEwgXHUwMDNjXHUwMDNjIChzaXplICogQklUU19QRVJfQllURSAtIDEpKTtcbitcbiBcdFx0XHRjb2VyY2VfcmVnX3RvX3NpemVfc3goXHUwMDI2cmVnc1t2YWx1ZV9yZWdub10sIHNpemUpO1xuK1x0XHRcdGlmICghbm9fc2V4dClcbitcdFx0XHRcdGNsZWFyX3NjYWxhcl9pZChcdTAwMjZyZWdzW3ZhbHVlX3JlZ25vXSk7XG4rXHRcdH1cbiBcdH1cbiBcdHJldHVybiBlcnI7XG4gfVxuZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy92ZXJpZmllcl9zY2FsYXJfaWRzLmMgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfc2NhbGFyX2lkcy5jXG5pbmRleCBlMzhmMTAyZGE0NWYyZS4uNjYzZDE1ZmM1ZmQyNmEgMTAwNjQ0XG4tLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfc2NhbGFyX2lkcy5jXG4rKysgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfc2NhbGFyX2lkcy5jXG5AQCAtNCw2ICs0LDEzIEBAXG4gI2luY2x1ZGUgXHUwMDNjYnBmL2JwZl9oZWxwZXJzLmhcdTAwM2VcbiAjaW5jbHVkZSBcImJwZl9taXNjLmhcIlxuIFxuK3N0cnVjdCB7XG4rXHRfX3VpbnQodHlwZSwgQlBGX01BUF9UWVBFX0hBU0gpO1xuK1x0X191aW50KG1heF9lbnRyaWVzLCAxKTtcbitcdF9fdHlwZShrZXksIGxvbmcgbG9uZyk7XG4rXHRfX3R5cGUodmFsdWUsIGxvbmcgbG9uZyk7XG4rfSBtYXBfaGFzaF84YiBTRUMoXCIubWFwc1wiKTtcbitcbiAvKiBDaGVjayB0aGF0IHByZWNpc2lvbiBtYXJrcyBwcm9wYWdhdGUgdGhyb3VnaCBzY2FsYXIgSURzLlxuICAqIFJlZ2lzdGVycyByezAsMSwyfSBoYXZlIHRoZSBzYW1lIHNjYWxhciBJRC5cbiAgKiBSYW5nZSBpbmZvcm1hdGlvbiBpcyBwcm9wYWdhdGVkIGZvciBzY2FsYXJzIHNoYXJpbmcgc2FtZSBJRC5cbkBAIC05MTUsNCArOTIyLDUzIEBAIF9fbmFrZWQgdm9pZCBsaW5rZWRfcmVnc19hbmRfc3VicmVnX2RlZih2b2lkKVxuIFx0OiBfX2Nsb2JiZXJfYWxsKTtcbiB9XG4gXG4rLypcbisgKiBBIHNjYWxhciBpcyBzcGlsbGVkIHRvIHRoZSBzdGFjayBhbmQgdGhlbiBmaWxsZWQgdHdpY2U6IG9uY2UgdmlhIGFcbisgKiBzaWduLWV4dGVuZGluZyBsb2FkIChCUEZfTUVNU1gpIGludG8gcjQgYW5kIG9uY2UgdmlhIGEgemVyby1leHRlbmRpbmdcbisgKiBsb2FkIChCUEZfTUVNKSBpbnRvIHI1LiBjb2VyY2VfcmVnX3RvX3NpemVfc3goKSBnaXZlcyByNCBhIGRpZmZlcmVudFxuKyAqIHZhbHVlIHRoYW4gdGhlIHNwaWxsZWQvemVyby1leHRlbmRlZCBzaWJsaW5ncywgc28gcjQgbXVzdCBub3Qga2VlcCB0aGVcbisgKiBzaGFyZWQgc2NhbGFyIGlkLiBPdGhlcndpc2UgdGhlIGxhdGVyICdpZiByNSA9PSAweDgwMDAwMDAwJyByZWZpbmVzIHI0XG4rICogdGhyb3VnaCBzeW5jX2xpbmtlZF9yZWdzKCkgdG8gYSBrbm93biAweDgwMDAwMDAwLCB3aGlsZSBhdCBydW50aW1lIHI0XG4rICogaXMgdGhlIHNpZ24tZXh0ZW5kZWQgMHhmZmZmZmZmZjgwMDAwMDAwLiBUaGUgdGVzdCB0dXJucyB0aGF0IGRpc2NyZXBhbmN5XG4rICogaW50byBhbiBvdXQtb2YtYm91bmRzIG1hcCB2YWx1ZSBhY2Nlc3MgKHI0IFx1MDAzZVx1MDAzZSA2MyBpcyBiZWxpZXZlZCAwIGJ1dCBpcyAxXG4rICogYXQgcnVudGltZSksIHdoaWNoIG11c3QgYmUgcmVqZWN0ZWQuXG4rICovXG4rU0VDKFwic29ja2V0XCIpXG4rX19mYWlsdXJlIF9fbXNnKFwiUjAgbWF4IHZhbHVlIGlzIG91dHNpZGUgb2YgdGhlIGFsbG93ZWQgbWVtb3J5IHJhbmdlXCIpXG4rX19uYWtlZCB2b2lkIGxkc3hfZmlsbF9zY2FsYXJfaWRfbm90X3NoYXJlZCh2b2lkKVxuK3tcbitcdGFzbSB2b2xhdGlsZSAoXCJcdFx0XHRcdFx0XFxcbitcdHIxID0gMDtcdFx0XHRcdFx0XHRcXFxuK1x0Kih1NjQqKShyMTAgLSA4KSA9IHIxO1x0XHRcdFx0XFxcbitcdHIyID0gcjEwO1x0XHRcdFx0XHRcXFxuK1x0cjIgKz0gLTg7XHRcdFx0XHRcdFxcXG4rXHRyMSA9ICVbbWFwX2hhc2hfOGJdIGxsO1x0XHRcdFx0XFxcbitcdGNhbGwgJVticGZfbWFwX2xvb2t1cF9lbGVtXTtcdFx0XHRcXFxuK1x0aWYgcjAgPT0gMCBnb3RvIGwwXyU9O1x0XHRcdFx0XFxcbitcdC8qIHI3ID0gdW5rbm93biB1MzIsIGtlZXAgb25seSBiaXQgMzEgKi9cdFxcXG4rXHRyNyA9ICoodTMyKikocjAgKyAwKTtcdFx0XHRcdFxcXG4rXHRyMiA9IDB4ODAwMDAwMDAgbGw7XHRcdFx0XHRcXFxuK1x0cjcgXHUwMDI2PSByMjtcdFx0XHRcdFx0XFxcbitcdC8qIGxpbmsgcjYgYW5kIHI3IHZpYSBhIGZyZXNoIHNjYWxhciBpZCAqL1x0XFxcbitcdHI2ID0gcjc7XHRcdFx0XHRcdFxcXG4rXHQvKiBzcGlsbCByNyAodTMyKSB0byB0aGUgc3RhY2sgKi9cdFx0XFxcbitcdCoodTMyKikocjEwIC0gOCkgPSByNztcdFx0XHRcdFxcXG4rXHQvKiBzaWduLWV4dGVuZGluZyBmaWxsOiBtdXN0IGRyb3AgdGhlIGlkICovXHRcXFxuK1x0cjQgPSAqKHMzMiopKHIxMCAtIDgpO1x0XHRcdFx0XFxcbitcdC8qIHplcm8tZXh0ZW5kaW5nIGZpbGw6IGtlZXBzIHRoZSBpZCAqL1x0XHRcXFxuK1x0cjUgPSAqKHUzMiopKHIxMCAtIDgpO1x0XHRcdFx0XFxcbitcdC8qIHI1IGJlY29tZXMga25vd24gMHg4MDAwMDAwMCBvbiBmYWxsLXRocm91Z2ggKi9cXFxuK1x0aWYgcjUgIT0gcjIgZ290byBsMF8lPTtcdFx0XHRcdFxcXG4rXHQvKiB2ZXJpZmllciBiZWxpZXZlcyByNCA9PSAwIGhlcmUsIHJ1bnRpbWUgaXMgMSAqL1xcXG4rXHRyNCBcdTAwM2VcdTAwM2U9IDYzO1x0XHRcdFx0XHRcXFxuK1x0cjAgKz0gcjQ7XHRcdFx0XHRcdFxcXG4rXHRyMCA9ICoodTgqKShyMCArIDcpO1x0XHRcdFx0XFxcbitsMF8lPTpcdHIwID0gMDtcdFx0XHRcdFx0XHRcXFxuK1x0ZXhpdDtcdFx0XHRcdFx0XHRcXFxuK1wiXHQ6XG4rXHQ6IF9faW1tKGJwZl9tYXBfbG9va3VwX2VsZW0pLFxuK1x0ICBfX2ltbV9hZGRyKG1hcF9oYXNoXzhiKVxuK1x0OiBfX2Nsb2JiZXJfYWxsKTtcbit9XG4rXG4gY2hhciBfbGljZW5zZVtdIFNFQyhcImxpY2Vuc2VcIikgPSBcIkdQTFwiO1xuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTBUMTE6MzU6MDIuNzMyNzY4MzY5WiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NTkzNjMzNjQwNSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipNeSBBc3Nlc3NtZW50IG9mIHRoZSBCUEYgVmVyaWZpZXIgUGF0Y2gqKlxuXG5Pa2F5LCBzbyB0aGlzIHBhdGNoIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2Ugd2l0aGluIHRoZSBCUEYgdmVyaWZpZXIsIHNwZWNpZmljYWxseSBpbiBga2VybmVsL2JwZi92ZXJpZmllci5jYC4gSXQncyBhbHRlcmluZyB0aGUgYmVoYXZpb3Igb2YgdGhlIHNoYXJlZCBzY2FsYXIgSUQgdHJhY2tpbmcgd2hlbiBzaWduLWV4dGVuZGluZyBsb2FkcyBvY2N1ci4gRXNzZW50aWFsbHksIGl0IGRyb3BzIHRoZSBzY2FsYXIgSUQgd2hlbiBhIHNpZ24tZXh0ZW5kaW5nIGxvYWQgbW9kaWZpZXMgdGhlIHJlZ2lzdGVyIHZhbHVlIHJlbGF0aXZlIHRvIGEgc2NhbGFyIGl0J3MgdGllZCB0by4gVGhlIG1vZGlmaWVkIGZ1bmN0aW9uIGlzIGBjaGVja19tZW1fYWNjZXNzKClgLCB3aGljaCBpcyBpbXBvcnRhbnQgZm9yIHByb2dyYW0gdmVyaWZpY2F0aW9uLlxuXG5Mb29raW5nIGNsb3NlbHksIHRoZSBwYXRjaCBpbnRyb2R1Y2VzIGEgbmV3IGNvbmRpdGlvbiB3aXRoaW4gYGNoZWNrX21lbV9hY2Nlc3MoKWA6IGBib29sIG5vX3NleHQgPSByZWdfdW1heChcdTAwMjZyZWdzW3ZhbHVlX3JlZ25vXSkgXHUwMDNjICgxVUxMIFx1MDAzY1x1MDAzYyAoc2l6ZSAqIEJJVFNfUEVSX0JZVEUgLSAxKSk7YC4gSWYgdGhpcyBjb25kaXRpb24sIGAhbm9fc2V4dGAsIGlzIHRydWUsIG1lYW5pbmcgdGhlIHJlZ2lzdGVyICpkb2VzKiBnZXQgc2lnbi1leHRlbmRlZCwgaXQgY2xlYXJzIHRoZSBzY2FsYXIgSUQuIE1ha2VzIHNlbnNlLlxuXG5HaXZlbiB0aGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIHZlcmlmaWVyLCBmdXp6aW5nIGlzIGRlZmluaXRlbHkgaW4gb3JkZXIuIEkgbmVlZCB0byBiZSBzdXJlIHRoZSBtb2RpZmllZCB2ZXJpZmljYXRpb24gbG9naWMgaXMgc29saWQuXG5cbk15IGZvY3VzIHNob3VsZCBiZSBvbiBgY2hlY2tfbWVtX2FjY2VzcygpYCBhcyBhIGtleSBzeW1ib2wsIGFuZCBhZnRlciBhIG1vbWVudCdzIGNvbnNpZGVyYXRpb24sIEkgY29uY3VyLiBXaGlsZSBpdCdzIGNlbnRyYWwgdG8gdGhlIEJQRiB2ZXJpZmllciwgaXQncyBub3QgYSBwZXJmb3JtYW5jZS1jcml0aWNhbCBob3QgcGF0aCBsaWtlIHBhY2tldCBwcm9jZXNzaW5nIGZ1bmN0aW9ucy4gSXQncyBpbnZva2VkIGR1cmluZyBCUEYgcHJvZ3JhbSBsb2FkLCBtYWtpbmcgaXQgYSBzdWl0YWJsZSBjYW5kaWRhdGUgZm9yIHRhcmdldGVkIGZ1enppbmcuIEkgY2FuIGlzb2xhdGUgaXQgbW9yZSBlYXNpbHkgdGhpcyB3YXkuXG5cbk5vdywgbGV0IG1lIGRvdWJsZS1jaGVjayB0aGUgbmVjZXNzYXJ5IGNvbmZpZ3VyYXRpb25zLiBgQ09ORklHX0JQRl9TWVNDQUxMYCBpcyB0aGUgY3J1Y2lhbCBvbmUgZm9yIEJQRiBzeXN0ZW0gY2FsbHMuIEknbGwgbmVlZCB0byBjb25maXJtIHRoYXQgdGhpcyBpcyBpbmRlZWQgc3VmZmljaWVudCB0byB0cmlnZ2VyIHRoZSByZWxldmFudCBjb2RlIHBhdGhzLiBUaW1lIHRvIGZpcmUgdXAgdGhlIHRvb2xzIGFuZCB2ZXJpZnkgZXZlcnl0aGluZy5cblxuXG4iLCJJbnB1dFRva2VucyI6MzE3NiwiT3V0cHV0VG9rZW5zIjozMywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjI2NCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTEwVDExOjM1OjA4LjY2OTEwNjc3NFoiLCJTZXEiOjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1ODYxNjYzMCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJjaGVja19tZW1fYWNjZXNzXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImtlcm5lbC9icGYvdmVyaWZpZXIuY1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJrZXJuZWwvYnBmL3ZlcmlmaWVyLmM9NTc9c3RhdGljIGJvb2wgYnBmX2dsb2JhbF9wZXJjcHVfbWFfc2V0O1xcbi0tXFxua2VybmVsL2JwZi92ZXJpZmllci5jLTEwNC0gKiBjYW4gYmU6IFBUUl9UT19NQVBfVkFMVUUsIFBUUl9UT19DVFgsIFBUUl9UT19TVEFDSywgUFRSX1RPX1NPQ0tFVC4gVGhlc2UgYXJlXFxua2VybmVsL2JwZi92ZXJpZmllci5jOjEwNTogKiBmb3VyIHBvaW50ZXIgdHlwZXMgcmVjb2duaXplZCBieSBjaGVja19tZW1fYWNjZXNzKCkgZnVuY3Rpb24uXFxua2VybmVsL2JwZi92ZXJpZmllci5jLTEwNi0gKlxcbi0tXFxua2VybmVsL2JwZi92ZXJpZmllci5jPTg1MD1zdGF0aWMgYm9vbCBpc19keW5wdHJfcmVnX3ZhbGlkX3VuaW5pdChzdHJ1Y3QgYnBmX3ZlcmlmaWVyX2VudiAqZW52LCBzdHJ1Y3QgYnBmX3JlZ19zdGF0ZSAqcmVnKVxcbi0tXFxua2VybmVsL2JwZi92ZXJpZmllci5jLTg2MC1cXHQgKiBlcnJvciBiZWNhdXNlIHRoaXMganVzdCBtZWFucyB0aGUgc3RhY2sgc3RhdGUgaGFzbid0IGJlZW4gdXBkYXRlZCB5ZXQuXFxua2VybmVsL2JwZi92ZXJpZmllci5jOjg2MTpcXHQgKiBXZSB3aWxsIGRvIGNoZWNrX21lbV9hY2Nlc3MgdG8gY2hlY2sgYW5kIHVwZGF0ZSBzdGFjayBib3VuZHMgbGF0ZXIuXFxua2VybmVsL2JwZi92ZXJpZmllci5jLTg2Mi1cXHQgKi9cXG4tLVxcbmtlcm5lbC9icGYvdmVyaWZpZXIuYz0xMDA2PXN0YXRpYyBib29sIGlzX2l0ZXJfcmVnX3ZhbGlkX3VuaW5pdChzdHJ1Y3QgYnBmX3ZlcmlmaWVyX2VudiAqZW52LFxcbi0tXFxua2VybmVsL2JwZi92ZXJpZmllci5jLTEwMTItXFx0LyogRm9yIC1FUkFOR0UgKGkuZS4gc3BpIG5vdCBmYWxsaW5nIGludG8gYWxsb2NhdGVkIHN0YWNrIHNsb3RzKSwgd2VcXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM6MTAxMzpcXHQgKiB3aWxsIGRvIGNoZWNrX21lbV9hY2Nlc3MgdG8gY2hlY2sgYW5kIHVwZGF0ZSBzdGFjayBib3VuZHMgbGF0ZXIsIHNvXFxua2VybmVsL2JwZi92ZXJpZmllci5jLTEwMTQtXFx0ICogcmV0dXJuIHRydWUgZm9yIHRoYXQgY2FzZS5cXG4tLVxcbmtlcm5lbC9icGYvdmVyaWZpZXIuYz0xMTUxPXN0YXRpYyBib29sIGlzX2lycV9mbGFnX3JlZ192YWxpZF91bmluaXQoc3RydWN0IGJwZl92ZXJpZmllcl9lbnYgKmVudiwgc3RydWN0IGJwZl9yZWdfc3RhdGUgKnJlZylcXG4tLVxcbmtlcm5lbC9icGYvdmVyaWZpZXIuYy0xMTU3LVxcdC8qIEZvciAtRVJBTkdFIChpLmUuIHNwaSBub3QgZmFsbGluZyBpbnRvIGFsbG9jYXRlZCBzdGFjayBzbG90cyksIHdlXFxua2VybmVsL2JwZi92ZXJpZmllci5jOjExNTg6XFx0ICogd2lsbCBkbyBjaGVja19tZW1fYWNjZXNzIHRvIGNoZWNrIGFuZCB1cGRhdGUgc3RhY2sgYm91bmRzIGxhdGVyLCBzb1xcbmtlcm5lbC9icGYvdmVyaWZpZXIuYy0xMTU5LVxcdCAqIHJldHVybiB0cnVlIGZvciB0aGF0IGNhc2UuXFxuLS1cXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM9MzQ3Nj1zdGF0aWMgdm9pZCBzY3J1Yl9zcGVjaWFsX3Nsb3Qoc3RydWN0IGJwZl9mdW5jX3N0YXRlICpzdGF0ZSwgaW50IHNwaSlcXG4tLVxcbmtlcm5lbC9icGYvdmVyaWZpZXIuYy0zNDg4LS8qIGNoZWNrX3N0YWNrX3tyZWFkLHdyaXRlfV9maXhlZF9vZmYgZnVuY3Rpb25zIHRyYWNrIHNwaWxsL2ZpbGwgb2YgcmVnaXN0ZXJzLFxcbmtlcm5lbC9icGYvdmVyaWZpZXIuYzozNDg5OiAqIHN0YWNrIGJvdW5kYXJ5IGFuZCBhbGlnbm1lbnQgYXJlIGNoZWNrZWQgaW4gY2hlY2tfbWVtX2FjY2VzcygpXFxua2VybmVsL2JwZi92ZXJpZmllci5jLTM0OTAtICovXFxuLS1cXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM9NDIwOD1zdGF0aWMgaW50IGNoZWNrX21hcF9hY2Nlc3NfdHlwZShzdHJ1Y3QgYnBmX3ZlcmlmaWVyX2VudiAqZW52LCBzdHJ1Y3QgYnBmX3JlZ19zdGF0ZSAqcmVnLFxcbi0tXFxua2VybmVsL2JwZi92ZXJpZmllci5jLTQyMjktLyogY2hlY2sgcmVhZC93cml0ZSBpbnRvIG1lbW9yeSByZWdpb24gKGUuZy4sIG1hcCB2YWx1ZSwgcmluZ2J1ZiBzYW1wbGUsIGV0YykgKi9cXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM6NDIzMDpzdGF0aWMgaW50IF9fY2hlY2tfbWVtX2FjY2VzcyhzdHJ1Y3QgYnBmX3ZlcmlmaWVyX2VudiAqZW52LCBzdHJ1Y3QgYnBmX3JlZ19zdGF0ZSAqcmVnLCBhcmdub190IGFyZ25vLFxcbmtlcm5lbC9icGYvdmVyaWZpZXIuYy00MjMxLVxcdFxcdFxcdCAgICAgIGludCBvZmYsIGludCBzaXplLCB1MzIgbWVtX3NpemUsXFxuLS1cXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM9NDI2OD1zdGF0aWMgaW50IGNoZWNrX21lbV9yZWdpb25fYWNjZXNzKHN0cnVjdCBicGZfdmVyaWZpZXJfZW52ICplbnYsIHN0cnVjdCBicGZfcmVnX3N0YXRlICpyZWcsIGFyZ25vX3QgYXJnbm8sXFxuLS1cXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtNDI5MS1cXHR9XFxua2VybmVsL2JwZi92ZXJpZmllci5jOjQyOTI6XFx0ZXJyID0gX19jaGVja19tZW1fYWNjZXNzKGVudiwgcmVnLCBhcmdubywgcmVnX3NtaW4ocmVnKSArIG9mZiwgc2l6ZSxcXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtNDI5My1cXHRcXHRcXHRcXHQgbWVtX3NpemUsIHplcm9fc2l6ZV9hbGxvd2VkKTtcXG4tLVxcbmtlcm5lbC9icGYvdmVyaWZpZXIuYy00MzA4LVxcdH1cXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM6NDMwOTpcXHRlcnIgPSBfX2NoZWNrX21lbV9hY2Nlc3MoZW52LCByZWcsIGFyZ25vLCByZWdfdW1heChyZWcpICsgb2ZmLCBzaXplLFxcbmtlcm5lbC9icGYvdmVyaWZpZXIuYy00MzEwLVxcdFxcdFxcdFxcdCBtZW1fc2l6ZSwgemVyb19zaXplX2FsbG93ZWQpO1xcbi0tXFxua2VybmVsL2JwZi92ZXJpZmllci5jPTQ3MTk9c3RhdGljIGludCBjaGVja19wYWNrZXRfYWNjZXNzKHN0cnVjdCBicGZfdmVyaWZpZXJfZW52ICplbnYsIHN0cnVjdCBicGZfcmVnX3N0YXRlICpyZWcsIGFyZ25vX3QgYXJnbm8sIGludCBvZmYsXFxuLS1cXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtNDczMi1cXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM6NDczMzpcXHQvKiBfX2NoZWNrX21lbV9hY2Nlc3MgaGFzIG1hZGUgc3VyZSBcXFwib2ZmICsgc2l6ZSAtIDFcXFwiIGlzIHdpdGhpbiB1MTYuXFxua2VybmVsL2JwZi92ZXJpZmllci5jLTQ3MzQtXFx0ICogcmVnX3VtYXgocmVnKSBjYW4ndCBiZSBiaWdnZXIgdGhhbiBNQVhfUEFDS0VUX09GRiB3aGljaCBpcyAweGZmZmYsXFxua2VybmVsL2JwZi92ZXJpZmllci5jLTQ3MzUtXFx0ICogb3RoZXJ3aXNlIGZpbmRfZ29vZF9wa3RfcG9pbnRlcnMgd291bGQgaGF2ZSByZWZ1c2VkIHRvIHNldCByYW5nZSBpbmZvXFxua2VybmVsL2JwZi92ZXJpZmllci5jOjQ3MzY6XFx0ICogdGhhdCBfX2NoZWNrX21lbV9hY2Nlc3Mgd291bGQgaGF2ZSByZWplY3RlZCB0aGlzIHBrdCBhY2Nlc3MuXFxua2VybmVsL2JwZi92ZXJpZmllci5jLTQ3MzctXFx0ICogVGhlcmVmb3JlLCBcXFwib2ZmICsgcmVnX3VtYXgocmVnKSArIHNpemUgLSAxXFxcIiB3b24ndCBvdmVyZmxvdyB1MzIuXFxuLS1cXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM9NjEyMz1zdGF0aWMgdm9pZCBhZGRfc2NhbGFyX3RvX3JlZyhzdHJ1Y3QgYnBmX3JlZ19zdGF0ZSAqZHN0X3JlZywgczY0IHZhbClcXG4tLVxcbmtlcm5lbC9icGYvdmVyaWZpZXIuYy02MTQ1LSAqL1xcbmtlcm5lbC9icGYvdmVyaWZpZXIuYzo2MTQ2OnN0YXRpYyBpbnQgY2hlY2tfbWVtX2FjY2VzcyhzdHJ1Y3QgYnBmX3ZlcmlmaWVyX2VudiAqZW52LCBpbnQgaW5zbl9pZHgsIHN0cnVjdCBicGZfcmVnX3N0YXRlICpyZWcsIGFyZ25vX3QgYXJnbm8sXFxua2VybmVsL2JwZi92ZXJpZmllci5jLTYxNDctXFx0XFx0XFx0ICAgIGludCBvZmYsIGludCBicGZfc2l6ZSwgZW51bSBicGZfYWNjZXNzX3R5cGUgdCxcXG4tLVxcbmtlcm5lbC9icGYvdmVyaWZpZXIuYz02NDIxPXN0YXRpYyBpbnQgY2hlY2tfbG9hZF9tZW0oc3RydWN0IGJwZl92ZXJpZmllcl9lbnYgKmVudiwgc3RydWN0IGJwZl9pbnNuICppbnNuLFxcbi0tXFxua2VybmVsL2JwZi92ZXJpZmllci5jLTY0NTMtXFx0ICovXFxua2VybmVsL2JwZi92ZXJpZmllci5jOjY0NTQ6XFx0ZXJyID0gY2hlY2tfbWVtX2FjY2VzcyhlbnYsIGVudi1cXHUwMDNlaW5zbl9pZHgsIHJlZ3MgKyBpbnNuLVxcdTAwM2VzcmNfcmVnLCBhcmdub19mcm9tX3JlZyhpbnNuLVxcdTAwM2VzcmNfcmVnKSwgaW5zbi1cXHUwMDNlb2ZmLFxcbmtlcm5lbC9icGYvdmVyaWZpZXIuYy02NDU1LVxcdFxcdFxcdCAgICAgICBCUEZfU0laRShpbnNuLVxcdTAwM2Vjb2RlKSwgQlBGX1JFQUQsIGluc24tXFx1MDAzZWRzdF9yZWcsXFxuLS1cXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM9NjQ2ND1zdGF0aWMgaW50IGNoZWNrX3N0b3JlX3JlZyhzdHJ1Y3QgYnBmX3ZlcmlmaWVyX2VudiAqZW52LCBzdHJ1Y3QgYnBmX2luc24gKmluc24sXFxuLS1cXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtNjQ5My1cXHQvKiBDaGVjayBpZiAoZHN0X3JlZyArIG9mZikgaXMgd3JpdGVhYmxlLiAqL1xcbmtlcm5lbC9icGYvdmVyaWZpZXIuYzo2NDk0OlxcdGVyciA9IGNoZWNrX21lbV9hY2Nlc3MoZW52LCBlbnYtXFx1MDAzZWluc25faWR4LCByZWdzICsgaW5zbi1cXHUwMDNlZHN0X3JlZywgYXJnbm9fZnJvbV9yZWcoaW5zbi1cXHUwMDNlZHN0X3JlZyksIGluc24tXFx1MDAzZW9mZixcXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtNjQ5NS1cXHRcXHRcXHQgICAgICAgQlBGX1NJWkUoaW5zbi1cXHUwMDNlY29kZSksIEJQRl9XUklURSwgaW5zbi1cXHUwMDNlc3JjX3JlZyxcXG4tLVxcbmtlcm5lbC9icGYvdmVyaWZpZXIuYz02NTAyPXN0YXRpYyBpbnQgY2hlY2tfYXRvbWljX3JtdyhzdHJ1Y3QgYnBmX3ZlcmlmaWVyX2VudiAqZW52LFxcbi0tXFxua2VybmVsL2JwZi92ZXJpZmllci5jLTY1NzEtXFx0ICovXFxua2VybmVsL2JwZi92ZXJpZmllci5jOjY1NzI6XFx0ZXJyID0gY2hlY2tfbWVtX2FjY2VzcyhlbnYsIGVudi1cXHUwMDNlaW5zbl9pZHgsIGRzdF9yZWcsIGFyZ25vX2Zyb21fcmVnKGluc24tXFx1MDAzZWRzdF9yZWcpLCBpbnNuLVxcdTAwM2VvZmYsXFxua2VybmVsL2JwZi92ZXJpZmllci5jLTY1NzMtXFx0XFx0XFx0ICAgICAgIEJQRl9TSVpFKGluc24tXFx1MDAzZWNvZGUpLCBCUEZfUkVBRCwgLTEsIHRydWUsIGZhbHNlKTtcXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtNjU3NC1cXHRpZiAoIWVyciBcXHUwMDI2XFx1MDAyNiBsb2FkX3JlZyBcXHUwMDNlPSAwKVxcbmtlcm5lbC9icGYvdmVyaWZpZXIuYzo2NTc1OlxcdFxcdGVyciA9IGNoZWNrX21lbV9hY2Nlc3MoZW52LCBlbnYtXFx1MDAzZWluc25faWR4LCBkc3RfcmVnLCBhcmdub19mcm9tX3JlZyhpbnNuLVxcdTAwM2Vkc3RfcmVnKSxcXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtNjU3Ni1cXHRcXHRcXHRcXHQgICAgICAgaW5zbi1cXHUwMDNlb2ZmLCBCUEZfU0laRShpbnNuLVxcdTAwM2Vjb2RlKSxcXG4tLVxcbmtlcm5lbC9icGYvdmVyaWZpZXIuYy02NTg2LVxcdC8qIENoZWNrIHdoZXRoZXIgd2UgY2FuIHdyaXRlIGludG8gdGhlIHNhbWUgbWVtb3J5LiAqL1xcbmtlcm5lbC9icGYvdmVyaWZpZXIuYzo2NTg3OlxcdGVyciA9IGNoZWNrX21lbV9hY2Nlc3MoZW52LCBlbnYtXFx1MDAzZWluc25faWR4LCBkc3RfcmVnLCBhcmdub19mcm9tX3JlZyhpbnNuLVxcdTAwM2Vkc3RfcmVnKSwgaW5zbi1cXHUwMDNlb2ZmLFxcbmtlcm5lbC9icGYvdmVyaWZpZXIuYy02NTg4LVxcdFxcdFxcdCAgICAgICBCUEZfU0laRShpbnNuLVxcdTAwM2Vjb2RlKSwgQlBGX1dSSVRFLCAtMSwgdHJ1ZSwgZmFsc2UpO1xcbi0tXFxua2VybmVsL2JwZi92ZXJpZmllci5jPTczMTg9c3RhdGljIGludCBwcm9jZXNzX2R5bnB0cl9mdW5jKHN0cnVjdCBicGZfdmVyaWZpZXJfZW52ICplbnYsIHN0cnVjdCBicGZfcmVnX3N0YXRlICpyZWcsXFxuLS1cXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtNzM1NC1cXHRcXHRmb3IgKGkgPSAwOyBpIFxcdTAwM2MgQlBGX0RZTlBUUl9TSVpFOyBpICs9IDgpIHtcXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM6NzM1NTpcXHRcXHRcXHRlcnIgPSBjaGVja19tZW1fYWNjZXNzKGVudiwgaW5zbl9pZHgsIHJlZywgYXJnbm8sXFxua2VybmVsL2JwZi92ZXJpZmllci5jLTczNTYtXFx0XFx0XFx0XFx0XFx0ICAgICAgIGksIEJQRl9EVywgQlBGX1dSSVRFLCAtMSwgZmFsc2UsIGZhbHNlKTtcXG4tLVxcbmtlcm5lbC9icGYvdmVyaWZpZXIuYz03NDM4PXN0YXRpYyBpbnQgcHJvY2Vzc19pdGVyX2FyZyhzdHJ1Y3QgYnBmX3ZlcmlmaWVyX2VudiAqZW52LCBzdHJ1Y3QgYnBmX3JlZ19zdGF0ZSAqcmVnLCBhcmdub190IGFyZ25vLCBpbnQgaW5zbl9pZHgsXFxuLS1cXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtNzQ3NS1cXHRcXHRmb3IgKGkgPSAwOyBpIFxcdTAwM2MgbnJfc2xvdHMgKiA4OyBpICs9IEJQRl9SRUdfU0laRSkge1xcbmtlcm5lbC9icGYvdmVyaWZpZXIuYzo3NDc2OlxcdFxcdFxcdGVyciA9IGNoZWNrX21lbV9hY2Nlc3MoZW52LCBpbnNuX2lkeCwgcmVnLCBhcmdubyxcXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtNzQ3Ny1cXHRcXHRcXHRcXHRcXHQgICAgICAgaSwgQlBGX0RXLCBCUEZfV1JJVEUsIC0xLCBmYWxzZSwgZmFsc2UpO1xcbi0tXFxua2VybmVsL2JwZi92ZXJpZmllci5jPTEwMjQ1PXN0YXRpYyBpbnQgY2hlY2tfaGVscGVyX2NhbGwoc3RydWN0IGJwZl92ZXJpZmllcl9lbnYgKmVudiwgc3RydWN0IGJwZl9pbnNuICppbnNuLFxcbi0tXFxua2VybmVsL2JwZi92ZXJpZmllci5jLTEwMzMxLVxcdGZvciAoaSA9IDA7IGkgXFx1MDAzYyBtZXRhLmFjY2Vzc19zaXplOyBpKyspIHtcXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM6MTAzMzI6XFx0XFx0ZXJyID0gY2hlY2tfbWVtX2FjY2VzcyhlbnYsIGluc25faWR4LCByZWdzICsgbWV0YS5yZWdubywgYXJnbm9fZnJvbV9yZWcobWV0YS5yZWdubyksIGksIEJQRl9CLFxcbmtlcm5lbC9icGYvdmVyaWZpZXIuYy0xMDMzMy1cXHRcXHRcXHRcXHQgICAgICAgQlBGX1dSSVRFLCAtMSwgZmFsc2UsIGZhbHNlKTtcXG4tLVxcbmtlcm5lbC9icGYvdmVyaWZpZXIuYy0xMDU3OS1cXHRcXHRcXHRcXHQgKiBpdCB3aWxsIGNvbmZ1c2UgdGhlIGNoZWNrIG9mIFBUUl9UT19CVEZfSUQgaW5cXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM6MTA1ODA6XFx0XFx0XFx0XFx0ICogY2hlY2tfbWVtX2FjY2VzcygpLlxcbmtlcm5lbC9icGYvdmVyaWZpZXIuYy0xMDU4MS1cXHRcXHRcXHRcXHQgKi9cXG4tLVxcbmtlcm5lbC9icGYvdmVyaWZpZXIuYz0xMTUwOD1zdGF0aWMgaW50IHByb2Nlc3NfaXJxX2ZsYWcoc3RydWN0IGJwZl92ZXJpZmllcl9lbnYgKmVudiwgc3RydWN0IGJwZl9yZWdfc3RhdGUgKnJlZywgYXJnbm9fdCBhcmdubyxcXG4tLVxcbmtlcm5lbC9icGYvdmVyaWZpZXIuYy0xMTUzNS1cXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM6MTE1MzY6XFx0XFx0ZXJyID0gY2hlY2tfbWVtX2FjY2VzcyhlbnYsIGVudi1cXHUwMDNlaW5zbl9pZHgsIHJlZywgYXJnbm8sIDAsIEJQRl9EVyxcXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtMTE1MzctXFx0XFx0XFx0XFx0ICAgICAgIEJQRl9XUklURSwgLTEsIGZhbHNlLCBmYWxzZSk7XFxuLS1cXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM9MTczMTE9c3RhdGljIGludCBkb19jaGVja19pbnNuKHN0cnVjdCBicGZfdmVyaWZpZXJfZW52ICplbnYsIGJvb2wgKmRvX3ByaW50X3N0YXRlKVxcbi0tXFxua2VybmVsL2JwZi92ZXJpZmllci5jLTE3MzQ4LVxcbmtlcm5lbC9icGYvdmVyaWZpZXIuYzoxNzM0OTpcXHRcXHRlcnIgPSBjaGVja19tZW1fYWNjZXNzKGVudiwgZW52LVxcdTAwM2VpbnNuX2lkeCwgY3VyX3JlZ3MoZW52KSArIGluc24tXFx1MDAzZWRzdF9yZWcsIGFyZ25vX2Zyb21fcmVnKGluc24tXFx1MDAzZWRzdF9yZWcpLFxcbmtlcm5lbC9icGYvdmVyaWZpZXIuYy0xNzM1MC1cXHRcXHRcXHRcXHQgICAgICAgaW5zbi1cXHUwMDNlb2ZmLCBCUEZfU0laRShpbnNuLVxcdTAwM2Vjb2RlKSxcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTBUMTE6MzU6MDguNzI3NzI5MzE0WiIsIlNlcSI6NSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzA4NzQ1NzA5NywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgbGV0J3MgYnJlYWsgdGhpcyBkb3duLlxuXG4qKkFuYWx5emluZyB0aGUgTWVtb3J5IEFjY2VzcyBWZXJpZmljYXRpb24qKlxuXG5SaWdodCwgc28gSSdtIGZvY3VzaW5nIG9uIHRoZSBgY2hlY2tfbWVtX2FjY2Vzc2AgZnVuY3Rpb247IHRoYXQncyBjbGVhcmx5IGEgcGl2b3RhbCBlbGVtZW50IGluIHRoZSB2ZXJpZmljYXRpb24gcHJvY2Vzcy4gSSBuZWVkIHRvIGJlIHN1cmUgSSd2ZSBhY2NvdW50ZWQgZm9yIGFueSBvdGhlciBjb25maWd1cmF0aW9ucyB0aGF0IG1pZ2h0IGludGVyYWN0IHdpdGggaXQuXG5cbkkgc2VlIHRoYXQgdGhlIGB2ZXJpZmllcl9zY2FsYXJfaWRzLmNgIHRlc3QgaGFzIGJlZW4gYWRkZWQuIE5vdywgdGhlIG5leHQgc3RlcCBpcyB0byBleGFtaW5lIHRoZSBjb250ZW50cyBvZiBgdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Byb2dzL3ZlcmlmaWVyX3NjYWxhcl9pZHMuY2AuIFRoaXMgZXhhbWluYXRpb24gaXMga2V5IGJlY2F1c2UgaXQgbWlnaHQgcmV2ZWFsIGFkZGl0aW9uYWwsIHNwZWNpZmljIGNvbmZpZ3VyYXRpb25zIG9yIGludGVyYWN0aW9ucyB0aGF0IEkgbmVlZCB0byBjb25zaWRlciwgZXNwZWNpYWxseSBjb25jZXJuaW5nIHNjYWxhciBpZGVudGlmaWVyIGhhbmRsaW5nIHdpdGhpbiBtZW1vcnkgYWNjZXNzIHZlcmlmaWNhdGlvbi4gRXNzZW50aWFsbHksIEkgbmVlZCB0byB1bmRlcnN0YW5kIGhvdyB0aGUgdGVzdCBleGVyY2lzZXMgdGhlIHZlcmlmaWVyIGluIHRoaXMgY29udGV4dC5cblxuXG4iLCJJbnB1dFRva2VucyI6NjkzNSwiT3V0cHV0VG9rZW5zIjo0MywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjgyLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTEwVDExOjM1OjExLjgxNTE4ODc0MVoiLCJTZXEiOjYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo2MjIwMzcyOSwiRXJyb3IiOiJubyBtYXRjaGVzIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiQ09ORklHX1wiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJ0b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MvdmVyaWZpZXJfc2NhbGFyX2lkcy5jXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcImVycm9yXCI6IFwibm8gbWF0Y2hlc1wiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xMFQxMTozNToxMS44Nzc0MDY2NFoiLCJTZXEiOjcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjMzMzE1Nzg0NzUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlLCBhbmQgd3JpdHRlbiBhcyBpZiB0aGV5IHdlcmUgbXkgb3duOlxuXG4qKkludmVzdGlnYXRpbmcgdGhlIEJQRiBWZXJpZmllciBQYXRjaCoqXG5cbkFscmlnaHQsIHRoZSBwYXRjaCBpcyBwaW5wb2ludGVkIHdpdGhpbiBga2VybmVsL2JwZi92ZXJpZmllci5jYC4gTXkgaW1tZWRpYXRlIHRob3VnaHQgaXMsIFwiTGV0J3MgZGlnIGluIGFuZCBtYWtlIHN1cmUgdGhpcyBpcyB0aGUgcmlnaHQgYXJlYS5cIiBJ4oCZbGwgZmlyc3QgY2hlY2sgaWYgdGhlcmUgYXJlIGFueSBhcmNoaXRlY3R1cmUtc3BlY2lmaWMgb3IgY29uZmlndXJhdGlvbi1kZXBlbmRlbnQgZ3VhcmRzIGFyb3VuZCB0aGUgY29kZSBjaGFuZ2VzIHdpdGhpbiB0aGF0IGZpbGUuIEknbSBsb29raW5nIGZvciBjb25kaXRpb25hbCBjb21waWxhdGlvbiBiYXNlZCBvbiBrZXJuZWwgY29uZmlncyBsaWtlIGBDT05GSUdfQlBGX0pJVGAsIGBDT05GSUdfQlBGX0VWRU5UU2AsIG9yIGV2ZW4gbW9yZSBncmFudWxhciBvcHRpb25zIHRoYXQgbWlnaHQgYWZmZWN0IGhvdyB0aGUgdmVyaWZpZXIgb3BlcmF0ZXMuIFVuZGVyc3RhbmRpbmcgdGhvc2UgZGVwZW5kZW5jaWVzIGlzIGNydWNpYWwgYmVmb3JlIEkgZXZlbiBzdGFydCByZXZpZXdpbmcgdGhlIGRpZmZzIHRoZW1zZWx2ZXMuIEkgbmVlZCB0byBrbm93IHRoZSBleGFjdCBjb250ZXh0IGluIHdoaWNoIHRoaXMgY29kZSB3aWxsIGJlIHJ1bm5pbmcgYW5kIHdoYXQga2VybmVsIGZlYXR1cmVzIGFyZSBlbmFibGVkIHdoZW4gdGhpcyBwYXRjaCBpcyBlZmZlY3RpdmUuIEl0IHdvdWxkIGJlIGEgd2FzdGUgb2YgdGltZSB0byBsb29rIGF0IHRoZSBwYXRjaCBpZiBhIGNvbmZpZyBwcmV2ZW50ZWQgaXQgZnJvbSBydW5uaW5nLlxuXG5cbiIsIklucHV0VG9rZW5zIjo3MjQyLCJPdXRwdXRUb2tlbnMiOjMwLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MzYsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMTBUMTE6MzU6MTUuMjA4OTg3MzA1WiIsIlNlcSI6OCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjk2NzAwNDMzLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIkNPTkZJR19cIixcbiAgXCJQYXRoUHJlZml4XCI6IFwia2VybmVsL2JwZi92ZXJpZmllci5jXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImtlcm5lbC9icGYvdmVyaWZpZXIuYz0yNzQyPWludCBicGZfYWRkX2tmdW5jX2NhbGwoc3RydWN0IGJwZl92ZXJpZmllcl9lbnYgKmVudiwgdTMyIGZ1bmNfaWQsIHUxNiBvZmZzZXQpXFxuLS1cXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtMjc1Ny1cXHRcXHRpZiAoIWJ0Zl92bWxpbnV4KSB7XFxua2VybmVsL2JwZi92ZXJpZmllci5jOjI3NTg6XFx0XFx0XFx0dmVyYm9zZShlbnYsIFxcXCJjYWxsaW5nIGtlcm5lbCBmdW5jdGlvbiBpcyBub3Qgc3VwcG9ydGVkIHdpdGhvdXQgQ09ORklHX0RFQlVHX0lORk9fQlRGXFxcXG5cXFwiKTtcXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtMjc1OS1cXHRcXHRcXHRyZXR1cm4gLUVOT1RTVVBQO1xcbi0tXFxua2VybmVsL2JwZi92ZXJpZmllci5jPTQ0NTQ9QlRGX1NFVF9TVEFSVChyY3VfcHJvdGVjdGVkX3R5cGVzKVxcbmtlcm5lbC9icGYvdmVyaWZpZXIuYzo0NDU1OiNpZmRlZiBDT05GSUdfTkVUXFxua2VybmVsL2JwZi92ZXJpZmllci5jLTQ0NTYtQlRGX0lEKHN0cnVjdCwgcHJvZ190ZXN0X3JlZl9rZnVuYylcXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtNDQ1Ny0jZW5kaWZcXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM6NDQ1ODojaWZkZWYgQ09ORklHX0NHUk9VUFNcXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtNDQ1OS1CVEZfSUQoc3RydWN0LCBjZ3JvdXApXFxua2VybmVsL2JwZi92ZXJpZmllci5jLTQ0NjAtI2VuZGlmXFxua2VybmVsL2JwZi92ZXJpZmllci5jOjQ0NjE6I2lmZGVmIENPTkZJR19CUEZfSklUXFxua2VybmVsL2JwZi92ZXJpZmllci5jLTQ0NjItQlRGX0lEKHN0cnVjdCwgYnBmX2NwdW1hc2spXFxuLS1cXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM9NDQ2ND1CVEZfSUQoc3RydWN0LCB0YXNrX3N0cnVjdClcXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM6NDQ2NTojaWZkZWYgQ09ORklHX0NSWVBUT1xcbmtlcm5lbC9icGYvdmVyaWZpZXIuYy00NDY2LUJURl9JRChzdHJ1Y3QsIGJwZl9jcnlwdG9fY3R4KVxcbi0tXFxua2VybmVsL2JwZi92ZXJpZmllci5jPTQ5Mzg9c3RhdGljIHUzMiAqcmVnMmJ0Zl9pZHNbX19CUEZfUkVHX1RZUEVfTUFYXSA9IHtcXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM6NDkzOTojaWZkZWYgQ09ORklHX05FVFxcbmtlcm5lbC9icGYvdmVyaWZpZXIuYy00OTQwLVxcdFtQVFJfVE9fU09DS0VUXSA9IFxcdTAwMjZidGZfc29ja19pZHNbQlRGX1NPQ0tfVFlQRV9TT0NLXSxcXG4tLVxcbmtlcm5lbC9icGYvdmVyaWZpZXIuYz00OTgxPXN0YXRpYyBpbnQgY2hlY2tfcGt0X3B0cl9hbGlnbm1lbnQoc3RydWN0IGJwZl92ZXJpZmllcl9lbnYgKmVudixcXG4tLVxcbmtlcm5lbC9icGYvdmVyaWZpZXIuYy00OTkyLVxcdC8qIEZvciBwbGF0Zm9ybXMgdGhhdCBkbyBub3QgaGF2ZSBhIEtjb25maWcgZW5hYmxpbmdcXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM6NDk5MzpcXHQgKiBDT05GSUdfSEFWRV9FRkZJQ0lFTlRfVU5BTElHTkVEX0FDQ0VTUyB0aGUgdmFsdWUgb2ZcXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtNDk5NC1cXHQgKiBORVRfSVBfQUxJR04gaXMgdW5pdmVyc2FsbHkgc2V0IHRvICcyJy4gIEFuZCBvbiBwbGF0Zm9ybXNcXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM6NDk5NTpcXHQgKiB0aGF0IGRvIHNldCBDT05GSUdfSEFWRV9FRkZJQ0lFTlRfVU5BTElHTkVEX0FDQ0VTUywgd2UgZ2V0XFxua2VybmVsL2JwZi92ZXJpZmllci5jLTQ5OTYtXFx0ICogdG8gdGhpcyBjb2RlIG9ubHkgaW4gc3RyaWN0IG1vZGUgd2hlcmUgd2Ugd2FudCB0byBlbXVsYXRlXFxuLS1cXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM9NTE0Nz1zdGF0aWMgaW50IGNoZWNrX21heF9zdGFja19kZXB0aF9zdWJwcm9nKHN0cnVjdCBicGZfdmVyaWZpZXJfZW52ICplbnYsIGludCBpZHgsXFxuLS1cXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtNTE5MS1cXHRzdWJwcm9nX2RlcHRoID0gcm91bmRfdXBfc3RhY2tfZGVwdGgoZW52LCBzdWJwcm9nW2lkeF0uc3RhY2tfZGVwdGgpO1xcbmtlcm5lbC9icGYvdmVyaWZpZXIuYzo1MTkyOlxcdGlmIChJU19FTkFCTEVEKENPTkZJR19YODZfNjQpIFxcdTAwMjZcXHUwMDI2IHN1YnByb2dbaWR4XS5zdGFja19hcmdfY250KSB7XFxua2VybmVsL2JwZi92ZXJpZmllci5jLTUxOTMtXFx0XFx0LyogeDg2LTY0IHVzZXMgUjkgZm9yIGJvdGggcHJpdmF0ZSBzdGFjayBmcmFtZSBwb2ludGVyIGFuZCBhcmc2LiAqL1xcbi0tXFxua2VybmVsL2JwZi92ZXJpZmllci5jPTU3MDE9QlRGX1RZUEVfU0FGRV9SQ1VfT1JfTlVMTChzdHJ1Y3QgbW1fc3RydWN0KSB7XFxua2VybmVsL2JwZi92ZXJpZmllci5jLTU3MDItXFx0c3RydWN0IGZpbGUgX19yY3UgKmV4ZV9maWxlO1xcbmtlcm5lbC9icGYvdmVyaWZpZXIuYzo1NzAzOiNpZmRlZiBDT05GSUdfTUVNQ0dcXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtNTcwNC1cXHRzdHJ1Y3QgdGFza19zdHJ1Y3QgX19yY3UgKm93bmVyO1xcbi0tXFxua2VybmVsL2JwZi92ZXJpZmllci5jPTU5NjE9c3RhdGljIGludCBjaGVja19wdHJfdG9fbWFwX2FjY2VzcyhzdHJ1Y3QgYnBmX3ZlcmlmaWVyX2VudiAqZW52LFxcbi0tXFxua2VybmVsL2JwZi92ZXJpZmllci5jLTU5NzUtXFx0aWYgKCFidGZfdm1saW51eCkge1xcbmtlcm5lbC9icGYvdmVyaWZpZXIuYzo1OTc2OlxcdFxcdHZlcmJvc2UoZW52LCBcXFwibWFwX3B0ciBhY2Nlc3Mgbm90IHN1cHBvcnRlZCB3aXRob3V0IENPTkZJR19ERUJVR19JTkZPX0JURlxcXFxuXFxcIik7XFxua2VybmVsL2JwZi92ZXJpZmllci5jLTU5NzctXFx0XFx0cmV0dXJuIC1FTk9UU1VQUDtcXG4tLVxcbmtlcm5lbC9icGYvdmVyaWZpZXIuYz03MjI1PXN0YXRpYyBpbnQgcHJvY2Vzc190aW1lcl9mdW5jKHN0cnVjdCBicGZfdmVyaWZpZXJfZW52ICplbnYsIHN0cnVjdCBicGZfcmVnX3N0YXRlICpyZWcsIGFyZ25vX3QgYXJnbm8sXFxuLS1cXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtNzIyNy17XFxua2VybmVsL2JwZi92ZXJpZmllci5jOjcyMjg6XFx0aWYgKElTX0VOQUJMRUQoQ09ORklHX1BSRUVNUFRfUlQpKSB7XFxua2VybmVsL2JwZi92ZXJpZmllci5jLTcyMjktXFx0XFx0dmVyYm9zZShlbnYsIFxcXCJicGZfdGltZXIgY2Fubm90IGJlIHVzZWQgZm9yIFBSRUVNUFRfUlQuXFxcXG5cXFwiKTtcXG4tLVxcbmtlcm5lbC9icGYvdmVyaWZpZXIuYz03ODA0PXN0YXRpYyBjb25zdCBzdHJ1Y3QgYnBmX3JlZ190eXBlcyBzb2NrX3R5cGVzID0ge1xcbi0tXFxua2VybmVsL2JwZi92ZXJpZmllci5jLTc4MTItXFxua2VybmVsL2JwZi92ZXJpZmllci5jOjc4MTM6I2lmZGVmIENPTkZJR19ORVRcXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtNzgxNC1zdGF0aWMgY29uc3Qgc3RydWN0IGJwZl9yZWdfdHlwZXMgYnRmX2lkX3NvY2tfY29tbW9uX3R5cGVzID0ge1xcbi0tXFxua2VybmVsL2JwZi92ZXJpZmllci5jPTc4ODc9c3RhdGljIGNvbnN0IHN0cnVjdCBicGZfcmVnX3R5cGVzICpjb21wYXRpYmxlX3JlZ190eXBlc1tfX0JQRl9BUkdfVFlQRV9NQVhdID0ge1xcbi0tXFxua2VybmVsL2JwZi92ZXJpZmllci5jLTc4OTUtXFx0W0FSR19QVFJfVE9fU09DS19DT01NT05dXFx0PSBcXHUwMDI2c29ja190eXBlcyxcXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM6Nzg5NjojaWZkZWYgQ09ORklHX05FVFxcbmtlcm5lbC9icGYvdmVyaWZpZXIuYy03ODk3LVxcdFtBUkdfUFRSX1RPX0JURl9JRF9TT0NLX0NPTU1PTl1cXHQ9IFxcdTAwMjZidGZfaWRfc29ja19jb21tb25fdHlwZXMsXFxuLS1cXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM9MTAyNDU9c3RhdGljIGludCBjaGVja19oZWxwZXJfY2FsbChzdHJ1Y3QgYnBmX3ZlcmlmaWVyX2VudiAqZW52LCBzdHJ1Y3QgYnBmX2luc24gKmluc24sXFxuLS1cXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtMTA2ODUtXFxua2VybmVsL2JwZi92ZXJpZmllci5jOjEwNjg2OiNpZmRlZiBDT05GSUdfUEVSRl9FVkVOVFNcXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtMTA2ODctXFx0XFx0ZXJyID0gZ2V0X2NhbGxjaGFpbl9idWZmZXJzKHN5c2N0bF9wZXJmX2V2ZW50X21heF9zdGFjayk7XFxuLS1cXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtMTA2OTAtXFx0XFx0ZXJyID0gLUVOT1RTVVBQO1xcbmtlcm5lbC9icGYvdmVyaWZpZXIuYzoxMDY5MTpcXHRcXHRlcnJfc3RyID0gXFxcImZ1bmMgJXMjJWQgbm90IHN1cHBvcnRlZCB3aXRob3V0IENPTkZJR19QRVJGX0VWRU5UU1xcXFxuXFxcIjtcXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtMTA2OTItI2VuZGlmXFxuLS1cXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM9MTExODE9QlRGX0lEKGZ1bmMsIGJwZl9yYnRyZWVfcmlnaHQpXFxua2VybmVsL2JwZi92ZXJpZmllci5jOjExMTgyOiNpZmRlZiBDT05GSUdfTkVUXFxua2VybmVsL2JwZi92ZXJpZmllci5jLTExMTgzLUJURl9JRChmdW5jLCBicGZfZHlucHRyX2Zyb21fc2tiKVxcbi0tXFxua2VybmVsL2JwZi92ZXJpZmllci5jPTExMjAzPUJURl9JRChmdW5jLCBicGZfcHJlZW1wdF9lbmFibGUpXFxua2VybmVsL2JwZi92ZXJpZmllci5jOjExMjA0OiNpZmRlZiBDT05GSUdfQ0dST1VQU1xcbmtlcm5lbC9icGYvdmVyaWZpZXIuYy0xMTIwNS1CVEZfSUQoZnVuYywgYnBmX2l0ZXJfY3NzX3Rhc2tfbmV3KVxcbi0tXFxua2VybmVsL2JwZi92ZXJpZmllci5jPTExMjA3PUJURl9JRF9VTlVTRURcXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtMTEyMDgtI2VuZGlmXFxua2VybmVsL2JwZi92ZXJpZmllci5jOjExMjA5OiNpZmRlZiBDT05GSUdfQlBGX0VWRU5UU1xcbmtlcm5lbC9icGYvdmVyaWZpZXIuYy0xMTIxMC1CVEZfSUQoZnVuYywgYnBmX3Nlc3Npb25fY29va2llKVxcbi0tXFxua2VybmVsL2JwZi92ZXJpZmllci5jPTExMjE5PUJURl9JRChmdW5jLCBicGZfaXRlcl9udW1fZGVzdHJveSlcXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM6MTEyMjA6I2lmZGVmIENPTkZJR19CUEZfTFNNXFxua2VybmVsL2JwZi92ZXJpZmllci5jLTExMjIxLUJURl9JRChmdW5jLCBicGZfc2V0X2RlbnRyeV94YXR0cilcXG4tLVxcbmtlcm5lbC9icGYvdmVyaWZpZXIuYz0xMTIzOD1CVEZfSUQoZnVuYywgYnBmX2FyZW5hX3Jlc2VydmVfcGFnZXMpXFxua2VybmVsL2JwZi92ZXJpZmllci5jOjExMjM5OiNpZmRlZiBDT05GSUdfQlBGX0VWRU5UU1xcbmtlcm5lbC9icGYvdmVyaWZpZXIuYy0xMTI0MC1CVEZfSUQoZnVuYywgYnBmX3Nlc3Npb25faXNfcmV0dXJuKVxcbi0tXFxua2VybmVsL2JwZi92ZXJpZmllci5jPTE0NTM2PXN0YXRpYyB2b2lkIHNjYWxhcl9ieXRlX3N3YXAoc3RydWN0IGJwZl9yZWdfc3RhdGUgKmRzdF9yZWcsIHN0cnVjdCBicGZfaW5zbiAqaW5zbilcXG4tLVxcbmtlcm5lbC9icGYvdmVyaWZpZXIuYy0xNDU1MS1cXHRib29sIGlzX2JpZ19lbmRpYW47XFxua2VybmVsL2JwZi92ZXJpZmllci5jOjE0NTUyOiNpZmRlZiBDT05GSUdfQ1BVX0JJR19FTkRJQU5cXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtMTQ1NTMtXFx0aXNfYmlnX2VuZGlhbiA9IHRydWU7XFxuLS1cXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM9MTY3MzA9Ym9vbCBicGZfdmVyaWZpZXJfaW5saW5lc19oZWxwZXJfY2FsbChzdHJ1Y3QgYnBmX3ZlcmlmaWVyX2VudiAqZW52LCBzMzIgaW1tKVxcbi0tXFxua2VybmVsL2JwZi92ZXJpZmllci5jLTE2NzMyLVxcdHN3aXRjaCAoaW1tKSB7XFxua2VybmVsL2JwZi92ZXJpZmllci5jOjE2NzMzOiNpZmRlZiBDT05GSUdfWDg2XzY0XFxua2VybmVsL2JwZi92ZXJpZmllci5jLTE2NzM0LVxcdGNhc2UgQlBGX0ZVTkNfZ2V0X3NtcF9wcm9jZXNzb3JfaWQ6XFxua2VybmVsL2JwZi92ZXJpZmllci5jOjE2NzM1OiNpZmRlZiBDT05GSUdfU01QXFxua2VybmVsL2JwZi92ZXJpZmllci5jLTE2NzM2LVxcdGNhc2UgQlBGX0ZVTkNfZ2V0X2N1cnJlbnRfdGFza19idGY6XFxuLS1cXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM9MTc3NjQ9c3RhdGljIGludCBjaGVja19wc2V1ZG9fYnRmX2lkKHN0cnVjdCBicGZfdmVyaWZpZXJfZW52ICplbnYsXFxuLS1cXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtMTc3ODAtXFx0XFx0aWYgKCFidGZfdm1saW51eCkge1xcbmtlcm5lbC9icGYvdmVyaWZpZXIuYzoxNzc4MTpcXHRcXHRcXHR2ZXJib3NlKGVudiwgXFxcImtlcm5lbCBpcyBtaXNzaW5nIEJURiwgbWFrZSBzdXJlIENPTkZJR19ERUJVR19JTkZPX0JURj15IGlzIHNwZWNpZmllZCBpbiBLY29uZmlnLlxcXFxuXFxcIik7XFxua2VybmVsL2JwZi92ZXJpZmllci5jLTE3NzgyLVxcdFxcdFxcdHJldHVybiAtRUlOVkFMO1xcbi0tXFxua2VybmVsL2JwZi92ZXJpZmllci5jPTE4NzUyPXN0YXRpYyBpbnQgY2hlY2tfc3RydWN0X29wc19idGZfaWQoc3RydWN0IGJwZl92ZXJpZmllcl9lbnYgKmVudilcXG4tLVxcbmtlcm5lbC9icGYvdmVyaWZpZXIuYy0xODg2Mi1cXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM6MTg4NjM6I2lmZGVmIENPTkZJR19GVU5DVElPTl9FUlJPUl9JTkpFQ1RJT05cXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtMTg4NjQtXFxuLS1cXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM9MTg4NzI9QlRGX0lEKGZ1bmMsIF9fZmlsZW1hcF9hZGRfZm9saW8pXFxua2VybmVsL2JwZi92ZXJpZmllci5jOjE4ODczOiNpZmRlZiBDT05GSUdfRkFJTF9QQUdFX0FMTE9DXFxua2VybmVsL2JwZi92ZXJpZmllci5jLTE4ODc0LUJURl9JRChmdW5jLCBzaG91bGRfZmFpbF9hbGxvY19wYWdlKVxcbmtlcm5lbC9icGYvdmVyaWZpZXIuYy0xODg3NS0jZW5kaWZcXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM6MTg4NzY6I2lmZGVmIENPTkZJR19GQUlMU0xBQlxcbmtlcm5lbC9icGYvdmVyaWZpZXIuYy0xODg3Ny1CVEZfSUQoZnVuYywgc2hvdWxkX2ZhaWxzbGFiKVxcbi0tXFxua2VybmVsL2JwZi92ZXJpZmllci5jPTE4OTQ0PXN0YXRpYyBpbnQgY2hlY2tfYXR0YWNoX21vZGlmeV9yZXR1cm4odW5zaWduZWQgbG9uZyBhZGRyLCBjb25zdCBjaGFyICpmdW5jX25hbWUpXFxuLS1cXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtMTg5NTItXFxua2VybmVsL2JwZi92ZXJpZmllci5jOjE4OTUzOiNlbmRpZiAvKiBDT05GSUdfRlVOQ1RJT05fRVJST1JfSU5KRUNUSU9OICovXFxua2VybmVsL2JwZi92ZXJpZmllci5jLTE4OTU0LVxcbi0tXFxua2VybmVsL2JwZi92ZXJpZmllci5jPTE5MzQyPUJURl9JRF9VTlVTRURcXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM6MTkzNDM6I2lmZGVmIENPTkZJR19TTVBcXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtMTkzNDQtQlRGX0lEKGZ1bmMsIF9fX21pZ3JhdGVfZW5hYmxlKVxcbi0tXFxua2VybmVsL2JwZi92ZXJpZmllci5jPTE5MzQ2PUJURl9JRChmdW5jLCBtaWdyYXRlX2VuYWJsZSlcXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtMTkzNDctI2VuZGlmXFxua2VybmVsL2JwZi92ZXJpZmllci5jOjE5MzQ4OiNpZiAhZGVmaW5lZCBDT05GSUdfUFJFRU1QVF9SQ1UgXFx1MDAyNlxcdTAwMjYgIWRlZmluZWQgQ09ORklHX1RJTllfUkNVXFxua2VybmVsL2JwZi92ZXJpZmllci5jLTE5MzQ5LUJURl9JRChmdW5jLCByY3VfcmVhZF91bmxvY2tfc3RyaWN0KVxcbmtlcm5lbC9icGYvdmVyaWZpZXIuYy0xOTM1MC0jZW5kaWZcXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM6MTkzNTE6I2lmIGRlZmluZWQoQ09ORklHX0RFQlVHX1BSRUVNUFQpIHx8IGRlZmluZWQoQ09ORklHX1RSQUNFX1BSRUVNUFRfVE9HR0xFKVxcbmtlcm5lbC9icGYvdmVyaWZpZXIuYy0xOTM1Mi1CVEZfSUQoZnVuYywgcHJlZW1wdF9jb3VudF9hZGQpXFxua2VybmVsL2JwZi92ZXJpZmllci5jPTE5MzUzPUJURl9JRChmdW5jLCBwcmVlbXB0X2NvdW50X3N1YilcXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtMTkzNTQtI2VuZGlmXFxua2VybmVsL2JwZi92ZXJpZmllci5jOjE5MzU1OiNpZmRlZiBDT05GSUdfUFJFRU1QVF9SQ1VcXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtMTkzNTYtQlRGX0lEKGZ1bmMsIF9fcmN1X3JlYWRfbG9jaylcXG4tLVxcbmtlcm5lbC9icGYvdmVyaWZpZXIuYz0xOTM2NT1CVEZfU0VUX1NUQVJUKG5vcmV0dXJuX2RlbnkpXFxua2VybmVsL2JwZi92ZXJpZmllci5jOjE5MzY2OiNpZmRlZiBDT05GSUdfSUEzMl9FTVVMQVRJT05cXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtMTkzNjctQlRGX0lEKGZ1bmMsIF9faWEzMl9zeXNfZXhpdClcXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM9MTkzNjg9QlRGX0lEKGZ1bmMsIF9faWEzMl9zeXNfZXhpdF9ncm91cClcXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtMTkzNjktI2VuZGlmXFxua2VybmVsL2JwZi92ZXJpZmllci5jOjE5MzcwOiNpZmRlZiBDT05GSUdfS1VOSVRcXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtMTkzNzEtQlRGX0lEKGZ1bmMsIF9fa3VuaXRfYWJvcnQpXFxua2VybmVsL2JwZi92ZXJpZmllci5jPTE5MzcyPUJURl9JRChmdW5jLCBrdW5pdF90cnlfY2F0Y2hfdGhyb3cpXFxua2VybmVsL2JwZi92ZXJpZmllci5jLTE5MzczLSNlbmRpZlxcbmtlcm5lbC9icGYvdmVyaWZpZXIuYzoxOTM3NDojaWZkZWYgQ09ORklHX01PRFVMRVNcXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtMTkzNzUtQlRGX0lEKGZ1bmMsIF9fbW9kdWxlX3B1dF9hbmRfa3RocmVhZF9leGl0KVxcbmtlcm5lbC9icGYvdmVyaWZpZXIuYy0xOTM3Ni0jZW5kaWZcXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM6MTkzNzc6I2lmZGVmIENPTkZJR19YODZfNjRcXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtMTkzNzgtQlRGX0lEKGZ1bmMsIF9feDY0X3N5c19leGl0KVxcbi0tXFxua2VybmVsL2JwZi92ZXJpZmllci5jPTE5NTcwPXN0cnVjdCBidGYgKmJwZl9nZXRfYnRmX3ZtbGludXgodm9pZClcXG4tLVxcbmtlcm5lbC9icGYvdmVyaWZpZXIuYy0xOTU3NC1cXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM6MTk1NzU6XFx0aWYgKCFidGYgXFx1MDAyNlxcdTAwMjYgSVNfRU5BQkxFRChDT05GSUdfREVCVUdfSU5GT19CVEYpKSB7XFxua2VybmVsL2JwZi92ZXJpZmllci5jLTE5NTc2LVxcdFxcdG11dGV4X2xvY2soXFx1MDAyNmJ0Zl92bWxpbnV4X2xvY2spO1xcbi0tXFxua2VybmVsL2JwZi92ZXJpZmllci5jPTIwMDQxPWludCBicGZfY2hlY2soc3RydWN0IGJwZl9wcm9nICoqcHJvZywgdW5pb24gYnBmX2F0dHIgKmF0dHIsIGJwZnB0cl90IHVhdHRyLFxcbi0tXFxua2VybmVsL2JwZi92ZXJpZmllci5jLTIwMTI4LVxcdGVudi1cXHUwMDNlc3RyaWN0X2FsaWdubWVudCA9ICEhKGF0dHItXFx1MDAzZXByb2dfZmxhZ3MgXFx1MDAyNiBCUEZfRl9TVFJJQ1RfQUxJR05NRU5UKTtcXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM6MjAxMjk6XFx0aWYgKCFJU19FTkFCTEVEKENPTkZJR19IQVZFX0VGRklDSUVOVF9VTkFMSUdORURfQUNDRVNTKSlcXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtMjAxMzAtXFx0XFx0ZW52LVxcdTAwM2VzdHJpY3RfYWxpZ25tZW50ID0gdHJ1ZTtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTBUMTE6MzU6MTUuMzA1NjkyNjE4WiIsIlNlcSI6OSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDIxOTQ2OTY0MiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIEJQRiBWZXJpZmllciBQYXRjaCoqXG5cbk9rYXksIHNvIHRoaXMgcGF0Y2ggaXMgc2l0dGluZyB3aXRoaW4gYGNoZWNrX21lbV9hY2Nlc3NgLCB3aGljaCBpcyB0aGUgZnVuY3Rpb24gdGhhdCBnZXRzIGNhbGxlZCB3aGVuZXZlciBhIEJQRiBwcm9ncmFtIGFjY2Vzc2VzIG1lbW9yeS4gSXQncyB0aWVkIHRvIHRoaXMgYEJQRl9TWVNDQUxMYCBjb25maWcsIHdoaWNoIG1ha2VzIHNlbnNlLiBMb29raW5nIGF0IHRoZSByZWFzb25pbmcsIGl0J3MgYSBidWcgZml4IGluIHRoZSBCUEYgdmVyaWZpZXIgaXRzZWxmLiBTcGVjaWZpY2FsbHksIGEgc2lnbi1leHRlbmRpbmcgbG9hZCBjb3VsZCBiZSBrZWVwaW5nIGEgc2hhcmVkIHNjYWxhciBJRCwgd2hpY2ggdGhyb3dzIG9mZiB0aGUgYm91bmRzIHRyYWNraW5nLiBSaWdodCwgc28gYSBjb3JlIGxvZ2ljIGNoYW5nZSBpbiB0aGUgdmVyaWZpZXI7IHRoYXQgZGVmaW5pdGVseSB3YXJyYW50cyBzb21lIGZ1enppbmcuXG5cbk5vdywgdGhlIHF1ZXN0aW9uIGlzIHdoZXRoZXIgYEJQRl9TWVNDQUxMYCBpcyAqc3VmZmljaWVudCogZm9yIGVuYWJsaW5nIHRoZSB2ZXJpZmllciBpbiB0aGUgZmlyc3QgcGxhY2UuIEkgbmVlZCB0byB2ZXJpZnkgdGhhdC4gQWgsIHllcywgY29uZmlybWVkLiBFbmFibGluZyBgQlBGX1NZU0NBTExgIGFsc28gZW5hYmxlcyB0aGUgdmVyaWZpZXIsIHNvIHdlIGFyZSBnb29kIHRvIGdvLlxuXG5UaW1lIHRvIGNhbGwgYHNldC1yZXN1bHRzYC5cblxuXG4iLCJJbnB1dFRva2VucyI6MTE1MDksIk91dHB1dFRva2VucyI6OTgsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxMzcsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMTBUMTE6MzU6MTkuNTI1MTY0NjFaIiwiU2VxIjoxMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo5MjA0NzgyNCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiQlBGX1NZU0NBTExcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJjaGVja19tZW1fYWNjZXNzXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggZml4ZXMgYSBidWcgaW4gdGhlIEJQRiB2ZXJpZmllciB3aGVyZSBhIHNpZ24tZXh0ZW5kaW5nIGxvYWQgY291bGQgaW5jb3JyZWN0bHkga2VlcCBhIHNoYXJlZCBzY2FsYXIgSUQsIGxlYWRpbmcgdG8gaW5jb3JyZWN0IGJvdW5kcyB0cmFja2luZy4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSB2ZXJpZmllcidzIGNvcmUgbG9naWMgYW5kIHNob3VsZCBiZSBmdXp6ZWQuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiQlBGX1NZU0NBTExcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJjaGVja19tZW1fYWNjZXNzXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggZml4ZXMgYSBidWcgaW4gdGhlIEJQRiB2ZXJpZmllciB3aGVyZSBhIHNpZ24tZXh0ZW5kaW5nIGxvYWQgY291bGQgaW5jb3JyZWN0bHkga2VlcCBhIHNoYXJlZCBzY2FsYXIgSUQsIGxlYWRpbmcgdG8gaW5jb3JyZWN0IGJvdW5kcyB0cmFja2luZy4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSB2ZXJpZmllcidzIGNvcmUgbG9naWMgYW5kIHNob3VsZCBiZSBmdXp6ZWQuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0udG9rZW5zIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnVG9vbER1ciA9IHN0YXRzLnRvb2wuY291bnQgPiAwID8gKHN0YXRzLnRvb2wuZHVyYXRpb24gLyBzdGF0cy50b29sLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCgkJCWNvbnN0IGxsbVN1bWFyeUNlbGxzID0gW3N0YXRzLmxsbS5jb3VudCwgc3RhdHMubGxtLnRva2VucywgYXZnTGxtVG9rZW4sIHN0YXRzLmxsbS5kdXJhdGlvbiwgYXZnTGxtRHVyXTsKCQkJY29uc3QgdG9vbFN1bW1hcnlDZWxscyA9IFtzdGF0cy50b29sLmNvdW50LCBzdGF0cy50b29sLmR1cmF0aW9uLCBhdmdUb29sRHVyXTsKCgkJCWNvbnN0IGxsbVN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xsbV9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJbGxtU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IGxsbVRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJbGxtU3VtYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCWxsbVRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCWxsbVN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKGxsbVRyKTsKCgkJCWNvbnN0IHRvb2xTdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b29sX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQl0b29sU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IHRvb2xUciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCXRvb2xTdW1tYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCXRvb2xUci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQl0b29sU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQodG9vbFRyKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgZmlsdGVyZWRTdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gWyJsbG0iLCAidG9vbCJdLmluY2x1ZGVzKGQuVHlwZSkpOwoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdEdXJhdGlvbicpOwoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOyAKCgkJCWZpbHRlcmVkU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCQoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7CgkJCQlsZXQgdG9vbHRpcCA9IHMuTmFtZTsKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iICYmIHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCQkJCWRhdGEuYWRkUm93KFtgJHtzLlNlcX1gLCBkdXIsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUaW1lIENvbnN1bXB0aW9uIG9mIExMTS9Ub29sIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0vVG9vbCBTdGVwcycsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdTZWNvbmRzJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkdXJhdGlvbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgbGxtU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IGQuVHlwZSA9PT0gImxsbSIpOwoJCQlpZiAobGxtU3RlcHMubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdUb2tlbnMnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAnc3R5bGUnfSk7CQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOwkKCgkJCWNvbnN0IGFnZW50Q29sb3JzID0ge307CgkJCWNvbnN0IHBhbGV0dGUgPSBbJyM0Mjg1RjQnLCAnI0RCNDQzNycsICcjRjRCNDAwJywgJyMwRjlENTgnLCAnI0FCNDdCQycsICcjMDBBQ0MxJ107CgkJCWxldCBjb2xvcklkeCA9IDA7CgkJCWNvbnN0IGFnZW50TExNQ291bnRzID0ge307CgkJCWxsbVN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQlpZiAoIWFnZW50Q29sb3JzW3MuTmFtZV0pIHsKCQkJCQlhZ2VudENvbG9yc1tzLk5hbWVdID0gcGFsZXR0ZVtjb2xvcklkeCAlIHBhbGV0dGUubGVuZ3RoXTsKCQkJCQljb2xvcklkeCsrOwoJCQkJfQoKCQkJCWFnZW50TExNQ291bnRzW3MuTmFtZV0gPSAoYWdlbnRMTE1Db3VudHNbcy5OYW1lXSB8fCAwKSArIDE7CgkJCQljb25zdCBsYWJlbCA9IGAke3MuTmFtZX0tJHthZ2VudExMTUNvdW50c1tzLk5hbWVdfWA7CgkJCQljb25zdCB0b3RhbFRva2VucyA9IHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnM7CgkJCQljb25zdCBzdHlsZSA9IGBjb2xvcjogJHthZ2VudENvbG9yc1tzLk5hbWVdfWA7CgkJCQlsZXQgdG9vbHRpcCA9IGBUb3RhbCBUb2tlbnM6ICR7dG90YWxUb2tlbnN9XG4oSW46ICR7cy5JbnB1dFRva2Vuc30sIE91dDogJHtzLk91dHB1dFRva2Vuc30sIFRob3VnaHRzOiAke3MuT3V0cHV0VGhvdWdodHNUb2tlbnN9KWA7CgkJCQlpZiAocy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoKCQkJCWRhdGEuYWRkUm93KFtsYWJlbCwgdG90YWxUb2tlbnMsIHN0eWxlLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVG9rZW4gQ29uc3VtcHRpb24gYnkgTExNIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0gQ2FsbCBTZXF1ZW5jZScsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdDb25zdW1lZCBUb2tlbnMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rva2VuX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgkJbGV0IGFsbEV4cGFuZGVkID0gZmFsc2U7CgkJZnVuY3Rpb24gdG9nZ2xlQWxsRGV0YWlscygpIHsKCQkJYWxsRXhwYW5kZWQgPSAhYWxsRXhwYW5kZWQ7CgkJCWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2RldGFpbHMnKS5mb3JFYWNoKGQgPT4gewoJCQkJaWYgKGFsbEV4cGFuZGVkKSBkLnNldEF0dHJpYnV0ZSgnb3BlbicsICcnKTsKCQkJCWVsc2UgZC5yZW1vdmVBdHRyaWJ1dGUoJ29wZW4nKTsKCQkJfSk7CgkJfQoJPC9zY3JpcHQ+CgoKPC9ib2R5Pgo8L2h0bWw+Cg==" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflow6jlzt[1] Phase: Succeeded StartedAt: 2026-07-10 11:36:14 +0000 UTC FinishedAt: 2026-07-10 11:36:14 +0000 UTC Input: nil Output: nil --------- Name: series-workflow6jlzt[1].abort-on-skip-outcome Phase: Skipped StartedAt: 2026-07-10 11:36:14 +0000 UTC FinishedAt: 2026-07-10 11:36:14 +0000 UTC Input: nil Output: nil --------- Name: series-workflow6jlzt[2] Phase: Succeeded StartedAt: 2026-07-10 11:36:14 +0000 UTC FinishedAt: 2026-07-10 15:58:26 +0000 UTC Input: nil Output: nil --------- Name: series-workflow6jlzt[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"36ffa86c42f91c8a57071e024afc4ffb51a8958f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["check_mem_access"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"36ffa86c42f91c8a57071e024afc4ffb51a8958f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"1d4dba8b-1d06-4607-b613-3eaa602f0175","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN) Phase: Succeeded StartedAt: 2026-07-10 11:36:14 +0000 UTC FinishedAt: 2026-07-10 15:58:26 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:element,Default:nil,Value:*{"base":{"arch":"amd64","commit_hash":"36ffa86c42f91c8a57071e024afc4ffb51a8958f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},"fuzz":{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["check_mem_access"],"skip_cover_check":false},"patched":{"arch":"amd64","commit_hash":"36ffa86c42f91c8a57071e024afc4ffb51a8958f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"1d4dba8b-1d06-4607-b613-3eaa602f0175","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},"retest":null,"track":"KASAN"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: nil --------- Name: series-workflow6jlzt[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"36ffa86c42f91c8a57071e024afc4ffb51a8958f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["check_mem_access"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"36ffa86c42f91c8a57071e024afc4ffb51a8958f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"1d4dba8b-1d06-4607-b613-3eaa602f0175","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[0] Phase: Succeeded StartedAt: 2026-07-10 11:36:14 +0000 UTC FinishedAt: 2026-07-10 11:36:24 +0000 UTC Input: nil Output: nil --------- Name: series-workflow6jlzt[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"36ffa86c42f91c8a57071e024afc4ffb51a8958f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["check_mem_access"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"36ffa86c42f91c8a57071e024afc4ffb51a8958f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"1d4dba8b-1d06-4607-b613-3eaa602f0175","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[0].save-base-req Phase: Succeeded StartedAt: 2026-07-10 11:36:14 +0000 UTC FinishedAt: 2026-07-10 11:36:19 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"36ffa86c42f91c8a57071e024afc4ffb51a8958f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{Artifact{Name:artifact,Path:/tmp/artifact,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflow6jlzt/series-workflow6jlzt-convert-artifact-3639638077/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow6jlzt[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"36ffa86c42f91c8a57071e024afc4ffb51a8958f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["check_mem_access"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"36ffa86c42f91c8a57071e024afc4ffb51a8958f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"1d4dba8b-1d06-4607-b613-3eaa602f0175","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[1] Phase: Succeeded StartedAt: 2026-07-10 11:36:24 +0000 UTC FinishedAt: 2026-07-10 12:10:06 +0000 UTC Input: nil Output: nil --------- Name: series-workflow6jlzt[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"36ffa86c42f91c8a57071e024afc4ffb51a8958f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["check_mem_access"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"36ffa86c42f91c8a57071e024afc4ffb51a8958f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"1d4dba8b-1d06-4607-b613-3eaa602f0175","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[1].base-build Phase: Succeeded StartedAt: 2026-07-10 11:36:24 +0000 UTC FinishedAt: 2026-07-10 12:10:06 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:findings,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:test-name,Default:nil,Value:*[KASAN] Build Base,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:smoke-build,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:session-id,Default:nil,Value:*6466efa0-3610-4dd2-b3c4-ed8b44bba557,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-workflow6jlzt/series-workflow6jlzt-convert-artifact-3639638077/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": "cdd60a85-5570-42fe-a3c6-7569bb98a4ea", "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-workflow6jlzt/series-workflow6jlzt-build-action-4215906675/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow6jlzt[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"36ffa86c42f91c8a57071e024afc4ffb51a8958f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["check_mem_access"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"36ffa86c42f91c8a57071e024afc4ffb51a8958f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"1d4dba8b-1d06-4607-b613-3eaa602f0175","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[1].base-build(0) Phase: Succeeded StartedAt: 2026-07-10 11:36:24 +0000 UTC FinishedAt: 2026-07-10 12:09:56 +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:*6466efa0-3610-4dd2-b3c4-ed8b44bba557,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-workflow6jlzt/series-workflow6jlzt-convert-artifact-3639638077/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": "cdd60a85-5570-42fe-a3c6-7569bb98a4ea", "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-workflow6jlzt/series-workflow6jlzt-build-action-4215906675/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow6jlzt[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"36ffa86c42f91c8a57071e024afc4ffb51a8958f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["check_mem_access"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"36ffa86c42f91c8a57071e024afc4ffb51a8958f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"1d4dba8b-1d06-4607-b613-3eaa602f0175","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[2] Phase: Succeeded StartedAt: 2026-07-10 12:10:06 +0000 UTC FinishedAt: 2026-07-10 12:10:06 +0000 UTC Input: nil Output: nil --------- Name: series-workflow6jlzt[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"36ffa86c42f91c8a57071e024afc4ffb51a8958f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["check_mem_access"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"36ffa86c42f91c8a57071e024afc4ffb51a8958f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"1d4dba8b-1d06-4607-b613-3eaa602f0175","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[2].abort-if-base-build-failed Phase: Skipped StartedAt: 2026-07-10 12:10:06 +0000 UTC FinishedAt: 2026-07-10 12:10:06 +0000 UTC Input: nil Output: nil --------- Name: series-workflow6jlzt[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"36ffa86c42f91c8a57071e024afc4ffb51a8958f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["check_mem_access"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"36ffa86c42f91c8a57071e024afc4ffb51a8958f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"1d4dba8b-1d06-4607-b613-3eaa602f0175","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[3] Phase: Succeeded StartedAt: 2026-07-10 12:10:06 +0000 UTC FinishedAt: 2026-07-10 12:10:16 +0000 UTC Input: nil Output: nil --------- Name: series-workflow6jlzt[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"36ffa86c42f91c8a57071e024afc4ffb51a8958f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["check_mem_access"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"36ffa86c42f91c8a57071e024afc4ffb51a8958f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"1d4dba8b-1d06-4607-b613-3eaa602f0175","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[3].save-patched-req Phase: Succeeded StartedAt: 2026-07-10 12:10:06 +0000 UTC FinishedAt: 2026-07-10 12:10:11 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"36ffa86c42f91c8a57071e024afc4ffb51a8958f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"1d4dba8b-1d06-4607-b613-3eaa602f0175","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{Artifact{Name:artifact,Path:/tmp/artifact,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflow6jlzt/series-workflow6jlzt-convert-artifact-2108281752/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow6jlzt[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"36ffa86c42f91c8a57071e024afc4ffb51a8958f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["check_mem_access"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"36ffa86c42f91c8a57071e024afc4ffb51a8958f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"1d4dba8b-1d06-4607-b613-3eaa602f0175","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[4] Phase: Succeeded StartedAt: 2026-07-10 12:10:16 +0000 UTC FinishedAt: 2026-07-10 12:12:11 +0000 UTC Input: nil Output: nil --------- Name: series-workflow6jlzt[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"36ffa86c42f91c8a57071e024afc4ffb51a8958f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["check_mem_access"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"36ffa86c42f91c8a57071e024afc4ffb51a8958f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"1d4dba8b-1d06-4607-b613-3eaa602f0175","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[4].boot-test-base Phase: Succeeded StartedAt: 2026-07-10 12:10:16 +0000 UTC FinishedAt: 2026-07-10 12:12:01 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*cdd60a85-5570-42fe-a3c6-7569bb98a4ea,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-workflow6jlzt/series-workflow6jlzt-build-action-4215906675/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-workflow6jlzt[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"36ffa86c42f91c8a57071e024afc4ffb51a8958f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["check_mem_access"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"36ffa86c42f91c8a57071e024afc4ffb51a8958f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"1d4dba8b-1d06-4607-b613-3eaa602f0175","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[5] Phase: Succeeded StartedAt: 2026-07-10 12:12:11 +0000 UTC FinishedAt: 2026-07-10 12:12:11 +0000 UTC Input: nil Output: nil --------- Name: series-workflow6jlzt[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"36ffa86c42f91c8a57071e024afc4ffb51a8958f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["check_mem_access"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"36ffa86c42f91c8a57071e024afc4ffb51a8958f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"1d4dba8b-1d06-4607-b613-3eaa602f0175","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[5].abort-if-base-boot-failed Phase: Skipped StartedAt: 2026-07-10 12:12:11 +0000 UTC FinishedAt: 2026-07-10 12:12:11 +0000 UTC Input: nil Output: nil --------- Name: series-workflow6jlzt[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"36ffa86c42f91c8a57071e024afc4ffb51a8958f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["check_mem_access"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"36ffa86c42f91c8a57071e024afc4ffb51a8958f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"1d4dba8b-1d06-4607-b613-3eaa602f0175","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[6] Phase: Succeeded StartedAt: 2026-07-10 12:12:11 +0000 UTC FinishedAt: 2026-07-10 12:53:26 +0000 UTC Input: nil Output: nil --------- Name: series-workflow6jlzt[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"36ffa86c42f91c8a57071e024afc4ffb51a8958f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["check_mem_access"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"36ffa86c42f91c8a57071e024afc4ffb51a8958f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"1d4dba8b-1d06-4607-b613-3eaa602f0175","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[6].patched-build Phase: Succeeded StartedAt: 2026-07-10 12:12:11 +0000 UTC FinishedAt: 2026-07-10 12:53:26 +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:*6466efa0-3610-4dd2-b3c4-ed8b44bba557,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-workflow6jlzt/series-workflow6jlzt-convert-artifact-2108281752/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": "e3fbeef6-de09-4b23-8873-ba73bc42a195", "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-workflow6jlzt/series-workflow6jlzt-build-action-371010564/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow6jlzt[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"36ffa86c42f91c8a57071e024afc4ffb51a8958f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["check_mem_access"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"36ffa86c42f91c8a57071e024afc4ffb51a8958f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"1d4dba8b-1d06-4607-b613-3eaa602f0175","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[6].patched-build(0) Phase: Succeeded StartedAt: 2026-07-10 12:12:11 +0000 UTC FinishedAt: 2026-07-10 12:53:16 +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:*6466efa0-3610-4dd2-b3c4-ed8b44bba557,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-workflow6jlzt/series-workflow6jlzt-convert-artifact-2108281752/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": "e3fbeef6-de09-4b23-8873-ba73bc42a195", "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-workflow6jlzt/series-workflow6jlzt-build-action-371010564/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow6jlzt[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"36ffa86c42f91c8a57071e024afc4ffb51a8958f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["check_mem_access"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"36ffa86c42f91c8a57071e024afc4ffb51a8958f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"1d4dba8b-1d06-4607-b613-3eaa602f0175","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[7] Phase: Succeeded StartedAt: 2026-07-10 12:53:26 +0000 UTC FinishedAt: 2026-07-10 12:53:26 +0000 UTC Input: nil Output: nil --------- Name: series-workflow6jlzt[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"36ffa86c42f91c8a57071e024afc4ffb51a8958f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["check_mem_access"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"36ffa86c42f91c8a57071e024afc4ffb51a8958f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"1d4dba8b-1d06-4607-b613-3eaa602f0175","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[7].abort-if-patched-build-failed Phase: Skipped StartedAt: 2026-07-10 12:53:26 +0000 UTC FinishedAt: 2026-07-10 12:53:26 +0000 UTC Input: nil Output: nil --------- Name: series-workflow6jlzt[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"36ffa86c42f91c8a57071e024afc4ffb51a8958f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["check_mem_access"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"36ffa86c42f91c8a57071e024afc4ffb51a8958f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"1d4dba8b-1d06-4607-b613-3eaa602f0175","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[8] Phase: Succeeded StartedAt: 2026-07-10 12:53:26 +0000 UTC FinishedAt: 2026-07-10 12:55:39 +0000 UTC Input: nil Output: nil --------- Name: series-workflow6jlzt[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"36ffa86c42f91c8a57071e024afc4ffb51a8958f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["check_mem_access"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"36ffa86c42f91c8a57071e024afc4ffb51a8958f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"1d4dba8b-1d06-4607-b613-3eaa602f0175","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[8].boot-test-patched Phase: Succeeded StartedAt: 2026-07-10 12:53:26 +0000 UTC FinishedAt: 2026-07-10 12:55:29 +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:*e3fbeef6-de09-4b23-8873-ba73bc42a195,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-workflow6jlzt/series-workflow6jlzt-build-action-371010564/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-workflow6jlzt[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"36ffa86c42f91c8a57071e024afc4ffb51a8958f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["check_mem_access"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"36ffa86c42f91c8a57071e024afc4ffb51a8958f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"1d4dba8b-1d06-4607-b613-3eaa602f0175","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[10] Phase: Succeeded StartedAt: 2026-07-10 12:55:39 +0000 UTC FinishedAt: 2026-07-10 15:58:26 +0000 UTC Input: nil Output: nil --------- Name: series-workflow6jlzt[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"36ffa86c42f91c8a57071e024afc4ffb51a8958f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["check_mem_access"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"36ffa86c42f91c8a57071e024afc4ffb51a8958f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"1d4dba8b-1d06-4607-b613-3eaa602f0175","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[10].run-fuzz Phase: Succeeded StartedAt: 2026-07-10 12:55:39 +0000 UTC FinishedAt: 2026-07-10 15:58:26 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:config,Default:nil,Value:*{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["check_mem_access"],"skip_cover_check":false},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:track,Default:nil,Value:*KASAN,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:base-build-id,Default:nil,Value:*cdd60a85-5570-42fe-a3c6-7569bb98a4ea,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*e3fbeef6-de09-4b23-8873-ba73bc42a195,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-workflow6jlzt/series-workflow6jlzt-build-action-4215906675/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-workflow6jlzt/series-workflow6jlzt-build-action-371010564/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: nil --------- Name: series-workflow6jlzt[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"36ffa86c42f91c8a57071e024afc4ffb51a8958f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["check_mem_access"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"36ffa86c42f91c8a57071e024afc4ffb51a8958f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"1d4dba8b-1d06-4607-b613-3eaa602f0175","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[10].run-fuzz[0] Phase: Succeeded StartedAt: 2026-07-10 12:55:39 +0000 UTC FinishedAt: 2026-07-10 12:55:49 +0000 UTC Input: nil Output: nil --------- Name: series-workflow6jlzt[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"36ffa86c42f91c8a57071e024afc4ffb51a8958f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["check_mem_access"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"36ffa86c42f91c8a57071e024afc4ffb51a8958f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"1d4dba8b-1d06-4607-b613-3eaa602f0175","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[10].run-fuzz[0].save-fuzz-config Phase: Succeeded StartedAt: 2026-07-10 12:55:39 +0000 UTC FinishedAt: 2026-07-10 12:55:43 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["check_mem_access"],"skip_cover_check":false},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{Artifact{Name:artifact,Path:/tmp/artifact,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflow6jlzt/series-workflow6jlzt-convert-artifact-4110041713/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow6jlzt[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"36ffa86c42f91c8a57071e024afc4ffb51a8958f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["check_mem_access"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"36ffa86c42f91c8a57071e024afc4ffb51a8958f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"1d4dba8b-1d06-4607-b613-3eaa602f0175","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[10].run-retest Phase: Skipped StartedAt: 2026-07-10 12:55:39 +0000 UTC FinishedAt: 2026-07-10 12:55:39 +0000 UTC Input: nil Output: nil --------- Name: series-workflow6jlzt[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"36ffa86c42f91c8a57071e024afc4ffb51a8958f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["check_mem_access"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"36ffa86c42f91c8a57071e024afc4ffb51a8958f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"1d4dba8b-1d06-4607-b613-3eaa602f0175","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[9] Phase: Succeeded StartedAt: 2026-07-10 12:55:39 +0000 UTC FinishedAt: 2026-07-10 12:55:39 +0000 UTC Input: nil Output: nil --------- Name: series-workflow6jlzt[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"36ffa86c42f91c8a57071e024afc4ffb51a8958f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["check_mem_access"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"36ffa86c42f91c8a57071e024afc4ffb51a8958f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"1d4dba8b-1d06-4607-b613-3eaa602f0175","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[9].abort-if-patched-boot-failed Phase: Skipped StartedAt: 2026-07-10 12:55:39 +0000 UTC FinishedAt: 2026-07-10 12:55:39 +0000 UTC Input: nil Output: nil --------- Name: series-workflow6jlzt[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"36ffa86c42f91c8a57071e024afc4ffb51a8958f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["check_mem_access"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"36ffa86c42f91c8a57071e024afc4ffb51a8958f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"1d4dba8b-1d06-4607-b613-3eaa602f0175","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[10].run-fuzz[1] Phase: Succeeded StartedAt: 2026-07-10 12:55:49 +0000 UTC FinishedAt: 2026-07-10 15:58:26 +0000 UTC Input: nil Output: nil --------- Name: series-workflow6jlzt[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"36ffa86c42f91c8a57071e024afc4ffb51a8958f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["check_mem_access"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"36ffa86c42f91c8a57071e024afc4ffb51a8958f","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"1d4dba8b-1d06-4607-b613-3eaa602f0175","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[10].run-fuzz[1].fuzz Phase: Succeeded StartedAt: 2026-07-10 12:55:49 +0000 UTC FinishedAt: 2026-07-10 15:58:17 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*cdd60a85-5570-42fe-a3c6-7569bb98a4ea,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*e3fbeef6-de09-4b23-8873-ba73bc42a195,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-workflow6jlzt/series-workflow6jlzt-build-action-4215906675/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-workflow6jlzt/series-workflow6jlzt-build-action-371010564/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-workflow6jlzt/series-workflow6jlzt-convert-artifact-4110041713/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,}