Name: series-workflow9jhvd Phase: Succeeded StartedAt: 2026-08-06 14:15:14 +0000 UTC FinishedAt: 2026-08-06 15:17:25 +0000 UTC Input: nil Output: nil --------- Name: series-workflow9jhvd[0] Phase: Succeeded StartedAt: 2026-08-06 14:15:14 +0000 UTC FinishedAt: 2026-08-06 14:36:33 +0000 UTC Input: nil Output: nil --------- Name: series-workflow9jhvd[0].run-triage Phase: Succeeded StartedAt: 2026-08-06 14:15:14 +0000 UTC FinishedAt: 2026-08-06 14:36:33 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "kvm-next", "tree_url": "https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/", "commit_hash": "7d3aae206663c4e006b25a1c7a20a4029e67da76", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "KVM" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "kvm-next", "tree_url": "https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/", "commit_hash": "7d3aae206663c4e006b25a1c7a20a4029e67da76", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "KVM" ], "series_id": "a6c520f3-69e0-4674-a656-eeaf6f4159c8" }, "track": "KASAN", "fuzz": { "focus": [ "kvm" ], "focus_symbols": [ "kvm_s390_reinject_machine_check", "s390_do_machine_check" ], "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+CgkJCTx0ZD4yMDI2LzA4LzA2IDE0OjM1PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0tWTSYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2t2bV9zMzkwX3JlaW5qZWN0X21hY2hpbmVfY2hlY2smIzM0OywKICAgICYjMzQ7czM5MF9kb19tYWNoaW5lX2NoZWNrJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIGhvdyBtYWNoaW5lIGNoZWNrcyBhcmUgaGFuZGxlZCBhbmQgcmVpbmplY3RlZCBpbnRvIEtWTSBndWVzdHMgb24gczM5MC4gSXQgY2hhbmdlcyBga3ZtX3MzOTBfcmVpbmplY3RfbWFjaGluZV9jaGVja2AgdG8gYWx3YXlzIGluamVjdCB0aGUgbWFjaGluZSBjaGVjayB0byB0aGUgc3BlY2lmaWMgdmNwdSByYXRoZXIgdGhhbiBhcyBhIGZsb2F0aW5nIG1hY2hpbmUgY2hlY2ssIGFuZCB1cGRhdGVzIHRoZSBgTUNDS19DT0RFX05PX0dVRVNUYCBtYXNrLiBUaGVzZSBhcmUgZnVuY3Rpb25hbCBjaGFuZ2VzIGluIHJlYWNoYWJsZSBLVk0gYW5kIGFyY2hpdGVjdHVyZS1zcGVjaWZpYyBjb2RlLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA2IDE0OjM1PC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5yZWFkLXBhdGNoLWRpZmY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtQYXRjaERpZmYmIzM0OzogJiMzNDtjb21taXQgOTQ0Nzk5MjkxZDcwYmZmNzk4YmFjZWUzYjMwYmQ1ZjgzZjBmNWIxMVxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBUaHUgQXVnIDYgMTQ6MzU6MzQgMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvYXJjaC9zMzkwL2luY2x1ZGUvYXNtL25taS5oIGIvYXJjaC9zMzkwL2luY2x1ZGUvYXNtL25taS5oXG5pbmRleCA2NDU0YzE1MzE4NTQ0Li5kZDI2YzIwYmQyMzEwIDEwMDY0NFxuLS0tIGEvYXJjaC9zMzkwL2luY2x1ZGUvYXNtL25taS5oXG4mIzQzOyYjNDM7JiM0MzsgYi9hcmNoL3MzOTAvaW5jbHVkZS9hc20vbm1pLmhcbkBAIC0yMiw2ICYjNDM7MjIsNyBAQFxuICNkZWZpbmUgTUNDS19DT0RFX1NZU1RFTV9EQU1BR0VcdFx0QklUKDYzKVxuICNkZWZpbmUgTUNDS19DT0RFX0VYVF9EQU1BR0VcdFx0QklUKDYzIC0gNSlcbiAjZGVmaW5lIE1DQ0tfQ09ERV9DUFx0XHRcdEJJVCg2MyAtIDkpXG4mIzQzOyNkZWZpbmUgTUNDS19DT0RFX0NLXHRcdFx0QklUKDYzIC0gMTEpXG4gI2RlZmluZSBNQ0NLX0NPREVfU1RHX0VSUk9SXHRcdEJJVCg2MyAtIDE2KVxuICNkZWZpbmUgTUNDS19DT0RFX1NUR19LRVlfRVJST1JcdFx0QklUKDYzIC0gMTgpXG4gI2RlZmluZSBNQ0NLX0NPREVfU1RHX0RFR1JBRFx0XHRCSVQoNjMgLSAxOSlcbmRpZmYgLS1naXQgYS9hcmNoL3MzOTAva2VybmVsL25taS5jIGIvYXJjaC9zMzkwL2tlcm5lbC9ubWkuY1xuaW5kZXggZTE3YTU5ZDRkNWE0MS4uNjUyYjk4Nzk1MjQzNiAxMDA2NDRcbi0tLSBhL2FyY2gvczM5MC9rZXJuZWwvbm1pLmNcbiYjNDM7JiM0MzsmIzQzOyBiL2FyY2gvczM5MC9rZXJuZWwvbm1pLmNcbkBAIC0zNDUsNyAmIzQzOzM0NSw3IEBAIHN0YXRpYyB2b2lkIG5vdHJhY2UgczM5MF9iYWNrdXBfbWNja19pbmZvKHN0cnVjdCBwdF9yZWdzICpyZWdzKVxuIFx0c2llX3BhZ2UgPSBjb250YWluZXJfb2Yoc2llX2Jsb2NrLCBzdHJ1Y3Qgc2llX3BhZ2UsIHNpZV9ibG9jayk7XG4gXHRtY2NrX2JhY2t1cCA9IFx1MDAyNnNpZV9wYWdlLVx1MDAzZW1jY2tfaW5mbztcbiBcdG1jY2tfYmFja3VwLVx1MDAzZW1jaWMgPSBnZXRfbG93Y29yZSgpLVx1MDAzZW1jY2tfaW50ZXJydXB0aW9uX2NvZGUgXHUwMDI2XG4tXHRcdFx0XHR+KE1DQ0tfQ09ERV9DUCB8IE1DQ0tfQ09ERV9FWFRfREFNQUdFKTtcbiYjNDM7XHRcdFx0fihNQ0NLX0NPREVfQ1AgfCBNQ0NLX0NPREVfRVhUX0RBTUFHRSB8IE1DQ0tfQ09ERV9DSyk7XG4gXHRtY2NrX2JhY2t1cC1cdTAwM2VleHRfZGFtYWdlX2NvZGUgPSBnZXRfbG93Y29yZSgpLVx1MDAzZWV4dGVybmFsX2RhbWFnZV9jb2RlO1xuIFx0bWNja19iYWNrdXAtXHUwMDNlZmFpbGluZ19zdG9yYWdlX2FkZHJlc3MgPSBnZXRfbG93Y29yZSgpLVx1MDAzZWZhaWxpbmdfc3RvcmFnZV9hZGRyZXNzO1xuIH1cbkBAIC0zNTcsNyAmIzQzOzM1Nyw3IEBAIE5PS1BST0JFX1NZTUJPTChzMzkwX2JhY2t1cF9tY2NrX2luZm8pO1xuICNkZWZpbmUgRURfU1RQX0lTTEFORFx0Nlx0LyogRXh0ZXJuYWwgZGFtYWdlIFNUUCBpc2xhbmQgY2hlY2sgKi9cbiAjZGVmaW5lIEVEX1NUUF9TWU5DXHQ3XHQvKiBFeHRlcm5hbCBkYW1hZ2UgU1RQIHN5bmMgY2hlY2sgKi9cbiBcbi0jZGVmaW5lIE1DQ0tfQ09ERV9OT19HVUVTVFx0KE1DQ0tfQ09ERV9DUCB8IE1DQ0tfQ09ERV9FWFRfREFNQUdFKVxuJiM0MzsjZGVmaW5lIE1DQ0tfQ09ERV9OT19HVUVTVFx0KE1DQ0tfQ09ERV9DUCB8IE1DQ0tfQ09ERV9FWFRfREFNQUdFIHwgTUNDS19DT0RFX0NLKVxuIFxuIC8qXG4gICogbWFjaGluZSBjaGVjayBoYW5kbGVyLlxuZGlmZiAtLWdpdCBhL2FyY2gvczM5MC9rdm0vaW50ZXJydXB0LmMgYi9hcmNoL3MzOTAva3ZtL2ludGVycnVwdC5jXG5pbmRleCA3NTE0ZDllMjQwM2MxLi4zMzc1YTk1NjYzN2JlIDEwMDY0NFxuLS0tIGEvYXJjaC9zMzkwL2t2bS9pbnRlcnJ1cHQuY1xuJiM0MzsmIzQzOyYjNDM7IGIvYXJjaC9zMzkwL2t2bS9pbnRlcnJ1cHQuY1xuQEAgLTMwOTksOSAmIzQzOzMwOTksNyBAQCBzdGF0aWMgaW50IHNldF9hZGFwdGVyX2ludChzdHJ1Y3Qga3ZtX2tlcm5lbF9pcnFfcm91dGluZ19lbnRyeSAqZSxcbiB2b2lkIGt2bV9zMzkwX3JlaW5qZWN0X21hY2hpbmVfY2hlY2soc3RydWN0IGt2bV92Y3B1ICp2Y3B1LFxuIFx0XHRcdFx0ICAgICBzdHJ1Y3QgbWNja192b2xhdGlsZV9pbmZvICptY2NrX2luZm8pXG4ge1xuLVx0c3RydWN0IGt2bV9zMzkwX2ludGVycnVwdF9pbmZvIGludGk7XG4tXHRzdHJ1Y3Qga3ZtX3MzOTBfaXJxIGlycTtcbi1cdHN0cnVjdCBrdm1fczM5MF9tY2hrX2luZm8gKm1jaGs7XG4mIzQzO1x0c3RydWN0IGt2bV9zMzkwX2lycSBpcnEgPSB7fTtcbiBcdHVuaW9uIG1jaSBtY2k7XG4gXHRfX3U2NCBjcjE0ID0gMDsgICAgICAgICAvKiB1cHBlciBiaXRzIGFyZSBub3QgdXNlZCAqL1xuIFx0aW50IHJjO1xuQEAgLTMxMjAsMjAgJiM0MzszMTE4LDE0IEBAIHZvaWQga3ZtX3MzOTBfcmVpbmplY3RfbWFjaGluZV9jaGVjayhzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsXG4gXHRpZiAobWNpLncpXG4gXHRcdGNyMTQgfD0gQ1IxNF9XQVJOSU5HX1NVQk1BU0s7XG4gXG4tXHRtY2hrID0gbWNpLmNrID8gXHUwMDI2aW50aS5tY2hrIDogXHUwMDI2aXJxLnUubWNoaztcbi1cdG1jaGstXHUwMDNlY3IxNCA9IGNyMTQ7XG4tXHRtY2hrLVx1MDAzZW1jaWMgPSBtY2NrX2luZm8tXHUwMDNlbWNpYztcbi1cdG1jaGstXHUwMDNlZXh0X2RhbWFnZV9jb2RlID0gbWNja19pbmZvLVx1MDAzZWV4dF9kYW1hZ2VfY29kZTtcbi1cdG1jaGstXHUwMDNlZmFpbGluZ19zdG9yYWdlX2FkZHJlc3MgPSBtY2NrX2luZm8tXHUwMDNlZmFpbGluZ19zdG9yYWdlX2FkZHJlc3M7XG4tXHRpZiAobWNpLmNrKSB7XG4tXHRcdC8qIEluamVjdCB0aGUgZmxvYXRpbmcgbWFjaGluZSBjaGVjayAqL1xuLVx0XHRpbnRpLnR5cGUgPSBLVk1fUzM5MF9NQ0hLO1xuLVx0XHRyYyA9IF9faW5qZWN0X3ZtKHZjcHUtXHUwMDNla3ZtLCBcdTAwMjZpbnRpKTtcbi1cdH0gZWxzZSB7XG4tXHRcdC8qIEluamVjdCB0aGUgbWFjaGluZSBjaGVjayB0byBzcGVjaWZpZWQgdmNwdSAqL1xuLVx0XHRpcnEudHlwZSA9IEtWTV9TMzkwX01DSEs7XG4tXHRcdHJjID0ga3ZtX3MzOTBfaW5qZWN0X3ZjcHUodmNwdSwgXHUwMDI2aXJxKTtcbi1cdH1cbiYjNDM7XHRpcnEudS5tY2hrLmNyMTQgPSBjcjE0O1xuJiM0MztcdGlycS51Lm1jaGsubWNpYyA9IG1jY2tfaW5mby1cdTAwM2VtY2ljO1xuJiM0MztcdGlycS51Lm1jaGsuZXh0X2RhbWFnZV9jb2RlID0gbWNja19pbmZvLVx1MDAzZWV4dF9kYW1hZ2VfY29kZTtcbiYjNDM7XHRpcnEudS5tY2hrLmZhaWxpbmdfc3RvcmFnZV9hZGRyZXNzID0gbWNja19pbmZvLVx1MDAzZWZhaWxpbmdfc3RvcmFnZV9hZGRyZXNzO1xuJiM0MztcbiYjNDM7XHQvKiBJbmplY3QgdGhlIG1hY2hpbmUgY2hlY2sgdG8gc3BlY2lmaWVkIHZjcHUgKi9cbiYjNDM7XHRpcnEudHlwZSA9IEtWTV9TMzkwX01DSEs7XG4mIzQzO1x0cmMgPSBrdm1fczM5MF9pbmplY3RfdmNwdSh2Y3B1LCBcdTAwMjZpcnEpO1xuIFx0V0FSTl9PTl9PTkNFKHJjKTtcbiB9XG4gXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDYgMTQ6MzU8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+YmVzdC1leHBlbnNpdmU8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0tWTSYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2t2bV9zMzkwX3JlaW5qZWN0X21hY2hpbmVfY2hlY2smIzM0OywKICAgICYjMzQ7czM5MF9kb19tYWNoaW5lX2NoZWNrJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIGhvdyBtYWNoaW5lIGNoZWNrcyBhcmUgaGFuZGxlZCBhbmQgcmVpbmplY3RlZCBpbnRvIEtWTSBndWVzdHMgb24gczM5MC4gSXQgY2hhbmdlcyBga3ZtX3MzOTBfcmVpbmplY3RfbWFjaGluZV9jaGVja2AgdG8gYWx3YXlzIGluamVjdCB0aGUgbWFjaGluZSBjaGVjayB0byB0aGUgc3BlY2lmaWMgdmNwdSByYXRoZXIgdGhhbiBhcyBhIGZsb2F0aW5nIG1hY2hpbmUgY2hlY2ssIGFuZCB1cGRhdGVzIHRoZSBgTUNDS19DT0RFX05PX0dVRVNUYCBtYXNrLiBUaGVzZSBhcmUgZnVuY3Rpb25hbCBjaGFuZ2VzIGluIHJlYWNoYWJsZSBLVk0gYW5kIGFyY2hpdGVjdHVyZS1zcGVjaWZpYyBjb2RlLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmUKaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseQp1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLgoKUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczoKLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLgotIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLgotIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy4KLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsCiAgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLgotIENvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLAogIGlvbmljLCBhbWRncHUpIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLgotIERyaXZlciAucmVtb3ZlLCAuc2h1dGRvd24sIG9yIHBjaV91bnJlZ2lzdGVyX2RyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKGUuZy4sIGlnYl9yZW1vdmUpCiAgdGhhdCBhcmUgZXhlY3V0ZWQgb25seSBkdXJpbmcgUENJIGhvdC11bnBsdWcgb3Igc3lzZnMgZHJpdmVyIHVuYmluZCBvcGVyYXRpb25zLgoKSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaAp0b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS4KCldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOgoxLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLgogICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy4KICAgUHJlZmVyIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIEFQSSBlbnRyeXBvaW50IGZ1bmN0aW9ucyBvdmVyIGludGVybmFsIHN0YXRpYyBoZWxwZXIgZnVuY3Rpb25zCiAgICh3aGljaCBhcmUgaW5saW5lZCBieSB0aGUgY29tcGlsZXIgYW5kIGRvIG5vdCBoYXZlIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMpLgoyLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS4KICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLgogICBBbHNvIGNoZWNrICYjMzQ7ZGVwZW5kcyBvbiYjMzQ7IGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlncwogICBuZWVkZWQgZm9yIEtidWlsZCB0byBjb21waWxlIHRoZSBjb2RlIHN0YXRpY2FsbHkgaW50byB2bWxpbnV4LiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3MKICAgb3V0cHV0IGFycmF5LCBhbmQgRE8gTk9UIGFkZCBhICYjMzk7Q09ORklHXyYjMzk7IHByZWZpeCAoZS5nLiwgcmV0dXJuICYjMzQ7TkVUX0lQVjQmIzM0OyBpbnN0ZWFkIG9mICYjMzQ7Q09ORklHX05FVF9JUFY0JiMzNDspLgpQcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy4KCgpVc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLgpJdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS4KSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlByb21wdDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOgpjb21taXQgOTQ0Nzk5MjkxZDcwYmZmNzk4YmFjZWUzYjMwYmQ1ZjgzZjBmNWIxMQpBdXRob3I6IHN5ei1jbHVzdGVyICZsdDt0cmlhZ2VAc3l6a2FsbGVyLmNvbSZndDsKRGF0ZTogICBUaHUgQXVnIDYgMTQ6MzU6MzQgMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9hcmNoL3MzOTAvaW5jbHVkZS9hc20vbm1pLmggYi9hcmNoL3MzOTAvaW5jbHVkZS9hc20vbm1pLmgKaW5kZXggNjQ1NGMxNTMxODU0NC4uZGQyNmMyMGJkMjMxMCAxMDA2NDQKLS0tIGEvYXJjaC9zMzkwL2luY2x1ZGUvYXNtL25taS5oCiYjNDM7JiM0MzsmIzQzOyBiL2FyY2gvczM5MC9pbmNsdWRlL2FzbS9ubWkuaApAQCAtMjIsNiAmIzQzOzIyLDcgQEAKICNkZWZpbmUgTUNDS19DT0RFX1NZU1RFTV9EQU1BR0UJCUJJVCg2MykKICNkZWZpbmUgTUNDS19DT0RFX0VYVF9EQU1BR0UJCUJJVCg2MyAtIDUpCiAjZGVmaW5lIE1DQ0tfQ09ERV9DUAkJCUJJVCg2MyAtIDkpCiYjNDM7I2RlZmluZSBNQ0NLX0NPREVfQ0sJCQlCSVQoNjMgLSAxMSkKICNkZWZpbmUgTUNDS19DT0RFX1NUR19FUlJPUgkJQklUKDYzIC0gMTYpCiAjZGVmaW5lIE1DQ0tfQ09ERV9TVEdfS0VZX0VSUk9SCQlCSVQoNjMgLSAxOCkKICNkZWZpbmUgTUNDS19DT0RFX1NUR19ERUdSQUQJCUJJVCg2MyAtIDE5KQpkaWZmIC0tZ2l0IGEvYXJjaC9zMzkwL2tlcm5lbC9ubWkuYyBiL2FyY2gvczM5MC9rZXJuZWwvbm1pLmMKaW5kZXggZTE3YTU5ZDRkNWE0MS4uNjUyYjk4Nzk1MjQzNiAxMDA2NDQKLS0tIGEvYXJjaC9zMzkwL2tlcm5lbC9ubWkuYwomIzQzOyYjNDM7JiM0MzsgYi9hcmNoL3MzOTAva2VybmVsL25taS5jCkBAIC0zNDUsNyAmIzQzOzM0NSw3IEBAIHN0YXRpYyB2b2lkIG5vdHJhY2UgczM5MF9iYWNrdXBfbWNja19pbmZvKHN0cnVjdCBwdF9yZWdzICpyZWdzKQogCXNpZV9wYWdlID0gY29udGFpbmVyX29mKHNpZV9ibG9jaywgc3RydWN0IHNpZV9wYWdlLCBzaWVfYmxvY2spOwogCW1jY2tfYmFja3VwID0gJmFtcDtzaWVfcGFnZS0mZ3Q7bWNja19pbmZvOwogCW1jY2tfYmFja3VwLSZndDttY2ljID0gZ2V0X2xvd2NvcmUoKS0mZ3Q7bWNja19pbnRlcnJ1cHRpb25fY29kZSAmYW1wOwotCQkJCX4oTUNDS19DT0RFX0NQIHwgTUNDS19DT0RFX0VYVF9EQU1BR0UpOwomIzQzOwkJCX4oTUNDS19DT0RFX0NQIHwgTUNDS19DT0RFX0VYVF9EQU1BR0UgfCBNQ0NLX0NPREVfQ0spOwogCW1jY2tfYmFja3VwLSZndDtleHRfZGFtYWdlX2NvZGUgPSBnZXRfbG93Y29yZSgpLSZndDtleHRlcm5hbF9kYW1hZ2VfY29kZTsKIAltY2NrX2JhY2t1cC0mZ3Q7ZmFpbGluZ19zdG9yYWdlX2FkZHJlc3MgPSBnZXRfbG93Y29yZSgpLSZndDtmYWlsaW5nX3N0b3JhZ2VfYWRkcmVzczsKIH0KQEAgLTM1Nyw3ICYjNDM7MzU3LDcgQEAgTk9LUFJPQkVfU1lNQk9MKHMzOTBfYmFja3VwX21jY2tfaW5mbyk7CiAjZGVmaW5lIEVEX1NUUF9JU0xBTkQJNgkvKiBFeHRlcm5hbCBkYW1hZ2UgU1RQIGlzbGFuZCBjaGVjayAqLwogI2RlZmluZSBFRF9TVFBfU1lOQwk3CS8qIEV4dGVybmFsIGRhbWFnZSBTVFAgc3luYyBjaGVjayAqLwogCi0jZGVmaW5lIE1DQ0tfQ09ERV9OT19HVUVTVAkoTUNDS19DT0RFX0NQIHwgTUNDS19DT0RFX0VYVF9EQU1BR0UpCiYjNDM7I2RlZmluZSBNQ0NLX0NPREVfTk9fR1VFU1QJKE1DQ0tfQ09ERV9DUCB8IE1DQ0tfQ09ERV9FWFRfREFNQUdFIHwgTUNDS19DT0RFX0NLKQogCiAvKgogICogbWFjaGluZSBjaGVjayBoYW5kbGVyLgpkaWZmIC0tZ2l0IGEvYXJjaC9zMzkwL2t2bS9pbnRlcnJ1cHQuYyBiL2FyY2gvczM5MC9rdm0vaW50ZXJydXB0LmMKaW5kZXggNzUxNGQ5ZTI0MDNjMS4uMzM3NWE5NTY2MzdiZSAxMDA2NDQKLS0tIGEvYXJjaC9zMzkwL2t2bS9pbnRlcnJ1cHQuYwomIzQzOyYjNDM7JiM0MzsgYi9hcmNoL3MzOTAva3ZtL2ludGVycnVwdC5jCkBAIC0zMDk5LDkgJiM0MzszMDk5LDcgQEAgc3RhdGljIGludCBzZXRfYWRhcHRlcl9pbnQoc3RydWN0IGt2bV9rZXJuZWxfaXJxX3JvdXRpbmdfZW50cnkgKmUsCiB2b2lkIGt2bV9zMzkwX3JlaW5qZWN0X21hY2hpbmVfY2hlY2soc3RydWN0IGt2bV92Y3B1ICp2Y3B1LAogCQkJCSAgICAgc3RydWN0IG1jY2tfdm9sYXRpbGVfaW5mbyAqbWNja19pbmZvKQogewotCXN0cnVjdCBrdm1fczM5MF9pbnRlcnJ1cHRfaW5mbyBpbnRpOwotCXN0cnVjdCBrdm1fczM5MF9pcnEgaXJxOwotCXN0cnVjdCBrdm1fczM5MF9tY2hrX2luZm8gKm1jaGs7CiYjNDM7CXN0cnVjdCBrdm1fczM5MF9pcnEgaXJxID0ge307CiAJdW5pb24gbWNpIG1jaTsKIAlfX3U2NCBjcjE0ID0gMDsgICAgICAgICAvKiB1cHBlciBiaXRzIGFyZSBub3QgdXNlZCAqLwogCWludCByYzsKQEAgLTMxMjAsMjAgJiM0MzszMTE4LDE0IEBAIHZvaWQga3ZtX3MzOTBfcmVpbmplY3RfbWFjaGluZV9jaGVjayhzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsCiAJaWYgKG1jaS53KQogCQljcjE0IHw9IENSMTRfV0FSTklOR19TVUJNQVNLOwogCi0JbWNoayA9IG1jaS5jayA/ICZhbXA7aW50aS5tY2hrIDogJmFtcDtpcnEudS5tY2hrOwotCW1jaGstJmd0O2NyMTQgPSBjcjE0OwotCW1jaGstJmd0O21jaWMgPSBtY2NrX2luZm8tJmd0O21jaWM7Ci0JbWNoay0mZ3Q7ZXh0X2RhbWFnZV9jb2RlID0gbWNja19pbmZvLSZndDtleHRfZGFtYWdlX2NvZGU7Ci0JbWNoay0mZ3Q7ZmFpbGluZ19zdG9yYWdlX2FkZHJlc3MgPSBtY2NrX2luZm8tJmd0O2ZhaWxpbmdfc3RvcmFnZV9hZGRyZXNzOwotCWlmIChtY2kuY2spIHsKLQkJLyogSW5qZWN0IHRoZSBmbG9hdGluZyBtYWNoaW5lIGNoZWNrICovCi0JCWludGkudHlwZSA9IEtWTV9TMzkwX01DSEs7Ci0JCXJjID0gX19pbmplY3Rfdm0odmNwdS0mZ3Q7a3ZtLCAmYW1wO2ludGkpOwotCX0gZWxzZSB7Ci0JCS8qIEluamVjdCB0aGUgbWFjaGluZSBjaGVjayB0byBzcGVjaWZpZWQgdmNwdSAqLwotCQlpcnEudHlwZSA9IEtWTV9TMzkwX01DSEs7Ci0JCXJjID0ga3ZtX3MzOTBfaW5qZWN0X3ZjcHUodmNwdSwgJmFtcDtpcnEpOwotCX0KJiM0MzsJaXJxLnUubWNoay5jcjE0ID0gY3IxNDsKJiM0MzsJaXJxLnUubWNoay5tY2ljID0gbWNja19pbmZvLSZndDttY2ljOwomIzQzOwlpcnEudS5tY2hrLmV4dF9kYW1hZ2VfY29kZSA9IG1jY2tfaW5mby0mZ3Q7ZXh0X2RhbWFnZV9jb2RlOwomIzQzOwlpcnEudS5tY2hrLmZhaWxpbmdfc3RvcmFnZV9hZGRyZXNzID0gbWNja19pbmZvLSZndDtmYWlsaW5nX3N0b3JhZ2VfYWRkcmVzczsKJiM0MzsKJiM0MzsJLyogSW5qZWN0IHRoZSBtYWNoaW5lIGNoZWNrIHRvIHNwZWNpZmllZCB2Y3B1ICovCiYjNDM7CWlycS50eXBlID0gS1ZNX1MzOTBfTUNISzsKJiM0MzsJcmMgPSBrdm1fczM5MF9pbmplY3RfdmNwdSh2Y3B1LCAmYW1wO2lycSk7CiAJV0FSTl9PTl9PTkNFKHJjKTsKIH0KIAo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNiAxNDozNTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzMzU3CgkJCQkJCQlvdXRwdXQ6IDI4CgkJCQkJCQl0aG91Z2h0czogMjQ4CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyBhIHMzOTAgQXJjaGl0ZWN0dXJlIFBhdGNoIGZvciBGdXp6aW5nIFBvdGVudGlhbCoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCB0YXJnZXRpbmcgdGhlIHMzOTAgYXJjaGl0ZWN0dXJlLCBzcGVjaWZpY2FsbHkgdG91Y2hpbmcgYG5taS5oYCwgYG5taS5jYCwgYW5kIGBpbnRlcnJ1cHQuY2AgZmlsZXMuIEl0IGxvb2tzIGxpa2UgaXQmIzM5O3MgYWRkaW5nIGBNQ0NLX0NPREVfQ0tgIHRvIGBNQ0NLX0NPREVfTk9fR1VFU1RgIGFuZCBpbnRyb2R1Y2luZyBgczM5MF9iYWNrdXBfbWNja19pbmZvYC4gVGhlIGNvcmUgY2hhbmdlIHNpbXBsaWZpZXMgYGt2bV9zMzkwX3JlaW5qZWN0X21hY2hpbmVfY2hlY2tgIGJ5IGVuc3VyaW5nIG1hY2hpbmUgY2hlY2tzIGFyZSBhbHdheXMgaW5qZWN0ZWQgdG8gYSBzcGVjaWZpYyB2Y3B1LgoKTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRvIGFzc2VzcyBpdHMgZnV6emFiaWxpdHkuIEdpdmVuIG15IGtub3dsZWRnZSwgSSBuZWVkIHRvIHBpbnBvaW50IHRoZSByZWxldmFudCBjb2RlOyBga3ZtX3MzOTBfcmVpbmplY3RfbWFjaGluZV9jaGVja2AgaXMgdGhlIGtleS4gVGhlIGNvZGUgcmVzaWRlcyBpbiBgYXJjaC9zMzkwL2t2bS9pbnRlcnJ1cHQuY2AgYW5kIGBhcmNoL3MzOTAva2VybmVsL25taS5jYCwgd2hpY2ggbWFrZXMgc2Vuc2UgYXMgdGhlc2UgYXJlIEtWTSBhbmQgYXJjaGl0ZWN0dXJlLXNwZWNpZmljIGZpbGVzLiBUaGUgYXJjaGl0ZWN0dXJlIGlzIHMzOTAsIGFuZCBTeXprYWxsZXIsIGEgcHJvbWluZW50IGZ1enplciwgc3VwcG9ydHMgczM5MHguIEkgbmVlZCB0byBtYWtlIHN1cmUgdGhpcyBpcyBjb21wYXRpYmxlLgoKU2luY2UgaXQmIzM5O3MgS1ZNLXJlbGF0ZWQsIEkgbmVlZCB0byB0cmFjZSB0aGUgY2FsbCBwYXRocyB0byBga3ZtX3MzOTBfcmVpbmplY3RfbWFjaGluZV9jaGVja2AgdG8gdW5kZXJzdGFuZCB0aGUgY29udGV4dHMgaXQmIzM5O3MgdXNlZCBpbiBhbmQgaWRlbnRpZnkgcG90ZW50aWFsIGVudHJ5IHBvaW50cyBmb3IgZnV6emluZy4gRmlndXJpbmcgb3V0IGhvdyBpdCYjMzk7cyBjYWxsZWQgd2lsbCBnaXZlIG1lIGEgYmV0dGVyIHVuZGVyc3RhbmRpbmcgb2YgaG93IHRoZSBwYXRjaCBjaGFuZ2VzIHRoZSBLVk0gYmVoYXZpb3IuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDYgMTQ6MzU8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7a3ZtX3MzOTBfcmVpbmplY3RfbWFjaGluZV9jaGVjayYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDthcmNoL3MzOTAva3ZtL2ludGVycnVwdC5jPTMwNzI9c3RhdGljIGludCBzZXRfYWRhcHRlcl9pbnQoc3RydWN0IGt2bV9rZXJuZWxfaXJxX3JvdXRpbmdfZW50cnkgKmUsXG4tLVxuYXJjaC9zMzkwL2t2bS9pbnRlcnJ1cHQuYy0zMDk4LSAqL1xuYXJjaC9zMzkwL2t2bS9pbnRlcnJ1cHQuYzozMDk5OnZvaWQga3ZtX3MzOTBfcmVpbmplY3RfbWFjaGluZV9jaGVjayhzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsXG5hcmNoL3MzOTAva3ZtL2ludGVycnVwdC5jLTMxMDAtXHRcdFx0XHQgICAgIHN0cnVjdCBtY2NrX3ZvbGF0aWxlX2luZm8gKm1jY2tfaW5mbylcbi0tXG5hcmNoL3MzOTAva3ZtL2t2bS1zMzkwLmM9NDcyNT1zdGF0aWMgaW50IHZjcHVfcG9zdF9ydW4oc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCBpbnQgc2llX3JldHVybilcbi0tXG5hcmNoL3MzOTAva3ZtL2t2bS1zMzkwLmMtNDc0NC1cdFx0bWNja19pbmZvID0gXHUwMDI2c2llX3BhZ2UtXHUwMDNlbWNja19pbmZvO1xuYXJjaC9zMzkwL2t2bS9rdm0tczM5MC5jOjQ3NDU6XHRcdGt2bV9zMzkwX3JlaW5qZWN0X21hY2hpbmVfY2hlY2sodmNwdSwgbWNja19pbmZvKTtcbmFyY2gvczM5MC9rdm0va3ZtLXMzOTAuYy00NzQ2LVx0XHRyZXR1cm4gMDtcbi0tXG5hcmNoL3MzOTAva3ZtL2t2bS1zMzkwLmg9NTc4PXN0YXRpYyBpbmxpbmUgaW50IGt2bV9zMzkwX3VzZV9zY2FfZW50cmllcyh2b2lkKVxuLS1cbmFyY2gvczM5MC9rdm0va3ZtLXMzOTAuaC01ODYtfVxuYXJjaC9zMzkwL2t2bS9rdm0tczM5MC5oOjU4Nzp2b2lkIGt2bV9zMzkwX3JlaW5qZWN0X21hY2hpbmVfY2hlY2soc3RydWN0IGt2bV92Y3B1ICp2Y3B1LFxuYXJjaC9zMzkwL2t2bS9rdm0tczM5MC5oLTU4OC1cdFx0XHRcdCAgICAgc3RydWN0IG1jY2tfdm9sYXRpbGVfaW5mbyAqbWNja19pbmZvKTtcbi0tXG5hcmNoL3MzOTAva3ZtL3ZzaWUuYz0xMTg3PXN0YXRpYyBpbnQgZG9fdnNpZV9ydW4oc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCBzdHJ1Y3QgdnNpZV9wYWdlICp2c2llX3BhZ2UsIHN0cnVjdCBnbWFwICpzZylcbi0tXG5hcmNoL3MzOTAva3ZtL3ZzaWUuYy0xMjUwLVx0aWYgKHNpZV9yZXR1cm4gPT0gU0lFNjRfUkVUVVJOX01DQ0spIHtcbmFyY2gvczM5MC9rdm0vdnNpZS5jOjEyNTE6XHRcdGt2bV9zMzkwX3JlaW5qZWN0X21hY2hpbmVfY2hlY2sodmNwdSwgXHUwMDI2dnNpZV9wYWdlLVx1MDAzZW1jY2tfaW5mbyk7XG5hcmNoL3MzOTAva3ZtL3ZzaWUuYy0xMjUyLVx0XHRyZXR1cm4gMDtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNiAxNDozNTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA0NjUwCgkJCQkJCQlvdXRwdXQ6IDI2CgkJCQkJCQl0aG91Z2h0czogMTYwCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyBhIEtWTSBzMzkwIE1hY2hpbmUgQ2hlY2sgUGF0Y2gqKgoKT2theSwgc28gdGhpcyBwYXRjaCBpcyBtb2RpZnlpbmcgYGt2bV9zMzkwX3JlaW5qZWN0X21hY2hpbmVfY2hlY2tgLiBJIGtub3cgdGhhdCBmdW5jdGlvbiBpcyBjYWxsZWQgZnJvbSBgdmNwdV9wb3N0X3J1bmAgYW5kIGBkb192c2llX3J1bmAsIHdoaWNoIGFyZSBib3RoIGNlbnRyYWwgdG8gS1ZNIGd1ZXN0IGV4ZWN1dGlvbiBvbiB0aGUgczM5MCBhcmNoaXRlY3R1cmUuIFRoaXMgc3Ryb25nbHkgc3VnZ2VzdHMgdGhhdCB3ZSYjMzk7cmUgZGVhbGluZyB3aXRoIGEgY29yZSBjb21wb25lbnQgb2YgaG93IHRoZSBoeXBlcnZpc29yIGhhbmRsZXMgZXJyb3JzIHRoYXQgaGFwcGVuICp3aXRoaW4qIHRoZSB2aXJ0dWFsIG1hY2hpbmUuIE15IGluaXRpYWwgdGhvdWdodCBpcywgaXMgdGhpcyBzb21ldGhpbmcgdGhhdCBjb3VsZCBiZSBmdXp6ZWQ/IEdpdmVuIHRoYXQgS1ZNIG9uIHMzOTAgaXMgYWxyZWFkeSBmdXp6YWJsZSAtIFN5emthbGxlciwgaWYgSSByZWNhbGwgY29ycmVjdGx5LCBoYXMgc29tZSBzMzkweCBLVk0gc3VwcG9ydCAtIHRoZSBwb3RlbnRpYWwgZm9yIGZpbmRpbmcgdnVsbmVyYWJpbGl0aWVzIHRocm91Z2ggZnV6emluZyBpcyBkZWZpbml0ZWx5IHRoZXJlLgoKSG93ZXZlciwgYSBxdWljayBzZWNvbmQgbG9vayByZXZlYWxzIHRoaXMgcGF0Y2ggaXNuJiMzOTt0IGp1c3QgYWJvdXQgcmVpbmplY3Rpb24uIEl0JiMzOTtzIGFsc28gdG91Y2hpbmcgYHMzOTBfYmFja3VwX21jY2tfaW5mb2Agd2hpY2gsIGdpdmVuIGl0cyBuYW1lLCBsaWtlbHkgbWVhbnMgYmFja2luZyB1cCBNYWNoaW5lIENoZWNrIENvZGUgaW5mb3JtYXRpb24gZm9yIHJlY292ZXJ5IG9yIGFuYWx5c2lzIHB1cnBvc2VzLCBhbmQgSSYjMzk7bSBpbnRlcmVzdGVkIGluIGtub3dpbmcgbW9yZSBhYm91dCBpdC4gTm93IEkgbmVlZCB0byBmaWd1cmUgb3V0IHdoZXJlIGBzMzkwX2JhY2t1cF9tY2NrX2luZm9gIGlzIGNhbGxlZC4gSXQgbWF5IGJlIGhlbHBmdWwgdG8gdW5kZXJzdGFuZCB0aGUgZnVsbCBjb250ZXh0IG9mIHRoZSBjaGFuZ2VzLiBUaGlzIGNvdWxkIGJlIGEgY3JpdGljYWwgYXJlYSwgcG90ZW50aWFsbHkgcmVsYXRlZCB0byBoYW5kbGluZyBjb3JydXB0IHN0YXRlcywgb3IgbWF5YmUgZXZlbiB0byBleHBsb2l0aW5nIHJhY2UgY29uZGl0aW9ucyBhcm91bmQgZXJyb3IgaGFuZGxpbmcuIExldCYjMzk7cyBkaWcgZGVlcGVyIGFuZCBnZXQgYSBmdWxsIHBpY3R1cmUuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDYgMTQ6MzU8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7czM5MF9iYWNrdXBfbWNja19pbmZvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2FyY2gvczM5MC9rZXJuZWwvbm1pLmM9MzI4PU5PS1BST0JFX1NZTUJPTChubWlfcmVnaXN0ZXJzX3ZhbGlkKTtcbi0tXG5hcmNoL3MzOTAva2VybmVsL25taS5jLTMzMi0gKi9cbmFyY2gvczM5MC9rZXJuZWwvbm1pLmM6MzMzOnN0YXRpYyB2b2lkIG5vdHJhY2UgczM5MF9iYWNrdXBfbWNja19pbmZvKHN0cnVjdCBwdF9yZWdzICpyZWdzKVxuYXJjaC9zMzkwL2tlcm5lbC9ubWkuYy0zMzQte1xuLS1cbmFyY2gvczM5MC9rZXJuZWwvbm1pLmMtMzUxLX1cbmFyY2gvczM5MC9rZXJuZWwvbm1pLmM6MzUyOk5PS1BST0JFX1NZTUJPTChzMzkwX2JhY2t1cF9tY2NrX2luZm8pO1xuYXJjaC9zMzkwL2tlcm5lbC9ubWkuYy0zNTMtXG4tLVxuYXJjaC9zMzkwL2tlcm5lbC9ubWkuYz0zNjU9dm9pZCBub3RyYWNlIHMzOTBfZG9fbWFjaGluZV9jaGVjayhzdHJ1Y3QgcHRfcmVncyAqcmVncylcbi0tXG5hcmNoL3MzOTAva2VybmVsL25taS5jLTQ0NC1cdGlmICh0ZXN0X2NwdV9mbGFnKENJRl9NQ0NLX0dVRVNUKSlcbmFyY2gvczM5MC9rZXJuZWwvbm1pLmM6NDQ1Olx0XHRzMzkwX2JhY2t1cF9tY2NrX2luZm8ocmVncyk7XG5hcmNoL3MzOTAva2VybmVsL25taS5jLTQ0Ni1cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD43LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNiAxNDozNTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA1NDg3CgkJCQkJCQlvdXRwdXQ6IDI0CgkJCQkJCQl0aG91Z2h0czogNDExCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgczM5MHggTWFjaGluZSBDaGVjayBIYW5kbGluZyBpbiBLVk0qKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgYHMzOTBfZG9fbWFjaGluZV9jaGVja2AgZnVuY3Rpb24sIHdoaWNoIGNhbGxzIGBzMzkwX2JhY2t1cF9tY2NrX2luZm9gLiBUaGlzIGlzIHRoZSBhcmNoaXRlY3R1cmUtc3BlY2lmaWMgbWFjaGluZSBjaGVjayBoYW5kbGVyIGZvciBzMzkweCwgYW5kIHRoZSBjb3JlIG9mIG15IHF1ZXN0aW9uIGlzOiBjYW4gc3l6a2FsbGVyIGFjdHVhbGx5IHRyaWdnZXIgdGhlc2UgbWFjaGluZSBjaGVja3M/IE5vcm1hbGx5LCBtYWNoaW5lIGNoZWNrcyBhcmUgaGFyZHdhcmUgZXJyb3JzLCByaWdodD8gQnV0IHdpdGggS1ZNLCB0aGluZ3MgZ2V0IGEgYml0IGZ1enppZXIuIFBlcmhhcHMgd2UgY291bGQgaW5qZWN0IHRoZW0sIG9yIHBlcmhhcHMgc29tZSBndWVzdCBhY3Rpb24gY291bGQgY2F1c2Ugb25lPwoKQWN0dWFsbHksIGlmIGl0ICppcyogYSBoYXJkd2FyZSBlcnJvciwgY2FuIHN5emthbGxlciBldmVuIHRvdWNoIGl0PyBUaGVuIEkgcmVtZW1iZXI6IHN5emthbGxlciAqY2FuKiB1c2UgYC9kZXYva3ZtYCB0byBlaXRoZXIgaW5qZWN0IG1hY2hpbmUgY2hlY2tzIGRpcmVjdGx5IGludG8gdGhlIGd1ZXN0IG9yIG1heWJlIHRoZSBndWVzdCBpdHNlbGYgdHJpZ2dlcnMgaXQgc29tZWhvdy4KClRoZSBwYXRjaCBJJiMzOTttIGV4YW1pbmluZyBtb2RpZmllcyBga3ZtX3MzOTBfcmVpbmplY3RfbWFjaGluZV9jaGVja2AuIFRoaXMgZnVuY3Rpb24gaXMgdHJpZ2dlcmVkIHdoZW4gYHNpZV9yZXR1cm4gPT0gU0lFNjRfUkVUVVJOX01DQ0tgLiBUaGF04oCZcyB0aGUga2V5ISBJdCBoYXBwZW5zIHdoZW4gdGhlIGhhcmR3YXJlLCBvciBtb3JlIHJlYWxpc3RpY2FsbHksIHRoZSBoeXBlcnZpc29yLCByZXR1cm5zIGZyb20gdGhlIFNJRSBpbnN0cnVjdGlvbiB3aXRoIGEgbWFjaGluZSBjaGVjayBpbmRpY2F0aW9uLiBUaGF0IG1ha2VzIG1lIHRoaW5rOiBDYW4gdGhlIGd1ZXN0ICphY3R1YWxseSogdHJpZ2dlciBhIG1hY2hpbmUgY2hlY2s/IFNvbWV0aW1lcyB5ZXMsIGJ1dCB1c3VhbGx5IGl0IGlzIGluamVjdGVkIGJ5IHRoZSBob3N0LgoKSWYgc3l6a2FsbGVyIGlzIGZ1enppbmcgS1ZNIGZyb20gdGhlIGhvc3QsIGl0IGNhbiB1c2UgS1ZNIGlvY3RscyB0byBpbmplY3QgdGhlc2UgY2hlY2tzLCBvciBtYXliZSBjb25maWd1cmUgdGhlIGd1ZXN0IGluIGEgd2F5IHRoYXQgaW5kaXJlY3RseSBjYXVzZXMgYSBtYWNoaW5lIGNoZWNrLgoKSGFuZyBvbuKApiBMZXQgbWUgbWFrZSBzdXJlIEkmIzM5O20gZm9sbG93aW5nLiBga3ZtX3MzOTBfcmVpbmplY3RfbWFjaGluZV9jaGVja2AgaXMgY2FsbGVkIHdoZW4gYHZjcHVfcG9zdF9ydW5gIGRldGVjdHMgYHNpZV9yZXR1cm4gPT0gU0lFNjRfUkVUVVJOX01DQ0tgLiBUaGF0IG1lYW5zIHRoZSBob3N0IGtlcm5lbCBpcyBydW5uaW5nIHRoZSBgS1ZNX1JVTmAgaW9jdGwsIGFuZCB0aGUgU0lFIGluc3RydWN0aW9uIHdpdGhpbiBLVk0gcmV0dXJucyB3aXRoIGEgbWFjaGluZSBjaGVjayBpbmRpY2F0aW9uLiBUaGlzIGlzIHRoZSBtZWNoYW5pc20hCgpTbyB0aGUgY3JpdGljYWwgcXVlc3Rpb24gaXM6IENhbiB3ZSBhY3R1YWxseSBtYW5pcHVsYXRlIHRoaXMgZmxvdyB3aXRoIHN5emthbGxlcj8gSWYgc3l6a2FsbGVyIGlzIHJ1bm5pbmcgb24gczM5MHgsIGl0IGNhbiBjYWxsIGBLVk1fUlVOYC4gSWYgdGhlIGd1ZXN0IGRvZXMgc29tZXRoaW5nIHRvIGFjdHVhbGx5ICp0cmlnZ2VyKiBhIG1hY2hpbmUgY2hlY2ssIG9yIGlmIHdlIGNhbiBpbmplY3Qgb25lLCBtYXliZSB3ZSYjMzk7dmUgZ290IGEgc2hvdC4KCldhaXQgYSBzZWNvbmQsIGBrdm1fczM5MF9yZWluamVjdF9tYWNoaW5lX2NoZWNrYCBpcyAqZGVmaW5pdGVseSogYSBLVk0gZnVuY3Rpb24uIExldCYjMzk7cyBjaGVjayBgS1ZNX1MzOTBfTUNIS2AgaW5qZWN0aW9uLiBMZXQmIzM5O3MgbG9vayBhdCB0aGF0IHBhdGghCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDYgMTQ6MzU8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7S1ZNX1MzOTBfTUNISyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtEb2N1bWVudGF0aW9uL3ZpcnQva3ZtL2FwaS5yc3Q9MzI5Nz1LVk1fUzM5MF9JTlRfSU8oYWksY3NzaWQsc3NpZCxzY2hpZCkgKHZtKVxuLS1cbkRvY3VtZW50YXRpb24vdmlydC9rdm0vYXBpLnJzdC0zMzAxLSAgICAgIGludGVycnVwdGlvbiBzdWJjbGFzcylcbkRvY3VtZW50YXRpb24vdmlydC9rdm0vYXBpLnJzdDozMzAyOktWTV9TMzkwX01DSEsgKHZtLCB2Y3B1KVxuRG9jdW1lbnRhdGlvbi92aXJ0L2t2bS9hcGkucnN0LTMzMDMtICAgIC0gbWFjaGluZSBjaGVjayBpbnRlcnJ1cHQ7IGNyIDE0IGJpdHMgaW4gcGFybSwgbWFjaGluZSBjaGVjayBpbnRlcnJ1cHRcbi0tXG5Eb2N1bWVudGF0aW9uL3ZpcnQva3ZtL2FwaS5yc3Q9NDEwOT10eXBlIGNhbiBiZSBvbmUgb2YgdGhlIGZvbGxvd2luZzpcbi0tXG5Eb2N1bWVudGF0aW9uL3ZpcnQva3ZtL2FwaS5yc3QtNDExOC0tIEtWTV9TMzkwX0lOVF9FWFRFUk5BTF9DQUxMIC0gc2lncCBleHRlcm5hbCBjYWxsOyBwYXJhbWV0ZXJzIGluIC5leHRjYWxsXG5Eb2N1bWVudGF0aW9uL3ZpcnQva3ZtL2FwaS5yc3Q6NDExOTotIEtWTV9TMzkwX01DSEsgLSBtYWNoaW5lIGNoZWNrIGludGVycnVwdDsgcGFyYW1ldGVycyBpbiAubWNoa1xuRG9jdW1lbnRhdGlvbi92aXJ0L2t2bS9hcGkucnN0LTQxMjAtXG4tLVxuYXJjaC9zMzkwL2luY2x1ZGUvdWFwaS9hc20va3ZtLmg9OTY9c3RydWN0IGt2bV9zMzkwX3BzdyB7XG4tLVxuYXJjaC9zMzkwL2luY2x1ZGUvdWFwaS9hc20va3ZtLmgtMTA3LSNkZWZpbmUgS1ZNX1MzOTBfSU5UX1BGQVVMVF9ET05FXHQweGZmZmUwMDA1dVxuYXJjaC9zMzkwL2luY2x1ZGUvdWFwaS9hc20va3ZtLmg6MTA4OiNkZWZpbmUgS1ZNX1MzOTBfTUNIS1x0XHRcdDB4ZmZmZTEwMDB1XG5hcmNoL3MzOTAvaW5jbHVkZS91YXBpL2FzbS9rdm0uaC0xMDktI2RlZmluZSBLVk1fUzM5MF9JTlRfQ0xPQ0tfQ09NUFx0XHQweGZmZmYxMDA0dVxuLS1cbmFyY2gvczM5MC9rdm0vaW50ZXJydXB0LmM9NjIwPXN0YXRpYyBpbnQgX19tdXN0X2NoZWNrIF9fZGVsaXZlcl9tYWNoaW5lX2NoZWNrKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSlcbi0tXG5hcmNoL3MzOTAva3ZtL2ludGVycnVwdC5jLTY2My1cdFx0dHJhY2Vfa3ZtX3MzOTBfZGVsaXZlcl9pbnRlcnJ1cHQodmNwdS1cdTAwM2V2Y3B1X2lkLFxuYXJjaC9zMzkwL2t2bS9pbnRlcnJ1cHQuYzo2NjQ6XHRcdFx0XHRcdFx0IEtWTV9TMzkwX01DSEssXG5hcmNoL3MzOTAva3ZtL2ludGVycnVwdC5jLTY2NS1cdFx0XHRcdFx0XHQgbWNoay5jcjE0LCBtY2hrLm1jaWMpO1xuLS1cbmFyY2gvczM5MC9rdm0vaW50ZXJydXB0LmM9MTYwMz1zdGF0aWMgaW50IF9faW5qZWN0X21jaGsoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCBzdHJ1Y3Qga3ZtX3MzOTBfaXJxICppcnEpXG4tLVxuYXJjaC9zMzkwL2t2bS9pbnRlcnJ1cHQuYy0xNjEwLVx0XHQgICBpcnEtXHUwMDNldS5tY2hrLm1jaWMpO1xuYXJjaC9zMzkwL2t2bS9pbnRlcnJ1cHQuYzoxNjExOlx0dHJhY2Vfa3ZtX3MzOTBfaW5qZWN0X3ZjcHUodmNwdS1cdTAwM2V2Y3B1X2lkLCBLVk1fUzM5MF9NQ0hLLCAwLFxuYXJjaC9zMzkwL2t2bS9pbnRlcnJ1cHQuYy0xNjEyLVx0XHRcdFx0ICAgaXJxLVx1MDAzZXUubWNoay5tY2ljKTtcbi0tXG5hcmNoL3MzOTAva3ZtL2ludGVycnVwdC5jPTE5MTI9c3RhdGljIHZvaWQgX19mbG9hdGluZ19pcnFfa2ljayhzdHJ1Y3Qga3ZtICprdm0sIHU2NCB0eXBlKVxuLS1cbmFyY2gvczM5MC9rdm0vaW50ZXJydXB0LmMtMTkzMi1cdHN3aXRjaCAodHlwZSkge1xuYXJjaC9zMzkwL2t2bS9pbnRlcnJ1cHQuYzoxOTMzOlx0Y2FzZSBLVk1fUzM5MF9NQ0hLOlxuYXJjaC9zMzkwL2t2bS9pbnRlcnJ1cHQuYy0xOTM0LVx0XHRrdm1fczM5MF9zZXRfY3B1ZmxhZ3MoZHN0X3ZjcHUsIENQVVNUQVRfU1RPUF9JTlQpO1xuLS1cbmFyY2gvczM5MC9rdm0vaW50ZXJydXB0LmM9MTk0OT1zdGF0aWMgaW50IF9faW5qZWN0X3ZtKHN0cnVjdCBrdm0gKmt2bSwgc3RydWN0IGt2bV9zMzkwX2ludGVycnVwdF9pbmZvICppbnRpKVxuLS1cbmFyY2gvczM5MC9rdm0vaW50ZXJydXB0LmMtMTk1NC1cdHN3aXRjaCAodHlwZSkge1xuYXJjaC9zMzkwL2t2bS9pbnRlcnJ1cHQuYzoxOTU1Olx0Y2FzZSBLVk1fUzM5MF9NQ0hLOlxuYXJjaC9zMzkwL2t2bS9pbnRlcnJ1cHQuYy0xOTU2LVx0XHRyYyA9IF9faW5qZWN0X2Zsb2F0X21jaGsoa3ZtLCBpbnRpKTtcbi0tXG5hcmNoL3MzOTAva3ZtL2ludGVycnVwdC5jPTE5ODA9aW50IGt2bV9zMzkwX2luamVjdF92bShzdHJ1Y3Qga3ZtICprdm0sXG4tLVxuYXJjaC9zMzkwL2t2bS9pbnRlcnJ1cHQuYy0xOTk5LVx0XHRicmVhaztcbmFyY2gvczM5MC9rdm0vaW50ZXJydXB0LmM6MjAwMDpcdGNhc2UgS1ZNX1MzOTBfTUNISzpcbmFyY2gvczM5MC9rdm0vaW50ZXJydXB0LmMtMjAwMS1cdFx0Vk1fRVZFTlQoa3ZtLCAzLCBcJiMzNDtpbmplY3Q6IG1hY2hpbmUgY2hlY2sgbWNpYyAweCVsbHhcJiMzNDssXG4tLVxuYXJjaC9zMzkwL2t2bS9pbnRlcnJ1cHQuYz0yMDI5PWludCBzMzkwaW50X3RvX3MzOTBpcnEoc3RydWN0IGt2bV9zMzkwX2ludGVycnVwdCAqczM5MGludCxcbi0tXG5hcmNoL3MzOTAva3ZtL2ludGVycnVwdC5jLTIwNTQtXHRcdGJyZWFrO1xuYXJjaC9zMzkwL2t2bS9pbnRlcnJ1cHQuYzoyMDU1Olx0Y2FzZSBLVk1fUzM5MF9NQ0hLOlxuYXJjaC9zMzkwL2t2bS9pbnRlcnJ1cHQuYy0yMDU2LVx0XHRpcnEtXHUwMDNldS5tY2hrLm1jaWMgPSBzMzkwaW50LVx1MDAzZXBhcm02NDtcbi0tXG5hcmNoL3MzOTAva3ZtL2ludGVycnVwdC5jPTIwOTY9c3RhdGljIGludCBkb19pbmplY3RfdmNwdShzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIHN0cnVjdCBrdm1fczM5MF9pcnEgKmlycSlcbi0tXG5hcmNoL3MzOTAva3ZtL2ludGVycnVwdC5jLTIxMjQtXHRcdGJyZWFrO1xuYXJjaC9zMzkwL2t2bS9pbnRlcnJ1cHQuYzoyMTI1Olx0Y2FzZSBLVk1fUzM5MF9NQ0hLOlxuYXJjaC9zMzkwL2t2bS9pbnRlcnJ1cHQuYy0yMTI2LVx0XHRyYyA9IF9faW5qZWN0X21jaGsodmNwdSwgaXJxKTtcbi0tXG5hcmNoL3MzOTAva3ZtL2ludGVycnVwdC5jPTIyMDI9c3RhdGljIGludCBnZXRfYWxsX2Zsb2F0aW5nX2lycXMoc3RydWN0IGt2bSAqa3ZtLCB1OCBfX3VzZXIgKnVzcmJ1ZiwgdTY0IGxlbilcbi0tXG5hcmNoL3MzOTAva3ZtL2ludGVycnVwdC5jLTIyNzUtXHRcdGlycSA9IChzdHJ1Y3Qga3ZtX3MzOTBfaXJxICopIFx1MDAyNmJ1ZltuXTtcbmFyY2gvczM5MC9rdm0vaW50ZXJydXB0LmM6MjI3NjpcdFx0aXJxLVx1MDAzZXR5cGUgPSBLVk1fUzM5MF9NQ0hLO1xuYXJjaC9zMzkwL2t2bS9pbnRlcnJ1cHQuYy0yMjc3LVx0XHRpcnEtXHUwMDNldS5tY2hrID0gZmktXHUwMDNlbWNoaztcbi0tXG5hcmNoL3MzOTAva3ZtL2ludGVycnVwdC5jPTIzMzU9c3RhdGljIGlubGluZSBpbnQgY29weV9pcnFfZnJvbV91c2VyKHN0cnVjdCBrdm1fczM5MF9pbnRlcnJ1cHRfaW5mbyAqaW50aSxcbi0tXG5hcmNoL3MzOTAva3ZtL2ludGVycnVwdC5jLTIzNTktXHRcdGJyZWFrO1xuYXJjaC9zMzkwL2t2bS9pbnRlcnJ1cHQuYzoyMzYwOlx0Y2FzZSBLVk1fUzM5MF9NQ0hLOlxuYXJjaC9zMzkwL2t2bS9pbnRlcnJ1cHQuYy0yMzYxLVx0XHR0YXJnZXQgPSAodm9pZCAqKSBcdTAwMjZpbnRpLVx1MDAzZW1jaGs7XG4tLVxuYXJjaC9zMzkwL2t2bS9pbnRlcnJ1cHQuYz0zMDk5PXZvaWQga3ZtX3MzOTBfcmVpbmplY3RfbWFjaGluZV9jaGVjayhzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsXG4tLVxuYXJjaC9zMzkwL2t2bS9pbnRlcnJ1cHQuYy0zMTI2LVx0LyogSW5qZWN0IHRoZSBtYWNoaW5lIGNoZWNrIHRvIHNwZWNpZmllZCB2Y3B1ICovXG5hcmNoL3MzOTAva3ZtL2ludGVycnVwdC5jOjMxMjc6XHRpcnEudHlwZSA9IEtWTV9TMzkwX01DSEs7XG5hcmNoL3MzOTAva3ZtL2ludGVycnVwdC5jLTMxMjgtXHRyYyA9IGt2bV9zMzkwX2luamVjdF92Y3B1KHZjcHUsIFx1MDAyNmlycSk7XG4tLVxuYXJjaC9zMzkwL2t2bS9pbnRlcnJ1cHQuYz0zMjIwPXN0YXRpYyB2b2lkIHN0b3JlX2xvY2FsX2lycShzdHJ1Y3Qga3ZtX3MzOTBfbG9jYWxfaW50ZXJydXB0ICpsaSxcbi0tXG5hcmNoL3MzOTAva3ZtL2ludGVycnVwdC5jLTMyMjYtXHRjYXNlIElSUV9QRU5EX01DSEtfUkVQOlxuYXJjaC9zMzkwL2t2bS9pbnRlcnJ1cHQuYzozMjI3Olx0XHRpcnEtXHUwMDNldHlwZSA9IEtWTV9TMzkwX01DSEs7XG5hcmNoL3MzOTAva3ZtL2ludGVycnVwdC5jLTMyMjgtXHRcdGlycS1cdTAwM2V1Lm1jaGsgPSBsaS1cdTAwM2VpcnEubWNoaztcbi0tXG5hcmNoL3MzOTAva3ZtL3RyYWNlLXMzOTAuaD04MT1UUkFDRV9FVkVOVChrdm1fczM5MF92Y3B1X3N0YXJ0X3N0b3AsXG4tLVxuYXJjaC9zMzkwL2t2bS90cmFjZS1zMzkwLmgtMTEwLVx0e0tWTV9TMzkwX0lOVF9QRkFVTFRfRE9ORSwgXCYjMzQ7cGZhdWx0IGRvbmVcJiMzNDt9LFx0XHRcdFxcXG5hcmNoL3MzOTAva3ZtL3RyYWNlLXMzOTAuaDoxMTE6XHR7S1ZNX1MzOTBfTUNISywgXCYjMzQ7bWFjaGluZSBjaGVja1wmIzM0O30sXHRcdFx0XHRcXFxuYXJjaC9zMzkwL2t2bS90cmFjZS1zMzkwLmgtMTEyLVx0e0tWTV9TMzkwX0lOVF9DTE9DS19DT01QLCBcJiMzNDtjbG9jayBjb21wYXJhdG9yXCYjMzQ7fSxcdFx0XHRcXFxuLS1cbnRvb2xzL2FyY2gvczM5MC9pbmNsdWRlL3VhcGkvYXNtL2t2bS5oPTk2PXN0cnVjdCBrdm1fczM5MF9wc3cge1xuLS1cbnRvb2xzL2FyY2gvczM5MC9pbmNsdWRlL3VhcGkvYXNtL2t2bS5oLTEwNy0jZGVmaW5lIEtWTV9TMzkwX0lOVF9QRkFVTFRfRE9ORVx0MHhmZmZlMDAwNXVcbnRvb2xzL2FyY2gvczM5MC9pbmNsdWRlL3VhcGkvYXNtL2t2bS5oOjEwODojZGVmaW5lIEtWTV9TMzkwX01DSEtcdFx0XHQweGZmZmUxMDAwdVxudG9vbHMvYXJjaC9zMzkwL2luY2x1ZGUvdWFwaS9hc20va3ZtLmgtMTA5LSNkZWZpbmUgS1ZNX1MzOTBfSU5UX0NMT0NLX0NPTVBcdFx0MHhmZmZmMTAwNHVcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD45LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNiAxNDozNTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA4OTg0CgkJCQkJCQlvdXRwdXQ6IDI0CgkJCQkJCQl0aG91Z2h0czogMjg1CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgS1ZNIHMzOTB4IE1hY2hpbmUgQ2hlY2sgUGF0Y2gqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggYW5kIGl0JiMzOTtzIG1ha2luZyBhIHNwZWNpZmljIGNoYW5nZSBpbiBga3ZtX3MzOTBfcmVpbmplY3RfbWFjaGluZV9jaGVja2AuIEVzc2VudGlhbGx5LCBpdCYjMzk7cyBlbnN1cmluZyB0aGUgbWFjaGluZSBjaGVjayBnZXRzIGluamVjdGVkIGRpcmVjdGx5IHRvIHRoZSBpbnRlbmRlZCB2Q1BVLCByYXRoZXIgdGhhbiBwb3RlbnRpYWxseSBmbG9hdGluZyB0byB0aGUgZW50aXJlIFZNLiBNYWtlcyBzZW5zZSwgdGhhdCYjMzk7cyBkZWZpbml0ZWx5IG1vcmUgcHJlY2lzZS4gSXQgbG9va3MgbGlrZSBpdCBhbHNvIGFkZHMgYE1DQ0tfQ09ERV9DS2AgdG8gYE1DQ0tfQ09ERV9OT19HVUVTVGAgYW5kIGBzMzkwX2JhY2t1cF9tY2NrX2luZm9gLiBMZXQgbWUgY2hlY2suLi4gYE1DQ0tfQ09ERV9DS2AgaXMgZGVmaW5lZCB1c2luZyBhIGJpdCBzaGlmdCwgdGhhdCYjMzk7cyBzdHJhaWdodGZvcndhcmQgZW5vdWdoLgoKRnVuY3Rpb25hbGx5LCBJIHRoaW5rIHRoaXMgaXMgc291bmQuIEJ1dCB0aGUgcXVlc3Rpb24gaXM6IGNhbiB3ZSBmdXp6IGl0PyBJIGtub3cgc3l6a2FsbGVyIGNhbiB0cmlnZ2VyIEtWTSBtYWNoaW5lIGNoZWNrcywgb3IgYXQgbGVhc3QgcnVuIEtWTSBndWVzdHMgb24gczM5MHguIE15IGluaXRpYWwgdGhvdWdodCBpcyB0byB0YXJnZXQgYGt2bV9zMzkwX3JlaW5qZWN0X21hY2hpbmVfY2hlY2tgIGFuZCBgczM5MF9iYWNrdXBfbWNja19pbmZvYC4KCldhaXQgYSBzZWNvbmTigKYgYHMzOTBfYmFja3VwX21jY2tfaW5mb2AgaXMgKnN0YXRpYyogYW5kIG1hcmtlZCBhcyBgbm90cmFjZWAhIEFuZCBpdCYjMzk7cyBjYWxsZWQgZnJvbSBgczM5MF9kb19tYWNoaW5lX2NoZWNrYC4gVGhhdCBjaGFuZ2VzIHRoaW5ncyBhIGJpdC4gT2theSwgYmFjayB0byB0aGUgZ2xvYmFsIGZ1bmN0aW9uOiBga3ZtX3MzOTBfcmVpbmplY3RfbWFjaGluZV9jaGVja2Agd2hpY2ggaXMgY2FsbGVkIGZyb20gYHZjcHVfcG9zdF9ydW5gIGFuZCBgZG9fdnNpZV9ydW5gLgoKT2theSwgSSBuZWVkIHRvIHRha2UgYSBjbG9zZXIgbG9vayBhdCBgczM5MF9kb19tYWNoaW5lX2NoZWNrYC4gTGV0JiMzOTtzIHNlZSB3aGF0JiMzOTtzIGdvaW5nIG9uIHRoZXJlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNiAxNDozNjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtzMzkwX2RvX21hY2hpbmVfY2hlY2smIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7YXJjaC9zMzkwL2luY2x1ZGUvYXNtL25taS5oPTEwNT12b2lkIHMzOTBfaGFuZGxlX21jY2sodm9pZCk7XG5hcmNoL3MzOTAvaW5jbHVkZS9hc20vbm1pLmg6MTA2OnZvaWQgczM5MF9kb19tYWNoaW5lX2NoZWNrKHN0cnVjdCBwdF9yZWdzICpyZWdzKTtcbmFyY2gvczM5MC9pbmNsdWRlL2FzbS9ubWkuaC0xMDctXG4tLVxuYXJjaC9zMzkwL2tlcm5lbC9lbnRyeS5TPTQ1MD1TWU1fQ09ERV9TVEFSVChtY2NrX2ludF9oYW5kbGVyKVxuLS1cbmFyY2gvczM5MC9rZXJuZWwvZW50cnkuUy01MTUtXHRsZ3JcdCVyMiwlcjExXHRcdCMgcGFzcyBwb2ludGVyIHRvIHB0X3JlZ3NcbmFyY2gvczM5MC9rZXJuZWwvZW50cnkuUzo1MTY6XHRicmFzbFx0JXIxNCxzMzkwX2RvX21hY2hpbmVfY2hlY2tcbmFyY2gvczM5MC9rZXJuZWwvZW50cnkuUy01MTctXHRsbWdcdCVyMCwlcjEwLF9fUFRfUjAoJXIxMSlcbi0tXG5hcmNoL3MzOTAva2VybmVsL25taS5jPTM1Mj1OT0tQUk9CRV9TWU1CT0woczM5MF9iYWNrdXBfbWNja19pbmZvKTtcbi0tXG5hcmNoL3MzOTAva2VybmVsL25taS5jLTM2NC0gKi9cbmFyY2gvczM5MC9rZXJuZWwvbm1pLmM6MzY1OnZvaWQgbm90cmFjZSBzMzkwX2RvX21hY2hpbmVfY2hlY2soc3RydWN0IHB0X3JlZ3MgKnJlZ3MpXG5hcmNoL3MzOTAva2VybmVsL25taS5jLTM2Ni17XG4tLVxuYXJjaC9zMzkwL2tlcm5lbC9ubWkuYy01MDQtfVxuYXJjaC9zMzkwL2tlcm5lbC9ubWkuYzo1MDU6Tk9LUFJPQkVfU1lNQk9MKHMzOTBfZG9fbWFjaGluZV9jaGVjayk7XG5hcmNoL3MzOTAva2VybmVsL25taS5jLTUwNi1cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDYgMTQ6MzY8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTAxMjAKCQkJCQkJCW91dHB1dDogMTcKCQkJCQkJCXRob3VnaHRzOiAxMzMKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqTWFjaGluZSBDaGVjayBIYW5kbGVyIEludmVzdGlnYXRpb24qKgoKT2theSwgc28gSSYjMzk7bSBkaXZpbmcgaW50byB0aGlzIGBzMzkwX2RvX21hY2hpbmVfY2hlY2tgIHJvdXRpbmUuIEl0IGxvb2tzIGxpa2UgdGhlIGNvcmUgbWFjaGluZSBjaGVjayBoYW5kbGVyLCBjYWxsZWQgZnJvbSBgbWNja19pbnRfaGFuZGxlcmAgaW4gYGVudHJ5LlNgLiBUaGUga2V5IHF1ZXN0aW9uIGlzIHdoZXRoZXIgSSBjYW4gZWZmZWN0aXZlbHkgZnV6eiBga3ZtX3MzOTBfcmVpbmplY3RfbWFjaGluZV9jaGVja2AuIEl0IHNlZW1zIHRoYXQmIzM5O3MgdGhlIHBhdGggdGFrZW4gd2hlbiBhIEtWTSBndWVzdCBleGl0cyB3aXRoIGEgbWFjaGluZSBjaGVjay4gVGhhdCYjMzk7cyBnb29kLCB0aGF0JiMzOTtzIGV4YWN0bHkgd2hlcmUgSSBuZWVkIHRvIGJlIGZvY3VzZWQuIE5vdywgSSYjMzk7bSB0aGlua2luZyBhYm91dCBwcmUtcmVxdWlzaXRlcy4gSSBrbm93IHRoYXQgYENPTkZJR19LVk1gIGlzIGRlZmluaXRlbHkgYSByZXF1aXJlbWVudCBmb3IgYGt2bV9zMzkwX3JlaW5qZWN0X21hY2hpbmVfY2hlY2tgIHRvIGV2ZW4gYmUgY29uc2lkZXJlZC4gSSBzaG91bGQgbWFrZSBzdXJlIHRoYXQmIzM5O3Mgc2V0LiBJIGFsc28gc2hvdWxkIGRvdWJsZS1jaGVjayB0aGUgS2NvbmZpZyBmaWxlcywgc3BlY2lmaWNhbGx5IGluIGBhcmNoL3MzOTAva3ZtL0tjb25maWdgIHRvIHNlZSBpZiB0aGVyZSBhcmUgYW55IG90aGVyIHJlbGV2YW50IGNvbmZpZ3VyYXRpb25zIG9yIGRlcGVuZGVuY2llcyBJIHNob3VsZCBrbm93IGFib3V0LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEyLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNiAxNDozNjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtjb25maWcgS1ZNJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2FyY2gvYXJtNjQva3ZtL0tjb25maWc9MTg9aWYgVklSVFVBTElaQVRJT05cbmFyY2gvYXJtNjQva3ZtL0tjb25maWctMTktXG5hcmNoL2FybTY0L2t2bS9LY29uZmlnOjIwOm1lbnVjb25maWcgS1ZNXG5hcmNoL2FybTY0L2t2bS9LY29uZmlnLTIxLVx0Ym9vbCBcJiMzNDtLZXJuZWwtYmFzZWQgVmlydHVhbCBNYWNoaW5lIChLVk0pIHN1cHBvcnRcJiMzNDtcbi0tXG5hcmNoL2xvb25nYXJjaC9rdm0vS2NvbmZpZz0xOD1pZiBWSVJUVUFMSVpBVElPTlxuYXJjaC9sb29uZ2FyY2gva3ZtL0tjb25maWctMTktXG5hcmNoL2xvb25nYXJjaC9rdm0vS2NvbmZpZzoyMDpjb25maWcgS1ZNXG5hcmNoL2xvb25nYXJjaC9rdm0vS2NvbmZpZy0yMS1cdHRyaXN0YXRlIFwmIzM0O0tlcm5lbC1iYXNlZCBWaXJ0dWFsIE1hY2hpbmUgKEtWTSkgc3VwcG9ydFwmIzM0O1xuLS1cbmFyY2gvbWlwcy9rdm0vS2NvbmZpZz0xNj1pZiBWSVJUVUFMSVpBVElPTlxuYXJjaC9taXBzL2t2bS9LY29uZmlnLTE3LVxuYXJjaC9taXBzL2t2bS9LY29uZmlnOjE4OmNvbmZpZyBLVk1cbmFyY2gvbWlwcy9rdm0vS2NvbmZpZy0xOS1cdHRyaXN0YXRlIFwmIzM0O0tlcm5lbC1iYXNlZCBWaXJ0dWFsIE1hY2hpbmUgKEtWTSkgc3VwcG9ydFwmIzM0O1xuLS1cbmFyY2gvbWlwcy9rdm0vS2NvbmZpZy0zMC1cbmFyY2gvbWlwcy9rdm0vS2NvbmZpZzozMTpjb25maWcgS1ZNX01JUFNfREVCVUdfQ09QMF9DT1VOVEVSU1xuYXJjaC9taXBzL2t2bS9LY29uZmlnLTMyLVx0Ym9vbCBcJiMzNDtNYWludGFpbiBjb3VudGVycyBmb3IgQ09QMCBhY2Nlc3Nlc1wmIzM0O1xuLS1cbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZz0xOD1pZiBWSVJUVUFMSVpBVElPTlxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTE5LVxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnOjIwOmNvbmZpZyBLVk1cbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0yMS1cdGJvb2xcbi0tXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMjUtXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWc6MjY6Y29uZmlnIEtWTV9CT09LM1NfSEFORExFUlxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTI3LVx0Ym9vbFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTI4LVxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnOjI5OmNvbmZpZyBLVk1fQk9PSzNTXzMyX0hBTkRMRVJcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0zMC1cdGJvb2xcbi0tXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMzMtXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWc6MzQ6Y29uZmlnIEtWTV9CT09LM1NfNjRfSEFORExFUlxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTM1LVx0Ym9vbFxuLS1cbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0zNy1cbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZzozODpjb25maWcgS1ZNX0JPT0szU19QUl9QT1NTSUJMRVxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTM5LVx0Ym9vbFxuLS1cbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy00MS1cbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZzo0Mjpjb25maWcgS1ZNX0JPT0szU19IVl9QT1NTSUJMRVxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTQzLVx0Ym9vbFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTQ0LVxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnOjQ1OmNvbmZpZyBLVk1fQk9PSzNTXzMyXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctNDYtXHR0cmlzdGF0ZSBcJiMzNDtLVk0gc3VwcG9ydCBmb3IgUG93ZXJQQyBib29rM3NfMzIgcHJvY2Vzc29yc1wmIzM0O1xuLS1cbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy02MS1cbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZzo2Mjpjb25maWcgS1ZNX0JPT0szU182NFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTYzLVx0dHJpc3RhdGUgXCYjMzQ7S1ZNIHN1cHBvcnQgZm9yIFBvd2VyUEMgYm9vazNzXzY0IHByb2Nlc3NvcnNcJiMzNDtcbi0tXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctNzgtXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWc6Nzk6Y29uZmlnIEtWTV9CT09LM1NfNjRfSFZcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy04MC1cdHRyaXN0YXRlIFwmIzM0O0tWTSBmb3IgUE9XRVI3IGFuZCBsYXRlciB1c2luZyBoeXBlcnZpc29yIG1vZGUgaW4gaG9zdFwmIzM0O1xuLS1cbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy05OS1cbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZzoxMDA6Y29uZmlnIEtWTV9CT09LM1NfNjRfUFJcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0xMDEtXHR0cmlzdGF0ZSBcJiMzNDtLVk0gc3VwcG9ydCB3aXRob3V0IHVzaW5nIGh5cGVydmlzb3IgbW9kZSBpbiBob3N0XCYjMzQ7XG4tLVxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTEyNS1cbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZzoxMjY6Y29uZmlnIEtWTV9CT09LM1NfSFZfRVhJVF9USU1JTkdcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0xMjctXHRib29sXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMTI4LVxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnOjEyOTpjb25maWcgS1ZNX0JPT0szU19IVl9QOV9USU1JTkdcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0xMzAtXHRib29sIFwmIzM0O0RldGFpbGVkIHRpbWluZyBmb3IgdGhlIFA5IGVudHJ5IHBvaW50XCYjMzQ7XG4tLVxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTE0MS1cbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZzoxNDI6Y29uZmlnIEtWTV9CT09LM1NfSFZfUDhfVElNSU5HXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMTQzLVx0Ym9vbCBcJiMzNDtEZXRhaWxlZCB0aW1pbmcgZm9yIGh5cGVydmlzb3IgcmVhbC1tb2RlIGNvZGUgKGZvciBQT1dFUjgpXCYjMzQ7XG4tLVxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTE1Ni1cbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZzoxNTc6Y29uZmlnIEtWTV9CT09LM1NfSFZfTkVTVEVEX1BNVV9XT1JLQVJPVU5EXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMTU4LVx0Ym9vbCBcJiMzNDtOZXN0ZWQgTDAgaG9zdCB3b3JrYXJvdW5kIGZvciBMMSBLVk0gaG9zdCBQTVUgaGFuZGxpbmcgYnVnXCYjMzQ7IGlmIEVYUEVSVFxuLS1cbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0xNzEtXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWc6MTcyOmNvbmZpZyBLVk1fQk9PSzNTX0hWX1BNVVxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTE3My1cdHRyaXN0YXRlIFwmIzM0O0h5cGVydmlzb3IgUGVyZiBldmVudHMgZm9yIEtWTSBCb29rM3MtSFZcJiMzNDtcbi0tXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMTgzLVxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnOjE4NDpjb25maWcgS1ZNX0JPT0tFX0hWXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMTg1LVx0Ym9vbFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTE4Ni1cbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZzoxODc6Y29uZmlnIEtWTV9FWElUX1RJTUlOR1xuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTE4OC1cdGJvb2wgXCYjMzQ7RGV0YWlsZWQgZXhpdCB0aW1pbmdcJiMzNDtcbi0tXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMTk3LVxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnOjE5ODpjb25maWcgS1ZNX0U1MDBWMlxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTE5OS1cdGJvb2wgXCYjMzQ7S1ZNIHN1cHBvcnQgZm9yIFBvd2VyUEMgRTUwMHYyIHByb2Nlc3NvcnNcJiMzNDtcbi0tXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMjEyLVxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnOjIxMzpjb25maWcgS1ZNX0U1MDBNQ1xuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTIxNC1cdGJvb2wgXCYjMzQ7S1ZNIHN1cHBvcnQgZm9yIFBvd2VyUEMgRTUwME1DL0U1NTAwL0U2NTAwIHByb2Nlc3NvcnNcJiMzNDtcbi0tXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMjI4LVxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnOjIyOTpjb25maWcgS1ZNX01QSUNcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0yMzAtXHRib29sIFwmIzM0O0tWTSBpbi1rZXJuZWwgTVBJQyBlbXVsYXRpb25cJiMzNDtcbi0tXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMjQwLVxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnOjI0MTpjb25maWcgS1ZNX1hJQ1NcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0yNDItXHRib29sIFwmIzM0O0tWTSBpbi1rZXJuZWwgWElDUyBlbXVsYXRpb25cJiMzNDtcbi0tXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMjUwLVxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnOjI1MTpjb25maWcgS1ZNX1hJVkVcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0yNTItXHRib29sXG4tLVxuYXJjaC9wb3dlcnBjL3BsYXRmb3Jtcy9LY29uZmlnPTIyPXNvdXJjZSBcJiMzNDthcmNoL3Bvd2VycGMvcGxhdGZvcm1zL21pY3Jvd2F0dC9LY29uZmlnXCYjMzQ7XG5hcmNoL3Bvd2VycGMvcGxhdGZvcm1zL0tjb25maWctMjMtXG5hcmNoL3Bvd2VycGMvcGxhdGZvcm1zL0tjb25maWc6MjQ6Y29uZmlnIEtWTV9HVUVTVFxuYXJjaC9wb3dlcnBjL3BsYXRmb3Jtcy9LY29uZmlnLTI1LVx0Ym9vbCBcJiMzNDtLVk0gR3Vlc3Qgc3VwcG9ydFwmIzM0O1xuLS1cbmFyY2gvcmlzY3Yva3ZtL0tjb25maWc9MTg9aWYgVklSVFVBTElaQVRJT05cbmFyY2gvcmlzY3Yva3ZtL0tjb25maWctMTktXG5hcmNoL3Jpc2N2L2t2bS9LY29uZmlnOjIwOmNvbmZpZyBLVk1cbmFyY2gvcmlzY3Yva3ZtL0tjb25maWctMjEtXHR0cmlzdGF0ZSBcJiMzNDtLZXJuZWwtYmFzZWQgVmlydHVhbCBNYWNoaW5lIChLVk0pIHN1cHBvcnRcJiMzNDtcbi0tXG5hcmNoL3MzOTAva3ZtL0tjb25maWc9MTc9aWYgVklSVFVBTElaQVRJT05cbmFyY2gvczM5MC9rdm0vS2NvbmZpZy0xOC1cbmFyY2gvczM5MC9rdm0vS2NvbmZpZzoxOTpjb25maWcgS1ZNXG5hcmNoL3MzOTAva3ZtL0tjb25maWctMjAtXHRkZWZfdHJpc3RhdGUgeVxuLS1cbmFyY2gvczM5MC9rdm0vS2NvbmZpZy00Ni1cbmFyY2gvczM5MC9rdm0vS2NvbmZpZzo0Nzpjb25maWcgS1ZNX1MzOTBfVUNPTlRST0xcbmFyY2gvczM5MC9rdm0vS2NvbmZpZy00OC1cdGJvb2wgXCYjMzQ7VXNlcnNwYWNlIGNvbnRyb2xsZWQgdmlydHVhbCBtYWNoaW5lc1wmIzM0O1xuLS1cbmFyY2gveDg2L0tjb25maWc9ODI2PXNvdXJjZSBcJiMzNDthcmNoL3g4Ni94ZW4vS2NvbmZpZ1wmIzM0O1xuYXJjaC94ODYvS2NvbmZpZy04MjctXG5hcmNoL3g4Ni9LY29uZmlnOjgyODpjb25maWcgS1ZNX0dVRVNUXG5hcmNoL3g4Ni9LY29uZmlnLTgyOS1cdGJvb2wgXCYjMzQ7S1ZNIEd1ZXN0IHN1cHBvcnQgKGluY2x1ZGluZyBrdm1jbG9jaylcJiMzNDtcbi0tXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZz0xOD1pZiBWSVJUVUFMSVpBVElPTlxuYXJjaC94ODYva3ZtL0tjb25maWctMTktXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZzoyMDpjb25maWcgS1ZNX1g4NlxuYXJjaC94ODYva3ZtL0tjb25maWctMjEtXHRkZWZfdHJpc3RhdGUgS1ZNIGlmIChLVk1fSU5URUwgIT0gbiB8fCBLVk1fQU1EICE9IG4pXG4tLVxuYXJjaC94ODYva3ZtL0tjb25maWctNTEtXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZzo1Mjpjb25maWcgS1ZNXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy01My1cdHRyaXN0YXRlIFwmIzM0O0tlcm5lbC1iYXNlZCBWaXJ0dWFsIE1hY2hpbmUgKEtWTSkgc3VwcG9ydFwmIzM0O1xuLS1cbmFyY2gveDg2L2t2bS9LY29uZmlnLTY4LVxuYXJjaC94ODYva3ZtL0tjb25maWc6Njk6Y29uZmlnIEtWTV9XRVJST1JcbmFyY2gveDg2L2t2bS9LY29uZmlnLTcwLVx0Ym9vbCBcJiMzNDtDb21waWxlIEtWTSB3aXRoIC1XZXJyb3JcJiMzNDtcbi0tXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy04Mi1cbmFyY2gveDg2L2t2bS9LY29uZmlnOjgzOmNvbmZpZyBLVk1fU1dfUFJPVEVDVEVEX1ZNXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy04NC1cdGJvb2wgXCYjMzQ7RW5hYmxlIHN1cHBvcnQgZm9yIEtWTSBzb2Z0d2FyZS1wcm90ZWN0ZWQgVk1zXCYjMzQ7XG4tLVxuYXJjaC94ODYva3ZtL0tjb25maWctOTUtXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZzo5Njpjb25maWcgS1ZNX0lOVEVMXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy05Ny1cdHRyaXN0YXRlIFwmIzM0O0tWTSBmb3IgSW50ZWwgKGFuZCBjb21wYXRpYmxlKSBwcm9jZXNzb3JzIHN1cHBvcnRcJiMzNDtcbi0tXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0xMDYtXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZzoxMDc6Y29uZmlnIEtWTV9JTlRFTF9QUk9WRV9WRVxuYXJjaC94ODYva3ZtL0tjb25maWctMTA4LSAgICAgICAgYm9vbCBcJiMzNDtDaGVjayB0aGF0IGd1ZXN0cyBkbyBub3QgcmVjZWl2ZSAjVkUgZXhjZXB0aW9uc1wmIzM0O1xuLS1cbmFyY2gveDg2L2t2bS9LY29uZmlnPTEyMj1jb25maWcgWDg2X1NHWF9LVk1cbi0tXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0xMzMtXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZzoxMzQ6Y29uZmlnIEtWTV9JTlRFTF9URFhcbmFyY2gveDg2L2t2bS9LY29uZmlnLTEzNS1cdGJvb2wgXCYjMzQ7SW50ZWwgVHJ1c3QgRG9tYWluIEV4dGVuc2lvbnMgKFREWCkgc3VwcG9ydFwmIzM0O1xuLS1cbmFyY2gveDg2L2t2bS9LY29uZmlnLTE0NS1cbmFyY2gveDg2L2t2bS9LY29uZmlnOjE0Njpjb25maWcgS1ZNX0FNRFxuYXJjaC94ODYva3ZtL0tjb25maWctMTQ3LVx0dHJpc3RhdGUgXCYjMzQ7S1ZNIGZvciBBTUQgcHJvY2Vzc29ycyBzdXBwb3J0XCYjMzQ7XG4tLVxuYXJjaC94ODYva3ZtL0tjb25maWctMTU1LVxuYXJjaC94ODYva3ZtL0tjb25maWc6MTU2OmNvbmZpZyBLVk1fQU1EX1NFVlxuYXJjaC94ODYva3ZtL0tjb25maWctMTU3LVx0Ym9vbCBcJiMzNDtBTUQgU2VjdXJlIEVuY3J5cHRlZCBWaXJ0dWFsaXphdGlvbiAoU0VWKSBzdXBwb3J0XCYjMzQ7XG4tLVxuYXJjaC94ODYva3ZtL0tjb25maWctMTcxLVxuYXJjaC94ODYva3ZtL0tjb25maWc6MTcyOmNvbmZpZyBLVk1fSU9BUElDXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0xNzMtXHRib29sIFwmIzM0O0kvTyBBUElDLCBQSUMsIGFuZCBQSVQgZW11bGF0aW9uXCYjMzQ7XG4tLVxuYXJjaC94ODYva3ZtL0tjb25maWctMTgxLVxuYXJjaC94ODYva3ZtL0tjb25maWc6MTgyOmNvbmZpZyBLVk1fU01NXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0xODMtXHRib29sIFwmIzM0O1N5c3RlbSBNYW5hZ2VtZW50IE1vZGUgZW11bGF0aW9uXCYjMzQ7XG4tLVxuYXJjaC94ODYva3ZtL0tjb25maWctMTkyLVxuYXJjaC94ODYva3ZtL0tjb25maWc6MTkzOmNvbmZpZyBLVk1fSFlQRVJWXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0xOTQtXHRib29sIFwmIzM0O1N1cHBvcnQgZm9yIE1pY3Jvc29mdCBIeXBlci1WIGVtdWxhdGlvblwmIzM0O1xuLS1cbmFyY2gveDg2L2t2bS9LY29uZmlnLTIwNi1cbmFyY2gveDg2L2t2bS9LY29uZmlnOjIwNzpjb25maWcgS1ZNX1hFTlxuYXJjaC94ODYva3ZtL0tjb25maWctMjA4LVx0Ym9vbCBcJiMzNDtTdXBwb3J0IGZvciBYZW4gaHlwZXJjYWxsIGludGVyZmFjZVwmIzM0O1xuLS1cbmFyY2gveDg2L2t2bS9LY29uZmlnLTIxNS1cbmFyY2gveDg2L2t2bS9LY29uZmlnOjIxNjpjb25maWcgS1ZNX1BST1ZFX01NVVxuYXJjaC94ODYva3ZtL0tjb25maWctMjE3LVx0Ym9vbCBcJiMzNDtQcm92ZSBLVk0gTU1VIGNvcnJlY3RuZXNzXCYjMzQ7XG4tLVxuYXJjaC94ODYva3ZtL0tjb25maWctMjI4LVxuYXJjaC94ODYva3ZtL0tjb25maWc6MjI5OmNvbmZpZyBLVk1fRVhURVJOQUxfV1JJVEVfVFJBQ0tJTkdcbmFyY2gveDg2L2t2bS9LY29uZmlnLTIzMC1cdGJvb2xcbmFyY2gveDg2L2t2bS9LY29uZmlnLTIzMS1cbmFyY2gveDg2L2t2bS9LY29uZmlnOjIzMjpjb25maWcgS1ZNX01BWF9OUl9WQ1BVU1xuYXJjaC94ODYva3ZtL0tjb25maWctMjMzLVx0aW50IFwmIzM0O01heGltdW0gbnVtYmVyIG9mIHZDUFVzIHBlciBLVk0gZ3Vlc3RcJiMzNDtcbi0tXG52aXJ0L2t2bS9LY29uZmlnLTMtXG52aXJ0L2t2bS9LY29uZmlnOjQ6Y29uZmlnIEtWTV9DT01NT05cbnZpcnQva3ZtL0tjb25maWctNS0gICAgICAgYm9vbFxuLS1cbnZpcnQva3ZtL0tjb25maWc9Mzk9Y29uZmlnIE5FRURfS1ZNX0RJUlRZX1JJTkdfV0lUSF9CSVRNQVBcbi0tXG52aXJ0L2t2bS9LY29uZmlnLTQyLVxudmlydC9rdm0vS2NvbmZpZzo0Mzpjb25maWcgS1ZNX01NSU9cbnZpcnQva3ZtL0tjb25maWctNDQtICAgICAgIGJvb2xcbnZpcnQva3ZtL0tjb25maWctNDUtXG52aXJ0L2t2bS9LY29uZmlnOjQ2OmNvbmZpZyBLVk1fQVNZTkNfUEZcbnZpcnQva3ZtL0tjb25maWctNDctICAgICAgIGJvb2xcbi0tXG52aXJ0L2t2bS9LY29uZmlnLTQ5LSMgVG9nZ2xlIHRvIHN3aXRjaCBiZXR3ZWVuIGRpcmVjdCBub3RpZmljYXRpb24gYW5kIGJhdGNoIGpvYlxudmlydC9rdm0vS2NvbmZpZzo1MDpjb25maWcgS1ZNX0FTWU5DX1BGX1NZTkNcbnZpcnQva3ZtL0tjb25maWctNTEtICAgICAgIGJvb2xcbi0tXG52aXJ0L2t2bS9LY29uZmlnPTU5PWNvbmZpZyBIQVZFX0tWTV9DUFVfUkVMQVhfSU5URVJDRVBUXG4tLVxudmlydC9rdm0vS2NvbmZpZy02MS1cbnZpcnQva3ZtL0tjb25maWc6NjI6Y29uZmlnIEtWTV9WRklPXG52aXJ0L2t2bS9LY29uZmlnLTYzLSAgICAgICBib29sXG4tLVxudmlydC9rdm0vS2NvbmZpZz02NT1jb25maWcgSEFWRV9LVk1fSU5WQUxJRF9XQUtFVVBTXG4tLVxudmlydC9rdm0vS2NvbmZpZy02Ny1cbnZpcnQva3ZtL0tjb25maWc6Njg6Y29uZmlnIEtWTV9HRU5FUklDX0RJUlRZTE9HX1JFQURfUFJPVEVDVFxudmlydC9rdm0vS2NvbmZpZy02OS0gICAgICAgYm9vbFxudmlydC9rdm0vS2NvbmZpZy03MC1cbnZpcnQva3ZtL0tjb25maWc6NzE6Y29uZmlnIEtWTV9HRU5FUklDX1BSRV9GQVVMVF9NRU1PUllcbnZpcnQva3ZtL0tjb25maWctNzItICAgICAgIGJvb2xcbnZpcnQva3ZtL0tjb25maWctNzMtXG52aXJ0L2t2bS9LY29uZmlnOjc0OmNvbmZpZyBLVk1fQ09NUEFUXG52aXJ0L2t2bS9LY29uZmlnLTc1LSAgICAgICBkZWZfYm9vbCB5XG4tLVxudmlydC9rdm0vS2NvbmZpZz05MT1jb25maWcgSEFWRV9LVk1fUE1fTk9USUZJRVJcbi0tXG52aXJ0L2t2bS9LY29uZmlnLTkzLVxudmlydC9rdm0vS2NvbmZpZzo5NDpjb25maWcgS1ZNX0dFTkVSSUNfSEFSRFdBUkVfRU5BQkxJTkdcbnZpcnQva3ZtL0tjb25maWctOTUtICAgICAgIGJvb2xcbnZpcnQva3ZtL0tjb25maWctOTYtXG52aXJ0L2t2bS9LY29uZmlnOjk3OmNvbmZpZyBLVk1fRUxJREVfVExCX0ZMVVNIX0lGX1lPVU5HXG52aXJ0L2t2bS9LY29uZmlnLTk4LSAgICAgICBib29sXG52aXJ0L2t2bS9LY29uZmlnLTk5LVxudmlydC9rdm0vS2NvbmZpZzoxMDA6Y29uZmlnIEtWTV9NTVVfTE9DS0xFU1NfQUdJTkdcbnZpcnQva3ZtL0tjb25maWctMTAxLSAgICAgICBib29sXG52aXJ0L2t2bS9LY29uZmlnLTEwMi1cbnZpcnQva3ZtL0tjb25maWc6MTAzOmNvbmZpZyBLVk1fR0VORVJJQ19NRU1PUllfQVRUUklCVVRFU1xudmlydC9rdm0vS2NvbmZpZy0xMDQtICAgICAgIGJvb2xcbnZpcnQva3ZtL0tjb25maWctMTA1LVxudmlydC9rdm0vS2NvbmZpZzoxMDY6Y29uZmlnIEtWTV9HVUVTVF9NRU1GRFxudmlydC9rdm0vS2NvbmZpZy0xMDctICAgICAgIHNlbGVjdCBYQVJSQVlfTVVMVElcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMy8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDYgMTQ6MzY8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTQ3NzQKCQkJCQkJCW91dHB1dDogMTUyCgkJCQkJCQl0aG91Z2h0czogNTEwCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5c2lzIG9mIEtWTSBTMzkwIE1hY2hpbmUgQ2hlY2sgSGFuZGxpbmcgZm9yIEZ1enppbmcqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggdGFyZ2V0aW5nIHRoZSBgS1ZNYCBjb25maWd1cmF0aW9uLiBJdCBhcHBlYXJzIHRvIG1vZGlmeSB0aGUgZnVuY3Rpb25zIGBrdm1fczM5MF9yZWluamVjdF9tYWNoaW5lX2NoZWNrYCBhbmQgYHMzOTBfYmFja3VwX21jY2tfaW5mb2AuIE15IGluaXRpYWwgdGhvdWdodCBpcyB0aGF0IGJvdGggYXJlIGZ1bmN0aW9uYWwgY2hhbmdlcywgYW5kIEkgbmVlZCB0byBkZXRlcm1pbmUgdGhlIGJlc3QgYXBwcm9hY2ggZm9yIGZ1enppbmcgdGhlbS4KCmBrdm1fczM5MF9yZWluamVjdF9tYWNoaW5lX2NoZWNrYCBnZXRzIGNhbGxlZCBmcm9tIGB2Y3B1X3Bvc3RfcnVuYCBhbmQgYGRvX3ZzaWVfcnVuYCwgd2hpY2ggYXJlIGtleSBwYXJ0cyBvZiBLVk0gZXhlY3V0aW9uLiBgczM5MF9iYWNrdXBfbWNja19pbmZvYCwgb24gdGhlIG90aGVyIGhhbmQsIGlzIGNhbGxlZCBmcm9tIGBzMzkwX2RvX21hY2hpbmVfY2hlY2tgLCB0aGUgbWFjaGluZSBjaGVjayAqaGFuZGxlciouCgpNeSBmaXJzdCBpbnN0aW5jdCBpcyB0byBzZXQgYFdvcnRoRnV6emluZz10cnVlYC4gTm93LCBmb3IgZm9jdXMgc3ltYm9scywgb3JpZ2luYWxseSBJIHdhcyBnb2luZyB0byBsaXN0IGJvdGguIE15IHRoaW5raW5nIHdhcywgSSYjMzk7ZCBpbmNsdWRlIGBrdm1fczM5MF9yZWluamVjdF9tYWNoaW5lX2NoZWNrYCwgYW5kIGxpc3QgYHMzOTBfYmFja3VwX21jY2tfaW5mb2AgYXMgd2VsbCwgZXZlbiBpZiBpdCYjMzk7cyBzdGF0aWMgYW5kIG5vdCBpbnN0cnVtZW50ZWQuIEJ1dCB0aGVuIEkgcmVtZW1iZXJlZCB0aGF0IHRoZSBwcm9tcHQgc2F5cyB0byBwcmVmZXIgbm9uLXN0YXRpYywgbm9uLWlubGluZWQgQVBJIGVudHJ5cG9pbnQgZnVuY3Rpb25zLgoKSSBuZWVkIHRvIHJlLWV2YWx1YXRlIHdoYXQmIzM5O3MgYSBzdWl0YWJsZSBmb2N1cyBzeW1ib2wuIGBzMzkwX2JhY2t1cF9tY2NrX2luZm9gICppcyogc3RhdGljLCBzbyB0aGF0JiMzOTtzIG91dC4gSG93ZXZlciwgYHMzOTBfZG9fbWFjaGluZV9jaGVja2AgaXMgdGhlIGFjdHVhbCBlbnRyeSBwb2ludCBmb3IgYHMzOTBfYmFja3VwX21jY2tfaW5mb2AsIHNvIGl0JiMzOTtzIGEgZ29vZCBjYW5kaWRhdGUsIGJ1dCBpdCYjMzk7cyB0aGUgbWFjaGluZSBjaGVjayBoYW5kbGVyIGl0c2VsZi4gTXkgZ3V0IHNheXMgaXQgbWlnaHQgYmUgdG91Z2ggdG8gdHJpZ2dlciB0aGF0IGRpcmVjdGx5IGZyb20gYSBmdXp6ZXIgdW5sZXNzIGl0IGNhbiBpbmplY3QgbWFjaGluZSBjaGVja3MsIHNvIHRoZSBiZXN0IGJldCBpcyBwcm9iYWJseSB0byB0YXJnZXQgYGt2bV9zMzkwX3JlaW5qZWN0X21hY2hpbmVfY2hlY2tgIGluc3RlYWQuCgpXYWl0IGEgc2Vjb25kLi4uIGl0IGxvb2tzIGxpa2UgYGt2bV9zMzkwX3JlaW5qZWN0X21hY2hpbmVfY2hlY2tgIGlzIGNhbGxlZCB3aGVuIGBzaWVfcmV0dXJuYCBlcXVhbHMgYFNJRTY0X1JFVFVSTl9NQ0NLYC4gVGhhdCBtZWFucyB0aGlzIGlzIGNhbGxlZCB3aGVuIHRoZSBTSUUgaW5zdHJ1Y3Rpb24g4oCTIHRoZSBpbnN0cnVjdGlvbiB0aGF0ICpydW5zKiB0aGUgZ3Vlc3Qg4oCTIGV4aXRzIGR1ZSB0byBhIG1hY2hpbmUgY2hlY2suIE9rYXksIHRoYXQgY2hhbmdlcyB0aGluZ3MhIFRoYXQgbWVhbnMgdGhlIGZ1enplciAqY2FuKiBkZWZpbml0ZWx5IHRyaWdnZXIgdGhpcyBieSBlaXRoZXIgcnVubmluZyBhIGd1ZXN0IHRoYXQgaXRzZWxmIGNhdXNlcyBhIG1hY2hpbmUgY2hlY2ssIG9yIGlmIHRoZSBob3N0IGV4cGVyaWVuY2VzIGEgbWFjaGluZSBjaGVjayB3aGlsZSBydW5uaW5nIHRoZSBndWVzdC4gU28sIEkgY2FuIG1ha2UgdGhlIGZ1enplciB0YXJnZXQgdGhhdC4gVGhpcyBzaW1wbGlmaWVzIHRoaW5ncy4KClRoZXJlZm9yZSwgZm9yIGZvY3VzIHN5bWJvbHMsIEkmIzM5O2xsIGxpc3QgYGt2bV9zMzkwX3JlaW5qZWN0X21hY2hpbmVfY2hlY2tgLCBrbm93aW5nIGl0JiMzOTtzIHJlYWNoYWJsZSB0aHJvdWdoIHRoZSBndWVzdCBvciBob3N0IHRyaWdnZXJpbmcgYSBtYWNoaW5lIGNoZWNrLgoKVGhlIGltcG9ydGFudCBjb25maWcgaXMgYEtWTWAuIEkmIzM5O20gcmVhZHkgdG8gd3JpdGUgdGhlIHJlc3BvbnNlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE0LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNiAxNDozNjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7S1ZNJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7a3ZtX3MzOTBfcmVpbmplY3RfbWFjaGluZV9jaGVjayYjMzQ7LAogICAgJiMzNDtzMzkwX2RvX21hY2hpbmVfY2hlY2smIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgaG93IG1hY2hpbmUgY2hlY2tzIGFyZSBoYW5kbGVkIGFuZCByZWluamVjdGVkIGludG8gS1ZNIGd1ZXN0cyBvbiBzMzkwLiBJdCBjaGFuZ2VzIGBrdm1fczM5MF9yZWluamVjdF9tYWNoaW5lX2NoZWNrYCB0byBhbHdheXMgaW5qZWN0IHRoZSBtYWNoaW5lIGNoZWNrIHRvIHRoZSBzcGVjaWZpYyB2Y3B1IHJhdGhlciB0aGFuIGFzIGEgZmxvYXRpbmcgbWFjaGluZSBjaGVjaywgYW5kIHVwZGF0ZXMgdGhlIGBNQ0NLX0NPREVfTk9fR1VFU1RgIG1hc2suIFRoZXNlIGFyZSBmdW5jdGlvbmFsIGNoYW5nZXMgaW4gcmVhY2hhYmxlIEtWTSBhbmQgYXJjaGl0ZWN0dXJlLXNwZWNpZmljIGNvZGUuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0tWTSYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2t2bV9zMzkwX3JlaW5qZWN0X21hY2hpbmVfY2hlY2smIzM0OywKICAgICYjMzQ7czM5MF9kb19tYWNoaW5lX2NoZWNrJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIGhvdyBtYWNoaW5lIGNoZWNrcyBhcmUgaGFuZGxlZCBhbmQgcmVpbmplY3RlZCBpbnRvIEtWTSBndWVzdHMgb24gczM5MC4gSXQgY2hhbmdlcyBga3ZtX3MzOTBfcmVpbmplY3RfbWFjaGluZV9jaGVja2AgdG8gYWx3YXlzIGluamVjdCB0aGUgbWFjaGluZSBjaGVjayB0byB0aGUgc3BlY2lmaWMgdmNwdSByYXRoZXIgdGhhbiBhcyBhIGZsb2F0aW5nIG1hY2hpbmUgY2hlY2ssIGFuZCB1cGRhdGVzIHRoZSBgTUNDS19DT0RFX05PX0dVRVNUYCBtYXNrLiBUaGVzZSBhcmUgZnVuY3Rpb25hbCBjaGFuZ2VzIGluIHJlYWNoYWJsZSBLVk0gYW5kIGFyY2hpdGVjdHVyZS1zcGVjaWZpYyBjb2RlLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTwvdGJvZHk+Cgk8L3RhYmxlPgoKCTxkaXYgaWQ9ImxsbV9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+TExNIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgVG9rZW5zPC90aD4KCQkJCQk8dGg+QXZnIFRva2VuczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJsbG1fc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJ0b29sX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5Ub29sIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9InRvb2xfc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJkdXJhdGlvbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+Cgk8ZGl2IGlkPSJ0b2tlbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+CgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9qc2FwaSI+PC9zY3JpcHQ+Cgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CgkJZ29vZ2xlLmxvYWQoInZpc3VhbGl6YXRpb24iLCAiMSIsIHtwYWNrYWdlczpbImNvcmVjaGFydCJdfSk7CgkJZ29vZ2xlLnNldE9uTG9hZENhbGxiYWNrKGRyYXdDaGFydHMpOwoKCQlmdW5jdGlvbiBkcmF3Q2hhcnRzKCkgewoJCQljb25zdCByYXdEYXRhID0gW3siU3RhcnRlZCI6IjIwMjYtMDgtMDZUMTQ6MzU6MzUuMjYwODkyMDY2WiIsIlNlcSI6MCwiTmVzdGluZyI6MCwiVHlwZSI6ImZsb3ciLCJOYW1lIjoicGF0Y2gtdHJpYWdlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDc1ODIyNzYxOTgsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiS1ZNXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwia3ZtX3MzOTBfcmVpbmplY3RfbWFjaGluZV9jaGVja1wiLFxuICAgIFwiczM5MF9kb19tYWNoaW5lX2NoZWNrXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgaG93IG1hY2hpbmUgY2hlY2tzIGFyZSBoYW5kbGVkIGFuZCByZWluamVjdGVkIGludG8gS1ZNIGd1ZXN0cyBvbiBzMzkwLiBJdCBjaGFuZ2VzIGBrdm1fczM5MF9yZWluamVjdF9tYWNoaW5lX2NoZWNrYCB0byBhbHdheXMgaW5qZWN0IHRoZSBtYWNoaW5lIGNoZWNrIHRvIHRoZSBzcGVjaWZpYyB2Y3B1IHJhdGhlciB0aGFuIGFzIGEgZmxvYXRpbmcgbWFjaGluZSBjaGVjaywgYW5kIHVwZGF0ZXMgdGhlIGBNQ0NLX0NPREVfTk9fR1VFU1RgIG1hc2suIFRoZXNlIGFyZSBmdW5jdGlvbmFsIGNoYW5nZXMgaW4gcmVhY2hhYmxlIEtWTSBhbmQgYXJjaGl0ZWN0dXJlLXNwZWNpZmljIGNvZGUuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA2VDE0OjM1OjM1LjI2MDkwMjU0NloiLCJTZXEiOjEsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoicmVhZC1wYXRjaC1kaWZmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NTQ2NTU3NjM0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJQYXRjaERpZmZcIjogXCJjb21taXQgOTQ0Nzk5MjkxZDcwYmZmNzk4YmFjZWUzYjMwYmQ1ZjgzZjBmNWIxMVxcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXFx1MDAzZVxcbkRhdGU6ICAgVGh1IEF1ZyA2IDE0OjM1OjM0IDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL2FyY2gvczM5MC9pbmNsdWRlL2FzbS9ubWkuaCBiL2FyY2gvczM5MC9pbmNsdWRlL2FzbS9ubWkuaFxcbmluZGV4IDY0NTRjMTUzMTg1NDQuLmRkMjZjMjBiZDIzMTAgMTAwNjQ0XFxuLS0tIGEvYXJjaC9zMzkwL2luY2x1ZGUvYXNtL25taS5oXFxuKysrIGIvYXJjaC9zMzkwL2luY2x1ZGUvYXNtL25taS5oXFxuQEAgLTIyLDYgKzIyLDcgQEBcXG4gI2RlZmluZSBNQ0NLX0NPREVfU1lTVEVNX0RBTUFHRVxcdFxcdEJJVCg2MylcXG4gI2RlZmluZSBNQ0NLX0NPREVfRVhUX0RBTUFHRVxcdFxcdEJJVCg2MyAtIDUpXFxuICNkZWZpbmUgTUNDS19DT0RFX0NQXFx0XFx0XFx0QklUKDYzIC0gOSlcXG4rI2RlZmluZSBNQ0NLX0NPREVfQ0tcXHRcXHRcXHRCSVQoNjMgLSAxMSlcXG4gI2RlZmluZSBNQ0NLX0NPREVfU1RHX0VSUk9SXFx0XFx0QklUKDYzIC0gMTYpXFxuICNkZWZpbmUgTUNDS19DT0RFX1NUR19LRVlfRVJST1JcXHRcXHRCSVQoNjMgLSAxOClcXG4gI2RlZmluZSBNQ0NLX0NPREVfU1RHX0RFR1JBRFxcdFxcdEJJVCg2MyAtIDE5KVxcbmRpZmYgLS1naXQgYS9hcmNoL3MzOTAva2VybmVsL25taS5jIGIvYXJjaC9zMzkwL2tlcm5lbC9ubWkuY1xcbmluZGV4IGUxN2E1OWQ0ZDVhNDEuLjY1MmI5ODc5NTI0MzYgMTAwNjQ0XFxuLS0tIGEvYXJjaC9zMzkwL2tlcm5lbC9ubWkuY1xcbisrKyBiL2FyY2gvczM5MC9rZXJuZWwvbm1pLmNcXG5AQCAtMzQ1LDcgKzM0NSw3IEBAIHN0YXRpYyB2b2lkIG5vdHJhY2UgczM5MF9iYWNrdXBfbWNja19pbmZvKHN0cnVjdCBwdF9yZWdzICpyZWdzKVxcbiBcXHRzaWVfcGFnZSA9IGNvbnRhaW5lcl9vZihzaWVfYmxvY2ssIHN0cnVjdCBzaWVfcGFnZSwgc2llX2Jsb2NrKTtcXG4gXFx0bWNja19iYWNrdXAgPSBcXHUwMDI2c2llX3BhZ2UtXFx1MDAzZW1jY2tfaW5mbztcXG4gXFx0bWNja19iYWNrdXAtXFx1MDAzZW1jaWMgPSBnZXRfbG93Y29yZSgpLVxcdTAwM2VtY2NrX2ludGVycnVwdGlvbl9jb2RlIFxcdTAwMjZcXG4tXFx0XFx0XFx0XFx0fihNQ0NLX0NPREVfQ1AgfCBNQ0NLX0NPREVfRVhUX0RBTUFHRSk7XFxuK1xcdFxcdFxcdH4oTUNDS19DT0RFX0NQIHwgTUNDS19DT0RFX0VYVF9EQU1BR0UgfCBNQ0NLX0NPREVfQ0spO1xcbiBcXHRtY2NrX2JhY2t1cC1cXHUwMDNlZXh0X2RhbWFnZV9jb2RlID0gZ2V0X2xvd2NvcmUoKS1cXHUwMDNlZXh0ZXJuYWxfZGFtYWdlX2NvZGU7XFxuIFxcdG1jY2tfYmFja3VwLVxcdTAwM2VmYWlsaW5nX3N0b3JhZ2VfYWRkcmVzcyA9IGdldF9sb3djb3JlKCktXFx1MDAzZWZhaWxpbmdfc3RvcmFnZV9hZGRyZXNzO1xcbiB9XFxuQEAgLTM1Nyw3ICszNTcsNyBAQCBOT0tQUk9CRV9TWU1CT0woczM5MF9iYWNrdXBfbWNja19pbmZvKTtcXG4gI2RlZmluZSBFRF9TVFBfSVNMQU5EXFx0NlxcdC8qIEV4dGVybmFsIGRhbWFnZSBTVFAgaXNsYW5kIGNoZWNrICovXFxuICNkZWZpbmUgRURfU1RQX1NZTkNcXHQ3XFx0LyogRXh0ZXJuYWwgZGFtYWdlIFNUUCBzeW5jIGNoZWNrICovXFxuIFxcbi0jZGVmaW5lIE1DQ0tfQ09ERV9OT19HVUVTVFxcdChNQ0NLX0NPREVfQ1AgfCBNQ0NLX0NPREVfRVhUX0RBTUFHRSlcXG4rI2RlZmluZSBNQ0NLX0NPREVfTk9fR1VFU1RcXHQoTUNDS19DT0RFX0NQIHwgTUNDS19DT0RFX0VYVF9EQU1BR0UgfCBNQ0NLX0NPREVfQ0spXFxuIFxcbiAvKlxcbiAgKiBtYWNoaW5lIGNoZWNrIGhhbmRsZXIuXFxuZGlmZiAtLWdpdCBhL2FyY2gvczM5MC9rdm0vaW50ZXJydXB0LmMgYi9hcmNoL3MzOTAva3ZtL2ludGVycnVwdC5jXFxuaW5kZXggNzUxNGQ5ZTI0MDNjMS4uMzM3NWE5NTY2MzdiZSAxMDA2NDRcXG4tLS0gYS9hcmNoL3MzOTAva3ZtL2ludGVycnVwdC5jXFxuKysrIGIvYXJjaC9zMzkwL2t2bS9pbnRlcnJ1cHQuY1xcbkBAIC0zMDk5LDkgKzMwOTksNyBAQCBzdGF0aWMgaW50IHNldF9hZGFwdGVyX2ludChzdHJ1Y3Qga3ZtX2tlcm5lbF9pcnFfcm91dGluZ19lbnRyeSAqZSxcXG4gdm9pZCBrdm1fczM5MF9yZWluamVjdF9tYWNoaW5lX2NoZWNrKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSxcXG4gXFx0XFx0XFx0XFx0ICAgICBzdHJ1Y3QgbWNja192b2xhdGlsZV9pbmZvICptY2NrX2luZm8pXFxuIHtcXG4tXFx0c3RydWN0IGt2bV9zMzkwX2ludGVycnVwdF9pbmZvIGludGk7XFxuLVxcdHN0cnVjdCBrdm1fczM5MF9pcnEgaXJxO1xcbi1cXHRzdHJ1Y3Qga3ZtX3MzOTBfbWNoa19pbmZvICptY2hrO1xcbitcXHRzdHJ1Y3Qga3ZtX3MzOTBfaXJxIGlycSA9IHt9O1xcbiBcXHR1bmlvbiBtY2kgbWNpO1xcbiBcXHRfX3U2NCBjcjE0ID0gMDsgICAgICAgICAvKiB1cHBlciBiaXRzIGFyZSBub3QgdXNlZCAqL1xcbiBcXHRpbnQgcmM7XFxuQEAgLTMxMjAsMjAgKzMxMTgsMTQgQEAgdm9pZCBrdm1fczM5MF9yZWluamVjdF9tYWNoaW5lX2NoZWNrKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSxcXG4gXFx0aWYgKG1jaS53KVxcbiBcXHRcXHRjcjE0IHw9IENSMTRfV0FSTklOR19TVUJNQVNLO1xcbiBcXG4tXFx0bWNoayA9IG1jaS5jayA/IFxcdTAwMjZpbnRpLm1jaGsgOiBcXHUwMDI2aXJxLnUubWNoaztcXG4tXFx0bWNoay1cXHUwMDNlY3IxNCA9IGNyMTQ7XFxuLVxcdG1jaGstXFx1MDAzZW1jaWMgPSBtY2NrX2luZm8tXFx1MDAzZW1jaWM7XFxuLVxcdG1jaGstXFx1MDAzZWV4dF9kYW1hZ2VfY29kZSA9IG1jY2tfaW5mby1cXHUwMDNlZXh0X2RhbWFnZV9jb2RlO1xcbi1cXHRtY2hrLVxcdTAwM2VmYWlsaW5nX3N0b3JhZ2VfYWRkcmVzcyA9IG1jY2tfaW5mby1cXHUwMDNlZmFpbGluZ19zdG9yYWdlX2FkZHJlc3M7XFxuLVxcdGlmIChtY2kuY2spIHtcXG4tXFx0XFx0LyogSW5qZWN0IHRoZSBmbG9hdGluZyBtYWNoaW5lIGNoZWNrICovXFxuLVxcdFxcdGludGkudHlwZSA9IEtWTV9TMzkwX01DSEs7XFxuLVxcdFxcdHJjID0gX19pbmplY3Rfdm0odmNwdS1cXHUwMDNla3ZtLCBcXHUwMDI2aW50aSk7XFxuLVxcdH0gZWxzZSB7XFxuLVxcdFxcdC8qIEluamVjdCB0aGUgbWFjaGluZSBjaGVjayB0byBzcGVjaWZpZWQgdmNwdSAqL1xcbi1cXHRcXHRpcnEudHlwZSA9IEtWTV9TMzkwX01DSEs7XFxuLVxcdFxcdHJjID0ga3ZtX3MzOTBfaW5qZWN0X3ZjcHUodmNwdSwgXFx1MDAyNmlycSk7XFxuLVxcdH1cXG4rXFx0aXJxLnUubWNoay5jcjE0ID0gY3IxNDtcXG4rXFx0aXJxLnUubWNoay5tY2ljID0gbWNja19pbmZvLVxcdTAwM2VtY2ljO1xcbitcXHRpcnEudS5tY2hrLmV4dF9kYW1hZ2VfY29kZSA9IG1jY2tfaW5mby1cXHUwMDNlZXh0X2RhbWFnZV9jb2RlO1xcbitcXHRpcnEudS5tY2hrLmZhaWxpbmdfc3RvcmFnZV9hZGRyZXNzID0gbWNja19pbmZvLVxcdTAwM2VmYWlsaW5nX3N0b3JhZ2VfYWRkcmVzcztcXG4rXFxuK1xcdC8qIEluamVjdCB0aGUgbWFjaGluZSBjaGVjayB0byBzcGVjaWZpZWQgdmNwdSAqL1xcbitcXHRpcnEudHlwZSA9IEtWTV9TMzkwX01DSEs7XFxuK1xcdHJjID0ga3ZtX3MzOTBfaW5qZWN0X3ZjcHUodmNwdSwgXFx1MDAyNmlycSk7XFxuIFxcdFdBUk5fT05fT05DRShyYyk7XFxuIH1cXG4gXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA2VDE0OjM1OjM1LjgwODQ3MzE1WiIsIlNlcSI6MiwiTmVzdGluZyI6MSwiVHlwZSI6ImFnZW50IiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiYmVzdC1leHBlbnNpdmUiLCJEdXJhdGlvbiI6NDcwMzQ2ODI3ODQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiS1ZNXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwia3ZtX3MzOTBfcmVpbmplY3RfbWFjaGluZV9jaGVja1wiLFxuICAgIFwiczM5MF9kb19tYWNoaW5lX2NoZWNrXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgaG93IG1hY2hpbmUgY2hlY2tzIGFyZSBoYW5kbGVkIGFuZCByZWluamVjdGVkIGludG8gS1ZNIGd1ZXN0cyBvbiBzMzkwLiBJdCBjaGFuZ2VzIGBrdm1fczM5MF9yZWluamVjdF9tYWNoaW5lX2NoZWNrYCB0byBhbHdheXMgaW5qZWN0IHRoZSBtYWNoaW5lIGNoZWNrIHRvIHRoZSBzcGVjaWZpYyB2Y3B1IHJhdGhlciB0aGFuIGFzIGEgZmxvYXRpbmcgbWFjaGluZSBjaGVjaywgYW5kIHVwZGF0ZXMgdGhlIGBNQ0NLX0NPREVfTk9fR1VFU1RgIG1hc2suIFRoZXNlIGFyZSBmdW5jdGlvbmFsIGNoYW5nZXMgaW4gcmVhY2hhYmxlIEtWTSBhbmQgYXJjaGl0ZWN0dXJlLXNwZWNpZmljIGNvZGUuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLlxuWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmVcbmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cblxuSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluXG55b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHlcbnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuXG5cblJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6XG4tIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuXG4tIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLlxuLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuXG4tIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSxcbiAgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLlxuLSBDb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCxcbiAgaW9uaWMsIGFtZGdwdSkgdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuXG4tIERyaXZlciAucmVtb3ZlLCAuc2h1dGRvd24sIG9yIHBjaV91bnJlZ2lzdGVyX2RyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKGUuZy4sIGlnYl9yZW1vdmUpXG4gIHRoYXQgYXJlIGV4ZWN1dGVkIG9ubHkgZHVyaW5nIFBDSSBob3QtdW5wbHVnIG9yIHN5c2ZzIGRyaXZlciB1bmJpbmQgb3BlcmF0aW9ucy5cblxuSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaFxudG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuXG5cbldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOlxuMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy5cbiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLlxuICAgUHJlZmVyIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIEFQSSBlbnRyeXBvaW50IGZ1bmN0aW9ucyBvdmVyIGludGVybmFsIHN0YXRpYyBoZWxwZXIgZnVuY3Rpb25zXG4gICAod2hpY2ggYXJlIGlubGluZWQgYnkgdGhlIGNvbXBpbGVyIGFuZCBkbyBub3QgaGF2ZSBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzKS5cbjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLlxuICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLlxuICAgQWxzbyBjaGVjayBcImRlcGVuZHMgb25cIiBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3NcbiAgIG5lZWRlZCBmb3IgS2J1aWxkIHRvIGNvbXBpbGUgdGhlIGNvZGUgc3RhdGljYWxseSBpbnRvIHZtbGludXguIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlnc1xuICAgb3V0cHV0IGFycmF5LCBhbmQgRE8gTk9UIGFkZCBhICdDT05GSUdfJyBwcmVmaXggKGUuZy4sIHJldHVybiBcIk5FVF9JUFY0XCIgaW5zdGVhZCBvZiBcIkNPTkZJR19ORVRfSVBWNFwiKS5cblByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLlxuXG5cblVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuXG5JdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS5cbklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC5cbiIsIlByb21wdCI6IkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOlxuY29tbWl0IDk0NDc5OTI5MWQ3MGJmZjc5OGJhY2VlM2IzMGJkNWY4M2YwZjViMTFcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgVGh1IEF1ZyA2IDE0OjM1OjM0IDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvYXJjaC9zMzkwL2luY2x1ZGUvYXNtL25taS5oIGIvYXJjaC9zMzkwL2luY2x1ZGUvYXNtL25taS5oXG5pbmRleCA2NDU0YzE1MzE4NTQ0Li5kZDI2YzIwYmQyMzEwIDEwMDY0NFxuLS0tIGEvYXJjaC9zMzkwL2luY2x1ZGUvYXNtL25taS5oXG4rKysgYi9hcmNoL3MzOTAvaW5jbHVkZS9hc20vbm1pLmhcbkBAIC0yMiw2ICsyMiw3IEBAXG4gI2RlZmluZSBNQ0NLX0NPREVfU1lTVEVNX0RBTUFHRVx0XHRCSVQoNjMpXG4gI2RlZmluZSBNQ0NLX0NPREVfRVhUX0RBTUFHRVx0XHRCSVQoNjMgLSA1KVxuICNkZWZpbmUgTUNDS19DT0RFX0NQXHRcdFx0QklUKDYzIC0gOSlcbisjZGVmaW5lIE1DQ0tfQ09ERV9DS1x0XHRcdEJJVCg2MyAtIDExKVxuICNkZWZpbmUgTUNDS19DT0RFX1NUR19FUlJPUlx0XHRCSVQoNjMgLSAxNilcbiAjZGVmaW5lIE1DQ0tfQ09ERV9TVEdfS0VZX0VSUk9SXHRcdEJJVCg2MyAtIDE4KVxuICNkZWZpbmUgTUNDS19DT0RFX1NUR19ERUdSQURcdFx0QklUKDYzIC0gMTkpXG5kaWZmIC0tZ2l0IGEvYXJjaC9zMzkwL2tlcm5lbC9ubWkuYyBiL2FyY2gvczM5MC9rZXJuZWwvbm1pLmNcbmluZGV4IGUxN2E1OWQ0ZDVhNDEuLjY1MmI5ODc5NTI0MzYgMTAwNjQ0XG4tLS0gYS9hcmNoL3MzOTAva2VybmVsL25taS5jXG4rKysgYi9hcmNoL3MzOTAva2VybmVsL25taS5jXG5AQCAtMzQ1LDcgKzM0NSw3IEBAIHN0YXRpYyB2b2lkIG5vdHJhY2UgczM5MF9iYWNrdXBfbWNja19pbmZvKHN0cnVjdCBwdF9yZWdzICpyZWdzKVxuIFx0c2llX3BhZ2UgPSBjb250YWluZXJfb2Yoc2llX2Jsb2NrLCBzdHJ1Y3Qgc2llX3BhZ2UsIHNpZV9ibG9jayk7XG4gXHRtY2NrX2JhY2t1cCA9IFx1MDAyNnNpZV9wYWdlLVx1MDAzZW1jY2tfaW5mbztcbiBcdG1jY2tfYmFja3VwLVx1MDAzZW1jaWMgPSBnZXRfbG93Y29yZSgpLVx1MDAzZW1jY2tfaW50ZXJydXB0aW9uX2NvZGUgXHUwMDI2XG4tXHRcdFx0XHR+KE1DQ0tfQ09ERV9DUCB8IE1DQ0tfQ09ERV9FWFRfREFNQUdFKTtcbitcdFx0XHR+KE1DQ0tfQ09ERV9DUCB8IE1DQ0tfQ09ERV9FWFRfREFNQUdFIHwgTUNDS19DT0RFX0NLKTtcbiBcdG1jY2tfYmFja3VwLVx1MDAzZWV4dF9kYW1hZ2VfY29kZSA9IGdldF9sb3djb3JlKCktXHUwMDNlZXh0ZXJuYWxfZGFtYWdlX2NvZGU7XG4gXHRtY2NrX2JhY2t1cC1cdTAwM2VmYWlsaW5nX3N0b3JhZ2VfYWRkcmVzcyA9IGdldF9sb3djb3JlKCktXHUwMDNlZmFpbGluZ19zdG9yYWdlX2FkZHJlc3M7XG4gfVxuQEAgLTM1Nyw3ICszNTcsNyBAQCBOT0tQUk9CRV9TWU1CT0woczM5MF9iYWNrdXBfbWNja19pbmZvKTtcbiAjZGVmaW5lIEVEX1NUUF9JU0xBTkRcdDZcdC8qIEV4dGVybmFsIGRhbWFnZSBTVFAgaXNsYW5kIGNoZWNrICovXG4gI2RlZmluZSBFRF9TVFBfU1lOQ1x0N1x0LyogRXh0ZXJuYWwgZGFtYWdlIFNUUCBzeW5jIGNoZWNrICovXG4gXG4tI2RlZmluZSBNQ0NLX0NPREVfTk9fR1VFU1RcdChNQ0NLX0NPREVfQ1AgfCBNQ0NLX0NPREVfRVhUX0RBTUFHRSlcbisjZGVmaW5lIE1DQ0tfQ09ERV9OT19HVUVTVFx0KE1DQ0tfQ09ERV9DUCB8IE1DQ0tfQ09ERV9FWFRfREFNQUdFIHwgTUNDS19DT0RFX0NLKVxuIFxuIC8qXG4gICogbWFjaGluZSBjaGVjayBoYW5kbGVyLlxuZGlmZiAtLWdpdCBhL2FyY2gvczM5MC9rdm0vaW50ZXJydXB0LmMgYi9hcmNoL3MzOTAva3ZtL2ludGVycnVwdC5jXG5pbmRleCA3NTE0ZDllMjQwM2MxLi4zMzc1YTk1NjYzN2JlIDEwMDY0NFxuLS0tIGEvYXJjaC9zMzkwL2t2bS9pbnRlcnJ1cHQuY1xuKysrIGIvYXJjaC9zMzkwL2t2bS9pbnRlcnJ1cHQuY1xuQEAgLTMwOTksOSArMzA5OSw3IEBAIHN0YXRpYyBpbnQgc2V0X2FkYXB0ZXJfaW50KHN0cnVjdCBrdm1fa2VybmVsX2lycV9yb3V0aW5nX2VudHJ5ICplLFxuIHZvaWQga3ZtX3MzOTBfcmVpbmplY3RfbWFjaGluZV9jaGVjayhzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsXG4gXHRcdFx0XHQgICAgIHN0cnVjdCBtY2NrX3ZvbGF0aWxlX2luZm8gKm1jY2tfaW5mbylcbiB7XG4tXHRzdHJ1Y3Qga3ZtX3MzOTBfaW50ZXJydXB0X2luZm8gaW50aTtcbi1cdHN0cnVjdCBrdm1fczM5MF9pcnEgaXJxO1xuLVx0c3RydWN0IGt2bV9zMzkwX21jaGtfaW5mbyAqbWNoaztcbitcdHN0cnVjdCBrdm1fczM5MF9pcnEgaXJxID0ge307XG4gXHR1bmlvbiBtY2kgbWNpO1xuIFx0X191NjQgY3IxNCA9IDA7ICAgICAgICAgLyogdXBwZXIgYml0cyBhcmUgbm90IHVzZWQgKi9cbiBcdGludCByYztcbkBAIC0zMTIwLDIwICszMTE4LDE0IEBAIHZvaWQga3ZtX3MzOTBfcmVpbmplY3RfbWFjaGluZV9jaGVjayhzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsXG4gXHRpZiAobWNpLncpXG4gXHRcdGNyMTQgfD0gQ1IxNF9XQVJOSU5HX1NVQk1BU0s7XG4gXG4tXHRtY2hrID0gbWNpLmNrID8gXHUwMDI2aW50aS5tY2hrIDogXHUwMDI2aXJxLnUubWNoaztcbi1cdG1jaGstXHUwMDNlY3IxNCA9IGNyMTQ7XG4tXHRtY2hrLVx1MDAzZW1jaWMgPSBtY2NrX2luZm8tXHUwMDNlbWNpYztcbi1cdG1jaGstXHUwMDNlZXh0X2RhbWFnZV9jb2RlID0gbWNja19pbmZvLVx1MDAzZWV4dF9kYW1hZ2VfY29kZTtcbi1cdG1jaGstXHUwMDNlZmFpbGluZ19zdG9yYWdlX2FkZHJlc3MgPSBtY2NrX2luZm8tXHUwMDNlZmFpbGluZ19zdG9yYWdlX2FkZHJlc3M7XG4tXHRpZiAobWNpLmNrKSB7XG4tXHRcdC8qIEluamVjdCB0aGUgZmxvYXRpbmcgbWFjaGluZSBjaGVjayAqL1xuLVx0XHRpbnRpLnR5cGUgPSBLVk1fUzM5MF9NQ0hLO1xuLVx0XHRyYyA9IF9faW5qZWN0X3ZtKHZjcHUtXHUwMDNla3ZtLCBcdTAwMjZpbnRpKTtcbi1cdH0gZWxzZSB7XG4tXHRcdC8qIEluamVjdCB0aGUgbWFjaGluZSBjaGVjayB0byBzcGVjaWZpZWQgdmNwdSAqL1xuLVx0XHRpcnEudHlwZSA9IEtWTV9TMzkwX01DSEs7XG4tXHRcdHJjID0ga3ZtX3MzOTBfaW5qZWN0X3ZjcHUodmNwdSwgXHUwMDI2aXJxKTtcbi1cdH1cbitcdGlycS51Lm1jaGsuY3IxNCA9IGNyMTQ7XG4rXHRpcnEudS5tY2hrLm1jaWMgPSBtY2NrX2luZm8tXHUwMDNlbWNpYztcbitcdGlycS51Lm1jaGsuZXh0X2RhbWFnZV9jb2RlID0gbWNja19pbmZvLVx1MDAzZWV4dF9kYW1hZ2VfY29kZTtcbitcdGlycS51Lm1jaGsuZmFpbGluZ19zdG9yYWdlX2FkZHJlc3MgPSBtY2NrX2luZm8tXHUwMDNlZmFpbGluZ19zdG9yYWdlX2FkZHJlc3M7XG4rXG4rXHQvKiBJbmplY3QgdGhlIG1hY2hpbmUgY2hlY2sgdG8gc3BlY2lmaWVkIHZjcHUgKi9cbitcdGlycS50eXBlID0gS1ZNX1MzOTBfTUNISztcbitcdHJjID0ga3ZtX3MzOTBfaW5qZWN0X3ZjcHUodmNwdSwgXHUwMDI2aXJxKTtcbiBcdFdBUk5fT05fT05DRShyYyk7XG4gfVxuIFxuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDZUMTQ6MzU6MzUuODA4NDc0ODFaIiwiU2VxIjozLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo1MzYzNDE5NTIwLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyBhIHMzOTAgQXJjaGl0ZWN0dXJlIFBhdGNoIGZvciBGdXp6aW5nIFBvdGVudGlhbCoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggdGFyZ2V0aW5nIHRoZSBzMzkwIGFyY2hpdGVjdHVyZSwgc3BlY2lmaWNhbGx5IHRvdWNoaW5nIGBubWkuaGAsIGBubWkuY2AsIGFuZCBgaW50ZXJydXB0LmNgIGZpbGVzLiBJdCBsb29rcyBsaWtlIGl0J3MgYWRkaW5nIGBNQ0NLX0NPREVfQ0tgIHRvIGBNQ0NLX0NPREVfTk9fR1VFU1RgIGFuZCBpbnRyb2R1Y2luZyBgczM5MF9iYWNrdXBfbWNja19pbmZvYC4gVGhlIGNvcmUgY2hhbmdlIHNpbXBsaWZpZXMgYGt2bV9zMzkwX3JlaW5qZWN0X21hY2hpbmVfY2hlY2tgIGJ5IGVuc3VyaW5nIG1hY2hpbmUgY2hlY2tzIGFyZSBhbHdheXMgaW5qZWN0ZWQgdG8gYSBzcGVjaWZpYyB2Y3B1LlxuXG5NeSBpbml0aWFsIHRob3VnaHQgaXMgdG8gYXNzZXNzIGl0cyBmdXp6YWJpbGl0eS4gR2l2ZW4gbXkga25vd2xlZGdlLCBJIG5lZWQgdG8gcGlucG9pbnQgdGhlIHJlbGV2YW50IGNvZGU7IGBrdm1fczM5MF9yZWluamVjdF9tYWNoaW5lX2NoZWNrYCBpcyB0aGUga2V5LiBUaGUgY29kZSByZXNpZGVzIGluIGBhcmNoL3MzOTAva3ZtL2ludGVycnVwdC5jYCBhbmQgYGFyY2gvczM5MC9rZXJuZWwvbm1pLmNgLCB3aGljaCBtYWtlcyBzZW5zZSBhcyB0aGVzZSBhcmUgS1ZNIGFuZCBhcmNoaXRlY3R1cmUtc3BlY2lmaWMgZmlsZXMuIFRoZSBhcmNoaXRlY3R1cmUgaXMgczM5MCwgYW5kIFN5emthbGxlciwgYSBwcm9taW5lbnQgZnV6emVyLCBzdXBwb3J0cyBzMzkweC4gSSBuZWVkIHRvIG1ha2Ugc3VyZSB0aGlzIGlzIGNvbXBhdGlibGUuXG5cblNpbmNlIGl0J3MgS1ZNLXJlbGF0ZWQsIEkgbmVlZCB0byB0cmFjZSB0aGUgY2FsbCBwYXRocyB0byBga3ZtX3MzOTBfcmVpbmplY3RfbWFjaGluZV9jaGVja2AgdG8gdW5kZXJzdGFuZCB0aGUgY29udGV4dHMgaXQncyB1c2VkIGluIGFuZCBpZGVudGlmeSBwb3RlbnRpYWwgZW50cnkgcG9pbnRzIGZvciBmdXp6aW5nLiBGaWd1cmluZyBvdXQgaG93IGl0J3MgY2FsbGVkIHdpbGwgZ2l2ZSBtZSBhIGJldHRlciB1bmRlcnN0YW5kaW5nIG9mIGhvdyB0aGUgcGF0Y2ggY2hhbmdlcyB0aGUgS1ZNIGJlaGF2aW9yLlxuXG5cbiIsIklucHV0VG9rZW5zIjozMzU3LCJPdXRwdXRUb2tlbnMiOjI4LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjQ4LCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDZUMTQ6MzU6NDEuMTcxODk3MDVaIiwiU2VxIjo0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTcwODExNzc3OSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJrdm1fczM5MF9yZWluamVjdF9tYWNoaW5lX2NoZWNrXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImFyY2gvczM5MC9rdm0vaW50ZXJydXB0LmM9MzA3Mj1zdGF0aWMgaW50IHNldF9hZGFwdGVyX2ludChzdHJ1Y3Qga3ZtX2tlcm5lbF9pcnFfcm91dGluZ19lbnRyeSAqZSxcXG4tLVxcbmFyY2gvczM5MC9rdm0vaW50ZXJydXB0LmMtMzA5OC0gKi9cXG5hcmNoL3MzOTAva3ZtL2ludGVycnVwdC5jOjMwOTk6dm9pZCBrdm1fczM5MF9yZWluamVjdF9tYWNoaW5lX2NoZWNrKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSxcXG5hcmNoL3MzOTAva3ZtL2ludGVycnVwdC5jLTMxMDAtXFx0XFx0XFx0XFx0ICAgICBzdHJ1Y3QgbWNja192b2xhdGlsZV9pbmZvICptY2NrX2luZm8pXFxuLS1cXG5hcmNoL3MzOTAva3ZtL2t2bS1zMzkwLmM9NDcyNT1zdGF0aWMgaW50IHZjcHVfcG9zdF9ydW4oc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCBpbnQgc2llX3JldHVybilcXG4tLVxcbmFyY2gvczM5MC9rdm0va3ZtLXMzOTAuYy00NzQ0LVxcdFxcdG1jY2tfaW5mbyA9IFxcdTAwMjZzaWVfcGFnZS1cXHUwMDNlbWNja19pbmZvO1xcbmFyY2gvczM5MC9rdm0va3ZtLXMzOTAuYzo0NzQ1OlxcdFxcdGt2bV9zMzkwX3JlaW5qZWN0X21hY2hpbmVfY2hlY2sodmNwdSwgbWNja19pbmZvKTtcXG5hcmNoL3MzOTAva3ZtL2t2bS1zMzkwLmMtNDc0Ni1cXHRcXHRyZXR1cm4gMDtcXG4tLVxcbmFyY2gvczM5MC9rdm0va3ZtLXMzOTAuaD01Nzg9c3RhdGljIGlubGluZSBpbnQga3ZtX3MzOTBfdXNlX3NjYV9lbnRyaWVzKHZvaWQpXFxuLS1cXG5hcmNoL3MzOTAva3ZtL2t2bS1zMzkwLmgtNTg2LX1cXG5hcmNoL3MzOTAva3ZtL2t2bS1zMzkwLmg6NTg3OnZvaWQga3ZtX3MzOTBfcmVpbmplY3RfbWFjaGluZV9jaGVjayhzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsXFxuYXJjaC9zMzkwL2t2bS9rdm0tczM5MC5oLTU4OC1cXHRcXHRcXHRcXHQgICAgIHN0cnVjdCBtY2NrX3ZvbGF0aWxlX2luZm8gKm1jY2tfaW5mbyk7XFxuLS1cXG5hcmNoL3MzOTAva3ZtL3ZzaWUuYz0xMTg3PXN0YXRpYyBpbnQgZG9fdnNpZV9ydW4oc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCBzdHJ1Y3QgdnNpZV9wYWdlICp2c2llX3BhZ2UsIHN0cnVjdCBnbWFwICpzZylcXG4tLVxcbmFyY2gvczM5MC9rdm0vdnNpZS5jLTEyNTAtXFx0aWYgKHNpZV9yZXR1cm4gPT0gU0lFNjRfUkVUVVJOX01DQ0spIHtcXG5hcmNoL3MzOTAva3ZtL3ZzaWUuYzoxMjUxOlxcdFxcdGt2bV9zMzkwX3JlaW5qZWN0X21hY2hpbmVfY2hlY2sodmNwdSwgXFx1MDAyNnZzaWVfcGFnZS1cXHUwMDNlbWNja19pbmZvKTtcXG5hcmNoL3MzOTAva3ZtL3ZzaWUuYy0xMjUyLVxcdFxcdHJldHVybiAwO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wNlQxNDozNTo0Mi44ODAwMjI0NzlaIiwiU2VxIjo1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0OTE4Mjc0MTYzLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyBhIEtWTSBzMzkwIE1hY2hpbmUgQ2hlY2sgUGF0Y2gqKlxuXG5Pa2F5LCBzbyB0aGlzIHBhdGNoIGlzIG1vZGlmeWluZyBga3ZtX3MzOTBfcmVpbmplY3RfbWFjaGluZV9jaGVja2AuIEkga25vdyB0aGF0IGZ1bmN0aW9uIGlzIGNhbGxlZCBmcm9tIGB2Y3B1X3Bvc3RfcnVuYCBhbmQgYGRvX3ZzaWVfcnVuYCwgd2hpY2ggYXJlIGJvdGggY2VudHJhbCB0byBLVk0gZ3Vlc3QgZXhlY3V0aW9uIG9uIHRoZSBzMzkwIGFyY2hpdGVjdHVyZS4gVGhpcyBzdHJvbmdseSBzdWdnZXN0cyB0aGF0IHdlJ3JlIGRlYWxpbmcgd2l0aCBhIGNvcmUgY29tcG9uZW50IG9mIGhvdyB0aGUgaHlwZXJ2aXNvciBoYW5kbGVzIGVycm9ycyB0aGF0IGhhcHBlbiAqd2l0aGluKiB0aGUgdmlydHVhbCBtYWNoaW5lLiBNeSBpbml0aWFsIHRob3VnaHQgaXMsIGlzIHRoaXMgc29tZXRoaW5nIHRoYXQgY291bGQgYmUgZnV6emVkPyBHaXZlbiB0aGF0IEtWTSBvbiBzMzkwIGlzIGFscmVhZHkgZnV6emFibGUgLSBTeXprYWxsZXIsIGlmIEkgcmVjYWxsIGNvcnJlY3RseSwgaGFzIHNvbWUgczM5MHggS1ZNIHN1cHBvcnQgLSB0aGUgcG90ZW50aWFsIGZvciBmaW5kaW5nIHZ1bG5lcmFiaWxpdGllcyB0aHJvdWdoIGZ1enppbmcgaXMgZGVmaW5pdGVseSB0aGVyZS5cblxuSG93ZXZlciwgYSBxdWljayBzZWNvbmQgbG9vayByZXZlYWxzIHRoaXMgcGF0Y2ggaXNuJ3QganVzdCBhYm91dCByZWluamVjdGlvbi4gSXQncyBhbHNvIHRvdWNoaW5nIGBzMzkwX2JhY2t1cF9tY2NrX2luZm9gIHdoaWNoLCBnaXZlbiBpdHMgbmFtZSwgbGlrZWx5IG1lYW5zIGJhY2tpbmcgdXAgTWFjaGluZSBDaGVjayBDb2RlIGluZm9ybWF0aW9uIGZvciByZWNvdmVyeSBvciBhbmFseXNpcyBwdXJwb3NlcywgYW5kIEknbSBpbnRlcmVzdGVkIGluIGtub3dpbmcgbW9yZSBhYm91dCBpdC4gTm93IEkgbmVlZCB0byBmaWd1cmUgb3V0IHdoZXJlIGBzMzkwX2JhY2t1cF9tY2NrX2luZm9gIGlzIGNhbGxlZC4gSXQgbWF5IGJlIGhlbHBmdWwgdG8gdW5kZXJzdGFuZCB0aGUgZnVsbCBjb250ZXh0IG9mIHRoZSBjaGFuZ2VzLiBUaGlzIGNvdWxkIGJlIGEgY3JpdGljYWwgYXJlYSwgcG90ZW50aWFsbHkgcmVsYXRlZCB0byBoYW5kbGluZyBjb3JydXB0IHN0YXRlcywgb3IgbWF5YmUgZXZlbiB0byBleHBsb2l0aW5nIHJhY2UgY29uZGl0aW9ucyBhcm91bmQgZXJyb3IgaGFuZGxpbmcuIExldCdzIGRpZyBkZWVwZXIgYW5kIGdldCBhIGZ1bGwgcGljdHVyZS5cblxuXG4iLCJJbnB1dFRva2VucyI6NDY1MCwiT3V0cHV0VG9rZW5zIjoyNiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE2MCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0wNlQxNDozNTo0Ny43OTgyOTg3NTJaIiwiU2VxIjo2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTgxMDk3MDE4NSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJzMzkwX2JhY2t1cF9tY2NrX2luZm9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiYXJjaC9zMzkwL2tlcm5lbC9ubWkuYz0zMjg9Tk9LUFJPQkVfU1lNQk9MKG5taV9yZWdpc3RlcnNfdmFsaWQpO1xcbi0tXFxuYXJjaC9zMzkwL2tlcm5lbC9ubWkuYy0zMzItICovXFxuYXJjaC9zMzkwL2tlcm5lbC9ubWkuYzozMzM6c3RhdGljIHZvaWQgbm90cmFjZSBzMzkwX2JhY2t1cF9tY2NrX2luZm8oc3RydWN0IHB0X3JlZ3MgKnJlZ3MpXFxuYXJjaC9zMzkwL2tlcm5lbC9ubWkuYy0zMzQte1xcbi0tXFxuYXJjaC9zMzkwL2tlcm5lbC9ubWkuYy0zNTEtfVxcbmFyY2gvczM5MC9rZXJuZWwvbm1pLmM6MzUyOk5PS1BST0JFX1NZTUJPTChzMzkwX2JhY2t1cF9tY2NrX2luZm8pO1xcbmFyY2gvczM5MC9rZXJuZWwvbm1pLmMtMzUzLVxcbi0tXFxuYXJjaC9zMzkwL2tlcm5lbC9ubWkuYz0zNjU9dm9pZCBub3RyYWNlIHMzOTBfZG9fbWFjaGluZV9jaGVjayhzdHJ1Y3QgcHRfcmVncyAqcmVncylcXG4tLVxcbmFyY2gvczM5MC9rZXJuZWwvbm1pLmMtNDQ0LVxcdGlmICh0ZXN0X2NwdV9mbGFnKENJRl9NQ0NLX0dVRVNUKSlcXG5hcmNoL3MzOTAva2VybmVsL25taS5jOjQ0NTpcXHRcXHRzMzkwX2JhY2t1cF9tY2NrX2luZm8ocmVncyk7XFxuYXJjaC9zMzkwL2tlcm5lbC9ubWkuYy00NDYtXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA2VDE0OjM1OjQ5LjYwOTI3MzM5N1oiLCJTZXEiOjcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjc0MjMyODgyMzYsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBzMzkweCBNYWNoaW5lIENoZWNrIEhhbmRsaW5nIGluIEtWTSoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgYHMzOTBfZG9fbWFjaGluZV9jaGVja2AgZnVuY3Rpb24sIHdoaWNoIGNhbGxzIGBzMzkwX2JhY2t1cF9tY2NrX2luZm9gLiBUaGlzIGlzIHRoZSBhcmNoaXRlY3R1cmUtc3BlY2lmaWMgbWFjaGluZSBjaGVjayBoYW5kbGVyIGZvciBzMzkweCwgYW5kIHRoZSBjb3JlIG9mIG15IHF1ZXN0aW9uIGlzOiBjYW4gc3l6a2FsbGVyIGFjdHVhbGx5IHRyaWdnZXIgdGhlc2UgbWFjaGluZSBjaGVja3M/IE5vcm1hbGx5LCBtYWNoaW5lIGNoZWNrcyBhcmUgaGFyZHdhcmUgZXJyb3JzLCByaWdodD8gQnV0IHdpdGggS1ZNLCB0aGluZ3MgZ2V0IGEgYml0IGZ1enppZXIuIFBlcmhhcHMgd2UgY291bGQgaW5qZWN0IHRoZW0sIG9yIHBlcmhhcHMgc29tZSBndWVzdCBhY3Rpb24gY291bGQgY2F1c2Ugb25lP1xuXG5BY3R1YWxseSwgaWYgaXQgKmlzKiBhIGhhcmR3YXJlIGVycm9yLCBjYW4gc3l6a2FsbGVyIGV2ZW4gdG91Y2ggaXQ/IFRoZW4gSSByZW1lbWJlcjogc3l6a2FsbGVyICpjYW4qIHVzZSBgL2Rldi9rdm1gIHRvIGVpdGhlciBpbmplY3QgbWFjaGluZSBjaGVja3MgZGlyZWN0bHkgaW50byB0aGUgZ3Vlc3Qgb3IgbWF5YmUgdGhlIGd1ZXN0IGl0c2VsZiB0cmlnZ2VycyBpdCBzb21laG93LlxuXG5UaGUgcGF0Y2ggSSdtIGV4YW1pbmluZyBtb2RpZmllcyBga3ZtX3MzOTBfcmVpbmplY3RfbWFjaGluZV9jaGVja2AuIFRoaXMgZnVuY3Rpb24gaXMgdHJpZ2dlcmVkIHdoZW4gYHNpZV9yZXR1cm4gPT0gU0lFNjRfUkVUVVJOX01DQ0tgLiBUaGF04oCZcyB0aGUga2V5ISBJdCBoYXBwZW5zIHdoZW4gdGhlIGhhcmR3YXJlLCBvciBtb3JlIHJlYWxpc3RpY2FsbHksIHRoZSBoeXBlcnZpc29yLCByZXR1cm5zIGZyb20gdGhlIFNJRSBpbnN0cnVjdGlvbiB3aXRoIGEgbWFjaGluZSBjaGVjayBpbmRpY2F0aW9uLiBUaGF0IG1ha2VzIG1lIHRoaW5rOiBDYW4gdGhlIGd1ZXN0ICphY3R1YWxseSogdHJpZ2dlciBhIG1hY2hpbmUgY2hlY2s/IFNvbWV0aW1lcyB5ZXMsIGJ1dCB1c3VhbGx5IGl0IGlzIGluamVjdGVkIGJ5IHRoZSBob3N0LlxuXG5JZiBzeXprYWxsZXIgaXMgZnV6emluZyBLVk0gZnJvbSB0aGUgaG9zdCwgaXQgY2FuIHVzZSBLVk0gaW9jdGxzIHRvIGluamVjdCB0aGVzZSBjaGVja3MsIG9yIG1heWJlIGNvbmZpZ3VyZSB0aGUgZ3Vlc3QgaW4gYSB3YXkgdGhhdCBpbmRpcmVjdGx5IGNhdXNlcyBhIG1hY2hpbmUgY2hlY2suXG5cbkhhbmcgb27igKYgTGV0IG1lIG1ha2Ugc3VyZSBJJ20gZm9sbG93aW5nLiBga3ZtX3MzOTBfcmVpbmplY3RfbWFjaGluZV9jaGVja2AgaXMgY2FsbGVkIHdoZW4gYHZjcHVfcG9zdF9ydW5gIGRldGVjdHMgYHNpZV9yZXR1cm4gPT0gU0lFNjRfUkVUVVJOX01DQ0tgLiBUaGF0IG1lYW5zIHRoZSBob3N0IGtlcm5lbCBpcyBydW5uaW5nIHRoZSBgS1ZNX1JVTmAgaW9jdGwsIGFuZCB0aGUgU0lFIGluc3RydWN0aW9uIHdpdGhpbiBLVk0gcmV0dXJucyB3aXRoIGEgbWFjaGluZSBjaGVjayBpbmRpY2F0aW9uLiBUaGlzIGlzIHRoZSBtZWNoYW5pc20hXG5cblNvIHRoZSBjcml0aWNhbCBxdWVzdGlvbiBpczogQ2FuIHdlIGFjdHVhbGx5IG1hbmlwdWxhdGUgdGhpcyBmbG93IHdpdGggc3l6a2FsbGVyPyBJZiBzeXprYWxsZXIgaXMgcnVubmluZyBvbiBzMzkweCwgaXQgY2FuIGNhbGwgYEtWTV9SVU5gLiBJZiB0aGUgZ3Vlc3QgZG9lcyBzb21ldGhpbmcgdG8gYWN0dWFsbHkgKnRyaWdnZXIqIGEgbWFjaGluZSBjaGVjaywgb3IgaWYgd2UgY2FuIGluamVjdCBvbmUsIG1heWJlIHdlJ3ZlIGdvdCBhIHNob3QuXG5cbldhaXQgYSBzZWNvbmQsIGBrdm1fczM5MF9yZWluamVjdF9tYWNoaW5lX2NoZWNrYCBpcyAqZGVmaW5pdGVseSogYSBLVk0gZnVuY3Rpb24uIExldCdzIGNoZWNrIGBLVk1fUzM5MF9NQ0hLYCBpbmplY3Rpb24uIExldCdzIGxvb2sgYXQgdGhhdCBwYXRoIVxuXG5cbiIsIklucHV0VG9rZW5zIjo1NDg3LCJPdXRwdXRUb2tlbnMiOjI0LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NDExLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA2VDE0OjM1OjU3LjAzMjU2NDE3M1oiLCJTZXEiOjgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNTg2ODk2NjAyLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIktWTV9TMzkwX01DSEtcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiRG9jdW1lbnRhdGlvbi92aXJ0L2t2bS9hcGkucnN0PTMyOTc9S1ZNX1MzOTBfSU5UX0lPKGFpLGNzc2lkLHNzaWQsc2NoaWQpICh2bSlcXG4tLVxcbkRvY3VtZW50YXRpb24vdmlydC9rdm0vYXBpLnJzdC0zMzAxLSAgICAgIGludGVycnVwdGlvbiBzdWJjbGFzcylcXG5Eb2N1bWVudGF0aW9uL3ZpcnQva3ZtL2FwaS5yc3Q6MzMwMjpLVk1fUzM5MF9NQ0hLICh2bSwgdmNwdSlcXG5Eb2N1bWVudGF0aW9uL3ZpcnQva3ZtL2FwaS5yc3QtMzMwMy0gICAgLSBtYWNoaW5lIGNoZWNrIGludGVycnVwdDsgY3IgMTQgYml0cyBpbiBwYXJtLCBtYWNoaW5lIGNoZWNrIGludGVycnVwdFxcbi0tXFxuRG9jdW1lbnRhdGlvbi92aXJ0L2t2bS9hcGkucnN0PTQxMDk9dHlwZSBjYW4gYmUgb25lIG9mIHRoZSBmb2xsb3dpbmc6XFxuLS1cXG5Eb2N1bWVudGF0aW9uL3ZpcnQva3ZtL2FwaS5yc3QtNDExOC0tIEtWTV9TMzkwX0lOVF9FWFRFUk5BTF9DQUxMIC0gc2lncCBleHRlcm5hbCBjYWxsOyBwYXJhbWV0ZXJzIGluIC5leHRjYWxsXFxuRG9jdW1lbnRhdGlvbi92aXJ0L2t2bS9hcGkucnN0OjQxMTk6LSBLVk1fUzM5MF9NQ0hLIC0gbWFjaGluZSBjaGVjayBpbnRlcnJ1cHQ7IHBhcmFtZXRlcnMgaW4gLm1jaGtcXG5Eb2N1bWVudGF0aW9uL3ZpcnQva3ZtL2FwaS5yc3QtNDEyMC1cXG4tLVxcbmFyY2gvczM5MC9pbmNsdWRlL3VhcGkvYXNtL2t2bS5oPTk2PXN0cnVjdCBrdm1fczM5MF9wc3cge1xcbi0tXFxuYXJjaC9zMzkwL2luY2x1ZGUvdWFwaS9hc20va3ZtLmgtMTA3LSNkZWZpbmUgS1ZNX1MzOTBfSU5UX1BGQVVMVF9ET05FXFx0MHhmZmZlMDAwNXVcXG5hcmNoL3MzOTAvaW5jbHVkZS91YXBpL2FzbS9rdm0uaDoxMDg6I2RlZmluZSBLVk1fUzM5MF9NQ0hLXFx0XFx0XFx0MHhmZmZlMTAwMHVcXG5hcmNoL3MzOTAvaW5jbHVkZS91YXBpL2FzbS9rdm0uaC0xMDktI2RlZmluZSBLVk1fUzM5MF9JTlRfQ0xPQ0tfQ09NUFxcdFxcdDB4ZmZmZjEwMDR1XFxuLS1cXG5hcmNoL3MzOTAva3ZtL2ludGVycnVwdC5jPTYyMD1zdGF0aWMgaW50IF9fbXVzdF9jaGVjayBfX2RlbGl2ZXJfbWFjaGluZV9jaGVjayhzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpXFxuLS1cXG5hcmNoL3MzOTAva3ZtL2ludGVycnVwdC5jLTY2My1cXHRcXHR0cmFjZV9rdm1fczM5MF9kZWxpdmVyX2ludGVycnVwdCh2Y3B1LVxcdTAwM2V2Y3B1X2lkLFxcbmFyY2gvczM5MC9rdm0vaW50ZXJydXB0LmM6NjY0OlxcdFxcdFxcdFxcdFxcdFxcdCBLVk1fUzM5MF9NQ0hLLFxcbmFyY2gvczM5MC9rdm0vaW50ZXJydXB0LmMtNjY1LVxcdFxcdFxcdFxcdFxcdFxcdCBtY2hrLmNyMTQsIG1jaGsubWNpYyk7XFxuLS1cXG5hcmNoL3MzOTAva3ZtL2ludGVycnVwdC5jPTE2MDM9c3RhdGljIGludCBfX2luamVjdF9tY2hrKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwgc3RydWN0IGt2bV9zMzkwX2lycSAqaXJxKVxcbi0tXFxuYXJjaC9zMzkwL2t2bS9pbnRlcnJ1cHQuYy0xNjEwLVxcdFxcdCAgIGlycS1cXHUwMDNldS5tY2hrLm1jaWMpO1xcbmFyY2gvczM5MC9rdm0vaW50ZXJydXB0LmM6MTYxMTpcXHR0cmFjZV9rdm1fczM5MF9pbmplY3RfdmNwdSh2Y3B1LVxcdTAwM2V2Y3B1X2lkLCBLVk1fUzM5MF9NQ0hLLCAwLFxcbmFyY2gvczM5MC9rdm0vaW50ZXJydXB0LmMtMTYxMi1cXHRcXHRcXHRcXHQgICBpcnEtXFx1MDAzZXUubWNoay5tY2ljKTtcXG4tLVxcbmFyY2gvczM5MC9rdm0vaW50ZXJydXB0LmM9MTkxMj1zdGF0aWMgdm9pZCBfX2Zsb2F0aW5nX2lycV9raWNrKHN0cnVjdCBrdm0gKmt2bSwgdTY0IHR5cGUpXFxuLS1cXG5hcmNoL3MzOTAva3ZtL2ludGVycnVwdC5jLTE5MzItXFx0c3dpdGNoICh0eXBlKSB7XFxuYXJjaC9zMzkwL2t2bS9pbnRlcnJ1cHQuYzoxOTMzOlxcdGNhc2UgS1ZNX1MzOTBfTUNISzpcXG5hcmNoL3MzOTAva3ZtL2ludGVycnVwdC5jLTE5MzQtXFx0XFx0a3ZtX3MzOTBfc2V0X2NwdWZsYWdzKGRzdF92Y3B1LCBDUFVTVEFUX1NUT1BfSU5UKTtcXG4tLVxcbmFyY2gvczM5MC9rdm0vaW50ZXJydXB0LmM9MTk0OT1zdGF0aWMgaW50IF9faW5qZWN0X3ZtKHN0cnVjdCBrdm0gKmt2bSwgc3RydWN0IGt2bV9zMzkwX2ludGVycnVwdF9pbmZvICppbnRpKVxcbi0tXFxuYXJjaC9zMzkwL2t2bS9pbnRlcnJ1cHQuYy0xOTU0LVxcdHN3aXRjaCAodHlwZSkge1xcbmFyY2gvczM5MC9rdm0vaW50ZXJydXB0LmM6MTk1NTpcXHRjYXNlIEtWTV9TMzkwX01DSEs6XFxuYXJjaC9zMzkwL2t2bS9pbnRlcnJ1cHQuYy0xOTU2LVxcdFxcdHJjID0gX19pbmplY3RfZmxvYXRfbWNoayhrdm0sIGludGkpO1xcbi0tXFxuYXJjaC9zMzkwL2t2bS9pbnRlcnJ1cHQuYz0xOTgwPWludCBrdm1fczM5MF9pbmplY3Rfdm0oc3RydWN0IGt2bSAqa3ZtLFxcbi0tXFxuYXJjaC9zMzkwL2t2bS9pbnRlcnJ1cHQuYy0xOTk5LVxcdFxcdGJyZWFrO1xcbmFyY2gvczM5MC9rdm0vaW50ZXJydXB0LmM6MjAwMDpcXHRjYXNlIEtWTV9TMzkwX01DSEs6XFxuYXJjaC9zMzkwL2t2bS9pbnRlcnJ1cHQuYy0yMDAxLVxcdFxcdFZNX0VWRU5UKGt2bSwgMywgXFxcImluamVjdDogbWFjaGluZSBjaGVjayBtY2ljIDB4JWxseFxcXCIsXFxuLS1cXG5hcmNoL3MzOTAva3ZtL2ludGVycnVwdC5jPTIwMjk9aW50IHMzOTBpbnRfdG9fczM5MGlycShzdHJ1Y3Qga3ZtX3MzOTBfaW50ZXJydXB0ICpzMzkwaW50LFxcbi0tXFxuYXJjaC9zMzkwL2t2bS9pbnRlcnJ1cHQuYy0yMDU0LVxcdFxcdGJyZWFrO1xcbmFyY2gvczM5MC9rdm0vaW50ZXJydXB0LmM6MjA1NTpcXHRjYXNlIEtWTV9TMzkwX01DSEs6XFxuYXJjaC9zMzkwL2t2bS9pbnRlcnJ1cHQuYy0yMDU2LVxcdFxcdGlycS1cXHUwMDNldS5tY2hrLm1jaWMgPSBzMzkwaW50LVxcdTAwM2VwYXJtNjQ7XFxuLS1cXG5hcmNoL3MzOTAva3ZtL2ludGVycnVwdC5jPTIwOTY9c3RhdGljIGludCBkb19pbmplY3RfdmNwdShzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIHN0cnVjdCBrdm1fczM5MF9pcnEgKmlycSlcXG4tLVxcbmFyY2gvczM5MC9rdm0vaW50ZXJydXB0LmMtMjEyNC1cXHRcXHRicmVhaztcXG5hcmNoL3MzOTAva3ZtL2ludGVycnVwdC5jOjIxMjU6XFx0Y2FzZSBLVk1fUzM5MF9NQ0hLOlxcbmFyY2gvczM5MC9rdm0vaW50ZXJydXB0LmMtMjEyNi1cXHRcXHRyYyA9IF9faW5qZWN0X21jaGsodmNwdSwgaXJxKTtcXG4tLVxcbmFyY2gvczM5MC9rdm0vaW50ZXJydXB0LmM9MjIwMj1zdGF0aWMgaW50IGdldF9hbGxfZmxvYXRpbmdfaXJxcyhzdHJ1Y3Qga3ZtICprdm0sIHU4IF9fdXNlciAqdXNyYnVmLCB1NjQgbGVuKVxcbi0tXFxuYXJjaC9zMzkwL2t2bS9pbnRlcnJ1cHQuYy0yMjc1LVxcdFxcdGlycSA9IChzdHJ1Y3Qga3ZtX3MzOTBfaXJxICopIFxcdTAwMjZidWZbbl07XFxuYXJjaC9zMzkwL2t2bS9pbnRlcnJ1cHQuYzoyMjc2OlxcdFxcdGlycS1cXHUwMDNldHlwZSA9IEtWTV9TMzkwX01DSEs7XFxuYXJjaC9zMzkwL2t2bS9pbnRlcnJ1cHQuYy0yMjc3LVxcdFxcdGlycS1cXHUwMDNldS5tY2hrID0gZmktXFx1MDAzZW1jaGs7XFxuLS1cXG5hcmNoL3MzOTAva3ZtL2ludGVycnVwdC5jPTIzMzU9c3RhdGljIGlubGluZSBpbnQgY29weV9pcnFfZnJvbV91c2VyKHN0cnVjdCBrdm1fczM5MF9pbnRlcnJ1cHRfaW5mbyAqaW50aSxcXG4tLVxcbmFyY2gvczM5MC9rdm0vaW50ZXJydXB0LmMtMjM1OS1cXHRcXHRicmVhaztcXG5hcmNoL3MzOTAva3ZtL2ludGVycnVwdC5jOjIzNjA6XFx0Y2FzZSBLVk1fUzM5MF9NQ0hLOlxcbmFyY2gvczM5MC9rdm0vaW50ZXJydXB0LmMtMjM2MS1cXHRcXHR0YXJnZXQgPSAodm9pZCAqKSBcXHUwMDI2aW50aS1cXHUwMDNlbWNoaztcXG4tLVxcbmFyY2gvczM5MC9rdm0vaW50ZXJydXB0LmM9MzA5OT12b2lkIGt2bV9zMzkwX3JlaW5qZWN0X21hY2hpbmVfY2hlY2soc3RydWN0IGt2bV92Y3B1ICp2Y3B1LFxcbi0tXFxuYXJjaC9zMzkwL2t2bS9pbnRlcnJ1cHQuYy0zMTI2LVxcdC8qIEluamVjdCB0aGUgbWFjaGluZSBjaGVjayB0byBzcGVjaWZpZWQgdmNwdSAqL1xcbmFyY2gvczM5MC9rdm0vaW50ZXJydXB0LmM6MzEyNzpcXHRpcnEudHlwZSA9IEtWTV9TMzkwX01DSEs7XFxuYXJjaC9zMzkwL2t2bS9pbnRlcnJ1cHQuYy0zMTI4LVxcdHJjID0ga3ZtX3MzOTBfaW5qZWN0X3ZjcHUodmNwdSwgXFx1MDAyNmlycSk7XFxuLS1cXG5hcmNoL3MzOTAva3ZtL2ludGVycnVwdC5jPTMyMjA9c3RhdGljIHZvaWQgc3RvcmVfbG9jYWxfaXJxKHN0cnVjdCBrdm1fczM5MF9sb2NhbF9pbnRlcnJ1cHQgKmxpLFxcbi0tXFxuYXJjaC9zMzkwL2t2bS9pbnRlcnJ1cHQuYy0zMjI2LVxcdGNhc2UgSVJRX1BFTkRfTUNIS19SRVA6XFxuYXJjaC9zMzkwL2t2bS9pbnRlcnJ1cHQuYzozMjI3OlxcdFxcdGlycS1cXHUwMDNldHlwZSA9IEtWTV9TMzkwX01DSEs7XFxuYXJjaC9zMzkwL2t2bS9pbnRlcnJ1cHQuYy0zMjI4LVxcdFxcdGlycS1cXHUwMDNldS5tY2hrID0gbGktXFx1MDAzZWlycS5tY2hrO1xcbi0tXFxuYXJjaC9zMzkwL2t2bS90cmFjZS1zMzkwLmg9ODE9VFJBQ0VfRVZFTlQoa3ZtX3MzOTBfdmNwdV9zdGFydF9zdG9wLFxcbi0tXFxuYXJjaC9zMzkwL2t2bS90cmFjZS1zMzkwLmgtMTEwLVxcdHtLVk1fUzM5MF9JTlRfUEZBVUxUX0RPTkUsIFxcXCJwZmF1bHQgZG9uZVxcXCJ9LFxcdFxcdFxcdFxcXFxcXG5hcmNoL3MzOTAva3ZtL3RyYWNlLXMzOTAuaDoxMTE6XFx0e0tWTV9TMzkwX01DSEssIFxcXCJtYWNoaW5lIGNoZWNrXFxcIn0sXFx0XFx0XFx0XFx0XFxcXFxcbmFyY2gvczM5MC9rdm0vdHJhY2UtczM5MC5oLTExMi1cXHR7S1ZNX1MzOTBfSU5UX0NMT0NLX0NPTVAsIFxcXCJjbG9jayBjb21wYXJhdG9yXFxcIn0sXFx0XFx0XFx0XFxcXFxcbi0tXFxudG9vbHMvYXJjaC9zMzkwL2luY2x1ZGUvdWFwaS9hc20va3ZtLmg9OTY9c3RydWN0IGt2bV9zMzkwX3BzdyB7XFxuLS1cXG50b29scy9hcmNoL3MzOTAvaW5jbHVkZS91YXBpL2FzbS9rdm0uaC0xMDctI2RlZmluZSBLVk1fUzM5MF9JTlRfUEZBVUxUX0RPTkVcXHQweGZmZmUwMDA1dVxcbnRvb2xzL2FyY2gvczM5MC9pbmNsdWRlL3VhcGkvYXNtL2t2bS5oOjEwODojZGVmaW5lIEtWTV9TMzkwX01DSEtcXHRcXHRcXHQweGZmZmUxMDAwdVxcbnRvb2xzL2FyY2gvczM5MC9pbmNsdWRlL3VhcGkvYXNtL2t2bS5oLTEwOS0jZGVmaW5lIEtWTV9TMzkwX0lOVF9DTE9DS19DT01QXFx0XFx0MHhmZmZmMTAwNHVcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDZUMTQ6MzU6NTguNjE5NDY3MTE1WiIsIlNlcSI6OSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NzA2NTA1MTAwNywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIEtWTSBzMzkweCBNYWNoaW5lIENoZWNrIFBhdGNoKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCBhbmQgaXQncyBtYWtpbmcgYSBzcGVjaWZpYyBjaGFuZ2UgaW4gYGt2bV9zMzkwX3JlaW5qZWN0X21hY2hpbmVfY2hlY2tgLiBFc3NlbnRpYWxseSwgaXQncyBlbnN1cmluZyB0aGUgbWFjaGluZSBjaGVjayBnZXRzIGluamVjdGVkIGRpcmVjdGx5IHRvIHRoZSBpbnRlbmRlZCB2Q1BVLCByYXRoZXIgdGhhbiBwb3RlbnRpYWxseSBmbG9hdGluZyB0byB0aGUgZW50aXJlIFZNLiBNYWtlcyBzZW5zZSwgdGhhdCdzIGRlZmluaXRlbHkgbW9yZSBwcmVjaXNlLiBJdCBsb29rcyBsaWtlIGl0IGFsc28gYWRkcyBgTUNDS19DT0RFX0NLYCB0byBgTUNDS19DT0RFX05PX0dVRVNUYCBhbmQgYHMzOTBfYmFja3VwX21jY2tfaW5mb2AuIExldCBtZSBjaGVjay4uLiBgTUNDS19DT0RFX0NLYCBpcyBkZWZpbmVkIHVzaW5nIGEgYml0IHNoaWZ0LCB0aGF0J3Mgc3RyYWlnaHRmb3J3YXJkIGVub3VnaC5cblxuRnVuY3Rpb25hbGx5LCBJIHRoaW5rIHRoaXMgaXMgc291bmQuIEJ1dCB0aGUgcXVlc3Rpb24gaXM6IGNhbiB3ZSBmdXp6IGl0PyBJIGtub3cgc3l6a2FsbGVyIGNhbiB0cmlnZ2VyIEtWTSBtYWNoaW5lIGNoZWNrcywgb3IgYXQgbGVhc3QgcnVuIEtWTSBndWVzdHMgb24gczM5MHguIE15IGluaXRpYWwgdGhvdWdodCBpcyB0byB0YXJnZXQgYGt2bV9zMzkwX3JlaW5qZWN0X21hY2hpbmVfY2hlY2tgIGFuZCBgczM5MF9iYWNrdXBfbWNja19pbmZvYC5cblxuV2FpdCBhIHNlY29uZOKApiBgczM5MF9iYWNrdXBfbWNja19pbmZvYCBpcyAqc3RhdGljKiBhbmQgbWFya2VkIGFzIGBub3RyYWNlYCEgQW5kIGl0J3MgY2FsbGVkIGZyb20gYHMzOTBfZG9fbWFjaGluZV9jaGVja2AuIFRoYXQgY2hhbmdlcyB0aGluZ3MgYSBiaXQuIE9rYXksIGJhY2sgdG8gdGhlIGdsb2JhbCBmdW5jdGlvbjogYGt2bV9zMzkwX3JlaW5qZWN0X21hY2hpbmVfY2hlY2tgIHdoaWNoIGlzIGNhbGxlZCBmcm9tIGB2Y3B1X3Bvc3RfcnVuYCBhbmQgYGRvX3ZzaWVfcnVuYC5cblxuT2theSwgSSBuZWVkIHRvIHRha2UgYSBjbG9zZXIgbG9vayBhdCBgczM5MF9kb19tYWNoaW5lX2NoZWNrYC4gTGV0J3Mgc2VlIHdoYXQncyBnb2luZyBvbiB0aGVyZS5cblxuXG4iLCJJbnB1dFRva2VucyI6ODk4NCwiT3V0cHV0VG9rZW5zIjoyNCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjI4NSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0wNlQxNDozNjowNS42ODQ1MjE3ODJaIiwiU2VxIjoxMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE2NDI0NTc4OTAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiczM5MF9kb19tYWNoaW5lX2NoZWNrXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImFyY2gvczM5MC9pbmNsdWRlL2FzbS9ubWkuaD0xMDU9dm9pZCBzMzkwX2hhbmRsZV9tY2NrKHZvaWQpO1xcbmFyY2gvczM5MC9pbmNsdWRlL2FzbS9ubWkuaDoxMDY6dm9pZCBzMzkwX2RvX21hY2hpbmVfY2hlY2soc3RydWN0IHB0X3JlZ3MgKnJlZ3MpO1xcbmFyY2gvczM5MC9pbmNsdWRlL2FzbS9ubWkuaC0xMDctXFxuLS1cXG5hcmNoL3MzOTAva2VybmVsL2VudHJ5LlM9NDUwPVNZTV9DT0RFX1NUQVJUKG1jY2tfaW50X2hhbmRsZXIpXFxuLS1cXG5hcmNoL3MzOTAva2VybmVsL2VudHJ5LlMtNTE1LVxcdGxnclxcdCVyMiwlcjExXFx0XFx0IyBwYXNzIHBvaW50ZXIgdG8gcHRfcmVnc1xcbmFyY2gvczM5MC9rZXJuZWwvZW50cnkuUzo1MTY6XFx0YnJhc2xcXHQlcjE0LHMzOTBfZG9fbWFjaGluZV9jaGVja1xcbmFyY2gvczM5MC9rZXJuZWwvZW50cnkuUy01MTctXFx0bG1nXFx0JXIwLCVyMTAsX19QVF9SMCglcjExKVxcbi0tXFxuYXJjaC9zMzkwL2tlcm5lbC9ubWkuYz0zNTI9Tk9LUFJPQkVfU1lNQk9MKHMzOTBfYmFja3VwX21jY2tfaW5mbyk7XFxuLS1cXG5hcmNoL3MzOTAva2VybmVsL25taS5jLTM2NC0gKi9cXG5hcmNoL3MzOTAva2VybmVsL25taS5jOjM2NTp2b2lkIG5vdHJhY2UgczM5MF9kb19tYWNoaW5lX2NoZWNrKHN0cnVjdCBwdF9yZWdzICpyZWdzKVxcbmFyY2gvczM5MC9rZXJuZWwvbm1pLmMtMzY2LXtcXG4tLVxcbmFyY2gvczM5MC9rZXJuZWwvbm1pLmMtNTA0LX1cXG5hcmNoL3MzOTAva2VybmVsL25taS5jOjUwNTpOT0tQUk9CRV9TWU1CT0woczM5MF9kb19tYWNoaW5lX2NoZWNrKTtcXG5hcmNoL3MzOTAva2VybmVsL25taS5jLTUwNi1cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDZUMTQ6MzY6MDcuMzI2OTg5NTkyWiIsIlNlcSI6MTEsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQxNDM3OTAzNDUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqTWFjaGluZSBDaGVjayBIYW5kbGVyIEludmVzdGlnYXRpb24qKlxuXG5Pa2F5LCBzbyBJJ20gZGl2aW5nIGludG8gdGhpcyBgczM5MF9kb19tYWNoaW5lX2NoZWNrYCByb3V0aW5lLiBJdCBsb29rcyBsaWtlIHRoZSBjb3JlIG1hY2hpbmUgY2hlY2sgaGFuZGxlciwgY2FsbGVkIGZyb20gYG1jY2tfaW50X2hhbmRsZXJgIGluIGBlbnRyeS5TYC4gVGhlIGtleSBxdWVzdGlvbiBpcyB3aGV0aGVyIEkgY2FuIGVmZmVjdGl2ZWx5IGZ1enogYGt2bV9zMzkwX3JlaW5qZWN0X21hY2hpbmVfY2hlY2tgLiBJdCBzZWVtcyB0aGF0J3MgdGhlIHBhdGggdGFrZW4gd2hlbiBhIEtWTSBndWVzdCBleGl0cyB3aXRoIGEgbWFjaGluZSBjaGVjay4gVGhhdCdzIGdvb2QsIHRoYXQncyBleGFjdGx5IHdoZXJlIEkgbmVlZCB0byBiZSBmb2N1c2VkLiBOb3csIEknbSB0aGlua2luZyBhYm91dCBwcmUtcmVxdWlzaXRlcy4gSSBrbm93IHRoYXQgYENPTkZJR19LVk1gIGlzIGRlZmluaXRlbHkgYSByZXF1aXJlbWVudCBmb3IgYGt2bV9zMzkwX3JlaW5qZWN0X21hY2hpbmVfY2hlY2tgIHRvIGV2ZW4gYmUgY29uc2lkZXJlZC4gSSBzaG91bGQgbWFrZSBzdXJlIHRoYXQncyBzZXQuIEkgYWxzbyBzaG91bGQgZG91YmxlLWNoZWNrIHRoZSBLY29uZmlnIGZpbGVzLCBzcGVjaWZpY2FsbHkgaW4gYGFyY2gvczM5MC9rdm0vS2NvbmZpZ2AgdG8gc2VlIGlmIHRoZXJlIGFyZSBhbnkgb3RoZXIgcmVsZXZhbnQgY29uZmlndXJhdGlvbnMgb3IgZGVwZW5kZW5jaWVzIEkgc2hvdWxkIGtub3cgYWJvdXQuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjEwMTIwLCJPdXRwdXRUb2tlbnMiOjE3LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTMzLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA2VDE0OjM2OjExLjQ3MDc4NDE3N1oiLCJTZXEiOjEyLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTcyNTA5NzU1OCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJjb25maWcgS1ZNXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImFyY2gvYXJtNjQva3ZtL0tjb25maWc9MTg9aWYgVklSVFVBTElaQVRJT05cXG5hcmNoL2FybTY0L2t2bS9LY29uZmlnLTE5LVxcbmFyY2gvYXJtNjQva3ZtL0tjb25maWc6MjA6bWVudWNvbmZpZyBLVk1cXG5hcmNoL2FybTY0L2t2bS9LY29uZmlnLTIxLVxcdGJvb2wgXFxcIktlcm5lbC1iYXNlZCBWaXJ0dWFsIE1hY2hpbmUgKEtWTSkgc3VwcG9ydFxcXCJcXG4tLVxcbmFyY2gvbG9vbmdhcmNoL2t2bS9LY29uZmlnPTE4PWlmIFZJUlRVQUxJWkFUSU9OXFxuYXJjaC9sb29uZ2FyY2gva3ZtL0tjb25maWctMTktXFxuYXJjaC9sb29uZ2FyY2gva3ZtL0tjb25maWc6MjA6Y29uZmlnIEtWTVxcbmFyY2gvbG9vbmdhcmNoL2t2bS9LY29uZmlnLTIxLVxcdHRyaXN0YXRlIFxcXCJLZXJuZWwtYmFzZWQgVmlydHVhbCBNYWNoaW5lIChLVk0pIHN1cHBvcnRcXFwiXFxuLS1cXG5hcmNoL21pcHMva3ZtL0tjb25maWc9MTY9aWYgVklSVFVBTElaQVRJT05cXG5hcmNoL21pcHMva3ZtL0tjb25maWctMTctXFxuYXJjaC9taXBzL2t2bS9LY29uZmlnOjE4OmNvbmZpZyBLVk1cXG5hcmNoL21pcHMva3ZtL0tjb25maWctMTktXFx0dHJpc3RhdGUgXFxcIktlcm5lbC1iYXNlZCBWaXJ0dWFsIE1hY2hpbmUgKEtWTSkgc3VwcG9ydFxcXCJcXG4tLVxcbmFyY2gvbWlwcy9rdm0vS2NvbmZpZy0zMC1cXG5hcmNoL21pcHMva3ZtL0tjb25maWc6MzE6Y29uZmlnIEtWTV9NSVBTX0RFQlVHX0NPUDBfQ09VTlRFUlNcXG5hcmNoL21pcHMva3ZtL0tjb25maWctMzItXFx0Ym9vbCBcXFwiTWFpbnRhaW4gY291bnRlcnMgZm9yIENPUDAgYWNjZXNzZXNcXFwiXFxuLS1cXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWc9MTg9aWYgVklSVFVBTElaQVRJT05cXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMTktXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnOjIwOmNvbmZpZyBLVk1cXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMjEtXFx0Ym9vbFxcbi0tXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTI1LVxcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZzoyNjpjb25maWcgS1ZNX0JPT0szU19IQU5ETEVSXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTI3LVxcdGJvb2xcXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMjgtXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnOjI5OmNvbmZpZyBLVk1fQk9PSzNTXzMyX0hBTkRMRVJcXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMzAtXFx0Ym9vbFxcbi0tXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTMzLVxcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZzozNDpjb25maWcgS1ZNX0JPT0szU182NF9IQU5ETEVSXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTM1LVxcdGJvb2xcXG4tLVxcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0zNy1cXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWc6Mzg6Y29uZmlnIEtWTV9CT09LM1NfUFJfUE9TU0lCTEVcXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMzktXFx0Ym9vbFxcbi0tXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTQxLVxcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZzo0Mjpjb25maWcgS1ZNX0JPT0szU19IVl9QT1NTSUJMRVxcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy00My1cXHRib29sXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTQ0LVxcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZzo0NTpjb25maWcgS1ZNX0JPT0szU18zMlxcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy00Ni1cXHR0cmlzdGF0ZSBcXFwiS1ZNIHN1cHBvcnQgZm9yIFBvd2VyUEMgYm9vazNzXzMyIHByb2Nlc3NvcnNcXFwiXFxuLS1cXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctNjEtXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnOjYyOmNvbmZpZyBLVk1fQk9PSzNTXzY0XFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTYzLVxcdHRyaXN0YXRlIFxcXCJLVk0gc3VwcG9ydCBmb3IgUG93ZXJQQyBib29rM3NfNjQgcHJvY2Vzc29yc1xcXCJcXG4tLVxcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy03OC1cXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWc6Nzk6Y29uZmlnIEtWTV9CT09LM1NfNjRfSFZcXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctODAtXFx0dHJpc3RhdGUgXFxcIktWTSBmb3IgUE9XRVI3IGFuZCBsYXRlciB1c2luZyBoeXBlcnZpc29yIG1vZGUgaW4gaG9zdFxcXCJcXG4tLVxcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy05OS1cXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWc6MTAwOmNvbmZpZyBLVk1fQk9PSzNTXzY0X1BSXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTEwMS1cXHR0cmlzdGF0ZSBcXFwiS1ZNIHN1cHBvcnQgd2l0aG91dCB1c2luZyBoeXBlcnZpc29yIG1vZGUgaW4gaG9zdFxcXCJcXG4tLVxcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0xMjUtXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnOjEyNjpjb25maWcgS1ZNX0JPT0szU19IVl9FWElUX1RJTUlOR1xcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0xMjctXFx0Ym9vbFxcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0xMjgtXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnOjEyOTpjb25maWcgS1ZNX0JPT0szU19IVl9QOV9USU1JTkdcXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMTMwLVxcdGJvb2wgXFxcIkRldGFpbGVkIHRpbWluZyBmb3IgdGhlIFA5IGVudHJ5IHBvaW50XFxcIlxcbi0tXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTE0MS1cXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWc6MTQyOmNvbmZpZyBLVk1fQk9PSzNTX0hWX1A4X1RJTUlOR1xcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0xNDMtXFx0Ym9vbCBcXFwiRGV0YWlsZWQgdGltaW5nIGZvciBoeXBlcnZpc29yIHJlYWwtbW9kZSBjb2RlIChmb3IgUE9XRVI4KVxcXCJcXG4tLVxcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0xNTYtXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnOjE1Nzpjb25maWcgS1ZNX0JPT0szU19IVl9ORVNURURfUE1VX1dPUktBUk9VTkRcXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMTU4LVxcdGJvb2wgXFxcIk5lc3RlZCBMMCBob3N0IHdvcmthcm91bmQgZm9yIEwxIEtWTSBob3N0IFBNVSBoYW5kbGluZyBidWdcXFwiIGlmIEVYUEVSVFxcbi0tXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTE3MS1cXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWc6MTcyOmNvbmZpZyBLVk1fQk9PSzNTX0hWX1BNVVxcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0xNzMtXFx0dHJpc3RhdGUgXFxcIkh5cGVydmlzb3IgUGVyZiBldmVudHMgZm9yIEtWTSBCb29rM3MtSFZcXFwiXFxuLS1cXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMTgzLVxcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZzoxODQ6Y29uZmlnIEtWTV9CT09LRV9IVlxcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0xODUtXFx0Ym9vbFxcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0xODYtXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnOjE4Nzpjb25maWcgS1ZNX0VYSVRfVElNSU5HXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTE4OC1cXHRib29sIFxcXCJEZXRhaWxlZCBleGl0IHRpbWluZ1xcXCJcXG4tLVxcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0xOTctXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnOjE5ODpjb25maWcgS1ZNX0U1MDBWMlxcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0xOTktXFx0Ym9vbCBcXFwiS1ZNIHN1cHBvcnQgZm9yIFBvd2VyUEMgRTUwMHYyIHByb2Nlc3NvcnNcXFwiXFxuLS1cXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMjEyLVxcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZzoyMTM6Y29uZmlnIEtWTV9FNTAwTUNcXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMjE0LVxcdGJvb2wgXFxcIktWTSBzdXBwb3J0IGZvciBQb3dlclBDIEU1MDBNQy9FNTUwMC9FNjUwMCBwcm9jZXNzb3JzXFxcIlxcbi0tXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTIyOC1cXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWc6MjI5OmNvbmZpZyBLVk1fTVBJQ1xcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0yMzAtXFx0Ym9vbCBcXFwiS1ZNIGluLWtlcm5lbCBNUElDIGVtdWxhdGlvblxcXCJcXG4tLVxcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0yNDAtXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnOjI0MTpjb25maWcgS1ZNX1hJQ1NcXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMjQyLVxcdGJvb2wgXFxcIktWTSBpbi1rZXJuZWwgWElDUyBlbXVsYXRpb25cXFwiXFxuLS1cXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMjUwLVxcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZzoyNTE6Y29uZmlnIEtWTV9YSVZFXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTI1Mi1cXHRib29sXFxuLS1cXG5hcmNoL3Bvd2VycGMvcGxhdGZvcm1zL0tjb25maWc9MjI9c291cmNlIFxcXCJhcmNoL3Bvd2VycGMvcGxhdGZvcm1zL21pY3Jvd2F0dC9LY29uZmlnXFxcIlxcbmFyY2gvcG93ZXJwYy9wbGF0Zm9ybXMvS2NvbmZpZy0yMy1cXG5hcmNoL3Bvd2VycGMvcGxhdGZvcm1zL0tjb25maWc6MjQ6Y29uZmlnIEtWTV9HVUVTVFxcbmFyY2gvcG93ZXJwYy9wbGF0Zm9ybXMvS2NvbmZpZy0yNS1cXHRib29sIFxcXCJLVk0gR3Vlc3Qgc3VwcG9ydFxcXCJcXG4tLVxcbmFyY2gvcmlzY3Yva3ZtL0tjb25maWc9MTg9aWYgVklSVFVBTElaQVRJT05cXG5hcmNoL3Jpc2N2L2t2bS9LY29uZmlnLTE5LVxcbmFyY2gvcmlzY3Yva3ZtL0tjb25maWc6MjA6Y29uZmlnIEtWTVxcbmFyY2gvcmlzY3Yva3ZtL0tjb25maWctMjEtXFx0dHJpc3RhdGUgXFxcIktlcm5lbC1iYXNlZCBWaXJ0dWFsIE1hY2hpbmUgKEtWTSkgc3VwcG9ydFxcXCJcXG4tLVxcbmFyY2gvczM5MC9rdm0vS2NvbmZpZz0xNz1pZiBWSVJUVUFMSVpBVElPTlxcbmFyY2gvczM5MC9rdm0vS2NvbmZpZy0xOC1cXG5hcmNoL3MzOTAva3ZtL0tjb25maWc6MTk6Y29uZmlnIEtWTVxcbmFyY2gvczM5MC9rdm0vS2NvbmZpZy0yMC1cXHRkZWZfdHJpc3RhdGUgeVxcbi0tXFxuYXJjaC9zMzkwL2t2bS9LY29uZmlnLTQ2LVxcbmFyY2gvczM5MC9rdm0vS2NvbmZpZzo0Nzpjb25maWcgS1ZNX1MzOTBfVUNPTlRST0xcXG5hcmNoL3MzOTAva3ZtL0tjb25maWctNDgtXFx0Ym9vbCBcXFwiVXNlcnNwYWNlIGNvbnRyb2xsZWQgdmlydHVhbCBtYWNoaW5lc1xcXCJcXG4tLVxcbmFyY2gveDg2L0tjb25maWc9ODI2PXNvdXJjZSBcXFwiYXJjaC94ODYveGVuL0tjb25maWdcXFwiXFxuYXJjaC94ODYvS2NvbmZpZy04MjctXFxuYXJjaC94ODYvS2NvbmZpZzo4Mjg6Y29uZmlnIEtWTV9HVUVTVFxcbmFyY2gveDg2L0tjb25maWctODI5LVxcdGJvb2wgXFxcIktWTSBHdWVzdCBzdXBwb3J0IChpbmNsdWRpbmcga3ZtY2xvY2spXFxcIlxcbi0tXFxuYXJjaC94ODYva3ZtL0tjb25maWc9MTg9aWYgVklSVFVBTElaQVRJT05cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0xOS1cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZzoyMDpjb25maWcgS1ZNX1g4NlxcbmFyY2gveDg2L2t2bS9LY29uZmlnLTIxLVxcdGRlZl90cmlzdGF0ZSBLVk0gaWYgKEtWTV9JTlRFTCAhPSBuIHx8IEtWTV9BTUQgIT0gbilcXG4tLVxcbmFyY2gveDg2L2t2bS9LY29uZmlnLTUxLVxcbmFyY2gveDg2L2t2bS9LY29uZmlnOjUyOmNvbmZpZyBLVk1cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy01My1cXHR0cmlzdGF0ZSBcXFwiS2VybmVsLWJhc2VkIFZpcnR1YWwgTWFjaGluZSAoS1ZNKSBzdXBwb3J0XFxcIlxcbi0tXFxuYXJjaC94ODYva3ZtL0tjb25maWctNjgtXFxuYXJjaC94ODYva3ZtL0tjb25maWc6Njk6Y29uZmlnIEtWTV9XRVJST1JcXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy03MC1cXHRib29sIFxcXCJDb21waWxlIEtWTSB3aXRoIC1XZXJyb3JcXFwiXFxuLS1cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy04Mi1cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZzo4Mzpjb25maWcgS1ZNX1NXX1BST1RFQ1RFRF9WTVxcbmFyY2gveDg2L2t2bS9LY29uZmlnLTg0LVxcdGJvb2wgXFxcIkVuYWJsZSBzdXBwb3J0IGZvciBLVk0gc29mdHdhcmUtcHJvdGVjdGVkIFZNc1xcXCJcXG4tLVxcbmFyY2gveDg2L2t2bS9LY29uZmlnLTk1LVxcbmFyY2gveDg2L2t2bS9LY29uZmlnOjk2OmNvbmZpZyBLVk1fSU5URUxcXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy05Ny1cXHR0cmlzdGF0ZSBcXFwiS1ZNIGZvciBJbnRlbCAoYW5kIGNvbXBhdGlibGUpIHByb2Nlc3NvcnMgc3VwcG9ydFxcXCJcXG4tLVxcbmFyY2gveDg2L2t2bS9LY29uZmlnLTEwNi1cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZzoxMDc6Y29uZmlnIEtWTV9JTlRFTF9QUk9WRV9WRVxcbmFyY2gveDg2L2t2bS9LY29uZmlnLTEwOC0gICAgICAgIGJvb2wgXFxcIkNoZWNrIHRoYXQgZ3Vlc3RzIGRvIG5vdCByZWNlaXZlICNWRSBleGNlcHRpb25zXFxcIlxcbi0tXFxuYXJjaC94ODYva3ZtL0tjb25maWc9MTIyPWNvbmZpZyBYODZfU0dYX0tWTVxcbi0tXFxuYXJjaC94ODYva3ZtL0tjb25maWctMTMzLVxcbmFyY2gveDg2L2t2bS9LY29uZmlnOjEzNDpjb25maWcgS1ZNX0lOVEVMX1REWFxcbmFyY2gveDg2L2t2bS9LY29uZmlnLTEzNS1cXHRib29sIFxcXCJJbnRlbCBUcnVzdCBEb21haW4gRXh0ZW5zaW9ucyAoVERYKSBzdXBwb3J0XFxcIlxcbi0tXFxuYXJjaC94ODYva3ZtL0tjb25maWctMTQ1LVxcbmFyY2gveDg2L2t2bS9LY29uZmlnOjE0Njpjb25maWcgS1ZNX0FNRFxcbmFyY2gveDg2L2t2bS9LY29uZmlnLTE0Ny1cXHR0cmlzdGF0ZSBcXFwiS1ZNIGZvciBBTUQgcHJvY2Vzc29ycyBzdXBwb3J0XFxcIlxcbi0tXFxuYXJjaC94ODYva3ZtL0tjb25maWctMTU1LVxcbmFyY2gveDg2L2t2bS9LY29uZmlnOjE1Njpjb25maWcgS1ZNX0FNRF9TRVZcXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0xNTctXFx0Ym9vbCBcXFwiQU1EIFNlY3VyZSBFbmNyeXB0ZWQgVmlydHVhbGl6YXRpb24gKFNFVikgc3VwcG9ydFxcXCJcXG4tLVxcbmFyY2gveDg2L2t2bS9LY29uZmlnLTE3MS1cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZzoxNzI6Y29uZmlnIEtWTV9JT0FQSUNcXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0xNzMtXFx0Ym9vbCBcXFwiSS9PIEFQSUMsIFBJQywgYW5kIFBJVCBlbXVsYXRpb25cXFwiXFxuLS1cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0xODEtXFxuYXJjaC94ODYva3ZtL0tjb25maWc6MTgyOmNvbmZpZyBLVk1fU01NXFxuYXJjaC94ODYva3ZtL0tjb25maWctMTgzLVxcdGJvb2wgXFxcIlN5c3RlbSBNYW5hZ2VtZW50IE1vZGUgZW11bGF0aW9uXFxcIlxcbi0tXFxuYXJjaC94ODYva3ZtL0tjb25maWctMTkyLVxcbmFyY2gveDg2L2t2bS9LY29uZmlnOjE5Mzpjb25maWcgS1ZNX0hZUEVSVlxcbmFyY2gveDg2L2t2bS9LY29uZmlnLTE5NC1cXHRib29sIFxcXCJTdXBwb3J0IGZvciBNaWNyb3NvZnQgSHlwZXItViBlbXVsYXRpb25cXFwiXFxuLS1cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0yMDYtXFxuYXJjaC94ODYva3ZtL0tjb25maWc6MjA3OmNvbmZpZyBLVk1fWEVOXFxuYXJjaC94ODYva3ZtL0tjb25maWctMjA4LVxcdGJvb2wgXFxcIlN1cHBvcnQgZm9yIFhlbiBoeXBlcmNhbGwgaW50ZXJmYWNlXFxcIlxcbi0tXFxuYXJjaC94ODYva3ZtL0tjb25maWctMjE1LVxcbmFyY2gveDg2L2t2bS9LY29uZmlnOjIxNjpjb25maWcgS1ZNX1BST1ZFX01NVVxcbmFyY2gveDg2L2t2bS9LY29uZmlnLTIxNy1cXHRib29sIFxcXCJQcm92ZSBLVk0gTU1VIGNvcnJlY3RuZXNzXFxcIlxcbi0tXFxuYXJjaC94ODYva3ZtL0tjb25maWctMjI4LVxcbmFyY2gveDg2L2t2bS9LY29uZmlnOjIyOTpjb25maWcgS1ZNX0VYVEVSTkFMX1dSSVRFX1RSQUNLSU5HXFxuYXJjaC94ODYva3ZtL0tjb25maWctMjMwLVxcdGJvb2xcXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0yMzEtXFxuYXJjaC94ODYva3ZtL0tjb25maWc6MjMyOmNvbmZpZyBLVk1fTUFYX05SX1ZDUFVTXFxuYXJjaC94ODYva3ZtL0tjb25maWctMjMzLVxcdGludCBcXFwiTWF4aW11bSBudW1iZXIgb2YgdkNQVXMgcGVyIEtWTSBndWVzdFxcXCJcXG4tLVxcbnZpcnQva3ZtL0tjb25maWctMy1cXG52aXJ0L2t2bS9LY29uZmlnOjQ6Y29uZmlnIEtWTV9DT01NT05cXG52aXJ0L2t2bS9LY29uZmlnLTUtICAgICAgIGJvb2xcXG4tLVxcbnZpcnQva3ZtL0tjb25maWc9Mzk9Y29uZmlnIE5FRURfS1ZNX0RJUlRZX1JJTkdfV0lUSF9CSVRNQVBcXG4tLVxcbnZpcnQva3ZtL0tjb25maWctNDItXFxudmlydC9rdm0vS2NvbmZpZzo0Mzpjb25maWcgS1ZNX01NSU9cXG52aXJ0L2t2bS9LY29uZmlnLTQ0LSAgICAgICBib29sXFxudmlydC9rdm0vS2NvbmZpZy00NS1cXG52aXJ0L2t2bS9LY29uZmlnOjQ2OmNvbmZpZyBLVk1fQVNZTkNfUEZcXG52aXJ0L2t2bS9LY29uZmlnLTQ3LSAgICAgICBib29sXFxuLS1cXG52aXJ0L2t2bS9LY29uZmlnLTQ5LSMgVG9nZ2xlIHRvIHN3aXRjaCBiZXR3ZWVuIGRpcmVjdCBub3RpZmljYXRpb24gYW5kIGJhdGNoIGpvYlxcbnZpcnQva3ZtL0tjb25maWc6NTA6Y29uZmlnIEtWTV9BU1lOQ19QRl9TWU5DXFxudmlydC9rdm0vS2NvbmZpZy01MS0gICAgICAgYm9vbFxcbi0tXFxudmlydC9rdm0vS2NvbmZpZz01OT1jb25maWcgSEFWRV9LVk1fQ1BVX1JFTEFYX0lOVEVSQ0VQVFxcbi0tXFxudmlydC9rdm0vS2NvbmZpZy02MS1cXG52aXJ0L2t2bS9LY29uZmlnOjYyOmNvbmZpZyBLVk1fVkZJT1xcbnZpcnQva3ZtL0tjb25maWctNjMtICAgICAgIGJvb2xcXG4tLVxcbnZpcnQva3ZtL0tjb25maWc9NjU9Y29uZmlnIEhBVkVfS1ZNX0lOVkFMSURfV0FLRVVQU1xcbi0tXFxudmlydC9rdm0vS2NvbmZpZy02Ny1cXG52aXJ0L2t2bS9LY29uZmlnOjY4OmNvbmZpZyBLVk1fR0VORVJJQ19ESVJUWUxPR19SRUFEX1BST1RFQ1RcXG52aXJ0L2t2bS9LY29uZmlnLTY5LSAgICAgICBib29sXFxudmlydC9rdm0vS2NvbmZpZy03MC1cXG52aXJ0L2t2bS9LY29uZmlnOjcxOmNvbmZpZyBLVk1fR0VORVJJQ19QUkVfRkFVTFRfTUVNT1JZXFxudmlydC9rdm0vS2NvbmZpZy03Mi0gICAgICAgYm9vbFxcbnZpcnQva3ZtL0tjb25maWctNzMtXFxudmlydC9rdm0vS2NvbmZpZzo3NDpjb25maWcgS1ZNX0NPTVBBVFxcbnZpcnQva3ZtL0tjb25maWctNzUtICAgICAgIGRlZl9ib29sIHlcXG4tLVxcbnZpcnQva3ZtL0tjb25maWc9OTE9Y29uZmlnIEhBVkVfS1ZNX1BNX05PVElGSUVSXFxuLS1cXG52aXJ0L2t2bS9LY29uZmlnLTkzLVxcbnZpcnQva3ZtL0tjb25maWc6OTQ6Y29uZmlnIEtWTV9HRU5FUklDX0hBUkRXQVJFX0VOQUJMSU5HXFxudmlydC9rdm0vS2NvbmZpZy05NS0gICAgICAgYm9vbFxcbnZpcnQva3ZtL0tjb25maWctOTYtXFxudmlydC9rdm0vS2NvbmZpZzo5Nzpjb25maWcgS1ZNX0VMSURFX1RMQl9GTFVTSF9JRl9ZT1VOR1xcbnZpcnQva3ZtL0tjb25maWctOTgtICAgICAgIGJvb2xcXG52aXJ0L2t2bS9LY29uZmlnLTk5LVxcbnZpcnQva3ZtL0tjb25maWc6MTAwOmNvbmZpZyBLVk1fTU1VX0xPQ0tMRVNTX0FHSU5HXFxudmlydC9rdm0vS2NvbmZpZy0xMDEtICAgICAgIGJvb2xcXG52aXJ0L2t2bS9LY29uZmlnLTEwMi1cXG52aXJ0L2t2bS9LY29uZmlnOjEwMzpjb25maWcgS1ZNX0dFTkVSSUNfTUVNT1JZX0FUVFJJQlVURVNcXG52aXJ0L2t2bS9LY29uZmlnLTEwNC0gICAgICAgYm9vbFxcbnZpcnQva3ZtL0tjb25maWctMTA1LVxcbnZpcnQva3ZtL0tjb25maWc6MTA2OmNvbmZpZyBLVk1fR1VFU1RfTUVNRkRcXG52aXJ0L2t2bS9LY29uZmlnLTEwNy0gICAgICAgc2VsZWN0IFhBUlJBWV9NVUxUSVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wNlQxNDozNjoxMy4xOTU4ODgyMDVaIiwiU2VxIjoxMywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6OTU2MDgyNzc1MSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXNpcyBvZiBLVk0gUzM5MCBNYWNoaW5lIENoZWNrIEhhbmRsaW5nIGZvciBGdXp6aW5nKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCB0YXJnZXRpbmcgdGhlIGBLVk1gIGNvbmZpZ3VyYXRpb24uIEl0IGFwcGVhcnMgdG8gbW9kaWZ5IHRoZSBmdW5jdGlvbnMgYGt2bV9zMzkwX3JlaW5qZWN0X21hY2hpbmVfY2hlY2tgIGFuZCBgczM5MF9iYWNrdXBfbWNja19pbmZvYC4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRoYXQgYm90aCBhcmUgZnVuY3Rpb25hbCBjaGFuZ2VzLCBhbmQgSSBuZWVkIHRvIGRldGVybWluZSB0aGUgYmVzdCBhcHByb2FjaCBmb3IgZnV6emluZyB0aGVtLlxuXG5ga3ZtX3MzOTBfcmVpbmplY3RfbWFjaGluZV9jaGVja2AgZ2V0cyBjYWxsZWQgZnJvbSBgdmNwdV9wb3N0X3J1bmAgYW5kIGBkb192c2llX3J1bmAsIHdoaWNoIGFyZSBrZXkgcGFydHMgb2YgS1ZNIGV4ZWN1dGlvbi4gYHMzOTBfYmFja3VwX21jY2tfaW5mb2AsIG9uIHRoZSBvdGhlciBoYW5kLCBpcyBjYWxsZWQgZnJvbSBgczM5MF9kb19tYWNoaW5lX2NoZWNrYCwgdGhlIG1hY2hpbmUgY2hlY2sgKmhhbmRsZXIqLlxuXG5NeSBmaXJzdCBpbnN0aW5jdCBpcyB0byBzZXQgYFdvcnRoRnV6emluZz10cnVlYC4gTm93LCBmb3IgZm9jdXMgc3ltYm9scywgb3JpZ2luYWxseSBJIHdhcyBnb2luZyB0byBsaXN0IGJvdGguIE15IHRoaW5raW5nIHdhcywgSSdkIGluY2x1ZGUgYGt2bV9zMzkwX3JlaW5qZWN0X21hY2hpbmVfY2hlY2tgLCBhbmQgbGlzdCBgczM5MF9iYWNrdXBfbWNja19pbmZvYCBhcyB3ZWxsLCBldmVuIGlmIGl0J3Mgc3RhdGljIGFuZCBub3QgaW5zdHJ1bWVudGVkLiBCdXQgdGhlbiBJIHJlbWVtYmVyZWQgdGhhdCB0aGUgcHJvbXB0IHNheXMgdG8gcHJlZmVyIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIEFQSSBlbnRyeXBvaW50IGZ1bmN0aW9ucy5cblxuSSBuZWVkIHRvIHJlLWV2YWx1YXRlIHdoYXQncyBhIHN1aXRhYmxlIGZvY3VzIHN5bWJvbC4gYHMzOTBfYmFja3VwX21jY2tfaW5mb2AgKmlzKiBzdGF0aWMsIHNvIHRoYXQncyBvdXQuIEhvd2V2ZXIsIGBzMzkwX2RvX21hY2hpbmVfY2hlY2tgIGlzIHRoZSBhY3R1YWwgZW50cnkgcG9pbnQgZm9yIGBzMzkwX2JhY2t1cF9tY2NrX2luZm9gLCBzbyBpdCdzIGEgZ29vZCBjYW5kaWRhdGUsIGJ1dCBpdCdzIHRoZSBtYWNoaW5lIGNoZWNrIGhhbmRsZXIgaXRzZWxmLiBNeSBndXQgc2F5cyBpdCBtaWdodCBiZSB0b3VnaCB0byB0cmlnZ2VyIHRoYXQgZGlyZWN0bHkgZnJvbSBhIGZ1enplciB1bmxlc3MgaXQgY2FuIGluamVjdCBtYWNoaW5lIGNoZWNrcywgc28gdGhlIGJlc3QgYmV0IGlzIHByb2JhYmx5IHRvIHRhcmdldCBga3ZtX3MzOTBfcmVpbmplY3RfbWFjaGluZV9jaGVja2AgaW5zdGVhZC5cblxuV2FpdCBhIHNlY29uZC4uLiBpdCBsb29rcyBsaWtlIGBrdm1fczM5MF9yZWluamVjdF9tYWNoaW5lX2NoZWNrYCBpcyBjYWxsZWQgd2hlbiBgc2llX3JldHVybmAgZXF1YWxzIGBTSUU2NF9SRVRVUk5fTUNDS2AuIFRoYXQgbWVhbnMgdGhpcyBpcyBjYWxsZWQgd2hlbiB0aGUgU0lFIGluc3RydWN0aW9uIOKAkyB0aGUgaW5zdHJ1Y3Rpb24gdGhhdCAqcnVucyogdGhlIGd1ZXN0IOKAkyBleGl0cyBkdWUgdG8gYSBtYWNoaW5lIGNoZWNrLiBPa2F5LCB0aGF0IGNoYW5nZXMgdGhpbmdzISBUaGF0IG1lYW5zIHRoZSBmdXp6ZXIgKmNhbiogZGVmaW5pdGVseSB0cmlnZ2VyIHRoaXMgYnkgZWl0aGVyIHJ1bm5pbmcgYSBndWVzdCB0aGF0IGl0c2VsZiBjYXVzZXMgYSBtYWNoaW5lIGNoZWNrLCBvciBpZiB0aGUgaG9zdCBleHBlcmllbmNlcyBhIG1hY2hpbmUgY2hlY2sgd2hpbGUgcnVubmluZyB0aGUgZ3Vlc3QuIFNvLCBJIGNhbiBtYWtlIHRoZSBmdXp6ZXIgdGFyZ2V0IHRoYXQuIFRoaXMgc2ltcGxpZmllcyB0aGluZ3MuXG5cblRoZXJlZm9yZSwgZm9yIGZvY3VzIHN5bWJvbHMsIEknbGwgbGlzdCBga3ZtX3MzOTBfcmVpbmplY3RfbWFjaGluZV9jaGVja2AsIGtub3dpbmcgaXQncyByZWFjaGFibGUgdGhyb3VnaCB0aGUgZ3Vlc3Qgb3IgaG9zdCB0cmlnZ2VyaW5nIGEgbWFjaGluZSBjaGVjay5cblxuVGhlIGltcG9ydGFudCBjb25maWcgaXMgYEtWTWAuIEknbSByZWFkeSB0byB3cml0ZSB0aGUgcmVzcG9uc2UuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjE0Nzc0LCJPdXRwdXRUb2tlbnMiOjE1MiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjUxMCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0wNlQxNDozNjoyMi43NTY3MTg1MDZaIiwiU2VxIjoxNCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo4NjQzMjg1OCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiS1ZNXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwia3ZtX3MzOTBfcmVpbmplY3RfbWFjaGluZV9jaGVja1wiLFxuICAgIFwiczM5MF9kb19tYWNoaW5lX2NoZWNrXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgaG93IG1hY2hpbmUgY2hlY2tzIGFyZSBoYW5kbGVkIGFuZCByZWluamVjdGVkIGludG8gS1ZNIGd1ZXN0cyBvbiBzMzkwLiBJdCBjaGFuZ2VzIGBrdm1fczM5MF9yZWluamVjdF9tYWNoaW5lX2NoZWNrYCB0byBhbHdheXMgaW5qZWN0IHRoZSBtYWNoaW5lIGNoZWNrIHRvIHRoZSBzcGVjaWZpYyB2Y3B1IHJhdGhlciB0aGFuIGFzIGEgZmxvYXRpbmcgbWFjaGluZSBjaGVjaywgYW5kIHVwZGF0ZXMgdGhlIGBNQ0NLX0NPREVfTk9fR1VFU1RgIG1hc2suIFRoZXNlIGFyZSBmdW5jdGlvbmFsIGNoYW5nZXMgaW4gcmVhY2hhYmxlIEtWTSBhbmQgYXJjaGl0ZWN0dXJlLXNwZWNpZmljIGNvZGUuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiS1ZNXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwia3ZtX3MzOTBfcmVpbmplY3RfbWFjaGluZV9jaGVja1wiLFxuICAgIFwiczM5MF9kb19tYWNoaW5lX2NoZWNrXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgaG93IG1hY2hpbmUgY2hlY2tzIGFyZSBoYW5kbGVkIGFuZCByZWluamVjdGVkIGludG8gS1ZNIGd1ZXN0cyBvbiBzMzkwLiBJdCBjaGFuZ2VzIGBrdm1fczM5MF9yZWluamVjdF9tYWNoaW5lX2NoZWNrYCB0byBhbHdheXMgaW5qZWN0IHRoZSBtYWNoaW5lIGNoZWNrIHRvIHRoZSBzcGVjaWZpYyB2Y3B1IHJhdGhlciB0aGFuIGFzIGEgZmxvYXRpbmcgbWFjaGluZSBjaGVjaywgYW5kIHVwZGF0ZXMgdGhlIGBNQ0NLX0NPREVfTk9fR1VFU1RgIG1hc2suIFRoZXNlIGFyZSBmdW5jdGlvbmFsIGNoYW5nZXMgaW4gcmVhY2hhYmxlIEtWTSBhbmQgYXJjaGl0ZWN0dXJlLXNwZWNpZmljIGNvZGUuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0udG9rZW5zIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnVG9vbER1ciA9IHN0YXRzLnRvb2wuY291bnQgPiAwID8gKHN0YXRzLnRvb2wuZHVyYXRpb24gLyBzdGF0cy50b29sLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCgkJCWNvbnN0IGxsbVN1bWFyeUNlbGxzID0gW3N0YXRzLmxsbS5jb3VudCwgc3RhdHMubGxtLnRva2VucywgYXZnTGxtVG9rZW4sIHN0YXRzLmxsbS5kdXJhdGlvbiwgYXZnTGxtRHVyXTsKCQkJY29uc3QgdG9vbFN1bW1hcnlDZWxscyA9IFtzdGF0cy50b29sLmNvdW50LCBzdGF0cy50b29sLmR1cmF0aW9uLCBhdmdUb29sRHVyXTsKCgkJCWNvbnN0IGxsbVN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xsbV9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJbGxtU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IGxsbVRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJbGxtU3VtYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCWxsbVRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCWxsbVN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKGxsbVRyKTsKCgkJCWNvbnN0IHRvb2xTdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b29sX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQl0b29sU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IHRvb2xUciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCXRvb2xTdW1tYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCXRvb2xUci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQl0b29sU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQodG9vbFRyKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgZmlsdGVyZWRTdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gWyJsbG0iLCAidG9vbCJdLmluY2x1ZGVzKGQuVHlwZSkpOwoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdEdXJhdGlvbicpOwoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOyAKCgkJCWZpbHRlcmVkU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCQoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7CgkJCQlsZXQgdG9vbHRpcCA9IHMuTmFtZTsKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iICYmIHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCQkJCWRhdGEuYWRkUm93KFtgJHtzLlNlcX1gLCBkdXIsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUaW1lIENvbnN1bXB0aW9uIG9mIExMTS9Ub29sIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0vVG9vbCBTdGVwcycsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdTZWNvbmRzJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkdXJhdGlvbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgbGxtU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IGQuVHlwZSA9PT0gImxsbSIpOwoJCQlpZiAobGxtU3RlcHMubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdUb2tlbnMnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAnc3R5bGUnfSk7CQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOwkKCgkJCWNvbnN0IGFnZW50Q29sb3JzID0ge307CgkJCWNvbnN0IHBhbGV0dGUgPSBbJyM0Mjg1RjQnLCAnI0RCNDQzNycsICcjRjRCNDAwJywgJyMwRjlENTgnLCAnI0FCNDdCQycsICcjMDBBQ0MxJ107CgkJCWxldCBjb2xvcklkeCA9IDA7CgkJCWNvbnN0IGFnZW50TExNQ291bnRzID0ge307CgkJCWxsbVN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQlpZiAoIWFnZW50Q29sb3JzW3MuTmFtZV0pIHsKCQkJCQlhZ2VudENvbG9yc1tzLk5hbWVdID0gcGFsZXR0ZVtjb2xvcklkeCAlIHBhbGV0dGUubGVuZ3RoXTsKCQkJCQljb2xvcklkeCsrOwoJCQkJfQoKCQkJCWFnZW50TExNQ291bnRzW3MuTmFtZV0gPSAoYWdlbnRMTE1Db3VudHNbcy5OYW1lXSB8fCAwKSArIDE7CgkJCQljb25zdCBsYWJlbCA9IGAke3MuTmFtZX0tJHthZ2VudExMTUNvdW50c1tzLk5hbWVdfWA7CgkJCQljb25zdCB0b3RhbFRva2VucyA9IHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnM7CgkJCQljb25zdCBzdHlsZSA9IGBjb2xvcjogJHthZ2VudENvbG9yc1tzLk5hbWVdfWA7CgkJCQlsZXQgdG9vbHRpcCA9IGBUb3RhbCBUb2tlbnM6ICR7dG90YWxUb2tlbnN9XG4oSW46ICR7cy5JbnB1dFRva2Vuc30sIE91dDogJHtzLk91dHB1dFRva2Vuc30sIFRob3VnaHRzOiAke3MuT3V0cHV0VGhvdWdodHNUb2tlbnN9KWA7CgkJCQlpZiAocy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoKCQkJCWRhdGEuYWRkUm93KFtsYWJlbCwgdG90YWxUb2tlbnMsIHN0eWxlLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVG9rZW4gQ29uc3VtcHRpb24gYnkgTExNIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0gQ2FsbCBTZXF1ZW5jZScsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdDb25zdW1lZCBUb2tlbnMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rva2VuX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgkJbGV0IGFsbEV4cGFuZGVkID0gZmFsc2U7CgkJZnVuY3Rpb24gdG9nZ2xlQWxsRGV0YWlscygpIHsKCQkJYWxsRXhwYW5kZWQgPSAhYWxsRXhwYW5kZWQ7CgkJCWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2RldGFpbHMnKS5mb3JFYWNoKGQgPT4gewoJCQkJaWYgKGFsbEV4cGFuZGVkKSBkLnNldEF0dHJpYnV0ZSgnb3BlbicsICcnKTsKCQkJCWVsc2UgZC5yZW1vdmVBdHRyaWJ1dGUoJ29wZW4nKTsKCQkJfSk7CgkJfQoJPC9zY3JpcHQ+CgoKPC9ib2R5Pgo8L2h0bWw+Cg==" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflow9jhvd[0].run-triage(0) Phase: Succeeded StartedAt: 2026-08-06 14:15:14 +0000 UTC FinishedAt: 2026-08-06 14:36:23 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "kvm-next", "tree_url": "https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/", "commit_hash": "7d3aae206663c4e006b25a1c7a20a4029e67da76", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "KVM" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "kvm-next", "tree_url": "https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/", "commit_hash": "7d3aae206663c4e006b25a1c7a20a4029e67da76", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "KVM" ], "series_id": "a6c520f3-69e0-4674-a656-eeaf6f4159c8" }, "track": "KASAN", "fuzz": { "focus": [ "kvm" ], "focus_symbols": [ "kvm_s390_reinject_machine_check", "s390_do_machine_check" ], "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+CgkJCTx0ZD4yMDI2LzA4LzA2IDE0OjM1PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0tWTSYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2t2bV9zMzkwX3JlaW5qZWN0X21hY2hpbmVfY2hlY2smIzM0OywKICAgICYjMzQ7czM5MF9kb19tYWNoaW5lX2NoZWNrJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIGhvdyBtYWNoaW5lIGNoZWNrcyBhcmUgaGFuZGxlZCBhbmQgcmVpbmplY3RlZCBpbnRvIEtWTSBndWVzdHMgb24gczM5MC4gSXQgY2hhbmdlcyBga3ZtX3MzOTBfcmVpbmplY3RfbWFjaGluZV9jaGVja2AgdG8gYWx3YXlzIGluamVjdCB0aGUgbWFjaGluZSBjaGVjayB0byB0aGUgc3BlY2lmaWMgdmNwdSByYXRoZXIgdGhhbiBhcyBhIGZsb2F0aW5nIG1hY2hpbmUgY2hlY2ssIGFuZCB1cGRhdGVzIHRoZSBgTUNDS19DT0RFX05PX0dVRVNUYCBtYXNrLiBUaGVzZSBhcmUgZnVuY3Rpb25hbCBjaGFuZ2VzIGluIHJlYWNoYWJsZSBLVk0gYW5kIGFyY2hpdGVjdHVyZS1zcGVjaWZpYyBjb2RlLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA2IDE0OjM1PC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5yZWFkLXBhdGNoLWRpZmY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtQYXRjaERpZmYmIzM0OzogJiMzNDtjb21taXQgOTQ0Nzk5MjkxZDcwYmZmNzk4YmFjZWUzYjMwYmQ1ZjgzZjBmNWIxMVxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBUaHUgQXVnIDYgMTQ6MzU6MzQgMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvYXJjaC9zMzkwL2luY2x1ZGUvYXNtL25taS5oIGIvYXJjaC9zMzkwL2luY2x1ZGUvYXNtL25taS5oXG5pbmRleCA2NDU0YzE1MzE4NTQ0Li5kZDI2YzIwYmQyMzEwIDEwMDY0NFxuLS0tIGEvYXJjaC9zMzkwL2luY2x1ZGUvYXNtL25taS5oXG4mIzQzOyYjNDM7JiM0MzsgYi9hcmNoL3MzOTAvaW5jbHVkZS9hc20vbm1pLmhcbkBAIC0yMiw2ICYjNDM7MjIsNyBAQFxuICNkZWZpbmUgTUNDS19DT0RFX1NZU1RFTV9EQU1BR0VcdFx0QklUKDYzKVxuICNkZWZpbmUgTUNDS19DT0RFX0VYVF9EQU1BR0VcdFx0QklUKDYzIC0gNSlcbiAjZGVmaW5lIE1DQ0tfQ09ERV9DUFx0XHRcdEJJVCg2MyAtIDkpXG4mIzQzOyNkZWZpbmUgTUNDS19DT0RFX0NLXHRcdFx0QklUKDYzIC0gMTEpXG4gI2RlZmluZSBNQ0NLX0NPREVfU1RHX0VSUk9SXHRcdEJJVCg2MyAtIDE2KVxuICNkZWZpbmUgTUNDS19DT0RFX1NUR19LRVlfRVJST1JcdFx0QklUKDYzIC0gMTgpXG4gI2RlZmluZSBNQ0NLX0NPREVfU1RHX0RFR1JBRFx0XHRCSVQoNjMgLSAxOSlcbmRpZmYgLS1naXQgYS9hcmNoL3MzOTAva2VybmVsL25taS5jIGIvYXJjaC9zMzkwL2tlcm5lbC9ubWkuY1xuaW5kZXggZTE3YTU5ZDRkNWE0MS4uNjUyYjk4Nzk1MjQzNiAxMDA2NDRcbi0tLSBhL2FyY2gvczM5MC9rZXJuZWwvbm1pLmNcbiYjNDM7JiM0MzsmIzQzOyBiL2FyY2gvczM5MC9rZXJuZWwvbm1pLmNcbkBAIC0zNDUsNyAmIzQzOzM0NSw3IEBAIHN0YXRpYyB2b2lkIG5vdHJhY2UgczM5MF9iYWNrdXBfbWNja19pbmZvKHN0cnVjdCBwdF9yZWdzICpyZWdzKVxuIFx0c2llX3BhZ2UgPSBjb250YWluZXJfb2Yoc2llX2Jsb2NrLCBzdHJ1Y3Qgc2llX3BhZ2UsIHNpZV9ibG9jayk7XG4gXHRtY2NrX2JhY2t1cCA9IFx1MDAyNnNpZV9wYWdlLVx1MDAzZW1jY2tfaW5mbztcbiBcdG1jY2tfYmFja3VwLVx1MDAzZW1jaWMgPSBnZXRfbG93Y29yZSgpLVx1MDAzZW1jY2tfaW50ZXJydXB0aW9uX2NvZGUgXHUwMDI2XG4tXHRcdFx0XHR+KE1DQ0tfQ09ERV9DUCB8IE1DQ0tfQ09ERV9FWFRfREFNQUdFKTtcbiYjNDM7XHRcdFx0fihNQ0NLX0NPREVfQ1AgfCBNQ0NLX0NPREVfRVhUX0RBTUFHRSB8IE1DQ0tfQ09ERV9DSyk7XG4gXHRtY2NrX2JhY2t1cC1cdTAwM2VleHRfZGFtYWdlX2NvZGUgPSBnZXRfbG93Y29yZSgpLVx1MDAzZWV4dGVybmFsX2RhbWFnZV9jb2RlO1xuIFx0bWNja19iYWNrdXAtXHUwMDNlZmFpbGluZ19zdG9yYWdlX2FkZHJlc3MgPSBnZXRfbG93Y29yZSgpLVx1MDAzZWZhaWxpbmdfc3RvcmFnZV9hZGRyZXNzO1xuIH1cbkBAIC0zNTcsNyAmIzQzOzM1Nyw3IEBAIE5PS1BST0JFX1NZTUJPTChzMzkwX2JhY2t1cF9tY2NrX2luZm8pO1xuICNkZWZpbmUgRURfU1RQX0lTTEFORFx0Nlx0LyogRXh0ZXJuYWwgZGFtYWdlIFNUUCBpc2xhbmQgY2hlY2sgKi9cbiAjZGVmaW5lIEVEX1NUUF9TWU5DXHQ3XHQvKiBFeHRlcm5hbCBkYW1hZ2UgU1RQIHN5bmMgY2hlY2sgKi9cbiBcbi0jZGVmaW5lIE1DQ0tfQ09ERV9OT19HVUVTVFx0KE1DQ0tfQ09ERV9DUCB8IE1DQ0tfQ09ERV9FWFRfREFNQUdFKVxuJiM0MzsjZGVmaW5lIE1DQ0tfQ09ERV9OT19HVUVTVFx0KE1DQ0tfQ09ERV9DUCB8IE1DQ0tfQ09ERV9FWFRfREFNQUdFIHwgTUNDS19DT0RFX0NLKVxuIFxuIC8qXG4gICogbWFjaGluZSBjaGVjayBoYW5kbGVyLlxuZGlmZiAtLWdpdCBhL2FyY2gvczM5MC9rdm0vaW50ZXJydXB0LmMgYi9hcmNoL3MzOTAva3ZtL2ludGVycnVwdC5jXG5pbmRleCA3NTE0ZDllMjQwM2MxLi4zMzc1YTk1NjYzN2JlIDEwMDY0NFxuLS0tIGEvYXJjaC9zMzkwL2t2bS9pbnRlcnJ1cHQuY1xuJiM0MzsmIzQzOyYjNDM7IGIvYXJjaC9zMzkwL2t2bS9pbnRlcnJ1cHQuY1xuQEAgLTMwOTksOSAmIzQzOzMwOTksNyBAQCBzdGF0aWMgaW50IHNldF9hZGFwdGVyX2ludChzdHJ1Y3Qga3ZtX2tlcm5lbF9pcnFfcm91dGluZ19lbnRyeSAqZSxcbiB2b2lkIGt2bV9zMzkwX3JlaW5qZWN0X21hY2hpbmVfY2hlY2soc3RydWN0IGt2bV92Y3B1ICp2Y3B1LFxuIFx0XHRcdFx0ICAgICBzdHJ1Y3QgbWNja192b2xhdGlsZV9pbmZvICptY2NrX2luZm8pXG4ge1xuLVx0c3RydWN0IGt2bV9zMzkwX2ludGVycnVwdF9pbmZvIGludGk7XG4tXHRzdHJ1Y3Qga3ZtX3MzOTBfaXJxIGlycTtcbi1cdHN0cnVjdCBrdm1fczM5MF9tY2hrX2luZm8gKm1jaGs7XG4mIzQzO1x0c3RydWN0IGt2bV9zMzkwX2lycSBpcnEgPSB7fTtcbiBcdHVuaW9uIG1jaSBtY2k7XG4gXHRfX3U2NCBjcjE0ID0gMDsgICAgICAgICAvKiB1cHBlciBiaXRzIGFyZSBub3QgdXNlZCAqL1xuIFx0aW50IHJjO1xuQEAgLTMxMjAsMjAgJiM0MzszMTE4LDE0IEBAIHZvaWQga3ZtX3MzOTBfcmVpbmplY3RfbWFjaGluZV9jaGVjayhzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsXG4gXHRpZiAobWNpLncpXG4gXHRcdGNyMTQgfD0gQ1IxNF9XQVJOSU5HX1NVQk1BU0s7XG4gXG4tXHRtY2hrID0gbWNpLmNrID8gXHUwMDI2aW50aS5tY2hrIDogXHUwMDI2aXJxLnUubWNoaztcbi1cdG1jaGstXHUwMDNlY3IxNCA9IGNyMTQ7XG4tXHRtY2hrLVx1MDAzZW1jaWMgPSBtY2NrX2luZm8tXHUwMDNlbWNpYztcbi1cdG1jaGstXHUwMDNlZXh0X2RhbWFnZV9jb2RlID0gbWNja19pbmZvLVx1MDAzZWV4dF9kYW1hZ2VfY29kZTtcbi1cdG1jaGstXHUwMDNlZmFpbGluZ19zdG9yYWdlX2FkZHJlc3MgPSBtY2NrX2luZm8tXHUwMDNlZmFpbGluZ19zdG9yYWdlX2FkZHJlc3M7XG4tXHRpZiAobWNpLmNrKSB7XG4tXHRcdC8qIEluamVjdCB0aGUgZmxvYXRpbmcgbWFjaGluZSBjaGVjayAqL1xuLVx0XHRpbnRpLnR5cGUgPSBLVk1fUzM5MF9NQ0hLO1xuLVx0XHRyYyA9IF9faW5qZWN0X3ZtKHZjcHUtXHUwMDNla3ZtLCBcdTAwMjZpbnRpKTtcbi1cdH0gZWxzZSB7XG4tXHRcdC8qIEluamVjdCB0aGUgbWFjaGluZSBjaGVjayB0byBzcGVjaWZpZWQgdmNwdSAqL1xuLVx0XHRpcnEudHlwZSA9IEtWTV9TMzkwX01DSEs7XG4tXHRcdHJjID0ga3ZtX3MzOTBfaW5qZWN0X3ZjcHUodmNwdSwgXHUwMDI2aXJxKTtcbi1cdH1cbiYjNDM7XHRpcnEudS5tY2hrLmNyMTQgPSBjcjE0O1xuJiM0MztcdGlycS51Lm1jaGsubWNpYyA9IG1jY2tfaW5mby1cdTAwM2VtY2ljO1xuJiM0MztcdGlycS51Lm1jaGsuZXh0X2RhbWFnZV9jb2RlID0gbWNja19pbmZvLVx1MDAzZWV4dF9kYW1hZ2VfY29kZTtcbiYjNDM7XHRpcnEudS5tY2hrLmZhaWxpbmdfc3RvcmFnZV9hZGRyZXNzID0gbWNja19pbmZvLVx1MDAzZWZhaWxpbmdfc3RvcmFnZV9hZGRyZXNzO1xuJiM0MztcbiYjNDM7XHQvKiBJbmplY3QgdGhlIG1hY2hpbmUgY2hlY2sgdG8gc3BlY2lmaWVkIHZjcHUgKi9cbiYjNDM7XHRpcnEudHlwZSA9IEtWTV9TMzkwX01DSEs7XG4mIzQzO1x0cmMgPSBrdm1fczM5MF9pbmplY3RfdmNwdSh2Y3B1LCBcdTAwMjZpcnEpO1xuIFx0V0FSTl9PTl9PTkNFKHJjKTtcbiB9XG4gXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDYgMTQ6MzU8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+YmVzdC1leHBlbnNpdmU8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0tWTSYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2t2bV9zMzkwX3JlaW5qZWN0X21hY2hpbmVfY2hlY2smIzM0OywKICAgICYjMzQ7czM5MF9kb19tYWNoaW5lX2NoZWNrJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIGhvdyBtYWNoaW5lIGNoZWNrcyBhcmUgaGFuZGxlZCBhbmQgcmVpbmplY3RlZCBpbnRvIEtWTSBndWVzdHMgb24gczM5MC4gSXQgY2hhbmdlcyBga3ZtX3MzOTBfcmVpbmplY3RfbWFjaGluZV9jaGVja2AgdG8gYWx3YXlzIGluamVjdCB0aGUgbWFjaGluZSBjaGVjayB0byB0aGUgc3BlY2lmaWMgdmNwdSByYXRoZXIgdGhhbiBhcyBhIGZsb2F0aW5nIG1hY2hpbmUgY2hlY2ssIGFuZCB1cGRhdGVzIHRoZSBgTUNDS19DT0RFX05PX0dVRVNUYCBtYXNrLiBUaGVzZSBhcmUgZnVuY3Rpb25hbCBjaGFuZ2VzIGluIHJlYWNoYWJsZSBLVk0gYW5kIGFyY2hpdGVjdHVyZS1zcGVjaWZpYyBjb2RlLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmUKaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseQp1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLgoKUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczoKLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLgotIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLgotIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy4KLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsCiAgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLgotIENvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLAogIGlvbmljLCBhbWRncHUpIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLgotIERyaXZlciAucmVtb3ZlLCAuc2h1dGRvd24sIG9yIHBjaV91bnJlZ2lzdGVyX2RyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKGUuZy4sIGlnYl9yZW1vdmUpCiAgdGhhdCBhcmUgZXhlY3V0ZWQgb25seSBkdXJpbmcgUENJIGhvdC11bnBsdWcgb3Igc3lzZnMgZHJpdmVyIHVuYmluZCBvcGVyYXRpb25zLgoKSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaAp0b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS4KCldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOgoxLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLgogICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy4KICAgUHJlZmVyIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIEFQSSBlbnRyeXBvaW50IGZ1bmN0aW9ucyBvdmVyIGludGVybmFsIHN0YXRpYyBoZWxwZXIgZnVuY3Rpb25zCiAgICh3aGljaCBhcmUgaW5saW5lZCBieSB0aGUgY29tcGlsZXIgYW5kIGRvIG5vdCBoYXZlIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMpLgoyLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS4KICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLgogICBBbHNvIGNoZWNrICYjMzQ7ZGVwZW5kcyBvbiYjMzQ7IGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlncwogICBuZWVkZWQgZm9yIEtidWlsZCB0byBjb21waWxlIHRoZSBjb2RlIHN0YXRpY2FsbHkgaW50byB2bWxpbnV4LiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3MKICAgb3V0cHV0IGFycmF5LCBhbmQgRE8gTk9UIGFkZCBhICYjMzk7Q09ORklHXyYjMzk7IHByZWZpeCAoZS5nLiwgcmV0dXJuICYjMzQ7TkVUX0lQVjQmIzM0OyBpbnN0ZWFkIG9mICYjMzQ7Q09ORklHX05FVF9JUFY0JiMzNDspLgpQcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy4KCgpVc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLgpJdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS4KSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlByb21wdDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOgpjb21taXQgOTQ0Nzk5MjkxZDcwYmZmNzk4YmFjZWUzYjMwYmQ1ZjgzZjBmNWIxMQpBdXRob3I6IHN5ei1jbHVzdGVyICZsdDt0cmlhZ2VAc3l6a2FsbGVyLmNvbSZndDsKRGF0ZTogICBUaHUgQXVnIDYgMTQ6MzU6MzQgMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9hcmNoL3MzOTAvaW5jbHVkZS9hc20vbm1pLmggYi9hcmNoL3MzOTAvaW5jbHVkZS9hc20vbm1pLmgKaW5kZXggNjQ1NGMxNTMxODU0NC4uZGQyNmMyMGJkMjMxMCAxMDA2NDQKLS0tIGEvYXJjaC9zMzkwL2luY2x1ZGUvYXNtL25taS5oCiYjNDM7JiM0MzsmIzQzOyBiL2FyY2gvczM5MC9pbmNsdWRlL2FzbS9ubWkuaApAQCAtMjIsNiAmIzQzOzIyLDcgQEAKICNkZWZpbmUgTUNDS19DT0RFX1NZU1RFTV9EQU1BR0UJCUJJVCg2MykKICNkZWZpbmUgTUNDS19DT0RFX0VYVF9EQU1BR0UJCUJJVCg2MyAtIDUpCiAjZGVmaW5lIE1DQ0tfQ09ERV9DUAkJCUJJVCg2MyAtIDkpCiYjNDM7I2RlZmluZSBNQ0NLX0NPREVfQ0sJCQlCSVQoNjMgLSAxMSkKICNkZWZpbmUgTUNDS19DT0RFX1NUR19FUlJPUgkJQklUKDYzIC0gMTYpCiAjZGVmaW5lIE1DQ0tfQ09ERV9TVEdfS0VZX0VSUk9SCQlCSVQoNjMgLSAxOCkKICNkZWZpbmUgTUNDS19DT0RFX1NUR19ERUdSQUQJCUJJVCg2MyAtIDE5KQpkaWZmIC0tZ2l0IGEvYXJjaC9zMzkwL2tlcm5lbC9ubWkuYyBiL2FyY2gvczM5MC9rZXJuZWwvbm1pLmMKaW5kZXggZTE3YTU5ZDRkNWE0MS4uNjUyYjk4Nzk1MjQzNiAxMDA2NDQKLS0tIGEvYXJjaC9zMzkwL2tlcm5lbC9ubWkuYwomIzQzOyYjNDM7JiM0MzsgYi9hcmNoL3MzOTAva2VybmVsL25taS5jCkBAIC0zNDUsNyAmIzQzOzM0NSw3IEBAIHN0YXRpYyB2b2lkIG5vdHJhY2UgczM5MF9iYWNrdXBfbWNja19pbmZvKHN0cnVjdCBwdF9yZWdzICpyZWdzKQogCXNpZV9wYWdlID0gY29udGFpbmVyX29mKHNpZV9ibG9jaywgc3RydWN0IHNpZV9wYWdlLCBzaWVfYmxvY2spOwogCW1jY2tfYmFja3VwID0gJmFtcDtzaWVfcGFnZS0mZ3Q7bWNja19pbmZvOwogCW1jY2tfYmFja3VwLSZndDttY2ljID0gZ2V0X2xvd2NvcmUoKS0mZ3Q7bWNja19pbnRlcnJ1cHRpb25fY29kZSAmYW1wOwotCQkJCX4oTUNDS19DT0RFX0NQIHwgTUNDS19DT0RFX0VYVF9EQU1BR0UpOwomIzQzOwkJCX4oTUNDS19DT0RFX0NQIHwgTUNDS19DT0RFX0VYVF9EQU1BR0UgfCBNQ0NLX0NPREVfQ0spOwogCW1jY2tfYmFja3VwLSZndDtleHRfZGFtYWdlX2NvZGUgPSBnZXRfbG93Y29yZSgpLSZndDtleHRlcm5hbF9kYW1hZ2VfY29kZTsKIAltY2NrX2JhY2t1cC0mZ3Q7ZmFpbGluZ19zdG9yYWdlX2FkZHJlc3MgPSBnZXRfbG93Y29yZSgpLSZndDtmYWlsaW5nX3N0b3JhZ2VfYWRkcmVzczsKIH0KQEAgLTM1Nyw3ICYjNDM7MzU3LDcgQEAgTk9LUFJPQkVfU1lNQk9MKHMzOTBfYmFja3VwX21jY2tfaW5mbyk7CiAjZGVmaW5lIEVEX1NUUF9JU0xBTkQJNgkvKiBFeHRlcm5hbCBkYW1hZ2UgU1RQIGlzbGFuZCBjaGVjayAqLwogI2RlZmluZSBFRF9TVFBfU1lOQwk3CS8qIEV4dGVybmFsIGRhbWFnZSBTVFAgc3luYyBjaGVjayAqLwogCi0jZGVmaW5lIE1DQ0tfQ09ERV9OT19HVUVTVAkoTUNDS19DT0RFX0NQIHwgTUNDS19DT0RFX0VYVF9EQU1BR0UpCiYjNDM7I2RlZmluZSBNQ0NLX0NPREVfTk9fR1VFU1QJKE1DQ0tfQ09ERV9DUCB8IE1DQ0tfQ09ERV9FWFRfREFNQUdFIHwgTUNDS19DT0RFX0NLKQogCiAvKgogICogbWFjaGluZSBjaGVjayBoYW5kbGVyLgpkaWZmIC0tZ2l0IGEvYXJjaC9zMzkwL2t2bS9pbnRlcnJ1cHQuYyBiL2FyY2gvczM5MC9rdm0vaW50ZXJydXB0LmMKaW5kZXggNzUxNGQ5ZTI0MDNjMS4uMzM3NWE5NTY2MzdiZSAxMDA2NDQKLS0tIGEvYXJjaC9zMzkwL2t2bS9pbnRlcnJ1cHQuYwomIzQzOyYjNDM7JiM0MzsgYi9hcmNoL3MzOTAva3ZtL2ludGVycnVwdC5jCkBAIC0zMDk5LDkgJiM0MzszMDk5LDcgQEAgc3RhdGljIGludCBzZXRfYWRhcHRlcl9pbnQoc3RydWN0IGt2bV9rZXJuZWxfaXJxX3JvdXRpbmdfZW50cnkgKmUsCiB2b2lkIGt2bV9zMzkwX3JlaW5qZWN0X21hY2hpbmVfY2hlY2soc3RydWN0IGt2bV92Y3B1ICp2Y3B1LAogCQkJCSAgICAgc3RydWN0IG1jY2tfdm9sYXRpbGVfaW5mbyAqbWNja19pbmZvKQogewotCXN0cnVjdCBrdm1fczM5MF9pbnRlcnJ1cHRfaW5mbyBpbnRpOwotCXN0cnVjdCBrdm1fczM5MF9pcnEgaXJxOwotCXN0cnVjdCBrdm1fczM5MF9tY2hrX2luZm8gKm1jaGs7CiYjNDM7CXN0cnVjdCBrdm1fczM5MF9pcnEgaXJxID0ge307CiAJdW5pb24gbWNpIG1jaTsKIAlfX3U2NCBjcjE0ID0gMDsgICAgICAgICAvKiB1cHBlciBiaXRzIGFyZSBub3QgdXNlZCAqLwogCWludCByYzsKQEAgLTMxMjAsMjAgJiM0MzszMTE4LDE0IEBAIHZvaWQga3ZtX3MzOTBfcmVpbmplY3RfbWFjaGluZV9jaGVjayhzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsCiAJaWYgKG1jaS53KQogCQljcjE0IHw9IENSMTRfV0FSTklOR19TVUJNQVNLOwogCi0JbWNoayA9IG1jaS5jayA/ICZhbXA7aW50aS5tY2hrIDogJmFtcDtpcnEudS5tY2hrOwotCW1jaGstJmd0O2NyMTQgPSBjcjE0OwotCW1jaGstJmd0O21jaWMgPSBtY2NrX2luZm8tJmd0O21jaWM7Ci0JbWNoay0mZ3Q7ZXh0X2RhbWFnZV9jb2RlID0gbWNja19pbmZvLSZndDtleHRfZGFtYWdlX2NvZGU7Ci0JbWNoay0mZ3Q7ZmFpbGluZ19zdG9yYWdlX2FkZHJlc3MgPSBtY2NrX2luZm8tJmd0O2ZhaWxpbmdfc3RvcmFnZV9hZGRyZXNzOwotCWlmIChtY2kuY2spIHsKLQkJLyogSW5qZWN0IHRoZSBmbG9hdGluZyBtYWNoaW5lIGNoZWNrICovCi0JCWludGkudHlwZSA9IEtWTV9TMzkwX01DSEs7Ci0JCXJjID0gX19pbmplY3Rfdm0odmNwdS0mZ3Q7a3ZtLCAmYW1wO2ludGkpOwotCX0gZWxzZSB7Ci0JCS8qIEluamVjdCB0aGUgbWFjaGluZSBjaGVjayB0byBzcGVjaWZpZWQgdmNwdSAqLwotCQlpcnEudHlwZSA9IEtWTV9TMzkwX01DSEs7Ci0JCXJjID0ga3ZtX3MzOTBfaW5qZWN0X3ZjcHUodmNwdSwgJmFtcDtpcnEpOwotCX0KJiM0MzsJaXJxLnUubWNoay5jcjE0ID0gY3IxNDsKJiM0MzsJaXJxLnUubWNoay5tY2ljID0gbWNja19pbmZvLSZndDttY2ljOwomIzQzOwlpcnEudS5tY2hrLmV4dF9kYW1hZ2VfY29kZSA9IG1jY2tfaW5mby0mZ3Q7ZXh0X2RhbWFnZV9jb2RlOwomIzQzOwlpcnEudS5tY2hrLmZhaWxpbmdfc3RvcmFnZV9hZGRyZXNzID0gbWNja19pbmZvLSZndDtmYWlsaW5nX3N0b3JhZ2VfYWRkcmVzczsKJiM0MzsKJiM0MzsJLyogSW5qZWN0IHRoZSBtYWNoaW5lIGNoZWNrIHRvIHNwZWNpZmllZCB2Y3B1ICovCiYjNDM7CWlycS50eXBlID0gS1ZNX1MzOTBfTUNISzsKJiM0MzsJcmMgPSBrdm1fczM5MF9pbmplY3RfdmNwdSh2Y3B1LCAmYW1wO2lycSk7CiAJV0FSTl9PTl9PTkNFKHJjKTsKIH0KIAo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNiAxNDozNTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzMzU3CgkJCQkJCQlvdXRwdXQ6IDI4CgkJCQkJCQl0aG91Z2h0czogMjQ4CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyBhIHMzOTAgQXJjaGl0ZWN0dXJlIFBhdGNoIGZvciBGdXp6aW5nIFBvdGVudGlhbCoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCB0YXJnZXRpbmcgdGhlIHMzOTAgYXJjaGl0ZWN0dXJlLCBzcGVjaWZpY2FsbHkgdG91Y2hpbmcgYG5taS5oYCwgYG5taS5jYCwgYW5kIGBpbnRlcnJ1cHQuY2AgZmlsZXMuIEl0IGxvb2tzIGxpa2UgaXQmIzM5O3MgYWRkaW5nIGBNQ0NLX0NPREVfQ0tgIHRvIGBNQ0NLX0NPREVfTk9fR1VFU1RgIGFuZCBpbnRyb2R1Y2luZyBgczM5MF9iYWNrdXBfbWNja19pbmZvYC4gVGhlIGNvcmUgY2hhbmdlIHNpbXBsaWZpZXMgYGt2bV9zMzkwX3JlaW5qZWN0X21hY2hpbmVfY2hlY2tgIGJ5IGVuc3VyaW5nIG1hY2hpbmUgY2hlY2tzIGFyZSBhbHdheXMgaW5qZWN0ZWQgdG8gYSBzcGVjaWZpYyB2Y3B1LgoKTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRvIGFzc2VzcyBpdHMgZnV6emFiaWxpdHkuIEdpdmVuIG15IGtub3dsZWRnZSwgSSBuZWVkIHRvIHBpbnBvaW50IHRoZSByZWxldmFudCBjb2RlOyBga3ZtX3MzOTBfcmVpbmplY3RfbWFjaGluZV9jaGVja2AgaXMgdGhlIGtleS4gVGhlIGNvZGUgcmVzaWRlcyBpbiBgYXJjaC9zMzkwL2t2bS9pbnRlcnJ1cHQuY2AgYW5kIGBhcmNoL3MzOTAva2VybmVsL25taS5jYCwgd2hpY2ggbWFrZXMgc2Vuc2UgYXMgdGhlc2UgYXJlIEtWTSBhbmQgYXJjaGl0ZWN0dXJlLXNwZWNpZmljIGZpbGVzLiBUaGUgYXJjaGl0ZWN0dXJlIGlzIHMzOTAsIGFuZCBTeXprYWxsZXIsIGEgcHJvbWluZW50IGZ1enplciwgc3VwcG9ydHMgczM5MHguIEkgbmVlZCB0byBtYWtlIHN1cmUgdGhpcyBpcyBjb21wYXRpYmxlLgoKU2luY2UgaXQmIzM5O3MgS1ZNLXJlbGF0ZWQsIEkgbmVlZCB0byB0cmFjZSB0aGUgY2FsbCBwYXRocyB0byBga3ZtX3MzOTBfcmVpbmplY3RfbWFjaGluZV9jaGVja2AgdG8gdW5kZXJzdGFuZCB0aGUgY29udGV4dHMgaXQmIzM5O3MgdXNlZCBpbiBhbmQgaWRlbnRpZnkgcG90ZW50aWFsIGVudHJ5IHBvaW50cyBmb3IgZnV6emluZy4gRmlndXJpbmcgb3V0IGhvdyBpdCYjMzk7cyBjYWxsZWQgd2lsbCBnaXZlIG1lIGEgYmV0dGVyIHVuZGVyc3RhbmRpbmcgb2YgaG93IHRoZSBwYXRjaCBjaGFuZ2VzIHRoZSBLVk0gYmVoYXZpb3IuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDYgMTQ6MzU8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7a3ZtX3MzOTBfcmVpbmplY3RfbWFjaGluZV9jaGVjayYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDthcmNoL3MzOTAva3ZtL2ludGVycnVwdC5jPTMwNzI9c3RhdGljIGludCBzZXRfYWRhcHRlcl9pbnQoc3RydWN0IGt2bV9rZXJuZWxfaXJxX3JvdXRpbmdfZW50cnkgKmUsXG4tLVxuYXJjaC9zMzkwL2t2bS9pbnRlcnJ1cHQuYy0zMDk4LSAqL1xuYXJjaC9zMzkwL2t2bS9pbnRlcnJ1cHQuYzozMDk5OnZvaWQga3ZtX3MzOTBfcmVpbmplY3RfbWFjaGluZV9jaGVjayhzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsXG5hcmNoL3MzOTAva3ZtL2ludGVycnVwdC5jLTMxMDAtXHRcdFx0XHQgICAgIHN0cnVjdCBtY2NrX3ZvbGF0aWxlX2luZm8gKm1jY2tfaW5mbylcbi0tXG5hcmNoL3MzOTAva3ZtL2t2bS1zMzkwLmM9NDcyNT1zdGF0aWMgaW50IHZjcHVfcG9zdF9ydW4oc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCBpbnQgc2llX3JldHVybilcbi0tXG5hcmNoL3MzOTAva3ZtL2t2bS1zMzkwLmMtNDc0NC1cdFx0bWNja19pbmZvID0gXHUwMDI2c2llX3BhZ2UtXHUwMDNlbWNja19pbmZvO1xuYXJjaC9zMzkwL2t2bS9rdm0tczM5MC5jOjQ3NDU6XHRcdGt2bV9zMzkwX3JlaW5qZWN0X21hY2hpbmVfY2hlY2sodmNwdSwgbWNja19pbmZvKTtcbmFyY2gvczM5MC9rdm0va3ZtLXMzOTAuYy00NzQ2LVx0XHRyZXR1cm4gMDtcbi0tXG5hcmNoL3MzOTAva3ZtL2t2bS1zMzkwLmg9NTc4PXN0YXRpYyBpbmxpbmUgaW50IGt2bV9zMzkwX3VzZV9zY2FfZW50cmllcyh2b2lkKVxuLS1cbmFyY2gvczM5MC9rdm0va3ZtLXMzOTAuaC01ODYtfVxuYXJjaC9zMzkwL2t2bS9rdm0tczM5MC5oOjU4Nzp2b2lkIGt2bV9zMzkwX3JlaW5qZWN0X21hY2hpbmVfY2hlY2soc3RydWN0IGt2bV92Y3B1ICp2Y3B1LFxuYXJjaC9zMzkwL2t2bS9rdm0tczM5MC5oLTU4OC1cdFx0XHRcdCAgICAgc3RydWN0IG1jY2tfdm9sYXRpbGVfaW5mbyAqbWNja19pbmZvKTtcbi0tXG5hcmNoL3MzOTAva3ZtL3ZzaWUuYz0xMTg3PXN0YXRpYyBpbnQgZG9fdnNpZV9ydW4oc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCBzdHJ1Y3QgdnNpZV9wYWdlICp2c2llX3BhZ2UsIHN0cnVjdCBnbWFwICpzZylcbi0tXG5hcmNoL3MzOTAva3ZtL3ZzaWUuYy0xMjUwLVx0aWYgKHNpZV9yZXR1cm4gPT0gU0lFNjRfUkVUVVJOX01DQ0spIHtcbmFyY2gvczM5MC9rdm0vdnNpZS5jOjEyNTE6XHRcdGt2bV9zMzkwX3JlaW5qZWN0X21hY2hpbmVfY2hlY2sodmNwdSwgXHUwMDI2dnNpZV9wYWdlLVx1MDAzZW1jY2tfaW5mbyk7XG5hcmNoL3MzOTAva3ZtL3ZzaWUuYy0xMjUyLVx0XHRyZXR1cm4gMDtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNiAxNDozNTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA0NjUwCgkJCQkJCQlvdXRwdXQ6IDI2CgkJCQkJCQl0aG91Z2h0czogMTYwCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyBhIEtWTSBzMzkwIE1hY2hpbmUgQ2hlY2sgUGF0Y2gqKgoKT2theSwgc28gdGhpcyBwYXRjaCBpcyBtb2RpZnlpbmcgYGt2bV9zMzkwX3JlaW5qZWN0X21hY2hpbmVfY2hlY2tgLiBJIGtub3cgdGhhdCBmdW5jdGlvbiBpcyBjYWxsZWQgZnJvbSBgdmNwdV9wb3N0X3J1bmAgYW5kIGBkb192c2llX3J1bmAsIHdoaWNoIGFyZSBib3RoIGNlbnRyYWwgdG8gS1ZNIGd1ZXN0IGV4ZWN1dGlvbiBvbiB0aGUgczM5MCBhcmNoaXRlY3R1cmUuIFRoaXMgc3Ryb25nbHkgc3VnZ2VzdHMgdGhhdCB3ZSYjMzk7cmUgZGVhbGluZyB3aXRoIGEgY29yZSBjb21wb25lbnQgb2YgaG93IHRoZSBoeXBlcnZpc29yIGhhbmRsZXMgZXJyb3JzIHRoYXQgaGFwcGVuICp3aXRoaW4qIHRoZSB2aXJ0dWFsIG1hY2hpbmUuIE15IGluaXRpYWwgdGhvdWdodCBpcywgaXMgdGhpcyBzb21ldGhpbmcgdGhhdCBjb3VsZCBiZSBmdXp6ZWQ/IEdpdmVuIHRoYXQgS1ZNIG9uIHMzOTAgaXMgYWxyZWFkeSBmdXp6YWJsZSAtIFN5emthbGxlciwgaWYgSSByZWNhbGwgY29ycmVjdGx5LCBoYXMgc29tZSBzMzkweCBLVk0gc3VwcG9ydCAtIHRoZSBwb3RlbnRpYWwgZm9yIGZpbmRpbmcgdnVsbmVyYWJpbGl0aWVzIHRocm91Z2ggZnV6emluZyBpcyBkZWZpbml0ZWx5IHRoZXJlLgoKSG93ZXZlciwgYSBxdWljayBzZWNvbmQgbG9vayByZXZlYWxzIHRoaXMgcGF0Y2ggaXNuJiMzOTt0IGp1c3QgYWJvdXQgcmVpbmplY3Rpb24uIEl0JiMzOTtzIGFsc28gdG91Y2hpbmcgYHMzOTBfYmFja3VwX21jY2tfaW5mb2Agd2hpY2gsIGdpdmVuIGl0cyBuYW1lLCBsaWtlbHkgbWVhbnMgYmFja2luZyB1cCBNYWNoaW5lIENoZWNrIENvZGUgaW5mb3JtYXRpb24gZm9yIHJlY292ZXJ5IG9yIGFuYWx5c2lzIHB1cnBvc2VzLCBhbmQgSSYjMzk7bSBpbnRlcmVzdGVkIGluIGtub3dpbmcgbW9yZSBhYm91dCBpdC4gTm93IEkgbmVlZCB0byBmaWd1cmUgb3V0IHdoZXJlIGBzMzkwX2JhY2t1cF9tY2NrX2luZm9gIGlzIGNhbGxlZC4gSXQgbWF5IGJlIGhlbHBmdWwgdG8gdW5kZXJzdGFuZCB0aGUgZnVsbCBjb250ZXh0IG9mIHRoZSBjaGFuZ2VzLiBUaGlzIGNvdWxkIGJlIGEgY3JpdGljYWwgYXJlYSwgcG90ZW50aWFsbHkgcmVsYXRlZCB0byBoYW5kbGluZyBjb3JydXB0IHN0YXRlcywgb3IgbWF5YmUgZXZlbiB0byBleHBsb2l0aW5nIHJhY2UgY29uZGl0aW9ucyBhcm91bmQgZXJyb3IgaGFuZGxpbmcuIExldCYjMzk7cyBkaWcgZGVlcGVyIGFuZCBnZXQgYSBmdWxsIHBpY3R1cmUuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDYgMTQ6MzU8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7czM5MF9iYWNrdXBfbWNja19pbmZvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2FyY2gvczM5MC9rZXJuZWwvbm1pLmM9MzI4PU5PS1BST0JFX1NZTUJPTChubWlfcmVnaXN0ZXJzX3ZhbGlkKTtcbi0tXG5hcmNoL3MzOTAva2VybmVsL25taS5jLTMzMi0gKi9cbmFyY2gvczM5MC9rZXJuZWwvbm1pLmM6MzMzOnN0YXRpYyB2b2lkIG5vdHJhY2UgczM5MF9iYWNrdXBfbWNja19pbmZvKHN0cnVjdCBwdF9yZWdzICpyZWdzKVxuYXJjaC9zMzkwL2tlcm5lbC9ubWkuYy0zMzQte1xuLS1cbmFyY2gvczM5MC9rZXJuZWwvbm1pLmMtMzUxLX1cbmFyY2gvczM5MC9rZXJuZWwvbm1pLmM6MzUyOk5PS1BST0JFX1NZTUJPTChzMzkwX2JhY2t1cF9tY2NrX2luZm8pO1xuYXJjaC9zMzkwL2tlcm5lbC9ubWkuYy0zNTMtXG4tLVxuYXJjaC9zMzkwL2tlcm5lbC9ubWkuYz0zNjU9dm9pZCBub3RyYWNlIHMzOTBfZG9fbWFjaGluZV9jaGVjayhzdHJ1Y3QgcHRfcmVncyAqcmVncylcbi0tXG5hcmNoL3MzOTAva2VybmVsL25taS5jLTQ0NC1cdGlmICh0ZXN0X2NwdV9mbGFnKENJRl9NQ0NLX0dVRVNUKSlcbmFyY2gvczM5MC9rZXJuZWwvbm1pLmM6NDQ1Olx0XHRzMzkwX2JhY2t1cF9tY2NrX2luZm8ocmVncyk7XG5hcmNoL3MzOTAva2VybmVsL25taS5jLTQ0Ni1cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD43LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNiAxNDozNTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA1NDg3CgkJCQkJCQlvdXRwdXQ6IDI0CgkJCQkJCQl0aG91Z2h0czogNDExCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgczM5MHggTWFjaGluZSBDaGVjayBIYW5kbGluZyBpbiBLVk0qKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgYHMzOTBfZG9fbWFjaGluZV9jaGVja2AgZnVuY3Rpb24sIHdoaWNoIGNhbGxzIGBzMzkwX2JhY2t1cF9tY2NrX2luZm9gLiBUaGlzIGlzIHRoZSBhcmNoaXRlY3R1cmUtc3BlY2lmaWMgbWFjaGluZSBjaGVjayBoYW5kbGVyIGZvciBzMzkweCwgYW5kIHRoZSBjb3JlIG9mIG15IHF1ZXN0aW9uIGlzOiBjYW4gc3l6a2FsbGVyIGFjdHVhbGx5IHRyaWdnZXIgdGhlc2UgbWFjaGluZSBjaGVja3M/IE5vcm1hbGx5LCBtYWNoaW5lIGNoZWNrcyBhcmUgaGFyZHdhcmUgZXJyb3JzLCByaWdodD8gQnV0IHdpdGggS1ZNLCB0aGluZ3MgZ2V0IGEgYml0IGZ1enppZXIuIFBlcmhhcHMgd2UgY291bGQgaW5qZWN0IHRoZW0sIG9yIHBlcmhhcHMgc29tZSBndWVzdCBhY3Rpb24gY291bGQgY2F1c2Ugb25lPwoKQWN0dWFsbHksIGlmIGl0ICppcyogYSBoYXJkd2FyZSBlcnJvciwgY2FuIHN5emthbGxlciBldmVuIHRvdWNoIGl0PyBUaGVuIEkgcmVtZW1iZXI6IHN5emthbGxlciAqY2FuKiB1c2UgYC9kZXYva3ZtYCB0byBlaXRoZXIgaW5qZWN0IG1hY2hpbmUgY2hlY2tzIGRpcmVjdGx5IGludG8gdGhlIGd1ZXN0IG9yIG1heWJlIHRoZSBndWVzdCBpdHNlbGYgdHJpZ2dlcnMgaXQgc29tZWhvdy4KClRoZSBwYXRjaCBJJiMzOTttIGV4YW1pbmluZyBtb2RpZmllcyBga3ZtX3MzOTBfcmVpbmplY3RfbWFjaGluZV9jaGVja2AuIFRoaXMgZnVuY3Rpb24gaXMgdHJpZ2dlcmVkIHdoZW4gYHNpZV9yZXR1cm4gPT0gU0lFNjRfUkVUVVJOX01DQ0tgLiBUaGF04oCZcyB0aGUga2V5ISBJdCBoYXBwZW5zIHdoZW4gdGhlIGhhcmR3YXJlLCBvciBtb3JlIHJlYWxpc3RpY2FsbHksIHRoZSBoeXBlcnZpc29yLCByZXR1cm5zIGZyb20gdGhlIFNJRSBpbnN0cnVjdGlvbiB3aXRoIGEgbWFjaGluZSBjaGVjayBpbmRpY2F0aW9uLiBUaGF0IG1ha2VzIG1lIHRoaW5rOiBDYW4gdGhlIGd1ZXN0ICphY3R1YWxseSogdHJpZ2dlciBhIG1hY2hpbmUgY2hlY2s/IFNvbWV0aW1lcyB5ZXMsIGJ1dCB1c3VhbGx5IGl0IGlzIGluamVjdGVkIGJ5IHRoZSBob3N0LgoKSWYgc3l6a2FsbGVyIGlzIGZ1enppbmcgS1ZNIGZyb20gdGhlIGhvc3QsIGl0IGNhbiB1c2UgS1ZNIGlvY3RscyB0byBpbmplY3QgdGhlc2UgY2hlY2tzLCBvciBtYXliZSBjb25maWd1cmUgdGhlIGd1ZXN0IGluIGEgd2F5IHRoYXQgaW5kaXJlY3RseSBjYXVzZXMgYSBtYWNoaW5lIGNoZWNrLgoKSGFuZyBvbuKApiBMZXQgbWUgbWFrZSBzdXJlIEkmIzM5O20gZm9sbG93aW5nLiBga3ZtX3MzOTBfcmVpbmplY3RfbWFjaGluZV9jaGVja2AgaXMgY2FsbGVkIHdoZW4gYHZjcHVfcG9zdF9ydW5gIGRldGVjdHMgYHNpZV9yZXR1cm4gPT0gU0lFNjRfUkVUVVJOX01DQ0tgLiBUaGF0IG1lYW5zIHRoZSBob3N0IGtlcm5lbCBpcyBydW5uaW5nIHRoZSBgS1ZNX1JVTmAgaW9jdGwsIGFuZCB0aGUgU0lFIGluc3RydWN0aW9uIHdpdGhpbiBLVk0gcmV0dXJucyB3aXRoIGEgbWFjaGluZSBjaGVjayBpbmRpY2F0aW9uLiBUaGlzIGlzIHRoZSBtZWNoYW5pc20hCgpTbyB0aGUgY3JpdGljYWwgcXVlc3Rpb24gaXM6IENhbiB3ZSBhY3R1YWxseSBtYW5pcHVsYXRlIHRoaXMgZmxvdyB3aXRoIHN5emthbGxlcj8gSWYgc3l6a2FsbGVyIGlzIHJ1bm5pbmcgb24gczM5MHgsIGl0IGNhbiBjYWxsIGBLVk1fUlVOYC4gSWYgdGhlIGd1ZXN0IGRvZXMgc29tZXRoaW5nIHRvIGFjdHVhbGx5ICp0cmlnZ2VyKiBhIG1hY2hpbmUgY2hlY2ssIG9yIGlmIHdlIGNhbiBpbmplY3Qgb25lLCBtYXliZSB3ZSYjMzk7dmUgZ290IGEgc2hvdC4KCldhaXQgYSBzZWNvbmQsIGBrdm1fczM5MF9yZWluamVjdF9tYWNoaW5lX2NoZWNrYCBpcyAqZGVmaW5pdGVseSogYSBLVk0gZnVuY3Rpb24uIExldCYjMzk7cyBjaGVjayBgS1ZNX1MzOTBfTUNIS2AgaW5qZWN0aW9uLiBMZXQmIzM5O3MgbG9vayBhdCB0aGF0IHBhdGghCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDYgMTQ6MzU8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7S1ZNX1MzOTBfTUNISyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtEb2N1bWVudGF0aW9uL3ZpcnQva3ZtL2FwaS5yc3Q9MzI5Nz1LVk1fUzM5MF9JTlRfSU8oYWksY3NzaWQsc3NpZCxzY2hpZCkgKHZtKVxuLS1cbkRvY3VtZW50YXRpb24vdmlydC9rdm0vYXBpLnJzdC0zMzAxLSAgICAgIGludGVycnVwdGlvbiBzdWJjbGFzcylcbkRvY3VtZW50YXRpb24vdmlydC9rdm0vYXBpLnJzdDozMzAyOktWTV9TMzkwX01DSEsgKHZtLCB2Y3B1KVxuRG9jdW1lbnRhdGlvbi92aXJ0L2t2bS9hcGkucnN0LTMzMDMtICAgIC0gbWFjaGluZSBjaGVjayBpbnRlcnJ1cHQ7IGNyIDE0IGJpdHMgaW4gcGFybSwgbWFjaGluZSBjaGVjayBpbnRlcnJ1cHRcbi0tXG5Eb2N1bWVudGF0aW9uL3ZpcnQva3ZtL2FwaS5yc3Q9NDEwOT10eXBlIGNhbiBiZSBvbmUgb2YgdGhlIGZvbGxvd2luZzpcbi0tXG5Eb2N1bWVudGF0aW9uL3ZpcnQva3ZtL2FwaS5yc3QtNDExOC0tIEtWTV9TMzkwX0lOVF9FWFRFUk5BTF9DQUxMIC0gc2lncCBleHRlcm5hbCBjYWxsOyBwYXJhbWV0ZXJzIGluIC5leHRjYWxsXG5Eb2N1bWVudGF0aW9uL3ZpcnQva3ZtL2FwaS5yc3Q6NDExOTotIEtWTV9TMzkwX01DSEsgLSBtYWNoaW5lIGNoZWNrIGludGVycnVwdDsgcGFyYW1ldGVycyBpbiAubWNoa1xuRG9jdW1lbnRhdGlvbi92aXJ0L2t2bS9hcGkucnN0LTQxMjAtXG4tLVxuYXJjaC9zMzkwL2luY2x1ZGUvdWFwaS9hc20va3ZtLmg9OTY9c3RydWN0IGt2bV9zMzkwX3BzdyB7XG4tLVxuYXJjaC9zMzkwL2luY2x1ZGUvdWFwaS9hc20va3ZtLmgtMTA3LSNkZWZpbmUgS1ZNX1MzOTBfSU5UX1BGQVVMVF9ET05FXHQweGZmZmUwMDA1dVxuYXJjaC9zMzkwL2luY2x1ZGUvdWFwaS9hc20va3ZtLmg6MTA4OiNkZWZpbmUgS1ZNX1MzOTBfTUNIS1x0XHRcdDB4ZmZmZTEwMDB1XG5hcmNoL3MzOTAvaW5jbHVkZS91YXBpL2FzbS9rdm0uaC0xMDktI2RlZmluZSBLVk1fUzM5MF9JTlRfQ0xPQ0tfQ09NUFx0XHQweGZmZmYxMDA0dVxuLS1cbmFyY2gvczM5MC9rdm0vaW50ZXJydXB0LmM9NjIwPXN0YXRpYyBpbnQgX19tdXN0X2NoZWNrIF9fZGVsaXZlcl9tYWNoaW5lX2NoZWNrKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSlcbi0tXG5hcmNoL3MzOTAva3ZtL2ludGVycnVwdC5jLTY2My1cdFx0dHJhY2Vfa3ZtX3MzOTBfZGVsaXZlcl9pbnRlcnJ1cHQodmNwdS1cdTAwM2V2Y3B1X2lkLFxuYXJjaC9zMzkwL2t2bS9pbnRlcnJ1cHQuYzo2NjQ6XHRcdFx0XHRcdFx0IEtWTV9TMzkwX01DSEssXG5hcmNoL3MzOTAva3ZtL2ludGVycnVwdC5jLTY2NS1cdFx0XHRcdFx0XHQgbWNoay5jcjE0LCBtY2hrLm1jaWMpO1xuLS1cbmFyY2gvczM5MC9rdm0vaW50ZXJydXB0LmM9MTYwMz1zdGF0aWMgaW50IF9faW5qZWN0X21jaGsoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCBzdHJ1Y3Qga3ZtX3MzOTBfaXJxICppcnEpXG4tLVxuYXJjaC9zMzkwL2t2bS9pbnRlcnJ1cHQuYy0xNjEwLVx0XHQgICBpcnEtXHUwMDNldS5tY2hrLm1jaWMpO1xuYXJjaC9zMzkwL2t2bS9pbnRlcnJ1cHQuYzoxNjExOlx0dHJhY2Vfa3ZtX3MzOTBfaW5qZWN0X3ZjcHUodmNwdS1cdTAwM2V2Y3B1X2lkLCBLVk1fUzM5MF9NQ0hLLCAwLFxuYXJjaC9zMzkwL2t2bS9pbnRlcnJ1cHQuYy0xNjEyLVx0XHRcdFx0ICAgaXJxLVx1MDAzZXUubWNoay5tY2ljKTtcbi0tXG5hcmNoL3MzOTAva3ZtL2ludGVycnVwdC5jPTE5MTI9c3RhdGljIHZvaWQgX19mbG9hdGluZ19pcnFfa2ljayhzdHJ1Y3Qga3ZtICprdm0sIHU2NCB0eXBlKVxuLS1cbmFyY2gvczM5MC9rdm0vaW50ZXJydXB0LmMtMTkzMi1cdHN3aXRjaCAodHlwZSkge1xuYXJjaC9zMzkwL2t2bS9pbnRlcnJ1cHQuYzoxOTMzOlx0Y2FzZSBLVk1fUzM5MF9NQ0hLOlxuYXJjaC9zMzkwL2t2bS9pbnRlcnJ1cHQuYy0xOTM0LVx0XHRrdm1fczM5MF9zZXRfY3B1ZmxhZ3MoZHN0X3ZjcHUsIENQVVNUQVRfU1RPUF9JTlQpO1xuLS1cbmFyY2gvczM5MC9rdm0vaW50ZXJydXB0LmM9MTk0OT1zdGF0aWMgaW50IF9faW5qZWN0X3ZtKHN0cnVjdCBrdm0gKmt2bSwgc3RydWN0IGt2bV9zMzkwX2ludGVycnVwdF9pbmZvICppbnRpKVxuLS1cbmFyY2gvczM5MC9rdm0vaW50ZXJydXB0LmMtMTk1NC1cdHN3aXRjaCAodHlwZSkge1xuYXJjaC9zMzkwL2t2bS9pbnRlcnJ1cHQuYzoxOTU1Olx0Y2FzZSBLVk1fUzM5MF9NQ0hLOlxuYXJjaC9zMzkwL2t2bS9pbnRlcnJ1cHQuYy0xOTU2LVx0XHRyYyA9IF9faW5qZWN0X2Zsb2F0X21jaGsoa3ZtLCBpbnRpKTtcbi0tXG5hcmNoL3MzOTAva3ZtL2ludGVycnVwdC5jPTE5ODA9aW50IGt2bV9zMzkwX2luamVjdF92bShzdHJ1Y3Qga3ZtICprdm0sXG4tLVxuYXJjaC9zMzkwL2t2bS9pbnRlcnJ1cHQuYy0xOTk5LVx0XHRicmVhaztcbmFyY2gvczM5MC9rdm0vaW50ZXJydXB0LmM6MjAwMDpcdGNhc2UgS1ZNX1MzOTBfTUNISzpcbmFyY2gvczM5MC9rdm0vaW50ZXJydXB0LmMtMjAwMS1cdFx0Vk1fRVZFTlQoa3ZtLCAzLCBcJiMzNDtpbmplY3Q6IG1hY2hpbmUgY2hlY2sgbWNpYyAweCVsbHhcJiMzNDssXG4tLVxuYXJjaC9zMzkwL2t2bS9pbnRlcnJ1cHQuYz0yMDI5PWludCBzMzkwaW50X3RvX3MzOTBpcnEoc3RydWN0IGt2bV9zMzkwX2ludGVycnVwdCAqczM5MGludCxcbi0tXG5hcmNoL3MzOTAva3ZtL2ludGVycnVwdC5jLTIwNTQtXHRcdGJyZWFrO1xuYXJjaC9zMzkwL2t2bS9pbnRlcnJ1cHQuYzoyMDU1Olx0Y2FzZSBLVk1fUzM5MF9NQ0hLOlxuYXJjaC9zMzkwL2t2bS9pbnRlcnJ1cHQuYy0yMDU2LVx0XHRpcnEtXHUwMDNldS5tY2hrLm1jaWMgPSBzMzkwaW50LVx1MDAzZXBhcm02NDtcbi0tXG5hcmNoL3MzOTAva3ZtL2ludGVycnVwdC5jPTIwOTY9c3RhdGljIGludCBkb19pbmplY3RfdmNwdShzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIHN0cnVjdCBrdm1fczM5MF9pcnEgKmlycSlcbi0tXG5hcmNoL3MzOTAva3ZtL2ludGVycnVwdC5jLTIxMjQtXHRcdGJyZWFrO1xuYXJjaC9zMzkwL2t2bS9pbnRlcnJ1cHQuYzoyMTI1Olx0Y2FzZSBLVk1fUzM5MF9NQ0hLOlxuYXJjaC9zMzkwL2t2bS9pbnRlcnJ1cHQuYy0yMTI2LVx0XHRyYyA9IF9faW5qZWN0X21jaGsodmNwdSwgaXJxKTtcbi0tXG5hcmNoL3MzOTAva3ZtL2ludGVycnVwdC5jPTIyMDI9c3RhdGljIGludCBnZXRfYWxsX2Zsb2F0aW5nX2lycXMoc3RydWN0IGt2bSAqa3ZtLCB1OCBfX3VzZXIgKnVzcmJ1ZiwgdTY0IGxlbilcbi0tXG5hcmNoL3MzOTAva3ZtL2ludGVycnVwdC5jLTIyNzUtXHRcdGlycSA9IChzdHJ1Y3Qga3ZtX3MzOTBfaXJxICopIFx1MDAyNmJ1ZltuXTtcbmFyY2gvczM5MC9rdm0vaW50ZXJydXB0LmM6MjI3NjpcdFx0aXJxLVx1MDAzZXR5cGUgPSBLVk1fUzM5MF9NQ0hLO1xuYXJjaC9zMzkwL2t2bS9pbnRlcnJ1cHQuYy0yMjc3LVx0XHRpcnEtXHUwMDNldS5tY2hrID0gZmktXHUwMDNlbWNoaztcbi0tXG5hcmNoL3MzOTAva3ZtL2ludGVycnVwdC5jPTIzMzU9c3RhdGljIGlubGluZSBpbnQgY29weV9pcnFfZnJvbV91c2VyKHN0cnVjdCBrdm1fczM5MF9pbnRlcnJ1cHRfaW5mbyAqaW50aSxcbi0tXG5hcmNoL3MzOTAva3ZtL2ludGVycnVwdC5jLTIzNTktXHRcdGJyZWFrO1xuYXJjaC9zMzkwL2t2bS9pbnRlcnJ1cHQuYzoyMzYwOlx0Y2FzZSBLVk1fUzM5MF9NQ0hLOlxuYXJjaC9zMzkwL2t2bS9pbnRlcnJ1cHQuYy0yMzYxLVx0XHR0YXJnZXQgPSAodm9pZCAqKSBcdTAwMjZpbnRpLVx1MDAzZW1jaGs7XG4tLVxuYXJjaC9zMzkwL2t2bS9pbnRlcnJ1cHQuYz0zMDk5PXZvaWQga3ZtX3MzOTBfcmVpbmplY3RfbWFjaGluZV9jaGVjayhzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsXG4tLVxuYXJjaC9zMzkwL2t2bS9pbnRlcnJ1cHQuYy0zMTI2LVx0LyogSW5qZWN0IHRoZSBtYWNoaW5lIGNoZWNrIHRvIHNwZWNpZmllZCB2Y3B1ICovXG5hcmNoL3MzOTAva3ZtL2ludGVycnVwdC5jOjMxMjc6XHRpcnEudHlwZSA9IEtWTV9TMzkwX01DSEs7XG5hcmNoL3MzOTAva3ZtL2ludGVycnVwdC5jLTMxMjgtXHRyYyA9IGt2bV9zMzkwX2luamVjdF92Y3B1KHZjcHUsIFx1MDAyNmlycSk7XG4tLVxuYXJjaC9zMzkwL2t2bS9pbnRlcnJ1cHQuYz0zMjIwPXN0YXRpYyB2b2lkIHN0b3JlX2xvY2FsX2lycShzdHJ1Y3Qga3ZtX3MzOTBfbG9jYWxfaW50ZXJydXB0ICpsaSxcbi0tXG5hcmNoL3MzOTAva3ZtL2ludGVycnVwdC5jLTMyMjYtXHRjYXNlIElSUV9QRU5EX01DSEtfUkVQOlxuYXJjaC9zMzkwL2t2bS9pbnRlcnJ1cHQuYzozMjI3Olx0XHRpcnEtXHUwMDNldHlwZSA9IEtWTV9TMzkwX01DSEs7XG5hcmNoL3MzOTAva3ZtL2ludGVycnVwdC5jLTMyMjgtXHRcdGlycS1cdTAwM2V1Lm1jaGsgPSBsaS1cdTAwM2VpcnEubWNoaztcbi0tXG5hcmNoL3MzOTAva3ZtL3RyYWNlLXMzOTAuaD04MT1UUkFDRV9FVkVOVChrdm1fczM5MF92Y3B1X3N0YXJ0X3N0b3AsXG4tLVxuYXJjaC9zMzkwL2t2bS90cmFjZS1zMzkwLmgtMTEwLVx0e0tWTV9TMzkwX0lOVF9QRkFVTFRfRE9ORSwgXCYjMzQ7cGZhdWx0IGRvbmVcJiMzNDt9LFx0XHRcdFxcXG5hcmNoL3MzOTAva3ZtL3RyYWNlLXMzOTAuaDoxMTE6XHR7S1ZNX1MzOTBfTUNISywgXCYjMzQ7bWFjaGluZSBjaGVja1wmIzM0O30sXHRcdFx0XHRcXFxuYXJjaC9zMzkwL2t2bS90cmFjZS1zMzkwLmgtMTEyLVx0e0tWTV9TMzkwX0lOVF9DTE9DS19DT01QLCBcJiMzNDtjbG9jayBjb21wYXJhdG9yXCYjMzQ7fSxcdFx0XHRcXFxuLS1cbnRvb2xzL2FyY2gvczM5MC9pbmNsdWRlL3VhcGkvYXNtL2t2bS5oPTk2PXN0cnVjdCBrdm1fczM5MF9wc3cge1xuLS1cbnRvb2xzL2FyY2gvczM5MC9pbmNsdWRlL3VhcGkvYXNtL2t2bS5oLTEwNy0jZGVmaW5lIEtWTV9TMzkwX0lOVF9QRkFVTFRfRE9ORVx0MHhmZmZlMDAwNXVcbnRvb2xzL2FyY2gvczM5MC9pbmNsdWRlL3VhcGkvYXNtL2t2bS5oOjEwODojZGVmaW5lIEtWTV9TMzkwX01DSEtcdFx0XHQweGZmZmUxMDAwdVxudG9vbHMvYXJjaC9zMzkwL2luY2x1ZGUvdWFwaS9hc20va3ZtLmgtMTA5LSNkZWZpbmUgS1ZNX1MzOTBfSU5UX0NMT0NLX0NPTVBcdFx0MHhmZmZmMTAwNHVcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD45LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNiAxNDozNTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA4OTg0CgkJCQkJCQlvdXRwdXQ6IDI0CgkJCQkJCQl0aG91Z2h0czogMjg1CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgS1ZNIHMzOTB4IE1hY2hpbmUgQ2hlY2sgUGF0Y2gqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggYW5kIGl0JiMzOTtzIG1ha2luZyBhIHNwZWNpZmljIGNoYW5nZSBpbiBga3ZtX3MzOTBfcmVpbmplY3RfbWFjaGluZV9jaGVja2AuIEVzc2VudGlhbGx5LCBpdCYjMzk7cyBlbnN1cmluZyB0aGUgbWFjaGluZSBjaGVjayBnZXRzIGluamVjdGVkIGRpcmVjdGx5IHRvIHRoZSBpbnRlbmRlZCB2Q1BVLCByYXRoZXIgdGhhbiBwb3RlbnRpYWxseSBmbG9hdGluZyB0byB0aGUgZW50aXJlIFZNLiBNYWtlcyBzZW5zZSwgdGhhdCYjMzk7cyBkZWZpbml0ZWx5IG1vcmUgcHJlY2lzZS4gSXQgbG9va3MgbGlrZSBpdCBhbHNvIGFkZHMgYE1DQ0tfQ09ERV9DS2AgdG8gYE1DQ0tfQ09ERV9OT19HVUVTVGAgYW5kIGBzMzkwX2JhY2t1cF9tY2NrX2luZm9gLiBMZXQgbWUgY2hlY2suLi4gYE1DQ0tfQ09ERV9DS2AgaXMgZGVmaW5lZCB1c2luZyBhIGJpdCBzaGlmdCwgdGhhdCYjMzk7cyBzdHJhaWdodGZvcndhcmQgZW5vdWdoLgoKRnVuY3Rpb25hbGx5LCBJIHRoaW5rIHRoaXMgaXMgc291bmQuIEJ1dCB0aGUgcXVlc3Rpb24gaXM6IGNhbiB3ZSBmdXp6IGl0PyBJIGtub3cgc3l6a2FsbGVyIGNhbiB0cmlnZ2VyIEtWTSBtYWNoaW5lIGNoZWNrcywgb3IgYXQgbGVhc3QgcnVuIEtWTSBndWVzdHMgb24gczM5MHguIE15IGluaXRpYWwgdGhvdWdodCBpcyB0byB0YXJnZXQgYGt2bV9zMzkwX3JlaW5qZWN0X21hY2hpbmVfY2hlY2tgIGFuZCBgczM5MF9iYWNrdXBfbWNja19pbmZvYC4KCldhaXQgYSBzZWNvbmTigKYgYHMzOTBfYmFja3VwX21jY2tfaW5mb2AgaXMgKnN0YXRpYyogYW5kIG1hcmtlZCBhcyBgbm90cmFjZWAhIEFuZCBpdCYjMzk7cyBjYWxsZWQgZnJvbSBgczM5MF9kb19tYWNoaW5lX2NoZWNrYC4gVGhhdCBjaGFuZ2VzIHRoaW5ncyBhIGJpdC4gT2theSwgYmFjayB0byB0aGUgZ2xvYmFsIGZ1bmN0aW9uOiBga3ZtX3MzOTBfcmVpbmplY3RfbWFjaGluZV9jaGVja2Agd2hpY2ggaXMgY2FsbGVkIGZyb20gYHZjcHVfcG9zdF9ydW5gIGFuZCBgZG9fdnNpZV9ydW5gLgoKT2theSwgSSBuZWVkIHRvIHRha2UgYSBjbG9zZXIgbG9vayBhdCBgczM5MF9kb19tYWNoaW5lX2NoZWNrYC4gTGV0JiMzOTtzIHNlZSB3aGF0JiMzOTtzIGdvaW5nIG9uIHRoZXJlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNiAxNDozNjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtzMzkwX2RvX21hY2hpbmVfY2hlY2smIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7YXJjaC9zMzkwL2luY2x1ZGUvYXNtL25taS5oPTEwNT12b2lkIHMzOTBfaGFuZGxlX21jY2sodm9pZCk7XG5hcmNoL3MzOTAvaW5jbHVkZS9hc20vbm1pLmg6MTA2OnZvaWQgczM5MF9kb19tYWNoaW5lX2NoZWNrKHN0cnVjdCBwdF9yZWdzICpyZWdzKTtcbmFyY2gvczM5MC9pbmNsdWRlL2FzbS9ubWkuaC0xMDctXG4tLVxuYXJjaC9zMzkwL2tlcm5lbC9lbnRyeS5TPTQ1MD1TWU1fQ09ERV9TVEFSVChtY2NrX2ludF9oYW5kbGVyKVxuLS1cbmFyY2gvczM5MC9rZXJuZWwvZW50cnkuUy01MTUtXHRsZ3JcdCVyMiwlcjExXHRcdCMgcGFzcyBwb2ludGVyIHRvIHB0X3JlZ3NcbmFyY2gvczM5MC9rZXJuZWwvZW50cnkuUzo1MTY6XHRicmFzbFx0JXIxNCxzMzkwX2RvX21hY2hpbmVfY2hlY2tcbmFyY2gvczM5MC9rZXJuZWwvZW50cnkuUy01MTctXHRsbWdcdCVyMCwlcjEwLF9fUFRfUjAoJXIxMSlcbi0tXG5hcmNoL3MzOTAva2VybmVsL25taS5jPTM1Mj1OT0tQUk9CRV9TWU1CT0woczM5MF9iYWNrdXBfbWNja19pbmZvKTtcbi0tXG5hcmNoL3MzOTAva2VybmVsL25taS5jLTM2NC0gKi9cbmFyY2gvczM5MC9rZXJuZWwvbm1pLmM6MzY1OnZvaWQgbm90cmFjZSBzMzkwX2RvX21hY2hpbmVfY2hlY2soc3RydWN0IHB0X3JlZ3MgKnJlZ3MpXG5hcmNoL3MzOTAva2VybmVsL25taS5jLTM2Ni17XG4tLVxuYXJjaC9zMzkwL2tlcm5lbC9ubWkuYy01MDQtfVxuYXJjaC9zMzkwL2tlcm5lbC9ubWkuYzo1MDU6Tk9LUFJPQkVfU1lNQk9MKHMzOTBfZG9fbWFjaGluZV9jaGVjayk7XG5hcmNoL3MzOTAva2VybmVsL25taS5jLTUwNi1cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDYgMTQ6MzY8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTAxMjAKCQkJCQkJCW91dHB1dDogMTcKCQkJCQkJCXRob3VnaHRzOiAxMzMKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqTWFjaGluZSBDaGVjayBIYW5kbGVyIEludmVzdGlnYXRpb24qKgoKT2theSwgc28gSSYjMzk7bSBkaXZpbmcgaW50byB0aGlzIGBzMzkwX2RvX21hY2hpbmVfY2hlY2tgIHJvdXRpbmUuIEl0IGxvb2tzIGxpa2UgdGhlIGNvcmUgbWFjaGluZSBjaGVjayBoYW5kbGVyLCBjYWxsZWQgZnJvbSBgbWNja19pbnRfaGFuZGxlcmAgaW4gYGVudHJ5LlNgLiBUaGUga2V5IHF1ZXN0aW9uIGlzIHdoZXRoZXIgSSBjYW4gZWZmZWN0aXZlbHkgZnV6eiBga3ZtX3MzOTBfcmVpbmplY3RfbWFjaGluZV9jaGVja2AuIEl0IHNlZW1zIHRoYXQmIzM5O3MgdGhlIHBhdGggdGFrZW4gd2hlbiBhIEtWTSBndWVzdCBleGl0cyB3aXRoIGEgbWFjaGluZSBjaGVjay4gVGhhdCYjMzk7cyBnb29kLCB0aGF0JiMzOTtzIGV4YWN0bHkgd2hlcmUgSSBuZWVkIHRvIGJlIGZvY3VzZWQuIE5vdywgSSYjMzk7bSB0aGlua2luZyBhYm91dCBwcmUtcmVxdWlzaXRlcy4gSSBrbm93IHRoYXQgYENPTkZJR19LVk1gIGlzIGRlZmluaXRlbHkgYSByZXF1aXJlbWVudCBmb3IgYGt2bV9zMzkwX3JlaW5qZWN0X21hY2hpbmVfY2hlY2tgIHRvIGV2ZW4gYmUgY29uc2lkZXJlZC4gSSBzaG91bGQgbWFrZSBzdXJlIHRoYXQmIzM5O3Mgc2V0LiBJIGFsc28gc2hvdWxkIGRvdWJsZS1jaGVjayB0aGUgS2NvbmZpZyBmaWxlcywgc3BlY2lmaWNhbGx5IGluIGBhcmNoL3MzOTAva3ZtL0tjb25maWdgIHRvIHNlZSBpZiB0aGVyZSBhcmUgYW55IG90aGVyIHJlbGV2YW50IGNvbmZpZ3VyYXRpb25zIG9yIGRlcGVuZGVuY2llcyBJIHNob3VsZCBrbm93IGFib3V0LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEyLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNiAxNDozNjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtjb25maWcgS1ZNJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2FyY2gvYXJtNjQva3ZtL0tjb25maWc9MTg9aWYgVklSVFVBTElaQVRJT05cbmFyY2gvYXJtNjQva3ZtL0tjb25maWctMTktXG5hcmNoL2FybTY0L2t2bS9LY29uZmlnOjIwOm1lbnVjb25maWcgS1ZNXG5hcmNoL2FybTY0L2t2bS9LY29uZmlnLTIxLVx0Ym9vbCBcJiMzNDtLZXJuZWwtYmFzZWQgVmlydHVhbCBNYWNoaW5lIChLVk0pIHN1cHBvcnRcJiMzNDtcbi0tXG5hcmNoL2xvb25nYXJjaC9rdm0vS2NvbmZpZz0xOD1pZiBWSVJUVUFMSVpBVElPTlxuYXJjaC9sb29uZ2FyY2gva3ZtL0tjb25maWctMTktXG5hcmNoL2xvb25nYXJjaC9rdm0vS2NvbmZpZzoyMDpjb25maWcgS1ZNXG5hcmNoL2xvb25nYXJjaC9rdm0vS2NvbmZpZy0yMS1cdHRyaXN0YXRlIFwmIzM0O0tlcm5lbC1iYXNlZCBWaXJ0dWFsIE1hY2hpbmUgKEtWTSkgc3VwcG9ydFwmIzM0O1xuLS1cbmFyY2gvbWlwcy9rdm0vS2NvbmZpZz0xNj1pZiBWSVJUVUFMSVpBVElPTlxuYXJjaC9taXBzL2t2bS9LY29uZmlnLTE3LVxuYXJjaC9taXBzL2t2bS9LY29uZmlnOjE4OmNvbmZpZyBLVk1cbmFyY2gvbWlwcy9rdm0vS2NvbmZpZy0xOS1cdHRyaXN0YXRlIFwmIzM0O0tlcm5lbC1iYXNlZCBWaXJ0dWFsIE1hY2hpbmUgKEtWTSkgc3VwcG9ydFwmIzM0O1xuLS1cbmFyY2gvbWlwcy9rdm0vS2NvbmZpZy0zMC1cbmFyY2gvbWlwcy9rdm0vS2NvbmZpZzozMTpjb25maWcgS1ZNX01JUFNfREVCVUdfQ09QMF9DT1VOVEVSU1xuYXJjaC9taXBzL2t2bS9LY29uZmlnLTMyLVx0Ym9vbCBcJiMzNDtNYWludGFpbiBjb3VudGVycyBmb3IgQ09QMCBhY2Nlc3Nlc1wmIzM0O1xuLS1cbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZz0xOD1pZiBWSVJUVUFMSVpBVElPTlxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTE5LVxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnOjIwOmNvbmZpZyBLVk1cbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0yMS1cdGJvb2xcbi0tXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMjUtXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWc6MjY6Y29uZmlnIEtWTV9CT09LM1NfSEFORExFUlxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTI3LVx0Ym9vbFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTI4LVxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnOjI5OmNvbmZpZyBLVk1fQk9PSzNTXzMyX0hBTkRMRVJcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0zMC1cdGJvb2xcbi0tXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMzMtXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWc6MzQ6Y29uZmlnIEtWTV9CT09LM1NfNjRfSEFORExFUlxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTM1LVx0Ym9vbFxuLS1cbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0zNy1cbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZzozODpjb25maWcgS1ZNX0JPT0szU19QUl9QT1NTSUJMRVxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTM5LVx0Ym9vbFxuLS1cbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy00MS1cbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZzo0Mjpjb25maWcgS1ZNX0JPT0szU19IVl9QT1NTSUJMRVxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTQzLVx0Ym9vbFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTQ0LVxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnOjQ1OmNvbmZpZyBLVk1fQk9PSzNTXzMyXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctNDYtXHR0cmlzdGF0ZSBcJiMzNDtLVk0gc3VwcG9ydCBmb3IgUG93ZXJQQyBib29rM3NfMzIgcHJvY2Vzc29yc1wmIzM0O1xuLS1cbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy02MS1cbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZzo2Mjpjb25maWcgS1ZNX0JPT0szU182NFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTYzLVx0dHJpc3RhdGUgXCYjMzQ7S1ZNIHN1cHBvcnQgZm9yIFBvd2VyUEMgYm9vazNzXzY0IHByb2Nlc3NvcnNcJiMzNDtcbi0tXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctNzgtXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWc6Nzk6Y29uZmlnIEtWTV9CT09LM1NfNjRfSFZcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy04MC1cdHRyaXN0YXRlIFwmIzM0O0tWTSBmb3IgUE9XRVI3IGFuZCBsYXRlciB1c2luZyBoeXBlcnZpc29yIG1vZGUgaW4gaG9zdFwmIzM0O1xuLS1cbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy05OS1cbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZzoxMDA6Y29uZmlnIEtWTV9CT09LM1NfNjRfUFJcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0xMDEtXHR0cmlzdGF0ZSBcJiMzNDtLVk0gc3VwcG9ydCB3aXRob3V0IHVzaW5nIGh5cGVydmlzb3IgbW9kZSBpbiBob3N0XCYjMzQ7XG4tLVxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTEyNS1cbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZzoxMjY6Y29uZmlnIEtWTV9CT09LM1NfSFZfRVhJVF9USU1JTkdcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0xMjctXHRib29sXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMTI4LVxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnOjEyOTpjb25maWcgS1ZNX0JPT0szU19IVl9QOV9USU1JTkdcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0xMzAtXHRib29sIFwmIzM0O0RldGFpbGVkIHRpbWluZyBmb3IgdGhlIFA5IGVudHJ5IHBvaW50XCYjMzQ7XG4tLVxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTE0MS1cbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZzoxNDI6Y29uZmlnIEtWTV9CT09LM1NfSFZfUDhfVElNSU5HXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMTQzLVx0Ym9vbCBcJiMzNDtEZXRhaWxlZCB0aW1pbmcgZm9yIGh5cGVydmlzb3IgcmVhbC1tb2RlIGNvZGUgKGZvciBQT1dFUjgpXCYjMzQ7XG4tLVxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTE1Ni1cbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZzoxNTc6Y29uZmlnIEtWTV9CT09LM1NfSFZfTkVTVEVEX1BNVV9XT1JLQVJPVU5EXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMTU4LVx0Ym9vbCBcJiMzNDtOZXN0ZWQgTDAgaG9zdCB3b3JrYXJvdW5kIGZvciBMMSBLVk0gaG9zdCBQTVUgaGFuZGxpbmcgYnVnXCYjMzQ7IGlmIEVYUEVSVFxuLS1cbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0xNzEtXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWc6MTcyOmNvbmZpZyBLVk1fQk9PSzNTX0hWX1BNVVxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTE3My1cdHRyaXN0YXRlIFwmIzM0O0h5cGVydmlzb3IgUGVyZiBldmVudHMgZm9yIEtWTSBCb29rM3MtSFZcJiMzNDtcbi0tXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMTgzLVxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnOjE4NDpjb25maWcgS1ZNX0JPT0tFX0hWXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMTg1LVx0Ym9vbFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTE4Ni1cbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZzoxODc6Y29uZmlnIEtWTV9FWElUX1RJTUlOR1xuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTE4OC1cdGJvb2wgXCYjMzQ7RGV0YWlsZWQgZXhpdCB0aW1pbmdcJiMzNDtcbi0tXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMTk3LVxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnOjE5ODpjb25maWcgS1ZNX0U1MDBWMlxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTE5OS1cdGJvb2wgXCYjMzQ7S1ZNIHN1cHBvcnQgZm9yIFBvd2VyUEMgRTUwMHYyIHByb2Nlc3NvcnNcJiMzNDtcbi0tXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMjEyLVxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnOjIxMzpjb25maWcgS1ZNX0U1MDBNQ1xuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTIxNC1cdGJvb2wgXCYjMzQ7S1ZNIHN1cHBvcnQgZm9yIFBvd2VyUEMgRTUwME1DL0U1NTAwL0U2NTAwIHByb2Nlc3NvcnNcJiMzNDtcbi0tXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMjI4LVxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnOjIyOTpjb25maWcgS1ZNX01QSUNcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0yMzAtXHRib29sIFwmIzM0O0tWTSBpbi1rZXJuZWwgTVBJQyBlbXVsYXRpb25cJiMzNDtcbi0tXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMjQwLVxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnOjI0MTpjb25maWcgS1ZNX1hJQ1NcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0yNDItXHRib29sIFwmIzM0O0tWTSBpbi1rZXJuZWwgWElDUyBlbXVsYXRpb25cJiMzNDtcbi0tXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMjUwLVxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnOjI1MTpjb25maWcgS1ZNX1hJVkVcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0yNTItXHRib29sXG4tLVxuYXJjaC9wb3dlcnBjL3BsYXRmb3Jtcy9LY29uZmlnPTIyPXNvdXJjZSBcJiMzNDthcmNoL3Bvd2VycGMvcGxhdGZvcm1zL21pY3Jvd2F0dC9LY29uZmlnXCYjMzQ7XG5hcmNoL3Bvd2VycGMvcGxhdGZvcm1zL0tjb25maWctMjMtXG5hcmNoL3Bvd2VycGMvcGxhdGZvcm1zL0tjb25maWc6MjQ6Y29uZmlnIEtWTV9HVUVTVFxuYXJjaC9wb3dlcnBjL3BsYXRmb3Jtcy9LY29uZmlnLTI1LVx0Ym9vbCBcJiMzNDtLVk0gR3Vlc3Qgc3VwcG9ydFwmIzM0O1xuLS1cbmFyY2gvcmlzY3Yva3ZtL0tjb25maWc9MTg9aWYgVklSVFVBTElaQVRJT05cbmFyY2gvcmlzY3Yva3ZtL0tjb25maWctMTktXG5hcmNoL3Jpc2N2L2t2bS9LY29uZmlnOjIwOmNvbmZpZyBLVk1cbmFyY2gvcmlzY3Yva3ZtL0tjb25maWctMjEtXHR0cmlzdGF0ZSBcJiMzNDtLZXJuZWwtYmFzZWQgVmlydHVhbCBNYWNoaW5lIChLVk0pIHN1cHBvcnRcJiMzNDtcbi0tXG5hcmNoL3MzOTAva3ZtL0tjb25maWc9MTc9aWYgVklSVFVBTElaQVRJT05cbmFyY2gvczM5MC9rdm0vS2NvbmZpZy0xOC1cbmFyY2gvczM5MC9rdm0vS2NvbmZpZzoxOTpjb25maWcgS1ZNXG5hcmNoL3MzOTAva3ZtL0tjb25maWctMjAtXHRkZWZfdHJpc3RhdGUgeVxuLS1cbmFyY2gvczM5MC9rdm0vS2NvbmZpZy00Ni1cbmFyY2gvczM5MC9rdm0vS2NvbmZpZzo0Nzpjb25maWcgS1ZNX1MzOTBfVUNPTlRST0xcbmFyY2gvczM5MC9rdm0vS2NvbmZpZy00OC1cdGJvb2wgXCYjMzQ7VXNlcnNwYWNlIGNvbnRyb2xsZWQgdmlydHVhbCBtYWNoaW5lc1wmIzM0O1xuLS1cbmFyY2gveDg2L0tjb25maWc9ODI2PXNvdXJjZSBcJiMzNDthcmNoL3g4Ni94ZW4vS2NvbmZpZ1wmIzM0O1xuYXJjaC94ODYvS2NvbmZpZy04MjctXG5hcmNoL3g4Ni9LY29uZmlnOjgyODpjb25maWcgS1ZNX0dVRVNUXG5hcmNoL3g4Ni9LY29uZmlnLTgyOS1cdGJvb2wgXCYjMzQ7S1ZNIEd1ZXN0IHN1cHBvcnQgKGluY2x1ZGluZyBrdm1jbG9jaylcJiMzNDtcbi0tXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZz0xOD1pZiBWSVJUVUFMSVpBVElPTlxuYXJjaC94ODYva3ZtL0tjb25maWctMTktXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZzoyMDpjb25maWcgS1ZNX1g4NlxuYXJjaC94ODYva3ZtL0tjb25maWctMjEtXHRkZWZfdHJpc3RhdGUgS1ZNIGlmIChLVk1fSU5URUwgIT0gbiB8fCBLVk1fQU1EICE9IG4pXG4tLVxuYXJjaC94ODYva3ZtL0tjb25maWctNTEtXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZzo1Mjpjb25maWcgS1ZNXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy01My1cdHRyaXN0YXRlIFwmIzM0O0tlcm5lbC1iYXNlZCBWaXJ0dWFsIE1hY2hpbmUgKEtWTSkgc3VwcG9ydFwmIzM0O1xuLS1cbmFyY2gveDg2L2t2bS9LY29uZmlnLTY4LVxuYXJjaC94ODYva3ZtL0tjb25maWc6Njk6Y29uZmlnIEtWTV9XRVJST1JcbmFyY2gveDg2L2t2bS9LY29uZmlnLTcwLVx0Ym9vbCBcJiMzNDtDb21waWxlIEtWTSB3aXRoIC1XZXJyb3JcJiMzNDtcbi0tXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy04Mi1cbmFyY2gveDg2L2t2bS9LY29uZmlnOjgzOmNvbmZpZyBLVk1fU1dfUFJPVEVDVEVEX1ZNXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy04NC1cdGJvb2wgXCYjMzQ7RW5hYmxlIHN1cHBvcnQgZm9yIEtWTSBzb2Z0d2FyZS1wcm90ZWN0ZWQgVk1zXCYjMzQ7XG4tLVxuYXJjaC94ODYva3ZtL0tjb25maWctOTUtXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZzo5Njpjb25maWcgS1ZNX0lOVEVMXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy05Ny1cdHRyaXN0YXRlIFwmIzM0O0tWTSBmb3IgSW50ZWwgKGFuZCBjb21wYXRpYmxlKSBwcm9jZXNzb3JzIHN1cHBvcnRcJiMzNDtcbi0tXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0xMDYtXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZzoxMDc6Y29uZmlnIEtWTV9JTlRFTF9QUk9WRV9WRVxuYXJjaC94ODYva3ZtL0tjb25maWctMTA4LSAgICAgICAgYm9vbCBcJiMzNDtDaGVjayB0aGF0IGd1ZXN0cyBkbyBub3QgcmVjZWl2ZSAjVkUgZXhjZXB0aW9uc1wmIzM0O1xuLS1cbmFyY2gveDg2L2t2bS9LY29uZmlnPTEyMj1jb25maWcgWDg2X1NHWF9LVk1cbi0tXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0xMzMtXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZzoxMzQ6Y29uZmlnIEtWTV9JTlRFTF9URFhcbmFyY2gveDg2L2t2bS9LY29uZmlnLTEzNS1cdGJvb2wgXCYjMzQ7SW50ZWwgVHJ1c3QgRG9tYWluIEV4dGVuc2lvbnMgKFREWCkgc3VwcG9ydFwmIzM0O1xuLS1cbmFyY2gveDg2L2t2bS9LY29uZmlnLTE0NS1cbmFyY2gveDg2L2t2bS9LY29uZmlnOjE0Njpjb25maWcgS1ZNX0FNRFxuYXJjaC94ODYva3ZtL0tjb25maWctMTQ3LVx0dHJpc3RhdGUgXCYjMzQ7S1ZNIGZvciBBTUQgcHJvY2Vzc29ycyBzdXBwb3J0XCYjMzQ7XG4tLVxuYXJjaC94ODYva3ZtL0tjb25maWctMTU1LVxuYXJjaC94ODYva3ZtL0tjb25maWc6MTU2OmNvbmZpZyBLVk1fQU1EX1NFVlxuYXJjaC94ODYva3ZtL0tjb25maWctMTU3LVx0Ym9vbCBcJiMzNDtBTUQgU2VjdXJlIEVuY3J5cHRlZCBWaXJ0dWFsaXphdGlvbiAoU0VWKSBzdXBwb3J0XCYjMzQ7XG4tLVxuYXJjaC94ODYva3ZtL0tjb25maWctMTcxLVxuYXJjaC94ODYva3ZtL0tjb25maWc6MTcyOmNvbmZpZyBLVk1fSU9BUElDXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0xNzMtXHRib29sIFwmIzM0O0kvTyBBUElDLCBQSUMsIGFuZCBQSVQgZW11bGF0aW9uXCYjMzQ7XG4tLVxuYXJjaC94ODYva3ZtL0tjb25maWctMTgxLVxuYXJjaC94ODYva3ZtL0tjb25maWc6MTgyOmNvbmZpZyBLVk1fU01NXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0xODMtXHRib29sIFwmIzM0O1N5c3RlbSBNYW5hZ2VtZW50IE1vZGUgZW11bGF0aW9uXCYjMzQ7XG4tLVxuYXJjaC94ODYva3ZtL0tjb25maWctMTkyLVxuYXJjaC94ODYva3ZtL0tjb25maWc6MTkzOmNvbmZpZyBLVk1fSFlQRVJWXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0xOTQtXHRib29sIFwmIzM0O1N1cHBvcnQgZm9yIE1pY3Jvc29mdCBIeXBlci1WIGVtdWxhdGlvblwmIzM0O1xuLS1cbmFyY2gveDg2L2t2bS9LY29uZmlnLTIwNi1cbmFyY2gveDg2L2t2bS9LY29uZmlnOjIwNzpjb25maWcgS1ZNX1hFTlxuYXJjaC94ODYva3ZtL0tjb25maWctMjA4LVx0Ym9vbCBcJiMzNDtTdXBwb3J0IGZvciBYZW4gaHlwZXJjYWxsIGludGVyZmFjZVwmIzM0O1xuLS1cbmFyY2gveDg2L2t2bS9LY29uZmlnLTIxNS1cbmFyY2gveDg2L2t2bS9LY29uZmlnOjIxNjpjb25maWcgS1ZNX1BST1ZFX01NVVxuYXJjaC94ODYva3ZtL0tjb25maWctMjE3LVx0Ym9vbCBcJiMzNDtQcm92ZSBLVk0gTU1VIGNvcnJlY3RuZXNzXCYjMzQ7XG4tLVxuYXJjaC94ODYva3ZtL0tjb25maWctMjI4LVxuYXJjaC94ODYva3ZtL0tjb25maWc6MjI5OmNvbmZpZyBLVk1fRVhURVJOQUxfV1JJVEVfVFJBQ0tJTkdcbmFyY2gveDg2L2t2bS9LY29uZmlnLTIzMC1cdGJvb2xcbmFyY2gveDg2L2t2bS9LY29uZmlnLTIzMS1cbmFyY2gveDg2L2t2bS9LY29uZmlnOjIzMjpjb25maWcgS1ZNX01BWF9OUl9WQ1BVU1xuYXJjaC94ODYva3ZtL0tjb25maWctMjMzLVx0aW50IFwmIzM0O01heGltdW0gbnVtYmVyIG9mIHZDUFVzIHBlciBLVk0gZ3Vlc3RcJiMzNDtcbi0tXG52aXJ0L2t2bS9LY29uZmlnLTMtXG52aXJ0L2t2bS9LY29uZmlnOjQ6Y29uZmlnIEtWTV9DT01NT05cbnZpcnQva3ZtL0tjb25maWctNS0gICAgICAgYm9vbFxuLS1cbnZpcnQva3ZtL0tjb25maWc9Mzk9Y29uZmlnIE5FRURfS1ZNX0RJUlRZX1JJTkdfV0lUSF9CSVRNQVBcbi0tXG52aXJ0L2t2bS9LY29uZmlnLTQyLVxudmlydC9rdm0vS2NvbmZpZzo0Mzpjb25maWcgS1ZNX01NSU9cbnZpcnQva3ZtL0tjb25maWctNDQtICAgICAgIGJvb2xcbnZpcnQva3ZtL0tjb25maWctNDUtXG52aXJ0L2t2bS9LY29uZmlnOjQ2OmNvbmZpZyBLVk1fQVNZTkNfUEZcbnZpcnQva3ZtL0tjb25maWctNDctICAgICAgIGJvb2xcbi0tXG52aXJ0L2t2bS9LY29uZmlnLTQ5LSMgVG9nZ2xlIHRvIHN3aXRjaCBiZXR3ZWVuIGRpcmVjdCBub3RpZmljYXRpb24gYW5kIGJhdGNoIGpvYlxudmlydC9rdm0vS2NvbmZpZzo1MDpjb25maWcgS1ZNX0FTWU5DX1BGX1NZTkNcbnZpcnQva3ZtL0tjb25maWctNTEtICAgICAgIGJvb2xcbi0tXG52aXJ0L2t2bS9LY29uZmlnPTU5PWNvbmZpZyBIQVZFX0tWTV9DUFVfUkVMQVhfSU5URVJDRVBUXG4tLVxudmlydC9rdm0vS2NvbmZpZy02MS1cbnZpcnQva3ZtL0tjb25maWc6NjI6Y29uZmlnIEtWTV9WRklPXG52aXJ0L2t2bS9LY29uZmlnLTYzLSAgICAgICBib29sXG4tLVxudmlydC9rdm0vS2NvbmZpZz02NT1jb25maWcgSEFWRV9LVk1fSU5WQUxJRF9XQUtFVVBTXG4tLVxudmlydC9rdm0vS2NvbmZpZy02Ny1cbnZpcnQva3ZtL0tjb25maWc6Njg6Y29uZmlnIEtWTV9HRU5FUklDX0RJUlRZTE9HX1JFQURfUFJPVEVDVFxudmlydC9rdm0vS2NvbmZpZy02OS0gICAgICAgYm9vbFxudmlydC9rdm0vS2NvbmZpZy03MC1cbnZpcnQva3ZtL0tjb25maWc6NzE6Y29uZmlnIEtWTV9HRU5FUklDX1BSRV9GQVVMVF9NRU1PUllcbnZpcnQva3ZtL0tjb25maWctNzItICAgICAgIGJvb2xcbnZpcnQva3ZtL0tjb25maWctNzMtXG52aXJ0L2t2bS9LY29uZmlnOjc0OmNvbmZpZyBLVk1fQ09NUEFUXG52aXJ0L2t2bS9LY29uZmlnLTc1LSAgICAgICBkZWZfYm9vbCB5XG4tLVxudmlydC9rdm0vS2NvbmZpZz05MT1jb25maWcgSEFWRV9LVk1fUE1fTk9USUZJRVJcbi0tXG52aXJ0L2t2bS9LY29uZmlnLTkzLVxudmlydC9rdm0vS2NvbmZpZzo5NDpjb25maWcgS1ZNX0dFTkVSSUNfSEFSRFdBUkVfRU5BQkxJTkdcbnZpcnQva3ZtL0tjb25maWctOTUtICAgICAgIGJvb2xcbnZpcnQva3ZtL0tjb25maWctOTYtXG52aXJ0L2t2bS9LY29uZmlnOjk3OmNvbmZpZyBLVk1fRUxJREVfVExCX0ZMVVNIX0lGX1lPVU5HXG52aXJ0L2t2bS9LY29uZmlnLTk4LSAgICAgICBib29sXG52aXJ0L2t2bS9LY29uZmlnLTk5LVxudmlydC9rdm0vS2NvbmZpZzoxMDA6Y29uZmlnIEtWTV9NTVVfTE9DS0xFU1NfQUdJTkdcbnZpcnQva3ZtL0tjb25maWctMTAxLSAgICAgICBib29sXG52aXJ0L2t2bS9LY29uZmlnLTEwMi1cbnZpcnQva3ZtL0tjb25maWc6MTAzOmNvbmZpZyBLVk1fR0VORVJJQ19NRU1PUllfQVRUUklCVVRFU1xudmlydC9rdm0vS2NvbmZpZy0xMDQtICAgICAgIGJvb2xcbnZpcnQva3ZtL0tjb25maWctMTA1LVxudmlydC9rdm0vS2NvbmZpZzoxMDY6Y29uZmlnIEtWTV9HVUVTVF9NRU1GRFxudmlydC9rdm0vS2NvbmZpZy0xMDctICAgICAgIHNlbGVjdCBYQVJSQVlfTVVMVElcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMy8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDYgMTQ6MzY8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTQ3NzQKCQkJCQkJCW91dHB1dDogMTUyCgkJCQkJCQl0aG91Z2h0czogNTEwCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5c2lzIG9mIEtWTSBTMzkwIE1hY2hpbmUgQ2hlY2sgSGFuZGxpbmcgZm9yIEZ1enppbmcqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggdGFyZ2V0aW5nIHRoZSBgS1ZNYCBjb25maWd1cmF0aW9uLiBJdCBhcHBlYXJzIHRvIG1vZGlmeSB0aGUgZnVuY3Rpb25zIGBrdm1fczM5MF9yZWluamVjdF9tYWNoaW5lX2NoZWNrYCBhbmQgYHMzOTBfYmFja3VwX21jY2tfaW5mb2AuIE15IGluaXRpYWwgdGhvdWdodCBpcyB0aGF0IGJvdGggYXJlIGZ1bmN0aW9uYWwgY2hhbmdlcywgYW5kIEkgbmVlZCB0byBkZXRlcm1pbmUgdGhlIGJlc3QgYXBwcm9hY2ggZm9yIGZ1enppbmcgdGhlbS4KCmBrdm1fczM5MF9yZWluamVjdF9tYWNoaW5lX2NoZWNrYCBnZXRzIGNhbGxlZCBmcm9tIGB2Y3B1X3Bvc3RfcnVuYCBhbmQgYGRvX3ZzaWVfcnVuYCwgd2hpY2ggYXJlIGtleSBwYXJ0cyBvZiBLVk0gZXhlY3V0aW9uLiBgczM5MF9iYWNrdXBfbWNja19pbmZvYCwgb24gdGhlIG90aGVyIGhhbmQsIGlzIGNhbGxlZCBmcm9tIGBzMzkwX2RvX21hY2hpbmVfY2hlY2tgLCB0aGUgbWFjaGluZSBjaGVjayAqaGFuZGxlciouCgpNeSBmaXJzdCBpbnN0aW5jdCBpcyB0byBzZXQgYFdvcnRoRnV6emluZz10cnVlYC4gTm93LCBmb3IgZm9jdXMgc3ltYm9scywgb3JpZ2luYWxseSBJIHdhcyBnb2luZyB0byBsaXN0IGJvdGguIE15IHRoaW5raW5nIHdhcywgSSYjMzk7ZCBpbmNsdWRlIGBrdm1fczM5MF9yZWluamVjdF9tYWNoaW5lX2NoZWNrYCwgYW5kIGxpc3QgYHMzOTBfYmFja3VwX21jY2tfaW5mb2AgYXMgd2VsbCwgZXZlbiBpZiBpdCYjMzk7cyBzdGF0aWMgYW5kIG5vdCBpbnN0cnVtZW50ZWQuIEJ1dCB0aGVuIEkgcmVtZW1iZXJlZCB0aGF0IHRoZSBwcm9tcHQgc2F5cyB0byBwcmVmZXIgbm9uLXN0YXRpYywgbm9uLWlubGluZWQgQVBJIGVudHJ5cG9pbnQgZnVuY3Rpb25zLgoKSSBuZWVkIHRvIHJlLWV2YWx1YXRlIHdoYXQmIzM5O3MgYSBzdWl0YWJsZSBmb2N1cyBzeW1ib2wuIGBzMzkwX2JhY2t1cF9tY2NrX2luZm9gICppcyogc3RhdGljLCBzbyB0aGF0JiMzOTtzIG91dC4gSG93ZXZlciwgYHMzOTBfZG9fbWFjaGluZV9jaGVja2AgaXMgdGhlIGFjdHVhbCBlbnRyeSBwb2ludCBmb3IgYHMzOTBfYmFja3VwX21jY2tfaW5mb2AsIHNvIGl0JiMzOTtzIGEgZ29vZCBjYW5kaWRhdGUsIGJ1dCBpdCYjMzk7cyB0aGUgbWFjaGluZSBjaGVjayBoYW5kbGVyIGl0c2VsZi4gTXkgZ3V0IHNheXMgaXQgbWlnaHQgYmUgdG91Z2ggdG8gdHJpZ2dlciB0aGF0IGRpcmVjdGx5IGZyb20gYSBmdXp6ZXIgdW5sZXNzIGl0IGNhbiBpbmplY3QgbWFjaGluZSBjaGVja3MsIHNvIHRoZSBiZXN0IGJldCBpcyBwcm9iYWJseSB0byB0YXJnZXQgYGt2bV9zMzkwX3JlaW5qZWN0X21hY2hpbmVfY2hlY2tgIGluc3RlYWQuCgpXYWl0IGEgc2Vjb25kLi4uIGl0IGxvb2tzIGxpa2UgYGt2bV9zMzkwX3JlaW5qZWN0X21hY2hpbmVfY2hlY2tgIGlzIGNhbGxlZCB3aGVuIGBzaWVfcmV0dXJuYCBlcXVhbHMgYFNJRTY0X1JFVFVSTl9NQ0NLYC4gVGhhdCBtZWFucyB0aGlzIGlzIGNhbGxlZCB3aGVuIHRoZSBTSUUgaW5zdHJ1Y3Rpb24g4oCTIHRoZSBpbnN0cnVjdGlvbiB0aGF0ICpydW5zKiB0aGUgZ3Vlc3Qg4oCTIGV4aXRzIGR1ZSB0byBhIG1hY2hpbmUgY2hlY2suIE9rYXksIHRoYXQgY2hhbmdlcyB0aGluZ3MhIFRoYXQgbWVhbnMgdGhlIGZ1enplciAqY2FuKiBkZWZpbml0ZWx5IHRyaWdnZXIgdGhpcyBieSBlaXRoZXIgcnVubmluZyBhIGd1ZXN0IHRoYXQgaXRzZWxmIGNhdXNlcyBhIG1hY2hpbmUgY2hlY2ssIG9yIGlmIHRoZSBob3N0IGV4cGVyaWVuY2VzIGEgbWFjaGluZSBjaGVjayB3aGlsZSBydW5uaW5nIHRoZSBndWVzdC4gU28sIEkgY2FuIG1ha2UgdGhlIGZ1enplciB0YXJnZXQgdGhhdC4gVGhpcyBzaW1wbGlmaWVzIHRoaW5ncy4KClRoZXJlZm9yZSwgZm9yIGZvY3VzIHN5bWJvbHMsIEkmIzM5O2xsIGxpc3QgYGt2bV9zMzkwX3JlaW5qZWN0X21hY2hpbmVfY2hlY2tgLCBrbm93aW5nIGl0JiMzOTtzIHJlYWNoYWJsZSB0aHJvdWdoIHRoZSBndWVzdCBvciBob3N0IHRyaWdnZXJpbmcgYSBtYWNoaW5lIGNoZWNrLgoKVGhlIGltcG9ydGFudCBjb25maWcgaXMgYEtWTWAuIEkmIzM5O20gcmVhZHkgdG8gd3JpdGUgdGhlIHJlc3BvbnNlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE0LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNiAxNDozNjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7S1ZNJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7a3ZtX3MzOTBfcmVpbmplY3RfbWFjaGluZV9jaGVjayYjMzQ7LAogICAgJiMzNDtzMzkwX2RvX21hY2hpbmVfY2hlY2smIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgaG93IG1hY2hpbmUgY2hlY2tzIGFyZSBoYW5kbGVkIGFuZCByZWluamVjdGVkIGludG8gS1ZNIGd1ZXN0cyBvbiBzMzkwLiBJdCBjaGFuZ2VzIGBrdm1fczM5MF9yZWluamVjdF9tYWNoaW5lX2NoZWNrYCB0byBhbHdheXMgaW5qZWN0IHRoZSBtYWNoaW5lIGNoZWNrIHRvIHRoZSBzcGVjaWZpYyB2Y3B1IHJhdGhlciB0aGFuIGFzIGEgZmxvYXRpbmcgbWFjaGluZSBjaGVjaywgYW5kIHVwZGF0ZXMgdGhlIGBNQ0NLX0NPREVfTk9fR1VFU1RgIG1hc2suIFRoZXNlIGFyZSBmdW5jdGlvbmFsIGNoYW5nZXMgaW4gcmVhY2hhYmxlIEtWTSBhbmQgYXJjaGl0ZWN0dXJlLXNwZWNpZmljIGNvZGUuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0tWTSYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2t2bV9zMzkwX3JlaW5qZWN0X21hY2hpbmVfY2hlY2smIzM0OywKICAgICYjMzQ7czM5MF9kb19tYWNoaW5lX2NoZWNrJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIGhvdyBtYWNoaW5lIGNoZWNrcyBhcmUgaGFuZGxlZCBhbmQgcmVpbmplY3RlZCBpbnRvIEtWTSBndWVzdHMgb24gczM5MC4gSXQgY2hhbmdlcyBga3ZtX3MzOTBfcmVpbmplY3RfbWFjaGluZV9jaGVja2AgdG8gYWx3YXlzIGluamVjdCB0aGUgbWFjaGluZSBjaGVjayB0byB0aGUgc3BlY2lmaWMgdmNwdSByYXRoZXIgdGhhbiBhcyBhIGZsb2F0aW5nIG1hY2hpbmUgY2hlY2ssIGFuZCB1cGRhdGVzIHRoZSBgTUNDS19DT0RFX05PX0dVRVNUYCBtYXNrLiBUaGVzZSBhcmUgZnVuY3Rpb25hbCBjaGFuZ2VzIGluIHJlYWNoYWJsZSBLVk0gYW5kIGFyY2hpdGVjdHVyZS1zcGVjaWZpYyBjb2RlLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTwvdGJvZHk+Cgk8L3RhYmxlPgoKCTxkaXYgaWQ9ImxsbV9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+TExNIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgVG9rZW5zPC90aD4KCQkJCQk8dGg+QXZnIFRva2VuczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJsbG1fc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJ0b29sX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5Ub29sIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9InRvb2xfc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJkdXJhdGlvbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+Cgk8ZGl2IGlkPSJ0b2tlbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+CgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9qc2FwaSI+PC9zY3JpcHQ+Cgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CgkJZ29vZ2xlLmxvYWQoInZpc3VhbGl6YXRpb24iLCAiMSIsIHtwYWNrYWdlczpbImNvcmVjaGFydCJdfSk7CgkJZ29vZ2xlLnNldE9uTG9hZENhbGxiYWNrKGRyYXdDaGFydHMpOwoKCQlmdW5jdGlvbiBkcmF3Q2hhcnRzKCkgewoJCQljb25zdCByYXdEYXRhID0gW3siU3RhcnRlZCI6IjIwMjYtMDgtMDZUMTQ6MzU6MzUuMjYwODkyMDY2WiIsIlNlcSI6MCwiTmVzdGluZyI6MCwiVHlwZSI6ImZsb3ciLCJOYW1lIjoicGF0Y2gtdHJpYWdlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDc1ODIyNzYxOTgsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiS1ZNXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwia3ZtX3MzOTBfcmVpbmplY3RfbWFjaGluZV9jaGVja1wiLFxuICAgIFwiczM5MF9kb19tYWNoaW5lX2NoZWNrXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgaG93IG1hY2hpbmUgY2hlY2tzIGFyZSBoYW5kbGVkIGFuZCByZWluamVjdGVkIGludG8gS1ZNIGd1ZXN0cyBvbiBzMzkwLiBJdCBjaGFuZ2VzIGBrdm1fczM5MF9yZWluamVjdF9tYWNoaW5lX2NoZWNrYCB0byBhbHdheXMgaW5qZWN0IHRoZSBtYWNoaW5lIGNoZWNrIHRvIHRoZSBzcGVjaWZpYyB2Y3B1IHJhdGhlciB0aGFuIGFzIGEgZmxvYXRpbmcgbWFjaGluZSBjaGVjaywgYW5kIHVwZGF0ZXMgdGhlIGBNQ0NLX0NPREVfTk9fR1VFU1RgIG1hc2suIFRoZXNlIGFyZSBmdW5jdGlvbmFsIGNoYW5nZXMgaW4gcmVhY2hhYmxlIEtWTSBhbmQgYXJjaGl0ZWN0dXJlLXNwZWNpZmljIGNvZGUuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA2VDE0OjM1OjM1LjI2MDkwMjU0NloiLCJTZXEiOjEsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoicmVhZC1wYXRjaC1kaWZmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NTQ2NTU3NjM0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJQYXRjaERpZmZcIjogXCJjb21taXQgOTQ0Nzk5MjkxZDcwYmZmNzk4YmFjZWUzYjMwYmQ1ZjgzZjBmNWIxMVxcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXFx1MDAzZVxcbkRhdGU6ICAgVGh1IEF1ZyA2IDE0OjM1OjM0IDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL2FyY2gvczM5MC9pbmNsdWRlL2FzbS9ubWkuaCBiL2FyY2gvczM5MC9pbmNsdWRlL2FzbS9ubWkuaFxcbmluZGV4IDY0NTRjMTUzMTg1NDQuLmRkMjZjMjBiZDIzMTAgMTAwNjQ0XFxuLS0tIGEvYXJjaC9zMzkwL2luY2x1ZGUvYXNtL25taS5oXFxuKysrIGIvYXJjaC9zMzkwL2luY2x1ZGUvYXNtL25taS5oXFxuQEAgLTIyLDYgKzIyLDcgQEBcXG4gI2RlZmluZSBNQ0NLX0NPREVfU1lTVEVNX0RBTUFHRVxcdFxcdEJJVCg2MylcXG4gI2RlZmluZSBNQ0NLX0NPREVfRVhUX0RBTUFHRVxcdFxcdEJJVCg2MyAtIDUpXFxuICNkZWZpbmUgTUNDS19DT0RFX0NQXFx0XFx0XFx0QklUKDYzIC0gOSlcXG4rI2RlZmluZSBNQ0NLX0NPREVfQ0tcXHRcXHRcXHRCSVQoNjMgLSAxMSlcXG4gI2RlZmluZSBNQ0NLX0NPREVfU1RHX0VSUk9SXFx0XFx0QklUKDYzIC0gMTYpXFxuICNkZWZpbmUgTUNDS19DT0RFX1NUR19LRVlfRVJST1JcXHRcXHRCSVQoNjMgLSAxOClcXG4gI2RlZmluZSBNQ0NLX0NPREVfU1RHX0RFR1JBRFxcdFxcdEJJVCg2MyAtIDE5KVxcbmRpZmYgLS1naXQgYS9hcmNoL3MzOTAva2VybmVsL25taS5jIGIvYXJjaC9zMzkwL2tlcm5lbC9ubWkuY1xcbmluZGV4IGUxN2E1OWQ0ZDVhNDEuLjY1MmI5ODc5NTI0MzYgMTAwNjQ0XFxuLS0tIGEvYXJjaC9zMzkwL2tlcm5lbC9ubWkuY1xcbisrKyBiL2FyY2gvczM5MC9rZXJuZWwvbm1pLmNcXG5AQCAtMzQ1LDcgKzM0NSw3IEBAIHN0YXRpYyB2b2lkIG5vdHJhY2UgczM5MF9iYWNrdXBfbWNja19pbmZvKHN0cnVjdCBwdF9yZWdzICpyZWdzKVxcbiBcXHRzaWVfcGFnZSA9IGNvbnRhaW5lcl9vZihzaWVfYmxvY2ssIHN0cnVjdCBzaWVfcGFnZSwgc2llX2Jsb2NrKTtcXG4gXFx0bWNja19iYWNrdXAgPSBcXHUwMDI2c2llX3BhZ2UtXFx1MDAzZW1jY2tfaW5mbztcXG4gXFx0bWNja19iYWNrdXAtXFx1MDAzZW1jaWMgPSBnZXRfbG93Y29yZSgpLVxcdTAwM2VtY2NrX2ludGVycnVwdGlvbl9jb2RlIFxcdTAwMjZcXG4tXFx0XFx0XFx0XFx0fihNQ0NLX0NPREVfQ1AgfCBNQ0NLX0NPREVfRVhUX0RBTUFHRSk7XFxuK1xcdFxcdFxcdH4oTUNDS19DT0RFX0NQIHwgTUNDS19DT0RFX0VYVF9EQU1BR0UgfCBNQ0NLX0NPREVfQ0spO1xcbiBcXHRtY2NrX2JhY2t1cC1cXHUwMDNlZXh0X2RhbWFnZV9jb2RlID0gZ2V0X2xvd2NvcmUoKS1cXHUwMDNlZXh0ZXJuYWxfZGFtYWdlX2NvZGU7XFxuIFxcdG1jY2tfYmFja3VwLVxcdTAwM2VmYWlsaW5nX3N0b3JhZ2VfYWRkcmVzcyA9IGdldF9sb3djb3JlKCktXFx1MDAzZWZhaWxpbmdfc3RvcmFnZV9hZGRyZXNzO1xcbiB9XFxuQEAgLTM1Nyw3ICszNTcsNyBAQCBOT0tQUk9CRV9TWU1CT0woczM5MF9iYWNrdXBfbWNja19pbmZvKTtcXG4gI2RlZmluZSBFRF9TVFBfSVNMQU5EXFx0NlxcdC8qIEV4dGVybmFsIGRhbWFnZSBTVFAgaXNsYW5kIGNoZWNrICovXFxuICNkZWZpbmUgRURfU1RQX1NZTkNcXHQ3XFx0LyogRXh0ZXJuYWwgZGFtYWdlIFNUUCBzeW5jIGNoZWNrICovXFxuIFxcbi0jZGVmaW5lIE1DQ0tfQ09ERV9OT19HVUVTVFxcdChNQ0NLX0NPREVfQ1AgfCBNQ0NLX0NPREVfRVhUX0RBTUFHRSlcXG4rI2RlZmluZSBNQ0NLX0NPREVfTk9fR1VFU1RcXHQoTUNDS19DT0RFX0NQIHwgTUNDS19DT0RFX0VYVF9EQU1BR0UgfCBNQ0NLX0NPREVfQ0spXFxuIFxcbiAvKlxcbiAgKiBtYWNoaW5lIGNoZWNrIGhhbmRsZXIuXFxuZGlmZiAtLWdpdCBhL2FyY2gvczM5MC9rdm0vaW50ZXJydXB0LmMgYi9hcmNoL3MzOTAva3ZtL2ludGVycnVwdC5jXFxuaW5kZXggNzUxNGQ5ZTI0MDNjMS4uMzM3NWE5NTY2MzdiZSAxMDA2NDRcXG4tLS0gYS9hcmNoL3MzOTAva3ZtL2ludGVycnVwdC5jXFxuKysrIGIvYXJjaC9zMzkwL2t2bS9pbnRlcnJ1cHQuY1xcbkBAIC0zMDk5LDkgKzMwOTksNyBAQCBzdGF0aWMgaW50IHNldF9hZGFwdGVyX2ludChzdHJ1Y3Qga3ZtX2tlcm5lbF9pcnFfcm91dGluZ19lbnRyeSAqZSxcXG4gdm9pZCBrdm1fczM5MF9yZWluamVjdF9tYWNoaW5lX2NoZWNrKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSxcXG4gXFx0XFx0XFx0XFx0ICAgICBzdHJ1Y3QgbWNja192b2xhdGlsZV9pbmZvICptY2NrX2luZm8pXFxuIHtcXG4tXFx0c3RydWN0IGt2bV9zMzkwX2ludGVycnVwdF9pbmZvIGludGk7XFxuLVxcdHN0cnVjdCBrdm1fczM5MF9pcnEgaXJxO1xcbi1cXHRzdHJ1Y3Qga3ZtX3MzOTBfbWNoa19pbmZvICptY2hrO1xcbitcXHRzdHJ1Y3Qga3ZtX3MzOTBfaXJxIGlycSA9IHt9O1xcbiBcXHR1bmlvbiBtY2kgbWNpO1xcbiBcXHRfX3U2NCBjcjE0ID0gMDsgICAgICAgICAvKiB1cHBlciBiaXRzIGFyZSBub3QgdXNlZCAqL1xcbiBcXHRpbnQgcmM7XFxuQEAgLTMxMjAsMjAgKzMxMTgsMTQgQEAgdm9pZCBrdm1fczM5MF9yZWluamVjdF9tYWNoaW5lX2NoZWNrKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSxcXG4gXFx0aWYgKG1jaS53KVxcbiBcXHRcXHRjcjE0IHw9IENSMTRfV0FSTklOR19TVUJNQVNLO1xcbiBcXG4tXFx0bWNoayA9IG1jaS5jayA/IFxcdTAwMjZpbnRpLm1jaGsgOiBcXHUwMDI2aXJxLnUubWNoaztcXG4tXFx0bWNoay1cXHUwMDNlY3IxNCA9IGNyMTQ7XFxuLVxcdG1jaGstXFx1MDAzZW1jaWMgPSBtY2NrX2luZm8tXFx1MDAzZW1jaWM7XFxuLVxcdG1jaGstXFx1MDAzZWV4dF9kYW1hZ2VfY29kZSA9IG1jY2tfaW5mby1cXHUwMDNlZXh0X2RhbWFnZV9jb2RlO1xcbi1cXHRtY2hrLVxcdTAwM2VmYWlsaW5nX3N0b3JhZ2VfYWRkcmVzcyA9IG1jY2tfaW5mby1cXHUwMDNlZmFpbGluZ19zdG9yYWdlX2FkZHJlc3M7XFxuLVxcdGlmIChtY2kuY2spIHtcXG4tXFx0XFx0LyogSW5qZWN0IHRoZSBmbG9hdGluZyBtYWNoaW5lIGNoZWNrICovXFxuLVxcdFxcdGludGkudHlwZSA9IEtWTV9TMzkwX01DSEs7XFxuLVxcdFxcdHJjID0gX19pbmplY3Rfdm0odmNwdS1cXHUwMDNla3ZtLCBcXHUwMDI2aW50aSk7XFxuLVxcdH0gZWxzZSB7XFxuLVxcdFxcdC8qIEluamVjdCB0aGUgbWFjaGluZSBjaGVjayB0byBzcGVjaWZpZWQgdmNwdSAqL1xcbi1cXHRcXHRpcnEudHlwZSA9IEtWTV9TMzkwX01DSEs7XFxuLVxcdFxcdHJjID0ga3ZtX3MzOTBfaW5qZWN0X3ZjcHUodmNwdSwgXFx1MDAyNmlycSk7XFxuLVxcdH1cXG4rXFx0aXJxLnUubWNoay5jcjE0ID0gY3IxNDtcXG4rXFx0aXJxLnUubWNoay5tY2ljID0gbWNja19pbmZvLVxcdTAwM2VtY2ljO1xcbitcXHRpcnEudS5tY2hrLmV4dF9kYW1hZ2VfY29kZSA9IG1jY2tfaW5mby1cXHUwMDNlZXh0X2RhbWFnZV9jb2RlO1xcbitcXHRpcnEudS5tY2hrLmZhaWxpbmdfc3RvcmFnZV9hZGRyZXNzID0gbWNja19pbmZvLVxcdTAwM2VmYWlsaW5nX3N0b3JhZ2VfYWRkcmVzcztcXG4rXFxuK1xcdC8qIEluamVjdCB0aGUgbWFjaGluZSBjaGVjayB0byBzcGVjaWZpZWQgdmNwdSAqL1xcbitcXHRpcnEudHlwZSA9IEtWTV9TMzkwX01DSEs7XFxuK1xcdHJjID0ga3ZtX3MzOTBfaW5qZWN0X3ZjcHUodmNwdSwgXFx1MDAyNmlycSk7XFxuIFxcdFdBUk5fT05fT05DRShyYyk7XFxuIH1cXG4gXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA2VDE0OjM1OjM1LjgwODQ3MzE1WiIsIlNlcSI6MiwiTmVzdGluZyI6MSwiVHlwZSI6ImFnZW50IiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiYmVzdC1leHBlbnNpdmUiLCJEdXJhdGlvbiI6NDcwMzQ2ODI3ODQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiS1ZNXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwia3ZtX3MzOTBfcmVpbmplY3RfbWFjaGluZV9jaGVja1wiLFxuICAgIFwiczM5MF9kb19tYWNoaW5lX2NoZWNrXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgaG93IG1hY2hpbmUgY2hlY2tzIGFyZSBoYW5kbGVkIGFuZCByZWluamVjdGVkIGludG8gS1ZNIGd1ZXN0cyBvbiBzMzkwLiBJdCBjaGFuZ2VzIGBrdm1fczM5MF9yZWluamVjdF9tYWNoaW5lX2NoZWNrYCB0byBhbHdheXMgaW5qZWN0IHRoZSBtYWNoaW5lIGNoZWNrIHRvIHRoZSBzcGVjaWZpYyB2Y3B1IHJhdGhlciB0aGFuIGFzIGEgZmxvYXRpbmcgbWFjaGluZSBjaGVjaywgYW5kIHVwZGF0ZXMgdGhlIGBNQ0NLX0NPREVfTk9fR1VFU1RgIG1hc2suIFRoZXNlIGFyZSBmdW5jdGlvbmFsIGNoYW5nZXMgaW4gcmVhY2hhYmxlIEtWTSBhbmQgYXJjaGl0ZWN0dXJlLXNwZWNpZmljIGNvZGUuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLlxuWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmVcbmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cblxuSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluXG55b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHlcbnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuXG5cblJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6XG4tIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuXG4tIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLlxuLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuXG4tIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSxcbiAgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLlxuLSBDb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCxcbiAgaW9uaWMsIGFtZGdwdSkgdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuXG4tIERyaXZlciAucmVtb3ZlLCAuc2h1dGRvd24sIG9yIHBjaV91bnJlZ2lzdGVyX2RyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKGUuZy4sIGlnYl9yZW1vdmUpXG4gIHRoYXQgYXJlIGV4ZWN1dGVkIG9ubHkgZHVyaW5nIFBDSSBob3QtdW5wbHVnIG9yIHN5c2ZzIGRyaXZlciB1bmJpbmQgb3BlcmF0aW9ucy5cblxuSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaFxudG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuXG5cbldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOlxuMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy5cbiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLlxuICAgUHJlZmVyIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIEFQSSBlbnRyeXBvaW50IGZ1bmN0aW9ucyBvdmVyIGludGVybmFsIHN0YXRpYyBoZWxwZXIgZnVuY3Rpb25zXG4gICAod2hpY2ggYXJlIGlubGluZWQgYnkgdGhlIGNvbXBpbGVyIGFuZCBkbyBub3QgaGF2ZSBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzKS5cbjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLlxuICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLlxuICAgQWxzbyBjaGVjayBcImRlcGVuZHMgb25cIiBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3NcbiAgIG5lZWRlZCBmb3IgS2J1aWxkIHRvIGNvbXBpbGUgdGhlIGNvZGUgc3RhdGljYWxseSBpbnRvIHZtbGludXguIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlnc1xuICAgb3V0cHV0IGFycmF5LCBhbmQgRE8gTk9UIGFkZCBhICdDT05GSUdfJyBwcmVmaXggKGUuZy4sIHJldHVybiBcIk5FVF9JUFY0XCIgaW5zdGVhZCBvZiBcIkNPTkZJR19ORVRfSVBWNFwiKS5cblByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLlxuXG5cblVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuXG5JdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS5cbklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC5cbiIsIlByb21wdCI6IkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOlxuY29tbWl0IDk0NDc5OTI5MWQ3MGJmZjc5OGJhY2VlM2IzMGJkNWY4M2YwZjViMTFcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgVGh1IEF1ZyA2IDE0OjM1OjM0IDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvYXJjaC9zMzkwL2luY2x1ZGUvYXNtL25taS5oIGIvYXJjaC9zMzkwL2luY2x1ZGUvYXNtL25taS5oXG5pbmRleCA2NDU0YzE1MzE4NTQ0Li5kZDI2YzIwYmQyMzEwIDEwMDY0NFxuLS0tIGEvYXJjaC9zMzkwL2luY2x1ZGUvYXNtL25taS5oXG4rKysgYi9hcmNoL3MzOTAvaW5jbHVkZS9hc20vbm1pLmhcbkBAIC0yMiw2ICsyMiw3IEBAXG4gI2RlZmluZSBNQ0NLX0NPREVfU1lTVEVNX0RBTUFHRVx0XHRCSVQoNjMpXG4gI2RlZmluZSBNQ0NLX0NPREVfRVhUX0RBTUFHRVx0XHRCSVQoNjMgLSA1KVxuICNkZWZpbmUgTUNDS19DT0RFX0NQXHRcdFx0QklUKDYzIC0gOSlcbisjZGVmaW5lIE1DQ0tfQ09ERV9DS1x0XHRcdEJJVCg2MyAtIDExKVxuICNkZWZpbmUgTUNDS19DT0RFX1NUR19FUlJPUlx0XHRCSVQoNjMgLSAxNilcbiAjZGVmaW5lIE1DQ0tfQ09ERV9TVEdfS0VZX0VSUk9SXHRcdEJJVCg2MyAtIDE4KVxuICNkZWZpbmUgTUNDS19DT0RFX1NUR19ERUdSQURcdFx0QklUKDYzIC0gMTkpXG5kaWZmIC0tZ2l0IGEvYXJjaC9zMzkwL2tlcm5lbC9ubWkuYyBiL2FyY2gvczM5MC9rZXJuZWwvbm1pLmNcbmluZGV4IGUxN2E1OWQ0ZDVhNDEuLjY1MmI5ODc5NTI0MzYgMTAwNjQ0XG4tLS0gYS9hcmNoL3MzOTAva2VybmVsL25taS5jXG4rKysgYi9hcmNoL3MzOTAva2VybmVsL25taS5jXG5AQCAtMzQ1LDcgKzM0NSw3IEBAIHN0YXRpYyB2b2lkIG5vdHJhY2UgczM5MF9iYWNrdXBfbWNja19pbmZvKHN0cnVjdCBwdF9yZWdzICpyZWdzKVxuIFx0c2llX3BhZ2UgPSBjb250YWluZXJfb2Yoc2llX2Jsb2NrLCBzdHJ1Y3Qgc2llX3BhZ2UsIHNpZV9ibG9jayk7XG4gXHRtY2NrX2JhY2t1cCA9IFx1MDAyNnNpZV9wYWdlLVx1MDAzZW1jY2tfaW5mbztcbiBcdG1jY2tfYmFja3VwLVx1MDAzZW1jaWMgPSBnZXRfbG93Y29yZSgpLVx1MDAzZW1jY2tfaW50ZXJydXB0aW9uX2NvZGUgXHUwMDI2XG4tXHRcdFx0XHR+KE1DQ0tfQ09ERV9DUCB8IE1DQ0tfQ09ERV9FWFRfREFNQUdFKTtcbitcdFx0XHR+KE1DQ0tfQ09ERV9DUCB8IE1DQ0tfQ09ERV9FWFRfREFNQUdFIHwgTUNDS19DT0RFX0NLKTtcbiBcdG1jY2tfYmFja3VwLVx1MDAzZWV4dF9kYW1hZ2VfY29kZSA9IGdldF9sb3djb3JlKCktXHUwMDNlZXh0ZXJuYWxfZGFtYWdlX2NvZGU7XG4gXHRtY2NrX2JhY2t1cC1cdTAwM2VmYWlsaW5nX3N0b3JhZ2VfYWRkcmVzcyA9IGdldF9sb3djb3JlKCktXHUwMDNlZmFpbGluZ19zdG9yYWdlX2FkZHJlc3M7XG4gfVxuQEAgLTM1Nyw3ICszNTcsNyBAQCBOT0tQUk9CRV9TWU1CT0woczM5MF9iYWNrdXBfbWNja19pbmZvKTtcbiAjZGVmaW5lIEVEX1NUUF9JU0xBTkRcdDZcdC8qIEV4dGVybmFsIGRhbWFnZSBTVFAgaXNsYW5kIGNoZWNrICovXG4gI2RlZmluZSBFRF9TVFBfU1lOQ1x0N1x0LyogRXh0ZXJuYWwgZGFtYWdlIFNUUCBzeW5jIGNoZWNrICovXG4gXG4tI2RlZmluZSBNQ0NLX0NPREVfTk9fR1VFU1RcdChNQ0NLX0NPREVfQ1AgfCBNQ0NLX0NPREVfRVhUX0RBTUFHRSlcbisjZGVmaW5lIE1DQ0tfQ09ERV9OT19HVUVTVFx0KE1DQ0tfQ09ERV9DUCB8IE1DQ0tfQ09ERV9FWFRfREFNQUdFIHwgTUNDS19DT0RFX0NLKVxuIFxuIC8qXG4gICogbWFjaGluZSBjaGVjayBoYW5kbGVyLlxuZGlmZiAtLWdpdCBhL2FyY2gvczM5MC9rdm0vaW50ZXJydXB0LmMgYi9hcmNoL3MzOTAva3ZtL2ludGVycnVwdC5jXG5pbmRleCA3NTE0ZDllMjQwM2MxLi4zMzc1YTk1NjYzN2JlIDEwMDY0NFxuLS0tIGEvYXJjaC9zMzkwL2t2bS9pbnRlcnJ1cHQuY1xuKysrIGIvYXJjaC9zMzkwL2t2bS9pbnRlcnJ1cHQuY1xuQEAgLTMwOTksOSArMzA5OSw3IEBAIHN0YXRpYyBpbnQgc2V0X2FkYXB0ZXJfaW50KHN0cnVjdCBrdm1fa2VybmVsX2lycV9yb3V0aW5nX2VudHJ5ICplLFxuIHZvaWQga3ZtX3MzOTBfcmVpbmplY3RfbWFjaGluZV9jaGVjayhzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsXG4gXHRcdFx0XHQgICAgIHN0cnVjdCBtY2NrX3ZvbGF0aWxlX2luZm8gKm1jY2tfaW5mbylcbiB7XG4tXHRzdHJ1Y3Qga3ZtX3MzOTBfaW50ZXJydXB0X2luZm8gaW50aTtcbi1cdHN0cnVjdCBrdm1fczM5MF9pcnEgaXJxO1xuLVx0c3RydWN0IGt2bV9zMzkwX21jaGtfaW5mbyAqbWNoaztcbitcdHN0cnVjdCBrdm1fczM5MF9pcnEgaXJxID0ge307XG4gXHR1bmlvbiBtY2kgbWNpO1xuIFx0X191NjQgY3IxNCA9IDA7ICAgICAgICAgLyogdXBwZXIgYml0cyBhcmUgbm90IHVzZWQgKi9cbiBcdGludCByYztcbkBAIC0zMTIwLDIwICszMTE4LDE0IEBAIHZvaWQga3ZtX3MzOTBfcmVpbmplY3RfbWFjaGluZV9jaGVjayhzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsXG4gXHRpZiAobWNpLncpXG4gXHRcdGNyMTQgfD0gQ1IxNF9XQVJOSU5HX1NVQk1BU0s7XG4gXG4tXHRtY2hrID0gbWNpLmNrID8gXHUwMDI2aW50aS5tY2hrIDogXHUwMDI2aXJxLnUubWNoaztcbi1cdG1jaGstXHUwMDNlY3IxNCA9IGNyMTQ7XG4tXHRtY2hrLVx1MDAzZW1jaWMgPSBtY2NrX2luZm8tXHUwMDNlbWNpYztcbi1cdG1jaGstXHUwMDNlZXh0X2RhbWFnZV9jb2RlID0gbWNja19pbmZvLVx1MDAzZWV4dF9kYW1hZ2VfY29kZTtcbi1cdG1jaGstXHUwMDNlZmFpbGluZ19zdG9yYWdlX2FkZHJlc3MgPSBtY2NrX2luZm8tXHUwMDNlZmFpbGluZ19zdG9yYWdlX2FkZHJlc3M7XG4tXHRpZiAobWNpLmNrKSB7XG4tXHRcdC8qIEluamVjdCB0aGUgZmxvYXRpbmcgbWFjaGluZSBjaGVjayAqL1xuLVx0XHRpbnRpLnR5cGUgPSBLVk1fUzM5MF9NQ0hLO1xuLVx0XHRyYyA9IF9faW5qZWN0X3ZtKHZjcHUtXHUwMDNla3ZtLCBcdTAwMjZpbnRpKTtcbi1cdH0gZWxzZSB7XG4tXHRcdC8qIEluamVjdCB0aGUgbWFjaGluZSBjaGVjayB0byBzcGVjaWZpZWQgdmNwdSAqL1xuLVx0XHRpcnEudHlwZSA9IEtWTV9TMzkwX01DSEs7XG4tXHRcdHJjID0ga3ZtX3MzOTBfaW5qZWN0X3ZjcHUodmNwdSwgXHUwMDI2aXJxKTtcbi1cdH1cbitcdGlycS51Lm1jaGsuY3IxNCA9IGNyMTQ7XG4rXHRpcnEudS5tY2hrLm1jaWMgPSBtY2NrX2luZm8tXHUwMDNlbWNpYztcbitcdGlycS51Lm1jaGsuZXh0X2RhbWFnZV9jb2RlID0gbWNja19pbmZvLVx1MDAzZWV4dF9kYW1hZ2VfY29kZTtcbitcdGlycS51Lm1jaGsuZmFpbGluZ19zdG9yYWdlX2FkZHJlc3MgPSBtY2NrX2luZm8tXHUwMDNlZmFpbGluZ19zdG9yYWdlX2FkZHJlc3M7XG4rXG4rXHQvKiBJbmplY3QgdGhlIG1hY2hpbmUgY2hlY2sgdG8gc3BlY2lmaWVkIHZjcHUgKi9cbitcdGlycS50eXBlID0gS1ZNX1MzOTBfTUNISztcbitcdHJjID0ga3ZtX3MzOTBfaW5qZWN0X3ZjcHUodmNwdSwgXHUwMDI2aXJxKTtcbiBcdFdBUk5fT05fT05DRShyYyk7XG4gfVxuIFxuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDZUMTQ6MzU6MzUuODA4NDc0ODFaIiwiU2VxIjozLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo1MzYzNDE5NTIwLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyBhIHMzOTAgQXJjaGl0ZWN0dXJlIFBhdGNoIGZvciBGdXp6aW5nIFBvdGVudGlhbCoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggdGFyZ2V0aW5nIHRoZSBzMzkwIGFyY2hpdGVjdHVyZSwgc3BlY2lmaWNhbGx5IHRvdWNoaW5nIGBubWkuaGAsIGBubWkuY2AsIGFuZCBgaW50ZXJydXB0LmNgIGZpbGVzLiBJdCBsb29rcyBsaWtlIGl0J3MgYWRkaW5nIGBNQ0NLX0NPREVfQ0tgIHRvIGBNQ0NLX0NPREVfTk9fR1VFU1RgIGFuZCBpbnRyb2R1Y2luZyBgczM5MF9iYWNrdXBfbWNja19pbmZvYC4gVGhlIGNvcmUgY2hhbmdlIHNpbXBsaWZpZXMgYGt2bV9zMzkwX3JlaW5qZWN0X21hY2hpbmVfY2hlY2tgIGJ5IGVuc3VyaW5nIG1hY2hpbmUgY2hlY2tzIGFyZSBhbHdheXMgaW5qZWN0ZWQgdG8gYSBzcGVjaWZpYyB2Y3B1LlxuXG5NeSBpbml0aWFsIHRob3VnaHQgaXMgdG8gYXNzZXNzIGl0cyBmdXp6YWJpbGl0eS4gR2l2ZW4gbXkga25vd2xlZGdlLCBJIG5lZWQgdG8gcGlucG9pbnQgdGhlIHJlbGV2YW50IGNvZGU7IGBrdm1fczM5MF9yZWluamVjdF9tYWNoaW5lX2NoZWNrYCBpcyB0aGUga2V5LiBUaGUgY29kZSByZXNpZGVzIGluIGBhcmNoL3MzOTAva3ZtL2ludGVycnVwdC5jYCBhbmQgYGFyY2gvczM5MC9rZXJuZWwvbm1pLmNgLCB3aGljaCBtYWtlcyBzZW5zZSBhcyB0aGVzZSBhcmUgS1ZNIGFuZCBhcmNoaXRlY3R1cmUtc3BlY2lmaWMgZmlsZXMuIFRoZSBhcmNoaXRlY3R1cmUgaXMgczM5MCwgYW5kIFN5emthbGxlciwgYSBwcm9taW5lbnQgZnV6emVyLCBzdXBwb3J0cyBzMzkweC4gSSBuZWVkIHRvIG1ha2Ugc3VyZSB0aGlzIGlzIGNvbXBhdGlibGUuXG5cblNpbmNlIGl0J3MgS1ZNLXJlbGF0ZWQsIEkgbmVlZCB0byB0cmFjZSB0aGUgY2FsbCBwYXRocyB0byBga3ZtX3MzOTBfcmVpbmplY3RfbWFjaGluZV9jaGVja2AgdG8gdW5kZXJzdGFuZCB0aGUgY29udGV4dHMgaXQncyB1c2VkIGluIGFuZCBpZGVudGlmeSBwb3RlbnRpYWwgZW50cnkgcG9pbnRzIGZvciBmdXp6aW5nLiBGaWd1cmluZyBvdXQgaG93IGl0J3MgY2FsbGVkIHdpbGwgZ2l2ZSBtZSBhIGJldHRlciB1bmRlcnN0YW5kaW5nIG9mIGhvdyB0aGUgcGF0Y2ggY2hhbmdlcyB0aGUgS1ZNIGJlaGF2aW9yLlxuXG5cbiIsIklucHV0VG9rZW5zIjozMzU3LCJPdXRwdXRUb2tlbnMiOjI4LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjQ4LCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDZUMTQ6MzU6NDEuMTcxODk3MDVaIiwiU2VxIjo0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTcwODExNzc3OSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJrdm1fczM5MF9yZWluamVjdF9tYWNoaW5lX2NoZWNrXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImFyY2gvczM5MC9rdm0vaW50ZXJydXB0LmM9MzA3Mj1zdGF0aWMgaW50IHNldF9hZGFwdGVyX2ludChzdHJ1Y3Qga3ZtX2tlcm5lbF9pcnFfcm91dGluZ19lbnRyeSAqZSxcXG4tLVxcbmFyY2gvczM5MC9rdm0vaW50ZXJydXB0LmMtMzA5OC0gKi9cXG5hcmNoL3MzOTAva3ZtL2ludGVycnVwdC5jOjMwOTk6dm9pZCBrdm1fczM5MF9yZWluamVjdF9tYWNoaW5lX2NoZWNrKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSxcXG5hcmNoL3MzOTAva3ZtL2ludGVycnVwdC5jLTMxMDAtXFx0XFx0XFx0XFx0ICAgICBzdHJ1Y3QgbWNja192b2xhdGlsZV9pbmZvICptY2NrX2luZm8pXFxuLS1cXG5hcmNoL3MzOTAva3ZtL2t2bS1zMzkwLmM9NDcyNT1zdGF0aWMgaW50IHZjcHVfcG9zdF9ydW4oc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCBpbnQgc2llX3JldHVybilcXG4tLVxcbmFyY2gvczM5MC9rdm0va3ZtLXMzOTAuYy00NzQ0LVxcdFxcdG1jY2tfaW5mbyA9IFxcdTAwMjZzaWVfcGFnZS1cXHUwMDNlbWNja19pbmZvO1xcbmFyY2gvczM5MC9rdm0va3ZtLXMzOTAuYzo0NzQ1OlxcdFxcdGt2bV9zMzkwX3JlaW5qZWN0X21hY2hpbmVfY2hlY2sodmNwdSwgbWNja19pbmZvKTtcXG5hcmNoL3MzOTAva3ZtL2t2bS1zMzkwLmMtNDc0Ni1cXHRcXHRyZXR1cm4gMDtcXG4tLVxcbmFyY2gvczM5MC9rdm0va3ZtLXMzOTAuaD01Nzg9c3RhdGljIGlubGluZSBpbnQga3ZtX3MzOTBfdXNlX3NjYV9lbnRyaWVzKHZvaWQpXFxuLS1cXG5hcmNoL3MzOTAva3ZtL2t2bS1zMzkwLmgtNTg2LX1cXG5hcmNoL3MzOTAva3ZtL2t2bS1zMzkwLmg6NTg3OnZvaWQga3ZtX3MzOTBfcmVpbmplY3RfbWFjaGluZV9jaGVjayhzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsXFxuYXJjaC9zMzkwL2t2bS9rdm0tczM5MC5oLTU4OC1cXHRcXHRcXHRcXHQgICAgIHN0cnVjdCBtY2NrX3ZvbGF0aWxlX2luZm8gKm1jY2tfaW5mbyk7XFxuLS1cXG5hcmNoL3MzOTAva3ZtL3ZzaWUuYz0xMTg3PXN0YXRpYyBpbnQgZG9fdnNpZV9ydW4oc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCBzdHJ1Y3QgdnNpZV9wYWdlICp2c2llX3BhZ2UsIHN0cnVjdCBnbWFwICpzZylcXG4tLVxcbmFyY2gvczM5MC9rdm0vdnNpZS5jLTEyNTAtXFx0aWYgKHNpZV9yZXR1cm4gPT0gU0lFNjRfUkVUVVJOX01DQ0spIHtcXG5hcmNoL3MzOTAva3ZtL3ZzaWUuYzoxMjUxOlxcdFxcdGt2bV9zMzkwX3JlaW5qZWN0X21hY2hpbmVfY2hlY2sodmNwdSwgXFx1MDAyNnZzaWVfcGFnZS1cXHUwMDNlbWNja19pbmZvKTtcXG5hcmNoL3MzOTAva3ZtL3ZzaWUuYy0xMjUyLVxcdFxcdHJldHVybiAwO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wNlQxNDozNTo0Mi44ODAwMjI0NzlaIiwiU2VxIjo1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0OTE4Mjc0MTYzLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyBhIEtWTSBzMzkwIE1hY2hpbmUgQ2hlY2sgUGF0Y2gqKlxuXG5Pa2F5LCBzbyB0aGlzIHBhdGNoIGlzIG1vZGlmeWluZyBga3ZtX3MzOTBfcmVpbmplY3RfbWFjaGluZV9jaGVja2AuIEkga25vdyB0aGF0IGZ1bmN0aW9uIGlzIGNhbGxlZCBmcm9tIGB2Y3B1X3Bvc3RfcnVuYCBhbmQgYGRvX3ZzaWVfcnVuYCwgd2hpY2ggYXJlIGJvdGggY2VudHJhbCB0byBLVk0gZ3Vlc3QgZXhlY3V0aW9uIG9uIHRoZSBzMzkwIGFyY2hpdGVjdHVyZS4gVGhpcyBzdHJvbmdseSBzdWdnZXN0cyB0aGF0IHdlJ3JlIGRlYWxpbmcgd2l0aCBhIGNvcmUgY29tcG9uZW50IG9mIGhvdyB0aGUgaHlwZXJ2aXNvciBoYW5kbGVzIGVycm9ycyB0aGF0IGhhcHBlbiAqd2l0aGluKiB0aGUgdmlydHVhbCBtYWNoaW5lLiBNeSBpbml0aWFsIHRob3VnaHQgaXMsIGlzIHRoaXMgc29tZXRoaW5nIHRoYXQgY291bGQgYmUgZnV6emVkPyBHaXZlbiB0aGF0IEtWTSBvbiBzMzkwIGlzIGFscmVhZHkgZnV6emFibGUgLSBTeXprYWxsZXIsIGlmIEkgcmVjYWxsIGNvcnJlY3RseSwgaGFzIHNvbWUgczM5MHggS1ZNIHN1cHBvcnQgLSB0aGUgcG90ZW50aWFsIGZvciBmaW5kaW5nIHZ1bG5lcmFiaWxpdGllcyB0aHJvdWdoIGZ1enppbmcgaXMgZGVmaW5pdGVseSB0aGVyZS5cblxuSG93ZXZlciwgYSBxdWljayBzZWNvbmQgbG9vayByZXZlYWxzIHRoaXMgcGF0Y2ggaXNuJ3QganVzdCBhYm91dCByZWluamVjdGlvbi4gSXQncyBhbHNvIHRvdWNoaW5nIGBzMzkwX2JhY2t1cF9tY2NrX2luZm9gIHdoaWNoLCBnaXZlbiBpdHMgbmFtZSwgbGlrZWx5IG1lYW5zIGJhY2tpbmcgdXAgTWFjaGluZSBDaGVjayBDb2RlIGluZm9ybWF0aW9uIGZvciByZWNvdmVyeSBvciBhbmFseXNpcyBwdXJwb3NlcywgYW5kIEknbSBpbnRlcmVzdGVkIGluIGtub3dpbmcgbW9yZSBhYm91dCBpdC4gTm93IEkgbmVlZCB0byBmaWd1cmUgb3V0IHdoZXJlIGBzMzkwX2JhY2t1cF9tY2NrX2luZm9gIGlzIGNhbGxlZC4gSXQgbWF5IGJlIGhlbHBmdWwgdG8gdW5kZXJzdGFuZCB0aGUgZnVsbCBjb250ZXh0IG9mIHRoZSBjaGFuZ2VzLiBUaGlzIGNvdWxkIGJlIGEgY3JpdGljYWwgYXJlYSwgcG90ZW50aWFsbHkgcmVsYXRlZCB0byBoYW5kbGluZyBjb3JydXB0IHN0YXRlcywgb3IgbWF5YmUgZXZlbiB0byBleHBsb2l0aW5nIHJhY2UgY29uZGl0aW9ucyBhcm91bmQgZXJyb3IgaGFuZGxpbmcuIExldCdzIGRpZyBkZWVwZXIgYW5kIGdldCBhIGZ1bGwgcGljdHVyZS5cblxuXG4iLCJJbnB1dFRva2VucyI6NDY1MCwiT3V0cHV0VG9rZW5zIjoyNiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE2MCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0wNlQxNDozNTo0Ny43OTgyOTg3NTJaIiwiU2VxIjo2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTgxMDk3MDE4NSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJzMzkwX2JhY2t1cF9tY2NrX2luZm9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiYXJjaC9zMzkwL2tlcm5lbC9ubWkuYz0zMjg9Tk9LUFJPQkVfU1lNQk9MKG5taV9yZWdpc3RlcnNfdmFsaWQpO1xcbi0tXFxuYXJjaC9zMzkwL2tlcm5lbC9ubWkuYy0zMzItICovXFxuYXJjaC9zMzkwL2tlcm5lbC9ubWkuYzozMzM6c3RhdGljIHZvaWQgbm90cmFjZSBzMzkwX2JhY2t1cF9tY2NrX2luZm8oc3RydWN0IHB0X3JlZ3MgKnJlZ3MpXFxuYXJjaC9zMzkwL2tlcm5lbC9ubWkuYy0zMzQte1xcbi0tXFxuYXJjaC9zMzkwL2tlcm5lbC9ubWkuYy0zNTEtfVxcbmFyY2gvczM5MC9rZXJuZWwvbm1pLmM6MzUyOk5PS1BST0JFX1NZTUJPTChzMzkwX2JhY2t1cF9tY2NrX2luZm8pO1xcbmFyY2gvczM5MC9rZXJuZWwvbm1pLmMtMzUzLVxcbi0tXFxuYXJjaC9zMzkwL2tlcm5lbC9ubWkuYz0zNjU9dm9pZCBub3RyYWNlIHMzOTBfZG9fbWFjaGluZV9jaGVjayhzdHJ1Y3QgcHRfcmVncyAqcmVncylcXG4tLVxcbmFyY2gvczM5MC9rZXJuZWwvbm1pLmMtNDQ0LVxcdGlmICh0ZXN0X2NwdV9mbGFnKENJRl9NQ0NLX0dVRVNUKSlcXG5hcmNoL3MzOTAva2VybmVsL25taS5jOjQ0NTpcXHRcXHRzMzkwX2JhY2t1cF9tY2NrX2luZm8ocmVncyk7XFxuYXJjaC9zMzkwL2tlcm5lbC9ubWkuYy00NDYtXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA2VDE0OjM1OjQ5LjYwOTI3MzM5N1oiLCJTZXEiOjcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjc0MjMyODgyMzYsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBzMzkweCBNYWNoaW5lIENoZWNrIEhhbmRsaW5nIGluIEtWTSoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgYHMzOTBfZG9fbWFjaGluZV9jaGVja2AgZnVuY3Rpb24sIHdoaWNoIGNhbGxzIGBzMzkwX2JhY2t1cF9tY2NrX2luZm9gLiBUaGlzIGlzIHRoZSBhcmNoaXRlY3R1cmUtc3BlY2lmaWMgbWFjaGluZSBjaGVjayBoYW5kbGVyIGZvciBzMzkweCwgYW5kIHRoZSBjb3JlIG9mIG15IHF1ZXN0aW9uIGlzOiBjYW4gc3l6a2FsbGVyIGFjdHVhbGx5IHRyaWdnZXIgdGhlc2UgbWFjaGluZSBjaGVja3M/IE5vcm1hbGx5LCBtYWNoaW5lIGNoZWNrcyBhcmUgaGFyZHdhcmUgZXJyb3JzLCByaWdodD8gQnV0IHdpdGggS1ZNLCB0aGluZ3MgZ2V0IGEgYml0IGZ1enppZXIuIFBlcmhhcHMgd2UgY291bGQgaW5qZWN0IHRoZW0sIG9yIHBlcmhhcHMgc29tZSBndWVzdCBhY3Rpb24gY291bGQgY2F1c2Ugb25lP1xuXG5BY3R1YWxseSwgaWYgaXQgKmlzKiBhIGhhcmR3YXJlIGVycm9yLCBjYW4gc3l6a2FsbGVyIGV2ZW4gdG91Y2ggaXQ/IFRoZW4gSSByZW1lbWJlcjogc3l6a2FsbGVyICpjYW4qIHVzZSBgL2Rldi9rdm1gIHRvIGVpdGhlciBpbmplY3QgbWFjaGluZSBjaGVja3MgZGlyZWN0bHkgaW50byB0aGUgZ3Vlc3Qgb3IgbWF5YmUgdGhlIGd1ZXN0IGl0c2VsZiB0cmlnZ2VycyBpdCBzb21laG93LlxuXG5UaGUgcGF0Y2ggSSdtIGV4YW1pbmluZyBtb2RpZmllcyBga3ZtX3MzOTBfcmVpbmplY3RfbWFjaGluZV9jaGVja2AuIFRoaXMgZnVuY3Rpb24gaXMgdHJpZ2dlcmVkIHdoZW4gYHNpZV9yZXR1cm4gPT0gU0lFNjRfUkVUVVJOX01DQ0tgLiBUaGF04oCZcyB0aGUga2V5ISBJdCBoYXBwZW5zIHdoZW4gdGhlIGhhcmR3YXJlLCBvciBtb3JlIHJlYWxpc3RpY2FsbHksIHRoZSBoeXBlcnZpc29yLCByZXR1cm5zIGZyb20gdGhlIFNJRSBpbnN0cnVjdGlvbiB3aXRoIGEgbWFjaGluZSBjaGVjayBpbmRpY2F0aW9uLiBUaGF0IG1ha2VzIG1lIHRoaW5rOiBDYW4gdGhlIGd1ZXN0ICphY3R1YWxseSogdHJpZ2dlciBhIG1hY2hpbmUgY2hlY2s/IFNvbWV0aW1lcyB5ZXMsIGJ1dCB1c3VhbGx5IGl0IGlzIGluamVjdGVkIGJ5IHRoZSBob3N0LlxuXG5JZiBzeXprYWxsZXIgaXMgZnV6emluZyBLVk0gZnJvbSB0aGUgaG9zdCwgaXQgY2FuIHVzZSBLVk0gaW9jdGxzIHRvIGluamVjdCB0aGVzZSBjaGVja3MsIG9yIG1heWJlIGNvbmZpZ3VyZSB0aGUgZ3Vlc3QgaW4gYSB3YXkgdGhhdCBpbmRpcmVjdGx5IGNhdXNlcyBhIG1hY2hpbmUgY2hlY2suXG5cbkhhbmcgb27igKYgTGV0IG1lIG1ha2Ugc3VyZSBJJ20gZm9sbG93aW5nLiBga3ZtX3MzOTBfcmVpbmplY3RfbWFjaGluZV9jaGVja2AgaXMgY2FsbGVkIHdoZW4gYHZjcHVfcG9zdF9ydW5gIGRldGVjdHMgYHNpZV9yZXR1cm4gPT0gU0lFNjRfUkVUVVJOX01DQ0tgLiBUaGF0IG1lYW5zIHRoZSBob3N0IGtlcm5lbCBpcyBydW5uaW5nIHRoZSBgS1ZNX1JVTmAgaW9jdGwsIGFuZCB0aGUgU0lFIGluc3RydWN0aW9uIHdpdGhpbiBLVk0gcmV0dXJucyB3aXRoIGEgbWFjaGluZSBjaGVjayBpbmRpY2F0aW9uLiBUaGlzIGlzIHRoZSBtZWNoYW5pc20hXG5cblNvIHRoZSBjcml0aWNhbCBxdWVzdGlvbiBpczogQ2FuIHdlIGFjdHVhbGx5IG1hbmlwdWxhdGUgdGhpcyBmbG93IHdpdGggc3l6a2FsbGVyPyBJZiBzeXprYWxsZXIgaXMgcnVubmluZyBvbiBzMzkweCwgaXQgY2FuIGNhbGwgYEtWTV9SVU5gLiBJZiB0aGUgZ3Vlc3QgZG9lcyBzb21ldGhpbmcgdG8gYWN0dWFsbHkgKnRyaWdnZXIqIGEgbWFjaGluZSBjaGVjaywgb3IgaWYgd2UgY2FuIGluamVjdCBvbmUsIG1heWJlIHdlJ3ZlIGdvdCBhIHNob3QuXG5cbldhaXQgYSBzZWNvbmQsIGBrdm1fczM5MF9yZWluamVjdF9tYWNoaW5lX2NoZWNrYCBpcyAqZGVmaW5pdGVseSogYSBLVk0gZnVuY3Rpb24uIExldCdzIGNoZWNrIGBLVk1fUzM5MF9NQ0hLYCBpbmplY3Rpb24uIExldCdzIGxvb2sgYXQgdGhhdCBwYXRoIVxuXG5cbiIsIklucHV0VG9rZW5zIjo1NDg3LCJPdXRwdXRUb2tlbnMiOjI0LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NDExLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA2VDE0OjM1OjU3LjAzMjU2NDE3M1oiLCJTZXEiOjgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNTg2ODk2NjAyLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIktWTV9TMzkwX01DSEtcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiRG9jdW1lbnRhdGlvbi92aXJ0L2t2bS9hcGkucnN0PTMyOTc9S1ZNX1MzOTBfSU5UX0lPKGFpLGNzc2lkLHNzaWQsc2NoaWQpICh2bSlcXG4tLVxcbkRvY3VtZW50YXRpb24vdmlydC9rdm0vYXBpLnJzdC0zMzAxLSAgICAgIGludGVycnVwdGlvbiBzdWJjbGFzcylcXG5Eb2N1bWVudGF0aW9uL3ZpcnQva3ZtL2FwaS5yc3Q6MzMwMjpLVk1fUzM5MF9NQ0hLICh2bSwgdmNwdSlcXG5Eb2N1bWVudGF0aW9uL3ZpcnQva3ZtL2FwaS5yc3QtMzMwMy0gICAgLSBtYWNoaW5lIGNoZWNrIGludGVycnVwdDsgY3IgMTQgYml0cyBpbiBwYXJtLCBtYWNoaW5lIGNoZWNrIGludGVycnVwdFxcbi0tXFxuRG9jdW1lbnRhdGlvbi92aXJ0L2t2bS9hcGkucnN0PTQxMDk9dHlwZSBjYW4gYmUgb25lIG9mIHRoZSBmb2xsb3dpbmc6XFxuLS1cXG5Eb2N1bWVudGF0aW9uL3ZpcnQva3ZtL2FwaS5yc3QtNDExOC0tIEtWTV9TMzkwX0lOVF9FWFRFUk5BTF9DQUxMIC0gc2lncCBleHRlcm5hbCBjYWxsOyBwYXJhbWV0ZXJzIGluIC5leHRjYWxsXFxuRG9jdW1lbnRhdGlvbi92aXJ0L2t2bS9hcGkucnN0OjQxMTk6LSBLVk1fUzM5MF9NQ0hLIC0gbWFjaGluZSBjaGVjayBpbnRlcnJ1cHQ7IHBhcmFtZXRlcnMgaW4gLm1jaGtcXG5Eb2N1bWVudGF0aW9uL3ZpcnQva3ZtL2FwaS5yc3QtNDEyMC1cXG4tLVxcbmFyY2gvczM5MC9pbmNsdWRlL3VhcGkvYXNtL2t2bS5oPTk2PXN0cnVjdCBrdm1fczM5MF9wc3cge1xcbi0tXFxuYXJjaC9zMzkwL2luY2x1ZGUvdWFwaS9hc20va3ZtLmgtMTA3LSNkZWZpbmUgS1ZNX1MzOTBfSU5UX1BGQVVMVF9ET05FXFx0MHhmZmZlMDAwNXVcXG5hcmNoL3MzOTAvaW5jbHVkZS91YXBpL2FzbS9rdm0uaDoxMDg6I2RlZmluZSBLVk1fUzM5MF9NQ0hLXFx0XFx0XFx0MHhmZmZlMTAwMHVcXG5hcmNoL3MzOTAvaW5jbHVkZS91YXBpL2FzbS9rdm0uaC0xMDktI2RlZmluZSBLVk1fUzM5MF9JTlRfQ0xPQ0tfQ09NUFxcdFxcdDB4ZmZmZjEwMDR1XFxuLS1cXG5hcmNoL3MzOTAva3ZtL2ludGVycnVwdC5jPTYyMD1zdGF0aWMgaW50IF9fbXVzdF9jaGVjayBfX2RlbGl2ZXJfbWFjaGluZV9jaGVjayhzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpXFxuLS1cXG5hcmNoL3MzOTAva3ZtL2ludGVycnVwdC5jLTY2My1cXHRcXHR0cmFjZV9rdm1fczM5MF9kZWxpdmVyX2ludGVycnVwdCh2Y3B1LVxcdTAwM2V2Y3B1X2lkLFxcbmFyY2gvczM5MC9rdm0vaW50ZXJydXB0LmM6NjY0OlxcdFxcdFxcdFxcdFxcdFxcdCBLVk1fUzM5MF9NQ0hLLFxcbmFyY2gvczM5MC9rdm0vaW50ZXJydXB0LmMtNjY1LVxcdFxcdFxcdFxcdFxcdFxcdCBtY2hrLmNyMTQsIG1jaGsubWNpYyk7XFxuLS1cXG5hcmNoL3MzOTAva3ZtL2ludGVycnVwdC5jPTE2MDM9c3RhdGljIGludCBfX2luamVjdF9tY2hrKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwgc3RydWN0IGt2bV9zMzkwX2lycSAqaXJxKVxcbi0tXFxuYXJjaC9zMzkwL2t2bS9pbnRlcnJ1cHQuYy0xNjEwLVxcdFxcdCAgIGlycS1cXHUwMDNldS5tY2hrLm1jaWMpO1xcbmFyY2gvczM5MC9rdm0vaW50ZXJydXB0LmM6MTYxMTpcXHR0cmFjZV9rdm1fczM5MF9pbmplY3RfdmNwdSh2Y3B1LVxcdTAwM2V2Y3B1X2lkLCBLVk1fUzM5MF9NQ0hLLCAwLFxcbmFyY2gvczM5MC9rdm0vaW50ZXJydXB0LmMtMTYxMi1cXHRcXHRcXHRcXHQgICBpcnEtXFx1MDAzZXUubWNoay5tY2ljKTtcXG4tLVxcbmFyY2gvczM5MC9rdm0vaW50ZXJydXB0LmM9MTkxMj1zdGF0aWMgdm9pZCBfX2Zsb2F0aW5nX2lycV9raWNrKHN0cnVjdCBrdm0gKmt2bSwgdTY0IHR5cGUpXFxuLS1cXG5hcmNoL3MzOTAva3ZtL2ludGVycnVwdC5jLTE5MzItXFx0c3dpdGNoICh0eXBlKSB7XFxuYXJjaC9zMzkwL2t2bS9pbnRlcnJ1cHQuYzoxOTMzOlxcdGNhc2UgS1ZNX1MzOTBfTUNISzpcXG5hcmNoL3MzOTAva3ZtL2ludGVycnVwdC5jLTE5MzQtXFx0XFx0a3ZtX3MzOTBfc2V0X2NwdWZsYWdzKGRzdF92Y3B1LCBDUFVTVEFUX1NUT1BfSU5UKTtcXG4tLVxcbmFyY2gvczM5MC9rdm0vaW50ZXJydXB0LmM9MTk0OT1zdGF0aWMgaW50IF9faW5qZWN0X3ZtKHN0cnVjdCBrdm0gKmt2bSwgc3RydWN0IGt2bV9zMzkwX2ludGVycnVwdF9pbmZvICppbnRpKVxcbi0tXFxuYXJjaC9zMzkwL2t2bS9pbnRlcnJ1cHQuYy0xOTU0LVxcdHN3aXRjaCAodHlwZSkge1xcbmFyY2gvczM5MC9rdm0vaW50ZXJydXB0LmM6MTk1NTpcXHRjYXNlIEtWTV9TMzkwX01DSEs6XFxuYXJjaC9zMzkwL2t2bS9pbnRlcnJ1cHQuYy0xOTU2LVxcdFxcdHJjID0gX19pbmplY3RfZmxvYXRfbWNoayhrdm0sIGludGkpO1xcbi0tXFxuYXJjaC9zMzkwL2t2bS9pbnRlcnJ1cHQuYz0xOTgwPWludCBrdm1fczM5MF9pbmplY3Rfdm0oc3RydWN0IGt2bSAqa3ZtLFxcbi0tXFxuYXJjaC9zMzkwL2t2bS9pbnRlcnJ1cHQuYy0xOTk5LVxcdFxcdGJyZWFrO1xcbmFyY2gvczM5MC9rdm0vaW50ZXJydXB0LmM6MjAwMDpcXHRjYXNlIEtWTV9TMzkwX01DSEs6XFxuYXJjaC9zMzkwL2t2bS9pbnRlcnJ1cHQuYy0yMDAxLVxcdFxcdFZNX0VWRU5UKGt2bSwgMywgXFxcImluamVjdDogbWFjaGluZSBjaGVjayBtY2ljIDB4JWxseFxcXCIsXFxuLS1cXG5hcmNoL3MzOTAva3ZtL2ludGVycnVwdC5jPTIwMjk9aW50IHMzOTBpbnRfdG9fczM5MGlycShzdHJ1Y3Qga3ZtX3MzOTBfaW50ZXJydXB0ICpzMzkwaW50LFxcbi0tXFxuYXJjaC9zMzkwL2t2bS9pbnRlcnJ1cHQuYy0yMDU0LVxcdFxcdGJyZWFrO1xcbmFyY2gvczM5MC9rdm0vaW50ZXJydXB0LmM6MjA1NTpcXHRjYXNlIEtWTV9TMzkwX01DSEs6XFxuYXJjaC9zMzkwL2t2bS9pbnRlcnJ1cHQuYy0yMDU2LVxcdFxcdGlycS1cXHUwMDNldS5tY2hrLm1jaWMgPSBzMzkwaW50LVxcdTAwM2VwYXJtNjQ7XFxuLS1cXG5hcmNoL3MzOTAva3ZtL2ludGVycnVwdC5jPTIwOTY9c3RhdGljIGludCBkb19pbmplY3RfdmNwdShzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIHN0cnVjdCBrdm1fczM5MF9pcnEgKmlycSlcXG4tLVxcbmFyY2gvczM5MC9rdm0vaW50ZXJydXB0LmMtMjEyNC1cXHRcXHRicmVhaztcXG5hcmNoL3MzOTAva3ZtL2ludGVycnVwdC5jOjIxMjU6XFx0Y2FzZSBLVk1fUzM5MF9NQ0hLOlxcbmFyY2gvczM5MC9rdm0vaW50ZXJydXB0LmMtMjEyNi1cXHRcXHRyYyA9IF9faW5qZWN0X21jaGsodmNwdSwgaXJxKTtcXG4tLVxcbmFyY2gvczM5MC9rdm0vaW50ZXJydXB0LmM9MjIwMj1zdGF0aWMgaW50IGdldF9hbGxfZmxvYXRpbmdfaXJxcyhzdHJ1Y3Qga3ZtICprdm0sIHU4IF9fdXNlciAqdXNyYnVmLCB1NjQgbGVuKVxcbi0tXFxuYXJjaC9zMzkwL2t2bS9pbnRlcnJ1cHQuYy0yMjc1LVxcdFxcdGlycSA9IChzdHJ1Y3Qga3ZtX3MzOTBfaXJxICopIFxcdTAwMjZidWZbbl07XFxuYXJjaC9zMzkwL2t2bS9pbnRlcnJ1cHQuYzoyMjc2OlxcdFxcdGlycS1cXHUwMDNldHlwZSA9IEtWTV9TMzkwX01DSEs7XFxuYXJjaC9zMzkwL2t2bS9pbnRlcnJ1cHQuYy0yMjc3LVxcdFxcdGlycS1cXHUwMDNldS5tY2hrID0gZmktXFx1MDAzZW1jaGs7XFxuLS1cXG5hcmNoL3MzOTAva3ZtL2ludGVycnVwdC5jPTIzMzU9c3RhdGljIGlubGluZSBpbnQgY29weV9pcnFfZnJvbV91c2VyKHN0cnVjdCBrdm1fczM5MF9pbnRlcnJ1cHRfaW5mbyAqaW50aSxcXG4tLVxcbmFyY2gvczM5MC9rdm0vaW50ZXJydXB0LmMtMjM1OS1cXHRcXHRicmVhaztcXG5hcmNoL3MzOTAva3ZtL2ludGVycnVwdC5jOjIzNjA6XFx0Y2FzZSBLVk1fUzM5MF9NQ0hLOlxcbmFyY2gvczM5MC9rdm0vaW50ZXJydXB0LmMtMjM2MS1cXHRcXHR0YXJnZXQgPSAodm9pZCAqKSBcXHUwMDI2aW50aS1cXHUwMDNlbWNoaztcXG4tLVxcbmFyY2gvczM5MC9rdm0vaW50ZXJydXB0LmM9MzA5OT12b2lkIGt2bV9zMzkwX3JlaW5qZWN0X21hY2hpbmVfY2hlY2soc3RydWN0IGt2bV92Y3B1ICp2Y3B1LFxcbi0tXFxuYXJjaC9zMzkwL2t2bS9pbnRlcnJ1cHQuYy0zMTI2LVxcdC8qIEluamVjdCB0aGUgbWFjaGluZSBjaGVjayB0byBzcGVjaWZpZWQgdmNwdSAqL1xcbmFyY2gvczM5MC9rdm0vaW50ZXJydXB0LmM6MzEyNzpcXHRpcnEudHlwZSA9IEtWTV9TMzkwX01DSEs7XFxuYXJjaC9zMzkwL2t2bS9pbnRlcnJ1cHQuYy0zMTI4LVxcdHJjID0ga3ZtX3MzOTBfaW5qZWN0X3ZjcHUodmNwdSwgXFx1MDAyNmlycSk7XFxuLS1cXG5hcmNoL3MzOTAva3ZtL2ludGVycnVwdC5jPTMyMjA9c3RhdGljIHZvaWQgc3RvcmVfbG9jYWxfaXJxKHN0cnVjdCBrdm1fczM5MF9sb2NhbF9pbnRlcnJ1cHQgKmxpLFxcbi0tXFxuYXJjaC9zMzkwL2t2bS9pbnRlcnJ1cHQuYy0zMjI2LVxcdGNhc2UgSVJRX1BFTkRfTUNIS19SRVA6XFxuYXJjaC9zMzkwL2t2bS9pbnRlcnJ1cHQuYzozMjI3OlxcdFxcdGlycS1cXHUwMDNldHlwZSA9IEtWTV9TMzkwX01DSEs7XFxuYXJjaC9zMzkwL2t2bS9pbnRlcnJ1cHQuYy0zMjI4LVxcdFxcdGlycS1cXHUwMDNldS5tY2hrID0gbGktXFx1MDAzZWlycS5tY2hrO1xcbi0tXFxuYXJjaC9zMzkwL2t2bS90cmFjZS1zMzkwLmg9ODE9VFJBQ0VfRVZFTlQoa3ZtX3MzOTBfdmNwdV9zdGFydF9zdG9wLFxcbi0tXFxuYXJjaC9zMzkwL2t2bS90cmFjZS1zMzkwLmgtMTEwLVxcdHtLVk1fUzM5MF9JTlRfUEZBVUxUX0RPTkUsIFxcXCJwZmF1bHQgZG9uZVxcXCJ9LFxcdFxcdFxcdFxcXFxcXG5hcmNoL3MzOTAva3ZtL3RyYWNlLXMzOTAuaDoxMTE6XFx0e0tWTV9TMzkwX01DSEssIFxcXCJtYWNoaW5lIGNoZWNrXFxcIn0sXFx0XFx0XFx0XFx0XFxcXFxcbmFyY2gvczM5MC9rdm0vdHJhY2UtczM5MC5oLTExMi1cXHR7S1ZNX1MzOTBfSU5UX0NMT0NLX0NPTVAsIFxcXCJjbG9jayBjb21wYXJhdG9yXFxcIn0sXFx0XFx0XFx0XFxcXFxcbi0tXFxudG9vbHMvYXJjaC9zMzkwL2luY2x1ZGUvdWFwaS9hc20va3ZtLmg9OTY9c3RydWN0IGt2bV9zMzkwX3BzdyB7XFxuLS1cXG50b29scy9hcmNoL3MzOTAvaW5jbHVkZS91YXBpL2FzbS9rdm0uaC0xMDctI2RlZmluZSBLVk1fUzM5MF9JTlRfUEZBVUxUX0RPTkVcXHQweGZmZmUwMDA1dVxcbnRvb2xzL2FyY2gvczM5MC9pbmNsdWRlL3VhcGkvYXNtL2t2bS5oOjEwODojZGVmaW5lIEtWTV9TMzkwX01DSEtcXHRcXHRcXHQweGZmZmUxMDAwdVxcbnRvb2xzL2FyY2gvczM5MC9pbmNsdWRlL3VhcGkvYXNtL2t2bS5oLTEwOS0jZGVmaW5lIEtWTV9TMzkwX0lOVF9DTE9DS19DT01QXFx0XFx0MHhmZmZmMTAwNHVcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDZUMTQ6MzU6NTguNjE5NDY3MTE1WiIsIlNlcSI6OSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NzA2NTA1MTAwNywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIEtWTSBzMzkweCBNYWNoaW5lIENoZWNrIFBhdGNoKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCBhbmQgaXQncyBtYWtpbmcgYSBzcGVjaWZpYyBjaGFuZ2UgaW4gYGt2bV9zMzkwX3JlaW5qZWN0X21hY2hpbmVfY2hlY2tgLiBFc3NlbnRpYWxseSwgaXQncyBlbnN1cmluZyB0aGUgbWFjaGluZSBjaGVjayBnZXRzIGluamVjdGVkIGRpcmVjdGx5IHRvIHRoZSBpbnRlbmRlZCB2Q1BVLCByYXRoZXIgdGhhbiBwb3RlbnRpYWxseSBmbG9hdGluZyB0byB0aGUgZW50aXJlIFZNLiBNYWtlcyBzZW5zZSwgdGhhdCdzIGRlZmluaXRlbHkgbW9yZSBwcmVjaXNlLiBJdCBsb29rcyBsaWtlIGl0IGFsc28gYWRkcyBgTUNDS19DT0RFX0NLYCB0byBgTUNDS19DT0RFX05PX0dVRVNUYCBhbmQgYHMzOTBfYmFja3VwX21jY2tfaW5mb2AuIExldCBtZSBjaGVjay4uLiBgTUNDS19DT0RFX0NLYCBpcyBkZWZpbmVkIHVzaW5nIGEgYml0IHNoaWZ0LCB0aGF0J3Mgc3RyYWlnaHRmb3J3YXJkIGVub3VnaC5cblxuRnVuY3Rpb25hbGx5LCBJIHRoaW5rIHRoaXMgaXMgc291bmQuIEJ1dCB0aGUgcXVlc3Rpb24gaXM6IGNhbiB3ZSBmdXp6IGl0PyBJIGtub3cgc3l6a2FsbGVyIGNhbiB0cmlnZ2VyIEtWTSBtYWNoaW5lIGNoZWNrcywgb3IgYXQgbGVhc3QgcnVuIEtWTSBndWVzdHMgb24gczM5MHguIE15IGluaXRpYWwgdGhvdWdodCBpcyB0byB0YXJnZXQgYGt2bV9zMzkwX3JlaW5qZWN0X21hY2hpbmVfY2hlY2tgIGFuZCBgczM5MF9iYWNrdXBfbWNja19pbmZvYC5cblxuV2FpdCBhIHNlY29uZOKApiBgczM5MF9iYWNrdXBfbWNja19pbmZvYCBpcyAqc3RhdGljKiBhbmQgbWFya2VkIGFzIGBub3RyYWNlYCEgQW5kIGl0J3MgY2FsbGVkIGZyb20gYHMzOTBfZG9fbWFjaGluZV9jaGVja2AuIFRoYXQgY2hhbmdlcyB0aGluZ3MgYSBiaXQuIE9rYXksIGJhY2sgdG8gdGhlIGdsb2JhbCBmdW5jdGlvbjogYGt2bV9zMzkwX3JlaW5qZWN0X21hY2hpbmVfY2hlY2tgIHdoaWNoIGlzIGNhbGxlZCBmcm9tIGB2Y3B1X3Bvc3RfcnVuYCBhbmQgYGRvX3ZzaWVfcnVuYC5cblxuT2theSwgSSBuZWVkIHRvIHRha2UgYSBjbG9zZXIgbG9vayBhdCBgczM5MF9kb19tYWNoaW5lX2NoZWNrYC4gTGV0J3Mgc2VlIHdoYXQncyBnb2luZyBvbiB0aGVyZS5cblxuXG4iLCJJbnB1dFRva2VucyI6ODk4NCwiT3V0cHV0VG9rZW5zIjoyNCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjI4NSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0wNlQxNDozNjowNS42ODQ1MjE3ODJaIiwiU2VxIjoxMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE2NDI0NTc4OTAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiczM5MF9kb19tYWNoaW5lX2NoZWNrXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImFyY2gvczM5MC9pbmNsdWRlL2FzbS9ubWkuaD0xMDU9dm9pZCBzMzkwX2hhbmRsZV9tY2NrKHZvaWQpO1xcbmFyY2gvczM5MC9pbmNsdWRlL2FzbS9ubWkuaDoxMDY6dm9pZCBzMzkwX2RvX21hY2hpbmVfY2hlY2soc3RydWN0IHB0X3JlZ3MgKnJlZ3MpO1xcbmFyY2gvczM5MC9pbmNsdWRlL2FzbS9ubWkuaC0xMDctXFxuLS1cXG5hcmNoL3MzOTAva2VybmVsL2VudHJ5LlM9NDUwPVNZTV9DT0RFX1NUQVJUKG1jY2tfaW50X2hhbmRsZXIpXFxuLS1cXG5hcmNoL3MzOTAva2VybmVsL2VudHJ5LlMtNTE1LVxcdGxnclxcdCVyMiwlcjExXFx0XFx0IyBwYXNzIHBvaW50ZXIgdG8gcHRfcmVnc1xcbmFyY2gvczM5MC9rZXJuZWwvZW50cnkuUzo1MTY6XFx0YnJhc2xcXHQlcjE0LHMzOTBfZG9fbWFjaGluZV9jaGVja1xcbmFyY2gvczM5MC9rZXJuZWwvZW50cnkuUy01MTctXFx0bG1nXFx0JXIwLCVyMTAsX19QVF9SMCglcjExKVxcbi0tXFxuYXJjaC9zMzkwL2tlcm5lbC9ubWkuYz0zNTI9Tk9LUFJPQkVfU1lNQk9MKHMzOTBfYmFja3VwX21jY2tfaW5mbyk7XFxuLS1cXG5hcmNoL3MzOTAva2VybmVsL25taS5jLTM2NC0gKi9cXG5hcmNoL3MzOTAva2VybmVsL25taS5jOjM2NTp2b2lkIG5vdHJhY2UgczM5MF9kb19tYWNoaW5lX2NoZWNrKHN0cnVjdCBwdF9yZWdzICpyZWdzKVxcbmFyY2gvczM5MC9rZXJuZWwvbm1pLmMtMzY2LXtcXG4tLVxcbmFyY2gvczM5MC9rZXJuZWwvbm1pLmMtNTA0LX1cXG5hcmNoL3MzOTAva2VybmVsL25taS5jOjUwNTpOT0tQUk9CRV9TWU1CT0woczM5MF9kb19tYWNoaW5lX2NoZWNrKTtcXG5hcmNoL3MzOTAva2VybmVsL25taS5jLTUwNi1cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDZUMTQ6MzY6MDcuMzI2OTg5NTkyWiIsIlNlcSI6MTEsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQxNDM3OTAzNDUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqTWFjaGluZSBDaGVjayBIYW5kbGVyIEludmVzdGlnYXRpb24qKlxuXG5Pa2F5LCBzbyBJJ20gZGl2aW5nIGludG8gdGhpcyBgczM5MF9kb19tYWNoaW5lX2NoZWNrYCByb3V0aW5lLiBJdCBsb29rcyBsaWtlIHRoZSBjb3JlIG1hY2hpbmUgY2hlY2sgaGFuZGxlciwgY2FsbGVkIGZyb20gYG1jY2tfaW50X2hhbmRsZXJgIGluIGBlbnRyeS5TYC4gVGhlIGtleSBxdWVzdGlvbiBpcyB3aGV0aGVyIEkgY2FuIGVmZmVjdGl2ZWx5IGZ1enogYGt2bV9zMzkwX3JlaW5qZWN0X21hY2hpbmVfY2hlY2tgLiBJdCBzZWVtcyB0aGF0J3MgdGhlIHBhdGggdGFrZW4gd2hlbiBhIEtWTSBndWVzdCBleGl0cyB3aXRoIGEgbWFjaGluZSBjaGVjay4gVGhhdCdzIGdvb2QsIHRoYXQncyBleGFjdGx5IHdoZXJlIEkgbmVlZCB0byBiZSBmb2N1c2VkLiBOb3csIEknbSB0aGlua2luZyBhYm91dCBwcmUtcmVxdWlzaXRlcy4gSSBrbm93IHRoYXQgYENPTkZJR19LVk1gIGlzIGRlZmluaXRlbHkgYSByZXF1aXJlbWVudCBmb3IgYGt2bV9zMzkwX3JlaW5qZWN0X21hY2hpbmVfY2hlY2tgIHRvIGV2ZW4gYmUgY29uc2lkZXJlZC4gSSBzaG91bGQgbWFrZSBzdXJlIHRoYXQncyBzZXQuIEkgYWxzbyBzaG91bGQgZG91YmxlLWNoZWNrIHRoZSBLY29uZmlnIGZpbGVzLCBzcGVjaWZpY2FsbHkgaW4gYGFyY2gvczM5MC9rdm0vS2NvbmZpZ2AgdG8gc2VlIGlmIHRoZXJlIGFyZSBhbnkgb3RoZXIgcmVsZXZhbnQgY29uZmlndXJhdGlvbnMgb3IgZGVwZW5kZW5jaWVzIEkgc2hvdWxkIGtub3cgYWJvdXQuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjEwMTIwLCJPdXRwdXRUb2tlbnMiOjE3LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTMzLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA2VDE0OjM2OjExLjQ3MDc4NDE3N1oiLCJTZXEiOjEyLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTcyNTA5NzU1OCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJjb25maWcgS1ZNXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImFyY2gvYXJtNjQva3ZtL0tjb25maWc9MTg9aWYgVklSVFVBTElaQVRJT05cXG5hcmNoL2FybTY0L2t2bS9LY29uZmlnLTE5LVxcbmFyY2gvYXJtNjQva3ZtL0tjb25maWc6MjA6bWVudWNvbmZpZyBLVk1cXG5hcmNoL2FybTY0L2t2bS9LY29uZmlnLTIxLVxcdGJvb2wgXFxcIktlcm5lbC1iYXNlZCBWaXJ0dWFsIE1hY2hpbmUgKEtWTSkgc3VwcG9ydFxcXCJcXG4tLVxcbmFyY2gvbG9vbmdhcmNoL2t2bS9LY29uZmlnPTE4PWlmIFZJUlRVQUxJWkFUSU9OXFxuYXJjaC9sb29uZ2FyY2gva3ZtL0tjb25maWctMTktXFxuYXJjaC9sb29uZ2FyY2gva3ZtL0tjb25maWc6MjA6Y29uZmlnIEtWTVxcbmFyY2gvbG9vbmdhcmNoL2t2bS9LY29uZmlnLTIxLVxcdHRyaXN0YXRlIFxcXCJLZXJuZWwtYmFzZWQgVmlydHVhbCBNYWNoaW5lIChLVk0pIHN1cHBvcnRcXFwiXFxuLS1cXG5hcmNoL21pcHMva3ZtL0tjb25maWc9MTY9aWYgVklSVFVBTElaQVRJT05cXG5hcmNoL21pcHMva3ZtL0tjb25maWctMTctXFxuYXJjaC9taXBzL2t2bS9LY29uZmlnOjE4OmNvbmZpZyBLVk1cXG5hcmNoL21pcHMva3ZtL0tjb25maWctMTktXFx0dHJpc3RhdGUgXFxcIktlcm5lbC1iYXNlZCBWaXJ0dWFsIE1hY2hpbmUgKEtWTSkgc3VwcG9ydFxcXCJcXG4tLVxcbmFyY2gvbWlwcy9rdm0vS2NvbmZpZy0zMC1cXG5hcmNoL21pcHMva3ZtL0tjb25maWc6MzE6Y29uZmlnIEtWTV9NSVBTX0RFQlVHX0NPUDBfQ09VTlRFUlNcXG5hcmNoL21pcHMva3ZtL0tjb25maWctMzItXFx0Ym9vbCBcXFwiTWFpbnRhaW4gY291bnRlcnMgZm9yIENPUDAgYWNjZXNzZXNcXFwiXFxuLS1cXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWc9MTg9aWYgVklSVFVBTElaQVRJT05cXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMTktXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnOjIwOmNvbmZpZyBLVk1cXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMjEtXFx0Ym9vbFxcbi0tXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTI1LVxcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZzoyNjpjb25maWcgS1ZNX0JPT0szU19IQU5ETEVSXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTI3LVxcdGJvb2xcXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMjgtXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnOjI5OmNvbmZpZyBLVk1fQk9PSzNTXzMyX0hBTkRMRVJcXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMzAtXFx0Ym9vbFxcbi0tXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTMzLVxcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZzozNDpjb25maWcgS1ZNX0JPT0szU182NF9IQU5ETEVSXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTM1LVxcdGJvb2xcXG4tLVxcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0zNy1cXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWc6Mzg6Y29uZmlnIEtWTV9CT09LM1NfUFJfUE9TU0lCTEVcXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMzktXFx0Ym9vbFxcbi0tXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTQxLVxcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZzo0Mjpjb25maWcgS1ZNX0JPT0szU19IVl9QT1NTSUJMRVxcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy00My1cXHRib29sXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTQ0LVxcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZzo0NTpjb25maWcgS1ZNX0JPT0szU18zMlxcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy00Ni1cXHR0cmlzdGF0ZSBcXFwiS1ZNIHN1cHBvcnQgZm9yIFBvd2VyUEMgYm9vazNzXzMyIHByb2Nlc3NvcnNcXFwiXFxuLS1cXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctNjEtXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnOjYyOmNvbmZpZyBLVk1fQk9PSzNTXzY0XFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTYzLVxcdHRyaXN0YXRlIFxcXCJLVk0gc3VwcG9ydCBmb3IgUG93ZXJQQyBib29rM3NfNjQgcHJvY2Vzc29yc1xcXCJcXG4tLVxcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy03OC1cXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWc6Nzk6Y29uZmlnIEtWTV9CT09LM1NfNjRfSFZcXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctODAtXFx0dHJpc3RhdGUgXFxcIktWTSBmb3IgUE9XRVI3IGFuZCBsYXRlciB1c2luZyBoeXBlcnZpc29yIG1vZGUgaW4gaG9zdFxcXCJcXG4tLVxcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy05OS1cXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWc6MTAwOmNvbmZpZyBLVk1fQk9PSzNTXzY0X1BSXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTEwMS1cXHR0cmlzdGF0ZSBcXFwiS1ZNIHN1cHBvcnQgd2l0aG91dCB1c2luZyBoeXBlcnZpc29yIG1vZGUgaW4gaG9zdFxcXCJcXG4tLVxcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0xMjUtXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnOjEyNjpjb25maWcgS1ZNX0JPT0szU19IVl9FWElUX1RJTUlOR1xcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0xMjctXFx0Ym9vbFxcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0xMjgtXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnOjEyOTpjb25maWcgS1ZNX0JPT0szU19IVl9QOV9USU1JTkdcXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMTMwLVxcdGJvb2wgXFxcIkRldGFpbGVkIHRpbWluZyBmb3IgdGhlIFA5IGVudHJ5IHBvaW50XFxcIlxcbi0tXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTE0MS1cXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWc6MTQyOmNvbmZpZyBLVk1fQk9PSzNTX0hWX1A4X1RJTUlOR1xcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0xNDMtXFx0Ym9vbCBcXFwiRGV0YWlsZWQgdGltaW5nIGZvciBoeXBlcnZpc29yIHJlYWwtbW9kZSBjb2RlIChmb3IgUE9XRVI4KVxcXCJcXG4tLVxcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0xNTYtXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnOjE1Nzpjb25maWcgS1ZNX0JPT0szU19IVl9ORVNURURfUE1VX1dPUktBUk9VTkRcXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMTU4LVxcdGJvb2wgXFxcIk5lc3RlZCBMMCBob3N0IHdvcmthcm91bmQgZm9yIEwxIEtWTSBob3N0IFBNVSBoYW5kbGluZyBidWdcXFwiIGlmIEVYUEVSVFxcbi0tXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTE3MS1cXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWc6MTcyOmNvbmZpZyBLVk1fQk9PSzNTX0hWX1BNVVxcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0xNzMtXFx0dHJpc3RhdGUgXFxcIkh5cGVydmlzb3IgUGVyZiBldmVudHMgZm9yIEtWTSBCb29rM3MtSFZcXFwiXFxuLS1cXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMTgzLVxcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZzoxODQ6Y29uZmlnIEtWTV9CT09LRV9IVlxcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0xODUtXFx0Ym9vbFxcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0xODYtXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnOjE4Nzpjb25maWcgS1ZNX0VYSVRfVElNSU5HXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTE4OC1cXHRib29sIFxcXCJEZXRhaWxlZCBleGl0IHRpbWluZ1xcXCJcXG4tLVxcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0xOTctXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnOjE5ODpjb25maWcgS1ZNX0U1MDBWMlxcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0xOTktXFx0Ym9vbCBcXFwiS1ZNIHN1cHBvcnQgZm9yIFBvd2VyUEMgRTUwMHYyIHByb2Nlc3NvcnNcXFwiXFxuLS1cXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMjEyLVxcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZzoyMTM6Y29uZmlnIEtWTV9FNTAwTUNcXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMjE0LVxcdGJvb2wgXFxcIktWTSBzdXBwb3J0IGZvciBQb3dlclBDIEU1MDBNQy9FNTUwMC9FNjUwMCBwcm9jZXNzb3JzXFxcIlxcbi0tXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTIyOC1cXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWc6MjI5OmNvbmZpZyBLVk1fTVBJQ1xcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0yMzAtXFx0Ym9vbCBcXFwiS1ZNIGluLWtlcm5lbCBNUElDIGVtdWxhdGlvblxcXCJcXG4tLVxcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0yNDAtXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnOjI0MTpjb25maWcgS1ZNX1hJQ1NcXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMjQyLVxcdGJvb2wgXFxcIktWTSBpbi1rZXJuZWwgWElDUyBlbXVsYXRpb25cXFwiXFxuLS1cXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMjUwLVxcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZzoyNTE6Y29uZmlnIEtWTV9YSVZFXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTI1Mi1cXHRib29sXFxuLS1cXG5hcmNoL3Bvd2VycGMvcGxhdGZvcm1zL0tjb25maWc9MjI9c291cmNlIFxcXCJhcmNoL3Bvd2VycGMvcGxhdGZvcm1zL21pY3Jvd2F0dC9LY29uZmlnXFxcIlxcbmFyY2gvcG93ZXJwYy9wbGF0Zm9ybXMvS2NvbmZpZy0yMy1cXG5hcmNoL3Bvd2VycGMvcGxhdGZvcm1zL0tjb25maWc6MjQ6Y29uZmlnIEtWTV9HVUVTVFxcbmFyY2gvcG93ZXJwYy9wbGF0Zm9ybXMvS2NvbmZpZy0yNS1cXHRib29sIFxcXCJLVk0gR3Vlc3Qgc3VwcG9ydFxcXCJcXG4tLVxcbmFyY2gvcmlzY3Yva3ZtL0tjb25maWc9MTg9aWYgVklSVFVBTElaQVRJT05cXG5hcmNoL3Jpc2N2L2t2bS9LY29uZmlnLTE5LVxcbmFyY2gvcmlzY3Yva3ZtL0tjb25maWc6MjA6Y29uZmlnIEtWTVxcbmFyY2gvcmlzY3Yva3ZtL0tjb25maWctMjEtXFx0dHJpc3RhdGUgXFxcIktlcm5lbC1iYXNlZCBWaXJ0dWFsIE1hY2hpbmUgKEtWTSkgc3VwcG9ydFxcXCJcXG4tLVxcbmFyY2gvczM5MC9rdm0vS2NvbmZpZz0xNz1pZiBWSVJUVUFMSVpBVElPTlxcbmFyY2gvczM5MC9rdm0vS2NvbmZpZy0xOC1cXG5hcmNoL3MzOTAva3ZtL0tjb25maWc6MTk6Y29uZmlnIEtWTVxcbmFyY2gvczM5MC9rdm0vS2NvbmZpZy0yMC1cXHRkZWZfdHJpc3RhdGUgeVxcbi0tXFxuYXJjaC9zMzkwL2t2bS9LY29uZmlnLTQ2LVxcbmFyY2gvczM5MC9rdm0vS2NvbmZpZzo0Nzpjb25maWcgS1ZNX1MzOTBfVUNPTlRST0xcXG5hcmNoL3MzOTAva3ZtL0tjb25maWctNDgtXFx0Ym9vbCBcXFwiVXNlcnNwYWNlIGNvbnRyb2xsZWQgdmlydHVhbCBtYWNoaW5lc1xcXCJcXG4tLVxcbmFyY2gveDg2L0tjb25maWc9ODI2PXNvdXJjZSBcXFwiYXJjaC94ODYveGVuL0tjb25maWdcXFwiXFxuYXJjaC94ODYvS2NvbmZpZy04MjctXFxuYXJjaC94ODYvS2NvbmZpZzo4Mjg6Y29uZmlnIEtWTV9HVUVTVFxcbmFyY2gveDg2L0tjb25maWctODI5LVxcdGJvb2wgXFxcIktWTSBHdWVzdCBzdXBwb3J0IChpbmNsdWRpbmcga3ZtY2xvY2spXFxcIlxcbi0tXFxuYXJjaC94ODYva3ZtL0tjb25maWc9MTg9aWYgVklSVFVBTElaQVRJT05cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0xOS1cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZzoyMDpjb25maWcgS1ZNX1g4NlxcbmFyY2gveDg2L2t2bS9LY29uZmlnLTIxLVxcdGRlZl90cmlzdGF0ZSBLVk0gaWYgKEtWTV9JTlRFTCAhPSBuIHx8IEtWTV9BTUQgIT0gbilcXG4tLVxcbmFyY2gveDg2L2t2bS9LY29uZmlnLTUxLVxcbmFyY2gveDg2L2t2bS9LY29uZmlnOjUyOmNvbmZpZyBLVk1cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy01My1cXHR0cmlzdGF0ZSBcXFwiS2VybmVsLWJhc2VkIFZpcnR1YWwgTWFjaGluZSAoS1ZNKSBzdXBwb3J0XFxcIlxcbi0tXFxuYXJjaC94ODYva3ZtL0tjb25maWctNjgtXFxuYXJjaC94ODYva3ZtL0tjb25maWc6Njk6Y29uZmlnIEtWTV9XRVJST1JcXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy03MC1cXHRib29sIFxcXCJDb21waWxlIEtWTSB3aXRoIC1XZXJyb3JcXFwiXFxuLS1cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy04Mi1cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZzo4Mzpjb25maWcgS1ZNX1NXX1BST1RFQ1RFRF9WTVxcbmFyY2gveDg2L2t2bS9LY29uZmlnLTg0LVxcdGJvb2wgXFxcIkVuYWJsZSBzdXBwb3J0IGZvciBLVk0gc29mdHdhcmUtcHJvdGVjdGVkIFZNc1xcXCJcXG4tLVxcbmFyY2gveDg2L2t2bS9LY29uZmlnLTk1LVxcbmFyY2gveDg2L2t2bS9LY29uZmlnOjk2OmNvbmZpZyBLVk1fSU5URUxcXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy05Ny1cXHR0cmlzdGF0ZSBcXFwiS1ZNIGZvciBJbnRlbCAoYW5kIGNvbXBhdGlibGUpIHByb2Nlc3NvcnMgc3VwcG9ydFxcXCJcXG4tLVxcbmFyY2gveDg2L2t2bS9LY29uZmlnLTEwNi1cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZzoxMDc6Y29uZmlnIEtWTV9JTlRFTF9QUk9WRV9WRVxcbmFyY2gveDg2L2t2bS9LY29uZmlnLTEwOC0gICAgICAgIGJvb2wgXFxcIkNoZWNrIHRoYXQgZ3Vlc3RzIGRvIG5vdCByZWNlaXZlICNWRSBleGNlcHRpb25zXFxcIlxcbi0tXFxuYXJjaC94ODYva3ZtL0tjb25maWc9MTIyPWNvbmZpZyBYODZfU0dYX0tWTVxcbi0tXFxuYXJjaC94ODYva3ZtL0tjb25maWctMTMzLVxcbmFyY2gveDg2L2t2bS9LY29uZmlnOjEzNDpjb25maWcgS1ZNX0lOVEVMX1REWFxcbmFyY2gveDg2L2t2bS9LY29uZmlnLTEzNS1cXHRib29sIFxcXCJJbnRlbCBUcnVzdCBEb21haW4gRXh0ZW5zaW9ucyAoVERYKSBzdXBwb3J0XFxcIlxcbi0tXFxuYXJjaC94ODYva3ZtL0tjb25maWctMTQ1LVxcbmFyY2gveDg2L2t2bS9LY29uZmlnOjE0Njpjb25maWcgS1ZNX0FNRFxcbmFyY2gveDg2L2t2bS9LY29uZmlnLTE0Ny1cXHR0cmlzdGF0ZSBcXFwiS1ZNIGZvciBBTUQgcHJvY2Vzc29ycyBzdXBwb3J0XFxcIlxcbi0tXFxuYXJjaC94ODYva3ZtL0tjb25maWctMTU1LVxcbmFyY2gveDg2L2t2bS9LY29uZmlnOjE1Njpjb25maWcgS1ZNX0FNRF9TRVZcXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0xNTctXFx0Ym9vbCBcXFwiQU1EIFNlY3VyZSBFbmNyeXB0ZWQgVmlydHVhbGl6YXRpb24gKFNFVikgc3VwcG9ydFxcXCJcXG4tLVxcbmFyY2gveDg2L2t2bS9LY29uZmlnLTE3MS1cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZzoxNzI6Y29uZmlnIEtWTV9JT0FQSUNcXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0xNzMtXFx0Ym9vbCBcXFwiSS9PIEFQSUMsIFBJQywgYW5kIFBJVCBlbXVsYXRpb25cXFwiXFxuLS1cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0xODEtXFxuYXJjaC94ODYva3ZtL0tjb25maWc6MTgyOmNvbmZpZyBLVk1fU01NXFxuYXJjaC94ODYva3ZtL0tjb25maWctMTgzLVxcdGJvb2wgXFxcIlN5c3RlbSBNYW5hZ2VtZW50IE1vZGUgZW11bGF0aW9uXFxcIlxcbi0tXFxuYXJjaC94ODYva3ZtL0tjb25maWctMTkyLVxcbmFyY2gveDg2L2t2bS9LY29uZmlnOjE5Mzpjb25maWcgS1ZNX0hZUEVSVlxcbmFyY2gveDg2L2t2bS9LY29uZmlnLTE5NC1cXHRib29sIFxcXCJTdXBwb3J0IGZvciBNaWNyb3NvZnQgSHlwZXItViBlbXVsYXRpb25cXFwiXFxuLS1cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0yMDYtXFxuYXJjaC94ODYva3ZtL0tjb25maWc6MjA3OmNvbmZpZyBLVk1fWEVOXFxuYXJjaC94ODYva3ZtL0tjb25maWctMjA4LVxcdGJvb2wgXFxcIlN1cHBvcnQgZm9yIFhlbiBoeXBlcmNhbGwgaW50ZXJmYWNlXFxcIlxcbi0tXFxuYXJjaC94ODYva3ZtL0tjb25maWctMjE1LVxcbmFyY2gveDg2L2t2bS9LY29uZmlnOjIxNjpjb25maWcgS1ZNX1BST1ZFX01NVVxcbmFyY2gveDg2L2t2bS9LY29uZmlnLTIxNy1cXHRib29sIFxcXCJQcm92ZSBLVk0gTU1VIGNvcnJlY3RuZXNzXFxcIlxcbi0tXFxuYXJjaC94ODYva3ZtL0tjb25maWctMjI4LVxcbmFyY2gveDg2L2t2bS9LY29uZmlnOjIyOTpjb25maWcgS1ZNX0VYVEVSTkFMX1dSSVRFX1RSQUNLSU5HXFxuYXJjaC94ODYva3ZtL0tjb25maWctMjMwLVxcdGJvb2xcXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0yMzEtXFxuYXJjaC94ODYva3ZtL0tjb25maWc6MjMyOmNvbmZpZyBLVk1fTUFYX05SX1ZDUFVTXFxuYXJjaC94ODYva3ZtL0tjb25maWctMjMzLVxcdGludCBcXFwiTWF4aW11bSBudW1iZXIgb2YgdkNQVXMgcGVyIEtWTSBndWVzdFxcXCJcXG4tLVxcbnZpcnQva3ZtL0tjb25maWctMy1cXG52aXJ0L2t2bS9LY29uZmlnOjQ6Y29uZmlnIEtWTV9DT01NT05cXG52aXJ0L2t2bS9LY29uZmlnLTUtICAgICAgIGJvb2xcXG4tLVxcbnZpcnQva3ZtL0tjb25maWc9Mzk9Y29uZmlnIE5FRURfS1ZNX0RJUlRZX1JJTkdfV0lUSF9CSVRNQVBcXG4tLVxcbnZpcnQva3ZtL0tjb25maWctNDItXFxudmlydC9rdm0vS2NvbmZpZzo0Mzpjb25maWcgS1ZNX01NSU9cXG52aXJ0L2t2bS9LY29uZmlnLTQ0LSAgICAgICBib29sXFxudmlydC9rdm0vS2NvbmZpZy00NS1cXG52aXJ0L2t2bS9LY29uZmlnOjQ2OmNvbmZpZyBLVk1fQVNZTkNfUEZcXG52aXJ0L2t2bS9LY29uZmlnLTQ3LSAgICAgICBib29sXFxuLS1cXG52aXJ0L2t2bS9LY29uZmlnLTQ5LSMgVG9nZ2xlIHRvIHN3aXRjaCBiZXR3ZWVuIGRpcmVjdCBub3RpZmljYXRpb24gYW5kIGJhdGNoIGpvYlxcbnZpcnQva3ZtL0tjb25maWc6NTA6Y29uZmlnIEtWTV9BU1lOQ19QRl9TWU5DXFxudmlydC9rdm0vS2NvbmZpZy01MS0gICAgICAgYm9vbFxcbi0tXFxudmlydC9rdm0vS2NvbmZpZz01OT1jb25maWcgSEFWRV9LVk1fQ1BVX1JFTEFYX0lOVEVSQ0VQVFxcbi0tXFxudmlydC9rdm0vS2NvbmZpZy02MS1cXG52aXJ0L2t2bS9LY29uZmlnOjYyOmNvbmZpZyBLVk1fVkZJT1xcbnZpcnQva3ZtL0tjb25maWctNjMtICAgICAgIGJvb2xcXG4tLVxcbnZpcnQva3ZtL0tjb25maWc9NjU9Y29uZmlnIEhBVkVfS1ZNX0lOVkFMSURfV0FLRVVQU1xcbi0tXFxudmlydC9rdm0vS2NvbmZpZy02Ny1cXG52aXJ0L2t2bS9LY29uZmlnOjY4OmNvbmZpZyBLVk1fR0VORVJJQ19ESVJUWUxPR19SRUFEX1BST1RFQ1RcXG52aXJ0L2t2bS9LY29uZmlnLTY5LSAgICAgICBib29sXFxudmlydC9rdm0vS2NvbmZpZy03MC1cXG52aXJ0L2t2bS9LY29uZmlnOjcxOmNvbmZpZyBLVk1fR0VORVJJQ19QUkVfRkFVTFRfTUVNT1JZXFxudmlydC9rdm0vS2NvbmZpZy03Mi0gICAgICAgYm9vbFxcbnZpcnQva3ZtL0tjb25maWctNzMtXFxudmlydC9rdm0vS2NvbmZpZzo3NDpjb25maWcgS1ZNX0NPTVBBVFxcbnZpcnQva3ZtL0tjb25maWctNzUtICAgICAgIGRlZl9ib29sIHlcXG4tLVxcbnZpcnQva3ZtL0tjb25maWc9OTE9Y29uZmlnIEhBVkVfS1ZNX1BNX05PVElGSUVSXFxuLS1cXG52aXJ0L2t2bS9LY29uZmlnLTkzLVxcbnZpcnQva3ZtL0tjb25maWc6OTQ6Y29uZmlnIEtWTV9HRU5FUklDX0hBUkRXQVJFX0VOQUJMSU5HXFxudmlydC9rdm0vS2NvbmZpZy05NS0gICAgICAgYm9vbFxcbnZpcnQva3ZtL0tjb25maWctOTYtXFxudmlydC9rdm0vS2NvbmZpZzo5Nzpjb25maWcgS1ZNX0VMSURFX1RMQl9GTFVTSF9JRl9ZT1VOR1xcbnZpcnQva3ZtL0tjb25maWctOTgtICAgICAgIGJvb2xcXG52aXJ0L2t2bS9LY29uZmlnLTk5LVxcbnZpcnQva3ZtL0tjb25maWc6MTAwOmNvbmZpZyBLVk1fTU1VX0xPQ0tMRVNTX0FHSU5HXFxudmlydC9rdm0vS2NvbmZpZy0xMDEtICAgICAgIGJvb2xcXG52aXJ0L2t2bS9LY29uZmlnLTEwMi1cXG52aXJ0L2t2bS9LY29uZmlnOjEwMzpjb25maWcgS1ZNX0dFTkVSSUNfTUVNT1JZX0FUVFJJQlVURVNcXG52aXJ0L2t2bS9LY29uZmlnLTEwNC0gICAgICAgYm9vbFxcbnZpcnQva3ZtL0tjb25maWctMTA1LVxcbnZpcnQva3ZtL0tjb25maWc6MTA2OmNvbmZpZyBLVk1fR1VFU1RfTUVNRkRcXG52aXJ0L2t2bS9LY29uZmlnLTEwNy0gICAgICAgc2VsZWN0IFhBUlJBWV9NVUxUSVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wNlQxNDozNjoxMy4xOTU4ODgyMDVaIiwiU2VxIjoxMywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6OTU2MDgyNzc1MSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXNpcyBvZiBLVk0gUzM5MCBNYWNoaW5lIENoZWNrIEhhbmRsaW5nIGZvciBGdXp6aW5nKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCB0YXJnZXRpbmcgdGhlIGBLVk1gIGNvbmZpZ3VyYXRpb24uIEl0IGFwcGVhcnMgdG8gbW9kaWZ5IHRoZSBmdW5jdGlvbnMgYGt2bV9zMzkwX3JlaW5qZWN0X21hY2hpbmVfY2hlY2tgIGFuZCBgczM5MF9iYWNrdXBfbWNja19pbmZvYC4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRoYXQgYm90aCBhcmUgZnVuY3Rpb25hbCBjaGFuZ2VzLCBhbmQgSSBuZWVkIHRvIGRldGVybWluZSB0aGUgYmVzdCBhcHByb2FjaCBmb3IgZnV6emluZyB0aGVtLlxuXG5ga3ZtX3MzOTBfcmVpbmplY3RfbWFjaGluZV9jaGVja2AgZ2V0cyBjYWxsZWQgZnJvbSBgdmNwdV9wb3N0X3J1bmAgYW5kIGBkb192c2llX3J1bmAsIHdoaWNoIGFyZSBrZXkgcGFydHMgb2YgS1ZNIGV4ZWN1dGlvbi4gYHMzOTBfYmFja3VwX21jY2tfaW5mb2AsIG9uIHRoZSBvdGhlciBoYW5kLCBpcyBjYWxsZWQgZnJvbSBgczM5MF9kb19tYWNoaW5lX2NoZWNrYCwgdGhlIG1hY2hpbmUgY2hlY2sgKmhhbmRsZXIqLlxuXG5NeSBmaXJzdCBpbnN0aW5jdCBpcyB0byBzZXQgYFdvcnRoRnV6emluZz10cnVlYC4gTm93LCBmb3IgZm9jdXMgc3ltYm9scywgb3JpZ2luYWxseSBJIHdhcyBnb2luZyB0byBsaXN0IGJvdGguIE15IHRoaW5raW5nIHdhcywgSSdkIGluY2x1ZGUgYGt2bV9zMzkwX3JlaW5qZWN0X21hY2hpbmVfY2hlY2tgLCBhbmQgbGlzdCBgczM5MF9iYWNrdXBfbWNja19pbmZvYCBhcyB3ZWxsLCBldmVuIGlmIGl0J3Mgc3RhdGljIGFuZCBub3QgaW5zdHJ1bWVudGVkLiBCdXQgdGhlbiBJIHJlbWVtYmVyZWQgdGhhdCB0aGUgcHJvbXB0IHNheXMgdG8gcHJlZmVyIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIEFQSSBlbnRyeXBvaW50IGZ1bmN0aW9ucy5cblxuSSBuZWVkIHRvIHJlLWV2YWx1YXRlIHdoYXQncyBhIHN1aXRhYmxlIGZvY3VzIHN5bWJvbC4gYHMzOTBfYmFja3VwX21jY2tfaW5mb2AgKmlzKiBzdGF0aWMsIHNvIHRoYXQncyBvdXQuIEhvd2V2ZXIsIGBzMzkwX2RvX21hY2hpbmVfY2hlY2tgIGlzIHRoZSBhY3R1YWwgZW50cnkgcG9pbnQgZm9yIGBzMzkwX2JhY2t1cF9tY2NrX2luZm9gLCBzbyBpdCdzIGEgZ29vZCBjYW5kaWRhdGUsIGJ1dCBpdCdzIHRoZSBtYWNoaW5lIGNoZWNrIGhhbmRsZXIgaXRzZWxmLiBNeSBndXQgc2F5cyBpdCBtaWdodCBiZSB0b3VnaCB0byB0cmlnZ2VyIHRoYXQgZGlyZWN0bHkgZnJvbSBhIGZ1enplciB1bmxlc3MgaXQgY2FuIGluamVjdCBtYWNoaW5lIGNoZWNrcywgc28gdGhlIGJlc3QgYmV0IGlzIHByb2JhYmx5IHRvIHRhcmdldCBga3ZtX3MzOTBfcmVpbmplY3RfbWFjaGluZV9jaGVja2AgaW5zdGVhZC5cblxuV2FpdCBhIHNlY29uZC4uLiBpdCBsb29rcyBsaWtlIGBrdm1fczM5MF9yZWluamVjdF9tYWNoaW5lX2NoZWNrYCBpcyBjYWxsZWQgd2hlbiBgc2llX3JldHVybmAgZXF1YWxzIGBTSUU2NF9SRVRVUk5fTUNDS2AuIFRoYXQgbWVhbnMgdGhpcyBpcyBjYWxsZWQgd2hlbiB0aGUgU0lFIGluc3RydWN0aW9uIOKAkyB0aGUgaW5zdHJ1Y3Rpb24gdGhhdCAqcnVucyogdGhlIGd1ZXN0IOKAkyBleGl0cyBkdWUgdG8gYSBtYWNoaW5lIGNoZWNrLiBPa2F5LCB0aGF0IGNoYW5nZXMgdGhpbmdzISBUaGF0IG1lYW5zIHRoZSBmdXp6ZXIgKmNhbiogZGVmaW5pdGVseSB0cmlnZ2VyIHRoaXMgYnkgZWl0aGVyIHJ1bm5pbmcgYSBndWVzdCB0aGF0IGl0c2VsZiBjYXVzZXMgYSBtYWNoaW5lIGNoZWNrLCBvciBpZiB0aGUgaG9zdCBleHBlcmllbmNlcyBhIG1hY2hpbmUgY2hlY2sgd2hpbGUgcnVubmluZyB0aGUgZ3Vlc3QuIFNvLCBJIGNhbiBtYWtlIHRoZSBmdXp6ZXIgdGFyZ2V0IHRoYXQuIFRoaXMgc2ltcGxpZmllcyB0aGluZ3MuXG5cblRoZXJlZm9yZSwgZm9yIGZvY3VzIHN5bWJvbHMsIEknbGwgbGlzdCBga3ZtX3MzOTBfcmVpbmplY3RfbWFjaGluZV9jaGVja2AsIGtub3dpbmcgaXQncyByZWFjaGFibGUgdGhyb3VnaCB0aGUgZ3Vlc3Qgb3IgaG9zdCB0cmlnZ2VyaW5nIGEgbWFjaGluZSBjaGVjay5cblxuVGhlIGltcG9ydGFudCBjb25maWcgaXMgYEtWTWAuIEknbSByZWFkeSB0byB3cml0ZSB0aGUgcmVzcG9uc2UuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjE0Nzc0LCJPdXRwdXRUb2tlbnMiOjE1MiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjUxMCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0wNlQxNDozNjoyMi43NTY3MTg1MDZaIiwiU2VxIjoxNCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo4NjQzMjg1OCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiS1ZNXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwia3ZtX3MzOTBfcmVpbmplY3RfbWFjaGluZV9jaGVja1wiLFxuICAgIFwiczM5MF9kb19tYWNoaW5lX2NoZWNrXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgaG93IG1hY2hpbmUgY2hlY2tzIGFyZSBoYW5kbGVkIGFuZCByZWluamVjdGVkIGludG8gS1ZNIGd1ZXN0cyBvbiBzMzkwLiBJdCBjaGFuZ2VzIGBrdm1fczM5MF9yZWluamVjdF9tYWNoaW5lX2NoZWNrYCB0byBhbHdheXMgaW5qZWN0IHRoZSBtYWNoaW5lIGNoZWNrIHRvIHRoZSBzcGVjaWZpYyB2Y3B1IHJhdGhlciB0aGFuIGFzIGEgZmxvYXRpbmcgbWFjaGluZSBjaGVjaywgYW5kIHVwZGF0ZXMgdGhlIGBNQ0NLX0NPREVfTk9fR1VFU1RgIG1hc2suIFRoZXNlIGFyZSBmdW5jdGlvbmFsIGNoYW5nZXMgaW4gcmVhY2hhYmxlIEtWTSBhbmQgYXJjaGl0ZWN0dXJlLXNwZWNpZmljIGNvZGUuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiS1ZNXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwia3ZtX3MzOTBfcmVpbmplY3RfbWFjaGluZV9jaGVja1wiLFxuICAgIFwiczM5MF9kb19tYWNoaW5lX2NoZWNrXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgaG93IG1hY2hpbmUgY2hlY2tzIGFyZSBoYW5kbGVkIGFuZCByZWluamVjdGVkIGludG8gS1ZNIGd1ZXN0cyBvbiBzMzkwLiBJdCBjaGFuZ2VzIGBrdm1fczM5MF9yZWluamVjdF9tYWNoaW5lX2NoZWNrYCB0byBhbHdheXMgaW5qZWN0IHRoZSBtYWNoaW5lIGNoZWNrIHRvIHRoZSBzcGVjaWZpYyB2Y3B1IHJhdGhlciB0aGFuIGFzIGEgZmxvYXRpbmcgbWFjaGluZSBjaGVjaywgYW5kIHVwZGF0ZXMgdGhlIGBNQ0NLX0NPREVfTk9fR1VFU1RgIG1hc2suIFRoZXNlIGFyZSBmdW5jdGlvbmFsIGNoYW5nZXMgaW4gcmVhY2hhYmxlIEtWTSBhbmQgYXJjaGl0ZWN0dXJlLXNwZWNpZmljIGNvZGUuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0udG9rZW5zIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnVG9vbER1ciA9IHN0YXRzLnRvb2wuY291bnQgPiAwID8gKHN0YXRzLnRvb2wuZHVyYXRpb24gLyBzdGF0cy50b29sLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCgkJCWNvbnN0IGxsbVN1bWFyeUNlbGxzID0gW3N0YXRzLmxsbS5jb3VudCwgc3RhdHMubGxtLnRva2VucywgYXZnTGxtVG9rZW4sIHN0YXRzLmxsbS5kdXJhdGlvbiwgYXZnTGxtRHVyXTsKCQkJY29uc3QgdG9vbFN1bW1hcnlDZWxscyA9IFtzdGF0cy50b29sLmNvdW50LCBzdGF0cy50b29sLmR1cmF0aW9uLCBhdmdUb29sRHVyXTsKCgkJCWNvbnN0IGxsbVN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xsbV9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJbGxtU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IGxsbVRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJbGxtU3VtYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCWxsbVRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCWxsbVN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKGxsbVRyKTsKCgkJCWNvbnN0IHRvb2xTdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b29sX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQl0b29sU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IHRvb2xUciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCXRvb2xTdW1tYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCXRvb2xUci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQl0b29sU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQodG9vbFRyKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgZmlsdGVyZWRTdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gWyJsbG0iLCAidG9vbCJdLmluY2x1ZGVzKGQuVHlwZSkpOwoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdEdXJhdGlvbicpOwoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOyAKCgkJCWZpbHRlcmVkU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCQoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7CgkJCQlsZXQgdG9vbHRpcCA9IHMuTmFtZTsKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iICYmIHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCQkJCWRhdGEuYWRkUm93KFtgJHtzLlNlcX1gLCBkdXIsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUaW1lIENvbnN1bXB0aW9uIG9mIExMTS9Ub29sIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0vVG9vbCBTdGVwcycsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdTZWNvbmRzJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkdXJhdGlvbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgbGxtU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IGQuVHlwZSA9PT0gImxsbSIpOwoJCQlpZiAobGxtU3RlcHMubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdUb2tlbnMnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAnc3R5bGUnfSk7CQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOwkKCgkJCWNvbnN0IGFnZW50Q29sb3JzID0ge307CgkJCWNvbnN0IHBhbGV0dGUgPSBbJyM0Mjg1RjQnLCAnI0RCNDQzNycsICcjRjRCNDAwJywgJyMwRjlENTgnLCAnI0FCNDdCQycsICcjMDBBQ0MxJ107CgkJCWxldCBjb2xvcklkeCA9IDA7CgkJCWNvbnN0IGFnZW50TExNQ291bnRzID0ge307CgkJCWxsbVN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQlpZiAoIWFnZW50Q29sb3JzW3MuTmFtZV0pIHsKCQkJCQlhZ2VudENvbG9yc1tzLk5hbWVdID0gcGFsZXR0ZVtjb2xvcklkeCAlIHBhbGV0dGUubGVuZ3RoXTsKCQkJCQljb2xvcklkeCsrOwoJCQkJfQoKCQkJCWFnZW50TExNQ291bnRzW3MuTmFtZV0gPSAoYWdlbnRMTE1Db3VudHNbcy5OYW1lXSB8fCAwKSArIDE7CgkJCQljb25zdCBsYWJlbCA9IGAke3MuTmFtZX0tJHthZ2VudExMTUNvdW50c1tzLk5hbWVdfWA7CgkJCQljb25zdCB0b3RhbFRva2VucyA9IHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnM7CgkJCQljb25zdCBzdHlsZSA9IGBjb2xvcjogJHthZ2VudENvbG9yc1tzLk5hbWVdfWA7CgkJCQlsZXQgdG9vbHRpcCA9IGBUb3RhbCBUb2tlbnM6ICR7dG90YWxUb2tlbnN9XG4oSW46ICR7cy5JbnB1dFRva2Vuc30sIE91dDogJHtzLk91dHB1dFRva2Vuc30sIFRob3VnaHRzOiAke3MuT3V0cHV0VGhvdWdodHNUb2tlbnN9KWA7CgkJCQlpZiAocy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoKCQkJCWRhdGEuYWRkUm93KFtsYWJlbCwgdG90YWxUb2tlbnMsIHN0eWxlLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVG9rZW4gQ29uc3VtcHRpb24gYnkgTExNIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0gQ2FsbCBTZXF1ZW5jZScsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdDb25zdW1lZCBUb2tlbnMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rva2VuX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgkJbGV0IGFsbEV4cGFuZGVkID0gZmFsc2U7CgkJZnVuY3Rpb24gdG9nZ2xlQWxsRGV0YWlscygpIHsKCQkJYWxsRXhwYW5kZWQgPSAhYWxsRXhwYW5kZWQ7CgkJCWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2RldGFpbHMnKS5mb3JFYWNoKGQgPT4gewoJCQkJaWYgKGFsbEV4cGFuZGVkKSBkLnNldEF0dHJpYnV0ZSgnb3BlbicsICcnKTsKCQkJCWVsc2UgZC5yZW1vdmVBdHRyaWJ1dGUoJ29wZW4nKTsKCQkJfSk7CgkJfQoJPC9zY3JpcHQ+CgoKPC9ib2R5Pgo8L2h0bWw+Cg==" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflow9jhvd[1] Phase: Succeeded StartedAt: 2026-08-06 14:36:33 +0000 UTC FinishedAt: 2026-08-06 14:36:33 +0000 UTC Input: nil Output: nil --------- Name: series-workflow9jhvd[1].abort-on-skip-outcome Phase: Skipped StartedAt: 2026-08-06 14:36:33 +0000 UTC FinishedAt: 2026-08-06 14:36:33 +0000 UTC Input: nil Output: nil --------- Name: series-workflow9jhvd[2] Phase: Succeeded StartedAt: 2026-08-06 14:36:33 +0000 UTC FinishedAt: 2026-08-06 15:17:25 +0000 UTC Input: nil Output: nil --------- Name: series-workflow9jhvd[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"7d3aae206663c4e006b25a1c7a20a4029e67da76","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_s390_reinject_machine_check","s390_do_machine_check"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"7d3aae206663c4e006b25a1c7a20a4029e67da76","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"a6c520f3-69e0-4674-a656-eeaf6f4159c8","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN) Phase: Succeeded StartedAt: 2026-08-06 14:36:33 +0000 UTC FinishedAt: 2026-08-06 15:17:25 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:element,Default:nil,Value:*{"base":{"arch":"amd64","commit_hash":"7d3aae206663c4e006b25a1c7a20a4029e67da76","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},"fuzz":{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_s390_reinject_machine_check","s390_do_machine_check"],"skip_cover_check":false},"patched":{"arch":"amd64","commit_hash":"7d3aae206663c4e006b25a1c7a20a4029e67da76","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"a6c520f3-69e0-4674-a656-eeaf6f4159c8","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},"retest":null,"track":"KASAN"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: nil --------- Name: series-workflow9jhvd[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"7d3aae206663c4e006b25a1c7a20a4029e67da76","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_s390_reinject_machine_check","s390_do_machine_check"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"7d3aae206663c4e006b25a1c7a20a4029e67da76","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"a6c520f3-69e0-4674-a656-eeaf6f4159c8","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[0] Phase: Succeeded StartedAt: 2026-08-06 14:36:33 +0000 UTC FinishedAt: 2026-08-06 14:36:43 +0000 UTC Input: nil Output: nil --------- Name: series-workflow9jhvd[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"7d3aae206663c4e006b25a1c7a20a4029e67da76","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_s390_reinject_machine_check","s390_do_machine_check"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"7d3aae206663c4e006b25a1c7a20a4029e67da76","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"a6c520f3-69e0-4674-a656-eeaf6f4159c8","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[0].save-base-req Phase: Succeeded StartedAt: 2026-08-06 14:36:33 +0000 UTC FinishedAt: 2026-08-06 14:36:37 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"7d3aae206663c4e006b25a1c7a20a4029e67da76","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},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-workflow9jhvd/series-workflow9jhvd-convert-artifact-1800505308/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow9jhvd[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"7d3aae206663c4e006b25a1c7a20a4029e67da76","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_s390_reinject_machine_check","s390_do_machine_check"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"7d3aae206663c4e006b25a1c7a20a4029e67da76","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"a6c520f3-69e0-4674-a656-eeaf6f4159c8","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[1] Phase: Succeeded StartedAt: 2026-08-06 14:36:43 +0000 UTC FinishedAt: 2026-08-06 14:53:24 +0000 UTC Input: nil Output: nil --------- Name: series-workflow9jhvd[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"7d3aae206663c4e006b25a1c7a20a4029e67da76","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_s390_reinject_machine_check","s390_do_machine_check"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"7d3aae206663c4e006b25a1c7a20a4029e67da76","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"a6c520f3-69e0-4674-a656-eeaf6f4159c8","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[1].base-build Phase: Succeeded StartedAt: 2026-08-06 14:36:43 +0000 UTC FinishedAt: 2026-08-06 14:53:24 +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:*da41da48-0b1d-43a8-8a25-876bc0ccdef5,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-workflow9jhvd/series-workflow9jhvd-convert-artifact-1800505308/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": "0740e4cf-1e96-4cd6-b0b4-51ed73f652a6", "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-workflow9jhvd/series-workflow9jhvd-build-action-3122903818/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow9jhvd[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"7d3aae206663c4e006b25a1c7a20a4029e67da76","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_s390_reinject_machine_check","s390_do_machine_check"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"7d3aae206663c4e006b25a1c7a20a4029e67da76","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"a6c520f3-69e0-4674-a656-eeaf6f4159c8","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[1].base-build(0) Phase: Succeeded StartedAt: 2026-08-06 14:36:43 +0000 UTC FinishedAt: 2026-08-06 14:53:14 +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:*da41da48-0b1d-43a8-8a25-876bc0ccdef5,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-workflow9jhvd/series-workflow9jhvd-convert-artifact-1800505308/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": "0740e4cf-1e96-4cd6-b0b4-51ed73f652a6", "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-workflow9jhvd/series-workflow9jhvd-build-action-3122903818/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow9jhvd[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"7d3aae206663c4e006b25a1c7a20a4029e67da76","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_s390_reinject_machine_check","s390_do_machine_check"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"7d3aae206663c4e006b25a1c7a20a4029e67da76","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"a6c520f3-69e0-4674-a656-eeaf6f4159c8","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[2] Phase: Succeeded StartedAt: 2026-08-06 14:53:24 +0000 UTC FinishedAt: 2026-08-06 14:53:24 +0000 UTC Input: nil Output: nil --------- Name: series-workflow9jhvd[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"7d3aae206663c4e006b25a1c7a20a4029e67da76","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_s390_reinject_machine_check","s390_do_machine_check"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"7d3aae206663c4e006b25a1c7a20a4029e67da76","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"a6c520f3-69e0-4674-a656-eeaf6f4159c8","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[2].abort-if-base-build-failed Phase: Skipped StartedAt: 2026-08-06 14:53:24 +0000 UTC FinishedAt: 2026-08-06 14:53:24 +0000 UTC Input: nil Output: nil --------- Name: series-workflow9jhvd[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"7d3aae206663c4e006b25a1c7a20a4029e67da76","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_s390_reinject_machine_check","s390_do_machine_check"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"7d3aae206663c4e006b25a1c7a20a4029e67da76","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"a6c520f3-69e0-4674-a656-eeaf6f4159c8","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[3] Phase: Succeeded StartedAt: 2026-08-06 14:53:24 +0000 UTC FinishedAt: 2026-08-06 14:53:34 +0000 UTC Input: nil Output: nil --------- Name: series-workflow9jhvd[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"7d3aae206663c4e006b25a1c7a20a4029e67da76","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_s390_reinject_machine_check","s390_do_machine_check"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"7d3aae206663c4e006b25a1c7a20a4029e67da76","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"a6c520f3-69e0-4674-a656-eeaf6f4159c8","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[3].save-patched-req Phase: Succeeded StartedAt: 2026-08-06 14:53:24 +0000 UTC FinishedAt: 2026-08-06 14:53:29 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"7d3aae206663c4e006b25a1c7a20a4029e67da76","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"a6c520f3-69e0-4674-a656-eeaf6f4159c8","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},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-workflow9jhvd/series-workflow9jhvd-convert-artifact-3671787035/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow9jhvd[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"7d3aae206663c4e006b25a1c7a20a4029e67da76","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_s390_reinject_machine_check","s390_do_machine_check"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"7d3aae206663c4e006b25a1c7a20a4029e67da76","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"a6c520f3-69e0-4674-a656-eeaf6f4159c8","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[4] Phase: Succeeded StartedAt: 2026-08-06 14:53:34 +0000 UTC FinishedAt: 2026-08-06 14:55:39 +0000 UTC Input: nil Output: nil --------- Name: series-workflow9jhvd[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"7d3aae206663c4e006b25a1c7a20a4029e67da76","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_s390_reinject_machine_check","s390_do_machine_check"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"7d3aae206663c4e006b25a1c7a20a4029e67da76","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"a6c520f3-69e0-4674-a656-eeaf6f4159c8","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[4].boot-test-base Phase: Succeeded StartedAt: 2026-08-06 14:53:34 +0000 UTC FinishedAt: 2026-08-06 14:55:29 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*0740e4cf-1e96-4cd6-b0b4-51ed73f652a6,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-workflow9jhvd/series-workflow9jhvd-build-action-3122903818/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-workflow9jhvd[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"7d3aae206663c4e006b25a1c7a20a4029e67da76","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_s390_reinject_machine_check","s390_do_machine_check"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"7d3aae206663c4e006b25a1c7a20a4029e67da76","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"a6c520f3-69e0-4674-a656-eeaf6f4159c8","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[5] Phase: Succeeded StartedAt: 2026-08-06 14:55:39 +0000 UTC FinishedAt: 2026-08-06 14:55:39 +0000 UTC Input: nil Output: nil --------- Name: series-workflow9jhvd[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"7d3aae206663c4e006b25a1c7a20a4029e67da76","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_s390_reinject_machine_check","s390_do_machine_check"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"7d3aae206663c4e006b25a1c7a20a4029e67da76","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"a6c520f3-69e0-4674-a656-eeaf6f4159c8","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[5].abort-if-base-boot-failed Phase: Skipped StartedAt: 2026-08-06 14:55:39 +0000 UTC FinishedAt: 2026-08-06 14:55:39 +0000 UTC Input: nil Output: nil --------- Name: series-workflow9jhvd[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"7d3aae206663c4e006b25a1c7a20a4029e67da76","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_s390_reinject_machine_check","s390_do_machine_check"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"7d3aae206663c4e006b25a1c7a20a4029e67da76","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"a6c520f3-69e0-4674-a656-eeaf6f4159c8","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[6] Phase: Succeeded StartedAt: 2026-08-06 14:55:39 +0000 UTC FinishedAt: 2026-08-06 15:12:02 +0000 UTC Input: nil Output: nil --------- Name: series-workflow9jhvd[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"7d3aae206663c4e006b25a1c7a20a4029e67da76","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_s390_reinject_machine_check","s390_do_machine_check"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"7d3aae206663c4e006b25a1c7a20a4029e67da76","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"a6c520f3-69e0-4674-a656-eeaf6f4159c8","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[6].patched-build Phase: Succeeded StartedAt: 2026-08-06 14:55:39 +0000 UTC FinishedAt: 2026-08-06 15:12:02 +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:*da41da48-0b1d-43a8-8a25-876bc0ccdef5,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-workflow9jhvd/series-workflow9jhvd-convert-artifact-3671787035/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": "2616a16d-9e30-42d7-b3dc-a38f9e5f2531", "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-workflow9jhvd/series-workflow9jhvd-build-action-1026191807/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow9jhvd[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"7d3aae206663c4e006b25a1c7a20a4029e67da76","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_s390_reinject_machine_check","s390_do_machine_check"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"7d3aae206663c4e006b25a1c7a20a4029e67da76","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"a6c520f3-69e0-4674-a656-eeaf6f4159c8","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[6].patched-build(0) Phase: Succeeded StartedAt: 2026-08-06 14:55:39 +0000 UTC FinishedAt: 2026-08-06 15:11:52 +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:*da41da48-0b1d-43a8-8a25-876bc0ccdef5,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-workflow9jhvd/series-workflow9jhvd-convert-artifact-3671787035/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": "2616a16d-9e30-42d7-b3dc-a38f9e5f2531", "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-workflow9jhvd/series-workflow9jhvd-build-action-1026191807/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow9jhvd[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"7d3aae206663c4e006b25a1c7a20a4029e67da76","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_s390_reinject_machine_check","s390_do_machine_check"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"7d3aae206663c4e006b25a1c7a20a4029e67da76","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"a6c520f3-69e0-4674-a656-eeaf6f4159c8","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[7] Phase: Succeeded StartedAt: 2026-08-06 15:12:02 +0000 UTC FinishedAt: 2026-08-06 15:12:02 +0000 UTC Input: nil Output: nil --------- Name: series-workflow9jhvd[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"7d3aae206663c4e006b25a1c7a20a4029e67da76","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_s390_reinject_machine_check","s390_do_machine_check"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"7d3aae206663c4e006b25a1c7a20a4029e67da76","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"a6c520f3-69e0-4674-a656-eeaf6f4159c8","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[7].abort-if-patched-build-failed Phase: Skipped StartedAt: 2026-08-06 15:12:02 +0000 UTC FinishedAt: 2026-08-06 15:12:02 +0000 UTC Input: nil Output: nil --------- Name: series-workflow9jhvd[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"7d3aae206663c4e006b25a1c7a20a4029e67da76","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_s390_reinject_machine_check","s390_do_machine_check"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"7d3aae206663c4e006b25a1c7a20a4029e67da76","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"a6c520f3-69e0-4674-a656-eeaf6f4159c8","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[8] Phase: Succeeded StartedAt: 2026-08-06 15:12:02 +0000 UTC FinishedAt: 2026-08-06 15:14:31 +0000 UTC Input: nil Output: nil --------- Name: series-workflow9jhvd[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"7d3aae206663c4e006b25a1c7a20a4029e67da76","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_s390_reinject_machine_check","s390_do_machine_check"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"7d3aae206663c4e006b25a1c7a20a4029e67da76","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"a6c520f3-69e0-4674-a656-eeaf6f4159c8","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[8].boot-test-patched Phase: Succeeded StartedAt: 2026-08-06 15:12:02 +0000 UTC FinishedAt: 2026-08-06 15:14:21 +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:*2616a16d-9e30-42d7-b3dc-a38f9e5f2531,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-workflow9jhvd/series-workflow9jhvd-build-action-1026191807/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-workflow9jhvd[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"7d3aae206663c4e006b25a1c7a20a4029e67da76","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_s390_reinject_machine_check","s390_do_machine_check"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"7d3aae206663c4e006b25a1c7a20a4029e67da76","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"a6c520f3-69e0-4674-a656-eeaf6f4159c8","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[10] Phase: Succeeded StartedAt: 2026-08-06 15:14:31 +0000 UTC FinishedAt: 2026-08-06 15:17:25 +0000 UTC Input: nil Output: nil --------- Name: series-workflow9jhvd[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"7d3aae206663c4e006b25a1c7a20a4029e67da76","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_s390_reinject_machine_check","s390_do_machine_check"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"7d3aae206663c4e006b25a1c7a20a4029e67da76","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"a6c520f3-69e0-4674-a656-eeaf6f4159c8","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[10].run-fuzz Phase: Succeeded StartedAt: 2026-08-06 15:14:31 +0000 UTC FinishedAt: 2026-08-06 15:17:25 +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_s390_reinject_machine_check","s390_do_machine_check"],"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:*0740e4cf-1e96-4cd6-b0b4-51ed73f652a6,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*2616a16d-9e30-42d7-b3dc-a38f9e5f2531,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-workflow9jhvd/series-workflow9jhvd-build-action-3122903818/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-workflow9jhvd/series-workflow9jhvd-build-action-1026191807/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: nil --------- Name: series-workflow9jhvd[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"7d3aae206663c4e006b25a1c7a20a4029e67da76","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_s390_reinject_machine_check","s390_do_machine_check"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"7d3aae206663c4e006b25a1c7a20a4029e67da76","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"a6c520f3-69e0-4674-a656-eeaf6f4159c8","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[10].run-fuzz[0] Phase: Succeeded StartedAt: 2026-08-06 15:14:31 +0000 UTC FinishedAt: 2026-08-06 15:14:41 +0000 UTC Input: nil Output: nil --------- Name: series-workflow9jhvd[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"7d3aae206663c4e006b25a1c7a20a4029e67da76","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_s390_reinject_machine_check","s390_do_machine_check"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"7d3aae206663c4e006b25a1c7a20a4029e67da76","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"a6c520f3-69e0-4674-a656-eeaf6f4159c8","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[10].run-fuzz[0].save-fuzz-config Phase: Succeeded StartedAt: 2026-08-06 15:14:31 +0000 UTC FinishedAt: 2026-08-06 15:14:35 +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_s390_reinject_machine_check","s390_do_machine_check"],"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-workflow9jhvd/series-workflow9jhvd-convert-artifact-2476134420/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow9jhvd[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"7d3aae206663c4e006b25a1c7a20a4029e67da76","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_s390_reinject_machine_check","s390_do_machine_check"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"7d3aae206663c4e006b25a1c7a20a4029e67da76","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"a6c520f3-69e0-4674-a656-eeaf6f4159c8","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[10].run-retest Phase: Skipped StartedAt: 2026-08-06 15:14:31 +0000 UTC FinishedAt: 2026-08-06 15:14:31 +0000 UTC Input: nil Output: nil --------- Name: series-workflow9jhvd[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"7d3aae206663c4e006b25a1c7a20a4029e67da76","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_s390_reinject_machine_check","s390_do_machine_check"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"7d3aae206663c4e006b25a1c7a20a4029e67da76","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"a6c520f3-69e0-4674-a656-eeaf6f4159c8","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[9] Phase: Succeeded StartedAt: 2026-08-06 15:14:31 +0000 UTC FinishedAt: 2026-08-06 15:14:31 +0000 UTC Input: nil Output: nil --------- Name: series-workflow9jhvd[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"7d3aae206663c4e006b25a1c7a20a4029e67da76","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_s390_reinject_machine_check","s390_do_machine_check"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"7d3aae206663c4e006b25a1c7a20a4029e67da76","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"a6c520f3-69e0-4674-a656-eeaf6f4159c8","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[9].abort-if-patched-boot-failed Phase: Skipped StartedAt: 2026-08-06 15:14:31 +0000 UTC FinishedAt: 2026-08-06 15:14:31 +0000 UTC Input: nil Output: nil --------- Name: series-workflow9jhvd[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"7d3aae206663c4e006b25a1c7a20a4029e67da76","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_s390_reinject_machine_check","s390_do_machine_check"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"7d3aae206663c4e006b25a1c7a20a4029e67da76","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"a6c520f3-69e0-4674-a656-eeaf6f4159c8","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[10].run-fuzz[1] Phase: Succeeded StartedAt: 2026-08-06 15:14:41 +0000 UTC FinishedAt: 2026-08-06 15:17:25 +0000 UTC Input: nil Output: nil --------- Name: series-workflow9jhvd[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"7d3aae206663c4e006b25a1c7a20a4029e67da76","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_s390_reinject_machine_check","s390_do_machine_check"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"7d3aae206663c4e006b25a1c7a20a4029e67da76","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"a6c520f3-69e0-4674-a656-eeaf6f4159c8","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[10].run-fuzz[1].fuzz Phase: Succeeded StartedAt: 2026-08-06 15:14:41 +0000 UTC FinishedAt: 2026-08-06 15:17:03 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*0740e4cf-1e96-4cd6-b0b4-51ed73f652a6,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*2616a16d-9e30-42d7-b3dc-a38f9e5f2531,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-workflow9jhvd/series-workflow9jhvd-build-action-3122903818/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-workflow9jhvd/series-workflow9jhvd-build-action-1026191807/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-workflow9jhvd/series-workflow9jhvd-convert-artifact-2476134420/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,}