Name: series-workflowfc4xk Phase: Succeeded StartedAt: 2026-07-15 22:41:48 +0000 UTC FinishedAt: 2026-07-16 04:03:51 +0000 UTC Input: nil Output: nil --------- Name: series-workflowfc4xk[0] Phase: Succeeded StartedAt: 2026-07-15 22:41:48 +0000 UTC FinishedAt: 2026-07-15 23:06:06 +0000 UTC Input: nil Output: nil --------- Name: series-workflowfc4xk[0].run-triage Phase: Succeeded StartedAt: 2026-07-15 22:41:48 +0000 UTC FinishedAt: 2026-07-15 23:06:06 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "linux-next", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next", "commit_hash": "ac798f757d6475dc6fee2ec899980d6740714596", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "CFG80211", "MAC80211", "MAC80211_HWSIM" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "linux-next", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next", "commit_hash": "ac798f757d6475dc6fee2ec899980d6740714596", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "CFG80211", "MAC80211", "MAC80211_HWSIM" ], "series_id": "a1f927bf-7d79-41e7-a6fc-ce8cd9b09fe0" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [ "validate_uhr_operation", "ieee80211_parse_extension_element", "ieee80211_config_bw" ], "corpus_urls": [ "https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db" ], "skip_cover_check": false, "bug_title_re": "" }, "retest": null } ], "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE1IDIzOjA1PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0NGRzgwMjExJiMzNDssCiAgICAmIzM0O01BQzgwMjExJiMzNDssCiAgICAmIzM0O01BQzgwMjExX0hXU0lNJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7dmFsaWRhdGVfdWhyX29wZXJhdGlvbiYjMzQ7LAogICAgJiMzNDtpZWVlODAyMTFfcGFyc2VfZXh0ZW5zaW9uX2VsZW1lbnQmIzM0OywKICAgICYjMzQ7aWVlZTgwMjExX2NvbmZpZ19idyYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgcGFyc2luZyBhbmQgdmFsaWRhdGlvbiBsb2dpYyBmb3IgSUVFRSA4MDIuMTEgVUhSIChVbHRyYSBIaWdoIFJlbGlhYmlsaXR5KSBvcGVyYXRpb24gZWxlbWVudHMuIEl0IGNoYW5nZXMgdGhlIHNpemUgdmFsaWRhdGlvbiBsb2dpYyBieSBjaGVja2luZyBmb3IgcHJlc2VuY2UgZmxhZ3MgaW5zdGVhZCBvZiBlbmFibGUgZmxhZ3MuIFRoZSBtb2RpZmllZCBpbmxpbmUgZnVuY3Rpb24gaXMgY2FsbGVkIGZyb20gbmV0bGluayBhdHRyaWJ1dGUgdmFsaWRhdGlvbiAoYHZhbGlkYXRlX3Vocl9vcGVyYXRpb25gKSwgbWFuYWdlbWVudCBmcmFtZSBwYXJzaW5nIChgaWVlZTgwMjExX3BhcnNlX2V4dGVuc2lvbl9lbGVtZW50YCksIGFuZCBiYW5kd2lkdGggY29uZmlndXJhdGlvbiAoYGllZWU4MDIxMV9jb25maWdfYndgKS4gVGhlc2UgYXJlIHJlYWNoYWJsZSBmcm9tIHVzZXIgc3BhY2UgdmlhIG5ldGxpbmsgYW5kIGZyb20gaW5qZWN0ZWQgbWFuYWdlbWVudCBmcmFtZXMsIG1ha2luZyBpdCBoaWdobHkgcmVsZXZhbnQgZm9yIGZ1enppbmcuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MS8xPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTUgMjM6MDU8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPnJlYWQtcGF0Y2gtZGlmZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1BhdGNoRGlmZiYjMzQ7OiAmIzM0O2NvbW1pdCA3MmMxMDI4NmYzMzFlNjdkYzViNmI3MmQyNGMxYjEwZTJkMzczYzZjXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFdlZCBKdWwgMTUgMjM6MDU6MTQgMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9pZWVlODAyMTEtdWhyLmggYi9pbmNsdWRlL2xpbnV4L2llZWU4MDIxMS11aHIuaFxuaW5kZXggNTk3YzllNTU5MjYxYjkuLjY2NWQ0YjNhNWI0MTg2IDEwMDY0NFxuLS0tIGEvaW5jbHVkZS9saW51eC9pZWVlODAyMTEtdWhyLmhcbiYjNDM7JiM0MzsmIzQzOyBiL2luY2x1ZGUvbGludXgvaWVlZTgwMjExLXVoci5oXG5AQCAtMTcsNiAmIzQzOzE3LDExIEBAXG4gI2RlZmluZSBJRUVFODAyMTFfVUhSX09QRVJfUEFSQU1TX1BFRENBX0VOQVx0XHQweDAwMDRcbiAjZGVmaW5lIElFRUU4MDIxMV9VSFJfT1BFUl9QQVJBTVNfREJFX0VOQVx0XHQweDAwMDhcbiAjZGVmaW5lIElFRUU4MDIxMV9VSFJfT1BFUl9QQVJBTVNfREJFX0JXXHRcdDB4MDA3MFxuJiM0MzsjZGVmaW5lIElFRUU4MDIxMV9VSFJfT1BFUl9QQVJBTVNfRFVPX1BSRVNcdFx0MHgwMDgwXG4mIzQzOyNkZWZpbmUgSUVFRTgwMjExX1VIUl9PUEVSX1BBUkFNU19EUFNfUFJFU1x0XHQweDAxMDBcbiYjNDM7I2RlZmluZSBJRUVFODAyMTFfVUhSX09QRVJfUEFSQU1TX05QQ0FfUFJFU1x0XHQweDAyMDBcbiYjNDM7I2RlZmluZSBJRUVFODAyMTFfVUhSX09QRVJfUEFSQU1TX1BFRENBX1BSRVNcdFx0MHgwNDAwXG4mIzQzOyNkZWZpbmUgSUVFRTgwMjExX1VIUl9PUEVSX1BBUkFNU19EQkVfUFJFU1x0XHQweDA4MDBcbiBcbiBzdHJ1Y3QgaWVlZTgwMjExX3Vocl9vcGVyYXRpb24ge1xuIFx0X19sZTE2IHBhcmFtcztcbkBAIC0yNjUsOCAmIzQzOzI3MCw3IEBAIHN0cnVjdCBpZWVlODAyMTFfdWhyX3BfZWRjYV9pbmZvIHtcbiBcdF9fbGUxNiBwYXJhbXM7XG4gfSBfX3BhY2tlZDtcbiBcbi1zdGF0aWMgaW5saW5lIGJvb2wgaWVlZTgwMjExX3Vocl9vcGVyX3NpemVfb2soY29uc3QgdTggKmRhdGEsIHU4IGxlbixcbi1cdFx0XHRcdFx0ICAgICAgYm9vbCBiZWFjb24pXG4mIzQzO3N0YXRpYyBpbmxpbmUgYm9vbCBpZWVlODAyMTFfdWhyX29wZXJfc2l6ZV9vayhjb25zdCB1OCAqZGF0YSwgdTggbGVuKVxuIHtcbiBcdGNvbnN0IHN0cnVjdCBpZWVlODAyMTFfdWhyX29wZXJhdGlvbiAqb3BlciA9IChjb25zdCB2b2lkICopZGF0YTtcbiBcdHU4IG5lZWRlZCA9IHNpemVvZigqb3Blcik7XG5AQCAtMjc0LDE5ICYjNDM7Mjc4LDE1IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBpZWVlODAyMTFfdWhyX29wZXJfc2l6ZV9vayhjb25zdCB1OCAqZGF0YSwgdTggbGVuLFxuIFx0aWYgKGxlbiBcdTAwM2MgbmVlZGVkKVxuIFx0XHRyZXR1cm4gZmFsc2U7XG4gXG4tXHQvKiBub3RoaW5nIGVsc2UgcHJlc2VudCBpbiBiZWFjb25zICovXG4tXHRpZiAoYmVhY29uKVxuLVx0XHRyZXR1cm4gdHJ1ZTtcbi1cbiBcdC8qIERQUyBPcGVyYXRpb24gUGFyYW1ldGVycyAoZml4ZWQgNCBieXRlcykgKi9cbi1cdGlmIChvcGVyLVx1MDAzZXBhcmFtcyBcdTAwMjYgY3B1X3RvX2xlMTYoSUVFRTgwMjExX1VIUl9PUEVSX1BBUkFNU19EUFNfRU5BKSkge1xuJiM0MztcdGlmIChvcGVyLVx1MDAzZXBhcmFtcyBcdTAwMjYgY3B1X3RvX2xlMTYoSUVFRTgwMjExX1VIUl9PUEVSX1BBUkFNU19EUFNfUFJFUykpIHtcbiBcdFx0bmVlZGVkICYjNDM7PSBzaXplb2Yoc3RydWN0IGllZWU4MDIxMV91aHJfZHBzX2luZm8pO1xuIFx0XHRpZiAobGVuIFx1MDAzYyBuZWVkZWQpXG4gXHRcdFx0cmV0dXJuIGZhbHNlO1xuIFx0fVxuIFxuIFx0LyogTlBDQSBPcGVyYXRpb24gUGFyYW1ldGVycyAoZml4ZWQgNCBieXRlcyAmIzQzOyBvcHRpb25hbCAyIGJ5dGVzKSAqL1xuLVx0aWYgKG9wZXItXHUwMDNlcGFyYW1zIFx1MDAyNiBjcHVfdG9fbGUxNihJRUVFODAyMTFfVUhSX09QRVJfUEFSQU1TX05QQ0FfRU5BKSkge1xuJiM0MztcdGlmIChvcGVyLVx1MDAzZXBhcmFtcyBcdTAwMjYgY3B1X3RvX2xlMTYoSUVFRTgwMjExX1VIUl9PUEVSX1BBUkFNU19OUENBX1BSRVMpKSB7XG4gXHRcdGNvbnN0IHN0cnVjdCBpZWVlODAyMTFfdWhyX25wY2FfaW5mbyAqbnBjYSA9XG4gXHRcdFx0KGNvbnN0IHZvaWQgKikoZGF0YSAmIzQzOyBuZWVkZWQpO1xuIFxuQEAgLTMwMywxNCAmIzQzOzMwMywxNCBAQCBzdGF0aWMgaW5saW5lIGJvb2wgaWVlZTgwMjExX3Vocl9vcGVyX3NpemVfb2soY29uc3QgdTggKmRhdGEsIHU4IGxlbixcbiBcdH1cbiBcbiBcdC8qIFAtRURDQSBPcGVyYXRpb24gUGFyYW1ldGVycyAoZml4ZWQgMyBieXRlcykgKi9cbi1cdGlmIChvcGVyLVx1MDAzZXBhcmFtcyBcdTAwMjYgY3B1X3RvX2xlMTYoSUVFRTgwMjExX1VIUl9PUEVSX1BBUkFNU19QRURDQV9FTkEpKSB7XG4mIzQzO1x0aWYgKG9wZXItXHUwMDNlcGFyYW1zIFx1MDAyNiBjcHVfdG9fbGUxNihJRUVFODAyMTFfVUhSX09QRVJfUEFSQU1TX1BFRENBX1BSRVMpKSB7XG4gXHRcdG5lZWRlZCAmIzQzOz0gc2l6ZW9mKHN0cnVjdCBpZWVlODAyMTFfdWhyX3BfZWRjYV9pbmZvKTtcbiBcdFx0aWYgKGxlbiBcdTAwM2MgbmVlZGVkKVxuIFx0XHRcdHJldHVybiBmYWxzZTtcbiBcdH1cbiBcbiBcdC8qIERCRSBPcGVyYXRpb24gUGFyYW1ldGVycyAoZml4ZWQgMSBieXRlICYjNDM7IG9wdGlvbmFsIDIgYnl0ZXMpICovXG4tXHRpZiAob3Blci1cdTAwM2VwYXJhbXMgXHUwMDI2IGNwdV90b19sZTE2KElFRUU4MDIxMV9VSFJfT1BFUl9QQVJBTVNfREJFX0VOQSkpIHtcbiYjNDM7XHRpZiAob3Blci1cdTAwM2VwYXJhbXMgXHUwMDI2IGNwdV90b19sZTE2KElFRUU4MDIxMV9VSFJfT1BFUl9QQVJBTVNfREJFX1BSRVMpKSB7XG4gXHRcdGNvbnN0IHN0cnVjdCBpZWVlODAyMTFfdWhyX2RiZV9pbmZvICpkYmUgPVxuIFx0XHRcdChjb25zdCB2b2lkICopKGRhdGEgJiM0MzsgbmVlZGVkKTtcbiBcbkBAIC0zMjksMTkgJiM0MzszMjksMTkgQEAgc3RhdGljIGlubGluZSBib29sIGllZWU4MDIxMV91aHJfb3Blcl9zaXplX29rKGNvbnN0IHU4ICpkYXRhLCB1OCBsZW4sXG4gXHRyZXR1cm4gbGVuIFx1MDAzZT0gbmVlZGVkO1xuIH1cbiBcbi0vKlxuLSAqIE5vdGU6IGNhbm5vdCBjYWxsIHRoaXMgb24gdGhlIGVsZW1lbnQgY29taW5nIGZyb20gYSBiZWFjb24sXG4tICogbXVzdCBlbnN1cmUgaWVlZTgwMjExX3Vocl9vcGVyX3NpemVfb2soLi4uLCBmYWxzZSkgZmlyc3Rcbi0gKi9cbiYjNDM7LyogTm90ZTogbXVzdCBlbnN1cmUgaWVlZTgwMjExX3Vocl9vcGVyX3NpemVfb2soLi4uKSBmaXJzdCAqL1xuIHN0YXRpYyBpbmxpbmUgY29uc3Qgc3RydWN0IGllZWU4MDIxMV91aHJfbnBjYV9pbmZvICpcbiBpZWVlODAyMTFfdWhyX25wY2FfaW5mbyhjb25zdCBzdHJ1Y3QgaWVlZTgwMjExX3Vocl9vcGVyYXRpb24gKm9wZXIpXG4ge1xuIFx0Y29uc3QgdTggKnBvcyA9IG9wZXItXHUwMDNldmFyaWFibGU7XG4gXG4mIzQzO1x0aWYgKCEob3Blci1cdTAwM2VwYXJhbXMgXHUwMDI2IGNwdV90b19sZTE2KElFRUU4MDIxMV9VSFJfT1BFUl9QQVJBTVNfTlBDQV9QUkVTKSkpXG4mIzQzO1x0XHRyZXR1cm4gTlVMTDtcbiYjNDM7XG4gXHRpZiAoIShvcGVyLVx1MDAzZXBhcmFtcyBcdTAwMjYgY3B1X3RvX2xlMTYoSUVFRTgwMjExX1VIUl9PUEVSX1BBUkFNU19OUENBX0VOQSkpKVxuIFx0XHRyZXR1cm4gTlVMTDtcbiBcbi1cdGlmIChvcGVyLVx1MDAzZXBhcmFtcyBcdTAwMjYgY3B1X3RvX2xlMTYoSUVFRTgwMjExX1VIUl9PUEVSX1BBUkFNU19EUFNfRU5BKSlcbiYjNDM7XHRpZiAob3Blci1cdTAwM2VwYXJhbXMgXHUwMDI2IGNwdV90b19sZTE2KElFRUU4MDIxMV9VSFJfT1BFUl9QQVJBTVNfRFBTX1BSRVMpKVxuIFx0XHRwb3MgJiM0Mzs9IHNpemVvZihzdHJ1Y3QgaWVlZTgwMjExX3Vocl9kcHNfaW5mbyk7XG4gXG4gXHRyZXR1cm4gKGNvbnN0IHZvaWQgKilwb3M7XG5AQCAtMzYwLDIyICYjNDM7MzYwLDIyIEBAIGllZWU4MDIxMV91aHJfbnBjYV9kaXNfc3ViY2hfYml0bWFwKGNvbnN0IHN0cnVjdCBpZWVlODAyMTFfdWhyX29wZXJhdGlvbiAqb3BlcilcbiBcdHJldHVybiBucGNhLVx1MDAzZWRpc19zdWJjaF9ibWFwO1xuIH1cbiBcbi0vKlxuLSAqIE5vdGU6IGNhbm5vdCBjYWxsIHRoaXMgb24gdGhlIGVsZW1lbnQgY29taW5nIGZyb20gYSBiZWFjb24sXG4tICogbXVzdCBlbnN1cmUgaWVlZTgwMjExX3Vocl9vcGVyX3NpemVfb2soLi4uLCBmYWxzZSkgZmlyc3Rcbi0gKi9cbiYjNDM7LyogTm90ZTogbXVzdCBlbnN1cmUgaWVlZTgwMjExX3Vocl9vcGVyX3NpemVfb2soLi4uKSBmaXJzdCAqL1xuIHN0YXRpYyBpbmxpbmUgY29uc3Qgc3RydWN0IGllZWU4MDIxMV91aHJfZGJlX2luZm8gKlxuIGllZWU4MDIxMV91aHJfb3Blcl9kYmVfaW5mbyhjb25zdCBzdHJ1Y3QgaWVlZTgwMjExX3Vocl9vcGVyYXRpb24gKm9wZXIpXG4ge1xuIFx0Y29uc3QgdTggKnBvcyA9IG9wZXItXHUwMDNldmFyaWFibGU7XG4gXG4mIzQzO1x0aWYgKCEob3Blci1cdTAwM2VwYXJhbXMgXHUwMDI2IGNwdV90b19sZTE2KElFRUU4MDIxMV9VSFJfT1BFUl9QQVJBTVNfREJFX1BSRVMpKSlcbiYjNDM7XHRcdHJldHVybiBOVUxMO1xuJiM0MztcbiBcdGlmICghKG9wZXItXHUwMDNlcGFyYW1zIFx1MDAyNiBjcHVfdG9fbGUxNihJRUVFODAyMTFfVUhSX09QRVJfUEFSQU1TX0RCRV9FTkEpKSlcbiBcdFx0cmV0dXJuIE5VTEw7XG4gXG4tXHRpZiAob3Blci1cdTAwM2VwYXJhbXMgXHUwMDI2IGNwdV90b19sZTE2KElFRUU4MDIxMV9VSFJfT1BFUl9QQVJBTVNfRFBTX0VOQSkpXG4mIzQzO1x0aWYgKG9wZXItXHUwMDNlcGFyYW1zIFx1MDAyNiBjcHVfdG9fbGUxNihJRUVFODAyMTFfVUhSX09QRVJfUEFSQU1TX0RQU19QUkVTKSlcbiBcdFx0cG9zICYjNDM7PSBzaXplb2Yoc3RydWN0IGllZWU4MDIxMV91aHJfZHBzX2luZm8pO1xuIFxuLVx0aWYgKG9wZXItXHUwMDNlcGFyYW1zIFx1MDAyNiBjcHVfdG9fbGUxNihJRUVFODAyMTFfVUhSX09QRVJfUEFSQU1TX05QQ0FfRU5BKSkge1xuJiM0MztcdGlmIChvcGVyLVx1MDAzZXBhcmFtcyBcdTAwMjYgY3B1X3RvX2xlMTYoSUVFRTgwMjExX1VIUl9PUEVSX1BBUkFNU19OUENBX1BSRVMpKSB7XG4gXHRcdGNvbnN0IHN0cnVjdCBpZWVlODAyMTFfdWhyX25wY2FfaW5mbyAqbnBjYSA9IChjb25zdCB2b2lkICopcG9zO1xuIFxuIFx0XHRwb3MgJiM0Mzs9IHNpemVvZigqbnBjYSk7XG5AQCAtMzgzLDcgJiM0MzszODMsNyBAQCBpZWVlODAyMTFfdWhyX29wZXJfZGJlX2luZm8oY29uc3Qgc3RydWN0IGllZWU4MDIxMV91aHJfb3BlcmF0aW9uICpvcGVyKVxuIFx0XHRcdHBvcyAmIzQzOz0gc2l6ZW9mKG5wY2EtXHUwMDNlZGlzX3N1YmNoX2JtYXBbMF0pO1xuIFx0fVxuIFxuLVx0aWYgKG9wZXItXHUwMDNlcGFyYW1zIFx1MDAyNiBjcHVfdG9fbGUxNihJRUVFODAyMTFfVUhSX09QRVJfUEFSQU1TX1BFRENBX0VOQSkpXG4mIzQzO1x0aWYgKG9wZXItXHUwMDNlcGFyYW1zIFx1MDAyNiBjcHVfdG9fbGUxNihJRUVFODAyMTFfVUhSX09QRVJfUEFSQU1TX1BFRENBX1BSRVMpKVxuIFx0XHRwb3MgJiM0Mzs9IHNpemVvZihzdHJ1Y3QgaWVlZTgwMjExX3Vocl9wX2VkY2FfaW5mbyk7XG4gXG4gXHRyZXR1cm4gKGNvbnN0IHZvaWQgKilwb3M7XG5kaWZmIC0tZ2l0IGEvbmV0L21hYzgwMjExL21sbWUuYyBiL25ldC9tYWM4MDIxMS9tbG1lLmNcbmluZGV4IDllOTIzMzdiYjZmOWU1Li40YWQ1ZTk0OTczMjMxNiAxMDA2NDRcbi0tLSBhL25ldC9tYWM4MDIxMS9tbG1lLmNcbiYjNDM7JiM0MzsmIzQzOyBiL25ldC9tYWM4MDIxMS9tbG1lLmNcbkBAIC0xNzAxLDggJiM0MzsxNzAxLDcgQEAgc3RhdGljIGludCBpZWVlODAyMTFfY29uZmlnX2J3KHN0cnVjdCBpZWVlODAyMTFfbGlua19kYXRhICpsaW5rLFxuIFx0aWYgKHN0eXBlICE9IElFRUU4MDIxMV9TVFlQRV9CRUFDT04gXHUwMDI2XHUwMDI2XG4gXHQgICAgY2hhbnJlcS5vcGVyLm5wY2FfY2hhbiBcdTAwMjZcdTAwMjYgZWxlbXMtXHUwMDNldWhyX29wZXJhdGlvbiBcdTAwMjZcdTAwMjZcbiBcdCAgICBpZWVlODAyMTFfdWhyX29wZXJfc2l6ZV9vaygoY29uc3Qgdm9pZCAqKWVsZW1zLVx1MDAzZXVocl9vcGVyYXRpb24sXG4tXHRcdFx0XHQgICAgICAgZWxlbXMtXHUwMDNldWhyX29wZXJhdGlvbl9sZW4sXG4tXHRcdFx0XHQgICAgICAgZmFsc2UpKSB7XG4mIzQzO1x0XHRcdFx0ICAgICAgIGVsZW1zLVx1MDAzZXVocl9vcGVyYXRpb25fbGVuKSkge1xuIFx0XHRjb25zdCBzdHJ1Y3QgaWVlZTgwMjExX3Vocl9ucGNhX2luZm8gKm5wY2E7XG4gXHRcdHN0cnVjdCBpZWVlODAyMTFfYnNzX25wY2FfcGFyYW1zIHBhcmFtcyA9IHt9O1xuIFxuZGlmZiAtLWdpdCBhL25ldC9tYWM4MDIxMS9wYXJzZS5jIGIvbmV0L21hYzgwMjExL3BhcnNlLmNcbmluZGV4IGMyZjJmNzhmMmI0ZjcyLi5jYjJiZTE2N2NkZTc5NSAxMDA2NDRcbi0tLSBhL25ldC9tYWM4MDIxMS9wYXJzZS5jXG4mIzQzOyYjNDM7JiM0MzsgYi9uZXQvbWFjODAyMTEvcGFyc2UuY1xuQEAgLTIwOSw5ICYjNDM7MjA5LDcgQEAgaWVlZTgwMjExX3BhcnNlX2V4dGVuc2lvbl9lbGVtZW50KHUzMiAqY3JjLFxuIFx0XHRpZiAocGFyYW1zLVx1MDAzZW1vZGUgXHUwMDNjIElFRUU4MDIxMV9DT05OX01PREVfVUhSKVxuIFx0XHRcdGJyZWFrO1xuIFx0XHRjYWxjX2NyYyA9IHRydWU7XG4tXHRcdGlmIChpZWVlODAyMTFfdWhyX29wZXJfc2l6ZV9vayhkYXRhLCBsZW4sXG4tXHRcdFx0XHRcdCAgICAgICBwYXJhbXMtXHUwMDNldHlwZSA9PSAoSUVFRTgwMjExX0ZUWVBFX01HTVQgfFxuLVx0XHRcdFx0XHRcdFx0XHRJRUVFODAyMTFfU1RZUEVfQkVBQ09OKSkpIHtcbiYjNDM7XHRcdGlmIChpZWVlODAyMTFfdWhyX29wZXJfc2l6ZV9vayhkYXRhLCBsZW4pKSB7XG4gXHRcdFx0ZWxlbXMtXHUwMDNldWhyX29wZXJhdGlvbiA9IGRhdGE7XG4gXHRcdFx0ZWxlbXMtXHUwMDNldWhyX29wZXJhdGlvbl9sZW4gPSBsZW47XG4gXHRcdH1cbmRpZmYgLS1naXQgYS9uZXQvd2lyZWxlc3Mvbmw4MDIxMS5jIGIvbmV0L3dpcmVsZXNzL25sODAyMTEuY1xuaW5kZXggMjQyMDcxYWQxMGQ2YzkuLjVmYTcwOTc0ZDU3Y2MxIDEwMDY0NFxuLS0tIGEvbmV0L3dpcmVsZXNzL25sODAyMTEuY1xuJiM0MzsmIzQzOyYjNDM7IGIvbmV0L3dpcmVsZXNzL25sODAyMTEuY1xuQEAgLTQ0MSw3ICYjNDM7NDQxLDcgQEAgc3RhdGljIGludCB2YWxpZGF0ZV91aHJfb3BlcmF0aW9uKGNvbnN0IHN0cnVjdCBubGF0dHIgKmF0dHIsXG4gXHRjb25zdCB1OCAqZGF0YSA9IG5sYV9kYXRhKGF0dHIpO1xuIFx0dW5zaWduZWQgaW50IGxlbiA9IG5sYV9sZW4oYXR0cik7XG4gXG4tXHRpZiAoIWllZWU4MDIxMV91aHJfb3Blcl9zaXplX29rKGRhdGEsIGxlbiwgZmFsc2UpKVxuJiM0MztcdGlmICghaWVlZTgwMjExX3Vocl9vcGVyX3NpemVfb2soZGF0YSwgbGVuKSlcbiBcdFx0cmV0dXJuIC1FSU5WQUw7XG4gXHRyZXR1cm4gMDtcbiB9XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTUgMjM6MDU8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7Q0ZHODAyMTEmIzM0OywKICAgICYjMzQ7TUFDODAyMTEmIzM0OywKICAgICYjMzQ7TUFDODAyMTFfSFdTSU0mIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDt2YWxpZGF0ZV91aHJfb3BlcmF0aW9uJiMzNDssCiAgICAmIzM0O2llZWU4MDIxMV9wYXJzZV9leHRlbnNpb25fZWxlbWVudCYjMzQ7LAogICAgJiMzNDtpZWVlODAyMTFfY29uZmlnX2J3JiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBwYXJzaW5nIGFuZCB2YWxpZGF0aW9uIGxvZ2ljIGZvciBJRUVFIDgwMi4xMSBVSFIgKFVsdHJhIEhpZ2ggUmVsaWFiaWxpdHkpIG9wZXJhdGlvbiBlbGVtZW50cy4gSXQgY2hhbmdlcyB0aGUgc2l6ZSB2YWxpZGF0aW9uIGxvZ2ljIGJ5IGNoZWNraW5nIGZvciBwcmVzZW5jZSBmbGFncyBpbnN0ZWFkIG9mIGVuYWJsZSBmbGFncy4gVGhlIG1vZGlmaWVkIGlubGluZSBmdW5jdGlvbiBpcyBjYWxsZWQgZnJvbSBuZXRsaW5rIGF0dHJpYnV0ZSB2YWxpZGF0aW9uIChgdmFsaWRhdGVfdWhyX29wZXJhdGlvbmApLCBtYW5hZ2VtZW50IGZyYW1lIHBhcnNpbmcgKGBpZWVlODAyMTFfcGFyc2VfZXh0ZW5zaW9uX2VsZW1lbnRgKSwgYW5kIGJhbmR3aWR0aCBjb25maWd1cmF0aW9uIChgaWVlZTgwMjExX2NvbmZpZ19id2ApLiBUaGVzZSBhcmUgcmVhY2hhYmxlIGZyb20gdXNlciBzcGFjZSB2aWEgbmV0bGluayBhbmQgZnJvbSBpbmplY3RlZCBtYW5hZ2VtZW50IGZyYW1lcywgbWFraW5nIGl0IGhpZ2hseSByZWxldmFudCBmb3IgZnV6emluZy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkluc3RydWN0aW9uOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+WW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuCllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lCmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC4KCklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpbgp5b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHkKdXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy4KClJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6Ci0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy4KLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy4KLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuCi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLApldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuCgpJZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoCnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLgoKV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086CjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuCiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLgoyLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS4KICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLgogICBEbyBub3QgbGlzdCB0b28gZ2VuZXJpYyBjb25maWdzICh3ZSBhbHJlYWR5IGhhdmUgdGhlbSBlbmFibGVkKS4gT25seSBsaXN0IHRob3NlIHRoYXQKICAgc3BlY2lmaWNhbGx5IGNvdmVyIHRoZSBtb2RpZmllZCBjb2RlLiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3Mgb3V0cHV0IGFycmF5LAogICBhbmQgRE8gTk9UIGFkZCBhICYjMzk7Q09ORklHXyYjMzk7IHByZWZpeCAoZS5nLiwgcmV0dXJuICYjMzQ7TkVUX0lQVjQmIzM0OyBpbnN0ZWFkIG9mICYjMzQ7Q09ORklHX05FVF9JUFY0JiMzNDspLgpQcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy4KCgpVc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLgpJdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS4KSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlByb21wdDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOgpjb21taXQgNzJjMTAyODZmMzMxZTY3ZGM1YjZiNzJkMjRjMWIxMGUyZDM3M2M2YwpBdXRob3I6IHN5ei1jbHVzdGVyICZsdDt0cmlhZ2VAc3l6a2FsbGVyLmNvbSZndDsKRGF0ZTogICBXZWQgSnVsIDE1IDIzOjA1OjE0IDIwMjYgJiM0MzswMDAwCgogICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3CgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9pZWVlODAyMTEtdWhyLmggYi9pbmNsdWRlL2xpbnV4L2llZWU4MDIxMS11aHIuaAppbmRleCA1OTdjOWU1NTkyNjFiOS4uNjY1ZDRiM2E1YjQxODYgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvaWVlZTgwMjExLXVoci5oCiYjNDM7JiM0MzsmIzQzOyBiL2luY2x1ZGUvbGludXgvaWVlZTgwMjExLXVoci5oCkBAIC0xNyw2ICYjNDM7MTcsMTEgQEAKICNkZWZpbmUgSUVFRTgwMjExX1VIUl9PUEVSX1BBUkFNU19QRURDQV9FTkEJCTB4MDAwNAogI2RlZmluZSBJRUVFODAyMTFfVUhSX09QRVJfUEFSQU1TX0RCRV9FTkEJCTB4MDAwOAogI2RlZmluZSBJRUVFODAyMTFfVUhSX09QRVJfUEFSQU1TX0RCRV9CVwkJMHgwMDcwCiYjNDM7I2RlZmluZSBJRUVFODAyMTFfVUhSX09QRVJfUEFSQU1TX0RVT19QUkVTCQkweDAwODAKJiM0MzsjZGVmaW5lIElFRUU4MDIxMV9VSFJfT1BFUl9QQVJBTVNfRFBTX1BSRVMJCTB4MDEwMAomIzQzOyNkZWZpbmUgSUVFRTgwMjExX1VIUl9PUEVSX1BBUkFNU19OUENBX1BSRVMJCTB4MDIwMAomIzQzOyNkZWZpbmUgSUVFRTgwMjExX1VIUl9PUEVSX1BBUkFNU19QRURDQV9QUkVTCQkweDA0MDAKJiM0MzsjZGVmaW5lIElFRUU4MDIxMV9VSFJfT1BFUl9QQVJBTVNfREJFX1BSRVMJCTB4MDgwMAogCiBzdHJ1Y3QgaWVlZTgwMjExX3Vocl9vcGVyYXRpb24gewogCV9fbGUxNiBwYXJhbXM7CkBAIC0yNjUsOCAmIzQzOzI3MCw3IEBAIHN0cnVjdCBpZWVlODAyMTFfdWhyX3BfZWRjYV9pbmZvIHsKIAlfX2xlMTYgcGFyYW1zOwogfSBfX3BhY2tlZDsKIAotc3RhdGljIGlubGluZSBib29sIGllZWU4MDIxMV91aHJfb3Blcl9zaXplX29rKGNvbnN0IHU4ICpkYXRhLCB1OCBsZW4sCi0JCQkJCSAgICAgIGJvb2wgYmVhY29uKQomIzQzO3N0YXRpYyBpbmxpbmUgYm9vbCBpZWVlODAyMTFfdWhyX29wZXJfc2l6ZV9vayhjb25zdCB1OCAqZGF0YSwgdTggbGVuKQogewogCWNvbnN0IHN0cnVjdCBpZWVlODAyMTFfdWhyX29wZXJhdGlvbiAqb3BlciA9IChjb25zdCB2b2lkICopZGF0YTsKIAl1OCBuZWVkZWQgPSBzaXplb2YoKm9wZXIpOwpAQCAtMjc0LDE5ICYjNDM7Mjc4LDE1IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBpZWVlODAyMTFfdWhyX29wZXJfc2l6ZV9vayhjb25zdCB1OCAqZGF0YSwgdTggbGVuLAogCWlmIChsZW4gJmx0OyBuZWVkZWQpCiAJCXJldHVybiBmYWxzZTsKIAotCS8qIG5vdGhpbmcgZWxzZSBwcmVzZW50IGluIGJlYWNvbnMgKi8KLQlpZiAoYmVhY29uKQotCQlyZXR1cm4gdHJ1ZTsKLQogCS8qIERQUyBPcGVyYXRpb24gUGFyYW1ldGVycyAoZml4ZWQgNCBieXRlcykgKi8KLQlpZiAob3Blci0mZ3Q7cGFyYW1zICZhbXA7IGNwdV90b19sZTE2KElFRUU4MDIxMV9VSFJfT1BFUl9QQVJBTVNfRFBTX0VOQSkpIHsKJiM0MzsJaWYgKG9wZXItJmd0O3BhcmFtcyAmYW1wOyBjcHVfdG9fbGUxNihJRUVFODAyMTFfVUhSX09QRVJfUEFSQU1TX0RQU19QUkVTKSkgewogCQluZWVkZWQgJiM0Mzs9IHNpemVvZihzdHJ1Y3QgaWVlZTgwMjExX3Vocl9kcHNfaW5mbyk7CiAJCWlmIChsZW4gJmx0OyBuZWVkZWQpCiAJCQlyZXR1cm4gZmFsc2U7CiAJfQogCiAJLyogTlBDQSBPcGVyYXRpb24gUGFyYW1ldGVycyAoZml4ZWQgNCBieXRlcyAmIzQzOyBvcHRpb25hbCAyIGJ5dGVzKSAqLwotCWlmIChvcGVyLSZndDtwYXJhbXMgJmFtcDsgY3B1X3RvX2xlMTYoSUVFRTgwMjExX1VIUl9PUEVSX1BBUkFNU19OUENBX0VOQSkpIHsKJiM0MzsJaWYgKG9wZXItJmd0O3BhcmFtcyAmYW1wOyBjcHVfdG9fbGUxNihJRUVFODAyMTFfVUhSX09QRVJfUEFSQU1TX05QQ0FfUFJFUykpIHsKIAkJY29uc3Qgc3RydWN0IGllZWU4MDIxMV91aHJfbnBjYV9pbmZvICpucGNhID0KIAkJCShjb25zdCB2b2lkICopKGRhdGEgJiM0MzsgbmVlZGVkKTsKIApAQCAtMzAzLDE0ICYjNDM7MzAzLDE0IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBpZWVlODAyMTFfdWhyX29wZXJfc2l6ZV9vayhjb25zdCB1OCAqZGF0YSwgdTggbGVuLAogCX0KIAogCS8qIFAtRURDQSBPcGVyYXRpb24gUGFyYW1ldGVycyAoZml4ZWQgMyBieXRlcykgKi8KLQlpZiAob3Blci0mZ3Q7cGFyYW1zICZhbXA7IGNwdV90b19sZTE2KElFRUU4MDIxMV9VSFJfT1BFUl9QQVJBTVNfUEVEQ0FfRU5BKSkgewomIzQzOwlpZiAob3Blci0mZ3Q7cGFyYW1zICZhbXA7IGNwdV90b19sZTE2KElFRUU4MDIxMV9VSFJfT1BFUl9QQVJBTVNfUEVEQ0FfUFJFUykpIHsKIAkJbmVlZGVkICYjNDM7PSBzaXplb2Yoc3RydWN0IGllZWU4MDIxMV91aHJfcF9lZGNhX2luZm8pOwogCQlpZiAobGVuICZsdDsgbmVlZGVkKQogCQkJcmV0dXJuIGZhbHNlOwogCX0KIAogCS8qIERCRSBPcGVyYXRpb24gUGFyYW1ldGVycyAoZml4ZWQgMSBieXRlICYjNDM7IG9wdGlvbmFsIDIgYnl0ZXMpICovCi0JaWYgKG9wZXItJmd0O3BhcmFtcyAmYW1wOyBjcHVfdG9fbGUxNihJRUVFODAyMTFfVUhSX09QRVJfUEFSQU1TX0RCRV9FTkEpKSB7CiYjNDM7CWlmIChvcGVyLSZndDtwYXJhbXMgJmFtcDsgY3B1X3RvX2xlMTYoSUVFRTgwMjExX1VIUl9PUEVSX1BBUkFNU19EQkVfUFJFUykpIHsKIAkJY29uc3Qgc3RydWN0IGllZWU4MDIxMV91aHJfZGJlX2luZm8gKmRiZSA9CiAJCQkoY29uc3Qgdm9pZCAqKShkYXRhICYjNDM7IG5lZWRlZCk7CiAKQEAgLTMyOSwxOSAmIzQzOzMyOSwxOSBAQCBzdGF0aWMgaW5saW5lIGJvb2wgaWVlZTgwMjExX3Vocl9vcGVyX3NpemVfb2soY29uc3QgdTggKmRhdGEsIHU4IGxlbiwKIAlyZXR1cm4gbGVuICZndDs9IG5lZWRlZDsKIH0KIAotLyoKLSAqIE5vdGU6IGNhbm5vdCBjYWxsIHRoaXMgb24gdGhlIGVsZW1lbnQgY29taW5nIGZyb20gYSBiZWFjb24sCi0gKiBtdXN0IGVuc3VyZSBpZWVlODAyMTFfdWhyX29wZXJfc2l6ZV9vayguLi4sIGZhbHNlKSBmaXJzdAotICovCiYjNDM7LyogTm90ZTogbXVzdCBlbnN1cmUgaWVlZTgwMjExX3Vocl9vcGVyX3NpemVfb2soLi4uKSBmaXJzdCAqLwogc3RhdGljIGlubGluZSBjb25zdCBzdHJ1Y3QgaWVlZTgwMjExX3Vocl9ucGNhX2luZm8gKgogaWVlZTgwMjExX3Vocl9ucGNhX2luZm8oY29uc3Qgc3RydWN0IGllZWU4MDIxMV91aHJfb3BlcmF0aW9uICpvcGVyKQogewogCWNvbnN0IHU4ICpwb3MgPSBvcGVyLSZndDt2YXJpYWJsZTsKIAomIzQzOwlpZiAoIShvcGVyLSZndDtwYXJhbXMgJmFtcDsgY3B1X3RvX2xlMTYoSUVFRTgwMjExX1VIUl9PUEVSX1BBUkFNU19OUENBX1BSRVMpKSkKJiM0MzsJCXJldHVybiBOVUxMOwomIzQzOwogCWlmICghKG9wZXItJmd0O3BhcmFtcyAmYW1wOyBjcHVfdG9fbGUxNihJRUVFODAyMTFfVUhSX09QRVJfUEFSQU1TX05QQ0FfRU5BKSkpCiAJCXJldHVybiBOVUxMOwogCi0JaWYgKG9wZXItJmd0O3BhcmFtcyAmYW1wOyBjcHVfdG9fbGUxNihJRUVFODAyMTFfVUhSX09QRVJfUEFSQU1TX0RQU19FTkEpKQomIzQzOwlpZiAob3Blci0mZ3Q7cGFyYW1zICZhbXA7IGNwdV90b19sZTE2KElFRUU4MDIxMV9VSFJfT1BFUl9QQVJBTVNfRFBTX1BSRVMpKQogCQlwb3MgJiM0Mzs9IHNpemVvZihzdHJ1Y3QgaWVlZTgwMjExX3Vocl9kcHNfaW5mbyk7CiAKIAlyZXR1cm4gKGNvbnN0IHZvaWQgKilwb3M7CkBAIC0zNjAsMjIgJiM0MzszNjAsMjIgQEAgaWVlZTgwMjExX3Vocl9ucGNhX2Rpc19zdWJjaF9iaXRtYXAoY29uc3Qgc3RydWN0IGllZWU4MDIxMV91aHJfb3BlcmF0aW9uICpvcGVyKQogCXJldHVybiBucGNhLSZndDtkaXNfc3ViY2hfYm1hcDsKIH0KIAotLyoKLSAqIE5vdGU6IGNhbm5vdCBjYWxsIHRoaXMgb24gdGhlIGVsZW1lbnQgY29taW5nIGZyb20gYSBiZWFjb24sCi0gKiBtdXN0IGVuc3VyZSBpZWVlODAyMTFfdWhyX29wZXJfc2l6ZV9vayguLi4sIGZhbHNlKSBmaXJzdAotICovCiYjNDM7LyogTm90ZTogbXVzdCBlbnN1cmUgaWVlZTgwMjExX3Vocl9vcGVyX3NpemVfb2soLi4uKSBmaXJzdCAqLwogc3RhdGljIGlubGluZSBjb25zdCBzdHJ1Y3QgaWVlZTgwMjExX3Vocl9kYmVfaW5mbyAqCiBpZWVlODAyMTFfdWhyX29wZXJfZGJlX2luZm8oY29uc3Qgc3RydWN0IGllZWU4MDIxMV91aHJfb3BlcmF0aW9uICpvcGVyKQogewogCWNvbnN0IHU4ICpwb3MgPSBvcGVyLSZndDt2YXJpYWJsZTsKIAomIzQzOwlpZiAoIShvcGVyLSZndDtwYXJhbXMgJmFtcDsgY3B1X3RvX2xlMTYoSUVFRTgwMjExX1VIUl9PUEVSX1BBUkFNU19EQkVfUFJFUykpKQomIzQzOwkJcmV0dXJuIE5VTEw7CiYjNDM7CiAJaWYgKCEob3Blci0mZ3Q7cGFyYW1zICZhbXA7IGNwdV90b19sZTE2KElFRUU4MDIxMV9VSFJfT1BFUl9QQVJBTVNfREJFX0VOQSkpKQogCQlyZXR1cm4gTlVMTDsKIAotCWlmIChvcGVyLSZndDtwYXJhbXMgJmFtcDsgY3B1X3RvX2xlMTYoSUVFRTgwMjExX1VIUl9PUEVSX1BBUkFNU19EUFNfRU5BKSkKJiM0MzsJaWYgKG9wZXItJmd0O3BhcmFtcyAmYW1wOyBjcHVfdG9fbGUxNihJRUVFODAyMTFfVUhSX09QRVJfUEFSQU1TX0RQU19QUkVTKSkKIAkJcG9zICYjNDM7PSBzaXplb2Yoc3RydWN0IGllZWU4MDIxMV91aHJfZHBzX2luZm8pOwogCi0JaWYgKG9wZXItJmd0O3BhcmFtcyAmYW1wOyBjcHVfdG9fbGUxNihJRUVFODAyMTFfVUhSX09QRVJfUEFSQU1TX05QQ0FfRU5BKSkgewomIzQzOwlpZiAob3Blci0mZ3Q7cGFyYW1zICZhbXA7IGNwdV90b19sZTE2KElFRUU4MDIxMV9VSFJfT1BFUl9QQVJBTVNfTlBDQV9QUkVTKSkgewogCQljb25zdCBzdHJ1Y3QgaWVlZTgwMjExX3Vocl9ucGNhX2luZm8gKm5wY2EgPSAoY29uc3Qgdm9pZCAqKXBvczsKIAogCQlwb3MgJiM0Mzs9IHNpemVvZigqbnBjYSk7CkBAIC0zODMsNyAmIzQzOzM4Myw3IEBAIGllZWU4MDIxMV91aHJfb3Blcl9kYmVfaW5mbyhjb25zdCBzdHJ1Y3QgaWVlZTgwMjExX3Vocl9vcGVyYXRpb24gKm9wZXIpCiAJCQlwb3MgJiM0Mzs9IHNpemVvZihucGNhLSZndDtkaXNfc3ViY2hfYm1hcFswXSk7CiAJfQogCi0JaWYgKG9wZXItJmd0O3BhcmFtcyAmYW1wOyBjcHVfdG9fbGUxNihJRUVFODAyMTFfVUhSX09QRVJfUEFSQU1TX1BFRENBX0VOQSkpCiYjNDM7CWlmIChvcGVyLSZndDtwYXJhbXMgJmFtcDsgY3B1X3RvX2xlMTYoSUVFRTgwMjExX1VIUl9PUEVSX1BBUkFNU19QRURDQV9QUkVTKSkKIAkJcG9zICYjNDM7PSBzaXplb2Yoc3RydWN0IGllZWU4MDIxMV91aHJfcF9lZGNhX2luZm8pOwogCiAJcmV0dXJuIChjb25zdCB2b2lkICopcG9zOwpkaWZmIC0tZ2l0IGEvbmV0L21hYzgwMjExL21sbWUuYyBiL25ldC9tYWM4MDIxMS9tbG1lLmMKaW5kZXggOWU5MjMzN2JiNmY5ZTUuLjRhZDVlOTQ5NzMyMzE2IDEwMDY0NAotLS0gYS9uZXQvbWFjODAyMTEvbWxtZS5jCiYjNDM7JiM0MzsmIzQzOyBiL25ldC9tYWM4MDIxMS9tbG1lLmMKQEAgLTE3MDEsOCAmIzQzOzE3MDEsNyBAQCBzdGF0aWMgaW50IGllZWU4MDIxMV9jb25maWdfYncoc3RydWN0IGllZWU4MDIxMV9saW5rX2RhdGEgKmxpbmssCiAJaWYgKHN0eXBlICE9IElFRUU4MDIxMV9TVFlQRV9CRUFDT04gJmFtcDsmYW1wOwogCSAgICBjaGFucmVxLm9wZXIubnBjYV9jaGFuICZhbXA7JmFtcDsgZWxlbXMtJmd0O3Vocl9vcGVyYXRpb24gJmFtcDsmYW1wOwogCSAgICBpZWVlODAyMTFfdWhyX29wZXJfc2l6ZV9vaygoY29uc3Qgdm9pZCAqKWVsZW1zLSZndDt1aHJfb3BlcmF0aW9uLAotCQkJCSAgICAgICBlbGVtcy0mZ3Q7dWhyX29wZXJhdGlvbl9sZW4sCi0JCQkJICAgICAgIGZhbHNlKSkgewomIzQzOwkJCQkgICAgICAgZWxlbXMtJmd0O3Vocl9vcGVyYXRpb25fbGVuKSkgewogCQljb25zdCBzdHJ1Y3QgaWVlZTgwMjExX3Vocl9ucGNhX2luZm8gKm5wY2E7CiAJCXN0cnVjdCBpZWVlODAyMTFfYnNzX25wY2FfcGFyYW1zIHBhcmFtcyA9IHt9OwogCmRpZmYgLS1naXQgYS9uZXQvbWFjODAyMTEvcGFyc2UuYyBiL25ldC9tYWM4MDIxMS9wYXJzZS5jCmluZGV4IGMyZjJmNzhmMmI0ZjcyLi5jYjJiZTE2N2NkZTc5NSAxMDA2NDQKLS0tIGEvbmV0L21hYzgwMjExL3BhcnNlLmMKJiM0MzsmIzQzOyYjNDM7IGIvbmV0L21hYzgwMjExL3BhcnNlLmMKQEAgLTIwOSw5ICYjNDM7MjA5LDcgQEAgaWVlZTgwMjExX3BhcnNlX2V4dGVuc2lvbl9lbGVtZW50KHUzMiAqY3JjLAogCQlpZiAocGFyYW1zLSZndDttb2RlICZsdDsgSUVFRTgwMjExX0NPTk5fTU9ERV9VSFIpCiAJCQlicmVhazsKIAkJY2FsY19jcmMgPSB0cnVlOwotCQlpZiAoaWVlZTgwMjExX3Vocl9vcGVyX3NpemVfb2soZGF0YSwgbGVuLAotCQkJCQkgICAgICAgcGFyYW1zLSZndDt0eXBlID09IChJRUVFODAyMTFfRlRZUEVfTUdNVCB8Ci0JCQkJCQkJCUlFRUU4MDIxMV9TVFlQRV9CRUFDT04pKSkgewomIzQzOwkJaWYgKGllZWU4MDIxMV91aHJfb3Blcl9zaXplX29rKGRhdGEsIGxlbikpIHsKIAkJCWVsZW1zLSZndDt1aHJfb3BlcmF0aW9uID0gZGF0YTsKIAkJCWVsZW1zLSZndDt1aHJfb3BlcmF0aW9uX2xlbiA9IGxlbjsKIAkJfQpkaWZmIC0tZ2l0IGEvbmV0L3dpcmVsZXNzL25sODAyMTEuYyBiL25ldC93aXJlbGVzcy9ubDgwMjExLmMKaW5kZXggMjQyMDcxYWQxMGQ2YzkuLjVmYTcwOTc0ZDU3Y2MxIDEwMDY0NAotLS0gYS9uZXQvd2lyZWxlc3Mvbmw4MDIxMS5jCiYjNDM7JiM0MzsmIzQzOyBiL25ldC93aXJlbGVzcy9ubDgwMjExLmMKQEAgLTQ0MSw3ICYjNDM7NDQxLDcgQEAgc3RhdGljIGludCB2YWxpZGF0ZV91aHJfb3BlcmF0aW9uKGNvbnN0IHN0cnVjdCBubGF0dHIgKmF0dHIsCiAJY29uc3QgdTggKmRhdGEgPSBubGFfZGF0YShhdHRyKTsKIAl1bnNpZ25lZCBpbnQgbGVuID0gbmxhX2xlbihhdHRyKTsKIAotCWlmICghaWVlZTgwMjExX3Vocl9vcGVyX3NpemVfb2soZGF0YSwgbGVuLCBmYWxzZSkpCiYjNDM7CWlmICghaWVlZTgwMjExX3Vocl9vcGVyX3NpemVfb2soZGF0YSwgbGVuKSkKIAkJcmV0dXJuIC1FSU5WQUw7CiAJcmV0dXJuIDA7CiB9CjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE1IDIzOjA1PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDQ3NzkKCQkJCQkJCW91dHB1dDogMjAKCQkJCQkJCXRob3VnaHRzOiA0NTgKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBVSFIgT3BlcmF0aW9uIEVsZW1lbnQgUGF0Y2gqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggdGhhdCB0d2Vha3MgdGhlIGBpZWVlODAyMTFfdWhyX29wZXJfc2l6ZV9va2AgZnVuY3Rpb24gYW5kIGl0cyByZWxhdGVkIGNhbGxzIGluIGBuZXQvbWFjODAyMTFgIGFuZCBgbmV0L3dpcmVsZXNzYC4gSXQgbG9va3MgbGlrZSB0aGV5JiMzOTt2ZSByZW1vdmVkIHRoZSBgYmVhY29uYCBwYXJhbWV0ZXIgZnJvbSB0aGF0IGZ1bmN0aW9uIGFuZCBzd2FwcGVkIG91dCB0aGUgYF9FTkFgIG1hY3JvcyB3aXRoIGBfUFJFU2AgbWFjcm9zIGZvciBjaGVja2luZyBmaWVsZCBwcmVzZW5jZSB3aXRoaW4gdGhlIFVIUiBvcGVyYXRpb24gZWxlbWVudC4gTXkgaW1tZWRpYXRlIHRob3VnaHQgaXMsICYjMzQ7SXMgdGhpcyBnb2luZyB0byBhY3R1YWxseSB3b3JrPyYjMzQ7CgpGaXJzdCB0aGluZ3MgZmlyc3QsIGxldCYjMzk7cyBjb25maXJtIHJlYWNoYWJpbGl0eSBhbmQgZnVuY3Rpb25hbGl0eS4gSSBzZWUgYGllZWU4MDIxMV91aHJfb3Blcl9zaXplX29rYCBpcyBhbiBpbmxpbmUgZnVuY3Rpb24gZGVmaW5lZCBpbiBgaW5jbHVkZS9saW51eC9pZWVlODAyMTEtdWhyLmhgIGFuZCBpcyBjYWxsZWQgZnJvbSBhIGZldyBwbGFjZXMuIFNwZWNpZmljYWxseSwgYGllZWU4MDIxMV9jb25maWdfYndgIGluIGBuZXQvbWFjODAyMTEvbWxtZS5jYCwgYGllZWU4MDIxMV9wYXJzZV9leHRlbnNpb25fZWxlbWVudGAgaW4gYG5ldC9tYWM4MDIxMS9wYXJzZS5jYCwgYW5kIGZpbmFsbHkgYHZhbGlkYXRlX3Vocl9vcGVyYXRpb25gIGluIGBuZXQvd2lyZWxlc3Mvbmw4MDIxMS5jYC4gU28geWVhaCwgdGhpcyBkZWZpbml0ZWx5IHNlZW1zIHRvIGJlIGZ1bmN0aW9uaW5nIGFzIGludGVuZGVkLCBwYXJzaW5nIHRob3NlIDgwMi4xMSBVSFIgb3BlcmF0aW9uIGVsZW1lbnRzLiBXYWl0Li4uIFVIUi4gVGhhdCYjMzk7cyBwcm9iYWJseSBXaS1GaSA4LCBvciA4MDIuMTFibi4KCk5vdywgbGV0JiMzOTtzIGlkZW50aWZ5IHRoZSByZWxldmFudCBjb25maWd1cmF0aW9uIG9wdGlvbnMuIENsZWFybHksIGBDT05GSUdfTUFDODAyMTFgIGFuZCBgQ09ORklHX0NGRzgwMjExYCBhcmUgZ29pbmcgdG8gYmUgaW52b2x2ZWQgaGVyZS4gQW5kIHdpdGggZnV6emluZyBpbiBtaW5kLCBJIG5lZWQgdG8gcGlucG9pbnQgdGhlIGtleSBmdW5jdGlvbnMgdG8gdGFyZ2V0LiBMb29rcyBsaWtlIGBpZWVlODAyMTFfY29uZmlnX2J3YCwgYGllZWU4MDIxMV9wYXJzZV9leHRlbnNpb25fZWxlbWVudGAsIGFuZCBgdmFsaWRhdGVfdWhyX29wZXJhdGlvbmAgYXJlIHRoZSBwcmltYXJ5IGNhbmRpZGF0ZXMuIEkgc2hvdWxkIHByb2JhYmx5IGZvY3VzIG9uIGB2YWxpZGF0ZV91aHJfb3BlcmF0aW9uYCBpbiBgbmV0L3dpcmVsZXNzL25sODAyMTEuY2AgZmlyc3QgdG8gdW5kZXJzdGFuZCB0aGUgY29udGV4dCBvZiB0aGUgY2hhbmdlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE1IDIzOjA1PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3ZhbGlkYXRlX3Vocl9vcGVyYXRpb24mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7bmV0L3dpcmVsZXNzL25sODAyMTEuYz00Mjc9c3RhdGljIGludCB2YWxpZGF0ZV91aHJfY2FwYShjb25zdCBzdHJ1Y3QgbmxhdHRyICphdHRyLFxuLS1cbm5ldC93aXJlbGVzcy9ubDgwMjExLmMtNDM3LVxubmV0L3dpcmVsZXNzL25sODAyMTEuYzo0Mzg6c3RhdGljIGludCB2YWxpZGF0ZV91aHJfb3BlcmF0aW9uKGNvbnN0IHN0cnVjdCBubGF0dHIgKmF0dHIsXG5uZXQvd2lyZWxlc3Mvbmw4MDIxMS5jLTQzOS1cdFx0XHRcdCAgc3RydWN0IG5ldGxpbmtfZXh0X2FjayAqZXh0YWNrKVxuLS1cbm5ldC93aXJlbGVzcy9ubDgwMjExLmM9Njk4PXN0YXRpYyBjb25zdCBzdHJ1Y3QgbmxhX3BvbGljeSBubDgwMjExX3BvbGljeVtOVU1fTkw4MDIxMV9BVFRSXSA9IHtcbi0tXG5uZXQvd2lyZWxlc3Mvbmw4MDIxMS5jLTEwNzUtXHRbTkw4MDIxMV9BVFRSX1VIUl9PUEVSQVRJT05dID1cbm5ldC93aXJlbGVzcy9ubDgwMjExLmM6MTA3NjpcdFx0TkxBX1BPTElDWV9WQUxJREFURV9GTihOTEFfQklOQVJZLCB2YWxpZGF0ZV91aHJfb3BlcmF0aW9uKSxcbm5ldC93aXJlbGVzcy9ubDgwMjExLmMtMTA3Ny1cdFtOTDgwMjExX0FUVFJfTkFOX0NIQU5ORUxdID0gTkxBX1BPTElDWV9ORVNURUQobmw4MDIxMV9wb2xpY3kpLFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE1IDIzOjA1PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDYwMzIKCQkJCQkJCW91dHB1dDogMzAKCQkJCQkJCXRob3VnaHRzOiAxMTUKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIFBvdGVudGlhbCBTZWN1cml0eSBJbXBsaWNhdGlvbnMqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgY29kZSBhbmQgSSBrbm93IGB2YWxpZGF0ZV91aHJfb3BlcmF0aW9uYCBpcyBkZWZpbml0ZWx5IHJlYWNoYWJsZSB0aHJvdWdoIG5ldGxpbmsgcG9saWN5IHZhbGlkYXRpb24sIHRoYXQmIzM5O3MgZ29vZCB0byBrbm93LiBOb3csIEkgc2VlIGBpZWVlODAyMTFfcGFyc2VfZXh0ZW5zaW9uX2VsZW1lbnRgIGlzIGxvY2F0ZWQgaW4gYG5ldC9tYWM4MDIxMS9wYXJzZS5jYCBhbmQgYGllZWU4MDIxMV9jb25maWdfYndgIGlzIGluIGBuZXQvbWFjODAyMTEvbWxtZS5jYC4gSSBuZWVkIHRvIGZpZ3VyZSBvdXQgaG93IHRoZXNlIGZ1bmN0aW9ucyBpbnRlcmFjdCBhbmQgaWYgdGhlcmUmIzM5O3MgYW55IHBvdGVudGlhbCBmb3IgbWlzdXNlIG9yIHZ1bG5lcmFiaWxpdGllcy4gSSYjMzk7bSBzcGVjaWZpY2FsbHkgY3VyaW91cyBhYm91dCB0aGUgcmVsYXRpb25zaGlwIG9mIHRoZXNlIGZ1bmN0aW9ucyB0byBgaWVlZTgwMjExX3Vocl9vcGVyX3NpemVfb2tgLiBJJiMzOTttIGdvaW5nIHRvIGxvb2sgYXQgdGhlIGNyb3NzLXJlZmVyZW5jZXMgYW5kIHNlZSB3aGF0IGNhbGxzIGBpZWVlODAyMTFfdWhyX29wZXJfc2l6ZV9va2AuIFRoYXQgbWlnaHQgZ2l2ZSBtZSBzb21lIGludGVyZXN0aW5nIGxlYWRzLiBJIHdhbnQgdG8gc2VlIGlmIHRoaXMgZnVuY3Rpb24gaXMgdXNlZCBlbHNld2hlcmUsIGFuZCBpZiBpdCBpcywgaG93IGl0JiMzOTtzIGJlaW5nIHVzZWQuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTUgMjM6MDU8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7aWVlZTgwMjExX3Vocl9vcGVyX3NpemVfb2smIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7aW5jbHVkZS9saW51eC9pZWVlODAyMTEtdWhyLmg9MjY4PXN0cnVjdCBpZWVlODAyMTFfdWhyX3BfZWRjYV9pbmZvIHtcbi0tXG5pbmNsdWRlL2xpbnV4L2llZWU4MDIxMS11aHIuaC0yNzItXG5pbmNsdWRlL2xpbnV4L2llZWU4MDIxMS11aHIuaDoyNzM6c3RhdGljIGlubGluZSBib29sIGllZWU4MDIxMV91aHJfb3Blcl9zaXplX29rKGNvbnN0IHU4ICpkYXRhLCB1OCBsZW4pXG5pbmNsdWRlL2xpbnV4L2llZWU4MDIxMS11aHIuaC0yNzQte1xuLS1cbmluY2x1ZGUvbGludXgvaWVlZTgwMjExLXVoci5oLTMzMS1cbmluY2x1ZGUvbGludXgvaWVlZTgwMjExLXVoci5oOjMzMjovKiBOb3RlOiBtdXN0IGVuc3VyZSBpZWVlODAyMTFfdWhyX29wZXJfc2l6ZV9vayguLi4pIGZpcnN0ICovXG5pbmNsdWRlL2xpbnV4L2llZWU4MDIxMS11aHIuaC0zMzMtc3RhdGljIGlubGluZSBjb25zdCBzdHJ1Y3QgaWVlZTgwMjExX3Vocl9ucGNhX2luZm8gKlxuLS1cbmluY2x1ZGUvbGludXgvaWVlZTgwMjExLXVoci5oPTM1MT1pZWVlODAyMTFfdWhyX25wY2FfZGlzX3N1YmNoX2JpdG1hcChjb25zdCBzdHJ1Y3QgaWVlZTgwMjExX3Vocl9vcGVyYXRpb24gKm9wZXIpXG4tLVxuaW5jbHVkZS9saW51eC9pZWVlODAyMTEtdWhyLmgtMzYyLVxuaW5jbHVkZS9saW51eC9pZWVlODAyMTEtdWhyLmg6MzYzOi8qIE5vdGU6IG11c3QgZW5zdXJlIGllZWU4MDIxMV91aHJfb3Blcl9zaXplX29rKC4uLikgZmlyc3QgKi9cbmluY2x1ZGUvbGludXgvaWVlZTgwMjExLXVoci5oLTM2NC1zdGF0aWMgaW5saW5lIGNvbnN0IHN0cnVjdCBpZWVlODAyMTFfdWhyX2RiZV9pbmZvICpcbi0tXG5uZXQvbWFjODAyMTEvbWxtZS5jPTE1OTI9c3RhdGljIGludCBpZWVlODAyMTFfY29uZmlnX2J3KHN0cnVjdCBpZWVlODAyMTFfbGlua19kYXRhICpsaW5rLFxuLS1cbm5ldC9tYWM4MDIxMS9tbG1lLmMtMTcwMi1cdCAgICBjaGFucmVxLm9wZXIubnBjYV9jaGFuIFx1MDAyNlx1MDAyNiBlbGVtcy1cdTAwM2V1aHJfb3BlcmF0aW9uIFx1MDAyNlx1MDAyNlxubmV0L21hYzgwMjExL21sbWUuYzoxNzAzOlx0ICAgIGllZWU4MDIxMV91aHJfb3Blcl9zaXplX29rKChjb25zdCB2b2lkICopZWxlbXMtXHUwMDNldWhyX29wZXJhdGlvbixcbm5ldC9tYWM4MDIxMS9tbG1lLmMtMTcwNC1cdFx0XHRcdCAgICAgICBlbGVtcy1cdTAwM2V1aHJfb3BlcmF0aW9uX2xlbikpIHtcbi0tXG5uZXQvbWFjODAyMTEvcGFyc2UuYz03Mj1pZWVlODAyMTFfcGFyc2VfZXh0ZW5zaW9uX2VsZW1lbnQodTMyICpjcmMsXG4tLVxubmV0L21hYzgwMjExL3BhcnNlLmMtMjExLVx0XHRjYWxjX2NyYyA9IHRydWU7XG5uZXQvbWFjODAyMTEvcGFyc2UuYzoyMTI6XHRcdGlmIChpZWVlODAyMTFfdWhyX29wZXJfc2l6ZV9vayhkYXRhLCBsZW4pKSB7XG5uZXQvbWFjODAyMTEvcGFyc2UuYy0yMTMtXHRcdFx0ZWxlbXMtXHUwMDNldWhyX29wZXJhdGlvbiA9IGRhdGE7XG4tLVxubmV0L3dpcmVsZXNzL25sODAyMTEuYz00Mzg9c3RhdGljIGludCB2YWxpZGF0ZV91aHJfb3BlcmF0aW9uKGNvbnN0IHN0cnVjdCBubGF0dHIgKmF0dHIsXG4tLVxubmV0L3dpcmVsZXNzL25sODAyMTEuYy00NDMtXG5uZXQvd2lyZWxlc3Mvbmw4MDIxMS5jOjQ0NDpcdGlmICghaWVlZTgwMjExX3Vocl9vcGVyX3NpemVfb2soZGF0YSwgbGVuKSlcbm5ldC93aXJlbGVzcy9ubDgwMjExLmMtNDQ1LVx0XHRyZXR1cm4gLUVJTlZBTDtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD43LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNSAyMzowNTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA3MjczCgkJCQkJCQlvdXRwdXQ6IDIxCgkJCQkJCQl0aG91Z2h0czogNzIKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgdGFrZSBvbiB0aG9zZSBmdW5jdGlvbnMgYW5kIHRoZSBhcmVhcyBJIG5lZWQgdG8gZm9jdXMgb246CgoqKk15IEltbWVkaWF0ZSBBc3Nlc3NtZW50KioKCkFscmlnaHQsIGxldCYjMzk7cyBnZXQgZG93biB0byBicmFzcyB0YWNrcy4gQmFzZWQgb24gdGhlIGdpdmVuIGZ1bmN0aW9ucywgbXkgYXR0ZW50aW9uIGlzIGltbWVkaWF0ZWx5IGRyYXduIHRvIGEgZmV3IGtleSBhcmVhcyB3aXRoaW4gdGhlIDgwMi4xMSBzdGFjay4gV2UgaGF2ZSB0aHJlZSBtYWluIGZ1bmN0aW9ucyBmbGFnZ2VkIGZvciBpbnZlc3RpZ2F0aW9uOiBgaWVlZTgwMjExX2NvbmZpZ19id2AsIGBpZWVlODAyMTFfcGFyc2VfZXh0ZW5zaW9uX2VsZW1lbnRgLCBhbmQgYHZhbGlkYXRlX3Vocl9vcGVyYXRpb25gLiBJbW1lZGlhdGVseSwgbXkgYnJhaW4gc3RhcnRzIHJ1bm5pbmcgdGhyb3VnaCB0aGUgcG90ZW50aWFsIGltcGxpY2F0aW9ucy4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgaG93IHRoZXNlIGZ1bmN0aW9ucyBpbnRlcmFjdCwgYW5kIHdoYXQgdGhlIG92ZXJhbGwgc3lzdGVtIGJlaGF2aW91ciBpcyB3aGVuIHRoZXkgYXJlIGNhbGxlZC4KCmBpZWVlODAyMTFfY29uZmlnX2J3YCBpcywgb2YgY291cnNlLCBjcml0aWNhbCBmb3IgZGVmaW5pbmcgYmFuZHdpZHRoIHNldHRpbmdzLiBJIG5lZWQgdG8gZXhhbWluZSBpdHMgaW1wbGVtZW50YXRpb24sIGVzcGVjaWFsbHkgaG93IGl0IGhhbmRsZXMgdmFyaW91cyBiYW5kd2lkdGggbW9kZXMsIGNoYW5uZWwgc2VsZWN0aW9uLCBhbmQgYW55IHBvdGVudGlhbCBpbnRlcmFjdGlvbnMgd2l0aCByZWdpb25hbCByZWd1bGF0b3J5IGNvbnN0cmFpbnRzLiBJJiMzOTtsbCBuZWVkIHRvIGxvb2sgZm9yIGFueSBwb3RlbnRpYWwgZm9yIGJ1ZmZlciBvdmVyZmxvd3Mgb3IgaW5jb3JyZWN0IHBhcmFtZXRlciBoYW5kbGluZy4KCmBpZWVlODAyMTFfcGFyc2VfZXh0ZW5zaW9uX2VsZW1lbnRgIGlzIGFub3RoZXIgdml0YWwgcGllY2Ugb2YgdGhlIHB1enpsZS4gVGhpcyBsaWtlbHkgaGFuZGxlcyB0aGUgcGFyc2luZyBvZiB2ZW5kb3Itc3BlY2lmaWMgb3Igc3RhbmRhcmQgZXh0ZW5zaW9ucyB3aXRoaW4gdGhlIDgwMi4xMSBmcmFtZS4gVGhpcyBpcyBhIGNvbW1vbiBhdHRhY2sgdmVjdG9yLCBhbmQgSSBuZWVkIHRvIGFzc2VzcyBob3cgcm9idXN0IHRoZSBwYXJzaW5nIGxvZ2ljIGlzLiBBcmUgdGhlcmUgYW55IGtub3duIHZ1bG5lcmFiaWxpdGllcyByZWxhdGVkIHRvIG1hbGZvcm1lZCBleHRlbnNpb24gZWxlbWVudHMsIHBhcnRpY3VsYXJseSB0aG9zZSBpbnZvbHZpbmcgc2l6ZSBsaW1pdHMgb3IgZGF0YSB2YWxpZGF0aW9uPyBUaGUgZGV0YWlscyBvZiB0aGUgcGFyc2luZyBhcmUgZ29pbmcgdG8gYmUga2V5LCBlc3BlY2lhbGx5IGhvdyBpdCBoYW5kbGVzIHR5cGUtbGVuZ3RoLXZhbHVlIChUTFYpIHN0cnVjdHVyZXMuCgpGaW5hbGx5LCBgdmFsaWRhdGVfdWhyX29wZXJhdGlvbmAgc3VnZ2VzdHMgd2UmIzM5O3JlIGxvb2tpbmcgYXQgdGhlIHN1cHBvcnQgZm9yIFVsdHJhIEhpZ2ggUmF0ZSAoVUhSKSBtb2Rlcy4gSSBuZWVkIHRvIHNlZSBob3cgdGhlIHN5c3RlbSBlbnN1cmVzIHRoYXQgdGhlc2UgbW9kZXMgYXJlIHByb3Blcmx5IHZhbGlkYXRlZCBhbmQgdGhhdCBhbGwgdGhlIG5lY2Vzc2FyeSBwcmVyZXF1aXNpdGVzIGFyZSBtZXQuIFRoaXMgaW5jbHVkZXMgdGhlIHBvdGVudGlhbCBmb3IgcG93ZXIgY29uc3VtcHRpb24gY29uc2lkZXJhdGlvbnMsIHNwZWN0cnVtIGNvbXBhdGliaWxpdHksIGFuZCBvZiBjb3Vyc2UsIGFueSBwb3NzaWJsZSBzZWN1cml0eSB2dWxuZXJhYmlsaXRpZXMgaW5oZXJlbnQgaW4gc3VwcG9ydGluZyBhIGhpZ2hlciBkYXRhIHJhdGUuCgpNeSBuZXh0IHN0ZXAgaXMgdG8gZGl2ZSBpbnRvIHRoZSBjb25maWd1cmF0aW9uIGZpbGVzLiBJJiMzOTttIGdvaW5nIHRvIHF1aWNrbHkgY2hlY2sgdGhlIHJlbGV2YW50IGNvbmZpZ3VyYXRpb24gZmlsZXMgd2l0aGluIGBuZXQvbWFjODAyMTFgIGFuZCBgbmV0L3dpcmVsZXNzYCB0byBnZXQgYSBoaWdoLWxldmVsIG92ZXJ2aWV3IG9mIHRoZSBvdmVyYWxsIHN5c3RlbSBzZXR1cCwgaW5jbHVkaW5nIGFueSBkZXBlbmRlbmNpZXMsIGRlZmF1bHQgdmFsdWVzLCBhbmQgZ2VuZXJhbCBhcmNoaXRlY3R1cmUuIFRoZW4sIEkgY2FuIHN0YXJ0IGxvb2tpbmcgYXQgdGhlIHNvdXJjZSBjb2RlIGZvciBlYWNoIG9mIHRob3NlIGZ1bmN0aW9ucywgZm9jdXNpbmcgb24gZGF0YSB0eXBlcywgZXJyb3IgaGFuZGxpbmcsIGlucHV0IHZhbGlkYXRpb24sIGFuZCBhbnkgaW50ZXJhY3Rpb25zIHdpdGggZXh0ZXJuYWwgbW9kdWxlcyBvciBoYXJkd2FyZSByZWdpc3RlcnMuIFRoaXMgaXMgd2hlcmUgdGhlIHJlYWwgd29yayBiZWdpbnMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTUgMjM6MDU8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIE1BQzgwMjExJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL3ZpcnR1YWwvS2NvbmZpZzoxOmNvbmZpZyBNQUM4MDIxMV9IV1NJTVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvdmlydHVhbC9LY29uZmlnLTItXHR0cmlzdGF0ZSBcJiMzNDtTaW11bGF0ZWQgcmFkaW8gdGVzdGluZyB0b29sIGZvciBtYWM4MDIxMVwmIzM0O1xuLS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnLTEtIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5XG5uZXQvbWFjODAyMTEvS2NvbmZpZzoyOmNvbmZpZyBNQUM4MDIxMVxubmV0L21hYzgwMjExL0tjb25maWctMy1cdHRyaXN0YXRlIFwmIzM0O0dlbmVyaWMgSUVFRSA4MDIuMTEgTmV0d29ya2luZyBTdGFjayAobWFjODAyMTEpXCYjMzQ7XG4tLVxubmV0L21hYzgwMjExL0tjb25maWc9MTk9aWYgTUFDODAyMTEgIT0gblxubmV0L21hYzgwMjExL0tjb25maWctMjAtXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoyMTpjb25maWcgTUFDODAyMTFfSEFTX1JDXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yMi1cdGJvb2xcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTIzLVxubmV0L21hYzgwMjExL0tjb25maWc6MjQ6Y29uZmlnIE1BQzgwMjExX1JDX01JTlNUUkVMXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yNS1cdGJvb2wgXCYjMzQ7TWluc3RyZWxcJiMzNDsgaWYgRVhQRVJUXG4tLVxubmV0L21hYzgwMjExL0tjb25maWc9MzE9Y2hvaWNlXG4tLVxubmV0L21hYzgwMjExL0tjb25maWctNDAtXG5uZXQvbWFjODAyMTEvS2NvbmZpZzo0MTpjb25maWcgTUFDODAyMTFfUkNfREVGQVVMVF9NSU5TVFJFTFxubmV0L21hYzgwMjExL0tjb25maWctNDItXHRib29sIFwmIzM0O01pbnN0cmVsXCYjMzQ7XG4tLVxubmV0L21hYzgwMjExL0tjb25maWc9NDg9ZW5kY2hvaWNlXG5uZXQvbWFjODAyMTEvS2NvbmZpZy00OS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnOjUwOmNvbmZpZyBNQUM4MDIxMV9SQ19ERUZBVUxUXG5uZXQvbWFjODAyMTEvS2NvbmZpZy01MS1cdHN0cmluZ1xuLS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnPTU3PWNvbW1lbnQgXCYjMzQ7U29tZSB3aXJlbGVzcyBkcml2ZXJzIHJlcXVpcmUgYSByYXRlIGNvbnRyb2wgYWxnb3JpdGhtXCYjMzQ7XG4tLVxubmV0L21hYzgwMjExL0tjb25maWctNTktXG5uZXQvbWFjODAyMTEvS2NvbmZpZzo2MDpjb25maWcgTUFDODAyMTFfS1VOSVRfVEVTVFxubmV0L21hYzgwMjExL0tjb25maWctNjEtXHR0cmlzdGF0ZSBcJiMzNDtLVW5pdCB0ZXN0cyBmb3IgbWFjODAyMTFcJiMzNDsgaWYgIUtVTklUX0FMTF9URVNUU1xuLS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnLTY5LVxubmV0L21hYzgwMjExL0tjb25maWc6NzA6Y29uZmlnIE1BQzgwMjExX01FU0hcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTcxLVx0Ym9vbCBcJiMzNDtFbmFibGUgbWFjODAyMTEgbWVzaCBuZXR3b3JraW5nIHN1cHBvcnRcJiMzNDtcbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZy03OC1cbm5ldC9tYWM4MDIxMS9LY29uZmlnOjc5OmNvbmZpZyBNQUM4MDIxMV9MRURTXG5uZXQvbWFjODAyMTEvS2NvbmZpZy04MC1cdGJvb2wgXCYjMzQ7RW5hYmxlIExFRCB0cmlnZ2Vyc1wmIzM0O1xuLS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnLTg3LVxubmV0L21hYzgwMjExL0tjb25maWc6ODg6Y29uZmlnIE1BQzgwMjExX0RFQlVHRlNcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTg5LVx0Ym9vbCBcJiMzNDtFeHBvcnQgbWFjODAyMTEgaW50ZXJuYWxzIGluIERlYnVnRlNcJiMzNDtcbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZy05Ni1cbm5ldC9tYWM4MDIxMS9LY29uZmlnOjk3OmNvbmZpZyBNQUM4MDIxMV9NRVNTQUdFX1RSQUNJTkdcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTk4LVx0Ym9vbCBcJiMzNDtUcmFjZSBhbGwgbWFjODAyMTEgZGVidWcgbWVzc2FnZXNcJiMzNDtcbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xMDktXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoxMTA6bWVudWNvbmZpZyBNQUM4MDIxMV9ERUJVR19NRU5VXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xMTEtXHRib29sIFwmIzM0O1NlbGVjdCBtYWM4MDIxMSBkZWJ1Z2dpbmcgZmVhdHVyZXNcJiMzNDtcbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xMTUtXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoxMTY6Y29uZmlnIE1BQzgwMjExX05PSU5MSU5FXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xMTctXHRib29sIFwmIzM0O0RvIG5vdCBpbmxpbmUgVFgvUlggaGFuZGxlcnNcJiMzNDtcbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xMzEtXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoxMzI6Y29uZmlnIE1BQzgwMjExX1ZFUkJPU0VfREVCVUdcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTEzMy1cdGJvb2wgXCYjMzQ7VmVyYm9zZSBkZWJ1Z2dpbmcgb3V0cHV0XCYjMzQ7XG4tLVxubmV0L21hYzgwMjExL0tjb25maWctMTQyLVxubmV0L21hYzgwMjExL0tjb25maWc6MTQzOmNvbmZpZyBNQUM4MDIxMV9NTE1FX0RFQlVHXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xNDQtXHRib29sIFwmIzM0O1ZlcmJvc2UgbWFuYWdlZCBNTE1FIG91dHB1dFwmIzM0O1xuLS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnLTE1My1cbm5ldC9tYWM4MDIxMS9LY29uZmlnOjE1NDpjb25maWcgTUFDODAyMTFfU1RBX0RFQlVHXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xNTUtXHRib29sIFwmIzM0O1ZlcmJvc2Ugc3RhdGlvbiBkZWJ1Z2dpbmdcJiMzNDtcbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xNjItXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoxNjM6Y29uZmlnIE1BQzgwMjExX0hUX0RFQlVHXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xNjQtXHRib29sIFwmIzM0O1ZlcmJvc2UgSFQgZGVidWdnaW5nXCYjMzQ7XG4tLVxubmV0L21hYzgwMjExL0tjb25maWctMTc0LVxubmV0L21hYzgwMjExL0tjb25maWc6MTc1OmNvbmZpZyBNQUM4MDIxMV9PQ0JfREVCVUdcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTE3Ni1cdGJvb2wgXCYjMzQ7VmVyYm9zZSBPQ0IgZGVidWdnaW5nXCYjMzQ7XG4tLVxubmV0L21hYzgwMjExL0tjb25maWctMTg1LVxubmV0L21hYzgwMjExL0tjb25maWc6MTg2OmNvbmZpZyBNQUM4MDIxMV9JQlNTX0RFQlVHXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xODctXHRib29sIFwmIzM0O1ZlcmJvc2UgSUJTUyBkZWJ1Z2dpbmdcJiMzNDtcbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xOTYtXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoxOTc6Y29uZmlnIE1BQzgwMjExX1BTX0RFQlVHXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xOTgtXHRib29sIFwmIzM0O1ZlcmJvc2UgcG93ZXJzYXZlIG1vZGUgZGVidWdnaW5nXCYjMzQ7XG4tLVxubmV0L21hYzgwMjExL0tjb25maWctMjA4LVxubmV0L21hYzgwMjExL0tjb25maWc6MjA5OmNvbmZpZyBNQUM4MDIxMV9NUExfREVCVUdcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTIxMC1cdGJvb2wgXCYjMzQ7VmVyYm9zZSBtZXNoIHBlZXIgbGluayBkZWJ1Z2dpbmdcJiMzNDtcbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yMjEtXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoyMjI6Y29uZmlnIE1BQzgwMjExX01QQVRIX0RFQlVHXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yMjMtXHRib29sIFwmIzM0O1ZlcmJvc2UgbWVzaCBwYXRoIGRlYnVnZ2luZ1wmIzM0O1xuLS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnLTIzNC1cbm5ldC9tYWM4MDIxMS9LY29uZmlnOjIzNTpjb25maWcgTUFDODAyMTFfTUhXTVBfREVCVUdcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTIzNi1cdGJvb2wgXCYjMzQ7VmVyYm9zZSBtZXNoIEhXTVAgcm91dGluZyBkZWJ1Z2dpbmdcJiMzNDtcbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yNDctXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoyNDg6Y29uZmlnIE1BQzgwMjExX01FU0hfU1lOQ19ERUJVR1xubmV0L21hYzgwMjExL0tjb25maWctMjQ5LVx0Ym9vbCBcJiMzNDtWZXJib3NlIG1lc2ggc3luY2hyb25pemF0aW9uIGRlYnVnZ2luZ1wmIzM0O1xuLS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnLTI1OC1cbm5ldC9tYWM4MDIxMS9LY29uZmlnOjI1OTpjb25maWcgTUFDODAyMTFfTUVTSF9DU0FfREVCVUdcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTI2MC1cdGJvb2wgXCYjMzQ7VmVyYm9zZSBtZXNoIGNoYW5uZWwgc3dpdGNoIGRlYnVnZ2luZ1wmIzM0O1xuLS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnLTI2OS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnOjI3MDpjb25maWcgTUFDODAyMTFfTUVTSF9QU19ERUJVR1xubmV0L21hYzgwMjExL0tjb25maWctMjcxLVx0Ym9vbCBcJiMzNDtWZXJib3NlIG1lc2ggcG93ZXJzYXZlIGRlYnVnZ2luZ1wmIzM0O1xuLS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnLTI4MC1cbm5ldC9tYWM4MDIxMS9LY29uZmlnOjI4MTpjb25maWcgTUFDODAyMTFfVERMU19ERUJVR1xubmV0L21hYzgwMjExL0tjb25maWctMjgyLVx0Ym9vbCBcJiMzNDtWZXJib3NlIFRETFMgZGVidWdnaW5nXCYjMzQ7XG4tLVxubmV0L21hYzgwMjExL0tjb25maWctMjkyLVxubmV0L21hYzgwMjExL0tjb25maWc6MjkzOmNvbmZpZyBNQUM4MDIxMV9ERUJVR19DT1VOVEVSU1xubmV0L21hYzgwMjExL0tjb25maWctMjk0LVx0Ym9vbCBcJiMzNDtFeHRyYSBzdGF0aXN0aWNzIGZvciBUWC9SWCBkZWJ1Z2dpbmdcJiMzNDtcbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0zMDctXG5uZXQvbWFjODAyMTEvS2NvbmZpZzozMDg6Y29uZmlnIE1BQzgwMjExX1NUQV9IQVNIX01BWF9TSVpFXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0zMDktXHRpbnQgXCYjMzQ7U3RhdGlvbiBoYXNoIHRhYmxlIG1heGltdW0gc2l6ZVwmIzM0OyBpZiBNQUM4MDIxMV9ERUJVR19NRU5VXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTUgMjM6MDU8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTAxMjAKCQkJCQkJCW91dHB1dDogMjIKCQkJCQkJCXRob3VnaHRzOiA3MgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSB0YWtlIG9uIHRob3NlIGNvbmZpZyByZXF1aXJlbWVudHMsIHRhaWxvcmVkIGZvciBhIGZlbGxvdyBleHBlcnQ6CgoqKkNvbmZpZ3VyYXRpb24gRGVlcCBEaXZlIGZvciBPcHRpbWFsIFRlc3RpbmcqKgoKQWxyaWdodCwgc28gSSBzZWUgd2UmIzM5O3JlIGRlYWxpbmcgd2l0aCBhIGNvdXBsZSBvZiBrZXkgY29uZmlndXJhdGlvbiBlbGVtZW50cyBoZXJlOiBgTUFDODAyMTFgIGFuZCBgTUFDODAyMTFfSFdTSU1gLiBJJiMzOTttIGltbWVkaWF0ZWx5IHRoaW5raW5nLCAmIzM0O0NsYXNzaWMsIGBNQUM4MDIxMWAgaXMgdGhlIGZvdW5kYXRpb24sIG5hdHVyYWxseS4mIzM0OyBCdXQgdGhlIGluY2x1c2lvbiBvZiBgTUFDODAyMTFfSFdTSU1gIHJlYWxseSBjYXRjaGVzIG15IGV5ZSDigJMgdGhhdCBzaWduYWxzIHdlJiMzOTtyZSBnZWFyaW5nIHVwIGZvciBzb21lIHNlcmlvdXMgaGFyZHdhcmUgc2ltdWxhdGlvbiBhbmQgdGVzdGluZywgd2hpY2ggaXMgZXhjZWxsZW50LiBJIGFsd2F5cyBhcHByZWNpYXRlIGEgcm9idXN0IHRlc3Rpbmcgc2V0dXAuIEl0IHN0cmVhbWxpbmVzIHRoZSBkZWJ1ZyBjeWNsZSBkcmFtYXRpY2FsbHkuCgpUaGVuLCB0aGVyZSYjMzk7cyBgQ0ZHODAyMTFgIGxpc3RlZCBhcyBhIGRlcGVuZGVuY3kuIEl0JiMzOTtzIGFsbW9zdCBheGlvbWF0aWMsIGJ1dCBpdCYjMzk7cyBnb29kIHRvIGNhbGwgaXQgb3V0LiBUaGUgY29udHJvbCBpbnRlcmZhY2UgaXMgZXNzZW50aWFsLgoKSSYjMzk7bSBtZW50YWxseSBydW5uaW5nIHRocm91Z2ggbXkgbWVudGFsIGNoZWNrbGlzdDogSSYjMzk7bGwgd2FudCB0byBxdWlja2x5IGNvbmZpcm0gdGhlIHByb3BlciBlbmFibGVtZW50IGFuZCBpbnRlcmRlcGVuZGVuY2llcyBvZiBgQ0ZHODAyMTFgIGFuZCBgTUFDODAyMTFfSFdTSU1gLCBlbnN1cmluZyB0aGVyZSBhcmUgbm8gdW5mb3Jlc2VlbiBjb25mbGljdHMgb3IgcG90ZW50aWFsIGdvdGNoYXMgdGhhdCBtaWdodCB0aHJvdyBhIHdyZW5jaCBpbnRvIHRoZSBzaW11bGF0aW9uIHByb2Nlc3MuIExldCYjMzk7cyBtYWtlIHN1cmUgdGhlc2UgY29uZmlncyBhcmUgc2V0IGV4YWN0bHkgYXMgd2UgZXhwZWN0LiBUaGF0JiMzOTtzIHRoZSBmaXJzdCBvcmRlciBvZiBidXNpbmVzcywganVzdCB0byBiZSBzdXJlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNSAyMzowNTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtjb25maWcgQ0ZHODAyMTEmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7bmV0L3dpcmVsZXNzL0tjb25maWc9MTQ9Y29uZmlnIFdFWFRfUFJJVlxuLS1cbm5ldC93aXJlbGVzcy9LY29uZmlnLTE2LVxubmV0L3dpcmVsZXNzL0tjb25maWc6MTc6Y29uZmlnIENGRzgwMjExXG5uZXQvd2lyZWxlc3MvS2NvbmZpZy0xOC1cdHRyaXN0YXRlIFwmIzM0O2NmZzgwMjExIC0gd2lyZWxlc3MgY29uZmlndXJhdGlvbiBBUElcJiMzNDtcbi0tXG5uZXQvd2lyZWxlc3MvS2NvbmZpZz0zOD1jb25maWcgTkw4MDIxMV9URVNUTU9ERVxuLS1cbm5ldC93aXJlbGVzcy9LY29uZmlnLTUxLVxubmV0L3dpcmVsZXNzL0tjb25maWc6NTI6Y29uZmlnIENGRzgwMjExX0RFVkVMT1BFUl9XQVJOSU5HU1xubmV0L3dpcmVsZXNzL0tjb25maWctNTMtXHRib29sIFwmIzM0O2VuYWJsZSBkZXZlbG9wZXIgd2FybmluZ3NcJiMzNDtcbi0tXG5uZXQvd2lyZWxlc3MvS2NvbmZpZy02Ny1cbm5ldC93aXJlbGVzcy9LY29uZmlnOjY4OmNvbmZpZyBDRkc4MDIxMV9DRVJUSUZJQ0FUSU9OX09OVVNcbm5ldC93aXJlbGVzcy9LY29uZmlnLTY5LVx0Ym9vbCBcJiMzNDtjZmc4MDIxMSBjZXJ0aWZpY2F0aW9uIG9udXNcJiMzNDtcbi0tXG5uZXQvd2lyZWxlc3MvS2NvbmZpZy04OC1cbm5ldC93aXJlbGVzcy9LY29uZmlnOjg5OmNvbmZpZyBDRkc4MDIxMV9SRVFVSVJFX1NJR05FRF9SRUdEQlxubmV0L3dpcmVsZXNzL0tjb25maWctOTAtXHRib29sIFwmIzM0O3JlcXVpcmUgcmVnZGIgc2lnbmF0dXJlXCYjMzQ7IGlmIENGRzgwMjExX0NFUlRJRklDQVRJT05fT05VU1xuLS1cbm5ldC93aXJlbGVzcy9LY29uZmlnLTk4LVxubmV0L3dpcmVsZXNzL0tjb25maWc6OTk6Y29uZmlnIENGRzgwMjExX1VTRV9LRVJORUxfUkVHREJfS0VZU1xubmV0L3dpcmVsZXNzL0tjb25maWctMTAwLVx0Ym9vbCBcJiMzNDthbGxvdyByZWdkYiBrZXlzIHNoaXBwZWQgd2l0aCB0aGUga2VybmVsXCYjMzQ7IGlmIENGRzgwMjExX0NFUlRJRklDQVRJT05fT05VU1xuLS1cbm5ldC93aXJlbGVzcy9LY29uZmlnLTExMC1cbm5ldC93aXJlbGVzcy9LY29uZmlnOjExMTpjb25maWcgQ0ZHODAyMTFfRVhUUkFfUkVHREJfS0VZRElSXG5uZXQvd2lyZWxlc3MvS2NvbmZpZy0xMTItXHRzdHJpbmcgXCYjMzQ7YWRkaXRpb25hbCByZWdkYiBrZXkgZGlyZWN0b3J5XCYjMzQ7IGlmIENGRzgwMjExX0NFUlRJRklDQVRJT05fT05VU1xuLS1cbm5ldC93aXJlbGVzcy9LY29uZmlnLTEyMS1cbm5ldC93aXJlbGVzcy9LY29uZmlnOjEyMjpjb25maWcgQ0ZHODAyMTFfUkVHX0NFTExVTEFSX0hJTlRTXG5uZXQvd2lyZWxlc3MvS2NvbmZpZy0xMjMtXHRib29sIFwmIzM0O2NmZzgwMjExIHJlZ3VsYXRvcnkgc3VwcG9ydCBmb3IgY2VsbHVsYXIgYmFzZSBzdGF0aW9uIGhpbnRzXCYjMzQ7XG4tLVxubmV0L3dpcmVsZXNzL0tjb25maWctMTM0LVxubmV0L3dpcmVsZXNzL0tjb25maWc6MTM1OmNvbmZpZyBDRkc4MDIxMV9SRUdfUkVMQVhfTk9fSVJcbm5ldC93aXJlbGVzcy9LY29uZmlnLTEzNi1cdGJvb2wgXCYjMzQ7Y2ZnODAyMTEgc3VwcG9ydCBmb3IgTk9fSVIgcmVsYXhhdGlvblwmIzM0O1xuLS1cbm5ldC93aXJlbGVzcy9LY29uZmlnLTE1OC1cbm5ldC93aXJlbGVzcy9LY29uZmlnOjE1OTpjb25maWcgQ0ZHODAyMTFfREVGQVVMVF9QU1xubmV0L3dpcmVsZXNzL0tjb25maWctMTYwLVx0Ym9vbCBcJiMzNDtlbmFibGUgcG93ZXJzYXZlIGJ5IGRlZmF1bHRcJiMzNDtcbi0tXG5uZXQvd2lyZWxlc3MvS2NvbmZpZy0xNjgtXG5uZXQvd2lyZWxlc3MvS2NvbmZpZzoxNjk6Y29uZmlnIENGRzgwMjExX0RFQlVHRlNcbm5ldC93aXJlbGVzcy9LY29uZmlnLTE3MC1cdGJvb2wgXCYjMzQ7Y2ZnODAyMTEgRGVidWdGUyBlbnRyaWVzXCYjMzQ7XG4tLVxubmV0L3dpcmVsZXNzL0tjb25maWctMTc2LVxubmV0L3dpcmVsZXNzL0tjb25maWc6MTc3OmNvbmZpZyBDRkc4MDIxMV9DUkRBX1NVUFBPUlRcbm5ldC93aXJlbGVzcy9LY29uZmlnLTE3OC1cdGJvb2wgXCYjMzQ7c3VwcG9ydCBDUkRBXCYjMzQ7IGlmIEVYUEVSVFxuLS1cbm5ldC93aXJlbGVzcy9LY29uZmlnLTE4Ni1cbm5ldC93aXJlbGVzcy9LY29uZmlnOjE4Nzpjb25maWcgQ0ZHODAyMTFfV0VYVFxubmV0L3dpcmVsZXNzL0tjb25maWctMTg4LVx0Ym9vbCBcJiMzNDtjZmc4MDIxMSB3aXJlbGVzcyBleHRlbnNpb25zIGNvbXBhdGliaWxpdHlcJiMzNDtcbi0tXG5uZXQvd2lyZWxlc3MvS2NvbmZpZy0xOTMtXG5uZXQvd2lyZWxlc3MvS2NvbmZpZzoxOTQ6Y29uZmlnIENGRzgwMjExX0tVTklUX1RFU1Rcbm5ldC93aXJlbGVzcy9LY29uZmlnLTE5NS1cdHRyaXN0YXRlIFwmIzM0O0tVbml0IHRlc3RzIGZvciBjZmc4MDIxMVwmIzM0OyBpZiAhS1VOSVRfQUxMX1RFU1RTXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTEvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE1IDIzOjA1PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDExNDE0CgkJCQkJCQlvdXRwdXQ6IDIxOQoJCQkJCQkJdGhvdWdodHM6IDU0OQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBBbmFseXNpcyBvZiB0aGUgVGFyZ2V0IENvZGUqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggYW5kIGltbWVkaWF0ZWx5IHRoZSB0d28gY29yZSBjb25maWdzIGp1bXAgb3V0OiBgQ0ZHODAyMTFgIGFuZCBgTUFDODAyMTFgLiBOb3csIGxldCYjMzk7cyBicmVhayBkb3duIHRoZSBmdW5jdGlvbnMgaW52b2x2ZWQgYW5kIHRoZWlyIGNvbnRleHQuIGB2YWxpZGF0ZV91aHJfb3BlcmF0aW9uYCByZXNpZGVzIGluIGBuZXQvd2lyZWxlc3Mvbmw4MDIxMS5jYCwgd2hpY2gsIGFzIHdlIGtub3csIGlzIHBhcnQgb2YgYENGRzgwMjExYC4gTWVhbndoaWxlLCBgaWVlZTgwMjExX3BhcnNlX2V4dGVuc2lvbl9lbGVtZW50YCBpcyBpbiBgbmV0L21hYzgwMjExL3BhcnNlLmNgIGFuZCBgaWVlZTgwMjExX2NvbmZpZ19id2AgaXMgaW4gYG5ldC9tYWM4MDIxMS9tbG1lLmNgLCBib3RoIGZpcm1seSB3aXRoaW4gYE1BQzgwMjExYC4KClRoZSBpbml0aWFsIGZ1bmN0aW9ucyBJJiMzOTttIGZvY3VzaW5nIG9uLCB0aGVuLCBhcmUgYHZhbGlkYXRlX3Vocl9vcGVyYXRpb25gLCBgaWVlZTgwMjExX3BhcnNlX2V4dGVuc2lvbl9lbGVtZW50YCwgYW5kIGBpZWVlODAyMTFfY29uZmlnX2J3YC4gSSBzaG91bGQgZG91YmxlLWNoZWNrIHRvIG1ha2Ugc3VyZSB0aGVyZSBhcmVuJiMzOTt0IGFueSBvdGhlciBmdW5jdGlvbnMgaW52b2x2ZWQuIEFoLCByaWdodCwgdGhlcmUmIzM5O3MgYGllZWU4MDIxMV91aHJfb3Blcl9zaXplX29rYCwgd2hpY2ggaXMgYW4gaW5saW5lIGZ1bmN0aW9uLiBUaGlzIHBhdGNoIG1vZGlmaWVzIHRoYXQsIGFuZCBpdHMgY2FsbGVycy4gVGhlIGNhbGxlcnMgb2YgYGllZWU4MDIxMV91aHJfb3Blcl9zaXplX29rYCBhcmUgYGllZWU4MDIxMV9jb25maWdfYndgLCBgaWVlZTgwMjExX3BhcnNlX2V4dGVuc2lvbl9lbGVtZW50YCwgYW5kIGB2YWxpZGF0ZV91aHJfb3BlcmF0aW9uYC4KCkkgcmVtZW1iZXIgSSBncmVwcGVkIHRoZSBjb2RlYmFzZSBlYXJsaWVyLCBzbyBJIHNob3VsZCBiZSBjb25maWRlbnQgdGhhdCB0aG9zZSBhcmUgaW5kZWVkIGFsbCB0aGUgY2FsbGVycy4KCk5leHQsIEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSByZWFjaGFiaWxpdHkgb2YgdGhlc2UgZnVuY3Rpb25zLiBgdmFsaWRhdGVfdWhyX29wZXJhdGlvbmAgaXMgYWNjZXNzaWJsZSBmcm9tIHVzZXIgc3BhY2UsIGJlY2F1c2UgaXQmIzM5O3MgYSBuZXRsaW5rIHBvbGljeSB2YWxpZGF0aW9uIGZ1bmN0aW9uIGZvciBgTkw4MDIxMV9BVFRSX1VIUl9PUEVSQVRJT05gLiBUaGF0JiMzOTtzIGEgZ29vZCB0YXJnZXQuIGBpZWVlODAyMTFfcGFyc2VfZXh0ZW5zaW9uX2VsZW1lbnRgIGlzIGEgcGFyc2VyIGZvciBtYW5hZ2VtZW50IGZyYW1lcyDigJMgYmVhY29ucywgcHJvYmUgcmVzcG9uc2VzLCB0aGF0IHNvcnQgb2YgdGhpbmcuIGBpZWVlODAyMTFfY29uZmlnX2J3YCwgb24gdGhlIG90aGVyIGhhbmQsIGNvbWVzIGludG8gcGxheSBkdXJpbmcgYXNzb2NpYXRpb24gb3IgY2hhbm5lbCBzd2l0Y2hlcywgc28gdGhhdCYjMzk7cyBpbnRlcmVzdGluZyB0b28uCgpHaXZlbiBhbGwgdGhpcywgdGhpcyBpcyBkZWZpbml0ZWx5IHByaW1lIGZ1enppbmcgbWF0ZXJpYWwuIEl0IGhhcyB1c2VyLXNwYWNlIHJlYWNoYWJpbGl0eSBhbmQgdmFyaW91cyBwb3RlbnRpYWxseSBpbnRlcmVzdGluZyBpbnB1dHMuIFRoZSBrZXkgY29uZmlncyBhcmUgY2xlYXJseSBgQ0ZHODAyMTFgLCBgTUFDODAyMTFgLCBhbmQsIGZvciBnb29kIG1lYXN1cmUgYW5kIHRob3JvdWdoIHRlc3RpbmcsIGBNQUM4MDIxMV9IV1NJTWAgdG8gYWxsb3cgZm9yIHNvZnR3YXJlLWJhc2VkIGhhcmR3YXJlIHNpbXVsYXRpb24uIEkmIzM5O2xsIG5lZWQgdG8gZm9jdXMgb24gdGhlc2Ugc3ltYm9sczogYHZhbGlkYXRlX3Vocl9vcGVyYXRpb25gLCBgaWVlZTgwMjExX3BhcnNlX2V4dGVuc2lvbl9lbGVtZW50YCwgYW5kIGBpZWVlODAyMTFfY29uZmlnX2J3YC4gTm93LCBsZXQgbWUgZ2V0IHRoZXNlIHJlc3VsdHMgcmVhZHkuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTIvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE1IDIzOjA1PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+c2V0LXJlc3VsdHM8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtDRkc4MDIxMSYjMzQ7LAogICAgJiMzNDtNQUM4MDIxMSYjMzQ7LAogICAgJiMzNDtNQUM4MDIxMV9IV1NJTSYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O3ZhbGlkYXRlX3Vocl9vcGVyYXRpb24mIzM0OywKICAgICYjMzQ7aWVlZTgwMjExX3BhcnNlX2V4dGVuc2lvbl9lbGVtZW50JiMzNDssCiAgICAmIzM0O2llZWU4MDIxMV9jb25maWdfYncmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIHBhcnNpbmcgYW5kIHZhbGlkYXRpb24gbG9naWMgZm9yIElFRUUgODAyLjExIFVIUiAoVWx0cmEgSGlnaCBSZWxpYWJpbGl0eSkgb3BlcmF0aW9uIGVsZW1lbnRzLiBJdCBjaGFuZ2VzIHRoZSBzaXplIHZhbGlkYXRpb24gbG9naWMgYnkgY2hlY2tpbmcgZm9yIHByZXNlbmNlIGZsYWdzIGluc3RlYWQgb2YgZW5hYmxlIGZsYWdzLiBUaGUgbW9kaWZpZWQgaW5saW5lIGZ1bmN0aW9uIGlzIGNhbGxlZCBmcm9tIG5ldGxpbmsgYXR0cmlidXRlIHZhbGlkYXRpb24gKGB2YWxpZGF0ZV91aHJfb3BlcmF0aW9uYCksIG1hbmFnZW1lbnQgZnJhbWUgcGFyc2luZyAoYGllZWU4MDIxMV9wYXJzZV9leHRlbnNpb25fZWxlbWVudGApLCBhbmQgYmFuZHdpZHRoIGNvbmZpZ3VyYXRpb24gKGBpZWVlODAyMTFfY29uZmlnX2J3YCkuIFRoZXNlIGFyZSByZWFjaGFibGUgZnJvbSB1c2VyIHNwYWNlIHZpYSBuZXRsaW5rIGFuZCBmcm9tIGluamVjdGVkIG1hbmFnZW1lbnQgZnJhbWVzLCBtYWtpbmcgaXQgaGlnaGx5IHJlbGV2YW50IGZvciBmdXp6aW5nLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtDRkc4MDIxMSYjMzQ7LAogICAgJiMzNDtNQUM4MDIxMSYjMzQ7LAogICAgJiMzNDtNQUM4MDIxMV9IV1NJTSYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O3ZhbGlkYXRlX3Vocl9vcGVyYXRpb24mIzM0OywKICAgICYjMzQ7aWVlZTgwMjExX3BhcnNlX2V4dGVuc2lvbl9lbGVtZW50JiMzNDssCiAgICAmIzM0O2llZWU4MDIxMV9jb25maWdfYncmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIHBhcnNpbmcgYW5kIHZhbGlkYXRpb24gbG9naWMgZm9yIElFRUUgODAyLjExIFVIUiAoVWx0cmEgSGlnaCBSZWxpYWJpbGl0eSkgb3BlcmF0aW9uIGVsZW1lbnRzLiBJdCBjaGFuZ2VzIHRoZSBzaXplIHZhbGlkYXRpb24gbG9naWMgYnkgY2hlY2tpbmcgZm9yIHByZXNlbmNlIGZsYWdzIGluc3RlYWQgb2YgZW5hYmxlIGZsYWdzLiBUaGUgbW9kaWZpZWQgaW5saW5lIGZ1bmN0aW9uIGlzIGNhbGxlZCBmcm9tIG5ldGxpbmsgYXR0cmlidXRlIHZhbGlkYXRpb24gKGB2YWxpZGF0ZV91aHJfb3BlcmF0aW9uYCksIG1hbmFnZW1lbnQgZnJhbWUgcGFyc2luZyAoYGllZWU4MDIxMV9wYXJzZV9leHRlbnNpb25fZWxlbWVudGApLCBhbmQgYmFuZHdpZHRoIGNvbmZpZ3VyYXRpb24gKGBpZWVlODAyMTFfY29uZmlnX2J3YCkuIFRoZXNlIGFyZSByZWFjaGFibGUgZnJvbSB1c2VyIHNwYWNlIHZpYSBuZXRsaW5rIGFuZCBmcm9tIGluamVjdGVkIG1hbmFnZW1lbnQgZnJhbWVzLCBtYWtpbmcgaXQgaGlnaGx5IHJlbGV2YW50IGZvciBmdXp6aW5nLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTwvdGJvZHk+Cgk8L3RhYmxlPgoKCTxkaXYgaWQ9ImxsbV9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+TExNIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgVG9rZW5zPC90aD4KCQkJCQk8dGg+QXZnIFRva2VuczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJsbG1fc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJ0b29sX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5Ub29sIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9InRvb2xfc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJkdXJhdGlvbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+Cgk8ZGl2IGlkPSJ0b2tlbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+CgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9qc2FwaSI+PC9zY3JpcHQ+Cgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CgkJZ29vZ2xlLmxvYWQoInZpc3VhbGl6YXRpb24iLCAiMSIsIHtwYWNrYWdlczpbImNvcmVjaGFydCJdfSk7CgkJZ29vZ2xlLnNldE9uTG9hZENhbGxiYWNrKGRyYXdDaGFydHMpOwoKCQlmdW5jdGlvbiBkcmF3Q2hhcnRzKCkgewoJCQljb25zdCByYXdEYXRhID0gW3siU3RhcnRlZCI6IjIwMjYtMDctMTVUMjM6MDU6MTYuMzI3MDU1NzRaIiwiU2VxIjowLCJOZXN0aW5nIjowLCJUeXBlIjoiZmxvdyIsIk5hbWUiOiJwYXRjaC10cmlhZ2UiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjozODM2MzI2NjQxMCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJDRkc4MDIxMVwiLFxuICAgIFwiTUFDODAyMTFcIixcbiAgICBcIk1BQzgwMjExX0hXU0lNXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwidmFsaWRhdGVfdWhyX29wZXJhdGlvblwiLFxuICAgIFwiaWVlZTgwMjExX3BhcnNlX2V4dGVuc2lvbl9lbGVtZW50XCIsXG4gICAgXCJpZWVlODAyMTFfY29uZmlnX2J3XCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIHBhcnNpbmcgYW5kIHZhbGlkYXRpb24gbG9naWMgZm9yIElFRUUgODAyLjExIFVIUiAoVWx0cmEgSGlnaCBSZWxpYWJpbGl0eSkgb3BlcmF0aW9uIGVsZW1lbnRzLiBJdCBjaGFuZ2VzIHRoZSBzaXplIHZhbGlkYXRpb24gbG9naWMgYnkgY2hlY2tpbmcgZm9yIHByZXNlbmNlIGZsYWdzIGluc3RlYWQgb2YgZW5hYmxlIGZsYWdzLiBUaGUgbW9kaWZpZWQgaW5saW5lIGZ1bmN0aW9uIGlzIGNhbGxlZCBmcm9tIG5ldGxpbmsgYXR0cmlidXRlIHZhbGlkYXRpb24gKGB2YWxpZGF0ZV91aHJfb3BlcmF0aW9uYCksIG1hbmFnZW1lbnQgZnJhbWUgcGFyc2luZyAoYGllZWU4MDIxMV9wYXJzZV9leHRlbnNpb25fZWxlbWVudGApLCBhbmQgYmFuZHdpZHRoIGNvbmZpZ3VyYXRpb24gKGBpZWVlODAyMTFfY29uZmlnX2J3YCkuIFRoZXNlIGFyZSByZWFjaGFibGUgZnJvbSB1c2VyIHNwYWNlIHZpYSBuZXRsaW5rIGFuZCBmcm9tIGluamVjdGVkIG1hbmFnZW1lbnQgZnJhbWVzLCBtYWtpbmcgaXQgaGlnaGx5IHJlbGV2YW50IGZvciBmdXp6aW5nLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xNVQyMzowNToxNi4zMjcwNjIyOVoiLCJTZXEiOjEsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoicmVhZC1wYXRjaC1kaWZmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NzQxMzE1OTE1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJQYXRjaERpZmZcIjogXCJjb21taXQgNzJjMTAyODZmMzMxZTY3ZGM1YjZiNzJkMjRjMWIxMGUyZDM3M2M2Y1xcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXFx1MDAzZVxcbkRhdGU6ICAgV2VkIEp1bCAxNSAyMzowNToxNCAyMDI2ICswMDAwXFxuXFxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xcblxcbmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L2llZWU4MDIxMS11aHIuaCBiL2luY2x1ZGUvbGludXgvaWVlZTgwMjExLXVoci5oXFxuaW5kZXggNTk3YzllNTU5MjYxYjkuLjY2NWQ0YjNhNWI0MTg2IDEwMDY0NFxcbi0tLSBhL2luY2x1ZGUvbGludXgvaWVlZTgwMjExLXVoci5oXFxuKysrIGIvaW5jbHVkZS9saW51eC9pZWVlODAyMTEtdWhyLmhcXG5AQCAtMTcsNiArMTcsMTEgQEBcXG4gI2RlZmluZSBJRUVFODAyMTFfVUhSX09QRVJfUEFSQU1TX1BFRENBX0VOQVxcdFxcdDB4MDAwNFxcbiAjZGVmaW5lIElFRUU4MDIxMV9VSFJfT1BFUl9QQVJBTVNfREJFX0VOQVxcdFxcdDB4MDAwOFxcbiAjZGVmaW5lIElFRUU4MDIxMV9VSFJfT1BFUl9QQVJBTVNfREJFX0JXXFx0XFx0MHgwMDcwXFxuKyNkZWZpbmUgSUVFRTgwMjExX1VIUl9PUEVSX1BBUkFNU19EVU9fUFJFU1xcdFxcdDB4MDA4MFxcbisjZGVmaW5lIElFRUU4MDIxMV9VSFJfT1BFUl9QQVJBTVNfRFBTX1BSRVNcXHRcXHQweDAxMDBcXG4rI2RlZmluZSBJRUVFODAyMTFfVUhSX09QRVJfUEFSQU1TX05QQ0FfUFJFU1xcdFxcdDB4MDIwMFxcbisjZGVmaW5lIElFRUU4MDIxMV9VSFJfT1BFUl9QQVJBTVNfUEVEQ0FfUFJFU1xcdFxcdDB4MDQwMFxcbisjZGVmaW5lIElFRUU4MDIxMV9VSFJfT1BFUl9QQVJBTVNfREJFX1BSRVNcXHRcXHQweDA4MDBcXG4gXFxuIHN0cnVjdCBpZWVlODAyMTFfdWhyX29wZXJhdGlvbiB7XFxuIFxcdF9fbGUxNiBwYXJhbXM7XFxuQEAgLTI2NSw4ICsyNzAsNyBAQCBzdHJ1Y3QgaWVlZTgwMjExX3Vocl9wX2VkY2FfaW5mbyB7XFxuIFxcdF9fbGUxNiBwYXJhbXM7XFxuIH0gX19wYWNrZWQ7XFxuIFxcbi1zdGF0aWMgaW5saW5lIGJvb2wgaWVlZTgwMjExX3Vocl9vcGVyX3NpemVfb2soY29uc3QgdTggKmRhdGEsIHU4IGxlbixcXG4tXFx0XFx0XFx0XFx0XFx0ICAgICAgYm9vbCBiZWFjb24pXFxuK3N0YXRpYyBpbmxpbmUgYm9vbCBpZWVlODAyMTFfdWhyX29wZXJfc2l6ZV9vayhjb25zdCB1OCAqZGF0YSwgdTggbGVuKVxcbiB7XFxuIFxcdGNvbnN0IHN0cnVjdCBpZWVlODAyMTFfdWhyX29wZXJhdGlvbiAqb3BlciA9IChjb25zdCB2b2lkICopZGF0YTtcXG4gXFx0dTggbmVlZGVkID0gc2l6ZW9mKCpvcGVyKTtcXG5AQCAtMjc0LDE5ICsyNzgsMTUgQEAgc3RhdGljIGlubGluZSBib29sIGllZWU4MDIxMV91aHJfb3Blcl9zaXplX29rKGNvbnN0IHU4ICpkYXRhLCB1OCBsZW4sXFxuIFxcdGlmIChsZW4gXFx1MDAzYyBuZWVkZWQpXFxuIFxcdFxcdHJldHVybiBmYWxzZTtcXG4gXFxuLVxcdC8qIG5vdGhpbmcgZWxzZSBwcmVzZW50IGluIGJlYWNvbnMgKi9cXG4tXFx0aWYgKGJlYWNvbilcXG4tXFx0XFx0cmV0dXJuIHRydWU7XFxuLVxcbiBcXHQvKiBEUFMgT3BlcmF0aW9uIFBhcmFtZXRlcnMgKGZpeGVkIDQgYnl0ZXMpICovXFxuLVxcdGlmIChvcGVyLVxcdTAwM2VwYXJhbXMgXFx1MDAyNiBjcHVfdG9fbGUxNihJRUVFODAyMTFfVUhSX09QRVJfUEFSQU1TX0RQU19FTkEpKSB7XFxuK1xcdGlmIChvcGVyLVxcdTAwM2VwYXJhbXMgXFx1MDAyNiBjcHVfdG9fbGUxNihJRUVFODAyMTFfVUhSX09QRVJfUEFSQU1TX0RQU19QUkVTKSkge1xcbiBcXHRcXHRuZWVkZWQgKz0gc2l6ZW9mKHN0cnVjdCBpZWVlODAyMTFfdWhyX2Rwc19pbmZvKTtcXG4gXFx0XFx0aWYgKGxlbiBcXHUwMDNjIG5lZWRlZClcXG4gXFx0XFx0XFx0cmV0dXJuIGZhbHNlO1xcbiBcXHR9XFxuIFxcbiBcXHQvKiBOUENBIE9wZXJhdGlvbiBQYXJhbWV0ZXJzIChmaXhlZCA0IGJ5dGVzICsgb3B0aW9uYWwgMiBieXRlcykgKi9cXG4tXFx0aWYgKG9wZXItXFx1MDAzZXBhcmFtcyBcXHUwMDI2IGNwdV90b19sZTE2KElFRUU4MDIxMV9VSFJfT1BFUl9QQVJBTVNfTlBDQV9FTkEpKSB7XFxuK1xcdGlmIChvcGVyLVxcdTAwM2VwYXJhbXMgXFx1MDAyNiBjcHVfdG9fbGUxNihJRUVFODAyMTFfVUhSX09QRVJfUEFSQU1TX05QQ0FfUFJFUykpIHtcXG4gXFx0XFx0Y29uc3Qgc3RydWN0IGllZWU4MDIxMV91aHJfbnBjYV9pbmZvICpucGNhID1cXG4gXFx0XFx0XFx0KGNvbnN0IHZvaWQgKikoZGF0YSArIG5lZWRlZCk7XFxuIFxcbkBAIC0zMDMsMTQgKzMwMywxNCBAQCBzdGF0aWMgaW5saW5lIGJvb2wgaWVlZTgwMjExX3Vocl9vcGVyX3NpemVfb2soY29uc3QgdTggKmRhdGEsIHU4IGxlbixcXG4gXFx0fVxcbiBcXG4gXFx0LyogUC1FRENBIE9wZXJhdGlvbiBQYXJhbWV0ZXJzIChmaXhlZCAzIGJ5dGVzKSAqL1xcbi1cXHRpZiAob3Blci1cXHUwMDNlcGFyYW1zIFxcdTAwMjYgY3B1X3RvX2xlMTYoSUVFRTgwMjExX1VIUl9PUEVSX1BBUkFNU19QRURDQV9FTkEpKSB7XFxuK1xcdGlmIChvcGVyLVxcdTAwM2VwYXJhbXMgXFx1MDAyNiBjcHVfdG9fbGUxNihJRUVFODAyMTFfVUhSX09QRVJfUEFSQU1TX1BFRENBX1BSRVMpKSB7XFxuIFxcdFxcdG5lZWRlZCArPSBzaXplb2Yoc3RydWN0IGllZWU4MDIxMV91aHJfcF9lZGNhX2luZm8pO1xcbiBcXHRcXHRpZiAobGVuIFxcdTAwM2MgbmVlZGVkKVxcbiBcXHRcXHRcXHRyZXR1cm4gZmFsc2U7XFxuIFxcdH1cXG4gXFxuIFxcdC8qIERCRSBPcGVyYXRpb24gUGFyYW1ldGVycyAoZml4ZWQgMSBieXRlICsgb3B0aW9uYWwgMiBieXRlcykgKi9cXG4tXFx0aWYgKG9wZXItXFx1MDAzZXBhcmFtcyBcXHUwMDI2IGNwdV90b19sZTE2KElFRUU4MDIxMV9VSFJfT1BFUl9QQVJBTVNfREJFX0VOQSkpIHtcXG4rXFx0aWYgKG9wZXItXFx1MDAzZXBhcmFtcyBcXHUwMDI2IGNwdV90b19sZTE2KElFRUU4MDIxMV9VSFJfT1BFUl9QQVJBTVNfREJFX1BSRVMpKSB7XFxuIFxcdFxcdGNvbnN0IHN0cnVjdCBpZWVlODAyMTFfdWhyX2RiZV9pbmZvICpkYmUgPVxcbiBcXHRcXHRcXHQoY29uc3Qgdm9pZCAqKShkYXRhICsgbmVlZGVkKTtcXG4gXFxuQEAgLTMyOSwxOSArMzI5LDE5IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBpZWVlODAyMTFfdWhyX29wZXJfc2l6ZV9vayhjb25zdCB1OCAqZGF0YSwgdTggbGVuLFxcbiBcXHRyZXR1cm4gbGVuIFxcdTAwM2U9IG5lZWRlZDtcXG4gfVxcbiBcXG4tLypcXG4tICogTm90ZTogY2Fubm90IGNhbGwgdGhpcyBvbiB0aGUgZWxlbWVudCBjb21pbmcgZnJvbSBhIGJlYWNvbixcXG4tICogbXVzdCBlbnN1cmUgaWVlZTgwMjExX3Vocl9vcGVyX3NpemVfb2soLi4uLCBmYWxzZSkgZmlyc3RcXG4tICovXFxuKy8qIE5vdGU6IG11c3QgZW5zdXJlIGllZWU4MDIxMV91aHJfb3Blcl9zaXplX29rKC4uLikgZmlyc3QgKi9cXG4gc3RhdGljIGlubGluZSBjb25zdCBzdHJ1Y3QgaWVlZTgwMjExX3Vocl9ucGNhX2luZm8gKlxcbiBpZWVlODAyMTFfdWhyX25wY2FfaW5mbyhjb25zdCBzdHJ1Y3QgaWVlZTgwMjExX3Vocl9vcGVyYXRpb24gKm9wZXIpXFxuIHtcXG4gXFx0Y29uc3QgdTggKnBvcyA9IG9wZXItXFx1MDAzZXZhcmlhYmxlO1xcbiBcXG4rXFx0aWYgKCEob3Blci1cXHUwMDNlcGFyYW1zIFxcdTAwMjYgY3B1X3RvX2xlMTYoSUVFRTgwMjExX1VIUl9PUEVSX1BBUkFNU19OUENBX1BSRVMpKSlcXG4rXFx0XFx0cmV0dXJuIE5VTEw7XFxuK1xcbiBcXHRpZiAoIShvcGVyLVxcdTAwM2VwYXJhbXMgXFx1MDAyNiBjcHVfdG9fbGUxNihJRUVFODAyMTFfVUhSX09QRVJfUEFSQU1TX05QQ0FfRU5BKSkpXFxuIFxcdFxcdHJldHVybiBOVUxMO1xcbiBcXG4tXFx0aWYgKG9wZXItXFx1MDAzZXBhcmFtcyBcXHUwMDI2IGNwdV90b19sZTE2KElFRUU4MDIxMV9VSFJfT1BFUl9QQVJBTVNfRFBTX0VOQSkpXFxuK1xcdGlmIChvcGVyLVxcdTAwM2VwYXJhbXMgXFx1MDAyNiBjcHVfdG9fbGUxNihJRUVFODAyMTFfVUhSX09QRVJfUEFSQU1TX0RQU19QUkVTKSlcXG4gXFx0XFx0cG9zICs9IHNpemVvZihzdHJ1Y3QgaWVlZTgwMjExX3Vocl9kcHNfaW5mbyk7XFxuIFxcbiBcXHRyZXR1cm4gKGNvbnN0IHZvaWQgKilwb3M7XFxuQEAgLTM2MCwyMiArMzYwLDIyIEBAIGllZWU4MDIxMV91aHJfbnBjYV9kaXNfc3ViY2hfYml0bWFwKGNvbnN0IHN0cnVjdCBpZWVlODAyMTFfdWhyX29wZXJhdGlvbiAqb3BlcilcXG4gXFx0cmV0dXJuIG5wY2EtXFx1MDAzZWRpc19zdWJjaF9ibWFwO1xcbiB9XFxuIFxcbi0vKlxcbi0gKiBOb3RlOiBjYW5ub3QgY2FsbCB0aGlzIG9uIHRoZSBlbGVtZW50IGNvbWluZyBmcm9tIGEgYmVhY29uLFxcbi0gKiBtdXN0IGVuc3VyZSBpZWVlODAyMTFfdWhyX29wZXJfc2l6ZV9vayguLi4sIGZhbHNlKSBmaXJzdFxcbi0gKi9cXG4rLyogTm90ZTogbXVzdCBlbnN1cmUgaWVlZTgwMjExX3Vocl9vcGVyX3NpemVfb2soLi4uKSBmaXJzdCAqL1xcbiBzdGF0aWMgaW5saW5lIGNvbnN0IHN0cnVjdCBpZWVlODAyMTFfdWhyX2RiZV9pbmZvICpcXG4gaWVlZTgwMjExX3Vocl9vcGVyX2RiZV9pbmZvKGNvbnN0IHN0cnVjdCBpZWVlODAyMTFfdWhyX29wZXJhdGlvbiAqb3BlcilcXG4ge1xcbiBcXHRjb25zdCB1OCAqcG9zID0gb3Blci1cXHUwMDNldmFyaWFibGU7XFxuIFxcbitcXHRpZiAoIShvcGVyLVxcdTAwM2VwYXJhbXMgXFx1MDAyNiBjcHVfdG9fbGUxNihJRUVFODAyMTFfVUhSX09QRVJfUEFSQU1TX0RCRV9QUkVTKSkpXFxuK1xcdFxcdHJldHVybiBOVUxMO1xcbitcXG4gXFx0aWYgKCEob3Blci1cXHUwMDNlcGFyYW1zIFxcdTAwMjYgY3B1X3RvX2xlMTYoSUVFRTgwMjExX1VIUl9PUEVSX1BBUkFNU19EQkVfRU5BKSkpXFxuIFxcdFxcdHJldHVybiBOVUxMO1xcbiBcXG4tXFx0aWYgKG9wZXItXFx1MDAzZXBhcmFtcyBcXHUwMDI2IGNwdV90b19sZTE2KElFRUU4MDIxMV9VSFJfT1BFUl9QQVJBTVNfRFBTX0VOQSkpXFxuK1xcdGlmIChvcGVyLVxcdTAwM2VwYXJhbXMgXFx1MDAyNiBjcHVfdG9fbGUxNihJRUVFODAyMTFfVUhSX09QRVJfUEFSQU1TX0RQU19QUkVTKSlcXG4gXFx0XFx0cG9zICs9IHNpemVvZihzdHJ1Y3QgaWVlZTgwMjExX3Vocl9kcHNfaW5mbyk7XFxuIFxcbi1cXHRpZiAob3Blci1cXHUwMDNlcGFyYW1zIFxcdTAwMjYgY3B1X3RvX2xlMTYoSUVFRTgwMjExX1VIUl9PUEVSX1BBUkFNU19OUENBX0VOQSkpIHtcXG4rXFx0aWYgKG9wZXItXFx1MDAzZXBhcmFtcyBcXHUwMDI2IGNwdV90b19sZTE2KElFRUU4MDIxMV9VSFJfT1BFUl9QQVJBTVNfTlBDQV9QUkVTKSkge1xcbiBcXHRcXHRjb25zdCBzdHJ1Y3QgaWVlZTgwMjExX3Vocl9ucGNhX2luZm8gKm5wY2EgPSAoY29uc3Qgdm9pZCAqKXBvcztcXG4gXFxuIFxcdFxcdHBvcyArPSBzaXplb2YoKm5wY2EpO1xcbkBAIC0zODMsNyArMzgzLDcgQEAgaWVlZTgwMjExX3Vocl9vcGVyX2RiZV9pbmZvKGNvbnN0IHN0cnVjdCBpZWVlODAyMTFfdWhyX29wZXJhdGlvbiAqb3BlcilcXG4gXFx0XFx0XFx0cG9zICs9IHNpemVvZihucGNhLVxcdTAwM2VkaXNfc3ViY2hfYm1hcFswXSk7XFxuIFxcdH1cXG4gXFxuLVxcdGlmIChvcGVyLVxcdTAwM2VwYXJhbXMgXFx1MDAyNiBjcHVfdG9fbGUxNihJRUVFODAyMTFfVUhSX09QRVJfUEFSQU1TX1BFRENBX0VOQSkpXFxuK1xcdGlmIChvcGVyLVxcdTAwM2VwYXJhbXMgXFx1MDAyNiBjcHVfdG9fbGUxNihJRUVFODAyMTFfVUhSX09QRVJfUEFSQU1TX1BFRENBX1BSRVMpKVxcbiBcXHRcXHRwb3MgKz0gc2l6ZW9mKHN0cnVjdCBpZWVlODAyMTFfdWhyX3BfZWRjYV9pbmZvKTtcXG4gXFxuIFxcdHJldHVybiAoY29uc3Qgdm9pZCAqKXBvcztcXG5kaWZmIC0tZ2l0IGEvbmV0L21hYzgwMjExL21sbWUuYyBiL25ldC9tYWM4MDIxMS9tbG1lLmNcXG5pbmRleCA5ZTkyMzM3YmI2ZjllNS4uNGFkNWU5NDk3MzIzMTYgMTAwNjQ0XFxuLS0tIGEvbmV0L21hYzgwMjExL21sbWUuY1xcbisrKyBiL25ldC9tYWM4MDIxMS9tbG1lLmNcXG5AQCAtMTcwMSw4ICsxNzAxLDcgQEAgc3RhdGljIGludCBpZWVlODAyMTFfY29uZmlnX2J3KHN0cnVjdCBpZWVlODAyMTFfbGlua19kYXRhICpsaW5rLFxcbiBcXHRpZiAoc3R5cGUgIT0gSUVFRTgwMjExX1NUWVBFX0JFQUNPTiBcXHUwMDI2XFx1MDAyNlxcbiBcXHQgICAgY2hhbnJlcS5vcGVyLm5wY2FfY2hhbiBcXHUwMDI2XFx1MDAyNiBlbGVtcy1cXHUwMDNldWhyX29wZXJhdGlvbiBcXHUwMDI2XFx1MDAyNlxcbiBcXHQgICAgaWVlZTgwMjExX3Vocl9vcGVyX3NpemVfb2soKGNvbnN0IHZvaWQgKillbGVtcy1cXHUwMDNldWhyX29wZXJhdGlvbixcXG4tXFx0XFx0XFx0XFx0ICAgICAgIGVsZW1zLVxcdTAwM2V1aHJfb3BlcmF0aW9uX2xlbixcXG4tXFx0XFx0XFx0XFx0ICAgICAgIGZhbHNlKSkge1xcbitcXHRcXHRcXHRcXHQgICAgICAgZWxlbXMtXFx1MDAzZXVocl9vcGVyYXRpb25fbGVuKSkge1xcbiBcXHRcXHRjb25zdCBzdHJ1Y3QgaWVlZTgwMjExX3Vocl9ucGNhX2luZm8gKm5wY2E7XFxuIFxcdFxcdHN0cnVjdCBpZWVlODAyMTFfYnNzX25wY2FfcGFyYW1zIHBhcmFtcyA9IHt9O1xcbiBcXG5kaWZmIC0tZ2l0IGEvbmV0L21hYzgwMjExL3BhcnNlLmMgYi9uZXQvbWFjODAyMTEvcGFyc2UuY1xcbmluZGV4IGMyZjJmNzhmMmI0ZjcyLi5jYjJiZTE2N2NkZTc5NSAxMDA2NDRcXG4tLS0gYS9uZXQvbWFjODAyMTEvcGFyc2UuY1xcbisrKyBiL25ldC9tYWM4MDIxMS9wYXJzZS5jXFxuQEAgLTIwOSw5ICsyMDksNyBAQCBpZWVlODAyMTFfcGFyc2VfZXh0ZW5zaW9uX2VsZW1lbnQodTMyICpjcmMsXFxuIFxcdFxcdGlmIChwYXJhbXMtXFx1MDAzZW1vZGUgXFx1MDAzYyBJRUVFODAyMTFfQ09OTl9NT0RFX1VIUilcXG4gXFx0XFx0XFx0YnJlYWs7XFxuIFxcdFxcdGNhbGNfY3JjID0gdHJ1ZTtcXG4tXFx0XFx0aWYgKGllZWU4MDIxMV91aHJfb3Blcl9zaXplX29rKGRhdGEsIGxlbixcXG4tXFx0XFx0XFx0XFx0XFx0ICAgICAgIHBhcmFtcy1cXHUwMDNldHlwZSA9PSAoSUVFRTgwMjExX0ZUWVBFX01HTVQgfFxcbi1cXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRJRUVFODAyMTFfU1RZUEVfQkVBQ09OKSkpIHtcXG4rXFx0XFx0aWYgKGllZWU4MDIxMV91aHJfb3Blcl9zaXplX29rKGRhdGEsIGxlbikpIHtcXG4gXFx0XFx0XFx0ZWxlbXMtXFx1MDAzZXVocl9vcGVyYXRpb24gPSBkYXRhO1xcbiBcXHRcXHRcXHRlbGVtcy1cXHUwMDNldWhyX29wZXJhdGlvbl9sZW4gPSBsZW47XFxuIFxcdFxcdH1cXG5kaWZmIC0tZ2l0IGEvbmV0L3dpcmVsZXNzL25sODAyMTEuYyBiL25ldC93aXJlbGVzcy9ubDgwMjExLmNcXG5pbmRleCAyNDIwNzFhZDEwZDZjOS4uNWZhNzA5NzRkNTdjYzEgMTAwNjQ0XFxuLS0tIGEvbmV0L3dpcmVsZXNzL25sODAyMTEuY1xcbisrKyBiL25ldC93aXJlbGVzcy9ubDgwMjExLmNcXG5AQCAtNDQxLDcgKzQ0MSw3IEBAIHN0YXRpYyBpbnQgdmFsaWRhdGVfdWhyX29wZXJhdGlvbihjb25zdCBzdHJ1Y3QgbmxhdHRyICphdHRyLFxcbiBcXHRjb25zdCB1OCAqZGF0YSA9IG5sYV9kYXRhKGF0dHIpO1xcbiBcXHR1bnNpZ25lZCBpbnQgbGVuID0gbmxhX2xlbihhdHRyKTtcXG4gXFxuLVxcdGlmICghaWVlZTgwMjExX3Vocl9vcGVyX3NpemVfb2soZGF0YSwgbGVuLCBmYWxzZSkpXFxuK1xcdGlmICghaWVlZTgwMjExX3Vocl9vcGVyX3NpemVfb2soZGF0YSwgbGVuKSlcXG4gXFx0XFx0cmV0dXJuIC1FSU5WQUw7XFxuIFxcdHJldHVybiAwO1xcbiB9XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE1VDIzOjA1OjE3LjA2OTEwMzQ4NVoiLCJTZXEiOjIsIk5lc3RpbmciOjEsIlR5cGUiOiJhZ2VudCIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6Mzc2MjExOTM4MzUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiQ0ZHODAyMTFcIixcbiAgICBcIk1BQzgwMjExXCIsXG4gICAgXCJNQUM4MDIxMV9IV1NJTVwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcInZhbGlkYXRlX3Vocl9vcGVyYXRpb25cIixcbiAgICBcImllZWU4MDIxMV9wYXJzZV9leHRlbnNpb25fZWxlbWVudFwiLFxuICAgIFwiaWVlZTgwMjExX2NvbmZpZ19id1wiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBwYXJzaW5nIGFuZCB2YWxpZGF0aW9uIGxvZ2ljIGZvciBJRUVFIDgwMi4xMSBVSFIgKFVsdHJhIEhpZ2ggUmVsaWFiaWxpdHkpIG9wZXJhdGlvbiBlbGVtZW50cy4gSXQgY2hhbmdlcyB0aGUgc2l6ZSB2YWxpZGF0aW9uIGxvZ2ljIGJ5IGNoZWNraW5nIGZvciBwcmVzZW5jZSBmbGFncyBpbnN0ZWFkIG9mIGVuYWJsZSBmbGFncy4gVGhlIG1vZGlmaWVkIGlubGluZSBmdW5jdGlvbiBpcyBjYWxsZWQgZnJvbSBuZXRsaW5rIGF0dHJpYnV0ZSB2YWxpZGF0aW9uIChgdmFsaWRhdGVfdWhyX29wZXJhdGlvbmApLCBtYW5hZ2VtZW50IGZyYW1lIHBhcnNpbmcgKGBpZWVlODAyMTFfcGFyc2VfZXh0ZW5zaW9uX2VsZW1lbnRgKSwgYW5kIGJhbmR3aWR0aCBjb25maWd1cmF0aW9uIChgaWVlZTgwMjExX2NvbmZpZ19id2ApLiBUaGVzZSBhcmUgcmVhY2hhYmxlIGZyb20gdXNlciBzcGFjZSB2aWEgbmV0bGluayBhbmQgZnJvbSBpbmplY3RlZCBtYW5hZ2VtZW50IGZyYW1lcywgbWFraW5nIGl0IGhpZ2hseSByZWxldmFudCBmb3IgZnV6emluZy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiWW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuXG5Zb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZVxuaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLlxuXG5JTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW5cbnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseVxudXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy5cblxuUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczpcbi0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy5cbi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuXG4tIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy5cbi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLFxuZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLlxuXG5JZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoXG50b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS5cblxuV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086XG4xLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLlxuICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuXG4yLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS5cbiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy5cbiAgIERvIG5vdCBsaXN0IHRvbyBnZW5lcmljIGNvbmZpZ3MgKHdlIGFscmVhZHkgaGF2ZSB0aGVtIGVuYWJsZWQpLiBPbmx5IGxpc3QgdGhvc2UgdGhhdFxuICAgc3BlY2lmaWNhbGx5IGNvdmVyIHRoZSBtb2RpZmllZCBjb2RlLiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3Mgb3V0cHV0IGFycmF5LFxuICAgYW5kIERPIE5PVCBhZGQgYSAnQ09ORklHXycgcHJlZml4IChlLmcuLCByZXR1cm4gXCJORVRfSVBWNFwiIGluc3RlYWQgb2YgXCJDT05GSUdfTkVUX0lQVjRcIikuXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCA3MmMxMDI4NmYzMzFlNjdkYzViNmI3MmQyNGMxYjEwZTJkMzczYzZjXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFdlZCBKdWwgMTUgMjM6MDU6MTQgMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L2llZWU4MDIxMS11aHIuaCBiL2luY2x1ZGUvbGludXgvaWVlZTgwMjExLXVoci5oXG5pbmRleCA1OTdjOWU1NTkyNjFiOS4uNjY1ZDRiM2E1YjQxODYgMTAwNjQ0XG4tLS0gYS9pbmNsdWRlL2xpbnV4L2llZWU4MDIxMS11aHIuaFxuKysrIGIvaW5jbHVkZS9saW51eC9pZWVlODAyMTEtdWhyLmhcbkBAIC0xNyw2ICsxNywxMSBAQFxuICNkZWZpbmUgSUVFRTgwMjExX1VIUl9PUEVSX1BBUkFNU19QRURDQV9FTkFcdFx0MHgwMDA0XG4gI2RlZmluZSBJRUVFODAyMTFfVUhSX09QRVJfUEFSQU1TX0RCRV9FTkFcdFx0MHgwMDA4XG4gI2RlZmluZSBJRUVFODAyMTFfVUhSX09QRVJfUEFSQU1TX0RCRV9CV1x0XHQweDAwNzBcbisjZGVmaW5lIElFRUU4MDIxMV9VSFJfT1BFUl9QQVJBTVNfRFVPX1BSRVNcdFx0MHgwMDgwXG4rI2RlZmluZSBJRUVFODAyMTFfVUhSX09QRVJfUEFSQU1TX0RQU19QUkVTXHRcdDB4MDEwMFxuKyNkZWZpbmUgSUVFRTgwMjExX1VIUl9PUEVSX1BBUkFNU19OUENBX1BSRVNcdFx0MHgwMjAwXG4rI2RlZmluZSBJRUVFODAyMTFfVUhSX09QRVJfUEFSQU1TX1BFRENBX1BSRVNcdFx0MHgwNDAwXG4rI2RlZmluZSBJRUVFODAyMTFfVUhSX09QRVJfUEFSQU1TX0RCRV9QUkVTXHRcdDB4MDgwMFxuIFxuIHN0cnVjdCBpZWVlODAyMTFfdWhyX29wZXJhdGlvbiB7XG4gXHRfX2xlMTYgcGFyYW1zO1xuQEAgLTI2NSw4ICsyNzAsNyBAQCBzdHJ1Y3QgaWVlZTgwMjExX3Vocl9wX2VkY2FfaW5mbyB7XG4gXHRfX2xlMTYgcGFyYW1zO1xuIH0gX19wYWNrZWQ7XG4gXG4tc3RhdGljIGlubGluZSBib29sIGllZWU4MDIxMV91aHJfb3Blcl9zaXplX29rKGNvbnN0IHU4ICpkYXRhLCB1OCBsZW4sXG4tXHRcdFx0XHRcdCAgICAgIGJvb2wgYmVhY29uKVxuK3N0YXRpYyBpbmxpbmUgYm9vbCBpZWVlODAyMTFfdWhyX29wZXJfc2l6ZV9vayhjb25zdCB1OCAqZGF0YSwgdTggbGVuKVxuIHtcbiBcdGNvbnN0IHN0cnVjdCBpZWVlODAyMTFfdWhyX29wZXJhdGlvbiAqb3BlciA9IChjb25zdCB2b2lkICopZGF0YTtcbiBcdHU4IG5lZWRlZCA9IHNpemVvZigqb3Blcik7XG5AQCAtMjc0LDE5ICsyNzgsMTUgQEAgc3RhdGljIGlubGluZSBib29sIGllZWU4MDIxMV91aHJfb3Blcl9zaXplX29rKGNvbnN0IHU4ICpkYXRhLCB1OCBsZW4sXG4gXHRpZiAobGVuIFx1MDAzYyBuZWVkZWQpXG4gXHRcdHJldHVybiBmYWxzZTtcbiBcbi1cdC8qIG5vdGhpbmcgZWxzZSBwcmVzZW50IGluIGJlYWNvbnMgKi9cbi1cdGlmIChiZWFjb24pXG4tXHRcdHJldHVybiB0cnVlO1xuLVxuIFx0LyogRFBTIE9wZXJhdGlvbiBQYXJhbWV0ZXJzIChmaXhlZCA0IGJ5dGVzKSAqL1xuLVx0aWYgKG9wZXItXHUwMDNlcGFyYW1zIFx1MDAyNiBjcHVfdG9fbGUxNihJRUVFODAyMTFfVUhSX09QRVJfUEFSQU1TX0RQU19FTkEpKSB7XG4rXHRpZiAob3Blci1cdTAwM2VwYXJhbXMgXHUwMDI2IGNwdV90b19sZTE2KElFRUU4MDIxMV9VSFJfT1BFUl9QQVJBTVNfRFBTX1BSRVMpKSB7XG4gXHRcdG5lZWRlZCArPSBzaXplb2Yoc3RydWN0IGllZWU4MDIxMV91aHJfZHBzX2luZm8pO1xuIFx0XHRpZiAobGVuIFx1MDAzYyBuZWVkZWQpXG4gXHRcdFx0cmV0dXJuIGZhbHNlO1xuIFx0fVxuIFxuIFx0LyogTlBDQSBPcGVyYXRpb24gUGFyYW1ldGVycyAoZml4ZWQgNCBieXRlcyArIG9wdGlvbmFsIDIgYnl0ZXMpICovXG4tXHRpZiAob3Blci1cdTAwM2VwYXJhbXMgXHUwMDI2IGNwdV90b19sZTE2KElFRUU4MDIxMV9VSFJfT1BFUl9QQVJBTVNfTlBDQV9FTkEpKSB7XG4rXHRpZiAob3Blci1cdTAwM2VwYXJhbXMgXHUwMDI2IGNwdV90b19sZTE2KElFRUU4MDIxMV9VSFJfT1BFUl9QQVJBTVNfTlBDQV9QUkVTKSkge1xuIFx0XHRjb25zdCBzdHJ1Y3QgaWVlZTgwMjExX3Vocl9ucGNhX2luZm8gKm5wY2EgPVxuIFx0XHRcdChjb25zdCB2b2lkICopKGRhdGEgKyBuZWVkZWQpO1xuIFxuQEAgLTMwMywxNCArMzAzLDE0IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBpZWVlODAyMTFfdWhyX29wZXJfc2l6ZV9vayhjb25zdCB1OCAqZGF0YSwgdTggbGVuLFxuIFx0fVxuIFxuIFx0LyogUC1FRENBIE9wZXJhdGlvbiBQYXJhbWV0ZXJzIChmaXhlZCAzIGJ5dGVzKSAqL1xuLVx0aWYgKG9wZXItXHUwMDNlcGFyYW1zIFx1MDAyNiBjcHVfdG9fbGUxNihJRUVFODAyMTFfVUhSX09QRVJfUEFSQU1TX1BFRENBX0VOQSkpIHtcbitcdGlmIChvcGVyLVx1MDAzZXBhcmFtcyBcdTAwMjYgY3B1X3RvX2xlMTYoSUVFRTgwMjExX1VIUl9PUEVSX1BBUkFNU19QRURDQV9QUkVTKSkge1xuIFx0XHRuZWVkZWQgKz0gc2l6ZW9mKHN0cnVjdCBpZWVlODAyMTFfdWhyX3BfZWRjYV9pbmZvKTtcbiBcdFx0aWYgKGxlbiBcdTAwM2MgbmVlZGVkKVxuIFx0XHRcdHJldHVybiBmYWxzZTtcbiBcdH1cbiBcbiBcdC8qIERCRSBPcGVyYXRpb24gUGFyYW1ldGVycyAoZml4ZWQgMSBieXRlICsgb3B0aW9uYWwgMiBieXRlcykgKi9cbi1cdGlmIChvcGVyLVx1MDAzZXBhcmFtcyBcdTAwMjYgY3B1X3RvX2xlMTYoSUVFRTgwMjExX1VIUl9PUEVSX1BBUkFNU19EQkVfRU5BKSkge1xuK1x0aWYgKG9wZXItXHUwMDNlcGFyYW1zIFx1MDAyNiBjcHVfdG9fbGUxNihJRUVFODAyMTFfVUhSX09QRVJfUEFSQU1TX0RCRV9QUkVTKSkge1xuIFx0XHRjb25zdCBzdHJ1Y3QgaWVlZTgwMjExX3Vocl9kYmVfaW5mbyAqZGJlID1cbiBcdFx0XHQoY29uc3Qgdm9pZCAqKShkYXRhICsgbmVlZGVkKTtcbiBcbkBAIC0zMjksMTkgKzMyOSwxOSBAQCBzdGF0aWMgaW5saW5lIGJvb2wgaWVlZTgwMjExX3Vocl9vcGVyX3NpemVfb2soY29uc3QgdTggKmRhdGEsIHU4IGxlbixcbiBcdHJldHVybiBsZW4gXHUwMDNlPSBuZWVkZWQ7XG4gfVxuIFxuLS8qXG4tICogTm90ZTogY2Fubm90IGNhbGwgdGhpcyBvbiB0aGUgZWxlbWVudCBjb21pbmcgZnJvbSBhIGJlYWNvbixcbi0gKiBtdXN0IGVuc3VyZSBpZWVlODAyMTFfdWhyX29wZXJfc2l6ZV9vayguLi4sIGZhbHNlKSBmaXJzdFxuLSAqL1xuKy8qIE5vdGU6IG11c3QgZW5zdXJlIGllZWU4MDIxMV91aHJfb3Blcl9zaXplX29rKC4uLikgZmlyc3QgKi9cbiBzdGF0aWMgaW5saW5lIGNvbnN0IHN0cnVjdCBpZWVlODAyMTFfdWhyX25wY2FfaW5mbyAqXG4gaWVlZTgwMjExX3Vocl9ucGNhX2luZm8oY29uc3Qgc3RydWN0IGllZWU4MDIxMV91aHJfb3BlcmF0aW9uICpvcGVyKVxuIHtcbiBcdGNvbnN0IHU4ICpwb3MgPSBvcGVyLVx1MDAzZXZhcmlhYmxlO1xuIFxuK1x0aWYgKCEob3Blci1cdTAwM2VwYXJhbXMgXHUwMDI2IGNwdV90b19sZTE2KElFRUU4MDIxMV9VSFJfT1BFUl9QQVJBTVNfTlBDQV9QUkVTKSkpXG4rXHRcdHJldHVybiBOVUxMO1xuK1xuIFx0aWYgKCEob3Blci1cdTAwM2VwYXJhbXMgXHUwMDI2IGNwdV90b19sZTE2KElFRUU4MDIxMV9VSFJfT1BFUl9QQVJBTVNfTlBDQV9FTkEpKSlcbiBcdFx0cmV0dXJuIE5VTEw7XG4gXG4tXHRpZiAob3Blci1cdTAwM2VwYXJhbXMgXHUwMDI2IGNwdV90b19sZTE2KElFRUU4MDIxMV9VSFJfT1BFUl9QQVJBTVNfRFBTX0VOQSkpXG4rXHRpZiAob3Blci1cdTAwM2VwYXJhbXMgXHUwMDI2IGNwdV90b19sZTE2KElFRUU4MDIxMV9VSFJfT1BFUl9QQVJBTVNfRFBTX1BSRVMpKVxuIFx0XHRwb3MgKz0gc2l6ZW9mKHN0cnVjdCBpZWVlODAyMTFfdWhyX2Rwc19pbmZvKTtcbiBcbiBcdHJldHVybiAoY29uc3Qgdm9pZCAqKXBvcztcbkBAIC0zNjAsMjIgKzM2MCwyMiBAQCBpZWVlODAyMTFfdWhyX25wY2FfZGlzX3N1YmNoX2JpdG1hcChjb25zdCBzdHJ1Y3QgaWVlZTgwMjExX3Vocl9vcGVyYXRpb24gKm9wZXIpXG4gXHRyZXR1cm4gbnBjYS1cdTAwM2VkaXNfc3ViY2hfYm1hcDtcbiB9XG4gXG4tLypcbi0gKiBOb3RlOiBjYW5ub3QgY2FsbCB0aGlzIG9uIHRoZSBlbGVtZW50IGNvbWluZyBmcm9tIGEgYmVhY29uLFxuLSAqIG11c3QgZW5zdXJlIGllZWU4MDIxMV91aHJfb3Blcl9zaXplX29rKC4uLiwgZmFsc2UpIGZpcnN0XG4tICovXG4rLyogTm90ZTogbXVzdCBlbnN1cmUgaWVlZTgwMjExX3Vocl9vcGVyX3NpemVfb2soLi4uKSBmaXJzdCAqL1xuIHN0YXRpYyBpbmxpbmUgY29uc3Qgc3RydWN0IGllZWU4MDIxMV91aHJfZGJlX2luZm8gKlxuIGllZWU4MDIxMV91aHJfb3Blcl9kYmVfaW5mbyhjb25zdCBzdHJ1Y3QgaWVlZTgwMjExX3Vocl9vcGVyYXRpb24gKm9wZXIpXG4ge1xuIFx0Y29uc3QgdTggKnBvcyA9IG9wZXItXHUwMDNldmFyaWFibGU7XG4gXG4rXHRpZiAoIShvcGVyLVx1MDAzZXBhcmFtcyBcdTAwMjYgY3B1X3RvX2xlMTYoSUVFRTgwMjExX1VIUl9PUEVSX1BBUkFNU19EQkVfUFJFUykpKVxuK1x0XHRyZXR1cm4gTlVMTDtcbitcbiBcdGlmICghKG9wZXItXHUwMDNlcGFyYW1zIFx1MDAyNiBjcHVfdG9fbGUxNihJRUVFODAyMTFfVUhSX09QRVJfUEFSQU1TX0RCRV9FTkEpKSlcbiBcdFx0cmV0dXJuIE5VTEw7XG4gXG4tXHRpZiAob3Blci1cdTAwM2VwYXJhbXMgXHUwMDI2IGNwdV90b19sZTE2KElFRUU4MDIxMV9VSFJfT1BFUl9QQVJBTVNfRFBTX0VOQSkpXG4rXHRpZiAob3Blci1cdTAwM2VwYXJhbXMgXHUwMDI2IGNwdV90b19sZTE2KElFRUU4MDIxMV9VSFJfT1BFUl9QQVJBTVNfRFBTX1BSRVMpKVxuIFx0XHRwb3MgKz0gc2l6ZW9mKHN0cnVjdCBpZWVlODAyMTFfdWhyX2Rwc19pbmZvKTtcbiBcbi1cdGlmIChvcGVyLVx1MDAzZXBhcmFtcyBcdTAwMjYgY3B1X3RvX2xlMTYoSUVFRTgwMjExX1VIUl9PUEVSX1BBUkFNU19OUENBX0VOQSkpIHtcbitcdGlmIChvcGVyLVx1MDAzZXBhcmFtcyBcdTAwMjYgY3B1X3RvX2xlMTYoSUVFRTgwMjExX1VIUl9PUEVSX1BBUkFNU19OUENBX1BSRVMpKSB7XG4gXHRcdGNvbnN0IHN0cnVjdCBpZWVlODAyMTFfdWhyX25wY2FfaW5mbyAqbnBjYSA9IChjb25zdCB2b2lkICopcG9zO1xuIFxuIFx0XHRwb3MgKz0gc2l6ZW9mKCpucGNhKTtcbkBAIC0zODMsNyArMzgzLDcgQEAgaWVlZTgwMjExX3Vocl9vcGVyX2RiZV9pbmZvKGNvbnN0IHN0cnVjdCBpZWVlODAyMTFfdWhyX29wZXJhdGlvbiAqb3BlcilcbiBcdFx0XHRwb3MgKz0gc2l6ZW9mKG5wY2EtXHUwMDNlZGlzX3N1YmNoX2JtYXBbMF0pO1xuIFx0fVxuIFxuLVx0aWYgKG9wZXItXHUwMDNlcGFyYW1zIFx1MDAyNiBjcHVfdG9fbGUxNihJRUVFODAyMTFfVUhSX09QRVJfUEFSQU1TX1BFRENBX0VOQSkpXG4rXHRpZiAob3Blci1cdTAwM2VwYXJhbXMgXHUwMDI2IGNwdV90b19sZTE2KElFRUU4MDIxMV9VSFJfT1BFUl9QQVJBTVNfUEVEQ0FfUFJFUykpXG4gXHRcdHBvcyArPSBzaXplb2Yoc3RydWN0IGllZWU4MDIxMV91aHJfcF9lZGNhX2luZm8pO1xuIFxuIFx0cmV0dXJuIChjb25zdCB2b2lkICopcG9zO1xuZGlmZiAtLWdpdCBhL25ldC9tYWM4MDIxMS9tbG1lLmMgYi9uZXQvbWFjODAyMTEvbWxtZS5jXG5pbmRleCA5ZTkyMzM3YmI2ZjllNS4uNGFkNWU5NDk3MzIzMTYgMTAwNjQ0XG4tLS0gYS9uZXQvbWFjODAyMTEvbWxtZS5jXG4rKysgYi9uZXQvbWFjODAyMTEvbWxtZS5jXG5AQCAtMTcwMSw4ICsxNzAxLDcgQEAgc3RhdGljIGludCBpZWVlODAyMTFfY29uZmlnX2J3KHN0cnVjdCBpZWVlODAyMTFfbGlua19kYXRhICpsaW5rLFxuIFx0aWYgKHN0eXBlICE9IElFRUU4MDIxMV9TVFlQRV9CRUFDT04gXHUwMDI2XHUwMDI2XG4gXHQgICAgY2hhbnJlcS5vcGVyLm5wY2FfY2hhbiBcdTAwMjZcdTAwMjYgZWxlbXMtXHUwMDNldWhyX29wZXJhdGlvbiBcdTAwMjZcdTAwMjZcbiBcdCAgICBpZWVlODAyMTFfdWhyX29wZXJfc2l6ZV9vaygoY29uc3Qgdm9pZCAqKWVsZW1zLVx1MDAzZXVocl9vcGVyYXRpb24sXG4tXHRcdFx0XHQgICAgICAgZWxlbXMtXHUwMDNldWhyX29wZXJhdGlvbl9sZW4sXG4tXHRcdFx0XHQgICAgICAgZmFsc2UpKSB7XG4rXHRcdFx0XHQgICAgICAgZWxlbXMtXHUwMDNldWhyX29wZXJhdGlvbl9sZW4pKSB7XG4gXHRcdGNvbnN0IHN0cnVjdCBpZWVlODAyMTFfdWhyX25wY2FfaW5mbyAqbnBjYTtcbiBcdFx0c3RydWN0IGllZWU4MDIxMV9ic3NfbnBjYV9wYXJhbXMgcGFyYW1zID0ge307XG4gXG5kaWZmIC0tZ2l0IGEvbmV0L21hYzgwMjExL3BhcnNlLmMgYi9uZXQvbWFjODAyMTEvcGFyc2UuY1xuaW5kZXggYzJmMmY3OGYyYjRmNzIuLmNiMmJlMTY3Y2RlNzk1IDEwMDY0NFxuLS0tIGEvbmV0L21hYzgwMjExL3BhcnNlLmNcbisrKyBiL25ldC9tYWM4MDIxMS9wYXJzZS5jXG5AQCAtMjA5LDkgKzIwOSw3IEBAIGllZWU4MDIxMV9wYXJzZV9leHRlbnNpb25fZWxlbWVudCh1MzIgKmNyYyxcbiBcdFx0aWYgKHBhcmFtcy1cdTAwM2Vtb2RlIFx1MDAzYyBJRUVFODAyMTFfQ09OTl9NT0RFX1VIUilcbiBcdFx0XHRicmVhaztcbiBcdFx0Y2FsY19jcmMgPSB0cnVlO1xuLVx0XHRpZiAoaWVlZTgwMjExX3Vocl9vcGVyX3NpemVfb2soZGF0YSwgbGVuLFxuLVx0XHRcdFx0XHQgICAgICAgcGFyYW1zLVx1MDAzZXR5cGUgPT0gKElFRUU4MDIxMV9GVFlQRV9NR01UIHxcbi1cdFx0XHRcdFx0XHRcdFx0SUVFRTgwMjExX1NUWVBFX0JFQUNPTikpKSB7XG4rXHRcdGlmIChpZWVlODAyMTFfdWhyX29wZXJfc2l6ZV9vayhkYXRhLCBsZW4pKSB7XG4gXHRcdFx0ZWxlbXMtXHUwMDNldWhyX29wZXJhdGlvbiA9IGRhdGE7XG4gXHRcdFx0ZWxlbXMtXHUwMDNldWhyX29wZXJhdGlvbl9sZW4gPSBsZW47XG4gXHRcdH1cbmRpZmYgLS1naXQgYS9uZXQvd2lyZWxlc3Mvbmw4MDIxMS5jIGIvbmV0L3dpcmVsZXNzL25sODAyMTEuY1xuaW5kZXggMjQyMDcxYWQxMGQ2YzkuLjVmYTcwOTc0ZDU3Y2MxIDEwMDY0NFxuLS0tIGEvbmV0L3dpcmVsZXNzL25sODAyMTEuY1xuKysrIGIvbmV0L3dpcmVsZXNzL25sODAyMTEuY1xuQEAgLTQ0MSw3ICs0NDEsNyBAQCBzdGF0aWMgaW50IHZhbGlkYXRlX3Vocl9vcGVyYXRpb24oY29uc3Qgc3RydWN0IG5sYXR0ciAqYXR0cixcbiBcdGNvbnN0IHU4ICpkYXRhID0gbmxhX2RhdGEoYXR0cik7XG4gXHR1bnNpZ25lZCBpbnQgbGVuID0gbmxhX2xlbihhdHRyKTtcbiBcbi1cdGlmICghaWVlZTgwMjExX3Vocl9vcGVyX3NpemVfb2soZGF0YSwgbGVuLCBmYWxzZSkpXG4rXHRpZiAoIWllZWU4MDIxMV91aHJfb3Blcl9zaXplX29rKGRhdGEsIGxlbikpXG4gXHRcdHJldHVybiAtRUlOVkFMO1xuIFx0cmV0dXJuIDA7XG4gfVxuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTVUMjM6MDU6MTcuMDY5MTA0OTA1WiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NjE5NDcyNjMyMiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIFVIUiBPcGVyYXRpb24gRWxlbWVudCBQYXRjaCoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggdGhhdCB0d2Vha3MgdGhlIGBpZWVlODAyMTFfdWhyX29wZXJfc2l6ZV9va2AgZnVuY3Rpb24gYW5kIGl0cyByZWxhdGVkIGNhbGxzIGluIGBuZXQvbWFjODAyMTFgIGFuZCBgbmV0L3dpcmVsZXNzYC4gSXQgbG9va3MgbGlrZSB0aGV5J3ZlIHJlbW92ZWQgdGhlIGBiZWFjb25gIHBhcmFtZXRlciBmcm9tIHRoYXQgZnVuY3Rpb24gYW5kIHN3YXBwZWQgb3V0IHRoZSBgX0VOQWAgbWFjcm9zIHdpdGggYF9QUkVTYCBtYWNyb3MgZm9yIGNoZWNraW5nIGZpZWxkIHByZXNlbmNlIHdpdGhpbiB0aGUgVUhSIG9wZXJhdGlvbiBlbGVtZW50LiBNeSBpbW1lZGlhdGUgdGhvdWdodCBpcywgXCJJcyB0aGlzIGdvaW5nIHRvIGFjdHVhbGx5IHdvcms/XCJcblxuRmlyc3QgdGhpbmdzIGZpcnN0LCBsZXQncyBjb25maXJtIHJlYWNoYWJpbGl0eSBhbmQgZnVuY3Rpb25hbGl0eS4gSSBzZWUgYGllZWU4MDIxMV91aHJfb3Blcl9zaXplX29rYCBpcyBhbiBpbmxpbmUgZnVuY3Rpb24gZGVmaW5lZCBpbiBgaW5jbHVkZS9saW51eC9pZWVlODAyMTEtdWhyLmhgIGFuZCBpcyBjYWxsZWQgZnJvbSBhIGZldyBwbGFjZXMuIFNwZWNpZmljYWxseSwgYGllZWU4MDIxMV9jb25maWdfYndgIGluIGBuZXQvbWFjODAyMTEvbWxtZS5jYCwgYGllZWU4MDIxMV9wYXJzZV9leHRlbnNpb25fZWxlbWVudGAgaW4gYG5ldC9tYWM4MDIxMS9wYXJzZS5jYCwgYW5kIGZpbmFsbHkgYHZhbGlkYXRlX3Vocl9vcGVyYXRpb25gIGluIGBuZXQvd2lyZWxlc3Mvbmw4MDIxMS5jYC4gU28geWVhaCwgdGhpcyBkZWZpbml0ZWx5IHNlZW1zIHRvIGJlIGZ1bmN0aW9uaW5nIGFzIGludGVuZGVkLCBwYXJzaW5nIHRob3NlIDgwMi4xMSBVSFIgb3BlcmF0aW9uIGVsZW1lbnRzLiBXYWl0Li4uIFVIUi4gVGhhdCdzIHByb2JhYmx5IFdpLUZpIDgsIG9yIDgwMi4xMWJuLlxuXG5Ob3csIGxldCdzIGlkZW50aWZ5IHRoZSByZWxldmFudCBjb25maWd1cmF0aW9uIG9wdGlvbnMuIENsZWFybHksIGBDT05GSUdfTUFDODAyMTFgIGFuZCBgQ09ORklHX0NGRzgwMjExYCBhcmUgZ29pbmcgdG8gYmUgaW52b2x2ZWQgaGVyZS4gQW5kIHdpdGggZnV6emluZyBpbiBtaW5kLCBJIG5lZWQgdG8gcGlucG9pbnQgdGhlIGtleSBmdW5jdGlvbnMgdG8gdGFyZ2V0LiBMb29rcyBsaWtlIGBpZWVlODAyMTFfY29uZmlnX2J3YCwgYGllZWU4MDIxMV9wYXJzZV9leHRlbnNpb25fZWxlbWVudGAsIGFuZCBgdmFsaWRhdGVfdWhyX29wZXJhdGlvbmAgYXJlIHRoZSBwcmltYXJ5IGNhbmRpZGF0ZXMuIEkgc2hvdWxkIHByb2JhYmx5IGZvY3VzIG9uIGB2YWxpZGF0ZV91aHJfb3BlcmF0aW9uYCBpbiBgbmV0L3dpcmVsZXNzL25sODAyMTEuY2AgZmlyc3QgdG8gdW5kZXJzdGFuZCB0aGUgY29udGV4dCBvZiB0aGUgY2hhbmdlLlxuXG5cbiIsIklucHV0VG9rZW5zIjo0Nzc5LCJPdXRwdXRUb2tlbnMiOjIwLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NDU4LCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTVUMjM6MDU6MjMuMjYzODMzODM3WiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjI2MDUwMzY0MTcsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwidmFsaWRhdGVfdWhyX29wZXJhdGlvblwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJuZXQvd2lyZWxlc3Mvbmw4MDIxMS5jPTQyNz1zdGF0aWMgaW50IHZhbGlkYXRlX3Vocl9jYXBhKGNvbnN0IHN0cnVjdCBubGF0dHIgKmF0dHIsXFxuLS1cXG5uZXQvd2lyZWxlc3Mvbmw4MDIxMS5jLTQzNy1cXG5uZXQvd2lyZWxlc3Mvbmw4MDIxMS5jOjQzODpzdGF0aWMgaW50IHZhbGlkYXRlX3Vocl9vcGVyYXRpb24oY29uc3Qgc3RydWN0IG5sYXR0ciAqYXR0cixcXG5uZXQvd2lyZWxlc3Mvbmw4MDIxMS5jLTQzOS1cXHRcXHRcXHRcXHQgIHN0cnVjdCBuZXRsaW5rX2V4dF9hY2sgKmV4dGFjaylcXG4tLVxcbm5ldC93aXJlbGVzcy9ubDgwMjExLmM9Njk4PXN0YXRpYyBjb25zdCBzdHJ1Y3QgbmxhX3BvbGljeSBubDgwMjExX3BvbGljeVtOVU1fTkw4MDIxMV9BVFRSXSA9IHtcXG4tLVxcbm5ldC93aXJlbGVzcy9ubDgwMjExLmMtMTA3NS1cXHRbTkw4MDIxMV9BVFRSX1VIUl9PUEVSQVRJT05dID1cXG5uZXQvd2lyZWxlc3Mvbmw4MDIxMS5jOjEwNzY6XFx0XFx0TkxBX1BPTElDWV9WQUxJREFURV9GTihOTEFfQklOQVJZLCB2YWxpZGF0ZV91aHJfb3BlcmF0aW9uKSxcXG5uZXQvd2lyZWxlc3Mvbmw4MDIxMS5jLTEwNzctXFx0W05MODAyMTFfQVRUUl9OQU5fQ0hBTk5FTF0gPSBOTEFfUE9MSUNZX05FU1RFRChubDgwMjExX3BvbGljeSksXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE1VDIzOjA1OjI1Ljg2ODg3Nzg1NFoiLCJTZXEiOjUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjM2ODczMzkwNjQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIFBvdGVudGlhbCBTZWN1cml0eSBJbXBsaWNhdGlvbnMqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIGNvZGUgYW5kIEkga25vdyBgdmFsaWRhdGVfdWhyX29wZXJhdGlvbmAgaXMgZGVmaW5pdGVseSByZWFjaGFibGUgdGhyb3VnaCBuZXRsaW5rIHBvbGljeSB2YWxpZGF0aW9uLCB0aGF0J3MgZ29vZCB0byBrbm93LiBOb3csIEkgc2VlIGBpZWVlODAyMTFfcGFyc2VfZXh0ZW5zaW9uX2VsZW1lbnRgIGlzIGxvY2F0ZWQgaW4gYG5ldC9tYWM4MDIxMS9wYXJzZS5jYCBhbmQgYGllZWU4MDIxMV9jb25maWdfYndgIGlzIGluIGBuZXQvbWFjODAyMTEvbWxtZS5jYC4gSSBuZWVkIHRvIGZpZ3VyZSBvdXQgaG93IHRoZXNlIGZ1bmN0aW9ucyBpbnRlcmFjdCBhbmQgaWYgdGhlcmUncyBhbnkgcG90ZW50aWFsIGZvciBtaXN1c2Ugb3IgdnVsbmVyYWJpbGl0aWVzLiBJJ20gc3BlY2lmaWNhbGx5IGN1cmlvdXMgYWJvdXQgdGhlIHJlbGF0aW9uc2hpcCBvZiB0aGVzZSBmdW5jdGlvbnMgdG8gYGllZWU4MDIxMV91aHJfb3Blcl9zaXplX29rYC4gSSdtIGdvaW5nIHRvIGxvb2sgYXQgdGhlIGNyb3NzLXJlZmVyZW5jZXMgYW5kIHNlZSB3aGF0IGNhbGxzIGBpZWVlODAyMTFfdWhyX29wZXJfc2l6ZV9va2AuIFRoYXQgbWlnaHQgZ2l2ZSBtZSBzb21lIGludGVyZXN0aW5nIGxlYWRzLiBJIHdhbnQgdG8gc2VlIGlmIHRoaXMgZnVuY3Rpb24gaXMgdXNlZCBlbHNld2hlcmUsIGFuZCBpZiBpdCBpcywgaG93IGl0J3MgYmVpbmcgdXNlZC5cblxuXG4iLCJJbnB1dFRva2VucyI6NjAzMiwiT3V0cHV0VG9rZW5zIjozMCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjExNSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0xNVQyMzowNToyOS41NTYyMTg4MThaIiwiU2VxIjo2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjI1MDcxMjAzMywiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJpZWVlODAyMTFfdWhyX29wZXJfc2l6ZV9va1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJpbmNsdWRlL2xpbnV4L2llZWU4MDIxMS11aHIuaD0yNjg9c3RydWN0IGllZWU4MDIxMV91aHJfcF9lZGNhX2luZm8ge1xcbi0tXFxuaW5jbHVkZS9saW51eC9pZWVlODAyMTEtdWhyLmgtMjcyLVxcbmluY2x1ZGUvbGludXgvaWVlZTgwMjExLXVoci5oOjI3MzpzdGF0aWMgaW5saW5lIGJvb2wgaWVlZTgwMjExX3Vocl9vcGVyX3NpemVfb2soY29uc3QgdTggKmRhdGEsIHU4IGxlbilcXG5pbmNsdWRlL2xpbnV4L2llZWU4MDIxMS11aHIuaC0yNzQte1xcbi0tXFxuaW5jbHVkZS9saW51eC9pZWVlODAyMTEtdWhyLmgtMzMxLVxcbmluY2x1ZGUvbGludXgvaWVlZTgwMjExLXVoci5oOjMzMjovKiBOb3RlOiBtdXN0IGVuc3VyZSBpZWVlODAyMTFfdWhyX29wZXJfc2l6ZV9vayguLi4pIGZpcnN0ICovXFxuaW5jbHVkZS9saW51eC9pZWVlODAyMTEtdWhyLmgtMzMzLXN0YXRpYyBpbmxpbmUgY29uc3Qgc3RydWN0IGllZWU4MDIxMV91aHJfbnBjYV9pbmZvICpcXG4tLVxcbmluY2x1ZGUvbGludXgvaWVlZTgwMjExLXVoci5oPTM1MT1pZWVlODAyMTFfdWhyX25wY2FfZGlzX3N1YmNoX2JpdG1hcChjb25zdCBzdHJ1Y3QgaWVlZTgwMjExX3Vocl9vcGVyYXRpb24gKm9wZXIpXFxuLS1cXG5pbmNsdWRlL2xpbnV4L2llZWU4MDIxMS11aHIuaC0zNjItXFxuaW5jbHVkZS9saW51eC9pZWVlODAyMTEtdWhyLmg6MzYzOi8qIE5vdGU6IG11c3QgZW5zdXJlIGllZWU4MDIxMV91aHJfb3Blcl9zaXplX29rKC4uLikgZmlyc3QgKi9cXG5pbmNsdWRlL2xpbnV4L2llZWU4MDIxMS11aHIuaC0zNjQtc3RhdGljIGlubGluZSBjb25zdCBzdHJ1Y3QgaWVlZTgwMjExX3Vocl9kYmVfaW5mbyAqXFxuLS1cXG5uZXQvbWFjODAyMTEvbWxtZS5jPTE1OTI9c3RhdGljIGludCBpZWVlODAyMTFfY29uZmlnX2J3KHN0cnVjdCBpZWVlODAyMTFfbGlua19kYXRhICpsaW5rLFxcbi0tXFxubmV0L21hYzgwMjExL21sbWUuYy0xNzAyLVxcdCAgICBjaGFucmVxLm9wZXIubnBjYV9jaGFuIFxcdTAwMjZcXHUwMDI2IGVsZW1zLVxcdTAwM2V1aHJfb3BlcmF0aW9uIFxcdTAwMjZcXHUwMDI2XFxubmV0L21hYzgwMjExL21sbWUuYzoxNzAzOlxcdCAgICBpZWVlODAyMTFfdWhyX29wZXJfc2l6ZV9vaygoY29uc3Qgdm9pZCAqKWVsZW1zLVxcdTAwM2V1aHJfb3BlcmF0aW9uLFxcbm5ldC9tYWM4MDIxMS9tbG1lLmMtMTcwNC1cXHRcXHRcXHRcXHQgICAgICAgZWxlbXMtXFx1MDAzZXVocl9vcGVyYXRpb25fbGVuKSkge1xcbi0tXFxubmV0L21hYzgwMjExL3BhcnNlLmM9NzI9aWVlZTgwMjExX3BhcnNlX2V4dGVuc2lvbl9lbGVtZW50KHUzMiAqY3JjLFxcbi0tXFxubmV0L21hYzgwMjExL3BhcnNlLmMtMjExLVxcdFxcdGNhbGNfY3JjID0gdHJ1ZTtcXG5uZXQvbWFjODAyMTEvcGFyc2UuYzoyMTI6XFx0XFx0aWYgKGllZWU4MDIxMV91aHJfb3Blcl9zaXplX29rKGRhdGEsIGxlbikpIHtcXG5uZXQvbWFjODAyMTEvcGFyc2UuYy0yMTMtXFx0XFx0XFx0ZWxlbXMtXFx1MDAzZXVocl9vcGVyYXRpb24gPSBkYXRhO1xcbi0tXFxubmV0L3dpcmVsZXNzL25sODAyMTEuYz00Mzg9c3RhdGljIGludCB2YWxpZGF0ZV91aHJfb3BlcmF0aW9uKGNvbnN0IHN0cnVjdCBubGF0dHIgKmF0dHIsXFxuLS1cXG5uZXQvd2lyZWxlc3Mvbmw4MDIxMS5jLTQ0My1cXG5uZXQvd2lyZWxlc3Mvbmw4MDIxMS5jOjQ0NDpcXHRpZiAoIWllZWU4MDIxMV91aHJfb3Blcl9zaXplX29rKGRhdGEsIGxlbikpXFxubmV0L3dpcmVsZXNzL25sODAyMTEuYy00NDUtXFx0XFx0cmV0dXJuIC1FSU5WQUw7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE1VDIzOjA1OjMxLjgwNjkzNjg0MVoiLCJTZXEiOjcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQ0NzkyNDI2NzgsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSB0YWtlIG9uIHRob3NlIGZ1bmN0aW9ucyBhbmQgdGhlIGFyZWFzIEkgbmVlZCB0byBmb2N1cyBvbjpcblxuKipNeSBJbW1lZGlhdGUgQXNzZXNzbWVudCoqXG5cbkFscmlnaHQsIGxldCdzIGdldCBkb3duIHRvIGJyYXNzIHRhY2tzLiBCYXNlZCBvbiB0aGUgZ2l2ZW4gZnVuY3Rpb25zLCBteSBhdHRlbnRpb24gaXMgaW1tZWRpYXRlbHkgZHJhd24gdG8gYSBmZXcga2V5IGFyZWFzIHdpdGhpbiB0aGUgODAyLjExIHN0YWNrLiBXZSBoYXZlIHRocmVlIG1haW4gZnVuY3Rpb25zIGZsYWdnZWQgZm9yIGludmVzdGlnYXRpb246IGBpZWVlODAyMTFfY29uZmlnX2J3YCwgYGllZWU4MDIxMV9wYXJzZV9leHRlbnNpb25fZWxlbWVudGAsIGFuZCBgdmFsaWRhdGVfdWhyX29wZXJhdGlvbmAuIEltbWVkaWF0ZWx5LCBteSBicmFpbiBzdGFydHMgcnVubmluZyB0aHJvdWdoIHRoZSBwb3RlbnRpYWwgaW1wbGljYXRpb25zLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCBob3cgdGhlc2UgZnVuY3Rpb25zIGludGVyYWN0LCBhbmQgd2hhdCB0aGUgb3ZlcmFsbCBzeXN0ZW0gYmVoYXZpb3VyIGlzIHdoZW4gdGhleSBhcmUgY2FsbGVkLlxuXG5gaWVlZTgwMjExX2NvbmZpZ19id2AgaXMsIG9mIGNvdXJzZSwgY3JpdGljYWwgZm9yIGRlZmluaW5nIGJhbmR3aWR0aCBzZXR0aW5ncy4gSSBuZWVkIHRvIGV4YW1pbmUgaXRzIGltcGxlbWVudGF0aW9uLCBlc3BlY2lhbGx5IGhvdyBpdCBoYW5kbGVzIHZhcmlvdXMgYmFuZHdpZHRoIG1vZGVzLCBjaGFubmVsIHNlbGVjdGlvbiwgYW5kIGFueSBwb3RlbnRpYWwgaW50ZXJhY3Rpb25zIHdpdGggcmVnaW9uYWwgcmVndWxhdG9yeSBjb25zdHJhaW50cy4gSSdsbCBuZWVkIHRvIGxvb2sgZm9yIGFueSBwb3RlbnRpYWwgZm9yIGJ1ZmZlciBvdmVyZmxvd3Mgb3IgaW5jb3JyZWN0IHBhcmFtZXRlciBoYW5kbGluZy5cblxuYGllZWU4MDIxMV9wYXJzZV9leHRlbnNpb25fZWxlbWVudGAgaXMgYW5vdGhlciB2aXRhbCBwaWVjZSBvZiB0aGUgcHV6emxlLiBUaGlzIGxpa2VseSBoYW5kbGVzIHRoZSBwYXJzaW5nIG9mIHZlbmRvci1zcGVjaWZpYyBvciBzdGFuZGFyZCBleHRlbnNpb25zIHdpdGhpbiB0aGUgODAyLjExIGZyYW1lLiBUaGlzIGlzIGEgY29tbW9uIGF0dGFjayB2ZWN0b3IsIGFuZCBJIG5lZWQgdG8gYXNzZXNzIGhvdyByb2J1c3QgdGhlIHBhcnNpbmcgbG9naWMgaXMuIEFyZSB0aGVyZSBhbnkga25vd24gdnVsbmVyYWJpbGl0aWVzIHJlbGF0ZWQgdG8gbWFsZm9ybWVkIGV4dGVuc2lvbiBlbGVtZW50cywgcGFydGljdWxhcmx5IHRob3NlIGludm9sdmluZyBzaXplIGxpbWl0cyBvciBkYXRhIHZhbGlkYXRpb24/IFRoZSBkZXRhaWxzIG9mIHRoZSBwYXJzaW5nIGFyZSBnb2luZyB0byBiZSBrZXksIGVzcGVjaWFsbHkgaG93IGl0IGhhbmRsZXMgdHlwZS1sZW5ndGgtdmFsdWUgKFRMVikgc3RydWN0dXJlcy5cblxuRmluYWxseSwgYHZhbGlkYXRlX3Vocl9vcGVyYXRpb25gIHN1Z2dlc3RzIHdlJ3JlIGxvb2tpbmcgYXQgdGhlIHN1cHBvcnQgZm9yIFVsdHJhIEhpZ2ggUmF0ZSAoVUhSKSBtb2Rlcy4gSSBuZWVkIHRvIHNlZSBob3cgdGhlIHN5c3RlbSBlbnN1cmVzIHRoYXQgdGhlc2UgbW9kZXMgYXJlIHByb3Blcmx5IHZhbGlkYXRlZCBhbmQgdGhhdCBhbGwgdGhlIG5lY2Vzc2FyeSBwcmVyZXF1aXNpdGVzIGFyZSBtZXQuIFRoaXMgaW5jbHVkZXMgdGhlIHBvdGVudGlhbCBmb3IgcG93ZXIgY29uc3VtcHRpb24gY29uc2lkZXJhdGlvbnMsIHNwZWN0cnVtIGNvbXBhdGliaWxpdHksIGFuZCBvZiBjb3Vyc2UsIGFueSBwb3NzaWJsZSBzZWN1cml0eSB2dWxuZXJhYmlsaXRpZXMgaW5oZXJlbnQgaW4gc3VwcG9ydGluZyBhIGhpZ2hlciBkYXRhIHJhdGUuXG5cbk15IG5leHQgc3RlcCBpcyB0byBkaXZlIGludG8gdGhlIGNvbmZpZ3VyYXRpb24gZmlsZXMuIEknbSBnb2luZyB0byBxdWlja2x5IGNoZWNrIHRoZSByZWxldmFudCBjb25maWd1cmF0aW9uIGZpbGVzIHdpdGhpbiBgbmV0L21hYzgwMjExYCBhbmQgYG5ldC93aXJlbGVzc2AgdG8gZ2V0IGEgaGlnaC1sZXZlbCBvdmVydmlldyBvZiB0aGUgb3ZlcmFsbCBzeXN0ZW0gc2V0dXAsIGluY2x1ZGluZyBhbnkgZGVwZW5kZW5jaWVzLCBkZWZhdWx0IHZhbHVlcywgYW5kIGdlbmVyYWwgYXJjaGl0ZWN0dXJlLiBUaGVuLCBJIGNhbiBzdGFydCBsb29raW5nIGF0IHRoZSBzb3VyY2UgY29kZSBmb3IgZWFjaCBvZiB0aG9zZSBmdW5jdGlvbnMsIGZvY3VzaW5nIG9uIGRhdGEgdHlwZXMsIGVycm9yIGhhbmRsaW5nLCBpbnB1dCB2YWxpZGF0aW9uLCBhbmQgYW55IGludGVyYWN0aW9ucyB3aXRoIGV4dGVybmFsIG1vZHVsZXMgb3IgaGFyZHdhcmUgcmVnaXN0ZXJzLiBUaGlzIGlzIHdoZXJlIHRoZSByZWFsIHdvcmsgYmVnaW5zLlxuXG5cbiIsIklucHV0VG9rZW5zIjo3MjczLCJPdXRwdXRUb2tlbnMiOjIxLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NzIsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMTVUMjM6MDU6MzYuMjg2MTgxNzY5WiIsIlNlcSI6OCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjIxNjMwNTU3OTYsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY29uZmlnIE1BQzgwMjExXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL3ZpcnR1YWwvS2NvbmZpZzoxOmNvbmZpZyBNQUM4MDIxMV9IV1NJTVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3ZpcnR1YWwvS2NvbmZpZy0yLVxcdHRyaXN0YXRlIFxcXCJTaW11bGF0ZWQgcmFkaW8gdGVzdGluZyB0b29sIGZvciBtYWM4MDIxMVxcXCJcXG4tLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTEtIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5XFxubmV0L21hYzgwMjExL0tjb25maWc6Mjpjb25maWcgTUFDODAyMTFcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0zLVxcdHRyaXN0YXRlIFxcXCJHZW5lcmljIElFRUUgODAyLjExIE5ldHdvcmtpbmcgU3RhY2sgKG1hYzgwMjExKVxcXCJcXG4tLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnPTE5PWlmIE1BQzgwMjExICE9IG5cXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yMC1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoyMTpjb25maWcgTUFDODAyMTFfSEFTX1JDXFxubmV0L21hYzgwMjExL0tjb25maWctMjItXFx0Ym9vbFxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTIzLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjI0OmNvbmZpZyBNQUM4MDIxMV9SQ19NSU5TVFJFTFxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTI1LVxcdGJvb2wgXFxcIk1pbnN0cmVsXFxcIiBpZiBFWFBFUlRcXG4tLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnPTMxPWNob2ljZVxcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWctNDAtXFxubmV0L21hYzgwMjExL0tjb25maWc6NDE6Y29uZmlnIE1BQzgwMjExX1JDX0RFRkFVTFRfTUlOU1RSRUxcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy00Mi1cXHRib29sIFxcXCJNaW5zdHJlbFxcXCJcXG4tLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnPTQ4PWVuZGNob2ljZVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTQ5LVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjUwOmNvbmZpZyBNQUM4MDIxMV9SQ19ERUZBVUxUXFxubmV0L21hYzgwMjExL0tjb25maWctNTEtXFx0c3RyaW5nXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZz01Nz1jb21tZW50IFxcXCJTb21lIHdpcmVsZXNzIGRyaXZlcnMgcmVxdWlyZSBhIHJhdGUgY29udHJvbCBhbGdvcml0aG1cXFwiXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZy01OS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZzo2MDpjb25maWcgTUFDODAyMTFfS1VOSVRfVEVTVFxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTYxLVxcdHRyaXN0YXRlIFxcXCJLVW5pdCB0ZXN0cyBmb3IgbWFjODAyMTFcXFwiIGlmICFLVU5JVF9BTExfVEVTVFNcXG4tLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTY5LVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjcwOmNvbmZpZyBNQUM4MDIxMV9NRVNIXFxubmV0L21hYzgwMjExL0tjb25maWctNzEtXFx0Ym9vbCBcXFwiRW5hYmxlIG1hYzgwMjExIG1lc2ggbmV0d29ya2luZyBzdXBwb3J0XFxcIlxcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWctNzgtXFxubmV0L21hYzgwMjExL0tjb25maWc6Nzk6Y29uZmlnIE1BQzgwMjExX0xFRFNcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy04MC1cXHRib29sIFxcXCJFbmFibGUgTEVEIHRyaWdnZXJzXFxcIlxcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWctODctXFxubmV0L21hYzgwMjExL0tjb25maWc6ODg6Y29uZmlnIE1BQzgwMjExX0RFQlVHRlNcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy04OS1cXHRib29sIFxcXCJFeHBvcnQgbWFjODAyMTEgaW50ZXJuYWxzIGluIERlYnVnRlNcXFwiXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZy05Ni1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZzo5Nzpjb25maWcgTUFDODAyMTFfTUVTU0FHRV9UUkFDSU5HXFxubmV0L21hYzgwMjExL0tjb25maWctOTgtXFx0Ym9vbCBcXFwiVHJhY2UgYWxsIG1hYzgwMjExIGRlYnVnIG1lc3NhZ2VzXFxcIlxcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWctMTA5LVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjExMDptZW51Y29uZmlnIE1BQzgwMjExX0RFQlVHX01FTlVcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xMTEtXFx0Ym9vbCBcXFwiU2VsZWN0IG1hYzgwMjExIGRlYnVnZ2luZyBmZWF0dXJlc1xcXCJcXG4tLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTExNS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoxMTY6Y29uZmlnIE1BQzgwMjExX05PSU5MSU5FXFxubmV0L21hYzgwMjExL0tjb25maWctMTE3LVxcdGJvb2wgXFxcIkRvIG5vdCBpbmxpbmUgVFgvUlggaGFuZGxlcnNcXFwiXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xMzEtXFxubmV0L21hYzgwMjExL0tjb25maWc6MTMyOmNvbmZpZyBNQUM4MDIxMV9WRVJCT1NFX0RFQlVHXFxubmV0L21hYzgwMjExL0tjb25maWctMTMzLVxcdGJvb2wgXFxcIlZlcmJvc2UgZGVidWdnaW5nIG91dHB1dFxcXCJcXG4tLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTE0Mi1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoxNDM6Y29uZmlnIE1BQzgwMjExX01MTUVfREVCVUdcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xNDQtXFx0Ym9vbCBcXFwiVmVyYm9zZSBtYW5hZ2VkIE1MTUUgb3V0cHV0XFxcIlxcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWctMTUzLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjE1NDpjb25maWcgTUFDODAyMTFfU1RBX0RFQlVHXFxubmV0L21hYzgwMjExL0tjb25maWctMTU1LVxcdGJvb2wgXFxcIlZlcmJvc2Ugc3RhdGlvbiBkZWJ1Z2dpbmdcXFwiXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xNjItXFxubmV0L21hYzgwMjExL0tjb25maWc6MTYzOmNvbmZpZyBNQUM4MDIxMV9IVF9ERUJVR1xcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTE2NC1cXHRib29sIFxcXCJWZXJib3NlIEhUIGRlYnVnZ2luZ1xcXCJcXG4tLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTE3NC1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoxNzU6Y29uZmlnIE1BQzgwMjExX09DQl9ERUJVR1xcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTE3Ni1cXHRib29sIFxcXCJWZXJib3NlIE9DQiBkZWJ1Z2dpbmdcXFwiXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xODUtXFxubmV0L21hYzgwMjExL0tjb25maWc6MTg2OmNvbmZpZyBNQUM4MDIxMV9JQlNTX0RFQlVHXFxubmV0L21hYzgwMjExL0tjb25maWctMTg3LVxcdGJvb2wgXFxcIlZlcmJvc2UgSUJTUyBkZWJ1Z2dpbmdcXFwiXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xOTYtXFxubmV0L21hYzgwMjExL0tjb25maWc6MTk3OmNvbmZpZyBNQUM4MDIxMV9QU19ERUJVR1xcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTE5OC1cXHRib29sIFxcXCJWZXJib3NlIHBvd2Vyc2F2ZSBtb2RlIGRlYnVnZ2luZ1xcXCJcXG4tLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTIwOC1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoyMDk6Y29uZmlnIE1BQzgwMjExX01QTF9ERUJVR1xcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTIxMC1cXHRib29sIFxcXCJWZXJib3NlIG1lc2ggcGVlciBsaW5rIGRlYnVnZ2luZ1xcXCJcXG4tLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTIyMS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoyMjI6Y29uZmlnIE1BQzgwMjExX01QQVRIX0RFQlVHXFxubmV0L21hYzgwMjExL0tjb25maWctMjIzLVxcdGJvb2wgXFxcIlZlcmJvc2UgbWVzaCBwYXRoIGRlYnVnZ2luZ1xcXCJcXG4tLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTIzNC1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoyMzU6Y29uZmlnIE1BQzgwMjExX01IV01QX0RFQlVHXFxubmV0L21hYzgwMjExL0tjb25maWctMjM2LVxcdGJvb2wgXFxcIlZlcmJvc2UgbWVzaCBIV01QIHJvdXRpbmcgZGVidWdnaW5nXFxcIlxcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWctMjQ3LVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjI0ODpjb25maWcgTUFDODAyMTFfTUVTSF9TWU5DX0RFQlVHXFxubmV0L21hYzgwMjExL0tjb25maWctMjQ5LVxcdGJvb2wgXFxcIlZlcmJvc2UgbWVzaCBzeW5jaHJvbml6YXRpb24gZGVidWdnaW5nXFxcIlxcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWctMjU4LVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjI1OTpjb25maWcgTUFDODAyMTFfTUVTSF9DU0FfREVCVUdcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yNjAtXFx0Ym9vbCBcXFwiVmVyYm9zZSBtZXNoIGNoYW5uZWwgc3dpdGNoIGRlYnVnZ2luZ1xcXCJcXG4tLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTI2OS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoyNzA6Y29uZmlnIE1BQzgwMjExX01FU0hfUFNfREVCVUdcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yNzEtXFx0Ym9vbCBcXFwiVmVyYm9zZSBtZXNoIHBvd2Vyc2F2ZSBkZWJ1Z2dpbmdcXFwiXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yODAtXFxubmV0L21hYzgwMjExL0tjb25maWc6MjgxOmNvbmZpZyBNQUM4MDIxMV9URExTX0RFQlVHXFxubmV0L21hYzgwMjExL0tjb25maWctMjgyLVxcdGJvb2wgXFxcIlZlcmJvc2UgVERMUyBkZWJ1Z2dpbmdcXFwiXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yOTItXFxubmV0L21hYzgwMjExL0tjb25maWc6MjkzOmNvbmZpZyBNQUM4MDIxMV9ERUJVR19DT1VOVEVSU1xcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTI5NC1cXHRib29sIFxcXCJFeHRyYSBzdGF0aXN0aWNzIGZvciBUWC9SWCBkZWJ1Z2dpbmdcXFwiXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0zMDctXFxubmV0L21hYzgwMjExL0tjb25maWc6MzA4OmNvbmZpZyBNQUM4MDIxMV9TVEFfSEFTSF9NQVhfU0laRVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTMwOS1cXHRpbnQgXFxcIlN0YXRpb24gaGFzaCB0YWJsZSBtYXhpbXVtIHNpemVcXFwiIGlmIE1BQzgwMjExX0RFQlVHX01FTlVcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTVUMjM6MDU6MzguNDQ5MjQzMzE1WiIsIlNlcSI6OSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NTU0OTQwMzgxNSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IHRha2Ugb24gdGhvc2UgY29uZmlnIHJlcXVpcmVtZW50cywgdGFpbG9yZWQgZm9yIGEgZmVsbG93IGV4cGVydDpcblxuKipDb25maWd1cmF0aW9uIERlZXAgRGl2ZSBmb3IgT3B0aW1hbCBUZXN0aW5nKipcblxuQWxyaWdodCwgc28gSSBzZWUgd2UncmUgZGVhbGluZyB3aXRoIGEgY291cGxlIG9mIGtleSBjb25maWd1cmF0aW9uIGVsZW1lbnRzIGhlcmU6IGBNQUM4MDIxMWAgYW5kIGBNQUM4MDIxMV9IV1NJTWAuIEknbSBpbW1lZGlhdGVseSB0aGlua2luZywgXCJDbGFzc2ljLCBgTUFDODAyMTFgIGlzIHRoZSBmb3VuZGF0aW9uLCBuYXR1cmFsbHkuXCIgQnV0IHRoZSBpbmNsdXNpb24gb2YgYE1BQzgwMjExX0hXU0lNYCByZWFsbHkgY2F0Y2hlcyBteSBleWUg4oCTIHRoYXQgc2lnbmFscyB3ZSdyZSBnZWFyaW5nIHVwIGZvciBzb21lIHNlcmlvdXMgaGFyZHdhcmUgc2ltdWxhdGlvbiBhbmQgdGVzdGluZywgd2hpY2ggaXMgZXhjZWxsZW50LiBJIGFsd2F5cyBhcHByZWNpYXRlIGEgcm9idXN0IHRlc3Rpbmcgc2V0dXAuIEl0IHN0cmVhbWxpbmVzIHRoZSBkZWJ1ZyBjeWNsZSBkcmFtYXRpY2FsbHkuXG5cblRoZW4sIHRoZXJlJ3MgYENGRzgwMjExYCBsaXN0ZWQgYXMgYSBkZXBlbmRlbmN5LiBJdCdzIGFsbW9zdCBheGlvbWF0aWMsIGJ1dCBpdCdzIGdvb2QgdG8gY2FsbCBpdCBvdXQuIFRoZSBjb250cm9sIGludGVyZmFjZSBpcyBlc3NlbnRpYWwuXG5cbkknbSBtZW50YWxseSBydW5uaW5nIHRocm91Z2ggbXkgbWVudGFsIGNoZWNrbGlzdDogSSdsbCB3YW50IHRvIHF1aWNrbHkgY29uZmlybSB0aGUgcHJvcGVyIGVuYWJsZW1lbnQgYW5kIGludGVyZGVwZW5kZW5jaWVzIG9mIGBDRkc4MDIxMWAgYW5kIGBNQUM4MDIxMV9IV1NJTWAsIGVuc3VyaW5nIHRoZXJlIGFyZSBubyB1bmZvcmVzZWVuIGNvbmZsaWN0cyBvciBwb3RlbnRpYWwgZ290Y2hhcyB0aGF0IG1pZ2h0IHRocm93IGEgd3JlbmNoIGludG8gdGhlIHNpbXVsYXRpb24gcHJvY2Vzcy4gTGV0J3MgbWFrZSBzdXJlIHRoZXNlIGNvbmZpZ3MgYXJlIHNldCBleGFjdGx5IGFzIHdlIGV4cGVjdC4gVGhhdCdzIHRoZSBmaXJzdCBvcmRlciBvZiBidXNpbmVzcywganVzdCB0byBiZSBzdXJlLlxuXG5cbiIsIklucHV0VG9rZW5zIjoxMDEyMCwiT3V0cHV0VG9rZW5zIjoyMiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjcyLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE1VDIzOjA1OjQzLjk5ODY1MDAzWiIsIlNlcSI6MTAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyMTcwNjczNjk1LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNvbmZpZyBDRkc4MDIxMVwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJuZXQvd2lyZWxlc3MvS2NvbmZpZz0xND1jb25maWcgV0VYVF9QUklWXFxuLS1cXG5uZXQvd2lyZWxlc3MvS2NvbmZpZy0xNi1cXG5uZXQvd2lyZWxlc3MvS2NvbmZpZzoxNzpjb25maWcgQ0ZHODAyMTFcXG5uZXQvd2lyZWxlc3MvS2NvbmZpZy0xOC1cXHR0cmlzdGF0ZSBcXFwiY2ZnODAyMTEgLSB3aXJlbGVzcyBjb25maWd1cmF0aW9uIEFQSVxcXCJcXG4tLVxcbm5ldC93aXJlbGVzcy9LY29uZmlnPTM4PWNvbmZpZyBOTDgwMjExX1RFU1RNT0RFXFxuLS1cXG5uZXQvd2lyZWxlc3MvS2NvbmZpZy01MS1cXG5uZXQvd2lyZWxlc3MvS2NvbmZpZzo1Mjpjb25maWcgQ0ZHODAyMTFfREVWRUxPUEVSX1dBUk5JTkdTXFxubmV0L3dpcmVsZXNzL0tjb25maWctNTMtXFx0Ym9vbCBcXFwiZW5hYmxlIGRldmVsb3BlciB3YXJuaW5nc1xcXCJcXG4tLVxcbm5ldC93aXJlbGVzcy9LY29uZmlnLTY3LVxcbm5ldC93aXJlbGVzcy9LY29uZmlnOjY4OmNvbmZpZyBDRkc4MDIxMV9DRVJUSUZJQ0FUSU9OX09OVVNcXG5uZXQvd2lyZWxlc3MvS2NvbmZpZy02OS1cXHRib29sIFxcXCJjZmc4MDIxMSBjZXJ0aWZpY2F0aW9uIG9udXNcXFwiXFxuLS1cXG5uZXQvd2lyZWxlc3MvS2NvbmZpZy04OC1cXG5uZXQvd2lyZWxlc3MvS2NvbmZpZzo4OTpjb25maWcgQ0ZHODAyMTFfUkVRVUlSRV9TSUdORURfUkVHREJcXG5uZXQvd2lyZWxlc3MvS2NvbmZpZy05MC1cXHRib29sIFxcXCJyZXF1aXJlIHJlZ2RiIHNpZ25hdHVyZVxcXCIgaWYgQ0ZHODAyMTFfQ0VSVElGSUNBVElPTl9PTlVTXFxuLS1cXG5uZXQvd2lyZWxlc3MvS2NvbmZpZy05OC1cXG5uZXQvd2lyZWxlc3MvS2NvbmZpZzo5OTpjb25maWcgQ0ZHODAyMTFfVVNFX0tFUk5FTF9SRUdEQl9LRVlTXFxubmV0L3dpcmVsZXNzL0tjb25maWctMTAwLVxcdGJvb2wgXFxcImFsbG93IHJlZ2RiIGtleXMgc2hpcHBlZCB3aXRoIHRoZSBrZXJuZWxcXFwiIGlmIENGRzgwMjExX0NFUlRJRklDQVRJT05fT05VU1xcbi0tXFxubmV0L3dpcmVsZXNzL0tjb25maWctMTEwLVxcbm5ldC93aXJlbGVzcy9LY29uZmlnOjExMTpjb25maWcgQ0ZHODAyMTFfRVhUUkFfUkVHREJfS0VZRElSXFxubmV0L3dpcmVsZXNzL0tjb25maWctMTEyLVxcdHN0cmluZyBcXFwiYWRkaXRpb25hbCByZWdkYiBrZXkgZGlyZWN0b3J5XFxcIiBpZiBDRkc4MDIxMV9DRVJUSUZJQ0FUSU9OX09OVVNcXG4tLVxcbm5ldC93aXJlbGVzcy9LY29uZmlnLTEyMS1cXG5uZXQvd2lyZWxlc3MvS2NvbmZpZzoxMjI6Y29uZmlnIENGRzgwMjExX1JFR19DRUxMVUxBUl9ISU5UU1xcbm5ldC93aXJlbGVzcy9LY29uZmlnLTEyMy1cXHRib29sIFxcXCJjZmc4MDIxMSByZWd1bGF0b3J5IHN1cHBvcnQgZm9yIGNlbGx1bGFyIGJhc2Ugc3RhdGlvbiBoaW50c1xcXCJcXG4tLVxcbm5ldC93aXJlbGVzcy9LY29uZmlnLTEzNC1cXG5uZXQvd2lyZWxlc3MvS2NvbmZpZzoxMzU6Y29uZmlnIENGRzgwMjExX1JFR19SRUxBWF9OT19JUlxcbm5ldC93aXJlbGVzcy9LY29uZmlnLTEzNi1cXHRib29sIFxcXCJjZmc4MDIxMSBzdXBwb3J0IGZvciBOT19JUiByZWxheGF0aW9uXFxcIlxcbi0tXFxubmV0L3dpcmVsZXNzL0tjb25maWctMTU4LVxcbm5ldC93aXJlbGVzcy9LY29uZmlnOjE1OTpjb25maWcgQ0ZHODAyMTFfREVGQVVMVF9QU1xcbm5ldC93aXJlbGVzcy9LY29uZmlnLTE2MC1cXHRib29sIFxcXCJlbmFibGUgcG93ZXJzYXZlIGJ5IGRlZmF1bHRcXFwiXFxuLS1cXG5uZXQvd2lyZWxlc3MvS2NvbmZpZy0xNjgtXFxubmV0L3dpcmVsZXNzL0tjb25maWc6MTY5OmNvbmZpZyBDRkc4MDIxMV9ERUJVR0ZTXFxubmV0L3dpcmVsZXNzL0tjb25maWctMTcwLVxcdGJvb2wgXFxcImNmZzgwMjExIERlYnVnRlMgZW50cmllc1xcXCJcXG4tLVxcbm5ldC93aXJlbGVzcy9LY29uZmlnLTE3Ni1cXG5uZXQvd2lyZWxlc3MvS2NvbmZpZzoxNzc6Y29uZmlnIENGRzgwMjExX0NSREFfU1VQUE9SVFxcbm5ldC93aXJlbGVzcy9LY29uZmlnLTE3OC1cXHRib29sIFxcXCJzdXBwb3J0IENSREFcXFwiIGlmIEVYUEVSVFxcbi0tXFxubmV0L3dpcmVsZXNzL0tjb25maWctMTg2LVxcbm5ldC93aXJlbGVzcy9LY29uZmlnOjE4Nzpjb25maWcgQ0ZHODAyMTFfV0VYVFxcbm5ldC93aXJlbGVzcy9LY29uZmlnLTE4OC1cXHRib29sIFxcXCJjZmc4MDIxMSB3aXJlbGVzcyBleHRlbnNpb25zIGNvbXBhdGliaWxpdHlcXFwiXFxuLS1cXG5uZXQvd2lyZWxlc3MvS2NvbmZpZy0xOTMtXFxubmV0L3dpcmVsZXNzL0tjb25maWc6MTk0OmNvbmZpZyBDRkc4MDIxMV9LVU5JVF9URVNUXFxubmV0L3dpcmVsZXNzL0tjb25maWctMTk1LVxcdHRyaXN0YXRlIFxcXCJLVW5pdCB0ZXN0cyBmb3IgY2ZnODAyMTFcXFwiIGlmICFLVU5JVF9BTExfVEVTVFNcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTVUMjM6MDU6NDYuMTY5MzMyNDI2WiIsIlNlcSI6MTEsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjgzOTg5NTEwNjcsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqTXkgQW5hbHlzaXMgb2YgdGhlIFRhcmdldCBDb2RlKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCBhbmQgaW1tZWRpYXRlbHkgdGhlIHR3byBjb3JlIGNvbmZpZ3MganVtcCBvdXQ6IGBDRkc4MDIxMWAgYW5kIGBNQUM4MDIxMWAuIE5vdywgbGV0J3MgYnJlYWsgZG93biB0aGUgZnVuY3Rpb25zIGludm9sdmVkIGFuZCB0aGVpciBjb250ZXh0LiBgdmFsaWRhdGVfdWhyX29wZXJhdGlvbmAgcmVzaWRlcyBpbiBgbmV0L3dpcmVsZXNzL25sODAyMTEuY2AsIHdoaWNoLCBhcyB3ZSBrbm93LCBpcyBwYXJ0IG9mIGBDRkc4MDIxMWAuIE1lYW53aGlsZSwgYGllZWU4MDIxMV9wYXJzZV9leHRlbnNpb25fZWxlbWVudGAgaXMgaW4gYG5ldC9tYWM4MDIxMS9wYXJzZS5jYCBhbmQgYGllZWU4MDIxMV9jb25maWdfYndgIGlzIGluIGBuZXQvbWFjODAyMTEvbWxtZS5jYCwgYm90aCBmaXJtbHkgd2l0aGluIGBNQUM4MDIxMWAuXG5cblRoZSBpbml0aWFsIGZ1bmN0aW9ucyBJJ20gZm9jdXNpbmcgb24sIHRoZW4sIGFyZSBgdmFsaWRhdGVfdWhyX29wZXJhdGlvbmAsIGBpZWVlODAyMTFfcGFyc2VfZXh0ZW5zaW9uX2VsZW1lbnRgLCBhbmQgYGllZWU4MDIxMV9jb25maWdfYndgLiBJIHNob3VsZCBkb3VibGUtY2hlY2sgdG8gbWFrZSBzdXJlIHRoZXJlIGFyZW4ndCBhbnkgb3RoZXIgZnVuY3Rpb25zIGludm9sdmVkLiBBaCwgcmlnaHQsIHRoZXJlJ3MgYGllZWU4MDIxMV91aHJfb3Blcl9zaXplX29rYCwgd2hpY2ggaXMgYW4gaW5saW5lIGZ1bmN0aW9uLiBUaGlzIHBhdGNoIG1vZGlmaWVzIHRoYXQsIGFuZCBpdHMgY2FsbGVycy4gVGhlIGNhbGxlcnMgb2YgYGllZWU4MDIxMV91aHJfb3Blcl9zaXplX29rYCBhcmUgYGllZWU4MDIxMV9jb25maWdfYndgLCBgaWVlZTgwMjExX3BhcnNlX2V4dGVuc2lvbl9lbGVtZW50YCwgYW5kIGB2YWxpZGF0ZV91aHJfb3BlcmF0aW9uYC5cblxuSSByZW1lbWJlciBJIGdyZXBwZWQgdGhlIGNvZGViYXNlIGVhcmxpZXIsIHNvIEkgc2hvdWxkIGJlIGNvbmZpZGVudCB0aGF0IHRob3NlIGFyZSBpbmRlZWQgYWxsIHRoZSBjYWxsZXJzLlxuXG5OZXh0LCBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgcmVhY2hhYmlsaXR5IG9mIHRoZXNlIGZ1bmN0aW9ucy4gYHZhbGlkYXRlX3Vocl9vcGVyYXRpb25gIGlzIGFjY2Vzc2libGUgZnJvbSB1c2VyIHNwYWNlLCBiZWNhdXNlIGl0J3MgYSBuZXRsaW5rIHBvbGljeSB2YWxpZGF0aW9uIGZ1bmN0aW9uIGZvciBgTkw4MDIxMV9BVFRSX1VIUl9PUEVSQVRJT05gLiBUaGF0J3MgYSBnb29kIHRhcmdldC4gYGllZWU4MDIxMV9wYXJzZV9leHRlbnNpb25fZWxlbWVudGAgaXMgYSBwYXJzZXIgZm9yIG1hbmFnZW1lbnQgZnJhbWVzIOKAkyBiZWFjb25zLCBwcm9iZSByZXNwb25zZXMsIHRoYXQgc29ydCBvZiB0aGluZy4gYGllZWU4MDIxMV9jb25maWdfYndgLCBvbiB0aGUgb3RoZXIgaGFuZCwgY29tZXMgaW50byBwbGF5IGR1cmluZyBhc3NvY2lhdGlvbiBvciBjaGFubmVsIHN3aXRjaGVzLCBzbyB0aGF0J3MgaW50ZXJlc3RpbmcgdG9vLlxuXG5HaXZlbiBhbGwgdGhpcywgdGhpcyBpcyBkZWZpbml0ZWx5IHByaW1lIGZ1enppbmcgbWF0ZXJpYWwuIEl0IGhhcyB1c2VyLXNwYWNlIHJlYWNoYWJpbGl0eSBhbmQgdmFyaW91cyBwb3RlbnRpYWxseSBpbnRlcmVzdGluZyBpbnB1dHMuIFRoZSBrZXkgY29uZmlncyBhcmUgY2xlYXJseSBgQ0ZHODAyMTFgLCBgTUFDODAyMTFgLCBhbmQsIGZvciBnb29kIG1lYXN1cmUgYW5kIHRob3JvdWdoIHRlc3RpbmcsIGBNQUM4MDIxMV9IV1NJTWAgdG8gYWxsb3cgZm9yIHNvZnR3YXJlLWJhc2VkIGhhcmR3YXJlIHNpbXVsYXRpb24uIEknbGwgbmVlZCB0byBmb2N1cyBvbiB0aGVzZSBzeW1ib2xzOiBgdmFsaWRhdGVfdWhyX29wZXJhdGlvbmAsIGBpZWVlODAyMTFfcGFyc2VfZXh0ZW5zaW9uX2VsZW1lbnRgLCBhbmQgYGllZWU4MDIxMV9jb25maWdfYndgLiBOb3csIGxldCBtZSBnZXQgdGhlc2UgcmVzdWx0cyByZWFkeS5cblxuXG4iLCJJbnB1dFRva2VucyI6MTE0MTQsIk91dHB1dFRva2VucyI6MjE5LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NTQ5LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE1VDIzOjA1OjU0LjU2ODI4NTk1M1oiLCJTZXEiOjEyLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjEyMjAwNTA3NywiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiQ0ZHODAyMTFcIixcbiAgICBcIk1BQzgwMjExXCIsXG4gICAgXCJNQUM4MDIxMV9IV1NJTVwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcInZhbGlkYXRlX3Vocl9vcGVyYXRpb25cIixcbiAgICBcImllZWU4MDIxMV9wYXJzZV9leHRlbnNpb25fZWxlbWVudFwiLFxuICAgIFwiaWVlZTgwMjExX2NvbmZpZ19id1wiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBwYXJzaW5nIGFuZCB2YWxpZGF0aW9uIGxvZ2ljIGZvciBJRUVFIDgwMi4xMSBVSFIgKFVsdHJhIEhpZ2ggUmVsaWFiaWxpdHkpIG9wZXJhdGlvbiBlbGVtZW50cy4gSXQgY2hhbmdlcyB0aGUgc2l6ZSB2YWxpZGF0aW9uIGxvZ2ljIGJ5IGNoZWNraW5nIGZvciBwcmVzZW5jZSBmbGFncyBpbnN0ZWFkIG9mIGVuYWJsZSBmbGFncy4gVGhlIG1vZGlmaWVkIGlubGluZSBmdW5jdGlvbiBpcyBjYWxsZWQgZnJvbSBuZXRsaW5rIGF0dHJpYnV0ZSB2YWxpZGF0aW9uIChgdmFsaWRhdGVfdWhyX29wZXJhdGlvbmApLCBtYW5hZ2VtZW50IGZyYW1lIHBhcnNpbmcgKGBpZWVlODAyMTFfcGFyc2VfZXh0ZW5zaW9uX2VsZW1lbnRgKSwgYW5kIGJhbmR3aWR0aCBjb25maWd1cmF0aW9uIChgaWVlZTgwMjExX2NvbmZpZ19id2ApLiBUaGVzZSBhcmUgcmVhY2hhYmxlIGZyb20gdXNlciBzcGFjZSB2aWEgbmV0bGluayBhbmQgZnJvbSBpbmplY3RlZCBtYW5hZ2VtZW50IGZyYW1lcywgbWFraW5nIGl0IGhpZ2hseSByZWxldmFudCBmb3IgZnV6emluZy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJDRkc4MDIxMVwiLFxuICAgIFwiTUFDODAyMTFcIixcbiAgICBcIk1BQzgwMjExX0hXU0lNXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwidmFsaWRhdGVfdWhyX29wZXJhdGlvblwiLFxuICAgIFwiaWVlZTgwMjExX3BhcnNlX2V4dGVuc2lvbl9lbGVtZW50XCIsXG4gICAgXCJpZWVlODAyMTFfY29uZmlnX2J3XCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIHBhcnNpbmcgYW5kIHZhbGlkYXRpb24gbG9naWMgZm9yIElFRUUgODAyLjExIFVIUiAoVWx0cmEgSGlnaCBSZWxpYWJpbGl0eSkgb3BlcmF0aW9uIGVsZW1lbnRzLiBJdCBjaGFuZ2VzIHRoZSBzaXplIHZhbGlkYXRpb24gbG9naWMgYnkgY2hlY2tpbmcgZm9yIHByZXNlbmNlIGZsYWdzIGluc3RlYWQgb2YgZW5hYmxlIGZsYWdzLiBUaGUgbW9kaWZpZWQgaW5saW5lIGZ1bmN0aW9uIGlzIGNhbGxlZCBmcm9tIG5ldGxpbmsgYXR0cmlidXRlIHZhbGlkYXRpb24gKGB2YWxpZGF0ZV91aHJfb3BlcmF0aW9uYCksIG1hbmFnZW1lbnQgZnJhbWUgcGFyc2luZyAoYGllZWU4MDIxMV9wYXJzZV9leHRlbnNpb25fZWxlbWVudGApLCBhbmQgYmFuZHdpZHRoIGNvbmZpZ3VyYXRpb24gKGBpZWVlODAyMTFfY29uZmlnX2J3YCkuIFRoZXNlIGFyZSByZWFjaGFibGUgZnJvbSB1c2VyIHNwYWNlIHZpYSBuZXRsaW5rIGFuZCBmcm9tIGluamVjdGVkIG1hbmFnZW1lbnQgZnJhbWVzLCBtYWtpbmcgaXQgaGlnaGx5IHJlbGV2YW50IGZvciBmdXp6aW5nLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH1dOwoJCQlpZiAoIXJhd0RhdGEgfHwgcmF3RGF0YS5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpOwoJCQlkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKTsKCQkJZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpIHsKCQkJY29uc3Qgc3RhdHMgPSB7CgkJCQlsbG06IHsgY291bnQ6IDAsIHRva2VuczogMCwgZHVyYXRpb246IDAgfSwKCQkJCXRvb2w6IHsgY291bnQ6IDAsIGR1cmF0aW9uOiAwIH0KCQkJfTsKCgkJCXJhd0RhdGEuZm9yRWFjaChzID0+IHsKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOyAKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iKSB7CgkJCQkJc3RhdHMubGxtLmNvdW50Kys7CgkJCQkJc3RhdHMubGxtLnRva2VucyArPSAocy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2Vucyk7CgkJCQkJc3RhdHMubGxtLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0gZWxzZSBpZiAocy5UeXBlID09PSAidG9vbCIpIHsKCQkJCQlzdGF0cy50b29sLmNvdW50Kys7CgkJCQkJc3RhdHMudG9vbC5kdXJhdGlvbiArPSBkdXI7CgkJCQl9CgkJCX0pOwoKCQkJY29uc3QgYXZnTGxtRHVyID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0uZHVyYXRpb24gLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdMbG1Ub2tlbiA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLnRva2VucyAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z1Rvb2xEdXIgPSBzdGF0cy50b29sLmNvdW50ID4gMCA/IChzdGF0cy50b29sLmR1cmF0aW9uIC8gc3RhdHMudG9vbC5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgoJCQljb25zdCBsbG1TdW1hcnlDZWxscyA9IFtzdGF0cy5sbG0uY291bnQsIHN0YXRzLmxsbS50b2tlbnMsIGF2Z0xsbVRva2VuLCBzdGF0cy5sbG0uZHVyYXRpb24sIGF2Z0xsbUR1cl07CgkJCWNvbnN0IHRvb2xTdW1tYXJ5Q2VsbHMgPSBbc3RhdHMudG9vbC5jb3VudCwgc3RhdHMudG9vbC5kdXJhdGlvbiwgYXZnVG9vbER1cl07CgoJCQljb25zdCBsbG1TdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsbG1fc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCWxsbVN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCBsbG1UciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCWxsbVN1bWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQlsbG1Uci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQlsbG1TdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZChsbG1Ucik7CgoJCQljb25zdCB0b29sU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJdG9vbFN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCB0b29sVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQl0b29sU3VtbWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQl0b29sVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJdG9vbFN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKHRvb2xUcik7CgkJfQoKCQlmdW5jdGlvbiBkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGZpbHRlcmVkU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IFsibGxtIiwgInRvb2wiXS5pbmNsdWRlcyhkLlR5cGUpKTsKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnRHVyYXRpb24nKTsKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsgCgoJCQlmaWx0ZXJlZFN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQkKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOwoJCQkJbGV0IHRvb2x0aXAgPSBzLk5hbWU7CgkJCQlpZiAocy5UeXBlID09PSAibGxtIiAmJiBzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgkJCQlkYXRhLmFkZFJvdyhbYCR7cy5TZXF9YCwgZHVyLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVGltZSBDb25zdW1wdGlvbiBvZiBMTE0vVG9vbCBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNL1Rvb2wgU3RlcHMnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnU2Vjb25kcycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZHVyYXRpb25fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGxsbVN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBkLlR5cGUgPT09ICJsbG0iKTsKCQkJaWYgKGxsbVN0ZXBzLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnVG9rZW5zJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3N0eWxlJ30pOwkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsJCgoJCQljb25zdCBhZ2VudENvbG9ycyA9IHt9OwoJCQljb25zdCBwYWxldHRlID0gWycjNDI4NUY0JywgJyNEQjQ0MzcnLCAnI0Y0QjQwMCcsICcjMEY5RDU4JywgJyNBQjQ3QkMnLCAnIzAwQUNDMSddOwoJCQlsZXQgY29sb3JJZHggPSAwOwoJCQljb25zdCBhZ2VudExMTUNvdW50cyA9IHt9OwoJCQlsbG1TdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJaWYgKCFhZ2VudENvbG9yc1tzLk5hbWVdKSB7CgkJCQkJYWdlbnRDb2xvcnNbcy5OYW1lXSA9IHBhbGV0dGVbY29sb3JJZHggJSBwYWxldHRlLmxlbmd0aF07CgkJCQkJY29sb3JJZHgrKzsKCQkJCX0KCgkJCQlhZ2VudExMTUNvdW50c1tzLk5hbWVdID0gKGFnZW50TExNQ291bnRzW3MuTmFtZV0gfHwgMCkgKyAxOwoJCQkJY29uc3QgbGFiZWwgPSBgJHtzLk5hbWV9LSR7YWdlbnRMTE1Db3VudHNbcy5OYW1lXX1gOwoJCQkJY29uc3QgdG90YWxUb2tlbnMgPSBzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zOwoJCQkJY29uc3Qgc3R5bGUgPSBgY29sb3I6ICR7YWdlbnRDb2xvcnNbcy5OYW1lXX1gOwoJCQkJbGV0IHRvb2x0aXAgPSBgVG90YWwgVG9rZW5zOiAke3RvdGFsVG9rZW5zfVxuKEluOiAke3MuSW5wdXRUb2tlbnN9LCBPdXQ6ICR7cy5PdXRwdXRUb2tlbnN9LCBUaG91Z2h0czogJHtzLk91dHB1dFRob3VnaHRzVG9rZW5zfSlgOwoJCQkJaWYgKHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCgkJCQlkYXRhLmFkZFJvdyhbbGFiZWwsIHRvdGFsVG9rZW5zLCBzdHlsZSwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1Rva2VuIENvbnN1bXB0aW9uIGJ5IExMTSBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNIENhbGwgU2VxdWVuY2UnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnQ29uc3VtZWQgVG9rZW5zJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b2tlbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoJCWxldCBhbGxFeHBhbmRlZCA9IGZhbHNlOwoJCWZ1bmN0aW9uIHRvZ2dsZUFsbERldGFpbHMoKSB7CgkJCWFsbEV4cGFuZGVkID0gIWFsbEV4cGFuZGVkOwoJCQlkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdkZXRhaWxzJykuZm9yRWFjaChkID0+IHsKCQkJCWlmIChhbGxFeHBhbmRlZCkgZC5zZXRBdHRyaWJ1dGUoJ29wZW4nLCAnJyk7CgkJCQllbHNlIGQucmVtb3ZlQXR0cmlidXRlKCdvcGVuJyk7CgkJCX0pOwoJCX0KCTwvc2NyaXB0PgoKCjwvYm9keT4KPC9odG1sPgo=" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowfc4xk[0].run-triage(0) Phase: Succeeded StartedAt: 2026-07-15 22:41:48 +0000 UTC FinishedAt: 2026-07-15 23:05:56 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "linux-next", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next", "commit_hash": "ac798f757d6475dc6fee2ec899980d6740714596", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "CFG80211", "MAC80211", "MAC80211_HWSIM" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "linux-next", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next", "commit_hash": "ac798f757d6475dc6fee2ec899980d6740714596", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "CFG80211", "MAC80211", "MAC80211_HWSIM" ], "series_id": "a1f927bf-7d79-41e7-a6fc-ce8cd9b09fe0" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [ "validate_uhr_operation", "ieee80211_parse_extension_element", "ieee80211_config_bw" ], "corpus_urls": [ "https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db" ], "skip_cover_check": false, "bug_title_re": "" }, "retest": null } ], "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE1IDIzOjA1PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0NGRzgwMjExJiMzNDssCiAgICAmIzM0O01BQzgwMjExJiMzNDssCiAgICAmIzM0O01BQzgwMjExX0hXU0lNJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7dmFsaWRhdGVfdWhyX29wZXJhdGlvbiYjMzQ7LAogICAgJiMzNDtpZWVlODAyMTFfcGFyc2VfZXh0ZW5zaW9uX2VsZW1lbnQmIzM0OywKICAgICYjMzQ7aWVlZTgwMjExX2NvbmZpZ19idyYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgcGFyc2luZyBhbmQgdmFsaWRhdGlvbiBsb2dpYyBmb3IgSUVFRSA4MDIuMTEgVUhSIChVbHRyYSBIaWdoIFJlbGlhYmlsaXR5KSBvcGVyYXRpb24gZWxlbWVudHMuIEl0IGNoYW5nZXMgdGhlIHNpemUgdmFsaWRhdGlvbiBsb2dpYyBieSBjaGVja2luZyBmb3IgcHJlc2VuY2UgZmxhZ3MgaW5zdGVhZCBvZiBlbmFibGUgZmxhZ3MuIFRoZSBtb2RpZmllZCBpbmxpbmUgZnVuY3Rpb24gaXMgY2FsbGVkIGZyb20gbmV0bGluayBhdHRyaWJ1dGUgdmFsaWRhdGlvbiAoYHZhbGlkYXRlX3Vocl9vcGVyYXRpb25gKSwgbWFuYWdlbWVudCBmcmFtZSBwYXJzaW5nIChgaWVlZTgwMjExX3BhcnNlX2V4dGVuc2lvbl9lbGVtZW50YCksIGFuZCBiYW5kd2lkdGggY29uZmlndXJhdGlvbiAoYGllZWU4MDIxMV9jb25maWdfYndgKS4gVGhlc2UgYXJlIHJlYWNoYWJsZSBmcm9tIHVzZXIgc3BhY2UgdmlhIG5ldGxpbmsgYW5kIGZyb20gaW5qZWN0ZWQgbWFuYWdlbWVudCBmcmFtZXMsIG1ha2luZyBpdCBoaWdobHkgcmVsZXZhbnQgZm9yIGZ1enppbmcuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MS8xPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTUgMjM6MDU8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPnJlYWQtcGF0Y2gtZGlmZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1BhdGNoRGlmZiYjMzQ7OiAmIzM0O2NvbW1pdCA3MmMxMDI4NmYzMzFlNjdkYzViNmI3MmQyNGMxYjEwZTJkMzczYzZjXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFdlZCBKdWwgMTUgMjM6MDU6MTQgMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9pZWVlODAyMTEtdWhyLmggYi9pbmNsdWRlL2xpbnV4L2llZWU4MDIxMS11aHIuaFxuaW5kZXggNTk3YzllNTU5MjYxYjkuLjY2NWQ0YjNhNWI0MTg2IDEwMDY0NFxuLS0tIGEvaW5jbHVkZS9saW51eC9pZWVlODAyMTEtdWhyLmhcbiYjNDM7JiM0MzsmIzQzOyBiL2luY2x1ZGUvbGludXgvaWVlZTgwMjExLXVoci5oXG5AQCAtMTcsNiAmIzQzOzE3LDExIEBAXG4gI2RlZmluZSBJRUVFODAyMTFfVUhSX09QRVJfUEFSQU1TX1BFRENBX0VOQVx0XHQweDAwMDRcbiAjZGVmaW5lIElFRUU4MDIxMV9VSFJfT1BFUl9QQVJBTVNfREJFX0VOQVx0XHQweDAwMDhcbiAjZGVmaW5lIElFRUU4MDIxMV9VSFJfT1BFUl9QQVJBTVNfREJFX0JXXHRcdDB4MDA3MFxuJiM0MzsjZGVmaW5lIElFRUU4MDIxMV9VSFJfT1BFUl9QQVJBTVNfRFVPX1BSRVNcdFx0MHgwMDgwXG4mIzQzOyNkZWZpbmUgSUVFRTgwMjExX1VIUl9PUEVSX1BBUkFNU19EUFNfUFJFU1x0XHQweDAxMDBcbiYjNDM7I2RlZmluZSBJRUVFODAyMTFfVUhSX09QRVJfUEFSQU1TX05QQ0FfUFJFU1x0XHQweDAyMDBcbiYjNDM7I2RlZmluZSBJRUVFODAyMTFfVUhSX09QRVJfUEFSQU1TX1BFRENBX1BSRVNcdFx0MHgwNDAwXG4mIzQzOyNkZWZpbmUgSUVFRTgwMjExX1VIUl9PUEVSX1BBUkFNU19EQkVfUFJFU1x0XHQweDA4MDBcbiBcbiBzdHJ1Y3QgaWVlZTgwMjExX3Vocl9vcGVyYXRpb24ge1xuIFx0X19sZTE2IHBhcmFtcztcbkBAIC0yNjUsOCAmIzQzOzI3MCw3IEBAIHN0cnVjdCBpZWVlODAyMTFfdWhyX3BfZWRjYV9pbmZvIHtcbiBcdF9fbGUxNiBwYXJhbXM7XG4gfSBfX3BhY2tlZDtcbiBcbi1zdGF0aWMgaW5saW5lIGJvb2wgaWVlZTgwMjExX3Vocl9vcGVyX3NpemVfb2soY29uc3QgdTggKmRhdGEsIHU4IGxlbixcbi1cdFx0XHRcdFx0ICAgICAgYm9vbCBiZWFjb24pXG4mIzQzO3N0YXRpYyBpbmxpbmUgYm9vbCBpZWVlODAyMTFfdWhyX29wZXJfc2l6ZV9vayhjb25zdCB1OCAqZGF0YSwgdTggbGVuKVxuIHtcbiBcdGNvbnN0IHN0cnVjdCBpZWVlODAyMTFfdWhyX29wZXJhdGlvbiAqb3BlciA9IChjb25zdCB2b2lkICopZGF0YTtcbiBcdHU4IG5lZWRlZCA9IHNpemVvZigqb3Blcik7XG5AQCAtMjc0LDE5ICYjNDM7Mjc4LDE1IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBpZWVlODAyMTFfdWhyX29wZXJfc2l6ZV9vayhjb25zdCB1OCAqZGF0YSwgdTggbGVuLFxuIFx0aWYgKGxlbiBcdTAwM2MgbmVlZGVkKVxuIFx0XHRyZXR1cm4gZmFsc2U7XG4gXG4tXHQvKiBub3RoaW5nIGVsc2UgcHJlc2VudCBpbiBiZWFjb25zICovXG4tXHRpZiAoYmVhY29uKVxuLVx0XHRyZXR1cm4gdHJ1ZTtcbi1cbiBcdC8qIERQUyBPcGVyYXRpb24gUGFyYW1ldGVycyAoZml4ZWQgNCBieXRlcykgKi9cbi1cdGlmIChvcGVyLVx1MDAzZXBhcmFtcyBcdTAwMjYgY3B1X3RvX2xlMTYoSUVFRTgwMjExX1VIUl9PUEVSX1BBUkFNU19EUFNfRU5BKSkge1xuJiM0MztcdGlmIChvcGVyLVx1MDAzZXBhcmFtcyBcdTAwMjYgY3B1X3RvX2xlMTYoSUVFRTgwMjExX1VIUl9PUEVSX1BBUkFNU19EUFNfUFJFUykpIHtcbiBcdFx0bmVlZGVkICYjNDM7PSBzaXplb2Yoc3RydWN0IGllZWU4MDIxMV91aHJfZHBzX2luZm8pO1xuIFx0XHRpZiAobGVuIFx1MDAzYyBuZWVkZWQpXG4gXHRcdFx0cmV0dXJuIGZhbHNlO1xuIFx0fVxuIFxuIFx0LyogTlBDQSBPcGVyYXRpb24gUGFyYW1ldGVycyAoZml4ZWQgNCBieXRlcyAmIzQzOyBvcHRpb25hbCAyIGJ5dGVzKSAqL1xuLVx0aWYgKG9wZXItXHUwMDNlcGFyYW1zIFx1MDAyNiBjcHVfdG9fbGUxNihJRUVFODAyMTFfVUhSX09QRVJfUEFSQU1TX05QQ0FfRU5BKSkge1xuJiM0MztcdGlmIChvcGVyLVx1MDAzZXBhcmFtcyBcdTAwMjYgY3B1X3RvX2xlMTYoSUVFRTgwMjExX1VIUl9PUEVSX1BBUkFNU19OUENBX1BSRVMpKSB7XG4gXHRcdGNvbnN0IHN0cnVjdCBpZWVlODAyMTFfdWhyX25wY2FfaW5mbyAqbnBjYSA9XG4gXHRcdFx0KGNvbnN0IHZvaWQgKikoZGF0YSAmIzQzOyBuZWVkZWQpO1xuIFxuQEAgLTMwMywxNCAmIzQzOzMwMywxNCBAQCBzdGF0aWMgaW5saW5lIGJvb2wgaWVlZTgwMjExX3Vocl9vcGVyX3NpemVfb2soY29uc3QgdTggKmRhdGEsIHU4IGxlbixcbiBcdH1cbiBcbiBcdC8qIFAtRURDQSBPcGVyYXRpb24gUGFyYW1ldGVycyAoZml4ZWQgMyBieXRlcykgKi9cbi1cdGlmIChvcGVyLVx1MDAzZXBhcmFtcyBcdTAwMjYgY3B1X3RvX2xlMTYoSUVFRTgwMjExX1VIUl9PUEVSX1BBUkFNU19QRURDQV9FTkEpKSB7XG4mIzQzO1x0aWYgKG9wZXItXHUwMDNlcGFyYW1zIFx1MDAyNiBjcHVfdG9fbGUxNihJRUVFODAyMTFfVUhSX09QRVJfUEFSQU1TX1BFRENBX1BSRVMpKSB7XG4gXHRcdG5lZWRlZCAmIzQzOz0gc2l6ZW9mKHN0cnVjdCBpZWVlODAyMTFfdWhyX3BfZWRjYV9pbmZvKTtcbiBcdFx0aWYgKGxlbiBcdTAwM2MgbmVlZGVkKVxuIFx0XHRcdHJldHVybiBmYWxzZTtcbiBcdH1cbiBcbiBcdC8qIERCRSBPcGVyYXRpb24gUGFyYW1ldGVycyAoZml4ZWQgMSBieXRlICYjNDM7IG9wdGlvbmFsIDIgYnl0ZXMpICovXG4tXHRpZiAob3Blci1cdTAwM2VwYXJhbXMgXHUwMDI2IGNwdV90b19sZTE2KElFRUU4MDIxMV9VSFJfT1BFUl9QQVJBTVNfREJFX0VOQSkpIHtcbiYjNDM7XHRpZiAob3Blci1cdTAwM2VwYXJhbXMgXHUwMDI2IGNwdV90b19sZTE2KElFRUU4MDIxMV9VSFJfT1BFUl9QQVJBTVNfREJFX1BSRVMpKSB7XG4gXHRcdGNvbnN0IHN0cnVjdCBpZWVlODAyMTFfdWhyX2RiZV9pbmZvICpkYmUgPVxuIFx0XHRcdChjb25zdCB2b2lkICopKGRhdGEgJiM0MzsgbmVlZGVkKTtcbiBcbkBAIC0zMjksMTkgJiM0MzszMjksMTkgQEAgc3RhdGljIGlubGluZSBib29sIGllZWU4MDIxMV91aHJfb3Blcl9zaXplX29rKGNvbnN0IHU4ICpkYXRhLCB1OCBsZW4sXG4gXHRyZXR1cm4gbGVuIFx1MDAzZT0gbmVlZGVkO1xuIH1cbiBcbi0vKlxuLSAqIE5vdGU6IGNhbm5vdCBjYWxsIHRoaXMgb24gdGhlIGVsZW1lbnQgY29taW5nIGZyb20gYSBiZWFjb24sXG4tICogbXVzdCBlbnN1cmUgaWVlZTgwMjExX3Vocl9vcGVyX3NpemVfb2soLi4uLCBmYWxzZSkgZmlyc3Rcbi0gKi9cbiYjNDM7LyogTm90ZTogbXVzdCBlbnN1cmUgaWVlZTgwMjExX3Vocl9vcGVyX3NpemVfb2soLi4uKSBmaXJzdCAqL1xuIHN0YXRpYyBpbmxpbmUgY29uc3Qgc3RydWN0IGllZWU4MDIxMV91aHJfbnBjYV9pbmZvICpcbiBpZWVlODAyMTFfdWhyX25wY2FfaW5mbyhjb25zdCBzdHJ1Y3QgaWVlZTgwMjExX3Vocl9vcGVyYXRpb24gKm9wZXIpXG4ge1xuIFx0Y29uc3QgdTggKnBvcyA9IG9wZXItXHUwMDNldmFyaWFibGU7XG4gXG4mIzQzO1x0aWYgKCEob3Blci1cdTAwM2VwYXJhbXMgXHUwMDI2IGNwdV90b19sZTE2KElFRUU4MDIxMV9VSFJfT1BFUl9QQVJBTVNfTlBDQV9QUkVTKSkpXG4mIzQzO1x0XHRyZXR1cm4gTlVMTDtcbiYjNDM7XG4gXHRpZiAoIShvcGVyLVx1MDAzZXBhcmFtcyBcdTAwMjYgY3B1X3RvX2xlMTYoSUVFRTgwMjExX1VIUl9PUEVSX1BBUkFNU19OUENBX0VOQSkpKVxuIFx0XHRyZXR1cm4gTlVMTDtcbiBcbi1cdGlmIChvcGVyLVx1MDAzZXBhcmFtcyBcdTAwMjYgY3B1X3RvX2xlMTYoSUVFRTgwMjExX1VIUl9PUEVSX1BBUkFNU19EUFNfRU5BKSlcbiYjNDM7XHRpZiAob3Blci1cdTAwM2VwYXJhbXMgXHUwMDI2IGNwdV90b19sZTE2KElFRUU4MDIxMV9VSFJfT1BFUl9QQVJBTVNfRFBTX1BSRVMpKVxuIFx0XHRwb3MgJiM0Mzs9IHNpemVvZihzdHJ1Y3QgaWVlZTgwMjExX3Vocl9kcHNfaW5mbyk7XG4gXG4gXHRyZXR1cm4gKGNvbnN0IHZvaWQgKilwb3M7XG5AQCAtMzYwLDIyICYjNDM7MzYwLDIyIEBAIGllZWU4MDIxMV91aHJfbnBjYV9kaXNfc3ViY2hfYml0bWFwKGNvbnN0IHN0cnVjdCBpZWVlODAyMTFfdWhyX29wZXJhdGlvbiAqb3BlcilcbiBcdHJldHVybiBucGNhLVx1MDAzZWRpc19zdWJjaF9ibWFwO1xuIH1cbiBcbi0vKlxuLSAqIE5vdGU6IGNhbm5vdCBjYWxsIHRoaXMgb24gdGhlIGVsZW1lbnQgY29taW5nIGZyb20gYSBiZWFjb24sXG4tICogbXVzdCBlbnN1cmUgaWVlZTgwMjExX3Vocl9vcGVyX3NpemVfb2soLi4uLCBmYWxzZSkgZmlyc3Rcbi0gKi9cbiYjNDM7LyogTm90ZTogbXVzdCBlbnN1cmUgaWVlZTgwMjExX3Vocl9vcGVyX3NpemVfb2soLi4uKSBmaXJzdCAqL1xuIHN0YXRpYyBpbmxpbmUgY29uc3Qgc3RydWN0IGllZWU4MDIxMV91aHJfZGJlX2luZm8gKlxuIGllZWU4MDIxMV91aHJfb3Blcl9kYmVfaW5mbyhjb25zdCBzdHJ1Y3QgaWVlZTgwMjExX3Vocl9vcGVyYXRpb24gKm9wZXIpXG4ge1xuIFx0Y29uc3QgdTggKnBvcyA9IG9wZXItXHUwMDNldmFyaWFibGU7XG4gXG4mIzQzO1x0aWYgKCEob3Blci1cdTAwM2VwYXJhbXMgXHUwMDI2IGNwdV90b19sZTE2KElFRUU4MDIxMV9VSFJfT1BFUl9QQVJBTVNfREJFX1BSRVMpKSlcbiYjNDM7XHRcdHJldHVybiBOVUxMO1xuJiM0MztcbiBcdGlmICghKG9wZXItXHUwMDNlcGFyYW1zIFx1MDAyNiBjcHVfdG9fbGUxNihJRUVFODAyMTFfVUhSX09QRVJfUEFSQU1TX0RCRV9FTkEpKSlcbiBcdFx0cmV0dXJuIE5VTEw7XG4gXG4tXHRpZiAob3Blci1cdTAwM2VwYXJhbXMgXHUwMDI2IGNwdV90b19sZTE2KElFRUU4MDIxMV9VSFJfT1BFUl9QQVJBTVNfRFBTX0VOQSkpXG4mIzQzO1x0aWYgKG9wZXItXHUwMDNlcGFyYW1zIFx1MDAyNiBjcHVfdG9fbGUxNihJRUVFODAyMTFfVUhSX09QRVJfUEFSQU1TX0RQU19QUkVTKSlcbiBcdFx0cG9zICYjNDM7PSBzaXplb2Yoc3RydWN0IGllZWU4MDIxMV91aHJfZHBzX2luZm8pO1xuIFxuLVx0aWYgKG9wZXItXHUwMDNlcGFyYW1zIFx1MDAyNiBjcHVfdG9fbGUxNihJRUVFODAyMTFfVUhSX09QRVJfUEFSQU1TX05QQ0FfRU5BKSkge1xuJiM0MztcdGlmIChvcGVyLVx1MDAzZXBhcmFtcyBcdTAwMjYgY3B1X3RvX2xlMTYoSUVFRTgwMjExX1VIUl9PUEVSX1BBUkFNU19OUENBX1BSRVMpKSB7XG4gXHRcdGNvbnN0IHN0cnVjdCBpZWVlODAyMTFfdWhyX25wY2FfaW5mbyAqbnBjYSA9IChjb25zdCB2b2lkICopcG9zO1xuIFxuIFx0XHRwb3MgJiM0Mzs9IHNpemVvZigqbnBjYSk7XG5AQCAtMzgzLDcgJiM0MzszODMsNyBAQCBpZWVlODAyMTFfdWhyX29wZXJfZGJlX2luZm8oY29uc3Qgc3RydWN0IGllZWU4MDIxMV91aHJfb3BlcmF0aW9uICpvcGVyKVxuIFx0XHRcdHBvcyAmIzQzOz0gc2l6ZW9mKG5wY2EtXHUwMDNlZGlzX3N1YmNoX2JtYXBbMF0pO1xuIFx0fVxuIFxuLVx0aWYgKG9wZXItXHUwMDNlcGFyYW1zIFx1MDAyNiBjcHVfdG9fbGUxNihJRUVFODAyMTFfVUhSX09QRVJfUEFSQU1TX1BFRENBX0VOQSkpXG4mIzQzO1x0aWYgKG9wZXItXHUwMDNlcGFyYW1zIFx1MDAyNiBjcHVfdG9fbGUxNihJRUVFODAyMTFfVUhSX09QRVJfUEFSQU1TX1BFRENBX1BSRVMpKVxuIFx0XHRwb3MgJiM0Mzs9IHNpemVvZihzdHJ1Y3QgaWVlZTgwMjExX3Vocl9wX2VkY2FfaW5mbyk7XG4gXG4gXHRyZXR1cm4gKGNvbnN0IHZvaWQgKilwb3M7XG5kaWZmIC0tZ2l0IGEvbmV0L21hYzgwMjExL21sbWUuYyBiL25ldC9tYWM4MDIxMS9tbG1lLmNcbmluZGV4IDllOTIzMzdiYjZmOWU1Li40YWQ1ZTk0OTczMjMxNiAxMDA2NDRcbi0tLSBhL25ldC9tYWM4MDIxMS9tbG1lLmNcbiYjNDM7JiM0MzsmIzQzOyBiL25ldC9tYWM4MDIxMS9tbG1lLmNcbkBAIC0xNzAxLDggJiM0MzsxNzAxLDcgQEAgc3RhdGljIGludCBpZWVlODAyMTFfY29uZmlnX2J3KHN0cnVjdCBpZWVlODAyMTFfbGlua19kYXRhICpsaW5rLFxuIFx0aWYgKHN0eXBlICE9IElFRUU4MDIxMV9TVFlQRV9CRUFDT04gXHUwMDI2XHUwMDI2XG4gXHQgICAgY2hhbnJlcS5vcGVyLm5wY2FfY2hhbiBcdTAwMjZcdTAwMjYgZWxlbXMtXHUwMDNldWhyX29wZXJhdGlvbiBcdTAwMjZcdTAwMjZcbiBcdCAgICBpZWVlODAyMTFfdWhyX29wZXJfc2l6ZV9vaygoY29uc3Qgdm9pZCAqKWVsZW1zLVx1MDAzZXVocl9vcGVyYXRpb24sXG4tXHRcdFx0XHQgICAgICAgZWxlbXMtXHUwMDNldWhyX29wZXJhdGlvbl9sZW4sXG4tXHRcdFx0XHQgICAgICAgZmFsc2UpKSB7XG4mIzQzO1x0XHRcdFx0ICAgICAgIGVsZW1zLVx1MDAzZXVocl9vcGVyYXRpb25fbGVuKSkge1xuIFx0XHRjb25zdCBzdHJ1Y3QgaWVlZTgwMjExX3Vocl9ucGNhX2luZm8gKm5wY2E7XG4gXHRcdHN0cnVjdCBpZWVlODAyMTFfYnNzX25wY2FfcGFyYW1zIHBhcmFtcyA9IHt9O1xuIFxuZGlmZiAtLWdpdCBhL25ldC9tYWM4MDIxMS9wYXJzZS5jIGIvbmV0L21hYzgwMjExL3BhcnNlLmNcbmluZGV4IGMyZjJmNzhmMmI0ZjcyLi5jYjJiZTE2N2NkZTc5NSAxMDA2NDRcbi0tLSBhL25ldC9tYWM4MDIxMS9wYXJzZS5jXG4mIzQzOyYjNDM7JiM0MzsgYi9uZXQvbWFjODAyMTEvcGFyc2UuY1xuQEAgLTIwOSw5ICYjNDM7MjA5LDcgQEAgaWVlZTgwMjExX3BhcnNlX2V4dGVuc2lvbl9lbGVtZW50KHUzMiAqY3JjLFxuIFx0XHRpZiAocGFyYW1zLVx1MDAzZW1vZGUgXHUwMDNjIElFRUU4MDIxMV9DT05OX01PREVfVUhSKVxuIFx0XHRcdGJyZWFrO1xuIFx0XHRjYWxjX2NyYyA9IHRydWU7XG4tXHRcdGlmIChpZWVlODAyMTFfdWhyX29wZXJfc2l6ZV9vayhkYXRhLCBsZW4sXG4tXHRcdFx0XHRcdCAgICAgICBwYXJhbXMtXHUwMDNldHlwZSA9PSAoSUVFRTgwMjExX0ZUWVBFX01HTVQgfFxuLVx0XHRcdFx0XHRcdFx0XHRJRUVFODAyMTFfU1RZUEVfQkVBQ09OKSkpIHtcbiYjNDM7XHRcdGlmIChpZWVlODAyMTFfdWhyX29wZXJfc2l6ZV9vayhkYXRhLCBsZW4pKSB7XG4gXHRcdFx0ZWxlbXMtXHUwMDNldWhyX29wZXJhdGlvbiA9IGRhdGE7XG4gXHRcdFx0ZWxlbXMtXHUwMDNldWhyX29wZXJhdGlvbl9sZW4gPSBsZW47XG4gXHRcdH1cbmRpZmYgLS1naXQgYS9uZXQvd2lyZWxlc3Mvbmw4MDIxMS5jIGIvbmV0L3dpcmVsZXNzL25sODAyMTEuY1xuaW5kZXggMjQyMDcxYWQxMGQ2YzkuLjVmYTcwOTc0ZDU3Y2MxIDEwMDY0NFxuLS0tIGEvbmV0L3dpcmVsZXNzL25sODAyMTEuY1xuJiM0MzsmIzQzOyYjNDM7IGIvbmV0L3dpcmVsZXNzL25sODAyMTEuY1xuQEAgLTQ0MSw3ICYjNDM7NDQxLDcgQEAgc3RhdGljIGludCB2YWxpZGF0ZV91aHJfb3BlcmF0aW9uKGNvbnN0IHN0cnVjdCBubGF0dHIgKmF0dHIsXG4gXHRjb25zdCB1OCAqZGF0YSA9IG5sYV9kYXRhKGF0dHIpO1xuIFx0dW5zaWduZWQgaW50IGxlbiA9IG5sYV9sZW4oYXR0cik7XG4gXG4tXHRpZiAoIWllZWU4MDIxMV91aHJfb3Blcl9zaXplX29rKGRhdGEsIGxlbiwgZmFsc2UpKVxuJiM0MztcdGlmICghaWVlZTgwMjExX3Vocl9vcGVyX3NpemVfb2soZGF0YSwgbGVuKSlcbiBcdFx0cmV0dXJuIC1FSU5WQUw7XG4gXHRyZXR1cm4gMDtcbiB9XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTUgMjM6MDU8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7Q0ZHODAyMTEmIzM0OywKICAgICYjMzQ7TUFDODAyMTEmIzM0OywKICAgICYjMzQ7TUFDODAyMTFfSFdTSU0mIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDt2YWxpZGF0ZV91aHJfb3BlcmF0aW9uJiMzNDssCiAgICAmIzM0O2llZWU4MDIxMV9wYXJzZV9leHRlbnNpb25fZWxlbWVudCYjMzQ7LAogICAgJiMzNDtpZWVlODAyMTFfY29uZmlnX2J3JiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBwYXJzaW5nIGFuZCB2YWxpZGF0aW9uIGxvZ2ljIGZvciBJRUVFIDgwMi4xMSBVSFIgKFVsdHJhIEhpZ2ggUmVsaWFiaWxpdHkpIG9wZXJhdGlvbiBlbGVtZW50cy4gSXQgY2hhbmdlcyB0aGUgc2l6ZSB2YWxpZGF0aW9uIGxvZ2ljIGJ5IGNoZWNraW5nIGZvciBwcmVzZW5jZSBmbGFncyBpbnN0ZWFkIG9mIGVuYWJsZSBmbGFncy4gVGhlIG1vZGlmaWVkIGlubGluZSBmdW5jdGlvbiBpcyBjYWxsZWQgZnJvbSBuZXRsaW5rIGF0dHJpYnV0ZSB2YWxpZGF0aW9uIChgdmFsaWRhdGVfdWhyX29wZXJhdGlvbmApLCBtYW5hZ2VtZW50IGZyYW1lIHBhcnNpbmcgKGBpZWVlODAyMTFfcGFyc2VfZXh0ZW5zaW9uX2VsZW1lbnRgKSwgYW5kIGJhbmR3aWR0aCBjb25maWd1cmF0aW9uIChgaWVlZTgwMjExX2NvbmZpZ19id2ApLiBUaGVzZSBhcmUgcmVhY2hhYmxlIGZyb20gdXNlciBzcGFjZSB2aWEgbmV0bGluayBhbmQgZnJvbSBpbmplY3RlZCBtYW5hZ2VtZW50IGZyYW1lcywgbWFraW5nIGl0IGhpZ2hseSByZWxldmFudCBmb3IgZnV6emluZy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkluc3RydWN0aW9uOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+WW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuCllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lCmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC4KCklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpbgp5b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHkKdXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy4KClJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6Ci0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy4KLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy4KLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuCi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLApldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuCgpJZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoCnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLgoKV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086CjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuCiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLgoyLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS4KICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLgogICBEbyBub3QgbGlzdCB0b28gZ2VuZXJpYyBjb25maWdzICh3ZSBhbHJlYWR5IGhhdmUgdGhlbSBlbmFibGVkKS4gT25seSBsaXN0IHRob3NlIHRoYXQKICAgc3BlY2lmaWNhbGx5IGNvdmVyIHRoZSBtb2RpZmllZCBjb2RlLiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3Mgb3V0cHV0IGFycmF5LAogICBhbmQgRE8gTk9UIGFkZCBhICYjMzk7Q09ORklHXyYjMzk7IHByZWZpeCAoZS5nLiwgcmV0dXJuICYjMzQ7TkVUX0lQVjQmIzM0OyBpbnN0ZWFkIG9mICYjMzQ7Q09ORklHX05FVF9JUFY0JiMzNDspLgpQcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy4KCgpVc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLgpJdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS4KSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlByb21wdDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOgpjb21taXQgNzJjMTAyODZmMzMxZTY3ZGM1YjZiNzJkMjRjMWIxMGUyZDM3M2M2YwpBdXRob3I6IHN5ei1jbHVzdGVyICZsdDt0cmlhZ2VAc3l6a2FsbGVyLmNvbSZndDsKRGF0ZTogICBXZWQgSnVsIDE1IDIzOjA1OjE0IDIwMjYgJiM0MzswMDAwCgogICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3CgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9pZWVlODAyMTEtdWhyLmggYi9pbmNsdWRlL2xpbnV4L2llZWU4MDIxMS11aHIuaAppbmRleCA1OTdjOWU1NTkyNjFiOS4uNjY1ZDRiM2E1YjQxODYgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvaWVlZTgwMjExLXVoci5oCiYjNDM7JiM0MzsmIzQzOyBiL2luY2x1ZGUvbGludXgvaWVlZTgwMjExLXVoci5oCkBAIC0xNyw2ICYjNDM7MTcsMTEgQEAKICNkZWZpbmUgSUVFRTgwMjExX1VIUl9PUEVSX1BBUkFNU19QRURDQV9FTkEJCTB4MDAwNAogI2RlZmluZSBJRUVFODAyMTFfVUhSX09QRVJfUEFSQU1TX0RCRV9FTkEJCTB4MDAwOAogI2RlZmluZSBJRUVFODAyMTFfVUhSX09QRVJfUEFSQU1TX0RCRV9CVwkJMHgwMDcwCiYjNDM7I2RlZmluZSBJRUVFODAyMTFfVUhSX09QRVJfUEFSQU1TX0RVT19QUkVTCQkweDAwODAKJiM0MzsjZGVmaW5lIElFRUU4MDIxMV9VSFJfT1BFUl9QQVJBTVNfRFBTX1BSRVMJCTB4MDEwMAomIzQzOyNkZWZpbmUgSUVFRTgwMjExX1VIUl9PUEVSX1BBUkFNU19OUENBX1BSRVMJCTB4MDIwMAomIzQzOyNkZWZpbmUgSUVFRTgwMjExX1VIUl9PUEVSX1BBUkFNU19QRURDQV9QUkVTCQkweDA0MDAKJiM0MzsjZGVmaW5lIElFRUU4MDIxMV9VSFJfT1BFUl9QQVJBTVNfREJFX1BSRVMJCTB4MDgwMAogCiBzdHJ1Y3QgaWVlZTgwMjExX3Vocl9vcGVyYXRpb24gewogCV9fbGUxNiBwYXJhbXM7CkBAIC0yNjUsOCAmIzQzOzI3MCw3IEBAIHN0cnVjdCBpZWVlODAyMTFfdWhyX3BfZWRjYV9pbmZvIHsKIAlfX2xlMTYgcGFyYW1zOwogfSBfX3BhY2tlZDsKIAotc3RhdGljIGlubGluZSBib29sIGllZWU4MDIxMV91aHJfb3Blcl9zaXplX29rKGNvbnN0IHU4ICpkYXRhLCB1OCBsZW4sCi0JCQkJCSAgICAgIGJvb2wgYmVhY29uKQomIzQzO3N0YXRpYyBpbmxpbmUgYm9vbCBpZWVlODAyMTFfdWhyX29wZXJfc2l6ZV9vayhjb25zdCB1OCAqZGF0YSwgdTggbGVuKQogewogCWNvbnN0IHN0cnVjdCBpZWVlODAyMTFfdWhyX29wZXJhdGlvbiAqb3BlciA9IChjb25zdCB2b2lkICopZGF0YTsKIAl1OCBuZWVkZWQgPSBzaXplb2YoKm9wZXIpOwpAQCAtMjc0LDE5ICYjNDM7Mjc4LDE1IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBpZWVlODAyMTFfdWhyX29wZXJfc2l6ZV9vayhjb25zdCB1OCAqZGF0YSwgdTggbGVuLAogCWlmIChsZW4gJmx0OyBuZWVkZWQpCiAJCXJldHVybiBmYWxzZTsKIAotCS8qIG5vdGhpbmcgZWxzZSBwcmVzZW50IGluIGJlYWNvbnMgKi8KLQlpZiAoYmVhY29uKQotCQlyZXR1cm4gdHJ1ZTsKLQogCS8qIERQUyBPcGVyYXRpb24gUGFyYW1ldGVycyAoZml4ZWQgNCBieXRlcykgKi8KLQlpZiAob3Blci0mZ3Q7cGFyYW1zICZhbXA7IGNwdV90b19sZTE2KElFRUU4MDIxMV9VSFJfT1BFUl9QQVJBTVNfRFBTX0VOQSkpIHsKJiM0MzsJaWYgKG9wZXItJmd0O3BhcmFtcyAmYW1wOyBjcHVfdG9fbGUxNihJRUVFODAyMTFfVUhSX09QRVJfUEFSQU1TX0RQU19QUkVTKSkgewogCQluZWVkZWQgJiM0Mzs9IHNpemVvZihzdHJ1Y3QgaWVlZTgwMjExX3Vocl9kcHNfaW5mbyk7CiAJCWlmIChsZW4gJmx0OyBuZWVkZWQpCiAJCQlyZXR1cm4gZmFsc2U7CiAJfQogCiAJLyogTlBDQSBPcGVyYXRpb24gUGFyYW1ldGVycyAoZml4ZWQgNCBieXRlcyAmIzQzOyBvcHRpb25hbCAyIGJ5dGVzKSAqLwotCWlmIChvcGVyLSZndDtwYXJhbXMgJmFtcDsgY3B1X3RvX2xlMTYoSUVFRTgwMjExX1VIUl9PUEVSX1BBUkFNU19OUENBX0VOQSkpIHsKJiM0MzsJaWYgKG9wZXItJmd0O3BhcmFtcyAmYW1wOyBjcHVfdG9fbGUxNihJRUVFODAyMTFfVUhSX09QRVJfUEFSQU1TX05QQ0FfUFJFUykpIHsKIAkJY29uc3Qgc3RydWN0IGllZWU4MDIxMV91aHJfbnBjYV9pbmZvICpucGNhID0KIAkJCShjb25zdCB2b2lkICopKGRhdGEgJiM0MzsgbmVlZGVkKTsKIApAQCAtMzAzLDE0ICYjNDM7MzAzLDE0IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBpZWVlODAyMTFfdWhyX29wZXJfc2l6ZV9vayhjb25zdCB1OCAqZGF0YSwgdTggbGVuLAogCX0KIAogCS8qIFAtRURDQSBPcGVyYXRpb24gUGFyYW1ldGVycyAoZml4ZWQgMyBieXRlcykgKi8KLQlpZiAob3Blci0mZ3Q7cGFyYW1zICZhbXA7IGNwdV90b19sZTE2KElFRUU4MDIxMV9VSFJfT1BFUl9QQVJBTVNfUEVEQ0FfRU5BKSkgewomIzQzOwlpZiAob3Blci0mZ3Q7cGFyYW1zICZhbXA7IGNwdV90b19sZTE2KElFRUU4MDIxMV9VSFJfT1BFUl9QQVJBTVNfUEVEQ0FfUFJFUykpIHsKIAkJbmVlZGVkICYjNDM7PSBzaXplb2Yoc3RydWN0IGllZWU4MDIxMV91aHJfcF9lZGNhX2luZm8pOwogCQlpZiAobGVuICZsdDsgbmVlZGVkKQogCQkJcmV0dXJuIGZhbHNlOwogCX0KIAogCS8qIERCRSBPcGVyYXRpb24gUGFyYW1ldGVycyAoZml4ZWQgMSBieXRlICYjNDM7IG9wdGlvbmFsIDIgYnl0ZXMpICovCi0JaWYgKG9wZXItJmd0O3BhcmFtcyAmYW1wOyBjcHVfdG9fbGUxNihJRUVFODAyMTFfVUhSX09QRVJfUEFSQU1TX0RCRV9FTkEpKSB7CiYjNDM7CWlmIChvcGVyLSZndDtwYXJhbXMgJmFtcDsgY3B1X3RvX2xlMTYoSUVFRTgwMjExX1VIUl9PUEVSX1BBUkFNU19EQkVfUFJFUykpIHsKIAkJY29uc3Qgc3RydWN0IGllZWU4MDIxMV91aHJfZGJlX2luZm8gKmRiZSA9CiAJCQkoY29uc3Qgdm9pZCAqKShkYXRhICYjNDM7IG5lZWRlZCk7CiAKQEAgLTMyOSwxOSAmIzQzOzMyOSwxOSBAQCBzdGF0aWMgaW5saW5lIGJvb2wgaWVlZTgwMjExX3Vocl9vcGVyX3NpemVfb2soY29uc3QgdTggKmRhdGEsIHU4IGxlbiwKIAlyZXR1cm4gbGVuICZndDs9IG5lZWRlZDsKIH0KIAotLyoKLSAqIE5vdGU6IGNhbm5vdCBjYWxsIHRoaXMgb24gdGhlIGVsZW1lbnQgY29taW5nIGZyb20gYSBiZWFjb24sCi0gKiBtdXN0IGVuc3VyZSBpZWVlODAyMTFfdWhyX29wZXJfc2l6ZV9vayguLi4sIGZhbHNlKSBmaXJzdAotICovCiYjNDM7LyogTm90ZTogbXVzdCBlbnN1cmUgaWVlZTgwMjExX3Vocl9vcGVyX3NpemVfb2soLi4uKSBmaXJzdCAqLwogc3RhdGljIGlubGluZSBjb25zdCBzdHJ1Y3QgaWVlZTgwMjExX3Vocl9ucGNhX2luZm8gKgogaWVlZTgwMjExX3Vocl9ucGNhX2luZm8oY29uc3Qgc3RydWN0IGllZWU4MDIxMV91aHJfb3BlcmF0aW9uICpvcGVyKQogewogCWNvbnN0IHU4ICpwb3MgPSBvcGVyLSZndDt2YXJpYWJsZTsKIAomIzQzOwlpZiAoIShvcGVyLSZndDtwYXJhbXMgJmFtcDsgY3B1X3RvX2xlMTYoSUVFRTgwMjExX1VIUl9PUEVSX1BBUkFNU19OUENBX1BSRVMpKSkKJiM0MzsJCXJldHVybiBOVUxMOwomIzQzOwogCWlmICghKG9wZXItJmd0O3BhcmFtcyAmYW1wOyBjcHVfdG9fbGUxNihJRUVFODAyMTFfVUhSX09QRVJfUEFSQU1TX05QQ0FfRU5BKSkpCiAJCXJldHVybiBOVUxMOwogCi0JaWYgKG9wZXItJmd0O3BhcmFtcyAmYW1wOyBjcHVfdG9fbGUxNihJRUVFODAyMTFfVUhSX09QRVJfUEFSQU1TX0RQU19FTkEpKQomIzQzOwlpZiAob3Blci0mZ3Q7cGFyYW1zICZhbXA7IGNwdV90b19sZTE2KElFRUU4MDIxMV9VSFJfT1BFUl9QQVJBTVNfRFBTX1BSRVMpKQogCQlwb3MgJiM0Mzs9IHNpemVvZihzdHJ1Y3QgaWVlZTgwMjExX3Vocl9kcHNfaW5mbyk7CiAKIAlyZXR1cm4gKGNvbnN0IHZvaWQgKilwb3M7CkBAIC0zNjAsMjIgJiM0MzszNjAsMjIgQEAgaWVlZTgwMjExX3Vocl9ucGNhX2Rpc19zdWJjaF9iaXRtYXAoY29uc3Qgc3RydWN0IGllZWU4MDIxMV91aHJfb3BlcmF0aW9uICpvcGVyKQogCXJldHVybiBucGNhLSZndDtkaXNfc3ViY2hfYm1hcDsKIH0KIAotLyoKLSAqIE5vdGU6IGNhbm5vdCBjYWxsIHRoaXMgb24gdGhlIGVsZW1lbnQgY29taW5nIGZyb20gYSBiZWFjb24sCi0gKiBtdXN0IGVuc3VyZSBpZWVlODAyMTFfdWhyX29wZXJfc2l6ZV9vayguLi4sIGZhbHNlKSBmaXJzdAotICovCiYjNDM7LyogTm90ZTogbXVzdCBlbnN1cmUgaWVlZTgwMjExX3Vocl9vcGVyX3NpemVfb2soLi4uKSBmaXJzdCAqLwogc3RhdGljIGlubGluZSBjb25zdCBzdHJ1Y3QgaWVlZTgwMjExX3Vocl9kYmVfaW5mbyAqCiBpZWVlODAyMTFfdWhyX29wZXJfZGJlX2luZm8oY29uc3Qgc3RydWN0IGllZWU4MDIxMV91aHJfb3BlcmF0aW9uICpvcGVyKQogewogCWNvbnN0IHU4ICpwb3MgPSBvcGVyLSZndDt2YXJpYWJsZTsKIAomIzQzOwlpZiAoIShvcGVyLSZndDtwYXJhbXMgJmFtcDsgY3B1X3RvX2xlMTYoSUVFRTgwMjExX1VIUl9PUEVSX1BBUkFNU19EQkVfUFJFUykpKQomIzQzOwkJcmV0dXJuIE5VTEw7CiYjNDM7CiAJaWYgKCEob3Blci0mZ3Q7cGFyYW1zICZhbXA7IGNwdV90b19sZTE2KElFRUU4MDIxMV9VSFJfT1BFUl9QQVJBTVNfREJFX0VOQSkpKQogCQlyZXR1cm4gTlVMTDsKIAotCWlmIChvcGVyLSZndDtwYXJhbXMgJmFtcDsgY3B1X3RvX2xlMTYoSUVFRTgwMjExX1VIUl9PUEVSX1BBUkFNU19EUFNfRU5BKSkKJiM0MzsJaWYgKG9wZXItJmd0O3BhcmFtcyAmYW1wOyBjcHVfdG9fbGUxNihJRUVFODAyMTFfVUhSX09QRVJfUEFSQU1TX0RQU19QUkVTKSkKIAkJcG9zICYjNDM7PSBzaXplb2Yoc3RydWN0IGllZWU4MDIxMV91aHJfZHBzX2luZm8pOwogCi0JaWYgKG9wZXItJmd0O3BhcmFtcyAmYW1wOyBjcHVfdG9fbGUxNihJRUVFODAyMTFfVUhSX09QRVJfUEFSQU1TX05QQ0FfRU5BKSkgewomIzQzOwlpZiAob3Blci0mZ3Q7cGFyYW1zICZhbXA7IGNwdV90b19sZTE2KElFRUU4MDIxMV9VSFJfT1BFUl9QQVJBTVNfTlBDQV9QUkVTKSkgewogCQljb25zdCBzdHJ1Y3QgaWVlZTgwMjExX3Vocl9ucGNhX2luZm8gKm5wY2EgPSAoY29uc3Qgdm9pZCAqKXBvczsKIAogCQlwb3MgJiM0Mzs9IHNpemVvZigqbnBjYSk7CkBAIC0zODMsNyAmIzQzOzM4Myw3IEBAIGllZWU4MDIxMV91aHJfb3Blcl9kYmVfaW5mbyhjb25zdCBzdHJ1Y3QgaWVlZTgwMjExX3Vocl9vcGVyYXRpb24gKm9wZXIpCiAJCQlwb3MgJiM0Mzs9IHNpemVvZihucGNhLSZndDtkaXNfc3ViY2hfYm1hcFswXSk7CiAJfQogCi0JaWYgKG9wZXItJmd0O3BhcmFtcyAmYW1wOyBjcHVfdG9fbGUxNihJRUVFODAyMTFfVUhSX09QRVJfUEFSQU1TX1BFRENBX0VOQSkpCiYjNDM7CWlmIChvcGVyLSZndDtwYXJhbXMgJmFtcDsgY3B1X3RvX2xlMTYoSUVFRTgwMjExX1VIUl9PUEVSX1BBUkFNU19QRURDQV9QUkVTKSkKIAkJcG9zICYjNDM7PSBzaXplb2Yoc3RydWN0IGllZWU4MDIxMV91aHJfcF9lZGNhX2luZm8pOwogCiAJcmV0dXJuIChjb25zdCB2b2lkICopcG9zOwpkaWZmIC0tZ2l0IGEvbmV0L21hYzgwMjExL21sbWUuYyBiL25ldC9tYWM4MDIxMS9tbG1lLmMKaW5kZXggOWU5MjMzN2JiNmY5ZTUuLjRhZDVlOTQ5NzMyMzE2IDEwMDY0NAotLS0gYS9uZXQvbWFjODAyMTEvbWxtZS5jCiYjNDM7JiM0MzsmIzQzOyBiL25ldC9tYWM4MDIxMS9tbG1lLmMKQEAgLTE3MDEsOCAmIzQzOzE3MDEsNyBAQCBzdGF0aWMgaW50IGllZWU4MDIxMV9jb25maWdfYncoc3RydWN0IGllZWU4MDIxMV9saW5rX2RhdGEgKmxpbmssCiAJaWYgKHN0eXBlICE9IElFRUU4MDIxMV9TVFlQRV9CRUFDT04gJmFtcDsmYW1wOwogCSAgICBjaGFucmVxLm9wZXIubnBjYV9jaGFuICZhbXA7JmFtcDsgZWxlbXMtJmd0O3Vocl9vcGVyYXRpb24gJmFtcDsmYW1wOwogCSAgICBpZWVlODAyMTFfdWhyX29wZXJfc2l6ZV9vaygoY29uc3Qgdm9pZCAqKWVsZW1zLSZndDt1aHJfb3BlcmF0aW9uLAotCQkJCSAgICAgICBlbGVtcy0mZ3Q7dWhyX29wZXJhdGlvbl9sZW4sCi0JCQkJICAgICAgIGZhbHNlKSkgewomIzQzOwkJCQkgICAgICAgZWxlbXMtJmd0O3Vocl9vcGVyYXRpb25fbGVuKSkgewogCQljb25zdCBzdHJ1Y3QgaWVlZTgwMjExX3Vocl9ucGNhX2luZm8gKm5wY2E7CiAJCXN0cnVjdCBpZWVlODAyMTFfYnNzX25wY2FfcGFyYW1zIHBhcmFtcyA9IHt9OwogCmRpZmYgLS1naXQgYS9uZXQvbWFjODAyMTEvcGFyc2UuYyBiL25ldC9tYWM4MDIxMS9wYXJzZS5jCmluZGV4IGMyZjJmNzhmMmI0ZjcyLi5jYjJiZTE2N2NkZTc5NSAxMDA2NDQKLS0tIGEvbmV0L21hYzgwMjExL3BhcnNlLmMKJiM0MzsmIzQzOyYjNDM7IGIvbmV0L21hYzgwMjExL3BhcnNlLmMKQEAgLTIwOSw5ICYjNDM7MjA5LDcgQEAgaWVlZTgwMjExX3BhcnNlX2V4dGVuc2lvbl9lbGVtZW50KHUzMiAqY3JjLAogCQlpZiAocGFyYW1zLSZndDttb2RlICZsdDsgSUVFRTgwMjExX0NPTk5fTU9ERV9VSFIpCiAJCQlicmVhazsKIAkJY2FsY19jcmMgPSB0cnVlOwotCQlpZiAoaWVlZTgwMjExX3Vocl9vcGVyX3NpemVfb2soZGF0YSwgbGVuLAotCQkJCQkgICAgICAgcGFyYW1zLSZndDt0eXBlID09IChJRUVFODAyMTFfRlRZUEVfTUdNVCB8Ci0JCQkJCQkJCUlFRUU4MDIxMV9TVFlQRV9CRUFDT04pKSkgewomIzQzOwkJaWYgKGllZWU4MDIxMV91aHJfb3Blcl9zaXplX29rKGRhdGEsIGxlbikpIHsKIAkJCWVsZW1zLSZndDt1aHJfb3BlcmF0aW9uID0gZGF0YTsKIAkJCWVsZW1zLSZndDt1aHJfb3BlcmF0aW9uX2xlbiA9IGxlbjsKIAkJfQpkaWZmIC0tZ2l0IGEvbmV0L3dpcmVsZXNzL25sODAyMTEuYyBiL25ldC93aXJlbGVzcy9ubDgwMjExLmMKaW5kZXggMjQyMDcxYWQxMGQ2YzkuLjVmYTcwOTc0ZDU3Y2MxIDEwMDY0NAotLS0gYS9uZXQvd2lyZWxlc3Mvbmw4MDIxMS5jCiYjNDM7JiM0MzsmIzQzOyBiL25ldC93aXJlbGVzcy9ubDgwMjExLmMKQEAgLTQ0MSw3ICYjNDM7NDQxLDcgQEAgc3RhdGljIGludCB2YWxpZGF0ZV91aHJfb3BlcmF0aW9uKGNvbnN0IHN0cnVjdCBubGF0dHIgKmF0dHIsCiAJY29uc3QgdTggKmRhdGEgPSBubGFfZGF0YShhdHRyKTsKIAl1bnNpZ25lZCBpbnQgbGVuID0gbmxhX2xlbihhdHRyKTsKIAotCWlmICghaWVlZTgwMjExX3Vocl9vcGVyX3NpemVfb2soZGF0YSwgbGVuLCBmYWxzZSkpCiYjNDM7CWlmICghaWVlZTgwMjExX3Vocl9vcGVyX3NpemVfb2soZGF0YSwgbGVuKSkKIAkJcmV0dXJuIC1FSU5WQUw7CiAJcmV0dXJuIDA7CiB9CjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE1IDIzOjA1PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDQ3NzkKCQkJCQkJCW91dHB1dDogMjAKCQkJCQkJCXRob3VnaHRzOiA0NTgKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBVSFIgT3BlcmF0aW9uIEVsZW1lbnQgUGF0Y2gqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggdGhhdCB0d2Vha3MgdGhlIGBpZWVlODAyMTFfdWhyX29wZXJfc2l6ZV9va2AgZnVuY3Rpb24gYW5kIGl0cyByZWxhdGVkIGNhbGxzIGluIGBuZXQvbWFjODAyMTFgIGFuZCBgbmV0L3dpcmVsZXNzYC4gSXQgbG9va3MgbGlrZSB0aGV5JiMzOTt2ZSByZW1vdmVkIHRoZSBgYmVhY29uYCBwYXJhbWV0ZXIgZnJvbSB0aGF0IGZ1bmN0aW9uIGFuZCBzd2FwcGVkIG91dCB0aGUgYF9FTkFgIG1hY3JvcyB3aXRoIGBfUFJFU2AgbWFjcm9zIGZvciBjaGVja2luZyBmaWVsZCBwcmVzZW5jZSB3aXRoaW4gdGhlIFVIUiBvcGVyYXRpb24gZWxlbWVudC4gTXkgaW1tZWRpYXRlIHRob3VnaHQgaXMsICYjMzQ7SXMgdGhpcyBnb2luZyB0byBhY3R1YWxseSB3b3JrPyYjMzQ7CgpGaXJzdCB0aGluZ3MgZmlyc3QsIGxldCYjMzk7cyBjb25maXJtIHJlYWNoYWJpbGl0eSBhbmQgZnVuY3Rpb25hbGl0eS4gSSBzZWUgYGllZWU4MDIxMV91aHJfb3Blcl9zaXplX29rYCBpcyBhbiBpbmxpbmUgZnVuY3Rpb24gZGVmaW5lZCBpbiBgaW5jbHVkZS9saW51eC9pZWVlODAyMTEtdWhyLmhgIGFuZCBpcyBjYWxsZWQgZnJvbSBhIGZldyBwbGFjZXMuIFNwZWNpZmljYWxseSwgYGllZWU4MDIxMV9jb25maWdfYndgIGluIGBuZXQvbWFjODAyMTEvbWxtZS5jYCwgYGllZWU4MDIxMV9wYXJzZV9leHRlbnNpb25fZWxlbWVudGAgaW4gYG5ldC9tYWM4MDIxMS9wYXJzZS5jYCwgYW5kIGZpbmFsbHkgYHZhbGlkYXRlX3Vocl9vcGVyYXRpb25gIGluIGBuZXQvd2lyZWxlc3Mvbmw4MDIxMS5jYC4gU28geWVhaCwgdGhpcyBkZWZpbml0ZWx5IHNlZW1zIHRvIGJlIGZ1bmN0aW9uaW5nIGFzIGludGVuZGVkLCBwYXJzaW5nIHRob3NlIDgwMi4xMSBVSFIgb3BlcmF0aW9uIGVsZW1lbnRzLiBXYWl0Li4uIFVIUi4gVGhhdCYjMzk7cyBwcm9iYWJseSBXaS1GaSA4LCBvciA4MDIuMTFibi4KCk5vdywgbGV0JiMzOTtzIGlkZW50aWZ5IHRoZSByZWxldmFudCBjb25maWd1cmF0aW9uIG9wdGlvbnMuIENsZWFybHksIGBDT05GSUdfTUFDODAyMTFgIGFuZCBgQ09ORklHX0NGRzgwMjExYCBhcmUgZ29pbmcgdG8gYmUgaW52b2x2ZWQgaGVyZS4gQW5kIHdpdGggZnV6emluZyBpbiBtaW5kLCBJIG5lZWQgdG8gcGlucG9pbnQgdGhlIGtleSBmdW5jdGlvbnMgdG8gdGFyZ2V0LiBMb29rcyBsaWtlIGBpZWVlODAyMTFfY29uZmlnX2J3YCwgYGllZWU4MDIxMV9wYXJzZV9leHRlbnNpb25fZWxlbWVudGAsIGFuZCBgdmFsaWRhdGVfdWhyX29wZXJhdGlvbmAgYXJlIHRoZSBwcmltYXJ5IGNhbmRpZGF0ZXMuIEkgc2hvdWxkIHByb2JhYmx5IGZvY3VzIG9uIGB2YWxpZGF0ZV91aHJfb3BlcmF0aW9uYCBpbiBgbmV0L3dpcmVsZXNzL25sODAyMTEuY2AgZmlyc3QgdG8gdW5kZXJzdGFuZCB0aGUgY29udGV4dCBvZiB0aGUgY2hhbmdlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE1IDIzOjA1PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3ZhbGlkYXRlX3Vocl9vcGVyYXRpb24mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7bmV0L3dpcmVsZXNzL25sODAyMTEuYz00Mjc9c3RhdGljIGludCB2YWxpZGF0ZV91aHJfY2FwYShjb25zdCBzdHJ1Y3QgbmxhdHRyICphdHRyLFxuLS1cbm5ldC93aXJlbGVzcy9ubDgwMjExLmMtNDM3LVxubmV0L3dpcmVsZXNzL25sODAyMTEuYzo0Mzg6c3RhdGljIGludCB2YWxpZGF0ZV91aHJfb3BlcmF0aW9uKGNvbnN0IHN0cnVjdCBubGF0dHIgKmF0dHIsXG5uZXQvd2lyZWxlc3Mvbmw4MDIxMS5jLTQzOS1cdFx0XHRcdCAgc3RydWN0IG5ldGxpbmtfZXh0X2FjayAqZXh0YWNrKVxuLS1cbm5ldC93aXJlbGVzcy9ubDgwMjExLmM9Njk4PXN0YXRpYyBjb25zdCBzdHJ1Y3QgbmxhX3BvbGljeSBubDgwMjExX3BvbGljeVtOVU1fTkw4MDIxMV9BVFRSXSA9IHtcbi0tXG5uZXQvd2lyZWxlc3Mvbmw4MDIxMS5jLTEwNzUtXHRbTkw4MDIxMV9BVFRSX1VIUl9PUEVSQVRJT05dID1cbm5ldC93aXJlbGVzcy9ubDgwMjExLmM6MTA3NjpcdFx0TkxBX1BPTElDWV9WQUxJREFURV9GTihOTEFfQklOQVJZLCB2YWxpZGF0ZV91aHJfb3BlcmF0aW9uKSxcbm5ldC93aXJlbGVzcy9ubDgwMjExLmMtMTA3Ny1cdFtOTDgwMjExX0FUVFJfTkFOX0NIQU5ORUxdID0gTkxBX1BPTElDWV9ORVNURUQobmw4MDIxMV9wb2xpY3kpLFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE1IDIzOjA1PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDYwMzIKCQkJCQkJCW91dHB1dDogMzAKCQkJCQkJCXRob3VnaHRzOiAxMTUKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIFBvdGVudGlhbCBTZWN1cml0eSBJbXBsaWNhdGlvbnMqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgY29kZSBhbmQgSSBrbm93IGB2YWxpZGF0ZV91aHJfb3BlcmF0aW9uYCBpcyBkZWZpbml0ZWx5IHJlYWNoYWJsZSB0aHJvdWdoIG5ldGxpbmsgcG9saWN5IHZhbGlkYXRpb24sIHRoYXQmIzM5O3MgZ29vZCB0byBrbm93LiBOb3csIEkgc2VlIGBpZWVlODAyMTFfcGFyc2VfZXh0ZW5zaW9uX2VsZW1lbnRgIGlzIGxvY2F0ZWQgaW4gYG5ldC9tYWM4MDIxMS9wYXJzZS5jYCBhbmQgYGllZWU4MDIxMV9jb25maWdfYndgIGlzIGluIGBuZXQvbWFjODAyMTEvbWxtZS5jYC4gSSBuZWVkIHRvIGZpZ3VyZSBvdXQgaG93IHRoZXNlIGZ1bmN0aW9ucyBpbnRlcmFjdCBhbmQgaWYgdGhlcmUmIzM5O3MgYW55IHBvdGVudGlhbCBmb3IgbWlzdXNlIG9yIHZ1bG5lcmFiaWxpdGllcy4gSSYjMzk7bSBzcGVjaWZpY2FsbHkgY3VyaW91cyBhYm91dCB0aGUgcmVsYXRpb25zaGlwIG9mIHRoZXNlIGZ1bmN0aW9ucyB0byBgaWVlZTgwMjExX3Vocl9vcGVyX3NpemVfb2tgLiBJJiMzOTttIGdvaW5nIHRvIGxvb2sgYXQgdGhlIGNyb3NzLXJlZmVyZW5jZXMgYW5kIHNlZSB3aGF0IGNhbGxzIGBpZWVlODAyMTFfdWhyX29wZXJfc2l6ZV9va2AuIFRoYXQgbWlnaHQgZ2l2ZSBtZSBzb21lIGludGVyZXN0aW5nIGxlYWRzLiBJIHdhbnQgdG8gc2VlIGlmIHRoaXMgZnVuY3Rpb24gaXMgdXNlZCBlbHNld2hlcmUsIGFuZCBpZiBpdCBpcywgaG93IGl0JiMzOTtzIGJlaW5nIHVzZWQuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTUgMjM6MDU8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7aWVlZTgwMjExX3Vocl9vcGVyX3NpemVfb2smIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7aW5jbHVkZS9saW51eC9pZWVlODAyMTEtdWhyLmg9MjY4PXN0cnVjdCBpZWVlODAyMTFfdWhyX3BfZWRjYV9pbmZvIHtcbi0tXG5pbmNsdWRlL2xpbnV4L2llZWU4MDIxMS11aHIuaC0yNzItXG5pbmNsdWRlL2xpbnV4L2llZWU4MDIxMS11aHIuaDoyNzM6c3RhdGljIGlubGluZSBib29sIGllZWU4MDIxMV91aHJfb3Blcl9zaXplX29rKGNvbnN0IHU4ICpkYXRhLCB1OCBsZW4pXG5pbmNsdWRlL2xpbnV4L2llZWU4MDIxMS11aHIuaC0yNzQte1xuLS1cbmluY2x1ZGUvbGludXgvaWVlZTgwMjExLXVoci5oLTMzMS1cbmluY2x1ZGUvbGludXgvaWVlZTgwMjExLXVoci5oOjMzMjovKiBOb3RlOiBtdXN0IGVuc3VyZSBpZWVlODAyMTFfdWhyX29wZXJfc2l6ZV9vayguLi4pIGZpcnN0ICovXG5pbmNsdWRlL2xpbnV4L2llZWU4MDIxMS11aHIuaC0zMzMtc3RhdGljIGlubGluZSBjb25zdCBzdHJ1Y3QgaWVlZTgwMjExX3Vocl9ucGNhX2luZm8gKlxuLS1cbmluY2x1ZGUvbGludXgvaWVlZTgwMjExLXVoci5oPTM1MT1pZWVlODAyMTFfdWhyX25wY2FfZGlzX3N1YmNoX2JpdG1hcChjb25zdCBzdHJ1Y3QgaWVlZTgwMjExX3Vocl9vcGVyYXRpb24gKm9wZXIpXG4tLVxuaW5jbHVkZS9saW51eC9pZWVlODAyMTEtdWhyLmgtMzYyLVxuaW5jbHVkZS9saW51eC9pZWVlODAyMTEtdWhyLmg6MzYzOi8qIE5vdGU6IG11c3QgZW5zdXJlIGllZWU4MDIxMV91aHJfb3Blcl9zaXplX29rKC4uLikgZmlyc3QgKi9cbmluY2x1ZGUvbGludXgvaWVlZTgwMjExLXVoci5oLTM2NC1zdGF0aWMgaW5saW5lIGNvbnN0IHN0cnVjdCBpZWVlODAyMTFfdWhyX2RiZV9pbmZvICpcbi0tXG5uZXQvbWFjODAyMTEvbWxtZS5jPTE1OTI9c3RhdGljIGludCBpZWVlODAyMTFfY29uZmlnX2J3KHN0cnVjdCBpZWVlODAyMTFfbGlua19kYXRhICpsaW5rLFxuLS1cbm5ldC9tYWM4MDIxMS9tbG1lLmMtMTcwMi1cdCAgICBjaGFucmVxLm9wZXIubnBjYV9jaGFuIFx1MDAyNlx1MDAyNiBlbGVtcy1cdTAwM2V1aHJfb3BlcmF0aW9uIFx1MDAyNlx1MDAyNlxubmV0L21hYzgwMjExL21sbWUuYzoxNzAzOlx0ICAgIGllZWU4MDIxMV91aHJfb3Blcl9zaXplX29rKChjb25zdCB2b2lkICopZWxlbXMtXHUwMDNldWhyX29wZXJhdGlvbixcbm5ldC9tYWM4MDIxMS9tbG1lLmMtMTcwNC1cdFx0XHRcdCAgICAgICBlbGVtcy1cdTAwM2V1aHJfb3BlcmF0aW9uX2xlbikpIHtcbi0tXG5uZXQvbWFjODAyMTEvcGFyc2UuYz03Mj1pZWVlODAyMTFfcGFyc2VfZXh0ZW5zaW9uX2VsZW1lbnQodTMyICpjcmMsXG4tLVxubmV0L21hYzgwMjExL3BhcnNlLmMtMjExLVx0XHRjYWxjX2NyYyA9IHRydWU7XG5uZXQvbWFjODAyMTEvcGFyc2UuYzoyMTI6XHRcdGlmIChpZWVlODAyMTFfdWhyX29wZXJfc2l6ZV9vayhkYXRhLCBsZW4pKSB7XG5uZXQvbWFjODAyMTEvcGFyc2UuYy0yMTMtXHRcdFx0ZWxlbXMtXHUwMDNldWhyX29wZXJhdGlvbiA9IGRhdGE7XG4tLVxubmV0L3dpcmVsZXNzL25sODAyMTEuYz00Mzg9c3RhdGljIGludCB2YWxpZGF0ZV91aHJfb3BlcmF0aW9uKGNvbnN0IHN0cnVjdCBubGF0dHIgKmF0dHIsXG4tLVxubmV0L3dpcmVsZXNzL25sODAyMTEuYy00NDMtXG5uZXQvd2lyZWxlc3Mvbmw4MDIxMS5jOjQ0NDpcdGlmICghaWVlZTgwMjExX3Vocl9vcGVyX3NpemVfb2soZGF0YSwgbGVuKSlcbm5ldC93aXJlbGVzcy9ubDgwMjExLmMtNDQ1LVx0XHRyZXR1cm4gLUVJTlZBTDtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD43LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNSAyMzowNTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA3MjczCgkJCQkJCQlvdXRwdXQ6IDIxCgkJCQkJCQl0aG91Z2h0czogNzIKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgdGFrZSBvbiB0aG9zZSBmdW5jdGlvbnMgYW5kIHRoZSBhcmVhcyBJIG5lZWQgdG8gZm9jdXMgb246CgoqKk15IEltbWVkaWF0ZSBBc3Nlc3NtZW50KioKCkFscmlnaHQsIGxldCYjMzk7cyBnZXQgZG93biB0byBicmFzcyB0YWNrcy4gQmFzZWQgb24gdGhlIGdpdmVuIGZ1bmN0aW9ucywgbXkgYXR0ZW50aW9uIGlzIGltbWVkaWF0ZWx5IGRyYXduIHRvIGEgZmV3IGtleSBhcmVhcyB3aXRoaW4gdGhlIDgwMi4xMSBzdGFjay4gV2UgaGF2ZSB0aHJlZSBtYWluIGZ1bmN0aW9ucyBmbGFnZ2VkIGZvciBpbnZlc3RpZ2F0aW9uOiBgaWVlZTgwMjExX2NvbmZpZ19id2AsIGBpZWVlODAyMTFfcGFyc2VfZXh0ZW5zaW9uX2VsZW1lbnRgLCBhbmQgYHZhbGlkYXRlX3Vocl9vcGVyYXRpb25gLiBJbW1lZGlhdGVseSwgbXkgYnJhaW4gc3RhcnRzIHJ1bm5pbmcgdGhyb3VnaCB0aGUgcG90ZW50aWFsIGltcGxpY2F0aW9ucy4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgaG93IHRoZXNlIGZ1bmN0aW9ucyBpbnRlcmFjdCwgYW5kIHdoYXQgdGhlIG92ZXJhbGwgc3lzdGVtIGJlaGF2aW91ciBpcyB3aGVuIHRoZXkgYXJlIGNhbGxlZC4KCmBpZWVlODAyMTFfY29uZmlnX2J3YCBpcywgb2YgY291cnNlLCBjcml0aWNhbCBmb3IgZGVmaW5pbmcgYmFuZHdpZHRoIHNldHRpbmdzLiBJIG5lZWQgdG8gZXhhbWluZSBpdHMgaW1wbGVtZW50YXRpb24sIGVzcGVjaWFsbHkgaG93IGl0IGhhbmRsZXMgdmFyaW91cyBiYW5kd2lkdGggbW9kZXMsIGNoYW5uZWwgc2VsZWN0aW9uLCBhbmQgYW55IHBvdGVudGlhbCBpbnRlcmFjdGlvbnMgd2l0aCByZWdpb25hbCByZWd1bGF0b3J5IGNvbnN0cmFpbnRzLiBJJiMzOTtsbCBuZWVkIHRvIGxvb2sgZm9yIGFueSBwb3RlbnRpYWwgZm9yIGJ1ZmZlciBvdmVyZmxvd3Mgb3IgaW5jb3JyZWN0IHBhcmFtZXRlciBoYW5kbGluZy4KCmBpZWVlODAyMTFfcGFyc2VfZXh0ZW5zaW9uX2VsZW1lbnRgIGlzIGFub3RoZXIgdml0YWwgcGllY2Ugb2YgdGhlIHB1enpsZS4gVGhpcyBsaWtlbHkgaGFuZGxlcyB0aGUgcGFyc2luZyBvZiB2ZW5kb3Itc3BlY2lmaWMgb3Igc3RhbmRhcmQgZXh0ZW5zaW9ucyB3aXRoaW4gdGhlIDgwMi4xMSBmcmFtZS4gVGhpcyBpcyBhIGNvbW1vbiBhdHRhY2sgdmVjdG9yLCBhbmQgSSBuZWVkIHRvIGFzc2VzcyBob3cgcm9idXN0IHRoZSBwYXJzaW5nIGxvZ2ljIGlzLiBBcmUgdGhlcmUgYW55IGtub3duIHZ1bG5lcmFiaWxpdGllcyByZWxhdGVkIHRvIG1hbGZvcm1lZCBleHRlbnNpb24gZWxlbWVudHMsIHBhcnRpY3VsYXJseSB0aG9zZSBpbnZvbHZpbmcgc2l6ZSBsaW1pdHMgb3IgZGF0YSB2YWxpZGF0aW9uPyBUaGUgZGV0YWlscyBvZiB0aGUgcGFyc2luZyBhcmUgZ29pbmcgdG8gYmUga2V5LCBlc3BlY2lhbGx5IGhvdyBpdCBoYW5kbGVzIHR5cGUtbGVuZ3RoLXZhbHVlIChUTFYpIHN0cnVjdHVyZXMuCgpGaW5hbGx5LCBgdmFsaWRhdGVfdWhyX29wZXJhdGlvbmAgc3VnZ2VzdHMgd2UmIzM5O3JlIGxvb2tpbmcgYXQgdGhlIHN1cHBvcnQgZm9yIFVsdHJhIEhpZ2ggUmF0ZSAoVUhSKSBtb2Rlcy4gSSBuZWVkIHRvIHNlZSBob3cgdGhlIHN5c3RlbSBlbnN1cmVzIHRoYXQgdGhlc2UgbW9kZXMgYXJlIHByb3Blcmx5IHZhbGlkYXRlZCBhbmQgdGhhdCBhbGwgdGhlIG5lY2Vzc2FyeSBwcmVyZXF1aXNpdGVzIGFyZSBtZXQuIFRoaXMgaW5jbHVkZXMgdGhlIHBvdGVudGlhbCBmb3IgcG93ZXIgY29uc3VtcHRpb24gY29uc2lkZXJhdGlvbnMsIHNwZWN0cnVtIGNvbXBhdGliaWxpdHksIGFuZCBvZiBjb3Vyc2UsIGFueSBwb3NzaWJsZSBzZWN1cml0eSB2dWxuZXJhYmlsaXRpZXMgaW5oZXJlbnQgaW4gc3VwcG9ydGluZyBhIGhpZ2hlciBkYXRhIHJhdGUuCgpNeSBuZXh0IHN0ZXAgaXMgdG8gZGl2ZSBpbnRvIHRoZSBjb25maWd1cmF0aW9uIGZpbGVzLiBJJiMzOTttIGdvaW5nIHRvIHF1aWNrbHkgY2hlY2sgdGhlIHJlbGV2YW50IGNvbmZpZ3VyYXRpb24gZmlsZXMgd2l0aGluIGBuZXQvbWFjODAyMTFgIGFuZCBgbmV0L3dpcmVsZXNzYCB0byBnZXQgYSBoaWdoLWxldmVsIG92ZXJ2aWV3IG9mIHRoZSBvdmVyYWxsIHN5c3RlbSBzZXR1cCwgaW5jbHVkaW5nIGFueSBkZXBlbmRlbmNpZXMsIGRlZmF1bHQgdmFsdWVzLCBhbmQgZ2VuZXJhbCBhcmNoaXRlY3R1cmUuIFRoZW4sIEkgY2FuIHN0YXJ0IGxvb2tpbmcgYXQgdGhlIHNvdXJjZSBjb2RlIGZvciBlYWNoIG9mIHRob3NlIGZ1bmN0aW9ucywgZm9jdXNpbmcgb24gZGF0YSB0eXBlcywgZXJyb3IgaGFuZGxpbmcsIGlucHV0IHZhbGlkYXRpb24sIGFuZCBhbnkgaW50ZXJhY3Rpb25zIHdpdGggZXh0ZXJuYWwgbW9kdWxlcyBvciBoYXJkd2FyZSByZWdpc3RlcnMuIFRoaXMgaXMgd2hlcmUgdGhlIHJlYWwgd29yayBiZWdpbnMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTUgMjM6MDU8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIE1BQzgwMjExJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL3ZpcnR1YWwvS2NvbmZpZzoxOmNvbmZpZyBNQUM4MDIxMV9IV1NJTVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvdmlydHVhbC9LY29uZmlnLTItXHR0cmlzdGF0ZSBcJiMzNDtTaW11bGF0ZWQgcmFkaW8gdGVzdGluZyB0b29sIGZvciBtYWM4MDIxMVwmIzM0O1xuLS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnLTEtIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5XG5uZXQvbWFjODAyMTEvS2NvbmZpZzoyOmNvbmZpZyBNQUM4MDIxMVxubmV0L21hYzgwMjExL0tjb25maWctMy1cdHRyaXN0YXRlIFwmIzM0O0dlbmVyaWMgSUVFRSA4MDIuMTEgTmV0d29ya2luZyBTdGFjayAobWFjODAyMTEpXCYjMzQ7XG4tLVxubmV0L21hYzgwMjExL0tjb25maWc9MTk9aWYgTUFDODAyMTEgIT0gblxubmV0L21hYzgwMjExL0tjb25maWctMjAtXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoyMTpjb25maWcgTUFDODAyMTFfSEFTX1JDXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yMi1cdGJvb2xcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTIzLVxubmV0L21hYzgwMjExL0tjb25maWc6MjQ6Y29uZmlnIE1BQzgwMjExX1JDX01JTlNUUkVMXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yNS1cdGJvb2wgXCYjMzQ7TWluc3RyZWxcJiMzNDsgaWYgRVhQRVJUXG4tLVxubmV0L21hYzgwMjExL0tjb25maWc9MzE9Y2hvaWNlXG4tLVxubmV0L21hYzgwMjExL0tjb25maWctNDAtXG5uZXQvbWFjODAyMTEvS2NvbmZpZzo0MTpjb25maWcgTUFDODAyMTFfUkNfREVGQVVMVF9NSU5TVFJFTFxubmV0L21hYzgwMjExL0tjb25maWctNDItXHRib29sIFwmIzM0O01pbnN0cmVsXCYjMzQ7XG4tLVxubmV0L21hYzgwMjExL0tjb25maWc9NDg9ZW5kY2hvaWNlXG5uZXQvbWFjODAyMTEvS2NvbmZpZy00OS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnOjUwOmNvbmZpZyBNQUM4MDIxMV9SQ19ERUZBVUxUXG5uZXQvbWFjODAyMTEvS2NvbmZpZy01MS1cdHN0cmluZ1xuLS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnPTU3PWNvbW1lbnQgXCYjMzQ7U29tZSB3aXJlbGVzcyBkcml2ZXJzIHJlcXVpcmUgYSByYXRlIGNvbnRyb2wgYWxnb3JpdGhtXCYjMzQ7XG4tLVxubmV0L21hYzgwMjExL0tjb25maWctNTktXG5uZXQvbWFjODAyMTEvS2NvbmZpZzo2MDpjb25maWcgTUFDODAyMTFfS1VOSVRfVEVTVFxubmV0L21hYzgwMjExL0tjb25maWctNjEtXHR0cmlzdGF0ZSBcJiMzNDtLVW5pdCB0ZXN0cyBmb3IgbWFjODAyMTFcJiMzNDsgaWYgIUtVTklUX0FMTF9URVNUU1xuLS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnLTY5LVxubmV0L21hYzgwMjExL0tjb25maWc6NzA6Y29uZmlnIE1BQzgwMjExX01FU0hcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTcxLVx0Ym9vbCBcJiMzNDtFbmFibGUgbWFjODAyMTEgbWVzaCBuZXR3b3JraW5nIHN1cHBvcnRcJiMzNDtcbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZy03OC1cbm5ldC9tYWM4MDIxMS9LY29uZmlnOjc5OmNvbmZpZyBNQUM4MDIxMV9MRURTXG5uZXQvbWFjODAyMTEvS2NvbmZpZy04MC1cdGJvb2wgXCYjMzQ7RW5hYmxlIExFRCB0cmlnZ2Vyc1wmIzM0O1xuLS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnLTg3LVxubmV0L21hYzgwMjExL0tjb25maWc6ODg6Y29uZmlnIE1BQzgwMjExX0RFQlVHRlNcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTg5LVx0Ym9vbCBcJiMzNDtFeHBvcnQgbWFjODAyMTEgaW50ZXJuYWxzIGluIERlYnVnRlNcJiMzNDtcbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZy05Ni1cbm5ldC9tYWM4MDIxMS9LY29uZmlnOjk3OmNvbmZpZyBNQUM4MDIxMV9NRVNTQUdFX1RSQUNJTkdcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTk4LVx0Ym9vbCBcJiMzNDtUcmFjZSBhbGwgbWFjODAyMTEgZGVidWcgbWVzc2FnZXNcJiMzNDtcbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xMDktXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoxMTA6bWVudWNvbmZpZyBNQUM4MDIxMV9ERUJVR19NRU5VXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xMTEtXHRib29sIFwmIzM0O1NlbGVjdCBtYWM4MDIxMSBkZWJ1Z2dpbmcgZmVhdHVyZXNcJiMzNDtcbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xMTUtXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoxMTY6Y29uZmlnIE1BQzgwMjExX05PSU5MSU5FXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xMTctXHRib29sIFwmIzM0O0RvIG5vdCBpbmxpbmUgVFgvUlggaGFuZGxlcnNcJiMzNDtcbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xMzEtXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoxMzI6Y29uZmlnIE1BQzgwMjExX1ZFUkJPU0VfREVCVUdcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTEzMy1cdGJvb2wgXCYjMzQ7VmVyYm9zZSBkZWJ1Z2dpbmcgb3V0cHV0XCYjMzQ7XG4tLVxubmV0L21hYzgwMjExL0tjb25maWctMTQyLVxubmV0L21hYzgwMjExL0tjb25maWc6MTQzOmNvbmZpZyBNQUM4MDIxMV9NTE1FX0RFQlVHXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xNDQtXHRib29sIFwmIzM0O1ZlcmJvc2UgbWFuYWdlZCBNTE1FIG91dHB1dFwmIzM0O1xuLS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnLTE1My1cbm5ldC9tYWM4MDIxMS9LY29uZmlnOjE1NDpjb25maWcgTUFDODAyMTFfU1RBX0RFQlVHXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xNTUtXHRib29sIFwmIzM0O1ZlcmJvc2Ugc3RhdGlvbiBkZWJ1Z2dpbmdcJiMzNDtcbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xNjItXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoxNjM6Y29uZmlnIE1BQzgwMjExX0hUX0RFQlVHXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xNjQtXHRib29sIFwmIzM0O1ZlcmJvc2UgSFQgZGVidWdnaW5nXCYjMzQ7XG4tLVxubmV0L21hYzgwMjExL0tjb25maWctMTc0LVxubmV0L21hYzgwMjExL0tjb25maWc6MTc1OmNvbmZpZyBNQUM4MDIxMV9PQ0JfREVCVUdcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTE3Ni1cdGJvb2wgXCYjMzQ7VmVyYm9zZSBPQ0IgZGVidWdnaW5nXCYjMzQ7XG4tLVxubmV0L21hYzgwMjExL0tjb25maWctMTg1LVxubmV0L21hYzgwMjExL0tjb25maWc6MTg2OmNvbmZpZyBNQUM4MDIxMV9JQlNTX0RFQlVHXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xODctXHRib29sIFwmIzM0O1ZlcmJvc2UgSUJTUyBkZWJ1Z2dpbmdcJiMzNDtcbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xOTYtXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoxOTc6Y29uZmlnIE1BQzgwMjExX1BTX0RFQlVHXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xOTgtXHRib29sIFwmIzM0O1ZlcmJvc2UgcG93ZXJzYXZlIG1vZGUgZGVidWdnaW5nXCYjMzQ7XG4tLVxubmV0L21hYzgwMjExL0tjb25maWctMjA4LVxubmV0L21hYzgwMjExL0tjb25maWc6MjA5OmNvbmZpZyBNQUM4MDIxMV9NUExfREVCVUdcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTIxMC1cdGJvb2wgXCYjMzQ7VmVyYm9zZSBtZXNoIHBlZXIgbGluayBkZWJ1Z2dpbmdcJiMzNDtcbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yMjEtXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoyMjI6Y29uZmlnIE1BQzgwMjExX01QQVRIX0RFQlVHXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yMjMtXHRib29sIFwmIzM0O1ZlcmJvc2UgbWVzaCBwYXRoIGRlYnVnZ2luZ1wmIzM0O1xuLS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnLTIzNC1cbm5ldC9tYWM4MDIxMS9LY29uZmlnOjIzNTpjb25maWcgTUFDODAyMTFfTUhXTVBfREVCVUdcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTIzNi1cdGJvb2wgXCYjMzQ7VmVyYm9zZSBtZXNoIEhXTVAgcm91dGluZyBkZWJ1Z2dpbmdcJiMzNDtcbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yNDctXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoyNDg6Y29uZmlnIE1BQzgwMjExX01FU0hfU1lOQ19ERUJVR1xubmV0L21hYzgwMjExL0tjb25maWctMjQ5LVx0Ym9vbCBcJiMzNDtWZXJib3NlIG1lc2ggc3luY2hyb25pemF0aW9uIGRlYnVnZ2luZ1wmIzM0O1xuLS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnLTI1OC1cbm5ldC9tYWM4MDIxMS9LY29uZmlnOjI1OTpjb25maWcgTUFDODAyMTFfTUVTSF9DU0FfREVCVUdcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTI2MC1cdGJvb2wgXCYjMzQ7VmVyYm9zZSBtZXNoIGNoYW5uZWwgc3dpdGNoIGRlYnVnZ2luZ1wmIzM0O1xuLS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnLTI2OS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnOjI3MDpjb25maWcgTUFDODAyMTFfTUVTSF9QU19ERUJVR1xubmV0L21hYzgwMjExL0tjb25maWctMjcxLVx0Ym9vbCBcJiMzNDtWZXJib3NlIG1lc2ggcG93ZXJzYXZlIGRlYnVnZ2luZ1wmIzM0O1xuLS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnLTI4MC1cbm5ldC9tYWM4MDIxMS9LY29uZmlnOjI4MTpjb25maWcgTUFDODAyMTFfVERMU19ERUJVR1xubmV0L21hYzgwMjExL0tjb25maWctMjgyLVx0Ym9vbCBcJiMzNDtWZXJib3NlIFRETFMgZGVidWdnaW5nXCYjMzQ7XG4tLVxubmV0L21hYzgwMjExL0tjb25maWctMjkyLVxubmV0L21hYzgwMjExL0tjb25maWc6MjkzOmNvbmZpZyBNQUM4MDIxMV9ERUJVR19DT1VOVEVSU1xubmV0L21hYzgwMjExL0tjb25maWctMjk0LVx0Ym9vbCBcJiMzNDtFeHRyYSBzdGF0aXN0aWNzIGZvciBUWC9SWCBkZWJ1Z2dpbmdcJiMzNDtcbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0zMDctXG5uZXQvbWFjODAyMTEvS2NvbmZpZzozMDg6Y29uZmlnIE1BQzgwMjExX1NUQV9IQVNIX01BWF9TSVpFXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0zMDktXHRpbnQgXCYjMzQ7U3RhdGlvbiBoYXNoIHRhYmxlIG1heGltdW0gc2l6ZVwmIzM0OyBpZiBNQUM4MDIxMV9ERUJVR19NRU5VXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTUgMjM6MDU8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTAxMjAKCQkJCQkJCW91dHB1dDogMjIKCQkJCQkJCXRob3VnaHRzOiA3MgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSB0YWtlIG9uIHRob3NlIGNvbmZpZyByZXF1aXJlbWVudHMsIHRhaWxvcmVkIGZvciBhIGZlbGxvdyBleHBlcnQ6CgoqKkNvbmZpZ3VyYXRpb24gRGVlcCBEaXZlIGZvciBPcHRpbWFsIFRlc3RpbmcqKgoKQWxyaWdodCwgc28gSSBzZWUgd2UmIzM5O3JlIGRlYWxpbmcgd2l0aCBhIGNvdXBsZSBvZiBrZXkgY29uZmlndXJhdGlvbiBlbGVtZW50cyBoZXJlOiBgTUFDODAyMTFgIGFuZCBgTUFDODAyMTFfSFdTSU1gLiBJJiMzOTttIGltbWVkaWF0ZWx5IHRoaW5raW5nLCAmIzM0O0NsYXNzaWMsIGBNQUM4MDIxMWAgaXMgdGhlIGZvdW5kYXRpb24sIG5hdHVyYWxseS4mIzM0OyBCdXQgdGhlIGluY2x1c2lvbiBvZiBgTUFDODAyMTFfSFdTSU1gIHJlYWxseSBjYXRjaGVzIG15IGV5ZSDigJMgdGhhdCBzaWduYWxzIHdlJiMzOTtyZSBnZWFyaW5nIHVwIGZvciBzb21lIHNlcmlvdXMgaGFyZHdhcmUgc2ltdWxhdGlvbiBhbmQgdGVzdGluZywgd2hpY2ggaXMgZXhjZWxsZW50LiBJIGFsd2F5cyBhcHByZWNpYXRlIGEgcm9idXN0IHRlc3Rpbmcgc2V0dXAuIEl0IHN0cmVhbWxpbmVzIHRoZSBkZWJ1ZyBjeWNsZSBkcmFtYXRpY2FsbHkuCgpUaGVuLCB0aGVyZSYjMzk7cyBgQ0ZHODAyMTFgIGxpc3RlZCBhcyBhIGRlcGVuZGVuY3kuIEl0JiMzOTtzIGFsbW9zdCBheGlvbWF0aWMsIGJ1dCBpdCYjMzk7cyBnb29kIHRvIGNhbGwgaXQgb3V0LiBUaGUgY29udHJvbCBpbnRlcmZhY2UgaXMgZXNzZW50aWFsLgoKSSYjMzk7bSBtZW50YWxseSBydW5uaW5nIHRocm91Z2ggbXkgbWVudGFsIGNoZWNrbGlzdDogSSYjMzk7bGwgd2FudCB0byBxdWlja2x5IGNvbmZpcm0gdGhlIHByb3BlciBlbmFibGVtZW50IGFuZCBpbnRlcmRlcGVuZGVuY2llcyBvZiBgQ0ZHODAyMTFgIGFuZCBgTUFDODAyMTFfSFdTSU1gLCBlbnN1cmluZyB0aGVyZSBhcmUgbm8gdW5mb3Jlc2VlbiBjb25mbGljdHMgb3IgcG90ZW50aWFsIGdvdGNoYXMgdGhhdCBtaWdodCB0aHJvdyBhIHdyZW5jaCBpbnRvIHRoZSBzaW11bGF0aW9uIHByb2Nlc3MuIExldCYjMzk7cyBtYWtlIHN1cmUgdGhlc2UgY29uZmlncyBhcmUgc2V0IGV4YWN0bHkgYXMgd2UgZXhwZWN0LiBUaGF0JiMzOTtzIHRoZSBmaXJzdCBvcmRlciBvZiBidXNpbmVzcywganVzdCB0byBiZSBzdXJlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNSAyMzowNTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtjb25maWcgQ0ZHODAyMTEmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7bmV0L3dpcmVsZXNzL0tjb25maWc9MTQ9Y29uZmlnIFdFWFRfUFJJVlxuLS1cbm5ldC93aXJlbGVzcy9LY29uZmlnLTE2LVxubmV0L3dpcmVsZXNzL0tjb25maWc6MTc6Y29uZmlnIENGRzgwMjExXG5uZXQvd2lyZWxlc3MvS2NvbmZpZy0xOC1cdHRyaXN0YXRlIFwmIzM0O2NmZzgwMjExIC0gd2lyZWxlc3MgY29uZmlndXJhdGlvbiBBUElcJiMzNDtcbi0tXG5uZXQvd2lyZWxlc3MvS2NvbmZpZz0zOD1jb25maWcgTkw4MDIxMV9URVNUTU9ERVxuLS1cbm5ldC93aXJlbGVzcy9LY29uZmlnLTUxLVxubmV0L3dpcmVsZXNzL0tjb25maWc6NTI6Y29uZmlnIENGRzgwMjExX0RFVkVMT1BFUl9XQVJOSU5HU1xubmV0L3dpcmVsZXNzL0tjb25maWctNTMtXHRib29sIFwmIzM0O2VuYWJsZSBkZXZlbG9wZXIgd2FybmluZ3NcJiMzNDtcbi0tXG5uZXQvd2lyZWxlc3MvS2NvbmZpZy02Ny1cbm5ldC93aXJlbGVzcy9LY29uZmlnOjY4OmNvbmZpZyBDRkc4MDIxMV9DRVJUSUZJQ0FUSU9OX09OVVNcbm5ldC93aXJlbGVzcy9LY29uZmlnLTY5LVx0Ym9vbCBcJiMzNDtjZmc4MDIxMSBjZXJ0aWZpY2F0aW9uIG9udXNcJiMzNDtcbi0tXG5uZXQvd2lyZWxlc3MvS2NvbmZpZy04OC1cbm5ldC93aXJlbGVzcy9LY29uZmlnOjg5OmNvbmZpZyBDRkc4MDIxMV9SRVFVSVJFX1NJR05FRF9SRUdEQlxubmV0L3dpcmVsZXNzL0tjb25maWctOTAtXHRib29sIFwmIzM0O3JlcXVpcmUgcmVnZGIgc2lnbmF0dXJlXCYjMzQ7IGlmIENGRzgwMjExX0NFUlRJRklDQVRJT05fT05VU1xuLS1cbm5ldC93aXJlbGVzcy9LY29uZmlnLTk4LVxubmV0L3dpcmVsZXNzL0tjb25maWc6OTk6Y29uZmlnIENGRzgwMjExX1VTRV9LRVJORUxfUkVHREJfS0VZU1xubmV0L3dpcmVsZXNzL0tjb25maWctMTAwLVx0Ym9vbCBcJiMzNDthbGxvdyByZWdkYiBrZXlzIHNoaXBwZWQgd2l0aCB0aGUga2VybmVsXCYjMzQ7IGlmIENGRzgwMjExX0NFUlRJRklDQVRJT05fT05VU1xuLS1cbm5ldC93aXJlbGVzcy9LY29uZmlnLTExMC1cbm5ldC93aXJlbGVzcy9LY29uZmlnOjExMTpjb25maWcgQ0ZHODAyMTFfRVhUUkFfUkVHREJfS0VZRElSXG5uZXQvd2lyZWxlc3MvS2NvbmZpZy0xMTItXHRzdHJpbmcgXCYjMzQ7YWRkaXRpb25hbCByZWdkYiBrZXkgZGlyZWN0b3J5XCYjMzQ7IGlmIENGRzgwMjExX0NFUlRJRklDQVRJT05fT05VU1xuLS1cbm5ldC93aXJlbGVzcy9LY29uZmlnLTEyMS1cbm5ldC93aXJlbGVzcy9LY29uZmlnOjEyMjpjb25maWcgQ0ZHODAyMTFfUkVHX0NFTExVTEFSX0hJTlRTXG5uZXQvd2lyZWxlc3MvS2NvbmZpZy0xMjMtXHRib29sIFwmIzM0O2NmZzgwMjExIHJlZ3VsYXRvcnkgc3VwcG9ydCBmb3IgY2VsbHVsYXIgYmFzZSBzdGF0aW9uIGhpbnRzXCYjMzQ7XG4tLVxubmV0L3dpcmVsZXNzL0tjb25maWctMTM0LVxubmV0L3dpcmVsZXNzL0tjb25maWc6MTM1OmNvbmZpZyBDRkc4MDIxMV9SRUdfUkVMQVhfTk9fSVJcbm5ldC93aXJlbGVzcy9LY29uZmlnLTEzNi1cdGJvb2wgXCYjMzQ7Y2ZnODAyMTEgc3VwcG9ydCBmb3IgTk9fSVIgcmVsYXhhdGlvblwmIzM0O1xuLS1cbm5ldC93aXJlbGVzcy9LY29uZmlnLTE1OC1cbm5ldC93aXJlbGVzcy9LY29uZmlnOjE1OTpjb25maWcgQ0ZHODAyMTFfREVGQVVMVF9QU1xubmV0L3dpcmVsZXNzL0tjb25maWctMTYwLVx0Ym9vbCBcJiMzNDtlbmFibGUgcG93ZXJzYXZlIGJ5IGRlZmF1bHRcJiMzNDtcbi0tXG5uZXQvd2lyZWxlc3MvS2NvbmZpZy0xNjgtXG5uZXQvd2lyZWxlc3MvS2NvbmZpZzoxNjk6Y29uZmlnIENGRzgwMjExX0RFQlVHRlNcbm5ldC93aXJlbGVzcy9LY29uZmlnLTE3MC1cdGJvb2wgXCYjMzQ7Y2ZnODAyMTEgRGVidWdGUyBlbnRyaWVzXCYjMzQ7XG4tLVxubmV0L3dpcmVsZXNzL0tjb25maWctMTc2LVxubmV0L3dpcmVsZXNzL0tjb25maWc6MTc3OmNvbmZpZyBDRkc4MDIxMV9DUkRBX1NVUFBPUlRcbm5ldC93aXJlbGVzcy9LY29uZmlnLTE3OC1cdGJvb2wgXCYjMzQ7c3VwcG9ydCBDUkRBXCYjMzQ7IGlmIEVYUEVSVFxuLS1cbm5ldC93aXJlbGVzcy9LY29uZmlnLTE4Ni1cbm5ldC93aXJlbGVzcy9LY29uZmlnOjE4Nzpjb25maWcgQ0ZHODAyMTFfV0VYVFxubmV0L3dpcmVsZXNzL0tjb25maWctMTg4LVx0Ym9vbCBcJiMzNDtjZmc4MDIxMSB3aXJlbGVzcyBleHRlbnNpb25zIGNvbXBhdGliaWxpdHlcJiMzNDtcbi0tXG5uZXQvd2lyZWxlc3MvS2NvbmZpZy0xOTMtXG5uZXQvd2lyZWxlc3MvS2NvbmZpZzoxOTQ6Y29uZmlnIENGRzgwMjExX0tVTklUX1RFU1Rcbm5ldC93aXJlbGVzcy9LY29uZmlnLTE5NS1cdHRyaXN0YXRlIFwmIzM0O0tVbml0IHRlc3RzIGZvciBjZmc4MDIxMVwmIzM0OyBpZiAhS1VOSVRfQUxMX1RFU1RTXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTEvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE1IDIzOjA1PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDExNDE0CgkJCQkJCQlvdXRwdXQ6IDIxOQoJCQkJCQkJdGhvdWdodHM6IDU0OQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBBbmFseXNpcyBvZiB0aGUgVGFyZ2V0IENvZGUqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggYW5kIGltbWVkaWF0ZWx5IHRoZSB0d28gY29yZSBjb25maWdzIGp1bXAgb3V0OiBgQ0ZHODAyMTFgIGFuZCBgTUFDODAyMTFgLiBOb3csIGxldCYjMzk7cyBicmVhayBkb3duIHRoZSBmdW5jdGlvbnMgaW52b2x2ZWQgYW5kIHRoZWlyIGNvbnRleHQuIGB2YWxpZGF0ZV91aHJfb3BlcmF0aW9uYCByZXNpZGVzIGluIGBuZXQvd2lyZWxlc3Mvbmw4MDIxMS5jYCwgd2hpY2gsIGFzIHdlIGtub3csIGlzIHBhcnQgb2YgYENGRzgwMjExYC4gTWVhbndoaWxlLCBgaWVlZTgwMjExX3BhcnNlX2V4dGVuc2lvbl9lbGVtZW50YCBpcyBpbiBgbmV0L21hYzgwMjExL3BhcnNlLmNgIGFuZCBgaWVlZTgwMjExX2NvbmZpZ19id2AgaXMgaW4gYG5ldC9tYWM4MDIxMS9tbG1lLmNgLCBib3RoIGZpcm1seSB3aXRoaW4gYE1BQzgwMjExYC4KClRoZSBpbml0aWFsIGZ1bmN0aW9ucyBJJiMzOTttIGZvY3VzaW5nIG9uLCB0aGVuLCBhcmUgYHZhbGlkYXRlX3Vocl9vcGVyYXRpb25gLCBgaWVlZTgwMjExX3BhcnNlX2V4dGVuc2lvbl9lbGVtZW50YCwgYW5kIGBpZWVlODAyMTFfY29uZmlnX2J3YC4gSSBzaG91bGQgZG91YmxlLWNoZWNrIHRvIG1ha2Ugc3VyZSB0aGVyZSBhcmVuJiMzOTt0IGFueSBvdGhlciBmdW5jdGlvbnMgaW52b2x2ZWQuIEFoLCByaWdodCwgdGhlcmUmIzM5O3MgYGllZWU4MDIxMV91aHJfb3Blcl9zaXplX29rYCwgd2hpY2ggaXMgYW4gaW5saW5lIGZ1bmN0aW9uLiBUaGlzIHBhdGNoIG1vZGlmaWVzIHRoYXQsIGFuZCBpdHMgY2FsbGVycy4gVGhlIGNhbGxlcnMgb2YgYGllZWU4MDIxMV91aHJfb3Blcl9zaXplX29rYCBhcmUgYGllZWU4MDIxMV9jb25maWdfYndgLCBgaWVlZTgwMjExX3BhcnNlX2V4dGVuc2lvbl9lbGVtZW50YCwgYW5kIGB2YWxpZGF0ZV91aHJfb3BlcmF0aW9uYC4KCkkgcmVtZW1iZXIgSSBncmVwcGVkIHRoZSBjb2RlYmFzZSBlYXJsaWVyLCBzbyBJIHNob3VsZCBiZSBjb25maWRlbnQgdGhhdCB0aG9zZSBhcmUgaW5kZWVkIGFsbCB0aGUgY2FsbGVycy4KCk5leHQsIEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSByZWFjaGFiaWxpdHkgb2YgdGhlc2UgZnVuY3Rpb25zLiBgdmFsaWRhdGVfdWhyX29wZXJhdGlvbmAgaXMgYWNjZXNzaWJsZSBmcm9tIHVzZXIgc3BhY2UsIGJlY2F1c2UgaXQmIzM5O3MgYSBuZXRsaW5rIHBvbGljeSB2YWxpZGF0aW9uIGZ1bmN0aW9uIGZvciBgTkw4MDIxMV9BVFRSX1VIUl9PUEVSQVRJT05gLiBUaGF0JiMzOTtzIGEgZ29vZCB0YXJnZXQuIGBpZWVlODAyMTFfcGFyc2VfZXh0ZW5zaW9uX2VsZW1lbnRgIGlzIGEgcGFyc2VyIGZvciBtYW5hZ2VtZW50IGZyYW1lcyDigJMgYmVhY29ucywgcHJvYmUgcmVzcG9uc2VzLCB0aGF0IHNvcnQgb2YgdGhpbmcuIGBpZWVlODAyMTFfY29uZmlnX2J3YCwgb24gdGhlIG90aGVyIGhhbmQsIGNvbWVzIGludG8gcGxheSBkdXJpbmcgYXNzb2NpYXRpb24gb3IgY2hhbm5lbCBzd2l0Y2hlcywgc28gdGhhdCYjMzk7cyBpbnRlcmVzdGluZyB0b28uCgpHaXZlbiBhbGwgdGhpcywgdGhpcyBpcyBkZWZpbml0ZWx5IHByaW1lIGZ1enppbmcgbWF0ZXJpYWwuIEl0IGhhcyB1c2VyLXNwYWNlIHJlYWNoYWJpbGl0eSBhbmQgdmFyaW91cyBwb3RlbnRpYWxseSBpbnRlcmVzdGluZyBpbnB1dHMuIFRoZSBrZXkgY29uZmlncyBhcmUgY2xlYXJseSBgQ0ZHODAyMTFgLCBgTUFDODAyMTFgLCBhbmQsIGZvciBnb29kIG1lYXN1cmUgYW5kIHRob3JvdWdoIHRlc3RpbmcsIGBNQUM4MDIxMV9IV1NJTWAgdG8gYWxsb3cgZm9yIHNvZnR3YXJlLWJhc2VkIGhhcmR3YXJlIHNpbXVsYXRpb24uIEkmIzM5O2xsIG5lZWQgdG8gZm9jdXMgb24gdGhlc2Ugc3ltYm9sczogYHZhbGlkYXRlX3Vocl9vcGVyYXRpb25gLCBgaWVlZTgwMjExX3BhcnNlX2V4dGVuc2lvbl9lbGVtZW50YCwgYW5kIGBpZWVlODAyMTFfY29uZmlnX2J3YC4gTm93LCBsZXQgbWUgZ2V0IHRoZXNlIHJlc3VsdHMgcmVhZHkuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTIvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE1IDIzOjA1PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+c2V0LXJlc3VsdHM8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtDRkc4MDIxMSYjMzQ7LAogICAgJiMzNDtNQUM4MDIxMSYjMzQ7LAogICAgJiMzNDtNQUM4MDIxMV9IV1NJTSYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O3ZhbGlkYXRlX3Vocl9vcGVyYXRpb24mIzM0OywKICAgICYjMzQ7aWVlZTgwMjExX3BhcnNlX2V4dGVuc2lvbl9lbGVtZW50JiMzNDssCiAgICAmIzM0O2llZWU4MDIxMV9jb25maWdfYncmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIHBhcnNpbmcgYW5kIHZhbGlkYXRpb24gbG9naWMgZm9yIElFRUUgODAyLjExIFVIUiAoVWx0cmEgSGlnaCBSZWxpYWJpbGl0eSkgb3BlcmF0aW9uIGVsZW1lbnRzLiBJdCBjaGFuZ2VzIHRoZSBzaXplIHZhbGlkYXRpb24gbG9naWMgYnkgY2hlY2tpbmcgZm9yIHByZXNlbmNlIGZsYWdzIGluc3RlYWQgb2YgZW5hYmxlIGZsYWdzLiBUaGUgbW9kaWZpZWQgaW5saW5lIGZ1bmN0aW9uIGlzIGNhbGxlZCBmcm9tIG5ldGxpbmsgYXR0cmlidXRlIHZhbGlkYXRpb24gKGB2YWxpZGF0ZV91aHJfb3BlcmF0aW9uYCksIG1hbmFnZW1lbnQgZnJhbWUgcGFyc2luZyAoYGllZWU4MDIxMV9wYXJzZV9leHRlbnNpb25fZWxlbWVudGApLCBhbmQgYmFuZHdpZHRoIGNvbmZpZ3VyYXRpb24gKGBpZWVlODAyMTFfY29uZmlnX2J3YCkuIFRoZXNlIGFyZSByZWFjaGFibGUgZnJvbSB1c2VyIHNwYWNlIHZpYSBuZXRsaW5rIGFuZCBmcm9tIGluamVjdGVkIG1hbmFnZW1lbnQgZnJhbWVzLCBtYWtpbmcgaXQgaGlnaGx5IHJlbGV2YW50IGZvciBmdXp6aW5nLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtDRkc4MDIxMSYjMzQ7LAogICAgJiMzNDtNQUM4MDIxMSYjMzQ7LAogICAgJiMzNDtNQUM4MDIxMV9IV1NJTSYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O3ZhbGlkYXRlX3Vocl9vcGVyYXRpb24mIzM0OywKICAgICYjMzQ7aWVlZTgwMjExX3BhcnNlX2V4dGVuc2lvbl9lbGVtZW50JiMzNDssCiAgICAmIzM0O2llZWU4MDIxMV9jb25maWdfYncmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIHBhcnNpbmcgYW5kIHZhbGlkYXRpb24gbG9naWMgZm9yIElFRUUgODAyLjExIFVIUiAoVWx0cmEgSGlnaCBSZWxpYWJpbGl0eSkgb3BlcmF0aW9uIGVsZW1lbnRzLiBJdCBjaGFuZ2VzIHRoZSBzaXplIHZhbGlkYXRpb24gbG9naWMgYnkgY2hlY2tpbmcgZm9yIHByZXNlbmNlIGZsYWdzIGluc3RlYWQgb2YgZW5hYmxlIGZsYWdzLiBUaGUgbW9kaWZpZWQgaW5saW5lIGZ1bmN0aW9uIGlzIGNhbGxlZCBmcm9tIG5ldGxpbmsgYXR0cmlidXRlIHZhbGlkYXRpb24gKGB2YWxpZGF0ZV91aHJfb3BlcmF0aW9uYCksIG1hbmFnZW1lbnQgZnJhbWUgcGFyc2luZyAoYGllZWU4MDIxMV9wYXJzZV9leHRlbnNpb25fZWxlbWVudGApLCBhbmQgYmFuZHdpZHRoIGNvbmZpZ3VyYXRpb24gKGBpZWVlODAyMTFfY29uZmlnX2J3YCkuIFRoZXNlIGFyZSByZWFjaGFibGUgZnJvbSB1c2VyIHNwYWNlIHZpYSBuZXRsaW5rIGFuZCBmcm9tIGluamVjdGVkIG1hbmFnZW1lbnQgZnJhbWVzLCBtYWtpbmcgaXQgaGlnaGx5IHJlbGV2YW50IGZvciBmdXp6aW5nLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTwvdGJvZHk+Cgk8L3RhYmxlPgoKCTxkaXYgaWQ9ImxsbV9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+TExNIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgVG9rZW5zPC90aD4KCQkJCQk8dGg+QXZnIFRva2VuczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJsbG1fc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJ0b29sX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5Ub29sIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9InRvb2xfc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJkdXJhdGlvbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+Cgk8ZGl2IGlkPSJ0b2tlbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+CgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9qc2FwaSI+PC9zY3JpcHQ+Cgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CgkJZ29vZ2xlLmxvYWQoInZpc3VhbGl6YXRpb24iLCAiMSIsIHtwYWNrYWdlczpbImNvcmVjaGFydCJdfSk7CgkJZ29vZ2xlLnNldE9uTG9hZENhbGxiYWNrKGRyYXdDaGFydHMpOwoKCQlmdW5jdGlvbiBkcmF3Q2hhcnRzKCkgewoJCQljb25zdCByYXdEYXRhID0gW3siU3RhcnRlZCI6IjIwMjYtMDctMTVUMjM6MDU6MTYuMzI3MDU1NzRaIiwiU2VxIjowLCJOZXN0aW5nIjowLCJUeXBlIjoiZmxvdyIsIk5hbWUiOiJwYXRjaC10cmlhZ2UiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjozODM2MzI2NjQxMCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJDRkc4MDIxMVwiLFxuICAgIFwiTUFDODAyMTFcIixcbiAgICBcIk1BQzgwMjExX0hXU0lNXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwidmFsaWRhdGVfdWhyX29wZXJhdGlvblwiLFxuICAgIFwiaWVlZTgwMjExX3BhcnNlX2V4dGVuc2lvbl9lbGVtZW50XCIsXG4gICAgXCJpZWVlODAyMTFfY29uZmlnX2J3XCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIHBhcnNpbmcgYW5kIHZhbGlkYXRpb24gbG9naWMgZm9yIElFRUUgODAyLjExIFVIUiAoVWx0cmEgSGlnaCBSZWxpYWJpbGl0eSkgb3BlcmF0aW9uIGVsZW1lbnRzLiBJdCBjaGFuZ2VzIHRoZSBzaXplIHZhbGlkYXRpb24gbG9naWMgYnkgY2hlY2tpbmcgZm9yIHByZXNlbmNlIGZsYWdzIGluc3RlYWQgb2YgZW5hYmxlIGZsYWdzLiBUaGUgbW9kaWZpZWQgaW5saW5lIGZ1bmN0aW9uIGlzIGNhbGxlZCBmcm9tIG5ldGxpbmsgYXR0cmlidXRlIHZhbGlkYXRpb24gKGB2YWxpZGF0ZV91aHJfb3BlcmF0aW9uYCksIG1hbmFnZW1lbnQgZnJhbWUgcGFyc2luZyAoYGllZWU4MDIxMV9wYXJzZV9leHRlbnNpb25fZWxlbWVudGApLCBhbmQgYmFuZHdpZHRoIGNvbmZpZ3VyYXRpb24gKGBpZWVlODAyMTFfY29uZmlnX2J3YCkuIFRoZXNlIGFyZSByZWFjaGFibGUgZnJvbSB1c2VyIHNwYWNlIHZpYSBuZXRsaW5rIGFuZCBmcm9tIGluamVjdGVkIG1hbmFnZW1lbnQgZnJhbWVzLCBtYWtpbmcgaXQgaGlnaGx5IHJlbGV2YW50IGZvciBmdXp6aW5nLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xNVQyMzowNToxNi4zMjcwNjIyOVoiLCJTZXEiOjEsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoicmVhZC1wYXRjaC1kaWZmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NzQxMzE1OTE1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJQYXRjaERpZmZcIjogXCJjb21taXQgNzJjMTAyODZmMzMxZTY3ZGM1YjZiNzJkMjRjMWIxMGUyZDM3M2M2Y1xcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXFx1MDAzZVxcbkRhdGU6ICAgV2VkIEp1bCAxNSAyMzowNToxNCAyMDI2ICswMDAwXFxuXFxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xcblxcbmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L2llZWU4MDIxMS11aHIuaCBiL2luY2x1ZGUvbGludXgvaWVlZTgwMjExLXVoci5oXFxuaW5kZXggNTk3YzllNTU5MjYxYjkuLjY2NWQ0YjNhNWI0MTg2IDEwMDY0NFxcbi0tLSBhL2luY2x1ZGUvbGludXgvaWVlZTgwMjExLXVoci5oXFxuKysrIGIvaW5jbHVkZS9saW51eC9pZWVlODAyMTEtdWhyLmhcXG5AQCAtMTcsNiArMTcsMTEgQEBcXG4gI2RlZmluZSBJRUVFODAyMTFfVUhSX09QRVJfUEFSQU1TX1BFRENBX0VOQVxcdFxcdDB4MDAwNFxcbiAjZGVmaW5lIElFRUU4MDIxMV9VSFJfT1BFUl9QQVJBTVNfREJFX0VOQVxcdFxcdDB4MDAwOFxcbiAjZGVmaW5lIElFRUU4MDIxMV9VSFJfT1BFUl9QQVJBTVNfREJFX0JXXFx0XFx0MHgwMDcwXFxuKyNkZWZpbmUgSUVFRTgwMjExX1VIUl9PUEVSX1BBUkFNU19EVU9fUFJFU1xcdFxcdDB4MDA4MFxcbisjZGVmaW5lIElFRUU4MDIxMV9VSFJfT1BFUl9QQVJBTVNfRFBTX1BSRVNcXHRcXHQweDAxMDBcXG4rI2RlZmluZSBJRUVFODAyMTFfVUhSX09QRVJfUEFSQU1TX05QQ0FfUFJFU1xcdFxcdDB4MDIwMFxcbisjZGVmaW5lIElFRUU4MDIxMV9VSFJfT1BFUl9QQVJBTVNfUEVEQ0FfUFJFU1xcdFxcdDB4MDQwMFxcbisjZGVmaW5lIElFRUU4MDIxMV9VSFJfT1BFUl9QQVJBTVNfREJFX1BSRVNcXHRcXHQweDA4MDBcXG4gXFxuIHN0cnVjdCBpZWVlODAyMTFfdWhyX29wZXJhdGlvbiB7XFxuIFxcdF9fbGUxNiBwYXJhbXM7XFxuQEAgLTI2NSw4ICsyNzAsNyBAQCBzdHJ1Y3QgaWVlZTgwMjExX3Vocl9wX2VkY2FfaW5mbyB7XFxuIFxcdF9fbGUxNiBwYXJhbXM7XFxuIH0gX19wYWNrZWQ7XFxuIFxcbi1zdGF0aWMgaW5saW5lIGJvb2wgaWVlZTgwMjExX3Vocl9vcGVyX3NpemVfb2soY29uc3QgdTggKmRhdGEsIHU4IGxlbixcXG4tXFx0XFx0XFx0XFx0XFx0ICAgICAgYm9vbCBiZWFjb24pXFxuK3N0YXRpYyBpbmxpbmUgYm9vbCBpZWVlODAyMTFfdWhyX29wZXJfc2l6ZV9vayhjb25zdCB1OCAqZGF0YSwgdTggbGVuKVxcbiB7XFxuIFxcdGNvbnN0IHN0cnVjdCBpZWVlODAyMTFfdWhyX29wZXJhdGlvbiAqb3BlciA9IChjb25zdCB2b2lkICopZGF0YTtcXG4gXFx0dTggbmVlZGVkID0gc2l6ZW9mKCpvcGVyKTtcXG5AQCAtMjc0LDE5ICsyNzgsMTUgQEAgc3RhdGljIGlubGluZSBib29sIGllZWU4MDIxMV91aHJfb3Blcl9zaXplX29rKGNvbnN0IHU4ICpkYXRhLCB1OCBsZW4sXFxuIFxcdGlmIChsZW4gXFx1MDAzYyBuZWVkZWQpXFxuIFxcdFxcdHJldHVybiBmYWxzZTtcXG4gXFxuLVxcdC8qIG5vdGhpbmcgZWxzZSBwcmVzZW50IGluIGJlYWNvbnMgKi9cXG4tXFx0aWYgKGJlYWNvbilcXG4tXFx0XFx0cmV0dXJuIHRydWU7XFxuLVxcbiBcXHQvKiBEUFMgT3BlcmF0aW9uIFBhcmFtZXRlcnMgKGZpeGVkIDQgYnl0ZXMpICovXFxuLVxcdGlmIChvcGVyLVxcdTAwM2VwYXJhbXMgXFx1MDAyNiBjcHVfdG9fbGUxNihJRUVFODAyMTFfVUhSX09QRVJfUEFSQU1TX0RQU19FTkEpKSB7XFxuK1xcdGlmIChvcGVyLVxcdTAwM2VwYXJhbXMgXFx1MDAyNiBjcHVfdG9fbGUxNihJRUVFODAyMTFfVUhSX09QRVJfUEFSQU1TX0RQU19QUkVTKSkge1xcbiBcXHRcXHRuZWVkZWQgKz0gc2l6ZW9mKHN0cnVjdCBpZWVlODAyMTFfdWhyX2Rwc19pbmZvKTtcXG4gXFx0XFx0aWYgKGxlbiBcXHUwMDNjIG5lZWRlZClcXG4gXFx0XFx0XFx0cmV0dXJuIGZhbHNlO1xcbiBcXHR9XFxuIFxcbiBcXHQvKiBOUENBIE9wZXJhdGlvbiBQYXJhbWV0ZXJzIChmaXhlZCA0IGJ5dGVzICsgb3B0aW9uYWwgMiBieXRlcykgKi9cXG4tXFx0aWYgKG9wZXItXFx1MDAzZXBhcmFtcyBcXHUwMDI2IGNwdV90b19sZTE2KElFRUU4MDIxMV9VSFJfT1BFUl9QQVJBTVNfTlBDQV9FTkEpKSB7XFxuK1xcdGlmIChvcGVyLVxcdTAwM2VwYXJhbXMgXFx1MDAyNiBjcHVfdG9fbGUxNihJRUVFODAyMTFfVUhSX09QRVJfUEFSQU1TX05QQ0FfUFJFUykpIHtcXG4gXFx0XFx0Y29uc3Qgc3RydWN0IGllZWU4MDIxMV91aHJfbnBjYV9pbmZvICpucGNhID1cXG4gXFx0XFx0XFx0KGNvbnN0IHZvaWQgKikoZGF0YSArIG5lZWRlZCk7XFxuIFxcbkBAIC0zMDMsMTQgKzMwMywxNCBAQCBzdGF0aWMgaW5saW5lIGJvb2wgaWVlZTgwMjExX3Vocl9vcGVyX3NpemVfb2soY29uc3QgdTggKmRhdGEsIHU4IGxlbixcXG4gXFx0fVxcbiBcXG4gXFx0LyogUC1FRENBIE9wZXJhdGlvbiBQYXJhbWV0ZXJzIChmaXhlZCAzIGJ5dGVzKSAqL1xcbi1cXHRpZiAob3Blci1cXHUwMDNlcGFyYW1zIFxcdTAwMjYgY3B1X3RvX2xlMTYoSUVFRTgwMjExX1VIUl9PUEVSX1BBUkFNU19QRURDQV9FTkEpKSB7XFxuK1xcdGlmIChvcGVyLVxcdTAwM2VwYXJhbXMgXFx1MDAyNiBjcHVfdG9fbGUxNihJRUVFODAyMTFfVUhSX09QRVJfUEFSQU1TX1BFRENBX1BSRVMpKSB7XFxuIFxcdFxcdG5lZWRlZCArPSBzaXplb2Yoc3RydWN0IGllZWU4MDIxMV91aHJfcF9lZGNhX2luZm8pO1xcbiBcXHRcXHRpZiAobGVuIFxcdTAwM2MgbmVlZGVkKVxcbiBcXHRcXHRcXHRyZXR1cm4gZmFsc2U7XFxuIFxcdH1cXG4gXFxuIFxcdC8qIERCRSBPcGVyYXRpb24gUGFyYW1ldGVycyAoZml4ZWQgMSBieXRlICsgb3B0aW9uYWwgMiBieXRlcykgKi9cXG4tXFx0aWYgKG9wZXItXFx1MDAzZXBhcmFtcyBcXHUwMDI2IGNwdV90b19sZTE2KElFRUU4MDIxMV9VSFJfT1BFUl9QQVJBTVNfREJFX0VOQSkpIHtcXG4rXFx0aWYgKG9wZXItXFx1MDAzZXBhcmFtcyBcXHUwMDI2IGNwdV90b19sZTE2KElFRUU4MDIxMV9VSFJfT1BFUl9QQVJBTVNfREJFX1BSRVMpKSB7XFxuIFxcdFxcdGNvbnN0IHN0cnVjdCBpZWVlODAyMTFfdWhyX2RiZV9pbmZvICpkYmUgPVxcbiBcXHRcXHRcXHQoY29uc3Qgdm9pZCAqKShkYXRhICsgbmVlZGVkKTtcXG4gXFxuQEAgLTMyOSwxOSArMzI5LDE5IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBpZWVlODAyMTFfdWhyX29wZXJfc2l6ZV9vayhjb25zdCB1OCAqZGF0YSwgdTggbGVuLFxcbiBcXHRyZXR1cm4gbGVuIFxcdTAwM2U9IG5lZWRlZDtcXG4gfVxcbiBcXG4tLypcXG4tICogTm90ZTogY2Fubm90IGNhbGwgdGhpcyBvbiB0aGUgZWxlbWVudCBjb21pbmcgZnJvbSBhIGJlYWNvbixcXG4tICogbXVzdCBlbnN1cmUgaWVlZTgwMjExX3Vocl9vcGVyX3NpemVfb2soLi4uLCBmYWxzZSkgZmlyc3RcXG4tICovXFxuKy8qIE5vdGU6IG11c3QgZW5zdXJlIGllZWU4MDIxMV91aHJfb3Blcl9zaXplX29rKC4uLikgZmlyc3QgKi9cXG4gc3RhdGljIGlubGluZSBjb25zdCBzdHJ1Y3QgaWVlZTgwMjExX3Vocl9ucGNhX2luZm8gKlxcbiBpZWVlODAyMTFfdWhyX25wY2FfaW5mbyhjb25zdCBzdHJ1Y3QgaWVlZTgwMjExX3Vocl9vcGVyYXRpb24gKm9wZXIpXFxuIHtcXG4gXFx0Y29uc3QgdTggKnBvcyA9IG9wZXItXFx1MDAzZXZhcmlhYmxlO1xcbiBcXG4rXFx0aWYgKCEob3Blci1cXHUwMDNlcGFyYW1zIFxcdTAwMjYgY3B1X3RvX2xlMTYoSUVFRTgwMjExX1VIUl9PUEVSX1BBUkFNU19OUENBX1BSRVMpKSlcXG4rXFx0XFx0cmV0dXJuIE5VTEw7XFxuK1xcbiBcXHRpZiAoIShvcGVyLVxcdTAwM2VwYXJhbXMgXFx1MDAyNiBjcHVfdG9fbGUxNihJRUVFODAyMTFfVUhSX09QRVJfUEFSQU1TX05QQ0FfRU5BKSkpXFxuIFxcdFxcdHJldHVybiBOVUxMO1xcbiBcXG4tXFx0aWYgKG9wZXItXFx1MDAzZXBhcmFtcyBcXHUwMDI2IGNwdV90b19sZTE2KElFRUU4MDIxMV9VSFJfT1BFUl9QQVJBTVNfRFBTX0VOQSkpXFxuK1xcdGlmIChvcGVyLVxcdTAwM2VwYXJhbXMgXFx1MDAyNiBjcHVfdG9fbGUxNihJRUVFODAyMTFfVUhSX09QRVJfUEFSQU1TX0RQU19QUkVTKSlcXG4gXFx0XFx0cG9zICs9IHNpemVvZihzdHJ1Y3QgaWVlZTgwMjExX3Vocl9kcHNfaW5mbyk7XFxuIFxcbiBcXHRyZXR1cm4gKGNvbnN0IHZvaWQgKilwb3M7XFxuQEAgLTM2MCwyMiArMzYwLDIyIEBAIGllZWU4MDIxMV91aHJfbnBjYV9kaXNfc3ViY2hfYml0bWFwKGNvbnN0IHN0cnVjdCBpZWVlODAyMTFfdWhyX29wZXJhdGlvbiAqb3BlcilcXG4gXFx0cmV0dXJuIG5wY2EtXFx1MDAzZWRpc19zdWJjaF9ibWFwO1xcbiB9XFxuIFxcbi0vKlxcbi0gKiBOb3RlOiBjYW5ub3QgY2FsbCB0aGlzIG9uIHRoZSBlbGVtZW50IGNvbWluZyBmcm9tIGEgYmVhY29uLFxcbi0gKiBtdXN0IGVuc3VyZSBpZWVlODAyMTFfdWhyX29wZXJfc2l6ZV9vayguLi4sIGZhbHNlKSBmaXJzdFxcbi0gKi9cXG4rLyogTm90ZTogbXVzdCBlbnN1cmUgaWVlZTgwMjExX3Vocl9vcGVyX3NpemVfb2soLi4uKSBmaXJzdCAqL1xcbiBzdGF0aWMgaW5saW5lIGNvbnN0IHN0cnVjdCBpZWVlODAyMTFfdWhyX2RiZV9pbmZvICpcXG4gaWVlZTgwMjExX3Vocl9vcGVyX2RiZV9pbmZvKGNvbnN0IHN0cnVjdCBpZWVlODAyMTFfdWhyX29wZXJhdGlvbiAqb3BlcilcXG4ge1xcbiBcXHRjb25zdCB1OCAqcG9zID0gb3Blci1cXHUwMDNldmFyaWFibGU7XFxuIFxcbitcXHRpZiAoIShvcGVyLVxcdTAwM2VwYXJhbXMgXFx1MDAyNiBjcHVfdG9fbGUxNihJRUVFODAyMTFfVUhSX09QRVJfUEFSQU1TX0RCRV9QUkVTKSkpXFxuK1xcdFxcdHJldHVybiBOVUxMO1xcbitcXG4gXFx0aWYgKCEob3Blci1cXHUwMDNlcGFyYW1zIFxcdTAwMjYgY3B1X3RvX2xlMTYoSUVFRTgwMjExX1VIUl9PUEVSX1BBUkFNU19EQkVfRU5BKSkpXFxuIFxcdFxcdHJldHVybiBOVUxMO1xcbiBcXG4tXFx0aWYgKG9wZXItXFx1MDAzZXBhcmFtcyBcXHUwMDI2IGNwdV90b19sZTE2KElFRUU4MDIxMV9VSFJfT1BFUl9QQVJBTVNfRFBTX0VOQSkpXFxuK1xcdGlmIChvcGVyLVxcdTAwM2VwYXJhbXMgXFx1MDAyNiBjcHVfdG9fbGUxNihJRUVFODAyMTFfVUhSX09QRVJfUEFSQU1TX0RQU19QUkVTKSlcXG4gXFx0XFx0cG9zICs9IHNpemVvZihzdHJ1Y3QgaWVlZTgwMjExX3Vocl9kcHNfaW5mbyk7XFxuIFxcbi1cXHRpZiAob3Blci1cXHUwMDNlcGFyYW1zIFxcdTAwMjYgY3B1X3RvX2xlMTYoSUVFRTgwMjExX1VIUl9PUEVSX1BBUkFNU19OUENBX0VOQSkpIHtcXG4rXFx0aWYgKG9wZXItXFx1MDAzZXBhcmFtcyBcXHUwMDI2IGNwdV90b19sZTE2KElFRUU4MDIxMV9VSFJfT1BFUl9QQVJBTVNfTlBDQV9QUkVTKSkge1xcbiBcXHRcXHRjb25zdCBzdHJ1Y3QgaWVlZTgwMjExX3Vocl9ucGNhX2luZm8gKm5wY2EgPSAoY29uc3Qgdm9pZCAqKXBvcztcXG4gXFxuIFxcdFxcdHBvcyArPSBzaXplb2YoKm5wY2EpO1xcbkBAIC0zODMsNyArMzgzLDcgQEAgaWVlZTgwMjExX3Vocl9vcGVyX2RiZV9pbmZvKGNvbnN0IHN0cnVjdCBpZWVlODAyMTFfdWhyX29wZXJhdGlvbiAqb3BlcilcXG4gXFx0XFx0XFx0cG9zICs9IHNpemVvZihucGNhLVxcdTAwM2VkaXNfc3ViY2hfYm1hcFswXSk7XFxuIFxcdH1cXG4gXFxuLVxcdGlmIChvcGVyLVxcdTAwM2VwYXJhbXMgXFx1MDAyNiBjcHVfdG9fbGUxNihJRUVFODAyMTFfVUhSX09QRVJfUEFSQU1TX1BFRENBX0VOQSkpXFxuK1xcdGlmIChvcGVyLVxcdTAwM2VwYXJhbXMgXFx1MDAyNiBjcHVfdG9fbGUxNihJRUVFODAyMTFfVUhSX09QRVJfUEFSQU1TX1BFRENBX1BSRVMpKVxcbiBcXHRcXHRwb3MgKz0gc2l6ZW9mKHN0cnVjdCBpZWVlODAyMTFfdWhyX3BfZWRjYV9pbmZvKTtcXG4gXFxuIFxcdHJldHVybiAoY29uc3Qgdm9pZCAqKXBvcztcXG5kaWZmIC0tZ2l0IGEvbmV0L21hYzgwMjExL21sbWUuYyBiL25ldC9tYWM4MDIxMS9tbG1lLmNcXG5pbmRleCA5ZTkyMzM3YmI2ZjllNS4uNGFkNWU5NDk3MzIzMTYgMTAwNjQ0XFxuLS0tIGEvbmV0L21hYzgwMjExL21sbWUuY1xcbisrKyBiL25ldC9tYWM4MDIxMS9tbG1lLmNcXG5AQCAtMTcwMSw4ICsxNzAxLDcgQEAgc3RhdGljIGludCBpZWVlODAyMTFfY29uZmlnX2J3KHN0cnVjdCBpZWVlODAyMTFfbGlua19kYXRhICpsaW5rLFxcbiBcXHRpZiAoc3R5cGUgIT0gSUVFRTgwMjExX1NUWVBFX0JFQUNPTiBcXHUwMDI2XFx1MDAyNlxcbiBcXHQgICAgY2hhbnJlcS5vcGVyLm5wY2FfY2hhbiBcXHUwMDI2XFx1MDAyNiBlbGVtcy1cXHUwMDNldWhyX29wZXJhdGlvbiBcXHUwMDI2XFx1MDAyNlxcbiBcXHQgICAgaWVlZTgwMjExX3Vocl9vcGVyX3NpemVfb2soKGNvbnN0IHZvaWQgKillbGVtcy1cXHUwMDNldWhyX29wZXJhdGlvbixcXG4tXFx0XFx0XFx0XFx0ICAgICAgIGVsZW1zLVxcdTAwM2V1aHJfb3BlcmF0aW9uX2xlbixcXG4tXFx0XFx0XFx0XFx0ICAgICAgIGZhbHNlKSkge1xcbitcXHRcXHRcXHRcXHQgICAgICAgZWxlbXMtXFx1MDAzZXVocl9vcGVyYXRpb25fbGVuKSkge1xcbiBcXHRcXHRjb25zdCBzdHJ1Y3QgaWVlZTgwMjExX3Vocl9ucGNhX2luZm8gKm5wY2E7XFxuIFxcdFxcdHN0cnVjdCBpZWVlODAyMTFfYnNzX25wY2FfcGFyYW1zIHBhcmFtcyA9IHt9O1xcbiBcXG5kaWZmIC0tZ2l0IGEvbmV0L21hYzgwMjExL3BhcnNlLmMgYi9uZXQvbWFjODAyMTEvcGFyc2UuY1xcbmluZGV4IGMyZjJmNzhmMmI0ZjcyLi5jYjJiZTE2N2NkZTc5NSAxMDA2NDRcXG4tLS0gYS9uZXQvbWFjODAyMTEvcGFyc2UuY1xcbisrKyBiL25ldC9tYWM4MDIxMS9wYXJzZS5jXFxuQEAgLTIwOSw5ICsyMDksNyBAQCBpZWVlODAyMTFfcGFyc2VfZXh0ZW5zaW9uX2VsZW1lbnQodTMyICpjcmMsXFxuIFxcdFxcdGlmIChwYXJhbXMtXFx1MDAzZW1vZGUgXFx1MDAzYyBJRUVFODAyMTFfQ09OTl9NT0RFX1VIUilcXG4gXFx0XFx0XFx0YnJlYWs7XFxuIFxcdFxcdGNhbGNfY3JjID0gdHJ1ZTtcXG4tXFx0XFx0aWYgKGllZWU4MDIxMV91aHJfb3Blcl9zaXplX29rKGRhdGEsIGxlbixcXG4tXFx0XFx0XFx0XFx0XFx0ICAgICAgIHBhcmFtcy1cXHUwMDNldHlwZSA9PSAoSUVFRTgwMjExX0ZUWVBFX01HTVQgfFxcbi1cXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRJRUVFODAyMTFfU1RZUEVfQkVBQ09OKSkpIHtcXG4rXFx0XFx0aWYgKGllZWU4MDIxMV91aHJfb3Blcl9zaXplX29rKGRhdGEsIGxlbikpIHtcXG4gXFx0XFx0XFx0ZWxlbXMtXFx1MDAzZXVocl9vcGVyYXRpb24gPSBkYXRhO1xcbiBcXHRcXHRcXHRlbGVtcy1cXHUwMDNldWhyX29wZXJhdGlvbl9sZW4gPSBsZW47XFxuIFxcdFxcdH1cXG5kaWZmIC0tZ2l0IGEvbmV0L3dpcmVsZXNzL25sODAyMTEuYyBiL25ldC93aXJlbGVzcy9ubDgwMjExLmNcXG5pbmRleCAyNDIwNzFhZDEwZDZjOS4uNWZhNzA5NzRkNTdjYzEgMTAwNjQ0XFxuLS0tIGEvbmV0L3dpcmVsZXNzL25sODAyMTEuY1xcbisrKyBiL25ldC93aXJlbGVzcy9ubDgwMjExLmNcXG5AQCAtNDQxLDcgKzQ0MSw3IEBAIHN0YXRpYyBpbnQgdmFsaWRhdGVfdWhyX29wZXJhdGlvbihjb25zdCBzdHJ1Y3QgbmxhdHRyICphdHRyLFxcbiBcXHRjb25zdCB1OCAqZGF0YSA9IG5sYV9kYXRhKGF0dHIpO1xcbiBcXHR1bnNpZ25lZCBpbnQgbGVuID0gbmxhX2xlbihhdHRyKTtcXG4gXFxuLVxcdGlmICghaWVlZTgwMjExX3Vocl9vcGVyX3NpemVfb2soZGF0YSwgbGVuLCBmYWxzZSkpXFxuK1xcdGlmICghaWVlZTgwMjExX3Vocl9vcGVyX3NpemVfb2soZGF0YSwgbGVuKSlcXG4gXFx0XFx0cmV0dXJuIC1FSU5WQUw7XFxuIFxcdHJldHVybiAwO1xcbiB9XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE1VDIzOjA1OjE3LjA2OTEwMzQ4NVoiLCJTZXEiOjIsIk5lc3RpbmciOjEsIlR5cGUiOiJhZ2VudCIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6Mzc2MjExOTM4MzUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiQ0ZHODAyMTFcIixcbiAgICBcIk1BQzgwMjExXCIsXG4gICAgXCJNQUM4MDIxMV9IV1NJTVwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcInZhbGlkYXRlX3Vocl9vcGVyYXRpb25cIixcbiAgICBcImllZWU4MDIxMV9wYXJzZV9leHRlbnNpb25fZWxlbWVudFwiLFxuICAgIFwiaWVlZTgwMjExX2NvbmZpZ19id1wiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBwYXJzaW5nIGFuZCB2YWxpZGF0aW9uIGxvZ2ljIGZvciBJRUVFIDgwMi4xMSBVSFIgKFVsdHJhIEhpZ2ggUmVsaWFiaWxpdHkpIG9wZXJhdGlvbiBlbGVtZW50cy4gSXQgY2hhbmdlcyB0aGUgc2l6ZSB2YWxpZGF0aW9uIGxvZ2ljIGJ5IGNoZWNraW5nIGZvciBwcmVzZW5jZSBmbGFncyBpbnN0ZWFkIG9mIGVuYWJsZSBmbGFncy4gVGhlIG1vZGlmaWVkIGlubGluZSBmdW5jdGlvbiBpcyBjYWxsZWQgZnJvbSBuZXRsaW5rIGF0dHJpYnV0ZSB2YWxpZGF0aW9uIChgdmFsaWRhdGVfdWhyX29wZXJhdGlvbmApLCBtYW5hZ2VtZW50IGZyYW1lIHBhcnNpbmcgKGBpZWVlODAyMTFfcGFyc2VfZXh0ZW5zaW9uX2VsZW1lbnRgKSwgYW5kIGJhbmR3aWR0aCBjb25maWd1cmF0aW9uIChgaWVlZTgwMjExX2NvbmZpZ19id2ApLiBUaGVzZSBhcmUgcmVhY2hhYmxlIGZyb20gdXNlciBzcGFjZSB2aWEgbmV0bGluayBhbmQgZnJvbSBpbmplY3RlZCBtYW5hZ2VtZW50IGZyYW1lcywgbWFraW5nIGl0IGhpZ2hseSByZWxldmFudCBmb3IgZnV6emluZy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiWW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuXG5Zb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZVxuaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLlxuXG5JTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW5cbnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseVxudXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy5cblxuUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczpcbi0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy5cbi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuXG4tIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy5cbi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLFxuZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLlxuXG5JZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoXG50b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS5cblxuV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086XG4xLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLlxuICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuXG4yLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS5cbiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy5cbiAgIERvIG5vdCBsaXN0IHRvbyBnZW5lcmljIGNvbmZpZ3MgKHdlIGFscmVhZHkgaGF2ZSB0aGVtIGVuYWJsZWQpLiBPbmx5IGxpc3QgdGhvc2UgdGhhdFxuICAgc3BlY2lmaWNhbGx5IGNvdmVyIHRoZSBtb2RpZmllZCBjb2RlLiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3Mgb3V0cHV0IGFycmF5LFxuICAgYW5kIERPIE5PVCBhZGQgYSAnQ09ORklHXycgcHJlZml4IChlLmcuLCByZXR1cm4gXCJORVRfSVBWNFwiIGluc3RlYWQgb2YgXCJDT05GSUdfTkVUX0lQVjRcIikuXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCA3MmMxMDI4NmYzMzFlNjdkYzViNmI3MmQyNGMxYjEwZTJkMzczYzZjXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFdlZCBKdWwgMTUgMjM6MDU6MTQgMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L2llZWU4MDIxMS11aHIuaCBiL2luY2x1ZGUvbGludXgvaWVlZTgwMjExLXVoci5oXG5pbmRleCA1OTdjOWU1NTkyNjFiOS4uNjY1ZDRiM2E1YjQxODYgMTAwNjQ0XG4tLS0gYS9pbmNsdWRlL2xpbnV4L2llZWU4MDIxMS11aHIuaFxuKysrIGIvaW5jbHVkZS9saW51eC9pZWVlODAyMTEtdWhyLmhcbkBAIC0xNyw2ICsxNywxMSBAQFxuICNkZWZpbmUgSUVFRTgwMjExX1VIUl9PUEVSX1BBUkFNU19QRURDQV9FTkFcdFx0MHgwMDA0XG4gI2RlZmluZSBJRUVFODAyMTFfVUhSX09QRVJfUEFSQU1TX0RCRV9FTkFcdFx0MHgwMDA4XG4gI2RlZmluZSBJRUVFODAyMTFfVUhSX09QRVJfUEFSQU1TX0RCRV9CV1x0XHQweDAwNzBcbisjZGVmaW5lIElFRUU4MDIxMV9VSFJfT1BFUl9QQVJBTVNfRFVPX1BSRVNcdFx0MHgwMDgwXG4rI2RlZmluZSBJRUVFODAyMTFfVUhSX09QRVJfUEFSQU1TX0RQU19QUkVTXHRcdDB4MDEwMFxuKyNkZWZpbmUgSUVFRTgwMjExX1VIUl9PUEVSX1BBUkFNU19OUENBX1BSRVNcdFx0MHgwMjAwXG4rI2RlZmluZSBJRUVFODAyMTFfVUhSX09QRVJfUEFSQU1TX1BFRENBX1BSRVNcdFx0MHgwNDAwXG4rI2RlZmluZSBJRUVFODAyMTFfVUhSX09QRVJfUEFSQU1TX0RCRV9QUkVTXHRcdDB4MDgwMFxuIFxuIHN0cnVjdCBpZWVlODAyMTFfdWhyX29wZXJhdGlvbiB7XG4gXHRfX2xlMTYgcGFyYW1zO1xuQEAgLTI2NSw4ICsyNzAsNyBAQCBzdHJ1Y3QgaWVlZTgwMjExX3Vocl9wX2VkY2FfaW5mbyB7XG4gXHRfX2xlMTYgcGFyYW1zO1xuIH0gX19wYWNrZWQ7XG4gXG4tc3RhdGljIGlubGluZSBib29sIGllZWU4MDIxMV91aHJfb3Blcl9zaXplX29rKGNvbnN0IHU4ICpkYXRhLCB1OCBsZW4sXG4tXHRcdFx0XHRcdCAgICAgIGJvb2wgYmVhY29uKVxuK3N0YXRpYyBpbmxpbmUgYm9vbCBpZWVlODAyMTFfdWhyX29wZXJfc2l6ZV9vayhjb25zdCB1OCAqZGF0YSwgdTggbGVuKVxuIHtcbiBcdGNvbnN0IHN0cnVjdCBpZWVlODAyMTFfdWhyX29wZXJhdGlvbiAqb3BlciA9IChjb25zdCB2b2lkICopZGF0YTtcbiBcdHU4IG5lZWRlZCA9IHNpemVvZigqb3Blcik7XG5AQCAtMjc0LDE5ICsyNzgsMTUgQEAgc3RhdGljIGlubGluZSBib29sIGllZWU4MDIxMV91aHJfb3Blcl9zaXplX29rKGNvbnN0IHU4ICpkYXRhLCB1OCBsZW4sXG4gXHRpZiAobGVuIFx1MDAzYyBuZWVkZWQpXG4gXHRcdHJldHVybiBmYWxzZTtcbiBcbi1cdC8qIG5vdGhpbmcgZWxzZSBwcmVzZW50IGluIGJlYWNvbnMgKi9cbi1cdGlmIChiZWFjb24pXG4tXHRcdHJldHVybiB0cnVlO1xuLVxuIFx0LyogRFBTIE9wZXJhdGlvbiBQYXJhbWV0ZXJzIChmaXhlZCA0IGJ5dGVzKSAqL1xuLVx0aWYgKG9wZXItXHUwMDNlcGFyYW1zIFx1MDAyNiBjcHVfdG9fbGUxNihJRUVFODAyMTFfVUhSX09QRVJfUEFSQU1TX0RQU19FTkEpKSB7XG4rXHRpZiAob3Blci1cdTAwM2VwYXJhbXMgXHUwMDI2IGNwdV90b19sZTE2KElFRUU4MDIxMV9VSFJfT1BFUl9QQVJBTVNfRFBTX1BSRVMpKSB7XG4gXHRcdG5lZWRlZCArPSBzaXplb2Yoc3RydWN0IGllZWU4MDIxMV91aHJfZHBzX2luZm8pO1xuIFx0XHRpZiAobGVuIFx1MDAzYyBuZWVkZWQpXG4gXHRcdFx0cmV0dXJuIGZhbHNlO1xuIFx0fVxuIFxuIFx0LyogTlBDQSBPcGVyYXRpb24gUGFyYW1ldGVycyAoZml4ZWQgNCBieXRlcyArIG9wdGlvbmFsIDIgYnl0ZXMpICovXG4tXHRpZiAob3Blci1cdTAwM2VwYXJhbXMgXHUwMDI2IGNwdV90b19sZTE2KElFRUU4MDIxMV9VSFJfT1BFUl9QQVJBTVNfTlBDQV9FTkEpKSB7XG4rXHRpZiAob3Blci1cdTAwM2VwYXJhbXMgXHUwMDI2IGNwdV90b19sZTE2KElFRUU4MDIxMV9VSFJfT1BFUl9QQVJBTVNfTlBDQV9QUkVTKSkge1xuIFx0XHRjb25zdCBzdHJ1Y3QgaWVlZTgwMjExX3Vocl9ucGNhX2luZm8gKm5wY2EgPVxuIFx0XHRcdChjb25zdCB2b2lkICopKGRhdGEgKyBuZWVkZWQpO1xuIFxuQEAgLTMwMywxNCArMzAzLDE0IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBpZWVlODAyMTFfdWhyX29wZXJfc2l6ZV9vayhjb25zdCB1OCAqZGF0YSwgdTggbGVuLFxuIFx0fVxuIFxuIFx0LyogUC1FRENBIE9wZXJhdGlvbiBQYXJhbWV0ZXJzIChmaXhlZCAzIGJ5dGVzKSAqL1xuLVx0aWYgKG9wZXItXHUwMDNlcGFyYW1zIFx1MDAyNiBjcHVfdG9fbGUxNihJRUVFODAyMTFfVUhSX09QRVJfUEFSQU1TX1BFRENBX0VOQSkpIHtcbitcdGlmIChvcGVyLVx1MDAzZXBhcmFtcyBcdTAwMjYgY3B1X3RvX2xlMTYoSUVFRTgwMjExX1VIUl9PUEVSX1BBUkFNU19QRURDQV9QUkVTKSkge1xuIFx0XHRuZWVkZWQgKz0gc2l6ZW9mKHN0cnVjdCBpZWVlODAyMTFfdWhyX3BfZWRjYV9pbmZvKTtcbiBcdFx0aWYgKGxlbiBcdTAwM2MgbmVlZGVkKVxuIFx0XHRcdHJldHVybiBmYWxzZTtcbiBcdH1cbiBcbiBcdC8qIERCRSBPcGVyYXRpb24gUGFyYW1ldGVycyAoZml4ZWQgMSBieXRlICsgb3B0aW9uYWwgMiBieXRlcykgKi9cbi1cdGlmIChvcGVyLVx1MDAzZXBhcmFtcyBcdTAwMjYgY3B1X3RvX2xlMTYoSUVFRTgwMjExX1VIUl9PUEVSX1BBUkFNU19EQkVfRU5BKSkge1xuK1x0aWYgKG9wZXItXHUwMDNlcGFyYW1zIFx1MDAyNiBjcHVfdG9fbGUxNihJRUVFODAyMTFfVUhSX09QRVJfUEFSQU1TX0RCRV9QUkVTKSkge1xuIFx0XHRjb25zdCBzdHJ1Y3QgaWVlZTgwMjExX3Vocl9kYmVfaW5mbyAqZGJlID1cbiBcdFx0XHQoY29uc3Qgdm9pZCAqKShkYXRhICsgbmVlZGVkKTtcbiBcbkBAIC0zMjksMTkgKzMyOSwxOSBAQCBzdGF0aWMgaW5saW5lIGJvb2wgaWVlZTgwMjExX3Vocl9vcGVyX3NpemVfb2soY29uc3QgdTggKmRhdGEsIHU4IGxlbixcbiBcdHJldHVybiBsZW4gXHUwMDNlPSBuZWVkZWQ7XG4gfVxuIFxuLS8qXG4tICogTm90ZTogY2Fubm90IGNhbGwgdGhpcyBvbiB0aGUgZWxlbWVudCBjb21pbmcgZnJvbSBhIGJlYWNvbixcbi0gKiBtdXN0IGVuc3VyZSBpZWVlODAyMTFfdWhyX29wZXJfc2l6ZV9vayguLi4sIGZhbHNlKSBmaXJzdFxuLSAqL1xuKy8qIE5vdGU6IG11c3QgZW5zdXJlIGllZWU4MDIxMV91aHJfb3Blcl9zaXplX29rKC4uLikgZmlyc3QgKi9cbiBzdGF0aWMgaW5saW5lIGNvbnN0IHN0cnVjdCBpZWVlODAyMTFfdWhyX25wY2FfaW5mbyAqXG4gaWVlZTgwMjExX3Vocl9ucGNhX2luZm8oY29uc3Qgc3RydWN0IGllZWU4MDIxMV91aHJfb3BlcmF0aW9uICpvcGVyKVxuIHtcbiBcdGNvbnN0IHU4ICpwb3MgPSBvcGVyLVx1MDAzZXZhcmlhYmxlO1xuIFxuK1x0aWYgKCEob3Blci1cdTAwM2VwYXJhbXMgXHUwMDI2IGNwdV90b19sZTE2KElFRUU4MDIxMV9VSFJfT1BFUl9QQVJBTVNfTlBDQV9QUkVTKSkpXG4rXHRcdHJldHVybiBOVUxMO1xuK1xuIFx0aWYgKCEob3Blci1cdTAwM2VwYXJhbXMgXHUwMDI2IGNwdV90b19sZTE2KElFRUU4MDIxMV9VSFJfT1BFUl9QQVJBTVNfTlBDQV9FTkEpKSlcbiBcdFx0cmV0dXJuIE5VTEw7XG4gXG4tXHRpZiAob3Blci1cdTAwM2VwYXJhbXMgXHUwMDI2IGNwdV90b19sZTE2KElFRUU4MDIxMV9VSFJfT1BFUl9QQVJBTVNfRFBTX0VOQSkpXG4rXHRpZiAob3Blci1cdTAwM2VwYXJhbXMgXHUwMDI2IGNwdV90b19sZTE2KElFRUU4MDIxMV9VSFJfT1BFUl9QQVJBTVNfRFBTX1BSRVMpKVxuIFx0XHRwb3MgKz0gc2l6ZW9mKHN0cnVjdCBpZWVlODAyMTFfdWhyX2Rwc19pbmZvKTtcbiBcbiBcdHJldHVybiAoY29uc3Qgdm9pZCAqKXBvcztcbkBAIC0zNjAsMjIgKzM2MCwyMiBAQCBpZWVlODAyMTFfdWhyX25wY2FfZGlzX3N1YmNoX2JpdG1hcChjb25zdCBzdHJ1Y3QgaWVlZTgwMjExX3Vocl9vcGVyYXRpb24gKm9wZXIpXG4gXHRyZXR1cm4gbnBjYS1cdTAwM2VkaXNfc3ViY2hfYm1hcDtcbiB9XG4gXG4tLypcbi0gKiBOb3RlOiBjYW5ub3QgY2FsbCB0aGlzIG9uIHRoZSBlbGVtZW50IGNvbWluZyBmcm9tIGEgYmVhY29uLFxuLSAqIG11c3QgZW5zdXJlIGllZWU4MDIxMV91aHJfb3Blcl9zaXplX29rKC4uLiwgZmFsc2UpIGZpcnN0XG4tICovXG4rLyogTm90ZTogbXVzdCBlbnN1cmUgaWVlZTgwMjExX3Vocl9vcGVyX3NpemVfb2soLi4uKSBmaXJzdCAqL1xuIHN0YXRpYyBpbmxpbmUgY29uc3Qgc3RydWN0IGllZWU4MDIxMV91aHJfZGJlX2luZm8gKlxuIGllZWU4MDIxMV91aHJfb3Blcl9kYmVfaW5mbyhjb25zdCBzdHJ1Y3QgaWVlZTgwMjExX3Vocl9vcGVyYXRpb24gKm9wZXIpXG4ge1xuIFx0Y29uc3QgdTggKnBvcyA9IG9wZXItXHUwMDNldmFyaWFibGU7XG4gXG4rXHRpZiAoIShvcGVyLVx1MDAzZXBhcmFtcyBcdTAwMjYgY3B1X3RvX2xlMTYoSUVFRTgwMjExX1VIUl9PUEVSX1BBUkFNU19EQkVfUFJFUykpKVxuK1x0XHRyZXR1cm4gTlVMTDtcbitcbiBcdGlmICghKG9wZXItXHUwMDNlcGFyYW1zIFx1MDAyNiBjcHVfdG9fbGUxNihJRUVFODAyMTFfVUhSX09QRVJfUEFSQU1TX0RCRV9FTkEpKSlcbiBcdFx0cmV0dXJuIE5VTEw7XG4gXG4tXHRpZiAob3Blci1cdTAwM2VwYXJhbXMgXHUwMDI2IGNwdV90b19sZTE2KElFRUU4MDIxMV9VSFJfT1BFUl9QQVJBTVNfRFBTX0VOQSkpXG4rXHRpZiAob3Blci1cdTAwM2VwYXJhbXMgXHUwMDI2IGNwdV90b19sZTE2KElFRUU4MDIxMV9VSFJfT1BFUl9QQVJBTVNfRFBTX1BSRVMpKVxuIFx0XHRwb3MgKz0gc2l6ZW9mKHN0cnVjdCBpZWVlODAyMTFfdWhyX2Rwc19pbmZvKTtcbiBcbi1cdGlmIChvcGVyLVx1MDAzZXBhcmFtcyBcdTAwMjYgY3B1X3RvX2xlMTYoSUVFRTgwMjExX1VIUl9PUEVSX1BBUkFNU19OUENBX0VOQSkpIHtcbitcdGlmIChvcGVyLVx1MDAzZXBhcmFtcyBcdTAwMjYgY3B1X3RvX2xlMTYoSUVFRTgwMjExX1VIUl9PUEVSX1BBUkFNU19OUENBX1BSRVMpKSB7XG4gXHRcdGNvbnN0IHN0cnVjdCBpZWVlODAyMTFfdWhyX25wY2FfaW5mbyAqbnBjYSA9IChjb25zdCB2b2lkICopcG9zO1xuIFxuIFx0XHRwb3MgKz0gc2l6ZW9mKCpucGNhKTtcbkBAIC0zODMsNyArMzgzLDcgQEAgaWVlZTgwMjExX3Vocl9vcGVyX2RiZV9pbmZvKGNvbnN0IHN0cnVjdCBpZWVlODAyMTFfdWhyX29wZXJhdGlvbiAqb3BlcilcbiBcdFx0XHRwb3MgKz0gc2l6ZW9mKG5wY2EtXHUwMDNlZGlzX3N1YmNoX2JtYXBbMF0pO1xuIFx0fVxuIFxuLVx0aWYgKG9wZXItXHUwMDNlcGFyYW1zIFx1MDAyNiBjcHVfdG9fbGUxNihJRUVFODAyMTFfVUhSX09QRVJfUEFSQU1TX1BFRENBX0VOQSkpXG4rXHRpZiAob3Blci1cdTAwM2VwYXJhbXMgXHUwMDI2IGNwdV90b19sZTE2KElFRUU4MDIxMV9VSFJfT1BFUl9QQVJBTVNfUEVEQ0FfUFJFUykpXG4gXHRcdHBvcyArPSBzaXplb2Yoc3RydWN0IGllZWU4MDIxMV91aHJfcF9lZGNhX2luZm8pO1xuIFxuIFx0cmV0dXJuIChjb25zdCB2b2lkICopcG9zO1xuZGlmZiAtLWdpdCBhL25ldC9tYWM4MDIxMS9tbG1lLmMgYi9uZXQvbWFjODAyMTEvbWxtZS5jXG5pbmRleCA5ZTkyMzM3YmI2ZjllNS4uNGFkNWU5NDk3MzIzMTYgMTAwNjQ0XG4tLS0gYS9uZXQvbWFjODAyMTEvbWxtZS5jXG4rKysgYi9uZXQvbWFjODAyMTEvbWxtZS5jXG5AQCAtMTcwMSw4ICsxNzAxLDcgQEAgc3RhdGljIGludCBpZWVlODAyMTFfY29uZmlnX2J3KHN0cnVjdCBpZWVlODAyMTFfbGlua19kYXRhICpsaW5rLFxuIFx0aWYgKHN0eXBlICE9IElFRUU4MDIxMV9TVFlQRV9CRUFDT04gXHUwMDI2XHUwMDI2XG4gXHQgICAgY2hhbnJlcS5vcGVyLm5wY2FfY2hhbiBcdTAwMjZcdTAwMjYgZWxlbXMtXHUwMDNldWhyX29wZXJhdGlvbiBcdTAwMjZcdTAwMjZcbiBcdCAgICBpZWVlODAyMTFfdWhyX29wZXJfc2l6ZV9vaygoY29uc3Qgdm9pZCAqKWVsZW1zLVx1MDAzZXVocl9vcGVyYXRpb24sXG4tXHRcdFx0XHQgICAgICAgZWxlbXMtXHUwMDNldWhyX29wZXJhdGlvbl9sZW4sXG4tXHRcdFx0XHQgICAgICAgZmFsc2UpKSB7XG4rXHRcdFx0XHQgICAgICAgZWxlbXMtXHUwMDNldWhyX29wZXJhdGlvbl9sZW4pKSB7XG4gXHRcdGNvbnN0IHN0cnVjdCBpZWVlODAyMTFfdWhyX25wY2FfaW5mbyAqbnBjYTtcbiBcdFx0c3RydWN0IGllZWU4MDIxMV9ic3NfbnBjYV9wYXJhbXMgcGFyYW1zID0ge307XG4gXG5kaWZmIC0tZ2l0IGEvbmV0L21hYzgwMjExL3BhcnNlLmMgYi9uZXQvbWFjODAyMTEvcGFyc2UuY1xuaW5kZXggYzJmMmY3OGYyYjRmNzIuLmNiMmJlMTY3Y2RlNzk1IDEwMDY0NFxuLS0tIGEvbmV0L21hYzgwMjExL3BhcnNlLmNcbisrKyBiL25ldC9tYWM4MDIxMS9wYXJzZS5jXG5AQCAtMjA5LDkgKzIwOSw3IEBAIGllZWU4MDIxMV9wYXJzZV9leHRlbnNpb25fZWxlbWVudCh1MzIgKmNyYyxcbiBcdFx0aWYgKHBhcmFtcy1cdTAwM2Vtb2RlIFx1MDAzYyBJRUVFODAyMTFfQ09OTl9NT0RFX1VIUilcbiBcdFx0XHRicmVhaztcbiBcdFx0Y2FsY19jcmMgPSB0cnVlO1xuLVx0XHRpZiAoaWVlZTgwMjExX3Vocl9vcGVyX3NpemVfb2soZGF0YSwgbGVuLFxuLVx0XHRcdFx0XHQgICAgICAgcGFyYW1zLVx1MDAzZXR5cGUgPT0gKElFRUU4MDIxMV9GVFlQRV9NR01UIHxcbi1cdFx0XHRcdFx0XHRcdFx0SUVFRTgwMjExX1NUWVBFX0JFQUNPTikpKSB7XG4rXHRcdGlmIChpZWVlODAyMTFfdWhyX29wZXJfc2l6ZV9vayhkYXRhLCBsZW4pKSB7XG4gXHRcdFx0ZWxlbXMtXHUwMDNldWhyX29wZXJhdGlvbiA9IGRhdGE7XG4gXHRcdFx0ZWxlbXMtXHUwMDNldWhyX29wZXJhdGlvbl9sZW4gPSBsZW47XG4gXHRcdH1cbmRpZmYgLS1naXQgYS9uZXQvd2lyZWxlc3Mvbmw4MDIxMS5jIGIvbmV0L3dpcmVsZXNzL25sODAyMTEuY1xuaW5kZXggMjQyMDcxYWQxMGQ2YzkuLjVmYTcwOTc0ZDU3Y2MxIDEwMDY0NFxuLS0tIGEvbmV0L3dpcmVsZXNzL25sODAyMTEuY1xuKysrIGIvbmV0L3dpcmVsZXNzL25sODAyMTEuY1xuQEAgLTQ0MSw3ICs0NDEsNyBAQCBzdGF0aWMgaW50IHZhbGlkYXRlX3Vocl9vcGVyYXRpb24oY29uc3Qgc3RydWN0IG5sYXR0ciAqYXR0cixcbiBcdGNvbnN0IHU4ICpkYXRhID0gbmxhX2RhdGEoYXR0cik7XG4gXHR1bnNpZ25lZCBpbnQgbGVuID0gbmxhX2xlbihhdHRyKTtcbiBcbi1cdGlmICghaWVlZTgwMjExX3Vocl9vcGVyX3NpemVfb2soZGF0YSwgbGVuLCBmYWxzZSkpXG4rXHRpZiAoIWllZWU4MDIxMV91aHJfb3Blcl9zaXplX29rKGRhdGEsIGxlbikpXG4gXHRcdHJldHVybiAtRUlOVkFMO1xuIFx0cmV0dXJuIDA7XG4gfVxuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTVUMjM6MDU6MTcuMDY5MTA0OTA1WiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NjE5NDcyNjMyMiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIFVIUiBPcGVyYXRpb24gRWxlbWVudCBQYXRjaCoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggdGhhdCB0d2Vha3MgdGhlIGBpZWVlODAyMTFfdWhyX29wZXJfc2l6ZV9va2AgZnVuY3Rpb24gYW5kIGl0cyByZWxhdGVkIGNhbGxzIGluIGBuZXQvbWFjODAyMTFgIGFuZCBgbmV0L3dpcmVsZXNzYC4gSXQgbG9va3MgbGlrZSB0aGV5J3ZlIHJlbW92ZWQgdGhlIGBiZWFjb25gIHBhcmFtZXRlciBmcm9tIHRoYXQgZnVuY3Rpb24gYW5kIHN3YXBwZWQgb3V0IHRoZSBgX0VOQWAgbWFjcm9zIHdpdGggYF9QUkVTYCBtYWNyb3MgZm9yIGNoZWNraW5nIGZpZWxkIHByZXNlbmNlIHdpdGhpbiB0aGUgVUhSIG9wZXJhdGlvbiBlbGVtZW50LiBNeSBpbW1lZGlhdGUgdGhvdWdodCBpcywgXCJJcyB0aGlzIGdvaW5nIHRvIGFjdHVhbGx5IHdvcms/XCJcblxuRmlyc3QgdGhpbmdzIGZpcnN0LCBsZXQncyBjb25maXJtIHJlYWNoYWJpbGl0eSBhbmQgZnVuY3Rpb25hbGl0eS4gSSBzZWUgYGllZWU4MDIxMV91aHJfb3Blcl9zaXplX29rYCBpcyBhbiBpbmxpbmUgZnVuY3Rpb24gZGVmaW5lZCBpbiBgaW5jbHVkZS9saW51eC9pZWVlODAyMTEtdWhyLmhgIGFuZCBpcyBjYWxsZWQgZnJvbSBhIGZldyBwbGFjZXMuIFNwZWNpZmljYWxseSwgYGllZWU4MDIxMV9jb25maWdfYndgIGluIGBuZXQvbWFjODAyMTEvbWxtZS5jYCwgYGllZWU4MDIxMV9wYXJzZV9leHRlbnNpb25fZWxlbWVudGAgaW4gYG5ldC9tYWM4MDIxMS9wYXJzZS5jYCwgYW5kIGZpbmFsbHkgYHZhbGlkYXRlX3Vocl9vcGVyYXRpb25gIGluIGBuZXQvd2lyZWxlc3Mvbmw4MDIxMS5jYC4gU28geWVhaCwgdGhpcyBkZWZpbml0ZWx5IHNlZW1zIHRvIGJlIGZ1bmN0aW9uaW5nIGFzIGludGVuZGVkLCBwYXJzaW5nIHRob3NlIDgwMi4xMSBVSFIgb3BlcmF0aW9uIGVsZW1lbnRzLiBXYWl0Li4uIFVIUi4gVGhhdCdzIHByb2JhYmx5IFdpLUZpIDgsIG9yIDgwMi4xMWJuLlxuXG5Ob3csIGxldCdzIGlkZW50aWZ5IHRoZSByZWxldmFudCBjb25maWd1cmF0aW9uIG9wdGlvbnMuIENsZWFybHksIGBDT05GSUdfTUFDODAyMTFgIGFuZCBgQ09ORklHX0NGRzgwMjExYCBhcmUgZ29pbmcgdG8gYmUgaW52b2x2ZWQgaGVyZS4gQW5kIHdpdGggZnV6emluZyBpbiBtaW5kLCBJIG5lZWQgdG8gcGlucG9pbnQgdGhlIGtleSBmdW5jdGlvbnMgdG8gdGFyZ2V0LiBMb29rcyBsaWtlIGBpZWVlODAyMTFfY29uZmlnX2J3YCwgYGllZWU4MDIxMV9wYXJzZV9leHRlbnNpb25fZWxlbWVudGAsIGFuZCBgdmFsaWRhdGVfdWhyX29wZXJhdGlvbmAgYXJlIHRoZSBwcmltYXJ5IGNhbmRpZGF0ZXMuIEkgc2hvdWxkIHByb2JhYmx5IGZvY3VzIG9uIGB2YWxpZGF0ZV91aHJfb3BlcmF0aW9uYCBpbiBgbmV0L3dpcmVsZXNzL25sODAyMTEuY2AgZmlyc3QgdG8gdW5kZXJzdGFuZCB0aGUgY29udGV4dCBvZiB0aGUgY2hhbmdlLlxuXG5cbiIsIklucHV0VG9rZW5zIjo0Nzc5LCJPdXRwdXRUb2tlbnMiOjIwLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NDU4LCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTVUMjM6MDU6MjMuMjYzODMzODM3WiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjI2MDUwMzY0MTcsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwidmFsaWRhdGVfdWhyX29wZXJhdGlvblwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJuZXQvd2lyZWxlc3Mvbmw4MDIxMS5jPTQyNz1zdGF0aWMgaW50IHZhbGlkYXRlX3Vocl9jYXBhKGNvbnN0IHN0cnVjdCBubGF0dHIgKmF0dHIsXFxuLS1cXG5uZXQvd2lyZWxlc3Mvbmw4MDIxMS5jLTQzNy1cXG5uZXQvd2lyZWxlc3Mvbmw4MDIxMS5jOjQzODpzdGF0aWMgaW50IHZhbGlkYXRlX3Vocl9vcGVyYXRpb24oY29uc3Qgc3RydWN0IG5sYXR0ciAqYXR0cixcXG5uZXQvd2lyZWxlc3Mvbmw4MDIxMS5jLTQzOS1cXHRcXHRcXHRcXHQgIHN0cnVjdCBuZXRsaW5rX2V4dF9hY2sgKmV4dGFjaylcXG4tLVxcbm5ldC93aXJlbGVzcy9ubDgwMjExLmM9Njk4PXN0YXRpYyBjb25zdCBzdHJ1Y3QgbmxhX3BvbGljeSBubDgwMjExX3BvbGljeVtOVU1fTkw4MDIxMV9BVFRSXSA9IHtcXG4tLVxcbm5ldC93aXJlbGVzcy9ubDgwMjExLmMtMTA3NS1cXHRbTkw4MDIxMV9BVFRSX1VIUl9PUEVSQVRJT05dID1cXG5uZXQvd2lyZWxlc3Mvbmw4MDIxMS5jOjEwNzY6XFx0XFx0TkxBX1BPTElDWV9WQUxJREFURV9GTihOTEFfQklOQVJZLCB2YWxpZGF0ZV91aHJfb3BlcmF0aW9uKSxcXG5uZXQvd2lyZWxlc3Mvbmw4MDIxMS5jLTEwNzctXFx0W05MODAyMTFfQVRUUl9OQU5fQ0hBTk5FTF0gPSBOTEFfUE9MSUNZX05FU1RFRChubDgwMjExX3BvbGljeSksXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE1VDIzOjA1OjI1Ljg2ODg3Nzg1NFoiLCJTZXEiOjUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjM2ODczMzkwNjQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIFBvdGVudGlhbCBTZWN1cml0eSBJbXBsaWNhdGlvbnMqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIGNvZGUgYW5kIEkga25vdyBgdmFsaWRhdGVfdWhyX29wZXJhdGlvbmAgaXMgZGVmaW5pdGVseSByZWFjaGFibGUgdGhyb3VnaCBuZXRsaW5rIHBvbGljeSB2YWxpZGF0aW9uLCB0aGF0J3MgZ29vZCB0byBrbm93LiBOb3csIEkgc2VlIGBpZWVlODAyMTFfcGFyc2VfZXh0ZW5zaW9uX2VsZW1lbnRgIGlzIGxvY2F0ZWQgaW4gYG5ldC9tYWM4MDIxMS9wYXJzZS5jYCBhbmQgYGllZWU4MDIxMV9jb25maWdfYndgIGlzIGluIGBuZXQvbWFjODAyMTEvbWxtZS5jYC4gSSBuZWVkIHRvIGZpZ3VyZSBvdXQgaG93IHRoZXNlIGZ1bmN0aW9ucyBpbnRlcmFjdCBhbmQgaWYgdGhlcmUncyBhbnkgcG90ZW50aWFsIGZvciBtaXN1c2Ugb3IgdnVsbmVyYWJpbGl0aWVzLiBJJ20gc3BlY2lmaWNhbGx5IGN1cmlvdXMgYWJvdXQgdGhlIHJlbGF0aW9uc2hpcCBvZiB0aGVzZSBmdW5jdGlvbnMgdG8gYGllZWU4MDIxMV91aHJfb3Blcl9zaXplX29rYC4gSSdtIGdvaW5nIHRvIGxvb2sgYXQgdGhlIGNyb3NzLXJlZmVyZW5jZXMgYW5kIHNlZSB3aGF0IGNhbGxzIGBpZWVlODAyMTFfdWhyX29wZXJfc2l6ZV9va2AuIFRoYXQgbWlnaHQgZ2l2ZSBtZSBzb21lIGludGVyZXN0aW5nIGxlYWRzLiBJIHdhbnQgdG8gc2VlIGlmIHRoaXMgZnVuY3Rpb24gaXMgdXNlZCBlbHNld2hlcmUsIGFuZCBpZiBpdCBpcywgaG93IGl0J3MgYmVpbmcgdXNlZC5cblxuXG4iLCJJbnB1dFRva2VucyI6NjAzMiwiT3V0cHV0VG9rZW5zIjozMCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjExNSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0xNVQyMzowNToyOS41NTYyMTg4MThaIiwiU2VxIjo2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjI1MDcxMjAzMywiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJpZWVlODAyMTFfdWhyX29wZXJfc2l6ZV9va1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJpbmNsdWRlL2xpbnV4L2llZWU4MDIxMS11aHIuaD0yNjg9c3RydWN0IGllZWU4MDIxMV91aHJfcF9lZGNhX2luZm8ge1xcbi0tXFxuaW5jbHVkZS9saW51eC9pZWVlODAyMTEtdWhyLmgtMjcyLVxcbmluY2x1ZGUvbGludXgvaWVlZTgwMjExLXVoci5oOjI3MzpzdGF0aWMgaW5saW5lIGJvb2wgaWVlZTgwMjExX3Vocl9vcGVyX3NpemVfb2soY29uc3QgdTggKmRhdGEsIHU4IGxlbilcXG5pbmNsdWRlL2xpbnV4L2llZWU4MDIxMS11aHIuaC0yNzQte1xcbi0tXFxuaW5jbHVkZS9saW51eC9pZWVlODAyMTEtdWhyLmgtMzMxLVxcbmluY2x1ZGUvbGludXgvaWVlZTgwMjExLXVoci5oOjMzMjovKiBOb3RlOiBtdXN0IGVuc3VyZSBpZWVlODAyMTFfdWhyX29wZXJfc2l6ZV9vayguLi4pIGZpcnN0ICovXFxuaW5jbHVkZS9saW51eC9pZWVlODAyMTEtdWhyLmgtMzMzLXN0YXRpYyBpbmxpbmUgY29uc3Qgc3RydWN0IGllZWU4MDIxMV91aHJfbnBjYV9pbmZvICpcXG4tLVxcbmluY2x1ZGUvbGludXgvaWVlZTgwMjExLXVoci5oPTM1MT1pZWVlODAyMTFfdWhyX25wY2FfZGlzX3N1YmNoX2JpdG1hcChjb25zdCBzdHJ1Y3QgaWVlZTgwMjExX3Vocl9vcGVyYXRpb24gKm9wZXIpXFxuLS1cXG5pbmNsdWRlL2xpbnV4L2llZWU4MDIxMS11aHIuaC0zNjItXFxuaW5jbHVkZS9saW51eC9pZWVlODAyMTEtdWhyLmg6MzYzOi8qIE5vdGU6IG11c3QgZW5zdXJlIGllZWU4MDIxMV91aHJfb3Blcl9zaXplX29rKC4uLikgZmlyc3QgKi9cXG5pbmNsdWRlL2xpbnV4L2llZWU4MDIxMS11aHIuaC0zNjQtc3RhdGljIGlubGluZSBjb25zdCBzdHJ1Y3QgaWVlZTgwMjExX3Vocl9kYmVfaW5mbyAqXFxuLS1cXG5uZXQvbWFjODAyMTEvbWxtZS5jPTE1OTI9c3RhdGljIGludCBpZWVlODAyMTFfY29uZmlnX2J3KHN0cnVjdCBpZWVlODAyMTFfbGlua19kYXRhICpsaW5rLFxcbi0tXFxubmV0L21hYzgwMjExL21sbWUuYy0xNzAyLVxcdCAgICBjaGFucmVxLm9wZXIubnBjYV9jaGFuIFxcdTAwMjZcXHUwMDI2IGVsZW1zLVxcdTAwM2V1aHJfb3BlcmF0aW9uIFxcdTAwMjZcXHUwMDI2XFxubmV0L21hYzgwMjExL21sbWUuYzoxNzAzOlxcdCAgICBpZWVlODAyMTFfdWhyX29wZXJfc2l6ZV9vaygoY29uc3Qgdm9pZCAqKWVsZW1zLVxcdTAwM2V1aHJfb3BlcmF0aW9uLFxcbm5ldC9tYWM4MDIxMS9tbG1lLmMtMTcwNC1cXHRcXHRcXHRcXHQgICAgICAgZWxlbXMtXFx1MDAzZXVocl9vcGVyYXRpb25fbGVuKSkge1xcbi0tXFxubmV0L21hYzgwMjExL3BhcnNlLmM9NzI9aWVlZTgwMjExX3BhcnNlX2V4dGVuc2lvbl9lbGVtZW50KHUzMiAqY3JjLFxcbi0tXFxubmV0L21hYzgwMjExL3BhcnNlLmMtMjExLVxcdFxcdGNhbGNfY3JjID0gdHJ1ZTtcXG5uZXQvbWFjODAyMTEvcGFyc2UuYzoyMTI6XFx0XFx0aWYgKGllZWU4MDIxMV91aHJfb3Blcl9zaXplX29rKGRhdGEsIGxlbikpIHtcXG5uZXQvbWFjODAyMTEvcGFyc2UuYy0yMTMtXFx0XFx0XFx0ZWxlbXMtXFx1MDAzZXVocl9vcGVyYXRpb24gPSBkYXRhO1xcbi0tXFxubmV0L3dpcmVsZXNzL25sODAyMTEuYz00Mzg9c3RhdGljIGludCB2YWxpZGF0ZV91aHJfb3BlcmF0aW9uKGNvbnN0IHN0cnVjdCBubGF0dHIgKmF0dHIsXFxuLS1cXG5uZXQvd2lyZWxlc3Mvbmw4MDIxMS5jLTQ0My1cXG5uZXQvd2lyZWxlc3Mvbmw4MDIxMS5jOjQ0NDpcXHRpZiAoIWllZWU4MDIxMV91aHJfb3Blcl9zaXplX29rKGRhdGEsIGxlbikpXFxubmV0L3dpcmVsZXNzL25sODAyMTEuYy00NDUtXFx0XFx0cmV0dXJuIC1FSU5WQUw7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE1VDIzOjA1OjMxLjgwNjkzNjg0MVoiLCJTZXEiOjcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQ0NzkyNDI2NzgsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSB0YWtlIG9uIHRob3NlIGZ1bmN0aW9ucyBhbmQgdGhlIGFyZWFzIEkgbmVlZCB0byBmb2N1cyBvbjpcblxuKipNeSBJbW1lZGlhdGUgQXNzZXNzbWVudCoqXG5cbkFscmlnaHQsIGxldCdzIGdldCBkb3duIHRvIGJyYXNzIHRhY2tzLiBCYXNlZCBvbiB0aGUgZ2l2ZW4gZnVuY3Rpb25zLCBteSBhdHRlbnRpb24gaXMgaW1tZWRpYXRlbHkgZHJhd24gdG8gYSBmZXcga2V5IGFyZWFzIHdpdGhpbiB0aGUgODAyLjExIHN0YWNrLiBXZSBoYXZlIHRocmVlIG1haW4gZnVuY3Rpb25zIGZsYWdnZWQgZm9yIGludmVzdGlnYXRpb246IGBpZWVlODAyMTFfY29uZmlnX2J3YCwgYGllZWU4MDIxMV9wYXJzZV9leHRlbnNpb25fZWxlbWVudGAsIGFuZCBgdmFsaWRhdGVfdWhyX29wZXJhdGlvbmAuIEltbWVkaWF0ZWx5LCBteSBicmFpbiBzdGFydHMgcnVubmluZyB0aHJvdWdoIHRoZSBwb3RlbnRpYWwgaW1wbGljYXRpb25zLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCBob3cgdGhlc2UgZnVuY3Rpb25zIGludGVyYWN0LCBhbmQgd2hhdCB0aGUgb3ZlcmFsbCBzeXN0ZW0gYmVoYXZpb3VyIGlzIHdoZW4gdGhleSBhcmUgY2FsbGVkLlxuXG5gaWVlZTgwMjExX2NvbmZpZ19id2AgaXMsIG9mIGNvdXJzZSwgY3JpdGljYWwgZm9yIGRlZmluaW5nIGJhbmR3aWR0aCBzZXR0aW5ncy4gSSBuZWVkIHRvIGV4YW1pbmUgaXRzIGltcGxlbWVudGF0aW9uLCBlc3BlY2lhbGx5IGhvdyBpdCBoYW5kbGVzIHZhcmlvdXMgYmFuZHdpZHRoIG1vZGVzLCBjaGFubmVsIHNlbGVjdGlvbiwgYW5kIGFueSBwb3RlbnRpYWwgaW50ZXJhY3Rpb25zIHdpdGggcmVnaW9uYWwgcmVndWxhdG9yeSBjb25zdHJhaW50cy4gSSdsbCBuZWVkIHRvIGxvb2sgZm9yIGFueSBwb3RlbnRpYWwgZm9yIGJ1ZmZlciBvdmVyZmxvd3Mgb3IgaW5jb3JyZWN0IHBhcmFtZXRlciBoYW5kbGluZy5cblxuYGllZWU4MDIxMV9wYXJzZV9leHRlbnNpb25fZWxlbWVudGAgaXMgYW5vdGhlciB2aXRhbCBwaWVjZSBvZiB0aGUgcHV6emxlLiBUaGlzIGxpa2VseSBoYW5kbGVzIHRoZSBwYXJzaW5nIG9mIHZlbmRvci1zcGVjaWZpYyBvciBzdGFuZGFyZCBleHRlbnNpb25zIHdpdGhpbiB0aGUgODAyLjExIGZyYW1lLiBUaGlzIGlzIGEgY29tbW9uIGF0dGFjayB2ZWN0b3IsIGFuZCBJIG5lZWQgdG8gYXNzZXNzIGhvdyByb2J1c3QgdGhlIHBhcnNpbmcgbG9naWMgaXMuIEFyZSB0aGVyZSBhbnkga25vd24gdnVsbmVyYWJpbGl0aWVzIHJlbGF0ZWQgdG8gbWFsZm9ybWVkIGV4dGVuc2lvbiBlbGVtZW50cywgcGFydGljdWxhcmx5IHRob3NlIGludm9sdmluZyBzaXplIGxpbWl0cyBvciBkYXRhIHZhbGlkYXRpb24/IFRoZSBkZXRhaWxzIG9mIHRoZSBwYXJzaW5nIGFyZSBnb2luZyB0byBiZSBrZXksIGVzcGVjaWFsbHkgaG93IGl0IGhhbmRsZXMgdHlwZS1sZW5ndGgtdmFsdWUgKFRMVikgc3RydWN0dXJlcy5cblxuRmluYWxseSwgYHZhbGlkYXRlX3Vocl9vcGVyYXRpb25gIHN1Z2dlc3RzIHdlJ3JlIGxvb2tpbmcgYXQgdGhlIHN1cHBvcnQgZm9yIFVsdHJhIEhpZ2ggUmF0ZSAoVUhSKSBtb2Rlcy4gSSBuZWVkIHRvIHNlZSBob3cgdGhlIHN5c3RlbSBlbnN1cmVzIHRoYXQgdGhlc2UgbW9kZXMgYXJlIHByb3Blcmx5IHZhbGlkYXRlZCBhbmQgdGhhdCBhbGwgdGhlIG5lY2Vzc2FyeSBwcmVyZXF1aXNpdGVzIGFyZSBtZXQuIFRoaXMgaW5jbHVkZXMgdGhlIHBvdGVudGlhbCBmb3IgcG93ZXIgY29uc3VtcHRpb24gY29uc2lkZXJhdGlvbnMsIHNwZWN0cnVtIGNvbXBhdGliaWxpdHksIGFuZCBvZiBjb3Vyc2UsIGFueSBwb3NzaWJsZSBzZWN1cml0eSB2dWxuZXJhYmlsaXRpZXMgaW5oZXJlbnQgaW4gc3VwcG9ydGluZyBhIGhpZ2hlciBkYXRhIHJhdGUuXG5cbk15IG5leHQgc3RlcCBpcyB0byBkaXZlIGludG8gdGhlIGNvbmZpZ3VyYXRpb24gZmlsZXMuIEknbSBnb2luZyB0byBxdWlja2x5IGNoZWNrIHRoZSByZWxldmFudCBjb25maWd1cmF0aW9uIGZpbGVzIHdpdGhpbiBgbmV0L21hYzgwMjExYCBhbmQgYG5ldC93aXJlbGVzc2AgdG8gZ2V0IGEgaGlnaC1sZXZlbCBvdmVydmlldyBvZiB0aGUgb3ZlcmFsbCBzeXN0ZW0gc2V0dXAsIGluY2x1ZGluZyBhbnkgZGVwZW5kZW5jaWVzLCBkZWZhdWx0IHZhbHVlcywgYW5kIGdlbmVyYWwgYXJjaGl0ZWN0dXJlLiBUaGVuLCBJIGNhbiBzdGFydCBsb29raW5nIGF0IHRoZSBzb3VyY2UgY29kZSBmb3IgZWFjaCBvZiB0aG9zZSBmdW5jdGlvbnMsIGZvY3VzaW5nIG9uIGRhdGEgdHlwZXMsIGVycm9yIGhhbmRsaW5nLCBpbnB1dCB2YWxpZGF0aW9uLCBhbmQgYW55IGludGVyYWN0aW9ucyB3aXRoIGV4dGVybmFsIG1vZHVsZXMgb3IgaGFyZHdhcmUgcmVnaXN0ZXJzLiBUaGlzIGlzIHdoZXJlIHRoZSByZWFsIHdvcmsgYmVnaW5zLlxuXG5cbiIsIklucHV0VG9rZW5zIjo3MjczLCJPdXRwdXRUb2tlbnMiOjIxLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NzIsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMTVUMjM6MDU6MzYuMjg2MTgxNzY5WiIsIlNlcSI6OCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjIxNjMwNTU3OTYsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY29uZmlnIE1BQzgwMjExXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL3ZpcnR1YWwvS2NvbmZpZzoxOmNvbmZpZyBNQUM4MDIxMV9IV1NJTVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3ZpcnR1YWwvS2NvbmZpZy0yLVxcdHRyaXN0YXRlIFxcXCJTaW11bGF0ZWQgcmFkaW8gdGVzdGluZyB0b29sIGZvciBtYWM4MDIxMVxcXCJcXG4tLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTEtIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5XFxubmV0L21hYzgwMjExL0tjb25maWc6Mjpjb25maWcgTUFDODAyMTFcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0zLVxcdHRyaXN0YXRlIFxcXCJHZW5lcmljIElFRUUgODAyLjExIE5ldHdvcmtpbmcgU3RhY2sgKG1hYzgwMjExKVxcXCJcXG4tLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnPTE5PWlmIE1BQzgwMjExICE9IG5cXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yMC1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoyMTpjb25maWcgTUFDODAyMTFfSEFTX1JDXFxubmV0L21hYzgwMjExL0tjb25maWctMjItXFx0Ym9vbFxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTIzLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjI0OmNvbmZpZyBNQUM4MDIxMV9SQ19NSU5TVFJFTFxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTI1LVxcdGJvb2wgXFxcIk1pbnN0cmVsXFxcIiBpZiBFWFBFUlRcXG4tLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnPTMxPWNob2ljZVxcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWctNDAtXFxubmV0L21hYzgwMjExL0tjb25maWc6NDE6Y29uZmlnIE1BQzgwMjExX1JDX0RFRkFVTFRfTUlOU1RSRUxcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy00Mi1cXHRib29sIFxcXCJNaW5zdHJlbFxcXCJcXG4tLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnPTQ4PWVuZGNob2ljZVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTQ5LVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjUwOmNvbmZpZyBNQUM4MDIxMV9SQ19ERUZBVUxUXFxubmV0L21hYzgwMjExL0tjb25maWctNTEtXFx0c3RyaW5nXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZz01Nz1jb21tZW50IFxcXCJTb21lIHdpcmVsZXNzIGRyaXZlcnMgcmVxdWlyZSBhIHJhdGUgY29udHJvbCBhbGdvcml0aG1cXFwiXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZy01OS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZzo2MDpjb25maWcgTUFDODAyMTFfS1VOSVRfVEVTVFxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTYxLVxcdHRyaXN0YXRlIFxcXCJLVW5pdCB0ZXN0cyBmb3IgbWFjODAyMTFcXFwiIGlmICFLVU5JVF9BTExfVEVTVFNcXG4tLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTY5LVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjcwOmNvbmZpZyBNQUM4MDIxMV9NRVNIXFxubmV0L21hYzgwMjExL0tjb25maWctNzEtXFx0Ym9vbCBcXFwiRW5hYmxlIG1hYzgwMjExIG1lc2ggbmV0d29ya2luZyBzdXBwb3J0XFxcIlxcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWctNzgtXFxubmV0L21hYzgwMjExL0tjb25maWc6Nzk6Y29uZmlnIE1BQzgwMjExX0xFRFNcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy04MC1cXHRib29sIFxcXCJFbmFibGUgTEVEIHRyaWdnZXJzXFxcIlxcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWctODctXFxubmV0L21hYzgwMjExL0tjb25maWc6ODg6Y29uZmlnIE1BQzgwMjExX0RFQlVHRlNcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy04OS1cXHRib29sIFxcXCJFeHBvcnQgbWFjODAyMTEgaW50ZXJuYWxzIGluIERlYnVnRlNcXFwiXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZy05Ni1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZzo5Nzpjb25maWcgTUFDODAyMTFfTUVTU0FHRV9UUkFDSU5HXFxubmV0L21hYzgwMjExL0tjb25maWctOTgtXFx0Ym9vbCBcXFwiVHJhY2UgYWxsIG1hYzgwMjExIGRlYnVnIG1lc3NhZ2VzXFxcIlxcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWctMTA5LVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjExMDptZW51Y29uZmlnIE1BQzgwMjExX0RFQlVHX01FTlVcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xMTEtXFx0Ym9vbCBcXFwiU2VsZWN0IG1hYzgwMjExIGRlYnVnZ2luZyBmZWF0dXJlc1xcXCJcXG4tLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTExNS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoxMTY6Y29uZmlnIE1BQzgwMjExX05PSU5MSU5FXFxubmV0L21hYzgwMjExL0tjb25maWctMTE3LVxcdGJvb2wgXFxcIkRvIG5vdCBpbmxpbmUgVFgvUlggaGFuZGxlcnNcXFwiXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xMzEtXFxubmV0L21hYzgwMjExL0tjb25maWc6MTMyOmNvbmZpZyBNQUM4MDIxMV9WRVJCT1NFX0RFQlVHXFxubmV0L21hYzgwMjExL0tjb25maWctMTMzLVxcdGJvb2wgXFxcIlZlcmJvc2UgZGVidWdnaW5nIG91dHB1dFxcXCJcXG4tLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTE0Mi1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoxNDM6Y29uZmlnIE1BQzgwMjExX01MTUVfREVCVUdcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xNDQtXFx0Ym9vbCBcXFwiVmVyYm9zZSBtYW5hZ2VkIE1MTUUgb3V0cHV0XFxcIlxcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWctMTUzLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjE1NDpjb25maWcgTUFDODAyMTFfU1RBX0RFQlVHXFxubmV0L21hYzgwMjExL0tjb25maWctMTU1LVxcdGJvb2wgXFxcIlZlcmJvc2Ugc3RhdGlvbiBkZWJ1Z2dpbmdcXFwiXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xNjItXFxubmV0L21hYzgwMjExL0tjb25maWc6MTYzOmNvbmZpZyBNQUM4MDIxMV9IVF9ERUJVR1xcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTE2NC1cXHRib29sIFxcXCJWZXJib3NlIEhUIGRlYnVnZ2luZ1xcXCJcXG4tLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTE3NC1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoxNzU6Y29uZmlnIE1BQzgwMjExX09DQl9ERUJVR1xcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTE3Ni1cXHRib29sIFxcXCJWZXJib3NlIE9DQiBkZWJ1Z2dpbmdcXFwiXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xODUtXFxubmV0L21hYzgwMjExL0tjb25maWc6MTg2OmNvbmZpZyBNQUM4MDIxMV9JQlNTX0RFQlVHXFxubmV0L21hYzgwMjExL0tjb25maWctMTg3LVxcdGJvb2wgXFxcIlZlcmJvc2UgSUJTUyBkZWJ1Z2dpbmdcXFwiXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xOTYtXFxubmV0L21hYzgwMjExL0tjb25maWc6MTk3OmNvbmZpZyBNQUM4MDIxMV9QU19ERUJVR1xcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTE5OC1cXHRib29sIFxcXCJWZXJib3NlIHBvd2Vyc2F2ZSBtb2RlIGRlYnVnZ2luZ1xcXCJcXG4tLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTIwOC1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoyMDk6Y29uZmlnIE1BQzgwMjExX01QTF9ERUJVR1xcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTIxMC1cXHRib29sIFxcXCJWZXJib3NlIG1lc2ggcGVlciBsaW5rIGRlYnVnZ2luZ1xcXCJcXG4tLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTIyMS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoyMjI6Y29uZmlnIE1BQzgwMjExX01QQVRIX0RFQlVHXFxubmV0L21hYzgwMjExL0tjb25maWctMjIzLVxcdGJvb2wgXFxcIlZlcmJvc2UgbWVzaCBwYXRoIGRlYnVnZ2luZ1xcXCJcXG4tLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTIzNC1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoyMzU6Y29uZmlnIE1BQzgwMjExX01IV01QX0RFQlVHXFxubmV0L21hYzgwMjExL0tjb25maWctMjM2LVxcdGJvb2wgXFxcIlZlcmJvc2UgbWVzaCBIV01QIHJvdXRpbmcgZGVidWdnaW5nXFxcIlxcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWctMjQ3LVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjI0ODpjb25maWcgTUFDODAyMTFfTUVTSF9TWU5DX0RFQlVHXFxubmV0L21hYzgwMjExL0tjb25maWctMjQ5LVxcdGJvb2wgXFxcIlZlcmJvc2UgbWVzaCBzeW5jaHJvbml6YXRpb24gZGVidWdnaW5nXFxcIlxcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWctMjU4LVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjI1OTpjb25maWcgTUFDODAyMTFfTUVTSF9DU0FfREVCVUdcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yNjAtXFx0Ym9vbCBcXFwiVmVyYm9zZSBtZXNoIGNoYW5uZWwgc3dpdGNoIGRlYnVnZ2luZ1xcXCJcXG4tLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTI2OS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoyNzA6Y29uZmlnIE1BQzgwMjExX01FU0hfUFNfREVCVUdcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yNzEtXFx0Ym9vbCBcXFwiVmVyYm9zZSBtZXNoIHBvd2Vyc2F2ZSBkZWJ1Z2dpbmdcXFwiXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yODAtXFxubmV0L21hYzgwMjExL0tjb25maWc6MjgxOmNvbmZpZyBNQUM4MDIxMV9URExTX0RFQlVHXFxubmV0L21hYzgwMjExL0tjb25maWctMjgyLVxcdGJvb2wgXFxcIlZlcmJvc2UgVERMUyBkZWJ1Z2dpbmdcXFwiXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yOTItXFxubmV0L21hYzgwMjExL0tjb25maWc6MjkzOmNvbmZpZyBNQUM4MDIxMV9ERUJVR19DT1VOVEVSU1xcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTI5NC1cXHRib29sIFxcXCJFeHRyYSBzdGF0aXN0aWNzIGZvciBUWC9SWCBkZWJ1Z2dpbmdcXFwiXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0zMDctXFxubmV0L21hYzgwMjExL0tjb25maWc6MzA4OmNvbmZpZyBNQUM4MDIxMV9TVEFfSEFTSF9NQVhfU0laRVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTMwOS1cXHRpbnQgXFxcIlN0YXRpb24gaGFzaCB0YWJsZSBtYXhpbXVtIHNpemVcXFwiIGlmIE1BQzgwMjExX0RFQlVHX01FTlVcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTVUMjM6MDU6MzguNDQ5MjQzMzE1WiIsIlNlcSI6OSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NTU0OTQwMzgxNSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IHRha2Ugb24gdGhvc2UgY29uZmlnIHJlcXVpcmVtZW50cywgdGFpbG9yZWQgZm9yIGEgZmVsbG93IGV4cGVydDpcblxuKipDb25maWd1cmF0aW9uIERlZXAgRGl2ZSBmb3IgT3B0aW1hbCBUZXN0aW5nKipcblxuQWxyaWdodCwgc28gSSBzZWUgd2UncmUgZGVhbGluZyB3aXRoIGEgY291cGxlIG9mIGtleSBjb25maWd1cmF0aW9uIGVsZW1lbnRzIGhlcmU6IGBNQUM4MDIxMWAgYW5kIGBNQUM4MDIxMV9IV1NJTWAuIEknbSBpbW1lZGlhdGVseSB0aGlua2luZywgXCJDbGFzc2ljLCBgTUFDODAyMTFgIGlzIHRoZSBmb3VuZGF0aW9uLCBuYXR1cmFsbHkuXCIgQnV0IHRoZSBpbmNsdXNpb24gb2YgYE1BQzgwMjExX0hXU0lNYCByZWFsbHkgY2F0Y2hlcyBteSBleWUg4oCTIHRoYXQgc2lnbmFscyB3ZSdyZSBnZWFyaW5nIHVwIGZvciBzb21lIHNlcmlvdXMgaGFyZHdhcmUgc2ltdWxhdGlvbiBhbmQgdGVzdGluZywgd2hpY2ggaXMgZXhjZWxsZW50LiBJIGFsd2F5cyBhcHByZWNpYXRlIGEgcm9idXN0IHRlc3Rpbmcgc2V0dXAuIEl0IHN0cmVhbWxpbmVzIHRoZSBkZWJ1ZyBjeWNsZSBkcmFtYXRpY2FsbHkuXG5cblRoZW4sIHRoZXJlJ3MgYENGRzgwMjExYCBsaXN0ZWQgYXMgYSBkZXBlbmRlbmN5LiBJdCdzIGFsbW9zdCBheGlvbWF0aWMsIGJ1dCBpdCdzIGdvb2QgdG8gY2FsbCBpdCBvdXQuIFRoZSBjb250cm9sIGludGVyZmFjZSBpcyBlc3NlbnRpYWwuXG5cbkknbSBtZW50YWxseSBydW5uaW5nIHRocm91Z2ggbXkgbWVudGFsIGNoZWNrbGlzdDogSSdsbCB3YW50IHRvIHF1aWNrbHkgY29uZmlybSB0aGUgcHJvcGVyIGVuYWJsZW1lbnQgYW5kIGludGVyZGVwZW5kZW5jaWVzIG9mIGBDRkc4MDIxMWAgYW5kIGBNQUM4MDIxMV9IV1NJTWAsIGVuc3VyaW5nIHRoZXJlIGFyZSBubyB1bmZvcmVzZWVuIGNvbmZsaWN0cyBvciBwb3RlbnRpYWwgZ290Y2hhcyB0aGF0IG1pZ2h0IHRocm93IGEgd3JlbmNoIGludG8gdGhlIHNpbXVsYXRpb24gcHJvY2Vzcy4gTGV0J3MgbWFrZSBzdXJlIHRoZXNlIGNvbmZpZ3MgYXJlIHNldCBleGFjdGx5IGFzIHdlIGV4cGVjdC4gVGhhdCdzIHRoZSBmaXJzdCBvcmRlciBvZiBidXNpbmVzcywganVzdCB0byBiZSBzdXJlLlxuXG5cbiIsIklucHV0VG9rZW5zIjoxMDEyMCwiT3V0cHV0VG9rZW5zIjoyMiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjcyLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE1VDIzOjA1OjQzLjk5ODY1MDAzWiIsIlNlcSI6MTAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyMTcwNjczNjk1LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNvbmZpZyBDRkc4MDIxMVwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJuZXQvd2lyZWxlc3MvS2NvbmZpZz0xND1jb25maWcgV0VYVF9QUklWXFxuLS1cXG5uZXQvd2lyZWxlc3MvS2NvbmZpZy0xNi1cXG5uZXQvd2lyZWxlc3MvS2NvbmZpZzoxNzpjb25maWcgQ0ZHODAyMTFcXG5uZXQvd2lyZWxlc3MvS2NvbmZpZy0xOC1cXHR0cmlzdGF0ZSBcXFwiY2ZnODAyMTEgLSB3aXJlbGVzcyBjb25maWd1cmF0aW9uIEFQSVxcXCJcXG4tLVxcbm5ldC93aXJlbGVzcy9LY29uZmlnPTM4PWNvbmZpZyBOTDgwMjExX1RFU1RNT0RFXFxuLS1cXG5uZXQvd2lyZWxlc3MvS2NvbmZpZy01MS1cXG5uZXQvd2lyZWxlc3MvS2NvbmZpZzo1Mjpjb25maWcgQ0ZHODAyMTFfREVWRUxPUEVSX1dBUk5JTkdTXFxubmV0L3dpcmVsZXNzL0tjb25maWctNTMtXFx0Ym9vbCBcXFwiZW5hYmxlIGRldmVsb3BlciB3YXJuaW5nc1xcXCJcXG4tLVxcbm5ldC93aXJlbGVzcy9LY29uZmlnLTY3LVxcbm5ldC93aXJlbGVzcy9LY29uZmlnOjY4OmNvbmZpZyBDRkc4MDIxMV9DRVJUSUZJQ0FUSU9OX09OVVNcXG5uZXQvd2lyZWxlc3MvS2NvbmZpZy02OS1cXHRib29sIFxcXCJjZmc4MDIxMSBjZXJ0aWZpY2F0aW9uIG9udXNcXFwiXFxuLS1cXG5uZXQvd2lyZWxlc3MvS2NvbmZpZy04OC1cXG5uZXQvd2lyZWxlc3MvS2NvbmZpZzo4OTpjb25maWcgQ0ZHODAyMTFfUkVRVUlSRV9TSUdORURfUkVHREJcXG5uZXQvd2lyZWxlc3MvS2NvbmZpZy05MC1cXHRib29sIFxcXCJyZXF1aXJlIHJlZ2RiIHNpZ25hdHVyZVxcXCIgaWYgQ0ZHODAyMTFfQ0VSVElGSUNBVElPTl9PTlVTXFxuLS1cXG5uZXQvd2lyZWxlc3MvS2NvbmZpZy05OC1cXG5uZXQvd2lyZWxlc3MvS2NvbmZpZzo5OTpjb25maWcgQ0ZHODAyMTFfVVNFX0tFUk5FTF9SRUdEQl9LRVlTXFxubmV0L3dpcmVsZXNzL0tjb25maWctMTAwLVxcdGJvb2wgXFxcImFsbG93IHJlZ2RiIGtleXMgc2hpcHBlZCB3aXRoIHRoZSBrZXJuZWxcXFwiIGlmIENGRzgwMjExX0NFUlRJRklDQVRJT05fT05VU1xcbi0tXFxubmV0L3dpcmVsZXNzL0tjb25maWctMTEwLVxcbm5ldC93aXJlbGVzcy9LY29uZmlnOjExMTpjb25maWcgQ0ZHODAyMTFfRVhUUkFfUkVHREJfS0VZRElSXFxubmV0L3dpcmVsZXNzL0tjb25maWctMTEyLVxcdHN0cmluZyBcXFwiYWRkaXRpb25hbCByZWdkYiBrZXkgZGlyZWN0b3J5XFxcIiBpZiBDRkc4MDIxMV9DRVJUSUZJQ0FUSU9OX09OVVNcXG4tLVxcbm5ldC93aXJlbGVzcy9LY29uZmlnLTEyMS1cXG5uZXQvd2lyZWxlc3MvS2NvbmZpZzoxMjI6Y29uZmlnIENGRzgwMjExX1JFR19DRUxMVUxBUl9ISU5UU1xcbm5ldC93aXJlbGVzcy9LY29uZmlnLTEyMy1cXHRib29sIFxcXCJjZmc4MDIxMSByZWd1bGF0b3J5IHN1cHBvcnQgZm9yIGNlbGx1bGFyIGJhc2Ugc3RhdGlvbiBoaW50c1xcXCJcXG4tLVxcbm5ldC93aXJlbGVzcy9LY29uZmlnLTEzNC1cXG5uZXQvd2lyZWxlc3MvS2NvbmZpZzoxMzU6Y29uZmlnIENGRzgwMjExX1JFR19SRUxBWF9OT19JUlxcbm5ldC93aXJlbGVzcy9LY29uZmlnLTEzNi1cXHRib29sIFxcXCJjZmc4MDIxMSBzdXBwb3J0IGZvciBOT19JUiByZWxheGF0aW9uXFxcIlxcbi0tXFxubmV0L3dpcmVsZXNzL0tjb25maWctMTU4LVxcbm5ldC93aXJlbGVzcy9LY29uZmlnOjE1OTpjb25maWcgQ0ZHODAyMTFfREVGQVVMVF9QU1xcbm5ldC93aXJlbGVzcy9LY29uZmlnLTE2MC1cXHRib29sIFxcXCJlbmFibGUgcG93ZXJzYXZlIGJ5IGRlZmF1bHRcXFwiXFxuLS1cXG5uZXQvd2lyZWxlc3MvS2NvbmZpZy0xNjgtXFxubmV0L3dpcmVsZXNzL0tjb25maWc6MTY5OmNvbmZpZyBDRkc4MDIxMV9ERUJVR0ZTXFxubmV0L3dpcmVsZXNzL0tjb25maWctMTcwLVxcdGJvb2wgXFxcImNmZzgwMjExIERlYnVnRlMgZW50cmllc1xcXCJcXG4tLVxcbm5ldC93aXJlbGVzcy9LY29uZmlnLTE3Ni1cXG5uZXQvd2lyZWxlc3MvS2NvbmZpZzoxNzc6Y29uZmlnIENGRzgwMjExX0NSREFfU1VQUE9SVFxcbm5ldC93aXJlbGVzcy9LY29uZmlnLTE3OC1cXHRib29sIFxcXCJzdXBwb3J0IENSREFcXFwiIGlmIEVYUEVSVFxcbi0tXFxubmV0L3dpcmVsZXNzL0tjb25maWctMTg2LVxcbm5ldC93aXJlbGVzcy9LY29uZmlnOjE4Nzpjb25maWcgQ0ZHODAyMTFfV0VYVFxcbm5ldC93aXJlbGVzcy9LY29uZmlnLTE4OC1cXHRib29sIFxcXCJjZmc4MDIxMSB3aXJlbGVzcyBleHRlbnNpb25zIGNvbXBhdGliaWxpdHlcXFwiXFxuLS1cXG5uZXQvd2lyZWxlc3MvS2NvbmZpZy0xOTMtXFxubmV0L3dpcmVsZXNzL0tjb25maWc6MTk0OmNvbmZpZyBDRkc4MDIxMV9LVU5JVF9URVNUXFxubmV0L3dpcmVsZXNzL0tjb25maWctMTk1LVxcdHRyaXN0YXRlIFxcXCJLVW5pdCB0ZXN0cyBmb3IgY2ZnODAyMTFcXFwiIGlmICFLVU5JVF9BTExfVEVTVFNcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTVUMjM6MDU6NDYuMTY5MzMyNDI2WiIsIlNlcSI6MTEsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjgzOTg5NTEwNjcsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqTXkgQW5hbHlzaXMgb2YgdGhlIFRhcmdldCBDb2RlKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCBhbmQgaW1tZWRpYXRlbHkgdGhlIHR3byBjb3JlIGNvbmZpZ3MganVtcCBvdXQ6IGBDRkc4MDIxMWAgYW5kIGBNQUM4MDIxMWAuIE5vdywgbGV0J3MgYnJlYWsgZG93biB0aGUgZnVuY3Rpb25zIGludm9sdmVkIGFuZCB0aGVpciBjb250ZXh0LiBgdmFsaWRhdGVfdWhyX29wZXJhdGlvbmAgcmVzaWRlcyBpbiBgbmV0L3dpcmVsZXNzL25sODAyMTEuY2AsIHdoaWNoLCBhcyB3ZSBrbm93LCBpcyBwYXJ0IG9mIGBDRkc4MDIxMWAuIE1lYW53aGlsZSwgYGllZWU4MDIxMV9wYXJzZV9leHRlbnNpb25fZWxlbWVudGAgaXMgaW4gYG5ldC9tYWM4MDIxMS9wYXJzZS5jYCBhbmQgYGllZWU4MDIxMV9jb25maWdfYndgIGlzIGluIGBuZXQvbWFjODAyMTEvbWxtZS5jYCwgYm90aCBmaXJtbHkgd2l0aGluIGBNQUM4MDIxMWAuXG5cblRoZSBpbml0aWFsIGZ1bmN0aW9ucyBJJ20gZm9jdXNpbmcgb24sIHRoZW4sIGFyZSBgdmFsaWRhdGVfdWhyX29wZXJhdGlvbmAsIGBpZWVlODAyMTFfcGFyc2VfZXh0ZW5zaW9uX2VsZW1lbnRgLCBhbmQgYGllZWU4MDIxMV9jb25maWdfYndgLiBJIHNob3VsZCBkb3VibGUtY2hlY2sgdG8gbWFrZSBzdXJlIHRoZXJlIGFyZW4ndCBhbnkgb3RoZXIgZnVuY3Rpb25zIGludm9sdmVkLiBBaCwgcmlnaHQsIHRoZXJlJ3MgYGllZWU4MDIxMV91aHJfb3Blcl9zaXplX29rYCwgd2hpY2ggaXMgYW4gaW5saW5lIGZ1bmN0aW9uLiBUaGlzIHBhdGNoIG1vZGlmaWVzIHRoYXQsIGFuZCBpdHMgY2FsbGVycy4gVGhlIGNhbGxlcnMgb2YgYGllZWU4MDIxMV91aHJfb3Blcl9zaXplX29rYCBhcmUgYGllZWU4MDIxMV9jb25maWdfYndgLCBgaWVlZTgwMjExX3BhcnNlX2V4dGVuc2lvbl9lbGVtZW50YCwgYW5kIGB2YWxpZGF0ZV91aHJfb3BlcmF0aW9uYC5cblxuSSByZW1lbWJlciBJIGdyZXBwZWQgdGhlIGNvZGViYXNlIGVhcmxpZXIsIHNvIEkgc2hvdWxkIGJlIGNvbmZpZGVudCB0aGF0IHRob3NlIGFyZSBpbmRlZWQgYWxsIHRoZSBjYWxsZXJzLlxuXG5OZXh0LCBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgcmVhY2hhYmlsaXR5IG9mIHRoZXNlIGZ1bmN0aW9ucy4gYHZhbGlkYXRlX3Vocl9vcGVyYXRpb25gIGlzIGFjY2Vzc2libGUgZnJvbSB1c2VyIHNwYWNlLCBiZWNhdXNlIGl0J3MgYSBuZXRsaW5rIHBvbGljeSB2YWxpZGF0aW9uIGZ1bmN0aW9uIGZvciBgTkw4MDIxMV9BVFRSX1VIUl9PUEVSQVRJT05gLiBUaGF0J3MgYSBnb29kIHRhcmdldC4gYGllZWU4MDIxMV9wYXJzZV9leHRlbnNpb25fZWxlbWVudGAgaXMgYSBwYXJzZXIgZm9yIG1hbmFnZW1lbnQgZnJhbWVzIOKAkyBiZWFjb25zLCBwcm9iZSByZXNwb25zZXMsIHRoYXQgc29ydCBvZiB0aGluZy4gYGllZWU4MDIxMV9jb25maWdfYndgLCBvbiB0aGUgb3RoZXIgaGFuZCwgY29tZXMgaW50byBwbGF5IGR1cmluZyBhc3NvY2lhdGlvbiBvciBjaGFubmVsIHN3aXRjaGVzLCBzbyB0aGF0J3MgaW50ZXJlc3RpbmcgdG9vLlxuXG5HaXZlbiBhbGwgdGhpcywgdGhpcyBpcyBkZWZpbml0ZWx5IHByaW1lIGZ1enppbmcgbWF0ZXJpYWwuIEl0IGhhcyB1c2VyLXNwYWNlIHJlYWNoYWJpbGl0eSBhbmQgdmFyaW91cyBwb3RlbnRpYWxseSBpbnRlcmVzdGluZyBpbnB1dHMuIFRoZSBrZXkgY29uZmlncyBhcmUgY2xlYXJseSBgQ0ZHODAyMTFgLCBgTUFDODAyMTFgLCBhbmQsIGZvciBnb29kIG1lYXN1cmUgYW5kIHRob3JvdWdoIHRlc3RpbmcsIGBNQUM4MDIxMV9IV1NJTWAgdG8gYWxsb3cgZm9yIHNvZnR3YXJlLWJhc2VkIGhhcmR3YXJlIHNpbXVsYXRpb24uIEknbGwgbmVlZCB0byBmb2N1cyBvbiB0aGVzZSBzeW1ib2xzOiBgdmFsaWRhdGVfdWhyX29wZXJhdGlvbmAsIGBpZWVlODAyMTFfcGFyc2VfZXh0ZW5zaW9uX2VsZW1lbnRgLCBhbmQgYGllZWU4MDIxMV9jb25maWdfYndgLiBOb3csIGxldCBtZSBnZXQgdGhlc2UgcmVzdWx0cyByZWFkeS5cblxuXG4iLCJJbnB1dFRva2VucyI6MTE0MTQsIk91dHB1dFRva2VucyI6MjE5LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NTQ5LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE1VDIzOjA1OjU0LjU2ODI4NTk1M1oiLCJTZXEiOjEyLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjEyMjAwNTA3NywiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiQ0ZHODAyMTFcIixcbiAgICBcIk1BQzgwMjExXCIsXG4gICAgXCJNQUM4MDIxMV9IV1NJTVwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcInZhbGlkYXRlX3Vocl9vcGVyYXRpb25cIixcbiAgICBcImllZWU4MDIxMV9wYXJzZV9leHRlbnNpb25fZWxlbWVudFwiLFxuICAgIFwiaWVlZTgwMjExX2NvbmZpZ19id1wiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBwYXJzaW5nIGFuZCB2YWxpZGF0aW9uIGxvZ2ljIGZvciBJRUVFIDgwMi4xMSBVSFIgKFVsdHJhIEhpZ2ggUmVsaWFiaWxpdHkpIG9wZXJhdGlvbiBlbGVtZW50cy4gSXQgY2hhbmdlcyB0aGUgc2l6ZSB2YWxpZGF0aW9uIGxvZ2ljIGJ5IGNoZWNraW5nIGZvciBwcmVzZW5jZSBmbGFncyBpbnN0ZWFkIG9mIGVuYWJsZSBmbGFncy4gVGhlIG1vZGlmaWVkIGlubGluZSBmdW5jdGlvbiBpcyBjYWxsZWQgZnJvbSBuZXRsaW5rIGF0dHJpYnV0ZSB2YWxpZGF0aW9uIChgdmFsaWRhdGVfdWhyX29wZXJhdGlvbmApLCBtYW5hZ2VtZW50IGZyYW1lIHBhcnNpbmcgKGBpZWVlODAyMTFfcGFyc2VfZXh0ZW5zaW9uX2VsZW1lbnRgKSwgYW5kIGJhbmR3aWR0aCBjb25maWd1cmF0aW9uIChgaWVlZTgwMjExX2NvbmZpZ19id2ApLiBUaGVzZSBhcmUgcmVhY2hhYmxlIGZyb20gdXNlciBzcGFjZSB2aWEgbmV0bGluayBhbmQgZnJvbSBpbmplY3RlZCBtYW5hZ2VtZW50IGZyYW1lcywgbWFraW5nIGl0IGhpZ2hseSByZWxldmFudCBmb3IgZnV6emluZy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJDRkc4MDIxMVwiLFxuICAgIFwiTUFDODAyMTFcIixcbiAgICBcIk1BQzgwMjExX0hXU0lNXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwidmFsaWRhdGVfdWhyX29wZXJhdGlvblwiLFxuICAgIFwiaWVlZTgwMjExX3BhcnNlX2V4dGVuc2lvbl9lbGVtZW50XCIsXG4gICAgXCJpZWVlODAyMTFfY29uZmlnX2J3XCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIHBhcnNpbmcgYW5kIHZhbGlkYXRpb24gbG9naWMgZm9yIElFRUUgODAyLjExIFVIUiAoVWx0cmEgSGlnaCBSZWxpYWJpbGl0eSkgb3BlcmF0aW9uIGVsZW1lbnRzLiBJdCBjaGFuZ2VzIHRoZSBzaXplIHZhbGlkYXRpb24gbG9naWMgYnkgY2hlY2tpbmcgZm9yIHByZXNlbmNlIGZsYWdzIGluc3RlYWQgb2YgZW5hYmxlIGZsYWdzLiBUaGUgbW9kaWZpZWQgaW5saW5lIGZ1bmN0aW9uIGlzIGNhbGxlZCBmcm9tIG5ldGxpbmsgYXR0cmlidXRlIHZhbGlkYXRpb24gKGB2YWxpZGF0ZV91aHJfb3BlcmF0aW9uYCksIG1hbmFnZW1lbnQgZnJhbWUgcGFyc2luZyAoYGllZWU4MDIxMV9wYXJzZV9leHRlbnNpb25fZWxlbWVudGApLCBhbmQgYmFuZHdpZHRoIGNvbmZpZ3VyYXRpb24gKGBpZWVlODAyMTFfY29uZmlnX2J3YCkuIFRoZXNlIGFyZSByZWFjaGFibGUgZnJvbSB1c2VyIHNwYWNlIHZpYSBuZXRsaW5rIGFuZCBmcm9tIGluamVjdGVkIG1hbmFnZW1lbnQgZnJhbWVzLCBtYWtpbmcgaXQgaGlnaGx5IHJlbGV2YW50IGZvciBmdXp6aW5nLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH1dOwoJCQlpZiAoIXJhd0RhdGEgfHwgcmF3RGF0YS5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpOwoJCQlkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKTsKCQkJZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpIHsKCQkJY29uc3Qgc3RhdHMgPSB7CgkJCQlsbG06IHsgY291bnQ6IDAsIHRva2VuczogMCwgZHVyYXRpb246IDAgfSwKCQkJCXRvb2w6IHsgY291bnQ6IDAsIGR1cmF0aW9uOiAwIH0KCQkJfTsKCgkJCXJhd0RhdGEuZm9yRWFjaChzID0+IHsKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOyAKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iKSB7CgkJCQkJc3RhdHMubGxtLmNvdW50Kys7CgkJCQkJc3RhdHMubGxtLnRva2VucyArPSAocy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2Vucyk7CgkJCQkJc3RhdHMubGxtLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0gZWxzZSBpZiAocy5UeXBlID09PSAidG9vbCIpIHsKCQkJCQlzdGF0cy50b29sLmNvdW50Kys7CgkJCQkJc3RhdHMudG9vbC5kdXJhdGlvbiArPSBkdXI7CgkJCQl9CgkJCX0pOwoKCQkJY29uc3QgYXZnTGxtRHVyID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0uZHVyYXRpb24gLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdMbG1Ub2tlbiA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLnRva2VucyAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z1Rvb2xEdXIgPSBzdGF0cy50b29sLmNvdW50ID4gMCA/IChzdGF0cy50b29sLmR1cmF0aW9uIC8gc3RhdHMudG9vbC5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgoJCQljb25zdCBsbG1TdW1hcnlDZWxscyA9IFtzdGF0cy5sbG0uY291bnQsIHN0YXRzLmxsbS50b2tlbnMsIGF2Z0xsbVRva2VuLCBzdGF0cy5sbG0uZHVyYXRpb24sIGF2Z0xsbUR1cl07CgkJCWNvbnN0IHRvb2xTdW1tYXJ5Q2VsbHMgPSBbc3RhdHMudG9vbC5jb3VudCwgc3RhdHMudG9vbC5kdXJhdGlvbiwgYXZnVG9vbER1cl07CgoJCQljb25zdCBsbG1TdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsbG1fc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCWxsbVN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCBsbG1UciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCWxsbVN1bWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQlsbG1Uci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQlsbG1TdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZChsbG1Ucik7CgoJCQljb25zdCB0b29sU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJdG9vbFN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCB0b29sVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQl0b29sU3VtbWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQl0b29sVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJdG9vbFN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKHRvb2xUcik7CgkJfQoKCQlmdW5jdGlvbiBkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGZpbHRlcmVkU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IFsibGxtIiwgInRvb2wiXS5pbmNsdWRlcyhkLlR5cGUpKTsKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnRHVyYXRpb24nKTsKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsgCgoJCQlmaWx0ZXJlZFN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQkKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOwoJCQkJbGV0IHRvb2x0aXAgPSBzLk5hbWU7CgkJCQlpZiAocy5UeXBlID09PSAibGxtIiAmJiBzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgkJCQlkYXRhLmFkZFJvdyhbYCR7cy5TZXF9YCwgZHVyLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVGltZSBDb25zdW1wdGlvbiBvZiBMTE0vVG9vbCBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNL1Rvb2wgU3RlcHMnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnU2Vjb25kcycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZHVyYXRpb25fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGxsbVN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBkLlR5cGUgPT09ICJsbG0iKTsKCQkJaWYgKGxsbVN0ZXBzLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnVG9rZW5zJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3N0eWxlJ30pOwkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsJCgoJCQljb25zdCBhZ2VudENvbG9ycyA9IHt9OwoJCQljb25zdCBwYWxldHRlID0gWycjNDI4NUY0JywgJyNEQjQ0MzcnLCAnI0Y0QjQwMCcsICcjMEY5RDU4JywgJyNBQjQ3QkMnLCAnIzAwQUNDMSddOwoJCQlsZXQgY29sb3JJZHggPSAwOwoJCQljb25zdCBhZ2VudExMTUNvdW50cyA9IHt9OwoJCQlsbG1TdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJaWYgKCFhZ2VudENvbG9yc1tzLk5hbWVdKSB7CgkJCQkJYWdlbnRDb2xvcnNbcy5OYW1lXSA9IHBhbGV0dGVbY29sb3JJZHggJSBwYWxldHRlLmxlbmd0aF07CgkJCQkJY29sb3JJZHgrKzsKCQkJCX0KCgkJCQlhZ2VudExMTUNvdW50c1tzLk5hbWVdID0gKGFnZW50TExNQ291bnRzW3MuTmFtZV0gfHwgMCkgKyAxOwoJCQkJY29uc3QgbGFiZWwgPSBgJHtzLk5hbWV9LSR7YWdlbnRMTE1Db3VudHNbcy5OYW1lXX1gOwoJCQkJY29uc3QgdG90YWxUb2tlbnMgPSBzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zOwoJCQkJY29uc3Qgc3R5bGUgPSBgY29sb3I6ICR7YWdlbnRDb2xvcnNbcy5OYW1lXX1gOwoJCQkJbGV0IHRvb2x0aXAgPSBgVG90YWwgVG9rZW5zOiAke3RvdGFsVG9rZW5zfVxuKEluOiAke3MuSW5wdXRUb2tlbnN9LCBPdXQ6ICR7cy5PdXRwdXRUb2tlbnN9LCBUaG91Z2h0czogJHtzLk91dHB1dFRob3VnaHRzVG9rZW5zfSlgOwoJCQkJaWYgKHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCgkJCQlkYXRhLmFkZFJvdyhbbGFiZWwsIHRvdGFsVG9rZW5zLCBzdHlsZSwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1Rva2VuIENvbnN1bXB0aW9uIGJ5IExMTSBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNIENhbGwgU2VxdWVuY2UnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnQ29uc3VtZWQgVG9rZW5zJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b2tlbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoJCWxldCBhbGxFeHBhbmRlZCA9IGZhbHNlOwoJCWZ1bmN0aW9uIHRvZ2dsZUFsbERldGFpbHMoKSB7CgkJCWFsbEV4cGFuZGVkID0gIWFsbEV4cGFuZGVkOwoJCQlkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdkZXRhaWxzJykuZm9yRWFjaChkID0+IHsKCQkJCWlmIChhbGxFeHBhbmRlZCkgZC5zZXRBdHRyaWJ1dGUoJ29wZW4nLCAnJyk7CgkJCQllbHNlIGQucmVtb3ZlQXR0cmlidXRlKCdvcGVuJyk7CgkJCX0pOwoJCX0KCTwvc2NyaXB0PgoKCjwvYm9keT4KPC9odG1sPgo=" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowfc4xk[1] Phase: Succeeded StartedAt: 2026-07-15 23:06:06 +0000 UTC FinishedAt: 2026-07-15 23:06:06 +0000 UTC Input: nil Output: nil --------- Name: series-workflowfc4xk[1].abort-on-skip-outcome Phase: Skipped StartedAt: 2026-07-15 23:06:06 +0000 UTC FinishedAt: 2026-07-15 23:06:06 +0000 UTC Input: nil Output: nil --------- Name: series-workflowfc4xk[2] Phase: Succeeded StartedAt: 2026-07-15 23:06:06 +0000 UTC FinishedAt: 2026-07-16 04:03:51 +0000 UTC Input: nil Output: nil --------- Name: series-workflowfc4xk[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ac798f757d6475dc6fee2ec899980d6740714596","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["validate_uhr_operation","ieee80211_parse_extension_element","ieee80211_config_bw"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ac798f757d6475dc6fee2ec899980d6740714596","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"a1f927bf-7d79-41e7-a6fc-ce8cd9b09fe0","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN) Phase: Succeeded StartedAt: 2026-07-15 23:06:06 +0000 UTC FinishedAt: 2026-07-16 04:03:51 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:element,Default:nil,Value:*{"base":{"arch":"amd64","commit_hash":"ac798f757d6475dc6fee2ec899980d6740714596","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},"fuzz":{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["validate_uhr_operation","ieee80211_parse_extension_element","ieee80211_config_bw"],"skip_cover_check":false},"patched":{"arch":"amd64","commit_hash":"ac798f757d6475dc6fee2ec899980d6740714596","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"a1f927bf-7d79-41e7-a6fc-ce8cd9b09fe0","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},"retest":null,"track":"KASAN"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: nil --------- Name: series-workflowfc4xk[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ac798f757d6475dc6fee2ec899980d6740714596","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["validate_uhr_operation","ieee80211_parse_extension_element","ieee80211_config_bw"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ac798f757d6475dc6fee2ec899980d6740714596","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"a1f927bf-7d79-41e7-a6fc-ce8cd9b09fe0","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[0] Phase: Succeeded StartedAt: 2026-07-15 23:06:06 +0000 UTC FinishedAt: 2026-07-15 23:06:16 +0000 UTC Input: nil Output: nil --------- Name: series-workflowfc4xk[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ac798f757d6475dc6fee2ec899980d6740714596","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["validate_uhr_operation","ieee80211_parse_extension_element","ieee80211_config_bw"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ac798f757d6475dc6fee2ec899980d6740714596","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"a1f927bf-7d79-41e7-a6fc-ce8cd9b09fe0","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[0].save-base-req Phase: Succeeded StartedAt: 2026-07-15 23:06:06 +0000 UTC FinishedAt: 2026-07-15 23:06:12 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"ac798f757d6475dc6fee2ec899980d6740714596","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},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-workflowfc4xk/series-workflowfc4xk-convert-artifact-2631856575/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowfc4xk[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ac798f757d6475dc6fee2ec899980d6740714596","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["validate_uhr_operation","ieee80211_parse_extension_element","ieee80211_config_bw"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ac798f757d6475dc6fee2ec899980d6740714596","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"a1f927bf-7d79-41e7-a6fc-ce8cd9b09fe0","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[1] Phase: Succeeded StartedAt: 2026-07-15 23:06:16 +0000 UTC FinishedAt: 2026-07-16 00:11:15 +0000 UTC Input: nil Output: nil --------- Name: series-workflowfc4xk[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ac798f757d6475dc6fee2ec899980d6740714596","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["validate_uhr_operation","ieee80211_parse_extension_element","ieee80211_config_bw"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ac798f757d6475dc6fee2ec899980d6740714596","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"a1f927bf-7d79-41e7-a6fc-ce8cd9b09fe0","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[1].base-build Phase: Succeeded StartedAt: 2026-07-15 23:06:16 +0000 UTC FinishedAt: 2026-07-16 00:11:15 +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:*d4b7e18b-b5c1-4ea8-b30e-ac716f70f35f,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-workflowfc4xk/series-workflowfc4xk-convert-artifact-2631856575/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": "25d5dee0-dabd-449e-af7d-43940645ad2e", "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-workflowfc4xk/series-workflowfc4xk-build-action-3680959557/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowfc4xk[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ac798f757d6475dc6fee2ec899980d6740714596","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["validate_uhr_operation","ieee80211_parse_extension_element","ieee80211_config_bw"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ac798f757d6475dc6fee2ec899980d6740714596","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"a1f927bf-7d79-41e7-a6fc-ce8cd9b09fe0","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[1].base-build(0) Phase: Succeeded StartedAt: 2026-07-15 23:06:16 +0000 UTC FinishedAt: 2026-07-16 00:10:53 +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:*d4b7e18b-b5c1-4ea8-b30e-ac716f70f35f,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-workflowfc4xk/series-workflowfc4xk-convert-artifact-2631856575/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": "25d5dee0-dabd-449e-af7d-43940645ad2e", "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-workflowfc4xk/series-workflowfc4xk-build-action-3680959557/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowfc4xk[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ac798f757d6475dc6fee2ec899980d6740714596","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["validate_uhr_operation","ieee80211_parse_extension_element","ieee80211_config_bw"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ac798f757d6475dc6fee2ec899980d6740714596","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"a1f927bf-7d79-41e7-a6fc-ce8cd9b09fe0","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[2] Phase: Succeeded StartedAt: 2026-07-16 00:11:15 +0000 UTC FinishedAt: 2026-07-16 00:11:15 +0000 UTC Input: nil Output: nil --------- Name: series-workflowfc4xk[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ac798f757d6475dc6fee2ec899980d6740714596","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["validate_uhr_operation","ieee80211_parse_extension_element","ieee80211_config_bw"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ac798f757d6475dc6fee2ec899980d6740714596","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"a1f927bf-7d79-41e7-a6fc-ce8cd9b09fe0","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[2].abort-if-base-build-failed Phase: Skipped StartedAt: 2026-07-16 00:11:15 +0000 UTC FinishedAt: 2026-07-16 00:11:15 +0000 UTC Input: nil Output: nil --------- Name: series-workflowfc4xk[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ac798f757d6475dc6fee2ec899980d6740714596","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["validate_uhr_operation","ieee80211_parse_extension_element","ieee80211_config_bw"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ac798f757d6475dc6fee2ec899980d6740714596","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"a1f927bf-7d79-41e7-a6fc-ce8cd9b09fe0","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[3] Phase: Succeeded StartedAt: 2026-07-16 00:11:15 +0000 UTC FinishedAt: 2026-07-16 00:11:35 +0000 UTC Input: nil Output: nil --------- Name: series-workflowfc4xk[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ac798f757d6475dc6fee2ec899980d6740714596","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["validate_uhr_operation","ieee80211_parse_extension_element","ieee80211_config_bw"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ac798f757d6475dc6fee2ec899980d6740714596","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"a1f927bf-7d79-41e7-a6fc-ce8cd9b09fe0","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[3].save-patched-req Phase: Succeeded StartedAt: 2026-07-16 00:11:15 +0000 UTC FinishedAt: 2026-07-16 00:11:24 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"ac798f757d6475dc6fee2ec899980d6740714596","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"a1f927bf-7d79-41e7-a6fc-ce8cd9b09fe0","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},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-workflowfc4xk/series-workflowfc4xk-convert-artifact-3737176014/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowfc4xk[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ac798f757d6475dc6fee2ec899980d6740714596","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["validate_uhr_operation","ieee80211_parse_extension_element","ieee80211_config_bw"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ac798f757d6475dc6fee2ec899980d6740714596","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"a1f927bf-7d79-41e7-a6fc-ce8cd9b09fe0","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[4] Phase: Succeeded StartedAt: 2026-07-16 00:11:35 +0000 UTC FinishedAt: 2026-07-16 00:13:47 +0000 UTC Input: nil Output: nil --------- Name: series-workflowfc4xk[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ac798f757d6475dc6fee2ec899980d6740714596","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["validate_uhr_operation","ieee80211_parse_extension_element","ieee80211_config_bw"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ac798f757d6475dc6fee2ec899980d6740714596","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"a1f927bf-7d79-41e7-a6fc-ce8cd9b09fe0","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[4].boot-test-base Phase: Succeeded StartedAt: 2026-07-16 00:11:35 +0000 UTC FinishedAt: 2026-07-16 00:13:37 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*25d5dee0-dabd-449e-af7d-43940645ad2e,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-workflowfc4xk/series-workflowfc4xk-build-action-3680959557/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-workflowfc4xk[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ac798f757d6475dc6fee2ec899980d6740714596","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["validate_uhr_operation","ieee80211_parse_extension_element","ieee80211_config_bw"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ac798f757d6475dc6fee2ec899980d6740714596","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"a1f927bf-7d79-41e7-a6fc-ce8cd9b09fe0","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[5] Phase: Succeeded StartedAt: 2026-07-16 00:13:47 +0000 UTC FinishedAt: 2026-07-16 00:13:47 +0000 UTC Input: nil Output: nil --------- Name: series-workflowfc4xk[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ac798f757d6475dc6fee2ec899980d6740714596","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["validate_uhr_operation","ieee80211_parse_extension_element","ieee80211_config_bw"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ac798f757d6475dc6fee2ec899980d6740714596","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"a1f927bf-7d79-41e7-a6fc-ce8cd9b09fe0","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[5].abort-if-base-boot-failed Phase: Skipped StartedAt: 2026-07-16 00:13:47 +0000 UTC FinishedAt: 2026-07-16 00:13:47 +0000 UTC Input: nil Output: nil --------- Name: series-workflowfc4xk[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ac798f757d6475dc6fee2ec899980d6740714596","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["validate_uhr_operation","ieee80211_parse_extension_element","ieee80211_config_bw"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ac798f757d6475dc6fee2ec899980d6740714596","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"a1f927bf-7d79-41e7-a6fc-ce8cd9b09fe0","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[6] Phase: Succeeded StartedAt: 2026-07-16 00:13:47 +0000 UTC FinishedAt: 2026-07-16 00:58:38 +0000 UTC Input: nil Output: nil --------- Name: series-workflowfc4xk[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ac798f757d6475dc6fee2ec899980d6740714596","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["validate_uhr_operation","ieee80211_parse_extension_element","ieee80211_config_bw"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ac798f757d6475dc6fee2ec899980d6740714596","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"a1f927bf-7d79-41e7-a6fc-ce8cd9b09fe0","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[6].patched-build Phase: Succeeded StartedAt: 2026-07-16 00:13:47 +0000 UTC FinishedAt: 2026-07-16 00:58:38 +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:*d4b7e18b-b5c1-4ea8-b30e-ac716f70f35f,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-workflowfc4xk/series-workflowfc4xk-convert-artifact-3737176014/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": "2814aa03-504b-46ed-a877-99dafd5a5738", "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-workflowfc4xk/series-workflowfc4xk-build-action-4059523426/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowfc4xk[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ac798f757d6475dc6fee2ec899980d6740714596","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["validate_uhr_operation","ieee80211_parse_extension_element","ieee80211_config_bw"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ac798f757d6475dc6fee2ec899980d6740714596","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"a1f927bf-7d79-41e7-a6fc-ce8cd9b09fe0","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[6].patched-build(0) Phase: Succeeded StartedAt: 2026-07-16 00:13:47 +0000 UTC FinishedAt: 2026-07-16 00:56:47 +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:*d4b7e18b-b5c1-4ea8-b30e-ac716f70f35f,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-workflowfc4xk/series-workflowfc4xk-convert-artifact-3737176014/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": "2814aa03-504b-46ed-a877-99dafd5a5738", "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-workflowfc4xk/series-workflowfc4xk-build-action-4059523426/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowfc4xk[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ac798f757d6475dc6fee2ec899980d6740714596","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["validate_uhr_operation","ieee80211_parse_extension_element","ieee80211_config_bw"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ac798f757d6475dc6fee2ec899980d6740714596","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"a1f927bf-7d79-41e7-a6fc-ce8cd9b09fe0","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[7] Phase: Succeeded StartedAt: 2026-07-16 00:58:38 +0000 UTC FinishedAt: 2026-07-16 00:58:39 +0000 UTC Input: nil Output: nil --------- Name: series-workflowfc4xk[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ac798f757d6475dc6fee2ec899980d6740714596","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["validate_uhr_operation","ieee80211_parse_extension_element","ieee80211_config_bw"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ac798f757d6475dc6fee2ec899980d6740714596","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"a1f927bf-7d79-41e7-a6fc-ce8cd9b09fe0","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[7].abort-if-patched-build-failed Phase: Skipped StartedAt: 2026-07-16 00:58:39 +0000 UTC FinishedAt: 2026-07-16 00:58:39 +0000 UTC Input: nil Output: nil --------- Name: series-workflowfc4xk[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ac798f757d6475dc6fee2ec899980d6740714596","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["validate_uhr_operation","ieee80211_parse_extension_element","ieee80211_config_bw"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ac798f757d6475dc6fee2ec899980d6740714596","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"a1f927bf-7d79-41e7-a6fc-ce8cd9b09fe0","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[8] Phase: Succeeded StartedAt: 2026-07-16 00:58:39 +0000 UTC FinishedAt: 2026-07-16 01:00:43 +0000 UTC Input: nil Output: nil --------- Name: series-workflowfc4xk[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ac798f757d6475dc6fee2ec899980d6740714596","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["validate_uhr_operation","ieee80211_parse_extension_element","ieee80211_config_bw"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ac798f757d6475dc6fee2ec899980d6740714596","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"a1f927bf-7d79-41e7-a6fc-ce8cd9b09fe0","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[8].boot-test-patched Phase: Succeeded StartedAt: 2026-07-16 00:58:39 +0000 UTC FinishedAt: 2026-07-16 01:00:30 +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:*2814aa03-504b-46ed-a877-99dafd5a5738,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-workflowfc4xk/series-workflowfc4xk-build-action-4059523426/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-workflowfc4xk[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ac798f757d6475dc6fee2ec899980d6740714596","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["validate_uhr_operation","ieee80211_parse_extension_element","ieee80211_config_bw"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ac798f757d6475dc6fee2ec899980d6740714596","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"a1f927bf-7d79-41e7-a6fc-ce8cd9b09fe0","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[10] Phase: Succeeded StartedAt: 2026-07-16 01:00:43 +0000 UTC FinishedAt: 2026-07-16 04:03:51 +0000 UTC Input: nil Output: nil --------- Name: series-workflowfc4xk[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ac798f757d6475dc6fee2ec899980d6740714596","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["validate_uhr_operation","ieee80211_parse_extension_element","ieee80211_config_bw"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ac798f757d6475dc6fee2ec899980d6740714596","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"a1f927bf-7d79-41e7-a6fc-ce8cd9b09fe0","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[10].run-fuzz Phase: Succeeded StartedAt: 2026-07-16 01:00:43 +0000 UTC FinishedAt: 2026-07-16 04:03:51 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:config,Default:nil,Value:*{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["validate_uhr_operation","ieee80211_parse_extension_element","ieee80211_config_bw"],"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:*25d5dee0-dabd-449e-af7d-43940645ad2e,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*2814aa03-504b-46ed-a877-99dafd5a5738,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-workflowfc4xk/series-workflowfc4xk-build-action-3680959557/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-workflowfc4xk/series-workflowfc4xk-build-action-4059523426/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: nil --------- Name: series-workflowfc4xk[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ac798f757d6475dc6fee2ec899980d6740714596","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["validate_uhr_operation","ieee80211_parse_extension_element","ieee80211_config_bw"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ac798f757d6475dc6fee2ec899980d6740714596","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"a1f927bf-7d79-41e7-a6fc-ce8cd9b09fe0","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[10].run-fuzz[0] Phase: Succeeded StartedAt: 2026-07-16 01:00:43 +0000 UTC FinishedAt: 2026-07-16 01:01:05 +0000 UTC Input: nil Output: nil --------- Name: series-workflowfc4xk[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ac798f757d6475dc6fee2ec899980d6740714596","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["validate_uhr_operation","ieee80211_parse_extension_element","ieee80211_config_bw"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ac798f757d6475dc6fee2ec899980d6740714596","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"a1f927bf-7d79-41e7-a6fc-ce8cd9b09fe0","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[10].run-fuzz[0].save-fuzz-config Phase: Succeeded StartedAt: 2026-07-16 01:00:43 +0000 UTC FinishedAt: 2026-07-16 01:00:55 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["validate_uhr_operation","ieee80211_parse_extension_element","ieee80211_config_bw"],"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-workflowfc4xk/series-workflowfc4xk-convert-artifact-2581779699/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowfc4xk[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ac798f757d6475dc6fee2ec899980d6740714596","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["validate_uhr_operation","ieee80211_parse_extension_element","ieee80211_config_bw"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ac798f757d6475dc6fee2ec899980d6740714596","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"a1f927bf-7d79-41e7-a6fc-ce8cd9b09fe0","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[10].run-retest Phase: Skipped StartedAt: 2026-07-16 01:00:43 +0000 UTC FinishedAt: 2026-07-16 01:00:43 +0000 UTC Input: nil Output: nil --------- Name: series-workflowfc4xk[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ac798f757d6475dc6fee2ec899980d6740714596","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["validate_uhr_operation","ieee80211_parse_extension_element","ieee80211_config_bw"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ac798f757d6475dc6fee2ec899980d6740714596","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"a1f927bf-7d79-41e7-a6fc-ce8cd9b09fe0","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[9] Phase: Succeeded StartedAt: 2026-07-16 01:00:43 +0000 UTC FinishedAt: 2026-07-16 01:00:43 +0000 UTC Input: nil Output: nil --------- Name: series-workflowfc4xk[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ac798f757d6475dc6fee2ec899980d6740714596","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["validate_uhr_operation","ieee80211_parse_extension_element","ieee80211_config_bw"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ac798f757d6475dc6fee2ec899980d6740714596","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"a1f927bf-7d79-41e7-a6fc-ce8cd9b09fe0","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[9].abort-if-patched-boot-failed Phase: Skipped StartedAt: 2026-07-16 01:00:43 +0000 UTC FinishedAt: 2026-07-16 01:00:43 +0000 UTC Input: nil Output: nil --------- Name: series-workflowfc4xk[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ac798f757d6475dc6fee2ec899980d6740714596","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["validate_uhr_operation","ieee80211_parse_extension_element","ieee80211_config_bw"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ac798f757d6475dc6fee2ec899980d6740714596","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"a1f927bf-7d79-41e7-a6fc-ce8cd9b09fe0","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[10].run-fuzz[1] Phase: Succeeded StartedAt: 2026-07-16 01:01:05 +0000 UTC FinishedAt: 2026-07-16 04:03:51 +0000 UTC Input: nil Output: nil --------- Name: series-workflowfc4xk[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ac798f757d6475dc6fee2ec899980d6740714596","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["validate_uhr_operation","ieee80211_parse_extension_element","ieee80211_config_bw"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ac798f757d6475dc6fee2ec899980d6740714596","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"a1f927bf-7d79-41e7-a6fc-ce8cd9b09fe0","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[10].run-fuzz[1].fuzz Phase: Succeeded StartedAt: 2026-07-16 01:01:05 +0000 UTC FinishedAt: 2026-07-16 04:03:41 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*25d5dee0-dabd-449e-af7d-43940645ad2e,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*2814aa03-504b-46ed-a877-99dafd5a5738,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-workflowfc4xk/series-workflowfc4xk-build-action-3680959557/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-workflowfc4xk/series-workflowfc4xk-build-action-4059523426/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-workflowfc4xk/series-workflowfc4xk-convert-artifact-2581779699/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,}