Name: series-workflowm6gmb Phase: Succeeded StartedAt: 2026-08-24 00:47:57 +0000 UTC FinishedAt: 2026-08-24 04:57:08 +0000 UTC Input: nil Output: nil --------- Name: series-workflowm6gmb[0] Phase: Succeeded StartedAt: 2026-08-24 00:47:57 +0000 UTC FinishedAt: 2026-08-24 01:17:33 +0000 UTC Input: nil Output: nil --------- Name: series-workflowm6gmb[0].run-triage Phase: Succeeded StartedAt: 2026-08-24 00:47:57 +0000 UTC FinishedAt: 2026-08-24 01:17:33 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "wireless-next", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git", "commit_hash": "29703d7813f991e4ef80741ee15fe30e529a2192", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "CFG80211", "MAC80211", "MAC80211_HWSIM" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "wireless-next", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git", "commit_hash": "29703d7813f991e4ef80741ee15fe30e529a2192", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "CFG80211", "MAC80211", "MAC80211_HWSIM" ], "series_id": "1e936e1b-85b7-42a7-aafa-5dc9c1c2afea" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [ "ieee80211_add_iface", "ieee80211_change_iface" ], "corpus_urls": [ "https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db" ], "skip_cover_check": false, "bug_title_re": "" }, "retest": null } ], "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzI0IDAxOjE2PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0NGRzgwMjExJiMzNDssCiAgICAmIzM0O01BQzgwMjExJiMzNDssCiAgICAmIzM0O01BQzgwMjExX0hXU0lNJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7aWVlZTgwMjExX2FkZF9pZmFjZSYjMzQ7LAogICAgJiMzNDtpZWVlODAyMTFfY2hhbmdlX2lmYWNlJiMzNDsKICBdLAogICYjMzQ7S01TQU5SZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggYWRkcyBhIHZhbGlkYXRpb24gY2hlY2sgaW4gYGllZWU4MDIxMV9zZXRfbW9uX29wdGlvbnNgIHRvIHByZXZlbnQgc2V0dGluZyB0aGUgYE1PTklUT1JfRkxBR19BQ1RJVkVgIGZsYWcgaWYgYHNkYXRhLVx1MDAzZXZpZi50eHFgIGlzIE5VTEwuIFRoaXMgcHJldmVudHMgYSBwb3RlbnRpYWwgTlVMTCBwb2ludGVyIGRlcmVmZXJlbmNlIG9yIGludmFsaWQgc3RhdGUgd2hlbiB0aGUgZHJpdmVyIGlzIGhhbmRlZCBhIE5VTEwgYHZpZi1cdTAwM2V0eHFgLiBOVUxMIHBvaW50ZXIgZGVyZWZlcmVuY2VzIGFuZCBpbnZhbGlkIHN0YXRlIGJ1Z3MgYXJlIGNhdWdodCBieSBzdGFuZGFyZCBrZXJuZWwgY2hlY2tzIGFuZCBLQVNBTi4gVGhlIHBhdGNoIGRvZXMgbm90IGludHJvZHVjZSBvciBleHBvc2UgYW55IHVuaW5pdGlhbGl6ZWQgbWVtb3J5IHJlYWRzIG9yIGluZm8tbGVha3MsIHNvIGEgZGVkaWNhdGVkIEtNU0FOIGZ1enppbmcgc2Vzc2lvbiBpcyBub3QgbmVlZGVkLiYjMzQ7LAogICYjMzQ7TmVlZHNLTVNBTiYjMzQ7OiBmYWxzZSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBhZGRzIGEgY2hlY2sgaW4gYGllZWU4MDIxMV9zZXRfbW9uX29wdGlvbnNgIHRvIHByZXZlbnQgYSBOVUxMIHBvaW50ZXIgZGVyZWZlcmVuY2Ugd2hlbiBjb25maWd1cmluZyBhbiBhY3RpdmUgbW9uaXRvciBpbnRlcmZhY2Ugd2l0aG91dCBhIFRYIHF1ZXVlLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIG1hYzgwMjExIGNvcmUgbG9naWMsIHJlYWNoYWJsZSB2aWEgdGhlIG5sODAyMTEgbmV0bGluayBpbnRlcmZhY2UgKGUuZy4sIHdoZW4gYWRkaW5nIG9yIGNoYW5naW5nIGEgdmlydHVhbCBpbnRlcmZhY2UpLiBJdCBjYW4gYmUgdGVzdGVkIHVzaW5nIHRoZSBzb2Z0d2FyZS1lbXVsYXRlZCBgbWFjODAyMTFfaHdzaW1gIGRyaXZlci4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yNCAwMToxNjwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IGE2MTdjNjc3ZDQzN2E1ZmQ1YzE4NDU3MTI4ZGY5MjE4ZTcxNGMzMWVcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgTW9uIEF1ZyAyNCAwMToxNjoyMiAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9uZXQvbWFjODAyMTEvY2ZnLmMgYi9uZXQvbWFjODAyMTEvY2ZnLmNcbmluZGV4IGI2MTYzZGNjN2U5MmMuLjUyM2NlZjBhNTUyNjEgMTAwNjQ0XG4tLS0gYS9uZXQvbWFjODAyMTEvY2ZnLmNcbiYjNDM7JiM0MzsmIzQzOyBiL25ldC9tYWM4MDIxMS9jZmcuY1xuQEAgLTExNSw2ICYjNDM7MTE1LDE1IEBAIHN0YXRpYyBpbnQgaWVlZTgwMjExX3NldF9tb25fb3B0aW9ucyhzdHJ1Y3QgaWVlZTgwMjExX3N1Yl9pZl9kYXRhICpzZGF0YSxcbiBcdFx0XHRyZXR1cm4gLUVCVVNZO1xuIFx0fVxuIFxuJiM0MztcdC8qXG4mIzQzO1x0ICogQW4gYWN0aXZlIG1vbml0b3IgaXMgcGFzc2VkIHRvIHRoZSBkcml2ZXIgYW5kIG5lZWRzIGEgVFhRLCB3aGljaCBpc1xuJiM0MztcdCAqIHJlc2VydmVkIHdpdGggdGhlIG5ldGRldiBpbiBpZWVlODAyMTFfaWZfYWRkKCkgYW5kIGNhbm5vdCBiZSBhZGRlZFxuJiM0MztcdCAqIGxhdGVyLiAgQW4gaW50ZXJmYWNlIGNyZWF0ZWQgd2l0aG91dCB0aGUgZmxhZyBoYXMgbm9uZSwgc28gcmVmdXNlIHRvXG4mIzQzO1x0ICogc2V0IGl0IHJhdGhlciB0aGFuIGhhbmQgdGhlIGRyaXZlciBhIE5VTEwgdmlmLVx1MDAzZXR4cS5cbiYjNDM7XHQgKi9cbiYjNDM7XHRpZiAoKHBhcmFtcy1cdTAwM2VmbGFncyBcdTAwMjYgTU9OSVRPUl9GTEFHX0FDVElWRSkgXHUwMDI2XHUwMDI2ICFzZGF0YS1cdTAwM2V2aWYudHhxKVxuJiM0MztcdFx0cmV0dXJuIC1FT1BOT1RTVVBQO1xuJiM0MztcbiBcdC8qIHZhbGlkYXRlIHdoZXRoZXIgTVUtTUlNTyBjYW4gYmUgY29uZmlndXJlZCAqL1xuIFx0aWYgKCFpZWVlODAyMTFfaHdfY2hlY2soXHUwMDI2bG9jYWwtXHUwMDNlaHcsIFdBTlRfTU9OSVRPUl9WSUYpIFx1MDAyNlx1MDAyNlxuIFx0ICAgICFpZWVlODAyMTFfaHdfY2hlY2soXHUwMDI2bG9jYWwtXHUwMDNlaHcsIE5PX1ZJUlRVQUxfTU9OSVRPUikgXHUwMDI2XHUwMDI2XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjQgMDE6MTY8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+YmVzdC1leHBlbnNpdmU8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0NGRzgwMjExJiMzNDssCiAgICAmIzM0O01BQzgwMjExJiMzNDssCiAgICAmIzM0O01BQzgwMjExX0hXU0lNJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7aWVlZTgwMjExX2FkZF9pZmFjZSYjMzQ7LAogICAgJiMzNDtpZWVlODAyMTFfY2hhbmdlX2lmYWNlJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGFkZHMgYSBjaGVjayBpbiBgaWVlZTgwMjExX3NldF9tb25fb3B0aW9uc2AgdG8gcHJldmVudCBhIE5VTEwgcG9pbnRlciBkZXJlZmVyZW5jZSB3aGVuIGNvbmZpZ3VyaW5nIGFuIGFjdGl2ZSBtb25pdG9yIGludGVyZmFjZSB3aXRob3V0IGEgVFggcXVldWUuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgbWFjODAyMTEgY29yZSBsb2dpYywgcmVhY2hhYmxlIHZpYSB0aGUgbmw4MDIxMSBuZXRsaW5rIGludGVyZmFjZSAoZS5nLiwgd2hlbiBhZGRpbmcgb3IgY2hhbmdpbmcgYSB2aXJ0dWFsIGludGVyZmFjZSkuIEl0IGNhbiBiZSB0ZXN0ZWQgdXNpbmcgdGhlIHNvZnR3YXJlLWVtdWxhdGVkIGBtYWM4MDIxMV9od3NpbWAgZHJpdmVyLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmUKaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseQp1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLgoKUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczoKLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLgotIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLgotIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy4KLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsCiAgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLgotIENvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLAogIGlvbmljLCBhbWRncHUpIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLgotIERyaXZlciAucmVtb3ZlLCAuc2h1dGRvd24sIG9yIHBjaV91bnJlZ2lzdGVyX2RyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKGUuZy4sIGlnYl9yZW1vdmUpCiAgdGhhdCBhcmUgZXhlY3V0ZWQgb25seSBkdXJpbmcgUENJIGhvdC11bnBsdWcgb3Igc3lzZnMgZHJpdmVyIHVuYmluZCBvcGVyYXRpb25zLgoKSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaAp0b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS4KCldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOgoxLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLgogICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy4KICAgUHJlZmVyIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIEFQSSBlbnRyeXBvaW50IGZ1bmN0aW9ucyBvdmVyIGludGVybmFsIHN0YXRpYyBoZWxwZXIgZnVuY3Rpb25zCiAgICh3aGljaCBhcmUgaW5saW5lZCBieSB0aGUgY29tcGlsZXIgYW5kIGRvIG5vdCBoYXZlIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMpLgoyLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS4KICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLgogICBBbHNvIGNoZWNrICYjMzQ7ZGVwZW5kcyBvbiYjMzQ7IGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlncwogICBuZWVkZWQgZm9yIEtidWlsZCB0byBjb21waWxlIHRoZSBjb2RlIHN0YXRpY2FsbHkgaW50byB2bWxpbnV4LiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3MKICAgb3V0cHV0IGFycmF5LCBhbmQgRE8gTk9UIGFkZCBhICYjMzk7Q09ORklHXyYjMzk7IHByZWZpeCAoZS5nLiwgcmV0dXJuICYjMzQ7TkVUX0lQVjQmIzM0OyBpbnN0ZWFkIG9mICYjMzQ7Q09ORklHX05FVF9JUFY0JiMzNDspLgpQcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy4KCgpVc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLgpJdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS4KSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlByb21wdDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOgpjb21taXQgYTYxN2M2NzdkNDM3YTVmZDVjMTg0NTcxMjhkZjkyMThlNzE0YzMxZQpBdXRob3I6IHN5ei1jbHVzdGVyICZsdDt0cmlhZ2VAc3l6a2FsbGVyLmNvbSZndDsKRGF0ZTogICBNb24gQXVnIDI0IDAxOjE2OjIyIDIwMjYgJiM0MzswMDAwCgogICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3CgpkaWZmIC0tZ2l0IGEvbmV0L21hYzgwMjExL2NmZy5jIGIvbmV0L21hYzgwMjExL2NmZy5jCmluZGV4IGI2MTYzZGNjN2U5MmMuLjUyM2NlZjBhNTUyNjEgMTAwNjQ0Ci0tLSBhL25ldC9tYWM4MDIxMS9jZmcuYwomIzQzOyYjNDM7JiM0MzsgYi9uZXQvbWFjODAyMTEvY2ZnLmMKQEAgLTExNSw2ICYjNDM7MTE1LDE1IEBAIHN0YXRpYyBpbnQgaWVlZTgwMjExX3NldF9tb25fb3B0aW9ucyhzdHJ1Y3QgaWVlZTgwMjExX3N1Yl9pZl9kYXRhICpzZGF0YSwKIAkJCXJldHVybiAtRUJVU1k7CiAJfQogCiYjNDM7CS8qCiYjNDM7CSAqIEFuIGFjdGl2ZSBtb25pdG9yIGlzIHBhc3NlZCB0byB0aGUgZHJpdmVyIGFuZCBuZWVkcyBhIFRYUSwgd2hpY2ggaXMKJiM0MzsJICogcmVzZXJ2ZWQgd2l0aCB0aGUgbmV0ZGV2IGluIGllZWU4MDIxMV9pZl9hZGQoKSBhbmQgY2Fubm90IGJlIGFkZGVkCiYjNDM7CSAqIGxhdGVyLiAgQW4gaW50ZXJmYWNlIGNyZWF0ZWQgd2l0aG91dCB0aGUgZmxhZyBoYXMgbm9uZSwgc28gcmVmdXNlIHRvCiYjNDM7CSAqIHNldCBpdCByYXRoZXIgdGhhbiBoYW5kIHRoZSBkcml2ZXIgYSBOVUxMIHZpZi0mZ3Q7dHhxLgomIzQzOwkgKi8KJiM0MzsJaWYgKChwYXJhbXMtJmd0O2ZsYWdzICZhbXA7IE1PTklUT1JfRkxBR19BQ1RJVkUpICZhbXA7JmFtcDsgIXNkYXRhLSZndDt2aWYudHhxKQomIzQzOwkJcmV0dXJuIC1FT1BOT1RTVVBQOwomIzQzOwogCS8qIHZhbGlkYXRlIHdoZXRoZXIgTVUtTUlNTyBjYW4gYmUgY29uZmlndXJlZCAqLwogCWlmICghaWVlZTgwMjExX2h3X2NoZWNrKCZhbXA7bG9jYWwtJmd0O2h3LCBXQU5UX01PTklUT1JfVklGKSAmYW1wOyZhbXA7CiAJICAgICFpZWVlODAyMTFfaHdfY2hlY2soJmFtcDtsb2NhbC0mZ3Q7aHcsIE5PX1ZJUlRVQUxfTU9OSVRPUikgJmFtcDsmYW1wOwo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yNCAwMToxNjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyMTQ4CgkJCQkJCQlvdXRwdXQ6IDQ1CgkJCQkJCQl0aG91Z2h0czogMjUwCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgbWFjODAyMTEgUGF0Y2ggZm9yIE1vbml0b3IgTW9kZSBDb25maWd1cmF0aW9uKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIHBhdGNoIGluIGBuZXQvbWFjODAyMTEvY2ZnLmNgLCBhbmQgaXQmIzM5O3MgbWFraW5nIGEgcHJldHR5IHNlbnNpYmxlIGNoZWNrIHdpdGhpbiBgaWVlZTgwMjExX3NldF9tb25fb3B0aW9uc2AuIEl0JiMzOTtzIGFkZHJlc3NpbmcgYSBjcml0aWNhbCBpc3N1ZSByZWxhdGVkIHRvIGFjdGl2ZSBtb25pdG9yIGludGVyZmFjZXMuIEJhc2ljYWxseSwgaWYgdGhlIGBNT05JVE9SX0ZMQUdfQUNUSVZFYCBmbGFnIGlzIHNldCwgdGhlIGRyaXZlciAqbmVlZHMqIGEgdHJhbnNtaXQgcXVldWUgKHR4cSkuIFRoaXMgcXVldWUgaXMgZXN0YWJsaXNoZWQgZHVyaW5nIHRoZSBuZXR3b3JrIGRldmljZSBzZXR1cCBpbiBgaWVlZTgwMjExX2lmX2FkZCgpYC4gVGhlIHBhdGNoLCBhcyBJIHNlZSBpdCwgcHJldmVudHMgYSBwb3RlbnRpYWwgcHJvYmxlbSB3aGVyZSB3ZSYjMzk7ZCB0cnkgdG8gdXNlIGEgbnVsbCBgdmlmLSZndDt0eHFgLiBUaGUgY29kZSBpcyByZWplY3RpbmcgdGhlIG9wZXJhdGlvbiBpZiB0aGUgYE1PTklUT1JfRkxBR19BQ1RJVkVgIGJpdCBpcyBzZXQsIGJ1dCB0aGUgaW50ZXJmYWNlIHdhcyBjcmVhdGVkIHdpdGhvdXQgYSB0cmFuc21pdCBxdWV1ZSwgcmV0dXJuaW5nIGFuIGBFT1BOT1RTVVBQYCBlcnJvci4gSXQmIzM5O3MgYSBuaWNlLCBmb2N1c2VkIHBpZWNlIG9mIGRlZmVuc2l2ZSBwcm9ncmFtbWluZywgYWltZWQgYXQgcHJldmVudGluZyBhIGNyYXNoIG9yLCB3b3JzZSwgdW5kZWZpbmVkIGJlaGF2aW9yIGR1ZSB0byBhIG51bGwgcG9pbnRlciBkZXJlZmVyZW5jZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yNCAwMToxNjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtpZWVlODAyMTFfc2V0X21vbl9vcHRpb25zJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7bmV0L21hYzgwMjExL2NmZy5jJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O25ldC9tYWM4MDIxMS9jZmcuYz01MD1zdGF0aWMgdm9pZCBpZWVlODAyMTFfc2V0X211X21pbW9fZm9sbG93KHN0cnVjdCBpZWVlODAyMTFfc3ViX2lmX2RhdGEgKnNkYXRhLFxuLS1cbm5ldC9tYWM4MDIxMS9jZmcuYy05NS1cbm5ldC9tYWM4MDIxMS9jZmcuYzo5NjpzdGF0aWMgaW50IGllZWU4MDIxMV9zZXRfbW9uX29wdGlvbnMoc3RydWN0IGllZWU4MDIxMV9zdWJfaWZfZGF0YSAqc2RhdGEsXG5uZXQvbWFjODAyMTEvY2ZnLmMtOTctXHRcdFx0XHQgICAgIHN0cnVjdCB2aWZfcGFyYW1zICpwYXJhbXMpXG4tLVxubmV0L21hYzgwMjExL2NmZy5jPTIxNT1zdGF0aWMgc3RydWN0IHdpcmVsZXNzX2RldiAqaWVlZTgwMjExX2FkZF9pZmFjZShzdHJ1Y3Qgd2lwaHkgKndpcGh5LFxuLS1cbm5ldC9tYWM4MDIxMS9jZmcuYy0yMzItXHRpZiAodHlwZSA9PSBOTDgwMjExX0lGVFlQRV9NT05JVE9SKSB7XG5uZXQvbWFjODAyMTEvY2ZnLmM6MjMzOlx0XHRlcnIgPSBpZWVlODAyMTFfc2V0X21vbl9vcHRpb25zKHNkYXRhLCBwYXJhbXMpO1xubmV0L21hYzgwMjExL2NmZy5jLTIzNC1cdFx0aWYgKGVycikge1xuLS1cbm5ldC9tYWM4MDIxMS9jZmcuYz0yNjg9c3RhdGljIGludCBpZWVlODAyMTFfY2hhbmdlX2lmYWNlKHN0cnVjdCB3aXBoeSAqd2lwaHksXG4tLVxubmV0L21hYzgwMjExL2NmZy5jLTMxMC1cdGlmIChzZGF0YS1cdTAwM2V2aWYudHlwZSA9PSBOTDgwMjExX0lGVFlQRV9NT05JVE9SKSB7XG5uZXQvbWFjODAyMTEvY2ZnLmM6MzExOlx0XHRyZXQgPSBpZWVlODAyMTFfc2V0X21vbl9vcHRpb25zKHNkYXRhLCBwYXJhbXMpO1xubmV0L21hYzgwMjExL2NmZy5jLTMxMi1cdFx0aWYgKHJldClcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yNCAwMToxNjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzMTM2CgkJCQkJCQlvdXRwdXQ6IDQ0CgkJCQkJCQl0aG91Z2h0czogOTIKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBJRUVFIDgwMi4xMSBJbnRlcmZhY2UgQ29uZmlndXJhdGlvbioqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhpcyBgaWVlZTgwMjExX3NldF9tb25fb3B0aW9uc2AgZnVuY3Rpb24uIEl0JiMzOTtzIGRlY2xhcmVkIGFzIHN0YXRpYywgd2hpY2ggaW1tZWRpYXRlbHkgbGltaXRzIGl0cyBzY29wZS4gSXQmIzM5O3Mgb25seSBjYWxsYWJsZSBmcm9tIHdpdGhpbiB0aGlzIHBhcnRpY3VsYXIgc291cmNlIGZpbGUuIFRoYXQmIzM5O3MgZ29vZCB0byBrbm93LiBOb3csIHRoZSBrZXkgaXMgdW5kZXJzdGFuZGluZyAqd2hlcmUqIGl0JiMzOTtzIGJlaW5nIHVzZWQuIEkgc2VlIGl0JiMzOTtzIGNhbGxlZCBmcm9tIGBpZWVlODAyMTFfYWRkX2lmYWNlYCBhbmQgYGllZWU4MDIxMV9jaGFuZ2VfaWZhY2VgLiBUbyBnZXQgYSBjb21wbGV0ZSBwaWN0dXJlLCBJIG5lZWQgdG8gY29uZmlybSB3aGV0aGVyICp0aG9zZSogZnVuY3Rpb25zIGFyZSBzdGF0aWMgYXMgd2VsbC4gQXJlIHRoZSBmdW5jdGlvbnMgdGhhdCBjYWxsIHRoaXMgZnVuY3Rpb24gYWxzbyBzdGF0aWMsIGxpbWl0aW5nIHRoZWlyIHNjb3BlPyBVbmRlcnN0YW5kaW5nIHRoaXMgd2lsbCBoZWxwIG1lIGRldGVybWluZSB0aGUgYnJvYWRlciBpbXBsaWNhdGlvbnMgb2YgbW9kaWZ5aW5nIGBpZWVlODAyMTFfc2V0X21vbl9vcHRpb25zYCwgYW5kIHdoZXJlIHRob3NlIGNoYW5nZXMgbWlnaHQgcmlwcGxlLiBJZiB0aGV5ICphcmVuJiMzOTt0KiBzdGF0aWMsIHRoZW4gY2hhbmdlcyB0byBgaWVlZTgwMjExX3NldF9tb25fb3B0aW9uc2AgY291bGQgaGF2ZSB3aWRlciBpbXBhY3QuIElmIHRoZXkgYXJlLCB0aGVuIG15IHNjb3BlIGlzIG1vcmUgY2xlYXJseSBkZWZpbmVkLiBJJiMzOTtsbCBjaGVjayB0aGVpciBkZWZpbml0aW9ucy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yNCAwMToxNjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtpZWVlODAyMTFfYWRkX2lmYWNlJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7bmV0L21hYzgwMjExL2NmZy5jJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O25ldC9tYWM4MDIxMS9jZmcuYz0xNzA9c3RhdGljIGludCBpZWVlODAyMTFfc2V0X2FwX21ic3NpZF9vcHRpb25zKHN0cnVjdCBpZWVlODAyMTFfc3ViX2lmX2RhdGEgKnNkYXRhLFxuLS1cbm5ldC9tYWM4MDIxMS9jZmcuYy0yMTQtXG5uZXQvbWFjODAyMTEvY2ZnLmM6MjE1OnN0YXRpYyBzdHJ1Y3Qgd2lyZWxlc3NfZGV2ICppZWVlODAyMTFfYWRkX2lmYWNlKHN0cnVjdCB3aXBoeSAqd2lwaHksXG5uZXQvbWFjODAyMTEvY2ZnLmMtMjE2LVx0XHRcdFx0XHRcdGNvbnN0IGNoYXIgKm5hbWUsXG4tLVxubmV0L21hYzgwMjExL2NmZy5jPTU1OTI9Y29uc3Qgc3RydWN0IGNmZzgwMjExX29wcyBtYWM4MDIxMV9jb25maWdfb3BzID0ge1xubmV0L21hYzgwMjExL2NmZy5jOjU1OTM6XHQuYWRkX3ZpcnR1YWxfaW50ZiA9IGllZWU4MDIxMV9hZGRfaWZhY2UsXG5uZXQvbWFjODAyMTEvY2ZnLmMtNTU5NC1cdC5kZWxfdmlydHVhbF9pbnRmID0gaWVlZTgwMjExX2RlbF9pZmFjZSxcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD43LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yNCAwMToxNjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzNzk1CgkJCQkJCQlvdXRwdXQ6IDQ0CgkJCQkJCQl0aG91Z2h0czogOTkKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIEludGVyZmFjZSBDb25maWd1cmF0aW9uIGluIG1hYzgwMjExKioKCk9rYXksIHNvIEkmIzM5O20gZGlnZ2luZyBpbnRvIGhvdyB2aXJ0dWFsIGludGVyZmFjZXMgYXJlIGhhbmRsZWQgaW4gbWFjODAyMTEuIEkgc2VlIGBpZWVlODAyMTFfYWRkX2lmYWNlYCBkZWNsYXJlZCBhcyBzdGF0aWMsIHdoaWNoIGlzIGludGVyZXN0aW5nLCBidXQgdGhlbiBJIGZpbmQgaXQmIzM5O3MgYXNzaWduZWQgdG8gYG1hYzgwMjExX2NvbmZpZ19vcHMuYWRkX3ZpcnR1YWxfaW50ZmAuIFRoYXQgc2VlbXMgc3RyYWlnaHRmb3J3YXJkIGVub3VnaC4gTm93LCBJJiMzOTttIGJldHRpbmcgdGhhdCBgaWVlZTgwMjExX2NoYW5nZV9pZmFjZWAgaXMgdGhlIGZ1bmN0aW9uIGJlaW5nIHVzZWQgZm9yIGBtYWM4MDIxMV9jb25maWdfb3BzLmNoYW5nZV92aXJ0dWFsX2ludGZgLiBJdCYjMzk7cyBhIGxvZ2ljYWwgY29ubmVjdGlvbiwgZ2l2ZW4gdGhlIG5hbWluZyBjb252ZW50aW9ucywgYnV0IGxldCYjMzk7cyBub3QgYXNzdW1lIGFueXRoaW5nLiBJIG5lZWQgdG8gY29uZmlybSB0aGF0LiBTbywgSSYjMzk7bSBnb2luZyB0byB0YWtlIGEgY2xvc2VyIGxvb2sgYXQgYGllZWU4MDIxMV9jaGFuZ2VfaWZhY2VgIHRvIHZlcmlmeSBteSBoeXBvdGhlc2lzIGFuZCB1bmRlcnN0YW5kIHRoZSBleGFjdCBtZWNoYW5pY3MuIEdvdHRhIG1ha2Ugc3VyZSBldmVyeXRoaW5nJiMzOTtzIGFzIEkgZXhwZWN0IGl0IHRvIGJlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzI0IDAxOjE2PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2llZWU4MDIxMV9jaGFuZ2VfaWZhY2UmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtuZXQvbWFjODAyMTEvY2ZnLmMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7bmV0L21hYzgwMjExL2NmZy5jPTI2MT1zdGF0aWMgaW50IGllZWU4MDIxMV9kZWxfaWZhY2Uoc3RydWN0IHdpcGh5ICp3aXBoeSwgc3RydWN0IHdpcmVsZXNzX2RldiAqd2Rldilcbi0tXG5uZXQvbWFjODAyMTEvY2ZnLmMtMjY3LVxubmV0L21hYzgwMjExL2NmZy5jOjI2ODpzdGF0aWMgaW50IGllZWU4MDIxMV9jaGFuZ2VfaWZhY2Uoc3RydWN0IHdpcGh5ICp3aXBoeSxcbm5ldC9tYWM4MDIxMS9jZmcuYy0yNjktXHRcdFx0XHQgIHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsXG4tLVxubmV0L21hYzgwMjExL2NmZy5jPTU1OTI9Y29uc3Qgc3RydWN0IGNmZzgwMjExX29wcyBtYWM4MDIxMV9jb25maWdfb3BzID0ge1xuLS1cbm5ldC9tYWM4MDIxMS9jZmcuYy01NTk0LVx0LmRlbF92aXJ0dWFsX2ludGYgPSBpZWVlODAyMTFfZGVsX2lmYWNlLFxubmV0L21hYzgwMjExL2NmZy5jOjU1OTU6XHQuY2hhbmdlX3ZpcnR1YWxfaW50ZiA9IGllZWU4MDIxMV9jaGFuZ2VfaWZhY2UsXG5uZXQvbWFjODAyMTEvY2ZnLmMtNTU5Ni1cdC5zdGFydF9wMnBfZGV2aWNlID0gaWVlZTgwMjExX3N0YXJ0X3AycF9kZXZpY2UsXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjQgMDE6MTY8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNDQ3MAoJCQkJCQkJb3V0cHV0OiAzOAoJCQkJCQkJdGhvdWdodHM6IDMwNQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipGb2N1c2luZyBvbiBJbnRlcmZhY2UgQWRkaXRpb24vTW9kaWZpY2F0aW9uIGluIG1hYzgwMjExKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCBob3cgaW50ZXJmYWNlcyBhcmUgYWRkZWQgYW5kIGNoYW5nZWQgd2l0aGluIHRoZSBtYWM4MDIxMSB3aXJlbGVzcyBzdGFjay4gTXkgaW5pdGlhbCB0aG91Z2h0IHdhcyB0byBkaWcgaW50byBgaWVlZTgwMjExX2FkZF9pZmFjZWAgYW5kIGBpZWVlODAyMTFfY2hhbmdlX2lmYWNlYCwgYnV0IHRoZXkmIzM5O3JlIG1hcmtlZCBhcyBzdGF0aWMsIHdoaWNoIHVzdWFsbHkgbWVhbnMgdGhleSYjMzk7cmUgY29tcGlsZXItaW5saW5lZCBhbmQgbm90IGlkZWFsIGZvciBmdXp6aW5nIHRhcmdldCBzeW1ib2xzLiAgSSBxdWlja2x5IHJlbWVtYmVyZWQgdGhhdCBgbWFjODAyMTFfY29uZmlnX29wc2AgcGxheXMgYSByb2xlIGluIGBjZmc4MDIxMWAuIEJ1dCBob2xkIG9uLCBgbWFjODAyMTFfY29uZmlnX29wc2AgaXMgYSBzdHJ1Y3QsIG5vdCBhIGZ1bmN0aW9uIEkgY2FuIGRpcmVjdGx5IHRhcmdldC4KClRoZW4gSSByZWFsaXplZCB0aGF0IGBpZWVlODAyMTFfYWRkX2lmYWNlYCBpcyBzdGF0aWMuIFRoYXQgdXN1YWxseSBtYWtlcyBpdCBub3QgaWRlYWwsIGFuZCBJIHdhcyBvbiB0aGUgcmlnaHQgdHJhY2ssIHdoZW4gSSBjb25zaWRlcmVkIGdvaW5nIHVwIGEgbGV2ZWwgdG8gYG5sODAyMTFfbmV3X2ludGVyZmFjZWAgYW5kIGBubDgwMjExX3NldF9pbnRlcmZhY2VgIGluIGBuZXQvd2lyZWxlc3Mvbmw4MDIxMS5jYCwgYnV0IHRoZSBpbnN0cnVjdGlvbnMgSSBhbSBmb2xsb3dpbmcgc2F5IHRvIGxvb2sgZm9yIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIGVudHJ5cG9pbnQgZnVuY3Rpb25zLgoKQWhhISBJZiBgaWVlZTgwMjExX2FkZF9pZmFjZWAgYW5kIGBpZWVlODAyMTFfY2hhbmdlX2lmYWNlYCBhcmUgYXNzaWduZWQgdG8gZnVuY3Rpb24gcG9pbnRlcnMsIHRoYXQgYWN0dWFsbHkgKnByZXZlbnRzKiB0aGVtIGZyb20gYmVpbmcgaW5saW5lZCBieSB0aGUgY29tcGlsZXIuIEJlY2F1c2Ugb2YgdGhhdCwgdGhleSYjMzk7bGwgaGF2ZSBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzLiBHaXZlbiB0aGF0IHVuZGVyc3RhbmRpbmcsIGBpZWVlODAyMTFfYWRkX2lmYWNlYCBhbmQgYGllZWU4MDIxMV9jaGFuZ2VfaWZhY2VgIGxvb2sgbGlrZSBwZXJmZWN0bHkgZ29vZCBjYW5kaWRhdGVzIGZvciBgRm9jdXNTeW1ib2xzYCwgYXMgbG9uZyBhcyB0aGV5IGFyZSBhc3NpZ25lZCB0byBmdW5jdGlvbiBwb2ludGVycy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjQgMDE6MTY8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIE1BQzgwMjExJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7bmV0L21hYzgwMjExL0tjb25maWcmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7bmV0L21hYzgwMjExL0tjb25maWctMS0jIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHlcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjI6Y29uZmlnIE1BQzgwMjExXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0zLVx0dHJpc3RhdGUgXCYjMzQ7R2VuZXJpYyBJRUVFIDgwMi4xMSBOZXR3b3JraW5nIFN0YWNrIChtYWM4MDIxMSlcJiMzNDtcbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZz0xOT1pZiBNQUM4MDIxMSAhPSBuXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yMC1cbm5ldC9tYWM4MDIxMS9LY29uZmlnOjIxOmNvbmZpZyBNQUM4MDIxMV9IQVNfUkNcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTIyLVx0Ym9vbFxubmV0L21hYzgwMjExL0tjb25maWctMjMtXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoyNDpjb25maWcgTUFDODAyMTFfUkNfTUlOU1RSRUxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTI1LVx0Ym9vbCBcJiMzNDtNaW5zdHJlbFwmIzM0OyBpZiBFWFBFUlRcbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZz0zMT1jaG9pY2Vcbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZy00MC1cbm5ldC9tYWM4MDIxMS9LY29uZmlnOjQxOmNvbmZpZyBNQUM4MDIxMV9SQ19ERUZBVUxUX01JTlNUUkVMXG5uZXQvbWFjODAyMTEvS2NvbmZpZy00Mi1cdGJvb2wgXCYjMzQ7TWluc3RyZWxcJiMzNDtcbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZz00OD1lbmRjaG9pY2Vcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTQ5LVxubmV0L21hYzgwMjExL0tjb25maWc6NTA6Y29uZmlnIE1BQzgwMjExX1JDX0RFRkFVTFRcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTUxLVx0c3RyaW5nXG4tLVxubmV0L21hYzgwMjExL0tjb25maWc9NTc9Y29tbWVudCBcJiMzNDtTb21lIHdpcmVsZXNzIGRyaXZlcnMgcmVxdWlyZSBhIHJhdGUgY29udHJvbCBhbGdvcml0aG1cJiMzNDtcbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZy01OS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnOjYwOmNvbmZpZyBNQUM4MDIxMV9LVU5JVF9URVNUXG5uZXQvbWFjODAyMTEvS2NvbmZpZy02MS1cdHRyaXN0YXRlIFwmIzM0O0tVbml0IHRlc3RzIGZvciBtYWM4MDIxMVwmIzM0OyBpZiAhS1VOSVRfQUxMX1RFU1RTXG4tLVxubmV0L21hYzgwMjExL0tjb25maWctNjktXG5uZXQvbWFjODAyMTEvS2NvbmZpZzo3MDpjb25maWcgTUFDODAyMTFfTUVTSFxubmV0L21hYzgwMjExL0tjb25maWctNzEtXHRib29sIFwmIzM0O0VuYWJsZSBtYWM4MDIxMSBtZXNoIG5ldHdvcmtpbmcgc3VwcG9ydFwmIzM0O1xuLS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnLTc4LVxubmV0L21hYzgwMjExL0tjb25maWc6Nzk6Y29uZmlnIE1BQzgwMjExX0xFRFNcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTgwLVx0Ym9vbCBcJiMzNDtFbmFibGUgTEVEIHRyaWdnZXJzXCYjMzQ7XG4tLVxubmV0L21hYzgwMjExL0tjb25maWctODctXG5uZXQvbWFjODAyMTEvS2NvbmZpZzo4ODpjb25maWcgTUFDODAyMTFfREVCVUdGU1xubmV0L21hYzgwMjExL0tjb25maWctODktXHRib29sIFwmIzM0O0V4cG9ydCBtYWM4MDIxMSBpbnRlcm5hbHMgaW4gRGVidWdGU1wmIzM0O1xuLS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnLTk2LVxubmV0L21hYzgwMjExL0tjb25maWc6OTc6Y29uZmlnIE1BQzgwMjExX01FU1NBR0VfVFJBQ0lOR1xubmV0L21hYzgwMjExL0tjb25maWctOTgtXHRib29sIFwmIzM0O1RyYWNlIGFsbCBtYWM4MDIxMSBkZWJ1ZyBtZXNzYWdlc1wmIzM0O1xuLS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnLTEwOS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnOjExMDptZW51Y29uZmlnIE1BQzgwMjExX0RFQlVHX01FTlVcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTExMS1cdGJvb2wgXCYjMzQ7U2VsZWN0IG1hYzgwMjExIGRlYnVnZ2luZyBmZWF0dXJlc1wmIzM0O1xuLS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnLTExNS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnOjExNjpjb25maWcgTUFDODAyMTFfTk9JTkxJTkVcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTExNy1cdGJvb2wgXCYjMzQ7RG8gbm90IGlubGluZSBUWC9SWCBoYW5kbGVyc1wmIzM0O1xuLS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnLTEzMS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnOjEzMjpjb25maWcgTUFDODAyMTFfVkVSQk9TRV9ERUJVR1xubmV0L21hYzgwMjExL0tjb25maWctMTMzLVx0Ym9vbCBcJiMzNDtWZXJib3NlIGRlYnVnZ2luZyBvdXRwdXRcJiMzNDtcbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xNDItXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoxNDM6Y29uZmlnIE1BQzgwMjExX01MTUVfREVCVUdcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTE0NC1cdGJvb2wgXCYjMzQ7VmVyYm9zZSBtYW5hZ2VkIE1MTUUgb3V0cHV0XCYjMzQ7XG4tLVxubmV0L21hYzgwMjExL0tjb25maWctMTUzLVxubmV0L21hYzgwMjExL0tjb25maWc6MTU0OmNvbmZpZyBNQUM4MDIxMV9TVEFfREVCVUdcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTE1NS1cdGJvb2wgXCYjMzQ7VmVyYm9zZSBzdGF0aW9uIGRlYnVnZ2luZ1wmIzM0O1xuLS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnLTE2Mi1cbm5ldC9tYWM4MDIxMS9LY29uZmlnOjE2Mzpjb25maWcgTUFDODAyMTFfSFRfREVCVUdcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTE2NC1cdGJvb2wgXCYjMzQ7VmVyYm9zZSBIVCBkZWJ1Z2dpbmdcJiMzNDtcbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xNzQtXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoxNzU6Y29uZmlnIE1BQzgwMjExX09DQl9ERUJVR1xubmV0L21hYzgwMjExL0tjb25maWctMTc2LVx0Ym9vbCBcJiMzNDtWZXJib3NlIE9DQiBkZWJ1Z2dpbmdcJiMzNDtcbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xODUtXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoxODY6Y29uZmlnIE1BQzgwMjExX0lCU1NfREVCVUdcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTE4Ny1cdGJvb2wgXCYjMzQ7VmVyYm9zZSBJQlNTIGRlYnVnZ2luZ1wmIzM0O1xuLS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnLTE5Ni1cbm5ldC9tYWM4MDIxMS9LY29uZmlnOjE5Nzpjb25maWcgTUFDODAyMTFfUFNfREVCVUdcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTE5OC1cdGJvb2wgXCYjMzQ7VmVyYm9zZSBwb3dlcnNhdmUgbW9kZSBkZWJ1Z2dpbmdcJiMzNDtcbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yMDgtXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoyMDk6Y29uZmlnIE1BQzgwMjExX01QTF9ERUJVR1xubmV0L21hYzgwMjExL0tjb25maWctMjEwLVx0Ym9vbCBcJiMzNDtWZXJib3NlIG1lc2ggcGVlciBsaW5rIGRlYnVnZ2luZ1wmIzM0O1xuLS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnLTIyMS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnOjIyMjpjb25maWcgTUFDODAyMTFfTVBBVEhfREVCVUdcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTIyMy1cdGJvb2wgXCYjMzQ7VmVyYm9zZSBtZXNoIHBhdGggZGVidWdnaW5nXCYjMzQ7XG4tLVxubmV0L21hYzgwMjExL0tjb25maWctMjM0LVxubmV0L21hYzgwMjExL0tjb25maWc6MjM1OmNvbmZpZyBNQUM4MDIxMV9NSFdNUF9ERUJVR1xubmV0L21hYzgwMjExL0tjb25maWctMjM2LVx0Ym9vbCBcJiMzNDtWZXJib3NlIG1lc2ggSFdNUCByb3V0aW5nIGRlYnVnZ2luZ1wmIzM0O1xuLS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnLTI0Ny1cbm5ldC9tYWM4MDIxMS9LY29uZmlnOjI0ODpjb25maWcgTUFDODAyMTFfTUVTSF9TWU5DX0RFQlVHXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yNDktXHRib29sIFwmIzM0O1ZlcmJvc2UgbWVzaCBzeW5jaHJvbml6YXRpb24gZGVidWdnaW5nXCYjMzQ7XG4tLVxubmV0L21hYzgwMjExL0tjb25maWctMjU4LVxubmV0L21hYzgwMjExL0tjb25maWc6MjU5OmNvbmZpZyBNQUM4MDIxMV9NRVNIX0NTQV9ERUJVR1xubmV0L21hYzgwMjExL0tjb25maWctMjYwLVx0Ym9vbCBcJiMzNDtWZXJib3NlIG1lc2ggY2hhbm5lbCBzd2l0Y2ggZGVidWdnaW5nXCYjMzQ7XG4tLVxubmV0L21hYzgwMjExL0tjb25maWctMjY5LVxubmV0L21hYzgwMjExL0tjb25maWc6MjcwOmNvbmZpZyBNQUM4MDIxMV9NRVNIX1BTX0RFQlVHXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yNzEtXHRib29sIFwmIzM0O1ZlcmJvc2UgbWVzaCBwb3dlcnNhdmUgZGVidWdnaW5nXCYjMzQ7XG4tLVxubmV0L21hYzgwMjExL0tjb25maWctMjgwLVxubmV0L21hYzgwMjExL0tjb25maWc6MjgxOmNvbmZpZyBNQUM4MDIxMV9URExTX0RFQlVHXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yODItXHRib29sIFwmIzM0O1ZlcmJvc2UgVERMUyBkZWJ1Z2dpbmdcJiMzNDtcbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yOTItXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoyOTM6Y29uZmlnIE1BQzgwMjExX0RFQlVHX0NPVU5URVJTXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yOTQtXHRib29sIFwmIzM0O0V4dHJhIHN0YXRpc3RpY3MgZm9yIFRYL1JYIGRlYnVnZ2luZ1wmIzM0O1xuLS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnLTMwNy1cbm5ldC9tYWM4MDIxMS9LY29uZmlnOjMwODpjb25maWcgTUFDODAyMTFfU1RBX0hBU0hfTUFYX1NJWkVcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTMwOS1cdGludCBcJiMzNDtTdGF0aW9uIGhhc2ggdGFibGUgbWF4aW11bSBzaXplXCYjMzQ7IGlmIE1BQzgwMjExX0RFQlVHX01FTlVcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjQgMDE6MTY8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNzM4NAoJCQkJCQkJb3V0cHV0OiAzMwoJCQkJCQkJdGhvdWdodHM6IDU1CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgTUFDODAyMTEgQ29uZmlndXJhdGlvbioqCgpPa2F5LCBzbyB0aGUgY3VycmVudCBjb25maWd1cmF0aW9uIEkmIzM5O20gbG9va2luZyBhdCBpcyBgTUFDODAyMTFgLiBUaGF0JiMzOTtzIHRoZSBzdGFydGluZyBwb2ludC4gSSBuZWVkIHRvIG1ha2Ugc3VyZSBJIGRvbiYjMzk7dCBtaXNzIGFueXRoaW5nLCBzbyBJJiMzOTttIHF1aWNrbHkgY2hlY2tpbmcg4oCTIGlzIHRoZXJlICphbnkqIG90aGVyIGNvbmZpZyByZWxhdGVkIHRvIHRoaXM/IEkgd2FudCB0byBnZXQgYSBjb21wbGV0ZSBwaWN0dXJlIGJlZm9yZSBkaXZpbmcgaW4uCgpBbHJpZ2h0LCB0aGUgcGF0Y2ggSSYjMzk7bSBpbnRlcmVzdGVkIGluIGlzIGxvY2F0ZWQgaW4gYG5ldC9tYWM4MDIxMS9jZmcuY2AuIE5vdywgYmVmb3JlIEkgc3RhcnQgZGlzc2VjdGluZyB0aGUgcGF0Y2ggaXRzZWxmLCBJIG5lZWQgdG8gdW5kZXJzdGFuZCBhbnkgZGVwZW5kZW5jaWVzLiBMZXQgbWUgdmVyaWZ5IHRoYXQgdGhlIGBNQUM4MDIxMWAgY29uZmlndXJhdGlvbiBkb2VzbiYjMzk7dCByZWx5IG9uIG9yIHRyaWdnZXIgYW55IG90aGVyIHNpZ25pZmljYW50IGNvbmZpZ3VyYXRpb25zLiBBIHF1aWNrIGRlcGVuZGVuY3kgY2hlY2sgd2lsbCBnaXZlIG1lIGNydWNpYWwgY29udGV4dC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMi8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjQgMDE6MTY8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7ZGVwZW5kcyBvbiYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O25ldC9tYWM4MDIxMS9LY29uZmlnJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O25ldC9tYWM4MDIxMS9LY29uZmlnPTI9Y29uZmlnIE1BQzgwMjExXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0zLVx0dHJpc3RhdGUgXCYjMzQ7R2VuZXJpYyBJRUVFIDgwMi4xMSBOZXR3b3JraW5nIFN0YWNrIChtYWM4MDIxMSlcJiMzNDtcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjQ6XHRkZXBlbmRzIG9uIENGRzgwMjExXG5uZXQvbWFjODAyMTEvS2NvbmZpZy01LVx0c2VsZWN0IENSWVBUT1xuLS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnPTE2PWNvbW1lbnQgXCYjMzQ7Q0ZHODAyMTEgbmVlZHMgdG8gYmUgZW5hYmxlZCBmb3IgTUFDODAyMTFcJiMzNDtcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjE3Olx0ZGVwZW5kcyBvbiBDRkc4MDIxMT1uXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xOC1cbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZz0zMT1jaG9pY2Vcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTMyLVx0cHJvbXB0IFwmIzM0O0RlZmF1bHQgcmF0ZSBjb250cm9sIGFsZ29yaXRobVwmIzM0O1xubmV0L21hYzgwMjExL0tjb25maWc6MzM6XHRkZXBlbmRzIG9uIE1BQzgwMjExX0hBU19SQ1xubmV0L21hYzgwMjExL0tjb25maWctMzQtXHRkZWZhdWx0IE1BQzgwMjExX1JDX0RFRkFVTFRfTUlOU1RSRUxcbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZz00MT1jb25maWcgTUFDODAyMTFfUkNfREVGQVVMVF9NSU5TVFJFTFxubmV0L21hYzgwMjExL0tjb25maWctNDItXHRib29sIFwmIzM0O01pbnN0cmVsXCYjMzQ7XG5uZXQvbWFjODAyMTEvS2NvbmZpZzo0MzpcdGRlcGVuZHMgb24gTUFDODAyMTFfUkNfTUlOU1RSRUxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTQ0LVx0aGVscFxuLS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnPTU3PWNvbW1lbnQgXCYjMzQ7U29tZSB3aXJlbGVzcyBkcml2ZXJzIHJlcXVpcmUgYSByYXRlIGNvbnRyb2wgYWxnb3JpdGhtXCYjMzQ7XG5uZXQvbWFjODAyMTEvS2NvbmZpZzo1ODpcdGRlcGVuZHMgb24gTUFDODAyMTEgXHUwMDI2XHUwMDI2IE1BQzgwMjExX0hBU19SQz1uXG5uZXQvbWFjODAyMTEvS2NvbmZpZy01OS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnPTYwPWNvbmZpZyBNQUM4MDIxMV9LVU5JVF9URVNUXG5uZXQvbWFjODAyMTEvS2NvbmZpZy02MS1cdHRyaXN0YXRlIFwmIzM0O0tVbml0IHRlc3RzIGZvciBtYWM4MDIxMVwmIzM0OyBpZiAhS1VOSVRfQUxMX1RFU1RTXG5uZXQvbWFjODAyMTEvS2NvbmZpZzo2MjpcdGRlcGVuZHMgb24gS1VOSVRcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjYzOlx0ZGVwZW5kcyBvbiBNQUM4MDIxMVxubmV0L21hYzgwMjExL0tjb25maWctNjQtXHRkZWZhdWx0IEtVTklUX0FMTF9URVNUU1xuLS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnPTcwPWNvbmZpZyBNQUM4MDIxMV9NRVNIXG5uZXQvbWFjODAyMTEvS2NvbmZpZy03MS1cdGJvb2wgXCYjMzQ7RW5hYmxlIG1hYzgwMjExIG1lc2ggbmV0d29ya2luZyBzdXBwb3J0XCYjMzQ7XG5uZXQvbWFjODAyMTEvS2NvbmZpZzo3MjpcdGRlcGVuZHMgb24gTUFDODAyMTFcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTczLVx0aGVscFxuLS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnPTc5PWNvbmZpZyBNQUM4MDIxMV9MRURTXG5uZXQvbWFjODAyMTEvS2NvbmZpZy04MC1cdGJvb2wgXCYjMzQ7RW5hYmxlIExFRCB0cmlnZ2Vyc1wmIzM0O1xubmV0L21hYzgwMjExL0tjb25maWc6ODE6XHRkZXBlbmRzIG9uIE1BQzgwMjExXG5uZXQvbWFjODAyMTEvS2NvbmZpZzo4MjpcdGRlcGVuZHMgb24gTEVEU19DTEFTUz15IHx8IExFRFNfQ0xBU1M9TUFDODAyMTFcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTgzLVx0c2VsZWN0IExFRFNfVFJJR0dFUlNcbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZz04OD1jb25maWcgTUFDODAyMTFfREVCVUdGU1xubmV0L21hYzgwMjExL0tjb25maWctODktXHRib29sIFwmIzM0O0V4cG9ydCBtYWM4MDIxMSBpbnRlcm5hbHMgaW4gRGVidWdGU1wmIzM0O1xubmV0L21hYzgwMjExL0tjb25maWc6OTA6XHRkZXBlbmRzIG9uIE1BQzgwMjExIFx1MDAyNlx1MDAyNiBDRkc4MDIxMV9ERUJVR0ZTXG5uZXQvbWFjODAyMTEvS2NvbmZpZy05MS1cdGhlbHBcbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZz05Nz1jb25maWcgTUFDODAyMTFfTUVTU0FHRV9UUkFDSU5HXG5uZXQvbWFjODAyMTEvS2NvbmZpZy05OC1cdGJvb2wgXCYjMzQ7VHJhY2UgYWxsIG1hYzgwMjExIGRlYnVnIG1lc3NhZ2VzXCYjMzQ7XG5uZXQvbWFjODAyMTEvS2NvbmZpZzo5OTpcdGRlcGVuZHMgb24gTUFDODAyMTEgXHUwMDI2XHUwMDI2IFRSQUNJTkdcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTEwMC1cdGhlbHBcbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZz0xMTA9bWVudWNvbmZpZyBNQUM4MDIxMV9ERUJVR19NRU5VXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xMTEtXHRib29sIFwmIzM0O1NlbGVjdCBtYWM4MDIxMSBkZWJ1Z2dpbmcgZmVhdHVyZXNcJiMzNDtcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjExMjpcdGRlcGVuZHMgb24gTUFDODAyMTFcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTExMy1cdGhlbHBcbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZz0xMTY9Y29uZmlnIE1BQzgwMjExX05PSU5MSU5FXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xMTctXHRib29sIFwmIzM0O0RvIG5vdCBpbmxpbmUgVFgvUlggaGFuZGxlcnNcJiMzNDtcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjExODpcdGRlcGVuZHMgb24gTUFDODAyMTFfREVCVUdfTUVOVVxubmV0L21hYzgwMjExL0tjb25maWctMTE5LVx0aGVscFxuLS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnPTEzMj1jb25maWcgTUFDODAyMTFfVkVSQk9TRV9ERUJVR1xubmV0L21hYzgwMjExL0tjb25maWctMTMzLVx0Ym9vbCBcJiMzNDtWZXJib3NlIGRlYnVnZ2luZyBvdXRwdXRcJiMzNDtcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjEzNDpcdGRlcGVuZHMgb24gTUFDODAyMTFfREVCVUdfTUVOVVxubmV0L21hYzgwMjExL0tjb25maWctMTM1LVx0aGVscFxuLS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnPTE0Mz1jb25maWcgTUFDODAyMTFfTUxNRV9ERUJVR1xubmV0L21hYzgwMjExL0tjb25maWctMTQ0LVx0Ym9vbCBcJiMzNDtWZXJib3NlIG1hbmFnZWQgTUxNRSBvdXRwdXRcJiMzNDtcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjE0NTpcdGRlcGVuZHMgb24gTUFDODAyMTFfREVCVUdfTUVOVVxubmV0L21hYzgwMjExL0tjb25maWctMTQ2LVx0aGVscFxuLS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnPTE1ND1jb25maWcgTUFDODAyMTFfU1RBX0RFQlVHXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xNTUtXHRib29sIFwmIzM0O1ZlcmJvc2Ugc3RhdGlvbiBkZWJ1Z2dpbmdcJiMzNDtcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjE1NjpcdGRlcGVuZHMgb24gTUFDODAyMTFfREVCVUdfTUVOVVxubmV0L21hYzgwMjExL0tjb25maWctMTU3LVx0aGVscFxuLS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnPTE2Mz1jb25maWcgTUFDODAyMTFfSFRfREVCVUdcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTE2NC1cdGJvb2wgXCYjMzQ7VmVyYm9zZSBIVCBkZWJ1Z2dpbmdcJiMzNDtcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjE2NTpcdGRlcGVuZHMgb24gTUFDODAyMTFfREVCVUdfTUVOVVxubmV0L21hYzgwMjExL0tjb25maWctMTY2LVx0aGVscFxuLS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnPTE3NT1jb25maWcgTUFDODAyMTFfT0NCX0RFQlVHXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xNzYtXHRib29sIFwmIzM0O1ZlcmJvc2UgT0NCIGRlYnVnZ2luZ1wmIzM0O1xubmV0L21hYzgwMjExL0tjb25maWc6MTc3Olx0ZGVwZW5kcyBvbiBNQUM4MDIxMV9ERUJVR19NRU5VXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xNzgtXHRoZWxwXG4tLVxubmV0L21hYzgwMjExL0tjb25maWc9MTg2PWNvbmZpZyBNQUM4MDIxMV9JQlNTX0RFQlVHXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xODctXHRib29sIFwmIzM0O1ZlcmJvc2UgSUJTUyBkZWJ1Z2dpbmdcJiMzNDtcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjE4ODpcdGRlcGVuZHMgb24gTUFDODAyMTFfREVCVUdfTUVOVVxubmV0L21hYzgwMjExL0tjb25maWctMTg5LVx0aGVscFxuLS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnPTE5Nz1jb25maWcgTUFDODAyMTFfUFNfREVCVUdcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTE5OC1cdGJvb2wgXCYjMzQ7VmVyYm9zZSBwb3dlcnNhdmUgbW9kZSBkZWJ1Z2dpbmdcJiMzNDtcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjE5OTpcdGRlcGVuZHMgb24gTUFDODAyMTFfREVCVUdfTUVOVVxubmV0L21hYzgwMjExL0tjb25maWctMjAwLVx0aGVscFxuLS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnPTIwOT1jb25maWcgTUFDODAyMTFfTVBMX0RFQlVHXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yMTAtXHRib29sIFwmIzM0O1ZlcmJvc2UgbWVzaCBwZWVyIGxpbmsgZGVidWdnaW5nXCYjMzQ7XG5uZXQvbWFjODAyMTEvS2NvbmZpZzoyMTE6XHRkZXBlbmRzIG9uIE1BQzgwMjExX0RFQlVHX01FTlVcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjIxMjpcdGRlcGVuZHMgb24gTUFDODAyMTFfTUVTSFxubmV0L21hYzgwMjExL0tjb25maWctMjEzLVx0aGVscFxuLS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnPTIyMj1jb25maWcgTUFDODAyMTFfTVBBVEhfREVCVUdcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTIyMy1cdGJvb2wgXCYjMzQ7VmVyYm9zZSBtZXNoIHBhdGggZGVidWdnaW5nXCYjMzQ7XG5uZXQvbWFjODAyMTEvS2NvbmZpZzoyMjQ6XHRkZXBlbmRzIG9uIE1BQzgwMjExX0RFQlVHX01FTlVcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjIyNTpcdGRlcGVuZHMgb24gTUFDODAyMTFfTUVTSFxubmV0L21hYzgwMjExL0tjb25maWctMjI2LVx0aGVscFxuLS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnPTIzNT1jb25maWcgTUFDODAyMTFfTUhXTVBfREVCVUdcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTIzNi1cdGJvb2wgXCYjMzQ7VmVyYm9zZSBtZXNoIEhXTVAgcm91dGluZyBkZWJ1Z2dpbmdcJiMzNDtcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjIzNzpcdGRlcGVuZHMgb24gTUFDODAyMTFfREVCVUdfTUVOVVxubmV0L21hYzgwMjExL0tjb25maWc6MjM4Olx0ZGVwZW5kcyBvbiBNQUM4MDIxMV9NRVNIXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yMzktXHRoZWxwXG4tLVxubmV0L21hYzgwMjExL0tjb25maWc9MjQ4PWNvbmZpZyBNQUM4MDIxMV9NRVNIX1NZTkNfREVCVUdcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTI0OS1cdGJvb2wgXCYjMzQ7VmVyYm9zZSBtZXNoIHN5bmNocm9uaXphdGlvbiBkZWJ1Z2dpbmdcJiMzNDtcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjI1MDpcdGRlcGVuZHMgb24gTUFDODAyMTFfREVCVUdfTUVOVVxubmV0L21hYzgwMjExL0tjb25maWc6MjUxOlx0ZGVwZW5kcyBvbiBNQUM4MDIxMV9NRVNIXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yNTItXHRoZWxwXG4tLVxubmV0L21hYzgwMjExL0tjb25maWc9MjU5PWNvbmZpZyBNQUM4MDIxMV9NRVNIX0NTQV9ERUJVR1xubmV0L21hYzgwMjExL0tjb25maWctMjYwLVx0Ym9vbCBcJiMzNDtWZXJib3NlIG1lc2ggY2hhbm5lbCBzd2l0Y2ggZGVidWdnaW5nXCYjMzQ7XG5uZXQvbWFjODAyMTEvS2NvbmZpZzoyNjE6XHRkZXBlbmRzIG9uIE1BQzgwMjExX0RFQlVHX01FTlVcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjI2MjpcdGRlcGVuZHMgb24gTUFDODAyMTFfTUVTSFxubmV0L21hYzgwMjExL0tjb25maWctMjYzLVx0aGVscFxuLS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnPTI3MD1jb25maWcgTUFDODAyMTFfTUVTSF9QU19ERUJVR1xubmV0L21hYzgwMjExL0tjb25maWctMjcxLVx0Ym9vbCBcJiMzNDtWZXJib3NlIG1lc2ggcG93ZXJzYXZlIGRlYnVnZ2luZ1wmIzM0O1xubmV0L21hYzgwMjExL0tjb25maWc6MjcyOlx0ZGVwZW5kcyBvbiBNQUM4MDIxMV9ERUJVR19NRU5VXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoyNzM6XHRkZXBlbmRzIG9uIE1BQzgwMjExX01FU0hcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTI3NC1cdGhlbHBcbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZz0yODE9Y29uZmlnIE1BQzgwMjExX1RETFNfREVCVUdcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTI4Mi1cdGJvb2wgXCYjMzQ7VmVyYm9zZSBURExTIGRlYnVnZ2luZ1wmIzM0O1xubmV0L21hYzgwMjExL0tjb25maWc6MjgzOlx0ZGVwZW5kcyBvbiBNQUM4MDIxMV9ERUJVR19NRU5VXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yODQtXHRoZWxwXG4tLVxubmV0L21hYzgwMjExL0tjb25maWc9MjkzPWNvbmZpZyBNQUM4MDIxMV9ERUJVR19DT1VOVEVSU1xubmV0L21hYzgwMjExL0tjb25maWctMjk0LVx0Ym9vbCBcJiMzNDtFeHRyYSBzdGF0aXN0aWNzIGZvciBUWC9SWCBkZWJ1Z2dpbmdcJiMzNDtcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjI5NTpcdGRlcGVuZHMgb24gTUFDODAyMTFfREVCVUdfTUVOVVxubmV0L21hYzgwMjExL0tjb25maWc6Mjk2Olx0ZGVwZW5kcyBvbiBNQUM4MDIxMV9ERUJVR0ZTXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yOTctXHRoZWxwXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzI0IDAxOjE2PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDEwNzEyCgkJCQkJCQlvdXRwdXQ6IDM5CgkJCQkJCQl0aG91Z2h0czogMTUwCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKk15IEluaXRpYWwgVGhvdWdodHMgb24gTUFDODAyMTEgYW5kIENGRzgwMjExIENvbmZpZ3VyYXRpb24qKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IGVuYWJsaW5nIGBNQUM4MDIxMWAuIFJpZ2h0LCBpdCByZWxpZXMgb24gYENGRzgwMjExYCwgdGhhdCBtdWNoIGlzIG9idmlvdXMuIFRoZXJlZm9yZSwgYSBnb29kIGZpcnN0IHN0ZXAgaXMgdG8gZW5zdXJlIGJvdGggYE1BQzgwMjExYCBhbmQgYENGRzgwMjExYCBhcmUgZW5hYmxlZCB3aXRoaW4gdGhlIGtlcm5lbCBjb25maWd1cmF0aW9uLiBJdCYjMzk7cyBhIGRlcGVuZGVuY3ksIHNvIGl0JiMzOTtzIGEgbm8tYnJhaW5lci4KCk5vdywgd2FpdCBhIHNlY29uZC4gSSByZW1lbWJlciBzZWVpbmcgdGhpcyBwYXRjaOKApiAqYWhhKiwgaXQmIzM5O3MgaW4gYG5ldC9tYWM4MDIxMS9jZmcuY2AuIEkgbmVlZCB0byBkZWx2ZSBhIGJpdCBkZWVwZXIgYW5kIHNlZSB3aGF0JiMzOTtzIHdoYXQuIEkgc2VlIHRoYXQgdGhlIGBpZWVlODAyMTFfc2V0X21vbl9vcHRpb25zYCBmdW5jdGlvbiBpcyByZWxldmFudCBoZXJlOyBpdCYjMzk7cyBiZWluZyBjYWxsZWQgZnJvbSBib3RoIGBpZWVlODAyMTFfYWRkX2lmYWNlYCBhbmQgYGllZWU4MDIxMV9jaGFuZ2VfaWZhY2VgLiBUaGF0IGdpdmVzIG1lIGEgZmV3IHN0YXJ0aW5nIHBvaW50cyB0byB1bmRlcnN0YW5kIGhvdyB0aGlzIGlzIHVzZWQgd2l0aGluIHRoZSBzeXN0ZW0uIEFyZSB0aGVyZSBhbnkgb3RoZXIgY3JpdGljYWwgZnVuY3Rpb25zIEkgc2hvdWxkIGJlIGF3YXJlIG9mPyBJJiMzOTtsbCBxdWlja2x5IGxvb2ssIEkgc2VlIHRoYXQgYG1hYzgwMjExX2NvbmZpZ19vcHNgIGlzIHVzZWQgaW4gYG5ldC9tYWM4MDIxMS9tYWluLmNgLiBUaGF0IHdhcnJhbnRzIGEgY2xvc2VyIGxvb2sgYXMgd2VsbC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjQgMDE6MTY8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7bWFjODAyMTFfY29uZmlnX29wcyYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O25ldC9tYWM4MDIxMS8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7bmV0L21hYzgwMjExL2NmZy5jPTU1ODU9aWVlZTgwMjExX3NldF9lcGNzKHN0cnVjdCB3aXBoeSAqd2lwaHksIHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIGJvb2wgZW5hYmxlKVxuLS1cbm5ldC9tYWM4MDIxMS9jZmcuYy01NTkxLVxubmV0L21hYzgwMjExL2NmZy5jOjU1OTI6Y29uc3Qgc3RydWN0IGNmZzgwMjExX29wcyBtYWM4MDIxMV9jb25maWdfb3BzID0ge1xubmV0L21hYzgwMjExL2NmZy5jLTU1OTMtXHQuYWRkX3ZpcnR1YWxfaW50ZiA9IGllZWU4MDIxMV9hZGRfaWZhY2UsXG4tLVxubmV0L21hYzgwMjExL2llZWU4MDIxMV9pLmgtMzgtXG5uZXQvbWFjODAyMTEvaWVlZTgwMjExX2kuaDozOTpleHRlcm4gY29uc3Qgc3RydWN0IGNmZzgwMjExX29wcyBtYWM4MDIxMV9jb25maWdfb3BzO1xubmV0L21hYzgwMjExL2llZWU4MDIxMV9pLmgtNDAtXG4tLVxubmV0L21hYzgwMjExL21haW4uYz03OTE9c3RydWN0IGllZWU4MDIxMV9odyAqaWVlZTgwMjExX2FsbG9jX2h3X25tKHNpemVfdCBwcml2X2RhdGFfbGVuLFxuLS1cbm5ldC9tYWM4MDIxMS9tYWluLmMtODUwLVxubmV0L21hYzgwMjExL21haW4uYzo4NTE6XHR3aXBoeSA9IHdpcGh5X25ld19ubShcdTAwMjZtYWM4MDIxMV9jb25maWdfb3BzLCBwcml2X3NpemUsIHJlcXVlc3RlZF9uYW1lKTtcbm5ldC9tYWM4MDIxMS9tYWluLmMtODUyLVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE1LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yNCAwMToxNjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxMTU5NgoJCQkJCQkJb3V0cHV0OiA0NQoJCQkJCQkJdGhvdWdodHM6IDI0NAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBJbml0aWFsIFRob3VnaHRzIG9uIE1hYzgwMjExIEluaXRpYWxpemF0aW9uIGFuZCBJbnRlcmZhY2UgTWFuYWdlbWVudCoqCgpPa2F5LCBzbyBJJiMzOTttIHRyYWNpbmcgdGhlIGluaXRpYWxpemF0aW9uIHBhdGggZm9yIG1hYzgwMjExIGRyaXZlcnMuIEl0IGxvb2tzIGxpa2UgYHdpcGh5X25ld19ubWAgaXMgY2FsbGVkIHdpdGhpbiBgaWVlZTgwMjExX2FsbG9jX2h3X25tYCwgd2hpY2ggaW4gdHVybiBpcyBjYWxsZWQgYnkgYGllZWU4MDIxMV9hbGxvY19od2AuIFRoaXMgYGllZWU4MDIxMV9hbGxvY19od2AgZnVuY3Rpb24gYXBwZWFycyB0byBiZSB0aGUgY2VudHJhbCBwb2ludCBmb3IgaW5pdGlhbGl6aW5nIHRoZSBtYWM4MDIxMSBoYXJkd2FyZSBhYnN0cmFjdGlvbiBsYXllciwgcmlnaHQ/IEEga2V5IHN0YXJ0aW5nIHBvaW50LgoKTm93LCBmb2N1c2luZyBvbiBpbnRlcmZhY2UgbWFuYWdlbWVudCwgYGllZWU4MDIxMV9hZGRfaWZhY2VgIGFuZCBgaWVlZTgwMjExX2NoYW5nZV9pZmFjZWAganVtcCBvdXQgYXQgbWUgYXMgdGhlIGtleSBlbnRyeSBwb2ludHMuIFRoZXkgc2VlbSB0byBiZSB0aGUgcHJpbWFyeSBmdW5jdGlvbnMgcmVzcG9uc2libGUgZm9yIGFkZGluZyBhbmQgbW9kaWZ5aW5nIG5ldHdvcmsgaW50ZXJmYWNlcyB3aXRoaW4gdGhlIG1hYzgwMjExIGZyYW1ld29yay4gYGNmZzgwMjExYCB1c2VzIGBtYWM4MDIxMV9jb25maWdfb3BzYCB0byBjYWxsIHRoZXNlIGZ1bmN0aW9ucy4gVGhlcmVmb3JlLCB0aGVzZSBhcmUgZGVmaW5pdGVseSBnb29kIHBvaW50cyB0byBmb2N1cyBvbi4gVGhleSBzZWVtIGxpa2UgcHJpbWUgY2FuZGlkYXRlcyB0byB1bmRlcnN0YW5kIGhvdyBjaGFuZ2VzIGFyZSBhcHBsaWVkIGFuZCBob3cgbmV3IGRldmljZXMgYXJlIGNyZWF0ZWQuCgpJIGFsc28gc2F3IHRoYXQgYGllZWU4MDIxMV9zZXRfbW9uX29wdGlvbnNgIHdhcyBhIGZ1bmN0aW9uIG9mIGludGVyZXN0LCBhbmQgSSBoYWQgYSBiaXQgb2YgYSBtZW50YWwgaGljY3VwIOKAkyBpcyB0aGlzIGEgc3RhdGljIGZ1bmN0aW9uLCBhbmQgaXMgaXQgcG90ZW50aWFsbHkgaW5saW5lZD8gSSByZW1lbWJlciBpdCB3YXMgbW9kaWZpZWQuIFdoaWxlIHN0YXRpYyBmdW5jdGlvbnMgY2FuIHNvbWV0aW1lcyBiZSBzbWFsbCBhbmQgb3B0aW1pemVkIGF3YXkgYnkgdGhlIGNvbXBpbGVyLCBgaWVlZTgwMjExX3NldF9tb25fb3B0aW9uc2AgaXMgbm90IG5lY2Vzc2FyaWx5IHNtYWxsLiBJdCBtaWdodCBiZSBpbmxpbmVkLi4uIExldCYjMzk7cyBjaGVjayB0aGUgY29kZSB0byBiZSBzdXJlLiBJJiMzOTtsbCBuZWVkIHRvIGNvbmZpcm0gaWYgaXQmIzM5O3MgYWN0dWFsbHkgaW5saW5lZCBiZWZvcmUgSSBpbnZlc3QgbW9yZSB0aW1lIHRoZXJlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE2LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yNCAwMToxNjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtpZWVlODAyMTFfc2V0X21vbl9vcHRpb25zJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7bmV0L21hYzgwMjExL2NmZy5jJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O25ldC9tYWM4MDIxMS9jZmcuYz01MD1zdGF0aWMgdm9pZCBpZWVlODAyMTFfc2V0X211X21pbW9fZm9sbG93KHN0cnVjdCBpZWVlODAyMTFfc3ViX2lmX2RhdGEgKnNkYXRhLFxuLS1cbm5ldC9tYWM4MDIxMS9jZmcuYy05NS1cbm5ldC9tYWM4MDIxMS9jZmcuYzo5NjpzdGF0aWMgaW50IGllZWU4MDIxMV9zZXRfbW9uX29wdGlvbnMoc3RydWN0IGllZWU4MDIxMV9zdWJfaWZfZGF0YSAqc2RhdGEsXG5uZXQvbWFjODAyMTEvY2ZnLmMtOTctXHRcdFx0XHQgICAgIHN0cnVjdCB2aWZfcGFyYW1zICpwYXJhbXMpXG4tLVxubmV0L21hYzgwMjExL2NmZy5jPTIxNT1zdGF0aWMgc3RydWN0IHdpcmVsZXNzX2RldiAqaWVlZTgwMjExX2FkZF9pZmFjZShzdHJ1Y3Qgd2lwaHkgKndpcGh5LFxuLS1cbm5ldC9tYWM4MDIxMS9jZmcuYy0yMzItXHRpZiAodHlwZSA9PSBOTDgwMjExX0lGVFlQRV9NT05JVE9SKSB7XG5uZXQvbWFjODAyMTEvY2ZnLmM6MjMzOlx0XHRlcnIgPSBpZWVlODAyMTFfc2V0X21vbl9vcHRpb25zKHNkYXRhLCBwYXJhbXMpO1xubmV0L21hYzgwMjExL2NmZy5jLTIzNC1cdFx0aWYgKGVycikge1xuLS1cbm5ldC9tYWM4MDIxMS9jZmcuYz0yNjg9c3RhdGljIGludCBpZWVlODAyMTFfY2hhbmdlX2lmYWNlKHN0cnVjdCB3aXBoeSAqd2lwaHksXG4tLVxubmV0L21hYzgwMjExL2NmZy5jLTMxMC1cdGlmIChzZGF0YS1cdTAwM2V2aWYudHlwZSA9PSBOTDgwMjExX0lGVFlQRV9NT05JVE9SKSB7XG5uZXQvbWFjODAyMTEvY2ZnLmM6MzExOlx0XHRyZXQgPSBpZWVlODAyMTFfc2V0X21vbl9vcHRpb25zKHNkYXRhLCBwYXJhbXMpO1xubmV0L21hYzgwMjExL2NmZy5jLTMxMi1cdFx0aWYgKHJldClcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNy8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjQgMDE6MTY8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTI3MjQKCQkJCQkJCW91dHB1dDogMzcKCQkJCQkJCXRob3VnaHRzOiAxMjcKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqRm9jdXNpbmcgb24gSW50ZXJmYWNlIENvbmZpZ3VyYXRpb24qKgoKT2theSwgc28gSSYjMzk7bSBnb2luZyB0byBmbGFnIGBpZWVlODAyMTFfYWRkX2lmYWNlYCBhbmQgYGllZWU4MDIxMV9jaGFuZ2VfaWZhY2VgIGFzIHRoZSBrZXkgRm9jdXNTeW1ib2xzIGhlcmUuIFRoZXNlIGFyZSB0aGUgZnVuY3Rpb25zIGRpcmVjdGx5IHJlbGF0ZWQgdG8gYWRkaW5nIGFuZCBtb2RpZnlpbmcgd2lyZWxlc3MgaW50ZXJmYWNlcywgd2hpY2ggaXMgd2hhdCBJJiMzOTttIGludGVyZXN0ZWQgaW4gZXhwbG9yaW5nLiBUaGUgcmVsZXZhbnQgY29uZmlndXJhdGlvbnMgSSYjMzk7bSB3b3JraW5nIHdpdGggYXJlIGBNQUM4MDIxMWAgYW5kIGBDRkc4MDIxMWAuCgpOb3csIGEgcXVpY2sgY2hlY2suLi4gSSBuZWVkIHRvIGNvbnNpZGVyIHdoZXRoZXIgYE1BQzgwMjExYCBpcyBldmVuIHJlYWNoYWJsZSBpbiB0aGUgdmlydHVhbGl6ZWQgdGVzdGluZyBlbnZpcm9ubWVudCBJJiMzOTttIGxpa2VseSB1c2luZy4gQWgsIHJpZ2h0ISBgbWFjODAyMTFfaHdzaW1gLiBUaGF0JiMzOTtzIHRoZSBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSBkcml2ZXIgZm9yIG1hYzgwMjExLiBQZXJmZWN0LCBpdCBzaG91bGQgYmUgZmluZS4gSSYjMzk7bGwgbmVlZCB0byBkb3VibGUgY2hlY2sgdGhhdCBgTUFDODAyMTFfSFdTSU1gIGlzIGRlZmluZWQgaW4gdGhlIGNvbmZpZ3VyYXRpb24sIHRob3VnaCwganVzdCB0byBiZSBhYnNvbHV0ZWx5IHN1cmUuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzI0IDAxOjE3PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2NvbmZpZyBNQUM4MDIxMV9IV1NJTSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy92aXJ0dWFsL0tjb25maWc6MTpjb25maWcgTUFDODAyMTFfSFdTSU1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3ZpcnR1YWwvS2NvbmZpZy0yLVx0dHJpc3RhdGUgXCYjMzQ7U2ltdWxhdGVkIHJhZGlvIHRlc3RpbmcgdG9vbCBmb3IgbWFjODAyMTFcJiMzNDtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xOS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjQgMDE6MTc8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTMxNzAKCQkJCQkJCW91dHB1dDogMzIKCQkJCQkJCXRob3VnaHRzOiA2MAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBDb25maWd1cmF0aW9uIFN0cmF0ZWd5KioKCk9rYXksIHNvIEkmIzM5O3ZlIGlkZW50aWZpZWQgdGhhdCBgTUFDODAyMTFfSFdTSU1gIGlzIGluZGVlZCBhIGNvbmZpZ3VyYXRpb24gb3B0aW9uLiBUaGF0JiMzOTtzIHN0cmFpZ2h0Zm9yd2FyZCBlbm91Z2guIE15IGZpcnN0IHN0ZXAgaXMgdG8gYWRkIGl0IGRpcmVjdGx5IHRvIG15IEVuYWJsZUNvbmZpZ3MgbGlzdC4gSXTigJlzIGltcG9ydGFudCB0byBrZWVwIHRyYWNrIG9mIHRoZXNlIHRoaW5ncyBzbyBJIHJlbWVtYmVyIHdoYXQgSeKAmXZlIGVuYWJsZWQgbGF0ZXIuCgpOb3csIGJlZm9yZSBJIHByb2NlZWQgZnVydGhlciwgSSB3YW50IHRvIGNvbmZpcm0gdGhhdCB0aGVyZSBhcmVuJiMzOTt0IGFueSBkZXBlbmRlbmNpZXMgYXNzb2NpYXRlZCB3aXRoIGBNQUM4MDIxMV9IV1NJTWAuIEkgbmVlZCB0byBlbnN1cmUgaXQgZG9lc24mIzM5O3QgcmVseSBvbiBhbnkgb3RoZXIgY29uZmlndXJhdGlvbnMgb3IgcGFja2FnZXMgdGhhdCBJIG1pZ2h0IG5vdCBoYXZlIGFscmVhZHkgYWNjb3VudGVkIGZvci4gQXZvaWRpbmcgZGVwZW5kZW5jeSBjb25mbGljdHMgaXMgcGFyYW1vdW50IHRvIGEgc21vb3RoIGJ1aWxkLCBhZnRlciBhbGwuIExldCYjMzk7cyBzZWUgd2hhdCB0aGUgc3lzdGVtIHRlbGxzIG1lLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yNCAwMToxNzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtkZXBlbmRzIG9uJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvdmlydHVhbC9LY29uZmlnJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL3ZpcnR1YWwvS2NvbmZpZz0xPWNvbmZpZyBNQUM4MDIxMV9IV1NJTVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvdmlydHVhbC9LY29uZmlnLTItXHR0cmlzdGF0ZSBcJiMzNDtTaW11bGF0ZWQgcmFkaW8gdGVzdGluZyB0b29sIGZvciBtYWM4MDIxMVwmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvdmlydHVhbC9LY29uZmlnOjM6XHRkZXBlbmRzIG9uIE1BQzgwMjExXG5kcml2ZXJzL25ldC93aXJlbGVzcy92aXJ0dWFsL0tjb25maWctNC1cdGhlbHBcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy92aXJ0dWFsL0tjb25maWc9MTQ9Y29uZmlnIFZJUlRfV0lGSVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvdmlydHVhbC9LY29uZmlnLTE1LVx0dHJpc3RhdGUgXCYjMzQ7V2lmaSB3cmFwcGVyIGZvciBldGhlcm5ldCBkcml2ZXJzXCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy92aXJ0dWFsL0tjb25maWc6MTY6XHRkZXBlbmRzIG9uIENGRzgwMjExXG5kcml2ZXJzL25ldC93aXJlbGVzcy92aXJ0dWFsL0tjb25maWctMTctXHRoZWxwXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjEvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzI0IDAxOjE3PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDEzNjE0CgkJCQkJCQlvdXRwdXQ6IDE5NAoJCQkJCQkJdGhvdWdodHM6IDQ1NQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBBc3Nlc3NtZW50IG9mIHRoZSBQYXRjaCoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCBhbmQgaW1tZWRpYXRlbHkgc2VlIHRoYXQgaXQmIzM5O3MgYWRkcmVzc2luZyBhIHBvdGVudGlhbCBOVUxMIHBvaW50ZXIgZGVyZWZlcmVuY2Ugd2l0aGluIHRoZSBgbWFjODAyMTFgIGNvcmUuIEl0IHNlZW1zIHRvIGJlIHRyaWdnZXJlZCB3aGVuIHRyeWluZyB0byBzZXQgbW9uaXRvciBvcHRpb25zLCBzcGVjaWZpY2FsbHkgZm9yIGFuIGFjdGl2ZSBtb25pdG9yIGludGVyZmFjZSB0aGF0IGxhY2tzIGEgVFggcXVldWUuIFRoaXMgaXMgaW4gdGhlIGBpZWVlODAyMTFfc2V0X21vbl9vcHRpb25zYCBmdW5jdGlvbi4gVGhlIHBhdGNoIGl0c2VsZiBpcyBzaW1wbGU7IGl0JiMzOTtzIGFkZGluZyBhIGNoZWNrIHRvIHByZXZlbnQgdGhpcyBmcm9tIGhhcHBlbmluZy4KClRoaW5raW5nIGl0IHRocm91Z2gsIHRoZSByZWFjaGFiaWxpdHkgb2YgdGhpcyBjaGFuZ2Ugc2VlbXMgdG8gc3RlbSBmcm9tIGBubDgwMjExYCBuZXRsaW5rIGNvbW1hbmRzLCBsaWtlIGNyZWF0aW5nIGEgbmV3IHZpcnR1YWwgaW50ZXJmYWNlIChgTkw4MDIxMV9DTURfTkVXX0lOVEVSRkFDRWApIG9yIG1vZGlmeWluZyBhbiBleGlzdGluZyBvbmUgKGBOTDgwMjExX0NNRF9TRVRfSU5URVJGQUNFYCkuIFRoaXMgaXMgYSBrZXkgZGV0YWlsLCBpdCBzaG93cyBtZSB0aGUgYXZlbnVlcyBmb3IgdHJpZ2dlcmluZyB0aGUgdnVsbmVyYWJpbGl0eS4KCkdpdmVuIHRoaXMsIHRoZSBtb3N0IGRpcmVjdCBwYXRoIHRvIHRlc3RpbmcgdGhpcyB3aWxsIGJlIHRocm91Z2ggdGhvc2UgTmV0bGluayBpbnRlcmZhY2VzLiBUaGUgZ29vZCBuZXdzIGlzLCBJIGNhbiB0ZXN0IGl0IHVzaW5nIHRoZSBgbWFjODAyMTFfaHdzaW1gIGRyaXZlciwgd2hpY2ggaXMgZ3JlYXQgYmVjYXVzZSBpdCBhbGxvd3MgZm9yIGNvbnRyb2xsZWQgc29mdHdhcmUgZW11bGF0aW9uLiBJIHNob3VsZCBkZWZpbml0ZWx5IGVuYWJsZSBgQ0ZHODAyMTFgLCBgTUFDODAyMTFgLCBhbmQgYE1BQzgwMjExX0hXU0lNYCBpbiB0aGUgY29uZmlndXJhdGlvbiB0byBoYXZlIHRoZSBjb3JyZWN0IHRlc3RpbmcgZW52aXJvbm1lbnQuCgpUaGUga2V5IGZ1bmN0aW9ucyB0byBrZWVwIGluIG1pbmQsIGFuZCBwb3NzaWJseSBleGFtaW5lIGZ1cnRoZXIsIGFyZSBgaWVlZTgwMjExX2FkZF9pZmFjZWAgYW5kIGBpZWVlODAyMTFfY2hhbmdlX2lmYWNlYC4gVGhlc2UgYXJlIG15IGZvY3VzIHN5bWJvbHMgdG8gd2F0Y2ggaW4gdGhlIGNvZGUgYmFzZS4KCkluIHNob3J0LCB0aGlzIGlzIGEgZnVuY3Rpb25hbCBwYXRjaCB0aGF0IGNvdWxkIGJlIHN1YmplY3QgdG8gZnV6emluZy4gSSBuZWVkIHRvIG1ha2Ugc3VyZSBJIGFkZCB0aGUgcmlnaHQgY29uZmlnIG9wdGlvbnMgYW5kIHNldHVwIHRoZSB0ZXN0IGVudmlyb25tZW50IHRvIGZ1bGx5IGV4cGxvcmUgdGhlIHZ1bG5lcmFiaWxpdHksIGFuZCBlbnN1cmUgdGhlIGZpeCBpcyBjb3JyZWN0LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIyLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yNCAwMToxNzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7Q0ZHODAyMTEmIzM0OywKICAgICYjMzQ7TUFDODAyMTEmIzM0OywKICAgICYjMzQ7TUFDODAyMTFfSFdTSU0mIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtpZWVlODAyMTFfYWRkX2lmYWNlJiMzNDssCiAgICAmIzM0O2llZWU4MDIxMV9jaGFuZ2VfaWZhY2UmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggYWRkcyBhIGNoZWNrIGluIGBpZWVlODAyMTFfc2V0X21vbl9vcHRpb25zYCB0byBwcmV2ZW50IGEgTlVMTCBwb2ludGVyIGRlcmVmZXJlbmNlIHdoZW4gY29uZmlndXJpbmcgYW4gYWN0aXZlIG1vbml0b3IgaW50ZXJmYWNlIHdpdGhvdXQgYSBUWCBxdWV1ZS4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSBtYWM4MDIxMSBjb3JlIGxvZ2ljLCByZWFjaGFibGUgdmlhIHRoZSBubDgwMjExIG5ldGxpbmsgaW50ZXJmYWNlIChlLmcuLCB3aGVuIGFkZGluZyBvciBjaGFuZ2luZyBhIHZpcnR1YWwgaW50ZXJmYWNlKS4gSXQgY2FuIGJlIHRlc3RlZCB1c2luZyB0aGUgc29mdHdhcmUtZW11bGF0ZWQgYG1hYzgwMjExX2h3c2ltYCBkcml2ZXIuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0NGRzgwMjExJiMzNDssCiAgICAmIzM0O01BQzgwMjExJiMzNDssCiAgICAmIzM0O01BQzgwMjExX0hXU0lNJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7aWVlZTgwMjExX2FkZF9pZmFjZSYjMzQ7LAogICAgJiMzNDtpZWVlODAyMTFfY2hhbmdlX2lmYWNlJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGFkZHMgYSBjaGVjayBpbiBgaWVlZTgwMjExX3NldF9tb25fb3B0aW9uc2AgdG8gcHJldmVudCBhIE5VTEwgcG9pbnRlciBkZXJlZmVyZW5jZSB3aGVuIGNvbmZpZ3VyaW5nIGFuIGFjdGl2ZSBtb25pdG9yIGludGVyZmFjZSB3aXRob3V0IGEgVFggcXVldWUuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgbWFjODAyMTEgY29yZSBsb2dpYywgcmVhY2hhYmxlIHZpYSB0aGUgbmw4MDIxMSBuZXRsaW5rIGludGVyZmFjZSAoZS5nLiwgd2hlbiBhZGRpbmcgb3IgY2hhbmdpbmcgYSB2aXJ0dWFsIGludGVyZmFjZSkuIEl0IGNhbiBiZSB0ZXN0ZWQgdXNpbmcgdGhlIHNvZnR3YXJlLWVtdWxhdGVkIGBtYWM4MDIxMV9od3NpbWAgZHJpdmVyLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIzLzE8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yNCAwMToxNzwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+SWY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzI0IDAxOjE3PC90ZD4KCQkJPHRkPmFnZW50PC90ZD4KCQkJPHRkPmttc2FuLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmJlc3QtZXhwZW5zaXZlPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0tNU0FOUmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGFkZHMgYSB2YWxpZGF0aW9uIGNoZWNrIGluIGBpZWVlODAyMTFfc2V0X21vbl9vcHRpb25zYCB0byBwcmV2ZW50IHNldHRpbmcgdGhlIGBNT05JVE9SX0ZMQUdfQUNUSVZFYCBmbGFnIGlmIGBzZGF0YS1cdTAwM2V2aWYudHhxYCBpcyBOVUxMLiBUaGlzIHByZXZlbnRzIGEgcG90ZW50aWFsIE5VTEwgcG9pbnRlciBkZXJlZmVyZW5jZSBvciBpbnZhbGlkIHN0YXRlIHdoZW4gdGhlIGRyaXZlciBpcyBoYW5kZWQgYSBOVUxMIGB2aWYtXHUwMDNldHhxYC4gTlVMTCBwb2ludGVyIGRlcmVmZXJlbmNlcyBhbmQgaW52YWxpZCBzdGF0ZSBidWdzIGFyZSBjYXVnaHQgYnkgc3RhbmRhcmQga2VybmVsIGNoZWNrcyBhbmQgS0FTQU4uIFRoZSBwYXRjaCBkb2VzIG5vdCBpbnRyb2R1Y2Ugb3IgZXhwb3NlIGFueSB1bmluaXRpYWxpemVkIG1lbW9yeSByZWFkcyBvciBpbmZvLWxlYWtzLCBzbyBhIGRlZGljYXRlZCBLTVNBTiBmdXp6aW5nIHNlc3Npb24gaXMgbm90IG5lZWRlZC4mIzM0OywKICAmIzM0O05lZWRzS01TQU4mIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgc2VjdXJpdHkgZW5naW5lZXIgc3BlY2lhbGl6aW5nIGluIGtlcm5lbCBtZW1vcnkKZXJyb3IgZGV0ZWN0b3JzIChLQVNBTiBhbmQgS01TQU4pLiBZb3VyIGpvYiBpcyB0byByZXZpZXcgdGhlIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQKZGV0ZXJtaW5lIGlmIHRoZSBjb2RlIGNoYW5nZXMganVzdGlmeSBzcGF3bmluZyBhIGRlZGljYXRlZCBLTVNBTiAoS2VybmVsTWVtb3J5U2FuaXRpemVyKQpmdXp6aW5nIHNlc3Npb24gaW4gYWRkaXRpb24gdG8gc3RhbmRhcmQgS0FTQU4gZnV6emluZy4KCkNSSVRJQ0FMIERJU1RJTkNUSU9OIEJFVFdFRU4gS0FTQU4gQU5EIEtNU0FOOgotIFN0YW5kYXJkIEtBU0FOIGtlcm5lbCBidWlsZHMgKHVwc3RyZWFtLWFwcGFybW9yLWthc2FuLmNvbmZpZykgYWxyZWFkeSBlbmFibGUKICBhIGNvbXByZWhlbnNpdmUgc3VpdGUgb2YgZGVidWdnaW5nIHRvb2xzIGFuZCBzYW5pdGl6ZXJzLCBpbmNsdWRpbmcgS0FTQU4KICAob3V0LW9mLWJvdW5kcyBhY2Nlc3NlcywgdXNlLWFmdGVyLWZyZWUsIGRvdWJsZSBmcmVlLCBpbnZhbGlkIGZyZWUpLCBMT0NLREVQCiAgKGxvY2tpbmcgYnVncyBhbmQgZGVhZGxvY2tzKSwgVUItc2FuaXRpemVycywgYW5kIG1lbW9yeSBjb3JydXB0aW9uIGNoZWNrcy4KLSBLTVNBTiAoS2VybmVsTWVtb3J5U2FuaXRpemVyKSBkZXRlY3RzIHJlYWRzIG9mIFVOSU5JVElBTElaRUQgbWVtb3J5IChzdGFjaywgaGVhcCwKICBvciBwYWdlIGFsbG9jYXRpb25zKSBhbmQga2VybmVsLXRvLXVzZXIgbWVtb3J5IGluZm8tbGVha3MuCgpSdWxlOiBUSEVSRSBJUyBOTyBTRU5TRSBJTiBSVU5OSU5HIEEgS01TQU4gU0VTU0lPTiBJRiBBIEJVRyBDQU4gQkUgQ0FVR0hUIEJZIEtBU0FOLApMT0NLREVQLCBPUiBPVEhFUiBTVEFOREFSRCBCVUcgREVURUNUT1JTLgpBIGRlZGljYXRlZCBLTVNBTiBmdXp6aW5nIHNlc3Npb24gaW5jdXJzIHNpZ25pZmljYW50IHJlc291cmNlIGNvc3RzLiBZb3UgbXVzdCBPTkxZCnNldCBOZWVkc0tNU0FOPXRydWUgaWYgdGhlIGNvZGUgY2hhbmdlcyBpbnRyb2R1Y2Ugb3IgZXhwb3NlIFVOSU5JVElBTElaRUQgTUVNT1JZIHJpc2tzCnRoYXQgYXJlIGRldGVjdGVkIE9OTFkgYnkgS01TQU4uCgpMb29rIGhvbGlzdGljYWxseSBhdCB0aGUgcGF0Y2ggc2VyaWVzIGFuZCBzdXJyb3VuZGluZyBjb2RlLiBFdmVuIGlmIG5vIGRpcmVjdAp1bmluaXRpYWxpemVkIGZpZWxkIGFjY2Vzc2VzIG9yIG5ldyBidWZmZXIgYWxsb2NhdGlvbnMgYXJlIGFkZGVkIGluIHRoZSBkaWZmIGl0c2VsZiwKYSBwYXRjaCBtYXkgYWx0ZXIgY29udHJvbCBmbG93LCBib3VuZHMgY2hlY2tpbmcsIG9yIGRhdGEgbGVuZ3RoIGNhbGN1bGF0aW9ucyBpbiB3YXlzCnRoYXQgY2hhbmdlIGhvdyB0aGUgcmVzdCBvZiB0aGUgY29kZSBvcGVyYXRlcyBvbiBleGlzdGluZyBidWZmZXJzIChlLmcuIGFsbG93aW5nCnVuaW5pdGlhbGl6ZWQgc3RhY2svaGVhcCBtZW1vcnkgdG8gYmUgcmVhZCwgY29waWVkIHRvIHVzZXIgc3BhY2UsIG9yIHVzZWQgaW4gY29udHJvbApmbG93KS4gRG8gbm90IGhlc2l0YXRlIHRvIHVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGluc3BlY3QgdGhlIHN1cnJvdW5kaW5nIGNvZGUsCmNhbGxlZCBmdW5jdGlvbnMsIGFuZCBjYWxsZXJzLgoKU2V0IE5lZWRzS01TQU49dHJ1ZSBPTkxZIElGIHRoZSBwYXRjaCBpbnRyb2R1Y2VzIG9yIG1vZGlmaWVzOgoxLiBLZXJuZWwgc3RydWN0dXJlcyBzZW50IHRvIHVzZXIgc3BhY2UgKHZpYSBjb3B5X3RvX3VzZXIsIHB1dF91c2VyLCBuZXRsaW5rIHNrYgogICBhdHRyaWJ1dGVzLCBpb2N0bCBvdXRwdXQgYXJndW1lbnRzLCBzb2NrZXQgb3B0aW9ucywgb3IgQlBGIGJ1ZmZlcnMpIHdoZXJlIGZpZWxkcwogICBvciBzdHJ1Y3R1cmUgcGFkZGluZyBtaWdodCBub3QgYmUgZnVsbHkgaW5pdGlhbGl6ZWQvemVyb2VkLgoyLiBDb25kaXRpb25hbCBsb2dpYyBvciBicmFuY2hpbmcgdGhhdCBkZXBlbmRzIG9uIHBvdGVudGlhbGx5IHVuaW5pdGlhbGl6ZWQgdmFyaWFibGVzCiAgIG9yIHN0cnVjdCBmaWVsZHMuCjMuIEFsbG9jYXRpb24gb3IgaW5pdGlhbGl6YXRpb24gb2YgY29tcGxleCBkYXRhIHN0cnVjdHVyZXMgd2hlcmUgdW5pbml0aWFsaXplZCBmaWVsZHMKICAgY291bGQgYmUgcmVhZCBsYXRlciBpbiByZWFjaGFibGUgY29kZSBwYXRocy4KNC4gQm91bmRzIGNoZWNrcywgbGVuZ3Rocywgb3IgbG9naWMgaW4gYSB3YXkgdGhhdCBhbGxvd3Mgc3Vycm91bmRpbmcgY29kZSB0byBhY2Nlc3MKICAgdW5pbml0aWFsaXplZCBieXRlcyBvZiBleGlzdGluZyBidWZmZXJzLgoKU2V0IE5lZWRzS01TQU49ZmFsc2UgSUY6Ci0gVGhlIGNvZGUgY2hhbmdlcyBwcmltYXJpbHkgcmlzayBvdXQtb2YtYm91bmRzIGFjY2VzcywgYXJyYXkgb3ZlcmZsb3dzLCBOVUxMIHBvaW50ZXIKICBkZXJlZmVyZW5jZXMsIGxvY2tpbmcgZGVhZGxvY2tzLCBvciB1c2UtYWZ0ZXItZnJlZSBidWdzICh0aGVzZSBhcmUgYWxyZWFkeSBjYXVnaHQKICBieSBLQVNBTiwgTE9DS0RFUCwgb3Igc3RhbmRhcmQgYnVnIGRldGVjdG9ycykuCi0gQWxsIHN0YWNrL2hlYXAgc3RydWN0dXJlcyB0b3VjaGVkIG9yIGludHJvZHVjZWQgYnkgdGhlIHBhdGNoIGFyZSBmdWxseSB6ZXJvZWQKICBvciBpbml0aWFsaXplZCAoZS5nLiB1c2luZyA9IHswfSwgbWVtc2V0LCBremFsbG9jKSBiZWZvcmUgYmVpbmcgcmVhZCBvciBjb3BpZWQuCi0gVGhlIHBhdGNoIGRvZXMgbm90IGludHJvZHVjZSBhbnkgcmlzayBvZiB1bmluaXRpYWxpemVkIG1lbW9yeSB1c2FnZSBvciBpbmZvLWxlYWtzLgoKVXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gaW5zcGVjdCB0aGUgc3Vycm91bmRpbmcgY29kZSBpZiBuZWNlc3NhcnksIHRoZW4gcHJvdmlkZQpkZXRhaWxlZCBLTVNBTlJlYXNvbmluZyBjb250cmFzdGluZyBLQVNBTiB2cyBLTVNBTiBhcHBsaWNhYmlsaXR5IGZvciB0aGlzIHBhdGNoLgpQcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy4KCgpVc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLgpJdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS4KSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlByb21wdDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOgpjb21taXQgYTYxN2M2NzdkNDM3YTVmZDVjMTg0NTcxMjhkZjkyMThlNzE0YzMxZQpBdXRob3I6IHN5ei1jbHVzdGVyICZsdDt0cmlhZ2VAc3l6a2FsbGVyLmNvbSZndDsKRGF0ZTogICBNb24gQXVnIDI0IDAxOjE2OjIyIDIwMjYgJiM0MzswMDAwCgogICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3CgpkaWZmIC0tZ2l0IGEvbmV0L21hYzgwMjExL2NmZy5jIGIvbmV0L21hYzgwMjExL2NmZy5jCmluZGV4IGI2MTYzZGNjN2U5MmMuLjUyM2NlZjBhNTUyNjEgMTAwNjQ0Ci0tLSBhL25ldC9tYWM4MDIxMS9jZmcuYwomIzQzOyYjNDM7JiM0MzsgYi9uZXQvbWFjODAyMTEvY2ZnLmMKQEAgLTExNSw2ICYjNDM7MTE1LDE1IEBAIHN0YXRpYyBpbnQgaWVlZTgwMjExX3NldF9tb25fb3B0aW9ucyhzdHJ1Y3QgaWVlZTgwMjExX3N1Yl9pZl9kYXRhICpzZGF0YSwKIAkJCXJldHVybiAtRUJVU1k7CiAJfQogCiYjNDM7CS8qCiYjNDM7CSAqIEFuIGFjdGl2ZSBtb25pdG9yIGlzIHBhc3NlZCB0byB0aGUgZHJpdmVyIGFuZCBuZWVkcyBhIFRYUSwgd2hpY2ggaXMKJiM0MzsJICogcmVzZXJ2ZWQgd2l0aCB0aGUgbmV0ZGV2IGluIGllZWU4MDIxMV9pZl9hZGQoKSBhbmQgY2Fubm90IGJlIGFkZGVkCiYjNDM7CSAqIGxhdGVyLiAgQW4gaW50ZXJmYWNlIGNyZWF0ZWQgd2l0aG91dCB0aGUgZmxhZyBoYXMgbm9uZSwgc28gcmVmdXNlIHRvCiYjNDM7CSAqIHNldCBpdCByYXRoZXIgdGhhbiBoYW5kIHRoZSBkcml2ZXIgYSBOVUxMIHZpZi0mZ3Q7dHhxLgomIzQzOwkgKi8KJiM0MzsJaWYgKChwYXJhbXMtJmd0O2ZsYWdzICZhbXA7IE1PTklUT1JfRkxBR19BQ1RJVkUpICZhbXA7JmFtcDsgIXNkYXRhLSZndDt2aWYudHhxKQomIzQzOwkJcmV0dXJuIC1FT1BOT1RTVVBQOwomIzQzOwogCS8qIHZhbGlkYXRlIHdoZXRoZXIgTVUtTUlNTyBjYW4gYmUgY29uZmlndXJlZCAqLwogCWlmICghaWVlZTgwMjExX2h3X2NoZWNrKCZhbXA7bG9jYWwtJmd0O2h3LCBXQU5UX01PTklUT1JfVklGKSAmYW1wOyZhbXA7CiAJICAgICFpZWVlODAyMTFfaHdfY2hlY2soJmFtcDtsb2NhbC0mZ3Q7aHcsIE5PX1ZJUlRVQUxfTU9OSVRPUikgJmFtcDsmYW1wOwo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yNS8zPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjQgMDE6MTc8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPmttc2FuLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjE0NQoJCQkJCQkJb3V0cHV0OiAxNDkKCQkJCQkJCXRob3VnaHRzOiAyNTkKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqTXkgQXNzZXNzbWVudCBvZiB0aGUgUGF0Y2gqKgoKT2theSwgc28gdGhpcyBwYXRjaCBpbiBgbmV0L21hYzgwMjExL2NmZy5jYCBpcyBzdHJhaWdodGZvcndhcmQuIEl0JiMzOTtzIGluIGBpZWVlODAyMTFfc2V0X21vbl9vcHRpb25zYCwgd2hpY2ggSSByZWNvZ25pemUgYXMgYSBjb25maWd1cmF0aW9uIGZ1bmN0aW9uLiBUaGUgZ2lzdCBvZiBpdCBpcyB0aGlzOiB0aGV5JiMzOTtyZSBhZGRpbmcgYSBjaGVjay4gSWYgd2UgaGF2ZSB0aGUgYE1PTklUT1JfRkxBR19BQ1RJVkVgIGZsYWcgc2V0IGFuZCwgY3J1Y2lhbGx5LCB0aGUgYXNzb2NpYXRlZCBgdHhxYCBmb3IgdGhlIHZpcnR1YWwgaW50ZXJmYWNlIChgc2RhdGEtJmd0O3ZpZi50eHFgKSBpcyBOVUxMLCB0aGUgZnVuY3Rpb24gbm93IHJldHVybnMgYC1FT1BOT1RTVVBQYC4KClRoaXMgaW1tZWRpYXRlbHkgdGVsbHMgbWUgdGhleSYjMzk7cmUgdHJ5aW5nIHRvIHByZXZlbnQgYSBOVUxMIHBvaW50ZXIgZGVyZWZlcmVuY2Ugb3IgYSBzaW1pbGFyIG1lbW9yeSBhY2Nlc3MgaXNzdWUuIEVzc2VudGlhbGx5LCB0aGUgY29kZSB3YXMgdnVsbmVyYWJsZSBpZiBzb21lb25lIHRyaWVkIHRvIGVuYWJsZSBhY3RpdmUgbW9uaXRvciBtb2RlIHdpdGhvdXQgYSB2YWxpZCB0cmFuc21pdCBxdWV1ZS4gS0FTQU4gb3IgdGhlIGtlcm5lbCYjMzk7cyBub3JtYWwgY2hlY2tzIHdvdWxkIGxpa2VseSBoYXZlIGNhdWdodCBpdCBldmVudHVhbGx5LCBidXQgdGhpcyBwcm9hY3RpdmVseSBwcmV2ZW50cyBpdC4gSXTigJlzIGEgZ29vZCBkZWZlbnNpdmUgcHJvZ3JhbW1pbmcgcHJhY3RpY2UuCgpJIHF1aWNrbHkgbG9va2VkIGF0IHRoZSBzdXJyb3VuZGluZyBjb2RlIHRvIGNvbmZpcm0gbXkgdW5kZXJzdGFuZGluZy4gVGhlIGNvZGUgc25pcHBldCBhZGRlZCBpcyBjbGVhbiwgYW5kIHRoZSBjaGVjayBpdHNlbGYgaXMgc2ltcGxlIGFuZCBkaXJlY3QuIFRoZSBnb29kIG5ld3MgaXMsIHRoZXJlJiMzOTtzIG5vIG9idmlvdXMgcmlzayBvZiB1bmluaXRpYWxpemVkIG1lbW9yeSB1c2FnZSBvciBhbnkgbmV3IGluZm9ybWF0aW9uIGxlYWtzIGludHJvZHVjZWQgYnkgdGhpcyB2YWxpZGF0aW9uLiBJdCYjMzk7cyBqdXN0IGEgc2FmZWd1YXJkIGFnYWluc3QgYSBzcGVjaWZpYywgbGlrZWx5IHVuY29tbW9uLCBzY2VuYXJpby4gVGhlIGBOZWVkc0tNU0FOYCBmbGFnIGlzIGNvcnJlY3RseSBzZXQgdG8gZmFsc2UsIGFzIHRoZSBwYXRjaCBkb2VzbiYjMzk7dCBpbnZvbHZlIGNvbXBsZXggbWVtb3J5IG1hbmFnZW1lbnQgY2hhbmdlcy4gT3ZlcmFsbCwgdGhpcyBwYXRjaCBzZWVtcyBsaWtlIGEgc2Vuc2libGUgYW5kIGxvdy1yaXNrIGltcHJvdmVtZW50LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjI2LzM8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yNCAwMToxNzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtLTVNBTlJlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBhZGRzIGEgdmFsaWRhdGlvbiBjaGVjayBpbiBgaWVlZTgwMjExX3NldF9tb25fb3B0aW9uc2AgdG8gcHJldmVudCBzZXR0aW5nIHRoZSBgTU9OSVRPUl9GTEFHX0FDVElWRWAgZmxhZyBpZiBgc2RhdGEtXHUwMDNldmlmLnR4cWAgaXMgTlVMTC4gVGhpcyBwcmV2ZW50cyBhIHBvdGVudGlhbCBOVUxMIHBvaW50ZXIgZGVyZWZlcmVuY2Ugb3IgaW52YWxpZCBzdGF0ZSB3aGVuIHRoZSBkcml2ZXIgaXMgaGFuZGVkIGEgTlVMTCBgdmlmLVx1MDAzZXR4cWAuIE5VTEwgcG9pbnRlciBkZXJlZmVyZW5jZXMgYW5kIGludmFsaWQgc3RhdGUgYnVncyBhcmUgY2F1Z2h0IGJ5IHN0YW5kYXJkIGtlcm5lbCBjaGVja3MgYW5kIEtBU0FOLiBUaGUgcGF0Y2ggZG9lcyBub3QgaW50cm9kdWNlIG9yIGV4cG9zZSBhbnkgdW5pbml0aWFsaXplZCBtZW1vcnkgcmVhZHMgb3IgaW5mby1sZWFrcywgc28gYSBkZWRpY2F0ZWQgS01TQU4gZnV6emluZyBzZXNzaW9uIGlzIG5vdCBuZWVkZWQuJiMzNDssCiAgJiMzNDtOZWVkc0tNU0FOJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtLTVNBTlJlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBhZGRzIGEgdmFsaWRhdGlvbiBjaGVjayBpbiBgaWVlZTgwMjExX3NldF9tb25fb3B0aW9uc2AgdG8gcHJldmVudCBzZXR0aW5nIHRoZSBgTU9OSVRPUl9GTEFHX0FDVElWRWAgZmxhZyBpZiBgc2RhdGEtXHUwMDNldmlmLnR4cWAgaXMgTlVMTC4gVGhpcyBwcmV2ZW50cyBhIHBvdGVudGlhbCBOVUxMIHBvaW50ZXIgZGVyZWZlcmVuY2Ugb3IgaW52YWxpZCBzdGF0ZSB3aGVuIHRoZSBkcml2ZXIgaXMgaGFuZGVkIGEgTlVMTCBgdmlmLVx1MDAzZXR4cWAuIE5VTEwgcG9pbnRlciBkZXJlZmVyZW5jZXMgYW5kIGludmFsaWQgc3RhdGUgYnVncyBhcmUgY2F1Z2h0IGJ5IHN0YW5kYXJkIGtlcm5lbCBjaGVja3MgYW5kIEtBU0FOLiBUaGUgcGF0Y2ggZG9lcyBub3QgaW50cm9kdWNlIG9yIGV4cG9zZSBhbnkgdW5pbml0aWFsaXplZCBtZW1vcnkgcmVhZHMgb3IgaW5mby1sZWFrcywgc28gYSBkZWRpY2F0ZWQgS01TQU4gZnV6emluZyBzZXNzaW9uIGlzIG5vdCBuZWVkZWQuJiMzNDssCiAgJiMzNDtOZWVkc0tNU0FOJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI0VDAxOjE2OjIyLjg1ODYxOTc3OVoiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjU5OTU5MTM2NDgwLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIkNGRzgwMjExXCIsXG4gICAgXCJNQUM4MDIxMVwiLFxuICAgIFwiTUFDODAyMTFfSFdTSU1cIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJpZWVlODAyMTFfYWRkX2lmYWNlXCIsXG4gICAgXCJpZWVlODAyMTFfY2hhbmdlX2lmYWNlXCJcbiAgXSxcbiAgXCJLTVNBTlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBhZGRzIGEgdmFsaWRhdGlvbiBjaGVjayBpbiBgaWVlZTgwMjExX3NldF9tb25fb3B0aW9uc2AgdG8gcHJldmVudCBzZXR0aW5nIHRoZSBgTU9OSVRPUl9GTEFHX0FDVElWRWAgZmxhZyBpZiBgc2RhdGEtXFx1MDAzZXZpZi50eHFgIGlzIE5VTEwuIFRoaXMgcHJldmVudHMgYSBwb3RlbnRpYWwgTlVMTCBwb2ludGVyIGRlcmVmZXJlbmNlIG9yIGludmFsaWQgc3RhdGUgd2hlbiB0aGUgZHJpdmVyIGlzIGhhbmRlZCBhIE5VTEwgYHZpZi1cXHUwMDNldHhxYC4gTlVMTCBwb2ludGVyIGRlcmVmZXJlbmNlcyBhbmQgaW52YWxpZCBzdGF0ZSBidWdzIGFyZSBjYXVnaHQgYnkgc3RhbmRhcmQga2VybmVsIGNoZWNrcyBhbmQgS0FTQU4uIFRoZSBwYXRjaCBkb2VzIG5vdCBpbnRyb2R1Y2Ugb3IgZXhwb3NlIGFueSB1bmluaXRpYWxpemVkIG1lbW9yeSByZWFkcyBvciBpbmZvLWxlYWtzLCBzbyBhIGRlZGljYXRlZCBLTVNBTiBmdXp6aW5nIHNlc3Npb24gaXMgbm90IG5lZWRlZC5cIixcbiAgXCJOZWVkc0tNU0FOXCI6IGZhbHNlLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBhZGRzIGEgY2hlY2sgaW4gYGllZWU4MDIxMV9zZXRfbW9uX29wdGlvbnNgIHRvIHByZXZlbnQgYSBOVUxMIHBvaW50ZXIgZGVyZWZlcmVuY2Ugd2hlbiBjb25maWd1cmluZyBhbiBhY3RpdmUgbW9uaXRvciBpbnRlcmZhY2Ugd2l0aG91dCBhIFRYIHF1ZXVlLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIG1hYzgwMjExIGNvcmUgbG9naWMsIHJlYWNoYWJsZSB2aWEgdGhlIG5sODAyMTEgbmV0bGluayBpbnRlcmZhY2UgKGUuZy4sIHdoZW4gYWRkaW5nIG9yIGNoYW5naW5nIGEgdmlydHVhbCBpbnRlcmZhY2UpLiBJdCBjYW4gYmUgdGVzdGVkIHVzaW5nIHRoZSBzb2Z0d2FyZS1lbXVsYXRlZCBgbWFjODAyMTFfaHdzaW1gIGRyaXZlci5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjRUMDE6MTY6MjIuODU4NjI1MzM5WiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1Njg1ODgyODEsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIlBhdGNoRGlmZlwiOiBcImNvbW1pdCBhNjE3YzY3N2Q0MzdhNWZkNWMxODQ1NzEyOGRmOTIxOGU3MTRjMzFlXFxuQXV0aG9yOiBzeXotY2x1c3RlciBcXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cXHUwMDNlXFxuRGF0ZTogICBNb24gQXVnIDI0IDAxOjE2OjIyIDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL25ldC9tYWM4MDIxMS9jZmcuYyBiL25ldC9tYWM4MDIxMS9jZmcuY1xcbmluZGV4IGI2MTYzZGNjN2U5MmMuLjUyM2NlZjBhNTUyNjEgMTAwNjQ0XFxuLS0tIGEvbmV0L21hYzgwMjExL2NmZy5jXFxuKysrIGIvbmV0L21hYzgwMjExL2NmZy5jXFxuQEAgLTExNSw2ICsxMTUsMTUgQEAgc3RhdGljIGludCBpZWVlODAyMTFfc2V0X21vbl9vcHRpb25zKHN0cnVjdCBpZWVlODAyMTFfc3ViX2lmX2RhdGEgKnNkYXRhLFxcbiBcXHRcXHRcXHRyZXR1cm4gLUVCVVNZO1xcbiBcXHR9XFxuIFxcbitcXHQvKlxcbitcXHQgKiBBbiBhY3RpdmUgbW9uaXRvciBpcyBwYXNzZWQgdG8gdGhlIGRyaXZlciBhbmQgbmVlZHMgYSBUWFEsIHdoaWNoIGlzXFxuK1xcdCAqIHJlc2VydmVkIHdpdGggdGhlIG5ldGRldiBpbiBpZWVlODAyMTFfaWZfYWRkKCkgYW5kIGNhbm5vdCBiZSBhZGRlZFxcbitcXHQgKiBsYXRlci4gIEFuIGludGVyZmFjZSBjcmVhdGVkIHdpdGhvdXQgdGhlIGZsYWcgaGFzIG5vbmUsIHNvIHJlZnVzZSB0b1xcbitcXHQgKiBzZXQgaXQgcmF0aGVyIHRoYW4gaGFuZCB0aGUgZHJpdmVyIGEgTlVMTCB2aWYtXFx1MDAzZXR4cS5cXG4rXFx0ICovXFxuK1xcdGlmICgocGFyYW1zLVxcdTAwM2VmbGFncyBcXHUwMDI2IE1PTklUT1JfRkxBR19BQ1RJVkUpIFxcdTAwMjZcXHUwMDI2ICFzZGF0YS1cXHUwMDNldmlmLnR4cSlcXG4rXFx0XFx0cmV0dXJuIC1FT1BOT1RTVVBQO1xcbitcXG4gXFx0LyogdmFsaWRhdGUgd2hldGhlciBNVS1NSU1PIGNhbiBiZSBjb25maWd1cmVkICovXFxuIFxcdGlmICghaWVlZTgwMjExX2h3X2NoZWNrKFxcdTAwMjZsb2NhbC1cXHUwMDNlaHcsIFdBTlRfTU9OSVRPUl9WSUYpIFxcdTAwMjZcXHUwMDI2XFxuIFxcdCAgICAhaWVlZTgwMjExX2h3X2NoZWNrKFxcdTAwMjZsb2NhbC1cXHUwMDNlaHcsIE5PX1ZJUlRVQUxfTU9OSVRPUikgXFx1MDAyNlxcdTAwMjZcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjRUMDE6MTY6MjMuNDI3ODkxMTJaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJiZXN0LWV4cGVuc2l2ZSIsIkR1cmF0aW9uIjo1Mjg2OTYwNzc3NCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJDRkc4MDIxMVwiLFxuICAgIFwiTUFDODAyMTFcIixcbiAgICBcIk1BQzgwMjExX0hXU0lNXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiaWVlZTgwMjExX2FkZF9pZmFjZVwiLFxuICAgIFwiaWVlZTgwMjExX2NoYW5nZV9pZmFjZVwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGFkZHMgYSBjaGVjayBpbiBgaWVlZTgwMjExX3NldF9tb25fb3B0aW9uc2AgdG8gcHJldmVudCBhIE5VTEwgcG9pbnRlciBkZXJlZmVyZW5jZSB3aGVuIGNvbmZpZ3VyaW5nIGFuIGFjdGl2ZSBtb25pdG9yIGludGVyZmFjZSB3aXRob3V0IGEgVFggcXVldWUuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgbWFjODAyMTEgY29yZSBsb2dpYywgcmVhY2hhYmxlIHZpYSB0aGUgbmw4MDIxMSBuZXRsaW5rIGludGVyZmFjZSAoZS5nLiwgd2hlbiBhZGRpbmcgb3IgY2hhbmdpbmcgYSB2aXJ0dWFsIGludGVyZmFjZSkuIEl0IGNhbiBiZSB0ZXN0ZWQgdXNpbmcgdGhlIHNvZnR3YXJlLWVtdWxhdGVkIGBtYWM4MDIxMV9od3NpbWAgZHJpdmVyLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiJZb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci5cbllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lXG5pZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXG5cbklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpblxueW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5XG51c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLlxuXG5SZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOlxuLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLlxuLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy5cbi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LlxuLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsXG4gIGV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS5cbi0gQ29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsXG4gIGlvbmljLCBhbWRncHUpIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLlxuLSBEcml2ZXIgLnJlbW92ZSwgLnNodXRkb3duLCBvciBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzIChlLmcuLCBpZ2JfcmVtb3ZlKVxuICB0aGF0IGFyZSBleGVjdXRlZCBvbmx5IGR1cmluZyBQQ0kgaG90LXVucGx1ZyBvciBzeXNmcyBkcml2ZXIgdW5iaW5kIG9wZXJhdGlvbnMuXG5cbklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2hcbnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLlxuXG5XaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzpcbjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuXG4gICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy5cbiAgIFByZWZlciBub24tc3RhdGljLCBub24taW5saW5lZCBBUEkgZW50cnlwb2ludCBmdW5jdGlvbnMgb3ZlciBpbnRlcm5hbCBzdGF0aWMgaGVscGVyIGZ1bmN0aW9uc1xuICAgKHdoaWNoIGFyZSBpbmxpbmVkIGJ5IHRoZSBjb21waWxlciBhbmQgZG8gbm90IGhhdmUgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcykuXG4yLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS5cbiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy5cbiAgIEFsc28gY2hlY2sgXCJkZXBlbmRzIG9uXCIgbGluZXMgaW4gS2NvbmZpZyB0byBpbmNsdWRlIGFueSBub24tc3RhbmRhcmQgcGFyZW50IHN1YnN5c3RlbSBjb25maWdzXG4gICBuZWVkZWQgZm9yIEtidWlsZCB0byBjb21waWxlIHRoZSBjb2RlIHN0YXRpY2FsbHkgaW50byB2bWxpbnV4LiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3NcbiAgIG91dHB1dCBhcnJheSwgYW5kIERPIE5PVCBhZGQgYSAnQ09ORklHXycgcHJlZml4IChlLmcuLCByZXR1cm4gXCJORVRfSVBWNFwiIGluc3RlYWQgb2YgXCJDT05GSUdfTkVUX0lQVjRcIikuXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCBhNjE3YzY3N2Q0MzdhNWZkNWMxODQ1NzEyOGRmOTIxOGU3MTRjMzFlXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIE1vbiBBdWcgMjQgMDE6MTY6MjIgMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9uZXQvbWFjODAyMTEvY2ZnLmMgYi9uZXQvbWFjODAyMTEvY2ZnLmNcbmluZGV4IGI2MTYzZGNjN2U5MmMuLjUyM2NlZjBhNTUyNjEgMTAwNjQ0XG4tLS0gYS9uZXQvbWFjODAyMTEvY2ZnLmNcbisrKyBiL25ldC9tYWM4MDIxMS9jZmcuY1xuQEAgLTExNSw2ICsxMTUsMTUgQEAgc3RhdGljIGludCBpZWVlODAyMTFfc2V0X21vbl9vcHRpb25zKHN0cnVjdCBpZWVlODAyMTFfc3ViX2lmX2RhdGEgKnNkYXRhLFxuIFx0XHRcdHJldHVybiAtRUJVU1k7XG4gXHR9XG4gXG4rXHQvKlxuK1x0ICogQW4gYWN0aXZlIG1vbml0b3IgaXMgcGFzc2VkIHRvIHRoZSBkcml2ZXIgYW5kIG5lZWRzIGEgVFhRLCB3aGljaCBpc1xuK1x0ICogcmVzZXJ2ZWQgd2l0aCB0aGUgbmV0ZGV2IGluIGllZWU4MDIxMV9pZl9hZGQoKSBhbmQgY2Fubm90IGJlIGFkZGVkXG4rXHQgKiBsYXRlci4gIEFuIGludGVyZmFjZSBjcmVhdGVkIHdpdGhvdXQgdGhlIGZsYWcgaGFzIG5vbmUsIHNvIHJlZnVzZSB0b1xuK1x0ICogc2V0IGl0IHJhdGhlciB0aGFuIGhhbmQgdGhlIGRyaXZlciBhIE5VTEwgdmlmLVx1MDAzZXR4cS5cbitcdCAqL1xuK1x0aWYgKChwYXJhbXMtXHUwMDNlZmxhZ3MgXHUwMDI2IE1PTklUT1JfRkxBR19BQ1RJVkUpIFx1MDAyNlx1MDAyNiAhc2RhdGEtXHUwMDNldmlmLnR4cSlcbitcdFx0cmV0dXJuIC1FT1BOT1RTVVBQO1xuK1xuIFx0LyogdmFsaWRhdGUgd2hldGhlciBNVS1NSU1PIGNhbiBiZSBjb25maWd1cmVkICovXG4gXHRpZiAoIWllZWU4MDIxMV9od19jaGVjayhcdTAwMjZsb2NhbC1cdTAwM2VodywgV0FOVF9NT05JVE9SX1ZJRikgXHUwMDI2XHUwMDI2XG4gXHQgICAgIWllZWU4MDIxMV9od19jaGVjayhcdTAwMjZsb2NhbC1cdTAwM2VodywgTk9fVklSVFVBTF9NT05JVE9SKSBcdTAwMjZcdTAwMjZcbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI0VDAxOjE2OjIzLjQyNzg5MjY4WiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NTAzODY3ODAzMSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIG1hYzgwMjExIFBhdGNoIGZvciBNb25pdG9yIE1vZGUgQ29uZmlndXJhdGlvbioqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggaW4gYG5ldC9tYWM4MDIxMS9jZmcuY2AsIGFuZCBpdCdzIG1ha2luZyBhIHByZXR0eSBzZW5zaWJsZSBjaGVjayB3aXRoaW4gYGllZWU4MDIxMV9zZXRfbW9uX29wdGlvbnNgLiBJdCdzIGFkZHJlc3NpbmcgYSBjcml0aWNhbCBpc3N1ZSByZWxhdGVkIHRvIGFjdGl2ZSBtb25pdG9yIGludGVyZmFjZXMuIEJhc2ljYWxseSwgaWYgdGhlIGBNT05JVE9SX0ZMQUdfQUNUSVZFYCBmbGFnIGlzIHNldCwgdGhlIGRyaXZlciAqbmVlZHMqIGEgdHJhbnNtaXQgcXVldWUgKHR4cSkuIFRoaXMgcXVldWUgaXMgZXN0YWJsaXNoZWQgZHVyaW5nIHRoZSBuZXR3b3JrIGRldmljZSBzZXR1cCBpbiBgaWVlZTgwMjExX2lmX2FkZCgpYC4gVGhlIHBhdGNoLCBhcyBJIHNlZSBpdCwgcHJldmVudHMgYSBwb3RlbnRpYWwgcHJvYmxlbSB3aGVyZSB3ZSdkIHRyeSB0byB1c2UgYSBudWxsIGB2aWYtXHUwMDNldHhxYC4gVGhlIGNvZGUgaXMgcmVqZWN0aW5nIHRoZSBvcGVyYXRpb24gaWYgdGhlIGBNT05JVE9SX0ZMQUdfQUNUSVZFYCBiaXQgaXMgc2V0LCBidXQgdGhlIGludGVyZmFjZSB3YXMgY3JlYXRlZCB3aXRob3V0IGEgdHJhbnNtaXQgcXVldWUsIHJldHVybmluZyBhbiBgRU9QTk9UU1VQUGAgZXJyb3IuIEl0J3MgYSBuaWNlLCBmb2N1c2VkIHBpZWNlIG9mIGRlZmVuc2l2ZSBwcm9ncmFtbWluZywgYWltZWQgYXQgcHJldmVudGluZyBhIGNyYXNoIG9yLCB3b3JzZSwgdW5kZWZpbmVkIGJlaGF2aW9yIGR1ZSB0byBhIG51bGwgcG9pbnRlciBkZXJlZmVyZW5jZS5cblxuXG4iLCJJbnB1dFRva2VucyI6MjE0OCwiT3V0cHV0VG9rZW5zIjo0NSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjI1MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI0VDAxOjE2OjI4LjQ2NjU3MzI4MVoiLCJTZXEiOjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1MDY1NDk4NSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJpZWVlODAyMTFfc2V0X21vbl9vcHRpb25zXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcIm5ldC9tYWM4MDIxMS9jZmcuY1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJuZXQvbWFjODAyMTEvY2ZnLmM9NTA9c3RhdGljIHZvaWQgaWVlZTgwMjExX3NldF9tdV9taW1vX2ZvbGxvdyhzdHJ1Y3QgaWVlZTgwMjExX3N1Yl9pZl9kYXRhICpzZGF0YSxcXG4tLVxcbm5ldC9tYWM4MDIxMS9jZmcuYy05NS1cXG5uZXQvbWFjODAyMTEvY2ZnLmM6OTY6c3RhdGljIGludCBpZWVlODAyMTFfc2V0X21vbl9vcHRpb25zKHN0cnVjdCBpZWVlODAyMTFfc3ViX2lmX2RhdGEgKnNkYXRhLFxcbm5ldC9tYWM4MDIxMS9jZmcuYy05Ny1cXHRcXHRcXHRcXHQgICAgIHN0cnVjdCB2aWZfcGFyYW1zICpwYXJhbXMpXFxuLS1cXG5uZXQvbWFjODAyMTEvY2ZnLmM9MjE1PXN0YXRpYyBzdHJ1Y3Qgd2lyZWxlc3NfZGV2ICppZWVlODAyMTFfYWRkX2lmYWNlKHN0cnVjdCB3aXBoeSAqd2lwaHksXFxuLS1cXG5uZXQvbWFjODAyMTEvY2ZnLmMtMjMyLVxcdGlmICh0eXBlID09IE5MODAyMTFfSUZUWVBFX01PTklUT1IpIHtcXG5uZXQvbWFjODAyMTEvY2ZnLmM6MjMzOlxcdFxcdGVyciA9IGllZWU4MDIxMV9zZXRfbW9uX29wdGlvbnMoc2RhdGEsIHBhcmFtcyk7XFxubmV0L21hYzgwMjExL2NmZy5jLTIzNC1cXHRcXHRpZiAoZXJyKSB7XFxuLS1cXG5uZXQvbWFjODAyMTEvY2ZnLmM9MjY4PXN0YXRpYyBpbnQgaWVlZTgwMjExX2NoYW5nZV9pZmFjZShzdHJ1Y3Qgd2lwaHkgKndpcGh5LFxcbi0tXFxubmV0L21hYzgwMjExL2NmZy5jLTMxMC1cXHRpZiAoc2RhdGEtXFx1MDAzZXZpZi50eXBlID09IE5MODAyMTFfSUZUWVBFX01PTklUT1IpIHtcXG5uZXQvbWFjODAyMTEvY2ZnLmM6MzExOlxcdFxcdHJldCA9IGllZWU4MDIxMV9zZXRfbW9uX29wdGlvbnMoc2RhdGEsIHBhcmFtcyk7XFxubmV0L21hYzgwMjExL2NmZy5jLTMxMi1cXHRcXHRpZiAocmV0KVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yNFQwMToxNjoyOC41MTcyMzQ5MTZaIiwiU2VxIjo1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0MzAyMTMxNjg5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgSUVFRSA4MDIuMTEgSW50ZXJmYWNlIENvbmZpZ3VyYXRpb24qKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIGBpZWVlODAyMTFfc2V0X21vbl9vcHRpb25zYCBmdW5jdGlvbi4gSXQncyBkZWNsYXJlZCBhcyBzdGF0aWMsIHdoaWNoIGltbWVkaWF0ZWx5IGxpbWl0cyBpdHMgc2NvcGUuIEl0J3Mgb25seSBjYWxsYWJsZSBmcm9tIHdpdGhpbiB0aGlzIHBhcnRpY3VsYXIgc291cmNlIGZpbGUuIFRoYXQncyBnb29kIHRvIGtub3cuIE5vdywgdGhlIGtleSBpcyB1bmRlcnN0YW5kaW5nICp3aGVyZSogaXQncyBiZWluZyB1c2VkLiBJIHNlZSBpdCdzIGNhbGxlZCBmcm9tIGBpZWVlODAyMTFfYWRkX2lmYWNlYCBhbmQgYGllZWU4MDIxMV9jaGFuZ2VfaWZhY2VgLiBUbyBnZXQgYSBjb21wbGV0ZSBwaWN0dXJlLCBJIG5lZWQgdG8gY29uZmlybSB3aGV0aGVyICp0aG9zZSogZnVuY3Rpb25zIGFyZSBzdGF0aWMgYXMgd2VsbC4gQXJlIHRoZSBmdW5jdGlvbnMgdGhhdCBjYWxsIHRoaXMgZnVuY3Rpb24gYWxzbyBzdGF0aWMsIGxpbWl0aW5nIHRoZWlyIHNjb3BlPyBVbmRlcnN0YW5kaW5nIHRoaXMgd2lsbCBoZWxwIG1lIGRldGVybWluZSB0aGUgYnJvYWRlciBpbXBsaWNhdGlvbnMgb2YgbW9kaWZ5aW5nIGBpZWVlODAyMTFfc2V0X21vbl9vcHRpb25zYCwgYW5kIHdoZXJlIHRob3NlIGNoYW5nZXMgbWlnaHQgcmlwcGxlLiBJZiB0aGV5ICphcmVuJ3QqIHN0YXRpYywgdGhlbiBjaGFuZ2VzIHRvIGBpZWVlODAyMTFfc2V0X21vbl9vcHRpb25zYCBjb3VsZCBoYXZlIHdpZGVyIGltcGFjdC4gSWYgdGhleSBhcmUsIHRoZW4gbXkgc2NvcGUgaXMgbW9yZSBjbGVhcmx5IGRlZmluZWQuIEknbGwgY2hlY2sgdGhlaXIgZGVmaW5pdGlvbnMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjMxMzYsIk91dHB1dFRva2VucyI6NDQsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo5MiwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0yNFQwMToxNjozMi44MTkzNzAyNTVaIiwiU2VxIjo2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDgzMzgwMTUsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiaWVlZTgwMjExX2FkZF9pZmFjZVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJuZXQvbWFjODAyMTEvY2ZnLmNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwibmV0L21hYzgwMjExL2NmZy5jPTE3MD1zdGF0aWMgaW50IGllZWU4MDIxMV9zZXRfYXBfbWJzc2lkX29wdGlvbnMoc3RydWN0IGllZWU4MDIxMV9zdWJfaWZfZGF0YSAqc2RhdGEsXFxuLS1cXG5uZXQvbWFjODAyMTEvY2ZnLmMtMjE0LVxcbm5ldC9tYWM4MDIxMS9jZmcuYzoyMTU6c3RhdGljIHN0cnVjdCB3aXJlbGVzc19kZXYgKmllZWU4MDIxMV9hZGRfaWZhY2Uoc3RydWN0IHdpcGh5ICp3aXBoeSxcXG5uZXQvbWFjODAyMTEvY2ZnLmMtMjE2LVxcdFxcdFxcdFxcdFxcdFxcdGNvbnN0IGNoYXIgKm5hbWUsXFxuLS1cXG5uZXQvbWFjODAyMTEvY2ZnLmM9NTU5Mj1jb25zdCBzdHJ1Y3QgY2ZnODAyMTFfb3BzIG1hYzgwMjExX2NvbmZpZ19vcHMgPSB7XFxubmV0L21hYzgwMjExL2NmZy5jOjU1OTM6XFx0LmFkZF92aXJ0dWFsX2ludGYgPSBpZWVlODAyMTFfYWRkX2lmYWNlLFxcbm5ldC9tYWM4MDIxMS9jZmcuYy01NTk0LVxcdC5kZWxfdmlydHVhbF9pbnRmID0gaWVlZTgwMjExX2RlbF9pZmFjZSxcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjRUMDE6MTY6MzIuODY3NzE0NzRaIiwiU2VxIjo3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo2Mjc1NzQ4MDMxLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyBJbnRlcmZhY2UgQ29uZmlndXJhdGlvbiBpbiBtYWM4MDIxMSoqXG5cbk9rYXksIHNvIEknbSBkaWdnaW5nIGludG8gaG93IHZpcnR1YWwgaW50ZXJmYWNlcyBhcmUgaGFuZGxlZCBpbiBtYWM4MDIxMS4gSSBzZWUgYGllZWU4MDIxMV9hZGRfaWZhY2VgIGRlY2xhcmVkIGFzIHN0YXRpYywgd2hpY2ggaXMgaW50ZXJlc3RpbmcsIGJ1dCB0aGVuIEkgZmluZCBpdCdzIGFzc2lnbmVkIHRvIGBtYWM4MDIxMV9jb25maWdfb3BzLmFkZF92aXJ0dWFsX2ludGZgLiBUaGF0IHNlZW1zIHN0cmFpZ2h0Zm9yd2FyZCBlbm91Z2guIE5vdywgSSdtIGJldHRpbmcgdGhhdCBgaWVlZTgwMjExX2NoYW5nZV9pZmFjZWAgaXMgdGhlIGZ1bmN0aW9uIGJlaW5nIHVzZWQgZm9yIGBtYWM4MDIxMV9jb25maWdfb3BzLmNoYW5nZV92aXJ0dWFsX2ludGZgLiBJdCdzIGEgbG9naWNhbCBjb25uZWN0aW9uLCBnaXZlbiB0aGUgbmFtaW5nIGNvbnZlbnRpb25zLCBidXQgbGV0J3Mgbm90IGFzc3VtZSBhbnl0aGluZy4gSSBuZWVkIHRvIGNvbmZpcm0gdGhhdC4gU28sIEknbSBnb2luZyB0byB0YWtlIGEgY2xvc2VyIGxvb2sgYXQgYGllZWU4MDIxMV9jaGFuZ2VfaWZhY2VgIHRvIHZlcmlmeSBteSBoeXBvdGhlc2lzIGFuZCB1bmRlcnN0YW5kIHRoZSBleGFjdCBtZWNoYW5pY3MuIEdvdHRhIG1ha2Ugc3VyZSBldmVyeXRoaW5nJ3MgYXMgSSBleHBlY3QgaXQgdG8gYmUuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjM3OTUsIk91dHB1dFRva2VucyI6NDQsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo5OSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0yNFQwMToxNjozOS4xNDM0NjUyNDFaIiwiU2VxIjo4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NTA4MzQ2MzQsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiaWVlZTgwMjExX2NoYW5nZV9pZmFjZVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJuZXQvbWFjODAyMTEvY2ZnLmNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwibmV0L21hYzgwMjExL2NmZy5jPTI2MT1zdGF0aWMgaW50IGllZWU4MDIxMV9kZWxfaWZhY2Uoc3RydWN0IHdpcGh5ICp3aXBoeSwgc3RydWN0IHdpcmVsZXNzX2RldiAqd2RldilcXG4tLVxcbm5ldC9tYWM4MDIxMS9jZmcuYy0yNjctXFxubmV0L21hYzgwMjExL2NmZy5jOjI2ODpzdGF0aWMgaW50IGllZWU4MDIxMV9jaGFuZ2VfaWZhY2Uoc3RydWN0IHdpcGh5ICp3aXBoeSxcXG5uZXQvbWFjODAyMTEvY2ZnLmMtMjY5LVxcdFxcdFxcdFxcdCAgc3RydWN0IG5ldF9kZXZpY2UgKmRldixcXG4tLVxcbm5ldC9tYWM4MDIxMS9jZmcuYz01NTkyPWNvbnN0IHN0cnVjdCBjZmc4MDIxMV9vcHMgbWFjODAyMTFfY29uZmlnX29wcyA9IHtcXG4tLVxcbm5ldC9tYWM4MDIxMS9jZmcuYy01NTk0LVxcdC5kZWxfdmlydHVhbF9pbnRmID0gaWVlZTgwMjExX2RlbF9pZmFjZSxcXG5uZXQvbWFjODAyMTEvY2ZnLmM6NTU5NTpcXHQuY2hhbmdlX3ZpcnR1YWxfaW50ZiA9IGllZWU4MDIxMV9jaGFuZ2VfaWZhY2UsXFxubmV0L21hYzgwMjExL2NmZy5jLTU1OTYtXFx0LnN0YXJ0X3AycF9kZXZpY2UgPSBpZWVlODAyMTFfc3RhcnRfcDJwX2RldmljZSxcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjRUMDE6MTY6MzkuMTk0MzA1NTY1WiIsIlNlcSI6OSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NjA3MDM0MzczNCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipGb2N1c2luZyBvbiBJbnRlcmZhY2UgQWRkaXRpb24vTW9kaWZpY2F0aW9uIGluIG1hYzgwMjExKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgaG93IGludGVyZmFjZXMgYXJlIGFkZGVkIGFuZCBjaGFuZ2VkIHdpdGhpbiB0aGUgbWFjODAyMTEgd2lyZWxlc3Mgc3RhY2suIE15IGluaXRpYWwgdGhvdWdodCB3YXMgdG8gZGlnIGludG8gYGllZWU4MDIxMV9hZGRfaWZhY2VgIGFuZCBgaWVlZTgwMjExX2NoYW5nZV9pZmFjZWAsIGJ1dCB0aGV5J3JlIG1hcmtlZCBhcyBzdGF0aWMsIHdoaWNoIHVzdWFsbHkgbWVhbnMgdGhleSdyZSBjb21waWxlci1pbmxpbmVkIGFuZCBub3QgaWRlYWwgZm9yIGZ1enppbmcgdGFyZ2V0IHN5bWJvbHMuICBJIHF1aWNrbHkgcmVtZW1iZXJlZCB0aGF0IGBtYWM4MDIxMV9jb25maWdfb3BzYCBwbGF5cyBhIHJvbGUgaW4gYGNmZzgwMjExYC4gQnV0IGhvbGQgb24sIGBtYWM4MDIxMV9jb25maWdfb3BzYCBpcyBhIHN0cnVjdCwgbm90IGEgZnVuY3Rpb24gSSBjYW4gZGlyZWN0bHkgdGFyZ2V0LlxuXG5UaGVuIEkgcmVhbGl6ZWQgdGhhdCBgaWVlZTgwMjExX2FkZF9pZmFjZWAgaXMgc3RhdGljLiBUaGF0IHVzdWFsbHkgbWFrZXMgaXQgbm90IGlkZWFsLCBhbmQgSSB3YXMgb24gdGhlIHJpZ2h0IHRyYWNrLCB3aGVuIEkgY29uc2lkZXJlZCBnb2luZyB1cCBhIGxldmVsIHRvIGBubDgwMjExX25ld19pbnRlcmZhY2VgIGFuZCBgbmw4MDIxMV9zZXRfaW50ZXJmYWNlYCBpbiBgbmV0L3dpcmVsZXNzL25sODAyMTEuY2AsIGJ1dCB0aGUgaW5zdHJ1Y3Rpb25zIEkgYW0gZm9sbG93aW5nIHNheSB0byBsb29rIGZvciBub24tc3RhdGljLCBub24taW5saW5lZCBlbnRyeXBvaW50IGZ1bmN0aW9ucy5cblxuQWhhISBJZiBgaWVlZTgwMjExX2FkZF9pZmFjZWAgYW5kIGBpZWVlODAyMTFfY2hhbmdlX2lmYWNlYCBhcmUgYXNzaWduZWQgdG8gZnVuY3Rpb24gcG9pbnRlcnMsIHRoYXQgYWN0dWFsbHkgKnByZXZlbnRzKiB0aGVtIGZyb20gYmVpbmcgaW5saW5lZCBieSB0aGUgY29tcGlsZXIuIEJlY2F1c2Ugb2YgdGhhdCwgdGhleSdsbCBoYXZlIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMuIEdpdmVuIHRoYXQgdW5kZXJzdGFuZGluZywgYGllZWU4MDIxMV9hZGRfaWZhY2VgIGFuZCBgaWVlZTgwMjExX2NoYW5nZV9pZmFjZWAgbG9vayBsaWtlIHBlcmZlY3RseSBnb29kIGNhbmRpZGF0ZXMgZm9yIGBGb2N1c1N5bWJvbHNgLCBhcyBsb25nIGFzIHRoZXkgYXJlIGFzc2lnbmVkIHRvIGZ1bmN0aW9uIHBvaW50ZXJzLlxuXG5cbiIsIklucHV0VG9rZW5zIjo0NDcwLCJPdXRwdXRUb2tlbnMiOjM4LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MzA1LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI0VDAxOjE2OjQ1LjI2NDY1MzMzOVoiLCJTZXEiOjEwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDg4OTY3ODYsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY29uZmlnIE1BQzgwMjExXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcIm5ldC9tYWM4MDIxMS9LY29uZmlnXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIm5ldC9tYWM4MDIxMS9LY29uZmlnLTEtIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5XFxubmV0L21hYzgwMjExL0tjb25maWc6Mjpjb25maWcgTUFDODAyMTFcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0zLVxcdHRyaXN0YXRlIFxcXCJHZW5lcmljIElFRUUgODAyLjExIE5ldHdvcmtpbmcgU3RhY2sgKG1hYzgwMjExKVxcXCJcXG4tLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnPTE5PWlmIE1BQzgwMjExICE9IG5cXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yMC1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoyMTpjb25maWcgTUFDODAyMTFfSEFTX1JDXFxubmV0L21hYzgwMjExL0tjb25maWctMjItXFx0Ym9vbFxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTIzLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjI0OmNvbmZpZyBNQUM4MDIxMV9SQ19NSU5TVFJFTFxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTI1LVxcdGJvb2wgXFxcIk1pbnN0cmVsXFxcIiBpZiBFWFBFUlRcXG4tLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnPTMxPWNob2ljZVxcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWctNDAtXFxubmV0L21hYzgwMjExL0tjb25maWc6NDE6Y29uZmlnIE1BQzgwMjExX1JDX0RFRkFVTFRfTUlOU1RSRUxcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy00Mi1cXHRib29sIFxcXCJNaW5zdHJlbFxcXCJcXG4tLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnPTQ4PWVuZGNob2ljZVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTQ5LVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjUwOmNvbmZpZyBNQUM4MDIxMV9SQ19ERUZBVUxUXFxubmV0L21hYzgwMjExL0tjb25maWctNTEtXFx0c3RyaW5nXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZz01Nz1jb21tZW50IFxcXCJTb21lIHdpcmVsZXNzIGRyaXZlcnMgcmVxdWlyZSBhIHJhdGUgY29udHJvbCBhbGdvcml0aG1cXFwiXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZy01OS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZzo2MDpjb25maWcgTUFDODAyMTFfS1VOSVRfVEVTVFxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTYxLVxcdHRyaXN0YXRlIFxcXCJLVW5pdCB0ZXN0cyBmb3IgbWFjODAyMTFcXFwiIGlmICFLVU5JVF9BTExfVEVTVFNcXG4tLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTY5LVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjcwOmNvbmZpZyBNQUM4MDIxMV9NRVNIXFxubmV0L21hYzgwMjExL0tjb25maWctNzEtXFx0Ym9vbCBcXFwiRW5hYmxlIG1hYzgwMjExIG1lc2ggbmV0d29ya2luZyBzdXBwb3J0XFxcIlxcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWctNzgtXFxubmV0L21hYzgwMjExL0tjb25maWc6Nzk6Y29uZmlnIE1BQzgwMjExX0xFRFNcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy04MC1cXHRib29sIFxcXCJFbmFibGUgTEVEIHRyaWdnZXJzXFxcIlxcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWctODctXFxubmV0L21hYzgwMjExL0tjb25maWc6ODg6Y29uZmlnIE1BQzgwMjExX0RFQlVHRlNcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy04OS1cXHRib29sIFxcXCJFeHBvcnQgbWFjODAyMTEgaW50ZXJuYWxzIGluIERlYnVnRlNcXFwiXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZy05Ni1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZzo5Nzpjb25maWcgTUFDODAyMTFfTUVTU0FHRV9UUkFDSU5HXFxubmV0L21hYzgwMjExL0tjb25maWctOTgtXFx0Ym9vbCBcXFwiVHJhY2UgYWxsIG1hYzgwMjExIGRlYnVnIG1lc3NhZ2VzXFxcIlxcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWctMTA5LVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjExMDptZW51Y29uZmlnIE1BQzgwMjExX0RFQlVHX01FTlVcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xMTEtXFx0Ym9vbCBcXFwiU2VsZWN0IG1hYzgwMjExIGRlYnVnZ2luZyBmZWF0dXJlc1xcXCJcXG4tLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTExNS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoxMTY6Y29uZmlnIE1BQzgwMjExX05PSU5MSU5FXFxubmV0L21hYzgwMjExL0tjb25maWctMTE3LVxcdGJvb2wgXFxcIkRvIG5vdCBpbmxpbmUgVFgvUlggaGFuZGxlcnNcXFwiXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xMzEtXFxubmV0L21hYzgwMjExL0tjb25maWc6MTMyOmNvbmZpZyBNQUM4MDIxMV9WRVJCT1NFX0RFQlVHXFxubmV0L21hYzgwMjExL0tjb25maWctMTMzLVxcdGJvb2wgXFxcIlZlcmJvc2UgZGVidWdnaW5nIG91dHB1dFxcXCJcXG4tLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTE0Mi1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoxNDM6Y29uZmlnIE1BQzgwMjExX01MTUVfREVCVUdcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xNDQtXFx0Ym9vbCBcXFwiVmVyYm9zZSBtYW5hZ2VkIE1MTUUgb3V0cHV0XFxcIlxcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWctMTUzLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjE1NDpjb25maWcgTUFDODAyMTFfU1RBX0RFQlVHXFxubmV0L21hYzgwMjExL0tjb25maWctMTU1LVxcdGJvb2wgXFxcIlZlcmJvc2Ugc3RhdGlvbiBkZWJ1Z2dpbmdcXFwiXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xNjItXFxubmV0L21hYzgwMjExL0tjb25maWc6MTYzOmNvbmZpZyBNQUM4MDIxMV9IVF9ERUJVR1xcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTE2NC1cXHRib29sIFxcXCJWZXJib3NlIEhUIGRlYnVnZ2luZ1xcXCJcXG4tLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTE3NC1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoxNzU6Y29uZmlnIE1BQzgwMjExX09DQl9ERUJVR1xcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTE3Ni1cXHRib29sIFxcXCJWZXJib3NlIE9DQiBkZWJ1Z2dpbmdcXFwiXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xODUtXFxubmV0L21hYzgwMjExL0tjb25maWc6MTg2OmNvbmZpZyBNQUM4MDIxMV9JQlNTX0RFQlVHXFxubmV0L21hYzgwMjExL0tjb25maWctMTg3LVxcdGJvb2wgXFxcIlZlcmJvc2UgSUJTUyBkZWJ1Z2dpbmdcXFwiXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xOTYtXFxubmV0L21hYzgwMjExL0tjb25maWc6MTk3OmNvbmZpZyBNQUM4MDIxMV9QU19ERUJVR1xcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTE5OC1cXHRib29sIFxcXCJWZXJib3NlIHBvd2Vyc2F2ZSBtb2RlIGRlYnVnZ2luZ1xcXCJcXG4tLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTIwOC1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoyMDk6Y29uZmlnIE1BQzgwMjExX01QTF9ERUJVR1xcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTIxMC1cXHRib29sIFxcXCJWZXJib3NlIG1lc2ggcGVlciBsaW5rIGRlYnVnZ2luZ1xcXCJcXG4tLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTIyMS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoyMjI6Y29uZmlnIE1BQzgwMjExX01QQVRIX0RFQlVHXFxubmV0L21hYzgwMjExL0tjb25maWctMjIzLVxcdGJvb2wgXFxcIlZlcmJvc2UgbWVzaCBwYXRoIGRlYnVnZ2luZ1xcXCJcXG4tLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTIzNC1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoyMzU6Y29uZmlnIE1BQzgwMjExX01IV01QX0RFQlVHXFxubmV0L21hYzgwMjExL0tjb25maWctMjM2LVxcdGJvb2wgXFxcIlZlcmJvc2UgbWVzaCBIV01QIHJvdXRpbmcgZGVidWdnaW5nXFxcIlxcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWctMjQ3LVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjI0ODpjb25maWcgTUFDODAyMTFfTUVTSF9TWU5DX0RFQlVHXFxubmV0L21hYzgwMjExL0tjb25maWctMjQ5LVxcdGJvb2wgXFxcIlZlcmJvc2UgbWVzaCBzeW5jaHJvbml6YXRpb24gZGVidWdnaW5nXFxcIlxcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWctMjU4LVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjI1OTpjb25maWcgTUFDODAyMTFfTUVTSF9DU0FfREVCVUdcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yNjAtXFx0Ym9vbCBcXFwiVmVyYm9zZSBtZXNoIGNoYW5uZWwgc3dpdGNoIGRlYnVnZ2luZ1xcXCJcXG4tLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTI2OS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoyNzA6Y29uZmlnIE1BQzgwMjExX01FU0hfUFNfREVCVUdcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yNzEtXFx0Ym9vbCBcXFwiVmVyYm9zZSBtZXNoIHBvd2Vyc2F2ZSBkZWJ1Z2dpbmdcXFwiXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yODAtXFxubmV0L21hYzgwMjExL0tjb25maWc6MjgxOmNvbmZpZyBNQUM4MDIxMV9URExTX0RFQlVHXFxubmV0L21hYzgwMjExL0tjb25maWctMjgyLVxcdGJvb2wgXFxcIlZlcmJvc2UgVERMUyBkZWJ1Z2dpbmdcXFwiXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yOTItXFxubmV0L21hYzgwMjExL0tjb25maWc6MjkzOmNvbmZpZyBNQUM4MDIxMV9ERUJVR19DT1VOVEVSU1xcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTI5NC1cXHRib29sIFxcXCJFeHRyYSBzdGF0aXN0aWNzIGZvciBUWC9SWCBkZWJ1Z2dpbmdcXFwiXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0zMDctXFxubmV0L21hYzgwMjExL0tjb25maWc6MzA4OmNvbmZpZyBNQUM4MDIxMV9TVEFfSEFTSF9NQVhfU0laRVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTMwOS1cXHRpbnQgXFxcIlN0YXRpb24gaGFzaCB0YWJsZSBtYXhpbXVtIHNpemVcXFwiIGlmIE1BQzgwMjExX0RFQlVHX01FTlVcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjRUMDE6MTY6NDUuMzEzNTYxNjU0WiIsIlNlcSI6MTEsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjMyMDczNTU0NDUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBNQUM4MDIxMSBDb25maWd1cmF0aW9uKipcblxuT2theSwgc28gdGhlIGN1cnJlbnQgY29uZmlndXJhdGlvbiBJJ20gbG9va2luZyBhdCBpcyBgTUFDODAyMTFgLiBUaGF0J3MgdGhlIHN0YXJ0aW5nIHBvaW50LiBJIG5lZWQgdG8gbWFrZSBzdXJlIEkgZG9uJ3QgbWlzcyBhbnl0aGluZywgc28gSSdtIHF1aWNrbHkgY2hlY2tpbmcg4oCTIGlzIHRoZXJlICphbnkqIG90aGVyIGNvbmZpZyByZWxhdGVkIHRvIHRoaXM/IEkgd2FudCB0byBnZXQgYSBjb21wbGV0ZSBwaWN0dXJlIGJlZm9yZSBkaXZpbmcgaW4uXG5cbkFscmlnaHQsIHRoZSBwYXRjaCBJJ20gaW50ZXJlc3RlZCBpbiBpcyBsb2NhdGVkIGluIGBuZXQvbWFjODAyMTEvY2ZnLmNgLiBOb3csIGJlZm9yZSBJIHN0YXJ0IGRpc3NlY3RpbmcgdGhlIHBhdGNoIGl0c2VsZiwgSSBuZWVkIHRvIHVuZGVyc3RhbmQgYW55IGRlcGVuZGVuY2llcy4gTGV0IG1lIHZlcmlmeSB0aGF0IHRoZSBgTUFDODAyMTFgIGNvbmZpZ3VyYXRpb24gZG9lc24ndCByZWx5IG9uIG9yIHRyaWdnZXIgYW55IG90aGVyIHNpZ25pZmljYW50IGNvbmZpZ3VyYXRpb25zLiBBIHF1aWNrIGRlcGVuZGVuY3kgY2hlY2sgd2lsbCBnaXZlIG1lIGNydWNpYWwgY29udGV4dC5cblxuXG4iLCJJbnB1dFRva2VucyI6NzM4NCwiT3V0cHV0VG9rZW5zIjozMywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjU1LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI0VDAxOjE2OjQ4LjUyMDkxOTA2OFoiLCJTZXEiOjEyLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDYwOTQwNjUsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiZGVwZW5kcyBvblwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJuZXQvbWFjODAyMTEvS2NvbmZpZ1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJuZXQvbWFjODAyMTEvS2NvbmZpZz0yPWNvbmZpZyBNQUM4MDIxMVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTMtXFx0dHJpc3RhdGUgXFxcIkdlbmVyaWMgSUVFRSA4MDIuMTEgTmV0d29ya2luZyBTdGFjayAobWFjODAyMTEpXFxcIlxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjQ6XFx0ZGVwZW5kcyBvbiBDRkc4MDIxMVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTUtXFx0c2VsZWN0IENSWVBUT1xcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWc9MTY9Y29tbWVudCBcXFwiQ0ZHODAyMTEgbmVlZHMgdG8gYmUgZW5hYmxlZCBmb3IgTUFDODAyMTFcXFwiXFxubmV0L21hYzgwMjExL0tjb25maWc6MTc6XFx0ZGVwZW5kcyBvbiBDRkc4MDIxMT1uXFxubmV0L21hYzgwMjExL0tjb25maWctMTgtXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZz0zMT1jaG9pY2VcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0zMi1cXHRwcm9tcHQgXFxcIkRlZmF1bHQgcmF0ZSBjb250cm9sIGFsZ29yaXRobVxcXCJcXG5uZXQvbWFjODAyMTEvS2NvbmZpZzozMzpcXHRkZXBlbmRzIG9uIE1BQzgwMjExX0hBU19SQ1xcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTM0LVxcdGRlZmF1bHQgTUFDODAyMTFfUkNfREVGQVVMVF9NSU5TVFJFTFxcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWc9NDE9Y29uZmlnIE1BQzgwMjExX1JDX0RFRkFVTFRfTUlOU1RSRUxcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy00Mi1cXHRib29sIFxcXCJNaW5zdHJlbFxcXCJcXG5uZXQvbWFjODAyMTEvS2NvbmZpZzo0MzpcXHRkZXBlbmRzIG9uIE1BQzgwMjExX1JDX01JTlNUUkVMXFxubmV0L21hYzgwMjExL0tjb25maWctNDQtXFx0aGVscFxcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWc9NTc9Y29tbWVudCBcXFwiU29tZSB3aXJlbGVzcyBkcml2ZXJzIHJlcXVpcmUgYSByYXRlIGNvbnRyb2wgYWxnb3JpdGhtXFxcIlxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjU4OlxcdGRlcGVuZHMgb24gTUFDODAyMTEgXFx1MDAyNlxcdTAwMjYgTUFDODAyMTFfSEFTX1JDPW5cXG5uZXQvbWFjODAyMTEvS2NvbmZpZy01OS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZz02MD1jb25maWcgTUFDODAyMTFfS1VOSVRfVEVTVFxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTYxLVxcdHRyaXN0YXRlIFxcXCJLVW5pdCB0ZXN0cyBmb3IgbWFjODAyMTFcXFwiIGlmICFLVU5JVF9BTExfVEVTVFNcXG5uZXQvbWFjODAyMTEvS2NvbmZpZzo2MjpcXHRkZXBlbmRzIG9uIEtVTklUXFxubmV0L21hYzgwMjExL0tjb25maWc6NjM6XFx0ZGVwZW5kcyBvbiBNQUM4MDIxMVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTY0LVxcdGRlZmF1bHQgS1VOSVRfQUxMX1RFU1RTXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZz03MD1jb25maWcgTUFDODAyMTFfTUVTSFxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTcxLVxcdGJvb2wgXFxcIkVuYWJsZSBtYWM4MDIxMSBtZXNoIG5ldHdvcmtpbmcgc3VwcG9ydFxcXCJcXG5uZXQvbWFjODAyMTEvS2NvbmZpZzo3MjpcXHRkZXBlbmRzIG9uIE1BQzgwMjExXFxubmV0L21hYzgwMjExL0tjb25maWctNzMtXFx0aGVscFxcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWc9Nzk9Y29uZmlnIE1BQzgwMjExX0xFRFNcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy04MC1cXHRib29sIFxcXCJFbmFibGUgTEVEIHRyaWdnZXJzXFxcIlxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjgxOlxcdGRlcGVuZHMgb24gTUFDODAyMTFcXG5uZXQvbWFjODAyMTEvS2NvbmZpZzo4MjpcXHRkZXBlbmRzIG9uIExFRFNfQ0xBU1M9eSB8fCBMRURTX0NMQVNTPU1BQzgwMjExXFxubmV0L21hYzgwMjExL0tjb25maWctODMtXFx0c2VsZWN0IExFRFNfVFJJR0dFUlNcXG4tLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnPTg4PWNvbmZpZyBNQUM4MDIxMV9ERUJVR0ZTXFxubmV0L21hYzgwMjExL0tjb25maWctODktXFx0Ym9vbCBcXFwiRXhwb3J0IG1hYzgwMjExIGludGVybmFscyBpbiBEZWJ1Z0ZTXFxcIlxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjkwOlxcdGRlcGVuZHMgb24gTUFDODAyMTEgXFx1MDAyNlxcdTAwMjYgQ0ZHODAyMTFfREVCVUdGU1xcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTkxLVxcdGhlbHBcXG4tLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnPTk3PWNvbmZpZyBNQUM4MDIxMV9NRVNTQUdFX1RSQUNJTkdcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy05OC1cXHRib29sIFxcXCJUcmFjZSBhbGwgbWFjODAyMTEgZGVidWcgbWVzc2FnZXNcXFwiXFxubmV0L21hYzgwMjExL0tjb25maWc6OTk6XFx0ZGVwZW5kcyBvbiBNQUM4MDIxMSBcXHUwMDI2XFx1MDAyNiBUUkFDSU5HXFxubmV0L21hYzgwMjExL0tjb25maWctMTAwLVxcdGhlbHBcXG4tLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnPTExMD1tZW51Y29uZmlnIE1BQzgwMjExX0RFQlVHX01FTlVcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xMTEtXFx0Ym9vbCBcXFwiU2VsZWN0IG1hYzgwMjExIGRlYnVnZ2luZyBmZWF0dXJlc1xcXCJcXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoxMTI6XFx0ZGVwZW5kcyBvbiBNQUM4MDIxMVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTExMy1cXHRoZWxwXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZz0xMTY9Y29uZmlnIE1BQzgwMjExX05PSU5MSU5FXFxubmV0L21hYzgwMjExL0tjb25maWctMTE3LVxcdGJvb2wgXFxcIkRvIG5vdCBpbmxpbmUgVFgvUlggaGFuZGxlcnNcXFwiXFxubmV0L21hYzgwMjExL0tjb25maWc6MTE4OlxcdGRlcGVuZHMgb24gTUFDODAyMTFfREVCVUdfTUVOVVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTExOS1cXHRoZWxwXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZz0xMzI9Y29uZmlnIE1BQzgwMjExX1ZFUkJPU0VfREVCVUdcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xMzMtXFx0Ym9vbCBcXFwiVmVyYm9zZSBkZWJ1Z2dpbmcgb3V0cHV0XFxcIlxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjEzNDpcXHRkZXBlbmRzIG9uIE1BQzgwMjExX0RFQlVHX01FTlVcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xMzUtXFx0aGVscFxcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWc9MTQzPWNvbmZpZyBNQUM4MDIxMV9NTE1FX0RFQlVHXFxubmV0L21hYzgwMjExL0tjb25maWctMTQ0LVxcdGJvb2wgXFxcIlZlcmJvc2UgbWFuYWdlZCBNTE1FIG91dHB1dFxcXCJcXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoxNDU6XFx0ZGVwZW5kcyBvbiBNQUM4MDIxMV9ERUJVR19NRU5VXFxubmV0L21hYzgwMjExL0tjb25maWctMTQ2LVxcdGhlbHBcXG4tLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnPTE1ND1jb25maWcgTUFDODAyMTFfU1RBX0RFQlVHXFxubmV0L21hYzgwMjExL0tjb25maWctMTU1LVxcdGJvb2wgXFxcIlZlcmJvc2Ugc3RhdGlvbiBkZWJ1Z2dpbmdcXFwiXFxubmV0L21hYzgwMjExL0tjb25maWc6MTU2OlxcdGRlcGVuZHMgb24gTUFDODAyMTFfREVCVUdfTUVOVVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTE1Ny1cXHRoZWxwXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZz0xNjM9Y29uZmlnIE1BQzgwMjExX0hUX0RFQlVHXFxubmV0L21hYzgwMjExL0tjb25maWctMTY0LVxcdGJvb2wgXFxcIlZlcmJvc2UgSFQgZGVidWdnaW5nXFxcIlxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjE2NTpcXHRkZXBlbmRzIG9uIE1BQzgwMjExX0RFQlVHX01FTlVcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xNjYtXFx0aGVscFxcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWc9MTc1PWNvbmZpZyBNQUM4MDIxMV9PQ0JfREVCVUdcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xNzYtXFx0Ym9vbCBcXFwiVmVyYm9zZSBPQ0IgZGVidWdnaW5nXFxcIlxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjE3NzpcXHRkZXBlbmRzIG9uIE1BQzgwMjExX0RFQlVHX01FTlVcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xNzgtXFx0aGVscFxcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWc9MTg2PWNvbmZpZyBNQUM4MDIxMV9JQlNTX0RFQlVHXFxubmV0L21hYzgwMjExL0tjb25maWctMTg3LVxcdGJvb2wgXFxcIlZlcmJvc2UgSUJTUyBkZWJ1Z2dpbmdcXFwiXFxubmV0L21hYzgwMjExL0tjb25maWc6MTg4OlxcdGRlcGVuZHMgb24gTUFDODAyMTFfREVCVUdfTUVOVVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTE4OS1cXHRoZWxwXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZz0xOTc9Y29uZmlnIE1BQzgwMjExX1BTX0RFQlVHXFxubmV0L21hYzgwMjExL0tjb25maWctMTk4LVxcdGJvb2wgXFxcIlZlcmJvc2UgcG93ZXJzYXZlIG1vZGUgZGVidWdnaW5nXFxcIlxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjE5OTpcXHRkZXBlbmRzIG9uIE1BQzgwMjExX0RFQlVHX01FTlVcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yMDAtXFx0aGVscFxcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWc9MjA5PWNvbmZpZyBNQUM4MDIxMV9NUExfREVCVUdcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yMTAtXFx0Ym9vbCBcXFwiVmVyYm9zZSBtZXNoIHBlZXIgbGluayBkZWJ1Z2dpbmdcXFwiXFxubmV0L21hYzgwMjExL0tjb25maWc6MjExOlxcdGRlcGVuZHMgb24gTUFDODAyMTFfREVCVUdfTUVOVVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjIxMjpcXHRkZXBlbmRzIG9uIE1BQzgwMjExX01FU0hcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yMTMtXFx0aGVscFxcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWc9MjIyPWNvbmZpZyBNQUM4MDIxMV9NUEFUSF9ERUJVR1xcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTIyMy1cXHRib29sIFxcXCJWZXJib3NlIG1lc2ggcGF0aCBkZWJ1Z2dpbmdcXFwiXFxubmV0L21hYzgwMjExL0tjb25maWc6MjI0OlxcdGRlcGVuZHMgb24gTUFDODAyMTFfREVCVUdfTUVOVVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjIyNTpcXHRkZXBlbmRzIG9uIE1BQzgwMjExX01FU0hcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yMjYtXFx0aGVscFxcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWc9MjM1PWNvbmZpZyBNQUM4MDIxMV9NSFdNUF9ERUJVR1xcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTIzNi1cXHRib29sIFxcXCJWZXJib3NlIG1lc2ggSFdNUCByb3V0aW5nIGRlYnVnZ2luZ1xcXCJcXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoyMzc6XFx0ZGVwZW5kcyBvbiBNQUM4MDIxMV9ERUJVR19NRU5VXFxubmV0L21hYzgwMjExL0tjb25maWc6MjM4OlxcdGRlcGVuZHMgb24gTUFDODAyMTFfTUVTSFxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTIzOS1cXHRoZWxwXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZz0yNDg9Y29uZmlnIE1BQzgwMjExX01FU0hfU1lOQ19ERUJVR1xcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTI0OS1cXHRib29sIFxcXCJWZXJib3NlIG1lc2ggc3luY2hyb25pemF0aW9uIGRlYnVnZ2luZ1xcXCJcXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoyNTA6XFx0ZGVwZW5kcyBvbiBNQUM4MDIxMV9ERUJVR19NRU5VXFxubmV0L21hYzgwMjExL0tjb25maWc6MjUxOlxcdGRlcGVuZHMgb24gTUFDODAyMTFfTUVTSFxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTI1Mi1cXHRoZWxwXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZz0yNTk9Y29uZmlnIE1BQzgwMjExX01FU0hfQ1NBX0RFQlVHXFxubmV0L21hYzgwMjExL0tjb25maWctMjYwLVxcdGJvb2wgXFxcIlZlcmJvc2UgbWVzaCBjaGFubmVsIHN3aXRjaCBkZWJ1Z2dpbmdcXFwiXFxubmV0L21hYzgwMjExL0tjb25maWc6MjYxOlxcdGRlcGVuZHMgb24gTUFDODAyMTFfREVCVUdfTUVOVVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjI2MjpcXHRkZXBlbmRzIG9uIE1BQzgwMjExX01FU0hcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yNjMtXFx0aGVscFxcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWc9MjcwPWNvbmZpZyBNQUM4MDIxMV9NRVNIX1BTX0RFQlVHXFxubmV0L21hYzgwMjExL0tjb25maWctMjcxLVxcdGJvb2wgXFxcIlZlcmJvc2UgbWVzaCBwb3dlcnNhdmUgZGVidWdnaW5nXFxcIlxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjI3MjpcXHRkZXBlbmRzIG9uIE1BQzgwMjExX0RFQlVHX01FTlVcXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoyNzM6XFx0ZGVwZW5kcyBvbiBNQUM4MDIxMV9NRVNIXFxubmV0L21hYzgwMjExL0tjb25maWctMjc0LVxcdGhlbHBcXG4tLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnPTI4MT1jb25maWcgTUFDODAyMTFfVERMU19ERUJVR1xcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTI4Mi1cXHRib29sIFxcXCJWZXJib3NlIFRETFMgZGVidWdnaW5nXFxcIlxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjI4MzpcXHRkZXBlbmRzIG9uIE1BQzgwMjExX0RFQlVHX01FTlVcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yODQtXFx0aGVscFxcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWc9MjkzPWNvbmZpZyBNQUM4MDIxMV9ERUJVR19DT1VOVEVSU1xcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTI5NC1cXHRib29sIFxcXCJFeHRyYSBzdGF0aXN0aWNzIGZvciBUWC9SWCBkZWJ1Z2dpbmdcXFwiXFxubmV0L21hYzgwMjExL0tjb25maWc6Mjk1OlxcdGRlcGVuZHMgb24gTUFDODAyMTFfREVCVUdfTUVOVVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjI5NjpcXHRkZXBlbmRzIG9uIE1BQzgwMjExX0RFQlVHRlNcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yOTctXFx0aGVscFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yNFQwMToxNjo0OC41NjcwMTkwNTNaIiwiU2VxIjoxMywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDQyNzU1ODE1NiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipNeSBJbml0aWFsIFRob3VnaHRzIG9uIE1BQzgwMjExIGFuZCBDRkc4MDIxMSBDb25maWd1cmF0aW9uKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgZW5hYmxpbmcgYE1BQzgwMjExYC4gUmlnaHQsIGl0IHJlbGllcyBvbiBgQ0ZHODAyMTFgLCB0aGF0IG11Y2ggaXMgb2J2aW91cy4gVGhlcmVmb3JlLCBhIGdvb2QgZmlyc3Qgc3RlcCBpcyB0byBlbnN1cmUgYm90aCBgTUFDODAyMTFgIGFuZCBgQ0ZHODAyMTFgIGFyZSBlbmFibGVkIHdpdGhpbiB0aGUga2VybmVsIGNvbmZpZ3VyYXRpb24uIEl0J3MgYSBkZXBlbmRlbmN5LCBzbyBpdCdzIGEgbm8tYnJhaW5lci5cblxuTm93LCB3YWl0IGEgc2Vjb25kLiBJIHJlbWVtYmVyIHNlZWluZyB0aGlzIHBhdGNo4oCmICphaGEqLCBpdCdzIGluIGBuZXQvbWFjODAyMTEvY2ZnLmNgLiBJIG5lZWQgdG8gZGVsdmUgYSBiaXQgZGVlcGVyIGFuZCBzZWUgd2hhdCdzIHdoYXQuIEkgc2VlIHRoYXQgdGhlIGBpZWVlODAyMTFfc2V0X21vbl9vcHRpb25zYCBmdW5jdGlvbiBpcyByZWxldmFudCBoZXJlOyBpdCdzIGJlaW5nIGNhbGxlZCBmcm9tIGJvdGggYGllZWU4MDIxMV9hZGRfaWZhY2VgIGFuZCBgaWVlZTgwMjExX2NoYW5nZV9pZmFjZWAuIFRoYXQgZ2l2ZXMgbWUgYSBmZXcgc3RhcnRpbmcgcG9pbnRzIHRvIHVuZGVyc3RhbmQgaG93IHRoaXMgaXMgdXNlZCB3aXRoaW4gdGhlIHN5c3RlbS4gQXJlIHRoZXJlIGFueSBvdGhlciBjcml0aWNhbCBmdW5jdGlvbnMgSSBzaG91bGQgYmUgYXdhcmUgb2Y/IEknbGwgcXVpY2tseSBsb29rLCBJIHNlZSB0aGF0IGBtYWM4MDIxMV9jb25maWdfb3BzYCBpcyB1c2VkIGluIGBuZXQvbWFjODAyMTEvbWFpbi5jYC4gVGhhdCB3YXJyYW50cyBhIGNsb3NlciBsb29rIGFzIHdlbGwuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjEwNzEyLCJPdXRwdXRUb2tlbnMiOjM5LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTUwLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI0VDAxOjE2OjUyLjk5NDU4MTE3OVoiLCJTZXEiOjE0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDg1MDU0MTUsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwibWFjODAyMTFfY29uZmlnX29wc1wiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJuZXQvbWFjODAyMTEvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIm5ldC9tYWM4MDIxMS9jZmcuYz01NTg1PWllZWU4MDIxMV9zZXRfZXBjcyhzdHJ1Y3Qgd2lwaHkgKndpcGh5LCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBib29sIGVuYWJsZSlcXG4tLVxcbm5ldC9tYWM4MDIxMS9jZmcuYy01NTkxLVxcbm5ldC9tYWM4MDIxMS9jZmcuYzo1NTkyOmNvbnN0IHN0cnVjdCBjZmc4MDIxMV9vcHMgbWFjODAyMTFfY29uZmlnX29wcyA9IHtcXG5uZXQvbWFjODAyMTEvY2ZnLmMtNTU5My1cXHQuYWRkX3ZpcnR1YWxfaW50ZiA9IGllZWU4MDIxMV9hZGRfaWZhY2UsXFxuLS1cXG5uZXQvbWFjODAyMTEvaWVlZTgwMjExX2kuaC0zOC1cXG5uZXQvbWFjODAyMTEvaWVlZTgwMjExX2kuaDozOTpleHRlcm4gY29uc3Qgc3RydWN0IGNmZzgwMjExX29wcyBtYWM4MDIxMV9jb25maWdfb3BzO1xcbm5ldC9tYWM4MDIxMS9pZWVlODAyMTFfaS5oLTQwLVxcbi0tXFxubmV0L21hYzgwMjExL21haW4uYz03OTE9c3RydWN0IGllZWU4MDIxMV9odyAqaWVlZTgwMjExX2FsbG9jX2h3X25tKHNpemVfdCBwcml2X2RhdGFfbGVuLFxcbi0tXFxubmV0L21hYzgwMjExL21haW4uYy04NTAtXFxubmV0L21hYzgwMjExL21haW4uYzo4NTE6XFx0d2lwaHkgPSB3aXBoeV9uZXdfbm0oXFx1MDAyNm1hYzgwMjExX2NvbmZpZ19vcHMsIHByaXZfc2l6ZSwgcmVxdWVzdGVkX25hbWUpO1xcbm5ldC9tYWM4MDIxMS9tYWluLmMtODUyLVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yNFQwMToxNjo1My4wNDMwODk3MzRaIiwiU2VxIjoxNSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NjUwNzI1NDExOCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipNeSBJbml0aWFsIFRob3VnaHRzIG9uIE1hYzgwMjExIEluaXRpYWxpemF0aW9uIGFuZCBJbnRlcmZhY2UgTWFuYWdlbWVudCoqXG5cbk9rYXksIHNvIEknbSB0cmFjaW5nIHRoZSBpbml0aWFsaXphdGlvbiBwYXRoIGZvciBtYWM4MDIxMSBkcml2ZXJzLiBJdCBsb29rcyBsaWtlIGB3aXBoeV9uZXdfbm1gIGlzIGNhbGxlZCB3aXRoaW4gYGllZWU4MDIxMV9hbGxvY19od19ubWAsIHdoaWNoIGluIHR1cm4gaXMgY2FsbGVkIGJ5IGBpZWVlODAyMTFfYWxsb2NfaHdgLiBUaGlzIGBpZWVlODAyMTFfYWxsb2NfaHdgIGZ1bmN0aW9uIGFwcGVhcnMgdG8gYmUgdGhlIGNlbnRyYWwgcG9pbnQgZm9yIGluaXRpYWxpemluZyB0aGUgbWFjODAyMTEgaGFyZHdhcmUgYWJzdHJhY3Rpb24gbGF5ZXIsIHJpZ2h0PyBBIGtleSBzdGFydGluZyBwb2ludC5cblxuTm93LCBmb2N1c2luZyBvbiBpbnRlcmZhY2UgbWFuYWdlbWVudCwgYGllZWU4MDIxMV9hZGRfaWZhY2VgIGFuZCBgaWVlZTgwMjExX2NoYW5nZV9pZmFjZWAganVtcCBvdXQgYXQgbWUgYXMgdGhlIGtleSBlbnRyeSBwb2ludHMuIFRoZXkgc2VlbSB0byBiZSB0aGUgcHJpbWFyeSBmdW5jdGlvbnMgcmVzcG9uc2libGUgZm9yIGFkZGluZyBhbmQgbW9kaWZ5aW5nIG5ldHdvcmsgaW50ZXJmYWNlcyB3aXRoaW4gdGhlIG1hYzgwMjExIGZyYW1ld29yay4gYGNmZzgwMjExYCB1c2VzIGBtYWM4MDIxMV9jb25maWdfb3BzYCB0byBjYWxsIHRoZXNlIGZ1bmN0aW9ucy4gVGhlcmVmb3JlLCB0aGVzZSBhcmUgZGVmaW5pdGVseSBnb29kIHBvaW50cyB0byBmb2N1cyBvbi4gVGhleSBzZWVtIGxpa2UgcHJpbWUgY2FuZGlkYXRlcyB0byB1bmRlcnN0YW5kIGhvdyBjaGFuZ2VzIGFyZSBhcHBsaWVkIGFuZCBob3cgbmV3IGRldmljZXMgYXJlIGNyZWF0ZWQuXG5cbkkgYWxzbyBzYXcgdGhhdCBgaWVlZTgwMjExX3NldF9tb25fb3B0aW9uc2Agd2FzIGEgZnVuY3Rpb24gb2YgaW50ZXJlc3QsIGFuZCBJIGhhZCBhIGJpdCBvZiBhIG1lbnRhbCBoaWNjdXAg4oCTIGlzIHRoaXMgYSBzdGF0aWMgZnVuY3Rpb24sIGFuZCBpcyBpdCBwb3RlbnRpYWxseSBpbmxpbmVkPyBJIHJlbWVtYmVyIGl0IHdhcyBtb2RpZmllZC4gV2hpbGUgc3RhdGljIGZ1bmN0aW9ucyBjYW4gc29tZXRpbWVzIGJlIHNtYWxsIGFuZCBvcHRpbWl6ZWQgYXdheSBieSB0aGUgY29tcGlsZXIsIGBpZWVlODAyMTFfc2V0X21vbl9vcHRpb25zYCBpcyBub3QgbmVjZXNzYXJpbHkgc21hbGwuIEl0IG1pZ2h0IGJlIGlubGluZWQuLi4gTGV0J3MgY2hlY2sgdGhlIGNvZGUgdG8gYmUgc3VyZS4gSSdsbCBuZWVkIHRvIGNvbmZpcm0gaWYgaXQncyBhY3R1YWxseSBpbmxpbmVkIGJlZm9yZSBJIGludmVzdCBtb3JlIHRpbWUgdGhlcmUuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjExNTk2LCJPdXRwdXRUb2tlbnMiOjQ1LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjQ0LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI0VDAxOjE2OjU5LjU1MDM0ODczMloiLCJTZXEiOjE2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDk4OTk4OTUsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiaWVlZTgwMjExX3NldF9tb25fb3B0aW9uc1wiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJuZXQvbWFjODAyMTEvY2ZnLmNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwibmV0L21hYzgwMjExL2NmZy5jPTUwPXN0YXRpYyB2b2lkIGllZWU4MDIxMV9zZXRfbXVfbWltb19mb2xsb3coc3RydWN0IGllZWU4MDIxMV9zdWJfaWZfZGF0YSAqc2RhdGEsXFxuLS1cXG5uZXQvbWFjODAyMTEvY2ZnLmMtOTUtXFxubmV0L21hYzgwMjExL2NmZy5jOjk2OnN0YXRpYyBpbnQgaWVlZTgwMjExX3NldF9tb25fb3B0aW9ucyhzdHJ1Y3QgaWVlZTgwMjExX3N1Yl9pZl9kYXRhICpzZGF0YSxcXG5uZXQvbWFjODAyMTEvY2ZnLmMtOTctXFx0XFx0XFx0XFx0ICAgICBzdHJ1Y3QgdmlmX3BhcmFtcyAqcGFyYW1zKVxcbi0tXFxubmV0L21hYzgwMjExL2NmZy5jPTIxNT1zdGF0aWMgc3RydWN0IHdpcmVsZXNzX2RldiAqaWVlZTgwMjExX2FkZF9pZmFjZShzdHJ1Y3Qgd2lwaHkgKndpcGh5LFxcbi0tXFxubmV0L21hYzgwMjExL2NmZy5jLTIzMi1cXHRpZiAodHlwZSA9PSBOTDgwMjExX0lGVFlQRV9NT05JVE9SKSB7XFxubmV0L21hYzgwMjExL2NmZy5jOjIzMzpcXHRcXHRlcnIgPSBpZWVlODAyMTFfc2V0X21vbl9vcHRpb25zKHNkYXRhLCBwYXJhbXMpO1xcbm5ldC9tYWM4MDIxMS9jZmcuYy0yMzQtXFx0XFx0aWYgKGVycikge1xcbi0tXFxubmV0L21hYzgwMjExL2NmZy5jPTI2OD1zdGF0aWMgaW50IGllZWU4MDIxMV9jaGFuZ2VfaWZhY2Uoc3RydWN0IHdpcGh5ICp3aXBoeSxcXG4tLVxcbm5ldC9tYWM4MDIxMS9jZmcuYy0zMTAtXFx0aWYgKHNkYXRhLVxcdTAwM2V2aWYudHlwZSA9PSBOTDgwMjExX0lGVFlQRV9NT05JVE9SKSB7XFxubmV0L21hYzgwMjExL2NmZy5jOjMxMTpcXHRcXHRyZXQgPSBpZWVlODAyMTFfc2V0X21vbl9vcHRpb25zKHNkYXRhLCBwYXJhbXMpO1xcbm5ldC9tYWM4MDIxMS9jZmcuYy0zMTItXFx0XFx0aWYgKHJldClcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjRUMDE6MTY6NTkuNjAwMjUzNDQ3WiIsIlNlcSI6MTcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjUyMDI0OTIzOTUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqRm9jdXNpbmcgb24gSW50ZXJmYWNlIENvbmZpZ3VyYXRpb24qKlxuXG5Pa2F5LCBzbyBJJ20gZ29pbmcgdG8gZmxhZyBgaWVlZTgwMjExX2FkZF9pZmFjZWAgYW5kIGBpZWVlODAyMTFfY2hhbmdlX2lmYWNlYCBhcyB0aGUga2V5IEZvY3VzU3ltYm9scyBoZXJlLiBUaGVzZSBhcmUgdGhlIGZ1bmN0aW9ucyBkaXJlY3RseSByZWxhdGVkIHRvIGFkZGluZyBhbmQgbW9kaWZ5aW5nIHdpcmVsZXNzIGludGVyZmFjZXMsIHdoaWNoIGlzIHdoYXQgSSdtIGludGVyZXN0ZWQgaW4gZXhwbG9yaW5nLiBUaGUgcmVsZXZhbnQgY29uZmlndXJhdGlvbnMgSSdtIHdvcmtpbmcgd2l0aCBhcmUgYE1BQzgwMjExYCBhbmQgYENGRzgwMjExYC5cblxuTm93LCBhIHF1aWNrIGNoZWNrLi4uIEkgbmVlZCB0byBjb25zaWRlciB3aGV0aGVyIGBNQUM4MDIxMWAgaXMgZXZlbiByZWFjaGFibGUgaW4gdGhlIHZpcnR1YWxpemVkIHRlc3RpbmcgZW52aXJvbm1lbnQgSSdtIGxpa2VseSB1c2luZy4gQWgsIHJpZ2h0ISBgbWFjODAyMTFfaHdzaW1gLiBUaGF0J3MgdGhlIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIGRyaXZlciBmb3IgbWFjODAyMTEuIFBlcmZlY3QsIGl0IHNob3VsZCBiZSBmaW5lLiBJJ2xsIG5lZWQgdG8gZG91YmxlIGNoZWNrIHRoYXQgYE1BQzgwMjExX0hXU0lNYCBpcyBkZWZpbmVkIGluIHRoZSBjb25maWd1cmF0aW9uLCB0aG91Z2gsIGp1c3QgdG8gYmUgYWJzb2x1dGVseSBzdXJlLlxuXG5cbiIsIklucHV0VG9rZW5zIjoxMjcyNCwiT3V0cHV0VG9rZW5zIjozNywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjEyNywiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0yNFQwMToxNzowNC44MDI3NDk3ODFaIiwiU2VxIjoxOCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjgyNjgxMjMyLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNvbmZpZyBNQUM4MDIxMV9IV1NJTVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvdmlydHVhbC9LY29uZmlnOjE6Y29uZmlnIE1BQzgwMjExX0hXU0lNXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvdmlydHVhbC9LY29uZmlnLTItXFx0dHJpc3RhdGUgXFxcIlNpbXVsYXRlZCByYWRpbyB0ZXN0aW5nIHRvb2wgZm9yIG1hYzgwMjExXFxcIlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yNFQwMToxNzowNC44ODU0NDE1NDNaIiwiU2VxIjoxOSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzI5Njg1OTUyNCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipNeSBDb25maWd1cmF0aW9uIFN0cmF0ZWd5KipcblxuT2theSwgc28gSSd2ZSBpZGVudGlmaWVkIHRoYXQgYE1BQzgwMjExX0hXU0lNYCBpcyBpbmRlZWQgYSBjb25maWd1cmF0aW9uIG9wdGlvbi4gVGhhdCdzIHN0cmFpZ2h0Zm9yd2FyZCBlbm91Z2guIE15IGZpcnN0IHN0ZXAgaXMgdG8gYWRkIGl0IGRpcmVjdGx5IHRvIG15IEVuYWJsZUNvbmZpZ3MgbGlzdC4gSXTigJlzIGltcG9ydGFudCB0byBrZWVwIHRyYWNrIG9mIHRoZXNlIHRoaW5ncyBzbyBJIHJlbWVtYmVyIHdoYXQgSeKAmXZlIGVuYWJsZWQgbGF0ZXIuXG5cbk5vdywgYmVmb3JlIEkgcHJvY2VlZCBmdXJ0aGVyLCBJIHdhbnQgdG8gY29uZmlybSB0aGF0IHRoZXJlIGFyZW4ndCBhbnkgZGVwZW5kZW5jaWVzIGFzc29jaWF0ZWQgd2l0aCBgTUFDODAyMTFfSFdTSU1gLiBJIG5lZWQgdG8gZW5zdXJlIGl0IGRvZXNuJ3QgcmVseSBvbiBhbnkgb3RoZXIgY29uZmlndXJhdGlvbnMgb3IgcGFja2FnZXMgdGhhdCBJIG1pZ2h0IG5vdCBoYXZlIGFscmVhZHkgYWNjb3VudGVkIGZvci4gQXZvaWRpbmcgZGVwZW5kZW5jeSBjb25mbGljdHMgaXMgcGFyYW1vdW50IHRvIGEgc21vb3RoIGJ1aWxkLCBhZnRlciBhbGwuIExldCdzIHNlZSB3aGF0IHRoZSBzeXN0ZW0gdGVsbHMgbWUuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjEzMTcwLCJPdXRwdXRUb2tlbnMiOjMyLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NjAsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjRUMDE6MTc6MDguMTgyMzEzMjY3WiIsIlNlcSI6MjAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0ODM4Nzk3NSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJkZXBlbmRzIG9uXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL3ZpcnR1YWwvS2NvbmZpZ1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy92aXJ0dWFsL0tjb25maWc9MT1jb25maWcgTUFDODAyMTFfSFdTSU1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy92aXJ0dWFsL0tjb25maWctMi1cXHR0cmlzdGF0ZSBcXFwiU2ltdWxhdGVkIHJhZGlvIHRlc3RpbmcgdG9vbCBmb3IgbWFjODAyMTFcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvdmlydHVhbC9LY29uZmlnOjM6XFx0ZGVwZW5kcyBvbiBNQUM4MDIxMVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3ZpcnR1YWwvS2NvbmZpZy00LVxcdGhlbHBcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3ZpcnR1YWwvS2NvbmZpZz0xND1jb25maWcgVklSVF9XSUZJXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvdmlydHVhbC9LY29uZmlnLTE1LVxcdHRyaXN0YXRlIFxcXCJXaWZpIHdyYXBwZXIgZm9yIGV0aGVybmV0IGRyaXZlcnNcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvdmlydHVhbC9LY29uZmlnOjE2OlxcdGRlcGVuZHMgb24gQ0ZHODAyMTFcXG5kcml2ZXJzL25ldC93aXJlbGVzcy92aXJ0dWFsL0tjb25maWctMTctXFx0aGVscFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yNFQwMToxNzowOC4yMzA3MDc4NTJaIiwiU2VxIjoyMSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6Nzk4NjY1ODcwMCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipNeSBBc3Nlc3NtZW50IG9mIHRoZSBQYXRjaCoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggYW5kIGltbWVkaWF0ZWx5IHNlZSB0aGF0IGl0J3MgYWRkcmVzc2luZyBhIHBvdGVudGlhbCBOVUxMIHBvaW50ZXIgZGVyZWZlcmVuY2Ugd2l0aGluIHRoZSBgbWFjODAyMTFgIGNvcmUuIEl0IHNlZW1zIHRvIGJlIHRyaWdnZXJlZCB3aGVuIHRyeWluZyB0byBzZXQgbW9uaXRvciBvcHRpb25zLCBzcGVjaWZpY2FsbHkgZm9yIGFuIGFjdGl2ZSBtb25pdG9yIGludGVyZmFjZSB0aGF0IGxhY2tzIGEgVFggcXVldWUuIFRoaXMgaXMgaW4gdGhlIGBpZWVlODAyMTFfc2V0X21vbl9vcHRpb25zYCBmdW5jdGlvbi4gVGhlIHBhdGNoIGl0c2VsZiBpcyBzaW1wbGU7IGl0J3MgYWRkaW5nIGEgY2hlY2sgdG8gcHJldmVudCB0aGlzIGZyb20gaGFwcGVuaW5nLlxuXG5UaGlua2luZyBpdCB0aHJvdWdoLCB0aGUgcmVhY2hhYmlsaXR5IG9mIHRoaXMgY2hhbmdlIHNlZW1zIHRvIHN0ZW0gZnJvbSBgbmw4MDIxMWAgbmV0bGluayBjb21tYW5kcywgbGlrZSBjcmVhdGluZyBhIG5ldyB2aXJ0dWFsIGludGVyZmFjZSAoYE5MODAyMTFfQ01EX05FV19JTlRFUkZBQ0VgKSBvciBtb2RpZnlpbmcgYW4gZXhpc3Rpbmcgb25lIChgTkw4MDIxMV9DTURfU0VUX0lOVEVSRkFDRWApLiBUaGlzIGlzIGEga2V5IGRldGFpbCwgaXQgc2hvd3MgbWUgdGhlIGF2ZW51ZXMgZm9yIHRyaWdnZXJpbmcgdGhlIHZ1bG5lcmFiaWxpdHkuXG5cbkdpdmVuIHRoaXMsIHRoZSBtb3N0IGRpcmVjdCBwYXRoIHRvIHRlc3RpbmcgdGhpcyB3aWxsIGJlIHRocm91Z2ggdGhvc2UgTmV0bGluayBpbnRlcmZhY2VzLiBUaGUgZ29vZCBuZXdzIGlzLCBJIGNhbiB0ZXN0IGl0IHVzaW5nIHRoZSBgbWFjODAyMTFfaHdzaW1gIGRyaXZlciwgd2hpY2ggaXMgZ3JlYXQgYmVjYXVzZSBpdCBhbGxvd3MgZm9yIGNvbnRyb2xsZWQgc29mdHdhcmUgZW11bGF0aW9uLiBJIHNob3VsZCBkZWZpbml0ZWx5IGVuYWJsZSBgQ0ZHODAyMTFgLCBgTUFDODAyMTFgLCBhbmQgYE1BQzgwMjExX0hXU0lNYCBpbiB0aGUgY29uZmlndXJhdGlvbiB0byBoYXZlIHRoZSBjb3JyZWN0IHRlc3RpbmcgZW52aXJvbm1lbnQuXG5cblRoZSBrZXkgZnVuY3Rpb25zIHRvIGtlZXAgaW4gbWluZCwgYW5kIHBvc3NpYmx5IGV4YW1pbmUgZnVydGhlciwgYXJlIGBpZWVlODAyMTFfYWRkX2lmYWNlYCBhbmQgYGllZWU4MDIxMV9jaGFuZ2VfaWZhY2VgLiBUaGVzZSBhcmUgbXkgZm9jdXMgc3ltYm9scyB0byB3YXRjaCBpbiB0aGUgY29kZSBiYXNlLlxuXG5JbiBzaG9ydCwgdGhpcyBpcyBhIGZ1bmN0aW9uYWwgcGF0Y2ggdGhhdCBjb3VsZCBiZSBzdWJqZWN0IHRvIGZ1enppbmcuIEkgbmVlZCB0byBtYWtlIHN1cmUgSSBhZGQgdGhlIHJpZ2h0IGNvbmZpZyBvcHRpb25zIGFuZCBzZXR1cCB0aGUgdGVzdCBlbnZpcm9ubWVudCB0byBmdWxseSBleHBsb3JlIHRoZSB2dWxuZXJhYmlsaXR5LCBhbmQgZW5zdXJlIHRoZSBmaXggaXMgY29ycmVjdC5cblxuXG4iLCJJbnB1dFRva2VucyI6MTM2MTQsIk91dHB1dFRva2VucyI6MTk0LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NDU1LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI0VDAxOjE3OjE2LjIxNzM2OTQwMloiLCJTZXEiOjIyLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjgwMTI3MDMyLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJDRkc4MDIxMVwiLFxuICAgIFwiTUFDODAyMTFcIixcbiAgICBcIk1BQzgwMjExX0hXU0lNXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiaWVlZTgwMjExX2FkZF9pZmFjZVwiLFxuICAgIFwiaWVlZTgwMjExX2NoYW5nZV9pZmFjZVwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGFkZHMgYSBjaGVjayBpbiBgaWVlZTgwMjExX3NldF9tb25fb3B0aW9uc2AgdG8gcHJldmVudCBhIE5VTEwgcG9pbnRlciBkZXJlZmVyZW5jZSB3aGVuIGNvbmZpZ3VyaW5nIGFuIGFjdGl2ZSBtb25pdG9yIGludGVyZmFjZSB3aXRob3V0IGEgVFggcXVldWUuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgbWFjODAyMTEgY29yZSBsb2dpYywgcmVhY2hhYmxlIHZpYSB0aGUgbmw4MDIxMSBuZXRsaW5rIGludGVyZmFjZSAoZS5nLiwgd2hlbiBhZGRpbmcgb3IgY2hhbmdpbmcgYSB2aXJ0dWFsIGludGVyZmFjZSkuIEl0IGNhbiBiZSB0ZXN0ZWQgdXNpbmcgdGhlIHNvZnR3YXJlLWVtdWxhdGVkIGBtYWM4MDIxMV9od3NpbWAgZHJpdmVyLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIkNGRzgwMjExXCIsXG4gICAgXCJNQUM4MDIxMVwiLFxuICAgIFwiTUFDODAyMTFfSFdTSU1cIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJpZWVlODAyMTFfYWRkX2lmYWNlXCIsXG4gICAgXCJpZWVlODAyMTFfY2hhbmdlX2lmYWNlXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggYWRkcyBhIGNoZWNrIGluIGBpZWVlODAyMTFfc2V0X21vbl9vcHRpb25zYCB0byBwcmV2ZW50IGEgTlVMTCBwb2ludGVyIGRlcmVmZXJlbmNlIHdoZW4gY29uZmlndXJpbmcgYW4gYWN0aXZlIG1vbml0b3IgaW50ZXJmYWNlIHdpdGhvdXQgYSBUWCBxdWV1ZS4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSBtYWM4MDIxMSBjb3JlIGxvZ2ljLCByZWFjaGFibGUgdmlhIHRoZSBubDgwMjExIG5ldGxpbmsgaW50ZXJmYWNlIChlLmcuLCB3aGVuIGFkZGluZyBvciBjaGFuZ2luZyBhIHZpcnR1YWwgaW50ZXJmYWNlKS4gSXQgY2FuIGJlIHRlc3RlZCB1c2luZyB0aGUgc29mdHdhcmUtZW11bGF0ZWQgYG1hYzgwMjExX2h3c2ltYCBkcml2ZXIuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI0VDAxOjE3OjE2LjI5NzUwMjQzM1oiLCJTZXEiOjIzLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6IklmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NjUyMDI0MTE5NywiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI0VDAxOjE3OjE2LjI5ODA2OTIxM1oiLCJTZXEiOjI0LCJOZXN0aW5nIjoyLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoia21zYW4tZXZhbHVhdG9yIiwiTW9kZWwiOiJiZXN0LWV4cGVuc2l2ZSIsIkR1cmF0aW9uIjo2NTE5NjY4NTk2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJLTVNBTlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBhZGRzIGEgdmFsaWRhdGlvbiBjaGVjayBpbiBgaWVlZTgwMjExX3NldF9tb25fb3B0aW9uc2AgdG8gcHJldmVudCBzZXR0aW5nIHRoZSBgTU9OSVRPUl9GTEFHX0FDVElWRWAgZmxhZyBpZiBgc2RhdGEtXFx1MDAzZXZpZi50eHFgIGlzIE5VTEwuIFRoaXMgcHJldmVudHMgYSBwb3RlbnRpYWwgTlVMTCBwb2ludGVyIGRlcmVmZXJlbmNlIG9yIGludmFsaWQgc3RhdGUgd2hlbiB0aGUgZHJpdmVyIGlzIGhhbmRlZCBhIE5VTEwgYHZpZi1cXHUwMDNldHhxYC4gTlVMTCBwb2ludGVyIGRlcmVmZXJlbmNlcyBhbmQgaW52YWxpZCBzdGF0ZSBidWdzIGFyZSBjYXVnaHQgYnkgc3RhbmRhcmQga2VybmVsIGNoZWNrcyBhbmQgS0FTQU4uIFRoZSBwYXRjaCBkb2VzIG5vdCBpbnRyb2R1Y2Ugb3IgZXhwb3NlIGFueSB1bmluaXRpYWxpemVkIG1lbW9yeSByZWFkcyBvciBpbmZvLWxlYWtzLCBzbyBhIGRlZGljYXRlZCBLTVNBTiBmdXp6aW5nIHNlc3Npb24gaXMgbm90IG5lZWRlZC5cIixcbiAgXCJOZWVkc0tNU0FOXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiJZb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgc2VjdXJpdHkgZW5naW5lZXIgc3BlY2lhbGl6aW5nIGluIGtlcm5lbCBtZW1vcnlcbmVycm9yIGRldGVjdG9ycyAoS0FTQU4gYW5kIEtNU0FOKS4gWW91ciBqb2IgaXMgdG8gcmV2aWV3IHRoZSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kXG5kZXRlcm1pbmUgaWYgdGhlIGNvZGUgY2hhbmdlcyBqdXN0aWZ5IHNwYXduaW5nIGEgZGVkaWNhdGVkIEtNU0FOIChLZXJuZWxNZW1vcnlTYW5pdGl6ZXIpXG5mdXp6aW5nIHNlc3Npb24gaW4gYWRkaXRpb24gdG8gc3RhbmRhcmQgS0FTQU4gZnV6emluZy5cblxuQ1JJVElDQUwgRElTVElOQ1RJT04gQkVUV0VFTiBLQVNBTiBBTkQgS01TQU46XG4tIFN0YW5kYXJkIEtBU0FOIGtlcm5lbCBidWlsZHMgKHVwc3RyZWFtLWFwcGFybW9yLWthc2FuLmNvbmZpZykgYWxyZWFkeSBlbmFibGVcbiAgYSBjb21wcmVoZW5zaXZlIHN1aXRlIG9mIGRlYnVnZ2luZyB0b29scyBhbmQgc2FuaXRpemVycywgaW5jbHVkaW5nIEtBU0FOXG4gIChvdXQtb2YtYm91bmRzIGFjY2Vzc2VzLCB1c2UtYWZ0ZXItZnJlZSwgZG91YmxlIGZyZWUsIGludmFsaWQgZnJlZSksIExPQ0tERVBcbiAgKGxvY2tpbmcgYnVncyBhbmQgZGVhZGxvY2tzKSwgVUItc2FuaXRpemVycywgYW5kIG1lbW9yeSBjb3JydXB0aW9uIGNoZWNrcy5cbi0gS01TQU4gKEtlcm5lbE1lbW9yeVNhbml0aXplcikgZGV0ZWN0cyByZWFkcyBvZiBVTklOSVRJQUxJWkVEIG1lbW9yeSAoc3RhY2ssIGhlYXAsXG4gIG9yIHBhZ2UgYWxsb2NhdGlvbnMpIGFuZCBrZXJuZWwtdG8tdXNlciBtZW1vcnkgaW5mby1sZWFrcy5cblxuUnVsZTogVEhFUkUgSVMgTk8gU0VOU0UgSU4gUlVOTklORyBBIEtNU0FOIFNFU1NJT04gSUYgQSBCVUcgQ0FOIEJFIENBVUdIVCBCWSBLQVNBTixcbkxPQ0tERVAsIE9SIE9USEVSIFNUQU5EQVJEIEJVRyBERVRFQ1RPUlMuXG5BIGRlZGljYXRlZCBLTVNBTiBmdXp6aW5nIHNlc3Npb24gaW5jdXJzIHNpZ25pZmljYW50IHJlc291cmNlIGNvc3RzLiBZb3UgbXVzdCBPTkxZXG5zZXQgTmVlZHNLTVNBTj10cnVlIGlmIHRoZSBjb2RlIGNoYW5nZXMgaW50cm9kdWNlIG9yIGV4cG9zZSBVTklOSVRJQUxJWkVEIE1FTU9SWSByaXNrc1xudGhhdCBhcmUgZGV0ZWN0ZWQgT05MWSBieSBLTVNBTi5cblxuTG9vayBob2xpc3RpY2FsbHkgYXQgdGhlIHBhdGNoIHNlcmllcyBhbmQgc3Vycm91bmRpbmcgY29kZS4gRXZlbiBpZiBubyBkaXJlY3RcbnVuaW5pdGlhbGl6ZWQgZmllbGQgYWNjZXNzZXMgb3IgbmV3IGJ1ZmZlciBhbGxvY2F0aW9ucyBhcmUgYWRkZWQgaW4gdGhlIGRpZmYgaXRzZWxmLFxuYSBwYXRjaCBtYXkgYWx0ZXIgY29udHJvbCBmbG93LCBib3VuZHMgY2hlY2tpbmcsIG9yIGRhdGEgbGVuZ3RoIGNhbGN1bGF0aW9ucyBpbiB3YXlzXG50aGF0IGNoYW5nZSBob3cgdGhlIHJlc3Qgb2YgdGhlIGNvZGUgb3BlcmF0ZXMgb24gZXhpc3RpbmcgYnVmZmVycyAoZS5nLiBhbGxvd2luZ1xudW5pbml0aWFsaXplZCBzdGFjay9oZWFwIG1lbW9yeSB0byBiZSByZWFkLCBjb3BpZWQgdG8gdXNlciBzcGFjZSwgb3IgdXNlZCBpbiBjb250cm9sXG5mbG93KS4gRG8gbm90IGhlc2l0YXRlIHRvIHVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGluc3BlY3QgdGhlIHN1cnJvdW5kaW5nIGNvZGUsXG5jYWxsZWQgZnVuY3Rpb25zLCBhbmQgY2FsbGVycy5cblxuU2V0IE5lZWRzS01TQU49dHJ1ZSBPTkxZIElGIHRoZSBwYXRjaCBpbnRyb2R1Y2VzIG9yIG1vZGlmaWVzOlxuMS4gS2VybmVsIHN0cnVjdHVyZXMgc2VudCB0byB1c2VyIHNwYWNlICh2aWEgY29weV90b191c2VyLCBwdXRfdXNlciwgbmV0bGluayBza2JcbiAgIGF0dHJpYnV0ZXMsIGlvY3RsIG91dHB1dCBhcmd1bWVudHMsIHNvY2tldCBvcHRpb25zLCBvciBCUEYgYnVmZmVycykgd2hlcmUgZmllbGRzXG4gICBvciBzdHJ1Y3R1cmUgcGFkZGluZyBtaWdodCBub3QgYmUgZnVsbHkgaW5pdGlhbGl6ZWQvemVyb2VkLlxuMi4gQ29uZGl0aW9uYWwgbG9naWMgb3IgYnJhbmNoaW5nIHRoYXQgZGVwZW5kcyBvbiBwb3RlbnRpYWxseSB1bmluaXRpYWxpemVkIHZhcmlhYmxlc1xuICAgb3Igc3RydWN0IGZpZWxkcy5cbjMuIEFsbG9jYXRpb24gb3IgaW5pdGlhbGl6YXRpb24gb2YgY29tcGxleCBkYXRhIHN0cnVjdHVyZXMgd2hlcmUgdW5pbml0aWFsaXplZCBmaWVsZHNcbiAgIGNvdWxkIGJlIHJlYWQgbGF0ZXIgaW4gcmVhY2hhYmxlIGNvZGUgcGF0aHMuXG40LiBCb3VuZHMgY2hlY2tzLCBsZW5ndGhzLCBvciBsb2dpYyBpbiBhIHdheSB0aGF0IGFsbG93cyBzdXJyb3VuZGluZyBjb2RlIHRvIGFjY2Vzc1xuICAgdW5pbml0aWFsaXplZCBieXRlcyBvZiBleGlzdGluZyBidWZmZXJzLlxuXG5TZXQgTmVlZHNLTVNBTj1mYWxzZSBJRjpcbi0gVGhlIGNvZGUgY2hhbmdlcyBwcmltYXJpbHkgcmlzayBvdXQtb2YtYm91bmRzIGFjY2VzcywgYXJyYXkgb3ZlcmZsb3dzLCBOVUxMIHBvaW50ZXJcbiAgZGVyZWZlcmVuY2VzLCBsb2NraW5nIGRlYWRsb2Nrcywgb3IgdXNlLWFmdGVyLWZyZWUgYnVncyAodGhlc2UgYXJlIGFscmVhZHkgY2F1Z2h0XG4gIGJ5IEtBU0FOLCBMT0NLREVQLCBvciBzdGFuZGFyZCBidWcgZGV0ZWN0b3JzKS5cbi0gQWxsIHN0YWNrL2hlYXAgc3RydWN0dXJlcyB0b3VjaGVkIG9yIGludHJvZHVjZWQgYnkgdGhlIHBhdGNoIGFyZSBmdWxseSB6ZXJvZWRcbiAgb3IgaW5pdGlhbGl6ZWQgKGUuZy4gdXNpbmcgPSB7MH0sIG1lbXNldCwga3phbGxvYykgYmVmb3JlIGJlaW5nIHJlYWQgb3IgY29waWVkLlxuLSBUaGUgcGF0Y2ggZG9lcyBub3QgaW50cm9kdWNlIGFueSByaXNrIG9mIHVuaW5pdGlhbGl6ZWQgbWVtb3J5IHVzYWdlIG9yIGluZm8tbGVha3MuXG5cblVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGluc3BlY3QgdGhlIHN1cnJvdW5kaW5nIGNvZGUgaWYgbmVjZXNzYXJ5LCB0aGVuIHByb3ZpZGVcbmRldGFpbGVkIEtNU0FOUmVhc29uaW5nIGNvbnRyYXN0aW5nIEtBU0FOIHZzIEtNU0FOIGFwcGxpY2FiaWxpdHkgZm9yIHRoaXMgcGF0Y2guXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCBhNjE3YzY3N2Q0MzdhNWZkNWMxODQ1NzEyOGRmOTIxOGU3MTRjMzFlXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIE1vbiBBdWcgMjQgMDE6MTY6MjIgMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9uZXQvbWFjODAyMTEvY2ZnLmMgYi9uZXQvbWFjODAyMTEvY2ZnLmNcbmluZGV4IGI2MTYzZGNjN2U5MmMuLjUyM2NlZjBhNTUyNjEgMTAwNjQ0XG4tLS0gYS9uZXQvbWFjODAyMTEvY2ZnLmNcbisrKyBiL25ldC9tYWM4MDIxMS9jZmcuY1xuQEAgLTExNSw2ICsxMTUsMTUgQEAgc3RhdGljIGludCBpZWVlODAyMTFfc2V0X21vbl9vcHRpb25zKHN0cnVjdCBpZWVlODAyMTFfc3ViX2lmX2RhdGEgKnNkYXRhLFxuIFx0XHRcdHJldHVybiAtRUJVU1k7XG4gXHR9XG4gXG4rXHQvKlxuK1x0ICogQW4gYWN0aXZlIG1vbml0b3IgaXMgcGFzc2VkIHRvIHRoZSBkcml2ZXIgYW5kIG5lZWRzIGEgVFhRLCB3aGljaCBpc1xuK1x0ICogcmVzZXJ2ZWQgd2l0aCB0aGUgbmV0ZGV2IGluIGllZWU4MDIxMV9pZl9hZGQoKSBhbmQgY2Fubm90IGJlIGFkZGVkXG4rXHQgKiBsYXRlci4gIEFuIGludGVyZmFjZSBjcmVhdGVkIHdpdGhvdXQgdGhlIGZsYWcgaGFzIG5vbmUsIHNvIHJlZnVzZSB0b1xuK1x0ICogc2V0IGl0IHJhdGhlciB0aGFuIGhhbmQgdGhlIGRyaXZlciBhIE5VTEwgdmlmLVx1MDAzZXR4cS5cbitcdCAqL1xuK1x0aWYgKChwYXJhbXMtXHUwMDNlZmxhZ3MgXHUwMDI2IE1PTklUT1JfRkxBR19BQ1RJVkUpIFx1MDAyNlx1MDAyNiAhc2RhdGEtXHUwMDNldmlmLnR4cSlcbitcdFx0cmV0dXJuIC1FT1BOT1RTVVBQO1xuK1xuIFx0LyogdmFsaWRhdGUgd2hldGhlciBNVS1NSU1PIGNhbiBiZSBjb25maWd1cmVkICovXG4gXHRpZiAoIWllZWU4MDIxMV9od19jaGVjayhcdTAwMjZsb2NhbC1cdTAwM2VodywgV0FOVF9NT05JVE9SX1ZJRikgXHUwMDI2XHUwMDI2XG4gXHQgICAgIWllZWU4MDIxMV9od19jaGVjayhcdTAwMjZsb2NhbC1cdTAwM2VodywgTk9fVklSVFVBTF9NT05JVE9SKSBcdTAwMjZcdTAwMjZcbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI0VDAxOjE3OjE2LjI5ODA3MDAwNFoiLCJTZXEiOjI1LCJOZXN0aW5nIjozLCJUeXBlIjoibGxtIiwiTmFtZSI6Imttc2FuLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo2NTE5NjI3MTY2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKk15IEFzc2Vzc21lbnQgb2YgdGhlIFBhdGNoKipcblxuT2theSwgc28gdGhpcyBwYXRjaCBpbiBgbmV0L21hYzgwMjExL2NmZy5jYCBpcyBzdHJhaWdodGZvcndhcmQuIEl0J3MgaW4gYGllZWU4MDIxMV9zZXRfbW9uX29wdGlvbnNgLCB3aGljaCBJIHJlY29nbml6ZSBhcyBhIGNvbmZpZ3VyYXRpb24gZnVuY3Rpb24uIFRoZSBnaXN0IG9mIGl0IGlzIHRoaXM6IHRoZXkncmUgYWRkaW5nIGEgY2hlY2suIElmIHdlIGhhdmUgdGhlIGBNT05JVE9SX0ZMQUdfQUNUSVZFYCBmbGFnIHNldCBhbmQsIGNydWNpYWxseSwgdGhlIGFzc29jaWF0ZWQgYHR4cWAgZm9yIHRoZSB2aXJ0dWFsIGludGVyZmFjZSAoYHNkYXRhLVx1MDAzZXZpZi50eHFgKSBpcyBOVUxMLCB0aGUgZnVuY3Rpb24gbm93IHJldHVybnMgYC1FT1BOT1RTVVBQYC5cblxuVGhpcyBpbW1lZGlhdGVseSB0ZWxscyBtZSB0aGV5J3JlIHRyeWluZyB0byBwcmV2ZW50IGEgTlVMTCBwb2ludGVyIGRlcmVmZXJlbmNlIG9yIGEgc2ltaWxhciBtZW1vcnkgYWNjZXNzIGlzc3VlLiBFc3NlbnRpYWxseSwgdGhlIGNvZGUgd2FzIHZ1bG5lcmFibGUgaWYgc29tZW9uZSB0cmllZCB0byBlbmFibGUgYWN0aXZlIG1vbml0b3IgbW9kZSB3aXRob3V0IGEgdmFsaWQgdHJhbnNtaXQgcXVldWUuIEtBU0FOIG9yIHRoZSBrZXJuZWwncyBub3JtYWwgY2hlY2tzIHdvdWxkIGxpa2VseSBoYXZlIGNhdWdodCBpdCBldmVudHVhbGx5LCBidXQgdGhpcyBwcm9hY3RpdmVseSBwcmV2ZW50cyBpdC4gSXTigJlzIGEgZ29vZCBkZWZlbnNpdmUgcHJvZ3JhbW1pbmcgcHJhY3RpY2UuXG5cbkkgcXVpY2tseSBsb29rZWQgYXQgdGhlIHN1cnJvdW5kaW5nIGNvZGUgdG8gY29uZmlybSBteSB1bmRlcnN0YW5kaW5nLiBUaGUgY29kZSBzbmlwcGV0IGFkZGVkIGlzIGNsZWFuLCBhbmQgdGhlIGNoZWNrIGl0c2VsZiBpcyBzaW1wbGUgYW5kIGRpcmVjdC4gVGhlIGdvb2QgbmV3cyBpcywgdGhlcmUncyBubyBvYnZpb3VzIHJpc2sgb2YgdW5pbml0aWFsaXplZCBtZW1vcnkgdXNhZ2Ugb3IgYW55IG5ldyBpbmZvcm1hdGlvbiBsZWFrcyBpbnRyb2R1Y2VkIGJ5IHRoaXMgdmFsaWRhdGlvbi4gSXQncyBqdXN0IGEgc2FmZWd1YXJkIGFnYWluc3QgYSBzcGVjaWZpYywgbGlrZWx5IHVuY29tbW9uLCBzY2VuYXJpby4gVGhlIGBOZWVkc0tNU0FOYCBmbGFnIGlzIGNvcnJlY3RseSBzZXQgdG8gZmFsc2UsIGFzIHRoZSBwYXRjaCBkb2Vzbid0IGludm9sdmUgY29tcGxleCBtZW1vcnkgbWFuYWdlbWVudCBjaGFuZ2VzLiBPdmVyYWxsLCB0aGlzIHBhdGNoIHNlZW1zIGxpa2UgYSBzZW5zaWJsZSBhbmQgbG93LXJpc2sgaW1wcm92ZW1lbnQuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjIxNDUsIk91dHB1dFRva2VucyI6MTQ5LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjU5LCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjRUMDE6MTc6MjIuODE3NzAyMjFaIiwiU2VxIjoyNiwiTmVzdGluZyI6MywiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjozMzEzMCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIktNU0FOUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGFkZHMgYSB2YWxpZGF0aW9uIGNoZWNrIGluIGBpZWVlODAyMTFfc2V0X21vbl9vcHRpb25zYCB0byBwcmV2ZW50IHNldHRpbmcgdGhlIGBNT05JVE9SX0ZMQUdfQUNUSVZFYCBmbGFnIGlmIGBzZGF0YS1cXHUwMDNldmlmLnR4cWAgaXMgTlVMTC4gVGhpcyBwcmV2ZW50cyBhIHBvdGVudGlhbCBOVUxMIHBvaW50ZXIgZGVyZWZlcmVuY2Ugb3IgaW52YWxpZCBzdGF0ZSB3aGVuIHRoZSBkcml2ZXIgaXMgaGFuZGVkIGEgTlVMTCBgdmlmLVxcdTAwM2V0eHFgLiBOVUxMIHBvaW50ZXIgZGVyZWZlcmVuY2VzIGFuZCBpbnZhbGlkIHN0YXRlIGJ1Z3MgYXJlIGNhdWdodCBieSBzdGFuZGFyZCBrZXJuZWwgY2hlY2tzIGFuZCBLQVNBTi4gVGhlIHBhdGNoIGRvZXMgbm90IGludHJvZHVjZSBvciBleHBvc2UgYW55IHVuaW5pdGlhbGl6ZWQgbWVtb3J5IHJlYWRzIG9yIGluZm8tbGVha3MsIHNvIGEgZGVkaWNhdGVkIEtNU0FOIGZ1enppbmcgc2Vzc2lvbiBpcyBub3QgbmVlZGVkLlwiLFxuICBcIk5lZWRzS01TQU5cIjogZmFsc2Vcbn0iLCJSZXN1bHRzIjoie1xuICBcIktNU0FOUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGFkZHMgYSB2YWxpZGF0aW9uIGNoZWNrIGluIGBpZWVlODAyMTFfc2V0X21vbl9vcHRpb25zYCB0byBwcmV2ZW50IHNldHRpbmcgdGhlIGBNT05JVE9SX0ZMQUdfQUNUSVZFYCBmbGFnIGlmIGBzZGF0YS1cXHUwMDNldmlmLnR4cWAgaXMgTlVMTC4gVGhpcyBwcmV2ZW50cyBhIHBvdGVudGlhbCBOVUxMIHBvaW50ZXIgZGVyZWZlcmVuY2Ugb3IgaW52YWxpZCBzdGF0ZSB3aGVuIHRoZSBkcml2ZXIgaXMgaGFuZGVkIGEgTlVMTCBgdmlmLVxcdTAwM2V0eHFgLiBOVUxMIHBvaW50ZXIgZGVyZWZlcmVuY2VzIGFuZCBpbnZhbGlkIHN0YXRlIGJ1Z3MgYXJlIGNhdWdodCBieSBzdGFuZGFyZCBrZXJuZWwgY2hlY2tzIGFuZCBLQVNBTi4gVGhlIHBhdGNoIGRvZXMgbm90IGludHJvZHVjZSBvciBleHBvc2UgYW55IHVuaW5pdGlhbGl6ZWQgbWVtb3J5IHJlYWRzIG9yIGluZm8tbGVha3MsIHNvIGEgZGVkaWNhdGVkIEtNU0FOIGZ1enppbmcgc2Vzc2lvbiBpcyBub3QgbmVlZGVkLlwiLFxuICBcIk5lZWRzS01TQU5cIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/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-workflowm6gmb[0].run-triage(0) Phase: Succeeded StartedAt: 2026-08-24 00:47:57 +0000 UTC FinishedAt: 2026-08-24 01:17:24 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "wireless-next", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git", "commit_hash": "29703d7813f991e4ef80741ee15fe30e529a2192", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "CFG80211", "MAC80211", "MAC80211_HWSIM" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "wireless-next", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git", "commit_hash": "29703d7813f991e4ef80741ee15fe30e529a2192", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "CFG80211", "MAC80211", "MAC80211_HWSIM" ], "series_id": "1e936e1b-85b7-42a7-aafa-5dc9c1c2afea" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [ "ieee80211_add_iface", "ieee80211_change_iface" ], "corpus_urls": [ "https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db" ], "skip_cover_check": false, "bug_title_re": "" }, "retest": null } ], "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzI0IDAxOjE2PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0NGRzgwMjExJiMzNDssCiAgICAmIzM0O01BQzgwMjExJiMzNDssCiAgICAmIzM0O01BQzgwMjExX0hXU0lNJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7aWVlZTgwMjExX2FkZF9pZmFjZSYjMzQ7LAogICAgJiMzNDtpZWVlODAyMTFfY2hhbmdlX2lmYWNlJiMzNDsKICBdLAogICYjMzQ7S01TQU5SZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggYWRkcyBhIHZhbGlkYXRpb24gY2hlY2sgaW4gYGllZWU4MDIxMV9zZXRfbW9uX29wdGlvbnNgIHRvIHByZXZlbnQgc2V0dGluZyB0aGUgYE1PTklUT1JfRkxBR19BQ1RJVkVgIGZsYWcgaWYgYHNkYXRhLVx1MDAzZXZpZi50eHFgIGlzIE5VTEwuIFRoaXMgcHJldmVudHMgYSBwb3RlbnRpYWwgTlVMTCBwb2ludGVyIGRlcmVmZXJlbmNlIG9yIGludmFsaWQgc3RhdGUgd2hlbiB0aGUgZHJpdmVyIGlzIGhhbmRlZCBhIE5VTEwgYHZpZi1cdTAwM2V0eHFgLiBOVUxMIHBvaW50ZXIgZGVyZWZlcmVuY2VzIGFuZCBpbnZhbGlkIHN0YXRlIGJ1Z3MgYXJlIGNhdWdodCBieSBzdGFuZGFyZCBrZXJuZWwgY2hlY2tzIGFuZCBLQVNBTi4gVGhlIHBhdGNoIGRvZXMgbm90IGludHJvZHVjZSBvciBleHBvc2UgYW55IHVuaW5pdGlhbGl6ZWQgbWVtb3J5IHJlYWRzIG9yIGluZm8tbGVha3MsIHNvIGEgZGVkaWNhdGVkIEtNU0FOIGZ1enppbmcgc2Vzc2lvbiBpcyBub3QgbmVlZGVkLiYjMzQ7LAogICYjMzQ7TmVlZHNLTVNBTiYjMzQ7OiBmYWxzZSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBhZGRzIGEgY2hlY2sgaW4gYGllZWU4MDIxMV9zZXRfbW9uX29wdGlvbnNgIHRvIHByZXZlbnQgYSBOVUxMIHBvaW50ZXIgZGVyZWZlcmVuY2Ugd2hlbiBjb25maWd1cmluZyBhbiBhY3RpdmUgbW9uaXRvciBpbnRlcmZhY2Ugd2l0aG91dCBhIFRYIHF1ZXVlLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIG1hYzgwMjExIGNvcmUgbG9naWMsIHJlYWNoYWJsZSB2aWEgdGhlIG5sODAyMTEgbmV0bGluayBpbnRlcmZhY2UgKGUuZy4sIHdoZW4gYWRkaW5nIG9yIGNoYW5naW5nIGEgdmlydHVhbCBpbnRlcmZhY2UpLiBJdCBjYW4gYmUgdGVzdGVkIHVzaW5nIHRoZSBzb2Z0d2FyZS1lbXVsYXRlZCBgbWFjODAyMTFfaHdzaW1gIGRyaXZlci4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yNCAwMToxNjwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IGE2MTdjNjc3ZDQzN2E1ZmQ1YzE4NDU3MTI4ZGY5MjE4ZTcxNGMzMWVcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgTW9uIEF1ZyAyNCAwMToxNjoyMiAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9uZXQvbWFjODAyMTEvY2ZnLmMgYi9uZXQvbWFjODAyMTEvY2ZnLmNcbmluZGV4IGI2MTYzZGNjN2U5MmMuLjUyM2NlZjBhNTUyNjEgMTAwNjQ0XG4tLS0gYS9uZXQvbWFjODAyMTEvY2ZnLmNcbiYjNDM7JiM0MzsmIzQzOyBiL25ldC9tYWM4MDIxMS9jZmcuY1xuQEAgLTExNSw2ICYjNDM7MTE1LDE1IEBAIHN0YXRpYyBpbnQgaWVlZTgwMjExX3NldF9tb25fb3B0aW9ucyhzdHJ1Y3QgaWVlZTgwMjExX3N1Yl9pZl9kYXRhICpzZGF0YSxcbiBcdFx0XHRyZXR1cm4gLUVCVVNZO1xuIFx0fVxuIFxuJiM0MztcdC8qXG4mIzQzO1x0ICogQW4gYWN0aXZlIG1vbml0b3IgaXMgcGFzc2VkIHRvIHRoZSBkcml2ZXIgYW5kIG5lZWRzIGEgVFhRLCB3aGljaCBpc1xuJiM0MztcdCAqIHJlc2VydmVkIHdpdGggdGhlIG5ldGRldiBpbiBpZWVlODAyMTFfaWZfYWRkKCkgYW5kIGNhbm5vdCBiZSBhZGRlZFxuJiM0MztcdCAqIGxhdGVyLiAgQW4gaW50ZXJmYWNlIGNyZWF0ZWQgd2l0aG91dCB0aGUgZmxhZyBoYXMgbm9uZSwgc28gcmVmdXNlIHRvXG4mIzQzO1x0ICogc2V0IGl0IHJhdGhlciB0aGFuIGhhbmQgdGhlIGRyaXZlciBhIE5VTEwgdmlmLVx1MDAzZXR4cS5cbiYjNDM7XHQgKi9cbiYjNDM7XHRpZiAoKHBhcmFtcy1cdTAwM2VmbGFncyBcdTAwMjYgTU9OSVRPUl9GTEFHX0FDVElWRSkgXHUwMDI2XHUwMDI2ICFzZGF0YS1cdTAwM2V2aWYudHhxKVxuJiM0MztcdFx0cmV0dXJuIC1FT1BOT1RTVVBQO1xuJiM0MztcbiBcdC8qIHZhbGlkYXRlIHdoZXRoZXIgTVUtTUlNTyBjYW4gYmUgY29uZmlndXJlZCAqL1xuIFx0aWYgKCFpZWVlODAyMTFfaHdfY2hlY2soXHUwMDI2bG9jYWwtXHUwMDNlaHcsIFdBTlRfTU9OSVRPUl9WSUYpIFx1MDAyNlx1MDAyNlxuIFx0ICAgICFpZWVlODAyMTFfaHdfY2hlY2soXHUwMDI2bG9jYWwtXHUwMDNlaHcsIE5PX1ZJUlRVQUxfTU9OSVRPUikgXHUwMDI2XHUwMDI2XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjQgMDE6MTY8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+YmVzdC1leHBlbnNpdmU8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0NGRzgwMjExJiMzNDssCiAgICAmIzM0O01BQzgwMjExJiMzNDssCiAgICAmIzM0O01BQzgwMjExX0hXU0lNJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7aWVlZTgwMjExX2FkZF9pZmFjZSYjMzQ7LAogICAgJiMzNDtpZWVlODAyMTFfY2hhbmdlX2lmYWNlJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGFkZHMgYSBjaGVjayBpbiBgaWVlZTgwMjExX3NldF9tb25fb3B0aW9uc2AgdG8gcHJldmVudCBhIE5VTEwgcG9pbnRlciBkZXJlZmVyZW5jZSB3aGVuIGNvbmZpZ3VyaW5nIGFuIGFjdGl2ZSBtb25pdG9yIGludGVyZmFjZSB3aXRob3V0IGEgVFggcXVldWUuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgbWFjODAyMTEgY29yZSBsb2dpYywgcmVhY2hhYmxlIHZpYSB0aGUgbmw4MDIxMSBuZXRsaW5rIGludGVyZmFjZSAoZS5nLiwgd2hlbiBhZGRpbmcgb3IgY2hhbmdpbmcgYSB2aXJ0dWFsIGludGVyZmFjZSkuIEl0IGNhbiBiZSB0ZXN0ZWQgdXNpbmcgdGhlIHNvZnR3YXJlLWVtdWxhdGVkIGBtYWM4MDIxMV9od3NpbWAgZHJpdmVyLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmUKaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseQp1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLgoKUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczoKLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLgotIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLgotIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy4KLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsCiAgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLgotIENvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLAogIGlvbmljLCBhbWRncHUpIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLgotIERyaXZlciAucmVtb3ZlLCAuc2h1dGRvd24sIG9yIHBjaV91bnJlZ2lzdGVyX2RyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKGUuZy4sIGlnYl9yZW1vdmUpCiAgdGhhdCBhcmUgZXhlY3V0ZWQgb25seSBkdXJpbmcgUENJIGhvdC11bnBsdWcgb3Igc3lzZnMgZHJpdmVyIHVuYmluZCBvcGVyYXRpb25zLgoKSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaAp0b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS4KCldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOgoxLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLgogICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy4KICAgUHJlZmVyIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIEFQSSBlbnRyeXBvaW50IGZ1bmN0aW9ucyBvdmVyIGludGVybmFsIHN0YXRpYyBoZWxwZXIgZnVuY3Rpb25zCiAgICh3aGljaCBhcmUgaW5saW5lZCBieSB0aGUgY29tcGlsZXIgYW5kIGRvIG5vdCBoYXZlIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMpLgoyLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS4KICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLgogICBBbHNvIGNoZWNrICYjMzQ7ZGVwZW5kcyBvbiYjMzQ7IGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlncwogICBuZWVkZWQgZm9yIEtidWlsZCB0byBjb21waWxlIHRoZSBjb2RlIHN0YXRpY2FsbHkgaW50byB2bWxpbnV4LiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3MKICAgb3V0cHV0IGFycmF5LCBhbmQgRE8gTk9UIGFkZCBhICYjMzk7Q09ORklHXyYjMzk7IHByZWZpeCAoZS5nLiwgcmV0dXJuICYjMzQ7TkVUX0lQVjQmIzM0OyBpbnN0ZWFkIG9mICYjMzQ7Q09ORklHX05FVF9JUFY0JiMzNDspLgpQcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy4KCgpVc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLgpJdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS4KSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlByb21wdDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOgpjb21taXQgYTYxN2M2NzdkNDM3YTVmZDVjMTg0NTcxMjhkZjkyMThlNzE0YzMxZQpBdXRob3I6IHN5ei1jbHVzdGVyICZsdDt0cmlhZ2VAc3l6a2FsbGVyLmNvbSZndDsKRGF0ZTogICBNb24gQXVnIDI0IDAxOjE2OjIyIDIwMjYgJiM0MzswMDAwCgogICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3CgpkaWZmIC0tZ2l0IGEvbmV0L21hYzgwMjExL2NmZy5jIGIvbmV0L21hYzgwMjExL2NmZy5jCmluZGV4IGI2MTYzZGNjN2U5MmMuLjUyM2NlZjBhNTUyNjEgMTAwNjQ0Ci0tLSBhL25ldC9tYWM4MDIxMS9jZmcuYwomIzQzOyYjNDM7JiM0MzsgYi9uZXQvbWFjODAyMTEvY2ZnLmMKQEAgLTExNSw2ICYjNDM7MTE1LDE1IEBAIHN0YXRpYyBpbnQgaWVlZTgwMjExX3NldF9tb25fb3B0aW9ucyhzdHJ1Y3QgaWVlZTgwMjExX3N1Yl9pZl9kYXRhICpzZGF0YSwKIAkJCXJldHVybiAtRUJVU1k7CiAJfQogCiYjNDM7CS8qCiYjNDM7CSAqIEFuIGFjdGl2ZSBtb25pdG9yIGlzIHBhc3NlZCB0byB0aGUgZHJpdmVyIGFuZCBuZWVkcyBhIFRYUSwgd2hpY2ggaXMKJiM0MzsJICogcmVzZXJ2ZWQgd2l0aCB0aGUgbmV0ZGV2IGluIGllZWU4MDIxMV9pZl9hZGQoKSBhbmQgY2Fubm90IGJlIGFkZGVkCiYjNDM7CSAqIGxhdGVyLiAgQW4gaW50ZXJmYWNlIGNyZWF0ZWQgd2l0aG91dCB0aGUgZmxhZyBoYXMgbm9uZSwgc28gcmVmdXNlIHRvCiYjNDM7CSAqIHNldCBpdCByYXRoZXIgdGhhbiBoYW5kIHRoZSBkcml2ZXIgYSBOVUxMIHZpZi0mZ3Q7dHhxLgomIzQzOwkgKi8KJiM0MzsJaWYgKChwYXJhbXMtJmd0O2ZsYWdzICZhbXA7IE1PTklUT1JfRkxBR19BQ1RJVkUpICZhbXA7JmFtcDsgIXNkYXRhLSZndDt2aWYudHhxKQomIzQzOwkJcmV0dXJuIC1FT1BOT1RTVVBQOwomIzQzOwogCS8qIHZhbGlkYXRlIHdoZXRoZXIgTVUtTUlNTyBjYW4gYmUgY29uZmlndXJlZCAqLwogCWlmICghaWVlZTgwMjExX2h3X2NoZWNrKCZhbXA7bG9jYWwtJmd0O2h3LCBXQU5UX01PTklUT1JfVklGKSAmYW1wOyZhbXA7CiAJICAgICFpZWVlODAyMTFfaHdfY2hlY2soJmFtcDtsb2NhbC0mZ3Q7aHcsIE5PX1ZJUlRVQUxfTU9OSVRPUikgJmFtcDsmYW1wOwo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yNCAwMToxNjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyMTQ4CgkJCQkJCQlvdXRwdXQ6IDQ1CgkJCQkJCQl0aG91Z2h0czogMjUwCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgbWFjODAyMTEgUGF0Y2ggZm9yIE1vbml0b3IgTW9kZSBDb25maWd1cmF0aW9uKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIHBhdGNoIGluIGBuZXQvbWFjODAyMTEvY2ZnLmNgLCBhbmQgaXQmIzM5O3MgbWFraW5nIGEgcHJldHR5IHNlbnNpYmxlIGNoZWNrIHdpdGhpbiBgaWVlZTgwMjExX3NldF9tb25fb3B0aW9uc2AuIEl0JiMzOTtzIGFkZHJlc3NpbmcgYSBjcml0aWNhbCBpc3N1ZSByZWxhdGVkIHRvIGFjdGl2ZSBtb25pdG9yIGludGVyZmFjZXMuIEJhc2ljYWxseSwgaWYgdGhlIGBNT05JVE9SX0ZMQUdfQUNUSVZFYCBmbGFnIGlzIHNldCwgdGhlIGRyaXZlciAqbmVlZHMqIGEgdHJhbnNtaXQgcXVldWUgKHR4cSkuIFRoaXMgcXVldWUgaXMgZXN0YWJsaXNoZWQgZHVyaW5nIHRoZSBuZXR3b3JrIGRldmljZSBzZXR1cCBpbiBgaWVlZTgwMjExX2lmX2FkZCgpYC4gVGhlIHBhdGNoLCBhcyBJIHNlZSBpdCwgcHJldmVudHMgYSBwb3RlbnRpYWwgcHJvYmxlbSB3aGVyZSB3ZSYjMzk7ZCB0cnkgdG8gdXNlIGEgbnVsbCBgdmlmLSZndDt0eHFgLiBUaGUgY29kZSBpcyByZWplY3RpbmcgdGhlIG9wZXJhdGlvbiBpZiB0aGUgYE1PTklUT1JfRkxBR19BQ1RJVkVgIGJpdCBpcyBzZXQsIGJ1dCB0aGUgaW50ZXJmYWNlIHdhcyBjcmVhdGVkIHdpdGhvdXQgYSB0cmFuc21pdCBxdWV1ZSwgcmV0dXJuaW5nIGFuIGBFT1BOT1RTVVBQYCBlcnJvci4gSXQmIzM5O3MgYSBuaWNlLCBmb2N1c2VkIHBpZWNlIG9mIGRlZmVuc2l2ZSBwcm9ncmFtbWluZywgYWltZWQgYXQgcHJldmVudGluZyBhIGNyYXNoIG9yLCB3b3JzZSwgdW5kZWZpbmVkIGJlaGF2aW9yIGR1ZSB0byBhIG51bGwgcG9pbnRlciBkZXJlZmVyZW5jZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yNCAwMToxNjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtpZWVlODAyMTFfc2V0X21vbl9vcHRpb25zJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7bmV0L21hYzgwMjExL2NmZy5jJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O25ldC9tYWM4MDIxMS9jZmcuYz01MD1zdGF0aWMgdm9pZCBpZWVlODAyMTFfc2V0X211X21pbW9fZm9sbG93KHN0cnVjdCBpZWVlODAyMTFfc3ViX2lmX2RhdGEgKnNkYXRhLFxuLS1cbm5ldC9tYWM4MDIxMS9jZmcuYy05NS1cbm5ldC9tYWM4MDIxMS9jZmcuYzo5NjpzdGF0aWMgaW50IGllZWU4MDIxMV9zZXRfbW9uX29wdGlvbnMoc3RydWN0IGllZWU4MDIxMV9zdWJfaWZfZGF0YSAqc2RhdGEsXG5uZXQvbWFjODAyMTEvY2ZnLmMtOTctXHRcdFx0XHQgICAgIHN0cnVjdCB2aWZfcGFyYW1zICpwYXJhbXMpXG4tLVxubmV0L21hYzgwMjExL2NmZy5jPTIxNT1zdGF0aWMgc3RydWN0IHdpcmVsZXNzX2RldiAqaWVlZTgwMjExX2FkZF9pZmFjZShzdHJ1Y3Qgd2lwaHkgKndpcGh5LFxuLS1cbm5ldC9tYWM4MDIxMS9jZmcuYy0yMzItXHRpZiAodHlwZSA9PSBOTDgwMjExX0lGVFlQRV9NT05JVE9SKSB7XG5uZXQvbWFjODAyMTEvY2ZnLmM6MjMzOlx0XHRlcnIgPSBpZWVlODAyMTFfc2V0X21vbl9vcHRpb25zKHNkYXRhLCBwYXJhbXMpO1xubmV0L21hYzgwMjExL2NmZy5jLTIzNC1cdFx0aWYgKGVycikge1xuLS1cbm5ldC9tYWM4MDIxMS9jZmcuYz0yNjg9c3RhdGljIGludCBpZWVlODAyMTFfY2hhbmdlX2lmYWNlKHN0cnVjdCB3aXBoeSAqd2lwaHksXG4tLVxubmV0L21hYzgwMjExL2NmZy5jLTMxMC1cdGlmIChzZGF0YS1cdTAwM2V2aWYudHlwZSA9PSBOTDgwMjExX0lGVFlQRV9NT05JVE9SKSB7XG5uZXQvbWFjODAyMTEvY2ZnLmM6MzExOlx0XHRyZXQgPSBpZWVlODAyMTFfc2V0X21vbl9vcHRpb25zKHNkYXRhLCBwYXJhbXMpO1xubmV0L21hYzgwMjExL2NmZy5jLTMxMi1cdFx0aWYgKHJldClcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yNCAwMToxNjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzMTM2CgkJCQkJCQlvdXRwdXQ6IDQ0CgkJCQkJCQl0aG91Z2h0czogOTIKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBJRUVFIDgwMi4xMSBJbnRlcmZhY2UgQ29uZmlndXJhdGlvbioqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhpcyBgaWVlZTgwMjExX3NldF9tb25fb3B0aW9uc2AgZnVuY3Rpb24uIEl0JiMzOTtzIGRlY2xhcmVkIGFzIHN0YXRpYywgd2hpY2ggaW1tZWRpYXRlbHkgbGltaXRzIGl0cyBzY29wZS4gSXQmIzM5O3Mgb25seSBjYWxsYWJsZSBmcm9tIHdpdGhpbiB0aGlzIHBhcnRpY3VsYXIgc291cmNlIGZpbGUuIFRoYXQmIzM5O3MgZ29vZCB0byBrbm93LiBOb3csIHRoZSBrZXkgaXMgdW5kZXJzdGFuZGluZyAqd2hlcmUqIGl0JiMzOTtzIGJlaW5nIHVzZWQuIEkgc2VlIGl0JiMzOTtzIGNhbGxlZCBmcm9tIGBpZWVlODAyMTFfYWRkX2lmYWNlYCBhbmQgYGllZWU4MDIxMV9jaGFuZ2VfaWZhY2VgLiBUbyBnZXQgYSBjb21wbGV0ZSBwaWN0dXJlLCBJIG5lZWQgdG8gY29uZmlybSB3aGV0aGVyICp0aG9zZSogZnVuY3Rpb25zIGFyZSBzdGF0aWMgYXMgd2VsbC4gQXJlIHRoZSBmdW5jdGlvbnMgdGhhdCBjYWxsIHRoaXMgZnVuY3Rpb24gYWxzbyBzdGF0aWMsIGxpbWl0aW5nIHRoZWlyIHNjb3BlPyBVbmRlcnN0YW5kaW5nIHRoaXMgd2lsbCBoZWxwIG1lIGRldGVybWluZSB0aGUgYnJvYWRlciBpbXBsaWNhdGlvbnMgb2YgbW9kaWZ5aW5nIGBpZWVlODAyMTFfc2V0X21vbl9vcHRpb25zYCwgYW5kIHdoZXJlIHRob3NlIGNoYW5nZXMgbWlnaHQgcmlwcGxlLiBJZiB0aGV5ICphcmVuJiMzOTt0KiBzdGF0aWMsIHRoZW4gY2hhbmdlcyB0byBgaWVlZTgwMjExX3NldF9tb25fb3B0aW9uc2AgY291bGQgaGF2ZSB3aWRlciBpbXBhY3QuIElmIHRoZXkgYXJlLCB0aGVuIG15IHNjb3BlIGlzIG1vcmUgY2xlYXJseSBkZWZpbmVkLiBJJiMzOTtsbCBjaGVjayB0aGVpciBkZWZpbml0aW9ucy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yNCAwMToxNjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtpZWVlODAyMTFfYWRkX2lmYWNlJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7bmV0L21hYzgwMjExL2NmZy5jJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O25ldC9tYWM4MDIxMS9jZmcuYz0xNzA9c3RhdGljIGludCBpZWVlODAyMTFfc2V0X2FwX21ic3NpZF9vcHRpb25zKHN0cnVjdCBpZWVlODAyMTFfc3ViX2lmX2RhdGEgKnNkYXRhLFxuLS1cbm5ldC9tYWM4MDIxMS9jZmcuYy0yMTQtXG5uZXQvbWFjODAyMTEvY2ZnLmM6MjE1OnN0YXRpYyBzdHJ1Y3Qgd2lyZWxlc3NfZGV2ICppZWVlODAyMTFfYWRkX2lmYWNlKHN0cnVjdCB3aXBoeSAqd2lwaHksXG5uZXQvbWFjODAyMTEvY2ZnLmMtMjE2LVx0XHRcdFx0XHRcdGNvbnN0IGNoYXIgKm5hbWUsXG4tLVxubmV0L21hYzgwMjExL2NmZy5jPTU1OTI9Y29uc3Qgc3RydWN0IGNmZzgwMjExX29wcyBtYWM4MDIxMV9jb25maWdfb3BzID0ge1xubmV0L21hYzgwMjExL2NmZy5jOjU1OTM6XHQuYWRkX3ZpcnR1YWxfaW50ZiA9IGllZWU4MDIxMV9hZGRfaWZhY2UsXG5uZXQvbWFjODAyMTEvY2ZnLmMtNTU5NC1cdC5kZWxfdmlydHVhbF9pbnRmID0gaWVlZTgwMjExX2RlbF9pZmFjZSxcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD43LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yNCAwMToxNjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzNzk1CgkJCQkJCQlvdXRwdXQ6IDQ0CgkJCQkJCQl0aG91Z2h0czogOTkKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIEludGVyZmFjZSBDb25maWd1cmF0aW9uIGluIG1hYzgwMjExKioKCk9rYXksIHNvIEkmIzM5O20gZGlnZ2luZyBpbnRvIGhvdyB2aXJ0dWFsIGludGVyZmFjZXMgYXJlIGhhbmRsZWQgaW4gbWFjODAyMTEuIEkgc2VlIGBpZWVlODAyMTFfYWRkX2lmYWNlYCBkZWNsYXJlZCBhcyBzdGF0aWMsIHdoaWNoIGlzIGludGVyZXN0aW5nLCBidXQgdGhlbiBJIGZpbmQgaXQmIzM5O3MgYXNzaWduZWQgdG8gYG1hYzgwMjExX2NvbmZpZ19vcHMuYWRkX3ZpcnR1YWxfaW50ZmAuIFRoYXQgc2VlbXMgc3RyYWlnaHRmb3J3YXJkIGVub3VnaC4gTm93LCBJJiMzOTttIGJldHRpbmcgdGhhdCBgaWVlZTgwMjExX2NoYW5nZV9pZmFjZWAgaXMgdGhlIGZ1bmN0aW9uIGJlaW5nIHVzZWQgZm9yIGBtYWM4MDIxMV9jb25maWdfb3BzLmNoYW5nZV92aXJ0dWFsX2ludGZgLiBJdCYjMzk7cyBhIGxvZ2ljYWwgY29ubmVjdGlvbiwgZ2l2ZW4gdGhlIG5hbWluZyBjb252ZW50aW9ucywgYnV0IGxldCYjMzk7cyBub3QgYXNzdW1lIGFueXRoaW5nLiBJIG5lZWQgdG8gY29uZmlybSB0aGF0LiBTbywgSSYjMzk7bSBnb2luZyB0byB0YWtlIGEgY2xvc2VyIGxvb2sgYXQgYGllZWU4MDIxMV9jaGFuZ2VfaWZhY2VgIHRvIHZlcmlmeSBteSBoeXBvdGhlc2lzIGFuZCB1bmRlcnN0YW5kIHRoZSBleGFjdCBtZWNoYW5pY3MuIEdvdHRhIG1ha2Ugc3VyZSBldmVyeXRoaW5nJiMzOTtzIGFzIEkgZXhwZWN0IGl0IHRvIGJlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzI0IDAxOjE2PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2llZWU4MDIxMV9jaGFuZ2VfaWZhY2UmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtuZXQvbWFjODAyMTEvY2ZnLmMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7bmV0L21hYzgwMjExL2NmZy5jPTI2MT1zdGF0aWMgaW50IGllZWU4MDIxMV9kZWxfaWZhY2Uoc3RydWN0IHdpcGh5ICp3aXBoeSwgc3RydWN0IHdpcmVsZXNzX2RldiAqd2Rldilcbi0tXG5uZXQvbWFjODAyMTEvY2ZnLmMtMjY3LVxubmV0L21hYzgwMjExL2NmZy5jOjI2ODpzdGF0aWMgaW50IGllZWU4MDIxMV9jaGFuZ2VfaWZhY2Uoc3RydWN0IHdpcGh5ICp3aXBoeSxcbm5ldC9tYWM4MDIxMS9jZmcuYy0yNjktXHRcdFx0XHQgIHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsXG4tLVxubmV0L21hYzgwMjExL2NmZy5jPTU1OTI9Y29uc3Qgc3RydWN0IGNmZzgwMjExX29wcyBtYWM4MDIxMV9jb25maWdfb3BzID0ge1xuLS1cbm5ldC9tYWM4MDIxMS9jZmcuYy01NTk0LVx0LmRlbF92aXJ0dWFsX2ludGYgPSBpZWVlODAyMTFfZGVsX2lmYWNlLFxubmV0L21hYzgwMjExL2NmZy5jOjU1OTU6XHQuY2hhbmdlX3ZpcnR1YWxfaW50ZiA9IGllZWU4MDIxMV9jaGFuZ2VfaWZhY2UsXG5uZXQvbWFjODAyMTEvY2ZnLmMtNTU5Ni1cdC5zdGFydF9wMnBfZGV2aWNlID0gaWVlZTgwMjExX3N0YXJ0X3AycF9kZXZpY2UsXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjQgMDE6MTY8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNDQ3MAoJCQkJCQkJb3V0cHV0OiAzOAoJCQkJCQkJdGhvdWdodHM6IDMwNQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipGb2N1c2luZyBvbiBJbnRlcmZhY2UgQWRkaXRpb24vTW9kaWZpY2F0aW9uIGluIG1hYzgwMjExKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCBob3cgaW50ZXJmYWNlcyBhcmUgYWRkZWQgYW5kIGNoYW5nZWQgd2l0aGluIHRoZSBtYWM4MDIxMSB3aXJlbGVzcyBzdGFjay4gTXkgaW5pdGlhbCB0aG91Z2h0IHdhcyB0byBkaWcgaW50byBgaWVlZTgwMjExX2FkZF9pZmFjZWAgYW5kIGBpZWVlODAyMTFfY2hhbmdlX2lmYWNlYCwgYnV0IHRoZXkmIzM5O3JlIG1hcmtlZCBhcyBzdGF0aWMsIHdoaWNoIHVzdWFsbHkgbWVhbnMgdGhleSYjMzk7cmUgY29tcGlsZXItaW5saW5lZCBhbmQgbm90IGlkZWFsIGZvciBmdXp6aW5nIHRhcmdldCBzeW1ib2xzLiAgSSBxdWlja2x5IHJlbWVtYmVyZWQgdGhhdCBgbWFjODAyMTFfY29uZmlnX29wc2AgcGxheXMgYSByb2xlIGluIGBjZmc4MDIxMWAuIEJ1dCBob2xkIG9uLCBgbWFjODAyMTFfY29uZmlnX29wc2AgaXMgYSBzdHJ1Y3QsIG5vdCBhIGZ1bmN0aW9uIEkgY2FuIGRpcmVjdGx5IHRhcmdldC4KClRoZW4gSSByZWFsaXplZCB0aGF0IGBpZWVlODAyMTFfYWRkX2lmYWNlYCBpcyBzdGF0aWMuIFRoYXQgdXN1YWxseSBtYWtlcyBpdCBub3QgaWRlYWwsIGFuZCBJIHdhcyBvbiB0aGUgcmlnaHQgdHJhY2ssIHdoZW4gSSBjb25zaWRlcmVkIGdvaW5nIHVwIGEgbGV2ZWwgdG8gYG5sODAyMTFfbmV3X2ludGVyZmFjZWAgYW5kIGBubDgwMjExX3NldF9pbnRlcmZhY2VgIGluIGBuZXQvd2lyZWxlc3Mvbmw4MDIxMS5jYCwgYnV0IHRoZSBpbnN0cnVjdGlvbnMgSSBhbSBmb2xsb3dpbmcgc2F5IHRvIGxvb2sgZm9yIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIGVudHJ5cG9pbnQgZnVuY3Rpb25zLgoKQWhhISBJZiBgaWVlZTgwMjExX2FkZF9pZmFjZWAgYW5kIGBpZWVlODAyMTFfY2hhbmdlX2lmYWNlYCBhcmUgYXNzaWduZWQgdG8gZnVuY3Rpb24gcG9pbnRlcnMsIHRoYXQgYWN0dWFsbHkgKnByZXZlbnRzKiB0aGVtIGZyb20gYmVpbmcgaW5saW5lZCBieSB0aGUgY29tcGlsZXIuIEJlY2F1c2Ugb2YgdGhhdCwgdGhleSYjMzk7bGwgaGF2ZSBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzLiBHaXZlbiB0aGF0IHVuZGVyc3RhbmRpbmcsIGBpZWVlODAyMTFfYWRkX2lmYWNlYCBhbmQgYGllZWU4MDIxMV9jaGFuZ2VfaWZhY2VgIGxvb2sgbGlrZSBwZXJmZWN0bHkgZ29vZCBjYW5kaWRhdGVzIGZvciBgRm9jdXNTeW1ib2xzYCwgYXMgbG9uZyBhcyB0aGV5IGFyZSBhc3NpZ25lZCB0byBmdW5jdGlvbiBwb2ludGVycy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjQgMDE6MTY8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIE1BQzgwMjExJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7bmV0L21hYzgwMjExL0tjb25maWcmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7bmV0L21hYzgwMjExL0tjb25maWctMS0jIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHlcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjI6Y29uZmlnIE1BQzgwMjExXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0zLVx0dHJpc3RhdGUgXCYjMzQ7R2VuZXJpYyBJRUVFIDgwMi4xMSBOZXR3b3JraW5nIFN0YWNrIChtYWM4MDIxMSlcJiMzNDtcbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZz0xOT1pZiBNQUM4MDIxMSAhPSBuXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yMC1cbm5ldC9tYWM4MDIxMS9LY29uZmlnOjIxOmNvbmZpZyBNQUM4MDIxMV9IQVNfUkNcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTIyLVx0Ym9vbFxubmV0L21hYzgwMjExL0tjb25maWctMjMtXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoyNDpjb25maWcgTUFDODAyMTFfUkNfTUlOU1RSRUxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTI1LVx0Ym9vbCBcJiMzNDtNaW5zdHJlbFwmIzM0OyBpZiBFWFBFUlRcbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZz0zMT1jaG9pY2Vcbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZy00MC1cbm5ldC9tYWM4MDIxMS9LY29uZmlnOjQxOmNvbmZpZyBNQUM4MDIxMV9SQ19ERUZBVUxUX01JTlNUUkVMXG5uZXQvbWFjODAyMTEvS2NvbmZpZy00Mi1cdGJvb2wgXCYjMzQ7TWluc3RyZWxcJiMzNDtcbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZz00OD1lbmRjaG9pY2Vcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTQ5LVxubmV0L21hYzgwMjExL0tjb25maWc6NTA6Y29uZmlnIE1BQzgwMjExX1JDX0RFRkFVTFRcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTUxLVx0c3RyaW5nXG4tLVxubmV0L21hYzgwMjExL0tjb25maWc9NTc9Y29tbWVudCBcJiMzNDtTb21lIHdpcmVsZXNzIGRyaXZlcnMgcmVxdWlyZSBhIHJhdGUgY29udHJvbCBhbGdvcml0aG1cJiMzNDtcbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZy01OS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnOjYwOmNvbmZpZyBNQUM4MDIxMV9LVU5JVF9URVNUXG5uZXQvbWFjODAyMTEvS2NvbmZpZy02MS1cdHRyaXN0YXRlIFwmIzM0O0tVbml0IHRlc3RzIGZvciBtYWM4MDIxMVwmIzM0OyBpZiAhS1VOSVRfQUxMX1RFU1RTXG4tLVxubmV0L21hYzgwMjExL0tjb25maWctNjktXG5uZXQvbWFjODAyMTEvS2NvbmZpZzo3MDpjb25maWcgTUFDODAyMTFfTUVTSFxubmV0L21hYzgwMjExL0tjb25maWctNzEtXHRib29sIFwmIzM0O0VuYWJsZSBtYWM4MDIxMSBtZXNoIG5ldHdvcmtpbmcgc3VwcG9ydFwmIzM0O1xuLS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnLTc4LVxubmV0L21hYzgwMjExL0tjb25maWc6Nzk6Y29uZmlnIE1BQzgwMjExX0xFRFNcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTgwLVx0Ym9vbCBcJiMzNDtFbmFibGUgTEVEIHRyaWdnZXJzXCYjMzQ7XG4tLVxubmV0L21hYzgwMjExL0tjb25maWctODctXG5uZXQvbWFjODAyMTEvS2NvbmZpZzo4ODpjb25maWcgTUFDODAyMTFfREVCVUdGU1xubmV0L21hYzgwMjExL0tjb25maWctODktXHRib29sIFwmIzM0O0V4cG9ydCBtYWM4MDIxMSBpbnRlcm5hbHMgaW4gRGVidWdGU1wmIzM0O1xuLS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnLTk2LVxubmV0L21hYzgwMjExL0tjb25maWc6OTc6Y29uZmlnIE1BQzgwMjExX01FU1NBR0VfVFJBQ0lOR1xubmV0L21hYzgwMjExL0tjb25maWctOTgtXHRib29sIFwmIzM0O1RyYWNlIGFsbCBtYWM4MDIxMSBkZWJ1ZyBtZXNzYWdlc1wmIzM0O1xuLS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnLTEwOS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnOjExMDptZW51Y29uZmlnIE1BQzgwMjExX0RFQlVHX01FTlVcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTExMS1cdGJvb2wgXCYjMzQ7U2VsZWN0IG1hYzgwMjExIGRlYnVnZ2luZyBmZWF0dXJlc1wmIzM0O1xuLS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnLTExNS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnOjExNjpjb25maWcgTUFDODAyMTFfTk9JTkxJTkVcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTExNy1cdGJvb2wgXCYjMzQ7RG8gbm90IGlubGluZSBUWC9SWCBoYW5kbGVyc1wmIzM0O1xuLS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnLTEzMS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnOjEzMjpjb25maWcgTUFDODAyMTFfVkVSQk9TRV9ERUJVR1xubmV0L21hYzgwMjExL0tjb25maWctMTMzLVx0Ym9vbCBcJiMzNDtWZXJib3NlIGRlYnVnZ2luZyBvdXRwdXRcJiMzNDtcbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xNDItXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoxNDM6Y29uZmlnIE1BQzgwMjExX01MTUVfREVCVUdcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTE0NC1cdGJvb2wgXCYjMzQ7VmVyYm9zZSBtYW5hZ2VkIE1MTUUgb3V0cHV0XCYjMzQ7XG4tLVxubmV0L21hYzgwMjExL0tjb25maWctMTUzLVxubmV0L21hYzgwMjExL0tjb25maWc6MTU0OmNvbmZpZyBNQUM4MDIxMV9TVEFfREVCVUdcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTE1NS1cdGJvb2wgXCYjMzQ7VmVyYm9zZSBzdGF0aW9uIGRlYnVnZ2luZ1wmIzM0O1xuLS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnLTE2Mi1cbm5ldC9tYWM4MDIxMS9LY29uZmlnOjE2Mzpjb25maWcgTUFDODAyMTFfSFRfREVCVUdcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTE2NC1cdGJvb2wgXCYjMzQ7VmVyYm9zZSBIVCBkZWJ1Z2dpbmdcJiMzNDtcbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xNzQtXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoxNzU6Y29uZmlnIE1BQzgwMjExX09DQl9ERUJVR1xubmV0L21hYzgwMjExL0tjb25maWctMTc2LVx0Ym9vbCBcJiMzNDtWZXJib3NlIE9DQiBkZWJ1Z2dpbmdcJiMzNDtcbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xODUtXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoxODY6Y29uZmlnIE1BQzgwMjExX0lCU1NfREVCVUdcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTE4Ny1cdGJvb2wgXCYjMzQ7VmVyYm9zZSBJQlNTIGRlYnVnZ2luZ1wmIzM0O1xuLS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnLTE5Ni1cbm5ldC9tYWM4MDIxMS9LY29uZmlnOjE5Nzpjb25maWcgTUFDODAyMTFfUFNfREVCVUdcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTE5OC1cdGJvb2wgXCYjMzQ7VmVyYm9zZSBwb3dlcnNhdmUgbW9kZSBkZWJ1Z2dpbmdcJiMzNDtcbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yMDgtXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoyMDk6Y29uZmlnIE1BQzgwMjExX01QTF9ERUJVR1xubmV0L21hYzgwMjExL0tjb25maWctMjEwLVx0Ym9vbCBcJiMzNDtWZXJib3NlIG1lc2ggcGVlciBsaW5rIGRlYnVnZ2luZ1wmIzM0O1xuLS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnLTIyMS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnOjIyMjpjb25maWcgTUFDODAyMTFfTVBBVEhfREVCVUdcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTIyMy1cdGJvb2wgXCYjMzQ7VmVyYm9zZSBtZXNoIHBhdGggZGVidWdnaW5nXCYjMzQ7XG4tLVxubmV0L21hYzgwMjExL0tjb25maWctMjM0LVxubmV0L21hYzgwMjExL0tjb25maWc6MjM1OmNvbmZpZyBNQUM4MDIxMV9NSFdNUF9ERUJVR1xubmV0L21hYzgwMjExL0tjb25maWctMjM2LVx0Ym9vbCBcJiMzNDtWZXJib3NlIG1lc2ggSFdNUCByb3V0aW5nIGRlYnVnZ2luZ1wmIzM0O1xuLS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnLTI0Ny1cbm5ldC9tYWM4MDIxMS9LY29uZmlnOjI0ODpjb25maWcgTUFDODAyMTFfTUVTSF9TWU5DX0RFQlVHXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yNDktXHRib29sIFwmIzM0O1ZlcmJvc2UgbWVzaCBzeW5jaHJvbml6YXRpb24gZGVidWdnaW5nXCYjMzQ7XG4tLVxubmV0L21hYzgwMjExL0tjb25maWctMjU4LVxubmV0L21hYzgwMjExL0tjb25maWc6MjU5OmNvbmZpZyBNQUM4MDIxMV9NRVNIX0NTQV9ERUJVR1xubmV0L21hYzgwMjExL0tjb25maWctMjYwLVx0Ym9vbCBcJiMzNDtWZXJib3NlIG1lc2ggY2hhbm5lbCBzd2l0Y2ggZGVidWdnaW5nXCYjMzQ7XG4tLVxubmV0L21hYzgwMjExL0tjb25maWctMjY5LVxubmV0L21hYzgwMjExL0tjb25maWc6MjcwOmNvbmZpZyBNQUM4MDIxMV9NRVNIX1BTX0RFQlVHXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yNzEtXHRib29sIFwmIzM0O1ZlcmJvc2UgbWVzaCBwb3dlcnNhdmUgZGVidWdnaW5nXCYjMzQ7XG4tLVxubmV0L21hYzgwMjExL0tjb25maWctMjgwLVxubmV0L21hYzgwMjExL0tjb25maWc6MjgxOmNvbmZpZyBNQUM4MDIxMV9URExTX0RFQlVHXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yODItXHRib29sIFwmIzM0O1ZlcmJvc2UgVERMUyBkZWJ1Z2dpbmdcJiMzNDtcbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yOTItXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoyOTM6Y29uZmlnIE1BQzgwMjExX0RFQlVHX0NPVU5URVJTXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yOTQtXHRib29sIFwmIzM0O0V4dHJhIHN0YXRpc3RpY3MgZm9yIFRYL1JYIGRlYnVnZ2luZ1wmIzM0O1xuLS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnLTMwNy1cbm5ldC9tYWM4MDIxMS9LY29uZmlnOjMwODpjb25maWcgTUFDODAyMTFfU1RBX0hBU0hfTUFYX1NJWkVcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTMwOS1cdGludCBcJiMzNDtTdGF0aW9uIGhhc2ggdGFibGUgbWF4aW11bSBzaXplXCYjMzQ7IGlmIE1BQzgwMjExX0RFQlVHX01FTlVcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjQgMDE6MTY8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNzM4NAoJCQkJCQkJb3V0cHV0OiAzMwoJCQkJCQkJdGhvdWdodHM6IDU1CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgTUFDODAyMTEgQ29uZmlndXJhdGlvbioqCgpPa2F5LCBzbyB0aGUgY3VycmVudCBjb25maWd1cmF0aW9uIEkmIzM5O20gbG9va2luZyBhdCBpcyBgTUFDODAyMTFgLiBUaGF0JiMzOTtzIHRoZSBzdGFydGluZyBwb2ludC4gSSBuZWVkIHRvIG1ha2Ugc3VyZSBJIGRvbiYjMzk7dCBtaXNzIGFueXRoaW5nLCBzbyBJJiMzOTttIHF1aWNrbHkgY2hlY2tpbmcg4oCTIGlzIHRoZXJlICphbnkqIG90aGVyIGNvbmZpZyByZWxhdGVkIHRvIHRoaXM/IEkgd2FudCB0byBnZXQgYSBjb21wbGV0ZSBwaWN0dXJlIGJlZm9yZSBkaXZpbmcgaW4uCgpBbHJpZ2h0LCB0aGUgcGF0Y2ggSSYjMzk7bSBpbnRlcmVzdGVkIGluIGlzIGxvY2F0ZWQgaW4gYG5ldC9tYWM4MDIxMS9jZmcuY2AuIE5vdywgYmVmb3JlIEkgc3RhcnQgZGlzc2VjdGluZyB0aGUgcGF0Y2ggaXRzZWxmLCBJIG5lZWQgdG8gdW5kZXJzdGFuZCBhbnkgZGVwZW5kZW5jaWVzLiBMZXQgbWUgdmVyaWZ5IHRoYXQgdGhlIGBNQUM4MDIxMWAgY29uZmlndXJhdGlvbiBkb2VzbiYjMzk7dCByZWx5IG9uIG9yIHRyaWdnZXIgYW55IG90aGVyIHNpZ25pZmljYW50IGNvbmZpZ3VyYXRpb25zLiBBIHF1aWNrIGRlcGVuZGVuY3kgY2hlY2sgd2lsbCBnaXZlIG1lIGNydWNpYWwgY29udGV4dC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMi8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjQgMDE6MTY8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7ZGVwZW5kcyBvbiYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O25ldC9tYWM4MDIxMS9LY29uZmlnJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O25ldC9tYWM4MDIxMS9LY29uZmlnPTI9Y29uZmlnIE1BQzgwMjExXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0zLVx0dHJpc3RhdGUgXCYjMzQ7R2VuZXJpYyBJRUVFIDgwMi4xMSBOZXR3b3JraW5nIFN0YWNrIChtYWM4MDIxMSlcJiMzNDtcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjQ6XHRkZXBlbmRzIG9uIENGRzgwMjExXG5uZXQvbWFjODAyMTEvS2NvbmZpZy01LVx0c2VsZWN0IENSWVBUT1xuLS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnPTE2PWNvbW1lbnQgXCYjMzQ7Q0ZHODAyMTEgbmVlZHMgdG8gYmUgZW5hYmxlZCBmb3IgTUFDODAyMTFcJiMzNDtcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjE3Olx0ZGVwZW5kcyBvbiBDRkc4MDIxMT1uXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xOC1cbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZz0zMT1jaG9pY2Vcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTMyLVx0cHJvbXB0IFwmIzM0O0RlZmF1bHQgcmF0ZSBjb250cm9sIGFsZ29yaXRobVwmIzM0O1xubmV0L21hYzgwMjExL0tjb25maWc6MzM6XHRkZXBlbmRzIG9uIE1BQzgwMjExX0hBU19SQ1xubmV0L21hYzgwMjExL0tjb25maWctMzQtXHRkZWZhdWx0IE1BQzgwMjExX1JDX0RFRkFVTFRfTUlOU1RSRUxcbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZz00MT1jb25maWcgTUFDODAyMTFfUkNfREVGQVVMVF9NSU5TVFJFTFxubmV0L21hYzgwMjExL0tjb25maWctNDItXHRib29sIFwmIzM0O01pbnN0cmVsXCYjMzQ7XG5uZXQvbWFjODAyMTEvS2NvbmZpZzo0MzpcdGRlcGVuZHMgb24gTUFDODAyMTFfUkNfTUlOU1RSRUxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTQ0LVx0aGVscFxuLS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnPTU3PWNvbW1lbnQgXCYjMzQ7U29tZSB3aXJlbGVzcyBkcml2ZXJzIHJlcXVpcmUgYSByYXRlIGNvbnRyb2wgYWxnb3JpdGhtXCYjMzQ7XG5uZXQvbWFjODAyMTEvS2NvbmZpZzo1ODpcdGRlcGVuZHMgb24gTUFDODAyMTEgXHUwMDI2XHUwMDI2IE1BQzgwMjExX0hBU19SQz1uXG5uZXQvbWFjODAyMTEvS2NvbmZpZy01OS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnPTYwPWNvbmZpZyBNQUM4MDIxMV9LVU5JVF9URVNUXG5uZXQvbWFjODAyMTEvS2NvbmZpZy02MS1cdHRyaXN0YXRlIFwmIzM0O0tVbml0IHRlc3RzIGZvciBtYWM4MDIxMVwmIzM0OyBpZiAhS1VOSVRfQUxMX1RFU1RTXG5uZXQvbWFjODAyMTEvS2NvbmZpZzo2MjpcdGRlcGVuZHMgb24gS1VOSVRcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjYzOlx0ZGVwZW5kcyBvbiBNQUM4MDIxMVxubmV0L21hYzgwMjExL0tjb25maWctNjQtXHRkZWZhdWx0IEtVTklUX0FMTF9URVNUU1xuLS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnPTcwPWNvbmZpZyBNQUM4MDIxMV9NRVNIXG5uZXQvbWFjODAyMTEvS2NvbmZpZy03MS1cdGJvb2wgXCYjMzQ7RW5hYmxlIG1hYzgwMjExIG1lc2ggbmV0d29ya2luZyBzdXBwb3J0XCYjMzQ7XG5uZXQvbWFjODAyMTEvS2NvbmZpZzo3MjpcdGRlcGVuZHMgb24gTUFDODAyMTFcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTczLVx0aGVscFxuLS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnPTc5PWNvbmZpZyBNQUM4MDIxMV9MRURTXG5uZXQvbWFjODAyMTEvS2NvbmZpZy04MC1cdGJvb2wgXCYjMzQ7RW5hYmxlIExFRCB0cmlnZ2Vyc1wmIzM0O1xubmV0L21hYzgwMjExL0tjb25maWc6ODE6XHRkZXBlbmRzIG9uIE1BQzgwMjExXG5uZXQvbWFjODAyMTEvS2NvbmZpZzo4MjpcdGRlcGVuZHMgb24gTEVEU19DTEFTUz15IHx8IExFRFNfQ0xBU1M9TUFDODAyMTFcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTgzLVx0c2VsZWN0IExFRFNfVFJJR0dFUlNcbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZz04OD1jb25maWcgTUFDODAyMTFfREVCVUdGU1xubmV0L21hYzgwMjExL0tjb25maWctODktXHRib29sIFwmIzM0O0V4cG9ydCBtYWM4MDIxMSBpbnRlcm5hbHMgaW4gRGVidWdGU1wmIzM0O1xubmV0L21hYzgwMjExL0tjb25maWc6OTA6XHRkZXBlbmRzIG9uIE1BQzgwMjExIFx1MDAyNlx1MDAyNiBDRkc4MDIxMV9ERUJVR0ZTXG5uZXQvbWFjODAyMTEvS2NvbmZpZy05MS1cdGhlbHBcbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZz05Nz1jb25maWcgTUFDODAyMTFfTUVTU0FHRV9UUkFDSU5HXG5uZXQvbWFjODAyMTEvS2NvbmZpZy05OC1cdGJvb2wgXCYjMzQ7VHJhY2UgYWxsIG1hYzgwMjExIGRlYnVnIG1lc3NhZ2VzXCYjMzQ7XG5uZXQvbWFjODAyMTEvS2NvbmZpZzo5OTpcdGRlcGVuZHMgb24gTUFDODAyMTEgXHUwMDI2XHUwMDI2IFRSQUNJTkdcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTEwMC1cdGhlbHBcbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZz0xMTA9bWVudWNvbmZpZyBNQUM4MDIxMV9ERUJVR19NRU5VXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xMTEtXHRib29sIFwmIzM0O1NlbGVjdCBtYWM4MDIxMSBkZWJ1Z2dpbmcgZmVhdHVyZXNcJiMzNDtcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjExMjpcdGRlcGVuZHMgb24gTUFDODAyMTFcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTExMy1cdGhlbHBcbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZz0xMTY9Y29uZmlnIE1BQzgwMjExX05PSU5MSU5FXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xMTctXHRib29sIFwmIzM0O0RvIG5vdCBpbmxpbmUgVFgvUlggaGFuZGxlcnNcJiMzNDtcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjExODpcdGRlcGVuZHMgb24gTUFDODAyMTFfREVCVUdfTUVOVVxubmV0L21hYzgwMjExL0tjb25maWctMTE5LVx0aGVscFxuLS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnPTEzMj1jb25maWcgTUFDODAyMTFfVkVSQk9TRV9ERUJVR1xubmV0L21hYzgwMjExL0tjb25maWctMTMzLVx0Ym9vbCBcJiMzNDtWZXJib3NlIGRlYnVnZ2luZyBvdXRwdXRcJiMzNDtcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjEzNDpcdGRlcGVuZHMgb24gTUFDODAyMTFfREVCVUdfTUVOVVxubmV0L21hYzgwMjExL0tjb25maWctMTM1LVx0aGVscFxuLS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnPTE0Mz1jb25maWcgTUFDODAyMTFfTUxNRV9ERUJVR1xubmV0L21hYzgwMjExL0tjb25maWctMTQ0LVx0Ym9vbCBcJiMzNDtWZXJib3NlIG1hbmFnZWQgTUxNRSBvdXRwdXRcJiMzNDtcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjE0NTpcdGRlcGVuZHMgb24gTUFDODAyMTFfREVCVUdfTUVOVVxubmV0L21hYzgwMjExL0tjb25maWctMTQ2LVx0aGVscFxuLS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnPTE1ND1jb25maWcgTUFDODAyMTFfU1RBX0RFQlVHXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xNTUtXHRib29sIFwmIzM0O1ZlcmJvc2Ugc3RhdGlvbiBkZWJ1Z2dpbmdcJiMzNDtcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjE1NjpcdGRlcGVuZHMgb24gTUFDODAyMTFfREVCVUdfTUVOVVxubmV0L21hYzgwMjExL0tjb25maWctMTU3LVx0aGVscFxuLS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnPTE2Mz1jb25maWcgTUFDODAyMTFfSFRfREVCVUdcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTE2NC1cdGJvb2wgXCYjMzQ7VmVyYm9zZSBIVCBkZWJ1Z2dpbmdcJiMzNDtcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjE2NTpcdGRlcGVuZHMgb24gTUFDODAyMTFfREVCVUdfTUVOVVxubmV0L21hYzgwMjExL0tjb25maWctMTY2LVx0aGVscFxuLS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnPTE3NT1jb25maWcgTUFDODAyMTFfT0NCX0RFQlVHXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xNzYtXHRib29sIFwmIzM0O1ZlcmJvc2UgT0NCIGRlYnVnZ2luZ1wmIzM0O1xubmV0L21hYzgwMjExL0tjb25maWc6MTc3Olx0ZGVwZW5kcyBvbiBNQUM4MDIxMV9ERUJVR19NRU5VXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xNzgtXHRoZWxwXG4tLVxubmV0L21hYzgwMjExL0tjb25maWc9MTg2PWNvbmZpZyBNQUM4MDIxMV9JQlNTX0RFQlVHXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xODctXHRib29sIFwmIzM0O1ZlcmJvc2UgSUJTUyBkZWJ1Z2dpbmdcJiMzNDtcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjE4ODpcdGRlcGVuZHMgb24gTUFDODAyMTFfREVCVUdfTUVOVVxubmV0L21hYzgwMjExL0tjb25maWctMTg5LVx0aGVscFxuLS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnPTE5Nz1jb25maWcgTUFDODAyMTFfUFNfREVCVUdcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTE5OC1cdGJvb2wgXCYjMzQ7VmVyYm9zZSBwb3dlcnNhdmUgbW9kZSBkZWJ1Z2dpbmdcJiMzNDtcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjE5OTpcdGRlcGVuZHMgb24gTUFDODAyMTFfREVCVUdfTUVOVVxubmV0L21hYzgwMjExL0tjb25maWctMjAwLVx0aGVscFxuLS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnPTIwOT1jb25maWcgTUFDODAyMTFfTVBMX0RFQlVHXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yMTAtXHRib29sIFwmIzM0O1ZlcmJvc2UgbWVzaCBwZWVyIGxpbmsgZGVidWdnaW5nXCYjMzQ7XG5uZXQvbWFjODAyMTEvS2NvbmZpZzoyMTE6XHRkZXBlbmRzIG9uIE1BQzgwMjExX0RFQlVHX01FTlVcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjIxMjpcdGRlcGVuZHMgb24gTUFDODAyMTFfTUVTSFxubmV0L21hYzgwMjExL0tjb25maWctMjEzLVx0aGVscFxuLS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnPTIyMj1jb25maWcgTUFDODAyMTFfTVBBVEhfREVCVUdcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTIyMy1cdGJvb2wgXCYjMzQ7VmVyYm9zZSBtZXNoIHBhdGggZGVidWdnaW5nXCYjMzQ7XG5uZXQvbWFjODAyMTEvS2NvbmZpZzoyMjQ6XHRkZXBlbmRzIG9uIE1BQzgwMjExX0RFQlVHX01FTlVcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjIyNTpcdGRlcGVuZHMgb24gTUFDODAyMTFfTUVTSFxubmV0L21hYzgwMjExL0tjb25maWctMjI2LVx0aGVscFxuLS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnPTIzNT1jb25maWcgTUFDODAyMTFfTUhXTVBfREVCVUdcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTIzNi1cdGJvb2wgXCYjMzQ7VmVyYm9zZSBtZXNoIEhXTVAgcm91dGluZyBkZWJ1Z2dpbmdcJiMzNDtcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjIzNzpcdGRlcGVuZHMgb24gTUFDODAyMTFfREVCVUdfTUVOVVxubmV0L21hYzgwMjExL0tjb25maWc6MjM4Olx0ZGVwZW5kcyBvbiBNQUM4MDIxMV9NRVNIXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yMzktXHRoZWxwXG4tLVxubmV0L21hYzgwMjExL0tjb25maWc9MjQ4PWNvbmZpZyBNQUM4MDIxMV9NRVNIX1NZTkNfREVCVUdcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTI0OS1cdGJvb2wgXCYjMzQ7VmVyYm9zZSBtZXNoIHN5bmNocm9uaXphdGlvbiBkZWJ1Z2dpbmdcJiMzNDtcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjI1MDpcdGRlcGVuZHMgb24gTUFDODAyMTFfREVCVUdfTUVOVVxubmV0L21hYzgwMjExL0tjb25maWc6MjUxOlx0ZGVwZW5kcyBvbiBNQUM4MDIxMV9NRVNIXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yNTItXHRoZWxwXG4tLVxubmV0L21hYzgwMjExL0tjb25maWc9MjU5PWNvbmZpZyBNQUM4MDIxMV9NRVNIX0NTQV9ERUJVR1xubmV0L21hYzgwMjExL0tjb25maWctMjYwLVx0Ym9vbCBcJiMzNDtWZXJib3NlIG1lc2ggY2hhbm5lbCBzd2l0Y2ggZGVidWdnaW5nXCYjMzQ7XG5uZXQvbWFjODAyMTEvS2NvbmZpZzoyNjE6XHRkZXBlbmRzIG9uIE1BQzgwMjExX0RFQlVHX01FTlVcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjI2MjpcdGRlcGVuZHMgb24gTUFDODAyMTFfTUVTSFxubmV0L21hYzgwMjExL0tjb25maWctMjYzLVx0aGVscFxuLS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnPTI3MD1jb25maWcgTUFDODAyMTFfTUVTSF9QU19ERUJVR1xubmV0L21hYzgwMjExL0tjb25maWctMjcxLVx0Ym9vbCBcJiMzNDtWZXJib3NlIG1lc2ggcG93ZXJzYXZlIGRlYnVnZ2luZ1wmIzM0O1xubmV0L21hYzgwMjExL0tjb25maWc6MjcyOlx0ZGVwZW5kcyBvbiBNQUM4MDIxMV9ERUJVR19NRU5VXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoyNzM6XHRkZXBlbmRzIG9uIE1BQzgwMjExX01FU0hcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTI3NC1cdGhlbHBcbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZz0yODE9Y29uZmlnIE1BQzgwMjExX1RETFNfREVCVUdcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTI4Mi1cdGJvb2wgXCYjMzQ7VmVyYm9zZSBURExTIGRlYnVnZ2luZ1wmIzM0O1xubmV0L21hYzgwMjExL0tjb25maWc6MjgzOlx0ZGVwZW5kcyBvbiBNQUM4MDIxMV9ERUJVR19NRU5VXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yODQtXHRoZWxwXG4tLVxubmV0L21hYzgwMjExL0tjb25maWc9MjkzPWNvbmZpZyBNQUM4MDIxMV9ERUJVR19DT1VOVEVSU1xubmV0L21hYzgwMjExL0tjb25maWctMjk0LVx0Ym9vbCBcJiMzNDtFeHRyYSBzdGF0aXN0aWNzIGZvciBUWC9SWCBkZWJ1Z2dpbmdcJiMzNDtcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjI5NTpcdGRlcGVuZHMgb24gTUFDODAyMTFfREVCVUdfTUVOVVxubmV0L21hYzgwMjExL0tjb25maWc6Mjk2Olx0ZGVwZW5kcyBvbiBNQUM4MDIxMV9ERUJVR0ZTXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yOTctXHRoZWxwXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzI0IDAxOjE2PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDEwNzEyCgkJCQkJCQlvdXRwdXQ6IDM5CgkJCQkJCQl0aG91Z2h0czogMTUwCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKk15IEluaXRpYWwgVGhvdWdodHMgb24gTUFDODAyMTEgYW5kIENGRzgwMjExIENvbmZpZ3VyYXRpb24qKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IGVuYWJsaW5nIGBNQUM4MDIxMWAuIFJpZ2h0LCBpdCByZWxpZXMgb24gYENGRzgwMjExYCwgdGhhdCBtdWNoIGlzIG9idmlvdXMuIFRoZXJlZm9yZSwgYSBnb29kIGZpcnN0IHN0ZXAgaXMgdG8gZW5zdXJlIGJvdGggYE1BQzgwMjExYCBhbmQgYENGRzgwMjExYCBhcmUgZW5hYmxlZCB3aXRoaW4gdGhlIGtlcm5lbCBjb25maWd1cmF0aW9uLiBJdCYjMzk7cyBhIGRlcGVuZGVuY3ksIHNvIGl0JiMzOTtzIGEgbm8tYnJhaW5lci4KCk5vdywgd2FpdCBhIHNlY29uZC4gSSByZW1lbWJlciBzZWVpbmcgdGhpcyBwYXRjaOKApiAqYWhhKiwgaXQmIzM5O3MgaW4gYG5ldC9tYWM4MDIxMS9jZmcuY2AuIEkgbmVlZCB0byBkZWx2ZSBhIGJpdCBkZWVwZXIgYW5kIHNlZSB3aGF0JiMzOTtzIHdoYXQuIEkgc2VlIHRoYXQgdGhlIGBpZWVlODAyMTFfc2V0X21vbl9vcHRpb25zYCBmdW5jdGlvbiBpcyByZWxldmFudCBoZXJlOyBpdCYjMzk7cyBiZWluZyBjYWxsZWQgZnJvbSBib3RoIGBpZWVlODAyMTFfYWRkX2lmYWNlYCBhbmQgYGllZWU4MDIxMV9jaGFuZ2VfaWZhY2VgLiBUaGF0IGdpdmVzIG1lIGEgZmV3IHN0YXJ0aW5nIHBvaW50cyB0byB1bmRlcnN0YW5kIGhvdyB0aGlzIGlzIHVzZWQgd2l0aGluIHRoZSBzeXN0ZW0uIEFyZSB0aGVyZSBhbnkgb3RoZXIgY3JpdGljYWwgZnVuY3Rpb25zIEkgc2hvdWxkIGJlIGF3YXJlIG9mPyBJJiMzOTtsbCBxdWlja2x5IGxvb2ssIEkgc2VlIHRoYXQgYG1hYzgwMjExX2NvbmZpZ19vcHNgIGlzIHVzZWQgaW4gYG5ldC9tYWM4MDIxMS9tYWluLmNgLiBUaGF0IHdhcnJhbnRzIGEgY2xvc2VyIGxvb2sgYXMgd2VsbC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjQgMDE6MTY8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7bWFjODAyMTFfY29uZmlnX29wcyYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O25ldC9tYWM4MDIxMS8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7bmV0L21hYzgwMjExL2NmZy5jPTU1ODU9aWVlZTgwMjExX3NldF9lcGNzKHN0cnVjdCB3aXBoeSAqd2lwaHksIHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIGJvb2wgZW5hYmxlKVxuLS1cbm5ldC9tYWM4MDIxMS9jZmcuYy01NTkxLVxubmV0L21hYzgwMjExL2NmZy5jOjU1OTI6Y29uc3Qgc3RydWN0IGNmZzgwMjExX29wcyBtYWM4MDIxMV9jb25maWdfb3BzID0ge1xubmV0L21hYzgwMjExL2NmZy5jLTU1OTMtXHQuYWRkX3ZpcnR1YWxfaW50ZiA9IGllZWU4MDIxMV9hZGRfaWZhY2UsXG4tLVxubmV0L21hYzgwMjExL2llZWU4MDIxMV9pLmgtMzgtXG5uZXQvbWFjODAyMTEvaWVlZTgwMjExX2kuaDozOTpleHRlcm4gY29uc3Qgc3RydWN0IGNmZzgwMjExX29wcyBtYWM4MDIxMV9jb25maWdfb3BzO1xubmV0L21hYzgwMjExL2llZWU4MDIxMV9pLmgtNDAtXG4tLVxubmV0L21hYzgwMjExL21haW4uYz03OTE9c3RydWN0IGllZWU4MDIxMV9odyAqaWVlZTgwMjExX2FsbG9jX2h3X25tKHNpemVfdCBwcml2X2RhdGFfbGVuLFxuLS1cbm5ldC9tYWM4MDIxMS9tYWluLmMtODUwLVxubmV0L21hYzgwMjExL21haW4uYzo4NTE6XHR3aXBoeSA9IHdpcGh5X25ld19ubShcdTAwMjZtYWM4MDIxMV9jb25maWdfb3BzLCBwcml2X3NpemUsIHJlcXVlc3RlZF9uYW1lKTtcbm5ldC9tYWM4MDIxMS9tYWluLmMtODUyLVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE1LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yNCAwMToxNjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxMTU5NgoJCQkJCQkJb3V0cHV0OiA0NQoJCQkJCQkJdGhvdWdodHM6IDI0NAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBJbml0aWFsIFRob3VnaHRzIG9uIE1hYzgwMjExIEluaXRpYWxpemF0aW9uIGFuZCBJbnRlcmZhY2UgTWFuYWdlbWVudCoqCgpPa2F5LCBzbyBJJiMzOTttIHRyYWNpbmcgdGhlIGluaXRpYWxpemF0aW9uIHBhdGggZm9yIG1hYzgwMjExIGRyaXZlcnMuIEl0IGxvb2tzIGxpa2UgYHdpcGh5X25ld19ubWAgaXMgY2FsbGVkIHdpdGhpbiBgaWVlZTgwMjExX2FsbG9jX2h3X25tYCwgd2hpY2ggaW4gdHVybiBpcyBjYWxsZWQgYnkgYGllZWU4MDIxMV9hbGxvY19od2AuIFRoaXMgYGllZWU4MDIxMV9hbGxvY19od2AgZnVuY3Rpb24gYXBwZWFycyB0byBiZSB0aGUgY2VudHJhbCBwb2ludCBmb3IgaW5pdGlhbGl6aW5nIHRoZSBtYWM4MDIxMSBoYXJkd2FyZSBhYnN0cmFjdGlvbiBsYXllciwgcmlnaHQ/IEEga2V5IHN0YXJ0aW5nIHBvaW50LgoKTm93LCBmb2N1c2luZyBvbiBpbnRlcmZhY2UgbWFuYWdlbWVudCwgYGllZWU4MDIxMV9hZGRfaWZhY2VgIGFuZCBgaWVlZTgwMjExX2NoYW5nZV9pZmFjZWAganVtcCBvdXQgYXQgbWUgYXMgdGhlIGtleSBlbnRyeSBwb2ludHMuIFRoZXkgc2VlbSB0byBiZSB0aGUgcHJpbWFyeSBmdW5jdGlvbnMgcmVzcG9uc2libGUgZm9yIGFkZGluZyBhbmQgbW9kaWZ5aW5nIG5ldHdvcmsgaW50ZXJmYWNlcyB3aXRoaW4gdGhlIG1hYzgwMjExIGZyYW1ld29yay4gYGNmZzgwMjExYCB1c2VzIGBtYWM4MDIxMV9jb25maWdfb3BzYCB0byBjYWxsIHRoZXNlIGZ1bmN0aW9ucy4gVGhlcmVmb3JlLCB0aGVzZSBhcmUgZGVmaW5pdGVseSBnb29kIHBvaW50cyB0byBmb2N1cyBvbi4gVGhleSBzZWVtIGxpa2UgcHJpbWUgY2FuZGlkYXRlcyB0byB1bmRlcnN0YW5kIGhvdyBjaGFuZ2VzIGFyZSBhcHBsaWVkIGFuZCBob3cgbmV3IGRldmljZXMgYXJlIGNyZWF0ZWQuCgpJIGFsc28gc2F3IHRoYXQgYGllZWU4MDIxMV9zZXRfbW9uX29wdGlvbnNgIHdhcyBhIGZ1bmN0aW9uIG9mIGludGVyZXN0LCBhbmQgSSBoYWQgYSBiaXQgb2YgYSBtZW50YWwgaGljY3VwIOKAkyBpcyB0aGlzIGEgc3RhdGljIGZ1bmN0aW9uLCBhbmQgaXMgaXQgcG90ZW50aWFsbHkgaW5saW5lZD8gSSByZW1lbWJlciBpdCB3YXMgbW9kaWZpZWQuIFdoaWxlIHN0YXRpYyBmdW5jdGlvbnMgY2FuIHNvbWV0aW1lcyBiZSBzbWFsbCBhbmQgb3B0aW1pemVkIGF3YXkgYnkgdGhlIGNvbXBpbGVyLCBgaWVlZTgwMjExX3NldF9tb25fb3B0aW9uc2AgaXMgbm90IG5lY2Vzc2FyaWx5IHNtYWxsLiBJdCBtaWdodCBiZSBpbmxpbmVkLi4uIExldCYjMzk7cyBjaGVjayB0aGUgY29kZSB0byBiZSBzdXJlLiBJJiMzOTtsbCBuZWVkIHRvIGNvbmZpcm0gaWYgaXQmIzM5O3MgYWN0dWFsbHkgaW5saW5lZCBiZWZvcmUgSSBpbnZlc3QgbW9yZSB0aW1lIHRoZXJlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE2LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yNCAwMToxNjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtpZWVlODAyMTFfc2V0X21vbl9vcHRpb25zJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7bmV0L21hYzgwMjExL2NmZy5jJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O25ldC9tYWM4MDIxMS9jZmcuYz01MD1zdGF0aWMgdm9pZCBpZWVlODAyMTFfc2V0X211X21pbW9fZm9sbG93KHN0cnVjdCBpZWVlODAyMTFfc3ViX2lmX2RhdGEgKnNkYXRhLFxuLS1cbm5ldC9tYWM4MDIxMS9jZmcuYy05NS1cbm5ldC9tYWM4MDIxMS9jZmcuYzo5NjpzdGF0aWMgaW50IGllZWU4MDIxMV9zZXRfbW9uX29wdGlvbnMoc3RydWN0IGllZWU4MDIxMV9zdWJfaWZfZGF0YSAqc2RhdGEsXG5uZXQvbWFjODAyMTEvY2ZnLmMtOTctXHRcdFx0XHQgICAgIHN0cnVjdCB2aWZfcGFyYW1zICpwYXJhbXMpXG4tLVxubmV0L21hYzgwMjExL2NmZy5jPTIxNT1zdGF0aWMgc3RydWN0IHdpcmVsZXNzX2RldiAqaWVlZTgwMjExX2FkZF9pZmFjZShzdHJ1Y3Qgd2lwaHkgKndpcGh5LFxuLS1cbm5ldC9tYWM4MDIxMS9jZmcuYy0yMzItXHRpZiAodHlwZSA9PSBOTDgwMjExX0lGVFlQRV9NT05JVE9SKSB7XG5uZXQvbWFjODAyMTEvY2ZnLmM6MjMzOlx0XHRlcnIgPSBpZWVlODAyMTFfc2V0X21vbl9vcHRpb25zKHNkYXRhLCBwYXJhbXMpO1xubmV0L21hYzgwMjExL2NmZy5jLTIzNC1cdFx0aWYgKGVycikge1xuLS1cbm5ldC9tYWM4MDIxMS9jZmcuYz0yNjg9c3RhdGljIGludCBpZWVlODAyMTFfY2hhbmdlX2lmYWNlKHN0cnVjdCB3aXBoeSAqd2lwaHksXG4tLVxubmV0L21hYzgwMjExL2NmZy5jLTMxMC1cdGlmIChzZGF0YS1cdTAwM2V2aWYudHlwZSA9PSBOTDgwMjExX0lGVFlQRV9NT05JVE9SKSB7XG5uZXQvbWFjODAyMTEvY2ZnLmM6MzExOlx0XHRyZXQgPSBpZWVlODAyMTFfc2V0X21vbl9vcHRpb25zKHNkYXRhLCBwYXJhbXMpO1xubmV0L21hYzgwMjExL2NmZy5jLTMxMi1cdFx0aWYgKHJldClcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNy8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjQgMDE6MTY8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTI3MjQKCQkJCQkJCW91dHB1dDogMzcKCQkJCQkJCXRob3VnaHRzOiAxMjcKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqRm9jdXNpbmcgb24gSW50ZXJmYWNlIENvbmZpZ3VyYXRpb24qKgoKT2theSwgc28gSSYjMzk7bSBnb2luZyB0byBmbGFnIGBpZWVlODAyMTFfYWRkX2lmYWNlYCBhbmQgYGllZWU4MDIxMV9jaGFuZ2VfaWZhY2VgIGFzIHRoZSBrZXkgRm9jdXNTeW1ib2xzIGhlcmUuIFRoZXNlIGFyZSB0aGUgZnVuY3Rpb25zIGRpcmVjdGx5IHJlbGF0ZWQgdG8gYWRkaW5nIGFuZCBtb2RpZnlpbmcgd2lyZWxlc3MgaW50ZXJmYWNlcywgd2hpY2ggaXMgd2hhdCBJJiMzOTttIGludGVyZXN0ZWQgaW4gZXhwbG9yaW5nLiBUaGUgcmVsZXZhbnQgY29uZmlndXJhdGlvbnMgSSYjMzk7bSB3b3JraW5nIHdpdGggYXJlIGBNQUM4MDIxMWAgYW5kIGBDRkc4MDIxMWAuCgpOb3csIGEgcXVpY2sgY2hlY2suLi4gSSBuZWVkIHRvIGNvbnNpZGVyIHdoZXRoZXIgYE1BQzgwMjExYCBpcyBldmVuIHJlYWNoYWJsZSBpbiB0aGUgdmlydHVhbGl6ZWQgdGVzdGluZyBlbnZpcm9ubWVudCBJJiMzOTttIGxpa2VseSB1c2luZy4gQWgsIHJpZ2h0ISBgbWFjODAyMTFfaHdzaW1gLiBUaGF0JiMzOTtzIHRoZSBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSBkcml2ZXIgZm9yIG1hYzgwMjExLiBQZXJmZWN0LCBpdCBzaG91bGQgYmUgZmluZS4gSSYjMzk7bGwgbmVlZCB0byBkb3VibGUgY2hlY2sgdGhhdCBgTUFDODAyMTFfSFdTSU1gIGlzIGRlZmluZWQgaW4gdGhlIGNvbmZpZ3VyYXRpb24sIHRob3VnaCwganVzdCB0byBiZSBhYnNvbHV0ZWx5IHN1cmUuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzI0IDAxOjE3PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2NvbmZpZyBNQUM4MDIxMV9IV1NJTSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy92aXJ0dWFsL0tjb25maWc6MTpjb25maWcgTUFDODAyMTFfSFdTSU1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3ZpcnR1YWwvS2NvbmZpZy0yLVx0dHJpc3RhdGUgXCYjMzQ7U2ltdWxhdGVkIHJhZGlvIHRlc3RpbmcgdG9vbCBmb3IgbWFjODAyMTFcJiMzNDtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xOS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjQgMDE6MTc8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTMxNzAKCQkJCQkJCW91dHB1dDogMzIKCQkJCQkJCXRob3VnaHRzOiA2MAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBDb25maWd1cmF0aW9uIFN0cmF0ZWd5KioKCk9rYXksIHNvIEkmIzM5O3ZlIGlkZW50aWZpZWQgdGhhdCBgTUFDODAyMTFfSFdTSU1gIGlzIGluZGVlZCBhIGNvbmZpZ3VyYXRpb24gb3B0aW9uLiBUaGF0JiMzOTtzIHN0cmFpZ2h0Zm9yd2FyZCBlbm91Z2guIE15IGZpcnN0IHN0ZXAgaXMgdG8gYWRkIGl0IGRpcmVjdGx5IHRvIG15IEVuYWJsZUNvbmZpZ3MgbGlzdC4gSXTigJlzIGltcG9ydGFudCB0byBrZWVwIHRyYWNrIG9mIHRoZXNlIHRoaW5ncyBzbyBJIHJlbWVtYmVyIHdoYXQgSeKAmXZlIGVuYWJsZWQgbGF0ZXIuCgpOb3csIGJlZm9yZSBJIHByb2NlZWQgZnVydGhlciwgSSB3YW50IHRvIGNvbmZpcm0gdGhhdCB0aGVyZSBhcmVuJiMzOTt0IGFueSBkZXBlbmRlbmNpZXMgYXNzb2NpYXRlZCB3aXRoIGBNQUM4MDIxMV9IV1NJTWAuIEkgbmVlZCB0byBlbnN1cmUgaXQgZG9lc24mIzM5O3QgcmVseSBvbiBhbnkgb3RoZXIgY29uZmlndXJhdGlvbnMgb3IgcGFja2FnZXMgdGhhdCBJIG1pZ2h0IG5vdCBoYXZlIGFscmVhZHkgYWNjb3VudGVkIGZvci4gQXZvaWRpbmcgZGVwZW5kZW5jeSBjb25mbGljdHMgaXMgcGFyYW1vdW50IHRvIGEgc21vb3RoIGJ1aWxkLCBhZnRlciBhbGwuIExldCYjMzk7cyBzZWUgd2hhdCB0aGUgc3lzdGVtIHRlbGxzIG1lLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yNCAwMToxNzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtkZXBlbmRzIG9uJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvdmlydHVhbC9LY29uZmlnJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL3ZpcnR1YWwvS2NvbmZpZz0xPWNvbmZpZyBNQUM4MDIxMV9IV1NJTVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvdmlydHVhbC9LY29uZmlnLTItXHR0cmlzdGF0ZSBcJiMzNDtTaW11bGF0ZWQgcmFkaW8gdGVzdGluZyB0b29sIGZvciBtYWM4MDIxMVwmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvdmlydHVhbC9LY29uZmlnOjM6XHRkZXBlbmRzIG9uIE1BQzgwMjExXG5kcml2ZXJzL25ldC93aXJlbGVzcy92aXJ0dWFsL0tjb25maWctNC1cdGhlbHBcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy92aXJ0dWFsL0tjb25maWc9MTQ9Y29uZmlnIFZJUlRfV0lGSVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvdmlydHVhbC9LY29uZmlnLTE1LVx0dHJpc3RhdGUgXCYjMzQ7V2lmaSB3cmFwcGVyIGZvciBldGhlcm5ldCBkcml2ZXJzXCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy92aXJ0dWFsL0tjb25maWc6MTY6XHRkZXBlbmRzIG9uIENGRzgwMjExXG5kcml2ZXJzL25ldC93aXJlbGVzcy92aXJ0dWFsL0tjb25maWctMTctXHRoZWxwXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjEvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzI0IDAxOjE3PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDEzNjE0CgkJCQkJCQlvdXRwdXQ6IDE5NAoJCQkJCQkJdGhvdWdodHM6IDQ1NQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBBc3Nlc3NtZW50IG9mIHRoZSBQYXRjaCoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCBhbmQgaW1tZWRpYXRlbHkgc2VlIHRoYXQgaXQmIzM5O3MgYWRkcmVzc2luZyBhIHBvdGVudGlhbCBOVUxMIHBvaW50ZXIgZGVyZWZlcmVuY2Ugd2l0aGluIHRoZSBgbWFjODAyMTFgIGNvcmUuIEl0IHNlZW1zIHRvIGJlIHRyaWdnZXJlZCB3aGVuIHRyeWluZyB0byBzZXQgbW9uaXRvciBvcHRpb25zLCBzcGVjaWZpY2FsbHkgZm9yIGFuIGFjdGl2ZSBtb25pdG9yIGludGVyZmFjZSB0aGF0IGxhY2tzIGEgVFggcXVldWUuIFRoaXMgaXMgaW4gdGhlIGBpZWVlODAyMTFfc2V0X21vbl9vcHRpb25zYCBmdW5jdGlvbi4gVGhlIHBhdGNoIGl0c2VsZiBpcyBzaW1wbGU7IGl0JiMzOTtzIGFkZGluZyBhIGNoZWNrIHRvIHByZXZlbnQgdGhpcyBmcm9tIGhhcHBlbmluZy4KClRoaW5raW5nIGl0IHRocm91Z2gsIHRoZSByZWFjaGFiaWxpdHkgb2YgdGhpcyBjaGFuZ2Ugc2VlbXMgdG8gc3RlbSBmcm9tIGBubDgwMjExYCBuZXRsaW5rIGNvbW1hbmRzLCBsaWtlIGNyZWF0aW5nIGEgbmV3IHZpcnR1YWwgaW50ZXJmYWNlIChgTkw4MDIxMV9DTURfTkVXX0lOVEVSRkFDRWApIG9yIG1vZGlmeWluZyBhbiBleGlzdGluZyBvbmUgKGBOTDgwMjExX0NNRF9TRVRfSU5URVJGQUNFYCkuIFRoaXMgaXMgYSBrZXkgZGV0YWlsLCBpdCBzaG93cyBtZSB0aGUgYXZlbnVlcyBmb3IgdHJpZ2dlcmluZyB0aGUgdnVsbmVyYWJpbGl0eS4KCkdpdmVuIHRoaXMsIHRoZSBtb3N0IGRpcmVjdCBwYXRoIHRvIHRlc3RpbmcgdGhpcyB3aWxsIGJlIHRocm91Z2ggdGhvc2UgTmV0bGluayBpbnRlcmZhY2VzLiBUaGUgZ29vZCBuZXdzIGlzLCBJIGNhbiB0ZXN0IGl0IHVzaW5nIHRoZSBgbWFjODAyMTFfaHdzaW1gIGRyaXZlciwgd2hpY2ggaXMgZ3JlYXQgYmVjYXVzZSBpdCBhbGxvd3MgZm9yIGNvbnRyb2xsZWQgc29mdHdhcmUgZW11bGF0aW9uLiBJIHNob3VsZCBkZWZpbml0ZWx5IGVuYWJsZSBgQ0ZHODAyMTFgLCBgTUFDODAyMTFgLCBhbmQgYE1BQzgwMjExX0hXU0lNYCBpbiB0aGUgY29uZmlndXJhdGlvbiB0byBoYXZlIHRoZSBjb3JyZWN0IHRlc3RpbmcgZW52aXJvbm1lbnQuCgpUaGUga2V5IGZ1bmN0aW9ucyB0byBrZWVwIGluIG1pbmQsIGFuZCBwb3NzaWJseSBleGFtaW5lIGZ1cnRoZXIsIGFyZSBgaWVlZTgwMjExX2FkZF9pZmFjZWAgYW5kIGBpZWVlODAyMTFfY2hhbmdlX2lmYWNlYC4gVGhlc2UgYXJlIG15IGZvY3VzIHN5bWJvbHMgdG8gd2F0Y2ggaW4gdGhlIGNvZGUgYmFzZS4KCkluIHNob3J0LCB0aGlzIGlzIGEgZnVuY3Rpb25hbCBwYXRjaCB0aGF0IGNvdWxkIGJlIHN1YmplY3QgdG8gZnV6emluZy4gSSBuZWVkIHRvIG1ha2Ugc3VyZSBJIGFkZCB0aGUgcmlnaHQgY29uZmlnIG9wdGlvbnMgYW5kIHNldHVwIHRoZSB0ZXN0IGVudmlyb25tZW50IHRvIGZ1bGx5IGV4cGxvcmUgdGhlIHZ1bG5lcmFiaWxpdHksIGFuZCBlbnN1cmUgdGhlIGZpeCBpcyBjb3JyZWN0LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIyLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yNCAwMToxNzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7Q0ZHODAyMTEmIzM0OywKICAgICYjMzQ7TUFDODAyMTEmIzM0OywKICAgICYjMzQ7TUFDODAyMTFfSFdTSU0mIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtpZWVlODAyMTFfYWRkX2lmYWNlJiMzNDssCiAgICAmIzM0O2llZWU4MDIxMV9jaGFuZ2VfaWZhY2UmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggYWRkcyBhIGNoZWNrIGluIGBpZWVlODAyMTFfc2V0X21vbl9vcHRpb25zYCB0byBwcmV2ZW50IGEgTlVMTCBwb2ludGVyIGRlcmVmZXJlbmNlIHdoZW4gY29uZmlndXJpbmcgYW4gYWN0aXZlIG1vbml0b3IgaW50ZXJmYWNlIHdpdGhvdXQgYSBUWCBxdWV1ZS4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSBtYWM4MDIxMSBjb3JlIGxvZ2ljLCByZWFjaGFibGUgdmlhIHRoZSBubDgwMjExIG5ldGxpbmsgaW50ZXJmYWNlIChlLmcuLCB3aGVuIGFkZGluZyBvciBjaGFuZ2luZyBhIHZpcnR1YWwgaW50ZXJmYWNlKS4gSXQgY2FuIGJlIHRlc3RlZCB1c2luZyB0aGUgc29mdHdhcmUtZW11bGF0ZWQgYG1hYzgwMjExX2h3c2ltYCBkcml2ZXIuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0NGRzgwMjExJiMzNDssCiAgICAmIzM0O01BQzgwMjExJiMzNDssCiAgICAmIzM0O01BQzgwMjExX0hXU0lNJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7aWVlZTgwMjExX2FkZF9pZmFjZSYjMzQ7LAogICAgJiMzNDtpZWVlODAyMTFfY2hhbmdlX2lmYWNlJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGFkZHMgYSBjaGVjayBpbiBgaWVlZTgwMjExX3NldF9tb25fb3B0aW9uc2AgdG8gcHJldmVudCBhIE5VTEwgcG9pbnRlciBkZXJlZmVyZW5jZSB3aGVuIGNvbmZpZ3VyaW5nIGFuIGFjdGl2ZSBtb25pdG9yIGludGVyZmFjZSB3aXRob3V0IGEgVFggcXVldWUuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgbWFjODAyMTEgY29yZSBsb2dpYywgcmVhY2hhYmxlIHZpYSB0aGUgbmw4MDIxMSBuZXRsaW5rIGludGVyZmFjZSAoZS5nLiwgd2hlbiBhZGRpbmcgb3IgY2hhbmdpbmcgYSB2aXJ0dWFsIGludGVyZmFjZSkuIEl0IGNhbiBiZSB0ZXN0ZWQgdXNpbmcgdGhlIHNvZnR3YXJlLWVtdWxhdGVkIGBtYWM4MDIxMV9od3NpbWAgZHJpdmVyLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIzLzE8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yNCAwMToxNzwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+SWY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzI0IDAxOjE3PC90ZD4KCQkJPHRkPmFnZW50PC90ZD4KCQkJPHRkPmttc2FuLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmJlc3QtZXhwZW5zaXZlPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0tNU0FOUmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGFkZHMgYSB2YWxpZGF0aW9uIGNoZWNrIGluIGBpZWVlODAyMTFfc2V0X21vbl9vcHRpb25zYCB0byBwcmV2ZW50IHNldHRpbmcgdGhlIGBNT05JVE9SX0ZMQUdfQUNUSVZFYCBmbGFnIGlmIGBzZGF0YS1cdTAwM2V2aWYudHhxYCBpcyBOVUxMLiBUaGlzIHByZXZlbnRzIGEgcG90ZW50aWFsIE5VTEwgcG9pbnRlciBkZXJlZmVyZW5jZSBvciBpbnZhbGlkIHN0YXRlIHdoZW4gdGhlIGRyaXZlciBpcyBoYW5kZWQgYSBOVUxMIGB2aWYtXHUwMDNldHhxYC4gTlVMTCBwb2ludGVyIGRlcmVmZXJlbmNlcyBhbmQgaW52YWxpZCBzdGF0ZSBidWdzIGFyZSBjYXVnaHQgYnkgc3RhbmRhcmQga2VybmVsIGNoZWNrcyBhbmQgS0FTQU4uIFRoZSBwYXRjaCBkb2VzIG5vdCBpbnRyb2R1Y2Ugb3IgZXhwb3NlIGFueSB1bmluaXRpYWxpemVkIG1lbW9yeSByZWFkcyBvciBpbmZvLWxlYWtzLCBzbyBhIGRlZGljYXRlZCBLTVNBTiBmdXp6aW5nIHNlc3Npb24gaXMgbm90IG5lZWRlZC4mIzM0OywKICAmIzM0O05lZWRzS01TQU4mIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgc2VjdXJpdHkgZW5naW5lZXIgc3BlY2lhbGl6aW5nIGluIGtlcm5lbCBtZW1vcnkKZXJyb3IgZGV0ZWN0b3JzIChLQVNBTiBhbmQgS01TQU4pLiBZb3VyIGpvYiBpcyB0byByZXZpZXcgdGhlIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQKZGV0ZXJtaW5lIGlmIHRoZSBjb2RlIGNoYW5nZXMganVzdGlmeSBzcGF3bmluZyBhIGRlZGljYXRlZCBLTVNBTiAoS2VybmVsTWVtb3J5U2FuaXRpemVyKQpmdXp6aW5nIHNlc3Npb24gaW4gYWRkaXRpb24gdG8gc3RhbmRhcmQgS0FTQU4gZnV6emluZy4KCkNSSVRJQ0FMIERJU1RJTkNUSU9OIEJFVFdFRU4gS0FTQU4gQU5EIEtNU0FOOgotIFN0YW5kYXJkIEtBU0FOIGtlcm5lbCBidWlsZHMgKHVwc3RyZWFtLWFwcGFybW9yLWthc2FuLmNvbmZpZykgYWxyZWFkeSBlbmFibGUKICBhIGNvbXByZWhlbnNpdmUgc3VpdGUgb2YgZGVidWdnaW5nIHRvb2xzIGFuZCBzYW5pdGl6ZXJzLCBpbmNsdWRpbmcgS0FTQU4KICAob3V0LW9mLWJvdW5kcyBhY2Nlc3NlcywgdXNlLWFmdGVyLWZyZWUsIGRvdWJsZSBmcmVlLCBpbnZhbGlkIGZyZWUpLCBMT0NLREVQCiAgKGxvY2tpbmcgYnVncyBhbmQgZGVhZGxvY2tzKSwgVUItc2FuaXRpemVycywgYW5kIG1lbW9yeSBjb3JydXB0aW9uIGNoZWNrcy4KLSBLTVNBTiAoS2VybmVsTWVtb3J5U2FuaXRpemVyKSBkZXRlY3RzIHJlYWRzIG9mIFVOSU5JVElBTElaRUQgbWVtb3J5IChzdGFjaywgaGVhcCwKICBvciBwYWdlIGFsbG9jYXRpb25zKSBhbmQga2VybmVsLXRvLXVzZXIgbWVtb3J5IGluZm8tbGVha3MuCgpSdWxlOiBUSEVSRSBJUyBOTyBTRU5TRSBJTiBSVU5OSU5HIEEgS01TQU4gU0VTU0lPTiBJRiBBIEJVRyBDQU4gQkUgQ0FVR0hUIEJZIEtBU0FOLApMT0NLREVQLCBPUiBPVEhFUiBTVEFOREFSRCBCVUcgREVURUNUT1JTLgpBIGRlZGljYXRlZCBLTVNBTiBmdXp6aW5nIHNlc3Npb24gaW5jdXJzIHNpZ25pZmljYW50IHJlc291cmNlIGNvc3RzLiBZb3UgbXVzdCBPTkxZCnNldCBOZWVkc0tNU0FOPXRydWUgaWYgdGhlIGNvZGUgY2hhbmdlcyBpbnRyb2R1Y2Ugb3IgZXhwb3NlIFVOSU5JVElBTElaRUQgTUVNT1JZIHJpc2tzCnRoYXQgYXJlIGRldGVjdGVkIE9OTFkgYnkgS01TQU4uCgpMb29rIGhvbGlzdGljYWxseSBhdCB0aGUgcGF0Y2ggc2VyaWVzIGFuZCBzdXJyb3VuZGluZyBjb2RlLiBFdmVuIGlmIG5vIGRpcmVjdAp1bmluaXRpYWxpemVkIGZpZWxkIGFjY2Vzc2VzIG9yIG5ldyBidWZmZXIgYWxsb2NhdGlvbnMgYXJlIGFkZGVkIGluIHRoZSBkaWZmIGl0c2VsZiwKYSBwYXRjaCBtYXkgYWx0ZXIgY29udHJvbCBmbG93LCBib3VuZHMgY2hlY2tpbmcsIG9yIGRhdGEgbGVuZ3RoIGNhbGN1bGF0aW9ucyBpbiB3YXlzCnRoYXQgY2hhbmdlIGhvdyB0aGUgcmVzdCBvZiB0aGUgY29kZSBvcGVyYXRlcyBvbiBleGlzdGluZyBidWZmZXJzIChlLmcuIGFsbG93aW5nCnVuaW5pdGlhbGl6ZWQgc3RhY2svaGVhcCBtZW1vcnkgdG8gYmUgcmVhZCwgY29waWVkIHRvIHVzZXIgc3BhY2UsIG9yIHVzZWQgaW4gY29udHJvbApmbG93KS4gRG8gbm90IGhlc2l0YXRlIHRvIHVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGluc3BlY3QgdGhlIHN1cnJvdW5kaW5nIGNvZGUsCmNhbGxlZCBmdW5jdGlvbnMsIGFuZCBjYWxsZXJzLgoKU2V0IE5lZWRzS01TQU49dHJ1ZSBPTkxZIElGIHRoZSBwYXRjaCBpbnRyb2R1Y2VzIG9yIG1vZGlmaWVzOgoxLiBLZXJuZWwgc3RydWN0dXJlcyBzZW50IHRvIHVzZXIgc3BhY2UgKHZpYSBjb3B5X3RvX3VzZXIsIHB1dF91c2VyLCBuZXRsaW5rIHNrYgogICBhdHRyaWJ1dGVzLCBpb2N0bCBvdXRwdXQgYXJndW1lbnRzLCBzb2NrZXQgb3B0aW9ucywgb3IgQlBGIGJ1ZmZlcnMpIHdoZXJlIGZpZWxkcwogICBvciBzdHJ1Y3R1cmUgcGFkZGluZyBtaWdodCBub3QgYmUgZnVsbHkgaW5pdGlhbGl6ZWQvemVyb2VkLgoyLiBDb25kaXRpb25hbCBsb2dpYyBvciBicmFuY2hpbmcgdGhhdCBkZXBlbmRzIG9uIHBvdGVudGlhbGx5IHVuaW5pdGlhbGl6ZWQgdmFyaWFibGVzCiAgIG9yIHN0cnVjdCBmaWVsZHMuCjMuIEFsbG9jYXRpb24gb3IgaW5pdGlhbGl6YXRpb24gb2YgY29tcGxleCBkYXRhIHN0cnVjdHVyZXMgd2hlcmUgdW5pbml0aWFsaXplZCBmaWVsZHMKICAgY291bGQgYmUgcmVhZCBsYXRlciBpbiByZWFjaGFibGUgY29kZSBwYXRocy4KNC4gQm91bmRzIGNoZWNrcywgbGVuZ3Rocywgb3IgbG9naWMgaW4gYSB3YXkgdGhhdCBhbGxvd3Mgc3Vycm91bmRpbmcgY29kZSB0byBhY2Nlc3MKICAgdW5pbml0aWFsaXplZCBieXRlcyBvZiBleGlzdGluZyBidWZmZXJzLgoKU2V0IE5lZWRzS01TQU49ZmFsc2UgSUY6Ci0gVGhlIGNvZGUgY2hhbmdlcyBwcmltYXJpbHkgcmlzayBvdXQtb2YtYm91bmRzIGFjY2VzcywgYXJyYXkgb3ZlcmZsb3dzLCBOVUxMIHBvaW50ZXIKICBkZXJlZmVyZW5jZXMsIGxvY2tpbmcgZGVhZGxvY2tzLCBvciB1c2UtYWZ0ZXItZnJlZSBidWdzICh0aGVzZSBhcmUgYWxyZWFkeSBjYXVnaHQKICBieSBLQVNBTiwgTE9DS0RFUCwgb3Igc3RhbmRhcmQgYnVnIGRldGVjdG9ycykuCi0gQWxsIHN0YWNrL2hlYXAgc3RydWN0dXJlcyB0b3VjaGVkIG9yIGludHJvZHVjZWQgYnkgdGhlIHBhdGNoIGFyZSBmdWxseSB6ZXJvZWQKICBvciBpbml0aWFsaXplZCAoZS5nLiB1c2luZyA9IHswfSwgbWVtc2V0LCBremFsbG9jKSBiZWZvcmUgYmVpbmcgcmVhZCBvciBjb3BpZWQuCi0gVGhlIHBhdGNoIGRvZXMgbm90IGludHJvZHVjZSBhbnkgcmlzayBvZiB1bmluaXRpYWxpemVkIG1lbW9yeSB1c2FnZSBvciBpbmZvLWxlYWtzLgoKVXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gaW5zcGVjdCB0aGUgc3Vycm91bmRpbmcgY29kZSBpZiBuZWNlc3NhcnksIHRoZW4gcHJvdmlkZQpkZXRhaWxlZCBLTVNBTlJlYXNvbmluZyBjb250cmFzdGluZyBLQVNBTiB2cyBLTVNBTiBhcHBsaWNhYmlsaXR5IGZvciB0aGlzIHBhdGNoLgpQcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy4KCgpVc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLgpJdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS4KSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlByb21wdDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOgpjb21taXQgYTYxN2M2NzdkNDM3YTVmZDVjMTg0NTcxMjhkZjkyMThlNzE0YzMxZQpBdXRob3I6IHN5ei1jbHVzdGVyICZsdDt0cmlhZ2VAc3l6a2FsbGVyLmNvbSZndDsKRGF0ZTogICBNb24gQXVnIDI0IDAxOjE2OjIyIDIwMjYgJiM0MzswMDAwCgogICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3CgpkaWZmIC0tZ2l0IGEvbmV0L21hYzgwMjExL2NmZy5jIGIvbmV0L21hYzgwMjExL2NmZy5jCmluZGV4IGI2MTYzZGNjN2U5MmMuLjUyM2NlZjBhNTUyNjEgMTAwNjQ0Ci0tLSBhL25ldC9tYWM4MDIxMS9jZmcuYwomIzQzOyYjNDM7JiM0MzsgYi9uZXQvbWFjODAyMTEvY2ZnLmMKQEAgLTExNSw2ICYjNDM7MTE1LDE1IEBAIHN0YXRpYyBpbnQgaWVlZTgwMjExX3NldF9tb25fb3B0aW9ucyhzdHJ1Y3QgaWVlZTgwMjExX3N1Yl9pZl9kYXRhICpzZGF0YSwKIAkJCXJldHVybiAtRUJVU1k7CiAJfQogCiYjNDM7CS8qCiYjNDM7CSAqIEFuIGFjdGl2ZSBtb25pdG9yIGlzIHBhc3NlZCB0byB0aGUgZHJpdmVyIGFuZCBuZWVkcyBhIFRYUSwgd2hpY2ggaXMKJiM0MzsJICogcmVzZXJ2ZWQgd2l0aCB0aGUgbmV0ZGV2IGluIGllZWU4MDIxMV9pZl9hZGQoKSBhbmQgY2Fubm90IGJlIGFkZGVkCiYjNDM7CSAqIGxhdGVyLiAgQW4gaW50ZXJmYWNlIGNyZWF0ZWQgd2l0aG91dCB0aGUgZmxhZyBoYXMgbm9uZSwgc28gcmVmdXNlIHRvCiYjNDM7CSAqIHNldCBpdCByYXRoZXIgdGhhbiBoYW5kIHRoZSBkcml2ZXIgYSBOVUxMIHZpZi0mZ3Q7dHhxLgomIzQzOwkgKi8KJiM0MzsJaWYgKChwYXJhbXMtJmd0O2ZsYWdzICZhbXA7IE1PTklUT1JfRkxBR19BQ1RJVkUpICZhbXA7JmFtcDsgIXNkYXRhLSZndDt2aWYudHhxKQomIzQzOwkJcmV0dXJuIC1FT1BOT1RTVVBQOwomIzQzOwogCS8qIHZhbGlkYXRlIHdoZXRoZXIgTVUtTUlNTyBjYW4gYmUgY29uZmlndXJlZCAqLwogCWlmICghaWVlZTgwMjExX2h3X2NoZWNrKCZhbXA7bG9jYWwtJmd0O2h3LCBXQU5UX01PTklUT1JfVklGKSAmYW1wOyZhbXA7CiAJICAgICFpZWVlODAyMTFfaHdfY2hlY2soJmFtcDtsb2NhbC0mZ3Q7aHcsIE5PX1ZJUlRVQUxfTU9OSVRPUikgJmFtcDsmYW1wOwo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yNS8zPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjQgMDE6MTc8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPmttc2FuLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjE0NQoJCQkJCQkJb3V0cHV0OiAxNDkKCQkJCQkJCXRob3VnaHRzOiAyNTkKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqTXkgQXNzZXNzbWVudCBvZiB0aGUgUGF0Y2gqKgoKT2theSwgc28gdGhpcyBwYXRjaCBpbiBgbmV0L21hYzgwMjExL2NmZy5jYCBpcyBzdHJhaWdodGZvcndhcmQuIEl0JiMzOTtzIGluIGBpZWVlODAyMTFfc2V0X21vbl9vcHRpb25zYCwgd2hpY2ggSSByZWNvZ25pemUgYXMgYSBjb25maWd1cmF0aW9uIGZ1bmN0aW9uLiBUaGUgZ2lzdCBvZiBpdCBpcyB0aGlzOiB0aGV5JiMzOTtyZSBhZGRpbmcgYSBjaGVjay4gSWYgd2UgaGF2ZSB0aGUgYE1PTklUT1JfRkxBR19BQ1RJVkVgIGZsYWcgc2V0IGFuZCwgY3J1Y2lhbGx5LCB0aGUgYXNzb2NpYXRlZCBgdHhxYCBmb3IgdGhlIHZpcnR1YWwgaW50ZXJmYWNlIChgc2RhdGEtJmd0O3ZpZi50eHFgKSBpcyBOVUxMLCB0aGUgZnVuY3Rpb24gbm93IHJldHVybnMgYC1FT1BOT1RTVVBQYC4KClRoaXMgaW1tZWRpYXRlbHkgdGVsbHMgbWUgdGhleSYjMzk7cmUgdHJ5aW5nIHRvIHByZXZlbnQgYSBOVUxMIHBvaW50ZXIgZGVyZWZlcmVuY2Ugb3IgYSBzaW1pbGFyIG1lbW9yeSBhY2Nlc3MgaXNzdWUuIEVzc2VudGlhbGx5LCB0aGUgY29kZSB3YXMgdnVsbmVyYWJsZSBpZiBzb21lb25lIHRyaWVkIHRvIGVuYWJsZSBhY3RpdmUgbW9uaXRvciBtb2RlIHdpdGhvdXQgYSB2YWxpZCB0cmFuc21pdCBxdWV1ZS4gS0FTQU4gb3IgdGhlIGtlcm5lbCYjMzk7cyBub3JtYWwgY2hlY2tzIHdvdWxkIGxpa2VseSBoYXZlIGNhdWdodCBpdCBldmVudHVhbGx5LCBidXQgdGhpcyBwcm9hY3RpdmVseSBwcmV2ZW50cyBpdC4gSXTigJlzIGEgZ29vZCBkZWZlbnNpdmUgcHJvZ3JhbW1pbmcgcHJhY3RpY2UuCgpJIHF1aWNrbHkgbG9va2VkIGF0IHRoZSBzdXJyb3VuZGluZyBjb2RlIHRvIGNvbmZpcm0gbXkgdW5kZXJzdGFuZGluZy4gVGhlIGNvZGUgc25pcHBldCBhZGRlZCBpcyBjbGVhbiwgYW5kIHRoZSBjaGVjayBpdHNlbGYgaXMgc2ltcGxlIGFuZCBkaXJlY3QuIFRoZSBnb29kIG5ld3MgaXMsIHRoZXJlJiMzOTtzIG5vIG9idmlvdXMgcmlzayBvZiB1bmluaXRpYWxpemVkIG1lbW9yeSB1c2FnZSBvciBhbnkgbmV3IGluZm9ybWF0aW9uIGxlYWtzIGludHJvZHVjZWQgYnkgdGhpcyB2YWxpZGF0aW9uLiBJdCYjMzk7cyBqdXN0IGEgc2FmZWd1YXJkIGFnYWluc3QgYSBzcGVjaWZpYywgbGlrZWx5IHVuY29tbW9uLCBzY2VuYXJpby4gVGhlIGBOZWVkc0tNU0FOYCBmbGFnIGlzIGNvcnJlY3RseSBzZXQgdG8gZmFsc2UsIGFzIHRoZSBwYXRjaCBkb2VzbiYjMzk7dCBpbnZvbHZlIGNvbXBsZXggbWVtb3J5IG1hbmFnZW1lbnQgY2hhbmdlcy4gT3ZlcmFsbCwgdGhpcyBwYXRjaCBzZWVtcyBsaWtlIGEgc2Vuc2libGUgYW5kIGxvdy1yaXNrIGltcHJvdmVtZW50LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjI2LzM8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yNCAwMToxNzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtLTVNBTlJlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBhZGRzIGEgdmFsaWRhdGlvbiBjaGVjayBpbiBgaWVlZTgwMjExX3NldF9tb25fb3B0aW9uc2AgdG8gcHJldmVudCBzZXR0aW5nIHRoZSBgTU9OSVRPUl9GTEFHX0FDVElWRWAgZmxhZyBpZiBgc2RhdGEtXHUwMDNldmlmLnR4cWAgaXMgTlVMTC4gVGhpcyBwcmV2ZW50cyBhIHBvdGVudGlhbCBOVUxMIHBvaW50ZXIgZGVyZWZlcmVuY2Ugb3IgaW52YWxpZCBzdGF0ZSB3aGVuIHRoZSBkcml2ZXIgaXMgaGFuZGVkIGEgTlVMTCBgdmlmLVx1MDAzZXR4cWAuIE5VTEwgcG9pbnRlciBkZXJlZmVyZW5jZXMgYW5kIGludmFsaWQgc3RhdGUgYnVncyBhcmUgY2F1Z2h0IGJ5IHN0YW5kYXJkIGtlcm5lbCBjaGVja3MgYW5kIEtBU0FOLiBUaGUgcGF0Y2ggZG9lcyBub3QgaW50cm9kdWNlIG9yIGV4cG9zZSBhbnkgdW5pbml0aWFsaXplZCBtZW1vcnkgcmVhZHMgb3IgaW5mby1sZWFrcywgc28gYSBkZWRpY2F0ZWQgS01TQU4gZnV6emluZyBzZXNzaW9uIGlzIG5vdCBuZWVkZWQuJiMzNDssCiAgJiMzNDtOZWVkc0tNU0FOJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtLTVNBTlJlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBhZGRzIGEgdmFsaWRhdGlvbiBjaGVjayBpbiBgaWVlZTgwMjExX3NldF9tb25fb3B0aW9uc2AgdG8gcHJldmVudCBzZXR0aW5nIHRoZSBgTU9OSVRPUl9GTEFHX0FDVElWRWAgZmxhZyBpZiBgc2RhdGEtXHUwMDNldmlmLnR4cWAgaXMgTlVMTC4gVGhpcyBwcmV2ZW50cyBhIHBvdGVudGlhbCBOVUxMIHBvaW50ZXIgZGVyZWZlcmVuY2Ugb3IgaW52YWxpZCBzdGF0ZSB3aGVuIHRoZSBkcml2ZXIgaXMgaGFuZGVkIGEgTlVMTCBgdmlmLVx1MDAzZXR4cWAuIE5VTEwgcG9pbnRlciBkZXJlZmVyZW5jZXMgYW5kIGludmFsaWQgc3RhdGUgYnVncyBhcmUgY2F1Z2h0IGJ5IHN0YW5kYXJkIGtlcm5lbCBjaGVja3MgYW5kIEtBU0FOLiBUaGUgcGF0Y2ggZG9lcyBub3QgaW50cm9kdWNlIG9yIGV4cG9zZSBhbnkgdW5pbml0aWFsaXplZCBtZW1vcnkgcmVhZHMgb3IgaW5mby1sZWFrcywgc28gYSBkZWRpY2F0ZWQgS01TQU4gZnV6emluZyBzZXNzaW9uIGlzIG5vdCBuZWVkZWQuJiMzNDssCiAgJiMzNDtOZWVkc0tNU0FOJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI0VDAxOjE2OjIyLjg1ODYxOTc3OVoiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjU5OTU5MTM2NDgwLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIkNGRzgwMjExXCIsXG4gICAgXCJNQUM4MDIxMVwiLFxuICAgIFwiTUFDODAyMTFfSFdTSU1cIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJpZWVlODAyMTFfYWRkX2lmYWNlXCIsXG4gICAgXCJpZWVlODAyMTFfY2hhbmdlX2lmYWNlXCJcbiAgXSxcbiAgXCJLTVNBTlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBhZGRzIGEgdmFsaWRhdGlvbiBjaGVjayBpbiBgaWVlZTgwMjExX3NldF9tb25fb3B0aW9uc2AgdG8gcHJldmVudCBzZXR0aW5nIHRoZSBgTU9OSVRPUl9GTEFHX0FDVElWRWAgZmxhZyBpZiBgc2RhdGEtXFx1MDAzZXZpZi50eHFgIGlzIE5VTEwuIFRoaXMgcHJldmVudHMgYSBwb3RlbnRpYWwgTlVMTCBwb2ludGVyIGRlcmVmZXJlbmNlIG9yIGludmFsaWQgc3RhdGUgd2hlbiB0aGUgZHJpdmVyIGlzIGhhbmRlZCBhIE5VTEwgYHZpZi1cXHUwMDNldHhxYC4gTlVMTCBwb2ludGVyIGRlcmVmZXJlbmNlcyBhbmQgaW52YWxpZCBzdGF0ZSBidWdzIGFyZSBjYXVnaHQgYnkgc3RhbmRhcmQga2VybmVsIGNoZWNrcyBhbmQgS0FTQU4uIFRoZSBwYXRjaCBkb2VzIG5vdCBpbnRyb2R1Y2Ugb3IgZXhwb3NlIGFueSB1bmluaXRpYWxpemVkIG1lbW9yeSByZWFkcyBvciBpbmZvLWxlYWtzLCBzbyBhIGRlZGljYXRlZCBLTVNBTiBmdXp6aW5nIHNlc3Npb24gaXMgbm90IG5lZWRlZC5cIixcbiAgXCJOZWVkc0tNU0FOXCI6IGZhbHNlLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBhZGRzIGEgY2hlY2sgaW4gYGllZWU4MDIxMV9zZXRfbW9uX29wdGlvbnNgIHRvIHByZXZlbnQgYSBOVUxMIHBvaW50ZXIgZGVyZWZlcmVuY2Ugd2hlbiBjb25maWd1cmluZyBhbiBhY3RpdmUgbW9uaXRvciBpbnRlcmZhY2Ugd2l0aG91dCBhIFRYIHF1ZXVlLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIG1hYzgwMjExIGNvcmUgbG9naWMsIHJlYWNoYWJsZSB2aWEgdGhlIG5sODAyMTEgbmV0bGluayBpbnRlcmZhY2UgKGUuZy4sIHdoZW4gYWRkaW5nIG9yIGNoYW5naW5nIGEgdmlydHVhbCBpbnRlcmZhY2UpLiBJdCBjYW4gYmUgdGVzdGVkIHVzaW5nIHRoZSBzb2Z0d2FyZS1lbXVsYXRlZCBgbWFjODAyMTFfaHdzaW1gIGRyaXZlci5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjRUMDE6MTY6MjIuODU4NjI1MzM5WiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1Njg1ODgyODEsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIlBhdGNoRGlmZlwiOiBcImNvbW1pdCBhNjE3YzY3N2Q0MzdhNWZkNWMxODQ1NzEyOGRmOTIxOGU3MTRjMzFlXFxuQXV0aG9yOiBzeXotY2x1c3RlciBcXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cXHUwMDNlXFxuRGF0ZTogICBNb24gQXVnIDI0IDAxOjE2OjIyIDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL25ldC9tYWM4MDIxMS9jZmcuYyBiL25ldC9tYWM4MDIxMS9jZmcuY1xcbmluZGV4IGI2MTYzZGNjN2U5MmMuLjUyM2NlZjBhNTUyNjEgMTAwNjQ0XFxuLS0tIGEvbmV0L21hYzgwMjExL2NmZy5jXFxuKysrIGIvbmV0L21hYzgwMjExL2NmZy5jXFxuQEAgLTExNSw2ICsxMTUsMTUgQEAgc3RhdGljIGludCBpZWVlODAyMTFfc2V0X21vbl9vcHRpb25zKHN0cnVjdCBpZWVlODAyMTFfc3ViX2lmX2RhdGEgKnNkYXRhLFxcbiBcXHRcXHRcXHRyZXR1cm4gLUVCVVNZO1xcbiBcXHR9XFxuIFxcbitcXHQvKlxcbitcXHQgKiBBbiBhY3RpdmUgbW9uaXRvciBpcyBwYXNzZWQgdG8gdGhlIGRyaXZlciBhbmQgbmVlZHMgYSBUWFEsIHdoaWNoIGlzXFxuK1xcdCAqIHJlc2VydmVkIHdpdGggdGhlIG5ldGRldiBpbiBpZWVlODAyMTFfaWZfYWRkKCkgYW5kIGNhbm5vdCBiZSBhZGRlZFxcbitcXHQgKiBsYXRlci4gIEFuIGludGVyZmFjZSBjcmVhdGVkIHdpdGhvdXQgdGhlIGZsYWcgaGFzIG5vbmUsIHNvIHJlZnVzZSB0b1xcbitcXHQgKiBzZXQgaXQgcmF0aGVyIHRoYW4gaGFuZCB0aGUgZHJpdmVyIGEgTlVMTCB2aWYtXFx1MDAzZXR4cS5cXG4rXFx0ICovXFxuK1xcdGlmICgocGFyYW1zLVxcdTAwM2VmbGFncyBcXHUwMDI2IE1PTklUT1JfRkxBR19BQ1RJVkUpIFxcdTAwMjZcXHUwMDI2ICFzZGF0YS1cXHUwMDNldmlmLnR4cSlcXG4rXFx0XFx0cmV0dXJuIC1FT1BOT1RTVVBQO1xcbitcXG4gXFx0LyogdmFsaWRhdGUgd2hldGhlciBNVS1NSU1PIGNhbiBiZSBjb25maWd1cmVkICovXFxuIFxcdGlmICghaWVlZTgwMjExX2h3X2NoZWNrKFxcdTAwMjZsb2NhbC1cXHUwMDNlaHcsIFdBTlRfTU9OSVRPUl9WSUYpIFxcdTAwMjZcXHUwMDI2XFxuIFxcdCAgICAhaWVlZTgwMjExX2h3X2NoZWNrKFxcdTAwMjZsb2NhbC1cXHUwMDNlaHcsIE5PX1ZJUlRVQUxfTU9OSVRPUikgXFx1MDAyNlxcdTAwMjZcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjRUMDE6MTY6MjMuNDI3ODkxMTJaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJiZXN0LWV4cGVuc2l2ZSIsIkR1cmF0aW9uIjo1Mjg2OTYwNzc3NCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJDRkc4MDIxMVwiLFxuICAgIFwiTUFDODAyMTFcIixcbiAgICBcIk1BQzgwMjExX0hXU0lNXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiaWVlZTgwMjExX2FkZF9pZmFjZVwiLFxuICAgIFwiaWVlZTgwMjExX2NoYW5nZV9pZmFjZVwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGFkZHMgYSBjaGVjayBpbiBgaWVlZTgwMjExX3NldF9tb25fb3B0aW9uc2AgdG8gcHJldmVudCBhIE5VTEwgcG9pbnRlciBkZXJlZmVyZW5jZSB3aGVuIGNvbmZpZ3VyaW5nIGFuIGFjdGl2ZSBtb25pdG9yIGludGVyZmFjZSB3aXRob3V0IGEgVFggcXVldWUuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgbWFjODAyMTEgY29yZSBsb2dpYywgcmVhY2hhYmxlIHZpYSB0aGUgbmw4MDIxMSBuZXRsaW5rIGludGVyZmFjZSAoZS5nLiwgd2hlbiBhZGRpbmcgb3IgY2hhbmdpbmcgYSB2aXJ0dWFsIGludGVyZmFjZSkuIEl0IGNhbiBiZSB0ZXN0ZWQgdXNpbmcgdGhlIHNvZnR3YXJlLWVtdWxhdGVkIGBtYWM4MDIxMV9od3NpbWAgZHJpdmVyLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiJZb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci5cbllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lXG5pZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXG5cbklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpblxueW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5XG51c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLlxuXG5SZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOlxuLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLlxuLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy5cbi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LlxuLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsXG4gIGV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS5cbi0gQ29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsXG4gIGlvbmljLCBhbWRncHUpIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLlxuLSBEcml2ZXIgLnJlbW92ZSwgLnNodXRkb3duLCBvciBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzIChlLmcuLCBpZ2JfcmVtb3ZlKVxuICB0aGF0IGFyZSBleGVjdXRlZCBvbmx5IGR1cmluZyBQQ0kgaG90LXVucGx1ZyBvciBzeXNmcyBkcml2ZXIgdW5iaW5kIG9wZXJhdGlvbnMuXG5cbklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2hcbnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLlxuXG5XaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzpcbjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuXG4gICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy5cbiAgIFByZWZlciBub24tc3RhdGljLCBub24taW5saW5lZCBBUEkgZW50cnlwb2ludCBmdW5jdGlvbnMgb3ZlciBpbnRlcm5hbCBzdGF0aWMgaGVscGVyIGZ1bmN0aW9uc1xuICAgKHdoaWNoIGFyZSBpbmxpbmVkIGJ5IHRoZSBjb21waWxlciBhbmQgZG8gbm90IGhhdmUgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcykuXG4yLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS5cbiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy5cbiAgIEFsc28gY2hlY2sgXCJkZXBlbmRzIG9uXCIgbGluZXMgaW4gS2NvbmZpZyB0byBpbmNsdWRlIGFueSBub24tc3RhbmRhcmQgcGFyZW50IHN1YnN5c3RlbSBjb25maWdzXG4gICBuZWVkZWQgZm9yIEtidWlsZCB0byBjb21waWxlIHRoZSBjb2RlIHN0YXRpY2FsbHkgaW50byB2bWxpbnV4LiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3NcbiAgIG91dHB1dCBhcnJheSwgYW5kIERPIE5PVCBhZGQgYSAnQ09ORklHXycgcHJlZml4IChlLmcuLCByZXR1cm4gXCJORVRfSVBWNFwiIGluc3RlYWQgb2YgXCJDT05GSUdfTkVUX0lQVjRcIikuXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCBhNjE3YzY3N2Q0MzdhNWZkNWMxODQ1NzEyOGRmOTIxOGU3MTRjMzFlXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIE1vbiBBdWcgMjQgMDE6MTY6MjIgMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9uZXQvbWFjODAyMTEvY2ZnLmMgYi9uZXQvbWFjODAyMTEvY2ZnLmNcbmluZGV4IGI2MTYzZGNjN2U5MmMuLjUyM2NlZjBhNTUyNjEgMTAwNjQ0XG4tLS0gYS9uZXQvbWFjODAyMTEvY2ZnLmNcbisrKyBiL25ldC9tYWM4MDIxMS9jZmcuY1xuQEAgLTExNSw2ICsxMTUsMTUgQEAgc3RhdGljIGludCBpZWVlODAyMTFfc2V0X21vbl9vcHRpb25zKHN0cnVjdCBpZWVlODAyMTFfc3ViX2lmX2RhdGEgKnNkYXRhLFxuIFx0XHRcdHJldHVybiAtRUJVU1k7XG4gXHR9XG4gXG4rXHQvKlxuK1x0ICogQW4gYWN0aXZlIG1vbml0b3IgaXMgcGFzc2VkIHRvIHRoZSBkcml2ZXIgYW5kIG5lZWRzIGEgVFhRLCB3aGljaCBpc1xuK1x0ICogcmVzZXJ2ZWQgd2l0aCB0aGUgbmV0ZGV2IGluIGllZWU4MDIxMV9pZl9hZGQoKSBhbmQgY2Fubm90IGJlIGFkZGVkXG4rXHQgKiBsYXRlci4gIEFuIGludGVyZmFjZSBjcmVhdGVkIHdpdGhvdXQgdGhlIGZsYWcgaGFzIG5vbmUsIHNvIHJlZnVzZSB0b1xuK1x0ICogc2V0IGl0IHJhdGhlciB0aGFuIGhhbmQgdGhlIGRyaXZlciBhIE5VTEwgdmlmLVx1MDAzZXR4cS5cbitcdCAqL1xuK1x0aWYgKChwYXJhbXMtXHUwMDNlZmxhZ3MgXHUwMDI2IE1PTklUT1JfRkxBR19BQ1RJVkUpIFx1MDAyNlx1MDAyNiAhc2RhdGEtXHUwMDNldmlmLnR4cSlcbitcdFx0cmV0dXJuIC1FT1BOT1RTVVBQO1xuK1xuIFx0LyogdmFsaWRhdGUgd2hldGhlciBNVS1NSU1PIGNhbiBiZSBjb25maWd1cmVkICovXG4gXHRpZiAoIWllZWU4MDIxMV9od19jaGVjayhcdTAwMjZsb2NhbC1cdTAwM2VodywgV0FOVF9NT05JVE9SX1ZJRikgXHUwMDI2XHUwMDI2XG4gXHQgICAgIWllZWU4MDIxMV9od19jaGVjayhcdTAwMjZsb2NhbC1cdTAwM2VodywgTk9fVklSVFVBTF9NT05JVE9SKSBcdTAwMjZcdTAwMjZcbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI0VDAxOjE2OjIzLjQyNzg5MjY4WiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NTAzODY3ODAzMSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIG1hYzgwMjExIFBhdGNoIGZvciBNb25pdG9yIE1vZGUgQ29uZmlndXJhdGlvbioqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggaW4gYG5ldC9tYWM4MDIxMS9jZmcuY2AsIGFuZCBpdCdzIG1ha2luZyBhIHByZXR0eSBzZW5zaWJsZSBjaGVjayB3aXRoaW4gYGllZWU4MDIxMV9zZXRfbW9uX29wdGlvbnNgLiBJdCdzIGFkZHJlc3NpbmcgYSBjcml0aWNhbCBpc3N1ZSByZWxhdGVkIHRvIGFjdGl2ZSBtb25pdG9yIGludGVyZmFjZXMuIEJhc2ljYWxseSwgaWYgdGhlIGBNT05JVE9SX0ZMQUdfQUNUSVZFYCBmbGFnIGlzIHNldCwgdGhlIGRyaXZlciAqbmVlZHMqIGEgdHJhbnNtaXQgcXVldWUgKHR4cSkuIFRoaXMgcXVldWUgaXMgZXN0YWJsaXNoZWQgZHVyaW5nIHRoZSBuZXR3b3JrIGRldmljZSBzZXR1cCBpbiBgaWVlZTgwMjExX2lmX2FkZCgpYC4gVGhlIHBhdGNoLCBhcyBJIHNlZSBpdCwgcHJldmVudHMgYSBwb3RlbnRpYWwgcHJvYmxlbSB3aGVyZSB3ZSdkIHRyeSB0byB1c2UgYSBudWxsIGB2aWYtXHUwMDNldHhxYC4gVGhlIGNvZGUgaXMgcmVqZWN0aW5nIHRoZSBvcGVyYXRpb24gaWYgdGhlIGBNT05JVE9SX0ZMQUdfQUNUSVZFYCBiaXQgaXMgc2V0LCBidXQgdGhlIGludGVyZmFjZSB3YXMgY3JlYXRlZCB3aXRob3V0IGEgdHJhbnNtaXQgcXVldWUsIHJldHVybmluZyBhbiBgRU9QTk9UU1VQUGAgZXJyb3IuIEl0J3MgYSBuaWNlLCBmb2N1c2VkIHBpZWNlIG9mIGRlZmVuc2l2ZSBwcm9ncmFtbWluZywgYWltZWQgYXQgcHJldmVudGluZyBhIGNyYXNoIG9yLCB3b3JzZSwgdW5kZWZpbmVkIGJlaGF2aW9yIGR1ZSB0byBhIG51bGwgcG9pbnRlciBkZXJlZmVyZW5jZS5cblxuXG4iLCJJbnB1dFRva2VucyI6MjE0OCwiT3V0cHV0VG9rZW5zIjo0NSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjI1MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI0VDAxOjE2OjI4LjQ2NjU3MzI4MVoiLCJTZXEiOjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1MDY1NDk4NSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJpZWVlODAyMTFfc2V0X21vbl9vcHRpb25zXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcIm5ldC9tYWM4MDIxMS9jZmcuY1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJuZXQvbWFjODAyMTEvY2ZnLmM9NTA9c3RhdGljIHZvaWQgaWVlZTgwMjExX3NldF9tdV9taW1vX2ZvbGxvdyhzdHJ1Y3QgaWVlZTgwMjExX3N1Yl9pZl9kYXRhICpzZGF0YSxcXG4tLVxcbm5ldC9tYWM4MDIxMS9jZmcuYy05NS1cXG5uZXQvbWFjODAyMTEvY2ZnLmM6OTY6c3RhdGljIGludCBpZWVlODAyMTFfc2V0X21vbl9vcHRpb25zKHN0cnVjdCBpZWVlODAyMTFfc3ViX2lmX2RhdGEgKnNkYXRhLFxcbm5ldC9tYWM4MDIxMS9jZmcuYy05Ny1cXHRcXHRcXHRcXHQgICAgIHN0cnVjdCB2aWZfcGFyYW1zICpwYXJhbXMpXFxuLS1cXG5uZXQvbWFjODAyMTEvY2ZnLmM9MjE1PXN0YXRpYyBzdHJ1Y3Qgd2lyZWxlc3NfZGV2ICppZWVlODAyMTFfYWRkX2lmYWNlKHN0cnVjdCB3aXBoeSAqd2lwaHksXFxuLS1cXG5uZXQvbWFjODAyMTEvY2ZnLmMtMjMyLVxcdGlmICh0eXBlID09IE5MODAyMTFfSUZUWVBFX01PTklUT1IpIHtcXG5uZXQvbWFjODAyMTEvY2ZnLmM6MjMzOlxcdFxcdGVyciA9IGllZWU4MDIxMV9zZXRfbW9uX29wdGlvbnMoc2RhdGEsIHBhcmFtcyk7XFxubmV0L21hYzgwMjExL2NmZy5jLTIzNC1cXHRcXHRpZiAoZXJyKSB7XFxuLS1cXG5uZXQvbWFjODAyMTEvY2ZnLmM9MjY4PXN0YXRpYyBpbnQgaWVlZTgwMjExX2NoYW5nZV9pZmFjZShzdHJ1Y3Qgd2lwaHkgKndpcGh5LFxcbi0tXFxubmV0L21hYzgwMjExL2NmZy5jLTMxMC1cXHRpZiAoc2RhdGEtXFx1MDAzZXZpZi50eXBlID09IE5MODAyMTFfSUZUWVBFX01PTklUT1IpIHtcXG5uZXQvbWFjODAyMTEvY2ZnLmM6MzExOlxcdFxcdHJldCA9IGllZWU4MDIxMV9zZXRfbW9uX29wdGlvbnMoc2RhdGEsIHBhcmFtcyk7XFxubmV0L21hYzgwMjExL2NmZy5jLTMxMi1cXHRcXHRpZiAocmV0KVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yNFQwMToxNjoyOC41MTcyMzQ5MTZaIiwiU2VxIjo1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0MzAyMTMxNjg5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgSUVFRSA4MDIuMTEgSW50ZXJmYWNlIENvbmZpZ3VyYXRpb24qKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIGBpZWVlODAyMTFfc2V0X21vbl9vcHRpb25zYCBmdW5jdGlvbi4gSXQncyBkZWNsYXJlZCBhcyBzdGF0aWMsIHdoaWNoIGltbWVkaWF0ZWx5IGxpbWl0cyBpdHMgc2NvcGUuIEl0J3Mgb25seSBjYWxsYWJsZSBmcm9tIHdpdGhpbiB0aGlzIHBhcnRpY3VsYXIgc291cmNlIGZpbGUuIFRoYXQncyBnb29kIHRvIGtub3cuIE5vdywgdGhlIGtleSBpcyB1bmRlcnN0YW5kaW5nICp3aGVyZSogaXQncyBiZWluZyB1c2VkLiBJIHNlZSBpdCdzIGNhbGxlZCBmcm9tIGBpZWVlODAyMTFfYWRkX2lmYWNlYCBhbmQgYGllZWU4MDIxMV9jaGFuZ2VfaWZhY2VgLiBUbyBnZXQgYSBjb21wbGV0ZSBwaWN0dXJlLCBJIG5lZWQgdG8gY29uZmlybSB3aGV0aGVyICp0aG9zZSogZnVuY3Rpb25zIGFyZSBzdGF0aWMgYXMgd2VsbC4gQXJlIHRoZSBmdW5jdGlvbnMgdGhhdCBjYWxsIHRoaXMgZnVuY3Rpb24gYWxzbyBzdGF0aWMsIGxpbWl0aW5nIHRoZWlyIHNjb3BlPyBVbmRlcnN0YW5kaW5nIHRoaXMgd2lsbCBoZWxwIG1lIGRldGVybWluZSB0aGUgYnJvYWRlciBpbXBsaWNhdGlvbnMgb2YgbW9kaWZ5aW5nIGBpZWVlODAyMTFfc2V0X21vbl9vcHRpb25zYCwgYW5kIHdoZXJlIHRob3NlIGNoYW5nZXMgbWlnaHQgcmlwcGxlLiBJZiB0aGV5ICphcmVuJ3QqIHN0YXRpYywgdGhlbiBjaGFuZ2VzIHRvIGBpZWVlODAyMTFfc2V0X21vbl9vcHRpb25zYCBjb3VsZCBoYXZlIHdpZGVyIGltcGFjdC4gSWYgdGhleSBhcmUsIHRoZW4gbXkgc2NvcGUgaXMgbW9yZSBjbGVhcmx5IGRlZmluZWQuIEknbGwgY2hlY2sgdGhlaXIgZGVmaW5pdGlvbnMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjMxMzYsIk91dHB1dFRva2VucyI6NDQsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo5MiwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0yNFQwMToxNjozMi44MTkzNzAyNTVaIiwiU2VxIjo2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDgzMzgwMTUsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiaWVlZTgwMjExX2FkZF9pZmFjZVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJuZXQvbWFjODAyMTEvY2ZnLmNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwibmV0L21hYzgwMjExL2NmZy5jPTE3MD1zdGF0aWMgaW50IGllZWU4MDIxMV9zZXRfYXBfbWJzc2lkX29wdGlvbnMoc3RydWN0IGllZWU4MDIxMV9zdWJfaWZfZGF0YSAqc2RhdGEsXFxuLS1cXG5uZXQvbWFjODAyMTEvY2ZnLmMtMjE0LVxcbm5ldC9tYWM4MDIxMS9jZmcuYzoyMTU6c3RhdGljIHN0cnVjdCB3aXJlbGVzc19kZXYgKmllZWU4MDIxMV9hZGRfaWZhY2Uoc3RydWN0IHdpcGh5ICp3aXBoeSxcXG5uZXQvbWFjODAyMTEvY2ZnLmMtMjE2LVxcdFxcdFxcdFxcdFxcdFxcdGNvbnN0IGNoYXIgKm5hbWUsXFxuLS1cXG5uZXQvbWFjODAyMTEvY2ZnLmM9NTU5Mj1jb25zdCBzdHJ1Y3QgY2ZnODAyMTFfb3BzIG1hYzgwMjExX2NvbmZpZ19vcHMgPSB7XFxubmV0L21hYzgwMjExL2NmZy5jOjU1OTM6XFx0LmFkZF92aXJ0dWFsX2ludGYgPSBpZWVlODAyMTFfYWRkX2lmYWNlLFxcbm5ldC9tYWM4MDIxMS9jZmcuYy01NTk0LVxcdC5kZWxfdmlydHVhbF9pbnRmID0gaWVlZTgwMjExX2RlbF9pZmFjZSxcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjRUMDE6MTY6MzIuODY3NzE0NzRaIiwiU2VxIjo3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo2Mjc1NzQ4MDMxLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyBJbnRlcmZhY2UgQ29uZmlndXJhdGlvbiBpbiBtYWM4MDIxMSoqXG5cbk9rYXksIHNvIEknbSBkaWdnaW5nIGludG8gaG93IHZpcnR1YWwgaW50ZXJmYWNlcyBhcmUgaGFuZGxlZCBpbiBtYWM4MDIxMS4gSSBzZWUgYGllZWU4MDIxMV9hZGRfaWZhY2VgIGRlY2xhcmVkIGFzIHN0YXRpYywgd2hpY2ggaXMgaW50ZXJlc3RpbmcsIGJ1dCB0aGVuIEkgZmluZCBpdCdzIGFzc2lnbmVkIHRvIGBtYWM4MDIxMV9jb25maWdfb3BzLmFkZF92aXJ0dWFsX2ludGZgLiBUaGF0IHNlZW1zIHN0cmFpZ2h0Zm9yd2FyZCBlbm91Z2guIE5vdywgSSdtIGJldHRpbmcgdGhhdCBgaWVlZTgwMjExX2NoYW5nZV9pZmFjZWAgaXMgdGhlIGZ1bmN0aW9uIGJlaW5nIHVzZWQgZm9yIGBtYWM4MDIxMV9jb25maWdfb3BzLmNoYW5nZV92aXJ0dWFsX2ludGZgLiBJdCdzIGEgbG9naWNhbCBjb25uZWN0aW9uLCBnaXZlbiB0aGUgbmFtaW5nIGNvbnZlbnRpb25zLCBidXQgbGV0J3Mgbm90IGFzc3VtZSBhbnl0aGluZy4gSSBuZWVkIHRvIGNvbmZpcm0gdGhhdC4gU28sIEknbSBnb2luZyB0byB0YWtlIGEgY2xvc2VyIGxvb2sgYXQgYGllZWU4MDIxMV9jaGFuZ2VfaWZhY2VgIHRvIHZlcmlmeSBteSBoeXBvdGhlc2lzIGFuZCB1bmRlcnN0YW5kIHRoZSBleGFjdCBtZWNoYW5pY3MuIEdvdHRhIG1ha2Ugc3VyZSBldmVyeXRoaW5nJ3MgYXMgSSBleHBlY3QgaXQgdG8gYmUuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjM3OTUsIk91dHB1dFRva2VucyI6NDQsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo5OSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0yNFQwMToxNjozOS4xNDM0NjUyNDFaIiwiU2VxIjo4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NTA4MzQ2MzQsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiaWVlZTgwMjExX2NoYW5nZV9pZmFjZVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJuZXQvbWFjODAyMTEvY2ZnLmNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwibmV0L21hYzgwMjExL2NmZy5jPTI2MT1zdGF0aWMgaW50IGllZWU4MDIxMV9kZWxfaWZhY2Uoc3RydWN0IHdpcGh5ICp3aXBoeSwgc3RydWN0IHdpcmVsZXNzX2RldiAqd2RldilcXG4tLVxcbm5ldC9tYWM4MDIxMS9jZmcuYy0yNjctXFxubmV0L21hYzgwMjExL2NmZy5jOjI2ODpzdGF0aWMgaW50IGllZWU4MDIxMV9jaGFuZ2VfaWZhY2Uoc3RydWN0IHdpcGh5ICp3aXBoeSxcXG5uZXQvbWFjODAyMTEvY2ZnLmMtMjY5LVxcdFxcdFxcdFxcdCAgc3RydWN0IG5ldF9kZXZpY2UgKmRldixcXG4tLVxcbm5ldC9tYWM4MDIxMS9jZmcuYz01NTkyPWNvbnN0IHN0cnVjdCBjZmc4MDIxMV9vcHMgbWFjODAyMTFfY29uZmlnX29wcyA9IHtcXG4tLVxcbm5ldC9tYWM4MDIxMS9jZmcuYy01NTk0LVxcdC5kZWxfdmlydHVhbF9pbnRmID0gaWVlZTgwMjExX2RlbF9pZmFjZSxcXG5uZXQvbWFjODAyMTEvY2ZnLmM6NTU5NTpcXHQuY2hhbmdlX3ZpcnR1YWxfaW50ZiA9IGllZWU4MDIxMV9jaGFuZ2VfaWZhY2UsXFxubmV0L21hYzgwMjExL2NmZy5jLTU1OTYtXFx0LnN0YXJ0X3AycF9kZXZpY2UgPSBpZWVlODAyMTFfc3RhcnRfcDJwX2RldmljZSxcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjRUMDE6MTY6MzkuMTk0MzA1NTY1WiIsIlNlcSI6OSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NjA3MDM0MzczNCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipGb2N1c2luZyBvbiBJbnRlcmZhY2UgQWRkaXRpb24vTW9kaWZpY2F0aW9uIGluIG1hYzgwMjExKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgaG93IGludGVyZmFjZXMgYXJlIGFkZGVkIGFuZCBjaGFuZ2VkIHdpdGhpbiB0aGUgbWFjODAyMTEgd2lyZWxlc3Mgc3RhY2suIE15IGluaXRpYWwgdGhvdWdodCB3YXMgdG8gZGlnIGludG8gYGllZWU4MDIxMV9hZGRfaWZhY2VgIGFuZCBgaWVlZTgwMjExX2NoYW5nZV9pZmFjZWAsIGJ1dCB0aGV5J3JlIG1hcmtlZCBhcyBzdGF0aWMsIHdoaWNoIHVzdWFsbHkgbWVhbnMgdGhleSdyZSBjb21waWxlci1pbmxpbmVkIGFuZCBub3QgaWRlYWwgZm9yIGZ1enppbmcgdGFyZ2V0IHN5bWJvbHMuICBJIHF1aWNrbHkgcmVtZW1iZXJlZCB0aGF0IGBtYWM4MDIxMV9jb25maWdfb3BzYCBwbGF5cyBhIHJvbGUgaW4gYGNmZzgwMjExYC4gQnV0IGhvbGQgb24sIGBtYWM4MDIxMV9jb25maWdfb3BzYCBpcyBhIHN0cnVjdCwgbm90IGEgZnVuY3Rpb24gSSBjYW4gZGlyZWN0bHkgdGFyZ2V0LlxuXG5UaGVuIEkgcmVhbGl6ZWQgdGhhdCBgaWVlZTgwMjExX2FkZF9pZmFjZWAgaXMgc3RhdGljLiBUaGF0IHVzdWFsbHkgbWFrZXMgaXQgbm90IGlkZWFsLCBhbmQgSSB3YXMgb24gdGhlIHJpZ2h0IHRyYWNrLCB3aGVuIEkgY29uc2lkZXJlZCBnb2luZyB1cCBhIGxldmVsIHRvIGBubDgwMjExX25ld19pbnRlcmZhY2VgIGFuZCBgbmw4MDIxMV9zZXRfaW50ZXJmYWNlYCBpbiBgbmV0L3dpcmVsZXNzL25sODAyMTEuY2AsIGJ1dCB0aGUgaW5zdHJ1Y3Rpb25zIEkgYW0gZm9sbG93aW5nIHNheSB0byBsb29rIGZvciBub24tc3RhdGljLCBub24taW5saW5lZCBlbnRyeXBvaW50IGZ1bmN0aW9ucy5cblxuQWhhISBJZiBgaWVlZTgwMjExX2FkZF9pZmFjZWAgYW5kIGBpZWVlODAyMTFfY2hhbmdlX2lmYWNlYCBhcmUgYXNzaWduZWQgdG8gZnVuY3Rpb24gcG9pbnRlcnMsIHRoYXQgYWN0dWFsbHkgKnByZXZlbnRzKiB0aGVtIGZyb20gYmVpbmcgaW5saW5lZCBieSB0aGUgY29tcGlsZXIuIEJlY2F1c2Ugb2YgdGhhdCwgdGhleSdsbCBoYXZlIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMuIEdpdmVuIHRoYXQgdW5kZXJzdGFuZGluZywgYGllZWU4MDIxMV9hZGRfaWZhY2VgIGFuZCBgaWVlZTgwMjExX2NoYW5nZV9pZmFjZWAgbG9vayBsaWtlIHBlcmZlY3RseSBnb29kIGNhbmRpZGF0ZXMgZm9yIGBGb2N1c1N5bWJvbHNgLCBhcyBsb25nIGFzIHRoZXkgYXJlIGFzc2lnbmVkIHRvIGZ1bmN0aW9uIHBvaW50ZXJzLlxuXG5cbiIsIklucHV0VG9rZW5zIjo0NDcwLCJPdXRwdXRUb2tlbnMiOjM4LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MzA1LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI0VDAxOjE2OjQ1LjI2NDY1MzMzOVoiLCJTZXEiOjEwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDg4OTY3ODYsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY29uZmlnIE1BQzgwMjExXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcIm5ldC9tYWM4MDIxMS9LY29uZmlnXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIm5ldC9tYWM4MDIxMS9LY29uZmlnLTEtIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5XFxubmV0L21hYzgwMjExL0tjb25maWc6Mjpjb25maWcgTUFDODAyMTFcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0zLVxcdHRyaXN0YXRlIFxcXCJHZW5lcmljIElFRUUgODAyLjExIE5ldHdvcmtpbmcgU3RhY2sgKG1hYzgwMjExKVxcXCJcXG4tLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnPTE5PWlmIE1BQzgwMjExICE9IG5cXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yMC1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoyMTpjb25maWcgTUFDODAyMTFfSEFTX1JDXFxubmV0L21hYzgwMjExL0tjb25maWctMjItXFx0Ym9vbFxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTIzLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjI0OmNvbmZpZyBNQUM4MDIxMV9SQ19NSU5TVFJFTFxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTI1LVxcdGJvb2wgXFxcIk1pbnN0cmVsXFxcIiBpZiBFWFBFUlRcXG4tLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnPTMxPWNob2ljZVxcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWctNDAtXFxubmV0L21hYzgwMjExL0tjb25maWc6NDE6Y29uZmlnIE1BQzgwMjExX1JDX0RFRkFVTFRfTUlOU1RSRUxcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy00Mi1cXHRib29sIFxcXCJNaW5zdHJlbFxcXCJcXG4tLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnPTQ4PWVuZGNob2ljZVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTQ5LVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjUwOmNvbmZpZyBNQUM4MDIxMV9SQ19ERUZBVUxUXFxubmV0L21hYzgwMjExL0tjb25maWctNTEtXFx0c3RyaW5nXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZz01Nz1jb21tZW50IFxcXCJTb21lIHdpcmVsZXNzIGRyaXZlcnMgcmVxdWlyZSBhIHJhdGUgY29udHJvbCBhbGdvcml0aG1cXFwiXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZy01OS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZzo2MDpjb25maWcgTUFDODAyMTFfS1VOSVRfVEVTVFxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTYxLVxcdHRyaXN0YXRlIFxcXCJLVW5pdCB0ZXN0cyBmb3IgbWFjODAyMTFcXFwiIGlmICFLVU5JVF9BTExfVEVTVFNcXG4tLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTY5LVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjcwOmNvbmZpZyBNQUM4MDIxMV9NRVNIXFxubmV0L21hYzgwMjExL0tjb25maWctNzEtXFx0Ym9vbCBcXFwiRW5hYmxlIG1hYzgwMjExIG1lc2ggbmV0d29ya2luZyBzdXBwb3J0XFxcIlxcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWctNzgtXFxubmV0L21hYzgwMjExL0tjb25maWc6Nzk6Y29uZmlnIE1BQzgwMjExX0xFRFNcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy04MC1cXHRib29sIFxcXCJFbmFibGUgTEVEIHRyaWdnZXJzXFxcIlxcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWctODctXFxubmV0L21hYzgwMjExL0tjb25maWc6ODg6Y29uZmlnIE1BQzgwMjExX0RFQlVHRlNcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy04OS1cXHRib29sIFxcXCJFeHBvcnQgbWFjODAyMTEgaW50ZXJuYWxzIGluIERlYnVnRlNcXFwiXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZy05Ni1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZzo5Nzpjb25maWcgTUFDODAyMTFfTUVTU0FHRV9UUkFDSU5HXFxubmV0L21hYzgwMjExL0tjb25maWctOTgtXFx0Ym9vbCBcXFwiVHJhY2UgYWxsIG1hYzgwMjExIGRlYnVnIG1lc3NhZ2VzXFxcIlxcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWctMTA5LVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjExMDptZW51Y29uZmlnIE1BQzgwMjExX0RFQlVHX01FTlVcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xMTEtXFx0Ym9vbCBcXFwiU2VsZWN0IG1hYzgwMjExIGRlYnVnZ2luZyBmZWF0dXJlc1xcXCJcXG4tLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTExNS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoxMTY6Y29uZmlnIE1BQzgwMjExX05PSU5MSU5FXFxubmV0L21hYzgwMjExL0tjb25maWctMTE3LVxcdGJvb2wgXFxcIkRvIG5vdCBpbmxpbmUgVFgvUlggaGFuZGxlcnNcXFwiXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xMzEtXFxubmV0L21hYzgwMjExL0tjb25maWc6MTMyOmNvbmZpZyBNQUM4MDIxMV9WRVJCT1NFX0RFQlVHXFxubmV0L21hYzgwMjExL0tjb25maWctMTMzLVxcdGJvb2wgXFxcIlZlcmJvc2UgZGVidWdnaW5nIG91dHB1dFxcXCJcXG4tLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTE0Mi1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoxNDM6Y29uZmlnIE1BQzgwMjExX01MTUVfREVCVUdcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xNDQtXFx0Ym9vbCBcXFwiVmVyYm9zZSBtYW5hZ2VkIE1MTUUgb3V0cHV0XFxcIlxcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWctMTUzLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjE1NDpjb25maWcgTUFDODAyMTFfU1RBX0RFQlVHXFxubmV0L21hYzgwMjExL0tjb25maWctMTU1LVxcdGJvb2wgXFxcIlZlcmJvc2Ugc3RhdGlvbiBkZWJ1Z2dpbmdcXFwiXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xNjItXFxubmV0L21hYzgwMjExL0tjb25maWc6MTYzOmNvbmZpZyBNQUM4MDIxMV9IVF9ERUJVR1xcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTE2NC1cXHRib29sIFxcXCJWZXJib3NlIEhUIGRlYnVnZ2luZ1xcXCJcXG4tLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTE3NC1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoxNzU6Y29uZmlnIE1BQzgwMjExX09DQl9ERUJVR1xcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTE3Ni1cXHRib29sIFxcXCJWZXJib3NlIE9DQiBkZWJ1Z2dpbmdcXFwiXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xODUtXFxubmV0L21hYzgwMjExL0tjb25maWc6MTg2OmNvbmZpZyBNQUM4MDIxMV9JQlNTX0RFQlVHXFxubmV0L21hYzgwMjExL0tjb25maWctMTg3LVxcdGJvb2wgXFxcIlZlcmJvc2UgSUJTUyBkZWJ1Z2dpbmdcXFwiXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xOTYtXFxubmV0L21hYzgwMjExL0tjb25maWc6MTk3OmNvbmZpZyBNQUM4MDIxMV9QU19ERUJVR1xcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTE5OC1cXHRib29sIFxcXCJWZXJib3NlIHBvd2Vyc2F2ZSBtb2RlIGRlYnVnZ2luZ1xcXCJcXG4tLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTIwOC1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoyMDk6Y29uZmlnIE1BQzgwMjExX01QTF9ERUJVR1xcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTIxMC1cXHRib29sIFxcXCJWZXJib3NlIG1lc2ggcGVlciBsaW5rIGRlYnVnZ2luZ1xcXCJcXG4tLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTIyMS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoyMjI6Y29uZmlnIE1BQzgwMjExX01QQVRIX0RFQlVHXFxubmV0L21hYzgwMjExL0tjb25maWctMjIzLVxcdGJvb2wgXFxcIlZlcmJvc2UgbWVzaCBwYXRoIGRlYnVnZ2luZ1xcXCJcXG4tLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTIzNC1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoyMzU6Y29uZmlnIE1BQzgwMjExX01IV01QX0RFQlVHXFxubmV0L21hYzgwMjExL0tjb25maWctMjM2LVxcdGJvb2wgXFxcIlZlcmJvc2UgbWVzaCBIV01QIHJvdXRpbmcgZGVidWdnaW5nXFxcIlxcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWctMjQ3LVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjI0ODpjb25maWcgTUFDODAyMTFfTUVTSF9TWU5DX0RFQlVHXFxubmV0L21hYzgwMjExL0tjb25maWctMjQ5LVxcdGJvb2wgXFxcIlZlcmJvc2UgbWVzaCBzeW5jaHJvbml6YXRpb24gZGVidWdnaW5nXFxcIlxcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWctMjU4LVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjI1OTpjb25maWcgTUFDODAyMTFfTUVTSF9DU0FfREVCVUdcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yNjAtXFx0Ym9vbCBcXFwiVmVyYm9zZSBtZXNoIGNoYW5uZWwgc3dpdGNoIGRlYnVnZ2luZ1xcXCJcXG4tLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTI2OS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoyNzA6Y29uZmlnIE1BQzgwMjExX01FU0hfUFNfREVCVUdcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yNzEtXFx0Ym9vbCBcXFwiVmVyYm9zZSBtZXNoIHBvd2Vyc2F2ZSBkZWJ1Z2dpbmdcXFwiXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yODAtXFxubmV0L21hYzgwMjExL0tjb25maWc6MjgxOmNvbmZpZyBNQUM4MDIxMV9URExTX0RFQlVHXFxubmV0L21hYzgwMjExL0tjb25maWctMjgyLVxcdGJvb2wgXFxcIlZlcmJvc2UgVERMUyBkZWJ1Z2dpbmdcXFwiXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yOTItXFxubmV0L21hYzgwMjExL0tjb25maWc6MjkzOmNvbmZpZyBNQUM4MDIxMV9ERUJVR19DT1VOVEVSU1xcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTI5NC1cXHRib29sIFxcXCJFeHRyYSBzdGF0aXN0aWNzIGZvciBUWC9SWCBkZWJ1Z2dpbmdcXFwiXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0zMDctXFxubmV0L21hYzgwMjExL0tjb25maWc6MzA4OmNvbmZpZyBNQUM4MDIxMV9TVEFfSEFTSF9NQVhfU0laRVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTMwOS1cXHRpbnQgXFxcIlN0YXRpb24gaGFzaCB0YWJsZSBtYXhpbXVtIHNpemVcXFwiIGlmIE1BQzgwMjExX0RFQlVHX01FTlVcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjRUMDE6MTY6NDUuMzEzNTYxNjU0WiIsIlNlcSI6MTEsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjMyMDczNTU0NDUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBNQUM4MDIxMSBDb25maWd1cmF0aW9uKipcblxuT2theSwgc28gdGhlIGN1cnJlbnQgY29uZmlndXJhdGlvbiBJJ20gbG9va2luZyBhdCBpcyBgTUFDODAyMTFgLiBUaGF0J3MgdGhlIHN0YXJ0aW5nIHBvaW50LiBJIG5lZWQgdG8gbWFrZSBzdXJlIEkgZG9uJ3QgbWlzcyBhbnl0aGluZywgc28gSSdtIHF1aWNrbHkgY2hlY2tpbmcg4oCTIGlzIHRoZXJlICphbnkqIG90aGVyIGNvbmZpZyByZWxhdGVkIHRvIHRoaXM/IEkgd2FudCB0byBnZXQgYSBjb21wbGV0ZSBwaWN0dXJlIGJlZm9yZSBkaXZpbmcgaW4uXG5cbkFscmlnaHQsIHRoZSBwYXRjaCBJJ20gaW50ZXJlc3RlZCBpbiBpcyBsb2NhdGVkIGluIGBuZXQvbWFjODAyMTEvY2ZnLmNgLiBOb3csIGJlZm9yZSBJIHN0YXJ0IGRpc3NlY3RpbmcgdGhlIHBhdGNoIGl0c2VsZiwgSSBuZWVkIHRvIHVuZGVyc3RhbmQgYW55IGRlcGVuZGVuY2llcy4gTGV0IG1lIHZlcmlmeSB0aGF0IHRoZSBgTUFDODAyMTFgIGNvbmZpZ3VyYXRpb24gZG9lc24ndCByZWx5IG9uIG9yIHRyaWdnZXIgYW55IG90aGVyIHNpZ25pZmljYW50IGNvbmZpZ3VyYXRpb25zLiBBIHF1aWNrIGRlcGVuZGVuY3kgY2hlY2sgd2lsbCBnaXZlIG1lIGNydWNpYWwgY29udGV4dC5cblxuXG4iLCJJbnB1dFRva2VucyI6NzM4NCwiT3V0cHV0VG9rZW5zIjozMywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjU1LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI0VDAxOjE2OjQ4LjUyMDkxOTA2OFoiLCJTZXEiOjEyLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDYwOTQwNjUsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiZGVwZW5kcyBvblwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJuZXQvbWFjODAyMTEvS2NvbmZpZ1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJuZXQvbWFjODAyMTEvS2NvbmZpZz0yPWNvbmZpZyBNQUM4MDIxMVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTMtXFx0dHJpc3RhdGUgXFxcIkdlbmVyaWMgSUVFRSA4MDIuMTEgTmV0d29ya2luZyBTdGFjayAobWFjODAyMTEpXFxcIlxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjQ6XFx0ZGVwZW5kcyBvbiBDRkc4MDIxMVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTUtXFx0c2VsZWN0IENSWVBUT1xcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWc9MTY9Y29tbWVudCBcXFwiQ0ZHODAyMTEgbmVlZHMgdG8gYmUgZW5hYmxlZCBmb3IgTUFDODAyMTFcXFwiXFxubmV0L21hYzgwMjExL0tjb25maWc6MTc6XFx0ZGVwZW5kcyBvbiBDRkc4MDIxMT1uXFxubmV0L21hYzgwMjExL0tjb25maWctMTgtXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZz0zMT1jaG9pY2VcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0zMi1cXHRwcm9tcHQgXFxcIkRlZmF1bHQgcmF0ZSBjb250cm9sIGFsZ29yaXRobVxcXCJcXG5uZXQvbWFjODAyMTEvS2NvbmZpZzozMzpcXHRkZXBlbmRzIG9uIE1BQzgwMjExX0hBU19SQ1xcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTM0LVxcdGRlZmF1bHQgTUFDODAyMTFfUkNfREVGQVVMVF9NSU5TVFJFTFxcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWc9NDE9Y29uZmlnIE1BQzgwMjExX1JDX0RFRkFVTFRfTUlOU1RSRUxcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy00Mi1cXHRib29sIFxcXCJNaW5zdHJlbFxcXCJcXG5uZXQvbWFjODAyMTEvS2NvbmZpZzo0MzpcXHRkZXBlbmRzIG9uIE1BQzgwMjExX1JDX01JTlNUUkVMXFxubmV0L21hYzgwMjExL0tjb25maWctNDQtXFx0aGVscFxcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWc9NTc9Y29tbWVudCBcXFwiU29tZSB3aXJlbGVzcyBkcml2ZXJzIHJlcXVpcmUgYSByYXRlIGNvbnRyb2wgYWxnb3JpdGhtXFxcIlxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjU4OlxcdGRlcGVuZHMgb24gTUFDODAyMTEgXFx1MDAyNlxcdTAwMjYgTUFDODAyMTFfSEFTX1JDPW5cXG5uZXQvbWFjODAyMTEvS2NvbmZpZy01OS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZz02MD1jb25maWcgTUFDODAyMTFfS1VOSVRfVEVTVFxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTYxLVxcdHRyaXN0YXRlIFxcXCJLVW5pdCB0ZXN0cyBmb3IgbWFjODAyMTFcXFwiIGlmICFLVU5JVF9BTExfVEVTVFNcXG5uZXQvbWFjODAyMTEvS2NvbmZpZzo2MjpcXHRkZXBlbmRzIG9uIEtVTklUXFxubmV0L21hYzgwMjExL0tjb25maWc6NjM6XFx0ZGVwZW5kcyBvbiBNQUM4MDIxMVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTY0LVxcdGRlZmF1bHQgS1VOSVRfQUxMX1RFU1RTXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZz03MD1jb25maWcgTUFDODAyMTFfTUVTSFxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTcxLVxcdGJvb2wgXFxcIkVuYWJsZSBtYWM4MDIxMSBtZXNoIG5ldHdvcmtpbmcgc3VwcG9ydFxcXCJcXG5uZXQvbWFjODAyMTEvS2NvbmZpZzo3MjpcXHRkZXBlbmRzIG9uIE1BQzgwMjExXFxubmV0L21hYzgwMjExL0tjb25maWctNzMtXFx0aGVscFxcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWc9Nzk9Y29uZmlnIE1BQzgwMjExX0xFRFNcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy04MC1cXHRib29sIFxcXCJFbmFibGUgTEVEIHRyaWdnZXJzXFxcIlxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjgxOlxcdGRlcGVuZHMgb24gTUFDODAyMTFcXG5uZXQvbWFjODAyMTEvS2NvbmZpZzo4MjpcXHRkZXBlbmRzIG9uIExFRFNfQ0xBU1M9eSB8fCBMRURTX0NMQVNTPU1BQzgwMjExXFxubmV0L21hYzgwMjExL0tjb25maWctODMtXFx0c2VsZWN0IExFRFNfVFJJR0dFUlNcXG4tLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnPTg4PWNvbmZpZyBNQUM4MDIxMV9ERUJVR0ZTXFxubmV0L21hYzgwMjExL0tjb25maWctODktXFx0Ym9vbCBcXFwiRXhwb3J0IG1hYzgwMjExIGludGVybmFscyBpbiBEZWJ1Z0ZTXFxcIlxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjkwOlxcdGRlcGVuZHMgb24gTUFDODAyMTEgXFx1MDAyNlxcdTAwMjYgQ0ZHODAyMTFfREVCVUdGU1xcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTkxLVxcdGhlbHBcXG4tLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnPTk3PWNvbmZpZyBNQUM4MDIxMV9NRVNTQUdFX1RSQUNJTkdcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy05OC1cXHRib29sIFxcXCJUcmFjZSBhbGwgbWFjODAyMTEgZGVidWcgbWVzc2FnZXNcXFwiXFxubmV0L21hYzgwMjExL0tjb25maWc6OTk6XFx0ZGVwZW5kcyBvbiBNQUM4MDIxMSBcXHUwMDI2XFx1MDAyNiBUUkFDSU5HXFxubmV0L21hYzgwMjExL0tjb25maWctMTAwLVxcdGhlbHBcXG4tLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnPTExMD1tZW51Y29uZmlnIE1BQzgwMjExX0RFQlVHX01FTlVcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xMTEtXFx0Ym9vbCBcXFwiU2VsZWN0IG1hYzgwMjExIGRlYnVnZ2luZyBmZWF0dXJlc1xcXCJcXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoxMTI6XFx0ZGVwZW5kcyBvbiBNQUM4MDIxMVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTExMy1cXHRoZWxwXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZz0xMTY9Y29uZmlnIE1BQzgwMjExX05PSU5MSU5FXFxubmV0L21hYzgwMjExL0tjb25maWctMTE3LVxcdGJvb2wgXFxcIkRvIG5vdCBpbmxpbmUgVFgvUlggaGFuZGxlcnNcXFwiXFxubmV0L21hYzgwMjExL0tjb25maWc6MTE4OlxcdGRlcGVuZHMgb24gTUFDODAyMTFfREVCVUdfTUVOVVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTExOS1cXHRoZWxwXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZz0xMzI9Y29uZmlnIE1BQzgwMjExX1ZFUkJPU0VfREVCVUdcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xMzMtXFx0Ym9vbCBcXFwiVmVyYm9zZSBkZWJ1Z2dpbmcgb3V0cHV0XFxcIlxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjEzNDpcXHRkZXBlbmRzIG9uIE1BQzgwMjExX0RFQlVHX01FTlVcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xMzUtXFx0aGVscFxcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWc9MTQzPWNvbmZpZyBNQUM4MDIxMV9NTE1FX0RFQlVHXFxubmV0L21hYzgwMjExL0tjb25maWctMTQ0LVxcdGJvb2wgXFxcIlZlcmJvc2UgbWFuYWdlZCBNTE1FIG91dHB1dFxcXCJcXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoxNDU6XFx0ZGVwZW5kcyBvbiBNQUM4MDIxMV9ERUJVR19NRU5VXFxubmV0L21hYzgwMjExL0tjb25maWctMTQ2LVxcdGhlbHBcXG4tLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnPTE1ND1jb25maWcgTUFDODAyMTFfU1RBX0RFQlVHXFxubmV0L21hYzgwMjExL0tjb25maWctMTU1LVxcdGJvb2wgXFxcIlZlcmJvc2Ugc3RhdGlvbiBkZWJ1Z2dpbmdcXFwiXFxubmV0L21hYzgwMjExL0tjb25maWc6MTU2OlxcdGRlcGVuZHMgb24gTUFDODAyMTFfREVCVUdfTUVOVVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTE1Ny1cXHRoZWxwXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZz0xNjM9Y29uZmlnIE1BQzgwMjExX0hUX0RFQlVHXFxubmV0L21hYzgwMjExL0tjb25maWctMTY0LVxcdGJvb2wgXFxcIlZlcmJvc2UgSFQgZGVidWdnaW5nXFxcIlxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjE2NTpcXHRkZXBlbmRzIG9uIE1BQzgwMjExX0RFQlVHX01FTlVcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xNjYtXFx0aGVscFxcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWc9MTc1PWNvbmZpZyBNQUM4MDIxMV9PQ0JfREVCVUdcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xNzYtXFx0Ym9vbCBcXFwiVmVyYm9zZSBPQ0IgZGVidWdnaW5nXFxcIlxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjE3NzpcXHRkZXBlbmRzIG9uIE1BQzgwMjExX0RFQlVHX01FTlVcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xNzgtXFx0aGVscFxcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWc9MTg2PWNvbmZpZyBNQUM4MDIxMV9JQlNTX0RFQlVHXFxubmV0L21hYzgwMjExL0tjb25maWctMTg3LVxcdGJvb2wgXFxcIlZlcmJvc2UgSUJTUyBkZWJ1Z2dpbmdcXFwiXFxubmV0L21hYzgwMjExL0tjb25maWc6MTg4OlxcdGRlcGVuZHMgb24gTUFDODAyMTFfREVCVUdfTUVOVVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTE4OS1cXHRoZWxwXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZz0xOTc9Y29uZmlnIE1BQzgwMjExX1BTX0RFQlVHXFxubmV0L21hYzgwMjExL0tjb25maWctMTk4LVxcdGJvb2wgXFxcIlZlcmJvc2UgcG93ZXJzYXZlIG1vZGUgZGVidWdnaW5nXFxcIlxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjE5OTpcXHRkZXBlbmRzIG9uIE1BQzgwMjExX0RFQlVHX01FTlVcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yMDAtXFx0aGVscFxcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWc9MjA5PWNvbmZpZyBNQUM4MDIxMV9NUExfREVCVUdcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yMTAtXFx0Ym9vbCBcXFwiVmVyYm9zZSBtZXNoIHBlZXIgbGluayBkZWJ1Z2dpbmdcXFwiXFxubmV0L21hYzgwMjExL0tjb25maWc6MjExOlxcdGRlcGVuZHMgb24gTUFDODAyMTFfREVCVUdfTUVOVVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjIxMjpcXHRkZXBlbmRzIG9uIE1BQzgwMjExX01FU0hcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yMTMtXFx0aGVscFxcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWc9MjIyPWNvbmZpZyBNQUM4MDIxMV9NUEFUSF9ERUJVR1xcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTIyMy1cXHRib29sIFxcXCJWZXJib3NlIG1lc2ggcGF0aCBkZWJ1Z2dpbmdcXFwiXFxubmV0L21hYzgwMjExL0tjb25maWc6MjI0OlxcdGRlcGVuZHMgb24gTUFDODAyMTFfREVCVUdfTUVOVVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjIyNTpcXHRkZXBlbmRzIG9uIE1BQzgwMjExX01FU0hcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yMjYtXFx0aGVscFxcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWc9MjM1PWNvbmZpZyBNQUM4MDIxMV9NSFdNUF9ERUJVR1xcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTIzNi1cXHRib29sIFxcXCJWZXJib3NlIG1lc2ggSFdNUCByb3V0aW5nIGRlYnVnZ2luZ1xcXCJcXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoyMzc6XFx0ZGVwZW5kcyBvbiBNQUM4MDIxMV9ERUJVR19NRU5VXFxubmV0L21hYzgwMjExL0tjb25maWc6MjM4OlxcdGRlcGVuZHMgb24gTUFDODAyMTFfTUVTSFxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTIzOS1cXHRoZWxwXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZz0yNDg9Y29uZmlnIE1BQzgwMjExX01FU0hfU1lOQ19ERUJVR1xcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTI0OS1cXHRib29sIFxcXCJWZXJib3NlIG1lc2ggc3luY2hyb25pemF0aW9uIGRlYnVnZ2luZ1xcXCJcXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoyNTA6XFx0ZGVwZW5kcyBvbiBNQUM4MDIxMV9ERUJVR19NRU5VXFxubmV0L21hYzgwMjExL0tjb25maWc6MjUxOlxcdGRlcGVuZHMgb24gTUFDODAyMTFfTUVTSFxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTI1Mi1cXHRoZWxwXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZz0yNTk9Y29uZmlnIE1BQzgwMjExX01FU0hfQ1NBX0RFQlVHXFxubmV0L21hYzgwMjExL0tjb25maWctMjYwLVxcdGJvb2wgXFxcIlZlcmJvc2UgbWVzaCBjaGFubmVsIHN3aXRjaCBkZWJ1Z2dpbmdcXFwiXFxubmV0L21hYzgwMjExL0tjb25maWc6MjYxOlxcdGRlcGVuZHMgb24gTUFDODAyMTFfREVCVUdfTUVOVVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjI2MjpcXHRkZXBlbmRzIG9uIE1BQzgwMjExX01FU0hcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yNjMtXFx0aGVscFxcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWc9MjcwPWNvbmZpZyBNQUM4MDIxMV9NRVNIX1BTX0RFQlVHXFxubmV0L21hYzgwMjExL0tjb25maWctMjcxLVxcdGJvb2wgXFxcIlZlcmJvc2UgbWVzaCBwb3dlcnNhdmUgZGVidWdnaW5nXFxcIlxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjI3MjpcXHRkZXBlbmRzIG9uIE1BQzgwMjExX0RFQlVHX01FTlVcXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoyNzM6XFx0ZGVwZW5kcyBvbiBNQUM4MDIxMV9NRVNIXFxubmV0L21hYzgwMjExL0tjb25maWctMjc0LVxcdGhlbHBcXG4tLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnPTI4MT1jb25maWcgTUFDODAyMTFfVERMU19ERUJVR1xcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTI4Mi1cXHRib29sIFxcXCJWZXJib3NlIFRETFMgZGVidWdnaW5nXFxcIlxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjI4MzpcXHRkZXBlbmRzIG9uIE1BQzgwMjExX0RFQlVHX01FTlVcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yODQtXFx0aGVscFxcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWc9MjkzPWNvbmZpZyBNQUM4MDIxMV9ERUJVR19DT1VOVEVSU1xcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTI5NC1cXHRib29sIFxcXCJFeHRyYSBzdGF0aXN0aWNzIGZvciBUWC9SWCBkZWJ1Z2dpbmdcXFwiXFxubmV0L21hYzgwMjExL0tjb25maWc6Mjk1OlxcdGRlcGVuZHMgb24gTUFDODAyMTFfREVCVUdfTUVOVVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjI5NjpcXHRkZXBlbmRzIG9uIE1BQzgwMjExX0RFQlVHRlNcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yOTctXFx0aGVscFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yNFQwMToxNjo0OC41NjcwMTkwNTNaIiwiU2VxIjoxMywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDQyNzU1ODE1NiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipNeSBJbml0aWFsIFRob3VnaHRzIG9uIE1BQzgwMjExIGFuZCBDRkc4MDIxMSBDb25maWd1cmF0aW9uKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgZW5hYmxpbmcgYE1BQzgwMjExYC4gUmlnaHQsIGl0IHJlbGllcyBvbiBgQ0ZHODAyMTFgLCB0aGF0IG11Y2ggaXMgb2J2aW91cy4gVGhlcmVmb3JlLCBhIGdvb2QgZmlyc3Qgc3RlcCBpcyB0byBlbnN1cmUgYm90aCBgTUFDODAyMTFgIGFuZCBgQ0ZHODAyMTFgIGFyZSBlbmFibGVkIHdpdGhpbiB0aGUga2VybmVsIGNvbmZpZ3VyYXRpb24uIEl0J3MgYSBkZXBlbmRlbmN5LCBzbyBpdCdzIGEgbm8tYnJhaW5lci5cblxuTm93LCB3YWl0IGEgc2Vjb25kLiBJIHJlbWVtYmVyIHNlZWluZyB0aGlzIHBhdGNo4oCmICphaGEqLCBpdCdzIGluIGBuZXQvbWFjODAyMTEvY2ZnLmNgLiBJIG5lZWQgdG8gZGVsdmUgYSBiaXQgZGVlcGVyIGFuZCBzZWUgd2hhdCdzIHdoYXQuIEkgc2VlIHRoYXQgdGhlIGBpZWVlODAyMTFfc2V0X21vbl9vcHRpb25zYCBmdW5jdGlvbiBpcyByZWxldmFudCBoZXJlOyBpdCdzIGJlaW5nIGNhbGxlZCBmcm9tIGJvdGggYGllZWU4MDIxMV9hZGRfaWZhY2VgIGFuZCBgaWVlZTgwMjExX2NoYW5nZV9pZmFjZWAuIFRoYXQgZ2l2ZXMgbWUgYSBmZXcgc3RhcnRpbmcgcG9pbnRzIHRvIHVuZGVyc3RhbmQgaG93IHRoaXMgaXMgdXNlZCB3aXRoaW4gdGhlIHN5c3RlbS4gQXJlIHRoZXJlIGFueSBvdGhlciBjcml0aWNhbCBmdW5jdGlvbnMgSSBzaG91bGQgYmUgYXdhcmUgb2Y/IEknbGwgcXVpY2tseSBsb29rLCBJIHNlZSB0aGF0IGBtYWM4MDIxMV9jb25maWdfb3BzYCBpcyB1c2VkIGluIGBuZXQvbWFjODAyMTEvbWFpbi5jYC4gVGhhdCB3YXJyYW50cyBhIGNsb3NlciBsb29rIGFzIHdlbGwuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjEwNzEyLCJPdXRwdXRUb2tlbnMiOjM5LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTUwLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI0VDAxOjE2OjUyLjk5NDU4MTE3OVoiLCJTZXEiOjE0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDg1MDU0MTUsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwibWFjODAyMTFfY29uZmlnX29wc1wiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJuZXQvbWFjODAyMTEvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIm5ldC9tYWM4MDIxMS9jZmcuYz01NTg1PWllZWU4MDIxMV9zZXRfZXBjcyhzdHJ1Y3Qgd2lwaHkgKndpcGh5LCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBib29sIGVuYWJsZSlcXG4tLVxcbm5ldC9tYWM4MDIxMS9jZmcuYy01NTkxLVxcbm5ldC9tYWM4MDIxMS9jZmcuYzo1NTkyOmNvbnN0IHN0cnVjdCBjZmc4MDIxMV9vcHMgbWFjODAyMTFfY29uZmlnX29wcyA9IHtcXG5uZXQvbWFjODAyMTEvY2ZnLmMtNTU5My1cXHQuYWRkX3ZpcnR1YWxfaW50ZiA9IGllZWU4MDIxMV9hZGRfaWZhY2UsXFxuLS1cXG5uZXQvbWFjODAyMTEvaWVlZTgwMjExX2kuaC0zOC1cXG5uZXQvbWFjODAyMTEvaWVlZTgwMjExX2kuaDozOTpleHRlcm4gY29uc3Qgc3RydWN0IGNmZzgwMjExX29wcyBtYWM4MDIxMV9jb25maWdfb3BzO1xcbm5ldC9tYWM4MDIxMS9pZWVlODAyMTFfaS5oLTQwLVxcbi0tXFxubmV0L21hYzgwMjExL21haW4uYz03OTE9c3RydWN0IGllZWU4MDIxMV9odyAqaWVlZTgwMjExX2FsbG9jX2h3X25tKHNpemVfdCBwcml2X2RhdGFfbGVuLFxcbi0tXFxubmV0L21hYzgwMjExL21haW4uYy04NTAtXFxubmV0L21hYzgwMjExL21haW4uYzo4NTE6XFx0d2lwaHkgPSB3aXBoeV9uZXdfbm0oXFx1MDAyNm1hYzgwMjExX2NvbmZpZ19vcHMsIHByaXZfc2l6ZSwgcmVxdWVzdGVkX25hbWUpO1xcbm5ldC9tYWM4MDIxMS9tYWluLmMtODUyLVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yNFQwMToxNjo1My4wNDMwODk3MzRaIiwiU2VxIjoxNSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NjUwNzI1NDExOCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipNeSBJbml0aWFsIFRob3VnaHRzIG9uIE1hYzgwMjExIEluaXRpYWxpemF0aW9uIGFuZCBJbnRlcmZhY2UgTWFuYWdlbWVudCoqXG5cbk9rYXksIHNvIEknbSB0cmFjaW5nIHRoZSBpbml0aWFsaXphdGlvbiBwYXRoIGZvciBtYWM4MDIxMSBkcml2ZXJzLiBJdCBsb29rcyBsaWtlIGB3aXBoeV9uZXdfbm1gIGlzIGNhbGxlZCB3aXRoaW4gYGllZWU4MDIxMV9hbGxvY19od19ubWAsIHdoaWNoIGluIHR1cm4gaXMgY2FsbGVkIGJ5IGBpZWVlODAyMTFfYWxsb2NfaHdgLiBUaGlzIGBpZWVlODAyMTFfYWxsb2NfaHdgIGZ1bmN0aW9uIGFwcGVhcnMgdG8gYmUgdGhlIGNlbnRyYWwgcG9pbnQgZm9yIGluaXRpYWxpemluZyB0aGUgbWFjODAyMTEgaGFyZHdhcmUgYWJzdHJhY3Rpb24gbGF5ZXIsIHJpZ2h0PyBBIGtleSBzdGFydGluZyBwb2ludC5cblxuTm93LCBmb2N1c2luZyBvbiBpbnRlcmZhY2UgbWFuYWdlbWVudCwgYGllZWU4MDIxMV9hZGRfaWZhY2VgIGFuZCBgaWVlZTgwMjExX2NoYW5nZV9pZmFjZWAganVtcCBvdXQgYXQgbWUgYXMgdGhlIGtleSBlbnRyeSBwb2ludHMuIFRoZXkgc2VlbSB0byBiZSB0aGUgcHJpbWFyeSBmdW5jdGlvbnMgcmVzcG9uc2libGUgZm9yIGFkZGluZyBhbmQgbW9kaWZ5aW5nIG5ldHdvcmsgaW50ZXJmYWNlcyB3aXRoaW4gdGhlIG1hYzgwMjExIGZyYW1ld29yay4gYGNmZzgwMjExYCB1c2VzIGBtYWM4MDIxMV9jb25maWdfb3BzYCB0byBjYWxsIHRoZXNlIGZ1bmN0aW9ucy4gVGhlcmVmb3JlLCB0aGVzZSBhcmUgZGVmaW5pdGVseSBnb29kIHBvaW50cyB0byBmb2N1cyBvbi4gVGhleSBzZWVtIGxpa2UgcHJpbWUgY2FuZGlkYXRlcyB0byB1bmRlcnN0YW5kIGhvdyBjaGFuZ2VzIGFyZSBhcHBsaWVkIGFuZCBob3cgbmV3IGRldmljZXMgYXJlIGNyZWF0ZWQuXG5cbkkgYWxzbyBzYXcgdGhhdCBgaWVlZTgwMjExX3NldF9tb25fb3B0aW9uc2Agd2FzIGEgZnVuY3Rpb24gb2YgaW50ZXJlc3QsIGFuZCBJIGhhZCBhIGJpdCBvZiBhIG1lbnRhbCBoaWNjdXAg4oCTIGlzIHRoaXMgYSBzdGF0aWMgZnVuY3Rpb24sIGFuZCBpcyBpdCBwb3RlbnRpYWxseSBpbmxpbmVkPyBJIHJlbWVtYmVyIGl0IHdhcyBtb2RpZmllZC4gV2hpbGUgc3RhdGljIGZ1bmN0aW9ucyBjYW4gc29tZXRpbWVzIGJlIHNtYWxsIGFuZCBvcHRpbWl6ZWQgYXdheSBieSB0aGUgY29tcGlsZXIsIGBpZWVlODAyMTFfc2V0X21vbl9vcHRpb25zYCBpcyBub3QgbmVjZXNzYXJpbHkgc21hbGwuIEl0IG1pZ2h0IGJlIGlubGluZWQuLi4gTGV0J3MgY2hlY2sgdGhlIGNvZGUgdG8gYmUgc3VyZS4gSSdsbCBuZWVkIHRvIGNvbmZpcm0gaWYgaXQncyBhY3R1YWxseSBpbmxpbmVkIGJlZm9yZSBJIGludmVzdCBtb3JlIHRpbWUgdGhlcmUuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjExNTk2LCJPdXRwdXRUb2tlbnMiOjQ1LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjQ0LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI0VDAxOjE2OjU5LjU1MDM0ODczMloiLCJTZXEiOjE2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDk4OTk4OTUsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiaWVlZTgwMjExX3NldF9tb25fb3B0aW9uc1wiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJuZXQvbWFjODAyMTEvY2ZnLmNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwibmV0L21hYzgwMjExL2NmZy5jPTUwPXN0YXRpYyB2b2lkIGllZWU4MDIxMV9zZXRfbXVfbWltb19mb2xsb3coc3RydWN0IGllZWU4MDIxMV9zdWJfaWZfZGF0YSAqc2RhdGEsXFxuLS1cXG5uZXQvbWFjODAyMTEvY2ZnLmMtOTUtXFxubmV0L21hYzgwMjExL2NmZy5jOjk2OnN0YXRpYyBpbnQgaWVlZTgwMjExX3NldF9tb25fb3B0aW9ucyhzdHJ1Y3QgaWVlZTgwMjExX3N1Yl9pZl9kYXRhICpzZGF0YSxcXG5uZXQvbWFjODAyMTEvY2ZnLmMtOTctXFx0XFx0XFx0XFx0ICAgICBzdHJ1Y3QgdmlmX3BhcmFtcyAqcGFyYW1zKVxcbi0tXFxubmV0L21hYzgwMjExL2NmZy5jPTIxNT1zdGF0aWMgc3RydWN0IHdpcmVsZXNzX2RldiAqaWVlZTgwMjExX2FkZF9pZmFjZShzdHJ1Y3Qgd2lwaHkgKndpcGh5LFxcbi0tXFxubmV0L21hYzgwMjExL2NmZy5jLTIzMi1cXHRpZiAodHlwZSA9PSBOTDgwMjExX0lGVFlQRV9NT05JVE9SKSB7XFxubmV0L21hYzgwMjExL2NmZy5jOjIzMzpcXHRcXHRlcnIgPSBpZWVlODAyMTFfc2V0X21vbl9vcHRpb25zKHNkYXRhLCBwYXJhbXMpO1xcbm5ldC9tYWM4MDIxMS9jZmcuYy0yMzQtXFx0XFx0aWYgKGVycikge1xcbi0tXFxubmV0L21hYzgwMjExL2NmZy5jPTI2OD1zdGF0aWMgaW50IGllZWU4MDIxMV9jaGFuZ2VfaWZhY2Uoc3RydWN0IHdpcGh5ICp3aXBoeSxcXG4tLVxcbm5ldC9tYWM4MDIxMS9jZmcuYy0zMTAtXFx0aWYgKHNkYXRhLVxcdTAwM2V2aWYudHlwZSA9PSBOTDgwMjExX0lGVFlQRV9NT05JVE9SKSB7XFxubmV0L21hYzgwMjExL2NmZy5jOjMxMTpcXHRcXHRyZXQgPSBpZWVlODAyMTFfc2V0X21vbl9vcHRpb25zKHNkYXRhLCBwYXJhbXMpO1xcbm5ldC9tYWM4MDIxMS9jZmcuYy0zMTItXFx0XFx0aWYgKHJldClcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjRUMDE6MTY6NTkuNjAwMjUzNDQ3WiIsIlNlcSI6MTcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjUyMDI0OTIzOTUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqRm9jdXNpbmcgb24gSW50ZXJmYWNlIENvbmZpZ3VyYXRpb24qKlxuXG5Pa2F5LCBzbyBJJ20gZ29pbmcgdG8gZmxhZyBgaWVlZTgwMjExX2FkZF9pZmFjZWAgYW5kIGBpZWVlODAyMTFfY2hhbmdlX2lmYWNlYCBhcyB0aGUga2V5IEZvY3VzU3ltYm9scyBoZXJlLiBUaGVzZSBhcmUgdGhlIGZ1bmN0aW9ucyBkaXJlY3RseSByZWxhdGVkIHRvIGFkZGluZyBhbmQgbW9kaWZ5aW5nIHdpcmVsZXNzIGludGVyZmFjZXMsIHdoaWNoIGlzIHdoYXQgSSdtIGludGVyZXN0ZWQgaW4gZXhwbG9yaW5nLiBUaGUgcmVsZXZhbnQgY29uZmlndXJhdGlvbnMgSSdtIHdvcmtpbmcgd2l0aCBhcmUgYE1BQzgwMjExYCBhbmQgYENGRzgwMjExYC5cblxuTm93LCBhIHF1aWNrIGNoZWNrLi4uIEkgbmVlZCB0byBjb25zaWRlciB3aGV0aGVyIGBNQUM4MDIxMWAgaXMgZXZlbiByZWFjaGFibGUgaW4gdGhlIHZpcnR1YWxpemVkIHRlc3RpbmcgZW52aXJvbm1lbnQgSSdtIGxpa2VseSB1c2luZy4gQWgsIHJpZ2h0ISBgbWFjODAyMTFfaHdzaW1gLiBUaGF0J3MgdGhlIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIGRyaXZlciBmb3IgbWFjODAyMTEuIFBlcmZlY3QsIGl0IHNob3VsZCBiZSBmaW5lLiBJJ2xsIG5lZWQgdG8gZG91YmxlIGNoZWNrIHRoYXQgYE1BQzgwMjExX0hXU0lNYCBpcyBkZWZpbmVkIGluIHRoZSBjb25maWd1cmF0aW9uLCB0aG91Z2gsIGp1c3QgdG8gYmUgYWJzb2x1dGVseSBzdXJlLlxuXG5cbiIsIklucHV0VG9rZW5zIjoxMjcyNCwiT3V0cHV0VG9rZW5zIjozNywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjEyNywiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0yNFQwMToxNzowNC44MDI3NDk3ODFaIiwiU2VxIjoxOCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjgyNjgxMjMyLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNvbmZpZyBNQUM4MDIxMV9IV1NJTVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvdmlydHVhbC9LY29uZmlnOjE6Y29uZmlnIE1BQzgwMjExX0hXU0lNXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvdmlydHVhbC9LY29uZmlnLTItXFx0dHJpc3RhdGUgXFxcIlNpbXVsYXRlZCByYWRpbyB0ZXN0aW5nIHRvb2wgZm9yIG1hYzgwMjExXFxcIlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yNFQwMToxNzowNC44ODU0NDE1NDNaIiwiU2VxIjoxOSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzI5Njg1OTUyNCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipNeSBDb25maWd1cmF0aW9uIFN0cmF0ZWd5KipcblxuT2theSwgc28gSSd2ZSBpZGVudGlmaWVkIHRoYXQgYE1BQzgwMjExX0hXU0lNYCBpcyBpbmRlZWQgYSBjb25maWd1cmF0aW9uIG9wdGlvbi4gVGhhdCdzIHN0cmFpZ2h0Zm9yd2FyZCBlbm91Z2guIE15IGZpcnN0IHN0ZXAgaXMgdG8gYWRkIGl0IGRpcmVjdGx5IHRvIG15IEVuYWJsZUNvbmZpZ3MgbGlzdC4gSXTigJlzIGltcG9ydGFudCB0byBrZWVwIHRyYWNrIG9mIHRoZXNlIHRoaW5ncyBzbyBJIHJlbWVtYmVyIHdoYXQgSeKAmXZlIGVuYWJsZWQgbGF0ZXIuXG5cbk5vdywgYmVmb3JlIEkgcHJvY2VlZCBmdXJ0aGVyLCBJIHdhbnQgdG8gY29uZmlybSB0aGF0IHRoZXJlIGFyZW4ndCBhbnkgZGVwZW5kZW5jaWVzIGFzc29jaWF0ZWQgd2l0aCBgTUFDODAyMTFfSFdTSU1gLiBJIG5lZWQgdG8gZW5zdXJlIGl0IGRvZXNuJ3QgcmVseSBvbiBhbnkgb3RoZXIgY29uZmlndXJhdGlvbnMgb3IgcGFja2FnZXMgdGhhdCBJIG1pZ2h0IG5vdCBoYXZlIGFscmVhZHkgYWNjb3VudGVkIGZvci4gQXZvaWRpbmcgZGVwZW5kZW5jeSBjb25mbGljdHMgaXMgcGFyYW1vdW50IHRvIGEgc21vb3RoIGJ1aWxkLCBhZnRlciBhbGwuIExldCdzIHNlZSB3aGF0IHRoZSBzeXN0ZW0gdGVsbHMgbWUuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjEzMTcwLCJPdXRwdXRUb2tlbnMiOjMyLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NjAsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjRUMDE6MTc6MDguMTgyMzEzMjY3WiIsIlNlcSI6MjAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0ODM4Nzk3NSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJkZXBlbmRzIG9uXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL3ZpcnR1YWwvS2NvbmZpZ1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy92aXJ0dWFsL0tjb25maWc9MT1jb25maWcgTUFDODAyMTFfSFdTSU1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy92aXJ0dWFsL0tjb25maWctMi1cXHR0cmlzdGF0ZSBcXFwiU2ltdWxhdGVkIHJhZGlvIHRlc3RpbmcgdG9vbCBmb3IgbWFjODAyMTFcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvdmlydHVhbC9LY29uZmlnOjM6XFx0ZGVwZW5kcyBvbiBNQUM4MDIxMVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3ZpcnR1YWwvS2NvbmZpZy00LVxcdGhlbHBcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3ZpcnR1YWwvS2NvbmZpZz0xND1jb25maWcgVklSVF9XSUZJXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvdmlydHVhbC9LY29uZmlnLTE1LVxcdHRyaXN0YXRlIFxcXCJXaWZpIHdyYXBwZXIgZm9yIGV0aGVybmV0IGRyaXZlcnNcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvdmlydHVhbC9LY29uZmlnOjE2OlxcdGRlcGVuZHMgb24gQ0ZHODAyMTFcXG5kcml2ZXJzL25ldC93aXJlbGVzcy92aXJ0dWFsL0tjb25maWctMTctXFx0aGVscFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yNFQwMToxNzowOC4yMzA3MDc4NTJaIiwiU2VxIjoyMSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6Nzk4NjY1ODcwMCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipNeSBBc3Nlc3NtZW50IG9mIHRoZSBQYXRjaCoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggYW5kIGltbWVkaWF0ZWx5IHNlZSB0aGF0IGl0J3MgYWRkcmVzc2luZyBhIHBvdGVudGlhbCBOVUxMIHBvaW50ZXIgZGVyZWZlcmVuY2Ugd2l0aGluIHRoZSBgbWFjODAyMTFgIGNvcmUuIEl0IHNlZW1zIHRvIGJlIHRyaWdnZXJlZCB3aGVuIHRyeWluZyB0byBzZXQgbW9uaXRvciBvcHRpb25zLCBzcGVjaWZpY2FsbHkgZm9yIGFuIGFjdGl2ZSBtb25pdG9yIGludGVyZmFjZSB0aGF0IGxhY2tzIGEgVFggcXVldWUuIFRoaXMgaXMgaW4gdGhlIGBpZWVlODAyMTFfc2V0X21vbl9vcHRpb25zYCBmdW5jdGlvbi4gVGhlIHBhdGNoIGl0c2VsZiBpcyBzaW1wbGU7IGl0J3MgYWRkaW5nIGEgY2hlY2sgdG8gcHJldmVudCB0aGlzIGZyb20gaGFwcGVuaW5nLlxuXG5UaGlua2luZyBpdCB0aHJvdWdoLCB0aGUgcmVhY2hhYmlsaXR5IG9mIHRoaXMgY2hhbmdlIHNlZW1zIHRvIHN0ZW0gZnJvbSBgbmw4MDIxMWAgbmV0bGluayBjb21tYW5kcywgbGlrZSBjcmVhdGluZyBhIG5ldyB2aXJ0dWFsIGludGVyZmFjZSAoYE5MODAyMTFfQ01EX05FV19JTlRFUkZBQ0VgKSBvciBtb2RpZnlpbmcgYW4gZXhpc3Rpbmcgb25lIChgTkw4MDIxMV9DTURfU0VUX0lOVEVSRkFDRWApLiBUaGlzIGlzIGEga2V5IGRldGFpbCwgaXQgc2hvd3MgbWUgdGhlIGF2ZW51ZXMgZm9yIHRyaWdnZXJpbmcgdGhlIHZ1bG5lcmFiaWxpdHkuXG5cbkdpdmVuIHRoaXMsIHRoZSBtb3N0IGRpcmVjdCBwYXRoIHRvIHRlc3RpbmcgdGhpcyB3aWxsIGJlIHRocm91Z2ggdGhvc2UgTmV0bGluayBpbnRlcmZhY2VzLiBUaGUgZ29vZCBuZXdzIGlzLCBJIGNhbiB0ZXN0IGl0IHVzaW5nIHRoZSBgbWFjODAyMTFfaHdzaW1gIGRyaXZlciwgd2hpY2ggaXMgZ3JlYXQgYmVjYXVzZSBpdCBhbGxvd3MgZm9yIGNvbnRyb2xsZWQgc29mdHdhcmUgZW11bGF0aW9uLiBJIHNob3VsZCBkZWZpbml0ZWx5IGVuYWJsZSBgQ0ZHODAyMTFgLCBgTUFDODAyMTFgLCBhbmQgYE1BQzgwMjExX0hXU0lNYCBpbiB0aGUgY29uZmlndXJhdGlvbiB0byBoYXZlIHRoZSBjb3JyZWN0IHRlc3RpbmcgZW52aXJvbm1lbnQuXG5cblRoZSBrZXkgZnVuY3Rpb25zIHRvIGtlZXAgaW4gbWluZCwgYW5kIHBvc3NpYmx5IGV4YW1pbmUgZnVydGhlciwgYXJlIGBpZWVlODAyMTFfYWRkX2lmYWNlYCBhbmQgYGllZWU4MDIxMV9jaGFuZ2VfaWZhY2VgLiBUaGVzZSBhcmUgbXkgZm9jdXMgc3ltYm9scyB0byB3YXRjaCBpbiB0aGUgY29kZSBiYXNlLlxuXG5JbiBzaG9ydCwgdGhpcyBpcyBhIGZ1bmN0aW9uYWwgcGF0Y2ggdGhhdCBjb3VsZCBiZSBzdWJqZWN0IHRvIGZ1enppbmcuIEkgbmVlZCB0byBtYWtlIHN1cmUgSSBhZGQgdGhlIHJpZ2h0IGNvbmZpZyBvcHRpb25zIGFuZCBzZXR1cCB0aGUgdGVzdCBlbnZpcm9ubWVudCB0byBmdWxseSBleHBsb3JlIHRoZSB2dWxuZXJhYmlsaXR5LCBhbmQgZW5zdXJlIHRoZSBmaXggaXMgY29ycmVjdC5cblxuXG4iLCJJbnB1dFRva2VucyI6MTM2MTQsIk91dHB1dFRva2VucyI6MTk0LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NDU1LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI0VDAxOjE3OjE2LjIxNzM2OTQwMloiLCJTZXEiOjIyLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjgwMTI3MDMyLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJDRkc4MDIxMVwiLFxuICAgIFwiTUFDODAyMTFcIixcbiAgICBcIk1BQzgwMjExX0hXU0lNXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiaWVlZTgwMjExX2FkZF9pZmFjZVwiLFxuICAgIFwiaWVlZTgwMjExX2NoYW5nZV9pZmFjZVwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGFkZHMgYSBjaGVjayBpbiBgaWVlZTgwMjExX3NldF9tb25fb3B0aW9uc2AgdG8gcHJldmVudCBhIE5VTEwgcG9pbnRlciBkZXJlZmVyZW5jZSB3aGVuIGNvbmZpZ3VyaW5nIGFuIGFjdGl2ZSBtb25pdG9yIGludGVyZmFjZSB3aXRob3V0IGEgVFggcXVldWUuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgbWFjODAyMTEgY29yZSBsb2dpYywgcmVhY2hhYmxlIHZpYSB0aGUgbmw4MDIxMSBuZXRsaW5rIGludGVyZmFjZSAoZS5nLiwgd2hlbiBhZGRpbmcgb3IgY2hhbmdpbmcgYSB2aXJ0dWFsIGludGVyZmFjZSkuIEl0IGNhbiBiZSB0ZXN0ZWQgdXNpbmcgdGhlIHNvZnR3YXJlLWVtdWxhdGVkIGBtYWM4MDIxMV9od3NpbWAgZHJpdmVyLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIkNGRzgwMjExXCIsXG4gICAgXCJNQUM4MDIxMVwiLFxuICAgIFwiTUFDODAyMTFfSFdTSU1cIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJpZWVlODAyMTFfYWRkX2lmYWNlXCIsXG4gICAgXCJpZWVlODAyMTFfY2hhbmdlX2lmYWNlXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggYWRkcyBhIGNoZWNrIGluIGBpZWVlODAyMTFfc2V0X21vbl9vcHRpb25zYCB0byBwcmV2ZW50IGEgTlVMTCBwb2ludGVyIGRlcmVmZXJlbmNlIHdoZW4gY29uZmlndXJpbmcgYW4gYWN0aXZlIG1vbml0b3IgaW50ZXJmYWNlIHdpdGhvdXQgYSBUWCBxdWV1ZS4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSBtYWM4MDIxMSBjb3JlIGxvZ2ljLCByZWFjaGFibGUgdmlhIHRoZSBubDgwMjExIG5ldGxpbmsgaW50ZXJmYWNlIChlLmcuLCB3aGVuIGFkZGluZyBvciBjaGFuZ2luZyBhIHZpcnR1YWwgaW50ZXJmYWNlKS4gSXQgY2FuIGJlIHRlc3RlZCB1c2luZyB0aGUgc29mdHdhcmUtZW11bGF0ZWQgYG1hYzgwMjExX2h3c2ltYCBkcml2ZXIuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI0VDAxOjE3OjE2LjI5NzUwMjQzM1oiLCJTZXEiOjIzLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6IklmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NjUyMDI0MTE5NywiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI0VDAxOjE3OjE2LjI5ODA2OTIxM1oiLCJTZXEiOjI0LCJOZXN0aW5nIjoyLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoia21zYW4tZXZhbHVhdG9yIiwiTW9kZWwiOiJiZXN0LWV4cGVuc2l2ZSIsIkR1cmF0aW9uIjo2NTE5NjY4NTk2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJLTVNBTlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBhZGRzIGEgdmFsaWRhdGlvbiBjaGVjayBpbiBgaWVlZTgwMjExX3NldF9tb25fb3B0aW9uc2AgdG8gcHJldmVudCBzZXR0aW5nIHRoZSBgTU9OSVRPUl9GTEFHX0FDVElWRWAgZmxhZyBpZiBgc2RhdGEtXFx1MDAzZXZpZi50eHFgIGlzIE5VTEwuIFRoaXMgcHJldmVudHMgYSBwb3RlbnRpYWwgTlVMTCBwb2ludGVyIGRlcmVmZXJlbmNlIG9yIGludmFsaWQgc3RhdGUgd2hlbiB0aGUgZHJpdmVyIGlzIGhhbmRlZCBhIE5VTEwgYHZpZi1cXHUwMDNldHhxYC4gTlVMTCBwb2ludGVyIGRlcmVmZXJlbmNlcyBhbmQgaW52YWxpZCBzdGF0ZSBidWdzIGFyZSBjYXVnaHQgYnkgc3RhbmRhcmQga2VybmVsIGNoZWNrcyBhbmQgS0FTQU4uIFRoZSBwYXRjaCBkb2VzIG5vdCBpbnRyb2R1Y2Ugb3IgZXhwb3NlIGFueSB1bmluaXRpYWxpemVkIG1lbW9yeSByZWFkcyBvciBpbmZvLWxlYWtzLCBzbyBhIGRlZGljYXRlZCBLTVNBTiBmdXp6aW5nIHNlc3Npb24gaXMgbm90IG5lZWRlZC5cIixcbiAgXCJOZWVkc0tNU0FOXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiJZb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgc2VjdXJpdHkgZW5naW5lZXIgc3BlY2lhbGl6aW5nIGluIGtlcm5lbCBtZW1vcnlcbmVycm9yIGRldGVjdG9ycyAoS0FTQU4gYW5kIEtNU0FOKS4gWW91ciBqb2IgaXMgdG8gcmV2aWV3IHRoZSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kXG5kZXRlcm1pbmUgaWYgdGhlIGNvZGUgY2hhbmdlcyBqdXN0aWZ5IHNwYXduaW5nIGEgZGVkaWNhdGVkIEtNU0FOIChLZXJuZWxNZW1vcnlTYW5pdGl6ZXIpXG5mdXp6aW5nIHNlc3Npb24gaW4gYWRkaXRpb24gdG8gc3RhbmRhcmQgS0FTQU4gZnV6emluZy5cblxuQ1JJVElDQUwgRElTVElOQ1RJT04gQkVUV0VFTiBLQVNBTiBBTkQgS01TQU46XG4tIFN0YW5kYXJkIEtBU0FOIGtlcm5lbCBidWlsZHMgKHVwc3RyZWFtLWFwcGFybW9yLWthc2FuLmNvbmZpZykgYWxyZWFkeSBlbmFibGVcbiAgYSBjb21wcmVoZW5zaXZlIHN1aXRlIG9mIGRlYnVnZ2luZyB0b29scyBhbmQgc2FuaXRpemVycywgaW5jbHVkaW5nIEtBU0FOXG4gIChvdXQtb2YtYm91bmRzIGFjY2Vzc2VzLCB1c2UtYWZ0ZXItZnJlZSwgZG91YmxlIGZyZWUsIGludmFsaWQgZnJlZSksIExPQ0tERVBcbiAgKGxvY2tpbmcgYnVncyBhbmQgZGVhZGxvY2tzKSwgVUItc2FuaXRpemVycywgYW5kIG1lbW9yeSBjb3JydXB0aW9uIGNoZWNrcy5cbi0gS01TQU4gKEtlcm5lbE1lbW9yeVNhbml0aXplcikgZGV0ZWN0cyByZWFkcyBvZiBVTklOSVRJQUxJWkVEIG1lbW9yeSAoc3RhY2ssIGhlYXAsXG4gIG9yIHBhZ2UgYWxsb2NhdGlvbnMpIGFuZCBrZXJuZWwtdG8tdXNlciBtZW1vcnkgaW5mby1sZWFrcy5cblxuUnVsZTogVEhFUkUgSVMgTk8gU0VOU0UgSU4gUlVOTklORyBBIEtNU0FOIFNFU1NJT04gSUYgQSBCVUcgQ0FOIEJFIENBVUdIVCBCWSBLQVNBTixcbkxPQ0tERVAsIE9SIE9USEVSIFNUQU5EQVJEIEJVRyBERVRFQ1RPUlMuXG5BIGRlZGljYXRlZCBLTVNBTiBmdXp6aW5nIHNlc3Npb24gaW5jdXJzIHNpZ25pZmljYW50IHJlc291cmNlIGNvc3RzLiBZb3UgbXVzdCBPTkxZXG5zZXQgTmVlZHNLTVNBTj10cnVlIGlmIHRoZSBjb2RlIGNoYW5nZXMgaW50cm9kdWNlIG9yIGV4cG9zZSBVTklOSVRJQUxJWkVEIE1FTU9SWSByaXNrc1xudGhhdCBhcmUgZGV0ZWN0ZWQgT05MWSBieSBLTVNBTi5cblxuTG9vayBob2xpc3RpY2FsbHkgYXQgdGhlIHBhdGNoIHNlcmllcyBhbmQgc3Vycm91bmRpbmcgY29kZS4gRXZlbiBpZiBubyBkaXJlY3RcbnVuaW5pdGlhbGl6ZWQgZmllbGQgYWNjZXNzZXMgb3IgbmV3IGJ1ZmZlciBhbGxvY2F0aW9ucyBhcmUgYWRkZWQgaW4gdGhlIGRpZmYgaXRzZWxmLFxuYSBwYXRjaCBtYXkgYWx0ZXIgY29udHJvbCBmbG93LCBib3VuZHMgY2hlY2tpbmcsIG9yIGRhdGEgbGVuZ3RoIGNhbGN1bGF0aW9ucyBpbiB3YXlzXG50aGF0IGNoYW5nZSBob3cgdGhlIHJlc3Qgb2YgdGhlIGNvZGUgb3BlcmF0ZXMgb24gZXhpc3RpbmcgYnVmZmVycyAoZS5nLiBhbGxvd2luZ1xudW5pbml0aWFsaXplZCBzdGFjay9oZWFwIG1lbW9yeSB0byBiZSByZWFkLCBjb3BpZWQgdG8gdXNlciBzcGFjZSwgb3IgdXNlZCBpbiBjb250cm9sXG5mbG93KS4gRG8gbm90IGhlc2l0YXRlIHRvIHVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGluc3BlY3QgdGhlIHN1cnJvdW5kaW5nIGNvZGUsXG5jYWxsZWQgZnVuY3Rpb25zLCBhbmQgY2FsbGVycy5cblxuU2V0IE5lZWRzS01TQU49dHJ1ZSBPTkxZIElGIHRoZSBwYXRjaCBpbnRyb2R1Y2VzIG9yIG1vZGlmaWVzOlxuMS4gS2VybmVsIHN0cnVjdHVyZXMgc2VudCB0byB1c2VyIHNwYWNlICh2aWEgY29weV90b191c2VyLCBwdXRfdXNlciwgbmV0bGluayBza2JcbiAgIGF0dHJpYnV0ZXMsIGlvY3RsIG91dHB1dCBhcmd1bWVudHMsIHNvY2tldCBvcHRpb25zLCBvciBCUEYgYnVmZmVycykgd2hlcmUgZmllbGRzXG4gICBvciBzdHJ1Y3R1cmUgcGFkZGluZyBtaWdodCBub3QgYmUgZnVsbHkgaW5pdGlhbGl6ZWQvemVyb2VkLlxuMi4gQ29uZGl0aW9uYWwgbG9naWMgb3IgYnJhbmNoaW5nIHRoYXQgZGVwZW5kcyBvbiBwb3RlbnRpYWxseSB1bmluaXRpYWxpemVkIHZhcmlhYmxlc1xuICAgb3Igc3RydWN0IGZpZWxkcy5cbjMuIEFsbG9jYXRpb24gb3IgaW5pdGlhbGl6YXRpb24gb2YgY29tcGxleCBkYXRhIHN0cnVjdHVyZXMgd2hlcmUgdW5pbml0aWFsaXplZCBmaWVsZHNcbiAgIGNvdWxkIGJlIHJlYWQgbGF0ZXIgaW4gcmVhY2hhYmxlIGNvZGUgcGF0aHMuXG40LiBCb3VuZHMgY2hlY2tzLCBsZW5ndGhzLCBvciBsb2dpYyBpbiBhIHdheSB0aGF0IGFsbG93cyBzdXJyb3VuZGluZyBjb2RlIHRvIGFjY2Vzc1xuICAgdW5pbml0aWFsaXplZCBieXRlcyBvZiBleGlzdGluZyBidWZmZXJzLlxuXG5TZXQgTmVlZHNLTVNBTj1mYWxzZSBJRjpcbi0gVGhlIGNvZGUgY2hhbmdlcyBwcmltYXJpbHkgcmlzayBvdXQtb2YtYm91bmRzIGFjY2VzcywgYXJyYXkgb3ZlcmZsb3dzLCBOVUxMIHBvaW50ZXJcbiAgZGVyZWZlcmVuY2VzLCBsb2NraW5nIGRlYWRsb2Nrcywgb3IgdXNlLWFmdGVyLWZyZWUgYnVncyAodGhlc2UgYXJlIGFscmVhZHkgY2F1Z2h0XG4gIGJ5IEtBU0FOLCBMT0NLREVQLCBvciBzdGFuZGFyZCBidWcgZGV0ZWN0b3JzKS5cbi0gQWxsIHN0YWNrL2hlYXAgc3RydWN0dXJlcyB0b3VjaGVkIG9yIGludHJvZHVjZWQgYnkgdGhlIHBhdGNoIGFyZSBmdWxseSB6ZXJvZWRcbiAgb3IgaW5pdGlhbGl6ZWQgKGUuZy4gdXNpbmcgPSB7MH0sIG1lbXNldCwga3phbGxvYykgYmVmb3JlIGJlaW5nIHJlYWQgb3IgY29waWVkLlxuLSBUaGUgcGF0Y2ggZG9lcyBub3QgaW50cm9kdWNlIGFueSByaXNrIG9mIHVuaW5pdGlhbGl6ZWQgbWVtb3J5IHVzYWdlIG9yIGluZm8tbGVha3MuXG5cblVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGluc3BlY3QgdGhlIHN1cnJvdW5kaW5nIGNvZGUgaWYgbmVjZXNzYXJ5LCB0aGVuIHByb3ZpZGVcbmRldGFpbGVkIEtNU0FOUmVhc29uaW5nIGNvbnRyYXN0aW5nIEtBU0FOIHZzIEtNU0FOIGFwcGxpY2FiaWxpdHkgZm9yIHRoaXMgcGF0Y2guXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCBhNjE3YzY3N2Q0MzdhNWZkNWMxODQ1NzEyOGRmOTIxOGU3MTRjMzFlXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIE1vbiBBdWcgMjQgMDE6MTY6MjIgMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9uZXQvbWFjODAyMTEvY2ZnLmMgYi9uZXQvbWFjODAyMTEvY2ZnLmNcbmluZGV4IGI2MTYzZGNjN2U5MmMuLjUyM2NlZjBhNTUyNjEgMTAwNjQ0XG4tLS0gYS9uZXQvbWFjODAyMTEvY2ZnLmNcbisrKyBiL25ldC9tYWM4MDIxMS9jZmcuY1xuQEAgLTExNSw2ICsxMTUsMTUgQEAgc3RhdGljIGludCBpZWVlODAyMTFfc2V0X21vbl9vcHRpb25zKHN0cnVjdCBpZWVlODAyMTFfc3ViX2lmX2RhdGEgKnNkYXRhLFxuIFx0XHRcdHJldHVybiAtRUJVU1k7XG4gXHR9XG4gXG4rXHQvKlxuK1x0ICogQW4gYWN0aXZlIG1vbml0b3IgaXMgcGFzc2VkIHRvIHRoZSBkcml2ZXIgYW5kIG5lZWRzIGEgVFhRLCB3aGljaCBpc1xuK1x0ICogcmVzZXJ2ZWQgd2l0aCB0aGUgbmV0ZGV2IGluIGllZWU4MDIxMV9pZl9hZGQoKSBhbmQgY2Fubm90IGJlIGFkZGVkXG4rXHQgKiBsYXRlci4gIEFuIGludGVyZmFjZSBjcmVhdGVkIHdpdGhvdXQgdGhlIGZsYWcgaGFzIG5vbmUsIHNvIHJlZnVzZSB0b1xuK1x0ICogc2V0IGl0IHJhdGhlciB0aGFuIGhhbmQgdGhlIGRyaXZlciBhIE5VTEwgdmlmLVx1MDAzZXR4cS5cbitcdCAqL1xuK1x0aWYgKChwYXJhbXMtXHUwMDNlZmxhZ3MgXHUwMDI2IE1PTklUT1JfRkxBR19BQ1RJVkUpIFx1MDAyNlx1MDAyNiAhc2RhdGEtXHUwMDNldmlmLnR4cSlcbitcdFx0cmV0dXJuIC1FT1BOT1RTVVBQO1xuK1xuIFx0LyogdmFsaWRhdGUgd2hldGhlciBNVS1NSU1PIGNhbiBiZSBjb25maWd1cmVkICovXG4gXHRpZiAoIWllZWU4MDIxMV9od19jaGVjayhcdTAwMjZsb2NhbC1cdTAwM2VodywgV0FOVF9NT05JVE9SX1ZJRikgXHUwMDI2XHUwMDI2XG4gXHQgICAgIWllZWU4MDIxMV9od19jaGVjayhcdTAwMjZsb2NhbC1cdTAwM2VodywgTk9fVklSVFVBTF9NT05JVE9SKSBcdTAwMjZcdTAwMjZcbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI0VDAxOjE3OjE2LjI5ODA3MDAwNFoiLCJTZXEiOjI1LCJOZXN0aW5nIjozLCJUeXBlIjoibGxtIiwiTmFtZSI6Imttc2FuLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo2NTE5NjI3MTY2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKk15IEFzc2Vzc21lbnQgb2YgdGhlIFBhdGNoKipcblxuT2theSwgc28gdGhpcyBwYXRjaCBpbiBgbmV0L21hYzgwMjExL2NmZy5jYCBpcyBzdHJhaWdodGZvcndhcmQuIEl0J3MgaW4gYGllZWU4MDIxMV9zZXRfbW9uX29wdGlvbnNgLCB3aGljaCBJIHJlY29nbml6ZSBhcyBhIGNvbmZpZ3VyYXRpb24gZnVuY3Rpb24uIFRoZSBnaXN0IG9mIGl0IGlzIHRoaXM6IHRoZXkncmUgYWRkaW5nIGEgY2hlY2suIElmIHdlIGhhdmUgdGhlIGBNT05JVE9SX0ZMQUdfQUNUSVZFYCBmbGFnIHNldCBhbmQsIGNydWNpYWxseSwgdGhlIGFzc29jaWF0ZWQgYHR4cWAgZm9yIHRoZSB2aXJ0dWFsIGludGVyZmFjZSAoYHNkYXRhLVx1MDAzZXZpZi50eHFgKSBpcyBOVUxMLCB0aGUgZnVuY3Rpb24gbm93IHJldHVybnMgYC1FT1BOT1RTVVBQYC5cblxuVGhpcyBpbW1lZGlhdGVseSB0ZWxscyBtZSB0aGV5J3JlIHRyeWluZyB0byBwcmV2ZW50IGEgTlVMTCBwb2ludGVyIGRlcmVmZXJlbmNlIG9yIGEgc2ltaWxhciBtZW1vcnkgYWNjZXNzIGlzc3VlLiBFc3NlbnRpYWxseSwgdGhlIGNvZGUgd2FzIHZ1bG5lcmFibGUgaWYgc29tZW9uZSB0cmllZCB0byBlbmFibGUgYWN0aXZlIG1vbml0b3IgbW9kZSB3aXRob3V0IGEgdmFsaWQgdHJhbnNtaXQgcXVldWUuIEtBU0FOIG9yIHRoZSBrZXJuZWwncyBub3JtYWwgY2hlY2tzIHdvdWxkIGxpa2VseSBoYXZlIGNhdWdodCBpdCBldmVudHVhbGx5LCBidXQgdGhpcyBwcm9hY3RpdmVseSBwcmV2ZW50cyBpdC4gSXTigJlzIGEgZ29vZCBkZWZlbnNpdmUgcHJvZ3JhbW1pbmcgcHJhY3RpY2UuXG5cbkkgcXVpY2tseSBsb29rZWQgYXQgdGhlIHN1cnJvdW5kaW5nIGNvZGUgdG8gY29uZmlybSBteSB1bmRlcnN0YW5kaW5nLiBUaGUgY29kZSBzbmlwcGV0IGFkZGVkIGlzIGNsZWFuLCBhbmQgdGhlIGNoZWNrIGl0c2VsZiBpcyBzaW1wbGUgYW5kIGRpcmVjdC4gVGhlIGdvb2QgbmV3cyBpcywgdGhlcmUncyBubyBvYnZpb3VzIHJpc2sgb2YgdW5pbml0aWFsaXplZCBtZW1vcnkgdXNhZ2Ugb3IgYW55IG5ldyBpbmZvcm1hdGlvbiBsZWFrcyBpbnRyb2R1Y2VkIGJ5IHRoaXMgdmFsaWRhdGlvbi4gSXQncyBqdXN0IGEgc2FmZWd1YXJkIGFnYWluc3QgYSBzcGVjaWZpYywgbGlrZWx5IHVuY29tbW9uLCBzY2VuYXJpby4gVGhlIGBOZWVkc0tNU0FOYCBmbGFnIGlzIGNvcnJlY3RseSBzZXQgdG8gZmFsc2UsIGFzIHRoZSBwYXRjaCBkb2Vzbid0IGludm9sdmUgY29tcGxleCBtZW1vcnkgbWFuYWdlbWVudCBjaGFuZ2VzLiBPdmVyYWxsLCB0aGlzIHBhdGNoIHNlZW1zIGxpa2UgYSBzZW5zaWJsZSBhbmQgbG93LXJpc2sgaW1wcm92ZW1lbnQuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjIxNDUsIk91dHB1dFRva2VucyI6MTQ5LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjU5LCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjRUMDE6MTc6MjIuODE3NzAyMjFaIiwiU2VxIjoyNiwiTmVzdGluZyI6MywiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjozMzEzMCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIktNU0FOUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGFkZHMgYSB2YWxpZGF0aW9uIGNoZWNrIGluIGBpZWVlODAyMTFfc2V0X21vbl9vcHRpb25zYCB0byBwcmV2ZW50IHNldHRpbmcgdGhlIGBNT05JVE9SX0ZMQUdfQUNUSVZFYCBmbGFnIGlmIGBzZGF0YS1cXHUwMDNldmlmLnR4cWAgaXMgTlVMTC4gVGhpcyBwcmV2ZW50cyBhIHBvdGVudGlhbCBOVUxMIHBvaW50ZXIgZGVyZWZlcmVuY2Ugb3IgaW52YWxpZCBzdGF0ZSB3aGVuIHRoZSBkcml2ZXIgaXMgaGFuZGVkIGEgTlVMTCBgdmlmLVxcdTAwM2V0eHFgLiBOVUxMIHBvaW50ZXIgZGVyZWZlcmVuY2VzIGFuZCBpbnZhbGlkIHN0YXRlIGJ1Z3MgYXJlIGNhdWdodCBieSBzdGFuZGFyZCBrZXJuZWwgY2hlY2tzIGFuZCBLQVNBTi4gVGhlIHBhdGNoIGRvZXMgbm90IGludHJvZHVjZSBvciBleHBvc2UgYW55IHVuaW5pdGlhbGl6ZWQgbWVtb3J5IHJlYWRzIG9yIGluZm8tbGVha3MsIHNvIGEgZGVkaWNhdGVkIEtNU0FOIGZ1enppbmcgc2Vzc2lvbiBpcyBub3QgbmVlZGVkLlwiLFxuICBcIk5lZWRzS01TQU5cIjogZmFsc2Vcbn0iLCJSZXN1bHRzIjoie1xuICBcIktNU0FOUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGFkZHMgYSB2YWxpZGF0aW9uIGNoZWNrIGluIGBpZWVlODAyMTFfc2V0X21vbl9vcHRpb25zYCB0byBwcmV2ZW50IHNldHRpbmcgdGhlIGBNT05JVE9SX0ZMQUdfQUNUSVZFYCBmbGFnIGlmIGBzZGF0YS1cXHUwMDNldmlmLnR4cWAgaXMgTlVMTC4gVGhpcyBwcmV2ZW50cyBhIHBvdGVudGlhbCBOVUxMIHBvaW50ZXIgZGVyZWZlcmVuY2Ugb3IgaW52YWxpZCBzdGF0ZSB3aGVuIHRoZSBkcml2ZXIgaXMgaGFuZGVkIGEgTlVMTCBgdmlmLVxcdTAwM2V0eHFgLiBOVUxMIHBvaW50ZXIgZGVyZWZlcmVuY2VzIGFuZCBpbnZhbGlkIHN0YXRlIGJ1Z3MgYXJlIGNhdWdodCBieSBzdGFuZGFyZCBrZXJuZWwgY2hlY2tzIGFuZCBLQVNBTi4gVGhlIHBhdGNoIGRvZXMgbm90IGludHJvZHVjZSBvciBleHBvc2UgYW55IHVuaW5pdGlhbGl6ZWQgbWVtb3J5IHJlYWRzIG9yIGluZm8tbGVha3MsIHNvIGEgZGVkaWNhdGVkIEtNU0FOIGZ1enppbmcgc2Vzc2lvbiBpcyBub3QgbmVlZGVkLlwiLFxuICBcIk5lZWRzS01TQU5cIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/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-workflowm6gmb[1] Phase: Succeeded StartedAt: 2026-08-24 01:17:33 +0000 UTC FinishedAt: 2026-08-24 01:17:33 +0000 UTC Input: nil Output: nil --------- Name: series-workflowm6gmb[1].abort-on-skip-outcome Phase: Skipped StartedAt: 2026-08-24 01:17:33 +0000 UTC FinishedAt: 2026-08-24 01:17:33 +0000 UTC Input: nil Output: nil --------- Name: series-workflowm6gmb[2] Phase: Succeeded StartedAt: 2026-08-24 01:17:33 +0000 UTC FinishedAt: 2026-08-24 04:57:08 +0000 UTC Input: nil Output: nil --------- Name: series-workflowm6gmb[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"29703d7813f991e4ef80741ee15fe30e529a2192","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_add_iface","ieee80211_change_iface"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"29703d7813f991e4ef80741ee15fe30e529a2192","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"1e936e1b-85b7-42a7-aafa-5dc9c1c2afea","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN) Phase: Succeeded StartedAt: 2026-08-24 01:17:33 +0000 UTC FinishedAt: 2026-08-24 04:57:08 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:element,Default:nil,Value:*{"base":{"arch":"amd64","commit_hash":"29703d7813f991e4ef80741ee15fe30e529a2192","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},"fuzz":{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_add_iface","ieee80211_change_iface"],"skip_cover_check":false},"patched":{"arch":"amd64","commit_hash":"29703d7813f991e4ef80741ee15fe30e529a2192","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"1e936e1b-85b7-42a7-aafa-5dc9c1c2afea","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},"retest":null,"track":"KASAN"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: nil --------- Name: series-workflowm6gmb[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"29703d7813f991e4ef80741ee15fe30e529a2192","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_add_iface","ieee80211_change_iface"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"29703d7813f991e4ef80741ee15fe30e529a2192","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"1e936e1b-85b7-42a7-aafa-5dc9c1c2afea","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[0] Phase: Succeeded StartedAt: 2026-08-24 01:17:33 +0000 UTC FinishedAt: 2026-08-24 01:17:44 +0000 UTC Input: nil Output: nil --------- Name: series-workflowm6gmb[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"29703d7813f991e4ef80741ee15fe30e529a2192","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_add_iface","ieee80211_change_iface"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"29703d7813f991e4ef80741ee15fe30e529a2192","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"1e936e1b-85b7-42a7-aafa-5dc9c1c2afea","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[0].save-base-req Phase: Succeeded StartedAt: 2026-08-24 01:17:33 +0000 UTC FinishedAt: 2026-08-24 01:17:38 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"29703d7813f991e4ef80741ee15fe30e529a2192","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{Artifact{Name:artifact,Path:/tmp/artifact,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowm6gmb/series-workflowm6gmb-convert-artifact-3163687271/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowm6gmb[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"29703d7813f991e4ef80741ee15fe30e529a2192","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_add_iface","ieee80211_change_iface"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"29703d7813f991e4ef80741ee15fe30e529a2192","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"1e936e1b-85b7-42a7-aafa-5dc9c1c2afea","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[1] Phase: Succeeded StartedAt: 2026-08-24 01:17:44 +0000 UTC FinishedAt: 2026-08-24 01:34:15 +0000 UTC Input: nil Output: nil --------- Name: series-workflowm6gmb[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"29703d7813f991e4ef80741ee15fe30e529a2192","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_add_iface","ieee80211_change_iface"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"29703d7813f991e4ef80741ee15fe30e529a2192","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"1e936e1b-85b7-42a7-aafa-5dc9c1c2afea","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[1].base-build Phase: Succeeded StartedAt: 2026-08-24 01:17:44 +0000 UTC FinishedAt: 2026-08-24 01:34:15 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:findings,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:test-name,Default:nil,Value:*[KASAN] Build Base,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:smoke-build,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:session-id,Default:nil,Value:*6f92facf-6ec3-45ca-98b2-02fce43a3df5,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-workflowm6gmb/series-workflowm6gmb-convert-artifact-3163687271/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": "71e106e6-d6fd-4e6b-90b0-71eb124a595b", "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-workflowm6gmb/series-workflowm6gmb-build-action-3142385661/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowm6gmb[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"29703d7813f991e4ef80741ee15fe30e529a2192","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_add_iface","ieee80211_change_iface"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"29703d7813f991e4ef80741ee15fe30e529a2192","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"1e936e1b-85b7-42a7-aafa-5dc9c1c2afea","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[1].base-build(0) Phase: Succeeded StartedAt: 2026-08-24 01:17:44 +0000 UTC FinishedAt: 2026-08-24 01:34:05 +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:*6f92facf-6ec3-45ca-98b2-02fce43a3df5,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-workflowm6gmb/series-workflowm6gmb-convert-artifact-3163687271/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": "71e106e6-d6fd-4e6b-90b0-71eb124a595b", "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-workflowm6gmb/series-workflowm6gmb-build-action-3142385661/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowm6gmb[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"29703d7813f991e4ef80741ee15fe30e529a2192","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_add_iface","ieee80211_change_iface"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"29703d7813f991e4ef80741ee15fe30e529a2192","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"1e936e1b-85b7-42a7-aafa-5dc9c1c2afea","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[2] Phase: Succeeded StartedAt: 2026-08-24 01:34:15 +0000 UTC FinishedAt: 2026-08-24 01:34:15 +0000 UTC Input: nil Output: nil --------- Name: series-workflowm6gmb[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"29703d7813f991e4ef80741ee15fe30e529a2192","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_add_iface","ieee80211_change_iface"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"29703d7813f991e4ef80741ee15fe30e529a2192","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"1e936e1b-85b7-42a7-aafa-5dc9c1c2afea","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[2].abort-if-base-build-failed Phase: Skipped StartedAt: 2026-08-24 01:34:15 +0000 UTC FinishedAt: 2026-08-24 01:34:15 +0000 UTC Input: nil Output: nil --------- Name: series-workflowm6gmb[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"29703d7813f991e4ef80741ee15fe30e529a2192","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_add_iface","ieee80211_change_iface"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"29703d7813f991e4ef80741ee15fe30e529a2192","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"1e936e1b-85b7-42a7-aafa-5dc9c1c2afea","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[3] Phase: Succeeded StartedAt: 2026-08-24 01:34:15 +0000 UTC FinishedAt: 2026-08-24 01:34:25 +0000 UTC Input: nil Output: nil --------- Name: series-workflowm6gmb[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"29703d7813f991e4ef80741ee15fe30e529a2192","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_add_iface","ieee80211_change_iface"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"29703d7813f991e4ef80741ee15fe30e529a2192","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"1e936e1b-85b7-42a7-aafa-5dc9c1c2afea","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[3].save-patched-req Phase: Succeeded StartedAt: 2026-08-24 01:34:15 +0000 UTC FinishedAt: 2026-08-24 01:34:20 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"29703d7813f991e4ef80741ee15fe30e529a2192","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"1e936e1b-85b7-42a7-aafa-5dc9c1c2afea","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{Artifact{Name:artifact,Path:/tmp/artifact,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowm6gmb/series-workflowm6gmb-convert-artifact-2452230422/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowm6gmb[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"29703d7813f991e4ef80741ee15fe30e529a2192","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_add_iface","ieee80211_change_iface"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"29703d7813f991e4ef80741ee15fe30e529a2192","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"1e936e1b-85b7-42a7-aafa-5dc9c1c2afea","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[4] Phase: Succeeded StartedAt: 2026-08-24 01:34:25 +0000 UTC FinishedAt: 2026-08-24 01:36:26 +0000 UTC Input: nil Output: nil --------- Name: series-workflowm6gmb[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"29703d7813f991e4ef80741ee15fe30e529a2192","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_add_iface","ieee80211_change_iface"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"29703d7813f991e4ef80741ee15fe30e529a2192","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"1e936e1b-85b7-42a7-aafa-5dc9c1c2afea","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[4].boot-test-base Phase: Succeeded StartedAt: 2026-08-24 01:34:25 +0000 UTC FinishedAt: 2026-08-24 01:36:16 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*71e106e6-d6fd-4e6b-90b0-71eb124a595b,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-workflowm6gmb/series-workflowm6gmb-build-action-3142385661/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-workflowm6gmb[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"29703d7813f991e4ef80741ee15fe30e529a2192","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_add_iface","ieee80211_change_iface"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"29703d7813f991e4ef80741ee15fe30e529a2192","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"1e936e1b-85b7-42a7-aafa-5dc9c1c2afea","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[5] Phase: Succeeded StartedAt: 2026-08-24 01:36:26 +0000 UTC FinishedAt: 2026-08-24 01:36:26 +0000 UTC Input: nil Output: nil --------- Name: series-workflowm6gmb[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"29703d7813f991e4ef80741ee15fe30e529a2192","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_add_iface","ieee80211_change_iface"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"29703d7813f991e4ef80741ee15fe30e529a2192","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"1e936e1b-85b7-42a7-aafa-5dc9c1c2afea","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[5].abort-if-base-boot-failed Phase: Skipped StartedAt: 2026-08-24 01:36:26 +0000 UTC FinishedAt: 2026-08-24 01:36:26 +0000 UTC Input: nil Output: nil --------- Name: series-workflowm6gmb[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"29703d7813f991e4ef80741ee15fe30e529a2192","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_add_iface","ieee80211_change_iface"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"29703d7813f991e4ef80741ee15fe30e529a2192","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"1e936e1b-85b7-42a7-aafa-5dc9c1c2afea","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[6] Phase: Succeeded StartedAt: 2026-08-24 01:36:26 +0000 UTC FinishedAt: 2026-08-24 01:52:42 +0000 UTC Input: nil Output: nil --------- Name: series-workflowm6gmb[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"29703d7813f991e4ef80741ee15fe30e529a2192","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_add_iface","ieee80211_change_iface"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"29703d7813f991e4ef80741ee15fe30e529a2192","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"1e936e1b-85b7-42a7-aafa-5dc9c1c2afea","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[6].patched-build Phase: Succeeded StartedAt: 2026-08-24 01:36:26 +0000 UTC FinishedAt: 2026-08-24 01:52:42 +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:*6f92facf-6ec3-45ca-98b2-02fce43a3df5,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-workflowm6gmb/series-workflowm6gmb-convert-artifact-2452230422/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": "0c5ef515-de84-4469-a41e-fea8d5264e52", "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-workflowm6gmb/series-workflowm6gmb-build-action-4231582234/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowm6gmb[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"29703d7813f991e4ef80741ee15fe30e529a2192","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_add_iface","ieee80211_change_iface"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"29703d7813f991e4ef80741ee15fe30e529a2192","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"1e936e1b-85b7-42a7-aafa-5dc9c1c2afea","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[6].patched-build(0) Phase: Succeeded StartedAt: 2026-08-24 01:36:26 +0000 UTC FinishedAt: 2026-08-24 01:52:32 +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:*6f92facf-6ec3-45ca-98b2-02fce43a3df5,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-workflowm6gmb/series-workflowm6gmb-convert-artifact-2452230422/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": "0c5ef515-de84-4469-a41e-fea8d5264e52", "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-workflowm6gmb/series-workflowm6gmb-build-action-4231582234/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowm6gmb[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"29703d7813f991e4ef80741ee15fe30e529a2192","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_add_iface","ieee80211_change_iface"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"29703d7813f991e4ef80741ee15fe30e529a2192","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"1e936e1b-85b7-42a7-aafa-5dc9c1c2afea","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[7] Phase: Succeeded StartedAt: 2026-08-24 01:52:42 +0000 UTC FinishedAt: 2026-08-24 01:52:42 +0000 UTC Input: nil Output: nil --------- Name: series-workflowm6gmb[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"29703d7813f991e4ef80741ee15fe30e529a2192","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_add_iface","ieee80211_change_iface"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"29703d7813f991e4ef80741ee15fe30e529a2192","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"1e936e1b-85b7-42a7-aafa-5dc9c1c2afea","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[7].abort-if-patched-build-failed Phase: Skipped StartedAt: 2026-08-24 01:52:42 +0000 UTC FinishedAt: 2026-08-24 01:52:42 +0000 UTC Input: nil Output: nil --------- Name: series-workflowm6gmb[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"29703d7813f991e4ef80741ee15fe30e529a2192","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_add_iface","ieee80211_change_iface"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"29703d7813f991e4ef80741ee15fe30e529a2192","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"1e936e1b-85b7-42a7-aafa-5dc9c1c2afea","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[8] Phase: Succeeded StartedAt: 2026-08-24 01:52:42 +0000 UTC FinishedAt: 2026-08-24 01:54:39 +0000 UTC Input: nil Output: nil --------- Name: series-workflowm6gmb[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"29703d7813f991e4ef80741ee15fe30e529a2192","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_add_iface","ieee80211_change_iface"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"29703d7813f991e4ef80741ee15fe30e529a2192","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"1e936e1b-85b7-42a7-aafa-5dc9c1c2afea","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[8].boot-test-patched Phase: Succeeded StartedAt: 2026-08-24 01:52:42 +0000 UTC FinishedAt: 2026-08-24 01:54:29 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*0c5ef515-de84-4469-a41e-fea8d5264e52,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-workflowm6gmb/series-workflowm6gmb-build-action-4231582234/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-workflowm6gmb[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"29703d7813f991e4ef80741ee15fe30e529a2192","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_add_iface","ieee80211_change_iface"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"29703d7813f991e4ef80741ee15fe30e529a2192","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"1e936e1b-85b7-42a7-aafa-5dc9c1c2afea","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[10] Phase: Succeeded StartedAt: 2026-08-24 01:54:39 +0000 UTC FinishedAt: 2026-08-24 04:57:08 +0000 UTC Input: nil Output: nil --------- Name: series-workflowm6gmb[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"29703d7813f991e4ef80741ee15fe30e529a2192","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_add_iface","ieee80211_change_iface"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"29703d7813f991e4ef80741ee15fe30e529a2192","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"1e936e1b-85b7-42a7-aafa-5dc9c1c2afea","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[10].run-fuzz Phase: Succeeded StartedAt: 2026-08-24 01:54:39 +0000 UTC FinishedAt: 2026-08-24 04:57:08 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:config,Default:nil,Value:*{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_add_iface","ieee80211_change_iface"],"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:*71e106e6-d6fd-4e6b-90b0-71eb124a595b,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*0c5ef515-de84-4469-a41e-fea8d5264e52,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-workflowm6gmb/series-workflowm6gmb-build-action-3142385661/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-workflowm6gmb/series-workflowm6gmb-build-action-4231582234/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: nil --------- Name: series-workflowm6gmb[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"29703d7813f991e4ef80741ee15fe30e529a2192","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_add_iface","ieee80211_change_iface"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"29703d7813f991e4ef80741ee15fe30e529a2192","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"1e936e1b-85b7-42a7-aafa-5dc9c1c2afea","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[10].run-fuzz[0] Phase: Succeeded StartedAt: 2026-08-24 01:54:39 +0000 UTC FinishedAt: 2026-08-24 01:54:49 +0000 UTC Input: nil Output: nil --------- Name: series-workflowm6gmb[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"29703d7813f991e4ef80741ee15fe30e529a2192","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_add_iface","ieee80211_change_iface"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"29703d7813f991e4ef80741ee15fe30e529a2192","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"1e936e1b-85b7-42a7-aafa-5dc9c1c2afea","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[10].run-fuzz[0].save-fuzz-config Phase: Succeeded StartedAt: 2026-08-24 01:54:39 +0000 UTC FinishedAt: 2026-08-24 01:54:44 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_add_iface","ieee80211_change_iface"],"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-workflowm6gmb/series-workflowm6gmb-convert-artifact-2050362299/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowm6gmb[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"29703d7813f991e4ef80741ee15fe30e529a2192","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_add_iface","ieee80211_change_iface"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"29703d7813f991e4ef80741ee15fe30e529a2192","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"1e936e1b-85b7-42a7-aafa-5dc9c1c2afea","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[10].run-retest Phase: Skipped StartedAt: 2026-08-24 01:54:39 +0000 UTC FinishedAt: 2026-08-24 01:54:39 +0000 UTC Input: nil Output: nil --------- Name: series-workflowm6gmb[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"29703d7813f991e4ef80741ee15fe30e529a2192","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_add_iface","ieee80211_change_iface"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"29703d7813f991e4ef80741ee15fe30e529a2192","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"1e936e1b-85b7-42a7-aafa-5dc9c1c2afea","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[9] Phase: Succeeded StartedAt: 2026-08-24 01:54:39 +0000 UTC FinishedAt: 2026-08-24 01:54:39 +0000 UTC Input: nil Output: nil --------- Name: series-workflowm6gmb[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"29703d7813f991e4ef80741ee15fe30e529a2192","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_add_iface","ieee80211_change_iface"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"29703d7813f991e4ef80741ee15fe30e529a2192","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"1e936e1b-85b7-42a7-aafa-5dc9c1c2afea","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[9].abort-if-patched-boot-failed Phase: Skipped StartedAt: 2026-08-24 01:54:39 +0000 UTC FinishedAt: 2026-08-24 01:54:39 +0000 UTC Input: nil Output: nil --------- Name: series-workflowm6gmb[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"29703d7813f991e4ef80741ee15fe30e529a2192","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_add_iface","ieee80211_change_iface"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"29703d7813f991e4ef80741ee15fe30e529a2192","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"1e936e1b-85b7-42a7-aafa-5dc9c1c2afea","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[10].run-fuzz[1] Phase: Succeeded StartedAt: 2026-08-24 01:54:49 +0000 UTC FinishedAt: 2026-08-24 04:57:08 +0000 UTC Input: nil Output: nil --------- Name: series-workflowm6gmb[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"29703d7813f991e4ef80741ee15fe30e529a2192","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_add_iface","ieee80211_change_iface"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"29703d7813f991e4ef80741ee15fe30e529a2192","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"1e936e1b-85b7-42a7-aafa-5dc9c1c2afea","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[10].run-fuzz[1].fuzz Phase: Succeeded StartedAt: 2026-08-24 01:54:49 +0000 UTC FinishedAt: 2026-08-24 04:57:00 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*71e106e6-d6fd-4e6b-90b0-71eb124a595b,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*0c5ef515-de84-4469-a41e-fea8d5264e52,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-workflowm6gmb/series-workflowm6gmb-build-action-3142385661/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-workflowm6gmb/series-workflowm6gmb-build-action-4231582234/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-workflowm6gmb/series-workflowm6gmb-convert-artifact-2050362299/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,}