Name: series-workflowsg7g8 Phase: Succeeded StartedAt: 2026-08-06 20:32:25 +0000 UTC FinishedAt: 2026-08-07 00:18:40 +0000 UTC Input: nil Output: nil --------- Name: series-workflowsg7g8[0] Phase: Succeeded StartedAt: 2026-08-06 20:32:25 +0000 UTC FinishedAt: 2026-08-06 20:35:02 +0000 UTC Input: nil Output: nil --------- Name: series-workflowsg7g8[0].run-triage Phase: Succeeded StartedAt: 2026-08-06 20:32:25 +0000 UTC FinishedAt: 2026-08-06 20:35:02 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "kvm-x86", "tree_url": "https://github.com/kvm-x86/linux.git", "commit_hash": "a806d364ef288a6443a1337820ea8410a7ccc6b3", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "KVM", "KVM_INTEL" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "kvm-x86", "tree_url": "https://github.com/kvm-x86/linux.git", "commit_hash": "a806d364ef288a6443a1337820ea8410a7ccc6b3", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "KVM", "KVM_INTEL" ], "series_id": "1aa0ff94-8b79-49cf-b96d-adcceaddc884" }, "track": "KASAN", "fuzz": { "focus": [ "kvm" ], "focus_symbols": [ "kvm_apic_set_eoi_accelerated", "handle_apic_eoi_induced" ], "corpus_urls": [ "https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db" ], "skip_cover_check": false, "bug_title_re": "" }, "retest": null } ], "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA2IDIwOjM0PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0tWTSYjMzQ7LAogICAgJiMzNDtLVk1fSU5URUwmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtrdm1fYXBpY19zZXRfZW9pX2FjY2VsZXJhdGVkJiMzNDssCiAgICAmIzM0O2hhbmRsZV9hcGljX2VvaV9pbmR1Y2VkJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSB0eXBlIG9mIGBwZW5kaW5nX2lvYXBpY19lb2lgIGFuZCBgdmVjdG9yYCBhcmd1bWVudHMgaW4gS1ZNJiMzOTtzIEFQSUMgRU9JIGhhbmRsaW5nIGNvZGUgZnJvbSBgaW50YCB0byBgdThgLiBJdCBhbHNvIHJlbW92ZXMgYSBgQlVHX09OYCBpbiBgdmNwdV9lbnRlcl9ndWVzdGAuIFRoZXNlIGFyZSBmdW5jdGlvbmFsIGNoYW5nZXMgaW4gcmVhY2hhYmxlIGNvcmUgS1ZNIGxvZ2ljIHRoYXQgaGFuZGxlcyBBUElDIGludGVycnVwdHMsIHNvIGl0IHNob3VsZCBiZSBmdXp6ZWQuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MS8xPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDYgMjA6MzQ8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPnJlYWQtcGF0Y2gtZGlmZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1BhdGNoRGlmZiYjMzQ7OiAmIzM0O2NvbW1pdCBkOGUwYTQ3ZWRkZjc5ZWY4Yzg4Mjk1NjNkNmNmYjJhYjMxNWMyYTI4XG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFRodSBBdWcgNiAyMDozNDowOCAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9rdm1faG9zdC5oIGIvYXJjaC94ODYvaW5jbHVkZS9hc20va3ZtX2hvc3QuaFxuaW5kZXggMjgzODQ3NjE5ZmY4OC4uOTYxNDMxNGZkMjM3NCAxMDA2NDRcbi0tLSBhL2FyY2gveDg2L2luY2x1ZGUvYXNtL2t2bV9ob3N0LmhcbiYjNDM7JiM0MzsmIzQzOyBiL2FyY2gveDg2L2luY2x1ZGUvYXNtL2t2bV9ob3N0LmhcbkBAIC05NzMsNyAmIzQzOzk3Myw3IEBAIHN0cnVjdCBrdm1fdmNwdV9hcmNoIHtcbiBcdFx0Ym9vbCBwdl91bmhhbHRlZDtcbiBcdH0gcHY7XG4gXG4tXHRpbnQgcGVuZGluZ19pb2FwaWNfZW9pO1xuJiM0MztcdHU4IHBlbmRpbmdfaW9hcGljX2VvaTtcbiBcdGludCBwZW5kaW5nX2V4dGVybmFsX3ZlY3RvcjtcbiBcdGludCBoaWdoZXN0X3N0YWxlX3BlbmRpbmdfaW9hcGljX2VvaTtcbiBcbmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rdm0vbGFwaWMuYyBiL2FyY2gveDg2L2t2bS9sYXBpYy5jXG5pbmRleCA1ODZhNWNlZTI5ZTFhLi44N2JiOGU1ZjRjYTFmIDEwMDY0NFxuLS0tIGEvYXJjaC94ODYva3ZtL2xhcGljLmNcbiYjNDM7JiM0MzsmIzQzOyBiL2FyY2gveDg2L2t2bS9sYXBpYy5jXG5AQCAtMTU1Miw3ICYjNDM7MTU1Miw3IEBAIHN0YXRpYyBib29sIGt2bV9pb2FwaWNfaGFuZGxlc192ZWN0b3Ioc3RydWN0IGt2bV9sYXBpYyAqYXBpYywgaW50IHZlY3RvcilcbiBcdHJldHVybiB0ZXN0X2JpdCh2ZWN0b3IsIGFwaWMtXHUwMDNldmNwdS1cdTAwM2VhcmNoLmlvYXBpY19oYW5kbGVkX3ZlY3RvcnMpO1xuIH1cbiBcbi1zdGF0aWMgdm9pZCBrdm1faW9hcGljX3NlbmRfZW9pKHN0cnVjdCBrdm1fbGFwaWMgKmFwaWMsIGludCB2ZWN0b3IpXG4mIzQzO3N0YXRpYyB2b2lkIGt2bV9pb2FwaWNfc2VuZF9lb2koc3RydWN0IGt2bV9sYXBpYyAqYXBpYywgdTggdmVjdG9yKVxuIHtcbiBcdGludCBfX21heWJlX3VudXNlZCB0cmlnZ2VyX21vZGU7XG4gXG5AQCAtMTYyMiw3ICYjNDM7MTYyMiw3IEBAIHN0YXRpYyBpbnQgYXBpY19zZXRfZW9pKHN0cnVjdCBrdm1fbGFwaWMgKmFwaWMpXG4gICogdGhpcyBpbnRlcmZhY2UgYXNzdW1lcyBhIHRyYXAtbGlrZSBleGl0LCB3aGljaCBoYXMgYWxyZWFkeSBmaW5pc2hlZFxuICAqIGRlc2lyZWQgc2lkZSBlZmZlY3QgaW5jbHVkaW5nIHZJU1IgYW5kIHZQUFIgdXBkYXRlLlxuICAqL1xuLXZvaWQga3ZtX2FwaWNfc2V0X2VvaV9hY2NlbGVyYXRlZChzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIGludCB2ZWN0b3IpXG4mIzQzO3ZvaWQga3ZtX2FwaWNfc2V0X2VvaV9hY2NlbGVyYXRlZChzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIHU4IHZlY3RvcilcbiB7XG4gXHRzdHJ1Y3Qga3ZtX2xhcGljICphcGljID0gdmNwdS1cdTAwM2VhcmNoLmFwaWM7XG4gXG5kaWZmIC0tZ2l0IGEvYXJjaC94ODYva3ZtL2xhcGljLmggYi9hcmNoL3g4Ni9rdm0vbGFwaWMuaFxuaW5kZXggYmQxMDk4Yzg5ZDk5OC4uZGIwNzFkMGIxNzJkMCAxMDA2NDRcbi0tLSBhL2FyY2gveDg2L2t2bS9sYXBpYy5oXG4mIzQzOyYjNDM7JiM0MzsgYi9hcmNoL3g4Ni9rdm0vbGFwaWMuaFxuQEAgLTE3Nyw3ICYjNDM7MTc3LDcgQEAgdTY0IGt2bV9nZXRfbGFwaWNfdHNjZGVhZGxpbmVfbXNyKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSk7XG4gdm9pZCBrdm1fc2V0X2xhcGljX3RzY2RlYWRsaW5lX21zcihzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIHU2NCBkYXRhKTtcbiBcbiB2b2lkIGt2bV9hcGljX3dyaXRlX25vZGVjb2RlKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwgdTMyIG9mZnNldCk7XG4tdm9pZCBrdm1fYXBpY19zZXRfZW9pX2FjY2VsZXJhdGVkKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwgaW50IHZlY3Rvcik7XG4mIzQzO3ZvaWQga3ZtX2FwaWNfc2V0X2VvaV9hY2NlbGVyYXRlZChzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIHU4IHZlY3Rvcik7XG4gXG4gaW50IGt2bV9sYXBpY19zZXRfdmFwaWNfYWRkcihzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIGdwYV90IHZhcGljX2FkZHIpO1xuIHZvaWQga3ZtX2xhcGljX3N5bmNfZnJvbV92YXBpYyhzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpO1xuZGlmZiAtLWdpdCBhL2FyY2gveDg2L2t2bS92bXgvdm14LmMgYi9hcmNoL3g4Ni9rdm0vdm14L3ZteC5jXG5pbmRleCBlM2JmZTZhY2ExYTBlLi5jMWZkZmNjZDIwZmFhIDEwMDY0NFxuLS0tIGEvYXJjaC94ODYva3ZtL3ZteC92bXguY1xuJiM0MzsmIzQzOyYjNDM7IGIvYXJjaC94ODYva3ZtL3ZteC92bXguY1xuQEAgLTU4ODYsMTAgJiM0Mzs1ODg2LDkgQEAgc3RhdGljIGludCBoYW5kbGVfYXBpY19hY2Nlc3Moc3RydWN0IGt2bV92Y3B1ICp2Y3B1KVxuIHN0YXRpYyBpbnQgaGFuZGxlX2FwaWNfZW9pX2luZHVjZWQoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KVxuIHtcbiBcdHVuc2lnbmVkIGxvbmcgZXhpdF9xdWFsaWZpY2F0aW9uID0gdm14X2dldF9leGl0X3F1YWwodmNwdSk7XG4tXHRpbnQgdmVjdG9yID0gZXhpdF9xdWFsaWZpY2F0aW9uIFx1MDAyNiAweGZmO1xuIFxuIFx0LyogRU9JLWluZHVjZWQgVk0gZXhpdCBpcyB0cmFwLWxpa2UgYW5kIHRodXMgbm8gbmVlZCB0byBhZGp1c3QgSVAgKi9cbi1cdGt2bV9hcGljX3NldF9lb2lfYWNjZWxlcmF0ZWQodmNwdSwgdmVjdG9yKTtcbiYjNDM7XHRrdm1fYXBpY19zZXRfZW9pX2FjY2VsZXJhdGVkKHZjcHUsIGV4aXRfcXVhbGlmaWNhdGlvbiBcdTAwMjYgMHhmZik7XG4gXHRyZXR1cm4gMTtcbiB9XG4gXG5kaWZmIC0tZ2l0IGEvYXJjaC94ODYva3ZtL3g4Ni5jIGIvYXJjaC94ODYva3ZtL3g4Ni5jXG5pbmRleCBkOTRiNTkxNDBjNDUyLi44YjIzZjM0MmExZmE1IDEwMDY0NFxuLS0tIGEvYXJjaC94ODYva3ZtL3g4Ni5jXG4mIzQzOyYjNDM7JiM0MzsgYi9hcmNoL3g4Ni9rdm0veDg2LmNcbkBAIC04MTUxLDcgJiM0Mzs4MTUxLDYgQEAgc3RhdGljIGludCB2Y3B1X2VudGVyX2d1ZXN0KHN0cnVjdCBrdm1fdmNwdSAqdmNwdSlcbiBcdFx0aWYgKGt2bV9jaGVja19yZXF1ZXN0KEtWTV9SRVFfTk1JLCB2Y3B1KSlcbiBcdFx0XHRwcm9jZXNzX25taSh2Y3B1KTtcbiBcdFx0aWYgKGt2bV9jaGVja19yZXF1ZXN0KEtWTV9SRVFfSU9BUElDX0VPSV9FWElULCB2Y3B1KSkge1xuLVx0XHRcdEJVR19PTih2Y3B1LVx1MDAzZWFyY2gucGVuZGluZ19pb2FwaWNfZW9pIFx1MDAzZSAyNTUpO1xuIFx0XHRcdGlmICh0ZXN0X2JpdCh2Y3B1LVx1MDAzZWFyY2gucGVuZGluZ19pb2FwaWNfZW9pLFxuIFx0XHRcdFx0ICAgICB2Y3B1LVx1MDAzZWFyY2guaW9hcGljX2hhbmRsZWRfdmVjdG9ycykpIHtcbiBcdFx0XHRcdHZjcHUtXHUwMDNlcnVuLVx1MDAzZWV4aXRfcmVhc29uID0gS1ZNX0VYSVRfSU9BUElDX0VPSTtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yLzE8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNiAyMDozNDwvdGQ+CgkJCTx0ZD5hZ2VudDwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5iZXN0LWV4cGVuc2l2ZTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7S1ZNJiMzNDssCiAgICAmIzM0O0tWTV9JTlRFTCYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2t2bV9hcGljX3NldF9lb2lfYWNjZWxlcmF0ZWQmIzM0OywKICAgICYjMzQ7aGFuZGxlX2FwaWNfZW9pX2luZHVjZWQmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIHR5cGUgb2YgYHBlbmRpbmdfaW9hcGljX2VvaWAgYW5kIGB2ZWN0b3JgIGFyZ3VtZW50cyBpbiBLVk0mIzM5O3MgQVBJQyBFT0kgaGFuZGxpbmcgY29kZSBmcm9tIGBpbnRgIHRvIGB1OGAuIEl0IGFsc28gcmVtb3ZlcyBhIGBCVUdfT05gIGluIGB2Y3B1X2VudGVyX2d1ZXN0YC4gVGhlc2UgYXJlIGZ1bmN0aW9uYWwgY2hhbmdlcyBpbiByZWFjaGFibGUgY29yZSBLVk0gbG9naWMgdGhhdCBoYW5kbGVzIEFQSUMgaW50ZXJydXB0cywgc28gaXQgc2hvdWxkIGJlIGZ1enplZC4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkluc3RydWN0aW9uOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+WW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuCllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lCmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC4KCklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpbgp5b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHkKdXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy4KClJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6Ci0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy4KLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy4KLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuCi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLAogIGV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS4KLSBDb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCwKICBpb25pYywgYW1kZ3B1KSB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS4KLSBEcml2ZXIgLnJlbW92ZSwgLnNodXRkb3duLCBvciBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzIChlLmcuLCBpZ2JfcmVtb3ZlKQogIHRoYXQgYXJlIGV4ZWN1dGVkIG9ubHkgZHVyaW5nIFBDSSBob3QtdW5wbHVnIG9yIHN5c2ZzIGRyaXZlciB1bmJpbmQgb3BlcmF0aW9ucy4KCklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2gKdG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuCgpXaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzoKMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy4KICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuCiAgIFByZWZlciBub24tc3RhdGljLCBub24taW5saW5lZCBBUEkgZW50cnlwb2ludCBmdW5jdGlvbnMgb3ZlciBpbnRlcm5hbCBzdGF0aWMgaGVscGVyIGZ1bmN0aW9ucwogICAod2hpY2ggYXJlIGlubGluZWQgYnkgdGhlIGNvbXBpbGVyIGFuZCBkbyBub3QgaGF2ZSBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzKS4KMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuCiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy4KICAgQWxzbyBjaGVjayAmIzM0O2RlcGVuZHMgb24mIzM0OyBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3MKICAgbmVlZGVkIGZvciBLYnVpbGQgdG8gY29tcGlsZSB0aGUgY29kZSBzdGF0aWNhbGx5IGludG8gdm1saW51eC4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzCiAgIG91dHB1dCBhcnJheSwgYW5kIERPIE5PVCBhZGQgYSAmIzM5O0NPTkZJR18mIzM5OyBwcmVmaXggKGUuZy4sIHJldHVybiAmIzM0O05FVF9JUFY0JiMzNDsgaW5zdGVhZCBvZiAmIzM0O0NPTkZJR19ORVRfSVBWNCYjMzQ7KS4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IGQ4ZTBhNDdlZGRmNzllZjhjODgyOTU2M2Q2Y2ZiMmFiMzE1YzJhMjgKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgVGh1IEF1ZyA2IDIwOjM0OjA4IDIwMjYgJiM0MzswMDAwCgogICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3CgpkaWZmIC0tZ2l0IGEvYXJjaC94ODYvaW5jbHVkZS9hc20va3ZtX2hvc3QuaCBiL2FyY2gveDg2L2luY2x1ZGUvYXNtL2t2bV9ob3N0LmgKaW5kZXggMjgzODQ3NjE5ZmY4OC4uOTYxNDMxNGZkMjM3NCAxMDA2NDQKLS0tIGEvYXJjaC94ODYvaW5jbHVkZS9hc20va3ZtX2hvc3QuaAomIzQzOyYjNDM7JiM0MzsgYi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9rdm1faG9zdC5oCkBAIC05NzMsNyAmIzQzOzk3Myw3IEBAIHN0cnVjdCBrdm1fdmNwdV9hcmNoIHsKIAkJYm9vbCBwdl91bmhhbHRlZDsKIAl9IHB2OwogCi0JaW50IHBlbmRpbmdfaW9hcGljX2VvaTsKJiM0MzsJdTggcGVuZGluZ19pb2FwaWNfZW9pOwogCWludCBwZW5kaW5nX2V4dGVybmFsX3ZlY3RvcjsKIAlpbnQgaGlnaGVzdF9zdGFsZV9wZW5kaW5nX2lvYXBpY19lb2k7CiAKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2t2bS9sYXBpYy5jIGIvYXJjaC94ODYva3ZtL2xhcGljLmMKaW5kZXggNTg2YTVjZWUyOWUxYS4uODdiYjhlNWY0Y2ExZiAxMDA2NDQKLS0tIGEvYXJjaC94ODYva3ZtL2xhcGljLmMKJiM0MzsmIzQzOyYjNDM7IGIvYXJjaC94ODYva3ZtL2xhcGljLmMKQEAgLTE1NTIsNyAmIzQzOzE1NTIsNyBAQCBzdGF0aWMgYm9vbCBrdm1faW9hcGljX2hhbmRsZXNfdmVjdG9yKHN0cnVjdCBrdm1fbGFwaWMgKmFwaWMsIGludCB2ZWN0b3IpCiAJcmV0dXJuIHRlc3RfYml0KHZlY3RvciwgYXBpYy0mZ3Q7dmNwdS0mZ3Q7YXJjaC5pb2FwaWNfaGFuZGxlZF92ZWN0b3JzKTsKIH0KIAotc3RhdGljIHZvaWQga3ZtX2lvYXBpY19zZW5kX2VvaShzdHJ1Y3Qga3ZtX2xhcGljICphcGljLCBpbnQgdmVjdG9yKQomIzQzO3N0YXRpYyB2b2lkIGt2bV9pb2FwaWNfc2VuZF9lb2koc3RydWN0IGt2bV9sYXBpYyAqYXBpYywgdTggdmVjdG9yKQogewogCWludCBfX21heWJlX3VudXNlZCB0cmlnZ2VyX21vZGU7CiAKQEAgLTE2MjIsNyAmIzQzOzE2MjIsNyBAQCBzdGF0aWMgaW50IGFwaWNfc2V0X2VvaShzdHJ1Y3Qga3ZtX2xhcGljICphcGljKQogICogdGhpcyBpbnRlcmZhY2UgYXNzdW1lcyBhIHRyYXAtbGlrZSBleGl0LCB3aGljaCBoYXMgYWxyZWFkeSBmaW5pc2hlZAogICogZGVzaXJlZCBzaWRlIGVmZmVjdCBpbmNsdWRpbmcgdklTUiBhbmQgdlBQUiB1cGRhdGUuCiAgKi8KLXZvaWQga3ZtX2FwaWNfc2V0X2VvaV9hY2NlbGVyYXRlZChzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIGludCB2ZWN0b3IpCiYjNDM7dm9pZCBrdm1fYXBpY19zZXRfZW9pX2FjY2VsZXJhdGVkKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwgdTggdmVjdG9yKQogewogCXN0cnVjdCBrdm1fbGFwaWMgKmFwaWMgPSB2Y3B1LSZndDthcmNoLmFwaWM7CiAKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2t2bS9sYXBpYy5oIGIvYXJjaC94ODYva3ZtL2xhcGljLmgKaW5kZXggYmQxMDk4Yzg5ZDk5OC4uZGIwNzFkMGIxNzJkMCAxMDA2NDQKLS0tIGEvYXJjaC94ODYva3ZtL2xhcGljLmgKJiM0MzsmIzQzOyYjNDM7IGIvYXJjaC94ODYva3ZtL2xhcGljLmgKQEAgLTE3Nyw3ICYjNDM7MTc3LDcgQEAgdTY0IGt2bV9nZXRfbGFwaWNfdHNjZGVhZGxpbmVfbXNyKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSk7CiB2b2lkIGt2bV9zZXRfbGFwaWNfdHNjZGVhZGxpbmVfbXNyKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwgdTY0IGRhdGEpOwogCiB2b2lkIGt2bV9hcGljX3dyaXRlX25vZGVjb2RlKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwgdTMyIG9mZnNldCk7Ci12b2lkIGt2bV9hcGljX3NldF9lb2lfYWNjZWxlcmF0ZWQoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCBpbnQgdmVjdG9yKTsKJiM0Mzt2b2lkIGt2bV9hcGljX3NldF9lb2lfYWNjZWxlcmF0ZWQoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCB1OCB2ZWN0b3IpOwogCiBpbnQga3ZtX2xhcGljX3NldF92YXBpY19hZGRyKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwgZ3BhX3QgdmFwaWNfYWRkcik7CiB2b2lkIGt2bV9sYXBpY19zeW5jX2Zyb21fdmFwaWMoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KTsKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2t2bS92bXgvdm14LmMgYi9hcmNoL3g4Ni9rdm0vdm14L3ZteC5jCmluZGV4IGUzYmZlNmFjYTFhMGUuLmMxZmRmY2NkMjBmYWEgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2t2bS92bXgvdm14LmMKJiM0MzsmIzQzOyYjNDM7IGIvYXJjaC94ODYva3ZtL3ZteC92bXguYwpAQCAtNTg4NiwxMCAmIzQzOzU4ODYsOSBAQCBzdGF0aWMgaW50IGhhbmRsZV9hcGljX2FjY2VzcyhzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpCiBzdGF0aWMgaW50IGhhbmRsZV9hcGljX2VvaV9pbmR1Y2VkKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSkKIHsKIAl1bnNpZ25lZCBsb25nIGV4aXRfcXVhbGlmaWNhdGlvbiA9IHZteF9nZXRfZXhpdF9xdWFsKHZjcHUpOwotCWludCB2ZWN0b3IgPSBleGl0X3F1YWxpZmljYXRpb24gJmFtcDsgMHhmZjsKIAogCS8qIEVPSS1pbmR1Y2VkIFZNIGV4aXQgaXMgdHJhcC1saWtlIGFuZCB0aHVzIG5vIG5lZWQgdG8gYWRqdXN0IElQICovCi0Ja3ZtX2FwaWNfc2V0X2VvaV9hY2NlbGVyYXRlZCh2Y3B1LCB2ZWN0b3IpOwomIzQzOwlrdm1fYXBpY19zZXRfZW9pX2FjY2VsZXJhdGVkKHZjcHUsIGV4aXRfcXVhbGlmaWNhdGlvbiAmYW1wOyAweGZmKTsKIAlyZXR1cm4gMTsKIH0KIApkaWZmIC0tZ2l0IGEvYXJjaC94ODYva3ZtL3g4Ni5jIGIvYXJjaC94ODYva3ZtL3g4Ni5jCmluZGV4IGQ5NGI1OTE0MGM0NTIuLjhiMjNmMzQyYTFmYTUgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2t2bS94ODYuYwomIzQzOyYjNDM7JiM0MzsgYi9hcmNoL3g4Ni9rdm0veDg2LmMKQEAgLTgxNTEsNyAmIzQzOzgxNTEsNiBAQCBzdGF0aWMgaW50IHZjcHVfZW50ZXJfZ3Vlc3Qoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KQogCQlpZiAoa3ZtX2NoZWNrX3JlcXVlc3QoS1ZNX1JFUV9OTUksIHZjcHUpKQogCQkJcHJvY2Vzc19ubWkodmNwdSk7CiAJCWlmIChrdm1fY2hlY2tfcmVxdWVzdChLVk1fUkVRX0lPQVBJQ19FT0lfRVhJVCwgdmNwdSkpIHsKLQkJCUJVR19PTih2Y3B1LSZndDthcmNoLnBlbmRpbmdfaW9hcGljX2VvaSAmZ3Q7IDI1NSk7CiAJCQlpZiAodGVzdF9iaXQodmNwdS0mZ3Q7YXJjaC5wZW5kaW5nX2lvYXBpY19lb2ksCiAJCQkJICAgICB2Y3B1LSZndDthcmNoLmlvYXBpY19oYW5kbGVkX3ZlY3RvcnMpKSB7CiAJCQkJdmNwdS0mZ3Q7cnVuLSZndDtleGl0X3JlYXNvbiA9IEtWTV9FWElUX0lPQVBJQ19FT0k7CjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA2IDIwOjM0PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDMzNzgKCQkJCQkJCW91dHB1dDogMjcKCQkJCQkJCXRob3VnaHRzOiAzMDYKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqS1ZNIEVPSSBUeXBlIGFuZCBWYWx1ZSBCb3VuZGluZyBBbmFseXNpcyoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCBmb3IgS1ZNIG9uIHg4NiwgYW5kIGl0JiMzOTtzIGVzc2VudGlhbGx5IGEgdHlwZSByZWZpbmVtZW50IGZvciBFT0kgKEVuZCBvZiBJbnRlcnJ1cHQpIGhhbmRsaW5nLiBTcGVjaWZpY2FsbHksIHdlJiMzOTtyZSBjaGFuZ2luZyB0aGUgZGF0YSB0eXBlIG9mIGBwZW5kaW5nX2lvYXBpY19lb2lgIHdpdGhpbiB0aGUgYGt2bV92Y3B1X2FyY2hgIHN0cnVjdCwgYW5kIHRoZSBgdmVjdG9yYCBhcmd1bWVudCB1c2VkIGluIGBrdm1faW9hcGljX3NlbmRfZW9pYCBhbmQgYGt2bV9hcGljX3NldF9lb2lfYWNjZWxlcmF0ZWRgIGZyb20gYGludGAgdG8gYHU4YC4gCgpUaGlzIGlzIGltcG9ydGFudCBiZWNhdXNlIGl0IGluaGVyZW50bHkgYm91bmRzIHRoZSBFT0kgdmFsdWUgdG8gYSByYW5nZSBvZiAwLTI1NS4gVGhhdCBhbHNvIG1ha2VzIHRoZSBgQlVHX09OKHZjcHUtJmd0O2FyY2gucGVuZGluZ19pb2FwaWNfZW9pICZndDsgMjU1KWAgaW4gYHZjcHVfZW50ZXJfZ3Vlc3RgIHJlZHVuZGFudCwgc28gdGhhdCYjMzk7cyBiZWVuIHJlbW92ZWQuIEZ1bmN0aW9uYWxseSwgdGhpcyBpcyB0aGUgY29yZSBvZiBpdCwgdGhlIG1haW4gY2hhbmdlIGlzIHRoYXQgdGhlIHZhbHVlIGlzIG5vdyBleHBsaWNpdGx5IGJvdW5kZWQsIGFuZCBhIHNhZmVndWFyZCBpcyByZW1vdmVkIGJlY2F1c2UgaXQgaXMgbm93IHJlZHVuZGFudC4KClRoZSBgaGFuZGxlX2FwaWNfZW9pX2luZHVjZWRgIGZ1bmN0aW9uIG5vdyBwYXNzZXMgdGhlIGxvd2VyIGJ5dGUgb2YgdGhlIGBleGl0X3F1YWxpZmljYXRpb25gIGRpcmVjdGx5IHRvIGBrdm1fYXBpY19zZXRfZW9pX2FjY2VsZXJhdGVkYC4gVGhpcyBjaGFuZ2UgZmVlbHMgdmVyeSBjbGVhbiBhbmQgbWFrZXMgc2Vuc2UgZ2l2ZW4gdGhlIHR5cGUgY2hhbmdlLgoKR2l2ZW4gdGhpcywgSSB3YW50IHRvIGNvbmZpcm0gYSBmZXcgdGhpbmdzLiBGaXJzdCBJIG5lZWQgdG8gY2hlY2sgdGhlIEtjb25maWcgc2V0dGluZ3MuIFRoZSByZWxldmFudCBzeW1ib2wgaXMgYEtWTWAuIE5vdyBJIHdpbGwgemVybyBpbiBvbiB0aGUga2V5IHN5bWJvbHMsIHNwZWNpZmljYWxseSBJIHdpbGwgY2hlY2sgYGt2bV9hcGljX3NldF9lb2lfYWNjZWxlcmF0ZWRgIGFuZCBgaGFuZGxlX2FwaWNfZW9pX2luZHVjZWRgIGFnYWluLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA2IDIwOjM0PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2t2bV9hcGljX3NldF9lb2lfYWNjZWxlcmF0ZWQmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7YXJjaC94ODYva3ZtL2xhcGljLmM9MTU5Nz1zdGF0aWMgaW50IGFwaWNfc2V0X2VvaShzdHJ1Y3Qga3ZtX2xhcGljICphcGljKVxuLS1cbmFyY2gveDg2L2t2bS9sYXBpYy5jLTE2MjQtICovXG5hcmNoL3g4Ni9rdm0vbGFwaWMuYzoxNjI1OnZvaWQga3ZtX2FwaWNfc2V0X2VvaV9hY2NlbGVyYXRlZChzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIHU4IHZlY3RvcilcbmFyY2gveDg2L2t2bS9sYXBpYy5jLTE2MjYte1xuLS1cbmFyY2gveDg2L2t2bS9sYXBpYy5jLTE2MzMtfVxuYXJjaC94ODYva3ZtL2xhcGljLmM6MTYzNDpFWFBPUlRfU1lNQk9MX0ZPUl9LVk1fSU5URVJOQUwoa3ZtX2FwaWNfc2V0X2VvaV9hY2NlbGVyYXRlZCk7XG5hcmNoL3g4Ni9rdm0vbGFwaWMuYy0xNjM1LVxuLS1cbmFyY2gveDg2L2t2bS9sYXBpYy5oPTE3OT12b2lkIGt2bV9hcGljX3dyaXRlX25vZGVjb2RlKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwgdTMyIG9mZnNldCk7XG5hcmNoL3g4Ni9rdm0vbGFwaWMuaDoxODA6dm9pZCBrdm1fYXBpY19zZXRfZW9pX2FjY2VsZXJhdGVkKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwgdTggdmVjdG9yKTtcbmFyY2gveDg2L2t2bS9sYXBpYy5oLTE4MS1cbi0tXG5hcmNoL3g4Ni9rdm0vdm14L3ZteC5jPTU4ODY9c3RhdGljIGludCBoYW5kbGVfYXBpY19lb2lfaW5kdWNlZChzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpXG4tLVxuYXJjaC94ODYva3ZtL3ZteC92bXguYy01ODkwLVx0LyogRU9JLWluZHVjZWQgVk0gZXhpdCBpcyB0cmFwLWxpa2UgYW5kIHRodXMgbm8gbmVlZCB0byBhZGp1c3QgSVAgKi9cbmFyY2gveDg2L2t2bS92bXgvdm14LmM6NTg5MTpcdGt2bV9hcGljX3NldF9lb2lfYWNjZWxlcmF0ZWQodmNwdSwgZXhpdF9xdWFsaWZpY2F0aW9uIFx1MDAyNiAweGZmKTtcbmFyY2gveDg2L2t2bS92bXgvdm14LmMtNTg5Mi1cdHJldHVybiAxO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA2IDIwOjM0PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDQ1ODcKCQkJCQkJCW91dHB1dDogMTcKCQkJCQkJCXRob3VnaHRzOiAyNTYKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqRnV6emluZyBUYXJnZXQgSWRlbnRpZmljYXRpb246IEtWTSB4ODYgQVBJQyBFT0kgSGFuZGxpbmcqKgoKT2theSwgc28gdGhpcyBwYXRjaCBpcyBjbGVhcmx5IG1lc3Npbmcgd2l0aCBjb3JlIEtWTSB4ODYgbG9naWMsIHNwZWNpZmljYWxseSBhcm91bmQgaG93IGl0IGhhbmRsZXMgQVBJQyBFT0kgKEVuZCBvZiBJbnRlcnJ1cHQpIHNpZ25hbHMuIFRoYXQgaW1tZWRpYXRlbHkgZmxhZ3MgaXQgYXMgYSBwcmltZSB0YXJnZXQgZm9yIGZ1enppbmcg4oCTIHRoZXJlJiMzOTtzIGxpa2VseSBzb21lIHN1YnRsZSBzdGF0ZSBtYW5hZ2VtZW50IG9yIHJhY2UgY29uZGl0aW9uIGx1cmtpbmcgaW4gdGhlcmUgdGhhdCB3ZSBjYW4gZXhwb3NlLgoKVGhlIGZ1bmN0aW9ucyB0b3VjaGVkIGFyZSBga3ZtX2FwaWNfc2V0X2VvaV9hY2NlbGVyYXRlZGAsIGBoYW5kbGVfYXBpY19lb2lfaW5kdWNlZGAsIGBrdm1faW9hcGljX3NlbmRfZW9pYCwgYW5kIGB2Y3B1X2VudGVyX2d1ZXN0YC4gSW1tZWRpYXRlbHksIGB2Y3B1X2VudGVyX2d1ZXN0YCBpcyBhIHJlZCBmbGFnLCBiZWluZyBhIGhvdCBwYXRoLiBJJiMzOTtkIHJhdGhlciBhdm9pZCB0aGF0IGlmIHBvc3NpYmxlIHRvIG1pbmltaXplIG5vaXNlIGFuZCBmb2N1cyBvdXIgZWZmb3J0cy4KClRoYXQgbGVhdmVzIHVzIHdpdGggYGhhbmRsZV9hcGljX2VvaV9pbmR1Y2VkYCBhbmQgYGt2bV9hcGljX3NldF9lb2lfYWNjZWxlcmF0ZWRgIGFzIHRoZSBwcmltYXJ5IGZvY3VzIHBvaW50cy4gU291bmRzIGdvb2QhIE5vdywgd2hhdCBhYm91dCBga3ZtX2lvYXBpY19zZW5kX2VvaWA/IEl0JiMzOTtzIGEgYml0IG9mIGEgcXVlc3Rpb24gbWFyayBzaW5jZSBpdCYjMzk7cyBzdGF0aWMuIExldCYjMzk7cyBjb25maXJtIHRoYXQgcXVpY2tseS4uLiAqY2hlY2tzIGNvZGUqLi4uIHllcCwgaXQmIzM5O3MgYHN0YXRpYyB2b2lkIGt2bV9pb2FwaWNfc2VuZF9lb2lgLiBTaW5jZSBpdCYjMzk7cyBzdGF0aWMsIGl0JiMzOTtzIGxpa2VseSBpbmxpbmVkLCBzbyBsZXQmIzM5O3Mgc2tpcCB0aGF0IGZ1bmN0aW9uLgoKVGhlIHJlbGV2YW50IGNvbmZpZyBpcyBgS1ZNYC4gR290IGl0LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA2IDIwOjM0PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2NvbmZpZyBLVk0mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7YXJjaC9hcm02NC9rdm0vS2NvbmZpZz0xOD1pZiBWSVJUVUFMSVpBVElPTlxuYXJjaC9hcm02NC9rdm0vS2NvbmZpZy0xOS1cbmFyY2gvYXJtNjQva3ZtL0tjb25maWc6MjA6bWVudWNvbmZpZyBLVk1cbmFyY2gvYXJtNjQva3ZtL0tjb25maWctMjEtXHRib29sIFwmIzM0O0tlcm5lbC1iYXNlZCBWaXJ0dWFsIE1hY2hpbmUgKEtWTSkgc3VwcG9ydFwmIzM0O1xuLS1cbmFyY2gvbG9vbmdhcmNoL2t2bS9LY29uZmlnPTE4PWlmIFZJUlRVQUxJWkFUSU9OXG5hcmNoL2xvb25nYXJjaC9rdm0vS2NvbmZpZy0xOS1cbmFyY2gvbG9vbmdhcmNoL2t2bS9LY29uZmlnOjIwOmNvbmZpZyBLVk1cbmFyY2gvbG9vbmdhcmNoL2t2bS9LY29uZmlnLTIxLVx0dHJpc3RhdGUgXCYjMzQ7S2VybmVsLWJhc2VkIFZpcnR1YWwgTWFjaGluZSAoS1ZNKSBzdXBwb3J0XCYjMzQ7XG4tLVxuYXJjaC9taXBzL2t2bS9LY29uZmlnPTE2PWlmIFZJUlRVQUxJWkFUSU9OXG5hcmNoL21pcHMva3ZtL0tjb25maWctMTctXG5hcmNoL21pcHMva3ZtL0tjb25maWc6MTg6Y29uZmlnIEtWTVxuYXJjaC9taXBzL2t2bS9LY29uZmlnLTE5LVx0dHJpc3RhdGUgXCYjMzQ7S2VybmVsLWJhc2VkIFZpcnR1YWwgTWFjaGluZSAoS1ZNKSBzdXBwb3J0XCYjMzQ7XG4tLVxuYXJjaC9taXBzL2t2bS9LY29uZmlnLTMwLVxuYXJjaC9taXBzL2t2bS9LY29uZmlnOjMxOmNvbmZpZyBLVk1fTUlQU19ERUJVR19DT1AwX0NPVU5URVJTXG5hcmNoL21pcHMva3ZtL0tjb25maWctMzItXHRib29sIFwmIzM0O01haW50YWluIGNvdW50ZXJzIGZvciBDT1AwIGFjY2Vzc2VzXCYjMzQ7XG4tLVxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnPTE4PWlmIFZJUlRVQUxJWkFUSU9OXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMTktXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWc6MjA6Y29uZmlnIEtWTVxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTIxLVx0Ym9vbFxuLS1cbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0yNS1cbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZzoyNjpjb25maWcgS1ZNX0JPT0szU19IQU5ETEVSXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMjctXHRib29sXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMjgtXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWc6Mjk6Y29uZmlnIEtWTV9CT09LM1NfMzJfSEFORExFUlxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTMwLVx0Ym9vbFxuLS1cbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0zMy1cbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZzozNDpjb25maWcgS1ZNX0JPT0szU182NF9IQU5ETEVSXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMzUtXHRib29sXG4tLVxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTM3LVxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnOjM4OmNvbmZpZyBLVk1fQk9PSzNTX1BSX1BPU1NJQkxFXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMzktXHRib29sXG4tLVxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTQxLVxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnOjQyOmNvbmZpZyBLVk1fQk9PSzNTX0hWX1BPU1NJQkxFXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctNDMtXHRib29sXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctNDQtXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWc6NDU6Y29uZmlnIEtWTV9CT09LM1NfMzJcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy00Ni1cdHRyaXN0YXRlIFwmIzM0O0tWTSBzdXBwb3J0IGZvciBQb3dlclBDIGJvb2szc18zMiBwcm9jZXNzb3JzXCYjMzQ7XG4tLVxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTYxLVxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnOjYyOmNvbmZpZyBLVk1fQk9PSzNTXzY0XG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctNjMtXHR0cmlzdGF0ZSBcJiMzNDtLVk0gc3VwcG9ydCBmb3IgUG93ZXJQQyBib29rM3NfNjQgcHJvY2Vzc29yc1wmIzM0O1xuLS1cbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy03OC1cbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZzo3OTpjb25maWcgS1ZNX0JPT0szU182NF9IVlxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTgwLVx0dHJpc3RhdGUgXCYjMzQ7S1ZNIGZvciBQT1dFUjcgYW5kIGxhdGVyIHVzaW5nIGh5cGVydmlzb3IgbW9kZSBpbiBob3N0XCYjMzQ7XG4tLVxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTk5LVxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnOjEwMDpjb25maWcgS1ZNX0JPT0szU182NF9QUlxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTEwMS1cdHRyaXN0YXRlIFwmIzM0O0tWTSBzdXBwb3J0IHdpdGhvdXQgdXNpbmcgaHlwZXJ2aXNvciBtb2RlIGluIGhvc3RcJiMzNDtcbi0tXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMTI1LVxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnOjEyNjpjb25maWcgS1ZNX0JPT0szU19IVl9FWElUX1RJTUlOR1xuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTEyNy1cdGJvb2xcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0xMjgtXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWc6MTI5OmNvbmZpZyBLVk1fQk9PSzNTX0hWX1A5X1RJTUlOR1xuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTEzMC1cdGJvb2wgXCYjMzQ7RGV0YWlsZWQgdGltaW5nIGZvciB0aGUgUDkgZW50cnkgcG9pbnRcJiMzNDtcbi0tXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMTQxLVxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnOjE0Mjpjb25maWcgS1ZNX0JPT0szU19IVl9QOF9USU1JTkdcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0xNDMtXHRib29sIFwmIzM0O0RldGFpbGVkIHRpbWluZyBmb3IgaHlwZXJ2aXNvciByZWFsLW1vZGUgY29kZSAoZm9yIFBPV0VSOClcJiMzNDtcbi0tXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMTU2LVxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnOjE1Nzpjb25maWcgS1ZNX0JPT0szU19IVl9ORVNURURfUE1VX1dPUktBUk9VTkRcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0xNTgtXHRib29sIFwmIzM0O05lc3RlZCBMMCBob3N0IHdvcmthcm91bmQgZm9yIEwxIEtWTSBob3N0IFBNVSBoYW5kbGluZyBidWdcJiMzNDsgaWYgRVhQRVJUXG4tLVxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTE3MS1cbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZzoxNzI6Y29uZmlnIEtWTV9CT09LM1NfSFZfUE1VXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMTczLVx0dHJpc3RhdGUgXCYjMzQ7SHlwZXJ2aXNvciBQZXJmIGV2ZW50cyBmb3IgS1ZNIEJvb2szcy1IVlwmIzM0O1xuLS1cbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0xODMtXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWc6MTg0OmNvbmZpZyBLVk1fQk9PS0VfSFZcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0xODUtXHRib29sXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMTg2LVxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnOjE4Nzpjb25maWcgS1ZNX0VYSVRfVElNSU5HXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMTg4LVx0Ym9vbCBcJiMzNDtEZXRhaWxlZCBleGl0IHRpbWluZ1wmIzM0O1xuLS1cbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0xOTctXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWc6MTk4OmNvbmZpZyBLVk1fRTUwMFYyXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMTk5LVx0Ym9vbCBcJiMzNDtLVk0gc3VwcG9ydCBmb3IgUG93ZXJQQyBFNTAwdjIgcHJvY2Vzc29yc1wmIzM0O1xuLS1cbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0yMTItXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWc6MjEzOmNvbmZpZyBLVk1fRTUwME1DXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMjE0LVx0Ym9vbCBcJiMzNDtLVk0gc3VwcG9ydCBmb3IgUG93ZXJQQyBFNTAwTUMvRTU1MDAvRTY1MDAgcHJvY2Vzc29yc1wmIzM0O1xuLS1cbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0yMjgtXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWc6MjI5OmNvbmZpZyBLVk1fTVBJQ1xuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTIzMC1cdGJvb2wgXCYjMzQ7S1ZNIGluLWtlcm5lbCBNUElDIGVtdWxhdGlvblwmIzM0O1xuLS1cbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0yNDAtXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWc6MjQxOmNvbmZpZyBLVk1fWElDU1xuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTI0Mi1cdGJvb2wgXCYjMzQ7S1ZNIGluLWtlcm5lbCBYSUNTIGVtdWxhdGlvblwmIzM0O1xuLS1cbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0yNTAtXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWc6MjUxOmNvbmZpZyBLVk1fWElWRVxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTI1Mi1cdGJvb2xcbi0tXG5hcmNoL3Bvd2VycGMvcGxhdGZvcm1zL0tjb25maWc9MjI9c291cmNlIFwmIzM0O2FyY2gvcG93ZXJwYy9wbGF0Zm9ybXMvbWljcm93YXR0L0tjb25maWdcJiMzNDtcbmFyY2gvcG93ZXJwYy9wbGF0Zm9ybXMvS2NvbmZpZy0yMy1cbmFyY2gvcG93ZXJwYy9wbGF0Zm9ybXMvS2NvbmZpZzoyNDpjb25maWcgS1ZNX0dVRVNUXG5hcmNoL3Bvd2VycGMvcGxhdGZvcm1zL0tjb25maWctMjUtXHRib29sIFwmIzM0O0tWTSBHdWVzdCBzdXBwb3J0XCYjMzQ7XG4tLVxuYXJjaC9yaXNjdi9rdm0vS2NvbmZpZz0xOD1pZiBWSVJUVUFMSVpBVElPTlxuYXJjaC9yaXNjdi9rdm0vS2NvbmZpZy0xOS1cbmFyY2gvcmlzY3Yva3ZtL0tjb25maWc6MjA6Y29uZmlnIEtWTVxuYXJjaC9yaXNjdi9rdm0vS2NvbmZpZy0yMS1cdHRyaXN0YXRlIFwmIzM0O0tlcm5lbC1iYXNlZCBWaXJ0dWFsIE1hY2hpbmUgKEtWTSkgc3VwcG9ydFwmIzM0O1xuLS1cbmFyY2gvczM5MC9rdm0vS2NvbmZpZz0xNz1pZiBWSVJUVUFMSVpBVElPTlxuYXJjaC9zMzkwL2t2bS9LY29uZmlnLTE4LVxuYXJjaC9zMzkwL2t2bS9LY29uZmlnOjE5OmNvbmZpZyBLVk1cbmFyY2gvczM5MC9rdm0vS2NvbmZpZy0yMC1cdGRlZl90cmlzdGF0ZSB5XG4tLVxuYXJjaC9zMzkwL2t2bS9LY29uZmlnLTQ2LVxuYXJjaC9zMzkwL2t2bS9LY29uZmlnOjQ3OmNvbmZpZyBLVk1fUzM5MF9VQ09OVFJPTFxuYXJjaC9zMzkwL2t2bS9LY29uZmlnLTQ4LVx0Ym9vbCBcJiMzNDtVc2Vyc3BhY2UgY29udHJvbGxlZCB2aXJ0dWFsIG1hY2hpbmVzXCYjMzQ7XG4tLVxuYXJjaC94ODYvS2NvbmZpZz04MjY9c291cmNlIFwmIzM0O2FyY2gveDg2L3hlbi9LY29uZmlnXCYjMzQ7XG5hcmNoL3g4Ni9LY29uZmlnLTgyNy1cbmFyY2gveDg2L0tjb25maWc6ODI4OmNvbmZpZyBLVk1fR1VFU1RcbmFyY2gveDg2L0tjb25maWctODI5LVx0Ym9vbCBcJiMzNDtLVk0gR3Vlc3Qgc3VwcG9ydCAoaW5jbHVkaW5nIGt2bWNsb2NrKVwmIzM0O1xuLS1cbmFyY2gveDg2L2t2bS9LY29uZmlnPTE4PWlmIFZJUlRVQUxJWkFUSU9OXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0xOS1cbmFyY2gveDg2L2t2bS9LY29uZmlnOjIwOmNvbmZpZyBLVk1fWDg2XG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0yMS1cdGRlZl90cmlzdGF0ZSBLVk0gaWYgKEtWTV9JTlRFTCAhPSBuIHx8IEtWTV9BTUQgIT0gbilcbi0tXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy01MS1cbmFyY2gveDg2L2t2bS9LY29uZmlnOjUyOmNvbmZpZyBLVk1cbmFyY2gveDg2L2t2bS9LY29uZmlnLTUzLVx0dHJpc3RhdGUgXCYjMzQ7S2VybmVsLWJhc2VkIFZpcnR1YWwgTWFjaGluZSAoS1ZNKSBzdXBwb3J0XCYjMzQ7XG4tLVxuYXJjaC94ODYva3ZtL0tjb25maWctNjgtXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZzo2OTpjb25maWcgS1ZNX1dFUlJPUlxuYXJjaC94ODYva3ZtL0tjb25maWctNzAtXHRib29sIFwmIzM0O0NvbXBpbGUgS1ZNIHdpdGggLVdlcnJvclwmIzM0O1xuLS1cbmFyY2gveDg2L2t2bS9LY29uZmlnLTgyLVxuYXJjaC94ODYva3ZtL0tjb25maWc6ODM6Y29uZmlnIEtWTV9TV19QUk9URUNURURfVk1cbmFyY2gveDg2L2t2bS9LY29uZmlnLTg0LVx0Ym9vbCBcJiMzNDtFbmFibGUgc3VwcG9ydCBmb3IgS1ZNIHNvZnR3YXJlLXByb3RlY3RlZCBWTXNcJiMzNDtcbi0tXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy05NS1cbmFyY2gveDg2L2t2bS9LY29uZmlnOjk2OmNvbmZpZyBLVk1fSU5URUxcbmFyY2gveDg2L2t2bS9LY29uZmlnLTk3LVx0dHJpc3RhdGUgXCYjMzQ7S1ZNIGZvciBJbnRlbCAoYW5kIGNvbXBhdGlibGUpIHByb2Nlc3NvcnMgc3VwcG9ydFwmIzM0O1xuLS1cbmFyY2gveDg2L2t2bS9LY29uZmlnLTEwNi1cbmFyY2gveDg2L2t2bS9LY29uZmlnOjEwNzpjb25maWcgS1ZNX0lOVEVMX1BST1ZFX1ZFXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0xMDgtICAgICAgICBib29sIFwmIzM0O0NoZWNrIHRoYXQgZ3Vlc3RzIGRvIG5vdCByZWNlaXZlICNWRSBleGNlcHRpb25zXCYjMzQ7XG4tLVxuYXJjaC94ODYva3ZtL0tjb25maWc9MTIyPWNvbmZpZyBYODZfU0dYX0tWTVxuLS1cbmFyY2gveDg2L2t2bS9LY29uZmlnLTEzMy1cbmFyY2gveDg2L2t2bS9LY29uZmlnOjEzNDpjb25maWcgS1ZNX0lOVEVMX1REWFxuYXJjaC94ODYva3ZtL0tjb25maWctMTM1LVx0Ym9vbCBcJiMzNDtJbnRlbCBUcnVzdCBEb21haW4gRXh0ZW5zaW9ucyAoVERYKSBzdXBwb3J0XCYjMzQ7XG4tLVxuYXJjaC94ODYva3ZtL0tjb25maWctMTQ1LVxuYXJjaC94ODYva3ZtL0tjb25maWc6MTQ2OmNvbmZpZyBLVk1fQU1EXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0xNDctXHR0cmlzdGF0ZSBcJiMzNDtLVk0gZm9yIEFNRCBwcm9jZXNzb3JzIHN1cHBvcnRcJiMzNDtcbi0tXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0xNTUtXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZzoxNTY6Y29uZmlnIEtWTV9BTURfU0VWXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0xNTctXHRib29sIFwmIzM0O0FNRCBTZWN1cmUgRW5jcnlwdGVkIFZpcnR1YWxpemF0aW9uIChTRVYpIHN1cHBvcnRcJiMzNDtcbi0tXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0xNzItXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZzoxNzM6Y29uZmlnIEtWTV9JT0FQSUNcbmFyY2gveDg2L2t2bS9LY29uZmlnLTE3NC1cdGJvb2wgXCYjMzQ7SS9PIEFQSUMsIFBJQywgYW5kIFBJVCBlbXVsYXRpb25cJiMzNDtcbi0tXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0xODItXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZzoxODM6Y29uZmlnIEtWTV9TTU1cbmFyY2gveDg2L2t2bS9LY29uZmlnLTE4NC1cdGJvb2wgXCYjMzQ7U3lzdGVtIE1hbmFnZW1lbnQgTW9kZSBlbXVsYXRpb25cJiMzNDtcbi0tXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0xOTMtXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZzoxOTQ6Y29uZmlnIEtWTV9IWVBFUlZcbmFyY2gveDg2L2t2bS9LY29uZmlnLTE5NS1cdGJvb2wgXCYjMzQ7U3VwcG9ydCBmb3IgTWljcm9zb2Z0IEh5cGVyLVYgZW11bGF0aW9uXCYjMzQ7XG4tLVxuYXJjaC94ODYva3ZtL0tjb25maWctMjA3LVxuYXJjaC94ODYva3ZtL0tjb25maWc6MjA4OmNvbmZpZyBLVk1fWEVOXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0yMDktXHRib29sIFwmIzM0O1N1cHBvcnQgZm9yIFhlbiBoeXBlcmNhbGwgaW50ZXJmYWNlXCYjMzQ7XG4tLVxuYXJjaC94ODYva3ZtL0tjb25maWctMjE2LVxuYXJjaC94ODYva3ZtL0tjb25maWc6MjE3OmNvbmZpZyBLVk1fUFJPVkVfTU1VXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0yMTgtXHRib29sIFwmIzM0O1Byb3ZlIEtWTSBNTVUgY29ycmVjdG5lc3NcJiMzNDtcbi0tXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0yMjktXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZzoyMzA6Y29uZmlnIEtWTV9FWFRFUk5BTF9XUklURV9UUkFDS0lOR1xuYXJjaC94ODYva3ZtL0tjb25maWctMjMxLVx0Ym9vbFxuYXJjaC94ODYva3ZtL0tjb25maWctMjMyLVxuYXJjaC94ODYva3ZtL0tjb25maWc6MjMzOmNvbmZpZyBLVk1fTUFYX05SX1ZDUFVTXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0yMzQtXHRpbnQgXCYjMzQ7TWF4aW11bSBudW1iZXIgb2YgdkNQVXMgcGVyIEtWTSBndWVzdFwmIzM0O1xuLS1cbnZpcnQva3ZtL0tjb25maWctMy1cbnZpcnQva3ZtL0tjb25maWc6NDpjb25maWcgS1ZNX0NPTU1PTlxudmlydC9rdm0vS2NvbmZpZy01LSAgICAgICBib29sXG4tLVxudmlydC9rdm0vS2NvbmZpZz0zOT1jb25maWcgTkVFRF9LVk1fRElSVFlfUklOR19XSVRIX0JJVE1BUFxuLS1cbnZpcnQva3ZtL0tjb25maWctNDItXG52aXJ0L2t2bS9LY29uZmlnOjQzOmNvbmZpZyBLVk1fTU1JT1xudmlydC9rdm0vS2NvbmZpZy00NC0gICAgICAgYm9vbFxudmlydC9rdm0vS2NvbmZpZy00NS1cbnZpcnQva3ZtL0tjb25maWc6NDY6Y29uZmlnIEtWTV9BU1lOQ19QRlxudmlydC9rdm0vS2NvbmZpZy00Ny0gICAgICAgYm9vbFxuLS1cbnZpcnQva3ZtL0tjb25maWctNDktIyBUb2dnbGUgdG8gc3dpdGNoIGJldHdlZW4gZGlyZWN0IG5vdGlmaWNhdGlvbiBhbmQgYmF0Y2ggam9iXG52aXJ0L2t2bS9LY29uZmlnOjUwOmNvbmZpZyBLVk1fQVNZTkNfUEZfU1lOQ1xudmlydC9rdm0vS2NvbmZpZy01MS0gICAgICAgYm9vbFxuLS1cbnZpcnQva3ZtL0tjb25maWc9NTk9Y29uZmlnIEhBVkVfS1ZNX0NQVV9SRUxBWF9JTlRFUkNFUFRcbi0tXG52aXJ0L2t2bS9LY29uZmlnLTYxLVxudmlydC9rdm0vS2NvbmZpZzo2Mjpjb25maWcgS1ZNX1ZGSU9cbnZpcnQva3ZtL0tjb25maWctNjMtICAgICAgIGJvb2xcbi0tXG52aXJ0L2t2bS9LY29uZmlnPTY1PWNvbmZpZyBIQVZFX0tWTV9JTlZBTElEX1dBS0VVUFNcbi0tXG52aXJ0L2t2bS9LY29uZmlnLTY3LVxudmlydC9rdm0vS2NvbmZpZzo2ODpjb25maWcgS1ZNX0dFTkVSSUNfRElSVFlMT0dfUkVBRF9QUk9URUNUXG52aXJ0L2t2bS9LY29uZmlnLTY5LSAgICAgICBib29sXG52aXJ0L2t2bS9LY29uZmlnLTcwLVxudmlydC9rdm0vS2NvbmZpZzo3MTpjb25maWcgS1ZNX0dFTkVSSUNfUFJFX0ZBVUxUX01FTU9SWVxudmlydC9rdm0vS2NvbmZpZy03Mi0gICAgICAgYm9vbFxudmlydC9rdm0vS2NvbmZpZy03My1cbnZpcnQva3ZtL0tjb25maWc6NzQ6Y29uZmlnIEtWTV9DT01QQVRcbnZpcnQva3ZtL0tjb25maWctNzUtICAgICAgIGRlZl9ib29sIHlcbi0tXG52aXJ0L2t2bS9LY29uZmlnPTkxPWNvbmZpZyBIQVZFX0tWTV9QTV9OT1RJRklFUlxuLS1cbnZpcnQva3ZtL0tjb25maWctOTMtXG52aXJ0L2t2bS9LY29uZmlnOjk0OmNvbmZpZyBLVk1fR0VORVJJQ19IQVJEV0FSRV9FTkFCTElOR1xudmlydC9rdm0vS2NvbmZpZy05NS0gICAgICAgYm9vbFxudmlydC9rdm0vS2NvbmZpZy05Ni1cbnZpcnQva3ZtL0tjb25maWc6OTc6Y29uZmlnIEtWTV9FTElERV9UTEJfRkxVU0hfSUZfWU9VTkdcbnZpcnQva3ZtL0tjb25maWctOTgtICAgICAgIGJvb2xcbnZpcnQva3ZtL0tjb25maWctOTktXG52aXJ0L2t2bS9LY29uZmlnOjEwMDpjb25maWcgS1ZNX01NVV9MT0NLTEVTU19BR0lOR1xudmlydC9rdm0vS2NvbmZpZy0xMDEtICAgICAgIGJvb2xcbnZpcnQva3ZtL0tjb25maWctMTAyLVxudmlydC9rdm0vS2NvbmZpZzoxMDM6Y29uZmlnIEtWTV9HRU5FUklDX01FTU9SWV9BVFRSSUJVVEVTXG52aXJ0L2t2bS9LY29uZmlnLTEwNC0gICAgICAgYm9vbFxudmlydC9rdm0vS2NvbmZpZy0xMDUtXG52aXJ0L2t2bS9LY29uZmlnOjEwNjpjb25maWcgS1ZNX0dVRVNUX01FTUZEXG52aXJ0L2t2bS9LY29uZmlnLTEwNy0gICAgICAgc2VsZWN0IFhBUlJBWV9NVUxUSVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA2IDIwOjM0PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDk0NjAKCQkJCQkJCW91dHB1dDogMzQKCQkJCQkJCXRob3VnaHRzOiA0NwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipLVk0gQ29uZmlndXJhdGlvbjogQSBEZWVwIERpdmUqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgY29uZmlndXJhdGlvbiBhbmQgaXQmIzM5O3Mgc2V0IHRvIGBLVk1gLiBSaWdodCwgcmlnaHQuLi4gYnV0IGBLVk1gIGlzIGEgdHJpc3RhdGUsIGFuZCB0aGF0IG1lYW5zIGl0IGhhcyBkZXBlbmRlbmNpZXMuIE15IG1pbmQgaW1tZWRpYXRlbHkganVtcHMgdG8gdmVyaWZ5aW5nIHRoZSBkZXBlbmRlbmNpZXMuIFNwZWNpZmljYWxseSwgYEtWTWAgcmVsaWVzIG9uIGBWSVJUVUFMSVpBVElPTmAuIFRpbWUgdG8gZGlnIGRlZXBlciBpbnRvIHRoZSBzb3VyY2UsIGxldCYjMzk7cyBnbyB0byBgYXJjaC94ODYva3ZtL0tjb25maWdgIHRvIGNvbmZpcm0gdGhlc2UgZGVwZW5kZW5jaWVzIGFuZCByZWZyZXNoIG15IG1lbW9yeSBvbiB0aGUgc3BlY2lmaWNzIG9mIGhvdyB0aGlzIGZlYXR1cmUgaXMgY29udHJvbGxlZCBhdCB0aGUgYXJjaGl0ZWN0dXJhbCBsZXZlbC4gSSBuZWVkIHRvIGJlIHN1cmUgdGhpcyBpcyBzZXR1cCBhcyBJIGV4cGVjdC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD44LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNiAyMDozNDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtjb25maWcgS1ZNJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7YXJjaC94ODYva3ZtL0tjb25maWcmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7YXJjaC94ODYva3ZtL0tjb25maWc9MTg9aWYgVklSVFVBTElaQVRJT05cbmFyY2gveDg2L2t2bS9LY29uZmlnLTE5LVxuYXJjaC94ODYva3ZtL0tjb25maWc6MjA6Y29uZmlnIEtWTV9YODZcbmFyY2gveDg2L2t2bS9LY29uZmlnLTIxLVx0ZGVmX3RyaXN0YXRlIEtWTSBpZiAoS1ZNX0lOVEVMICE9IG4gfHwgS1ZNX0FNRCAhPSBuKVxuLS1cbmFyY2gveDg2L2t2bS9LY29uZmlnLTUxLVxuYXJjaC94ODYva3ZtL0tjb25maWc6NTI6Y29uZmlnIEtWTVxuYXJjaC94ODYva3ZtL0tjb25maWctNTMtXHR0cmlzdGF0ZSBcJiMzNDtLZXJuZWwtYmFzZWQgVmlydHVhbCBNYWNoaW5lIChLVk0pIHN1cHBvcnRcJiMzNDtcbi0tXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy02OC1cbmFyY2gveDg2L2t2bS9LY29uZmlnOjY5OmNvbmZpZyBLVk1fV0VSUk9SXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy03MC1cdGJvb2wgXCYjMzQ7Q29tcGlsZSBLVk0gd2l0aCAtV2Vycm9yXCYjMzQ7XG4tLVxuYXJjaC94ODYva3ZtL0tjb25maWctODItXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZzo4Mzpjb25maWcgS1ZNX1NXX1BST1RFQ1RFRF9WTVxuYXJjaC94ODYva3ZtL0tjb25maWctODQtXHRib29sIFwmIzM0O0VuYWJsZSBzdXBwb3J0IGZvciBLVk0gc29mdHdhcmUtcHJvdGVjdGVkIFZNc1wmIzM0O1xuLS1cbmFyY2gveDg2L2t2bS9LY29uZmlnLTk1LVxuYXJjaC94ODYva3ZtL0tjb25maWc6OTY6Y29uZmlnIEtWTV9JTlRFTFxuYXJjaC94ODYva3ZtL0tjb25maWctOTctXHR0cmlzdGF0ZSBcJiMzNDtLVk0gZm9yIEludGVsIChhbmQgY29tcGF0aWJsZSkgcHJvY2Vzc29ycyBzdXBwb3J0XCYjMzQ7XG4tLVxuYXJjaC94ODYva3ZtL0tjb25maWctMTA2LVxuYXJjaC94ODYva3ZtL0tjb25maWc6MTA3OmNvbmZpZyBLVk1fSU5URUxfUFJPVkVfVkVcbmFyY2gveDg2L2t2bS9LY29uZmlnLTEwOC0gICAgICAgIGJvb2wgXCYjMzQ7Q2hlY2sgdGhhdCBndWVzdHMgZG8gbm90IHJlY2VpdmUgI1ZFIGV4Y2VwdGlvbnNcJiMzNDtcbi0tXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZz0xMjI9Y29uZmlnIFg4Nl9TR1hfS1ZNXG4tLVxuYXJjaC94ODYva3ZtL0tjb25maWctMTMzLVxuYXJjaC94ODYva3ZtL0tjb25maWc6MTM0OmNvbmZpZyBLVk1fSU5URUxfVERYXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0xMzUtXHRib29sIFwmIzM0O0ludGVsIFRydXN0IERvbWFpbiBFeHRlbnNpb25zIChURFgpIHN1cHBvcnRcJiMzNDtcbi0tXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0xNDUtXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZzoxNDY6Y29uZmlnIEtWTV9BTURcbmFyY2gveDg2L2t2bS9LY29uZmlnLTE0Ny1cdHRyaXN0YXRlIFwmIzM0O0tWTSBmb3IgQU1EIHByb2Nlc3NvcnMgc3VwcG9ydFwmIzM0O1xuLS1cbmFyY2gveDg2L2t2bS9LY29uZmlnLTE1NS1cbmFyY2gveDg2L2t2bS9LY29uZmlnOjE1Njpjb25maWcgS1ZNX0FNRF9TRVZcbmFyY2gveDg2L2t2bS9LY29uZmlnLTE1Ny1cdGJvb2wgXCYjMzQ7QU1EIFNlY3VyZSBFbmNyeXB0ZWQgVmlydHVhbGl6YXRpb24gKFNFVikgc3VwcG9ydFwmIzM0O1xuLS1cbmFyY2gveDg2L2t2bS9LY29uZmlnLTE3Mi1cbmFyY2gveDg2L2t2bS9LY29uZmlnOjE3Mzpjb25maWcgS1ZNX0lPQVBJQ1xuYXJjaC94ODYva3ZtL0tjb25maWctMTc0LVx0Ym9vbCBcJiMzNDtJL08gQVBJQywgUElDLCBhbmQgUElUIGVtdWxhdGlvblwmIzM0O1xuLS1cbmFyY2gveDg2L2t2bS9LY29uZmlnLTE4Mi1cbmFyY2gveDg2L2t2bS9LY29uZmlnOjE4Mzpjb25maWcgS1ZNX1NNTVxuYXJjaC94ODYva3ZtL0tjb25maWctMTg0LVx0Ym9vbCBcJiMzNDtTeXN0ZW0gTWFuYWdlbWVudCBNb2RlIGVtdWxhdGlvblwmIzM0O1xuLS1cbmFyY2gveDg2L2t2bS9LY29uZmlnLTE5My1cbmFyY2gveDg2L2t2bS9LY29uZmlnOjE5NDpjb25maWcgS1ZNX0hZUEVSVlxuYXJjaC94ODYva3ZtL0tjb25maWctMTk1LVx0Ym9vbCBcJiMzNDtTdXBwb3J0IGZvciBNaWNyb3NvZnQgSHlwZXItViBlbXVsYXRpb25cJiMzNDtcbi0tXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0yMDctXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZzoyMDg6Y29uZmlnIEtWTV9YRU5cbmFyY2gveDg2L2t2bS9LY29uZmlnLTIwOS1cdGJvb2wgXCYjMzQ7U3VwcG9ydCBmb3IgWGVuIGh5cGVyY2FsbCBpbnRlcmZhY2VcJiMzNDtcbi0tXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0yMTYtXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZzoyMTc6Y29uZmlnIEtWTV9QUk9WRV9NTVVcbmFyY2gveDg2L2t2bS9LY29uZmlnLTIxOC1cdGJvb2wgXCYjMzQ7UHJvdmUgS1ZNIE1NVSBjb3JyZWN0bmVzc1wmIzM0O1xuLS1cbmFyY2gveDg2L2t2bS9LY29uZmlnLTIyOS1cbmFyY2gveDg2L2t2bS9LY29uZmlnOjIzMDpjb25maWcgS1ZNX0VYVEVSTkFMX1dSSVRFX1RSQUNLSU5HXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0yMzEtXHRib29sXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0yMzItXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZzoyMzM6Y29uZmlnIEtWTV9NQVhfTlJfVkNQVVNcbmFyY2gveDg2L2t2bS9LY29uZmlnLTIzNC1cdGludCBcJiMzNDtNYXhpbXVtIG51bWJlciBvZiB2Q1BVcyBwZXIgS1ZNIGd1ZXN0XCYjMzQ7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDYgMjA6MzQ8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTA4OTIKCQkJCQkJCW91dHB1dDogNDUKCQkJCQkJCXRob3VnaHRzOiA3MQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIEtWTSBDb25maWd1cmF0aW9uKioKCk9rYXksIHNvIEkmIzM5O20gZGlnZ2luZyBpbnRvIHRoaXMgS1ZNIHN0dWZmLCBzcGVjaWZpY2FsbHkgbG9va2luZyBhdCB3aHkgdGhpcyBgaGFuZGxlX2FwaWNfZW9pX2luZHVjZWRgIGZ1bmN0aW9uIGlzIHByZXNlbnQuIE15IGluaXRpYWwgaW5zdGluY3QsIGdpdmVuIHRoZSBmdW5jdGlvbiYjMzk7cyBsb2NhdGlvbiBpbiBgdm14LmNgLCBwb2ludHMgbWUgZGlyZWN0bHkgdG8gdGhlIGBLVk1gIGFuZCBgS1ZNX0lOVEVMYCBjb25maWd1cmF0aW9ucy4gU2luY2UgdGhhdCYjMzk7cyB0aGUgbGlrZWx5IGNvbmZpZ3VyYXRpb24sIEkmIzM5O2xsIG5lZWQgdG8gY2hlY2sgdGhlIGNvZGUgdGhhdCYjMzk7cyByZWxhdGVkLiBJJiMzOTttIGdvaW5nIHRvIHRha2UgYSBjbG9zZXIgbG9vayBhdCBgYXJjaC94ODYva3ZtL3ZteC92bXguY2AgYW5kIHNwZWNpZmljYWxseSwgdGhhdCBgaGFuZGxlX2FwaWNfZW9pX2luZHVjZWRgIGZ1bmN0aW9uLiBUaW1lIHRvIHNlZSB3aGF0JiMzOTtzIGdvaW5nIG9uIGluIHRoZXJlIGFuZCB1bmRlcnN0YW5kIGl0cyByb2xlIGluIHRoZSB2aXJ0dWFsIG1hY2hpbmUuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA2IDIwOjM0PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2hhbmRsZV9hcGljX2VvaV9pbmR1Y2VkJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7YXJjaC94ODYva3ZtL3ZteC92bXguYyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDthcmNoL3g4Ni9rdm0vdm14L3ZteC5jPTU4NjQ9c3RhdGljIGludCBoYW5kbGVfYXBpY19hY2Nlc3Moc3RydWN0IGt2bV92Y3B1ICp2Y3B1KVxuLS1cbmFyY2gveDg2L2t2bS92bXgvdm14LmMtNTg4NS1cbmFyY2gveDg2L2t2bS92bXgvdm14LmM6NTg4NjpzdGF0aWMgaW50IGhhbmRsZV9hcGljX2VvaV9pbmR1Y2VkKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSlcbmFyY2gveDg2L2t2bS92bXgvdm14LmMtNTg4Ny17XG4tLVxuYXJjaC94ODYva3ZtL3ZteC92bXguYz02MzI2PXN0YXRpYyBpbnQgKCprdm1fdm14X2V4aXRfaGFuZGxlcnNbXSkoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KSA9IHtcbi0tXG5hcmNoL3g4Ni9rdm0vdm14L3ZteC5jLTYzNTQtXHRbRVhJVF9SRUFTT05fQVBJQ19XUklURV0gICAgICAgICAgICAgID0gaGFuZGxlX2FwaWNfd3JpdGUsXG5hcmNoL3g4Ni9rdm0vdm14L3ZteC5jOjYzNTU6XHRbRVhJVF9SRUFTT05fRU9JX0lORFVDRURdICAgICAgICAgICAgID0gaGFuZGxlX2FwaWNfZW9pX2luZHVjZWQsXG5hcmNoL3g4Ni9rdm0vdm14L3ZteC5jLTYzNTYtXHRbRVhJVF9SRUFTT05fV0JJTlZEXSAgICAgICAgICAgICAgICAgID0ga3ZtX2VtdWxhdGVfd2JpbnZkLFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjExLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNiAyMDozNDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxMTUwOQoJCQkJCQkJb3V0cHV0OiAxNTMKCQkJCQkJCXRob3VnaHRzOiAzMjcKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqTXkgQW5hbHlzaXMgb2YgdGhlIEtWTSBQYXRjaCYjMzk7cyBGdXp6aW5nIFNjb3BlKioKCk9rYXksIHNvIHRoZSBjb2RlIGNoYW5nZSB0YXJnZXRzIEFQSUMgRU9JIGhhbmRsaW5nIHdpdGhpbiBLVk0uIEkgbmVlZCB0byBwaW5wb2ludCB0aGUgcmVsZXZhbnQgY29uZmlndXJhdGlvbnMgYW5kIGZvY3VzIHN5bWJvbHMgZm9yIGZ1enppbmcgdGhpcy4gTGV0JiMzOTtzIHNlZS4uLgoKYGhhbmRsZV9hcGljX2VvaV9pbmR1Y2VkYCBpcyBkZWZpbml0ZWx5IGluIGB2bXguY2AsIHdoaWNoIHRlbGxzIG1lIHRoZSBgS1ZNX0lOVEVMYCBjb25maWd1cmF0aW9uIGlzIGtleSBzaW5jZSB0aGF0JiMzOTtzIHdoZXJlIFZNWCBzdXBwb3J0IGxpdmVzLiBHb29kLCBgS1ZNYCBhbmQgYEtWTV9JTlRFTGAgYXJlIGRlZmluaXRlbHkgb24gdGhlIGxpc3QuCgpJIGFsc28gbmVlZCB0byBzZWUgaWYgYEtWTV9BTURgIGlzIHJlbGV2YW50IHNpbmNlIGBrdm1fYXBpY19zZXRfZW9pX2FjY2VsZXJhdGVkYCBpcyBiZWluZyBtb2RpZmllZC4gQWgsIHJpZ2h0LCB0aGF0IGZ1bmN0aW9uIGxpdmVzIGluIGBsYXBpYy5jYCBhbmQgaXMgdXNlZCBieSBib3RoIFZNWCBhbmQgU1ZNLiBCdXQgYGhhbmRsZV9hcGljX2VvaV9pbmR1Y2VkYCBpcyBzcGVjaWZpY2FsbHkgVk1YLCBzbyBJIGNhbiBleGNsdWRlIGBLVk1fQU1EYC4gVGhlIGltcG9ydGFudCBjb25maWdzIGhlcmUgYXJlIGp1c3QgYEtWTWAgYW5kIGBLVk1fSU5URUxgLgoKV2FpdCBhIG1pbnV0ZSwgYGt2bV9hcGljX3NldF9lb2lfYWNjZWxlcmF0ZWRgIGlzIGV4cG9ydGVkIGZvciBpbnRlcm5hbCBLVk0gdXNlLiBQZXJmZWN0ISBUaGF0IG1ha2VzIGl0IGEgc3Ryb25nIGNhbmRpZGF0ZSBhcyBhIGZvY3VzIHN5bWJvbCwgZXZlbiB0aG91Z2ggaXQmIzM5O3MgdXNlZCBieSBib3RoIFZNWCBhbmQgU1ZNLiBUaGF0JiMzOTtzIGEgZ29vZCBwbGFjZSB0byBzdGFydC4KCk5vdywgbGV0JiMzOTtzIHJlY2FwIHRoZSByYXRpb25hbGUgZm9yIGZ1enppbmcgdGhpcy4gVGhlIHBhdGNoIGlzIGNoYW5naW5nIHRoZSBkYXRhIHR5cGVzIG9mIGBwZW5kaW5nX2lvYXBpY19lb2lgIGFuZCBgdmVjdG9yYCBpbiB0aGUgRU9JIGhhbmRsaW5nIGNvZGUgZnJvbSBgaW50YCB0byBgdThgLiBJdCYjMzk7cyBhbHNvIHJlbW92aW5nIGEgYEJVR19PTmAgaW4gYHZjcHVfZW50ZXJfZ3Vlc3RgLiBUaGVzZSBhcmUgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIGNvcmUgS1ZNIGxvZ2ljIHRoYXQgaXMgcmVhY2hlZCBkdXJpbmcgQVBJQyBpbnRlcnJ1cHQgaGFuZGxpbmcsIHRoZXJlZm9yZSB0aGlzIG5lZWRzIHRvIGJlIGZ1enplZC4KClNvLCB0byBzdW1tYXJpemUsIHRoZSBmb2N1cyBzeW1ib2xzIGFyZTogYGt2bV9hcGljX3NldF9lb2lfYWNjZWxlcmF0ZWRgIGFuZCBgaGFuZGxlX2FwaWNfZW9pX2luZHVjZWRgLiBUaGUgcmVsZXZhbnQgY29uZmlndXJhdGlvbnMgYXJlIGBLVk1gIGFuZCBgS1ZNX0lOVEVMYC4KClRpbWUgdG8gY2FsbCB0aGUgc2V0LXJlc3VsdHMgZnVuY3Rpb24gYW5kIG1vdmUgZm9yd2FyZC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMi8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDYgMjA6MzQ8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0tWTSYjMzQ7LAogICAgJiMzNDtLVk1fSU5URUwmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtrdm1fYXBpY19zZXRfZW9pX2FjY2VsZXJhdGVkJiMzNDssCiAgICAmIzM0O2hhbmRsZV9hcGljX2VvaV9pbmR1Y2VkJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSB0eXBlIG9mIGBwZW5kaW5nX2lvYXBpY19lb2lgIGFuZCBgdmVjdG9yYCBhcmd1bWVudHMgaW4gS1ZNJiMzOTtzIEFQSUMgRU9JIGhhbmRsaW5nIGNvZGUgZnJvbSBgaW50YCB0byBgdThgLiBJdCBhbHNvIHJlbW92ZXMgYSBgQlVHX09OYCBpbiBgdmNwdV9lbnRlcl9ndWVzdGAuIFRoZXNlIGFyZSBmdW5jdGlvbmFsIGNoYW5nZXMgaW4gcmVhY2hhYmxlIGNvcmUgS1ZNIGxvZ2ljIHRoYXQgaGFuZGxlcyBBUElDIGludGVycnVwdHMsIHNvIGl0IHNob3VsZCBiZSBmdXp6ZWQuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0tWTSYjMzQ7LAogICAgJiMzNDtLVk1fSU5URUwmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtrdm1fYXBpY19zZXRfZW9pX2FjY2VsZXJhdGVkJiMzNDssCiAgICAmIzM0O2hhbmRsZV9hcGljX2VvaV9pbmR1Y2VkJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSB0eXBlIG9mIGBwZW5kaW5nX2lvYXBpY19lb2lgIGFuZCBgdmVjdG9yYCBhcmd1bWVudHMgaW4gS1ZNJiMzOTtzIEFQSUMgRU9JIGhhbmRsaW5nIGNvZGUgZnJvbSBgaW50YCB0byBgdThgLiBJdCBhbHNvIHJlbW92ZXMgYSBgQlVHX09OYCBpbiBgdmNwdV9lbnRlcl9ndWVzdGAuIFRoZXNlIGFyZSBmdW5jdGlvbmFsIGNoYW5nZXMgaW4gcmVhY2hhYmxlIGNvcmUgS1ZNIGxvZ2ljIHRoYXQgaGFuZGxlcyBBUElDIGludGVycnVwdHMsIHNvIGl0IHNob3VsZCBiZSBmdXp6ZWQuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPC90Ym9keT4KCTwvdGFibGU+CgoJPGRpdiBpZD0ibGxtX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5MTE0gQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBUb2tlbnM8L3RoPgoJCQkJCTx0aD5BdmcgVG9rZW5zPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9ImxsbV9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9InRvb2xfc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPlRvb2wgQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0idG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9ImR1cmF0aW9uX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCTxkaXYgaWQ9InRva2VuX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL2pzYXBpIj48L3NjcmlwdD4KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCQlnb29nbGUubG9hZCgidmlzdWFsaXphdGlvbiIsICIxIiwge3BhY2thZ2VzOlsiY29yZWNoYXJ0Il19KTsKCQlnb29nbGUuc2V0T25Mb2FkQ2FsbGJhY2soZHJhd0NoYXJ0cyk7CgoJCWZ1bmN0aW9uIGRyYXdDaGFydHMoKSB7CgkJCWNvbnN0IHJhd0RhdGEgPSBbeyJTdGFydGVkIjoiMjAyNi0wOC0wNlQyMDozNDoxMC40MTY0NTU2ODFaIiwiU2VxIjowLCJOZXN0aW5nIjowLCJUeXBlIjoiZmxvdyIsIk5hbWUiOiJwYXRjaC10cmlhZ2UiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjozOTcyMDEyMTIwOCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJLVk1cIixcbiAgICBcIktWTV9JTlRFTFwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcImt2bV9hcGljX3NldF9lb2lfYWNjZWxlcmF0ZWRcIixcbiAgICBcImhhbmRsZV9hcGljX2VvaV9pbmR1Y2VkXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIHR5cGUgb2YgYHBlbmRpbmdfaW9hcGljX2VvaWAgYW5kIGB2ZWN0b3JgIGFyZ3VtZW50cyBpbiBLVk0ncyBBUElDIEVPSSBoYW5kbGluZyBjb2RlIGZyb20gYGludGAgdG8gYHU4YC4gSXQgYWxzbyByZW1vdmVzIGEgYEJVR19PTmAgaW4gYHZjcHVfZW50ZXJfZ3Vlc3RgLiBUaGVzZSBhcmUgZnVuY3Rpb25hbCBjaGFuZ2VzIGluIHJlYWNoYWJsZSBjb3JlIEtWTSBsb2dpYyB0aGF0IGhhbmRsZXMgQVBJQyBpbnRlcnJ1cHRzLCBzbyBpdCBzaG91bGQgYmUgZnV6emVkLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wNlQyMDozNDoxMC40MTY0NjQwMDFaIiwiU2VxIjoxLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6InJlYWQtcGF0Y2gtZGlmZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE0NDUwNjc2NTksIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIlBhdGNoRGlmZlwiOiBcImNvbW1pdCBkOGUwYTQ3ZWRkZjc5ZWY4Yzg4Mjk1NjNkNmNmYjJhYjMxNWMyYTI4XFxuQXV0aG9yOiBzeXotY2x1c3RlciBcXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cXHUwMDNlXFxuRGF0ZTogICBUaHUgQXVnIDYgMjA6MzQ6MDggMjAyNiArMDAwMFxcblxcbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcXG5cXG5kaWZmIC0tZ2l0IGEvYXJjaC94ODYvaW5jbHVkZS9hc20va3ZtX2hvc3QuaCBiL2FyY2gveDg2L2luY2x1ZGUvYXNtL2t2bV9ob3N0LmhcXG5pbmRleCAyODM4NDc2MTlmZjg4Li45NjE0MzE0ZmQyMzc0IDEwMDY0NFxcbi0tLSBhL2FyY2gveDg2L2luY2x1ZGUvYXNtL2t2bV9ob3N0LmhcXG4rKysgYi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9rdm1faG9zdC5oXFxuQEAgLTk3Myw3ICs5NzMsNyBAQCBzdHJ1Y3Qga3ZtX3ZjcHVfYXJjaCB7XFxuIFxcdFxcdGJvb2wgcHZfdW5oYWx0ZWQ7XFxuIFxcdH0gcHY7XFxuIFxcbi1cXHRpbnQgcGVuZGluZ19pb2FwaWNfZW9pO1xcbitcXHR1OCBwZW5kaW5nX2lvYXBpY19lb2k7XFxuIFxcdGludCBwZW5kaW5nX2V4dGVybmFsX3ZlY3RvcjtcXG4gXFx0aW50IGhpZ2hlc3Rfc3RhbGVfcGVuZGluZ19pb2FwaWNfZW9pO1xcbiBcXG5kaWZmIC0tZ2l0IGEvYXJjaC94ODYva3ZtL2xhcGljLmMgYi9hcmNoL3g4Ni9rdm0vbGFwaWMuY1xcbmluZGV4IDU4NmE1Y2VlMjllMWEuLjg3YmI4ZTVmNGNhMWYgMTAwNjQ0XFxuLS0tIGEvYXJjaC94ODYva3ZtL2xhcGljLmNcXG4rKysgYi9hcmNoL3g4Ni9rdm0vbGFwaWMuY1xcbkBAIC0xNTUyLDcgKzE1NTIsNyBAQCBzdGF0aWMgYm9vbCBrdm1faW9hcGljX2hhbmRsZXNfdmVjdG9yKHN0cnVjdCBrdm1fbGFwaWMgKmFwaWMsIGludCB2ZWN0b3IpXFxuIFxcdHJldHVybiB0ZXN0X2JpdCh2ZWN0b3IsIGFwaWMtXFx1MDAzZXZjcHUtXFx1MDAzZWFyY2guaW9hcGljX2hhbmRsZWRfdmVjdG9ycyk7XFxuIH1cXG4gXFxuLXN0YXRpYyB2b2lkIGt2bV9pb2FwaWNfc2VuZF9lb2koc3RydWN0IGt2bV9sYXBpYyAqYXBpYywgaW50IHZlY3RvcilcXG4rc3RhdGljIHZvaWQga3ZtX2lvYXBpY19zZW5kX2VvaShzdHJ1Y3Qga3ZtX2xhcGljICphcGljLCB1OCB2ZWN0b3IpXFxuIHtcXG4gXFx0aW50IF9fbWF5YmVfdW51c2VkIHRyaWdnZXJfbW9kZTtcXG4gXFxuQEAgLTE2MjIsNyArMTYyMiw3IEBAIHN0YXRpYyBpbnQgYXBpY19zZXRfZW9pKHN0cnVjdCBrdm1fbGFwaWMgKmFwaWMpXFxuICAqIHRoaXMgaW50ZXJmYWNlIGFzc3VtZXMgYSB0cmFwLWxpa2UgZXhpdCwgd2hpY2ggaGFzIGFscmVhZHkgZmluaXNoZWRcXG4gICogZGVzaXJlZCBzaWRlIGVmZmVjdCBpbmNsdWRpbmcgdklTUiBhbmQgdlBQUiB1cGRhdGUuXFxuICAqL1xcbi12b2lkIGt2bV9hcGljX3NldF9lb2lfYWNjZWxlcmF0ZWQoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCBpbnQgdmVjdG9yKVxcbit2b2lkIGt2bV9hcGljX3NldF9lb2lfYWNjZWxlcmF0ZWQoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCB1OCB2ZWN0b3IpXFxuIHtcXG4gXFx0c3RydWN0IGt2bV9sYXBpYyAqYXBpYyA9IHZjcHUtXFx1MDAzZWFyY2guYXBpYztcXG4gXFxuZGlmZiAtLWdpdCBhL2FyY2gveDg2L2t2bS9sYXBpYy5oIGIvYXJjaC94ODYva3ZtL2xhcGljLmhcXG5pbmRleCBiZDEwOThjODlkOTk4Li5kYjA3MWQwYjE3MmQwIDEwMDY0NFxcbi0tLSBhL2FyY2gveDg2L2t2bS9sYXBpYy5oXFxuKysrIGIvYXJjaC94ODYva3ZtL2xhcGljLmhcXG5AQCAtMTc3LDcgKzE3Nyw3IEBAIHU2NCBrdm1fZ2V0X2xhcGljX3RzY2RlYWRsaW5lX21zcihzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpO1xcbiB2b2lkIGt2bV9zZXRfbGFwaWNfdHNjZGVhZGxpbmVfbXNyKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwgdTY0IGRhdGEpO1xcbiBcXG4gdm9pZCBrdm1fYXBpY193cml0ZV9ub2RlY29kZShzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIHUzMiBvZmZzZXQpO1xcbi12b2lkIGt2bV9hcGljX3NldF9lb2lfYWNjZWxlcmF0ZWQoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCBpbnQgdmVjdG9yKTtcXG4rdm9pZCBrdm1fYXBpY19zZXRfZW9pX2FjY2VsZXJhdGVkKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwgdTggdmVjdG9yKTtcXG4gXFxuIGludCBrdm1fbGFwaWNfc2V0X3ZhcGljX2FkZHIoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCBncGFfdCB2YXBpY19hZGRyKTtcXG4gdm9pZCBrdm1fbGFwaWNfc3luY19mcm9tX3ZhcGljKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSk7XFxuZGlmZiAtLWdpdCBhL2FyY2gveDg2L2t2bS92bXgvdm14LmMgYi9hcmNoL3g4Ni9rdm0vdm14L3ZteC5jXFxuaW5kZXggZTNiZmU2YWNhMWEwZS4uYzFmZGZjY2QyMGZhYSAxMDA2NDRcXG4tLS0gYS9hcmNoL3g4Ni9rdm0vdm14L3ZteC5jXFxuKysrIGIvYXJjaC94ODYva3ZtL3ZteC92bXguY1xcbkBAIC01ODg2LDEwICs1ODg2LDkgQEAgc3RhdGljIGludCBoYW5kbGVfYXBpY19hY2Nlc3Moc3RydWN0IGt2bV92Y3B1ICp2Y3B1KVxcbiBzdGF0aWMgaW50IGhhbmRsZV9hcGljX2VvaV9pbmR1Y2VkKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSlcXG4ge1xcbiBcXHR1bnNpZ25lZCBsb25nIGV4aXRfcXVhbGlmaWNhdGlvbiA9IHZteF9nZXRfZXhpdF9xdWFsKHZjcHUpO1xcbi1cXHRpbnQgdmVjdG9yID0gZXhpdF9xdWFsaWZpY2F0aW9uIFxcdTAwMjYgMHhmZjtcXG4gXFxuIFxcdC8qIEVPSS1pbmR1Y2VkIFZNIGV4aXQgaXMgdHJhcC1saWtlIGFuZCB0aHVzIG5vIG5lZWQgdG8gYWRqdXN0IElQICovXFxuLVxcdGt2bV9hcGljX3NldF9lb2lfYWNjZWxlcmF0ZWQodmNwdSwgdmVjdG9yKTtcXG4rXFx0a3ZtX2FwaWNfc2V0X2VvaV9hY2NlbGVyYXRlZCh2Y3B1LCBleGl0X3F1YWxpZmljYXRpb24gXFx1MDAyNiAweGZmKTtcXG4gXFx0cmV0dXJuIDE7XFxuIH1cXG4gXFxuZGlmZiAtLWdpdCBhL2FyY2gveDg2L2t2bS94ODYuYyBiL2FyY2gveDg2L2t2bS94ODYuY1xcbmluZGV4IGQ5NGI1OTE0MGM0NTIuLjhiMjNmMzQyYTFmYTUgMTAwNjQ0XFxuLS0tIGEvYXJjaC94ODYva3ZtL3g4Ni5jXFxuKysrIGIvYXJjaC94ODYva3ZtL3g4Ni5jXFxuQEAgLTgxNTEsNyArODE1MSw2IEBAIHN0YXRpYyBpbnQgdmNwdV9lbnRlcl9ndWVzdChzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpXFxuIFxcdFxcdGlmIChrdm1fY2hlY2tfcmVxdWVzdChLVk1fUkVRX05NSSwgdmNwdSkpXFxuIFxcdFxcdFxcdHByb2Nlc3Nfbm1pKHZjcHUpO1xcbiBcXHRcXHRpZiAoa3ZtX2NoZWNrX3JlcXVlc3QoS1ZNX1JFUV9JT0FQSUNfRU9JX0VYSVQsIHZjcHUpKSB7XFxuLVxcdFxcdFxcdEJVR19PTih2Y3B1LVxcdTAwM2VhcmNoLnBlbmRpbmdfaW9hcGljX2VvaSBcXHUwMDNlIDI1NSk7XFxuIFxcdFxcdFxcdGlmICh0ZXN0X2JpdCh2Y3B1LVxcdTAwM2VhcmNoLnBlbmRpbmdfaW9hcGljX2VvaSxcXG4gXFx0XFx0XFx0XFx0ICAgICB2Y3B1LVxcdTAwM2VhcmNoLmlvYXBpY19oYW5kbGVkX3ZlY3RvcnMpKSB7XFxuIFxcdFxcdFxcdFxcdHZjcHUtXFx1MDAzZXJ1bi1cXHUwMDNlZXhpdF9yZWFzb24gPSBLVk1fRVhJVF9JT0FQSUNfRU9JO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wNlQyMDozNDoxMS44NjI2Njc3MloiLCJTZXEiOjIsIk5lc3RpbmciOjEsIlR5cGUiOiJhZ2VudCIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImJlc3QtZXhwZW5zaXZlIiwiRHVyYXRpb24iOjM4MjczOTAwMDQ5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIktWTVwiLFxuICAgIFwiS1ZNX0lOVEVMXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwia3ZtX2FwaWNfc2V0X2VvaV9hY2NlbGVyYXRlZFwiLFxuICAgIFwiaGFuZGxlX2FwaWNfZW9pX2luZHVjZWRcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgdHlwZSBvZiBgcGVuZGluZ19pb2FwaWNfZW9pYCBhbmQgYHZlY3RvcmAgYXJndW1lbnRzIGluIEtWTSdzIEFQSUMgRU9JIGhhbmRsaW5nIGNvZGUgZnJvbSBgaW50YCB0byBgdThgLiBJdCBhbHNvIHJlbW92ZXMgYSBgQlVHX09OYCBpbiBgdmNwdV9lbnRlcl9ndWVzdGAuIFRoZXNlIGFyZSBmdW5jdGlvbmFsIGNoYW5nZXMgaW4gcmVhY2hhYmxlIGNvcmUgS1ZNIGxvZ2ljIHRoYXQgaGFuZGxlcyBBUElDIGludGVycnVwdHMsIHNvIGl0IHNob3VsZCBiZSBmdXp6ZWQuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLlxuWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmVcbmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cblxuSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluXG55b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHlcbnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuXG5cblJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6XG4tIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuXG4tIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLlxuLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuXG4tIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSxcbiAgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLlxuLSBDb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCxcbiAgaW9uaWMsIGFtZGdwdSkgdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuXG4tIERyaXZlciAucmVtb3ZlLCAuc2h1dGRvd24sIG9yIHBjaV91bnJlZ2lzdGVyX2RyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKGUuZy4sIGlnYl9yZW1vdmUpXG4gIHRoYXQgYXJlIGV4ZWN1dGVkIG9ubHkgZHVyaW5nIFBDSSBob3QtdW5wbHVnIG9yIHN5c2ZzIGRyaXZlciB1bmJpbmQgb3BlcmF0aW9ucy5cblxuSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaFxudG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuXG5cbldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOlxuMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy5cbiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLlxuICAgUHJlZmVyIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIEFQSSBlbnRyeXBvaW50IGZ1bmN0aW9ucyBvdmVyIGludGVybmFsIHN0YXRpYyBoZWxwZXIgZnVuY3Rpb25zXG4gICAod2hpY2ggYXJlIGlubGluZWQgYnkgdGhlIGNvbXBpbGVyIGFuZCBkbyBub3QgaGF2ZSBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzKS5cbjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLlxuICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLlxuICAgQWxzbyBjaGVjayBcImRlcGVuZHMgb25cIiBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3NcbiAgIG5lZWRlZCBmb3IgS2J1aWxkIHRvIGNvbXBpbGUgdGhlIGNvZGUgc3RhdGljYWxseSBpbnRvIHZtbGludXguIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlnc1xuICAgb3V0cHV0IGFycmF5LCBhbmQgRE8gTk9UIGFkZCBhICdDT05GSUdfJyBwcmVmaXggKGUuZy4sIHJldHVybiBcIk5FVF9JUFY0XCIgaW5zdGVhZCBvZiBcIkNPTkZJR19ORVRfSVBWNFwiKS5cblByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLlxuXG5cblVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuXG5JdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS5cbklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC5cbiIsIlByb21wdCI6IkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOlxuY29tbWl0IGQ4ZTBhNDdlZGRmNzllZjhjODgyOTU2M2Q2Y2ZiMmFiMzE1YzJhMjhcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgVGh1IEF1ZyA2IDIwOjM0OjA4IDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvYXJjaC94ODYvaW5jbHVkZS9hc20va3ZtX2hvc3QuaCBiL2FyY2gveDg2L2luY2x1ZGUvYXNtL2t2bV9ob3N0LmhcbmluZGV4IDI4Mzg0NzYxOWZmODguLjk2MTQzMTRmZDIzNzQgMTAwNjQ0XG4tLS0gYS9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9rdm1faG9zdC5oXG4rKysgYi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9rdm1faG9zdC5oXG5AQCAtOTczLDcgKzk3Myw3IEBAIHN0cnVjdCBrdm1fdmNwdV9hcmNoIHtcbiBcdFx0Ym9vbCBwdl91bmhhbHRlZDtcbiBcdH0gcHY7XG4gXG4tXHRpbnQgcGVuZGluZ19pb2FwaWNfZW9pO1xuK1x0dTggcGVuZGluZ19pb2FwaWNfZW9pO1xuIFx0aW50IHBlbmRpbmdfZXh0ZXJuYWxfdmVjdG9yO1xuIFx0aW50IGhpZ2hlc3Rfc3RhbGVfcGVuZGluZ19pb2FwaWNfZW9pO1xuIFxuZGlmZiAtLWdpdCBhL2FyY2gveDg2L2t2bS9sYXBpYy5jIGIvYXJjaC94ODYva3ZtL2xhcGljLmNcbmluZGV4IDU4NmE1Y2VlMjllMWEuLjg3YmI4ZTVmNGNhMWYgMTAwNjQ0XG4tLS0gYS9hcmNoL3g4Ni9rdm0vbGFwaWMuY1xuKysrIGIvYXJjaC94ODYva3ZtL2xhcGljLmNcbkBAIC0xNTUyLDcgKzE1NTIsNyBAQCBzdGF0aWMgYm9vbCBrdm1faW9hcGljX2hhbmRsZXNfdmVjdG9yKHN0cnVjdCBrdm1fbGFwaWMgKmFwaWMsIGludCB2ZWN0b3IpXG4gXHRyZXR1cm4gdGVzdF9iaXQodmVjdG9yLCBhcGljLVx1MDAzZXZjcHUtXHUwMDNlYXJjaC5pb2FwaWNfaGFuZGxlZF92ZWN0b3JzKTtcbiB9XG4gXG4tc3RhdGljIHZvaWQga3ZtX2lvYXBpY19zZW5kX2VvaShzdHJ1Y3Qga3ZtX2xhcGljICphcGljLCBpbnQgdmVjdG9yKVxuK3N0YXRpYyB2b2lkIGt2bV9pb2FwaWNfc2VuZF9lb2koc3RydWN0IGt2bV9sYXBpYyAqYXBpYywgdTggdmVjdG9yKVxuIHtcbiBcdGludCBfX21heWJlX3VudXNlZCB0cmlnZ2VyX21vZGU7XG4gXG5AQCAtMTYyMiw3ICsxNjIyLDcgQEAgc3RhdGljIGludCBhcGljX3NldF9lb2koc3RydWN0IGt2bV9sYXBpYyAqYXBpYylcbiAgKiB0aGlzIGludGVyZmFjZSBhc3N1bWVzIGEgdHJhcC1saWtlIGV4aXQsIHdoaWNoIGhhcyBhbHJlYWR5IGZpbmlzaGVkXG4gICogZGVzaXJlZCBzaWRlIGVmZmVjdCBpbmNsdWRpbmcgdklTUiBhbmQgdlBQUiB1cGRhdGUuXG4gICovXG4tdm9pZCBrdm1fYXBpY19zZXRfZW9pX2FjY2VsZXJhdGVkKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwgaW50IHZlY3Rvcilcbit2b2lkIGt2bV9hcGljX3NldF9lb2lfYWNjZWxlcmF0ZWQoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCB1OCB2ZWN0b3IpXG4ge1xuIFx0c3RydWN0IGt2bV9sYXBpYyAqYXBpYyA9IHZjcHUtXHUwMDNlYXJjaC5hcGljO1xuIFxuZGlmZiAtLWdpdCBhL2FyY2gveDg2L2t2bS9sYXBpYy5oIGIvYXJjaC94ODYva3ZtL2xhcGljLmhcbmluZGV4IGJkMTA5OGM4OWQ5OTguLmRiMDcxZDBiMTcyZDAgMTAwNjQ0XG4tLS0gYS9hcmNoL3g4Ni9rdm0vbGFwaWMuaFxuKysrIGIvYXJjaC94ODYva3ZtL2xhcGljLmhcbkBAIC0xNzcsNyArMTc3LDcgQEAgdTY0IGt2bV9nZXRfbGFwaWNfdHNjZGVhZGxpbmVfbXNyKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSk7XG4gdm9pZCBrdm1fc2V0X2xhcGljX3RzY2RlYWRsaW5lX21zcihzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIHU2NCBkYXRhKTtcbiBcbiB2b2lkIGt2bV9hcGljX3dyaXRlX25vZGVjb2RlKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwgdTMyIG9mZnNldCk7XG4tdm9pZCBrdm1fYXBpY19zZXRfZW9pX2FjY2VsZXJhdGVkKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwgaW50IHZlY3Rvcik7XG4rdm9pZCBrdm1fYXBpY19zZXRfZW9pX2FjY2VsZXJhdGVkKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwgdTggdmVjdG9yKTtcbiBcbiBpbnQga3ZtX2xhcGljX3NldF92YXBpY19hZGRyKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwgZ3BhX3QgdmFwaWNfYWRkcik7XG4gdm9pZCBrdm1fbGFwaWNfc3luY19mcm9tX3ZhcGljKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSk7XG5kaWZmIC0tZ2l0IGEvYXJjaC94ODYva3ZtL3ZteC92bXguYyBiL2FyY2gveDg2L2t2bS92bXgvdm14LmNcbmluZGV4IGUzYmZlNmFjYTFhMGUuLmMxZmRmY2NkMjBmYWEgMTAwNjQ0XG4tLS0gYS9hcmNoL3g4Ni9rdm0vdm14L3ZteC5jXG4rKysgYi9hcmNoL3g4Ni9rdm0vdm14L3ZteC5jXG5AQCAtNTg4NiwxMCArNTg4Niw5IEBAIHN0YXRpYyBpbnQgaGFuZGxlX2FwaWNfYWNjZXNzKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSlcbiBzdGF0aWMgaW50IGhhbmRsZV9hcGljX2VvaV9pbmR1Y2VkKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSlcbiB7XG4gXHR1bnNpZ25lZCBsb25nIGV4aXRfcXVhbGlmaWNhdGlvbiA9IHZteF9nZXRfZXhpdF9xdWFsKHZjcHUpO1xuLVx0aW50IHZlY3RvciA9IGV4aXRfcXVhbGlmaWNhdGlvbiBcdTAwMjYgMHhmZjtcbiBcbiBcdC8qIEVPSS1pbmR1Y2VkIFZNIGV4aXQgaXMgdHJhcC1saWtlIGFuZCB0aHVzIG5vIG5lZWQgdG8gYWRqdXN0IElQICovXG4tXHRrdm1fYXBpY19zZXRfZW9pX2FjY2VsZXJhdGVkKHZjcHUsIHZlY3Rvcik7XG4rXHRrdm1fYXBpY19zZXRfZW9pX2FjY2VsZXJhdGVkKHZjcHUsIGV4aXRfcXVhbGlmaWNhdGlvbiBcdTAwMjYgMHhmZik7XG4gXHRyZXR1cm4gMTtcbiB9XG4gXG5kaWZmIC0tZ2l0IGEvYXJjaC94ODYva3ZtL3g4Ni5jIGIvYXJjaC94ODYva3ZtL3g4Ni5jXG5pbmRleCBkOTRiNTkxNDBjNDUyLi44YjIzZjM0MmExZmE1IDEwMDY0NFxuLS0tIGEvYXJjaC94ODYva3ZtL3g4Ni5jXG4rKysgYi9hcmNoL3g4Ni9rdm0veDg2LmNcbkBAIC04MTUxLDcgKzgxNTEsNiBAQCBzdGF0aWMgaW50IHZjcHVfZW50ZXJfZ3Vlc3Qoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KVxuIFx0XHRpZiAoa3ZtX2NoZWNrX3JlcXVlc3QoS1ZNX1JFUV9OTUksIHZjcHUpKVxuIFx0XHRcdHByb2Nlc3Nfbm1pKHZjcHUpO1xuIFx0XHRpZiAoa3ZtX2NoZWNrX3JlcXVlc3QoS1ZNX1JFUV9JT0FQSUNfRU9JX0VYSVQsIHZjcHUpKSB7XG4tXHRcdFx0QlVHX09OKHZjcHUtXHUwMDNlYXJjaC5wZW5kaW5nX2lvYXBpY19lb2kgXHUwMDNlIDI1NSk7XG4gXHRcdFx0aWYgKHRlc3RfYml0KHZjcHUtXHUwMDNlYXJjaC5wZW5kaW5nX2lvYXBpY19lb2ksXG4gXHRcdFx0XHQgICAgIHZjcHUtXHUwMDNlYXJjaC5pb2FwaWNfaGFuZGxlZF92ZWN0b3JzKSkge1xuIFx0XHRcdFx0dmNwdS1cdTAwM2VydW4tXHUwMDNlZXhpdF9yZWFzb24gPSBLVk1fRVhJVF9JT0FQSUNfRU9JO1xuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDZUMjA6MzQ6MTEuODYyNjcwMjZaIiwiU2VxIjozLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo2MzYwOTA1MzQ0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKktWTSBFT0kgVHlwZSBhbmQgVmFsdWUgQm91bmRpbmcgQW5hbHlzaXMqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIHBhdGNoIGZvciBLVk0gb24geDg2LCBhbmQgaXQncyBlc3NlbnRpYWxseSBhIHR5cGUgcmVmaW5lbWVudCBmb3IgRU9JIChFbmQgb2YgSW50ZXJydXB0KSBoYW5kbGluZy4gU3BlY2lmaWNhbGx5LCB3ZSdyZSBjaGFuZ2luZyB0aGUgZGF0YSB0eXBlIG9mIGBwZW5kaW5nX2lvYXBpY19lb2lgIHdpdGhpbiB0aGUgYGt2bV92Y3B1X2FyY2hgIHN0cnVjdCwgYW5kIHRoZSBgdmVjdG9yYCBhcmd1bWVudCB1c2VkIGluIGBrdm1faW9hcGljX3NlbmRfZW9pYCBhbmQgYGt2bV9hcGljX3NldF9lb2lfYWNjZWxlcmF0ZWRgIGZyb20gYGludGAgdG8gYHU4YC4gXG5cblRoaXMgaXMgaW1wb3J0YW50IGJlY2F1c2UgaXQgaW5oZXJlbnRseSBib3VuZHMgdGhlIEVPSSB2YWx1ZSB0byBhIHJhbmdlIG9mIDAtMjU1LiBUaGF0IGFsc28gbWFrZXMgdGhlIGBCVUdfT04odmNwdS1cdTAwM2VhcmNoLnBlbmRpbmdfaW9hcGljX2VvaSBcdTAwM2UgMjU1KWAgaW4gYHZjcHVfZW50ZXJfZ3Vlc3RgIHJlZHVuZGFudCwgc28gdGhhdCdzIGJlZW4gcmVtb3ZlZC4gRnVuY3Rpb25hbGx5LCB0aGlzIGlzIHRoZSBjb3JlIG9mIGl0LCB0aGUgbWFpbiBjaGFuZ2UgaXMgdGhhdCB0aGUgdmFsdWUgaXMgbm93IGV4cGxpY2l0bHkgYm91bmRlZCwgYW5kIGEgc2FmZWd1YXJkIGlzIHJlbW92ZWQgYmVjYXVzZSBpdCBpcyBub3cgcmVkdW5kYW50LlxuXG5UaGUgYGhhbmRsZV9hcGljX2VvaV9pbmR1Y2VkYCBmdW5jdGlvbiBub3cgcGFzc2VzIHRoZSBsb3dlciBieXRlIG9mIHRoZSBgZXhpdF9xdWFsaWZpY2F0aW9uYCBkaXJlY3RseSB0byBga3ZtX2FwaWNfc2V0X2VvaV9hY2NlbGVyYXRlZGAuIFRoaXMgY2hhbmdlIGZlZWxzIHZlcnkgY2xlYW4gYW5kIG1ha2VzIHNlbnNlIGdpdmVuIHRoZSB0eXBlIGNoYW5nZS5cblxuR2l2ZW4gdGhpcywgSSB3YW50IHRvIGNvbmZpcm0gYSBmZXcgdGhpbmdzLiBGaXJzdCBJIG5lZWQgdG8gY2hlY2sgdGhlIEtjb25maWcgc2V0dGluZ3MuIFRoZSByZWxldmFudCBzeW1ib2wgaXMgYEtWTWAuIE5vdyBJIHdpbGwgemVybyBpbiBvbiB0aGUga2V5IHN5bWJvbHMsIHNwZWNpZmljYWxseSBJIHdpbGwgY2hlY2sgYGt2bV9hcGljX3NldF9lb2lfYWNjZWxlcmF0ZWRgIGFuZCBgaGFuZGxlX2FwaWNfZW9pX2luZHVjZWRgIGFnYWluLlxuXG5cbiIsIklucHV0VG9rZW5zIjozMzc4LCJPdXRwdXRUb2tlbnMiOjI3LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MzA2LCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDZUMjA6MzQ6MTguMjIzNTc3NjA0WiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjI3MDYyMDQ2MDEsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwia3ZtX2FwaWNfc2V0X2VvaV9hY2NlbGVyYXRlZFwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJhcmNoL3g4Ni9rdm0vbGFwaWMuYz0xNTk3PXN0YXRpYyBpbnQgYXBpY19zZXRfZW9pKHN0cnVjdCBrdm1fbGFwaWMgKmFwaWMpXFxuLS1cXG5hcmNoL3g4Ni9rdm0vbGFwaWMuYy0xNjI0LSAqL1xcbmFyY2gveDg2L2t2bS9sYXBpYy5jOjE2MjU6dm9pZCBrdm1fYXBpY19zZXRfZW9pX2FjY2VsZXJhdGVkKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwgdTggdmVjdG9yKVxcbmFyY2gveDg2L2t2bS9sYXBpYy5jLTE2MjYte1xcbi0tXFxuYXJjaC94ODYva3ZtL2xhcGljLmMtMTYzMy19XFxuYXJjaC94ODYva3ZtL2xhcGljLmM6MTYzNDpFWFBPUlRfU1lNQk9MX0ZPUl9LVk1fSU5URVJOQUwoa3ZtX2FwaWNfc2V0X2VvaV9hY2NlbGVyYXRlZCk7XFxuYXJjaC94ODYva3ZtL2xhcGljLmMtMTYzNS1cXG4tLVxcbmFyY2gveDg2L2t2bS9sYXBpYy5oPTE3OT12b2lkIGt2bV9hcGljX3dyaXRlX25vZGVjb2RlKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwgdTMyIG9mZnNldCk7XFxuYXJjaC94ODYva3ZtL2xhcGljLmg6MTgwOnZvaWQga3ZtX2FwaWNfc2V0X2VvaV9hY2NlbGVyYXRlZChzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIHU4IHZlY3Rvcik7XFxuYXJjaC94ODYva3ZtL2xhcGljLmgtMTgxLVxcbi0tXFxuYXJjaC94ODYva3ZtL3ZteC92bXguYz01ODg2PXN0YXRpYyBpbnQgaGFuZGxlX2FwaWNfZW9pX2luZHVjZWQoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KVxcbi0tXFxuYXJjaC94ODYva3ZtL3ZteC92bXguYy01ODkwLVxcdC8qIEVPSS1pbmR1Y2VkIFZNIGV4aXQgaXMgdHJhcC1saWtlIGFuZCB0aHVzIG5vIG5lZWQgdG8gYWRqdXN0IElQICovXFxuYXJjaC94ODYva3ZtL3ZteC92bXguYzo1ODkxOlxcdGt2bV9hcGljX3NldF9lb2lfYWNjZWxlcmF0ZWQodmNwdSwgZXhpdF9xdWFsaWZpY2F0aW9uIFxcdTAwMjYgMHhmZik7XFxuYXJjaC94ODYva3ZtL3ZteC92bXguYy01ODkyLVxcdHJldHVybiAxO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wNlQyMDozNDoyMC45Mjk3ODY0NDVaIiwiU2VxIjo1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo1NTA2ODQ0NTQ0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkZ1enppbmcgVGFyZ2V0IElkZW50aWZpY2F0aW9uOiBLVk0geDg2IEFQSUMgRU9JIEhhbmRsaW5nKipcblxuT2theSwgc28gdGhpcyBwYXRjaCBpcyBjbGVhcmx5IG1lc3Npbmcgd2l0aCBjb3JlIEtWTSB4ODYgbG9naWMsIHNwZWNpZmljYWxseSBhcm91bmQgaG93IGl0IGhhbmRsZXMgQVBJQyBFT0kgKEVuZCBvZiBJbnRlcnJ1cHQpIHNpZ25hbHMuIFRoYXQgaW1tZWRpYXRlbHkgZmxhZ3MgaXQgYXMgYSBwcmltZSB0YXJnZXQgZm9yIGZ1enppbmcg4oCTIHRoZXJlJ3MgbGlrZWx5IHNvbWUgc3VidGxlIHN0YXRlIG1hbmFnZW1lbnQgb3IgcmFjZSBjb25kaXRpb24gbHVya2luZyBpbiB0aGVyZSB0aGF0IHdlIGNhbiBleHBvc2UuXG5cblRoZSBmdW5jdGlvbnMgdG91Y2hlZCBhcmUgYGt2bV9hcGljX3NldF9lb2lfYWNjZWxlcmF0ZWRgLCBgaGFuZGxlX2FwaWNfZW9pX2luZHVjZWRgLCBga3ZtX2lvYXBpY19zZW5kX2VvaWAsIGFuZCBgdmNwdV9lbnRlcl9ndWVzdGAuIEltbWVkaWF0ZWx5LCBgdmNwdV9lbnRlcl9ndWVzdGAgaXMgYSByZWQgZmxhZywgYmVpbmcgYSBob3QgcGF0aC4gSSdkIHJhdGhlciBhdm9pZCB0aGF0IGlmIHBvc3NpYmxlIHRvIG1pbmltaXplIG5vaXNlIGFuZCBmb2N1cyBvdXIgZWZmb3J0cy5cblxuVGhhdCBsZWF2ZXMgdXMgd2l0aCBgaGFuZGxlX2FwaWNfZW9pX2luZHVjZWRgIGFuZCBga3ZtX2FwaWNfc2V0X2VvaV9hY2NlbGVyYXRlZGAgYXMgdGhlIHByaW1hcnkgZm9jdXMgcG9pbnRzLiBTb3VuZHMgZ29vZCEgTm93LCB3aGF0IGFib3V0IGBrdm1faW9hcGljX3NlbmRfZW9pYD8gSXQncyBhIGJpdCBvZiBhIHF1ZXN0aW9uIG1hcmsgc2luY2UgaXQncyBzdGF0aWMuIExldCdzIGNvbmZpcm0gdGhhdCBxdWlja2x5Li4uICpjaGVja3MgY29kZSouLi4geWVwLCBpdCdzIGBzdGF0aWMgdm9pZCBrdm1faW9hcGljX3NlbmRfZW9pYC4gU2luY2UgaXQncyBzdGF0aWMsIGl0J3MgbGlrZWx5IGlubGluZWQsIHNvIGxldCdzIHNraXAgdGhhdCBmdW5jdGlvbi5cblxuVGhlIHJlbGV2YW50IGNvbmZpZyBpcyBgS1ZNYC4gR290IGl0LlxuXG5cbiIsIklucHV0VG9rZW5zIjo0NTg3LCJPdXRwdXRUb2tlbnMiOjE3LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjU2LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA2VDIwOjM0OjI2LjQzNjYzMjcxOVoiLCJTZXEiOjYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyNDAyMDE2MjYyLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNvbmZpZyBLVk1cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiYXJjaC9hcm02NC9rdm0vS2NvbmZpZz0xOD1pZiBWSVJUVUFMSVpBVElPTlxcbmFyY2gvYXJtNjQva3ZtL0tjb25maWctMTktXFxuYXJjaC9hcm02NC9rdm0vS2NvbmZpZzoyMDptZW51Y29uZmlnIEtWTVxcbmFyY2gvYXJtNjQva3ZtL0tjb25maWctMjEtXFx0Ym9vbCBcXFwiS2VybmVsLWJhc2VkIFZpcnR1YWwgTWFjaGluZSAoS1ZNKSBzdXBwb3J0XFxcIlxcbi0tXFxuYXJjaC9sb29uZ2FyY2gva3ZtL0tjb25maWc9MTg9aWYgVklSVFVBTElaQVRJT05cXG5hcmNoL2xvb25nYXJjaC9rdm0vS2NvbmZpZy0xOS1cXG5hcmNoL2xvb25nYXJjaC9rdm0vS2NvbmZpZzoyMDpjb25maWcgS1ZNXFxuYXJjaC9sb29uZ2FyY2gva3ZtL0tjb25maWctMjEtXFx0dHJpc3RhdGUgXFxcIktlcm5lbC1iYXNlZCBWaXJ0dWFsIE1hY2hpbmUgKEtWTSkgc3VwcG9ydFxcXCJcXG4tLVxcbmFyY2gvbWlwcy9rdm0vS2NvbmZpZz0xNj1pZiBWSVJUVUFMSVpBVElPTlxcbmFyY2gvbWlwcy9rdm0vS2NvbmZpZy0xNy1cXG5hcmNoL21pcHMva3ZtL0tjb25maWc6MTg6Y29uZmlnIEtWTVxcbmFyY2gvbWlwcy9rdm0vS2NvbmZpZy0xOS1cXHR0cmlzdGF0ZSBcXFwiS2VybmVsLWJhc2VkIFZpcnR1YWwgTWFjaGluZSAoS1ZNKSBzdXBwb3J0XFxcIlxcbi0tXFxuYXJjaC9taXBzL2t2bS9LY29uZmlnLTMwLVxcbmFyY2gvbWlwcy9rdm0vS2NvbmZpZzozMTpjb25maWcgS1ZNX01JUFNfREVCVUdfQ09QMF9DT1VOVEVSU1xcbmFyY2gvbWlwcy9rdm0vS2NvbmZpZy0zMi1cXHRib29sIFxcXCJNYWludGFpbiBjb3VudGVycyBmb3IgQ09QMCBhY2Nlc3Nlc1xcXCJcXG4tLVxcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZz0xOD1pZiBWSVJUVUFMSVpBVElPTlxcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0xOS1cXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWc6MjA6Y29uZmlnIEtWTVxcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0yMS1cXHRib29sXFxuLS1cXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMjUtXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnOjI2OmNvbmZpZyBLVk1fQk9PSzNTX0hBTkRMRVJcXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMjctXFx0Ym9vbFxcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0yOC1cXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWc6Mjk6Y29uZmlnIEtWTV9CT09LM1NfMzJfSEFORExFUlxcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0zMC1cXHRib29sXFxuLS1cXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMzMtXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnOjM0OmNvbmZpZyBLVk1fQk9PSzNTXzY0X0hBTkRMRVJcXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMzUtXFx0Ym9vbFxcbi0tXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTM3LVxcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZzozODpjb25maWcgS1ZNX0JPT0szU19QUl9QT1NTSUJMRVxcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0zOS1cXHRib29sXFxuLS1cXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctNDEtXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnOjQyOmNvbmZpZyBLVk1fQk9PSzNTX0hWX1BPU1NJQkxFXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTQzLVxcdGJvb2xcXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctNDQtXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnOjQ1OmNvbmZpZyBLVk1fQk9PSzNTXzMyXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTQ2LVxcdHRyaXN0YXRlIFxcXCJLVk0gc3VwcG9ydCBmb3IgUG93ZXJQQyBib29rM3NfMzIgcHJvY2Vzc29yc1xcXCJcXG4tLVxcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy02MS1cXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWc6NjI6Y29uZmlnIEtWTV9CT09LM1NfNjRcXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctNjMtXFx0dHJpc3RhdGUgXFxcIktWTSBzdXBwb3J0IGZvciBQb3dlclBDIGJvb2szc182NCBwcm9jZXNzb3JzXFxcIlxcbi0tXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTc4LVxcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZzo3OTpjb25maWcgS1ZNX0JPT0szU182NF9IVlxcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy04MC1cXHR0cmlzdGF0ZSBcXFwiS1ZNIGZvciBQT1dFUjcgYW5kIGxhdGVyIHVzaW5nIGh5cGVydmlzb3IgbW9kZSBpbiBob3N0XFxcIlxcbi0tXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTk5LVxcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZzoxMDA6Y29uZmlnIEtWTV9CT09LM1NfNjRfUFJcXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMTAxLVxcdHRyaXN0YXRlIFxcXCJLVk0gc3VwcG9ydCB3aXRob3V0IHVzaW5nIGh5cGVydmlzb3IgbW9kZSBpbiBob3N0XFxcIlxcbi0tXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTEyNS1cXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWc6MTI2OmNvbmZpZyBLVk1fQk9PSzNTX0hWX0VYSVRfVElNSU5HXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTEyNy1cXHRib29sXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTEyOC1cXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWc6MTI5OmNvbmZpZyBLVk1fQk9PSzNTX0hWX1A5X1RJTUlOR1xcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0xMzAtXFx0Ym9vbCBcXFwiRGV0YWlsZWQgdGltaW5nIGZvciB0aGUgUDkgZW50cnkgcG9pbnRcXFwiXFxuLS1cXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMTQxLVxcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZzoxNDI6Y29uZmlnIEtWTV9CT09LM1NfSFZfUDhfVElNSU5HXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTE0My1cXHRib29sIFxcXCJEZXRhaWxlZCB0aW1pbmcgZm9yIGh5cGVydmlzb3IgcmVhbC1tb2RlIGNvZGUgKGZvciBQT1dFUjgpXFxcIlxcbi0tXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTE1Ni1cXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWc6MTU3OmNvbmZpZyBLVk1fQk9PSzNTX0hWX05FU1RFRF9QTVVfV09SS0FST1VORFxcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0xNTgtXFx0Ym9vbCBcXFwiTmVzdGVkIEwwIGhvc3Qgd29ya2Fyb3VuZCBmb3IgTDEgS1ZNIGhvc3QgUE1VIGhhbmRsaW5nIGJ1Z1xcXCIgaWYgRVhQRVJUXFxuLS1cXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMTcxLVxcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZzoxNzI6Y29uZmlnIEtWTV9CT09LM1NfSFZfUE1VXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTE3My1cXHR0cmlzdGF0ZSBcXFwiSHlwZXJ2aXNvciBQZXJmIGV2ZW50cyBmb3IgS1ZNIEJvb2szcy1IVlxcXCJcXG4tLVxcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0xODMtXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnOjE4NDpjb25maWcgS1ZNX0JPT0tFX0hWXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTE4NS1cXHRib29sXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTE4Ni1cXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWc6MTg3OmNvbmZpZyBLVk1fRVhJVF9USU1JTkdcXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMTg4LVxcdGJvb2wgXFxcIkRldGFpbGVkIGV4aXQgdGltaW5nXFxcIlxcbi0tXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTE5Ny1cXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWc6MTk4OmNvbmZpZyBLVk1fRTUwMFYyXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTE5OS1cXHRib29sIFxcXCJLVk0gc3VwcG9ydCBmb3IgUG93ZXJQQyBFNTAwdjIgcHJvY2Vzc29yc1xcXCJcXG4tLVxcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0yMTItXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnOjIxMzpjb25maWcgS1ZNX0U1MDBNQ1xcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0yMTQtXFx0Ym9vbCBcXFwiS1ZNIHN1cHBvcnQgZm9yIFBvd2VyUEMgRTUwME1DL0U1NTAwL0U2NTAwIHByb2Nlc3NvcnNcXFwiXFxuLS1cXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMjI4LVxcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZzoyMjk6Y29uZmlnIEtWTV9NUElDXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTIzMC1cXHRib29sIFxcXCJLVk0gaW4ta2VybmVsIE1QSUMgZW11bGF0aW9uXFxcIlxcbi0tXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTI0MC1cXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWc6MjQxOmNvbmZpZyBLVk1fWElDU1xcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0yNDItXFx0Ym9vbCBcXFwiS1ZNIGluLWtlcm5lbCBYSUNTIGVtdWxhdGlvblxcXCJcXG4tLVxcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0yNTAtXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnOjI1MTpjb25maWcgS1ZNX1hJVkVcXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMjUyLVxcdGJvb2xcXG4tLVxcbmFyY2gvcG93ZXJwYy9wbGF0Zm9ybXMvS2NvbmZpZz0yMj1zb3VyY2UgXFxcImFyY2gvcG93ZXJwYy9wbGF0Zm9ybXMvbWljcm93YXR0L0tjb25maWdcXFwiXFxuYXJjaC9wb3dlcnBjL3BsYXRmb3Jtcy9LY29uZmlnLTIzLVxcbmFyY2gvcG93ZXJwYy9wbGF0Zm9ybXMvS2NvbmZpZzoyNDpjb25maWcgS1ZNX0dVRVNUXFxuYXJjaC9wb3dlcnBjL3BsYXRmb3Jtcy9LY29uZmlnLTI1LVxcdGJvb2wgXFxcIktWTSBHdWVzdCBzdXBwb3J0XFxcIlxcbi0tXFxuYXJjaC9yaXNjdi9rdm0vS2NvbmZpZz0xOD1pZiBWSVJUVUFMSVpBVElPTlxcbmFyY2gvcmlzY3Yva3ZtL0tjb25maWctMTktXFxuYXJjaC9yaXNjdi9rdm0vS2NvbmZpZzoyMDpjb25maWcgS1ZNXFxuYXJjaC9yaXNjdi9rdm0vS2NvbmZpZy0yMS1cXHR0cmlzdGF0ZSBcXFwiS2VybmVsLWJhc2VkIFZpcnR1YWwgTWFjaGluZSAoS1ZNKSBzdXBwb3J0XFxcIlxcbi0tXFxuYXJjaC9zMzkwL2t2bS9LY29uZmlnPTE3PWlmIFZJUlRVQUxJWkFUSU9OXFxuYXJjaC9zMzkwL2t2bS9LY29uZmlnLTE4LVxcbmFyY2gvczM5MC9rdm0vS2NvbmZpZzoxOTpjb25maWcgS1ZNXFxuYXJjaC9zMzkwL2t2bS9LY29uZmlnLTIwLVxcdGRlZl90cmlzdGF0ZSB5XFxuLS1cXG5hcmNoL3MzOTAva3ZtL0tjb25maWctNDYtXFxuYXJjaC9zMzkwL2t2bS9LY29uZmlnOjQ3OmNvbmZpZyBLVk1fUzM5MF9VQ09OVFJPTFxcbmFyY2gvczM5MC9rdm0vS2NvbmZpZy00OC1cXHRib29sIFxcXCJVc2Vyc3BhY2UgY29udHJvbGxlZCB2aXJ0dWFsIG1hY2hpbmVzXFxcIlxcbi0tXFxuYXJjaC94ODYvS2NvbmZpZz04MjY9c291cmNlIFxcXCJhcmNoL3g4Ni94ZW4vS2NvbmZpZ1xcXCJcXG5hcmNoL3g4Ni9LY29uZmlnLTgyNy1cXG5hcmNoL3g4Ni9LY29uZmlnOjgyODpjb25maWcgS1ZNX0dVRVNUXFxuYXJjaC94ODYvS2NvbmZpZy04MjktXFx0Ym9vbCBcXFwiS1ZNIEd1ZXN0IHN1cHBvcnQgKGluY2x1ZGluZyBrdm1jbG9jaylcXFwiXFxuLS1cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZz0xOD1pZiBWSVJUVUFMSVpBVElPTlxcbmFyY2gveDg2L2t2bS9LY29uZmlnLTE5LVxcbmFyY2gveDg2L2t2bS9LY29uZmlnOjIwOmNvbmZpZyBLVk1fWDg2XFxuYXJjaC94ODYva3ZtL0tjb25maWctMjEtXFx0ZGVmX3RyaXN0YXRlIEtWTSBpZiAoS1ZNX0lOVEVMICE9IG4gfHwgS1ZNX0FNRCAhPSBuKVxcbi0tXFxuYXJjaC94ODYva3ZtL0tjb25maWctNTEtXFxuYXJjaC94ODYva3ZtL0tjb25maWc6NTI6Y29uZmlnIEtWTVxcbmFyY2gveDg2L2t2bS9LY29uZmlnLTUzLVxcdHRyaXN0YXRlIFxcXCJLZXJuZWwtYmFzZWQgVmlydHVhbCBNYWNoaW5lIChLVk0pIHN1cHBvcnRcXFwiXFxuLS1cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy02OC1cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZzo2OTpjb25maWcgS1ZNX1dFUlJPUlxcbmFyY2gveDg2L2t2bS9LY29uZmlnLTcwLVxcdGJvb2wgXFxcIkNvbXBpbGUgS1ZNIHdpdGggLVdlcnJvclxcXCJcXG4tLVxcbmFyY2gveDg2L2t2bS9LY29uZmlnLTgyLVxcbmFyY2gveDg2L2t2bS9LY29uZmlnOjgzOmNvbmZpZyBLVk1fU1dfUFJPVEVDVEVEX1ZNXFxuYXJjaC94ODYva3ZtL0tjb25maWctODQtXFx0Ym9vbCBcXFwiRW5hYmxlIHN1cHBvcnQgZm9yIEtWTSBzb2Z0d2FyZS1wcm90ZWN0ZWQgVk1zXFxcIlxcbi0tXFxuYXJjaC94ODYva3ZtL0tjb25maWctOTUtXFxuYXJjaC94ODYva3ZtL0tjb25maWc6OTY6Y29uZmlnIEtWTV9JTlRFTFxcbmFyY2gveDg2L2t2bS9LY29uZmlnLTk3LVxcdHRyaXN0YXRlIFxcXCJLVk0gZm9yIEludGVsIChhbmQgY29tcGF0aWJsZSkgcHJvY2Vzc29ycyBzdXBwb3J0XFxcIlxcbi0tXFxuYXJjaC94ODYva3ZtL0tjb25maWctMTA2LVxcbmFyY2gveDg2L2t2bS9LY29uZmlnOjEwNzpjb25maWcgS1ZNX0lOVEVMX1BST1ZFX1ZFXFxuYXJjaC94ODYva3ZtL0tjb25maWctMTA4LSAgICAgICAgYm9vbCBcXFwiQ2hlY2sgdGhhdCBndWVzdHMgZG8gbm90IHJlY2VpdmUgI1ZFIGV4Y2VwdGlvbnNcXFwiXFxuLS1cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZz0xMjI9Y29uZmlnIFg4Nl9TR1hfS1ZNXFxuLS1cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0xMzMtXFxuYXJjaC94ODYva3ZtL0tjb25maWc6MTM0OmNvbmZpZyBLVk1fSU5URUxfVERYXFxuYXJjaC94ODYva3ZtL0tjb25maWctMTM1LVxcdGJvb2wgXFxcIkludGVsIFRydXN0IERvbWFpbiBFeHRlbnNpb25zIChURFgpIHN1cHBvcnRcXFwiXFxuLS1cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0xNDUtXFxuYXJjaC94ODYva3ZtL0tjb25maWc6MTQ2OmNvbmZpZyBLVk1fQU1EXFxuYXJjaC94ODYva3ZtL0tjb25maWctMTQ3LVxcdHRyaXN0YXRlIFxcXCJLVk0gZm9yIEFNRCBwcm9jZXNzb3JzIHN1cHBvcnRcXFwiXFxuLS1cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0xNTUtXFxuYXJjaC94ODYva3ZtL0tjb25maWc6MTU2OmNvbmZpZyBLVk1fQU1EX1NFVlxcbmFyY2gveDg2L2t2bS9LY29uZmlnLTE1Ny1cXHRib29sIFxcXCJBTUQgU2VjdXJlIEVuY3J5cHRlZCBWaXJ0dWFsaXphdGlvbiAoU0VWKSBzdXBwb3J0XFxcIlxcbi0tXFxuYXJjaC94ODYva3ZtL0tjb25maWctMTcyLVxcbmFyY2gveDg2L2t2bS9LY29uZmlnOjE3Mzpjb25maWcgS1ZNX0lPQVBJQ1xcbmFyY2gveDg2L2t2bS9LY29uZmlnLTE3NC1cXHRib29sIFxcXCJJL08gQVBJQywgUElDLCBhbmQgUElUIGVtdWxhdGlvblxcXCJcXG4tLVxcbmFyY2gveDg2L2t2bS9LY29uZmlnLTE4Mi1cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZzoxODM6Y29uZmlnIEtWTV9TTU1cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0xODQtXFx0Ym9vbCBcXFwiU3lzdGVtIE1hbmFnZW1lbnQgTW9kZSBlbXVsYXRpb25cXFwiXFxuLS1cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0xOTMtXFxuYXJjaC94ODYva3ZtL0tjb25maWc6MTk0OmNvbmZpZyBLVk1fSFlQRVJWXFxuYXJjaC94ODYva3ZtL0tjb25maWctMTk1LVxcdGJvb2wgXFxcIlN1cHBvcnQgZm9yIE1pY3Jvc29mdCBIeXBlci1WIGVtdWxhdGlvblxcXCJcXG4tLVxcbmFyY2gveDg2L2t2bS9LY29uZmlnLTIwNy1cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZzoyMDg6Y29uZmlnIEtWTV9YRU5cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0yMDktXFx0Ym9vbCBcXFwiU3VwcG9ydCBmb3IgWGVuIGh5cGVyY2FsbCBpbnRlcmZhY2VcXFwiXFxuLS1cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0yMTYtXFxuYXJjaC94ODYva3ZtL0tjb25maWc6MjE3OmNvbmZpZyBLVk1fUFJPVkVfTU1VXFxuYXJjaC94ODYva3ZtL0tjb25maWctMjE4LVxcdGJvb2wgXFxcIlByb3ZlIEtWTSBNTVUgY29ycmVjdG5lc3NcXFwiXFxuLS1cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0yMjktXFxuYXJjaC94ODYva3ZtL0tjb25maWc6MjMwOmNvbmZpZyBLVk1fRVhURVJOQUxfV1JJVEVfVFJBQ0tJTkdcXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0yMzEtXFx0Ym9vbFxcbmFyY2gveDg2L2t2bS9LY29uZmlnLTIzMi1cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZzoyMzM6Y29uZmlnIEtWTV9NQVhfTlJfVkNQVVNcXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0yMzQtXFx0aW50IFxcXCJNYXhpbXVtIG51bWJlciBvZiB2Q1BVcyBwZXIgS1ZNIGd1ZXN0XFxcIlxcbi0tXFxudmlydC9rdm0vS2NvbmZpZy0zLVxcbnZpcnQva3ZtL0tjb25maWc6NDpjb25maWcgS1ZNX0NPTU1PTlxcbnZpcnQva3ZtL0tjb25maWctNS0gICAgICAgYm9vbFxcbi0tXFxudmlydC9rdm0vS2NvbmZpZz0zOT1jb25maWcgTkVFRF9LVk1fRElSVFlfUklOR19XSVRIX0JJVE1BUFxcbi0tXFxudmlydC9rdm0vS2NvbmZpZy00Mi1cXG52aXJ0L2t2bS9LY29uZmlnOjQzOmNvbmZpZyBLVk1fTU1JT1xcbnZpcnQva3ZtL0tjb25maWctNDQtICAgICAgIGJvb2xcXG52aXJ0L2t2bS9LY29uZmlnLTQ1LVxcbnZpcnQva3ZtL0tjb25maWc6NDY6Y29uZmlnIEtWTV9BU1lOQ19QRlxcbnZpcnQva3ZtL0tjb25maWctNDctICAgICAgIGJvb2xcXG4tLVxcbnZpcnQva3ZtL0tjb25maWctNDktIyBUb2dnbGUgdG8gc3dpdGNoIGJldHdlZW4gZGlyZWN0IG5vdGlmaWNhdGlvbiBhbmQgYmF0Y2ggam9iXFxudmlydC9rdm0vS2NvbmZpZzo1MDpjb25maWcgS1ZNX0FTWU5DX1BGX1NZTkNcXG52aXJ0L2t2bS9LY29uZmlnLTUxLSAgICAgICBib29sXFxuLS1cXG52aXJ0L2t2bS9LY29uZmlnPTU5PWNvbmZpZyBIQVZFX0tWTV9DUFVfUkVMQVhfSU5URVJDRVBUXFxuLS1cXG52aXJ0L2t2bS9LY29uZmlnLTYxLVxcbnZpcnQva3ZtL0tjb25maWc6NjI6Y29uZmlnIEtWTV9WRklPXFxudmlydC9rdm0vS2NvbmZpZy02My0gICAgICAgYm9vbFxcbi0tXFxudmlydC9rdm0vS2NvbmZpZz02NT1jb25maWcgSEFWRV9LVk1fSU5WQUxJRF9XQUtFVVBTXFxuLS1cXG52aXJ0L2t2bS9LY29uZmlnLTY3LVxcbnZpcnQva3ZtL0tjb25maWc6Njg6Y29uZmlnIEtWTV9HRU5FUklDX0RJUlRZTE9HX1JFQURfUFJPVEVDVFxcbnZpcnQva3ZtL0tjb25maWctNjktICAgICAgIGJvb2xcXG52aXJ0L2t2bS9LY29uZmlnLTcwLVxcbnZpcnQva3ZtL0tjb25maWc6NzE6Y29uZmlnIEtWTV9HRU5FUklDX1BSRV9GQVVMVF9NRU1PUllcXG52aXJ0L2t2bS9LY29uZmlnLTcyLSAgICAgICBib29sXFxudmlydC9rdm0vS2NvbmZpZy03My1cXG52aXJ0L2t2bS9LY29uZmlnOjc0OmNvbmZpZyBLVk1fQ09NUEFUXFxudmlydC9rdm0vS2NvbmZpZy03NS0gICAgICAgZGVmX2Jvb2wgeVxcbi0tXFxudmlydC9rdm0vS2NvbmZpZz05MT1jb25maWcgSEFWRV9LVk1fUE1fTk9USUZJRVJcXG4tLVxcbnZpcnQva3ZtL0tjb25maWctOTMtXFxudmlydC9rdm0vS2NvbmZpZzo5NDpjb25maWcgS1ZNX0dFTkVSSUNfSEFSRFdBUkVfRU5BQkxJTkdcXG52aXJ0L2t2bS9LY29uZmlnLTk1LSAgICAgICBib29sXFxudmlydC9rdm0vS2NvbmZpZy05Ni1cXG52aXJ0L2t2bS9LY29uZmlnOjk3OmNvbmZpZyBLVk1fRUxJREVfVExCX0ZMVVNIX0lGX1lPVU5HXFxudmlydC9rdm0vS2NvbmZpZy05OC0gICAgICAgYm9vbFxcbnZpcnQva3ZtL0tjb25maWctOTktXFxudmlydC9rdm0vS2NvbmZpZzoxMDA6Y29uZmlnIEtWTV9NTVVfTE9DS0xFU1NfQUdJTkdcXG52aXJ0L2t2bS9LY29uZmlnLTEwMS0gICAgICAgYm9vbFxcbnZpcnQva3ZtL0tjb25maWctMTAyLVxcbnZpcnQva3ZtL0tjb25maWc6MTAzOmNvbmZpZyBLVk1fR0VORVJJQ19NRU1PUllfQVRUUklCVVRFU1xcbnZpcnQva3ZtL0tjb25maWctMTA0LSAgICAgICBib29sXFxudmlydC9rdm0vS2NvbmZpZy0xMDUtXFxudmlydC9rdm0vS2NvbmZpZzoxMDY6Y29uZmlnIEtWTV9HVUVTVF9NRU1GRFxcbnZpcnQva3ZtL0tjb25maWctMTA3LSAgICAgICBzZWxlY3QgWEFSUkFZX01VTFRJXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA2VDIwOjM0OjI4LjgzODY1MzE1MVoiLCJTZXEiOjcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjM0NzM2Nzg1MTcsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqS1ZNIENvbmZpZ3VyYXRpb246IEEgRGVlcCBEaXZlKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgdGhpcyBjb25maWd1cmF0aW9uIGFuZCBpdCdzIHNldCB0byBgS1ZNYC4gUmlnaHQsIHJpZ2h0Li4uIGJ1dCBgS1ZNYCBpcyBhIHRyaXN0YXRlLCBhbmQgdGhhdCBtZWFucyBpdCBoYXMgZGVwZW5kZW5jaWVzLiBNeSBtaW5kIGltbWVkaWF0ZWx5IGp1bXBzIHRvIHZlcmlmeWluZyB0aGUgZGVwZW5kZW5jaWVzLiBTcGVjaWZpY2FsbHksIGBLVk1gIHJlbGllcyBvbiBgVklSVFVBTElaQVRJT05gLiBUaW1lIHRvIGRpZyBkZWVwZXIgaW50byB0aGUgc291cmNlLCBsZXQncyBnbyB0byBgYXJjaC94ODYva3ZtL0tjb25maWdgIHRvIGNvbmZpcm0gdGhlc2UgZGVwZW5kZW5jaWVzIGFuZCByZWZyZXNoIG15IG1lbW9yeSBvbiB0aGUgc3BlY2lmaWNzIG9mIGhvdyB0aGlzIGZlYXR1cmUgaXMgY29udHJvbGxlZCBhdCB0aGUgYXJjaGl0ZWN0dXJhbCBsZXZlbC4gSSBuZWVkIHRvIGJlIHN1cmUgdGhpcyBpcyBzZXR1cCBhcyBJIGV4cGVjdC5cblxuXG4iLCJJbnB1dFRva2VucyI6OTQ2MCwiT3V0cHV0VG9rZW5zIjozNCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjQ3LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA2VDIwOjM0OjMyLjMxMjMzNDMxN1oiLCJTZXEiOjgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMTg5MjI5ODIsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY29uZmlnIEtWTVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJhcmNoL3g4Ni9rdm0vS2NvbmZpZ1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJhcmNoL3g4Ni9rdm0vS2NvbmZpZz0xOD1pZiBWSVJUVUFMSVpBVElPTlxcbmFyY2gveDg2L2t2bS9LY29uZmlnLTE5LVxcbmFyY2gveDg2L2t2bS9LY29uZmlnOjIwOmNvbmZpZyBLVk1fWDg2XFxuYXJjaC94ODYva3ZtL0tjb25maWctMjEtXFx0ZGVmX3RyaXN0YXRlIEtWTSBpZiAoS1ZNX0lOVEVMICE9IG4gfHwgS1ZNX0FNRCAhPSBuKVxcbi0tXFxuYXJjaC94ODYva3ZtL0tjb25maWctNTEtXFxuYXJjaC94ODYva3ZtL0tjb25maWc6NTI6Y29uZmlnIEtWTVxcbmFyY2gveDg2L2t2bS9LY29uZmlnLTUzLVxcdHRyaXN0YXRlIFxcXCJLZXJuZWwtYmFzZWQgVmlydHVhbCBNYWNoaW5lIChLVk0pIHN1cHBvcnRcXFwiXFxuLS1cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy02OC1cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZzo2OTpjb25maWcgS1ZNX1dFUlJPUlxcbmFyY2gveDg2L2t2bS9LY29uZmlnLTcwLVxcdGJvb2wgXFxcIkNvbXBpbGUgS1ZNIHdpdGggLVdlcnJvclxcXCJcXG4tLVxcbmFyY2gveDg2L2t2bS9LY29uZmlnLTgyLVxcbmFyY2gveDg2L2t2bS9LY29uZmlnOjgzOmNvbmZpZyBLVk1fU1dfUFJPVEVDVEVEX1ZNXFxuYXJjaC94ODYva3ZtL0tjb25maWctODQtXFx0Ym9vbCBcXFwiRW5hYmxlIHN1cHBvcnQgZm9yIEtWTSBzb2Z0d2FyZS1wcm90ZWN0ZWQgVk1zXFxcIlxcbi0tXFxuYXJjaC94ODYva3ZtL0tjb25maWctOTUtXFxuYXJjaC94ODYva3ZtL0tjb25maWc6OTY6Y29uZmlnIEtWTV9JTlRFTFxcbmFyY2gveDg2L2t2bS9LY29uZmlnLTk3LVxcdHRyaXN0YXRlIFxcXCJLVk0gZm9yIEludGVsIChhbmQgY29tcGF0aWJsZSkgcHJvY2Vzc29ycyBzdXBwb3J0XFxcIlxcbi0tXFxuYXJjaC94ODYva3ZtL0tjb25maWctMTA2LVxcbmFyY2gveDg2L2t2bS9LY29uZmlnOjEwNzpjb25maWcgS1ZNX0lOVEVMX1BST1ZFX1ZFXFxuYXJjaC94ODYva3ZtL0tjb25maWctMTA4LSAgICAgICAgYm9vbCBcXFwiQ2hlY2sgdGhhdCBndWVzdHMgZG8gbm90IHJlY2VpdmUgI1ZFIGV4Y2VwdGlvbnNcXFwiXFxuLS1cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZz0xMjI9Y29uZmlnIFg4Nl9TR1hfS1ZNXFxuLS1cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0xMzMtXFxuYXJjaC94ODYva3ZtL0tjb25maWc6MTM0OmNvbmZpZyBLVk1fSU5URUxfVERYXFxuYXJjaC94ODYva3ZtL0tjb25maWctMTM1LVxcdGJvb2wgXFxcIkludGVsIFRydXN0IERvbWFpbiBFeHRlbnNpb25zIChURFgpIHN1cHBvcnRcXFwiXFxuLS1cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0xNDUtXFxuYXJjaC94ODYva3ZtL0tjb25maWc6MTQ2OmNvbmZpZyBLVk1fQU1EXFxuYXJjaC94ODYva3ZtL0tjb25maWctMTQ3LVxcdHRyaXN0YXRlIFxcXCJLVk0gZm9yIEFNRCBwcm9jZXNzb3JzIHN1cHBvcnRcXFwiXFxuLS1cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0xNTUtXFxuYXJjaC94ODYva3ZtL0tjb25maWc6MTU2OmNvbmZpZyBLVk1fQU1EX1NFVlxcbmFyY2gveDg2L2t2bS9LY29uZmlnLTE1Ny1cXHRib29sIFxcXCJBTUQgU2VjdXJlIEVuY3J5cHRlZCBWaXJ0dWFsaXphdGlvbiAoU0VWKSBzdXBwb3J0XFxcIlxcbi0tXFxuYXJjaC94ODYva3ZtL0tjb25maWctMTcyLVxcbmFyY2gveDg2L2t2bS9LY29uZmlnOjE3Mzpjb25maWcgS1ZNX0lPQVBJQ1xcbmFyY2gveDg2L2t2bS9LY29uZmlnLTE3NC1cXHRib29sIFxcXCJJL08gQVBJQywgUElDLCBhbmQgUElUIGVtdWxhdGlvblxcXCJcXG4tLVxcbmFyY2gveDg2L2t2bS9LY29uZmlnLTE4Mi1cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZzoxODM6Y29uZmlnIEtWTV9TTU1cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0xODQtXFx0Ym9vbCBcXFwiU3lzdGVtIE1hbmFnZW1lbnQgTW9kZSBlbXVsYXRpb25cXFwiXFxuLS1cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0xOTMtXFxuYXJjaC94ODYva3ZtL0tjb25maWc6MTk0OmNvbmZpZyBLVk1fSFlQRVJWXFxuYXJjaC94ODYva3ZtL0tjb25maWctMTk1LVxcdGJvb2wgXFxcIlN1cHBvcnQgZm9yIE1pY3Jvc29mdCBIeXBlci1WIGVtdWxhdGlvblxcXCJcXG4tLVxcbmFyY2gveDg2L2t2bS9LY29uZmlnLTIwNy1cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZzoyMDg6Y29uZmlnIEtWTV9YRU5cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0yMDktXFx0Ym9vbCBcXFwiU3VwcG9ydCBmb3IgWGVuIGh5cGVyY2FsbCBpbnRlcmZhY2VcXFwiXFxuLS1cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0yMTYtXFxuYXJjaC94ODYva3ZtL0tjb25maWc6MjE3OmNvbmZpZyBLVk1fUFJPVkVfTU1VXFxuYXJjaC94ODYva3ZtL0tjb25maWctMjE4LVxcdGJvb2wgXFxcIlByb3ZlIEtWTSBNTVUgY29ycmVjdG5lc3NcXFwiXFxuLS1cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0yMjktXFxuYXJjaC94ODYva3ZtL0tjb25maWc6MjMwOmNvbmZpZyBLVk1fRVhURVJOQUxfV1JJVEVfVFJBQ0tJTkdcXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0yMzEtXFx0Ym9vbFxcbmFyY2gveDg2L2t2bS9LY29uZmlnLTIzMi1cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZzoyMzM6Y29uZmlnIEtWTV9NQVhfTlJfVkNQVVNcXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0yMzQtXFx0aW50IFxcXCJNYXhpbXVtIG51bWJlciBvZiB2Q1BVcyBwZXIgS1ZNIGd1ZXN0XFxcIlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wNlQyMDozNDozMi40MzEyNjM1NjlaIiwiU2VxIjo5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0NjkxMzQ2MTQxLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgS1ZNIENvbmZpZ3VyYXRpb24qKlxuXG5Pa2F5LCBzbyBJJ20gZGlnZ2luZyBpbnRvIHRoaXMgS1ZNIHN0dWZmLCBzcGVjaWZpY2FsbHkgbG9va2luZyBhdCB3aHkgdGhpcyBgaGFuZGxlX2FwaWNfZW9pX2luZHVjZWRgIGZ1bmN0aW9uIGlzIHByZXNlbnQuIE15IGluaXRpYWwgaW5zdGluY3QsIGdpdmVuIHRoZSBmdW5jdGlvbidzIGxvY2F0aW9uIGluIGB2bXguY2AsIHBvaW50cyBtZSBkaXJlY3RseSB0byB0aGUgYEtWTWAgYW5kIGBLVk1fSU5URUxgIGNvbmZpZ3VyYXRpb25zLiBTaW5jZSB0aGF0J3MgdGhlIGxpa2VseSBjb25maWd1cmF0aW9uLCBJJ2xsIG5lZWQgdG8gY2hlY2sgdGhlIGNvZGUgdGhhdCdzIHJlbGF0ZWQuIEknbSBnb2luZyB0byB0YWtlIGEgY2xvc2VyIGxvb2sgYXQgYGFyY2gveDg2L2t2bS92bXgvdm14LmNgIGFuZCBzcGVjaWZpY2FsbHksIHRoYXQgYGhhbmRsZV9hcGljX2VvaV9pbmR1Y2VkYCBmdW5jdGlvbi4gVGltZSB0byBzZWUgd2hhdCdzIGdvaW5nIG9uIGluIHRoZXJlIGFuZCB1bmRlcnN0YW5kIGl0cyByb2xlIGluIHRoZSB2aXJ0dWFsIG1hY2hpbmUuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjEwODkyLCJPdXRwdXRUb2tlbnMiOjQ1LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NzEsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDZUMjA6MzQ6MzcuMTIyNjEyMjJaIiwiU2VxIjoxMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjIzMTI1NzYwNCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJoYW5kbGVfYXBpY19lb2lfaW5kdWNlZFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJhcmNoL3g4Ni9rdm0vdm14L3ZteC5jXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImFyY2gveDg2L2t2bS92bXgvdm14LmM9NTg2ND1zdGF0aWMgaW50IGhhbmRsZV9hcGljX2FjY2VzcyhzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpXFxuLS1cXG5hcmNoL3g4Ni9rdm0vdm14L3ZteC5jLTU4ODUtXFxuYXJjaC94ODYva3ZtL3ZteC92bXguYzo1ODg2OnN0YXRpYyBpbnQgaGFuZGxlX2FwaWNfZW9pX2luZHVjZWQoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KVxcbmFyY2gveDg2L2t2bS92bXgvdm14LmMtNTg4Ny17XFxuLS1cXG5hcmNoL3g4Ni9rdm0vdm14L3ZteC5jPTYzMjY9c3RhdGljIGludCAoKmt2bV92bXhfZXhpdF9oYW5kbGVyc1tdKShzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpID0ge1xcbi0tXFxuYXJjaC94ODYva3ZtL3ZteC92bXguYy02MzU0LVxcdFtFWElUX1JFQVNPTl9BUElDX1dSSVRFXSAgICAgICAgICAgICAgPSBoYW5kbGVfYXBpY193cml0ZSxcXG5hcmNoL3g4Ni9rdm0vdm14L3ZteC5jOjYzNTU6XFx0W0VYSVRfUkVBU09OX0VPSV9JTkRVQ0VEXSAgICAgICAgICAgICA9IGhhbmRsZV9hcGljX2VvaV9pbmR1Y2VkLFxcbmFyY2gveDg2L2t2bS92bXgvdm14LmMtNjM1Ni1cXHRbRVhJVF9SRUFTT05fV0JJTlZEXSAgICAgICAgICAgICAgICAgID0ga3ZtX2VtdWxhdGVfd2JpbnZkLFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wNlQyMDozNDozNy4zNTM4Nzg2MjRaIiwiU2VxIjoxMSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MTI2Mzg1NTk2MjUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqTXkgQW5hbHlzaXMgb2YgdGhlIEtWTSBQYXRjaCdzIEZ1enppbmcgU2NvcGUqKlxuXG5Pa2F5LCBzbyB0aGUgY29kZSBjaGFuZ2UgdGFyZ2V0cyBBUElDIEVPSSBoYW5kbGluZyB3aXRoaW4gS1ZNLiBJIG5lZWQgdG8gcGlucG9pbnQgdGhlIHJlbGV2YW50IGNvbmZpZ3VyYXRpb25zIGFuZCBmb2N1cyBzeW1ib2xzIGZvciBmdXp6aW5nIHRoaXMuIExldCdzIHNlZS4uLlxuXG5gaGFuZGxlX2FwaWNfZW9pX2luZHVjZWRgIGlzIGRlZmluaXRlbHkgaW4gYHZteC5jYCwgd2hpY2ggdGVsbHMgbWUgdGhlIGBLVk1fSU5URUxgIGNvbmZpZ3VyYXRpb24gaXMga2V5IHNpbmNlIHRoYXQncyB3aGVyZSBWTVggc3VwcG9ydCBsaXZlcy4gR29vZCwgYEtWTWAgYW5kIGBLVk1fSU5URUxgIGFyZSBkZWZpbml0ZWx5IG9uIHRoZSBsaXN0LlxuXG5JIGFsc28gbmVlZCB0byBzZWUgaWYgYEtWTV9BTURgIGlzIHJlbGV2YW50IHNpbmNlIGBrdm1fYXBpY19zZXRfZW9pX2FjY2VsZXJhdGVkYCBpcyBiZWluZyBtb2RpZmllZC4gQWgsIHJpZ2h0LCB0aGF0IGZ1bmN0aW9uIGxpdmVzIGluIGBsYXBpYy5jYCBhbmQgaXMgdXNlZCBieSBib3RoIFZNWCBhbmQgU1ZNLiBCdXQgYGhhbmRsZV9hcGljX2VvaV9pbmR1Y2VkYCBpcyBzcGVjaWZpY2FsbHkgVk1YLCBzbyBJIGNhbiBleGNsdWRlIGBLVk1fQU1EYC4gVGhlIGltcG9ydGFudCBjb25maWdzIGhlcmUgYXJlIGp1c3QgYEtWTWAgYW5kIGBLVk1fSU5URUxgLlxuXG5XYWl0IGEgbWludXRlLCBga3ZtX2FwaWNfc2V0X2VvaV9hY2NlbGVyYXRlZGAgaXMgZXhwb3J0ZWQgZm9yIGludGVybmFsIEtWTSB1c2UuIFBlcmZlY3QhIFRoYXQgbWFrZXMgaXQgYSBzdHJvbmcgY2FuZGlkYXRlIGFzIGEgZm9jdXMgc3ltYm9sLCBldmVuIHRob3VnaCBpdCdzIHVzZWQgYnkgYm90aCBWTVggYW5kIFNWTS4gVGhhdCdzIGEgZ29vZCBwbGFjZSB0byBzdGFydC5cblxuTm93LCBsZXQncyByZWNhcCB0aGUgcmF0aW9uYWxlIGZvciBmdXp6aW5nIHRoaXMuIFRoZSBwYXRjaCBpcyBjaGFuZ2luZyB0aGUgZGF0YSB0eXBlcyBvZiBgcGVuZGluZ19pb2FwaWNfZW9pYCBhbmQgYHZlY3RvcmAgaW4gdGhlIEVPSSBoYW5kbGluZyBjb2RlIGZyb20gYGludGAgdG8gYHU4YC4gSXQncyBhbHNvIHJlbW92aW5nIGEgYEJVR19PTmAgaW4gYHZjcHVfZW50ZXJfZ3Vlc3RgLiBUaGVzZSBhcmUgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIGNvcmUgS1ZNIGxvZ2ljIHRoYXQgaXMgcmVhY2hlZCBkdXJpbmcgQVBJQyBpbnRlcnJ1cHQgaGFuZGxpbmcsIHRoZXJlZm9yZSB0aGlzIG5lZWRzIHRvIGJlIGZ1enplZC5cblxuU28sIHRvIHN1bW1hcml6ZSwgdGhlIGZvY3VzIHN5bWJvbHMgYXJlOiBga3ZtX2FwaWNfc2V0X2VvaV9hY2NlbGVyYXRlZGAgYW5kIGBoYW5kbGVfYXBpY19lb2lfaW5kdWNlZGAuIFRoZSByZWxldmFudCBjb25maWd1cmF0aW9ucyBhcmUgYEtWTWAgYW5kIGBLVk1fSU5URUxgLlxuXG5UaW1lIHRvIGNhbGwgdGhlIHNldC1yZXN1bHRzIGZ1bmN0aW9uIGFuZCBtb3ZlIGZvcndhcmQuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjExNTA5LCJPdXRwdXRUb2tlbnMiOjE1MywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjMyNywiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0wNlQyMDozNDo0OS45OTI0NDE4OTlaIiwiU2VxIjoxMiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNDQxMjI4ODAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIktWTVwiLFxuICAgIFwiS1ZNX0lOVEVMXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwia3ZtX2FwaWNfc2V0X2VvaV9hY2NlbGVyYXRlZFwiLFxuICAgIFwiaGFuZGxlX2FwaWNfZW9pX2luZHVjZWRcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgdHlwZSBvZiBgcGVuZGluZ19pb2FwaWNfZW9pYCBhbmQgYHZlY3RvcmAgYXJndW1lbnRzIGluIEtWTSdzIEFQSUMgRU9JIGhhbmRsaW5nIGNvZGUgZnJvbSBgaW50YCB0byBgdThgLiBJdCBhbHNvIHJlbW92ZXMgYSBgQlVHX09OYCBpbiBgdmNwdV9lbnRlcl9ndWVzdGAuIFRoZXNlIGFyZSBmdW5jdGlvbmFsIGNoYW5nZXMgaW4gcmVhY2hhYmxlIGNvcmUgS1ZNIGxvZ2ljIHRoYXQgaGFuZGxlcyBBUElDIGludGVycnVwdHMsIHNvIGl0IHNob3VsZCBiZSBmdXp6ZWQuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiS1ZNXCIsXG4gICAgXCJLVk1fSU5URUxcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJrdm1fYXBpY19zZXRfZW9pX2FjY2VsZXJhdGVkXCIsXG4gICAgXCJoYW5kbGVfYXBpY19lb2lfaW5kdWNlZFwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSB0eXBlIG9mIGBwZW5kaW5nX2lvYXBpY19lb2lgIGFuZCBgdmVjdG9yYCBhcmd1bWVudHMgaW4gS1ZNJ3MgQVBJQyBFT0kgaGFuZGxpbmcgY29kZSBmcm9tIGBpbnRgIHRvIGB1OGAuIEl0IGFsc28gcmVtb3ZlcyBhIGBCVUdfT05gIGluIGB2Y3B1X2VudGVyX2d1ZXN0YC4gVGhlc2UgYXJlIGZ1bmN0aW9uYWwgY2hhbmdlcyBpbiByZWFjaGFibGUgY29yZSBLVk0gbG9naWMgdGhhdCBoYW5kbGVzIEFQSUMgaW50ZXJydXB0cywgc28gaXQgc2hvdWxkIGJlIGZ1enplZC5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9XTsKCQkJaWYgKCFyYXdEYXRhIHx8IHJhd0RhdGEubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQlkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKTsKCQkJZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSk7CgkJCWRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKSB7CgkJCWNvbnN0IHN0YXRzID0gewoJCQkJbGxtOiB7IGNvdW50OiAwLCB0b2tlbnM6IDAsIGR1cmF0aW9uOiAwIH0sCgkJCQl0b29sOiB7IGNvdW50OiAwLCBkdXJhdGlvbjogMCB9CgkJCX07CgoJCQlyYXdEYXRhLmZvckVhY2gocyA9PiB7CgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsgCgkJCQlpZiAocy5UeXBlID09PSAibGxtIikgewoJCQkJCXN0YXRzLmxsbS5jb3VudCsrOwoJCQkJCXN0YXRzLmxsbS50b2tlbnMgKz0gKHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnMpOwoJCQkJCXN0YXRzLmxsbS5kdXJhdGlvbiArPSBkdXI7CgkJCQl9IGVsc2UgaWYgKHMuVHlwZSA9PT0gInRvb2wiKSB7CgkJCQkJc3RhdHMudG9vbC5jb3VudCsrOwoJCQkJCXN0YXRzLnRvb2wuZHVyYXRpb24gKz0gZHVyOwoJCQkJfQoJCQl9KTsKCgkJCWNvbnN0IGF2Z0xsbUR1ciA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLmR1cmF0aW9uIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnTGxtVG9rZW4gPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS50b2tlbnMgLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdUb29sRHVyID0gc3RhdHMudG9vbC5jb3VudCA+IDAgPyAoc3RhdHMudG9vbC5kdXJhdGlvbiAvIHN0YXRzLnRvb2wuY291bnQpLnRvRml4ZWQoMikgOiAwOwoKCQkJY29uc3QgbGxtU3VtYXJ5Q2VsbHMgPSBbc3RhdHMubGxtLmNvdW50LCBzdGF0cy5sbG0udG9rZW5zLCBhdmdMbG1Ub2tlbiwgc3RhdHMubGxtLmR1cmF0aW9uLCBhdmdMbG1EdXJdOwoJCQljb25zdCB0b29sU3VtbWFyeUNlbGxzID0gW3N0YXRzLnRvb2wuY291bnQsIHN0YXRzLnRvb2wuZHVyYXRpb24sIGF2Z1Rvb2xEdXJdOwoKCQkJY29uc3QgbGxtU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGxtX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQlsbG1TdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgbGxtVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQlsbG1TdW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJbGxtVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJbGxtU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQobGxtVHIpOwoKCQkJY29uc3QgdG9vbFN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rvb2xfc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgdG9vbFRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJdG9vbFN1bW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJdG9vbFRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZCh0b29sVHIpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBmaWx0ZXJlZFN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBbImxsbSIsICJ0b29sIl0uaW5jbHVkZXMoZC5UeXBlKSk7CgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ0R1cmF0aW9uJyk7CgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7IAoKCQkJZmlsdGVyZWRTdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJCgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsKCQkJCWxldCB0b29sdGlwID0gcy5OYW1lOwoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIgJiYgcy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoJCQkJZGF0YS5hZGRSb3coW2Ake3MuU2VxfWAsIGR1ciwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1RpbWUgQ29uc3VtcHRpb24gb2YgTExNL1Rvb2wgQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTS9Ub29sIFN0ZXBzJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ1NlY29uZHMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2R1cmF0aW9uX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBsbG1TdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gZC5UeXBlID09PSAibGxtIik7CgkJCWlmIChsbG1TdGVwcy5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwkJCQoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ1Rva2VucycpOwkJCQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICdzdHlsZSd9KTsJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7CQoKCQkJY29uc3QgYWdlbnRDb2xvcnMgPSB7fTsKCQkJY29uc3QgcGFsZXR0ZSA9IFsnIzQyODVGNCcsICcjREI0NDM3JywgJyNGNEI0MDAnLCAnIzBGOUQ1OCcsICcjQUI0N0JDJywgJyMwMEFDQzEnXTsKCQkJbGV0IGNvbG9ySWR4ID0gMDsKCQkJY29uc3QgYWdlbnRMTE1Db3VudHMgPSB7fTsKCQkJbGxtU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCWlmICghYWdlbnRDb2xvcnNbcy5OYW1lXSkgewoJCQkJCWFnZW50Q29sb3JzW3MuTmFtZV0gPSBwYWxldHRlW2NvbG9ySWR4ICUgcGFsZXR0ZS5sZW5ndGhdOwoJCQkJCWNvbG9ySWR4Kys7CgkJCQl9CgoJCQkJYWdlbnRMTE1Db3VudHNbcy5OYW1lXSA9IChhZ2VudExMTUNvdW50c1tzLk5hbWVdIHx8IDApICsgMTsKCQkJCWNvbnN0IGxhYmVsID0gYCR7cy5OYW1lfS0ke2FnZW50TExNQ291bnRzW3MuTmFtZV19YDsKCQkJCWNvbnN0IHRvdGFsVG9rZW5zID0gcy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2VuczsKCQkJCWNvbnN0IHN0eWxlID0gYGNvbG9yOiAke2FnZW50Q29sb3JzW3MuTmFtZV19YDsKCQkJCWxldCB0b29sdGlwID0gYFRvdGFsIFRva2VuczogJHt0b3RhbFRva2Vuc31cbihJbjogJHtzLklucHV0VG9rZW5zfSwgT3V0OiAke3MuT3V0cHV0VG9rZW5zfSwgVGhvdWdodHM6ICR7cy5PdXRwdXRUaG91Z2h0c1Rva2Vuc30pYDsKCQkJCWlmIChzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgoJCQkJZGF0YS5hZGRSb3coW2xhYmVsLCB0b3RhbFRva2Vucywgc3R5bGUsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUb2tlbiBDb25zdW1wdGlvbiBieSBMTE0gQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTSBDYWxsIFNlcXVlbmNlJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ0NvbnN1bWVkIFRva2VucycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9rZW5fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCQlsZXQgYWxsRXhwYW5kZWQgPSBmYWxzZTsKCQlmdW5jdGlvbiB0b2dnbGVBbGxEZXRhaWxzKCkgewoJCQlhbGxFeHBhbmRlZCA9ICFhbGxFeHBhbmRlZDsKCQkJZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnZGV0YWlscycpLmZvckVhY2goZCA9PiB7CgkJCQlpZiAoYWxsRXhwYW5kZWQpIGQuc2V0QXR0cmlidXRlKCdvcGVuJywgJycpOwoJCQkJZWxzZSBkLnJlbW92ZUF0dHJpYnV0ZSgnb3BlbicpOwoJCQl9KTsKCQl9Cgk8L3NjcmlwdD4KCgo8L2JvZHk+CjwvaHRtbD4K" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowsg7g8[0].run-triage(0) Phase: Succeeded StartedAt: 2026-08-06 20:32:25 +0000 UTC FinishedAt: 2026-08-06 20:34:52 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "kvm-x86", "tree_url": "https://github.com/kvm-x86/linux.git", "commit_hash": "a806d364ef288a6443a1337820ea8410a7ccc6b3", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "KVM", "KVM_INTEL" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "kvm-x86", "tree_url": "https://github.com/kvm-x86/linux.git", "commit_hash": "a806d364ef288a6443a1337820ea8410a7ccc6b3", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "KVM", "KVM_INTEL" ], "series_id": "1aa0ff94-8b79-49cf-b96d-adcceaddc884" }, "track": "KASAN", "fuzz": { "focus": [ "kvm" ], "focus_symbols": [ "kvm_apic_set_eoi_accelerated", "handle_apic_eoi_induced" ], "corpus_urls": [ "https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db" ], "skip_cover_check": false, "bug_title_re": "" }, "retest": null } ], "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA2IDIwOjM0PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0tWTSYjMzQ7LAogICAgJiMzNDtLVk1fSU5URUwmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtrdm1fYXBpY19zZXRfZW9pX2FjY2VsZXJhdGVkJiMzNDssCiAgICAmIzM0O2hhbmRsZV9hcGljX2VvaV9pbmR1Y2VkJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSB0eXBlIG9mIGBwZW5kaW5nX2lvYXBpY19lb2lgIGFuZCBgdmVjdG9yYCBhcmd1bWVudHMgaW4gS1ZNJiMzOTtzIEFQSUMgRU9JIGhhbmRsaW5nIGNvZGUgZnJvbSBgaW50YCB0byBgdThgLiBJdCBhbHNvIHJlbW92ZXMgYSBgQlVHX09OYCBpbiBgdmNwdV9lbnRlcl9ndWVzdGAuIFRoZXNlIGFyZSBmdW5jdGlvbmFsIGNoYW5nZXMgaW4gcmVhY2hhYmxlIGNvcmUgS1ZNIGxvZ2ljIHRoYXQgaGFuZGxlcyBBUElDIGludGVycnVwdHMsIHNvIGl0IHNob3VsZCBiZSBmdXp6ZWQuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MS8xPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDYgMjA6MzQ8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPnJlYWQtcGF0Y2gtZGlmZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1BhdGNoRGlmZiYjMzQ7OiAmIzM0O2NvbW1pdCBkOGUwYTQ3ZWRkZjc5ZWY4Yzg4Mjk1NjNkNmNmYjJhYjMxNWMyYTI4XG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFRodSBBdWcgNiAyMDozNDowOCAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9rdm1faG9zdC5oIGIvYXJjaC94ODYvaW5jbHVkZS9hc20va3ZtX2hvc3QuaFxuaW5kZXggMjgzODQ3NjE5ZmY4OC4uOTYxNDMxNGZkMjM3NCAxMDA2NDRcbi0tLSBhL2FyY2gveDg2L2luY2x1ZGUvYXNtL2t2bV9ob3N0LmhcbiYjNDM7JiM0MzsmIzQzOyBiL2FyY2gveDg2L2luY2x1ZGUvYXNtL2t2bV9ob3N0LmhcbkBAIC05NzMsNyAmIzQzOzk3Myw3IEBAIHN0cnVjdCBrdm1fdmNwdV9hcmNoIHtcbiBcdFx0Ym9vbCBwdl91bmhhbHRlZDtcbiBcdH0gcHY7XG4gXG4tXHRpbnQgcGVuZGluZ19pb2FwaWNfZW9pO1xuJiM0MztcdHU4IHBlbmRpbmdfaW9hcGljX2VvaTtcbiBcdGludCBwZW5kaW5nX2V4dGVybmFsX3ZlY3RvcjtcbiBcdGludCBoaWdoZXN0X3N0YWxlX3BlbmRpbmdfaW9hcGljX2VvaTtcbiBcbmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rdm0vbGFwaWMuYyBiL2FyY2gveDg2L2t2bS9sYXBpYy5jXG5pbmRleCA1ODZhNWNlZTI5ZTFhLi44N2JiOGU1ZjRjYTFmIDEwMDY0NFxuLS0tIGEvYXJjaC94ODYva3ZtL2xhcGljLmNcbiYjNDM7JiM0MzsmIzQzOyBiL2FyY2gveDg2L2t2bS9sYXBpYy5jXG5AQCAtMTU1Miw3ICYjNDM7MTU1Miw3IEBAIHN0YXRpYyBib29sIGt2bV9pb2FwaWNfaGFuZGxlc192ZWN0b3Ioc3RydWN0IGt2bV9sYXBpYyAqYXBpYywgaW50IHZlY3RvcilcbiBcdHJldHVybiB0ZXN0X2JpdCh2ZWN0b3IsIGFwaWMtXHUwMDNldmNwdS1cdTAwM2VhcmNoLmlvYXBpY19oYW5kbGVkX3ZlY3RvcnMpO1xuIH1cbiBcbi1zdGF0aWMgdm9pZCBrdm1faW9hcGljX3NlbmRfZW9pKHN0cnVjdCBrdm1fbGFwaWMgKmFwaWMsIGludCB2ZWN0b3IpXG4mIzQzO3N0YXRpYyB2b2lkIGt2bV9pb2FwaWNfc2VuZF9lb2koc3RydWN0IGt2bV9sYXBpYyAqYXBpYywgdTggdmVjdG9yKVxuIHtcbiBcdGludCBfX21heWJlX3VudXNlZCB0cmlnZ2VyX21vZGU7XG4gXG5AQCAtMTYyMiw3ICYjNDM7MTYyMiw3IEBAIHN0YXRpYyBpbnQgYXBpY19zZXRfZW9pKHN0cnVjdCBrdm1fbGFwaWMgKmFwaWMpXG4gICogdGhpcyBpbnRlcmZhY2UgYXNzdW1lcyBhIHRyYXAtbGlrZSBleGl0LCB3aGljaCBoYXMgYWxyZWFkeSBmaW5pc2hlZFxuICAqIGRlc2lyZWQgc2lkZSBlZmZlY3QgaW5jbHVkaW5nIHZJU1IgYW5kIHZQUFIgdXBkYXRlLlxuICAqL1xuLXZvaWQga3ZtX2FwaWNfc2V0X2VvaV9hY2NlbGVyYXRlZChzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIGludCB2ZWN0b3IpXG4mIzQzO3ZvaWQga3ZtX2FwaWNfc2V0X2VvaV9hY2NlbGVyYXRlZChzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIHU4IHZlY3RvcilcbiB7XG4gXHRzdHJ1Y3Qga3ZtX2xhcGljICphcGljID0gdmNwdS1cdTAwM2VhcmNoLmFwaWM7XG4gXG5kaWZmIC0tZ2l0IGEvYXJjaC94ODYva3ZtL2xhcGljLmggYi9hcmNoL3g4Ni9rdm0vbGFwaWMuaFxuaW5kZXggYmQxMDk4Yzg5ZDk5OC4uZGIwNzFkMGIxNzJkMCAxMDA2NDRcbi0tLSBhL2FyY2gveDg2L2t2bS9sYXBpYy5oXG4mIzQzOyYjNDM7JiM0MzsgYi9hcmNoL3g4Ni9rdm0vbGFwaWMuaFxuQEAgLTE3Nyw3ICYjNDM7MTc3LDcgQEAgdTY0IGt2bV9nZXRfbGFwaWNfdHNjZGVhZGxpbmVfbXNyKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSk7XG4gdm9pZCBrdm1fc2V0X2xhcGljX3RzY2RlYWRsaW5lX21zcihzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIHU2NCBkYXRhKTtcbiBcbiB2b2lkIGt2bV9hcGljX3dyaXRlX25vZGVjb2RlKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwgdTMyIG9mZnNldCk7XG4tdm9pZCBrdm1fYXBpY19zZXRfZW9pX2FjY2VsZXJhdGVkKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwgaW50IHZlY3Rvcik7XG4mIzQzO3ZvaWQga3ZtX2FwaWNfc2V0X2VvaV9hY2NlbGVyYXRlZChzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIHU4IHZlY3Rvcik7XG4gXG4gaW50IGt2bV9sYXBpY19zZXRfdmFwaWNfYWRkcihzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIGdwYV90IHZhcGljX2FkZHIpO1xuIHZvaWQga3ZtX2xhcGljX3N5bmNfZnJvbV92YXBpYyhzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpO1xuZGlmZiAtLWdpdCBhL2FyY2gveDg2L2t2bS92bXgvdm14LmMgYi9hcmNoL3g4Ni9rdm0vdm14L3ZteC5jXG5pbmRleCBlM2JmZTZhY2ExYTBlLi5jMWZkZmNjZDIwZmFhIDEwMDY0NFxuLS0tIGEvYXJjaC94ODYva3ZtL3ZteC92bXguY1xuJiM0MzsmIzQzOyYjNDM7IGIvYXJjaC94ODYva3ZtL3ZteC92bXguY1xuQEAgLTU4ODYsMTAgJiM0Mzs1ODg2LDkgQEAgc3RhdGljIGludCBoYW5kbGVfYXBpY19hY2Nlc3Moc3RydWN0IGt2bV92Y3B1ICp2Y3B1KVxuIHN0YXRpYyBpbnQgaGFuZGxlX2FwaWNfZW9pX2luZHVjZWQoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KVxuIHtcbiBcdHVuc2lnbmVkIGxvbmcgZXhpdF9xdWFsaWZpY2F0aW9uID0gdm14X2dldF9leGl0X3F1YWwodmNwdSk7XG4tXHRpbnQgdmVjdG9yID0gZXhpdF9xdWFsaWZpY2F0aW9uIFx1MDAyNiAweGZmO1xuIFxuIFx0LyogRU9JLWluZHVjZWQgVk0gZXhpdCBpcyB0cmFwLWxpa2UgYW5kIHRodXMgbm8gbmVlZCB0byBhZGp1c3QgSVAgKi9cbi1cdGt2bV9hcGljX3NldF9lb2lfYWNjZWxlcmF0ZWQodmNwdSwgdmVjdG9yKTtcbiYjNDM7XHRrdm1fYXBpY19zZXRfZW9pX2FjY2VsZXJhdGVkKHZjcHUsIGV4aXRfcXVhbGlmaWNhdGlvbiBcdTAwMjYgMHhmZik7XG4gXHRyZXR1cm4gMTtcbiB9XG4gXG5kaWZmIC0tZ2l0IGEvYXJjaC94ODYva3ZtL3g4Ni5jIGIvYXJjaC94ODYva3ZtL3g4Ni5jXG5pbmRleCBkOTRiNTkxNDBjNDUyLi44YjIzZjM0MmExZmE1IDEwMDY0NFxuLS0tIGEvYXJjaC94ODYva3ZtL3g4Ni5jXG4mIzQzOyYjNDM7JiM0MzsgYi9hcmNoL3g4Ni9rdm0veDg2LmNcbkBAIC04MTUxLDcgJiM0Mzs4MTUxLDYgQEAgc3RhdGljIGludCB2Y3B1X2VudGVyX2d1ZXN0KHN0cnVjdCBrdm1fdmNwdSAqdmNwdSlcbiBcdFx0aWYgKGt2bV9jaGVja19yZXF1ZXN0KEtWTV9SRVFfTk1JLCB2Y3B1KSlcbiBcdFx0XHRwcm9jZXNzX25taSh2Y3B1KTtcbiBcdFx0aWYgKGt2bV9jaGVja19yZXF1ZXN0KEtWTV9SRVFfSU9BUElDX0VPSV9FWElULCB2Y3B1KSkge1xuLVx0XHRcdEJVR19PTih2Y3B1LVx1MDAzZWFyY2gucGVuZGluZ19pb2FwaWNfZW9pIFx1MDAzZSAyNTUpO1xuIFx0XHRcdGlmICh0ZXN0X2JpdCh2Y3B1LVx1MDAzZWFyY2gucGVuZGluZ19pb2FwaWNfZW9pLFxuIFx0XHRcdFx0ICAgICB2Y3B1LVx1MDAzZWFyY2guaW9hcGljX2hhbmRsZWRfdmVjdG9ycykpIHtcbiBcdFx0XHRcdHZjcHUtXHUwMDNlcnVuLVx1MDAzZWV4aXRfcmVhc29uID0gS1ZNX0VYSVRfSU9BUElDX0VPSTtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yLzE8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNiAyMDozNDwvdGQ+CgkJCTx0ZD5hZ2VudDwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5iZXN0LWV4cGVuc2l2ZTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7S1ZNJiMzNDssCiAgICAmIzM0O0tWTV9JTlRFTCYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2t2bV9hcGljX3NldF9lb2lfYWNjZWxlcmF0ZWQmIzM0OywKICAgICYjMzQ7aGFuZGxlX2FwaWNfZW9pX2luZHVjZWQmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIHR5cGUgb2YgYHBlbmRpbmdfaW9hcGljX2VvaWAgYW5kIGB2ZWN0b3JgIGFyZ3VtZW50cyBpbiBLVk0mIzM5O3MgQVBJQyBFT0kgaGFuZGxpbmcgY29kZSBmcm9tIGBpbnRgIHRvIGB1OGAuIEl0IGFsc28gcmVtb3ZlcyBhIGBCVUdfT05gIGluIGB2Y3B1X2VudGVyX2d1ZXN0YC4gVGhlc2UgYXJlIGZ1bmN0aW9uYWwgY2hhbmdlcyBpbiByZWFjaGFibGUgY29yZSBLVk0gbG9naWMgdGhhdCBoYW5kbGVzIEFQSUMgaW50ZXJydXB0cywgc28gaXQgc2hvdWxkIGJlIGZ1enplZC4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkluc3RydWN0aW9uOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+WW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuCllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lCmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC4KCklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpbgp5b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHkKdXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy4KClJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6Ci0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy4KLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy4KLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuCi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLAogIGV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS4KLSBDb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCwKICBpb25pYywgYW1kZ3B1KSB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS4KLSBEcml2ZXIgLnJlbW92ZSwgLnNodXRkb3duLCBvciBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzIChlLmcuLCBpZ2JfcmVtb3ZlKQogIHRoYXQgYXJlIGV4ZWN1dGVkIG9ubHkgZHVyaW5nIFBDSSBob3QtdW5wbHVnIG9yIHN5c2ZzIGRyaXZlciB1bmJpbmQgb3BlcmF0aW9ucy4KCklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2gKdG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuCgpXaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzoKMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy4KICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuCiAgIFByZWZlciBub24tc3RhdGljLCBub24taW5saW5lZCBBUEkgZW50cnlwb2ludCBmdW5jdGlvbnMgb3ZlciBpbnRlcm5hbCBzdGF0aWMgaGVscGVyIGZ1bmN0aW9ucwogICAod2hpY2ggYXJlIGlubGluZWQgYnkgdGhlIGNvbXBpbGVyIGFuZCBkbyBub3QgaGF2ZSBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzKS4KMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuCiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy4KICAgQWxzbyBjaGVjayAmIzM0O2RlcGVuZHMgb24mIzM0OyBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3MKICAgbmVlZGVkIGZvciBLYnVpbGQgdG8gY29tcGlsZSB0aGUgY29kZSBzdGF0aWNhbGx5IGludG8gdm1saW51eC4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzCiAgIG91dHB1dCBhcnJheSwgYW5kIERPIE5PVCBhZGQgYSAmIzM5O0NPTkZJR18mIzM5OyBwcmVmaXggKGUuZy4sIHJldHVybiAmIzM0O05FVF9JUFY0JiMzNDsgaW5zdGVhZCBvZiAmIzM0O0NPTkZJR19ORVRfSVBWNCYjMzQ7KS4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IGQ4ZTBhNDdlZGRmNzllZjhjODgyOTU2M2Q2Y2ZiMmFiMzE1YzJhMjgKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgVGh1IEF1ZyA2IDIwOjM0OjA4IDIwMjYgJiM0MzswMDAwCgogICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3CgpkaWZmIC0tZ2l0IGEvYXJjaC94ODYvaW5jbHVkZS9hc20va3ZtX2hvc3QuaCBiL2FyY2gveDg2L2luY2x1ZGUvYXNtL2t2bV9ob3N0LmgKaW5kZXggMjgzODQ3NjE5ZmY4OC4uOTYxNDMxNGZkMjM3NCAxMDA2NDQKLS0tIGEvYXJjaC94ODYvaW5jbHVkZS9hc20va3ZtX2hvc3QuaAomIzQzOyYjNDM7JiM0MzsgYi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9rdm1faG9zdC5oCkBAIC05NzMsNyAmIzQzOzk3Myw3IEBAIHN0cnVjdCBrdm1fdmNwdV9hcmNoIHsKIAkJYm9vbCBwdl91bmhhbHRlZDsKIAl9IHB2OwogCi0JaW50IHBlbmRpbmdfaW9hcGljX2VvaTsKJiM0MzsJdTggcGVuZGluZ19pb2FwaWNfZW9pOwogCWludCBwZW5kaW5nX2V4dGVybmFsX3ZlY3RvcjsKIAlpbnQgaGlnaGVzdF9zdGFsZV9wZW5kaW5nX2lvYXBpY19lb2k7CiAKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2t2bS9sYXBpYy5jIGIvYXJjaC94ODYva3ZtL2xhcGljLmMKaW5kZXggNTg2YTVjZWUyOWUxYS4uODdiYjhlNWY0Y2ExZiAxMDA2NDQKLS0tIGEvYXJjaC94ODYva3ZtL2xhcGljLmMKJiM0MzsmIzQzOyYjNDM7IGIvYXJjaC94ODYva3ZtL2xhcGljLmMKQEAgLTE1NTIsNyAmIzQzOzE1NTIsNyBAQCBzdGF0aWMgYm9vbCBrdm1faW9hcGljX2hhbmRsZXNfdmVjdG9yKHN0cnVjdCBrdm1fbGFwaWMgKmFwaWMsIGludCB2ZWN0b3IpCiAJcmV0dXJuIHRlc3RfYml0KHZlY3RvciwgYXBpYy0mZ3Q7dmNwdS0mZ3Q7YXJjaC5pb2FwaWNfaGFuZGxlZF92ZWN0b3JzKTsKIH0KIAotc3RhdGljIHZvaWQga3ZtX2lvYXBpY19zZW5kX2VvaShzdHJ1Y3Qga3ZtX2xhcGljICphcGljLCBpbnQgdmVjdG9yKQomIzQzO3N0YXRpYyB2b2lkIGt2bV9pb2FwaWNfc2VuZF9lb2koc3RydWN0IGt2bV9sYXBpYyAqYXBpYywgdTggdmVjdG9yKQogewogCWludCBfX21heWJlX3VudXNlZCB0cmlnZ2VyX21vZGU7CiAKQEAgLTE2MjIsNyAmIzQzOzE2MjIsNyBAQCBzdGF0aWMgaW50IGFwaWNfc2V0X2VvaShzdHJ1Y3Qga3ZtX2xhcGljICphcGljKQogICogdGhpcyBpbnRlcmZhY2UgYXNzdW1lcyBhIHRyYXAtbGlrZSBleGl0LCB3aGljaCBoYXMgYWxyZWFkeSBmaW5pc2hlZAogICogZGVzaXJlZCBzaWRlIGVmZmVjdCBpbmNsdWRpbmcgdklTUiBhbmQgdlBQUiB1cGRhdGUuCiAgKi8KLXZvaWQga3ZtX2FwaWNfc2V0X2VvaV9hY2NlbGVyYXRlZChzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIGludCB2ZWN0b3IpCiYjNDM7dm9pZCBrdm1fYXBpY19zZXRfZW9pX2FjY2VsZXJhdGVkKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwgdTggdmVjdG9yKQogewogCXN0cnVjdCBrdm1fbGFwaWMgKmFwaWMgPSB2Y3B1LSZndDthcmNoLmFwaWM7CiAKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2t2bS9sYXBpYy5oIGIvYXJjaC94ODYva3ZtL2xhcGljLmgKaW5kZXggYmQxMDk4Yzg5ZDk5OC4uZGIwNzFkMGIxNzJkMCAxMDA2NDQKLS0tIGEvYXJjaC94ODYva3ZtL2xhcGljLmgKJiM0MzsmIzQzOyYjNDM7IGIvYXJjaC94ODYva3ZtL2xhcGljLmgKQEAgLTE3Nyw3ICYjNDM7MTc3LDcgQEAgdTY0IGt2bV9nZXRfbGFwaWNfdHNjZGVhZGxpbmVfbXNyKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSk7CiB2b2lkIGt2bV9zZXRfbGFwaWNfdHNjZGVhZGxpbmVfbXNyKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwgdTY0IGRhdGEpOwogCiB2b2lkIGt2bV9hcGljX3dyaXRlX25vZGVjb2RlKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwgdTMyIG9mZnNldCk7Ci12b2lkIGt2bV9hcGljX3NldF9lb2lfYWNjZWxlcmF0ZWQoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCBpbnQgdmVjdG9yKTsKJiM0Mzt2b2lkIGt2bV9hcGljX3NldF9lb2lfYWNjZWxlcmF0ZWQoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCB1OCB2ZWN0b3IpOwogCiBpbnQga3ZtX2xhcGljX3NldF92YXBpY19hZGRyKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwgZ3BhX3QgdmFwaWNfYWRkcik7CiB2b2lkIGt2bV9sYXBpY19zeW5jX2Zyb21fdmFwaWMoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KTsKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2t2bS92bXgvdm14LmMgYi9hcmNoL3g4Ni9rdm0vdm14L3ZteC5jCmluZGV4IGUzYmZlNmFjYTFhMGUuLmMxZmRmY2NkMjBmYWEgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2t2bS92bXgvdm14LmMKJiM0MzsmIzQzOyYjNDM7IGIvYXJjaC94ODYva3ZtL3ZteC92bXguYwpAQCAtNTg4NiwxMCAmIzQzOzU4ODYsOSBAQCBzdGF0aWMgaW50IGhhbmRsZV9hcGljX2FjY2VzcyhzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpCiBzdGF0aWMgaW50IGhhbmRsZV9hcGljX2VvaV9pbmR1Y2VkKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSkKIHsKIAl1bnNpZ25lZCBsb25nIGV4aXRfcXVhbGlmaWNhdGlvbiA9IHZteF9nZXRfZXhpdF9xdWFsKHZjcHUpOwotCWludCB2ZWN0b3IgPSBleGl0X3F1YWxpZmljYXRpb24gJmFtcDsgMHhmZjsKIAogCS8qIEVPSS1pbmR1Y2VkIFZNIGV4aXQgaXMgdHJhcC1saWtlIGFuZCB0aHVzIG5vIG5lZWQgdG8gYWRqdXN0IElQICovCi0Ja3ZtX2FwaWNfc2V0X2VvaV9hY2NlbGVyYXRlZCh2Y3B1LCB2ZWN0b3IpOwomIzQzOwlrdm1fYXBpY19zZXRfZW9pX2FjY2VsZXJhdGVkKHZjcHUsIGV4aXRfcXVhbGlmaWNhdGlvbiAmYW1wOyAweGZmKTsKIAlyZXR1cm4gMTsKIH0KIApkaWZmIC0tZ2l0IGEvYXJjaC94ODYva3ZtL3g4Ni5jIGIvYXJjaC94ODYva3ZtL3g4Ni5jCmluZGV4IGQ5NGI1OTE0MGM0NTIuLjhiMjNmMzQyYTFmYTUgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2t2bS94ODYuYwomIzQzOyYjNDM7JiM0MzsgYi9hcmNoL3g4Ni9rdm0veDg2LmMKQEAgLTgxNTEsNyAmIzQzOzgxNTEsNiBAQCBzdGF0aWMgaW50IHZjcHVfZW50ZXJfZ3Vlc3Qoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KQogCQlpZiAoa3ZtX2NoZWNrX3JlcXVlc3QoS1ZNX1JFUV9OTUksIHZjcHUpKQogCQkJcHJvY2Vzc19ubWkodmNwdSk7CiAJCWlmIChrdm1fY2hlY2tfcmVxdWVzdChLVk1fUkVRX0lPQVBJQ19FT0lfRVhJVCwgdmNwdSkpIHsKLQkJCUJVR19PTih2Y3B1LSZndDthcmNoLnBlbmRpbmdfaW9hcGljX2VvaSAmZ3Q7IDI1NSk7CiAJCQlpZiAodGVzdF9iaXQodmNwdS0mZ3Q7YXJjaC5wZW5kaW5nX2lvYXBpY19lb2ksCiAJCQkJICAgICB2Y3B1LSZndDthcmNoLmlvYXBpY19oYW5kbGVkX3ZlY3RvcnMpKSB7CiAJCQkJdmNwdS0mZ3Q7cnVuLSZndDtleGl0X3JlYXNvbiA9IEtWTV9FWElUX0lPQVBJQ19FT0k7CjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA2IDIwOjM0PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDMzNzgKCQkJCQkJCW91dHB1dDogMjcKCQkJCQkJCXRob3VnaHRzOiAzMDYKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqS1ZNIEVPSSBUeXBlIGFuZCBWYWx1ZSBCb3VuZGluZyBBbmFseXNpcyoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCBmb3IgS1ZNIG9uIHg4NiwgYW5kIGl0JiMzOTtzIGVzc2VudGlhbGx5IGEgdHlwZSByZWZpbmVtZW50IGZvciBFT0kgKEVuZCBvZiBJbnRlcnJ1cHQpIGhhbmRsaW5nLiBTcGVjaWZpY2FsbHksIHdlJiMzOTtyZSBjaGFuZ2luZyB0aGUgZGF0YSB0eXBlIG9mIGBwZW5kaW5nX2lvYXBpY19lb2lgIHdpdGhpbiB0aGUgYGt2bV92Y3B1X2FyY2hgIHN0cnVjdCwgYW5kIHRoZSBgdmVjdG9yYCBhcmd1bWVudCB1c2VkIGluIGBrdm1faW9hcGljX3NlbmRfZW9pYCBhbmQgYGt2bV9hcGljX3NldF9lb2lfYWNjZWxlcmF0ZWRgIGZyb20gYGludGAgdG8gYHU4YC4gCgpUaGlzIGlzIGltcG9ydGFudCBiZWNhdXNlIGl0IGluaGVyZW50bHkgYm91bmRzIHRoZSBFT0kgdmFsdWUgdG8gYSByYW5nZSBvZiAwLTI1NS4gVGhhdCBhbHNvIG1ha2VzIHRoZSBgQlVHX09OKHZjcHUtJmd0O2FyY2gucGVuZGluZ19pb2FwaWNfZW9pICZndDsgMjU1KWAgaW4gYHZjcHVfZW50ZXJfZ3Vlc3RgIHJlZHVuZGFudCwgc28gdGhhdCYjMzk7cyBiZWVuIHJlbW92ZWQuIEZ1bmN0aW9uYWxseSwgdGhpcyBpcyB0aGUgY29yZSBvZiBpdCwgdGhlIG1haW4gY2hhbmdlIGlzIHRoYXQgdGhlIHZhbHVlIGlzIG5vdyBleHBsaWNpdGx5IGJvdW5kZWQsIGFuZCBhIHNhZmVndWFyZCBpcyByZW1vdmVkIGJlY2F1c2UgaXQgaXMgbm93IHJlZHVuZGFudC4KClRoZSBgaGFuZGxlX2FwaWNfZW9pX2luZHVjZWRgIGZ1bmN0aW9uIG5vdyBwYXNzZXMgdGhlIGxvd2VyIGJ5dGUgb2YgdGhlIGBleGl0X3F1YWxpZmljYXRpb25gIGRpcmVjdGx5IHRvIGBrdm1fYXBpY19zZXRfZW9pX2FjY2VsZXJhdGVkYC4gVGhpcyBjaGFuZ2UgZmVlbHMgdmVyeSBjbGVhbiBhbmQgbWFrZXMgc2Vuc2UgZ2l2ZW4gdGhlIHR5cGUgY2hhbmdlLgoKR2l2ZW4gdGhpcywgSSB3YW50IHRvIGNvbmZpcm0gYSBmZXcgdGhpbmdzLiBGaXJzdCBJIG5lZWQgdG8gY2hlY2sgdGhlIEtjb25maWcgc2V0dGluZ3MuIFRoZSByZWxldmFudCBzeW1ib2wgaXMgYEtWTWAuIE5vdyBJIHdpbGwgemVybyBpbiBvbiB0aGUga2V5IHN5bWJvbHMsIHNwZWNpZmljYWxseSBJIHdpbGwgY2hlY2sgYGt2bV9hcGljX3NldF9lb2lfYWNjZWxlcmF0ZWRgIGFuZCBgaGFuZGxlX2FwaWNfZW9pX2luZHVjZWRgIGFnYWluLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA2IDIwOjM0PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2t2bV9hcGljX3NldF9lb2lfYWNjZWxlcmF0ZWQmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7YXJjaC94ODYva3ZtL2xhcGljLmM9MTU5Nz1zdGF0aWMgaW50IGFwaWNfc2V0X2VvaShzdHJ1Y3Qga3ZtX2xhcGljICphcGljKVxuLS1cbmFyY2gveDg2L2t2bS9sYXBpYy5jLTE2MjQtICovXG5hcmNoL3g4Ni9rdm0vbGFwaWMuYzoxNjI1OnZvaWQga3ZtX2FwaWNfc2V0X2VvaV9hY2NlbGVyYXRlZChzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIHU4IHZlY3RvcilcbmFyY2gveDg2L2t2bS9sYXBpYy5jLTE2MjYte1xuLS1cbmFyY2gveDg2L2t2bS9sYXBpYy5jLTE2MzMtfVxuYXJjaC94ODYva3ZtL2xhcGljLmM6MTYzNDpFWFBPUlRfU1lNQk9MX0ZPUl9LVk1fSU5URVJOQUwoa3ZtX2FwaWNfc2V0X2VvaV9hY2NlbGVyYXRlZCk7XG5hcmNoL3g4Ni9rdm0vbGFwaWMuYy0xNjM1LVxuLS1cbmFyY2gveDg2L2t2bS9sYXBpYy5oPTE3OT12b2lkIGt2bV9hcGljX3dyaXRlX25vZGVjb2RlKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwgdTMyIG9mZnNldCk7XG5hcmNoL3g4Ni9rdm0vbGFwaWMuaDoxODA6dm9pZCBrdm1fYXBpY19zZXRfZW9pX2FjY2VsZXJhdGVkKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwgdTggdmVjdG9yKTtcbmFyY2gveDg2L2t2bS9sYXBpYy5oLTE4MS1cbi0tXG5hcmNoL3g4Ni9rdm0vdm14L3ZteC5jPTU4ODY9c3RhdGljIGludCBoYW5kbGVfYXBpY19lb2lfaW5kdWNlZChzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpXG4tLVxuYXJjaC94ODYva3ZtL3ZteC92bXguYy01ODkwLVx0LyogRU9JLWluZHVjZWQgVk0gZXhpdCBpcyB0cmFwLWxpa2UgYW5kIHRodXMgbm8gbmVlZCB0byBhZGp1c3QgSVAgKi9cbmFyY2gveDg2L2t2bS92bXgvdm14LmM6NTg5MTpcdGt2bV9hcGljX3NldF9lb2lfYWNjZWxlcmF0ZWQodmNwdSwgZXhpdF9xdWFsaWZpY2F0aW9uIFx1MDAyNiAweGZmKTtcbmFyY2gveDg2L2t2bS92bXgvdm14LmMtNTg5Mi1cdHJldHVybiAxO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA2IDIwOjM0PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDQ1ODcKCQkJCQkJCW91dHB1dDogMTcKCQkJCQkJCXRob3VnaHRzOiAyNTYKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqRnV6emluZyBUYXJnZXQgSWRlbnRpZmljYXRpb246IEtWTSB4ODYgQVBJQyBFT0kgSGFuZGxpbmcqKgoKT2theSwgc28gdGhpcyBwYXRjaCBpcyBjbGVhcmx5IG1lc3Npbmcgd2l0aCBjb3JlIEtWTSB4ODYgbG9naWMsIHNwZWNpZmljYWxseSBhcm91bmQgaG93IGl0IGhhbmRsZXMgQVBJQyBFT0kgKEVuZCBvZiBJbnRlcnJ1cHQpIHNpZ25hbHMuIFRoYXQgaW1tZWRpYXRlbHkgZmxhZ3MgaXQgYXMgYSBwcmltZSB0YXJnZXQgZm9yIGZ1enppbmcg4oCTIHRoZXJlJiMzOTtzIGxpa2VseSBzb21lIHN1YnRsZSBzdGF0ZSBtYW5hZ2VtZW50IG9yIHJhY2UgY29uZGl0aW9uIGx1cmtpbmcgaW4gdGhlcmUgdGhhdCB3ZSBjYW4gZXhwb3NlLgoKVGhlIGZ1bmN0aW9ucyB0b3VjaGVkIGFyZSBga3ZtX2FwaWNfc2V0X2VvaV9hY2NlbGVyYXRlZGAsIGBoYW5kbGVfYXBpY19lb2lfaW5kdWNlZGAsIGBrdm1faW9hcGljX3NlbmRfZW9pYCwgYW5kIGB2Y3B1X2VudGVyX2d1ZXN0YC4gSW1tZWRpYXRlbHksIGB2Y3B1X2VudGVyX2d1ZXN0YCBpcyBhIHJlZCBmbGFnLCBiZWluZyBhIGhvdCBwYXRoLiBJJiMzOTtkIHJhdGhlciBhdm9pZCB0aGF0IGlmIHBvc3NpYmxlIHRvIG1pbmltaXplIG5vaXNlIGFuZCBmb2N1cyBvdXIgZWZmb3J0cy4KClRoYXQgbGVhdmVzIHVzIHdpdGggYGhhbmRsZV9hcGljX2VvaV9pbmR1Y2VkYCBhbmQgYGt2bV9hcGljX3NldF9lb2lfYWNjZWxlcmF0ZWRgIGFzIHRoZSBwcmltYXJ5IGZvY3VzIHBvaW50cy4gU291bmRzIGdvb2QhIE5vdywgd2hhdCBhYm91dCBga3ZtX2lvYXBpY19zZW5kX2VvaWA/IEl0JiMzOTtzIGEgYml0IG9mIGEgcXVlc3Rpb24gbWFyayBzaW5jZSBpdCYjMzk7cyBzdGF0aWMuIExldCYjMzk7cyBjb25maXJtIHRoYXQgcXVpY2tseS4uLiAqY2hlY2tzIGNvZGUqLi4uIHllcCwgaXQmIzM5O3MgYHN0YXRpYyB2b2lkIGt2bV9pb2FwaWNfc2VuZF9lb2lgLiBTaW5jZSBpdCYjMzk7cyBzdGF0aWMsIGl0JiMzOTtzIGxpa2VseSBpbmxpbmVkLCBzbyBsZXQmIzM5O3Mgc2tpcCB0aGF0IGZ1bmN0aW9uLgoKVGhlIHJlbGV2YW50IGNvbmZpZyBpcyBgS1ZNYC4gR290IGl0LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA2IDIwOjM0PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2NvbmZpZyBLVk0mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7YXJjaC9hcm02NC9rdm0vS2NvbmZpZz0xOD1pZiBWSVJUVUFMSVpBVElPTlxuYXJjaC9hcm02NC9rdm0vS2NvbmZpZy0xOS1cbmFyY2gvYXJtNjQva3ZtL0tjb25maWc6MjA6bWVudWNvbmZpZyBLVk1cbmFyY2gvYXJtNjQva3ZtL0tjb25maWctMjEtXHRib29sIFwmIzM0O0tlcm5lbC1iYXNlZCBWaXJ0dWFsIE1hY2hpbmUgKEtWTSkgc3VwcG9ydFwmIzM0O1xuLS1cbmFyY2gvbG9vbmdhcmNoL2t2bS9LY29uZmlnPTE4PWlmIFZJUlRVQUxJWkFUSU9OXG5hcmNoL2xvb25nYXJjaC9rdm0vS2NvbmZpZy0xOS1cbmFyY2gvbG9vbmdhcmNoL2t2bS9LY29uZmlnOjIwOmNvbmZpZyBLVk1cbmFyY2gvbG9vbmdhcmNoL2t2bS9LY29uZmlnLTIxLVx0dHJpc3RhdGUgXCYjMzQ7S2VybmVsLWJhc2VkIFZpcnR1YWwgTWFjaGluZSAoS1ZNKSBzdXBwb3J0XCYjMzQ7XG4tLVxuYXJjaC9taXBzL2t2bS9LY29uZmlnPTE2PWlmIFZJUlRVQUxJWkFUSU9OXG5hcmNoL21pcHMva3ZtL0tjb25maWctMTctXG5hcmNoL21pcHMva3ZtL0tjb25maWc6MTg6Y29uZmlnIEtWTVxuYXJjaC9taXBzL2t2bS9LY29uZmlnLTE5LVx0dHJpc3RhdGUgXCYjMzQ7S2VybmVsLWJhc2VkIFZpcnR1YWwgTWFjaGluZSAoS1ZNKSBzdXBwb3J0XCYjMzQ7XG4tLVxuYXJjaC9taXBzL2t2bS9LY29uZmlnLTMwLVxuYXJjaC9taXBzL2t2bS9LY29uZmlnOjMxOmNvbmZpZyBLVk1fTUlQU19ERUJVR19DT1AwX0NPVU5URVJTXG5hcmNoL21pcHMva3ZtL0tjb25maWctMzItXHRib29sIFwmIzM0O01haW50YWluIGNvdW50ZXJzIGZvciBDT1AwIGFjY2Vzc2VzXCYjMzQ7XG4tLVxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnPTE4PWlmIFZJUlRVQUxJWkFUSU9OXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMTktXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWc6MjA6Y29uZmlnIEtWTVxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTIxLVx0Ym9vbFxuLS1cbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0yNS1cbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZzoyNjpjb25maWcgS1ZNX0JPT0szU19IQU5ETEVSXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMjctXHRib29sXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMjgtXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWc6Mjk6Y29uZmlnIEtWTV9CT09LM1NfMzJfSEFORExFUlxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTMwLVx0Ym9vbFxuLS1cbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0zMy1cbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZzozNDpjb25maWcgS1ZNX0JPT0szU182NF9IQU5ETEVSXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMzUtXHRib29sXG4tLVxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTM3LVxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnOjM4OmNvbmZpZyBLVk1fQk9PSzNTX1BSX1BPU1NJQkxFXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMzktXHRib29sXG4tLVxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTQxLVxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnOjQyOmNvbmZpZyBLVk1fQk9PSzNTX0hWX1BPU1NJQkxFXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctNDMtXHRib29sXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctNDQtXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWc6NDU6Y29uZmlnIEtWTV9CT09LM1NfMzJcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy00Ni1cdHRyaXN0YXRlIFwmIzM0O0tWTSBzdXBwb3J0IGZvciBQb3dlclBDIGJvb2szc18zMiBwcm9jZXNzb3JzXCYjMzQ7XG4tLVxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTYxLVxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnOjYyOmNvbmZpZyBLVk1fQk9PSzNTXzY0XG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctNjMtXHR0cmlzdGF0ZSBcJiMzNDtLVk0gc3VwcG9ydCBmb3IgUG93ZXJQQyBib29rM3NfNjQgcHJvY2Vzc29yc1wmIzM0O1xuLS1cbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy03OC1cbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZzo3OTpjb25maWcgS1ZNX0JPT0szU182NF9IVlxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTgwLVx0dHJpc3RhdGUgXCYjMzQ7S1ZNIGZvciBQT1dFUjcgYW5kIGxhdGVyIHVzaW5nIGh5cGVydmlzb3IgbW9kZSBpbiBob3N0XCYjMzQ7XG4tLVxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTk5LVxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnOjEwMDpjb25maWcgS1ZNX0JPT0szU182NF9QUlxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTEwMS1cdHRyaXN0YXRlIFwmIzM0O0tWTSBzdXBwb3J0IHdpdGhvdXQgdXNpbmcgaHlwZXJ2aXNvciBtb2RlIGluIGhvc3RcJiMzNDtcbi0tXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMTI1LVxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnOjEyNjpjb25maWcgS1ZNX0JPT0szU19IVl9FWElUX1RJTUlOR1xuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTEyNy1cdGJvb2xcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0xMjgtXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWc6MTI5OmNvbmZpZyBLVk1fQk9PSzNTX0hWX1A5X1RJTUlOR1xuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTEzMC1cdGJvb2wgXCYjMzQ7RGV0YWlsZWQgdGltaW5nIGZvciB0aGUgUDkgZW50cnkgcG9pbnRcJiMzNDtcbi0tXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMTQxLVxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnOjE0Mjpjb25maWcgS1ZNX0JPT0szU19IVl9QOF9USU1JTkdcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0xNDMtXHRib29sIFwmIzM0O0RldGFpbGVkIHRpbWluZyBmb3IgaHlwZXJ2aXNvciByZWFsLW1vZGUgY29kZSAoZm9yIFBPV0VSOClcJiMzNDtcbi0tXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMTU2LVxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnOjE1Nzpjb25maWcgS1ZNX0JPT0szU19IVl9ORVNURURfUE1VX1dPUktBUk9VTkRcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0xNTgtXHRib29sIFwmIzM0O05lc3RlZCBMMCBob3N0IHdvcmthcm91bmQgZm9yIEwxIEtWTSBob3N0IFBNVSBoYW5kbGluZyBidWdcJiMzNDsgaWYgRVhQRVJUXG4tLVxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTE3MS1cbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZzoxNzI6Y29uZmlnIEtWTV9CT09LM1NfSFZfUE1VXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMTczLVx0dHJpc3RhdGUgXCYjMzQ7SHlwZXJ2aXNvciBQZXJmIGV2ZW50cyBmb3IgS1ZNIEJvb2szcy1IVlwmIzM0O1xuLS1cbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0xODMtXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWc6MTg0OmNvbmZpZyBLVk1fQk9PS0VfSFZcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0xODUtXHRib29sXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMTg2LVxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnOjE4Nzpjb25maWcgS1ZNX0VYSVRfVElNSU5HXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMTg4LVx0Ym9vbCBcJiMzNDtEZXRhaWxlZCBleGl0IHRpbWluZ1wmIzM0O1xuLS1cbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0xOTctXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWc6MTk4OmNvbmZpZyBLVk1fRTUwMFYyXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMTk5LVx0Ym9vbCBcJiMzNDtLVk0gc3VwcG9ydCBmb3IgUG93ZXJQQyBFNTAwdjIgcHJvY2Vzc29yc1wmIzM0O1xuLS1cbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0yMTItXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWc6MjEzOmNvbmZpZyBLVk1fRTUwME1DXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMjE0LVx0Ym9vbCBcJiMzNDtLVk0gc3VwcG9ydCBmb3IgUG93ZXJQQyBFNTAwTUMvRTU1MDAvRTY1MDAgcHJvY2Vzc29yc1wmIzM0O1xuLS1cbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0yMjgtXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWc6MjI5OmNvbmZpZyBLVk1fTVBJQ1xuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTIzMC1cdGJvb2wgXCYjMzQ7S1ZNIGluLWtlcm5lbCBNUElDIGVtdWxhdGlvblwmIzM0O1xuLS1cbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0yNDAtXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWc6MjQxOmNvbmZpZyBLVk1fWElDU1xuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTI0Mi1cdGJvb2wgXCYjMzQ7S1ZNIGluLWtlcm5lbCBYSUNTIGVtdWxhdGlvblwmIzM0O1xuLS1cbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0yNTAtXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWc6MjUxOmNvbmZpZyBLVk1fWElWRVxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTI1Mi1cdGJvb2xcbi0tXG5hcmNoL3Bvd2VycGMvcGxhdGZvcm1zL0tjb25maWc9MjI9c291cmNlIFwmIzM0O2FyY2gvcG93ZXJwYy9wbGF0Zm9ybXMvbWljcm93YXR0L0tjb25maWdcJiMzNDtcbmFyY2gvcG93ZXJwYy9wbGF0Zm9ybXMvS2NvbmZpZy0yMy1cbmFyY2gvcG93ZXJwYy9wbGF0Zm9ybXMvS2NvbmZpZzoyNDpjb25maWcgS1ZNX0dVRVNUXG5hcmNoL3Bvd2VycGMvcGxhdGZvcm1zL0tjb25maWctMjUtXHRib29sIFwmIzM0O0tWTSBHdWVzdCBzdXBwb3J0XCYjMzQ7XG4tLVxuYXJjaC9yaXNjdi9rdm0vS2NvbmZpZz0xOD1pZiBWSVJUVUFMSVpBVElPTlxuYXJjaC9yaXNjdi9rdm0vS2NvbmZpZy0xOS1cbmFyY2gvcmlzY3Yva3ZtL0tjb25maWc6MjA6Y29uZmlnIEtWTVxuYXJjaC9yaXNjdi9rdm0vS2NvbmZpZy0yMS1cdHRyaXN0YXRlIFwmIzM0O0tlcm5lbC1iYXNlZCBWaXJ0dWFsIE1hY2hpbmUgKEtWTSkgc3VwcG9ydFwmIzM0O1xuLS1cbmFyY2gvczM5MC9rdm0vS2NvbmZpZz0xNz1pZiBWSVJUVUFMSVpBVElPTlxuYXJjaC9zMzkwL2t2bS9LY29uZmlnLTE4LVxuYXJjaC9zMzkwL2t2bS9LY29uZmlnOjE5OmNvbmZpZyBLVk1cbmFyY2gvczM5MC9rdm0vS2NvbmZpZy0yMC1cdGRlZl90cmlzdGF0ZSB5XG4tLVxuYXJjaC9zMzkwL2t2bS9LY29uZmlnLTQ2LVxuYXJjaC9zMzkwL2t2bS9LY29uZmlnOjQ3OmNvbmZpZyBLVk1fUzM5MF9VQ09OVFJPTFxuYXJjaC9zMzkwL2t2bS9LY29uZmlnLTQ4LVx0Ym9vbCBcJiMzNDtVc2Vyc3BhY2UgY29udHJvbGxlZCB2aXJ0dWFsIG1hY2hpbmVzXCYjMzQ7XG4tLVxuYXJjaC94ODYvS2NvbmZpZz04MjY9c291cmNlIFwmIzM0O2FyY2gveDg2L3hlbi9LY29uZmlnXCYjMzQ7XG5hcmNoL3g4Ni9LY29uZmlnLTgyNy1cbmFyY2gveDg2L0tjb25maWc6ODI4OmNvbmZpZyBLVk1fR1VFU1RcbmFyY2gveDg2L0tjb25maWctODI5LVx0Ym9vbCBcJiMzNDtLVk0gR3Vlc3Qgc3VwcG9ydCAoaW5jbHVkaW5nIGt2bWNsb2NrKVwmIzM0O1xuLS1cbmFyY2gveDg2L2t2bS9LY29uZmlnPTE4PWlmIFZJUlRVQUxJWkFUSU9OXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0xOS1cbmFyY2gveDg2L2t2bS9LY29uZmlnOjIwOmNvbmZpZyBLVk1fWDg2XG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0yMS1cdGRlZl90cmlzdGF0ZSBLVk0gaWYgKEtWTV9JTlRFTCAhPSBuIHx8IEtWTV9BTUQgIT0gbilcbi0tXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy01MS1cbmFyY2gveDg2L2t2bS9LY29uZmlnOjUyOmNvbmZpZyBLVk1cbmFyY2gveDg2L2t2bS9LY29uZmlnLTUzLVx0dHJpc3RhdGUgXCYjMzQ7S2VybmVsLWJhc2VkIFZpcnR1YWwgTWFjaGluZSAoS1ZNKSBzdXBwb3J0XCYjMzQ7XG4tLVxuYXJjaC94ODYva3ZtL0tjb25maWctNjgtXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZzo2OTpjb25maWcgS1ZNX1dFUlJPUlxuYXJjaC94ODYva3ZtL0tjb25maWctNzAtXHRib29sIFwmIzM0O0NvbXBpbGUgS1ZNIHdpdGggLVdlcnJvclwmIzM0O1xuLS1cbmFyY2gveDg2L2t2bS9LY29uZmlnLTgyLVxuYXJjaC94ODYva3ZtL0tjb25maWc6ODM6Y29uZmlnIEtWTV9TV19QUk9URUNURURfVk1cbmFyY2gveDg2L2t2bS9LY29uZmlnLTg0LVx0Ym9vbCBcJiMzNDtFbmFibGUgc3VwcG9ydCBmb3IgS1ZNIHNvZnR3YXJlLXByb3RlY3RlZCBWTXNcJiMzNDtcbi0tXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy05NS1cbmFyY2gveDg2L2t2bS9LY29uZmlnOjk2OmNvbmZpZyBLVk1fSU5URUxcbmFyY2gveDg2L2t2bS9LY29uZmlnLTk3LVx0dHJpc3RhdGUgXCYjMzQ7S1ZNIGZvciBJbnRlbCAoYW5kIGNvbXBhdGlibGUpIHByb2Nlc3NvcnMgc3VwcG9ydFwmIzM0O1xuLS1cbmFyY2gveDg2L2t2bS9LY29uZmlnLTEwNi1cbmFyY2gveDg2L2t2bS9LY29uZmlnOjEwNzpjb25maWcgS1ZNX0lOVEVMX1BST1ZFX1ZFXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0xMDgtICAgICAgICBib29sIFwmIzM0O0NoZWNrIHRoYXQgZ3Vlc3RzIGRvIG5vdCByZWNlaXZlICNWRSBleGNlcHRpb25zXCYjMzQ7XG4tLVxuYXJjaC94ODYva3ZtL0tjb25maWc9MTIyPWNvbmZpZyBYODZfU0dYX0tWTVxuLS1cbmFyY2gveDg2L2t2bS9LY29uZmlnLTEzMy1cbmFyY2gveDg2L2t2bS9LY29uZmlnOjEzNDpjb25maWcgS1ZNX0lOVEVMX1REWFxuYXJjaC94ODYva3ZtL0tjb25maWctMTM1LVx0Ym9vbCBcJiMzNDtJbnRlbCBUcnVzdCBEb21haW4gRXh0ZW5zaW9ucyAoVERYKSBzdXBwb3J0XCYjMzQ7XG4tLVxuYXJjaC94ODYva3ZtL0tjb25maWctMTQ1LVxuYXJjaC94ODYva3ZtL0tjb25maWc6MTQ2OmNvbmZpZyBLVk1fQU1EXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0xNDctXHR0cmlzdGF0ZSBcJiMzNDtLVk0gZm9yIEFNRCBwcm9jZXNzb3JzIHN1cHBvcnRcJiMzNDtcbi0tXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0xNTUtXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZzoxNTY6Y29uZmlnIEtWTV9BTURfU0VWXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0xNTctXHRib29sIFwmIzM0O0FNRCBTZWN1cmUgRW5jcnlwdGVkIFZpcnR1YWxpemF0aW9uIChTRVYpIHN1cHBvcnRcJiMzNDtcbi0tXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0xNzItXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZzoxNzM6Y29uZmlnIEtWTV9JT0FQSUNcbmFyY2gveDg2L2t2bS9LY29uZmlnLTE3NC1cdGJvb2wgXCYjMzQ7SS9PIEFQSUMsIFBJQywgYW5kIFBJVCBlbXVsYXRpb25cJiMzNDtcbi0tXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0xODItXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZzoxODM6Y29uZmlnIEtWTV9TTU1cbmFyY2gveDg2L2t2bS9LY29uZmlnLTE4NC1cdGJvb2wgXCYjMzQ7U3lzdGVtIE1hbmFnZW1lbnQgTW9kZSBlbXVsYXRpb25cJiMzNDtcbi0tXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0xOTMtXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZzoxOTQ6Y29uZmlnIEtWTV9IWVBFUlZcbmFyY2gveDg2L2t2bS9LY29uZmlnLTE5NS1cdGJvb2wgXCYjMzQ7U3VwcG9ydCBmb3IgTWljcm9zb2Z0IEh5cGVyLVYgZW11bGF0aW9uXCYjMzQ7XG4tLVxuYXJjaC94ODYva3ZtL0tjb25maWctMjA3LVxuYXJjaC94ODYva3ZtL0tjb25maWc6MjA4OmNvbmZpZyBLVk1fWEVOXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0yMDktXHRib29sIFwmIzM0O1N1cHBvcnQgZm9yIFhlbiBoeXBlcmNhbGwgaW50ZXJmYWNlXCYjMzQ7XG4tLVxuYXJjaC94ODYva3ZtL0tjb25maWctMjE2LVxuYXJjaC94ODYva3ZtL0tjb25maWc6MjE3OmNvbmZpZyBLVk1fUFJPVkVfTU1VXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0yMTgtXHRib29sIFwmIzM0O1Byb3ZlIEtWTSBNTVUgY29ycmVjdG5lc3NcJiMzNDtcbi0tXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0yMjktXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZzoyMzA6Y29uZmlnIEtWTV9FWFRFUk5BTF9XUklURV9UUkFDS0lOR1xuYXJjaC94ODYva3ZtL0tjb25maWctMjMxLVx0Ym9vbFxuYXJjaC94ODYva3ZtL0tjb25maWctMjMyLVxuYXJjaC94ODYva3ZtL0tjb25maWc6MjMzOmNvbmZpZyBLVk1fTUFYX05SX1ZDUFVTXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0yMzQtXHRpbnQgXCYjMzQ7TWF4aW11bSBudW1iZXIgb2YgdkNQVXMgcGVyIEtWTSBndWVzdFwmIzM0O1xuLS1cbnZpcnQva3ZtL0tjb25maWctMy1cbnZpcnQva3ZtL0tjb25maWc6NDpjb25maWcgS1ZNX0NPTU1PTlxudmlydC9rdm0vS2NvbmZpZy01LSAgICAgICBib29sXG4tLVxudmlydC9rdm0vS2NvbmZpZz0zOT1jb25maWcgTkVFRF9LVk1fRElSVFlfUklOR19XSVRIX0JJVE1BUFxuLS1cbnZpcnQva3ZtL0tjb25maWctNDItXG52aXJ0L2t2bS9LY29uZmlnOjQzOmNvbmZpZyBLVk1fTU1JT1xudmlydC9rdm0vS2NvbmZpZy00NC0gICAgICAgYm9vbFxudmlydC9rdm0vS2NvbmZpZy00NS1cbnZpcnQva3ZtL0tjb25maWc6NDY6Y29uZmlnIEtWTV9BU1lOQ19QRlxudmlydC9rdm0vS2NvbmZpZy00Ny0gICAgICAgYm9vbFxuLS1cbnZpcnQva3ZtL0tjb25maWctNDktIyBUb2dnbGUgdG8gc3dpdGNoIGJldHdlZW4gZGlyZWN0IG5vdGlmaWNhdGlvbiBhbmQgYmF0Y2ggam9iXG52aXJ0L2t2bS9LY29uZmlnOjUwOmNvbmZpZyBLVk1fQVNZTkNfUEZfU1lOQ1xudmlydC9rdm0vS2NvbmZpZy01MS0gICAgICAgYm9vbFxuLS1cbnZpcnQva3ZtL0tjb25maWc9NTk9Y29uZmlnIEhBVkVfS1ZNX0NQVV9SRUxBWF9JTlRFUkNFUFRcbi0tXG52aXJ0L2t2bS9LY29uZmlnLTYxLVxudmlydC9rdm0vS2NvbmZpZzo2Mjpjb25maWcgS1ZNX1ZGSU9cbnZpcnQva3ZtL0tjb25maWctNjMtICAgICAgIGJvb2xcbi0tXG52aXJ0L2t2bS9LY29uZmlnPTY1PWNvbmZpZyBIQVZFX0tWTV9JTlZBTElEX1dBS0VVUFNcbi0tXG52aXJ0L2t2bS9LY29uZmlnLTY3LVxudmlydC9rdm0vS2NvbmZpZzo2ODpjb25maWcgS1ZNX0dFTkVSSUNfRElSVFlMT0dfUkVBRF9QUk9URUNUXG52aXJ0L2t2bS9LY29uZmlnLTY5LSAgICAgICBib29sXG52aXJ0L2t2bS9LY29uZmlnLTcwLVxudmlydC9rdm0vS2NvbmZpZzo3MTpjb25maWcgS1ZNX0dFTkVSSUNfUFJFX0ZBVUxUX01FTU9SWVxudmlydC9rdm0vS2NvbmZpZy03Mi0gICAgICAgYm9vbFxudmlydC9rdm0vS2NvbmZpZy03My1cbnZpcnQva3ZtL0tjb25maWc6NzQ6Y29uZmlnIEtWTV9DT01QQVRcbnZpcnQva3ZtL0tjb25maWctNzUtICAgICAgIGRlZl9ib29sIHlcbi0tXG52aXJ0L2t2bS9LY29uZmlnPTkxPWNvbmZpZyBIQVZFX0tWTV9QTV9OT1RJRklFUlxuLS1cbnZpcnQva3ZtL0tjb25maWctOTMtXG52aXJ0L2t2bS9LY29uZmlnOjk0OmNvbmZpZyBLVk1fR0VORVJJQ19IQVJEV0FSRV9FTkFCTElOR1xudmlydC9rdm0vS2NvbmZpZy05NS0gICAgICAgYm9vbFxudmlydC9rdm0vS2NvbmZpZy05Ni1cbnZpcnQva3ZtL0tjb25maWc6OTc6Y29uZmlnIEtWTV9FTElERV9UTEJfRkxVU0hfSUZfWU9VTkdcbnZpcnQva3ZtL0tjb25maWctOTgtICAgICAgIGJvb2xcbnZpcnQva3ZtL0tjb25maWctOTktXG52aXJ0L2t2bS9LY29uZmlnOjEwMDpjb25maWcgS1ZNX01NVV9MT0NLTEVTU19BR0lOR1xudmlydC9rdm0vS2NvbmZpZy0xMDEtICAgICAgIGJvb2xcbnZpcnQva3ZtL0tjb25maWctMTAyLVxudmlydC9rdm0vS2NvbmZpZzoxMDM6Y29uZmlnIEtWTV9HRU5FUklDX01FTU9SWV9BVFRSSUJVVEVTXG52aXJ0L2t2bS9LY29uZmlnLTEwNC0gICAgICAgYm9vbFxudmlydC9rdm0vS2NvbmZpZy0xMDUtXG52aXJ0L2t2bS9LY29uZmlnOjEwNjpjb25maWcgS1ZNX0dVRVNUX01FTUZEXG52aXJ0L2t2bS9LY29uZmlnLTEwNy0gICAgICAgc2VsZWN0IFhBUlJBWV9NVUxUSVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA2IDIwOjM0PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDk0NjAKCQkJCQkJCW91dHB1dDogMzQKCQkJCQkJCXRob3VnaHRzOiA0NwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipLVk0gQ29uZmlndXJhdGlvbjogQSBEZWVwIERpdmUqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgY29uZmlndXJhdGlvbiBhbmQgaXQmIzM5O3Mgc2V0IHRvIGBLVk1gLiBSaWdodCwgcmlnaHQuLi4gYnV0IGBLVk1gIGlzIGEgdHJpc3RhdGUsIGFuZCB0aGF0IG1lYW5zIGl0IGhhcyBkZXBlbmRlbmNpZXMuIE15IG1pbmQgaW1tZWRpYXRlbHkganVtcHMgdG8gdmVyaWZ5aW5nIHRoZSBkZXBlbmRlbmNpZXMuIFNwZWNpZmljYWxseSwgYEtWTWAgcmVsaWVzIG9uIGBWSVJUVUFMSVpBVElPTmAuIFRpbWUgdG8gZGlnIGRlZXBlciBpbnRvIHRoZSBzb3VyY2UsIGxldCYjMzk7cyBnbyB0byBgYXJjaC94ODYva3ZtL0tjb25maWdgIHRvIGNvbmZpcm0gdGhlc2UgZGVwZW5kZW5jaWVzIGFuZCByZWZyZXNoIG15IG1lbW9yeSBvbiB0aGUgc3BlY2lmaWNzIG9mIGhvdyB0aGlzIGZlYXR1cmUgaXMgY29udHJvbGxlZCBhdCB0aGUgYXJjaGl0ZWN0dXJhbCBsZXZlbC4gSSBuZWVkIHRvIGJlIHN1cmUgdGhpcyBpcyBzZXR1cCBhcyBJIGV4cGVjdC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD44LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNiAyMDozNDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtjb25maWcgS1ZNJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7YXJjaC94ODYva3ZtL0tjb25maWcmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7YXJjaC94ODYva3ZtL0tjb25maWc9MTg9aWYgVklSVFVBTElaQVRJT05cbmFyY2gveDg2L2t2bS9LY29uZmlnLTE5LVxuYXJjaC94ODYva3ZtL0tjb25maWc6MjA6Y29uZmlnIEtWTV9YODZcbmFyY2gveDg2L2t2bS9LY29uZmlnLTIxLVx0ZGVmX3RyaXN0YXRlIEtWTSBpZiAoS1ZNX0lOVEVMICE9IG4gfHwgS1ZNX0FNRCAhPSBuKVxuLS1cbmFyY2gveDg2L2t2bS9LY29uZmlnLTUxLVxuYXJjaC94ODYva3ZtL0tjb25maWc6NTI6Y29uZmlnIEtWTVxuYXJjaC94ODYva3ZtL0tjb25maWctNTMtXHR0cmlzdGF0ZSBcJiMzNDtLZXJuZWwtYmFzZWQgVmlydHVhbCBNYWNoaW5lIChLVk0pIHN1cHBvcnRcJiMzNDtcbi0tXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy02OC1cbmFyY2gveDg2L2t2bS9LY29uZmlnOjY5OmNvbmZpZyBLVk1fV0VSUk9SXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy03MC1cdGJvb2wgXCYjMzQ7Q29tcGlsZSBLVk0gd2l0aCAtV2Vycm9yXCYjMzQ7XG4tLVxuYXJjaC94ODYva3ZtL0tjb25maWctODItXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZzo4Mzpjb25maWcgS1ZNX1NXX1BST1RFQ1RFRF9WTVxuYXJjaC94ODYva3ZtL0tjb25maWctODQtXHRib29sIFwmIzM0O0VuYWJsZSBzdXBwb3J0IGZvciBLVk0gc29mdHdhcmUtcHJvdGVjdGVkIFZNc1wmIzM0O1xuLS1cbmFyY2gveDg2L2t2bS9LY29uZmlnLTk1LVxuYXJjaC94ODYva3ZtL0tjb25maWc6OTY6Y29uZmlnIEtWTV9JTlRFTFxuYXJjaC94ODYva3ZtL0tjb25maWctOTctXHR0cmlzdGF0ZSBcJiMzNDtLVk0gZm9yIEludGVsIChhbmQgY29tcGF0aWJsZSkgcHJvY2Vzc29ycyBzdXBwb3J0XCYjMzQ7XG4tLVxuYXJjaC94ODYva3ZtL0tjb25maWctMTA2LVxuYXJjaC94ODYva3ZtL0tjb25maWc6MTA3OmNvbmZpZyBLVk1fSU5URUxfUFJPVkVfVkVcbmFyY2gveDg2L2t2bS9LY29uZmlnLTEwOC0gICAgICAgIGJvb2wgXCYjMzQ7Q2hlY2sgdGhhdCBndWVzdHMgZG8gbm90IHJlY2VpdmUgI1ZFIGV4Y2VwdGlvbnNcJiMzNDtcbi0tXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZz0xMjI9Y29uZmlnIFg4Nl9TR1hfS1ZNXG4tLVxuYXJjaC94ODYva3ZtL0tjb25maWctMTMzLVxuYXJjaC94ODYva3ZtL0tjb25maWc6MTM0OmNvbmZpZyBLVk1fSU5URUxfVERYXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0xMzUtXHRib29sIFwmIzM0O0ludGVsIFRydXN0IERvbWFpbiBFeHRlbnNpb25zIChURFgpIHN1cHBvcnRcJiMzNDtcbi0tXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0xNDUtXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZzoxNDY6Y29uZmlnIEtWTV9BTURcbmFyY2gveDg2L2t2bS9LY29uZmlnLTE0Ny1cdHRyaXN0YXRlIFwmIzM0O0tWTSBmb3IgQU1EIHByb2Nlc3NvcnMgc3VwcG9ydFwmIzM0O1xuLS1cbmFyY2gveDg2L2t2bS9LY29uZmlnLTE1NS1cbmFyY2gveDg2L2t2bS9LY29uZmlnOjE1Njpjb25maWcgS1ZNX0FNRF9TRVZcbmFyY2gveDg2L2t2bS9LY29uZmlnLTE1Ny1cdGJvb2wgXCYjMzQ7QU1EIFNlY3VyZSBFbmNyeXB0ZWQgVmlydHVhbGl6YXRpb24gKFNFVikgc3VwcG9ydFwmIzM0O1xuLS1cbmFyY2gveDg2L2t2bS9LY29uZmlnLTE3Mi1cbmFyY2gveDg2L2t2bS9LY29uZmlnOjE3Mzpjb25maWcgS1ZNX0lPQVBJQ1xuYXJjaC94ODYva3ZtL0tjb25maWctMTc0LVx0Ym9vbCBcJiMzNDtJL08gQVBJQywgUElDLCBhbmQgUElUIGVtdWxhdGlvblwmIzM0O1xuLS1cbmFyY2gveDg2L2t2bS9LY29uZmlnLTE4Mi1cbmFyY2gveDg2L2t2bS9LY29uZmlnOjE4Mzpjb25maWcgS1ZNX1NNTVxuYXJjaC94ODYva3ZtL0tjb25maWctMTg0LVx0Ym9vbCBcJiMzNDtTeXN0ZW0gTWFuYWdlbWVudCBNb2RlIGVtdWxhdGlvblwmIzM0O1xuLS1cbmFyY2gveDg2L2t2bS9LY29uZmlnLTE5My1cbmFyY2gveDg2L2t2bS9LY29uZmlnOjE5NDpjb25maWcgS1ZNX0hZUEVSVlxuYXJjaC94ODYva3ZtL0tjb25maWctMTk1LVx0Ym9vbCBcJiMzNDtTdXBwb3J0IGZvciBNaWNyb3NvZnQgSHlwZXItViBlbXVsYXRpb25cJiMzNDtcbi0tXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0yMDctXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZzoyMDg6Y29uZmlnIEtWTV9YRU5cbmFyY2gveDg2L2t2bS9LY29uZmlnLTIwOS1cdGJvb2wgXCYjMzQ7U3VwcG9ydCBmb3IgWGVuIGh5cGVyY2FsbCBpbnRlcmZhY2VcJiMzNDtcbi0tXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0yMTYtXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZzoyMTc6Y29uZmlnIEtWTV9QUk9WRV9NTVVcbmFyY2gveDg2L2t2bS9LY29uZmlnLTIxOC1cdGJvb2wgXCYjMzQ7UHJvdmUgS1ZNIE1NVSBjb3JyZWN0bmVzc1wmIzM0O1xuLS1cbmFyY2gveDg2L2t2bS9LY29uZmlnLTIyOS1cbmFyY2gveDg2L2t2bS9LY29uZmlnOjIzMDpjb25maWcgS1ZNX0VYVEVSTkFMX1dSSVRFX1RSQUNLSU5HXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0yMzEtXHRib29sXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0yMzItXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZzoyMzM6Y29uZmlnIEtWTV9NQVhfTlJfVkNQVVNcbmFyY2gveDg2L2t2bS9LY29uZmlnLTIzNC1cdGludCBcJiMzNDtNYXhpbXVtIG51bWJlciBvZiB2Q1BVcyBwZXIgS1ZNIGd1ZXN0XCYjMzQ7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDYgMjA6MzQ8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTA4OTIKCQkJCQkJCW91dHB1dDogNDUKCQkJCQkJCXRob3VnaHRzOiA3MQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIEtWTSBDb25maWd1cmF0aW9uKioKCk9rYXksIHNvIEkmIzM5O20gZGlnZ2luZyBpbnRvIHRoaXMgS1ZNIHN0dWZmLCBzcGVjaWZpY2FsbHkgbG9va2luZyBhdCB3aHkgdGhpcyBgaGFuZGxlX2FwaWNfZW9pX2luZHVjZWRgIGZ1bmN0aW9uIGlzIHByZXNlbnQuIE15IGluaXRpYWwgaW5zdGluY3QsIGdpdmVuIHRoZSBmdW5jdGlvbiYjMzk7cyBsb2NhdGlvbiBpbiBgdm14LmNgLCBwb2ludHMgbWUgZGlyZWN0bHkgdG8gdGhlIGBLVk1gIGFuZCBgS1ZNX0lOVEVMYCBjb25maWd1cmF0aW9ucy4gU2luY2UgdGhhdCYjMzk7cyB0aGUgbGlrZWx5IGNvbmZpZ3VyYXRpb24sIEkmIzM5O2xsIG5lZWQgdG8gY2hlY2sgdGhlIGNvZGUgdGhhdCYjMzk7cyByZWxhdGVkLiBJJiMzOTttIGdvaW5nIHRvIHRha2UgYSBjbG9zZXIgbG9vayBhdCBgYXJjaC94ODYva3ZtL3ZteC92bXguY2AgYW5kIHNwZWNpZmljYWxseSwgdGhhdCBgaGFuZGxlX2FwaWNfZW9pX2luZHVjZWRgIGZ1bmN0aW9uLiBUaW1lIHRvIHNlZSB3aGF0JiMzOTtzIGdvaW5nIG9uIGluIHRoZXJlIGFuZCB1bmRlcnN0YW5kIGl0cyByb2xlIGluIHRoZSB2aXJ0dWFsIG1hY2hpbmUuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA2IDIwOjM0PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2hhbmRsZV9hcGljX2VvaV9pbmR1Y2VkJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7YXJjaC94ODYva3ZtL3ZteC92bXguYyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDthcmNoL3g4Ni9rdm0vdm14L3ZteC5jPTU4NjQ9c3RhdGljIGludCBoYW5kbGVfYXBpY19hY2Nlc3Moc3RydWN0IGt2bV92Y3B1ICp2Y3B1KVxuLS1cbmFyY2gveDg2L2t2bS92bXgvdm14LmMtNTg4NS1cbmFyY2gveDg2L2t2bS92bXgvdm14LmM6NTg4NjpzdGF0aWMgaW50IGhhbmRsZV9hcGljX2VvaV9pbmR1Y2VkKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSlcbmFyY2gveDg2L2t2bS92bXgvdm14LmMtNTg4Ny17XG4tLVxuYXJjaC94ODYva3ZtL3ZteC92bXguYz02MzI2PXN0YXRpYyBpbnQgKCprdm1fdm14X2V4aXRfaGFuZGxlcnNbXSkoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KSA9IHtcbi0tXG5hcmNoL3g4Ni9rdm0vdm14L3ZteC5jLTYzNTQtXHRbRVhJVF9SRUFTT05fQVBJQ19XUklURV0gICAgICAgICAgICAgID0gaGFuZGxlX2FwaWNfd3JpdGUsXG5hcmNoL3g4Ni9rdm0vdm14L3ZteC5jOjYzNTU6XHRbRVhJVF9SRUFTT05fRU9JX0lORFVDRURdICAgICAgICAgICAgID0gaGFuZGxlX2FwaWNfZW9pX2luZHVjZWQsXG5hcmNoL3g4Ni9rdm0vdm14L3ZteC5jLTYzNTYtXHRbRVhJVF9SRUFTT05fV0JJTlZEXSAgICAgICAgICAgICAgICAgID0ga3ZtX2VtdWxhdGVfd2JpbnZkLFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjExLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNiAyMDozNDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxMTUwOQoJCQkJCQkJb3V0cHV0OiAxNTMKCQkJCQkJCXRob3VnaHRzOiAzMjcKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqTXkgQW5hbHlzaXMgb2YgdGhlIEtWTSBQYXRjaCYjMzk7cyBGdXp6aW5nIFNjb3BlKioKCk9rYXksIHNvIHRoZSBjb2RlIGNoYW5nZSB0YXJnZXRzIEFQSUMgRU9JIGhhbmRsaW5nIHdpdGhpbiBLVk0uIEkgbmVlZCB0byBwaW5wb2ludCB0aGUgcmVsZXZhbnQgY29uZmlndXJhdGlvbnMgYW5kIGZvY3VzIHN5bWJvbHMgZm9yIGZ1enppbmcgdGhpcy4gTGV0JiMzOTtzIHNlZS4uLgoKYGhhbmRsZV9hcGljX2VvaV9pbmR1Y2VkYCBpcyBkZWZpbml0ZWx5IGluIGB2bXguY2AsIHdoaWNoIHRlbGxzIG1lIHRoZSBgS1ZNX0lOVEVMYCBjb25maWd1cmF0aW9uIGlzIGtleSBzaW5jZSB0aGF0JiMzOTtzIHdoZXJlIFZNWCBzdXBwb3J0IGxpdmVzLiBHb29kLCBgS1ZNYCBhbmQgYEtWTV9JTlRFTGAgYXJlIGRlZmluaXRlbHkgb24gdGhlIGxpc3QuCgpJIGFsc28gbmVlZCB0byBzZWUgaWYgYEtWTV9BTURgIGlzIHJlbGV2YW50IHNpbmNlIGBrdm1fYXBpY19zZXRfZW9pX2FjY2VsZXJhdGVkYCBpcyBiZWluZyBtb2RpZmllZC4gQWgsIHJpZ2h0LCB0aGF0IGZ1bmN0aW9uIGxpdmVzIGluIGBsYXBpYy5jYCBhbmQgaXMgdXNlZCBieSBib3RoIFZNWCBhbmQgU1ZNLiBCdXQgYGhhbmRsZV9hcGljX2VvaV9pbmR1Y2VkYCBpcyBzcGVjaWZpY2FsbHkgVk1YLCBzbyBJIGNhbiBleGNsdWRlIGBLVk1fQU1EYC4gVGhlIGltcG9ydGFudCBjb25maWdzIGhlcmUgYXJlIGp1c3QgYEtWTWAgYW5kIGBLVk1fSU5URUxgLgoKV2FpdCBhIG1pbnV0ZSwgYGt2bV9hcGljX3NldF9lb2lfYWNjZWxlcmF0ZWRgIGlzIGV4cG9ydGVkIGZvciBpbnRlcm5hbCBLVk0gdXNlLiBQZXJmZWN0ISBUaGF0IG1ha2VzIGl0IGEgc3Ryb25nIGNhbmRpZGF0ZSBhcyBhIGZvY3VzIHN5bWJvbCwgZXZlbiB0aG91Z2ggaXQmIzM5O3MgdXNlZCBieSBib3RoIFZNWCBhbmQgU1ZNLiBUaGF0JiMzOTtzIGEgZ29vZCBwbGFjZSB0byBzdGFydC4KCk5vdywgbGV0JiMzOTtzIHJlY2FwIHRoZSByYXRpb25hbGUgZm9yIGZ1enppbmcgdGhpcy4gVGhlIHBhdGNoIGlzIGNoYW5naW5nIHRoZSBkYXRhIHR5cGVzIG9mIGBwZW5kaW5nX2lvYXBpY19lb2lgIGFuZCBgdmVjdG9yYCBpbiB0aGUgRU9JIGhhbmRsaW5nIGNvZGUgZnJvbSBgaW50YCB0byBgdThgLiBJdCYjMzk7cyBhbHNvIHJlbW92aW5nIGEgYEJVR19PTmAgaW4gYHZjcHVfZW50ZXJfZ3Vlc3RgLiBUaGVzZSBhcmUgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIGNvcmUgS1ZNIGxvZ2ljIHRoYXQgaXMgcmVhY2hlZCBkdXJpbmcgQVBJQyBpbnRlcnJ1cHQgaGFuZGxpbmcsIHRoZXJlZm9yZSB0aGlzIG5lZWRzIHRvIGJlIGZ1enplZC4KClNvLCB0byBzdW1tYXJpemUsIHRoZSBmb2N1cyBzeW1ib2xzIGFyZTogYGt2bV9hcGljX3NldF9lb2lfYWNjZWxlcmF0ZWRgIGFuZCBgaGFuZGxlX2FwaWNfZW9pX2luZHVjZWRgLiBUaGUgcmVsZXZhbnQgY29uZmlndXJhdGlvbnMgYXJlIGBLVk1gIGFuZCBgS1ZNX0lOVEVMYC4KClRpbWUgdG8gY2FsbCB0aGUgc2V0LXJlc3VsdHMgZnVuY3Rpb24gYW5kIG1vdmUgZm9yd2FyZC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMi8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDYgMjA6MzQ8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0tWTSYjMzQ7LAogICAgJiMzNDtLVk1fSU5URUwmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtrdm1fYXBpY19zZXRfZW9pX2FjY2VsZXJhdGVkJiMzNDssCiAgICAmIzM0O2hhbmRsZV9hcGljX2VvaV9pbmR1Y2VkJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSB0eXBlIG9mIGBwZW5kaW5nX2lvYXBpY19lb2lgIGFuZCBgdmVjdG9yYCBhcmd1bWVudHMgaW4gS1ZNJiMzOTtzIEFQSUMgRU9JIGhhbmRsaW5nIGNvZGUgZnJvbSBgaW50YCB0byBgdThgLiBJdCBhbHNvIHJlbW92ZXMgYSBgQlVHX09OYCBpbiBgdmNwdV9lbnRlcl9ndWVzdGAuIFRoZXNlIGFyZSBmdW5jdGlvbmFsIGNoYW5nZXMgaW4gcmVhY2hhYmxlIGNvcmUgS1ZNIGxvZ2ljIHRoYXQgaGFuZGxlcyBBUElDIGludGVycnVwdHMsIHNvIGl0IHNob3VsZCBiZSBmdXp6ZWQuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0tWTSYjMzQ7LAogICAgJiMzNDtLVk1fSU5URUwmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtrdm1fYXBpY19zZXRfZW9pX2FjY2VsZXJhdGVkJiMzNDssCiAgICAmIzM0O2hhbmRsZV9hcGljX2VvaV9pbmR1Y2VkJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSB0eXBlIG9mIGBwZW5kaW5nX2lvYXBpY19lb2lgIGFuZCBgdmVjdG9yYCBhcmd1bWVudHMgaW4gS1ZNJiMzOTtzIEFQSUMgRU9JIGhhbmRsaW5nIGNvZGUgZnJvbSBgaW50YCB0byBgdThgLiBJdCBhbHNvIHJlbW92ZXMgYSBgQlVHX09OYCBpbiBgdmNwdV9lbnRlcl9ndWVzdGAuIFRoZXNlIGFyZSBmdW5jdGlvbmFsIGNoYW5nZXMgaW4gcmVhY2hhYmxlIGNvcmUgS1ZNIGxvZ2ljIHRoYXQgaGFuZGxlcyBBUElDIGludGVycnVwdHMsIHNvIGl0IHNob3VsZCBiZSBmdXp6ZWQuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPC90Ym9keT4KCTwvdGFibGU+CgoJPGRpdiBpZD0ibGxtX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5MTE0gQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBUb2tlbnM8L3RoPgoJCQkJCTx0aD5BdmcgVG9rZW5zPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9ImxsbV9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9InRvb2xfc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPlRvb2wgQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0idG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9ImR1cmF0aW9uX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCTxkaXYgaWQ9InRva2VuX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL2pzYXBpIj48L3NjcmlwdD4KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCQlnb29nbGUubG9hZCgidmlzdWFsaXphdGlvbiIsICIxIiwge3BhY2thZ2VzOlsiY29yZWNoYXJ0Il19KTsKCQlnb29nbGUuc2V0T25Mb2FkQ2FsbGJhY2soZHJhd0NoYXJ0cyk7CgoJCWZ1bmN0aW9uIGRyYXdDaGFydHMoKSB7CgkJCWNvbnN0IHJhd0RhdGEgPSBbeyJTdGFydGVkIjoiMjAyNi0wOC0wNlQyMDozNDoxMC40MTY0NTU2ODFaIiwiU2VxIjowLCJOZXN0aW5nIjowLCJUeXBlIjoiZmxvdyIsIk5hbWUiOiJwYXRjaC10cmlhZ2UiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjozOTcyMDEyMTIwOCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJLVk1cIixcbiAgICBcIktWTV9JTlRFTFwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcImt2bV9hcGljX3NldF9lb2lfYWNjZWxlcmF0ZWRcIixcbiAgICBcImhhbmRsZV9hcGljX2VvaV9pbmR1Y2VkXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIHR5cGUgb2YgYHBlbmRpbmdfaW9hcGljX2VvaWAgYW5kIGB2ZWN0b3JgIGFyZ3VtZW50cyBpbiBLVk0ncyBBUElDIEVPSSBoYW5kbGluZyBjb2RlIGZyb20gYGludGAgdG8gYHU4YC4gSXQgYWxzbyByZW1vdmVzIGEgYEJVR19PTmAgaW4gYHZjcHVfZW50ZXJfZ3Vlc3RgLiBUaGVzZSBhcmUgZnVuY3Rpb25hbCBjaGFuZ2VzIGluIHJlYWNoYWJsZSBjb3JlIEtWTSBsb2dpYyB0aGF0IGhhbmRsZXMgQVBJQyBpbnRlcnJ1cHRzLCBzbyBpdCBzaG91bGQgYmUgZnV6emVkLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wNlQyMDozNDoxMC40MTY0NjQwMDFaIiwiU2VxIjoxLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6InJlYWQtcGF0Y2gtZGlmZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE0NDUwNjc2NTksIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIlBhdGNoRGlmZlwiOiBcImNvbW1pdCBkOGUwYTQ3ZWRkZjc5ZWY4Yzg4Mjk1NjNkNmNmYjJhYjMxNWMyYTI4XFxuQXV0aG9yOiBzeXotY2x1c3RlciBcXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cXHUwMDNlXFxuRGF0ZTogICBUaHUgQXVnIDYgMjA6MzQ6MDggMjAyNiArMDAwMFxcblxcbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcXG5cXG5kaWZmIC0tZ2l0IGEvYXJjaC94ODYvaW5jbHVkZS9hc20va3ZtX2hvc3QuaCBiL2FyY2gveDg2L2luY2x1ZGUvYXNtL2t2bV9ob3N0LmhcXG5pbmRleCAyODM4NDc2MTlmZjg4Li45NjE0MzE0ZmQyMzc0IDEwMDY0NFxcbi0tLSBhL2FyY2gveDg2L2luY2x1ZGUvYXNtL2t2bV9ob3N0LmhcXG4rKysgYi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9rdm1faG9zdC5oXFxuQEAgLTk3Myw3ICs5NzMsNyBAQCBzdHJ1Y3Qga3ZtX3ZjcHVfYXJjaCB7XFxuIFxcdFxcdGJvb2wgcHZfdW5oYWx0ZWQ7XFxuIFxcdH0gcHY7XFxuIFxcbi1cXHRpbnQgcGVuZGluZ19pb2FwaWNfZW9pO1xcbitcXHR1OCBwZW5kaW5nX2lvYXBpY19lb2k7XFxuIFxcdGludCBwZW5kaW5nX2V4dGVybmFsX3ZlY3RvcjtcXG4gXFx0aW50IGhpZ2hlc3Rfc3RhbGVfcGVuZGluZ19pb2FwaWNfZW9pO1xcbiBcXG5kaWZmIC0tZ2l0IGEvYXJjaC94ODYva3ZtL2xhcGljLmMgYi9hcmNoL3g4Ni9rdm0vbGFwaWMuY1xcbmluZGV4IDU4NmE1Y2VlMjllMWEuLjg3YmI4ZTVmNGNhMWYgMTAwNjQ0XFxuLS0tIGEvYXJjaC94ODYva3ZtL2xhcGljLmNcXG4rKysgYi9hcmNoL3g4Ni9rdm0vbGFwaWMuY1xcbkBAIC0xNTUyLDcgKzE1NTIsNyBAQCBzdGF0aWMgYm9vbCBrdm1faW9hcGljX2hhbmRsZXNfdmVjdG9yKHN0cnVjdCBrdm1fbGFwaWMgKmFwaWMsIGludCB2ZWN0b3IpXFxuIFxcdHJldHVybiB0ZXN0X2JpdCh2ZWN0b3IsIGFwaWMtXFx1MDAzZXZjcHUtXFx1MDAzZWFyY2guaW9hcGljX2hhbmRsZWRfdmVjdG9ycyk7XFxuIH1cXG4gXFxuLXN0YXRpYyB2b2lkIGt2bV9pb2FwaWNfc2VuZF9lb2koc3RydWN0IGt2bV9sYXBpYyAqYXBpYywgaW50IHZlY3RvcilcXG4rc3RhdGljIHZvaWQga3ZtX2lvYXBpY19zZW5kX2VvaShzdHJ1Y3Qga3ZtX2xhcGljICphcGljLCB1OCB2ZWN0b3IpXFxuIHtcXG4gXFx0aW50IF9fbWF5YmVfdW51c2VkIHRyaWdnZXJfbW9kZTtcXG4gXFxuQEAgLTE2MjIsNyArMTYyMiw3IEBAIHN0YXRpYyBpbnQgYXBpY19zZXRfZW9pKHN0cnVjdCBrdm1fbGFwaWMgKmFwaWMpXFxuICAqIHRoaXMgaW50ZXJmYWNlIGFzc3VtZXMgYSB0cmFwLWxpa2UgZXhpdCwgd2hpY2ggaGFzIGFscmVhZHkgZmluaXNoZWRcXG4gICogZGVzaXJlZCBzaWRlIGVmZmVjdCBpbmNsdWRpbmcgdklTUiBhbmQgdlBQUiB1cGRhdGUuXFxuICAqL1xcbi12b2lkIGt2bV9hcGljX3NldF9lb2lfYWNjZWxlcmF0ZWQoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCBpbnQgdmVjdG9yKVxcbit2b2lkIGt2bV9hcGljX3NldF9lb2lfYWNjZWxlcmF0ZWQoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCB1OCB2ZWN0b3IpXFxuIHtcXG4gXFx0c3RydWN0IGt2bV9sYXBpYyAqYXBpYyA9IHZjcHUtXFx1MDAzZWFyY2guYXBpYztcXG4gXFxuZGlmZiAtLWdpdCBhL2FyY2gveDg2L2t2bS9sYXBpYy5oIGIvYXJjaC94ODYva3ZtL2xhcGljLmhcXG5pbmRleCBiZDEwOThjODlkOTk4Li5kYjA3MWQwYjE3MmQwIDEwMDY0NFxcbi0tLSBhL2FyY2gveDg2L2t2bS9sYXBpYy5oXFxuKysrIGIvYXJjaC94ODYva3ZtL2xhcGljLmhcXG5AQCAtMTc3LDcgKzE3Nyw3IEBAIHU2NCBrdm1fZ2V0X2xhcGljX3RzY2RlYWRsaW5lX21zcihzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpO1xcbiB2b2lkIGt2bV9zZXRfbGFwaWNfdHNjZGVhZGxpbmVfbXNyKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwgdTY0IGRhdGEpO1xcbiBcXG4gdm9pZCBrdm1fYXBpY193cml0ZV9ub2RlY29kZShzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIHUzMiBvZmZzZXQpO1xcbi12b2lkIGt2bV9hcGljX3NldF9lb2lfYWNjZWxlcmF0ZWQoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCBpbnQgdmVjdG9yKTtcXG4rdm9pZCBrdm1fYXBpY19zZXRfZW9pX2FjY2VsZXJhdGVkKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwgdTggdmVjdG9yKTtcXG4gXFxuIGludCBrdm1fbGFwaWNfc2V0X3ZhcGljX2FkZHIoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCBncGFfdCB2YXBpY19hZGRyKTtcXG4gdm9pZCBrdm1fbGFwaWNfc3luY19mcm9tX3ZhcGljKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSk7XFxuZGlmZiAtLWdpdCBhL2FyY2gveDg2L2t2bS92bXgvdm14LmMgYi9hcmNoL3g4Ni9rdm0vdm14L3ZteC5jXFxuaW5kZXggZTNiZmU2YWNhMWEwZS4uYzFmZGZjY2QyMGZhYSAxMDA2NDRcXG4tLS0gYS9hcmNoL3g4Ni9rdm0vdm14L3ZteC5jXFxuKysrIGIvYXJjaC94ODYva3ZtL3ZteC92bXguY1xcbkBAIC01ODg2LDEwICs1ODg2LDkgQEAgc3RhdGljIGludCBoYW5kbGVfYXBpY19hY2Nlc3Moc3RydWN0IGt2bV92Y3B1ICp2Y3B1KVxcbiBzdGF0aWMgaW50IGhhbmRsZV9hcGljX2VvaV9pbmR1Y2VkKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSlcXG4ge1xcbiBcXHR1bnNpZ25lZCBsb25nIGV4aXRfcXVhbGlmaWNhdGlvbiA9IHZteF9nZXRfZXhpdF9xdWFsKHZjcHUpO1xcbi1cXHRpbnQgdmVjdG9yID0gZXhpdF9xdWFsaWZpY2F0aW9uIFxcdTAwMjYgMHhmZjtcXG4gXFxuIFxcdC8qIEVPSS1pbmR1Y2VkIFZNIGV4aXQgaXMgdHJhcC1saWtlIGFuZCB0aHVzIG5vIG5lZWQgdG8gYWRqdXN0IElQICovXFxuLVxcdGt2bV9hcGljX3NldF9lb2lfYWNjZWxlcmF0ZWQodmNwdSwgdmVjdG9yKTtcXG4rXFx0a3ZtX2FwaWNfc2V0X2VvaV9hY2NlbGVyYXRlZCh2Y3B1LCBleGl0X3F1YWxpZmljYXRpb24gXFx1MDAyNiAweGZmKTtcXG4gXFx0cmV0dXJuIDE7XFxuIH1cXG4gXFxuZGlmZiAtLWdpdCBhL2FyY2gveDg2L2t2bS94ODYuYyBiL2FyY2gveDg2L2t2bS94ODYuY1xcbmluZGV4IGQ5NGI1OTE0MGM0NTIuLjhiMjNmMzQyYTFmYTUgMTAwNjQ0XFxuLS0tIGEvYXJjaC94ODYva3ZtL3g4Ni5jXFxuKysrIGIvYXJjaC94ODYva3ZtL3g4Ni5jXFxuQEAgLTgxNTEsNyArODE1MSw2IEBAIHN0YXRpYyBpbnQgdmNwdV9lbnRlcl9ndWVzdChzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpXFxuIFxcdFxcdGlmIChrdm1fY2hlY2tfcmVxdWVzdChLVk1fUkVRX05NSSwgdmNwdSkpXFxuIFxcdFxcdFxcdHByb2Nlc3Nfbm1pKHZjcHUpO1xcbiBcXHRcXHRpZiAoa3ZtX2NoZWNrX3JlcXVlc3QoS1ZNX1JFUV9JT0FQSUNfRU9JX0VYSVQsIHZjcHUpKSB7XFxuLVxcdFxcdFxcdEJVR19PTih2Y3B1LVxcdTAwM2VhcmNoLnBlbmRpbmdfaW9hcGljX2VvaSBcXHUwMDNlIDI1NSk7XFxuIFxcdFxcdFxcdGlmICh0ZXN0X2JpdCh2Y3B1LVxcdTAwM2VhcmNoLnBlbmRpbmdfaW9hcGljX2VvaSxcXG4gXFx0XFx0XFx0XFx0ICAgICB2Y3B1LVxcdTAwM2VhcmNoLmlvYXBpY19oYW5kbGVkX3ZlY3RvcnMpKSB7XFxuIFxcdFxcdFxcdFxcdHZjcHUtXFx1MDAzZXJ1bi1cXHUwMDNlZXhpdF9yZWFzb24gPSBLVk1fRVhJVF9JT0FQSUNfRU9JO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wNlQyMDozNDoxMS44NjI2Njc3MloiLCJTZXEiOjIsIk5lc3RpbmciOjEsIlR5cGUiOiJhZ2VudCIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImJlc3QtZXhwZW5zaXZlIiwiRHVyYXRpb24iOjM4MjczOTAwMDQ5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIktWTVwiLFxuICAgIFwiS1ZNX0lOVEVMXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwia3ZtX2FwaWNfc2V0X2VvaV9hY2NlbGVyYXRlZFwiLFxuICAgIFwiaGFuZGxlX2FwaWNfZW9pX2luZHVjZWRcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgdHlwZSBvZiBgcGVuZGluZ19pb2FwaWNfZW9pYCBhbmQgYHZlY3RvcmAgYXJndW1lbnRzIGluIEtWTSdzIEFQSUMgRU9JIGhhbmRsaW5nIGNvZGUgZnJvbSBgaW50YCB0byBgdThgLiBJdCBhbHNvIHJlbW92ZXMgYSBgQlVHX09OYCBpbiBgdmNwdV9lbnRlcl9ndWVzdGAuIFRoZXNlIGFyZSBmdW5jdGlvbmFsIGNoYW5nZXMgaW4gcmVhY2hhYmxlIGNvcmUgS1ZNIGxvZ2ljIHRoYXQgaGFuZGxlcyBBUElDIGludGVycnVwdHMsIHNvIGl0IHNob3VsZCBiZSBmdXp6ZWQuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLlxuWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmVcbmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cblxuSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluXG55b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHlcbnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuXG5cblJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6XG4tIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuXG4tIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLlxuLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuXG4tIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSxcbiAgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLlxuLSBDb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCxcbiAgaW9uaWMsIGFtZGdwdSkgdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuXG4tIERyaXZlciAucmVtb3ZlLCAuc2h1dGRvd24sIG9yIHBjaV91bnJlZ2lzdGVyX2RyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKGUuZy4sIGlnYl9yZW1vdmUpXG4gIHRoYXQgYXJlIGV4ZWN1dGVkIG9ubHkgZHVyaW5nIFBDSSBob3QtdW5wbHVnIG9yIHN5c2ZzIGRyaXZlciB1bmJpbmQgb3BlcmF0aW9ucy5cblxuSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaFxudG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuXG5cbldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOlxuMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy5cbiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLlxuICAgUHJlZmVyIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIEFQSSBlbnRyeXBvaW50IGZ1bmN0aW9ucyBvdmVyIGludGVybmFsIHN0YXRpYyBoZWxwZXIgZnVuY3Rpb25zXG4gICAod2hpY2ggYXJlIGlubGluZWQgYnkgdGhlIGNvbXBpbGVyIGFuZCBkbyBub3QgaGF2ZSBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzKS5cbjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLlxuICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLlxuICAgQWxzbyBjaGVjayBcImRlcGVuZHMgb25cIiBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3NcbiAgIG5lZWRlZCBmb3IgS2J1aWxkIHRvIGNvbXBpbGUgdGhlIGNvZGUgc3RhdGljYWxseSBpbnRvIHZtbGludXguIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlnc1xuICAgb3V0cHV0IGFycmF5LCBhbmQgRE8gTk9UIGFkZCBhICdDT05GSUdfJyBwcmVmaXggKGUuZy4sIHJldHVybiBcIk5FVF9JUFY0XCIgaW5zdGVhZCBvZiBcIkNPTkZJR19ORVRfSVBWNFwiKS5cblByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLlxuXG5cblVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuXG5JdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS5cbklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC5cbiIsIlByb21wdCI6IkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOlxuY29tbWl0IGQ4ZTBhNDdlZGRmNzllZjhjODgyOTU2M2Q2Y2ZiMmFiMzE1YzJhMjhcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgVGh1IEF1ZyA2IDIwOjM0OjA4IDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvYXJjaC94ODYvaW5jbHVkZS9hc20va3ZtX2hvc3QuaCBiL2FyY2gveDg2L2luY2x1ZGUvYXNtL2t2bV9ob3N0LmhcbmluZGV4IDI4Mzg0NzYxOWZmODguLjk2MTQzMTRmZDIzNzQgMTAwNjQ0XG4tLS0gYS9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9rdm1faG9zdC5oXG4rKysgYi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9rdm1faG9zdC5oXG5AQCAtOTczLDcgKzk3Myw3IEBAIHN0cnVjdCBrdm1fdmNwdV9hcmNoIHtcbiBcdFx0Ym9vbCBwdl91bmhhbHRlZDtcbiBcdH0gcHY7XG4gXG4tXHRpbnQgcGVuZGluZ19pb2FwaWNfZW9pO1xuK1x0dTggcGVuZGluZ19pb2FwaWNfZW9pO1xuIFx0aW50IHBlbmRpbmdfZXh0ZXJuYWxfdmVjdG9yO1xuIFx0aW50IGhpZ2hlc3Rfc3RhbGVfcGVuZGluZ19pb2FwaWNfZW9pO1xuIFxuZGlmZiAtLWdpdCBhL2FyY2gveDg2L2t2bS9sYXBpYy5jIGIvYXJjaC94ODYva3ZtL2xhcGljLmNcbmluZGV4IDU4NmE1Y2VlMjllMWEuLjg3YmI4ZTVmNGNhMWYgMTAwNjQ0XG4tLS0gYS9hcmNoL3g4Ni9rdm0vbGFwaWMuY1xuKysrIGIvYXJjaC94ODYva3ZtL2xhcGljLmNcbkBAIC0xNTUyLDcgKzE1NTIsNyBAQCBzdGF0aWMgYm9vbCBrdm1faW9hcGljX2hhbmRsZXNfdmVjdG9yKHN0cnVjdCBrdm1fbGFwaWMgKmFwaWMsIGludCB2ZWN0b3IpXG4gXHRyZXR1cm4gdGVzdF9iaXQodmVjdG9yLCBhcGljLVx1MDAzZXZjcHUtXHUwMDNlYXJjaC5pb2FwaWNfaGFuZGxlZF92ZWN0b3JzKTtcbiB9XG4gXG4tc3RhdGljIHZvaWQga3ZtX2lvYXBpY19zZW5kX2VvaShzdHJ1Y3Qga3ZtX2xhcGljICphcGljLCBpbnQgdmVjdG9yKVxuK3N0YXRpYyB2b2lkIGt2bV9pb2FwaWNfc2VuZF9lb2koc3RydWN0IGt2bV9sYXBpYyAqYXBpYywgdTggdmVjdG9yKVxuIHtcbiBcdGludCBfX21heWJlX3VudXNlZCB0cmlnZ2VyX21vZGU7XG4gXG5AQCAtMTYyMiw3ICsxNjIyLDcgQEAgc3RhdGljIGludCBhcGljX3NldF9lb2koc3RydWN0IGt2bV9sYXBpYyAqYXBpYylcbiAgKiB0aGlzIGludGVyZmFjZSBhc3N1bWVzIGEgdHJhcC1saWtlIGV4aXQsIHdoaWNoIGhhcyBhbHJlYWR5IGZpbmlzaGVkXG4gICogZGVzaXJlZCBzaWRlIGVmZmVjdCBpbmNsdWRpbmcgdklTUiBhbmQgdlBQUiB1cGRhdGUuXG4gICovXG4tdm9pZCBrdm1fYXBpY19zZXRfZW9pX2FjY2VsZXJhdGVkKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwgaW50IHZlY3Rvcilcbit2b2lkIGt2bV9hcGljX3NldF9lb2lfYWNjZWxlcmF0ZWQoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCB1OCB2ZWN0b3IpXG4ge1xuIFx0c3RydWN0IGt2bV9sYXBpYyAqYXBpYyA9IHZjcHUtXHUwMDNlYXJjaC5hcGljO1xuIFxuZGlmZiAtLWdpdCBhL2FyY2gveDg2L2t2bS9sYXBpYy5oIGIvYXJjaC94ODYva3ZtL2xhcGljLmhcbmluZGV4IGJkMTA5OGM4OWQ5OTguLmRiMDcxZDBiMTcyZDAgMTAwNjQ0XG4tLS0gYS9hcmNoL3g4Ni9rdm0vbGFwaWMuaFxuKysrIGIvYXJjaC94ODYva3ZtL2xhcGljLmhcbkBAIC0xNzcsNyArMTc3LDcgQEAgdTY0IGt2bV9nZXRfbGFwaWNfdHNjZGVhZGxpbmVfbXNyKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSk7XG4gdm9pZCBrdm1fc2V0X2xhcGljX3RzY2RlYWRsaW5lX21zcihzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIHU2NCBkYXRhKTtcbiBcbiB2b2lkIGt2bV9hcGljX3dyaXRlX25vZGVjb2RlKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwgdTMyIG9mZnNldCk7XG4tdm9pZCBrdm1fYXBpY19zZXRfZW9pX2FjY2VsZXJhdGVkKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwgaW50IHZlY3Rvcik7XG4rdm9pZCBrdm1fYXBpY19zZXRfZW9pX2FjY2VsZXJhdGVkKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwgdTggdmVjdG9yKTtcbiBcbiBpbnQga3ZtX2xhcGljX3NldF92YXBpY19hZGRyKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwgZ3BhX3QgdmFwaWNfYWRkcik7XG4gdm9pZCBrdm1fbGFwaWNfc3luY19mcm9tX3ZhcGljKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSk7XG5kaWZmIC0tZ2l0IGEvYXJjaC94ODYva3ZtL3ZteC92bXguYyBiL2FyY2gveDg2L2t2bS92bXgvdm14LmNcbmluZGV4IGUzYmZlNmFjYTFhMGUuLmMxZmRmY2NkMjBmYWEgMTAwNjQ0XG4tLS0gYS9hcmNoL3g4Ni9rdm0vdm14L3ZteC5jXG4rKysgYi9hcmNoL3g4Ni9rdm0vdm14L3ZteC5jXG5AQCAtNTg4NiwxMCArNTg4Niw5IEBAIHN0YXRpYyBpbnQgaGFuZGxlX2FwaWNfYWNjZXNzKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSlcbiBzdGF0aWMgaW50IGhhbmRsZV9hcGljX2VvaV9pbmR1Y2VkKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSlcbiB7XG4gXHR1bnNpZ25lZCBsb25nIGV4aXRfcXVhbGlmaWNhdGlvbiA9IHZteF9nZXRfZXhpdF9xdWFsKHZjcHUpO1xuLVx0aW50IHZlY3RvciA9IGV4aXRfcXVhbGlmaWNhdGlvbiBcdTAwMjYgMHhmZjtcbiBcbiBcdC8qIEVPSS1pbmR1Y2VkIFZNIGV4aXQgaXMgdHJhcC1saWtlIGFuZCB0aHVzIG5vIG5lZWQgdG8gYWRqdXN0IElQICovXG4tXHRrdm1fYXBpY19zZXRfZW9pX2FjY2VsZXJhdGVkKHZjcHUsIHZlY3Rvcik7XG4rXHRrdm1fYXBpY19zZXRfZW9pX2FjY2VsZXJhdGVkKHZjcHUsIGV4aXRfcXVhbGlmaWNhdGlvbiBcdTAwMjYgMHhmZik7XG4gXHRyZXR1cm4gMTtcbiB9XG4gXG5kaWZmIC0tZ2l0IGEvYXJjaC94ODYva3ZtL3g4Ni5jIGIvYXJjaC94ODYva3ZtL3g4Ni5jXG5pbmRleCBkOTRiNTkxNDBjNDUyLi44YjIzZjM0MmExZmE1IDEwMDY0NFxuLS0tIGEvYXJjaC94ODYva3ZtL3g4Ni5jXG4rKysgYi9hcmNoL3g4Ni9rdm0veDg2LmNcbkBAIC04MTUxLDcgKzgxNTEsNiBAQCBzdGF0aWMgaW50IHZjcHVfZW50ZXJfZ3Vlc3Qoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KVxuIFx0XHRpZiAoa3ZtX2NoZWNrX3JlcXVlc3QoS1ZNX1JFUV9OTUksIHZjcHUpKVxuIFx0XHRcdHByb2Nlc3Nfbm1pKHZjcHUpO1xuIFx0XHRpZiAoa3ZtX2NoZWNrX3JlcXVlc3QoS1ZNX1JFUV9JT0FQSUNfRU9JX0VYSVQsIHZjcHUpKSB7XG4tXHRcdFx0QlVHX09OKHZjcHUtXHUwMDNlYXJjaC5wZW5kaW5nX2lvYXBpY19lb2kgXHUwMDNlIDI1NSk7XG4gXHRcdFx0aWYgKHRlc3RfYml0KHZjcHUtXHUwMDNlYXJjaC5wZW5kaW5nX2lvYXBpY19lb2ksXG4gXHRcdFx0XHQgICAgIHZjcHUtXHUwMDNlYXJjaC5pb2FwaWNfaGFuZGxlZF92ZWN0b3JzKSkge1xuIFx0XHRcdFx0dmNwdS1cdTAwM2VydW4tXHUwMDNlZXhpdF9yZWFzb24gPSBLVk1fRVhJVF9JT0FQSUNfRU9JO1xuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDZUMjA6MzQ6MTEuODYyNjcwMjZaIiwiU2VxIjozLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo2MzYwOTA1MzQ0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKktWTSBFT0kgVHlwZSBhbmQgVmFsdWUgQm91bmRpbmcgQW5hbHlzaXMqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIHBhdGNoIGZvciBLVk0gb24geDg2LCBhbmQgaXQncyBlc3NlbnRpYWxseSBhIHR5cGUgcmVmaW5lbWVudCBmb3IgRU9JIChFbmQgb2YgSW50ZXJydXB0KSBoYW5kbGluZy4gU3BlY2lmaWNhbGx5LCB3ZSdyZSBjaGFuZ2luZyB0aGUgZGF0YSB0eXBlIG9mIGBwZW5kaW5nX2lvYXBpY19lb2lgIHdpdGhpbiB0aGUgYGt2bV92Y3B1X2FyY2hgIHN0cnVjdCwgYW5kIHRoZSBgdmVjdG9yYCBhcmd1bWVudCB1c2VkIGluIGBrdm1faW9hcGljX3NlbmRfZW9pYCBhbmQgYGt2bV9hcGljX3NldF9lb2lfYWNjZWxlcmF0ZWRgIGZyb20gYGludGAgdG8gYHU4YC4gXG5cblRoaXMgaXMgaW1wb3J0YW50IGJlY2F1c2UgaXQgaW5oZXJlbnRseSBib3VuZHMgdGhlIEVPSSB2YWx1ZSB0byBhIHJhbmdlIG9mIDAtMjU1LiBUaGF0IGFsc28gbWFrZXMgdGhlIGBCVUdfT04odmNwdS1cdTAwM2VhcmNoLnBlbmRpbmdfaW9hcGljX2VvaSBcdTAwM2UgMjU1KWAgaW4gYHZjcHVfZW50ZXJfZ3Vlc3RgIHJlZHVuZGFudCwgc28gdGhhdCdzIGJlZW4gcmVtb3ZlZC4gRnVuY3Rpb25hbGx5LCB0aGlzIGlzIHRoZSBjb3JlIG9mIGl0LCB0aGUgbWFpbiBjaGFuZ2UgaXMgdGhhdCB0aGUgdmFsdWUgaXMgbm93IGV4cGxpY2l0bHkgYm91bmRlZCwgYW5kIGEgc2FmZWd1YXJkIGlzIHJlbW92ZWQgYmVjYXVzZSBpdCBpcyBub3cgcmVkdW5kYW50LlxuXG5UaGUgYGhhbmRsZV9hcGljX2VvaV9pbmR1Y2VkYCBmdW5jdGlvbiBub3cgcGFzc2VzIHRoZSBsb3dlciBieXRlIG9mIHRoZSBgZXhpdF9xdWFsaWZpY2F0aW9uYCBkaXJlY3RseSB0byBga3ZtX2FwaWNfc2V0X2VvaV9hY2NlbGVyYXRlZGAuIFRoaXMgY2hhbmdlIGZlZWxzIHZlcnkgY2xlYW4gYW5kIG1ha2VzIHNlbnNlIGdpdmVuIHRoZSB0eXBlIGNoYW5nZS5cblxuR2l2ZW4gdGhpcywgSSB3YW50IHRvIGNvbmZpcm0gYSBmZXcgdGhpbmdzLiBGaXJzdCBJIG5lZWQgdG8gY2hlY2sgdGhlIEtjb25maWcgc2V0dGluZ3MuIFRoZSByZWxldmFudCBzeW1ib2wgaXMgYEtWTWAuIE5vdyBJIHdpbGwgemVybyBpbiBvbiB0aGUga2V5IHN5bWJvbHMsIHNwZWNpZmljYWxseSBJIHdpbGwgY2hlY2sgYGt2bV9hcGljX3NldF9lb2lfYWNjZWxlcmF0ZWRgIGFuZCBgaGFuZGxlX2FwaWNfZW9pX2luZHVjZWRgIGFnYWluLlxuXG5cbiIsIklucHV0VG9rZW5zIjozMzc4LCJPdXRwdXRUb2tlbnMiOjI3LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MzA2LCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDZUMjA6MzQ6MTguMjIzNTc3NjA0WiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjI3MDYyMDQ2MDEsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwia3ZtX2FwaWNfc2V0X2VvaV9hY2NlbGVyYXRlZFwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJhcmNoL3g4Ni9rdm0vbGFwaWMuYz0xNTk3PXN0YXRpYyBpbnQgYXBpY19zZXRfZW9pKHN0cnVjdCBrdm1fbGFwaWMgKmFwaWMpXFxuLS1cXG5hcmNoL3g4Ni9rdm0vbGFwaWMuYy0xNjI0LSAqL1xcbmFyY2gveDg2L2t2bS9sYXBpYy5jOjE2MjU6dm9pZCBrdm1fYXBpY19zZXRfZW9pX2FjY2VsZXJhdGVkKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwgdTggdmVjdG9yKVxcbmFyY2gveDg2L2t2bS9sYXBpYy5jLTE2MjYte1xcbi0tXFxuYXJjaC94ODYva3ZtL2xhcGljLmMtMTYzMy19XFxuYXJjaC94ODYva3ZtL2xhcGljLmM6MTYzNDpFWFBPUlRfU1lNQk9MX0ZPUl9LVk1fSU5URVJOQUwoa3ZtX2FwaWNfc2V0X2VvaV9hY2NlbGVyYXRlZCk7XFxuYXJjaC94ODYva3ZtL2xhcGljLmMtMTYzNS1cXG4tLVxcbmFyY2gveDg2L2t2bS9sYXBpYy5oPTE3OT12b2lkIGt2bV9hcGljX3dyaXRlX25vZGVjb2RlKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwgdTMyIG9mZnNldCk7XFxuYXJjaC94ODYva3ZtL2xhcGljLmg6MTgwOnZvaWQga3ZtX2FwaWNfc2V0X2VvaV9hY2NlbGVyYXRlZChzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIHU4IHZlY3Rvcik7XFxuYXJjaC94ODYva3ZtL2xhcGljLmgtMTgxLVxcbi0tXFxuYXJjaC94ODYva3ZtL3ZteC92bXguYz01ODg2PXN0YXRpYyBpbnQgaGFuZGxlX2FwaWNfZW9pX2luZHVjZWQoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KVxcbi0tXFxuYXJjaC94ODYva3ZtL3ZteC92bXguYy01ODkwLVxcdC8qIEVPSS1pbmR1Y2VkIFZNIGV4aXQgaXMgdHJhcC1saWtlIGFuZCB0aHVzIG5vIG5lZWQgdG8gYWRqdXN0IElQICovXFxuYXJjaC94ODYva3ZtL3ZteC92bXguYzo1ODkxOlxcdGt2bV9hcGljX3NldF9lb2lfYWNjZWxlcmF0ZWQodmNwdSwgZXhpdF9xdWFsaWZpY2F0aW9uIFxcdTAwMjYgMHhmZik7XFxuYXJjaC94ODYva3ZtL3ZteC92bXguYy01ODkyLVxcdHJldHVybiAxO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wNlQyMDozNDoyMC45Mjk3ODY0NDVaIiwiU2VxIjo1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo1NTA2ODQ0NTQ0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkZ1enppbmcgVGFyZ2V0IElkZW50aWZpY2F0aW9uOiBLVk0geDg2IEFQSUMgRU9JIEhhbmRsaW5nKipcblxuT2theSwgc28gdGhpcyBwYXRjaCBpcyBjbGVhcmx5IG1lc3Npbmcgd2l0aCBjb3JlIEtWTSB4ODYgbG9naWMsIHNwZWNpZmljYWxseSBhcm91bmQgaG93IGl0IGhhbmRsZXMgQVBJQyBFT0kgKEVuZCBvZiBJbnRlcnJ1cHQpIHNpZ25hbHMuIFRoYXQgaW1tZWRpYXRlbHkgZmxhZ3MgaXQgYXMgYSBwcmltZSB0YXJnZXQgZm9yIGZ1enppbmcg4oCTIHRoZXJlJ3MgbGlrZWx5IHNvbWUgc3VidGxlIHN0YXRlIG1hbmFnZW1lbnQgb3IgcmFjZSBjb25kaXRpb24gbHVya2luZyBpbiB0aGVyZSB0aGF0IHdlIGNhbiBleHBvc2UuXG5cblRoZSBmdW5jdGlvbnMgdG91Y2hlZCBhcmUgYGt2bV9hcGljX3NldF9lb2lfYWNjZWxlcmF0ZWRgLCBgaGFuZGxlX2FwaWNfZW9pX2luZHVjZWRgLCBga3ZtX2lvYXBpY19zZW5kX2VvaWAsIGFuZCBgdmNwdV9lbnRlcl9ndWVzdGAuIEltbWVkaWF0ZWx5LCBgdmNwdV9lbnRlcl9ndWVzdGAgaXMgYSByZWQgZmxhZywgYmVpbmcgYSBob3QgcGF0aC4gSSdkIHJhdGhlciBhdm9pZCB0aGF0IGlmIHBvc3NpYmxlIHRvIG1pbmltaXplIG5vaXNlIGFuZCBmb2N1cyBvdXIgZWZmb3J0cy5cblxuVGhhdCBsZWF2ZXMgdXMgd2l0aCBgaGFuZGxlX2FwaWNfZW9pX2luZHVjZWRgIGFuZCBga3ZtX2FwaWNfc2V0X2VvaV9hY2NlbGVyYXRlZGAgYXMgdGhlIHByaW1hcnkgZm9jdXMgcG9pbnRzLiBTb3VuZHMgZ29vZCEgTm93LCB3aGF0IGFib3V0IGBrdm1faW9hcGljX3NlbmRfZW9pYD8gSXQncyBhIGJpdCBvZiBhIHF1ZXN0aW9uIG1hcmsgc2luY2UgaXQncyBzdGF0aWMuIExldCdzIGNvbmZpcm0gdGhhdCBxdWlja2x5Li4uICpjaGVja3MgY29kZSouLi4geWVwLCBpdCdzIGBzdGF0aWMgdm9pZCBrdm1faW9hcGljX3NlbmRfZW9pYC4gU2luY2UgaXQncyBzdGF0aWMsIGl0J3MgbGlrZWx5IGlubGluZWQsIHNvIGxldCdzIHNraXAgdGhhdCBmdW5jdGlvbi5cblxuVGhlIHJlbGV2YW50IGNvbmZpZyBpcyBgS1ZNYC4gR290IGl0LlxuXG5cbiIsIklucHV0VG9rZW5zIjo0NTg3LCJPdXRwdXRUb2tlbnMiOjE3LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjU2LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA2VDIwOjM0OjI2LjQzNjYzMjcxOVoiLCJTZXEiOjYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyNDAyMDE2MjYyLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNvbmZpZyBLVk1cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiYXJjaC9hcm02NC9rdm0vS2NvbmZpZz0xOD1pZiBWSVJUVUFMSVpBVElPTlxcbmFyY2gvYXJtNjQva3ZtL0tjb25maWctMTktXFxuYXJjaC9hcm02NC9rdm0vS2NvbmZpZzoyMDptZW51Y29uZmlnIEtWTVxcbmFyY2gvYXJtNjQva3ZtL0tjb25maWctMjEtXFx0Ym9vbCBcXFwiS2VybmVsLWJhc2VkIFZpcnR1YWwgTWFjaGluZSAoS1ZNKSBzdXBwb3J0XFxcIlxcbi0tXFxuYXJjaC9sb29uZ2FyY2gva3ZtL0tjb25maWc9MTg9aWYgVklSVFVBTElaQVRJT05cXG5hcmNoL2xvb25nYXJjaC9rdm0vS2NvbmZpZy0xOS1cXG5hcmNoL2xvb25nYXJjaC9rdm0vS2NvbmZpZzoyMDpjb25maWcgS1ZNXFxuYXJjaC9sb29uZ2FyY2gva3ZtL0tjb25maWctMjEtXFx0dHJpc3RhdGUgXFxcIktlcm5lbC1iYXNlZCBWaXJ0dWFsIE1hY2hpbmUgKEtWTSkgc3VwcG9ydFxcXCJcXG4tLVxcbmFyY2gvbWlwcy9rdm0vS2NvbmZpZz0xNj1pZiBWSVJUVUFMSVpBVElPTlxcbmFyY2gvbWlwcy9rdm0vS2NvbmZpZy0xNy1cXG5hcmNoL21pcHMva3ZtL0tjb25maWc6MTg6Y29uZmlnIEtWTVxcbmFyY2gvbWlwcy9rdm0vS2NvbmZpZy0xOS1cXHR0cmlzdGF0ZSBcXFwiS2VybmVsLWJhc2VkIFZpcnR1YWwgTWFjaGluZSAoS1ZNKSBzdXBwb3J0XFxcIlxcbi0tXFxuYXJjaC9taXBzL2t2bS9LY29uZmlnLTMwLVxcbmFyY2gvbWlwcy9rdm0vS2NvbmZpZzozMTpjb25maWcgS1ZNX01JUFNfREVCVUdfQ09QMF9DT1VOVEVSU1xcbmFyY2gvbWlwcy9rdm0vS2NvbmZpZy0zMi1cXHRib29sIFxcXCJNYWludGFpbiBjb3VudGVycyBmb3IgQ09QMCBhY2Nlc3Nlc1xcXCJcXG4tLVxcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZz0xOD1pZiBWSVJUVUFMSVpBVElPTlxcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0xOS1cXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWc6MjA6Y29uZmlnIEtWTVxcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0yMS1cXHRib29sXFxuLS1cXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMjUtXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnOjI2OmNvbmZpZyBLVk1fQk9PSzNTX0hBTkRMRVJcXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMjctXFx0Ym9vbFxcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0yOC1cXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWc6Mjk6Y29uZmlnIEtWTV9CT09LM1NfMzJfSEFORExFUlxcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0zMC1cXHRib29sXFxuLS1cXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMzMtXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnOjM0OmNvbmZpZyBLVk1fQk9PSzNTXzY0X0hBTkRMRVJcXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMzUtXFx0Ym9vbFxcbi0tXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTM3LVxcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZzozODpjb25maWcgS1ZNX0JPT0szU19QUl9QT1NTSUJMRVxcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0zOS1cXHRib29sXFxuLS1cXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctNDEtXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnOjQyOmNvbmZpZyBLVk1fQk9PSzNTX0hWX1BPU1NJQkxFXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTQzLVxcdGJvb2xcXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctNDQtXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnOjQ1OmNvbmZpZyBLVk1fQk9PSzNTXzMyXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTQ2LVxcdHRyaXN0YXRlIFxcXCJLVk0gc3VwcG9ydCBmb3IgUG93ZXJQQyBib29rM3NfMzIgcHJvY2Vzc29yc1xcXCJcXG4tLVxcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy02MS1cXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWc6NjI6Y29uZmlnIEtWTV9CT09LM1NfNjRcXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctNjMtXFx0dHJpc3RhdGUgXFxcIktWTSBzdXBwb3J0IGZvciBQb3dlclBDIGJvb2szc182NCBwcm9jZXNzb3JzXFxcIlxcbi0tXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTc4LVxcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZzo3OTpjb25maWcgS1ZNX0JPT0szU182NF9IVlxcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy04MC1cXHR0cmlzdGF0ZSBcXFwiS1ZNIGZvciBQT1dFUjcgYW5kIGxhdGVyIHVzaW5nIGh5cGVydmlzb3IgbW9kZSBpbiBob3N0XFxcIlxcbi0tXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTk5LVxcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZzoxMDA6Y29uZmlnIEtWTV9CT09LM1NfNjRfUFJcXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMTAxLVxcdHRyaXN0YXRlIFxcXCJLVk0gc3VwcG9ydCB3aXRob3V0IHVzaW5nIGh5cGVydmlzb3IgbW9kZSBpbiBob3N0XFxcIlxcbi0tXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTEyNS1cXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWc6MTI2OmNvbmZpZyBLVk1fQk9PSzNTX0hWX0VYSVRfVElNSU5HXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTEyNy1cXHRib29sXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTEyOC1cXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWc6MTI5OmNvbmZpZyBLVk1fQk9PSzNTX0hWX1A5X1RJTUlOR1xcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0xMzAtXFx0Ym9vbCBcXFwiRGV0YWlsZWQgdGltaW5nIGZvciB0aGUgUDkgZW50cnkgcG9pbnRcXFwiXFxuLS1cXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMTQxLVxcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZzoxNDI6Y29uZmlnIEtWTV9CT09LM1NfSFZfUDhfVElNSU5HXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTE0My1cXHRib29sIFxcXCJEZXRhaWxlZCB0aW1pbmcgZm9yIGh5cGVydmlzb3IgcmVhbC1tb2RlIGNvZGUgKGZvciBQT1dFUjgpXFxcIlxcbi0tXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTE1Ni1cXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWc6MTU3OmNvbmZpZyBLVk1fQk9PSzNTX0hWX05FU1RFRF9QTVVfV09SS0FST1VORFxcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0xNTgtXFx0Ym9vbCBcXFwiTmVzdGVkIEwwIGhvc3Qgd29ya2Fyb3VuZCBmb3IgTDEgS1ZNIGhvc3QgUE1VIGhhbmRsaW5nIGJ1Z1xcXCIgaWYgRVhQRVJUXFxuLS1cXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMTcxLVxcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZzoxNzI6Y29uZmlnIEtWTV9CT09LM1NfSFZfUE1VXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTE3My1cXHR0cmlzdGF0ZSBcXFwiSHlwZXJ2aXNvciBQZXJmIGV2ZW50cyBmb3IgS1ZNIEJvb2szcy1IVlxcXCJcXG4tLVxcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0xODMtXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnOjE4NDpjb25maWcgS1ZNX0JPT0tFX0hWXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTE4NS1cXHRib29sXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTE4Ni1cXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWc6MTg3OmNvbmZpZyBLVk1fRVhJVF9USU1JTkdcXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMTg4LVxcdGJvb2wgXFxcIkRldGFpbGVkIGV4aXQgdGltaW5nXFxcIlxcbi0tXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTE5Ny1cXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWc6MTk4OmNvbmZpZyBLVk1fRTUwMFYyXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTE5OS1cXHRib29sIFxcXCJLVk0gc3VwcG9ydCBmb3IgUG93ZXJQQyBFNTAwdjIgcHJvY2Vzc29yc1xcXCJcXG4tLVxcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0yMTItXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnOjIxMzpjb25maWcgS1ZNX0U1MDBNQ1xcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0yMTQtXFx0Ym9vbCBcXFwiS1ZNIHN1cHBvcnQgZm9yIFBvd2VyUEMgRTUwME1DL0U1NTAwL0U2NTAwIHByb2Nlc3NvcnNcXFwiXFxuLS1cXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMjI4LVxcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZzoyMjk6Y29uZmlnIEtWTV9NUElDXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTIzMC1cXHRib29sIFxcXCJLVk0gaW4ta2VybmVsIE1QSUMgZW11bGF0aW9uXFxcIlxcbi0tXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTI0MC1cXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWc6MjQxOmNvbmZpZyBLVk1fWElDU1xcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0yNDItXFx0Ym9vbCBcXFwiS1ZNIGluLWtlcm5lbCBYSUNTIGVtdWxhdGlvblxcXCJcXG4tLVxcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0yNTAtXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnOjI1MTpjb25maWcgS1ZNX1hJVkVcXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMjUyLVxcdGJvb2xcXG4tLVxcbmFyY2gvcG93ZXJwYy9wbGF0Zm9ybXMvS2NvbmZpZz0yMj1zb3VyY2UgXFxcImFyY2gvcG93ZXJwYy9wbGF0Zm9ybXMvbWljcm93YXR0L0tjb25maWdcXFwiXFxuYXJjaC9wb3dlcnBjL3BsYXRmb3Jtcy9LY29uZmlnLTIzLVxcbmFyY2gvcG93ZXJwYy9wbGF0Zm9ybXMvS2NvbmZpZzoyNDpjb25maWcgS1ZNX0dVRVNUXFxuYXJjaC9wb3dlcnBjL3BsYXRmb3Jtcy9LY29uZmlnLTI1LVxcdGJvb2wgXFxcIktWTSBHdWVzdCBzdXBwb3J0XFxcIlxcbi0tXFxuYXJjaC9yaXNjdi9rdm0vS2NvbmZpZz0xOD1pZiBWSVJUVUFMSVpBVElPTlxcbmFyY2gvcmlzY3Yva3ZtL0tjb25maWctMTktXFxuYXJjaC9yaXNjdi9rdm0vS2NvbmZpZzoyMDpjb25maWcgS1ZNXFxuYXJjaC9yaXNjdi9rdm0vS2NvbmZpZy0yMS1cXHR0cmlzdGF0ZSBcXFwiS2VybmVsLWJhc2VkIFZpcnR1YWwgTWFjaGluZSAoS1ZNKSBzdXBwb3J0XFxcIlxcbi0tXFxuYXJjaC9zMzkwL2t2bS9LY29uZmlnPTE3PWlmIFZJUlRVQUxJWkFUSU9OXFxuYXJjaC9zMzkwL2t2bS9LY29uZmlnLTE4LVxcbmFyY2gvczM5MC9rdm0vS2NvbmZpZzoxOTpjb25maWcgS1ZNXFxuYXJjaC9zMzkwL2t2bS9LY29uZmlnLTIwLVxcdGRlZl90cmlzdGF0ZSB5XFxuLS1cXG5hcmNoL3MzOTAva3ZtL0tjb25maWctNDYtXFxuYXJjaC9zMzkwL2t2bS9LY29uZmlnOjQ3OmNvbmZpZyBLVk1fUzM5MF9VQ09OVFJPTFxcbmFyY2gvczM5MC9rdm0vS2NvbmZpZy00OC1cXHRib29sIFxcXCJVc2Vyc3BhY2UgY29udHJvbGxlZCB2aXJ0dWFsIG1hY2hpbmVzXFxcIlxcbi0tXFxuYXJjaC94ODYvS2NvbmZpZz04MjY9c291cmNlIFxcXCJhcmNoL3g4Ni94ZW4vS2NvbmZpZ1xcXCJcXG5hcmNoL3g4Ni9LY29uZmlnLTgyNy1cXG5hcmNoL3g4Ni9LY29uZmlnOjgyODpjb25maWcgS1ZNX0dVRVNUXFxuYXJjaC94ODYvS2NvbmZpZy04MjktXFx0Ym9vbCBcXFwiS1ZNIEd1ZXN0IHN1cHBvcnQgKGluY2x1ZGluZyBrdm1jbG9jaylcXFwiXFxuLS1cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZz0xOD1pZiBWSVJUVUFMSVpBVElPTlxcbmFyY2gveDg2L2t2bS9LY29uZmlnLTE5LVxcbmFyY2gveDg2L2t2bS9LY29uZmlnOjIwOmNvbmZpZyBLVk1fWDg2XFxuYXJjaC94ODYva3ZtL0tjb25maWctMjEtXFx0ZGVmX3RyaXN0YXRlIEtWTSBpZiAoS1ZNX0lOVEVMICE9IG4gfHwgS1ZNX0FNRCAhPSBuKVxcbi0tXFxuYXJjaC94ODYva3ZtL0tjb25maWctNTEtXFxuYXJjaC94ODYva3ZtL0tjb25maWc6NTI6Y29uZmlnIEtWTVxcbmFyY2gveDg2L2t2bS9LY29uZmlnLTUzLVxcdHRyaXN0YXRlIFxcXCJLZXJuZWwtYmFzZWQgVmlydHVhbCBNYWNoaW5lIChLVk0pIHN1cHBvcnRcXFwiXFxuLS1cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy02OC1cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZzo2OTpjb25maWcgS1ZNX1dFUlJPUlxcbmFyY2gveDg2L2t2bS9LY29uZmlnLTcwLVxcdGJvb2wgXFxcIkNvbXBpbGUgS1ZNIHdpdGggLVdlcnJvclxcXCJcXG4tLVxcbmFyY2gveDg2L2t2bS9LY29uZmlnLTgyLVxcbmFyY2gveDg2L2t2bS9LY29uZmlnOjgzOmNvbmZpZyBLVk1fU1dfUFJPVEVDVEVEX1ZNXFxuYXJjaC94ODYva3ZtL0tjb25maWctODQtXFx0Ym9vbCBcXFwiRW5hYmxlIHN1cHBvcnQgZm9yIEtWTSBzb2Z0d2FyZS1wcm90ZWN0ZWQgVk1zXFxcIlxcbi0tXFxuYXJjaC94ODYva3ZtL0tjb25maWctOTUtXFxuYXJjaC94ODYva3ZtL0tjb25maWc6OTY6Y29uZmlnIEtWTV9JTlRFTFxcbmFyY2gveDg2L2t2bS9LY29uZmlnLTk3LVxcdHRyaXN0YXRlIFxcXCJLVk0gZm9yIEludGVsIChhbmQgY29tcGF0aWJsZSkgcHJvY2Vzc29ycyBzdXBwb3J0XFxcIlxcbi0tXFxuYXJjaC94ODYva3ZtL0tjb25maWctMTA2LVxcbmFyY2gveDg2L2t2bS9LY29uZmlnOjEwNzpjb25maWcgS1ZNX0lOVEVMX1BST1ZFX1ZFXFxuYXJjaC94ODYva3ZtL0tjb25maWctMTA4LSAgICAgICAgYm9vbCBcXFwiQ2hlY2sgdGhhdCBndWVzdHMgZG8gbm90IHJlY2VpdmUgI1ZFIGV4Y2VwdGlvbnNcXFwiXFxuLS1cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZz0xMjI9Y29uZmlnIFg4Nl9TR1hfS1ZNXFxuLS1cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0xMzMtXFxuYXJjaC94ODYva3ZtL0tjb25maWc6MTM0OmNvbmZpZyBLVk1fSU5URUxfVERYXFxuYXJjaC94ODYva3ZtL0tjb25maWctMTM1LVxcdGJvb2wgXFxcIkludGVsIFRydXN0IERvbWFpbiBFeHRlbnNpb25zIChURFgpIHN1cHBvcnRcXFwiXFxuLS1cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0xNDUtXFxuYXJjaC94ODYva3ZtL0tjb25maWc6MTQ2OmNvbmZpZyBLVk1fQU1EXFxuYXJjaC94ODYva3ZtL0tjb25maWctMTQ3LVxcdHRyaXN0YXRlIFxcXCJLVk0gZm9yIEFNRCBwcm9jZXNzb3JzIHN1cHBvcnRcXFwiXFxuLS1cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0xNTUtXFxuYXJjaC94ODYva3ZtL0tjb25maWc6MTU2OmNvbmZpZyBLVk1fQU1EX1NFVlxcbmFyY2gveDg2L2t2bS9LY29uZmlnLTE1Ny1cXHRib29sIFxcXCJBTUQgU2VjdXJlIEVuY3J5cHRlZCBWaXJ0dWFsaXphdGlvbiAoU0VWKSBzdXBwb3J0XFxcIlxcbi0tXFxuYXJjaC94ODYva3ZtL0tjb25maWctMTcyLVxcbmFyY2gveDg2L2t2bS9LY29uZmlnOjE3Mzpjb25maWcgS1ZNX0lPQVBJQ1xcbmFyY2gveDg2L2t2bS9LY29uZmlnLTE3NC1cXHRib29sIFxcXCJJL08gQVBJQywgUElDLCBhbmQgUElUIGVtdWxhdGlvblxcXCJcXG4tLVxcbmFyY2gveDg2L2t2bS9LY29uZmlnLTE4Mi1cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZzoxODM6Y29uZmlnIEtWTV9TTU1cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0xODQtXFx0Ym9vbCBcXFwiU3lzdGVtIE1hbmFnZW1lbnQgTW9kZSBlbXVsYXRpb25cXFwiXFxuLS1cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0xOTMtXFxuYXJjaC94ODYva3ZtL0tjb25maWc6MTk0OmNvbmZpZyBLVk1fSFlQRVJWXFxuYXJjaC94ODYva3ZtL0tjb25maWctMTk1LVxcdGJvb2wgXFxcIlN1cHBvcnQgZm9yIE1pY3Jvc29mdCBIeXBlci1WIGVtdWxhdGlvblxcXCJcXG4tLVxcbmFyY2gveDg2L2t2bS9LY29uZmlnLTIwNy1cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZzoyMDg6Y29uZmlnIEtWTV9YRU5cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0yMDktXFx0Ym9vbCBcXFwiU3VwcG9ydCBmb3IgWGVuIGh5cGVyY2FsbCBpbnRlcmZhY2VcXFwiXFxuLS1cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0yMTYtXFxuYXJjaC94ODYva3ZtL0tjb25maWc6MjE3OmNvbmZpZyBLVk1fUFJPVkVfTU1VXFxuYXJjaC94ODYva3ZtL0tjb25maWctMjE4LVxcdGJvb2wgXFxcIlByb3ZlIEtWTSBNTVUgY29ycmVjdG5lc3NcXFwiXFxuLS1cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0yMjktXFxuYXJjaC94ODYva3ZtL0tjb25maWc6MjMwOmNvbmZpZyBLVk1fRVhURVJOQUxfV1JJVEVfVFJBQ0tJTkdcXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0yMzEtXFx0Ym9vbFxcbmFyY2gveDg2L2t2bS9LY29uZmlnLTIzMi1cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZzoyMzM6Y29uZmlnIEtWTV9NQVhfTlJfVkNQVVNcXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0yMzQtXFx0aW50IFxcXCJNYXhpbXVtIG51bWJlciBvZiB2Q1BVcyBwZXIgS1ZNIGd1ZXN0XFxcIlxcbi0tXFxudmlydC9rdm0vS2NvbmZpZy0zLVxcbnZpcnQva3ZtL0tjb25maWc6NDpjb25maWcgS1ZNX0NPTU1PTlxcbnZpcnQva3ZtL0tjb25maWctNS0gICAgICAgYm9vbFxcbi0tXFxudmlydC9rdm0vS2NvbmZpZz0zOT1jb25maWcgTkVFRF9LVk1fRElSVFlfUklOR19XSVRIX0JJVE1BUFxcbi0tXFxudmlydC9rdm0vS2NvbmZpZy00Mi1cXG52aXJ0L2t2bS9LY29uZmlnOjQzOmNvbmZpZyBLVk1fTU1JT1xcbnZpcnQva3ZtL0tjb25maWctNDQtICAgICAgIGJvb2xcXG52aXJ0L2t2bS9LY29uZmlnLTQ1LVxcbnZpcnQva3ZtL0tjb25maWc6NDY6Y29uZmlnIEtWTV9BU1lOQ19QRlxcbnZpcnQva3ZtL0tjb25maWctNDctICAgICAgIGJvb2xcXG4tLVxcbnZpcnQva3ZtL0tjb25maWctNDktIyBUb2dnbGUgdG8gc3dpdGNoIGJldHdlZW4gZGlyZWN0IG5vdGlmaWNhdGlvbiBhbmQgYmF0Y2ggam9iXFxudmlydC9rdm0vS2NvbmZpZzo1MDpjb25maWcgS1ZNX0FTWU5DX1BGX1NZTkNcXG52aXJ0L2t2bS9LY29uZmlnLTUxLSAgICAgICBib29sXFxuLS1cXG52aXJ0L2t2bS9LY29uZmlnPTU5PWNvbmZpZyBIQVZFX0tWTV9DUFVfUkVMQVhfSU5URVJDRVBUXFxuLS1cXG52aXJ0L2t2bS9LY29uZmlnLTYxLVxcbnZpcnQva3ZtL0tjb25maWc6NjI6Y29uZmlnIEtWTV9WRklPXFxudmlydC9rdm0vS2NvbmZpZy02My0gICAgICAgYm9vbFxcbi0tXFxudmlydC9rdm0vS2NvbmZpZz02NT1jb25maWcgSEFWRV9LVk1fSU5WQUxJRF9XQUtFVVBTXFxuLS1cXG52aXJ0L2t2bS9LY29uZmlnLTY3LVxcbnZpcnQva3ZtL0tjb25maWc6Njg6Y29uZmlnIEtWTV9HRU5FUklDX0RJUlRZTE9HX1JFQURfUFJPVEVDVFxcbnZpcnQva3ZtL0tjb25maWctNjktICAgICAgIGJvb2xcXG52aXJ0L2t2bS9LY29uZmlnLTcwLVxcbnZpcnQva3ZtL0tjb25maWc6NzE6Y29uZmlnIEtWTV9HRU5FUklDX1BSRV9GQVVMVF9NRU1PUllcXG52aXJ0L2t2bS9LY29uZmlnLTcyLSAgICAgICBib29sXFxudmlydC9rdm0vS2NvbmZpZy03My1cXG52aXJ0L2t2bS9LY29uZmlnOjc0OmNvbmZpZyBLVk1fQ09NUEFUXFxudmlydC9rdm0vS2NvbmZpZy03NS0gICAgICAgZGVmX2Jvb2wgeVxcbi0tXFxudmlydC9rdm0vS2NvbmZpZz05MT1jb25maWcgSEFWRV9LVk1fUE1fTk9USUZJRVJcXG4tLVxcbnZpcnQva3ZtL0tjb25maWctOTMtXFxudmlydC9rdm0vS2NvbmZpZzo5NDpjb25maWcgS1ZNX0dFTkVSSUNfSEFSRFdBUkVfRU5BQkxJTkdcXG52aXJ0L2t2bS9LY29uZmlnLTk1LSAgICAgICBib29sXFxudmlydC9rdm0vS2NvbmZpZy05Ni1cXG52aXJ0L2t2bS9LY29uZmlnOjk3OmNvbmZpZyBLVk1fRUxJREVfVExCX0ZMVVNIX0lGX1lPVU5HXFxudmlydC9rdm0vS2NvbmZpZy05OC0gICAgICAgYm9vbFxcbnZpcnQva3ZtL0tjb25maWctOTktXFxudmlydC9rdm0vS2NvbmZpZzoxMDA6Y29uZmlnIEtWTV9NTVVfTE9DS0xFU1NfQUdJTkdcXG52aXJ0L2t2bS9LY29uZmlnLTEwMS0gICAgICAgYm9vbFxcbnZpcnQva3ZtL0tjb25maWctMTAyLVxcbnZpcnQva3ZtL0tjb25maWc6MTAzOmNvbmZpZyBLVk1fR0VORVJJQ19NRU1PUllfQVRUUklCVVRFU1xcbnZpcnQva3ZtL0tjb25maWctMTA0LSAgICAgICBib29sXFxudmlydC9rdm0vS2NvbmZpZy0xMDUtXFxudmlydC9rdm0vS2NvbmZpZzoxMDY6Y29uZmlnIEtWTV9HVUVTVF9NRU1GRFxcbnZpcnQva3ZtL0tjb25maWctMTA3LSAgICAgICBzZWxlY3QgWEFSUkFZX01VTFRJXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA2VDIwOjM0OjI4LjgzODY1MzE1MVoiLCJTZXEiOjcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjM0NzM2Nzg1MTcsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqS1ZNIENvbmZpZ3VyYXRpb246IEEgRGVlcCBEaXZlKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgdGhpcyBjb25maWd1cmF0aW9uIGFuZCBpdCdzIHNldCB0byBgS1ZNYC4gUmlnaHQsIHJpZ2h0Li4uIGJ1dCBgS1ZNYCBpcyBhIHRyaXN0YXRlLCBhbmQgdGhhdCBtZWFucyBpdCBoYXMgZGVwZW5kZW5jaWVzLiBNeSBtaW5kIGltbWVkaWF0ZWx5IGp1bXBzIHRvIHZlcmlmeWluZyB0aGUgZGVwZW5kZW5jaWVzLiBTcGVjaWZpY2FsbHksIGBLVk1gIHJlbGllcyBvbiBgVklSVFVBTElaQVRJT05gLiBUaW1lIHRvIGRpZyBkZWVwZXIgaW50byB0aGUgc291cmNlLCBsZXQncyBnbyB0byBgYXJjaC94ODYva3ZtL0tjb25maWdgIHRvIGNvbmZpcm0gdGhlc2UgZGVwZW5kZW5jaWVzIGFuZCByZWZyZXNoIG15IG1lbW9yeSBvbiB0aGUgc3BlY2lmaWNzIG9mIGhvdyB0aGlzIGZlYXR1cmUgaXMgY29udHJvbGxlZCBhdCB0aGUgYXJjaGl0ZWN0dXJhbCBsZXZlbC4gSSBuZWVkIHRvIGJlIHN1cmUgdGhpcyBpcyBzZXR1cCBhcyBJIGV4cGVjdC5cblxuXG4iLCJJbnB1dFRva2VucyI6OTQ2MCwiT3V0cHV0VG9rZW5zIjozNCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjQ3LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA2VDIwOjM0OjMyLjMxMjMzNDMxN1oiLCJTZXEiOjgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMTg5MjI5ODIsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY29uZmlnIEtWTVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJhcmNoL3g4Ni9rdm0vS2NvbmZpZ1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJhcmNoL3g4Ni9rdm0vS2NvbmZpZz0xOD1pZiBWSVJUVUFMSVpBVElPTlxcbmFyY2gveDg2L2t2bS9LY29uZmlnLTE5LVxcbmFyY2gveDg2L2t2bS9LY29uZmlnOjIwOmNvbmZpZyBLVk1fWDg2XFxuYXJjaC94ODYva3ZtL0tjb25maWctMjEtXFx0ZGVmX3RyaXN0YXRlIEtWTSBpZiAoS1ZNX0lOVEVMICE9IG4gfHwgS1ZNX0FNRCAhPSBuKVxcbi0tXFxuYXJjaC94ODYva3ZtL0tjb25maWctNTEtXFxuYXJjaC94ODYva3ZtL0tjb25maWc6NTI6Y29uZmlnIEtWTVxcbmFyY2gveDg2L2t2bS9LY29uZmlnLTUzLVxcdHRyaXN0YXRlIFxcXCJLZXJuZWwtYmFzZWQgVmlydHVhbCBNYWNoaW5lIChLVk0pIHN1cHBvcnRcXFwiXFxuLS1cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy02OC1cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZzo2OTpjb25maWcgS1ZNX1dFUlJPUlxcbmFyY2gveDg2L2t2bS9LY29uZmlnLTcwLVxcdGJvb2wgXFxcIkNvbXBpbGUgS1ZNIHdpdGggLVdlcnJvclxcXCJcXG4tLVxcbmFyY2gveDg2L2t2bS9LY29uZmlnLTgyLVxcbmFyY2gveDg2L2t2bS9LY29uZmlnOjgzOmNvbmZpZyBLVk1fU1dfUFJPVEVDVEVEX1ZNXFxuYXJjaC94ODYva3ZtL0tjb25maWctODQtXFx0Ym9vbCBcXFwiRW5hYmxlIHN1cHBvcnQgZm9yIEtWTSBzb2Z0d2FyZS1wcm90ZWN0ZWQgVk1zXFxcIlxcbi0tXFxuYXJjaC94ODYva3ZtL0tjb25maWctOTUtXFxuYXJjaC94ODYva3ZtL0tjb25maWc6OTY6Y29uZmlnIEtWTV9JTlRFTFxcbmFyY2gveDg2L2t2bS9LY29uZmlnLTk3LVxcdHRyaXN0YXRlIFxcXCJLVk0gZm9yIEludGVsIChhbmQgY29tcGF0aWJsZSkgcHJvY2Vzc29ycyBzdXBwb3J0XFxcIlxcbi0tXFxuYXJjaC94ODYva3ZtL0tjb25maWctMTA2LVxcbmFyY2gveDg2L2t2bS9LY29uZmlnOjEwNzpjb25maWcgS1ZNX0lOVEVMX1BST1ZFX1ZFXFxuYXJjaC94ODYva3ZtL0tjb25maWctMTA4LSAgICAgICAgYm9vbCBcXFwiQ2hlY2sgdGhhdCBndWVzdHMgZG8gbm90IHJlY2VpdmUgI1ZFIGV4Y2VwdGlvbnNcXFwiXFxuLS1cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZz0xMjI9Y29uZmlnIFg4Nl9TR1hfS1ZNXFxuLS1cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0xMzMtXFxuYXJjaC94ODYva3ZtL0tjb25maWc6MTM0OmNvbmZpZyBLVk1fSU5URUxfVERYXFxuYXJjaC94ODYva3ZtL0tjb25maWctMTM1LVxcdGJvb2wgXFxcIkludGVsIFRydXN0IERvbWFpbiBFeHRlbnNpb25zIChURFgpIHN1cHBvcnRcXFwiXFxuLS1cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0xNDUtXFxuYXJjaC94ODYva3ZtL0tjb25maWc6MTQ2OmNvbmZpZyBLVk1fQU1EXFxuYXJjaC94ODYva3ZtL0tjb25maWctMTQ3LVxcdHRyaXN0YXRlIFxcXCJLVk0gZm9yIEFNRCBwcm9jZXNzb3JzIHN1cHBvcnRcXFwiXFxuLS1cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0xNTUtXFxuYXJjaC94ODYva3ZtL0tjb25maWc6MTU2OmNvbmZpZyBLVk1fQU1EX1NFVlxcbmFyY2gveDg2L2t2bS9LY29uZmlnLTE1Ny1cXHRib29sIFxcXCJBTUQgU2VjdXJlIEVuY3J5cHRlZCBWaXJ0dWFsaXphdGlvbiAoU0VWKSBzdXBwb3J0XFxcIlxcbi0tXFxuYXJjaC94ODYva3ZtL0tjb25maWctMTcyLVxcbmFyY2gveDg2L2t2bS9LY29uZmlnOjE3Mzpjb25maWcgS1ZNX0lPQVBJQ1xcbmFyY2gveDg2L2t2bS9LY29uZmlnLTE3NC1cXHRib29sIFxcXCJJL08gQVBJQywgUElDLCBhbmQgUElUIGVtdWxhdGlvblxcXCJcXG4tLVxcbmFyY2gveDg2L2t2bS9LY29uZmlnLTE4Mi1cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZzoxODM6Y29uZmlnIEtWTV9TTU1cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0xODQtXFx0Ym9vbCBcXFwiU3lzdGVtIE1hbmFnZW1lbnQgTW9kZSBlbXVsYXRpb25cXFwiXFxuLS1cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0xOTMtXFxuYXJjaC94ODYva3ZtL0tjb25maWc6MTk0OmNvbmZpZyBLVk1fSFlQRVJWXFxuYXJjaC94ODYva3ZtL0tjb25maWctMTk1LVxcdGJvb2wgXFxcIlN1cHBvcnQgZm9yIE1pY3Jvc29mdCBIeXBlci1WIGVtdWxhdGlvblxcXCJcXG4tLVxcbmFyY2gveDg2L2t2bS9LY29uZmlnLTIwNy1cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZzoyMDg6Y29uZmlnIEtWTV9YRU5cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0yMDktXFx0Ym9vbCBcXFwiU3VwcG9ydCBmb3IgWGVuIGh5cGVyY2FsbCBpbnRlcmZhY2VcXFwiXFxuLS1cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0yMTYtXFxuYXJjaC94ODYva3ZtL0tjb25maWc6MjE3OmNvbmZpZyBLVk1fUFJPVkVfTU1VXFxuYXJjaC94ODYva3ZtL0tjb25maWctMjE4LVxcdGJvb2wgXFxcIlByb3ZlIEtWTSBNTVUgY29ycmVjdG5lc3NcXFwiXFxuLS1cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0yMjktXFxuYXJjaC94ODYva3ZtL0tjb25maWc6MjMwOmNvbmZpZyBLVk1fRVhURVJOQUxfV1JJVEVfVFJBQ0tJTkdcXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0yMzEtXFx0Ym9vbFxcbmFyY2gveDg2L2t2bS9LY29uZmlnLTIzMi1cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZzoyMzM6Y29uZmlnIEtWTV9NQVhfTlJfVkNQVVNcXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0yMzQtXFx0aW50IFxcXCJNYXhpbXVtIG51bWJlciBvZiB2Q1BVcyBwZXIgS1ZNIGd1ZXN0XFxcIlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wNlQyMDozNDozMi40MzEyNjM1NjlaIiwiU2VxIjo5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0NjkxMzQ2MTQxLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgS1ZNIENvbmZpZ3VyYXRpb24qKlxuXG5Pa2F5LCBzbyBJJ20gZGlnZ2luZyBpbnRvIHRoaXMgS1ZNIHN0dWZmLCBzcGVjaWZpY2FsbHkgbG9va2luZyBhdCB3aHkgdGhpcyBgaGFuZGxlX2FwaWNfZW9pX2luZHVjZWRgIGZ1bmN0aW9uIGlzIHByZXNlbnQuIE15IGluaXRpYWwgaW5zdGluY3QsIGdpdmVuIHRoZSBmdW5jdGlvbidzIGxvY2F0aW9uIGluIGB2bXguY2AsIHBvaW50cyBtZSBkaXJlY3RseSB0byB0aGUgYEtWTWAgYW5kIGBLVk1fSU5URUxgIGNvbmZpZ3VyYXRpb25zLiBTaW5jZSB0aGF0J3MgdGhlIGxpa2VseSBjb25maWd1cmF0aW9uLCBJJ2xsIG5lZWQgdG8gY2hlY2sgdGhlIGNvZGUgdGhhdCdzIHJlbGF0ZWQuIEknbSBnb2luZyB0byB0YWtlIGEgY2xvc2VyIGxvb2sgYXQgYGFyY2gveDg2L2t2bS92bXgvdm14LmNgIGFuZCBzcGVjaWZpY2FsbHksIHRoYXQgYGhhbmRsZV9hcGljX2VvaV9pbmR1Y2VkYCBmdW5jdGlvbi4gVGltZSB0byBzZWUgd2hhdCdzIGdvaW5nIG9uIGluIHRoZXJlIGFuZCB1bmRlcnN0YW5kIGl0cyByb2xlIGluIHRoZSB2aXJ0dWFsIG1hY2hpbmUuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjEwODkyLCJPdXRwdXRUb2tlbnMiOjQ1LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NzEsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDZUMjA6MzQ6MzcuMTIyNjEyMjJaIiwiU2VxIjoxMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjIzMTI1NzYwNCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJoYW5kbGVfYXBpY19lb2lfaW5kdWNlZFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJhcmNoL3g4Ni9rdm0vdm14L3ZteC5jXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImFyY2gveDg2L2t2bS92bXgvdm14LmM9NTg2ND1zdGF0aWMgaW50IGhhbmRsZV9hcGljX2FjY2VzcyhzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpXFxuLS1cXG5hcmNoL3g4Ni9rdm0vdm14L3ZteC5jLTU4ODUtXFxuYXJjaC94ODYva3ZtL3ZteC92bXguYzo1ODg2OnN0YXRpYyBpbnQgaGFuZGxlX2FwaWNfZW9pX2luZHVjZWQoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KVxcbmFyY2gveDg2L2t2bS92bXgvdm14LmMtNTg4Ny17XFxuLS1cXG5hcmNoL3g4Ni9rdm0vdm14L3ZteC5jPTYzMjY9c3RhdGljIGludCAoKmt2bV92bXhfZXhpdF9oYW5kbGVyc1tdKShzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpID0ge1xcbi0tXFxuYXJjaC94ODYva3ZtL3ZteC92bXguYy02MzU0LVxcdFtFWElUX1JFQVNPTl9BUElDX1dSSVRFXSAgICAgICAgICAgICAgPSBoYW5kbGVfYXBpY193cml0ZSxcXG5hcmNoL3g4Ni9rdm0vdm14L3ZteC5jOjYzNTU6XFx0W0VYSVRfUkVBU09OX0VPSV9JTkRVQ0VEXSAgICAgICAgICAgICA9IGhhbmRsZV9hcGljX2VvaV9pbmR1Y2VkLFxcbmFyY2gveDg2L2t2bS92bXgvdm14LmMtNjM1Ni1cXHRbRVhJVF9SRUFTT05fV0JJTlZEXSAgICAgICAgICAgICAgICAgID0ga3ZtX2VtdWxhdGVfd2JpbnZkLFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wNlQyMDozNDozNy4zNTM4Nzg2MjRaIiwiU2VxIjoxMSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MTI2Mzg1NTk2MjUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqTXkgQW5hbHlzaXMgb2YgdGhlIEtWTSBQYXRjaCdzIEZ1enppbmcgU2NvcGUqKlxuXG5Pa2F5LCBzbyB0aGUgY29kZSBjaGFuZ2UgdGFyZ2V0cyBBUElDIEVPSSBoYW5kbGluZyB3aXRoaW4gS1ZNLiBJIG5lZWQgdG8gcGlucG9pbnQgdGhlIHJlbGV2YW50IGNvbmZpZ3VyYXRpb25zIGFuZCBmb2N1cyBzeW1ib2xzIGZvciBmdXp6aW5nIHRoaXMuIExldCdzIHNlZS4uLlxuXG5gaGFuZGxlX2FwaWNfZW9pX2luZHVjZWRgIGlzIGRlZmluaXRlbHkgaW4gYHZteC5jYCwgd2hpY2ggdGVsbHMgbWUgdGhlIGBLVk1fSU5URUxgIGNvbmZpZ3VyYXRpb24gaXMga2V5IHNpbmNlIHRoYXQncyB3aGVyZSBWTVggc3VwcG9ydCBsaXZlcy4gR29vZCwgYEtWTWAgYW5kIGBLVk1fSU5URUxgIGFyZSBkZWZpbml0ZWx5IG9uIHRoZSBsaXN0LlxuXG5JIGFsc28gbmVlZCB0byBzZWUgaWYgYEtWTV9BTURgIGlzIHJlbGV2YW50IHNpbmNlIGBrdm1fYXBpY19zZXRfZW9pX2FjY2VsZXJhdGVkYCBpcyBiZWluZyBtb2RpZmllZC4gQWgsIHJpZ2h0LCB0aGF0IGZ1bmN0aW9uIGxpdmVzIGluIGBsYXBpYy5jYCBhbmQgaXMgdXNlZCBieSBib3RoIFZNWCBhbmQgU1ZNLiBCdXQgYGhhbmRsZV9hcGljX2VvaV9pbmR1Y2VkYCBpcyBzcGVjaWZpY2FsbHkgVk1YLCBzbyBJIGNhbiBleGNsdWRlIGBLVk1fQU1EYC4gVGhlIGltcG9ydGFudCBjb25maWdzIGhlcmUgYXJlIGp1c3QgYEtWTWAgYW5kIGBLVk1fSU5URUxgLlxuXG5XYWl0IGEgbWludXRlLCBga3ZtX2FwaWNfc2V0X2VvaV9hY2NlbGVyYXRlZGAgaXMgZXhwb3J0ZWQgZm9yIGludGVybmFsIEtWTSB1c2UuIFBlcmZlY3QhIFRoYXQgbWFrZXMgaXQgYSBzdHJvbmcgY2FuZGlkYXRlIGFzIGEgZm9jdXMgc3ltYm9sLCBldmVuIHRob3VnaCBpdCdzIHVzZWQgYnkgYm90aCBWTVggYW5kIFNWTS4gVGhhdCdzIGEgZ29vZCBwbGFjZSB0byBzdGFydC5cblxuTm93LCBsZXQncyByZWNhcCB0aGUgcmF0aW9uYWxlIGZvciBmdXp6aW5nIHRoaXMuIFRoZSBwYXRjaCBpcyBjaGFuZ2luZyB0aGUgZGF0YSB0eXBlcyBvZiBgcGVuZGluZ19pb2FwaWNfZW9pYCBhbmQgYHZlY3RvcmAgaW4gdGhlIEVPSSBoYW5kbGluZyBjb2RlIGZyb20gYGludGAgdG8gYHU4YC4gSXQncyBhbHNvIHJlbW92aW5nIGEgYEJVR19PTmAgaW4gYHZjcHVfZW50ZXJfZ3Vlc3RgLiBUaGVzZSBhcmUgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIGNvcmUgS1ZNIGxvZ2ljIHRoYXQgaXMgcmVhY2hlZCBkdXJpbmcgQVBJQyBpbnRlcnJ1cHQgaGFuZGxpbmcsIHRoZXJlZm9yZSB0aGlzIG5lZWRzIHRvIGJlIGZ1enplZC5cblxuU28sIHRvIHN1bW1hcml6ZSwgdGhlIGZvY3VzIHN5bWJvbHMgYXJlOiBga3ZtX2FwaWNfc2V0X2VvaV9hY2NlbGVyYXRlZGAgYW5kIGBoYW5kbGVfYXBpY19lb2lfaW5kdWNlZGAuIFRoZSByZWxldmFudCBjb25maWd1cmF0aW9ucyBhcmUgYEtWTWAgYW5kIGBLVk1fSU5URUxgLlxuXG5UaW1lIHRvIGNhbGwgdGhlIHNldC1yZXN1bHRzIGZ1bmN0aW9uIGFuZCBtb3ZlIGZvcndhcmQuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjExNTA5LCJPdXRwdXRUb2tlbnMiOjE1MywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjMyNywiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0wNlQyMDozNDo0OS45OTI0NDE4OTlaIiwiU2VxIjoxMiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNDQxMjI4ODAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIktWTVwiLFxuICAgIFwiS1ZNX0lOVEVMXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwia3ZtX2FwaWNfc2V0X2VvaV9hY2NlbGVyYXRlZFwiLFxuICAgIFwiaGFuZGxlX2FwaWNfZW9pX2luZHVjZWRcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgdHlwZSBvZiBgcGVuZGluZ19pb2FwaWNfZW9pYCBhbmQgYHZlY3RvcmAgYXJndW1lbnRzIGluIEtWTSdzIEFQSUMgRU9JIGhhbmRsaW5nIGNvZGUgZnJvbSBgaW50YCB0byBgdThgLiBJdCBhbHNvIHJlbW92ZXMgYSBgQlVHX09OYCBpbiBgdmNwdV9lbnRlcl9ndWVzdGAuIFRoZXNlIGFyZSBmdW5jdGlvbmFsIGNoYW5nZXMgaW4gcmVhY2hhYmxlIGNvcmUgS1ZNIGxvZ2ljIHRoYXQgaGFuZGxlcyBBUElDIGludGVycnVwdHMsIHNvIGl0IHNob3VsZCBiZSBmdXp6ZWQuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiS1ZNXCIsXG4gICAgXCJLVk1fSU5URUxcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJrdm1fYXBpY19zZXRfZW9pX2FjY2VsZXJhdGVkXCIsXG4gICAgXCJoYW5kbGVfYXBpY19lb2lfaW5kdWNlZFwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSB0eXBlIG9mIGBwZW5kaW5nX2lvYXBpY19lb2lgIGFuZCBgdmVjdG9yYCBhcmd1bWVudHMgaW4gS1ZNJ3MgQVBJQyBFT0kgaGFuZGxpbmcgY29kZSBmcm9tIGBpbnRgIHRvIGB1OGAuIEl0IGFsc28gcmVtb3ZlcyBhIGBCVUdfT05gIGluIGB2Y3B1X2VudGVyX2d1ZXN0YC4gVGhlc2UgYXJlIGZ1bmN0aW9uYWwgY2hhbmdlcyBpbiByZWFjaGFibGUgY29yZSBLVk0gbG9naWMgdGhhdCBoYW5kbGVzIEFQSUMgaW50ZXJydXB0cywgc28gaXQgc2hvdWxkIGJlIGZ1enplZC5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9XTsKCQkJaWYgKCFyYXdEYXRhIHx8IHJhd0RhdGEubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQlkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKTsKCQkJZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSk7CgkJCWRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKSB7CgkJCWNvbnN0IHN0YXRzID0gewoJCQkJbGxtOiB7IGNvdW50OiAwLCB0b2tlbnM6IDAsIGR1cmF0aW9uOiAwIH0sCgkJCQl0b29sOiB7IGNvdW50OiAwLCBkdXJhdGlvbjogMCB9CgkJCX07CgoJCQlyYXdEYXRhLmZvckVhY2gocyA9PiB7CgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsgCgkJCQlpZiAocy5UeXBlID09PSAibGxtIikgewoJCQkJCXN0YXRzLmxsbS5jb3VudCsrOwoJCQkJCXN0YXRzLmxsbS50b2tlbnMgKz0gKHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnMpOwoJCQkJCXN0YXRzLmxsbS5kdXJhdGlvbiArPSBkdXI7CgkJCQl9IGVsc2UgaWYgKHMuVHlwZSA9PT0gInRvb2wiKSB7CgkJCQkJc3RhdHMudG9vbC5jb3VudCsrOwoJCQkJCXN0YXRzLnRvb2wuZHVyYXRpb24gKz0gZHVyOwoJCQkJfQoJCQl9KTsKCgkJCWNvbnN0IGF2Z0xsbUR1ciA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLmR1cmF0aW9uIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnTGxtVG9rZW4gPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS50b2tlbnMgLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdUb29sRHVyID0gc3RhdHMudG9vbC5jb3VudCA+IDAgPyAoc3RhdHMudG9vbC5kdXJhdGlvbiAvIHN0YXRzLnRvb2wuY291bnQpLnRvRml4ZWQoMikgOiAwOwoKCQkJY29uc3QgbGxtU3VtYXJ5Q2VsbHMgPSBbc3RhdHMubGxtLmNvdW50LCBzdGF0cy5sbG0udG9rZW5zLCBhdmdMbG1Ub2tlbiwgc3RhdHMubGxtLmR1cmF0aW9uLCBhdmdMbG1EdXJdOwoJCQljb25zdCB0b29sU3VtbWFyeUNlbGxzID0gW3N0YXRzLnRvb2wuY291bnQsIHN0YXRzLnRvb2wuZHVyYXRpb24sIGF2Z1Rvb2xEdXJdOwoKCQkJY29uc3QgbGxtU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGxtX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQlsbG1TdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgbGxtVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQlsbG1TdW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJbGxtVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJbGxtU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQobGxtVHIpOwoKCQkJY29uc3QgdG9vbFN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rvb2xfc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgdG9vbFRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJdG9vbFN1bW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJdG9vbFRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZCh0b29sVHIpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBmaWx0ZXJlZFN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBbImxsbSIsICJ0b29sIl0uaW5jbHVkZXMoZC5UeXBlKSk7CgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ0R1cmF0aW9uJyk7CgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7IAoKCQkJZmlsdGVyZWRTdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJCgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsKCQkJCWxldCB0b29sdGlwID0gcy5OYW1lOwoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIgJiYgcy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoJCQkJZGF0YS5hZGRSb3coW2Ake3MuU2VxfWAsIGR1ciwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1RpbWUgQ29uc3VtcHRpb24gb2YgTExNL1Rvb2wgQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTS9Ub29sIFN0ZXBzJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ1NlY29uZHMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2R1cmF0aW9uX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBsbG1TdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gZC5UeXBlID09PSAibGxtIik7CgkJCWlmIChsbG1TdGVwcy5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwkJCQoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ1Rva2VucycpOwkJCQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICdzdHlsZSd9KTsJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7CQoKCQkJY29uc3QgYWdlbnRDb2xvcnMgPSB7fTsKCQkJY29uc3QgcGFsZXR0ZSA9IFsnIzQyODVGNCcsICcjREI0NDM3JywgJyNGNEI0MDAnLCAnIzBGOUQ1OCcsICcjQUI0N0JDJywgJyMwMEFDQzEnXTsKCQkJbGV0IGNvbG9ySWR4ID0gMDsKCQkJY29uc3QgYWdlbnRMTE1Db3VudHMgPSB7fTsKCQkJbGxtU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCWlmICghYWdlbnRDb2xvcnNbcy5OYW1lXSkgewoJCQkJCWFnZW50Q29sb3JzW3MuTmFtZV0gPSBwYWxldHRlW2NvbG9ySWR4ICUgcGFsZXR0ZS5sZW5ndGhdOwoJCQkJCWNvbG9ySWR4Kys7CgkJCQl9CgoJCQkJYWdlbnRMTE1Db3VudHNbcy5OYW1lXSA9IChhZ2VudExMTUNvdW50c1tzLk5hbWVdIHx8IDApICsgMTsKCQkJCWNvbnN0IGxhYmVsID0gYCR7cy5OYW1lfS0ke2FnZW50TExNQ291bnRzW3MuTmFtZV19YDsKCQkJCWNvbnN0IHRvdGFsVG9rZW5zID0gcy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2VuczsKCQkJCWNvbnN0IHN0eWxlID0gYGNvbG9yOiAke2FnZW50Q29sb3JzW3MuTmFtZV19YDsKCQkJCWxldCB0b29sdGlwID0gYFRvdGFsIFRva2VuczogJHt0b3RhbFRva2Vuc31cbihJbjogJHtzLklucHV0VG9rZW5zfSwgT3V0OiAke3MuT3V0cHV0VG9rZW5zfSwgVGhvdWdodHM6ICR7cy5PdXRwdXRUaG91Z2h0c1Rva2Vuc30pYDsKCQkJCWlmIChzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgoJCQkJZGF0YS5hZGRSb3coW2xhYmVsLCB0b3RhbFRva2Vucywgc3R5bGUsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUb2tlbiBDb25zdW1wdGlvbiBieSBMTE0gQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTSBDYWxsIFNlcXVlbmNlJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ0NvbnN1bWVkIFRva2VucycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9rZW5fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCQlsZXQgYWxsRXhwYW5kZWQgPSBmYWxzZTsKCQlmdW5jdGlvbiB0b2dnbGVBbGxEZXRhaWxzKCkgewoJCQlhbGxFeHBhbmRlZCA9ICFhbGxFeHBhbmRlZDsKCQkJZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnZGV0YWlscycpLmZvckVhY2goZCA9PiB7CgkJCQlpZiAoYWxsRXhwYW5kZWQpIGQuc2V0QXR0cmlidXRlKCdvcGVuJywgJycpOwoJCQkJZWxzZSBkLnJlbW92ZUF0dHJpYnV0ZSgnb3BlbicpOwoJCQl9KTsKCQl9Cgk8L3NjcmlwdD4KCgo8L2JvZHk+CjwvaHRtbD4K" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowsg7g8[1] Phase: Succeeded StartedAt: 2026-08-06 20:35:02 +0000 UTC FinishedAt: 2026-08-06 20:35:02 +0000 UTC Input: nil Output: nil --------- Name: series-workflowsg7g8[1].abort-on-skip-outcome Phase: Skipped StartedAt: 2026-08-06 20:35:02 +0000 UTC FinishedAt: 2026-08-06 20:35:02 +0000 UTC Input: nil Output: nil --------- Name: series-workflowsg7g8[2] Phase: Succeeded StartedAt: 2026-08-06 20:35:02 +0000 UTC FinishedAt: 2026-08-07 00:18:40 +0000 UTC Input: nil Output: nil --------- Name: series-workflowsg7g8[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a806d364ef288a6443a1337820ea8410a7ccc6b3","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM","KVM_INTEL"],"series_id":"","tree_name":"kvm-x86","tree_url":"https://github.com/kvm-x86/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_apic_set_eoi_accelerated","handle_apic_eoi_induced"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a806d364ef288a6443a1337820ea8410a7ccc6b3","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM","KVM_INTEL"],"series_id":"1aa0ff94-8b79-49cf-b96d-adcceaddc884","tree_name":"kvm-x86","tree_url":"https://github.com/kvm-x86/linux.git"},retest:null,track:KASAN) Phase: Succeeded StartedAt: 2026-08-06 20:35:02 +0000 UTC FinishedAt: 2026-08-07 00:18:40 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:element,Default:nil,Value:*{"base":{"arch":"amd64","commit_hash":"a806d364ef288a6443a1337820ea8410a7ccc6b3","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM","KVM_INTEL"],"series_id":"","tree_name":"kvm-x86","tree_url":"https://github.com/kvm-x86/linux.git"},"fuzz":{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_apic_set_eoi_accelerated","handle_apic_eoi_induced"],"skip_cover_check":false},"patched":{"arch":"amd64","commit_hash":"a806d364ef288a6443a1337820ea8410a7ccc6b3","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM","KVM_INTEL"],"series_id":"1aa0ff94-8b79-49cf-b96d-adcceaddc884","tree_name":"kvm-x86","tree_url":"https://github.com/kvm-x86/linux.git"},"retest":null,"track":"KASAN"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: nil --------- Name: series-workflowsg7g8[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a806d364ef288a6443a1337820ea8410a7ccc6b3","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM","KVM_INTEL"],"series_id":"","tree_name":"kvm-x86","tree_url":"https://github.com/kvm-x86/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_apic_set_eoi_accelerated","handle_apic_eoi_induced"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a806d364ef288a6443a1337820ea8410a7ccc6b3","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM","KVM_INTEL"],"series_id":"1aa0ff94-8b79-49cf-b96d-adcceaddc884","tree_name":"kvm-x86","tree_url":"https://github.com/kvm-x86/linux.git"},retest:null,track:KASAN)[0] Phase: Succeeded StartedAt: 2026-08-06 20:35:02 +0000 UTC FinishedAt: 2026-08-06 20:35:12 +0000 UTC Input: nil Output: nil --------- Name: series-workflowsg7g8[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a806d364ef288a6443a1337820ea8410a7ccc6b3","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM","KVM_INTEL"],"series_id":"","tree_name":"kvm-x86","tree_url":"https://github.com/kvm-x86/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_apic_set_eoi_accelerated","handle_apic_eoi_induced"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a806d364ef288a6443a1337820ea8410a7ccc6b3","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM","KVM_INTEL"],"series_id":"1aa0ff94-8b79-49cf-b96d-adcceaddc884","tree_name":"kvm-x86","tree_url":"https://github.com/kvm-x86/linux.git"},retest:null,track:KASAN)[0].save-base-req Phase: Succeeded StartedAt: 2026-08-06 20:35:02 +0000 UTC FinishedAt: 2026-08-06 20:35:08 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"a806d364ef288a6443a1337820ea8410a7ccc6b3","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM","KVM_INTEL"],"series_id":"","tree_name":"kvm-x86","tree_url":"https://github.com/kvm-x86/linux.git"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{Artifact{Name:artifact,Path:/tmp/artifact,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowsg7g8/series-workflowsg7g8-convert-artifact-1471928508/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowsg7g8[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a806d364ef288a6443a1337820ea8410a7ccc6b3","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM","KVM_INTEL"],"series_id":"","tree_name":"kvm-x86","tree_url":"https://github.com/kvm-x86/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_apic_set_eoi_accelerated","handle_apic_eoi_induced"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a806d364ef288a6443a1337820ea8410a7ccc6b3","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM","KVM_INTEL"],"series_id":"1aa0ff94-8b79-49cf-b96d-adcceaddc884","tree_name":"kvm-x86","tree_url":"https://github.com/kvm-x86/linux.git"},retest:null,track:KASAN)[1] Phase: Succeeded StartedAt: 2026-08-06 20:35:12 +0000 UTC FinishedAt: 2026-08-06 20:54:12 +0000 UTC Input: nil Output: nil --------- Name: series-workflowsg7g8[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a806d364ef288a6443a1337820ea8410a7ccc6b3","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM","KVM_INTEL"],"series_id":"","tree_name":"kvm-x86","tree_url":"https://github.com/kvm-x86/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_apic_set_eoi_accelerated","handle_apic_eoi_induced"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a806d364ef288a6443a1337820ea8410a7ccc6b3","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM","KVM_INTEL"],"series_id":"1aa0ff94-8b79-49cf-b96d-adcceaddc884","tree_name":"kvm-x86","tree_url":"https://github.com/kvm-x86/linux.git"},retest:null,track:KASAN)[1].base-build Phase: Succeeded StartedAt: 2026-08-06 20:35:12 +0000 UTC FinishedAt: 2026-08-06 20:54:12 +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:*d66af6fd-0ebe-4d18-89fc-90534e2a9d21,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-workflowsg7g8/series-workflowsg7g8-convert-artifact-1471928508/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": "bc5bd364-f7d8-47c6-ab5c-ab2779a3a6e6", "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-workflowsg7g8/series-workflowsg7g8-build-action-3816843754/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowsg7g8[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a806d364ef288a6443a1337820ea8410a7ccc6b3","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM","KVM_INTEL"],"series_id":"","tree_name":"kvm-x86","tree_url":"https://github.com/kvm-x86/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_apic_set_eoi_accelerated","handle_apic_eoi_induced"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a806d364ef288a6443a1337820ea8410a7ccc6b3","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM","KVM_INTEL"],"series_id":"1aa0ff94-8b79-49cf-b96d-adcceaddc884","tree_name":"kvm-x86","tree_url":"https://github.com/kvm-x86/linux.git"},retest:null,track:KASAN)[1].base-build(0) Phase: Succeeded StartedAt: 2026-08-06 20:35:12 +0000 UTC FinishedAt: 2026-08-06 20:54:02 +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:*d66af6fd-0ebe-4d18-89fc-90534e2a9d21,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-workflowsg7g8/series-workflowsg7g8-convert-artifact-1471928508/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": "bc5bd364-f7d8-47c6-ab5c-ab2779a3a6e6", "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-workflowsg7g8/series-workflowsg7g8-build-action-3816843754/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowsg7g8[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a806d364ef288a6443a1337820ea8410a7ccc6b3","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM","KVM_INTEL"],"series_id":"","tree_name":"kvm-x86","tree_url":"https://github.com/kvm-x86/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_apic_set_eoi_accelerated","handle_apic_eoi_induced"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a806d364ef288a6443a1337820ea8410a7ccc6b3","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM","KVM_INTEL"],"series_id":"1aa0ff94-8b79-49cf-b96d-adcceaddc884","tree_name":"kvm-x86","tree_url":"https://github.com/kvm-x86/linux.git"},retest:null,track:KASAN)[2] Phase: Succeeded StartedAt: 2026-08-06 20:54:12 +0000 UTC FinishedAt: 2026-08-06 20:54:12 +0000 UTC Input: nil Output: nil --------- Name: series-workflowsg7g8[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a806d364ef288a6443a1337820ea8410a7ccc6b3","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM","KVM_INTEL"],"series_id":"","tree_name":"kvm-x86","tree_url":"https://github.com/kvm-x86/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_apic_set_eoi_accelerated","handle_apic_eoi_induced"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a806d364ef288a6443a1337820ea8410a7ccc6b3","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM","KVM_INTEL"],"series_id":"1aa0ff94-8b79-49cf-b96d-adcceaddc884","tree_name":"kvm-x86","tree_url":"https://github.com/kvm-x86/linux.git"},retest:null,track:KASAN)[2].abort-if-base-build-failed Phase: Skipped StartedAt: 2026-08-06 20:54:12 +0000 UTC FinishedAt: 2026-08-06 20:54:12 +0000 UTC Input: nil Output: nil --------- Name: series-workflowsg7g8[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a806d364ef288a6443a1337820ea8410a7ccc6b3","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM","KVM_INTEL"],"series_id":"","tree_name":"kvm-x86","tree_url":"https://github.com/kvm-x86/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_apic_set_eoi_accelerated","handle_apic_eoi_induced"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a806d364ef288a6443a1337820ea8410a7ccc6b3","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM","KVM_INTEL"],"series_id":"1aa0ff94-8b79-49cf-b96d-adcceaddc884","tree_name":"kvm-x86","tree_url":"https://github.com/kvm-x86/linux.git"},retest:null,track:KASAN)[3] Phase: Succeeded StartedAt: 2026-08-06 20:54:12 +0000 UTC FinishedAt: 2026-08-06 20:54:22 +0000 UTC Input: nil Output: nil --------- Name: series-workflowsg7g8[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a806d364ef288a6443a1337820ea8410a7ccc6b3","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM","KVM_INTEL"],"series_id":"","tree_name":"kvm-x86","tree_url":"https://github.com/kvm-x86/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_apic_set_eoi_accelerated","handle_apic_eoi_induced"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a806d364ef288a6443a1337820ea8410a7ccc6b3","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM","KVM_INTEL"],"series_id":"1aa0ff94-8b79-49cf-b96d-adcceaddc884","tree_name":"kvm-x86","tree_url":"https://github.com/kvm-x86/linux.git"},retest:null,track:KASAN)[3].save-patched-req Phase: Succeeded StartedAt: 2026-08-06 20:54:12 +0000 UTC FinishedAt: 2026-08-06 20:54:19 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"a806d364ef288a6443a1337820ea8410a7ccc6b3","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM","KVM_INTEL"],"series_id":"1aa0ff94-8b79-49cf-b96d-adcceaddc884","tree_name":"kvm-x86","tree_url":"https://github.com/kvm-x86/linux.git"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{Artifact{Name:artifact,Path:/tmp/artifact,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowsg7g8/series-workflowsg7g8-convert-artifact-906805243/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowsg7g8[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a806d364ef288a6443a1337820ea8410a7ccc6b3","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM","KVM_INTEL"],"series_id":"","tree_name":"kvm-x86","tree_url":"https://github.com/kvm-x86/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_apic_set_eoi_accelerated","handle_apic_eoi_induced"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a806d364ef288a6443a1337820ea8410a7ccc6b3","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM","KVM_INTEL"],"series_id":"1aa0ff94-8b79-49cf-b96d-adcceaddc884","tree_name":"kvm-x86","tree_url":"https://github.com/kvm-x86/linux.git"},retest:null,track:KASAN)[4] Phase: Succeeded StartedAt: 2026-08-06 20:54:22 +0000 UTC FinishedAt: 2026-08-06 20:56:38 +0000 UTC Input: nil Output: nil --------- Name: series-workflowsg7g8[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a806d364ef288a6443a1337820ea8410a7ccc6b3","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM","KVM_INTEL"],"series_id":"","tree_name":"kvm-x86","tree_url":"https://github.com/kvm-x86/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_apic_set_eoi_accelerated","handle_apic_eoi_induced"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a806d364ef288a6443a1337820ea8410a7ccc6b3","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM","KVM_INTEL"],"series_id":"1aa0ff94-8b79-49cf-b96d-adcceaddc884","tree_name":"kvm-x86","tree_url":"https://github.com/kvm-x86/linux.git"},retest:null,track:KASAN)[4].boot-test-base Phase: Succeeded StartedAt: 2026-08-06 20:54:22 +0000 UTC FinishedAt: 2026-08-06 20:56:28 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*bc5bd364-f7d8-47c6-ab5c-ab2779a3a6e6,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-workflowsg7g8/series-workflowsg7g8-build-action-3816843754/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-workflowsg7g8[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a806d364ef288a6443a1337820ea8410a7ccc6b3","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM","KVM_INTEL"],"series_id":"","tree_name":"kvm-x86","tree_url":"https://github.com/kvm-x86/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_apic_set_eoi_accelerated","handle_apic_eoi_induced"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a806d364ef288a6443a1337820ea8410a7ccc6b3","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM","KVM_INTEL"],"series_id":"1aa0ff94-8b79-49cf-b96d-adcceaddc884","tree_name":"kvm-x86","tree_url":"https://github.com/kvm-x86/linux.git"},retest:null,track:KASAN)[5] Phase: Succeeded StartedAt: 2026-08-06 20:56:38 +0000 UTC FinishedAt: 2026-08-06 20:56:38 +0000 UTC Input: nil Output: nil --------- Name: series-workflowsg7g8[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a806d364ef288a6443a1337820ea8410a7ccc6b3","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM","KVM_INTEL"],"series_id":"","tree_name":"kvm-x86","tree_url":"https://github.com/kvm-x86/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_apic_set_eoi_accelerated","handle_apic_eoi_induced"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a806d364ef288a6443a1337820ea8410a7ccc6b3","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM","KVM_INTEL"],"series_id":"1aa0ff94-8b79-49cf-b96d-adcceaddc884","tree_name":"kvm-x86","tree_url":"https://github.com/kvm-x86/linux.git"},retest:null,track:KASAN)[5].abort-if-base-boot-failed Phase: Skipped StartedAt: 2026-08-06 20:56:38 +0000 UTC FinishedAt: 2026-08-06 20:56:38 +0000 UTC Input: nil Output: nil --------- Name: series-workflowsg7g8[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a806d364ef288a6443a1337820ea8410a7ccc6b3","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM","KVM_INTEL"],"series_id":"","tree_name":"kvm-x86","tree_url":"https://github.com/kvm-x86/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_apic_set_eoi_accelerated","handle_apic_eoi_induced"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a806d364ef288a6443a1337820ea8410a7ccc6b3","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM","KVM_INTEL"],"series_id":"1aa0ff94-8b79-49cf-b96d-adcceaddc884","tree_name":"kvm-x86","tree_url":"https://github.com/kvm-x86/linux.git"},retest:null,track:KASAN)[6] Phase: Succeeded StartedAt: 2026-08-06 20:56:38 +0000 UTC FinishedAt: 2026-08-06 21:15:11 +0000 UTC Input: nil Output: nil --------- Name: series-workflowsg7g8[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a806d364ef288a6443a1337820ea8410a7ccc6b3","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM","KVM_INTEL"],"series_id":"","tree_name":"kvm-x86","tree_url":"https://github.com/kvm-x86/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_apic_set_eoi_accelerated","handle_apic_eoi_induced"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a806d364ef288a6443a1337820ea8410a7ccc6b3","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM","KVM_INTEL"],"series_id":"1aa0ff94-8b79-49cf-b96d-adcceaddc884","tree_name":"kvm-x86","tree_url":"https://github.com/kvm-x86/linux.git"},retest:null,track:KASAN)[6].patched-build Phase: Succeeded StartedAt: 2026-08-06 20:56:38 +0000 UTC FinishedAt: 2026-08-06 21:15:11 +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:*d66af6fd-0ebe-4d18-89fc-90534e2a9d21,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-workflowsg7g8/series-workflowsg7g8-convert-artifact-906805243/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": "19fa268b-62bf-42be-9f60-83518ac38d6b", "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-workflowsg7g8/series-workflowsg7g8-build-action-2689283103/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowsg7g8[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a806d364ef288a6443a1337820ea8410a7ccc6b3","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM","KVM_INTEL"],"series_id":"","tree_name":"kvm-x86","tree_url":"https://github.com/kvm-x86/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_apic_set_eoi_accelerated","handle_apic_eoi_induced"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a806d364ef288a6443a1337820ea8410a7ccc6b3","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM","KVM_INTEL"],"series_id":"1aa0ff94-8b79-49cf-b96d-adcceaddc884","tree_name":"kvm-x86","tree_url":"https://github.com/kvm-x86/linux.git"},retest:null,track:KASAN)[6].patched-build(0) Phase: Succeeded StartedAt: 2026-08-06 20:56:38 +0000 UTC FinishedAt: 2026-08-06 21:15:01 +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:*d66af6fd-0ebe-4d18-89fc-90534e2a9d21,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-workflowsg7g8/series-workflowsg7g8-convert-artifact-906805243/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": "19fa268b-62bf-42be-9f60-83518ac38d6b", "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-workflowsg7g8/series-workflowsg7g8-build-action-2689283103/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowsg7g8[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a806d364ef288a6443a1337820ea8410a7ccc6b3","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM","KVM_INTEL"],"series_id":"","tree_name":"kvm-x86","tree_url":"https://github.com/kvm-x86/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_apic_set_eoi_accelerated","handle_apic_eoi_induced"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a806d364ef288a6443a1337820ea8410a7ccc6b3","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM","KVM_INTEL"],"series_id":"1aa0ff94-8b79-49cf-b96d-adcceaddc884","tree_name":"kvm-x86","tree_url":"https://github.com/kvm-x86/linux.git"},retest:null,track:KASAN)[7] Phase: Succeeded StartedAt: 2026-08-06 21:15:11 +0000 UTC FinishedAt: 2026-08-06 21:15:11 +0000 UTC Input: nil Output: nil --------- Name: series-workflowsg7g8[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a806d364ef288a6443a1337820ea8410a7ccc6b3","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM","KVM_INTEL"],"series_id":"","tree_name":"kvm-x86","tree_url":"https://github.com/kvm-x86/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_apic_set_eoi_accelerated","handle_apic_eoi_induced"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a806d364ef288a6443a1337820ea8410a7ccc6b3","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM","KVM_INTEL"],"series_id":"1aa0ff94-8b79-49cf-b96d-adcceaddc884","tree_name":"kvm-x86","tree_url":"https://github.com/kvm-x86/linux.git"},retest:null,track:KASAN)[7].abort-if-patched-build-failed Phase: Skipped StartedAt: 2026-08-06 21:15:11 +0000 UTC FinishedAt: 2026-08-06 21:15:11 +0000 UTC Input: nil Output: nil --------- Name: series-workflowsg7g8[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a806d364ef288a6443a1337820ea8410a7ccc6b3","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM","KVM_INTEL"],"series_id":"","tree_name":"kvm-x86","tree_url":"https://github.com/kvm-x86/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_apic_set_eoi_accelerated","handle_apic_eoi_induced"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a806d364ef288a6443a1337820ea8410a7ccc6b3","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM","KVM_INTEL"],"series_id":"1aa0ff94-8b79-49cf-b96d-adcceaddc884","tree_name":"kvm-x86","tree_url":"https://github.com/kvm-x86/linux.git"},retest:null,track:KASAN)[8] Phase: Succeeded StartedAt: 2026-08-06 21:15:11 +0000 UTC FinishedAt: 2026-08-06 21:17:16 +0000 UTC Input: nil Output: nil --------- Name: series-workflowsg7g8[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a806d364ef288a6443a1337820ea8410a7ccc6b3","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM","KVM_INTEL"],"series_id":"","tree_name":"kvm-x86","tree_url":"https://github.com/kvm-x86/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_apic_set_eoi_accelerated","handle_apic_eoi_induced"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a806d364ef288a6443a1337820ea8410a7ccc6b3","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM","KVM_INTEL"],"series_id":"1aa0ff94-8b79-49cf-b96d-adcceaddc884","tree_name":"kvm-x86","tree_url":"https://github.com/kvm-x86/linux.git"},retest:null,track:KASAN)[8].boot-test-patched Phase: Succeeded StartedAt: 2026-08-06 21:15:11 +0000 UTC FinishedAt: 2026-08-06 21:17:06 +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:*19fa268b-62bf-42be-9f60-83518ac38d6b,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-workflowsg7g8/series-workflowsg7g8-build-action-2689283103/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-workflowsg7g8[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a806d364ef288a6443a1337820ea8410a7ccc6b3","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM","KVM_INTEL"],"series_id":"","tree_name":"kvm-x86","tree_url":"https://github.com/kvm-x86/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_apic_set_eoi_accelerated","handle_apic_eoi_induced"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a806d364ef288a6443a1337820ea8410a7ccc6b3","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM","KVM_INTEL"],"series_id":"1aa0ff94-8b79-49cf-b96d-adcceaddc884","tree_name":"kvm-x86","tree_url":"https://github.com/kvm-x86/linux.git"},retest:null,track:KASAN)[10] Phase: Succeeded StartedAt: 2026-08-06 21:17:16 +0000 UTC FinishedAt: 2026-08-07 00:18:40 +0000 UTC Input: nil Output: nil --------- Name: series-workflowsg7g8[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a806d364ef288a6443a1337820ea8410a7ccc6b3","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM","KVM_INTEL"],"series_id":"","tree_name":"kvm-x86","tree_url":"https://github.com/kvm-x86/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_apic_set_eoi_accelerated","handle_apic_eoi_induced"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a806d364ef288a6443a1337820ea8410a7ccc6b3","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM","KVM_INTEL"],"series_id":"1aa0ff94-8b79-49cf-b96d-adcceaddc884","tree_name":"kvm-x86","tree_url":"https://github.com/kvm-x86/linux.git"},retest:null,track:KASAN)[10].run-fuzz Phase: Succeeded StartedAt: 2026-08-06 21:17:16 +0000 UTC FinishedAt: 2026-08-07 00:18:40 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:config,Default:nil,Value:*{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_apic_set_eoi_accelerated","handle_apic_eoi_induced"],"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:*bc5bd364-f7d8-47c6-ab5c-ab2779a3a6e6,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*19fa268b-62bf-42be-9f60-83518ac38d6b,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-workflowsg7g8/series-workflowsg7g8-build-action-3816843754/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-workflowsg7g8/series-workflowsg7g8-build-action-2689283103/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: nil --------- Name: series-workflowsg7g8[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a806d364ef288a6443a1337820ea8410a7ccc6b3","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM","KVM_INTEL"],"series_id":"","tree_name":"kvm-x86","tree_url":"https://github.com/kvm-x86/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_apic_set_eoi_accelerated","handle_apic_eoi_induced"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a806d364ef288a6443a1337820ea8410a7ccc6b3","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM","KVM_INTEL"],"series_id":"1aa0ff94-8b79-49cf-b96d-adcceaddc884","tree_name":"kvm-x86","tree_url":"https://github.com/kvm-x86/linux.git"},retest:null,track:KASAN)[10].run-fuzz[0] Phase: Succeeded StartedAt: 2026-08-06 21:17:16 +0000 UTC FinishedAt: 2026-08-06 21:17:26 +0000 UTC Input: nil Output: nil --------- Name: series-workflowsg7g8[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a806d364ef288a6443a1337820ea8410a7ccc6b3","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM","KVM_INTEL"],"series_id":"","tree_name":"kvm-x86","tree_url":"https://github.com/kvm-x86/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_apic_set_eoi_accelerated","handle_apic_eoi_induced"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a806d364ef288a6443a1337820ea8410a7ccc6b3","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM","KVM_INTEL"],"series_id":"1aa0ff94-8b79-49cf-b96d-adcceaddc884","tree_name":"kvm-x86","tree_url":"https://github.com/kvm-x86/linux.git"},retest:null,track:KASAN)[10].run-fuzz[0].save-fuzz-config Phase: Succeeded StartedAt: 2026-08-06 21:17:16 +0000 UTC FinishedAt: 2026-08-06 21:17:22 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_apic_set_eoi_accelerated","handle_apic_eoi_induced"],"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-workflowsg7g8/series-workflowsg7g8-convert-artifact-3526296820/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowsg7g8[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a806d364ef288a6443a1337820ea8410a7ccc6b3","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM","KVM_INTEL"],"series_id":"","tree_name":"kvm-x86","tree_url":"https://github.com/kvm-x86/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_apic_set_eoi_accelerated","handle_apic_eoi_induced"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a806d364ef288a6443a1337820ea8410a7ccc6b3","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM","KVM_INTEL"],"series_id":"1aa0ff94-8b79-49cf-b96d-adcceaddc884","tree_name":"kvm-x86","tree_url":"https://github.com/kvm-x86/linux.git"},retest:null,track:KASAN)[10].run-retest Phase: Skipped StartedAt: 2026-08-06 21:17:16 +0000 UTC FinishedAt: 2026-08-06 21:17:16 +0000 UTC Input: nil Output: nil --------- Name: series-workflowsg7g8[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a806d364ef288a6443a1337820ea8410a7ccc6b3","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM","KVM_INTEL"],"series_id":"","tree_name":"kvm-x86","tree_url":"https://github.com/kvm-x86/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_apic_set_eoi_accelerated","handle_apic_eoi_induced"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a806d364ef288a6443a1337820ea8410a7ccc6b3","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM","KVM_INTEL"],"series_id":"1aa0ff94-8b79-49cf-b96d-adcceaddc884","tree_name":"kvm-x86","tree_url":"https://github.com/kvm-x86/linux.git"},retest:null,track:KASAN)[9] Phase: Succeeded StartedAt: 2026-08-06 21:17:16 +0000 UTC FinishedAt: 2026-08-06 21:17:16 +0000 UTC Input: nil Output: nil --------- Name: series-workflowsg7g8[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a806d364ef288a6443a1337820ea8410a7ccc6b3","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM","KVM_INTEL"],"series_id":"","tree_name":"kvm-x86","tree_url":"https://github.com/kvm-x86/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_apic_set_eoi_accelerated","handle_apic_eoi_induced"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a806d364ef288a6443a1337820ea8410a7ccc6b3","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM","KVM_INTEL"],"series_id":"1aa0ff94-8b79-49cf-b96d-adcceaddc884","tree_name":"kvm-x86","tree_url":"https://github.com/kvm-x86/linux.git"},retest:null,track:KASAN)[9].abort-if-patched-boot-failed Phase: Skipped StartedAt: 2026-08-06 21:17:16 +0000 UTC FinishedAt: 2026-08-06 21:17:16 +0000 UTC Input: nil Output: nil --------- Name: series-workflowsg7g8[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a806d364ef288a6443a1337820ea8410a7ccc6b3","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM","KVM_INTEL"],"series_id":"","tree_name":"kvm-x86","tree_url":"https://github.com/kvm-x86/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_apic_set_eoi_accelerated","handle_apic_eoi_induced"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a806d364ef288a6443a1337820ea8410a7ccc6b3","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM","KVM_INTEL"],"series_id":"1aa0ff94-8b79-49cf-b96d-adcceaddc884","tree_name":"kvm-x86","tree_url":"https://github.com/kvm-x86/linux.git"},retest:null,track:KASAN)[10].run-fuzz[1] Phase: Succeeded StartedAt: 2026-08-06 21:17:26 +0000 UTC FinishedAt: 2026-08-07 00:18:40 +0000 UTC Input: nil Output: nil --------- Name: series-workflowsg7g8[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a806d364ef288a6443a1337820ea8410a7ccc6b3","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM","KVM_INTEL"],"series_id":"","tree_name":"kvm-x86","tree_url":"https://github.com/kvm-x86/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_apic_set_eoi_accelerated","handle_apic_eoi_induced"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a806d364ef288a6443a1337820ea8410a7ccc6b3","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM","KVM_INTEL"],"series_id":"1aa0ff94-8b79-49cf-b96d-adcceaddc884","tree_name":"kvm-x86","tree_url":"https://github.com/kvm-x86/linux.git"},retest:null,track:KASAN)[10].run-fuzz[1].fuzz Phase: Succeeded StartedAt: 2026-08-06 21:17:26 +0000 UTC FinishedAt: 2026-08-07 00:18:30 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*bc5bd364-f7d8-47c6-ab5c-ab2779a3a6e6,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*19fa268b-62bf-42be-9f60-83518ac38d6b,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-workflowsg7g8/series-workflowsg7g8-build-action-3816843754/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-workflowsg7g8/series-workflowsg7g8-build-action-2689283103/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-workflowsg7g8/series-workflowsg7g8-convert-artifact-3526296820/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,}