Name: series-workflowcdkvp Phase: Failed StartedAt: 2026-09-06 07:42:06 +0000 UTC FinishedAt: 2026-09-06 08:10:17 +0000 UTC Input: nil Output: nil --------- Name: series-workflowcdkvp[0] Phase: Succeeded StartedAt: 2026-09-06 07:42:06 +0000 UTC FinishedAt: 2026-09-06 08:10:07 +0000 UTC Input: nil Output: nil --------- Name: series-workflowcdkvp[0].run-triage Phase: Succeeded StartedAt: 2026-09-06 07:42:06 +0000 UTC FinishedAt: 2026-09-06 08:10:07 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "AI determined the patch has no functional impact", "targets": null, "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzA2IDA4OjA4PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7S01TQU5SZWFzb25pbmcmIzM0OzogJiMzNDsmIzM0OywKICAmIzM0O05lZWRzS01TQU4mIzM0OzogZmFsc2UsCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgYGF0aF9kcmFpbl90eHFfbGlzdCgpYCBpbiBgZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuY2AsIHdoaWNoIGJlbG9uZ3MgdG8gdGhlIGBhdGg5a2AgZHJpdmVyIGZvciBBdGhlcm9zIDgwMi4xMW4gUENJIGFuZCBBSEIgZGV2aWNlcy4gVGhpcyBoYXJkd2FyZSBpcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIChlLmcuLCBRRU1VIG9yIEdDRSksIG1ha2luZyB0aGUgbW9kaWZpZWQgY29kZSBzdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUgZm9yIGZ1enppbmcuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzA2IDA4OjA4PC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5yZWFkLXBhdGNoLWRpZmY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtQYXRjaERpZmYmIzM0OzogJiMzNDtjb21taXQgYjMwMTJjZjlhMmVlNjUxNzU3YzQ2ZTdmOTMzNGU5NTMwM2I3MTQ4NFxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBTdW4gU2VwIDYgMDg6MDg6NTYgMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmNcbmluZGV4IDg5ZDhiMzE3ODc4NDYuLjg5OTMwZWFmMWZkMzEgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jXG4mIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jXG5AQCAtMTg4NCw4ICYjNDM7MTg4NCwxNyBAQCBzdGF0aWMgdm9pZCBhdGhfZHJhaW5fdHhxX2xpc3Qoc3RydWN0IGF0aF9zb2Z0YyAqc2MsIHN0cnVjdCBhdGhfdHhxICp0eHEsXG4gXHRcdGJmID0gbGlzdF9maXJzdF9lbnRyeShsaXN0LCBzdHJ1Y3QgYXRoX2J1ZiwgbGlzdCk7XG4gXG4gXHRcdGlmIChiZi1cdTAwM2ViZl9zdGF0ZS5zdGFsZSkge1xuLVx0XHRcdGxpc3RfZGVsKFx1MDAyNmJmLVx1MDAzZWxpc3QpO1xuJiM0MztcdFx0XHRzdHJ1Y3Qgc2tfYnVmZiAqc2tiID0gYmYtXHUwMDNlYmZfbXBkdTtcbiBcbiYjNDM7XHRcdFx0bGlzdF9kZWwoXHUwMDI2YmYtXHUwMDNlbGlzdCk7XG4mIzQzO1x0XHRcdGlmIChiZi1cdTAwM2ViZl9idWZfYWRkcikge1xuJiM0MztcdFx0XHRcdGRtYV91bm1hcF9zaW5nbGUoc2MtXHUwMDNlZGV2LCBiZi1cdTAwM2ViZl9idWZfYWRkcixcbiYjNDM7XHRcdFx0XHRcdFx0IHNrYiA/IHNrYi1cdTAwM2VsZW4gOiAwLFxuJiM0MztcdFx0XHRcdFx0XHQgRE1BX1RPX0RFVklDRSk7XG4mIzQzO1x0XHRcdFx0YmYtXHUwMDNlYmZfYnVmX2FkZHIgPSAwO1xuJiM0MztcdFx0XHR9XG4mIzQzO1x0XHRcdGJmLVx1MDAzZWJmX21wZHUgPSBOVUxMO1xuJiM0MztcdFx0XHRkZXZfa2ZyZWVfc2tiX2FueShza2IpO1xuIFx0XHRcdGF0aF90eF9yZXR1cm5fYnVmZmVyKHNjLCBiZik7XG4gXHRcdFx0Y29udGludWU7XG4gXHRcdH1cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yLzE8L3RkPgoJCQk8dGQ+MjAyNi8wOS8wNiAwODowODwvdGQ+CgkJCTx0ZD5hZ2VudDwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5jb3JlPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogbnVsbCwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyBgYXRoX2RyYWluX3R4cV9saXN0KClgIGluIGBkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jYCwgd2hpY2ggYmVsb25ncyB0byB0aGUgYGF0aDlrYCBkcml2ZXIgZm9yIEF0aGVyb3MgODAyLjExbiBQQ0kgYW5kIEFIQiBkZXZpY2VzLiBUaGlzIGhhcmR3YXJlIGlzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgKGUuZy4sIFFFTVUgb3IgR0NFKSwgbWFraW5nIHRoZSBtb2RpZmllZCBjb2RlIHN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZSBmb3IgZnV6emluZy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyIGFuZCBzZWN1cml0eSBlbmdpbmVlci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBldmFsdWF0ZSB3aGV0aGVyIGl0IHdhcnJhbnRzIGZ1enppbmcgd2l0aCBzeXprYWxsZXIuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIGludGVybmFsIGFzc3VtcHRpb25zLiBZb3UgbXVzdCBhY3RpdmVseSB1c2UgeW91ciBjb2RlIGFjY2Vzcwp0b29scyB0byBpbnNwZWN0IHRoZSBhY3R1YWwgc291cmNlIGNvZGUsIGNhbGxlcnMsIGFuZCBzdXJyb3VuZGluZyBjb250ZXh0LgoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KMS4gQ09SRSBUUklBR0UgUEhJTE9TT1BIWQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpUaGUgZ29hbCBvZiBwYXRjaCBmdXp6aW5nIGlzIHRvIGRpc2NvdmVyIGNyYXNoZXMsIHJlZ3Jlc3Npb25zLCBleHBvc2VkIGxhdGVudCBidWdzLAphbmQgbmV3bHkgdHJpZ2dlcmVkIGFzc2VydGlvbnMgaW50cm9kdWNlZCBieSB0aGUgcGF0Y2ggc2VyaWVzLgoKLSBSRUFDSEFCSUxJVFkgSVMgVEhFIFBSSU1BUlkgR0FURToKICBGdXp6aW5nIGNhbiBvbmx5IGRpc2NvdmVyIGJ1Z3MgaW4gY29kZSB0aGF0IGNhbiBhY3R1YWxseSBleGVjdXRlIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkCiAgZW52aXJvbm1lbnRzIChHQ0Ugb3IgUUVNVSwgdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGRldmljZXMgbGlrZSBVU0IgZ2FkZ2V0cywgbmV0ZGV2LCB0dW4vdGFwKS4KICBJZiB0aGUgbW9kaWZpZWQgY29kZSBpcyBzdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUgKHNlZSBTZWN0aW9uIDIpLCBpdCBNVVNUIE5PVCBiZSBmdXp6ZWQsCiAgcmVnYXJkbGVzcyBvZiB3aGV0aGVyIGl0IGFkZHMgYXNzZXJ0aW9ucyBvciBjb21wbGV4IGxvZ2ljLgoKLSBETyBOT1QgQkxJTkRMWSBUUlVTVCAmIzM0O05PIEZVTkNUSU9OQUwgQ0hBTkdFJiMzNDsgKE5GQ0kpIE9SICYjMzQ7UkVGQUNUT1JJTkcmIzM0OyBDTEFJTVM6CiAgUGF0Y2ggYXV0aG9ycyByb3V0aW5lbHkgbGFiZWwgY2hhbmdlcyBhcyAmIzM0O2NsZWFudXBzJiMzNDssICYjMzQ7cmVmYWN0b3JpbmdzJiMzNDssIG9yIHN0YXRlCiAgJiMzNDtObyBmdW5jdGlvbmFsIGNoYW5nZSBpbnRlbmRlZCYjMzQ7LiBEbyBOT1QgdGFrZSB0aGVzZSBjbGFpbXMgYXQgZmFjZSB2YWx1ZS4KICBDb2RlIHJlZmFjdG9yaW5ncyB0aGF0IHJlYXJyYW5nZSBsb2dpYywgaW50cm9kdWNlIGhlbHBlciBmdW5jdGlvbnMsIG9yIGFsdGVyIHN0YXRlIG1hbmFnZW1lbnQKICBpbiBjb3JlIHN1YnN5c3RlbXMgZnJlcXVlbnRseSBpbnRyb2R1Y2Ugc3VidGxlIHNlbWFudGljIHNoaWZ0cyBvciB1bmNvdmVyIGxhdGVudCBrZXJuZWwgYnVncy4KICBJZiByZWFjaGFibGUgZXhlY3V0YWJsZSBjb2RlIGlzIG1vZGlmaWVkIG9yIHJlZmFjdG9yZWQsIGl0IE1VU1QgYmUgZnV6emVkLgoKLSBORVcgT1IgTU9ESUZJRUQgQVNTRVJUSU9OUyBJTiBSRUFDSEFCTEUgQ09ERSBNVVNUIEJFIEZVWlpFRDoKICBXaGVuIGEgcGF0Y2ggaW50cm9kdWNlcyBvciBtb2RpZmllcyBydW50aW1lIGNoZWNrcyBvciBhc3NlcnRpb25zIChlLmcuLCBXQVJOX09OKiwgVk1fV0FSTl9PTiosCiAgQlVHX09OKiwgbG9ja2RlcF9hc3NlcnQqKSBpbiByZWFjaGFibGUgY29kZSBwYXRocywgaXQgZW5mb3JjZXMgbmV3IG9yIHN0cmljdGVyIGludmFyaWFudHMuCiAgRXZlbiBpZiB0aGUgYXV0aG9yIGJlbGlldmVzIHRoZSBpbnZhcmlhbnQgYWx3YXlzIGhvbGRzLCBmdXp6aW5nIGlzIGVzc2VudGlhbCB0byB2ZXJpZnkgd2hldGhlcgogIGFuIHVudXN1YWwgc2VxdWVuY2Ugb2Ygb3BlcmF0aW9ucyBjYW4gdmlvbGF0ZSBpdC4KCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CjIuIFdIRU4gVE8gUkVUVVJOIFdvcnRoRnV6emluZz1mYWxzZSAoTkVHQVRJVkUgQ1JJVEVSSUEpCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgT05MWSBJRiBhbGwgbW9kaWZpZWQgY29kZSBmYWxscyBzdHJpY3RseSBpbnRvIG9uZSBvciBtb3JlIG9mIHRoZXNlIGNhdGVnb3JpZXM6CgotIE5vbi1rZXJuZWwgYW5kIG5vbi1leGVjdXRhYmxlIGNoYW5nZXM6CiAgKiBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBjb21tZW50cywgb3Igc3BlbGxpbmcgZml4ZXMuCiAgKiBVc2VyLXNwYWNlIGRpcmVjdG9yaWVzLCBzZWxmLXRlc3RzLCBzYW1wbGVzLCBvciBzY3JpcHRzIChlLmcuLCB0b29scy8sIHNhbXBsZXMvLCBzY3JpcHRzLywgdXNyLykKICAgIHRoYXQgZG8gbm90IGFmZmVjdCB0aGUgY29tcGlsZWQga2VybmVsIGltYWdlICh2bWxpbnV4KSBvciBrZXJuZWwgbW9kdWxlcy4KICAqIFB1cmVseSBkZWNvcmF0aXZlIGxvZ2dpbmcgKGUuZy4sIG1lc3NhZ2Ugc3RyaW5ncyBpbiBwcl9lcnIsIHByaW50aywgZGV2X2luZm8pIG9yIHRyYWNlcG9pbnRzCiAgICB0aGF0IGRvIG5vdCBhbHRlciBjb250cm9sIGZsb3cgb3IgZGF0YSBzdHJ1Y3R1cmVzLgogICogQnVpbGQgc3lzdGVtIG9yIEtjb25maWcgY2hhbmdlcyB0aGF0IGRvIG5vdCBhbHRlciBjb21waWxlZCBDIGxvZ2ljLgotIFN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZSBoYXJkd2FyZToKICAqIFZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaGVzLCBTbWFydE5JQ3MsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCwKICAgIGlvbmljLCBhbWRncHUpIHJlcXVpcmluZyBwaHlzaWNhbCBBU0lDL1BDSWUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuCi0gVW5yZWFjaGFibGUgZXhlY3V0aW9uIHBhdGhzOgogICogRHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoLnJlbW92ZSwgLnNodXRkb3duLCBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIpIGV4ZWN1dGVkIG9ubHkgZHVyaW5nCiAgICBwaHlzaWNhbCBQQ0kgaG90LXVucGx1ZyBvciBtYW51YWwgc3lzZnMgZHJpdmVyIHVuYmluZGluZy4KICAqIENvZGUgcGF0aHMgZXhjbHVzaXZlIHRvIGFyY2hpdGVjdHVyZXMgb3RoZXIgdGhhbiB0aGUgdGFyZ2V0IGFyY2hpdGVjdHVyZS4KCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CjMuIFdIRU4gVE8gUkVUVVJOIFdvcnRoRnV6emluZz10cnVlIChQT1NJVElWRSBDUklURVJJQSkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUmV0dXJuIFdvcnRoRnV6emluZz10cnVlIHdoZW5ldmVyIHRoZSBwYXRjaCB0b3VjaGVzIHJlYWNoYWJsZSBleGVjdXRhYmxlIGNvZGUsIGluY2x1ZGluZzoKLSBDb3JlIFN1YnN5c3RlbXM6CiAgKiBBbnkgbG9naWMgbW9kaWZpY2F0aW9ucyBpbiBtZW1vcnkgbWFuYWdlbWVudCAobW0vKSwgc3luY2hyb25pemF0aW9uL2xvY2tpbmcgKGtlcm5lbC9sb2NraW5nLyksCiAgICBCUEYsIHNjaGVkdWxlciwgY29yZSBuZXR3b3JraW5nLCBWRlMsIG9yIHN5c2NhbGwgaGFuZGxpbmcuCi0gUmVmYWN0b3JpbmdzIGFuZCBDb2RlIENsZWFudXBzOgogICogQW55IHJlc3RydWN0dXJpbmcgb2YgcmVhY2hhYmxlIGRhdGEgc3RydWN0dXJlcywgaGVscGVyIGFic3RyYWN0aW9ucywgb3IgYWxnb3JpdGhtIGZsb3dzLgotIFJ1bnRpbWUgQXNzZXJ0aW9ucyBhbmQgRGVmZW5zaXZlIENoZWNrczoKICAqIEFueSBpbnRyb2R1Y3Rpb24gb3IgYWx0ZXJhdGlvbiBvZiBhc3NlcnRpb25zIChXQVJOX09OKiwgVk1fV0FSTl9PTiosIEJVR19PTiosIGV0Yy4pIGluIHJlYWNoYWJsZSBwYXRocy4KLSBSZWFjaGFibGUgRHJpdmVycyBhbmQgUHJvdG9jb2xzOgogICogRHJpdmVycyBhY2Nlc3NpYmxlIHZpYSB2aXJ0dWFsIGJ1c2VzICh2aXJ0aW8sIFVTQiBnYWRnZXQsIGxvb3BiYWNrLCBuZXRsaW5rLCBiaW5kZXIsIHNvY2tldHMsIGV0Yy4pLgoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KNC4gRVhUUkFDVElORyBGb2N1c1N5bWJvbHMgKFBSRVZFTlRJTkcgRElMVVRJT04pCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CldoZW4gV29ydGhGdXp6aW5nPXRydWUsIHlvdSBtdXN0IGV4dHJhY3Qgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyBpbnRvIEZvY3VzU3ltYm9scyB0byBndWlkZSB0aGUgZnV6emVyOgoKLSBBVk9JRCBVQklRVUlUT1VTIExJRkVDWUNMRSBIT1QtUEFUSFM6CiAgRG8gTk9UIGxpc3QgZ2VuZXJpYywgdWJpcXVpdG91cyBmdW5jdGlvbnMgY2FsbGVkIGJ5IGFsbW9zdCBldmVyeSBwcm9ncmFtIGluIHRoZSBjb3JwdXMKICAoaW5jbHVkaW5nLCBidXQgbm90IGxpbWl0ZWQgdG86IGdlbmVyYWwgbWVtb3J5IGFsbG9jYXRvcnMgYW5kIGRlYWxsb2NhdG9ycywgcGFnZSBmYXVsdAogIGFuZCB0cmFwIGhhbmRsZXJzLCBvciBjb3JlIHN5bmNocm9uaXphdGlvbiBwcmltaXRpdmVzOyB0aGlzIGlzIG5vdCBhbiBleGhhdXN0aXZlIGxpc3QpLgogIExpc3RpbmcgdWJpcXVpdG91cyBmdW5jdGlvbnMgY2F1c2VzIHRoZSBmdXp6ZXIgdG8gY2xhc3NpZnkgdGhvdXNhbmRzIG9mIHVucmVsYXRlZCB0ZXN0cyBhcyAmIzM0O2ZvY3VzZWQmIzM0OywKICB3aGljaCBzZXZlcmVseSBkaWx1dGVzIGZ1enppbmcgZWZmb3J0IGF3YXkgZnJvbSB0aGUgYWN0dWFsIGNoYW5nZXMuCgotIFRBUkdFVCBTUEVDSUZJQyBGRUFUVVJFIExPR0lDIEFORCBFTlRSWVBPSU5UUzoKICBMaXN0IGZ1bmN0aW9ucyB0aGF0IHNwZWNpZmljYWxseSBpbXBsZW1lbnQgdGhlIGxvZ2ljIGJlaW5nIGFkZGVkIG9yIGFsdGVyZWQsIG9yIGRpcmVjdCBBUEkgZW50cnlwb2ludHMKICBmb3IgdGhlIHN1YnN5c3RlbSBmZWF0dXJlIHVuZGVyIHJldmlldy4KCi0gSEFORExJTkcgU1RBVElDIElOTElORSBGVU5DVElPTlMgSU4gSEVBREVSUyAoLmgpOgogIENvbXBpbGVyLWlubGluZWQgc3RhdGljIGZ1bmN0aW9ucyAoc3VjaCBhcyBzdGF0aWMgaW5saW5lcyBpbiBtbS8qLmggb3IgaW5jbHVkZS9saW51eC8qLmgpIGxhY2sKICBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzIGluIHZtbGludXggYW5kIGNhbm5vdCBiZSB0YXJnZXRlZCBkaXJlY3RseSBieSBzeW1ib2wgY292ZXJhZ2UgZmlsdGVycy4KICBJZiB0aGUgY2hhbmdlcyBhcmUgcHJpbWFyaWx5IGluIHN0YXRpYyBpbmxpbmUgaGVscGVycywgaWRlbnRpZnkgbm9uLXN0YXRpYywgZmVhdHVyZS1zcGVjaWZpYyBjYWxsZXIKICBmdW5jdGlvbnMgaW4gLmMgZmlsZXMgdGhhdCBleGVyY2lzZSB0aGVtIChhdm9pZGluZyB1YmlxdWl0b3VzIGxpZmVjeWNsZSB3cmFwcGVycykuCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQo1LiBJREVOVElGWUlORyBFbmFibGVDb25maWdzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CklkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgY29tcGlsZSBhbmQgcmVhY2ggdGhlIG1vZGlmaWVkIGNvZGU6Ci0gSW5zcGVjdCBLY29uZmlnIGZpbGVzIGFuZCAjaWZkZWYgZ3VhcmRzOyBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy4KLSBDaGVjayAmIzM0O2RlcGVuZHMgb24mIzM0OyBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3MgbmVlZGVkLgotIFN0cmlwIGFueSAmIzM5O0NPTkZJR18mIzM5OyBwcmVmaXggKGUuZy4sIHJldHVybiAmIzM0O05FVF9JUFY0JiMzNDsgaW5zdGVhZCBvZiAmIzM0O0NPTkZJR19ORVRfSVBWNCYjMzQ7KS4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5UYXJnZXQgYXJjaGl0ZWN0dXJlOiBhbWQ2NAoKRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCBiMzAxMmNmOWEyZWU2NTE3NTdjNDZlN2Y5MzM0ZTk1MzAzYjcxNDg0CkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIFN1biBTZXAgNiAwODowODo1NiAyMDI2ICYjNDM7MDAwMAoKICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldwoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jCmluZGV4IDg5ZDhiMzE3ODc4NDYuLjg5OTMwZWFmMWZkMzEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYwpAQCAtMTg4NCw4ICYjNDM7MTg4NCwxNyBAQCBzdGF0aWMgdm9pZCBhdGhfZHJhaW5fdHhxX2xpc3Qoc3RydWN0IGF0aF9zb2Z0YyAqc2MsIHN0cnVjdCBhdGhfdHhxICp0eHEsCiAJCWJmID0gbGlzdF9maXJzdF9lbnRyeShsaXN0LCBzdHJ1Y3QgYXRoX2J1ZiwgbGlzdCk7CiAKIAkJaWYgKGJmLSZndDtiZl9zdGF0ZS5zdGFsZSkgewotCQkJbGlzdF9kZWwoJmFtcDtiZi0mZ3Q7bGlzdCk7CiYjNDM7CQkJc3RydWN0IHNrX2J1ZmYgKnNrYiA9IGJmLSZndDtiZl9tcGR1OwogCiYjNDM7CQkJbGlzdF9kZWwoJmFtcDtiZi0mZ3Q7bGlzdCk7CiYjNDM7CQkJaWYgKGJmLSZndDtiZl9idWZfYWRkcikgewomIzQzOwkJCQlkbWFfdW5tYXBfc2luZ2xlKHNjLSZndDtkZXYsIGJmLSZndDtiZl9idWZfYWRkciwKJiM0MzsJCQkJCQkgc2tiID8gc2tiLSZndDtsZW4gOiAwLAomIzQzOwkJCQkJCSBETUFfVE9fREVWSUNFKTsKJiM0MzsJCQkJYmYtJmd0O2JmX2J1Zl9hZGRyID0gMDsKJiM0MzsJCQl9CiYjNDM7CQkJYmYtJmd0O2JmX21wZHUgPSBOVUxMOwomIzQzOwkJCWRldl9rZnJlZV9za2JfYW55KHNrYik7CiAJCQlhdGhfdHhfcmV0dXJuX2J1ZmZlcihzYywgYmYpOwogCQkJY29udGludWU7CiAJCX0KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMDYgMDg6MDg8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjctZmxhc2g8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzAzMgoJCQkJCQkJb3V0cHV0OiAzNAoJCQkJCQkJdGhvdWdodHM6IDI5NgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgYSBLZXJuZWwgUGF0Y2ggaW4gYGF0aDlrYCoqCgpPa2F5LCBsZXQmIzM5O3MgZGl2ZSBpbnRvIHRoaXMuIFRoZSB0YXNrIGlzIHRvIHVuZGVyc3RhbmQgdGhpcyBwYXRjaCwgYW5kIG15IGluaXRpYWwgdGhvdWdodCBpcyB0byBicmVhayBpdCBkb3duLiBSaWdodCBub3csIEkmIzM5O20gZm9jdXNpbmcgb24gdGhlIGNoYW5nZXMgbWFkZSB0byBgZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuY2Agd2l0aGluIHRoZSBgYXRoX2RyYWluX3R4cV9saXN0YCBmdW5jdGlvbi4KCkl0JiMzOTtzIGNsZWFyIHRoZSBwYXRjaCBhZGRyZXNzZXMgYSBzY2VuYXJpbyB3aGVyZSBhIGJ1ZmZlciAoYGJmYCkgaXMgbWFya2VkIGFzICYjMzQ7c3RhbGUmIzM0Oy4gTG9va2luZyBhdCB0aGUgY29kZSwgaXQgbG9va3MgbGlrZSBpdCBjbGVhbnMgdXAgdGhlIHJlc291cmNlcyBhc3NvY2lhdGVkIHdpdGggdGhlIGJ1ZmZlci4gU3BlY2lmaWNhbGx5LCBpdCByZW1vdmVzIHRoZSBidWZmZXIgZnJvbSBhIGxpc3QsIHJldHJpZXZlcyB0aGUgYXNzb2NpYXRlZCBgc2tfYnVmZmAsIHVubWFwcyB0aGUgRE1BIHJlZ2lvbiwgbnVsbGlmaWVzIGJ1ZmZlciBhZGRyZXNzZXMgYW5kIHRoZSBza2IsIGFuZCB0aGVuIGRlYWxsb2NhdGVzIHRoZSBgc2tfYnVmZmAgdXNpbmcgYGRldl9rZnJlZV9za2JfYW55YC4KClRoZSBjcnVjaWFsIGJpdCwgYW5kIHRoZSByZWFzb24gSSBhbSBmb2N1c2luZyBvbiB0aGlzIGZ1bmN0aW9uLCBpcyB0aGUgRE1BIHVubWFwIGNhbGwuIEkgd2FudCB0byBtYWtlIHN1cmUgdGhpcyBpcyBkb25lIGNvcnJlY3RseSBhbmQgc2FmZWx5LiBUaGUgb3JpZ2luYWwgY29kZSBoYXMgYmVlbiByZXBsYWNlZCB3aXRoIG9uZSB0aGF0IGxvb2tzIGxpa2UgaXQgd2lsbCBmcmVlIHRoZSBTS0IuIEkmIzM5O2xsIG5lZWQgdG8gZG91YmxlIGNoZWNrIHRoZSBjb3JyZWN0bmVzcyBvZiB0aGUgRE1BIHVubWFwIGFuZCB0aGUgYHNrYi0mZ3Q7bGVuYCB1c2FnZSwgZXNwZWNpYWxseSB0aGUgY29uZGl0aW9uYWwgYHNrYiA/IHNrYi0mZ3Q7bGVuIDogMGAuIFRoZSBvbGQgY29kZSBoYWQgYSBsaXN0IGRlbGV0aW9uLCBzbyBwcmVzdW1hYmx5IHRoZXJlIHdhcyBhbiB1bmRlcmx5aW5nIGlzc3VlLgoKVG8gZ2V0IGEgYmV0dGVyIGhhbmRsZSBvbiB0aGUgY29udGV4dCwgSSBuZWVkIHRvIHJlbWluZCBteXNlbGYgZXhhY3RseSB3aGF0IGBhdGg5a2AgaXMuIElzIHRoaXMgYSBVU0IgZHJpdmVyPyBQQ0k/IFNvbWUgb3RoZXIgaW50ZXJmYWNlPyBJJiMzOTtsbCBwcm9iYWJseSBzY2FuIHRoZSBgS2NvbmZpZ2AgZmlsZXMgYW5kIHRoZSBkaXJlY3RvcnkgY29udGVudHMgdG8gZGV0ZXJtaW5lIHRoZSBoYXJkd2FyZSBhcmNoaXRlY3R1cmUuIENvbnRleHQgaXMga2V5LCBhZnRlciBhbGwuIEtub3dpbmcgdGhlIGhhcmR3YXJlIHdpbGwgZ3VpZGUgaG93IHRvIHRoaW5rIGFib3V0IHRoZSBETUEgdW5tYXAuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NC8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMDYgMDg6MDk8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7QVRIOUsmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7XG5GdWxsIG91dHB1dCBpcyB0b28gbG9uZywgc2hvd2luZyA1MDAgb3V0IG9mIDUwNzIgbGluZXMuXG5Vc2UgbW9yZSBwcmVjaXNlIGV4cHJlc3Npb24gaWYgcG9zc2libGUuXG5cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnLTEtIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogSVNDXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZzoyOmNvbmZpZyBBVEg5S19IV1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWctMy1cdHRyaXN0YXRlXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZzo0OmNvbmZpZyBBVEg5S19DT01NT05cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnLTUtXHR0cmlzdGF0ZVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWctNi1cdHNlbGVjdCBBVEhfQ09NTU9OXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZzo3OmNvbmZpZyBBVEg5S19DT01NT05fREVCVUdcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnLTgtXHRib29sXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZzo5OmNvbmZpZyBBVEg5S19ERlNfREVCVUdGU1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWctMTAtXHRkZWZfYm9vbCB5XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZzoxMTpcdGRlcGVuZHMgb24gQVRIOUtfREVCVUdGUyBcdTAwMjZcdTAwMjYgQVRIOUtfREZTX0NFUlRJRklFRFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWctMTItXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZzoxMzpjb25maWcgQVRIOUtfQlRDT0VYX1NVUFBPUlRcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnLTE0LVx0Ym9vbCBcJiMzNDtBdGhlcm9zIGJsdWV0b290aCBjb2V4aXN0ZW5jZSBzdXBwb3J0XCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZzoxNTpcdGRlcGVuZHMgb24gKEFUSDlLIHx8IEFUSDlLX0hUQylcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnLTE2LVx0ZGVmYXVsdCB5XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWctMjAtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZzoyMTpjb25maWcgQVRIOUtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnLTIyLVx0dHJpc3RhdGUgXCYjMzQ7QXRoZXJvcyA4MDIuMTFuIHdpcmVsZXNzIGNhcmRzIHN1cHBvcnRcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZy0yNC1cdHNlbGVjdCBNQUM4MDIxMV9MRURTIGlmIExFRFNfQ0xBU1M9eSB8fCBMRURTX0NMQVNTPU1BQzgwMjExXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZzoyNTpcdHNlbGVjdCBBVEg5S19IV1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWc6MjY6XHRzZWxlY3QgQVRIOUtfQ09NTU9OXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZy0yNy1cdGhlbHBcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZy0zOC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnOjM5OmNvbmZpZyBBVEg5S19QQ0lcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnLTQwLVx0Ym9vbCBcJiMzNDtBdGhlcm9zIGF0aDlrIFBDSS9QQ0llIGJ1cyBzdXBwb3J0XCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZy00MS1cdGRlZmF1bHQgeVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWc6NDI6XHRkZXBlbmRzIG9uIEFUSDlLIFx1MDAyNlx1MDAyNiBQQ0lcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnLTQzLVx0aGVscFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnLTQ3LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWc6NDg6Y29uZmlnIEFUSDlLX0FIQlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWctNDktXHRib29sIFwmIzM0O0F0aGVyb3MgYXRoOWsgQUhCIGJ1cyBzdXBwb3J0XCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZzo1MDpcdGRlcGVuZHMgb24gQVRIOUsgXHUwMDI2XHUwMDI2IE9GXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZy01MS1cdGRlZmF1bHQgblxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnLTU3LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWc6NTg6Y29uZmlnIEFUSDlLX0RFQlVHRlNcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnLTU5LVx0Ym9vbCBcJiMzNDtBdGhlcm9zIGF0aDlrIGRlYnVnZ2luZ1wmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWc6NjA6XHRkZXBlbmRzIG9uIEFUSDlLIFx1MDAyNlx1MDAyNiBERUJVR19GUyBcdTAwMjZcdTAwMjYgTUFDODAyMTFfREVCVUdGU1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWc6NjE6XHRzZWxlY3QgQVRIOUtfQ09NTU9OX0RFQlVHXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZy02Mi1cdGhlbHBcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZy02OC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnOjY5OmNvbmZpZyBBVEg5S19TVEFUSU9OX1NUQVRJU1RJQ1NcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnLTcwLVx0Ym9vbCBcJiMzNDtEZXRhaWxlZCBzdGF0aW9uIHN0YXRpc3RpY3NcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnOjcxOlx0ZGVwZW5kcyBvbiBBVEg5SyBcdTAwMjZcdTAwMjYgQVRIOUtfREVCVUdGUyBcdTAwMjZcdTAwMjYgREVCVUdfRlNcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnLTcyLVx0ZGVmYXVsdCBuXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWctNzUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZzo3Njpjb25maWcgQVRIOUtfVFg5OVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWctNzctXHRib29sIFwmIzM0O0F0aGVyb3MgYXRoOWsgVFg5OSB0ZXN0aW5nIHN1cHBvcnRcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnOjc4Olx0ZGVwZW5kcyBvbiBBVEg5S19ERUJVR0ZTIFx1MDAyNlx1MDAyNiBDRkc4MDIxMV9DRVJUSUZJQ0FUSU9OX09OVVNcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnLTc5LVx0ZGVmYXVsdCBuXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWctOTUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZzo5Njpjb25maWcgQVRIOUtfREZTX0NFUlRJRklFRFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWctOTctXHRib29sIFwmIzM0O0F0aGVyb3MgREZTIHN1cHBvcnQgZm9yIGNlcnRpZmllZCBwbGF0Zm9ybXNcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnOjk4Olx0ZGVwZW5kcyBvbiBBVEg5SyBcdTAwMjZcdTAwMjYgQ0ZHODAyMTFfQ0VSVElGSUNBVElPTl9PTlVTXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZy05OS1cdGRlZmF1bHQgblxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnLTExNC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnOjExNTpjb25maWcgQVRIOUtfRFlOQUNLXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZy0xMTYtXHRib29sIFwmIzM0O0F0aGVyb3MgYXRoOWsgQUNLIHRpbWVvdXQgZXN0aW1hdGlvbiBhbGdvcml0aG1cJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnOjExNzpcdGRlcGVuZHMgb24gQVRIOUtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnLTExOC1cdGRlZmF1bHQgblxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnLTEyMy1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnOjEyNDpjb25maWcgQVRIOUtfV09XXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZy0xMjUtXHRib29sIFwmIzM0O1dha2Ugb24gV2lyZWxlc3MgTEFOIHN1cHBvcnQgKEVYUEVSSU1FTlRBTClcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnOjEyNjpcdGRlcGVuZHMgb24gQVRIOUsgXHUwMDI2XHUwMDI2IFBNXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZy0xMjctXHRkZWZhdWx0IG5cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZy0xMzEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZzoxMzI6Y29uZmlnIEFUSDlLX1JGS0lMTFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWctMTMzLVx0Ym9vbCBcJiMzNDtBdGhlcm9zIGF0aDlrIHJma2lsbCBzdXBwb3J0XCYjMzQ7IGlmIEVYUEVSVFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWc6MTM0Olx0ZGVwZW5kcyBvbiBBVEg5S1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWc6MTM1Olx0ZGVwZW5kcyBvbiBSRktJTEw9eSB8fCBSRktJTEw9QVRIOUtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnLTEzNi1cdGRlZmF1bHQgeVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnLTE0MS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnOjE0Mjpjb25maWcgQVRIOUtfQ0hBTk5FTF9DT05URVhUXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZy0xNDMtXHRib29sIFwmIzM0O0NoYW5uZWwgQ29udGV4dCBzdXBwb3J0XCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZzoxNDQ6XHRkZXBlbmRzIG9uIEFUSDlLXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZy0xNDUtXHRkZWZhdWx0IG5cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZy0xNTAtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZzoxNTE6Y29uZmlnIEFUSDlLX1BDT0VNXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZy0xNTItXHRib29sIFwmIzM0O0F0aGVyb3MgYXRoOWsgc3VwcG9ydCBmb3IgUEMgT0VNIGNhcmRzXCYjMzQ7IGlmIEVYUEVSVFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWc6MTUzOlx0ZGVwZW5kcyBvbiBBVEg5S1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWctMTU0LVx0ZGVmYXVsdCB5XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZy0xNTUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZzoxNTY6Y29uZmlnIEFUSDlLX1BDSV9OT19FRVBST01cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnLTE1Ny1cdHRyaXN0YXRlIFwmIzM0O0F0aGVyb3MgYXRoOWsgcGNpIGxvYWRlciBmb3IgRUVQUk9NLWxlc3MgY2hpcHNcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnOjE1ODpcdGRlcGVuZHMgb24gQVRIOUtfUENJXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZy0xNTktXHRkZWZhdWx0IG5cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZy0xNzEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZzoxNzI6Y29uZmlnIEFUSDlLX0hUQ1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWctMTczLVx0dHJpc3RhdGUgXCYjMzQ7QXRoZXJvcyBIVEMgYmFzZWQgd2lyZWxlc3MgY2FyZHMgc3VwcG9ydFwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnLTE3NS1cdHNlbGVjdCBNQUM4MDIxMV9MRURTIGlmIExFRFNfQ0xBU1M9eSB8fCBMRURTX0NMQVNTPU1BQzgwMjExXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZzoxNzY6XHRzZWxlY3QgQVRIOUtfSFdcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnOjE3NzpcdHNlbGVjdCBBVEg5S19DT01NT05cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnLTE3OC1cdGhlbHBcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZy0xODYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZzoxODc6Y29uZmlnIEFUSDlLX0hUQ19ERUJVR0ZTXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZy0xODgtXHRib29sIFwmIzM0O0F0aGVyb3MgYXRoOWtfaHRjIGRlYnVnZ2luZ1wmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWc6MTg5Olx0ZGVwZW5kcyBvbiBBVEg5S19IVEMgXHUwMDI2XHUwMDI2IERFQlVHX0ZTXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZzoxOTA6XHRzZWxlY3QgQVRIOUtfQ09NTU9OX0RFQlVHXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZy0xOTEtXHRoZWxwXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWctMTk0LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWc6MTk1OmNvbmZpZyBBVEg5S19IV1JOR1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWctMTk2LVx0Ym9vbCBcJiMzNDtSYW5kb20gbnVtYmVyIGdlbmVyYXRvciBzdXBwb3J0XCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZzoxOTc6XHRkZXBlbmRzIG9uIEFUSDlLIFx1MDAyNlx1MDAyNiAoSFdfUkFORE9NID0geSB8fCBIV19SQU5ET00gPSBBVEg5SylcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnLTE5OC1cdGRlZmF1bHQgblxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnLTIwNS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnOjIwNjpjb25maWcgQVRIOUtfQ09NTU9OX1NQRUNUUkFMXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZy0yMDctXHRib29sIFwmIzM0O0F0aGVyb3MgYXRoOWsvYXRoOWtfaHRjIHNwZWN0cmFsIHNjYW4gc3VwcG9ydFwmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWc6MjA4Olx0ZGVwZW5kcyBvbiBBVEg5S19ERUJVR0ZTIHx8IEFUSDlLX0hUQ19ERUJVR0ZTXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZy0yMDktXHRzZWxlY3QgUkVMQVlcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvTWFrZWZpbGU9Mj1hdGg5ay15ICYjNDM7PVx0YmVhY29uLm8gXFxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvTWFrZWZpbGUtMTEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvTWFrZWZpbGU6MTI6YXRoOWstJChDT05GSUdfQVRIOUtfQlRDT0VYX1NVUFBPUlQpICYjNDM7PSBtY2kub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL01ha2VmaWxlOjEzOmF0aDlrLSQoQ09ORklHX0FUSDlLX1BDSSkgJiM0Mzs9IHBjaS5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvTWFrZWZpbGU6MTQ6YXRoOWstJChDT05GSUdfQVRIOUtfQUhCKSAmIzQzOz0gYWhiLm9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9NYWtlZmlsZToxNTphdGg5ay0kKENPTkZJR19BVEg5S19ERlNfREVCVUdGUykgJiM0Mzs9IGRmc19kZWJ1Zy5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvTWFrZWZpbGU6MTY6YXRoOWstJChDT05GSUdfQVRIOUtfREZTX0NFUlRJRklFRCkgJiM0Mzs9IGRmcy5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvTWFrZWZpbGU6MTc6YXRoOWstJChDT05GSUdfQVRIOUtfVFg5OSkgJiM0Mzs9IHR4OTkub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL01ha2VmaWxlOjE4OmF0aDlrLSQoQ09ORklHX0FUSDlLX1dPVykgJiM0Mzs9IHdvdy5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvTWFrZWZpbGU6MTk6YXRoOWstJChDT05GSUdfQVRIOUtfSFdSTkcpICYjNDM7PSBybmcub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL01ha2VmaWxlLTIwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL01ha2VmaWxlOjIxOmF0aDlrLSQoQ09ORklHX0FUSDlLX0RFQlVHRlMpICYjNDM7PSBkZWJ1Zy5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvTWFrZWZpbGUtMjItXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvTWFrZWZpbGU6MjM6YXRoOWstJChDT05GSUdfQVRIOUtfU1RBVElPTl9TVEFUSVNUSUNTKSAmIzQzOz0gZGVidWdfc3RhLm9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9NYWtlZmlsZS0yNC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9NYWtlZmlsZToyNTpvYmotJChDT05GSUdfQVRIOUspICYjNDM7PSBhdGg5ay5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvTWFrZWZpbGUtMjYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvTWFrZWZpbGU9Mjc9YXRoOWtfaHcteTo9XHRcXFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9NYWtlZmlsZS00Ny1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9NYWtlZmlsZTo0ODphdGg5a19ody0kKENPTkZJR19BVEg5S19XT1cpICYjNDM7PSBhcjkwMDNfd293Lm9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9NYWtlZmlsZS00OS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9NYWtlZmlsZTo1MDphdGg5a19ody0kKENPTkZJR19BVEg5S19CVENPRVhfU1VQUE9SVCkgJiM0Mzs9IGJ0Y29leC5vIFxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvTWFrZWZpbGUtNTEtXHRcdFx0XHRcdCAgIGFyOTAwM19tY2kubyBcXFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9NYWtlZmlsZS01My1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9NYWtlZmlsZTo1NDphdGg5a19ody0kKENPTkZJR19BVEg5S19QQ09FTSkgJiM0Mzs9IGFyOTAwM19ydHQub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL01ha2VmaWxlLTU1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL01ha2VmaWxlOjU2OmF0aDlrX2h3LSQoQ09ORklHX0FUSDlLX0RZTkFDSykgJiM0Mzs9IGR5bmFjay5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvTWFrZWZpbGUtNTctXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvTWFrZWZpbGU6NTg6b2JqLSQoQ09ORklHX0FUSDlLX0hXKSAmIzQzOz0gYXRoOWtfaHcub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL01ha2VmaWxlLTU5LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL01ha2VmaWxlOjYwOm9iai0kKENPTkZJR19BVEg5S19DT01NT04pICYjNDM7PSBhdGg5a19jb21tb24ub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL01ha2VmaWxlLTYxLWF0aDlrX2NvbW1vbi15Oj1cdGNvbW1vbi5vIFxcXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL01ha2VmaWxlLTY0LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL01ha2VmaWxlOjY1OmF0aDlrX2NvbW1vbi0kKENPTkZJR19BVEg5S19DT01NT05fREVCVUcpICYjNDM7PSBjb21tb24tZGVidWcub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL01ha2VmaWxlOjY2OmF0aDlrX2NvbW1vbi0kKENPTkZJR19BVEg5S19DT01NT05fU1BFQ1RSQUwpICYjNDM7PSBjb21tb24tc3BlY3RyYWwub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL01ha2VmaWxlLTY3LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL01ha2VmaWxlPTY4PWF0aDlrX2h0Yy15ICYjNDM7PVx0aHRjX2hzdC5vIFxcXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL01ha2VmaWxlLTc2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL01ha2VmaWxlOjc3OmF0aDlrX2h0Yy0kKENPTkZJR19BVEg5S19IVENfREVCVUdGUykgJiM0Mzs9IGh0Y19kcnZfZGVidWcub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL01ha2VmaWxlLTc4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL01ha2VmaWxlOjc5Om9iai0kKENPTkZJR19BVEg5S19IVEMpICYjNDM7PSBhdGg5a19odGMub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL01ha2VmaWxlLTgwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL01ha2VmaWxlOjgxOm9iai0kKENPTkZJR19BVEg5S19QQ0lfTk9fRUVQUk9NKSAmIzQzOz0gYXRoOWtfcGNpX293bF9sb2FkZXIub1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYz0zOT1zdGF0aWMgY29uc3Qgc3RydWN0IGFuaV9vZmRtX2xldmVsX2VudHJ5IG9mZG1fbGV2ZWxfdGFibGVbXSA9IHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmMtNTEtfTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYzo1MjojZGVmaW5lIEFUSDlLX0FOSV9PRkRNX05VTV9MRVZFTCBcXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jLTUzLVx0QVJSQVlfU0laRShvZmRtX2xldmVsX3RhYmxlKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jOjU0OiNkZWZpbmUgQVRIOUtfQU5JX09GRE1fTUFYX0xFVkVMIFxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmM6NTU6XHQoQVRIOUtfQU5JX09GRE1fTlVNX0xFVkVMLTEpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmM6NTY6I2RlZmluZSBBVEg5S19BTklfT0ZETV9ERUZfTEVWRUwgXFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYy01Ny1cdDMgLyogZGVmYXVsdCBsZXZlbCAtIG1hdGNoZXMgdGhlIElOSSBzZXR0aW5ncyAqL1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYz04NT1zdGF0aWMgY29uc3Qgc3RydWN0IGFuaV9jY2tfbGV2ZWxfZW50cnkgY2NrX2xldmVsX3RhYmxlW10gPSB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jLTk3LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jOjk4OiNkZWZpbmUgQVRIOUtfQU5JX0NDS19OVU1fTEVWRUwgXFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYy05OS1cdEFSUkFZX1NJWkUoY2NrX2xldmVsX3RhYmxlKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jOjEwMDojZGVmaW5lIEFUSDlLX0FOSV9DQ0tfTUFYX0xFVkVMIFxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmM6MTAxOlx0KEFUSDlLX0FOSV9DQ0tfTlVNX0xFVkVMLTEpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmM6MTAyOiNkZWZpbmUgQVRIOUtfQU5JX0NDS19NQVhfTEVWRUxfTE9XX1JTU0kgXFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYzoxMDM6XHQoQVRIOUtfQU5JX0NDS19OVU1fTEVWRUwtMylcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYzoxMDQ6I2RlZmluZSBBVEg5S19BTklfQ0NLX0RFRl9MRVZFTCBcXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jLTEwNS1cdDIgLyogZGVmYXVsdCBsZXZlbCAtIG1hdGNoZXMgdGhlIElOSSBzZXR0aW5ncyAqL1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYz0xNDk9c3RhdGljIHZvaWQgYXRoOWtfaHdfc2V0X29mZG1fbmlsKHN0cnVjdCBhdGhfaHcgKmFoLCB1OCBpbW11bml0eUxldmVsLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYy0xNjAtXHRcdGltbXVuaXR5TGV2ZWwsIEJFQUNPTl9SU1NJKGFoKSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYzoxNjE6XHRcdEFUSDlLX0FOSV9SU1NJX1RIUl9MT1csXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmM6MTYyOlx0XHRBVEg5S19BTklfUlNTSV9USFJfSElHSCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmMtMTYzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jOjE2NDpcdGlmIChBUl9TUkVWXzkxMDAoYWgpIFx1MDAyNlx1MDAyNiBpbW11bml0eUxldmVsIFx1MDAzYyBBVEg5S19BTklfT0ZETV9ERUZfTEVWRUwpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmM6MTY1Olx0XHRpbW11bml0eUxldmVsID0gQVRIOUtfQU5JX09GRE1fREVGX0xFVkVMO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jLTE2Ni1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmMtMTc0LVx0XHRhdGg5a19od19hbmlfY29udHJvbChhaCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYzoxNzU6XHRcdFx0XHQgICAgIEFUSDlLX0FOSV9TUFVSX0lNTVVOSVRZX0xFVkVMLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jLTE3Ni1cdFx0XHRcdCAgICAgZW50cnlfb2ZkbS1cdTAwM2VzcHVyX2ltbXVuaXR5X2xldmVsKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmMtMTgwLVx0XHRhdGg5a19od19hbmlfY29udHJvbChhaCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYzoxODE6XHRcdFx0XHQgICAgIEFUSDlLX0FOSV9GSVJTVEVQX0xFVkVMLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jLTE4Mi1cdFx0XHRcdCAgICAgZW50cnlfb2ZkbS1cdTAwM2VmaXJfc3RlcF9sZXZlbCk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jLTE4NS1cdGlmIChhaC1cdTAwM2VvcG1vZGUgPT0gTkw4MDIxMV9JRlRZUEVfU1RBVElPTiBcdTAwMjZcdTAwMjZcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYzoxODY6XHQgICAgQkVBQ09OX1JTU0koYWgpIFx1MDAzYz0gQVRIOUtfQU5JX1JTU0lfVEhSX0hJR0gpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmMtMTg3LVx0XHR3ZWFrX3NpZyA9IHRydWU7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jLTIwMi1cdGlmIChhbmlTdGF0ZS1cdTAwM2VvZmRtV2Vha1NpZ0RldGVjdCAhPSB3ZWFrX3NpZylcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYzoyMDM6XHRcdGF0aDlrX2h3X2FuaV9jb250cm9sKGFoLCBBVEg5S19BTklfT0ZETV9XRUFLX1NJR05BTF9ERVRFQ1RJT04sXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmMtMjA0LVx0XHRcdFx0ICAgICB3ZWFrX3NpZyk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jLTIwOC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYzoyMDk6XHRpZiAoYW5pU3RhdGUtXHUwMDNlb2ZkbU5vaXNlSW1tdW5pdHlMZXZlbCBcdTAwM2U9IEFUSDlLX0FOSV9PRkRNX0RFRl9MRVZFTCkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jOjIxMDpcdFx0YWgtXHUwMDNlY29uZmlnLm9mZG1fdHJpZ19oaWdoID0gQVRIOUtfQU5JX09GRE1fVFJJR19ISUdIO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jOjIxMTpcdFx0YWgtXHUwMDNlY29uZmlnLm9mZG1fdHJpZ19sb3cgPSBBVEg5S19BTklfT0ZETV9UUklHX0xPV19BQk9WRV9JTkk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmMtMjEyLVx0fSBlbHNlIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYzoyMTM6XHRcdGFoLVx1MDAzZWNvbmZpZy5vZmRtX3RyaWdfaGlnaCA9IEFUSDlLX0FOSV9PRkRNX1RSSUdfSElHSF9CRUxPV19JTkk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmM6MjE0Olx0XHRhaC1cdTAwM2Vjb25maWcub2ZkbV90cmlnX2xvdyA9IEFUSDlLX0FOSV9PRkRNX1RSSUdfTE9XO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jLTIxNS1cdH1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmM9MjE4PXN0YXRpYyB2b2lkIGF0aDlrX2h3X2FuaV9vZmRtX2Vycl90cmlnZ2VyKHN0cnVjdCBhdGhfaHcgKmFoKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYy0yMjEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmM6MjIyOlx0aWYgKGFuaVN0YXRlLVx1MDAzZW9mZG1Ob2lzZUltbXVuaXR5TGV2ZWwgXHUwMDNjIEFUSDlLX0FOSV9PRkRNX01BWF9MRVZFTClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYy0yMjMtXHRcdGF0aDlrX2h3X3NldF9vZmRtX25pbChhaCwgYW5pU3RhdGUtXHUwMDNlb2ZkbU5vaXNlSW1tdW5pdHlMZXZlbCAmIzQzOyAxLCBmYWxzZSk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jPTIyOT1zdGF0aWMgdm9pZCBhdGg5a19od19zZXRfY2NrX25pbChzdHJ1Y3QgYXRoX2h3ICphaCwgdV9pbnQ4X3QgaW1tdW5pdHlMZXZlbCxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmMtMjM4LVx0XHRhbmlTdGF0ZS1cdTAwM2VjY2tOb2lzZUltbXVuaXR5TGV2ZWwsIGltbXVuaXR5TGV2ZWwsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmM6MjM5Olx0XHRCRUFDT05fUlNTSShhaCksIEFUSDlLX0FOSV9SU1NJX1RIUl9MT1csXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmM6MjQwOlx0XHRBVEg5S19BTklfUlNTSV9USFJfSElHSCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmMtMjQxLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jOjI0MjpcdGlmIChBUl9TUkVWXzkxMDAoYWgpIFx1MDAyNlx1MDAyNiBpbW11bml0eUxldmVsIFx1MDAzYyBBVEg5S19BTklfQ0NLX0RFRl9MRVZFTClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYzoyNDM6XHRcdGltbXVuaXR5TGV2ZWwgPSBBVEg5S19BTklfQ0NLX0RFRl9MRVZFTDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYy0yNDQtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmMtMjQ1LVx0aWYgKGFoLVx1MDAzZW9wbW9kZSA9PSBOTDgwMjExX0lGVFlQRV9TVEFUSU9OIFx1MDAyNlx1MDAyNlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jOjI0NjpcdCAgICBCRUFDT05fUlNTSShhaCkgXHUwMDNjPSBBVEg5S19BTklfUlNTSV9USFJfTE9XIFx1MDAyNlx1MDAyNlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jOjI0NzpcdCAgICBpbW11bml0eUxldmVsIFx1MDAzZSBBVEg5S19BTklfQ0NLX01BWF9MRVZFTF9MT1dfUlNTSSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYzoyNDg6XHRcdGltbXVuaXR5TGV2ZWwgPSBBVEg5S19BTklfQ0NLX01BWF9MRVZFTF9MT1dfUlNTSTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYy0yNDktXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jLTI1OC1cdFx0YXRoOWtfaHdfYW5pX2NvbnRyb2woYWgsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmM6MjU5Olx0XHRcdFx0ICAgICBBVEg5S19BTklfRklSU1RFUF9MRVZFTCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYy0yNjAtXHRcdFx0XHQgICAgIGVudHJ5X2Njay1cdTAwM2VmaXJfc3RlcF9sZXZlbCk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jLTI2OC1cdFx0YXRoOWtfaHdfYW5pX2NvbnRyb2woYWgsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmM6MjY5Olx0XHRcdFx0ICAgICBBVEg5S19BTklfTVJDX0NDSyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYy0yNzAtXHRcdFx0XHQgICAgIGVudHJ5X2Njay1cdTAwM2VtcmNfY2NrX29uKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmM9MjczPXN0YXRpYyB2b2lkIGF0aDlrX2h3X2FuaV9jY2tfZXJyX3RyaWdnZXIoc3RydWN0IGF0aF9odyAqYWgpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jLTI3Ni1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYzoyNzc6XHRpZiAoYW5pU3RhdGUtXHUwMDNlY2NrTm9pc2VJbW11bml0eUxldmVsIFx1MDAzYyBBVEg5S19BTklfQ0NLX01BWF9MRVZFTClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYy0yNzgtXHRcdGF0aDlrX2h3X3NldF9jY2tfbmlsKGFoLCBhbmlTdGF0ZS1cdTAwM2VjY2tOb2lzZUltbXVuaXR5TGV2ZWwgJiM0MzsgMSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmM9MzA5PXZvaWQgYXRoOWtfYW5pX3Jlc2V0KHN0cnVjdCBhdGhfaHcgKmFoLCBib29sIGlzX3NjYW5uaW5nKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYy0zMjEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmM6MzIyOlx0b2ZkbV9uaWwgPSBtYXhfdChpbnQsIEFUSDlLX0FOSV9PRkRNX0RFRl9MRVZFTCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYy0zMjMtXHRcdFx0IGFuaVN0YXRlLVx1MDAzZW9mZG1Ob2lzZUltbXVuaXR5TGV2ZWwpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jOjMyNDpcdGNja19uaWwgPSBtYXhfdChpbnQsIEFUSDlLX0FOSV9DQ0tfREVGX0xFVkVMLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jLTMyNS1cdFx0XHQgYW5pU3RhdGUtXHUwMDNlY2NrTm9pc2VJbW11bml0eUxldmVsKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmMtMzM2LVx0XHRpZiAoYW5pU3RhdGUtXHUwMDNlb2ZkbU5vaXNlSW1tdW5pdHlMZXZlbCAhPVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jOjMzNzpcdFx0ICAgIEFUSDlLX0FOSV9PRkRNX0RFRl9MRVZFTCB8fFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jLTMzOC1cdFx0ICAgIGFuaVN0YXRlLVx1MDAzZWNja05vaXNlSW1tdW5pdHlMZXZlbCAhPVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jOjMzOTpcdFx0ICAgIEFUSDlLX0FOSV9DQ0tfREVGX0xFVkVMKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmMtMzQwLVx0XHRcdGF0aF9kYmcoY29tbW9uLCBBTkksXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jLTM0Ny1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYzozNDg6XHRcdFx0b2ZkbV9uaWwgPSBBVEg5S19BTklfT0ZETV9ERUZfTEVWRUw7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmM6MzQ5Olx0XHRcdGNja19uaWwgPSBBVEg5S19BTklfQ0NLX0RFRl9MRVZFTDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYy0zNTAtXHRcdH1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmM9NDc3PXZvaWQgYXRoOWtfaHdfYW5pX2luaXQoc3RydWN0IGF0aF9odyAqYWgpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jLTQ4NC1cdGlmIChBUl9TUkVWXzkzMDBfMjBfT1JfTEFURVIoYWgpKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmM6NDg1Olx0XHRhaC1cdTAwM2Vjb25maWcub2ZkbV90cmlnX2hpZ2ggPSBBVEg5S19BTklfT0ZETV9UUklHX0hJR0g7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmM6NDg2Olx0XHRhaC1cdTAwM2Vjb25maWcub2ZkbV90cmlnX2xvdyA9IEFUSDlLX0FOSV9PRkRNX1RSSUdfTE9XO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jOjQ4NzpcdFx0YWgtXHUwMDNlY29uZmlnLmNja190cmlnX2hpZ2ggPSBBVEg5S19BTklfQ0NLX1RSSUdfSElHSDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYzo0ODg6XHRcdGFoLVx1MDAzZWNvbmZpZy5jY2tfdHJpZ19sb3cgPSBBVEg5S19BTklfQ0NLX1RSSUdfTE9XO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jLTQ4OS1cdH0gZWxzZSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmM6NDkwOlx0XHRhaC1cdTAwM2Vjb25maWcub2ZkbV90cmlnX2hpZ2ggPSBBVEg5S19BTklfT0ZETV9UUklHX0hJR0hfT0xEO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jOjQ5MTpcdFx0YWgtXHUwMDNlY29uZmlnLm9mZG1fdHJpZ19sb3cgPSBBVEg5S19BTklfT0ZETV9UUklHX0xPV19PTEQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmM6NDkyOlx0XHRhaC1cdTAwM2Vjb25maWcuY2NrX3RyaWdfaGlnaCA9IEFUSDlLX0FOSV9DQ0tfVFJJR19ISUdIX09MRDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYzo0OTM6XHRcdGFoLVx1MDAzZWNvbmZpZy5jY2tfdHJpZ19sb3cgPSBBVEg5S19BTklfQ0NLX1RSSUdfTE9XX09MRDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYy00OTQtXHR9XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmMtNDk1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jOjQ5NjpcdGFuaS1cdTAwM2VzcHVySW1tdW5pdHlMZXZlbCA9IEFUSDlLX0FOSV9TUFVSX0lNTVVORV9MVkw7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmM6NDk3Olx0YW5pLVx1MDAzZWZpcnN0ZXBMZXZlbCA9IEFUSDlLX0FOSV9GSVJTVEVQX0xWTDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYy00OTgtXHRhbmktXHUwMDNlbXJjQ0NLID0gQVJfU1JFVl85MzAwXzIwX09SX0xBVEVSKGFoKSA/IHRydWUgOiBmYWxzZTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmMtNTAwLVx0YW5pLVx1MDAzZW9mZG1XZWFrU2lnRGV0ZWN0ID0gdHJ1ZTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYzo1MDE6XHRhbmktXHUwMDNlY2NrTm9pc2VJbW11bml0eUxldmVsID0gQVRIOUtfQU5JX0NDS19ERUZfTEVWRUw7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmM6NTAyOlx0YW5pLVx1MDAzZW9mZG1Ob2lzZUltbXVuaXR5TGV2ZWwgPSBBVEg5S19BTklfT0ZETV9ERUZfTEVWRUw7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmMtNTAzLVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYy01MDctXHQgKi9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYzo1MDg6XHRhaC1cdTAwM2VhbmlwZXJpb2QgPSBBVEg5S19BTklfUEVSSU9EO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jOjUwOTpcdGFoLVx1MDAzZWNvbmZpZy5hbmlfcG9sbF9pbnRlcnZhbCA9IEFUSDlLX0FOSV9QT0xMSU5URVJWQUw7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmMtNTEwLVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuaC0yMi0vKiB1bml0cyBhcmUgZXJyb3JzIHBlciBzZWNvbmQgKi9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuaDoyMzojZGVmaW5lIEFUSDlLX0FOSV9PRkRNX1RSSUdfSElHSCAgICAgICAgICAgMzUwMFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5oOjI0OiNkZWZpbmUgQVRIOUtfQU5JX09GRE1fVFJJR19ISUdIX0JFTE9XX0lOSSAxMDAwXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmg6MjU6I2RlZmluZSBBVEg5S19BTklfT0ZETV9UUklHX0hJR0hfT0xEICAgICAgIDUwMFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5oLTI2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5oOjI3OiNkZWZpbmUgQVRIOUtfQU5JX09GRE1fVFJJR19MT1cgICAgICAgICAgIDQwMFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5oOjI4OiNkZWZpbmUgQVRIOUtfQU5JX09GRE1fVFJJR19MT1dfQUJPVkVfSU5JIDkwMFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5oOjI5OiNkZWZpbmUgQVRIOUtfQU5JX09GRE1fVFJJR19MT1dfT0xEICAgICAgIDIwMFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5oLTMwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5oOjMxOiNkZWZpbmUgQVRIOUtfQU5JX0NDS19UUklHX0hJR0ggICAgICAgICAgIDYwMFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5oOjMyOiNkZWZpbmUgQVRIOUtfQU5JX0NDS19UUklHX0hJR0hfT0xEICAgICAgIDIwMFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5oOjMzOiNkZWZpbmUgQVRIOUtfQU5JX0NDS19UUklHX0xPVyAgICAgICAgICAgIDMwMFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5oOjM0OiNkZWZpbmUgQVRIOUtfQU5JX0NDS19UUklHX0xPV19PTEQgICAgICAgIDEwMFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5oLTM1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5oOjM2OiNkZWZpbmUgQVRIOUtfQU5JX1NQVVJfSU1NVU5FX0xWTCAgICAgICAgIDNcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuaDozNzojZGVmaW5lIEFUSDlLX0FOSV9GSVJTVEVQX0xWTCAgICAgICAgICAgICAyXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmgtMzgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmg6Mzk6I2RlZmluZSBBVEg5S19BTklfUlNTSV9USFJfSElHSCAgICAgICAgICAgNDBcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuaDo0MDojZGVmaW5lIEFUSDlLX0FOSV9SU1NJX1RIUl9MT1cgICAgICAgICAgICA3XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmgtNDEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmg6NDI6I2RlZmluZSBBVEg5S19BTklfUEVSSU9EICAgICAgICAgICAgICAgICAgMzAwXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmgtNDMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmgtNDQtLyogaW4gbXMgKi9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuaDo0NTojZGVmaW5lIEFUSDlLX0FOSV9QT0xMSU5URVJWQUwgICAgICAgICAgICAxMDAwXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmgtNDYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmg6NDc6I2RlZmluZSBBVEg5S19TSUdfRklSU1RFUF9TRVRUSU5HX01JTiAgICAgMFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5oOjQ4OiNkZWZpbmUgQVRIOUtfU0lHX0ZJUlNURVBfU0VUVElOR19NQVggICAgIDIwXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmg6NDk6I2RlZmluZSBBVEg5S19TSUdfU1BVUl9JTU1fU0VUVElOR19NSU4gICAgMFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5oOjUwOiNkZWZpbmUgQVRIOUtfU0lHX1NQVVJfSU1NX1NFVFRJTkdfTUFYICAgIDIyXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmgtNTEtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5oPTU0PWVudW0gYXRoOWtfYW5pX2NtZCB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmg6NTU6XHRBVEg5S19BTklfT0ZETV9XRUFLX1NJR05BTF9ERVRFQ1RJT04gPSAweDEsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmg6NTY6XHRBVEg5S19BTklfRklSU1RFUF9MRVZFTCA9IDB4MixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuaDo1NzpcdEFUSDlLX0FOSV9TUFVSX0lNTVVOSVRZX0xFVkVMID0gMHg0LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5oOjU4Olx0QVRIOUtfQU5JX01SQ19DQ0sgPSAweDgsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmg6NTk6XHRBVEg5S19BTklfQUxMID0gMHhmZmZcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuaC02MC19O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hcjUwMDhfcGh5LmM9OTUzPXN0YXRpYyBib29sIGFyNTAwOF9od19hbmlfY29udHJvbF9uZXcoc3RydWN0IGF0aF9odyAqYWgsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FyNTAwOF9waHkuYy05NjItXHRzd2l0Y2ggKGNtZCBcdTAwMjYgYWgtXHUwMDNlYW5pX2Z1bmN0aW9uKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYXI1MDA4X3BoeS5jOjk2MzpcdGNhc2UgQVRIOUtfQU5JX09GRE1fV0VBS19TSUdOQUxfREVURUNUSU9OOntcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hcjUwMDhfcGh5LmMtOTY0LVx0XHQvKlxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hcjUwMDhfcGh5LmMtMTA0My1cdH1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hcjUwMDhfcGh5LmM6MTA0NDpcdGNhc2UgQVRIOUtfQU5JX0ZJUlNURVBfTEVWRUw6e1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FyNTAwOF9waHkuYy0xMDQ1LVx0XHR1MzIgbGV2ZWwgPSBwYXJhbTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYXI1MDA4X3BoeS5jLTEwNTgtXHRcdFx0XHRsZXZlbCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hcjUwMDhfcGh5LmM6MTA1OTpcdFx0XHRcdEFUSDlLX0FOSV9GSVJTVEVQX0xWTCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hcjUwMDhfcGh5LmMtMTA2MC1cdFx0XHRcdHZhbHVlLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hcjUwMDhfcGh5LmMtMTA2Ni1cdFx0XHRcdGxldmVsLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FyNTAwOF9waHkuYzoxMDY3Olx0XHRcdFx0QVRIOUtfQU5JX0ZJUlNURVBfTFZMLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FyNTAwOF9waHkuYy0xMDY4LVx0XHRcdFx0dmFsdWUsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FyNTAwOF9waHkuYy0xMDc3LVx0fVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FyNTAwOF9waHkuYzoxMDc4Olx0Y2FzZSBBVEg5S19BTklfU1BVUl9JTU1VTklUWV9MRVZFTDp7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYXI1MDA4X3BoeS5jLTEwNzktXHRcdHUzMiBsZXZlbCA9IHBhcmFtO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hcjUwMDhfcGh5LmMtMTA5My1cdFx0XHRcdGxldmVsLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FyNTAwOF9waHkuYzoxMDk0Olx0XHRcdFx0QVRIOUtfQU5JX1NQVVJfSU1NVU5FX0xWTCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hcjUwMDhfcGh5LmMtMTA5NS1cdFx0XHRcdHZhbHVlLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hcjUwMDhfcGh5LmMtMTEwMS1cdFx0XHRcdGxldmVsLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FyNTAwOF9waHkuYzoxMTAyOlx0XHRcdFx0QVRIOUtfQU5JX1NQVVJfSU1NVU5FX0xWTCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hcjUwMDhfcGh5LmMtMTEwMy1cdFx0XHRcdHZhbHVlLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hcjUwMDhfcGh5LmMtMTExMi1cdH1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hcjUwMDhfcGh5LmM6MTExMzpcdGNhc2UgQVRIOUtfQU5JX01SQ19DQ0s6XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYXI1MDA4X3BoeS5jLTExMTQtXHRcdC8qXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FyNTAwOF9waHkuYz0xMTY5PXN0YXRpYyB2b2lkIGFyNTAwOF9od19hbmlfY2FjaGVfaW5pX3JlZ3Moc3RydWN0IGF0aF9odyAqYWgpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FyNTAwOF9waHkuYy0xMjEzLVx0LyogdGhlc2UgbGV2ZWxzIGp1c3QgZ290IHJlc2V0IHRvIGRlZmF1bHRzIGJ5IHRoZSBJTkkgKi9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hcjUwMDhfcGh5LmM6MTIxNDpcdGFuaVN0YXRlLVx1MDAzZXNwdXJJbW11bml0eUxldmVsID0gQVRIOUtfQU5JX1NQVVJfSU1NVU5FX0xWTDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hcjUwMDhfcGh5LmM6MTIxNTpcdGFuaVN0YXRlLVx1MDAzZWZpcnN0ZXBMZXZlbCA9IEFUSDlLX0FOSV9GSVJTVEVQX0xWTDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hcjUwMDhfcGh5LmMtMTIxNi1cdGFuaVN0YXRlLVx1MDAzZW9mZG1XZWFrU2lnRGV0ZWN0ID0gdHJ1ZTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYXI5MDAyX21hYy5jPTMyPXN0YXRpYyBib29sIGFyOTAwMl9od19nZXRfaXNyKHN0cnVjdCBhdGhfaHcgKmFoLCBlbnVtIGF0aDlrX2ludCAqbWFza2VkLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hcjkwMDJfbWFjLmMtNjYtXHRcdFx0aWYgKGlzcjIgXHUwMDI2IEFSX0lTUl9TMl9USU0pXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYXI5MDAyX21hYy5jOjY3Olx0XHRcdFx0bWFzazIgfD0gQVRIOUtfSU5UX1RJTTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hcjkwMDJfbWFjLmMtNjgtXHRcdFx0aWYgKGlzcjIgXHUwMDI2IEFSX0lTUl9TMl9EVElNKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FyOTAwMl9tYWMuYzo2OTpcdFx0XHRcdG1hc2syIHw9IEFUSDlLX0lOVF9EVElNO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FyOTAwMl9tYWMuYy03MC1cdFx0XHRpZiAoaXNyMiBcdTAwMjYgQVJfSVNSX1MyX0RUSU1TWU5DKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FyOTAwMl9tYWMuYzo3MTpcdFx0XHRcdG1hc2syIHw9IEFUSDlLX0lOVF9EVElNU1lOQztcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hcjkwMDJfbWFjLmMtNzItXHRcdFx0aWYgKGlzcjIgXHUwMDI2IChBUl9JU1JfUzJfQ0FCRU5EKSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hcjkwMDJfbWFjLmM6NzM6XHRcdFx0XHRtYXNrMiB8PSBBVEg5S19JTlRfQ0FCRU5EO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FyOTAwMl9tYWMuYy03NC1cdFx0XHRpZiAoaXNyMiBcdTAwMjYgQVJfSVNSX1MyX0dUVClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hcjkwMDJfbWFjLmM6NzU6XHRcdFx0XHRtYXNrMiB8PSBBVEg5S19JTlRfR1RUO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FyOTAwMl9tYWMuYy03Ni1cdFx0XHRpZiAoaXNyMiBcdTAwMjYgQVJfSVNSX1MyX0NTVClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hcjkwMDJfbWFjLmM6Nzc6XHRcdFx0XHRtYXNrMiB8PSBBVEg5S19JTlRfQ1NUO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FyOTAwMl9tYWMuYy03OC1cdFx0XHRpZiAoaXNyMiBcdTAwMjYgQVJfSVNSX1MyX1RTRk9PUilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hcjkwMDJfbWFjLmM6Nzk6XHRcdFx0XHRtYXNrMiB8PSBBVEg5S19JTlRfVFNGT09SO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FyOTAwMl9tYWMuYy04MC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hcjkwMDJfbWFjLmM6ODE6XHRcdFx0aWYgKCEocENhcC1cdTAwM2Vod19jYXBzIFx1MDAyNiBBVEg5S19IV19DQVBfUkFDX1NVUFBPUlRFRCkpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hcjkwMDJfbWFjLmMtODItXHRcdFx0XHRSRUdfV1JJVEUoYWgsIEFSX0lTUl9TMiwgaXNyMik7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FyOTAwMl9tYWMuYy04Ni1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hcjkwMDJfbWFjLmM6ODc6XHRcdGlmIChwQ2FwLVx1MDAzZWh3X2NhcHMgXHUwMDI2IEFUSDlLX0hXX0NBUF9SQUNfU1VQUE9SVEVEKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FyOTAwMl9tYWMuYy04OC1cdFx0XHRpc3IgPSBSRUdfUkVBRChhaCwgQVJfSVNSX1JBQyk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FyOTAwMl9tYWMuYy05NC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hcjkwMDJfbWFjLmM6OTU6XHRcdCptYXNrZWQgPSBpc3IgXHUwMDI2IEFUSDlLX0lOVF9DT01NT047XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYXI5MDAyX21hYy5jLTk2LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hcjkwMDJfbWFjLmMtOTgtXHRcdFx0ICAgQVJfSVNSX1JYT0sgfCBBUl9JU1JfUlhFUlIpKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FyOTAwMl9tYWMuYzo5OTpcdFx0XHQqbWFza2VkIHw9IEFUSDlLX0lOVF9SWDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hcjkwMDJfbWFjLmMtMTAwLVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hcjkwMDJfbWFjLmMtMTA1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FyOTAwMl9tYWMuYzoxMDY6XHRcdFx0Km1hc2tlZCB8PSBBVEg5S19JTlRfVFg7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYXI5MDAyX21hYy5jLTEwNy1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hcjkwMDJfbWFjLmM6MTA4Olx0XHRcdGlmIChwQ2FwLVx1MDAzZWh3X2NhcHMgXHUwMDI2IEFUSDlLX0hXX0NBUF9SQUNfU1VQUE9SVEVEKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYXI5MDAyX21hYy5jLTEwOS1cdFx0XHRcdHMwX3MgPSBSRUdfUkVBRChhaCwgQVJfSVNSX1MwX1MpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hcjkwMDJfbWFjLmMtMTM5LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FyOTAwMl9tYWMuYzoxNDA6XHRcdGlmIChwQ2FwLVx1MDAzZWh3X2NhcHMgXHUwMDI2IEFUSDlLX0hXX0NBUF9SQUNfU1VQUE9SVEVEKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYXI5MDAyX21hYy5jLTE0MS1cdFx0XHRzNV9zID0gUkVHX1JFQUQoYWgsIEFSX0lTUl9TNV9TKGFoKSk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FyOTAwMl9tYWMuYy0xNTItXHRcdGlmIChhaC1cdTAwM2VpbnRyX2dlbl90aW1lcl90cmlnZ2VyKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FyOTAwMl9tYWMuYzoxNTM6XHRcdFx0Km1hc2tlZCB8PSBBVEg5S19JTlRfR0VOVElNRVI7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYXI5MDAyX21hYy5jLTE1NC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hcjkwMDJfbWFjLmMtMTU1LVx0XHRpZiAoKHM1X3MgXHUwMDI2IEFSX0lTUl9TNV9USU1fVElNRVIpIFx1MDAyNlx1MDAyNlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FyOTAwMl9tYWMuYzoxNTY6XHRcdCAgICAhKHBDYXAtXHUwMDNlaHdfY2FwcyBcdTAwMjYgQVRIOUtfSFdfQ0FQX0FVVE9TTEVFUCkpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYXI5MDAyX21hYy5jOjE1NzpcdFx0XHQqbWFza2VkIHw9IEFUSDlLX0lOVF9USU1fVElNRVI7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYXI5MDAyX21hYy5jLTE1OC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hcjkwMDJfbWFjLmM6MTU5Olx0XHRpZiAoIShwQ2FwLVx1MDAzZWh3X2NhcHMgXHUwMDI2IEFUSDlLX0hXX0NBUF9SQUNfU1VQUE9SVEVEKSkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FyOTAwMl9tYWMuYy0xNjAtXHRcdFx0UkVHX1dSSVRFKGFoLCBBUl9JU1JfUzUsIHM1X3MpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hcjkwMDJfbWFjLmMtMTY0LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FyOTAwMl9tYWMuYzoxNjU6XHRpZiAoIShwQ2FwLVx1MDAzZWh3X2NhcHMgXHUwMDI2IEFUSDlLX0hXX0NBUF9SQUNfU1VQUE9SVEVEKSkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FyOTAwMl9tYWMuYy0xNjYtXHRcdFJFR19XUklURShhaCwgQVJfSVNSLCBpc3IpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hcjkwMDJfbWFjLmMtMTg5LVx0XHRcdH1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hcjkwMDJfbWFjLmM6MTkwOlx0XHRcdCptYXNrZWQgfD0gQVRIOUtfSU5UX0ZBVEFMO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FyOTAwMl9tYWMuYy0xOTEtXHRcdH1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYXI5MDAyX21hYy5jLTE5Ni1cdFx0XHRSRUdfV1JJVEUoYWgsIEFSX1JDLCAwKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hcjkwMDJfbWFjLmM6MTk3Olx0XHRcdCptYXNrZWQgfD0gQVRIOUtfSU5UX0ZBVEFMO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FyOTAwMl9tYWMuYy0xOTgtXHRcdH1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYXI5MDAyX21hYy5jPTIxMj1hcjkwMDJfc2V0X3R4ZGVzYyhzdHJ1Y3QgYXRoX2h3ICphaCwgdm9pZCAqZHMsIHN0cnVjdCBhdGhfdHhfaW5mbyAqaSlcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYXI5MDAyX21hYy5jLTI2MC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hcjkwMDJfbWFjLmM6MjYxOlx0Y3RsMSB8PSAoaS1cdTAwM2VrZXlpeCAhPSBBVEg5S19UWEtFWUlYX0lOVkFMSUQgPyBTTShpLVx1MDAzZWtleWl4LCBBUl9EZXN0SWR4KSA6IDApXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYXI5MDAyX21hYy5jLTI2Mi1cdFx0fCBTTShpLVx1MDAzZXR5cGUsIEFSX0ZyYW1lVHlwZSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hcjkwMDJfbWFjLmM6MjYzOlx0XHR8IChpLVx1MDAzZWZsYWdzIFx1MDAyNiBBVEg5S19UWERFU0NfTk9BQ0sgPyBBUl9Ob0FjayA6IDApXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYXI5MDAyX21hYy5jOjI2NDpcdFx0fCAoaS1cdTAwM2VmbGFncyBcdTAwMjYgQVRIOUtfVFhERVNDX0VYVF9PTkxZID8gQVJfRXh0T25seSA6IDApXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYXI5MDAyX21hYy5jOjI2NTpcdFx0fCAoaS1cdTAwM2VmbGFncyBcdTAwMjYgQVRIOUtfVFhERVNDX0VYVF9BTkRfQ1RMID8gQVJfRXh0QW5kQ3RsIDogMCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYXI5MDAyX21hYy5jLTI2Ni1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYXI5MDAyX21hYy5jLTI4Mi1cdFdSSVRFX09OQ0UoYWRzLVx1MDAzZWRzX2N0bDAsIChpLVx1MDAzZXBrdF9sZW4gXHUwMDI2IEFSX0ZyYW1lTGVuKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FyOTAwMl9tYWMuYzoyODM6XHRcdHwgKGktXHUwMDNlZmxhZ3MgXHUwMDI2IEFUSDlLX1RYREVTQ19WTUYgPyBBUl9WaXJ0TW9yZUZyYWcgOiAwKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FyOTAwMl9tYWMuYy0yODQtXHRcdHwgU00oaS1cdTAwM2V0eHBvd2VyWzBdLCBBUl9YbWl0UG93ZXIwKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FyOTAwMl9tYWMuYzoyODU6XHRcdHwgKGktXHUwMDNlZmxhZ3MgXHUwMDI2IEFUSDlLX1RYREVTQ19WRU9MID8gQVJfVkVPTCA6IDApXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYXI5MDAyX21hYy5jOjI4NjpcdFx0fCAoaS1cdTAwM2VmbGFncyBcdTAwMjYgQVRIOUtfVFhERVNDX0lOVFJFUSA/IEFSX1R4SW50clJlcSA6IDApXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYXI5MDAyX21hYy5jOjI4NzpcdFx0fCAoaS1cdTAwM2VrZXlpeCAhPSBBVEg5S19UWEtFWUlYX0lOVkFMSUQgPyBBUl9EZXN0SWR4VmFsaWQgOiAwKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FyOTAwMl9tYWMuYzoyODg6XHRcdHwgKGktXHUwMDNlZmxhZ3MgXHUwMDI2IEFUSDlLX1RYREVTQ19DTFJETUFTSyA/IEFSX0NsckRlc3RNYXNrIDogMClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hcjkwMDJfbWFjLmM6Mjg5Olx0XHR8IChpLVx1MDAzZWZsYWdzIFx1MDAyNiBBVEg5S19UWERFU0NfUlRTRU5BID8gQVJfUlRTRW5hYmxlIDpcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hcjkwMDJfbWFjLmM6MjkwOlx0XHQgICAoaS1cdTAwM2VmbGFncyBcdTAwMjYgQVRIOUtfVFhERVNDX0NUU0VOQSA/IEFSX0NUU0VuYWJsZSA6IDApKSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYXI5MDAyX21hYy5jLTI5MS1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYXI5MDAyX21hYy5jPTMxNj1zdGF0aWMgaW50IGFyOTAwMl9od19wcm9jX3R4ZGVzYyhzdHJ1Y3QgYXRoX2h3ICphaCwgdm9pZCAqZHMsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FyOTAwMl9tYWMuYy0zMzAtXHRpZiAoc3RhdHVzIFx1MDAyNiBBUl9UeE9wRXhjZWVkZWQpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYXI5MDAyX21hYy5jOjMzMTpcdFx0dHMtXHUwMDNldHNfc3RhdHVzIHw9IEFUSDlLX1RYRVJSX1hUWE9QO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FyOTAwMl9tYWMuYy0zMzItXHR0cy1cdTAwM2V0aWQgPSBNUyhzdGF0dXMsIEFSX1R4VGlkKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYXI5MDAyX21hYy5jLTM0MC1cdGlmIChzdGF0dXMgXHUwMDI2IEFSX1R4QmFTdGF0dXMpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hcjkwMDJfbWFjLmM6MzQxOlx0XHR0cy1cdTAwM2V0c19mbGFncyB8PSBBVEg5S19UWF9CQTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hcjkwMDJfbWFjLmMtMzQyLVx0XHR0cy1cdTAwM2ViYV9sb3cgPSBhZHMtXHUwMDNlQVJfQmFCaXRtYXBMb3c7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FyOTAwMl9tYWMuYy0zNDctXHRpZiAoc3RhdHVzIFx1MDAyNiBBUl9Gcm1YbWl0T0spXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYXI5MDAyX21hYy5jOjM0ODpcdFx0dHMtXHUwMDNldHNfc3RhdHVzIHw9IEFUSDlLX1RYX0FDS0VEO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FyOTAwMl9tYWMuYy0zNDktXHRlbHNlIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hcjkwMDJfbWFjLmMtMzUwLVx0XHRpZiAoc3RhdHVzIFx1MDAyNiBBUl9FeGNlc3NpdmVSZXRyaWVzKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FyOTAwMl9tYWMuYzozNTE6XHRcdFx0dHMtXHUwMDNldHNfc3RhdHVzIHw9IEFUSDlLX1RYRVJSX1hSRVRSWTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hcjkwMDJfbWFjLmMtMzUyLVx0XHRpZiAoc3RhdHVzIFx1MDAyNiBBUl9GaWx0ZXJlZClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hcjkwMDJfbWFjLmM6MzUzOlx0XHRcdHRzLVx1MDAzZXRzX3N0YXR1cyB8PSBBVEg5S19UWEVSUl9GSUxUO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FyOTAwMl9tYWMuYy0zNTQtXHRcdGlmIChzdGF0dXMgXHUwMDI2IEFSX0ZJRk9VbmRlcnJ1bikge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FyOTAwMl9tYWMuYzozNTU6XHRcdFx0dHMtXHUwMDNldHNfc3RhdHVzIHw9IEFUSDlLX1RYRVJSX0ZJRk87XG5cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8wNiAwODowOTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuNy1mbGFzaDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxODI0OQoJCQkJCQkJb3V0cHV0OiAzOQoJCQkJCQkJdGhvdWdodHM6IDEwMwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipJbnZlc3RpZ2F0aW5nIHRoZSBgYXRoOWtgIERyaXZlcioqCgpPa2F5LCBzbyBJJiMzOTttIHRyeWluZyB0byBmaWd1cmUgb3V0IHRoZSByZWxhdGlvbnNoaXAgYmV0d2VlbiBgYXRoOWtgIGFuZCBgYXRoOWtfaHRjYC4gSSYjMzk7bSBwcmV0dHkgc3VyZSBgYXRoOWtgIGlzIHByaW1hcmlseSBmb3IgUENJIGFuZCBBSEIgaW50ZXJmYWNlcywgYnV0IEkgbmVlZCB0byBjb25maXJtIHRoYXQuIFRoZSBiZXN0IHdheSB0byBkbyB0aGlzIGlzIHRvIGRpdmUgaW50byB0aGUga2VybmVsIHNvdXJjZSwgc3BlY2lmaWNhbGx5IHRoZSBidWlsZCBwcm9jZXNzLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCB3aGljaCBmaWxlcyBhcmUgY29tcGlsZWQgaW50byBgYXRoOWsua29gIHZlcnN1cyBgYXRoOWtfaHRjLmtvYC4gSSYjMzk7bGwgdXNlIGBhdGg5ay9NYWtlZmlsZWAgaW4gdGhlIGtlcm5lbCBzb3VyY2UgdG8gZ2V0IGEgY2xlYXIgcGljdHVyZSBhbmQgdGhlbiB1c2UgYHJlYWQtZmlsZWAgdG8gZ2V0IHRoZSBNYWtlZmlsZS4gVGhpcyBzaG91bGQgaWxsdW1pbmF0ZSB0aGUgZHJpdmVyJiMzOTtzIGFyY2hpdGVjdHVyZSBhbmQgdGhlIGtleSBkaWZmZXJlbmNlcyBiZXR3ZWVuIHRoZSB0d28gbW9kdWxlcy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8wNiAwODowOTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnJlYWQtZmlsZTwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RmlsZSYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9NYWtlZmlsZSYjMzQ7LAogICYjMzQ7Rmlyc3RMaW5lJiMzNDs6IDEsCiAgJiMzNDtMaW5lQ291bnQmIzM0OzogODUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0NvbnRlbnRzJiMzNDs6ICYjMzQ7ICAgMTpcdCMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IElTQ1xuICAgMjpcdGF0aDlrLXkgJiM0Mzs9XHRiZWFjb24ubyBcXFxuICAgMzpcdFx0XHRncGlvLm8gXFxcbiAgIDQ6XHRcdFx0aW5pdC5vIFxcXG4gICA1Olx0XHRcdG1haW4ubyBcXFxuICAgNjpcdFx0XHRyZWN2Lm8gXFxcbiAgIDc6XHRcdFx0eG1pdC5vIFxcXG4gICA4Olx0XHRcdGxpbmsubyBcXFxuICAgOTpcdFx0XHRhbnRlbm5hLm8gXFxcbiAgMTA6XHRcdFx0Y2hhbm5lbC5vXG4gIDExOlx0XG4gIDEyOlx0YXRoOWstJChDT05GSUdfQVRIOUtfQlRDT0VYX1NVUFBPUlQpICYjNDM7PSBtY2kub1xuICAxMzpcdGF0aDlrLSQoQ09ORklHX0FUSDlLX1BDSSkgJiM0Mzs9IHBjaS5vXG4gIDE0Olx0YXRoOWstJChDT05GSUdfQVRIOUtfQUhCKSAmIzQzOz0gYWhiLm9cbiAgMTU6XHRhdGg5ay0kKENPTkZJR19BVEg5S19ERlNfREVCVUdGUykgJiM0Mzs9IGRmc19kZWJ1Zy5vXG4gIDE2Olx0YXRoOWstJChDT05GSUdfQVRIOUtfREZTX0NFUlRJRklFRCkgJiM0Mzs9IGRmcy5vXG4gIDE3Olx0YXRoOWstJChDT05GSUdfQVRIOUtfVFg5OSkgJiM0Mzs9IHR4OTkub1xuICAxODpcdGF0aDlrLSQoQ09ORklHX0FUSDlLX1dPVykgJiM0Mzs9IHdvdy5vXG4gIDE5Olx0YXRoOWstJChDT05GSUdfQVRIOUtfSFdSTkcpICYjNDM7PSBybmcub1xuICAyMDpcdFxuICAyMTpcdGF0aDlrLSQoQ09ORklHX0FUSDlLX0RFQlVHRlMpICYjNDM7PSBkZWJ1Zy5vXG4gIDIyOlx0XG4gIDIzOlx0YXRoOWstJChDT05GSUdfQVRIOUtfU1RBVElPTl9TVEFUSVNUSUNTKSAmIzQzOz0gZGVidWdfc3RhLm9cbiAgMjQ6XHRcbiAgMjU6XHRvYmotJChDT05GSUdfQVRIOUspICYjNDM7PSBhdGg5ay5vXG4gIDI2Olx0XG4gIDI3Olx0YXRoOWtfaHcteTo9XHRcXFxuICAyODpcdFx0XHRhcjkwMDJfaHcubyBcXFxuICAyOTpcdFx0XHRhcjkwMDNfaHcubyBcXFxuICAzMDpcdFx0XHRody5vIFxcXG4gIDMxOlx0XHRcdGFyOTAwM19waHkubyBcXFxuICAzMjpcdFx0XHRhcjkwMDJfcGh5Lm8gXFxcbiAgMzM6XHRcdFx0YXI1MDA4X3BoeS5vIFxcXG4gIDM0Olx0XHRcdGFyOTAwMl9jYWxpYi5vIFxcXG4gIDM1Olx0XHRcdGFyOTAwM19jYWxpYi5vIFxcXG4gIDM2Olx0XHRcdGNhbGliLm8gXFxcbiAgMzc6XHRcdFx0ZWVwcm9tLm8gXFxcbiAgMzg6XHRcdFx0ZWVwcm9tX2RlZi5vIFxcXG4gIDM5Olx0XHRcdGVlcHJvbV80ay5vIFxcXG4gIDQwOlx0XHRcdGVlcHJvbV85Mjg3Lm8gXFxcbiAgNDE6XHRcdFx0YW5pLm8gXFxcbiAgNDI6XHRcdFx0bWFjLm8gXFxcbiAgNDM6XHRcdFx0YXI5MDAyX21hYy5vIFxcXG4gIDQ0Olx0XHRcdGFyOTAwM19tYWMubyBcXFxuICA0NTpcdFx0XHRhcjkwMDNfZWVwcm9tLm8gXFxcbiAgNDY6XHRcdFx0YXI5MDAzX3BhcHJkLm9cbiAgNDc6XHRcbiAgNDg6XHRhdGg5a19ody0kKENPTkZJR19BVEg5S19XT1cpICYjNDM7PSBhcjkwMDNfd293Lm9cbiAgNDk6XHRcbiAgNTA6XHRhdGg5a19ody0kKENPTkZJR19BVEg5S19CVENPRVhfU1VQUE9SVCkgJiM0Mzs9IGJ0Y29leC5vIFxcXG4gIDUxOlx0XHRcdFx0XHRcdCAgIGFyOTAwM19tY2kubyBcXFxuICA1MjpcdFx0XHRcdFx0XHQgICBhcjkwMDNfYWljLm9cbiAgNTM6XHRcbiAgNTQ6XHRhdGg5a19ody0kKENPTkZJR19BVEg5S19QQ09FTSkgJiM0Mzs9IGFyOTAwM19ydHQub1xuICA1NTpcdFxuICA1NjpcdGF0aDlrX2h3LSQoQ09ORklHX0FUSDlLX0RZTkFDSykgJiM0Mzs9IGR5bmFjay5vXG4gIDU3Olx0XG4gIDU4Olx0b2JqLSQoQ09ORklHX0FUSDlLX0hXKSAmIzQzOz0gYXRoOWtfaHcub1xuICA1OTpcdFxuICA2MDpcdG9iai0kKENPTkZJR19BVEg5S19DT01NT04pICYjNDM7PSBhdGg5a19jb21tb24ub1xuICA2MTpcdGF0aDlrX2NvbW1vbi15Oj1cdGNvbW1vbi5vIFxcXG4gIDYyOlx0XHRcdFx0Y29tbW9uLWluaXQubyBcXFxuICA2MzpcdFx0XHRcdGNvbW1vbi1iZWFjb24ubyBcXFxuICA2NDpcdFxuICA2NTpcdGF0aDlrX2NvbW1vbi0kKENPTkZJR19BVEg5S19DT01NT05fREVCVUcpICYjNDM7PSBjb21tb24tZGVidWcub1xuICA2NjpcdGF0aDlrX2NvbW1vbi0kKENPTkZJR19BVEg5S19DT01NT05fU1BFQ1RSQUwpICYjNDM7PSBjb21tb24tc3BlY3RyYWwub1xuICA2NzpcdFxuICA2ODpcdGF0aDlrX2h0Yy15ICYjNDM7PVx0aHRjX2hzdC5vIFxcXG4gIDY5Olx0XHRcdGhpZl91c2IubyBcXFxuICA3MDpcdFx0XHR3bWkubyBcXFxuICA3MTpcdFx0XHRodGNfZHJ2X3R4cngubyBcXFxuICA3MjpcdFx0XHRodGNfZHJ2X21haW4ubyBcXFxuICA3MzpcdFx0XHRodGNfZHJ2X2JlYWNvbi5vIFxcXG4gIDc0Olx0XHRcdGh0Y19kcnZfaW5pdC5vIFxcXG4gIDc1Olx0XHRcdGh0Y19kcnZfZ3Bpby5vXG4gIDc2Olx0XG4gIDc3Olx0YXRoOWtfaHRjLSQoQ09ORklHX0FUSDlLX0hUQ19ERUJVR0ZTKSAmIzQzOz0gaHRjX2Rydl9kZWJ1Zy5vXG4gIDc4Olx0XG4gIDc5Olx0b2JqLSQoQ09ORklHX0FUSDlLX0hUQykgJiM0Mzs9IGF0aDlrX2h0Yy5vXG4gIDgwOlx0XG4gIDgxOlx0b2JqLSQoQ09ORklHX0FUSDlLX1BDSV9OT19FRVBST00pICYjNDM7PSBhdGg5a19wY2lfb3dsX2xvYWRlci5vXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ny8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMDYgMDg6MDk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjctZmxhc2g8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTk4NTkKCQkJCQkJCW91dHB1dDogNTUKCQkJCQkJCXRob3VnaHRzOiAxMzQKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBXaXJlbGVzcyBEcml2ZXIgTGFuZHNjYXBlKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGVzZSB3aXJlbGVzcyBkcml2ZXJzIGFuZCBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlaXIgYXJjaGl0ZWN0dXJlLiBJIHNlZSB0aGF0IGBhdGg5ay15YCBpbmNsdWRlcyBgeG1pdC5vYCwgd2hpY2ggaXMgZXhwZWN0ZWQuIEJ1dCB0aGVuLCBgYXRoOWtfaHRjLXlgIHVzZXMgYGh0Y19kcnZfdHhyeC5vYCBpbnN0ZWFkLCBhbmQgY3J1Y2lhbGx5LCAqZG9lc24mIzM5O3QqIGluY2x1ZGUgYHhtaXQub2AuIFRoYXQmIzM5O3MgYSBrZXkgZGlzdGluY3Rpb24uIE5vdyBJIG5lZWQgdG8gY2xhcmlmeSBteSBhc3N1bXB0aW9uczogaXMgYGF0aDlrYCAqc3RyaWN0bHkqIGJvdW5kIHRvIFBDSSBvciBBSEI/IERvZXMgaXQgaGF2ZSBhbnkgVVNCIGludGVyZmFjZSBjYXBhYmlsaXRpZXM/IENhbiBpdCBiZSByZWFjaGVkIHZpYSBhIFJhdyBHYWRnZXQgc2V0dXAgb3IgdmlydGlvPyBJIG5lZWQgdG8ga25vdyBpZiBpdCYjMzk7cyBwdXJlbHkgdGllZCB0byBzcGVjaWZpYyBoYXJkd2FyZSBidXNlcy4gSSYjMzk7bGwgbmVlZCB0byBkaWcgaW50byBob3cgaXQmIzM5O3MgcmVnaXN0ZXJlZCB3aXRoaW4gdGhlIGtlcm5lbCB0byB1bmRlcnN0YW5kIGl0cyBjYXBhYmlsaXRpZXMgYW5kIGhvdyBpdCYjMzk7cyBleHBvc2VkIHRvIHRoZSBzeXN0ZW0uIEkmIzM5O2xsIGZvY3VzIG15IHNlYXJjaCBmb3IgZHJpdmVyIHJlZ2lzdHJhdGlvbnMgd2l0aGluIHRoZSBgZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2AgZGlyZWN0b3J5LiBUaGF0IHNob3VsZCBpbGx1bWluYXRlIHRoZSBzdXBwb3J0ZWQgaGFyZHdhcmUgaW50ZXJmYWNlcy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD44LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8wNiAwODowOTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDttb2R1bGVfaW5pdHxkcml2ZXJfcmVnaXN0ZXJ8cGNpX3JlZ2lzdGVyX2RyaXZlcnxwbGF0Zm9ybV9kcml2ZXJfcmVnaXN0ZXJ8dXNiX3JlZ2lzdGVyJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9haGIuYz0xNDM9aW50IGF0aF9haGJfaW5pdCh2b2lkKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FoYi5jLTE0NC17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYWhiLmM6MTQ1Olx0cmV0dXJuIHBsYXRmb3JtX2RyaXZlcl9yZWdpc3RlcihcdTAwMjZhdGhfYWhiX2RyaXZlcik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYWhiLmMtMTQ2LX1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvaW5pdC5jPTExMzA9c3RhdGljIGludCBfX2luaXQgYXRoOWtfaW5pdCh2b2lkKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9pbml0LmMtMTE1NS19XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvaW5pdC5jOjExNTY6bW9kdWxlX2luaXQoYXRoOWtfaW5pdCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvaW5pdC5jLTExNTctXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3BjaS5jPTEwODM9aW50IGF0aF9wY2lfaW5pdCh2b2lkKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3BjaS5jLTEwODQte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3BjaS5jOjEwODU6XHRyZXR1cm4gcGNpX3JlZ2lzdGVyX2RyaXZlcihcdTAwMjZhdGhfcGNpX2RyaXZlcik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvcGNpLmMtMTA4Ni19XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OS8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMDYgMDg6MDk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjctZmxhc2g8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjA2MjkKCQkJCQkJCW91dHB1dDogNDQKCQkJCQkJCXRob3VnaHRzOiAyMQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+SGVyZSYjMzk7cyBteSBhdHRlbXB0IGF0IHN1bW1hcml6aW5nIHRoZSB0aG91Z2h0IHByb2Nlc3MsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2U6CgoqKkRpdmluZyBpbnRvIHRoZSBBdGhlcm9zIERyaXZlciBJbml0aWFsaXphdGlvbioqCgpPa2F5LCB0aW1lIHRvIHRyb3VibGVzaG9vdCB0aGlzIEF0aGVyb3Mgd2lyZWxlc3MgaXNzdWUuIE15IGZpcnN0IGluc3RpbmN0IGlzIHRvIHplcm8gaW4gb24gdGhlIGRyaXZlciBpbml0aWFsaXphdGlvbiwgc3BlY2lmaWNhbGx5IHRoZSBgYXRoOWtgIGRyaXZlci4gR2l2ZW4gbXkgZXhwZXJpZW5jZSwgYSBwcm9ibGVtIHdpdGggaG93IHRoZSBoYXJkd2FyZSBpcyBiZWluZyBicm91Z2h0IG9ubGluZSBpcyBhIGxpa2VseSBjdWxwcml0LiBJIHJlY2FsbCBzaW1pbGFyIGlzc3VlcyBmcm9tIHBhc3QgcHJvamVjdHMuIExldCYjMzk7cyBzdGFydCB3aXRoIGBhdGg5ay9pbml0LmNgLiBJIGhhdmUgYSBmZWVsaW5nIHNvbWV0aGluZyByZWxldmFudCBtaWdodCBiZSBoYXBwZW5pbmcgYXJvdW5kIGxpbmUgMTEzMCwgc28gSSYjMzk7bGwgZ28gZGlyZWN0bHkgdG8gdGhhdCBzZWN0aW9uIG9mIHRoZSBzb3VyY2UgY29kZS4gVGhhdCYjMzk7cyBhIHJlYXNvbmFibGUgcGxhY2UgdG8gc3RhcnQsIGFzIEkgY2FuIG9mdGVuIGZpbmQgaW5pdGlhbCByZWdpc3RlciByZWFkcyBhbmQgd3JpdGVzIHRoYXQgY2FuIGdvIGF3cnkuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzA2IDA4OjA5PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+cmVhZC1maWxlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtGaWxlJiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2luaXQuYyYjMzQ7LAogICYjMzQ7Rmlyc3RMaW5lJiMzNDs6IDExMjAsCiAgJiMzNDtMaW5lQ291bnQmIzM0OzogNDAKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0NvbnRlbnRzJiMzNDs6ICYjMzQ7MTEyMDpcdFx0YXRoOWtfZGVpbml0X3dvdyhodyk7XG4xMTIxOlx0XHRpZWVlODAyMTFfdW5yZWdpc3Rlcl9odyhodyk7XG4xMTIyOlx0XHRhdGhfcnhfY2xlYW51cChzYyk7XG4xMTIzOlx0XHRhdGg5a19kZWluaXRfc29mdGMoc2MpO1xuMTEyNDpcdH1cbjExMjU6XHRcbjExMjY6XHQvKioqKioqKioqKioqKioqKioqKioqKioqL1xuMTEyNzpcdC8qICAgICBNb2R1bGUgSG9va3MgICAgICovXG4xMTI4Olx0LyoqKioqKioqKioqKioqKioqKioqKioqKi9cbjExMjk6XHRcbjExMzA6XHRzdGF0aWMgaW50IF9faW5pdCBhdGg5a19pbml0KHZvaWQpXG4xMTMxOlx0e1xuMTEzMjpcdFx0aW50IGVycm9yO1xuMTEzMzpcdFxuMTEzNDpcdFx0ZXJyb3IgPSBhdGhfcGNpX2luaXQoKTtcbjExMzU6XHRcdGlmIChlcnJvciBcdTAwM2MgMCkge1xuMTEzNjpcdFx0XHRwcl9lcnIoXCYjMzQ7Tm8gUENJIGRldmljZXMgZm91bmQsIGRyaXZlciBub3QgaW5zdGFsbGVkXFxuXCYjMzQ7KTtcbjExMzc6XHRcdFx0ZXJyb3IgPSAtRU5PREVWO1xuMTEzODpcdFx0XHRnb3RvIGVycl9vdXQ7XG4xMTM5Olx0XHR9XG4xMTQwOlx0XG4xMTQxOlx0XHRlcnJvciA9IGF0aF9haGJfaW5pdCgpO1xuMTE0MjpcdFx0aWYgKGVycm9yIFx1MDAzYyAwKSB7XG4xMTQzOlx0XHRcdGVycm9yID0gLUVOT0RFVjtcbjExNDQ6XHRcdFx0Z290byBlcnJfcGNpX2V4aXQ7XG4xMTQ1Olx0XHR9XG4xMTQ2Olx0XG4xMTQ3Olx0XHRkbWlfY2hlY2tfc3lzdGVtKGF0aDlrX3F1aXJrcyk7XG4xMTQ4Olx0XG4xMTQ5Olx0XHRyZXR1cm4gMDtcbjExNTA6XHRcbjExNTE6XHQgZXJyX3BjaV9leGl0OlxuMTE1MjpcdFx0YXRoX3BjaV9leGl0KCk7XG4xMTUzOlx0IGVycl9vdXQ6XG4xMTU0Olx0XHRyZXR1cm4gZXJyb3I7XG4xMTU1Olx0fVxuMTE1NjpcdG1vZHVsZV9pbml0KGF0aDlrX2luaXQpO1xuMTE1NzpcdFxuMTE1ODpcdHN0YXRpYyB2b2lkIF9fZXhpdCBhdGg5a19leGl0KHZvaWQpXG4xMTU5Olx0e1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjExLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8wNiAwODowOTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuNy1mbGFzaDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyMTM2MQoJCQkJCQkJb3V0cHV0OiAzNQoJCQkJCQkJdGhvdWdodHM6IDIxNAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipJbnZlc3RpZ2F0aW5nIHRoZSBhdGg5a19odGMgRHJpdmVyJiMzOTtzIFRyYW5zbWlzc2lvbiBQYXRoKioKCk9rYXksIGxldCYjMzk7cyBkaXZlIGludG8gdGhpcy4gSSBuZWVkIHRvIGNsYXJpZnkgaG93IHRoZSBgYXRoOWtfaHRjYCBkcml2ZXIgaGFuZGxlcyB0cmFuc21pc3Npb24uIEZpcnN0LCBJIHdhbnRlZCB0byBjb25maXJtIGlmIGl0IGRpcmVjdGx5IHV0aWxpemVzIHRoZSBgeG1pdC5jYCBtb2R1bGUsIGEgY29yZSBjb21wb25lbnQgb2YgdGhlIGBhdGg5a2Agd2lyZWxlc3MgZHJpdmVyLiBTbywgSSBuZWVkIHRvIGNoZWNrIHRoZSBidWlsZCBwcm9jZXNzLgoKSSYjMzk7bGwgY2hlY2sgdGhlIGBkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvTWFrZWZpbGVgIGFnYWluLCBqdXN0IHRvIGJlIGFic29sdXRlbHkgY2VydGFpbi4gUmVhZGluZyB0aHJvdWdoIGl0LCBJIGNhbiBzZWUgb24gbGluZSAyLCB0aGF0IHRoZSBiYXNlIGBhdGg5a2AgbW9kdWxlIGluY2x1ZGVzIGB4bWl0Lm9gLiBIb3dldmVyLCBsb29raW5nIHNwZWNpZmljYWxseSBhdCB0aGUgYGF0aDlrX2h0Y2AgbW9kdWxlJiMzOTtzIGJ1aWxkIGluc3RydWN0aW9ucyBvbiBsaW5lIDY4LCB0aGVyZSYjMzk7cyBubyBtZW50aW9uIG9mIGB4bWl0Lm9gIHdpdGhpbiB0aGUgYGF0aDlrX2h0Yy15YCBsaXN0LgoKQWxyaWdodCwgdGhhdCYjMzk7cyBjb25jbHVzaXZlLiBgYXRoOWtfaHRjYCBleHBsaWNpdGx5ICpkb2VzbiYjMzk7dCogbGluayB0aGUgYHhtaXQub2Agb2JqZWN0IGZpbGUuIFNvLCBub3cgdGhlIG5leHQgcXVlc3Rpb246IGRvZXMgYGF0aDlrX2h0Y2AgY2FsbCBmdW5jdGlvbnMgZnJvbSBgeG1pdC5jYCBpbmRpcmVjdGx5PyBJIG5lZWQgdG8gY2hlY2sgaWYgYW55IG9mIHRoZSBleHRlcm5hbCBjYWxscywgdGhhdCB3b3VsZCBuZWVkIGFjY2VzcyB0byBgeG1pdC5jYCBhcmUgcHJlc2VudCBpbiBgYXRoOWsua29gCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTIvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzA2IDA4OjA5PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2F0aF9kcmFpbl90eHFfbGlzdCYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aCYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jPTE4NTc9aW50IGF0aF9jYWJxX3VwZGF0ZShzdHJ1Y3QgYXRoX3NvZnRjICpzYylcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTE4NzEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jOjE4NzI6c3RhdGljIHZvaWQgYXRoX2RyYWluX3R4cV9saXN0KHN0cnVjdCBhdGhfc29mdGMgKnNjLCBzdHJ1Y3QgYXRoX3R4cSAqdHhxLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYy0xODczLVx0XHRcdCAgICAgICBzdHJ1Y3QgbGlzdF9oZWFkICpsaXN0KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmM9MTkxND12b2lkIGF0aF9kcmFpbnR4cShzdHJ1Y3QgYXRoX3NvZnRjICpzYywgc3RydWN0IGF0aF90eHEgKnR4cSlcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTE5MjItXHRcdHdoaWxlICghbGlzdF9lbXB0eShcdTAwMjZ0eHEtXHUwMDNldHhxX2ZpZm9baWR4XSkpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmM6MTkyMzpcdFx0XHRhdGhfZHJhaW5fdHhxX2xpc3Qoc2MsIHR4cSwgXHUwMDI2dHhxLVx1MDAzZXR4cV9maWZvW2lkeF0pO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYy0xOTI0LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMtMTkzMS1cdHR4cS1cdTAwM2VheHFfdHhfaW5wcm9ncmVzcyA9IGZhbHNlO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYzoxOTMyOlx0YXRoX2RyYWluX3R4cV9saXN0KHNjLCB0eHEsIFx1MDAyNnR4cS1cdTAwM2VheHFfcSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTE5MzMtXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzA2IDA4OjA5PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy43LWZsYXNoPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDIyMzI4CgkJCQkJCQlvdXRwdXQ6IDMyCgkJCQkJCQl0aG91Z2h0czogNDkKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgc3VtbWFyeSwgcHJlc2VudGVkIGFzIGEgc3RyZWFtIG9mIHRob3VnaHQ6CgoqKkRpdmluZyBpbnRvIHRoZSBgeG1pdC5jYCBDb2RlYmFzZSoqCgpBbHJpZ2h0LCB0aW1lIHRvIGdldCBteSBoYW5kcyBkaXJ0eS4gSSYjMzk7bSBnb2luZyB0byBzdGFydCBieSB0YWtpbmcgYSBjbG9zZSBsb29rIGF0IHRoZSBgYXRoX2RyYWludHhxYCBmdW5jdGlvbi4gR2l2ZW4gaXRzIG5hbWUsIEkgc3VzcGVjdCBpdCYjMzk7cyBjcnVjaWFsIGZvciBmbHVzaGluZyBvciBkcmFpbmluZyB0cmFuc21pdCBxdWV1ZXMsIHdoaWNoIGlzIGEga2V5IGFyZWEgZm9yIHBlcmZvcm1hbmNlIGFuZCBzdGFiaWxpdHkgaW4gYW55IHdpcmVsZXNzIHN0YWNrLiBUaGVuLCBJIG5lZWQgdG8gdHJhY2UgYWxsIHRoZSBjYWxsIHBhdGhzLCBzcGVjaWZpY2FsbHksIHdoZXJlIHRoaXMgYGF0aF9kcmFpbnR4cWAgZnVuY3Rpb24gaXMgaW52b2tlZC4gVGhhdCYjMzk7cyBteSBpbml0aWFsIGdvYWwuIEJleW9uZCB0aGF0LCBJIG5lZWQgdG8gYnJvYWRlbiB0aGUgc2NvcGU6IEkgbXVzdCBpbnZlc3RpZ2F0ZSAqYW55KiBvdGhlciBjYWxscyBvcmlnaW5hdGluZyBmcm9tIHdpdGhpbiB0aGUgYHhtaXQuY2AgbW9kdWxlLiBVbmRlcnN0YW5kaW5nIHRoZSByb2xlcyBhbmQgaW50ZXJhY3Rpb25zIGJldHdlZW4gdGhlIGNvbXBvbmVudHMgd2l0aGluIHRoaXMgZmlsZSBpcyBlc3NlbnRpYWwgZm9yIGEgdGhvcm91Z2ggZGlhZ25vc2lzLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE0LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8wNiAwODowOTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDthdGhfZHJhaW50eHEmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2F0aDlrLmg9NTg1PWJvb2wgYXRoX2RyYWluX2FsbF90eHEoc3RydWN0IGF0aF9zb2Z0YyAqc2MpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2F0aDlrLmg6NTg2OnZvaWQgYXRoX2RyYWludHhxKHN0cnVjdCBhdGhfc29mdGMgKnNjLCBzdHJ1Y3QgYXRoX3R4cSAqdHhxKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hdGg5ay5oLTU4Ny12b2lkIGF0aF90eF9ub2RlX2luaXQoc3RydWN0IGF0aF9zb2Z0YyAqc2MsIHN0cnVjdCBhdGhfbm9kZSAqYW4pO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9iZWFjb24uYz0xMTI9c3RhdGljIHN0cnVjdCBhdGhfYnVmICphdGg5a19iZWFjb25fZ2VuZXJhdGUoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2JlYWNvbi5jLTE4Mi1cdFx0XHRcdFwmIzM0O0ZsdXNoaW5nIHByZXZpb3VzIGNhYnEgdHJhZmZpY1xcblwmIzM0Oyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYmVhY29uLmM6MTgzOlx0XHRcdGF0aF9kcmFpbnR4cShzYywgY2FicSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYmVhY29uLmMtMTg0LVx0XHR9XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYz0xODcyPXN0YXRpYyB2b2lkIGF0aF9kcmFpbl90eHFfbGlzdChzdHJ1Y3QgYXRoX3NvZnRjICpzYywgc3RydWN0IGF0aF90eHEgKnR4cSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTE5MTMtICovXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jOjE5MTQ6dm9pZCBhdGhfZHJhaW50eHEoc3RydWN0IGF0aF9zb2Z0YyAqc2MsIHN0cnVjdCBhdGhfdHhxICp0eHEpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTE5MTUte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmM9MTkzOD1ib29sIGF0aF9kcmFpbl9hbGxfdHhxKHN0cnVjdCBhdGhfc29mdGMgKnNjKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMtMTk3My1cdFx0dHhxID0gXHUwMDI2c2MtXHUwMDNldHgudHhxW2ldO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYzoxOTc0Olx0XHRhdGhfZHJhaW50eHEoc2MsIHR4cSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTE5NzUtXHR9XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzA2IDA4OjA5PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy43LWZsYXNoPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDIzMTYyCgkJCQkJCQlvdXRwdXQ6IDQ2CgkJCQkJCQl0aG91Z2h0czogMzMzCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgYGF0aDlrYCBEcml2ZXIgZm9yIEZ1enppbmcgUG90ZW50aWFsKioKCk9rYXksIHNvIGBhdGg5a2AgaXMgdGhlIEF0aGVyb3MgODAyLjExbiBkcml2ZXIgZm9yIFBDSS9BSEIuIEZpcnN0LCBJIG5lZWQgdG8gZmlndXJlIG91dCBpZiB0aGVyZSYjMzk7cyBhbnkgUUVNVSBvciBzeXprYWxsZXIgZW11bGF0aW9uIGZvciB0aGlzIHNwZWNpZmljIGRyaXZlci4gTXkgaW5pdGlhbCBpbnN0aW5jdCBpcyB0byBjaGVjayBmb3IgdmlydHVhbCBidXMgb3IgZGV2aWNlIGVtdWxhdGlvbiBjYXBhYmlsaXRpZXMuIE1vcmUgYnJvYWRseSwgSSBzaG91bGQgZGV0ZXJtaW5lIHdoYXQgd2lyZWxlc3MgZGV2aWNlcyBhcmUgZnV6emFibGUgaW4gc3l6a2FsbGVyIGluIGdlbmVyYWwuCgpOb3csIGxldCYjMzk7cyBsb29rIGF0IFNlY3Rpb24gMiBvZiB0aGUgaW5zdHJ1Y3Rpb25zLiBUaGUgdGV4dCBjbGVhcmx5IHN0YXRlcyB0aGF0IHVucmVhY2hhYmxlIGhhcmR3YXJlIGluY2x1ZGVzIHZlbmRvci1zcGVjaWZpYyBkZXZpY2VzIGxpa2UgU21hcnROSUNzIGFuZCBHUFVzIHRoYXQgbmVlZCBwaHlzaWNhbCBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS4gT24gdGhlIG90aGVyIGhhbmQsIHJlYWNoYWJsZSBkcml2ZXJzIGFuZCBwcm90b2NvbHMgYXJlIHRob3NlIGFjY2Vzc2libGUgdGhyb3VnaCB2aXJ0dWFsIGJ1c2VzIHN1Y2ggYXMgdmlydGlvLCBVU0IgZ2FkZ2V0LCBsb29wYmFjaywgbmV0bGluaywgYW5kIHNvIG9uLgoKQWhhISBTeXprYWxsZXIgKmNhbiogZW11bGF0ZSBVU0IgV2ktRmkgZGV2aWNlcyB2aWEgUmF3IEdhZGdldC9VU0IgZnV6emluZy4gRm9yIGluc3RhbmNlLCBgYXRoOWtfaHRjYCBpcyBhIFVTQiBXaS1GaSBkZXZpY2UgdGhhdCByZWdpc3RlcnMgYSBVU0IgZHJpdmVyIHVzaW5nIGB1c2JfcmVnaXN0ZXJgLiBTbywgdGhlIGNyaXRpY2FsIHF1ZXN0aW9uIGlzOiBpcyBgYXRoOWtgIHNvbGVseSBQQ0kvQUhCLCBvciBkb2VzIGl0IGhhdmUgYSBVU0IgaW50ZXJmYWNlPwoKSSYjMzk7bGwgY2hlY2sgdGhlIGRyaXZlciBmaWxlcyBpbiBgZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2AgYW5kIHNwZWNpZmljYWxseSBzZWFyY2ggZm9yIGVpdGhlciBgcGNpX2RyaXZlcmAgb3IgYHVzYl9kcml2ZXJgLiBUaGF0IHNob3VsZCBnaXZlIG1lIHRoZSBkZWZpbml0aXZlIGFuc3dlci4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNi8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMDYgMDg6MDk8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7c3RydWN0IChwY2lfZHJpdmVyfHVzYl9kcml2ZXJ8cGxhdGZvcm1fZHJpdmVyKSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ayYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYWhiLmM9MTE5PXN0YXRpYyB2b2lkIGF0aF9haGJfcmVtb3ZlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FoYi5jLTEzMS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9haGIuYzoxMzI6c3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kcml2ZXIgYXRoX2FoYl9kcml2ZXIgPSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYWhiLmMtMTMzLVx0LnByb2JlID0gYXRoX2FoYl9wcm9iZSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYXRoOWtfcGNpX293bF9sb2FkZXIuYz0yMzA9TU9EVUxFX0RFVklDRV9UQUJMRShwY2ksIG93bF9wY2lfdGFibGUpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2F0aDlrX3BjaV9vd2xfbG9hZGVyLmMtMjMxLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2F0aDlrX3BjaV9vd2xfbG9hZGVyLmM6MjMyOnN0YXRpYyBzdHJ1Y3QgcGNpX2RyaXZlciBvd2xfZHJpdmVyID0ge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2F0aDlrX3BjaV9vd2xfbG9hZGVyLmMtMjMzLVx0Lm5hbWVcdFx0PSBLQlVJTERfTU9ETkFNRSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvaGlmX3VzYi5jPTE0NTk9c3RhdGljIGludCBhdGg5a19oaWZfdXNiX3Jlc3VtZShzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqaW50ZXJmYWNlKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9oaWZfdXNiLmMtMTUwMy1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9oaWZfdXNiLmM6MTUwNDpzdGF0aWMgc3RydWN0IHVzYl9kcml2ZXIgYXRoOWtfaGlmX3VzYl9kcml2ZXIgPSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvaGlmX3VzYi5jLTE1MDUtXHQubmFtZSA9IEtCVUlMRF9NT0ROQU1FLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9wY2kuYz0xMDczPU1PRFVMRV9ERVZJQ0VfVEFCTEUocGNpLCBhdGhfcGNpX2lkX3RhYmxlKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9wY2kuYy0xMDc0LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3BjaS5jOjEwNzU6c3RhdGljIHN0cnVjdCBwY2lfZHJpdmVyIGF0aF9wY2lfZHJpdmVyID0ge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3BjaS5jLTEwNzYtXHQubmFtZSAgICAgICA9IFwmIzM0O2F0aDlrXCYjMzQ7LFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE3LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8wNiAwODowOTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuNy1mbGFzaDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyNDQ0MQoJCQkJCQkJb3V0cHV0OiAyOAoJCQkJCQkJdGhvdWdodHM6IDY0OQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBBbmFseXNpcyBvZiB0aGUgYXRoOWsgV2lyZWxlc3MgRHJpdmVyIFN0cnVjdHVyZSoqCgpPa2F5LCBzbyBJJiMzOTttIGRpZ2dpbmcgaW50byB0aGlzIGBhdGg5a19oaWZfdXNiX2RyaXZlcmAgYW5kIGhvdyBpdCByZWxhdGVzIHRvIHRoZSBgYXRoOWtfaHRjYCBkcml2ZXIuICBNeSBpbml0aWFsIHRob3VnaHQgaXMgdG8gY29uZmlybSB0aGUgY29ubmVjdGlvbiBiZXR3ZWVuIHRoZW0sIGFuZCB0aGUgb2J2aW91cyBwbGFjZSB0byBsb29rIGlzIGBkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvaGlmX3VzYi5jYC4gIEkgbmVlZCB0byBkZXRlcm1pbmUgd2hhdCBtb2R1bGUgYGhpZl91c2Iub2AgaXMgYWN0dWFsbHkgcGFydCBvZi4gVGhlIGBNYWtlZmlsZWAgY29uZmlybXMgdGhpczogIGl0JiMzOTtzIGJ1aWx0IGFzIHBhcnQgb2YgYGF0aDlrX2h0Y2AuICBUaGF0JiMzOTtzIHRoZSBjb25maXJtYXRpb24gSSBuZWVkZWQuCgpOb3csIEkmIzM5O20gdHJ5aW5nIHRvIHVuZGVyc3RhbmQgdGhlIGludGVycGxheSBiZXR3ZWVuIHRoZSB0d28gbWFpbiBtb2R1bGVzOiBgYXRoOWtgIGFuZCBgYXRoOWtfaHRjYC4gSSYjMzk7bSB3b25kZXJpbmcgaWYgYGF0aDlrX2h0Y2AgbGV2ZXJhZ2VzIGNvZGUgZnJvbSBgeG1pdC5jYCBvciBpZiB0aGVzZSBhcmUgYmFzaWNhbGx5IHNlcGFyYXRlIGVudGl0aWVzIHRoYXQganVzdCBoYXBwZW4gdG8gc2hhcmUgYGF0aDlrX2NvbW1vbmAgYW5kIGBhdGg5a19od2AuCgpJIHNlZSB0aGF0IGBhdGg5a2AgaXMgYnVpbHQgZnJvbSBhIHNldCBvZiBzb3VyY2UgZmlsZXMgYW5kIGluY2x1ZGVzIGB4bWl0LmNgLiBGcm9tIHRoaXMsIEkmIzM5O20gZGV0ZXJtaW5pbmcgdGhhdCBgYXRoOWsub2AgaXMgdXNlZCBmb3IgUENJIGFuZCBBSEIgYmFzZWQgZGV2aWNlcy4gQUhCIGlzIG1haW5seSB1c2VkIG9uIGVtYmVkZGVkIHN5c3RlbXMsIGxpa2UgT3BlbldSVCwgcnVubmluZyBvbiBBdGhlcm9zIE1JUFMvQVJNIFNvQ3MsIHVzaW5nIGRldmljZSB0cmVlcyB0byBkZXNjcmliZSB0aGUgaGFyZHdhcmUuIFBDSSBjb3ZlcnMgc3RhbmRhcmQgUENJL1BDSWUgY2FyZHMsIGxpa2UgdGhlIEFSOTI4MCwgQVI5Mjg1LCBldGMuCgpUaGUgaXNzdWUgaXMgdGhpczogYXJlIHRob3NlIFBDSSBkZXZpY2VzIGV2ZW4gZW11bGF0ZWQgaW4gc29tZXRoaW5nIGxpa2Ugc3RhbmRhcmQgUUVNVSBvciBHb29nbGUgQ29tcHV0ZSBFbmdpbmU/IEFuZCBvZiBjb3Vyc2UsIG5vLCBRRU1VIGRvZXNuJiMzOTt0IGVtdWxhdGUgYW55IEF0aGVyb3MgYXRoOWsgUENJIGRldmljZXMuIEl0IGVtdWxhdGVzIG90aGVyIHN0YW5kYXJkIE5JQ3MgbGlrZSBlMTAwMCwgcnRsODEzOSwgb3IgdmlydGlvLW5ldCwgYnV0IG5vdCB0aGUgYXRoOWsuIFRoZSBBSEIgb25lcywgdGhlIHBsYXRmb3JtIGRldmljZXMsIHRoYXQmIzM5O3Mgbm90IGdvaW5nIHRvIHdvcmsgZWl0aGVyIGJlY2F1c2UgdGhvc2UgcmVseSBvbiBPRiBhbmQgZGV2aWNlIHRyZWVzLCB3aGljaCB3b24mIzM5O3QgYmUgb24gYW4gYW1kNjQgUUVNVSBpbnN0YW5jZS4KCk9rYXksIGxldCBtZSBiYWNrIHVwIGEgbGl0dGxlLiBQZXJoYXBzIGBtYWM4MDIxMV9od3NpbWAgaGFzIHNvbWV0aGluZyB0byBkbyB3aXRoIHRoZSBhdGg5ayBkcml2ZXI/IEkgbmVlZCB0byB2ZXJpZnkgd2hldGhlciB0aGUgYG1hYzgwMjExX2h3c2ltYCB1c2VzIGFueSBwYXJ0IG9mIGBhdGg5a2AuIE5vcGUsIGBtYWM4MDIxMV9od3NpbWAgaXMgYSBwdXJlIHNvZnR3YXJlIGRyaXZlciBmb3IgbWFjODAyMTEsIGl0JiMzOTtzIGlycmVsZXZhbnQuIEFuZCB0aGUgc2FtZSBmb3IgYHZpcnRfd2lmaWAuIE9rLCBzbyBkb2VzIGBhdGg5a2AgaGF2ZSBhbnkga2luZCBvZiBtb2NrIG9yIHNpbXVsYXRlZCBkZXZpY2U/IEkmIzM5O20gZ29pbmcgdG8gZG8gYSBxdWljayBzY2FuIG9mIHRoZSBrZXJuZWwgdHJlZSB0byBjaGVjayBmb3IgYW55dGhpbmcgbGlrZSB0aGF0LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE4LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8wNiAwODowOTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDthdGg5ayYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O1xuRnVsbCBvdXRwdXQgaXMgdG9vIGxvbmcsIHNob3dpbmcgNTAwIG91dCBvZiAxNDE2NiBsaW5lcy5cblVzZSBtb3JlIHByZWNpc2UgZXhwcmVzc2lvbiBpZiBwb3NzaWJsZS5cblxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL0tjb25maWc9MjY9Y29uZmlnIEFUSF9ERUJVR1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9LY29uZmlnLTI5LVx0ICBTYXkgWSwgaWYgeW91IHdhbnQgdG8gZGVidWcgYXRoZXJvcyB3aXJlbGVzcyBkcml2ZXJzLlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL0tjb25maWc6MzA6XHQgIFJpZ2h0IG5vdyBvbmx5IGF0aDlrIG1ha2VzIHVzZSBvZiB0aGlzLlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL0tjb25maWctMzEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvS2NvbmZpZz0zMj1jb25maWcgQVRIX1RSQUNFUE9JTlRTXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL0tjb25maWctMzctXHQgIFRoaXMgb3B0aW9uIGVuYWJsZXMgdHJhY2Vwb2ludHMgZm9yIGF0aGVyb3Mgd2lyZWxlc3MgZHJpdmVycy5cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9LY29uZmlnOjM4Olx0ICBDdXJyZW50bHksIGF0aDlrIG1ha2VzIHVzZSBvZiB0aGlzIGZhY2lsaXR5LlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL0tjb25maWctMzktXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL0tjb25maWc9NTc9c291cmNlIFwmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg1ay9LY29uZmlnXCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvS2NvbmZpZzo1ODpzb3VyY2UgXCYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWdcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9LY29uZmlnLTU5LXNvdXJjZSBcJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvY2FybDkxNzAvS2NvbmZpZ1wmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9NYWtlZmlsZT0yPW9iai0kKENPTkZJR19BVEg1SylcdFx0JiM0Mzs9IGF0aDVrL1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL01ha2VmaWxlOjM6b2JqLSQoQ09ORklHX0FUSDlLX0hXKVx0XHQmIzQzOz0gYXRoOWsvXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvTWFrZWZpbGUtNC1vYmotJChDT05GSUdfQ0FSTDkxNzApXHRcdCYjNDM7PSBjYXJsOTE3MC9cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL2h3Lmg9NjczPWF0aDEwa19pc19yc3NpX2VuYWJsZShzdHJ1Y3QgYXRoMTBrX2h3X3BhcmFtcyAqaHcsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway9ody5oLTExMzYtLyogUmVnaXN0ZXIgZGVmaW5pdGlvbnMgZm9yIGZpcnN0IGdlbmVyYXRpb24gYXRoMTBrIGNhcmRzLiBUaGVzZSBjYXJkcyBpbmNsdWRlXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL2h3Lmg6MTEzNzogKiBhIG1hYyB3aGljaCBoYXMgYSByZWdpc3RlciBhbGxvY2F0aW9uIHNpbWlsYXIgdG8gYXRoOWsgYW5kIGF0IGxlYXN0IHNvbWVcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvaHcuaC0xMTM4LSAqIHJlZ2lzdGVycyBpbmNsdWRpbmcgdGhlIG9uZXMgcmVsZXZhbnQgZm9yIG1vZGlmeWluZyB0aGUgY292ZXJhZ2UgY2xhc3MgYXJlXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL2h3Lmg6MTEzOTogKiBpZGVudGljYWwgdG8gdGhlIGF0aDlrIGRlZmluaXRpb25zLlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway9ody5oLTExNDAtICogVGhlc2UgcmVnaXN0ZXJzIGFyZSB1c3VhbGx5IG1hbmFnZWQgYnkgdGhlIGF0aDEwayBmaXJtd2FyZS4gSG93ZXZlciBieVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvc3BlY3RyYWwuYz02Mz1pbnQgYXRoMTBrX3NwZWN0cmFsX3Byb2Nlc3NfZmZ0KHN0cnVjdCBhdGgxMGsgKmFyLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvc3BlY3RyYWwuYy0xNDAtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3NwZWN0cmFsLmM6MTQxOlx0LyogbWF4X2V4cCBoYXMgYmVlbiBkaXJlY3RseSByZXBvcnRlZCBieSBwcmV2aW91cyBoYXJkd2FyZSAoYXRoOWspLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway9zcGVjdHJhbC5jLTE0Mi1cdCAqIG1heWJlIGl0cyBwb3NzaWJsZSB0byBnZXQgaXQgYnkgb3RoZXIgbWVhbnM/XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDVrL2FuaS5jPTY2PWF0aDVrX2FuaV9zZXRfbm9pc2VfaW1tdW5pdHlfbGV2ZWwoc3RydWN0IGF0aDVrX2h3ICphaCwgaW50IGxldmVsKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg1ay9hbmkuYy02OS1cdCAqIEFOSSBkb2N1bWVudHMgc3VnZ2VzdCB0aGUgZm9sbG93aW5nIGZpdmUgbGV2ZWxzIHRvIHVzZSwgYnV0IHRoZSBIQUxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg1ay9hbmkuYzo3MDpcdCAqIGFuZCBhdGg5ayB1c2Ugb25seSB0aGUgbGFzdCB0d28gbGV2ZWxzLCBtYWtpbmcgdGhpc1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDVrL2FuaS5jLTcxLVx0ICogZXNzZW50aWFsbHkgYW4gb24vb2ZmIG9wdGlvbi4gVGhlcmUgKm1heSogYmUgYSByZWFzb24gZm9yIHRoaXMgKD8/PyksXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDVrL3JlZy5oLTMyLSAqIFRoaXMgZmlsZSBhbHNvIGNvbnRhaW5zIHJlZ2lzdGVyIHZhbHVlcyBmb3VuZCBvbiBhIG1lbW9yeSBkdW1wIG9mXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNWsvcmVnLmg6MzM6ICogQXRoZXJvcyYjMzk7cyBBUlQgcHJvZ3JhbSAoQXRoZXJvcyBSYWRpbyBUZXN0KSwgb24gYXRoOWssIG9uIGxlZ2FjeS1oYWxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg1ay9yZWcuaC0zNC0gKiByZWxlYXNlZCBieSBBdGhlcm9zIGFuZCBvbiB2YXJpb3VzIGRlYnVnIG1lc3NhZ2VzIGZvdW5kIG9uIHRoZSBuZXQuXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWc9MTM9Y29uZmlnIEFUSDlLX0JUQ09FWF9TVVBQT1JUXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWctMTctXHRoZWxwXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZzoxODpcdCAgU2F5IFksIGlmIHlvdSB3YW50IHRvIHVzZSB0aGUgYXRoOWsvYXRoOWtfaHRjIHJhZGlvcyB0b2dldGhlciB3aXRoXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZy0xOS1cdCAgQmx1ZXRvb3RoIG1vZHVsZXMgaW4gdGhlIHNhbWUgc3lzdGVtLlxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnPTIxPWNvbmZpZyBBVEg5S1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnLTMxLVx0ICBjYXJkcywgbGFwdG9wcyB0aGF0IGFscmVhZHkgc2hpcCB3aXRoIHRoZXNlIGNhcmRzIGFuZFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWc6MzI6XHQgIEFQcyB0aGF0IGNvbWUgd2l0aCB0aGVzZSBjYXJkcyByZWZlciB0byBhdGg5ayB3aWtpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZy0zMy1cdCAgcHJvZHVjdHMgcGFnZTpcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnLTM0LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWc6MzU6XHQgIGh0dHBzOi8vd2lyZWxlc3Mud2lraS5rZXJuZWwub3JnL2VuL3VzZXJzL0RyaXZlcnMvYXRoOWsvcHJvZHVjdHNcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnLTM2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWc6Mzc6XHQgIElmIHlvdSBjaG9vc2UgdG8gYnVpbGQgYSBtb2R1bGUsIGl0JiMzOTtsbCBiZSBjYWxsZWQgYXRoOWsuXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZy0zOC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnPTM5PWNvbmZpZyBBVEg5S19QQ0lcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnOjQwOlx0Ym9vbCBcJiMzNDtBdGhlcm9zIGF0aDlrIFBDSS9QQ0llIGJ1cyBzdXBwb3J0XCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZy00MS1cdGRlZmF1bHQgeVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnLTQzLVx0aGVscFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWc6NDQ6XHQgIFRoaXMgb3B0aW9uIGVuYWJsZXMgdGhlIFBDSSBidXMgc3VwcG9ydCBpbiBhdGg5ay5cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnLTQ1LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnPTQ4PWNvbmZpZyBBVEg5S19BSEJcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnOjQ5Olx0Ym9vbCBcJiMzNDtBdGhlcm9zIGF0aDlrIEFIQiBidXMgc3VwcG9ydFwmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWctNTAtXHRkZXBlbmRzIG9uIEFUSDlLIFx1MDAyNlx1MDAyNiBPRlxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnLTUyLVx0aGVscFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWc6NTM6XHQgIFRoaXMgb3B0aW9uIGVuYWJsZXMgdGhlIEFIQiBidXMgc3VwcG9ydCBpbiBhdGg5ay5cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnLTU0LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnPTU4PWNvbmZpZyBBVEg5S19ERUJVR0ZTXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZzo1OTpcdGJvb2wgXCYjMzQ7QXRoZXJvcyBhdGg5ayBkZWJ1Z2dpbmdcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnLTYwLVx0ZGVwZW5kcyBvbiBBVEg5SyBcdTAwMjZcdTAwMjYgREVCVUdfRlMgXHUwMDI2XHUwMDI2IE1BQzgwMjExX0RFQlVHRlNcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZy02Mi1cdGhlbHBcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnOjYzOlx0ICBTYXkgWSwgaWYgeW91IG5lZWQgYWNjZXNzIHRvIGF0aDlrJiMzOTtzIHN0YXRpc3RpY3MgZm9yXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZy02NC1cdCAgaW50ZXJydXB0cywgcmF0ZSBjb250cm9sLCBldGMuXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWc9NzY9Y29uZmlnIEFUSDlLX1RYOTlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnOjc3Olx0Ym9vbCBcJiMzNDtBdGhlcm9zIGF0aDlrIFRYOTkgdGVzdGluZyBzdXBwb3J0XCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZy03OC1cdGRlcGVuZHMgb24gQVRIOUtfREVCVUdGUyBcdTAwMjZcdTAwMjYgQ0ZHODAyMTFfQ0VSVElGSUNBVElPTl9PTlVTXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWc9OTY9Y29uZmlnIEFUSDlLX0RGU19DRVJUSUZJRURcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZy0xMDEtXHQgIFRoaXMgb3B0aW9uIGVuYWJsZXMgREZTIHN1cHBvcnQgZm9yIGluaXRpYXRpbmcgcmFkaWF0aW9uIG9uXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZzoxMDI6XHQgIGF0aDlrLiBUaGVyZSBpcyBubyB3YXkgdG8gZHluYW1pY2FsbHkgZGV0ZWN0IGlmIGEgY2FyZCB3YXMgREZTXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZy0xMDMtXHQgIGNlcnRpZmllZCBhbmQgYXMgc3VjaCB0aGlzIGlzIGxlZnQgYXMgYSBidWlsZCB0aW1lIG9wdGlvbi4gVGhpc1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnLTEwNi1cdCAgaGF2ZSBvYnRhaW5lZCBhcHByb3ByaWF0ZSByZWd1bGF0b3J5IGJvZHkgY2VydGlmaWNhdGlvbiBmb3IgYVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWc6MTA3Olx0ICByZXNwZWN0aXZlIEF0aGVyb3MgY2FyZCBieSB1c2luZyBhdGg5ayBvbiB0aGUgdGFyZ2V0IHNoaXBwaW5nXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZy0xMDgtXHQgIHBsYXRmb3Jtcy5cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZz0xMTU9Y29uZmlnIEFUSDlLX0RZTkFDS1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWc6MTE2Olx0Ym9vbCBcJiMzNDtBdGhlcm9zIGF0aDlrIEFDSyB0aW1lb3V0IGVzdGltYXRpb24gYWxnb3JpdGhtXCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZy0xMTctXHRkZXBlbmRzIG9uIEFUSDlLXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWctMTE5LVx0aGVscFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWc6MTIwOlx0ICBUaGlzIG9wdGlvbiBlbmFibGVzIGF0aDlrIGR5bmFtaWMgQUNLIHRpbWVvdXQgZXN0aW1hdGlvbiBhbGdvcml0aG1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnLTEyMS1cdCAgYmFzZWQgb24gQUNLIGZyYW1lIFJYIHRpbWVzdGFtcCwgVFggZnJhbWUgdGltZXN0YW1wIGFuZCBmcmFtZVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnPTEzMj1jb25maWcgQVRIOUtfUkZLSUxMXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZzoxMzM6XHRib29sIFwmIzM0O0F0aGVyb3MgYXRoOWsgcmZraWxsIHN1cHBvcnRcJiMzNDsgaWYgRVhQRVJUXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZy0xMzQtXHRkZXBlbmRzIG9uIEFUSDlLXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWctMTM3LVx0aGVscFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWc6MTM4Olx0ICBTYXkgWSB0byBoYXZlIGF0aDlrIHBvbGwgdGhlIFJGLUtpbGwgR1BJTyBldmVyeSBjb3VwbGUgb2ZcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnLTEzOS1cdCAgc2Vjb25kcy4gVHVybiBvZmYgdG8gc2F2ZSBwb3dlciwgYnV0IGVuYWJsZSBpdCBpZiB5b3UgaGF2ZVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnPTE0Mj1jb25maWcgQVRIOUtfQ0hBTk5FTF9DT05URVhUXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWctMTQ2LVx0aGVscFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWc6MTQ3Olx0ICBUaGlzIG9wdGlvbiBlbmFibGVzIGNoYW5uZWwgY29udGV4dCBzdXBwb3J0IGluIGF0aDlrLCB3aGljaCBpcyBuZWVkZWRcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnLTE0OC1cdCAgZm9yIG11bHRpLWNoYW5uZWwgY29uY3VycmVuY3kuIEVuYWJsZSB0aGlzIGlmIFAyUCBQb3dlclNhdmUgc3VwcG9ydFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnPTE1MT1jb25maWcgQVRIOUtfUENPRU1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnOjE1MjpcdGJvb2wgXCYjMzQ7QXRoZXJvcyBhdGg5ayBzdXBwb3J0IGZvciBQQyBPRU0gY2FyZHNcJiMzNDsgaWYgRVhQRVJUXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZy0xNTMtXHRkZXBlbmRzIG9uIEFUSDlLXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWc9MTU2PWNvbmZpZyBBVEg5S19QQ0lfTk9fRUVQUk9NXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZzoxNTc6XHR0cmlzdGF0ZSBcJiMzNDtBdGhlcm9zIGF0aDlrIHBjaSBsb2FkZXIgZm9yIEVFUFJPTS1sZXNzIGNoaXBzXCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZy0xNTgtXHRkZXBlbmRzIG9uIEFUSDlLX1BDSVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnLTE2MS1cdCAgVGhpcyBzZXBhcmF0ZSBkcml2ZXIgcHJvdmlkZXMgYSBsb2FkZXIgaW4gb3JkZXIgdG8gc3VwcG9ydCB0aGVcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnOjE2MjpcdCAgQVI1MDBYIHRvIEFSOTJYWC1nZW5lcmF0aW9uIG9mIGF0aDlrIFBDSShlKSBXaUZpIGNoaXBzLCB3aGljaCBoYXZlXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZy0xNjMtXHQgIHRoZWlyIGluaXRpYWxpemF0aW9uIGRhdGEgKHdoaWNoIGNvbnRhaW5zIHRoZSByZWFsIFBDSSBEZXZpY2UgSURcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnOjE2NDpcdCAgdGhhdCBhdGg5ayB3aWxsIG5lZWQpIHN0b3JlZCB0b2dldGhlciB3aXRoIHRoZSBjYWxpYnJhdGlvbiBkYXRhIG91dFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWc6MTY1Olx0ICBvZiByZWFjaCBmb3IgdGhlIGF0aDlrIGNoaXAuXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZy0xNjYtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWc9MTcyPWNvbmZpZyBBVEg5S19IVENcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZy0xODItXHQgIEZvciBtb3JlIGluZm9ybWF0aW9uOlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWc6MTgzOlx0ICBodHRwczovL3dpcmVsZXNzLndpa2kua2VybmVsLm9yZy9lbi91c2Vycy9Ecml2ZXJzL2F0aDlrX2h0Y1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWctMTg0LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWc6MTg1Olx0ICBUaGUgYnVpbHQgbW9kdWxlIHdpbGwgYmUgYXRoOWtfaHRjLlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWctMTg2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWc9MTg3PWNvbmZpZyBBVEg5S19IVENfREVCVUdGU1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWc6MTg4Olx0Ym9vbCBcJiMzNDtBdGhlcm9zIGF0aDlrX2h0YyBkZWJ1Z2dpbmdcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnLTE4OS1cdGRlcGVuZHMgb24gQVRIOUtfSFRDIFx1MDAyNlx1MDAyNiBERUJVR19GU1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnLTE5MS1cdGhlbHBcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnOjE5MjpcdCAgU2F5IFksIGlmIHlvdSBuZWVkIGFjY2VzcyB0byBhdGg5a19odGMmIzM5O3Mgc3RhdGlzdGljcy5cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnLTE5My1cdCAgQXMgd2VsbCBhcyBhY2Nlc3MgdG8gdGhlIEZGVC9zcGVjdHJhbCBkYXRhLlxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnPTIwNj1jb25maWcgQVRIOUtfQ09NTU9OX1NQRUNUUkFMXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZzoyMDc6XHRib29sIFwmIzM0O0F0aGVyb3MgYXRoOWsvYXRoOWtfaHRjIHNwZWN0cmFsIHNjYW4gc3VwcG9ydFwmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWctMjA4LVx0ZGVwZW5kcyBvbiBBVEg5S19ERUJVR0ZTIHx8IEFUSDlLX0hUQ19ERUJVR0ZTXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL01ha2VmaWxlLTEtIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogSVNDXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvTWFrZWZpbGU6MjphdGg5ay15ICYjNDM7PVx0YmVhY29uLm8gXFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9NYWtlZmlsZS0zLVx0XHRncGlvLm8gXFxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvTWFrZWZpbGUtMTEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvTWFrZWZpbGU6MTI6YXRoOWstJChDT05GSUdfQVRIOUtfQlRDT0VYX1NVUFBPUlQpICYjNDM7PSBtY2kub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL01ha2VmaWxlOjEzOmF0aDlrLSQoQ09ORklHX0FUSDlLX1BDSSkgJiM0Mzs9IHBjaS5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvTWFrZWZpbGU6MTQ6YXRoOWstJChDT05GSUdfQVRIOUtfQUhCKSAmIzQzOz0gYWhiLm9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9NYWtlZmlsZToxNTphdGg5ay0kKENPTkZJR19BVEg5S19ERlNfREVCVUdGUykgJiM0Mzs9IGRmc19kZWJ1Zy5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvTWFrZWZpbGU6MTY6YXRoOWstJChDT05GSUdfQVRIOUtfREZTX0NFUlRJRklFRCkgJiM0Mzs9IGRmcy5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvTWFrZWZpbGU6MTc6YXRoOWstJChDT05GSUdfQVRIOUtfVFg5OSkgJiM0Mzs9IHR4OTkub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL01ha2VmaWxlOjE4OmF0aDlrLSQoQ09ORklHX0FUSDlLX1dPVykgJiM0Mzs9IHdvdy5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvTWFrZWZpbGU6MTk6YXRoOWstJChDT05GSUdfQVRIOUtfSFdSTkcpICYjNDM7PSBybmcub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL01ha2VmaWxlLTIwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL01ha2VmaWxlOjIxOmF0aDlrLSQoQ09ORklHX0FUSDlLX0RFQlVHRlMpICYjNDM7PSBkZWJ1Zy5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvTWFrZWZpbGUtMjItXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvTWFrZWZpbGU6MjM6YXRoOWstJChDT05GSUdfQVRIOUtfU1RBVElPTl9TVEFUSVNUSUNTKSAmIzQzOz0gZGVidWdfc3RhLm9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9NYWtlZmlsZS0yNC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9NYWtlZmlsZToyNTpvYmotJChDT05GSUdfQVRIOUspICYjNDM7PSBhdGg5ay5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvTWFrZWZpbGUtMjYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvTWFrZWZpbGU6Mjc6YXRoOWtfaHcteTo9XHRcXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL01ha2VmaWxlLTI4LVx0XHRhcjkwMDJfaHcubyBcXFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9NYWtlZmlsZS00Ny1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9NYWtlZmlsZTo0ODphdGg5a19ody0kKENPTkZJR19BVEg5S19XT1cpICYjNDM7PSBhcjkwMDNfd293Lm9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9NYWtlZmlsZS00OS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9NYWtlZmlsZTo1MDphdGg5a19ody0kKENPTkZJR19BVEg5S19CVENPRVhfU1VQUE9SVCkgJiM0Mzs9IGJ0Y29leC5vIFxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvTWFrZWZpbGUtNTEtXHRcdFx0XHRcdCAgIGFyOTAwM19tY2kubyBcXFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9NYWtlZmlsZS01My1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9NYWtlZmlsZTo1NDphdGg5a19ody0kKENPTkZJR19BVEg5S19QQ09FTSkgJiM0Mzs9IGFyOTAwM19ydHQub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL01ha2VmaWxlLTU1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL01ha2VmaWxlOjU2OmF0aDlrX2h3LSQoQ09ORklHX0FUSDlLX0RZTkFDSykgJiM0Mzs9IGR5bmFjay5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvTWFrZWZpbGUtNTctXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvTWFrZWZpbGU6NTg6b2JqLSQoQ09ORklHX0FUSDlLX0hXKSAmIzQzOz0gYXRoOWtfaHcub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL01ha2VmaWxlLTU5LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL01ha2VmaWxlOjYwOm9iai0kKENPTkZJR19BVEg5S19DT01NT04pICYjNDM7PSBhdGg5a19jb21tb24ub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL01ha2VmaWxlOjYxOmF0aDlrX2NvbW1vbi15Oj1cdGNvbW1vbi5vIFxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvTWFrZWZpbGUtNjItXHRcdFx0Y29tbW9uLWluaXQubyBcXFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9NYWtlZmlsZS02NC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9NYWtlZmlsZTo2NTphdGg5a19jb21tb24tJChDT05GSUdfQVRIOUtfQ09NTU9OX0RFQlVHKSAmIzQzOz0gY29tbW9uLWRlYnVnLm9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9NYWtlZmlsZTo2NjphdGg5a19jb21tb24tJChDT05GSUdfQVRIOUtfQ09NTU9OX1NQRUNUUkFMKSAmIzQzOz0gY29tbW9uLXNwZWN0cmFsLm9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9NYWtlZmlsZS02Ny1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9NYWtlZmlsZTo2ODphdGg5a19odGMteSAmIzQzOz1cdGh0Y19oc3QubyBcXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL01ha2VmaWxlLTY5LVx0XHRoaWZfdXNiLm8gXFxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvTWFrZWZpbGUtNzYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvTWFrZWZpbGU6Nzc6YXRoOWtfaHRjLSQoQ09ORklHX0FUSDlLX0hUQ19ERUJVR0ZTKSAmIzQzOz0gaHRjX2Rydl9kZWJ1Zy5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvTWFrZWZpbGUtNzgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvTWFrZWZpbGU6Nzk6b2JqLSQoQ09ORklHX0FUSDlLX0hUQykgJiM0Mzs9IGF0aDlrX2h0Yy5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvTWFrZWZpbGUtODAtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvTWFrZWZpbGU6ODE6b2JqLSQoQ09ORklHX0FUSDlLX1BDSV9OT19FRVBST00pICYjNDM7PSBhdGg5a19wY2lfb3dsX2xvYWRlci5vXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FoYi5jLTIzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FoYi5jOjI0OiNpbmNsdWRlIFwmIzM0O2F0aDlrLmhcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9haGIuYy0yNS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9haGIuYzoyNjpzdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBhdGg5a19vZl9tYXRjaF90YWJsZVtdID0ge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FoYi5jLTI3LVx0eyAuY29tcGF0aWJsZSA9IFwmIzM0O3FjYSxhcjkxMzAtd2lmaVwmIzM0OywgLmRhdGEgPSAodm9pZCAqKUFSNTQxNl9BUjkxMDBfREVWSUQgfSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYWhiLmM9NTU9c3RhdGljIGludCBhdGhfYWhiX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FoYi5jLTc1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FoYi5jOjc2Olx0YXRoOWtfZmlsbF9jaGFuY3R4X29wcygpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FoYi5jOjc3Olx0aHcgPSBpZWVlODAyMTFfYWxsb2NfaHcoc2l6ZW9mKHN0cnVjdCBhdGhfc29mdGMpLCBcdTAwMjZhdGg5a19vcHMpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FoYi5jLTc4LVx0aWYgKGh3ID09IE5VTEwpIHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYWhiLmMtOTEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYWhiLmM6OTI6XHRyZXQgPSByZXF1ZXN0X2lycShpcnEsIGF0aF9pc3IsIElSUUZfU0hBUkVELCBcJiMzNDthdGg5a1wmIzM0Oywgc2MpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FoYi5jLTkzLVx0aWYgKHJldCkge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9haGIuYy05OC1cdGRldl9pZCA9ICh1MTYpKGtlcm5lbF91bG9uZ190KW9mX2RldmljZV9nZXRfbWF0Y2hfZGF0YShcdTAwMjZwZGV2LVx1MDAzZWRldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYWhiLmM6OTk6XHRyZXQgPSBhdGg5a19pbml0X2RldmljZShkZXZfaWQsIHNjLCBcdTAwMjZhdGhfYWhiX2J1c19vcHMpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FoYi5jLTEwMC1cdGlmIChyZXQpIHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYWhiLmMtMTA1LVx0YWggPSBzYy1cdTAwM2VzY19haDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9haGIuYzoxMDY6XHRhdGg5a19od19uYW1lKGFoLCBod19uYW1lLCBzaXplb2YoaHdfbmFtZSkpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FoYi5jLTEwNy1cdHdpcGh5X2luZm8oaHctXHUwMDNld2lwaHksIFwmIzM0OyVzIG1lbT0weCVwLCBpcnE9JWRcXG5cJiMzNDssXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FoYi5jPTExOT1zdGF0aWMgdm9pZCBhdGhfYWhiX3JlbW92ZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9haGIuYy0xMjUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYWhiLmM6MTI2Olx0XHRhdGg5a19kZWluaXRfZGV2aWNlKHNjKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9haGIuYy0xMjctXHRcdGZyZWVfaXJxKHNjLVx1MDAzZWlycSwgc2MpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9haGIuYz0xMzI9c3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kcml2ZXIgYXRoX2FoYl9kcml2ZXIgPSB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FoYi5jLTEzNS1cdC5kcml2ZXIgPSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYWhiLmM6MTM2Olx0XHQubmFtZSA9IFwmIzM0O2F0aDlrXCYjMzQ7LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FoYi5jOjEzNzpcdFx0Lm9mX21hdGNoX3RhYmxlID0gYXRoOWtfb2ZfbWF0Y2hfdGFibGUsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYWhiLmMtMTM4LVx0fSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYWhiLmMtMTQwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FoYi5jOjE0MTpNT0RVTEVfREVWSUNFX1RBQkxFKG9mLCBhdGg5a19vZl9tYXRjaF90YWJsZSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYWhiLmMtMTQyLVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYz04NT1zdGF0aWMgY29uc3Qgc3RydWN0IGFuaV9jY2tfbGV2ZWxfZW50cnkgY2NrX2xldmVsX3RhYmxlW10gPSB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jLTEwNi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYzoxMDc6c3RhdGljIHZvaWQgYXRoOWtfaHdfdXBkYXRlX21pYnN0YXRzKHN0cnVjdCBhdGhfaHcgKmFoLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jOjEwODpcdFx0XHRcdCAgICAgc3RydWN0IGF0aDlrX21pYl9zdGF0cyAqc3RhdHMpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmMtMTA5LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmMtMTI2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jOjEyNzpzdGF0aWMgdm9pZCBhdGg5a19hbmlfcmVzdGFydChzdHJ1Y3QgYXRoX2h3ICphaClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYy0xMjgte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYy0xNDEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmM6MTQyOlx0YXRoOWtfaHdfdXBkYXRlX21pYnN0YXRzKGFoLCBcdTAwMjZhaC1cdTAwM2VhaF9taWJTdGF0cyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmMtMTQzLVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYy0xNDgtLyogQWRqdXN0IHRoZSBPRkRNIE5vaXNlIEltbXVuaXR5IExldmVsICovXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmM6MTQ5OnN0YXRpYyB2b2lkIGF0aDlrX2h3X3NldF9vZmRtX25pbChzdHJ1Y3QgYXRoX2h3ICphaCwgdTggaW1tdW5pdHlMZXZlbCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYy0xNTAtXHRcdFx0XHQgIGJvb2wgc2Nhbilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmMtMTUyLVx0c3RydWN0IGFyNTQxNkFuaVN0YXRlICphbmlTdGF0ZSA9IFx1MDAyNmFoLVx1MDAzZWFuaTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYzoxNTM6XHRzdHJ1Y3QgYXRoX2NvbW1vbiAqY29tbW9uID0gYXRoOWtfaHdfY29tbW9uKGFoKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYy0xNTQtXHRjb25zdCBzdHJ1Y3QgYW5pX29mZG1fbGV2ZWxfZW50cnkgKmVudHJ5X29mZG07XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jLTE3My1cdGlmIChhbmlTdGF0ZS1cdTAwM2VzcHVySW1tdW5pdHlMZXZlbCAhPSBlbnRyeV9vZmRtLVx1MDAzZXNwdXJfaW1tdW5pdHlfbGV2ZWwpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmM6MTc0Olx0XHRhdGg5a19od19hbmlfY29udHJvbChhaCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYy0xNzUtXHRcdFx0XHQgICAgIEFUSDlLX0FOSV9TUFVSX0lNTVVOSVRZX0xFVkVMLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYy0xNzktXHQgICAgZW50cnlfb2ZkbS1cdTAwM2VmaXJfc3RlcF9sZXZlbCBcdTAwM2U9IGVudHJ5X2Njay1cdTAwM2VmaXJfc3RlcF9sZXZlbClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYzoxODA6XHRcdGF0aDlrX2h3X2FuaV9jb250cm9sKGFoLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jLTE4MS1cdFx0XHRcdCAgICAgQVRIOUtfQU5JX0ZJUlNURVBfTEVWRUwsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jLTIwMi1cdGlmIChhbmlTdGF0ZS1cdTAwM2VvZmRtV2Vha1NpZ0RldGVjdCAhPSB3ZWFrX3NpZylcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYzoyMDM6XHRcdGF0aDlrX2h3X2FuaV9jb250cm9sKGFoLCBBVEg5S19BTklfT0ZETV9XRUFLX1NJR05BTF9ERVRFQ1RJT04sXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmMtMjA0LVx0XHRcdFx0ICAgICB3ZWFrX3NpZyk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jLTIxNy1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYzoyMTg6c3RhdGljIHZvaWQgYXRoOWtfaHdfYW5pX29mZG1fZXJyX3RyaWdnZXIoc3RydWN0IGF0aF9odyAqYWgpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmMtMjE5LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmMtMjIyLVx0aWYgKGFuaVN0YXRlLVx1MDAzZW9mZG1Ob2lzZUltbXVuaXR5TGV2ZWwgXHUwMDNjIEFUSDlLX0FOSV9PRkRNX01BWF9MRVZFTClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYzoyMjM6XHRcdGF0aDlrX2h3X3NldF9vZmRtX25pbChhaCwgYW5pU3RhdGUtXHUwMDNlb2ZkbU5vaXNlSW1tdW5pdHlMZXZlbCAmIzQzOyAxLCBmYWxzZSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmMtMjI0LX1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmMtMjI4LSAqL1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jOjIyOTpzdGF0aWMgdm9pZCBhdGg5a19od19zZXRfY2NrX25pbChzdHJ1Y3QgYXRoX2h3ICphaCwgdV9pbnQ4X3QgaW1tdW5pdHlMZXZlbCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYy0yMzAtXHRcdFx0XHQgYm9vbCBzY2FuKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYy0yMzItXHRzdHJ1Y3QgYXI1NDE2QW5pU3RhdGUgKmFuaVN0YXRlID0gXHUwMDI2YWgtXHUwMDNlYW5pO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jOjIzMzpcdHN0cnVjdCBhdGhfY29tbW9uICpjb21tb24gPSBhdGg5a19od19jb21tb24oYWgpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jLTIzNC1cdGNvbnN0IHN0cnVjdCBhbmlfb2ZkbV9sZXZlbF9lbnRyeSAqZW50cnlfb2ZkbTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmMtMjU3LVx0ICAgIGVudHJ5X2Njay1cdTAwM2VmaXJfc3RlcF9sZXZlbCBcdTAwM2U9IGVudHJ5X29mZG0tXHUwMDNlZmlyX3N0ZXBfbGV2ZWwpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmM6MjU4Olx0XHRhdGg5a19od19hbmlfY29udHJvbChhaCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYy0yNTktXHRcdFx0XHQgICAgIEFUSDlLX0FOSV9GSVJTVEVQX0xFVkVMLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYy0yNjctXHRpZiAoYW5pU3RhdGUtXHUwMDNlbXJjQ0NLICE9IGVudHJ5X2Njay1cdTAwM2VtcmNfY2NrX29uKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jOjI2ODpcdFx0YXRoOWtfaHdfYW5pX2NvbnRyb2woYWgsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmMtMjY5LVx0XHRcdFx0ICAgICBBVEg5S19BTklfTVJDX0NDSyxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmMtMjcyLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jOjI3MzpzdGF0aWMgdm9pZCBhdGg5a19od19hbmlfY2NrX2Vycl90cmlnZ2VyKHN0cnVjdCBhdGhfaHcgKmFoKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jLTI3NC17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jLTI3Ny1cdGlmIChhbmlTdGF0ZS1cdTAwM2VjY2tOb2lzZUltbXVuaXR5TGV2ZWwgXHUwMDNjIEFUSDlLX0FOSV9DQ0tfTUFYX0xFVkVMKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jOjI3ODpcdFx0YXRoOWtfaHdfc2V0X2Nja19uaWwoYWgsIGFuaVN0YXRlLVx1MDAzZWNja05vaXNlSW1tdW5pdHlMZXZlbCAmIzQzOyAxLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jLTI3OS1cdFx0XHRcdCAgICAgZmFsc2UpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYy0yODUtICovXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmM6Mjg2OnN0YXRpYyB2b2lkIGF0aDlrX2h3X2FuaV9sb3dlcl9pbW11bml0eShzdHJ1Y3QgYXRoX2h3ICphaClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYy0yODcte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYy0yOTItXHQgICAgKGFuaVN0YXRlLVx1MDAzZW9mZG1zVHVybiB8fCBhbmlTdGF0ZS1cdTAwM2VjY2tOb2lzZUltbXVuaXR5TGV2ZWwgPT0gMCkpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYzoyOTM6XHRcdGF0aDlrX2h3X3NldF9vZmRtX25pbChhaCwgYW5pU3RhdGUtXHUwMDNlb2ZkbU5vaXNlSW1tdW5pdHlMZXZlbCAtIDEsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmMtMjk0LVx0XHRcdFx0ICAgICAgZmFsc2UpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYy0yOTktXHRpZiAoYW5pU3RhdGUtXHUwMDNlY2NrTm9pc2VJbW11bml0eUxldmVsIFx1MDAzZSAwKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jOjMwMDpcdFx0YXRoOWtfaHdfc2V0X2Nja19uaWwoYWgsIGFuaVN0YXRlLVx1MDAzZWNja05vaXNlSW1tdW5pdHlMZXZlbCAtIDEsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmMtMzAxLVx0XHRcdFx0ICAgICBmYWxzZSk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jLTMwOC0gKi9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYzozMDk6dm9pZCBhdGg5a19hbmlfcmVzZXQoc3RydWN0IGF0aF9odyAqYWgsIGJvb2wgaXNfc2Nhbm5pbmcpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmMtMzEwLXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYy0zMTEtXHRzdHJ1Y3QgYXI1NDE2QW5pU3RhdGUgKmFuaVN0YXRlID0gXHUwMDI2YWgtXHUwMDNlYW5pO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jOjMxMjpcdHN0cnVjdCBhdGg5a19jaGFubmVsICpjaGFuID0gYWgtXHUwMDNlY3VyY2hhbjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYzozMTM6XHRzdHJ1Y3QgYXRoX2NvbW1vbiAqY29tbW9uID0gYXRoOWtfaHdfY29tbW9uKGFoKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYy0zMTQtXHRpbnQgb2ZkbV9uaWwsIGNja19uaWw7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jLTM2Mi1cdH1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYzozNjM6XHRhdGg5a19od19zZXRfb2ZkbV9uaWwoYWgsIG9mZG1fbmlsLCBpc19zY2FubmluZyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmM6MzY0Olx0YXRoOWtfaHdfc2V0X2Nja19uaWwoYWgsIGNja19uaWwsIGlzX3NjYW5uaW5nKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYy0zNjUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmM6MzY2Olx0YXRoOWtfYW5pX3Jlc3RhcnQoYWgpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jLTM2Ny19XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmMtMzY4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jOjM2OTpzdGF0aWMgYm9vbCBhdGg5a19od19hbmlfcmVhZF9jb3VudGVycyhzdHJ1Y3QgYXRoX2h3ICphaClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYy0zNzAte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jOjM3MTpcdHN0cnVjdCBhdGhfY29tbW9uICpjb21tb24gPSBhdGg5a19od19jb21tb24oYWgpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jLTM3Mi1cdHN0cnVjdCBhcjU0MTZBbmlTdGF0ZSAqYW5pU3RhdGUgPSBcdTAwMjZhaC1cdTAwM2Vhbmk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jLTM4MC1cdFx0YWgtXHUwMDNlc3RhdHMuYXN0X2FuaV9sbmVnX29yX2x6ZXJvJiM0MzsmIzQzOztcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYzozODE6XHRcdGF0aDlrX2FuaV9yZXN0YXJ0KGFoKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYy0zODItXHRcdHJldHVybiBmYWxzZTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmMtMzg2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jOjM4NzpcdGF0aDlrX2h3X3VwZGF0ZV9taWJzdGF0cyhhaCwgXHUwMDI2YWgtXHUwMDNlYWhfbWliU3RhdHMpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jLTM4OC1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmMtNDAwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jOjQwMTp2b2lkIGF0aDlrX2h3X2FuaV9tb25pdG9yKHN0cnVjdCBhdGhfaHcgKmFoLCBzdHJ1Y3QgYXRoOWtfY2hhbm5lbCAqY2hhbilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYy00MDIte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jLTQwMy1cdHN0cnVjdCBhcjU0MTZBbmlTdGF0ZSAqYW5pU3RhdGUgPSBcdTAwMjZhaC1cdTAwM2Vhbmk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmM6NDA0Olx0c3RydWN0IGF0aF9jb21tb24gKmNvbW1vbiA9IGF0aDlrX2h3X2NvbW1vbihhaCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmMtNDA1LVx0dTMyIG9mZG1QaHlFcnJSYXRlLCBjY2tQaHlFcnJSYXRlO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jLTQwNi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYzo0MDc6XHRpZiAoIWF0aDlrX2h3X2FuaV9yZWFkX2NvdW50ZXJzKGFoKSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYy00MDgtXHRcdHJldHVybjtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmMtNDI0LVx0XHQgICAgb2ZkbVBoeUVyclJhdGUgXHUwMDNjIGFoLVx1MDAzZWNvbmZpZy5vZmRtX3RyaWdfbG93KSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmM6NDI1Olx0XHRcdGF0aDlrX2h3X2FuaV9sb3dlcl9pbW11bml0eShhaCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmMtNDI2LVx0XHRcdGFuaVN0YXRlLVx1MDAzZW9mZG1zVHVybiA9ICFhbmlTdGF0ZS1cdTAwM2VvZmRtc1R1cm47XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmMtNDI3LVx0XHR9IGVsc2UgaWYgKG9mZG1QaHlFcnJSYXRlIFx1MDAzZSBhaC1cdTAwM2Vjb25maWcub2ZkbV90cmlnX2hpZ2gpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYzo0Mjg6XHRcdFx0YXRoOWtfaHdfYW5pX29mZG1fZXJyX3RyaWdnZXIoYWgpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jLTQyOS1cdFx0XHRhbmlTdGF0ZS1cdTAwM2VvZmRtc1R1cm4gPSBmYWxzZTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYy00MzAtXHRcdH0gZWxzZSBpZiAoY2NrUGh5RXJyUmF0ZSBcdTAwM2UgYWgtXHUwMDNlY29uZmlnLmNja190cmlnX2hpZ2gpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYzo0MzE6XHRcdFx0YXRoOWtfaHdfYW5pX2Nja19lcnJfdHJpZ2dlcihhaCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmMtNDMyLVx0XHRcdGFuaVN0YXRlLVx1MDAzZW9mZG1zVHVybiA9IHRydWU7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jLTQzNS1cdFx0XHRcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYzo0MzY6XHRcdGF0aDlrX2FuaV9yZXN0YXJ0KGFoKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYy00MzctXHR9XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmMtNDM4LX1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYzo0Mzk6RVhQT1JUX1NZTUJPTChhdGg5a19od19hbmlfbW9uaXRvcik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmMtNDQwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jOjQ0MTp2b2lkIGF0aDlrX2VuYWJsZV9taWJfY291bnRlcnMoc3RydWN0IGF0aF9odyAqYWgpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmMtNDQyLXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYzo0NDM6XHRzdHJ1Y3QgYXRoX2NvbW1vbiAqY29tbW9uID0gYXRoOWtfaHdfY29tbW9uKGFoKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYy00NDQtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jLTQ0Ni1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYzo0NDc6XHRhdGg5a19od191cGRhdGVfbWlic3RhdHMoYWgsIFx1MDAyNmFoLVx1MDAzZWFoX21pYlN0YXRzKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYy00NDgtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jLTQ2Mi0vKiBGcmVlemUgdGhlIE1JQiBjb3VudGVycywgZ2V0IHRoZSBzdGF0cyBhbmQgdGhlbiBjbGVhciB0aGVtICovXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmM6NDYzOnZvaWQgYXRoOWtfaHdfZGlzYWJsZV9taWJfY291bnRlcnMoc3RydWN0IGF0aF9odyAqYWgpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmMtNDY0LXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYzo0NjU6XHRzdHJ1Y3QgYXRoX2NvbW1vbiAqY29tbW9uID0gYXRoOWtfaHdfY29tbW9uKGFoKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYy00NjYtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jLTQ2OS1cdFJFR19XUklURShhaCwgQVJfTUlCQywgQVJfTUlCQ19GTUMpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jOjQ3MDpcdGF0aDlrX2h3X3VwZGF0ZV9taWJzdGF0cyhhaCwgXHUwMDI2YWgtXHUwMDNlYWhfbWliU3RhdHMpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jLTQ3MS1cdFJFR19XUklURShhaCwgQVJfTUlCQywgQVJfTUlCQ19DTUMpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYy00NzQtfVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jOjQ3NTpFWFBPUlRfU1lNQk9MKGF0aDlrX2h3X2Rpc2FibGVfbWliX2NvdW50ZXJzKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYy00NzYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmM6NDc3OnZvaWQgYXRoOWtfaHdfYW5pX2luaXQoc3RydWN0IGF0aF9odyAqYWgpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmMtNDc4LXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYzo0Nzk6XHRzdHJ1Y3QgYXRoX2NvbW1vbiAqY29tbW9uID0gYXRoOWtfaHdfY29tbW9uKGFoKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYy00ODAtXHRzdHJ1Y3QgYXI1NDE2QW5pU3RhdGUgKmFuaSA9IFx1MDAyNmFoLVx1MDAzZWFuaTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmMtNTEwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jOjUxMTpcdGF0aDlrX2FuaV9yZXN0YXJ0KGFoKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYzo1MTI6XHRhdGg5a19lbmFibGVfbWliX2NvdW50ZXJzKGFoKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYy01MTMtfVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuaC01My1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuaDo1NDplbnVtIGF0aDlrX2FuaV9jbWQge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5oLTU1LVx0QVRIOUtfQU5JX09GRE1fV0VBS19TSUdOQUxfREVURUNUSU9OID0gMHgxLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuaC02MS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuaDo2MjpzdHJ1Y3QgYXRoOWtfbWliX3N0YXRzIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuaC02My1cdHUzMiBhY2tyY3ZfYmFkO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuaC03MC0vKiBJTkkgZGVmYXVsdCB2YWx1ZXMgZm9yIEFOSSByZWdpc3RlcnMgKi9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuaDo3MTpzdHJ1Y3QgYXRoOWtfYW5pX2RlZmF1bHQge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5oLTcyLVx0dTE2IG0xVGhyZXNoTG93O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuaD04OD1zdHJ1Y3QgYXI1NDE2QW5pU3RhdGUge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuaC05OS1cdHUzMiBjY2tQaHlFcnJDb3VudDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuaDoxMDA6XHRzdHJ1Y3QgYXRoOWtfYW5pX2RlZmF1bHQgaW5pRGVmO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5oLTEwMS19O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuaD0xMDM9c3RydWN0IGFyNTQxNlN0YXRzIHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmgtMTE2LVx0dTMyIGF2Z2Jyc3NpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5oOjExNzpcdHN0cnVjdCBhdGg5a19taWJfc3RhdHMgYXN0X21pYnN0YXRzO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5oLTExOC19O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuaC0xMjAtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmg6MTIxOnZvaWQgYXRoOWtfZW5hYmxlX21pYl9jb3VudGVycyhzdHJ1Y3QgYXRoX2h3ICphaCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmg6MTIyOnZvaWQgYXRoOWtfaHdfZGlzYWJsZV9taWJfY291bnRlcnMoc3RydWN0IGF0aF9odyAqYWgpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5oOjEyMzp2b2lkIGF0aDlrX2h3X2FuaV9pbml0KHN0cnVjdCBhdGhfaHcgKmFoKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuaC0xMjQtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FudGVubmEuYy0xNi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbnRlbm5hLmM6MTc6I2luY2x1ZGUgXCYjMzQ7YXRoOWsuaFwmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FudGVubmEuYy0xOC1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW50ZW5uYS5jPTcyMT12b2lkIGF0aF9hbnRfY29tYl9zY2FuKHN0cnVjdCBhdGhfc29mdGMgKnNjLCBzdHJ1Y3QgYXRoX3J4X3N0YXR1cyAqcnMpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FudGVubmEuYy03ODAtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW50ZW5uYS5jOjc4MTpcdGF0aDlrX2h3X2FudGRpdl9jb21iX2NvbmZfZ2V0KHNjLVx1MDAzZXNjX2FoLCBcdTAwMjZkaXZfYW50X2NvbmYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FudGVubmEuYy03ODItXHRjdXJyX2FsdF9zZXQgPSBkaXZfYW50X2NvbmYuYWx0X2xuYV9jb25mO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbnRlbm5hLmMtODM5LVx0YXRoX2FudF9kaXZfY29uZl9mYXN0X2RpdmJpYXMoXHUwMDI2ZGl2X2FudF9jb25mLCBhbnRjb21iLCBhbHRfcmF0aW8pO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FudGVubmEuYzo4NDA6XHRhdGg5a19od19hbnRkaXZfY29tYl9jb25mX3NldChzYy1cdTAwM2VzY19haCwgXHUwMDI2ZGl2X2FudF9jb25mKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbnRlbm5hLmM6ODQxOlx0YXRoOWtfZGVidWdfc3RhdF9hbnQoc2MsIFx1MDAyNmRpdl9hbnRfY29uZiwgbWFpbl9yc3NpX2F2ZywgYWx0X3Jzc2lfYXZnKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbnRlbm5hLmMtODQyLVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hcjUwMDhfcGh5LmM9MTExPXN0YXRpYyB2b2lkIGFyNTAwOF9od19waHlfbW9kaWZ5X3J4X2J1ZmZlcih1MzIgKnJmQnVmLCB1MzIgcmVnMzIsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FyNTAwOF9waHkuYy0xMTctXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYXI1MDA4X3BoeS5jOjExODpcdHRtcDMyID0gYXRoOWtfaHdfcmV2ZXJzZV9iaXRzKHJlZzMyLCBudW1CaXRzKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hcjUwMDhfcGh5LmMtMTE5LVx0YXJyYXlFbnRyeSA9IChmaXJzdEJpdCAtIDEpIC8gODtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYXI1MDA4X3BoeS5jPTE2ND1zdGF0aWMgdm9pZCBhcjUwMDhfaHdfZm9yY2VfYmlhcyhzdHJ1Y3QgYXRoX2h3ICphaCwgdTE2IHN5bnRoX2ZyZXEpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYXI1MDA4X3BoeS5jLTE2NS17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYXI1MDA4X3BoeS5jOjE2NjpcdHN0cnVjdCBhdGhfY29tbW9uICpjb21tb24gPSBhdGg5a19od19jb21tb24oYWgpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FyNTAwOF9waHkuYy0xNjctXHR1MzIgdG1wX3JlZztcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYXI1MDA4X3BoeS5jLTE4My1cdC8qIHByZS1yZXZlcnNlIHRoaXMgZmllbGQgKi9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hcjUwMDhfcGh5LmM6MTg0Olx0dG1wX3JlZyA9IGF0aDlrX2h3X3JldmVyc2VfYml0cyhuZXdfYmlhcywgMyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYXI1MDA4X3BoeS5jLTE4NS1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYXI1MDA4X3BoeS5jLTIwMi0gKi9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hcjUwMDhfcGh5LmM6MjAzOnN0YXRpYyBpbnQgYXI1MDA4X2h3X3NldF9jaGFubmVsKHN0cnVjdCBhdGhfaHcgKmFoLCBzdHJ1Y3QgYXRoOWtfY2hhbm5lbCAqY2hhbilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hcjUwMDhfcGh5LmMtMjA0LXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hcjUwMDhfcGh5LmM6MjA1Olx0c3RydWN0IGF0aF9jb21tb24gKmNvbW1vbiA9IGF0aDlrX2h3X2NvbW1vbihhaCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYXI1MDA4X3BoeS5jLTIwNi1cdHUzMiBjaGFubmVsU2VsID0gMDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYXI1MDA4X3BoeS5jLTIxMi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hcjUwMDhfcGh5LmM6MjEzOlx0YXRoOWtfaHdfZ2V0X2NoYW5uZWxfY2VudGVycyhhaCwgY2hhbiwgXHUwMDI2Y2VudGVycyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYXI1MDA4X3BoeS5jLTIxNC1cdGZyZXEgPSBjZW50ZXJzLnN5bnRoX2NlbnRlcjtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYXI1MDA4X3BoeS5jLTIzMC1cdFx0Y2hhbm5lbFNlbCA9IChjaGFubmVsU2VsIFx1MDAzY1x1MDAzYyAyKSBcdTAwMjYgMHhmZjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hcjUwMDhfcGh5LmM6MjMxOlx0XHRjaGFubmVsU2VsID0gYXRoOWtfaHdfcmV2ZXJzZV9iaXRzKGNoYW5uZWxTZWwsIDgpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FyNTAwOF9waHkuYy0yMzItXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FyNTAwOF9waHkuYy0yNDQtXHRcdGNoYW5uZWxTZWwgPVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FyNTAwOF9waHkuYzoyNDU6XHRcdCAgICBhdGg5a19od19yZXZlcnNlX2JpdHMoKChmcmVxIC0gNDgwMCkgLyAyMCBcdTAwM2NcdTAwM2MgMiksIDgpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FyNTAwOF9waHkuYzoyNDY6XHRcdGFNb2RlUmVmU2VsID0gYXRoOWtfaHdfcmV2ZXJzZV9iaXRzKDEsIDIpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FyNTAwOF9waHkuYy0yNDctXHR9IGVsc2UgaWYgKChmcmVxICUgMTApID09IDApIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hcjUwMDhfcGh5LmMtMjQ4LVx0XHRjaGFubmVsU2VsID1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hcjUwMDhfcGh5LmM6MjQ5Olx0XHQgICAgYXRoOWtfaHdfcmV2ZXJzZV9iaXRzKCgoZnJlcSAtIDQ4MDApIC8gMTAgXHUwMDNjXHUwMDNjIDEpLCA4KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hcjUwMDhfcGh5LmMtMjUwLVx0XHRpZiAoQVJfU1JFVl85MTAwKGFoKSB8fCBBUl9TUkVWXzkxNjBfMTBfT1JfTEFURVIoYWgpKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FyNTAwOF9waHkuYzoyNTE6XHRcdFx0YU1vZGVSZWZTZWwgPSBhdGg5a19od19yZXZlcnNlX2JpdHMoMiwgMik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYXI1MDA4X3BoeS5jLTI1Mi1cdFx0ZWxzZVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FyNTAwOF9waHkuYzoyNTM6XHRcdFx0YU1vZGVSZWZTZWwgPSBhdGg5a19od19yZXZlcnNlX2JpdHMoMSwgMik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYXI1MDA4X3BoeS5jLTI1NC1cdH0gZWxzZSBpZiAoKGZyZXEgJSA1KSA9PSAwKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYXI1MDA4X3BoeS5jOjI1NTpcdFx0Y2hhbm5lbFNlbCA9IGF0aDlrX2h3X3JldmVyc2VfYml0cygoZnJlcSAtIDQ4MDApIC8gNSwgOCk7XG5cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xOS8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMDYgMDg6MDk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjctZmxhc2g8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzg4OTQKCQkJCQkJCW91dHB1dDogNDUKCQkJCQkJCXRob3VnaHRzOiA1MgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipEaXZpbmcgaW50byB0aGUgQXRoZXJvcyA5ayBEcml2ZXImIzM5O3MgVHJhbnNtaXNzaW9uIENvZGUqKgoKT2theSwgdGltZSB0byBnZXQgbXkgaGFuZHMgZGlydHkuIEkgbmVlZCB0byB1bmRlcnN0YW5kIGhvdyB0aGUgQXRoZXJvcyA5ayBkcml2ZXIgaGFuZGxlcyBwYWNrZXQgdHJhbnNtaXNzaW9uLCBzbyBJJiMzOTtsbCBzdGFydCBieSBjaGVja2luZyBvdXQgYGF0aDlrL3htaXQuY2AuIFNwZWNpZmljYWxseSwgSSYjMzk7bSBoZWFkaW5nIHN0cmFpZ2h0IHRvIHRoZSBoZWFydCBvZiB0aGUgbWF0dGVyIOKAkyBgZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuY2AsIGFuZCBJJiMzOTttIGhvbWluZyBpbiBvbiB0aGUgY29kZSBhcm91bmQgbGluZSAxODg0LiBUaGF0JiMzOTtzIHVzdWFsbHkgd2hlcmUgdGhlIGNvcmUgdHJhbnNtaXNzaW9uIGxvZ2ljIHJlc2lkZXMuIEkmIzM5O20gZ29pbmcgdG8gY2FyZWZ1bGx5IHJlYWQgdGhpcyBzZWN0aW9uIHRvIGdldCBhIGNsZWFyIHBpY3R1cmUgb2Ygd2hhdCB0aGUgZHJpdmVyIGlzIGRvaW5nIHdoZW4gaXQmIzM5O3MgYWN0dWFsbHkgc2VuZGluZyBkYXRhIG92ZXIgdGhlIGFpci4gSSBuZWVkIHRvIHJlZnJlc2ggbXkgbWVtb3J5IG9uIHRoZSBkYXRhIHN0cnVjdHVyZXMgaXQmIzM5O3MgdXNpbmcsIHRoZSBwYWNrZXQgcXVldWUgbWFuYWdlbWVudCwgdGhlIGhhcmR3YXJlIGludGVyYWN0aW9uc+KApiBldmVyeXRoaW5nLiBMZXQmIzM5O3Mgc2VlIHdoYXQgZ2VtcyB0aGlzIGNvZGUgaG9sZHMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzA2IDA4OjA5PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+cmVhZC1maWxlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtGaWxlJiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYyYjMzQ7LAogICYjMzQ7Rmlyc3RMaW5lJiMzNDs6IDE4NzAsCiAgJiMzNDtMaW5lQ291bnQmIzM0OzogNDUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0NvbnRlbnRzJiMzNDs6ICYjMzQ7MTg3MDpcdH1cbjE4NzE6XHRcbjE4NzI6XHRzdGF0aWMgdm9pZCBhdGhfZHJhaW5fdHhxX2xpc3Qoc3RydWN0IGF0aF9zb2Z0YyAqc2MsIHN0cnVjdCBhdGhfdHhxICp0eHEsXG4xODczOlx0XHRcdFx0ICAgICAgIHN0cnVjdCBsaXN0X2hlYWQgKmxpc3QpXG4xODc0Olx0e1xuMTg3NTpcdFx0c3RydWN0IGF0aF9idWYgKmJmLCAqbGFzdGJmO1xuMTg3NjpcdFx0c3RydWN0IGxpc3RfaGVhZCBiZl9oZWFkO1xuMTg3NzpcdFx0c3RydWN0IGF0aF90eF9zdGF0dXMgdHM7XG4xODc4Olx0XG4xODc5Olx0XHRtZW1zZXQoXHUwMDI2dHMsIDAsIHNpemVvZih0cykpO1xuMTg4MDpcdFx0dHMudHNfc3RhdHVzID0gQVRIOUtfVFhfRkxVU0g7XG4xODgxOlx0XHRJTklUX0xJU1RfSEVBRChcdTAwMjZiZl9oZWFkKTtcbjE4ODI6XHRcbjE4ODM6XHRcdHdoaWxlICghbGlzdF9lbXB0eShsaXN0KSkge1xuMTg4NDpcdFx0XHRiZiA9IGxpc3RfZmlyc3RfZW50cnkobGlzdCwgc3RydWN0IGF0aF9idWYsIGxpc3QpO1xuMTg4NTpcdFxuMTg4NjpcdFx0XHRpZiAoYmYtXHUwMDNlYmZfc3RhdGUuc3RhbGUpIHtcbjE4ODc6XHRcdFx0XHRzdHJ1Y3Qgc2tfYnVmZiAqc2tiID0gYmYtXHUwMDNlYmZfbXBkdTtcbjE4ODg6XHRcbjE4ODk6XHRcdFx0XHRsaXN0X2RlbChcdTAwMjZiZi1cdTAwM2VsaXN0KTtcbjE4OTA6XHRcdFx0XHRpZiAoYmYtXHUwMDNlYmZfYnVmX2FkZHIpIHtcbjE4OTE6XHRcdFx0XHRcdGRtYV91bm1hcF9zaW5nbGUoc2MtXHUwMDNlZGV2LCBiZi1cdTAwM2ViZl9idWZfYWRkcixcbjE4OTI6XHRcdFx0XHRcdFx0XHQgc2tiID8gc2tiLVx1MDAzZWxlbiA6IDAsXG4xODkzOlx0XHRcdFx0XHRcdFx0IERNQV9UT19ERVZJQ0UpO1xuMTg5NDpcdFx0XHRcdFx0YmYtXHUwMDNlYmZfYnVmX2FkZHIgPSAwO1xuMTg5NTpcdFx0XHRcdH1cbjE4OTY6XHRcdFx0XHRiZi1cdTAwM2ViZl9tcGR1ID0gTlVMTDtcbjE4OTc6XHRcdFx0XHRkZXZfa2ZyZWVfc2tiX2FueShza2IpO1xuMTg5ODpcdFx0XHRcdGF0aF90eF9yZXR1cm5fYnVmZmVyKHNjLCBiZik7XG4xODk5Olx0XHRcdFx0Y29udGludWU7XG4xOTAwOlx0XHRcdH1cbjE5MDE6XHRcbjE5MDI6XHRcdFx0bGFzdGJmID0gYmYtXHUwMDNlYmZfbGFzdGJmO1xuMTkwMzpcdFx0XHRsaXN0X2N1dF9wb3NpdGlvbihcdTAwMjZiZl9oZWFkLCBsaXN0LCBcdTAwMjZsYXN0YmYtXHUwMDNlbGlzdCk7XG4xOTA0Olx0XHRcdGF0aF90eF9wcm9jZXNzX2J1ZmZlcihzYywgdHhxLCBcdTAwMjZ0cywgYmYsIFx1MDAyNmJmX2hlYWQpO1xuMTkwNTpcdFx0fVxuMTkwNjpcdH1cbjE5MDc6XHRcbjE5MDg6XHQvKlxuMTkwOTpcdCAqIERyYWluIGEgZ2l2ZW4gVFggcXVldWUgKGNvdWxkIGJlIEJlYWNvbiBvciBEYXRhKVxuMTkxMDpcdCAqXG4xOTExOlx0ICogVGhpcyBhc3N1bWVzIG91dHB1dCBoYXMgYmVlbiBzdG9wcGVkIGFuZFxuMTkxMjpcdCAqIHdlIGRvIG5vdCBuZWVkIHRvIGJsb2NrIGF0aF90eF90YXNrbGV0LlxuMTkxMzpcdCAqL1xuMTkxNDpcdHZvaWQgYXRoX2RyYWludHhxKHN0cnVjdCBhdGhfc29mdGMgKnNjLCBzdHJ1Y3QgYXRoX3R4cSAqdHhxKVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIxLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8wNiAwODowOTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuNy1mbGFzaDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzOTg4MgoJCQkJCQkJb3V0cHV0OiAyOQoJCQkJCQkJdGhvdWdodHM6IDgxCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5IZXJlJiMzOTtzIG15IHRob3VnaHQgcHJvY2VzcywgYXMgaWYgSSB3ZXJlIGNvbnNpZGVyaW5nIHRoaXMgaXNzdWU6CgoqKkRlbHZpbmcgaW50byB0aGUgYGF0aDlrYCBEcml2ZXIqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IGBhdGg5a2AsIHRoZSBkcml2ZXIgdGhhdCBoYW5kbGVzIEF0aGVyb3MgUENJL1BDSWUgYW5kIEFIQiB3aXJlbGVzcyBjaGlwcywgcGFydGljdWxhcmx5IHRob3NlIEFSNzF4eC9BUjkxMzAgc2VyaWVzIGRldmljZXMuIE5vdywgSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhpcyBkcml2ZXImIzM5O3Mgc2NvcGUgaW4gcmVsYXRpb24gdG8gdGhlIHN5c3RlbSBhcyBhIHdob2xlLiBJJiMzOTttIHdvbmRlcmluZzogQXJlIHRoZXJlIGFueSBvdGhlciBidXMgdHlwZXMgaXQgc3VwcG9ydHMgdGhhdCBJIG1pZ2h0IGJlIG92ZXJsb29raW5nPyBBbmQganVzdCBhcyBpbXBvcnRhbnRseSwgYXJlIHRoZXJlIGFueSBzaW11bGF0aW9uIGZyYW1ld29ya3MgdGhhdCBhcmUgY29tbW9ubHkgdXNlZCB3aXRoIHRoaXMgZHJpdmVyIHRoYXQgY291bGQgYmUgcmVsZXZhbnQgdG8gdGhlIGN1cnJlbnQgcHJvYmxlbT8gSSBuZWVkIHRvIGJ1aWxkIGEgY29tcHJlaGVuc2l2ZSBwaWN0dXJlLiBUaGUgbmV4dCBsb2dpY2FsIHN0ZXAgaXMgdG8gZGl2ZSByaWdodCBpbnRvIHRoZSBjb2RlIGl0c2VsZi4gSSYjMzk7bSBnb2luZyB0byBwZXJmb3JtIGEgZmlsZSBzZWFyY2ggd2l0aGluIHRoZSBkcml2ZXImIzM5O3MgY29yZSBkaXJlY3RvcnkgKGBkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYCkgdG8gZ2V0IGEgZnVsbCB2aWV3IG9mIHRoZSBhdmFpbGFibGUgY29tcG9uZW50cyBhbmQgYXNzZXNzIGl0cyBhcmNoaXRlY3R1cmUgaW4gbW9yZSBkZXRhaWwuIFRoYXQgc2hvdWxkIGdpdmUgbWUgYSBnb29kIGhhbmRsZSBvbiBpdHMgZnVuY3Rpb25hbGl0eS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yMi8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMDYgMDg6MDk8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5jb2Rlc2VhcmNoLWRpci1pbmRleDwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RGlyJiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGVzJiMzNDs6IFsKICAgICYjMzQ7YWhiLmMmIzM0OywKICAgICYjMzQ7YW5pLmMmIzM0OywKICAgICYjMzQ7YW5pLmgmIzM0OywKICAgICYjMzQ7YW50ZW5uYS5jJiMzNDssCiAgICAmIzM0O2FyNTAwOF9pbml0dmFscy5oJiMzNDssCiAgICAmIzM0O2FyNTAwOF9waHkuYyYjMzQ7LAogICAgJiMzNDthcjkwMDFfaW5pdHZhbHMuaCYjMzQ7LAogICAgJiMzNDthcjkwMDJfY2FsaWIuYyYjMzQ7LAogICAgJiMzNDthcjkwMDJfaHcuYyYjMzQ7LAogICAgJiMzNDthcjkwMDJfaW5pdHZhbHMuaCYjMzQ7LAogICAgJiMzNDthcjkwMDJfbWFjLmMmIzM0OywKICAgICYjMzQ7YXI5MDAyX3BoeS5jJiMzNDssCiAgICAmIzM0O2FyOTAwMl9waHkuaCYjMzQ7LAogICAgJiMzNDthcjkwMDNfMnAyX2luaXR2YWxzLmgmIzM0OywKICAgICYjMzQ7YXI5MDAzX2FpYy5jJiMzNDssCiAgICAmIzM0O2FyOTAwM19haWMuaCYjMzQ7LAogICAgJiMzNDthcjkwMDNfYnVmZmFsb19pbml0dmFscy5oJiMzNDssCiAgICAmIzM0O2FyOTAwM19jYWxpYi5jJiMzNDssCiAgICAmIzM0O2FyOTAwM19lZXByb20uYyYjMzQ7LAogICAgJiMzNDthcjkwMDNfZWVwcm9tLmgmIzM0OywKICAgICYjMzQ7YXI5MDAzX2h3LmMmIzM0OywKICAgICYjMzQ7YXI5MDAzX21hYy5jJiMzNDssCiAgICAmIzM0O2FyOTAwM19tYWMuaCYjMzQ7LAogICAgJiMzNDthcjkwMDNfbWNpLmMmIzM0OywKICAgICYjMzQ7YXI5MDAzX21jaS5oJiMzNDssCiAgICAmIzM0O2FyOTAwM19wYXByZC5jJiMzNDssCiAgICAmIzM0O2FyOTAwM19waHkuYyYjMzQ7LAogICAgJiMzNDthcjkwMDNfcGh5LmgmIzM0OywKICAgICYjMzQ7YXI5MDAzX3J0dC5jJiMzNDssCiAgICAmIzM0O2FyOTAwM19ydHQuaCYjMzQ7LAogICAgJiMzNDthcjkwMDNfd293LmMmIzM0OywKICAgICYjMzQ7YXI5MzMwXzFwMV9pbml0dmFscy5oJiMzNDssCiAgICAmIzM0O2FyOTMzMF8xcDJfaW5pdHZhbHMuaCYjMzQ7LAogICAgJiMzNDthcjkzNDBfaW5pdHZhbHMuaCYjMzQ7LAogICAgJiMzNDthcjk0NjJfMnAwX2luaXR2YWxzLmgmIzM0OywKICAgICYjMzQ7YXI5NDYyXzJwMV9pbml0dmFscy5oJiMzNDssCiAgICAmIzM0O2FyOTQ4NV9pbml0dmFscy5oJiMzNDssCiAgICAmIzM0O2FyOTUzeF9pbml0dmFscy5oJiMzNDssCiAgICAmIzM0O2FyOTU1eF8xcDBfaW5pdHZhbHMuaCYjMzQ7LAogICAgJiMzNDthcjk1NjVfMXAwX2luaXR2YWxzLmgmIzM0OywKICAgICYjMzQ7YXI5NTY1XzFwMV9pbml0dmFscy5oJiMzNDssCiAgICAmIzM0O2FyOTU2eF9pbml0dmFscy5oJiMzNDssCiAgICAmIzM0O2FyOTU4MF8xcDBfaW5pdHZhbHMuaCYjMzQ7LAogICAgJiMzNDthdGg5ay5oJiMzNDssCiAgICAmIzM0O2F0aDlrX3BjaV9vd2xfbG9hZGVyLmMmIzM0OywKICAgICYjMzQ7YmVhY29uLmMmIzM0OywKICAgICYjMzQ7YnRjb2V4LmMmIzM0OywKICAgICYjMzQ7YnRjb2V4LmgmIzM0OywKICAgICYjMzQ7Y2FsaWIuYyYjMzQ7LAogICAgJiMzNDtjYWxpYi5oJiMzNDssCiAgICAmIzM0O2NoYW5uZWwuYyYjMzQ7LAogICAgJiMzNDtjb21tb24tYmVhY29uLmMmIzM0OywKICAgICYjMzQ7Y29tbW9uLWJlYWNvbi5oJiMzNDssCiAgICAmIzM0O2NvbW1vbi1kZWJ1Zy5jJiMzNDssCiAgICAmIzM0O2NvbW1vbi1kZWJ1Zy5oJiMzNDssCiAgICAmIzM0O2NvbW1vbi1pbml0LmMmIzM0OywKICAgICYjMzQ7Y29tbW9uLWluaXQuaCYjMzQ7LAogICAgJiMzNDtjb21tb24tc3BlY3RyYWwuYyYjMzQ7LAogICAgJiMzNDtjb21tb24tc3BlY3RyYWwuaCYjMzQ7LAogICAgJiMzNDtjb21tb24uYyYjMzQ7LAogICAgJiMzNDtjb21tb24uaCYjMzQ7LAogICAgJiMzNDtkZWJ1Zy5jJiMzNDssCiAgICAmIzM0O2RlYnVnLmgmIzM0OywKICAgICYjMzQ7ZGVidWdfc3RhLmMmIzM0OywKICAgICYjMzQ7ZGZzLmMmIzM0OywKICAgICYjMzQ7ZGZzLmgmIzM0OywKICAgICYjMzQ7ZGZzX2RlYnVnLmMmIzM0OywKICAgICYjMzQ7ZGZzX2RlYnVnLmgmIzM0OywKICAgICYjMzQ7ZHluYWNrLmMmIzM0OywKICAgICYjMzQ7ZHluYWNrLmgmIzM0OywKICAgICYjMzQ7ZWVwcm9tLmMmIzM0OywKICAgICYjMzQ7ZWVwcm9tLmgmIzM0OywKICAgICYjMzQ7ZWVwcm9tXzRrLmMmIzM0OywKICAgICYjMzQ7ZWVwcm9tXzkyODcuYyYjMzQ7LAogICAgJiMzNDtlZXByb21fZGVmLmMmIzM0OywKICAgICYjMzQ7Z3Bpby5jJiMzNDssCiAgICAmIzM0O2hpZl91c2IuYyYjMzQ7LAogICAgJiMzNDtoaWZfdXNiLmgmIzM0OywKICAgICYjMzQ7aHRjLmgmIzM0OywKICAgICYjMzQ7aHRjX2Rydl9iZWFjb24uYyYjMzQ7LAogICAgJiMzNDtodGNfZHJ2X2RlYnVnLmMmIzM0OywKICAgICYjMzQ7aHRjX2Rydl9ncGlvLmMmIzM0OywKICAgICYjMzQ7aHRjX2Rydl9pbml0LmMmIzM0OywKICAgICYjMzQ7aHRjX2Rydl9tYWluLmMmIzM0OywKICAgICYjMzQ7aHRjX2Rydl90eHJ4LmMmIzM0OywKICAgICYjMzQ7aHRjX2hzdC5jJiMzNDssCiAgICAmIzM0O2h0Y19oc3QuaCYjMzQ7LAogICAgJiMzNDtody1vcHMuaCYjMzQ7LAogICAgJiMzNDtody5jJiMzNDssCiAgICAmIzM0O2h3LmgmIzM0OywKICAgICYjMzQ7aW5pdC5jJiMzNDssCiAgICAmIzM0O2xpbmsuYyYjMzQ7LAogICAgJiMzNDttYWMuYyYjMzQ7LAogICAgJiMzNDttYWMuaCYjMzQ7LAogICAgJiMzNDttYWluLmMmIzM0OywKICAgICYjMzQ7bWNpLmMmIzM0OywKICAgICYjMzQ7bWNpLmgmIzM0OywKICAgICYjMzQ7cGNpLmMmIzM0OywKICAgICYjMzQ7cGh5LmgmIzM0OywKICAgICYjMzQ7cmVjdi5jJiMzNDssCiAgICAmIzM0O3JlZy5oJiMzNDssCiAgICAmIzM0O3JlZ19haWMuaCYjMzQ7LAogICAgJiMzNDtyZWdfbWNpLmgmIzM0OywKICAgICYjMzQ7cmVnX3dvdy5oJiMzNDssCiAgICAmIzM0O3JuZy5jJiMzNDssCiAgICAmIzM0O3R4OTkuYyYjMzQ7LAogICAgJiMzNDt3bWkuYyYjMzQ7LAogICAgJiMzNDt3bWkuaCYjMzQ7LAogICAgJiMzNDt3b3cuYyYjMzQ7LAogICAgJiMzNDt4bWl0LmMmIzM0OwogIF0sCiAgJiMzNDtTdWJkaXJzJiMzNDs6IG51bGwKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIzLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8wNiAwODowOTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuNy1mbGFzaDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA0MTI5OQoJCQkJCQkJb3V0cHV0OiAzOAoJCQkJCQkJdGhvdWdodHM6IDkyCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkludmVzdGlnYXRpbmcgdGhlIEhUQyBEcml2ZXIgZm9yIFBvdGVudGlhbCBSZXNvdXJjZSBNYW5hZ2VtZW50IElzc3VlcyoqCgpPa2F5LCBzbyBJIG5lZWQgdG8gZGlnIGludG8gdGhlIEhUQyBkcml2ZXIsIHNwZWNpZmljYWxseSB0aGUgYGh0Y19gIGZpbGVzLCBhbmQgdGhlIGB4bWl0LmNgIGZpbGUgdG8gdW5kZXJzdGFuZCBob3cgdHJhbnNtaXQgcXVldWVzIGFyZSBtYW5hZ2VkIHdpdGhpbiB0aGUgYGF0aDlrX2h0Y2AgY29udGV4dC4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRvIHNlZSBpZiBmdW5jdGlvbnMgbGlrZSBgeG1pdC5jYCBvciB0aGUgZHJlYWRlZCBgYXRoX2RyYWluX3R4cV9saXN0YCBhcmUgZXZlbiBiZWluZyAqdXNlZCogYnkgdGhpcyBwYXJ0IG9mIHRoZSBkcml2ZXIuIElmIHRoZXkgYXJlLCBpdCYjMzk7bGwgZ2l2ZSBtZSBhIGNyaXRpY2FsIGNsdWUgYWJvdXQgaG93IHRoZSBzeXN0ZW0gaGFuZGxlcyBidWZmZXIgcmV0dXJucyBhbmQgcXVldWUgZHJhaW5pbmcuIEkgc2hvdWxkIGFsc28gYnJvYWRlbiB0aGUgc2VhcmNoIHRvIGluY2x1ZGUgb3RoZXIgcG9zc2libHkgcmVsYXRlZCBmdW5jdGlvbnMgaW4gYHhtaXQuY2AsIHNwZWNpZmljYWxseSBmdW5jdGlvbnMgbGlrZSBgYXRoX3R4X3JldHVybl9idWZmZXJgLCBzaW5jZSBpdCYjMzk7cyB0aGUgY29yZSBvZiB0cmFuc21pdC4gSSB3YW50IHRvIGJ1aWxkIGEgY29tcGxldGUgbWFwIG9mIHRoZSBrZXkgZnVuY3Rpb25zIHRoYXQgY291bGQgYmUgYWZmZWN0aW5nIHJlc291cmNlIGFsbG9jYXRpb24sIHRvIGlzb2xhdGUgdGhlIGlzc3VlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjI0LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8wNiAwODowOTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDthdGhfdHhfcmV0dXJuX2J1ZmZlciYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ayYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jPTQwNz1zdGF0aWMgc3RydWN0IGF0aF9idWYgKmF0aF90eF9nZXRfYnVmZmVyKHN0cnVjdCBhdGhfc29mdGMgKnNjKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMtNDI1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYzo0MjY6c3RhdGljIHZvaWQgYXRoX3R4X3JldHVybl9idWZmZXIoc3RydWN0IGF0aF9zb2Z0YyAqc2MsIHN0cnVjdCBhdGhfYnVmICpiZilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMtNDI3LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jPTE4NzI9c3RhdGljIHZvaWQgYXRoX2RyYWluX3R4cV9saXN0KHN0cnVjdCBhdGhfc29mdGMgKnNjLCBzdHJ1Y3QgYXRoX3R4cSAqdHhxLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMtMTg5Ny1cdFx0XHRkZXZfa2ZyZWVfc2tiX2FueShza2IpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYzoxODk4Olx0XHRcdGF0aF90eF9yZXR1cm5fYnVmZmVyKHNjLCBiZik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTE4OTktXHRcdFx0Y29udGludWU7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYz0yMjIwPXN0YXRpYyBzdHJ1Y3QgYXRoX2J1ZiAqYXRoX3R4X3NldHVwX2J1ZmZlcihzdHJ1Y3QgYXRoX3NvZnRjICpzYyxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTIyNjItXHRcdFx0XCYjMzQ7ZG1hX21hcHBpbmdfZXJyb3IoKSBvbiBUWFxcblwmIzM0Oyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jOjIyNjM6XHRcdGF0aF90eF9yZXR1cm5fYnVmZmVyKHNjLCBiZik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTIyNjQtXHRcdHJldHVybiBOVUxMO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmM9MjYyOT1zdGF0aWMgdm9pZCBhdGhfdHhfcHJvY2Vzc3Eoc3RydWN0IGF0aF9zb2Z0YyAqc2MsIHN0cnVjdCBhdGhfdHhxICp0eHEpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYy0yNjk1LVx0XHRcdGxpc3RfZGVsKFx1MDAyNmJmX2hlbGQtXHUwMDNlbGlzdCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jOjI2OTY6XHRcdFx0YXRoX3R4X3JldHVybl9idWZmZXIoc2MsIGJmX2hlbGQpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYy0yNjk3LVx0XHR9XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYz0yNzE4PXZvaWQgYXRoX3R4X2VkbWFfdGFza2xldChzdHJ1Y3QgYXRoX3NvZnRjICpzYylcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTI3NzUtXHRcdFx0bGlzdF9kZWwoXHUwMDI2YmYtXHUwMDNlbGlzdCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jOjI3NzY6XHRcdFx0YXRoX3R4X3JldHVybl9idWZmZXIoc2MsIGJmKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMtMjc3Ny1cdFx0XHRiZiA9IGxpc3RfZmlyc3RfZW50cnkoZmlmb19saXN0LCBzdHJ1Y3QgYXRoX2J1ZiwgbGlzdCk7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzA2IDA4OjA5PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy43LWZsYXNoPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDQyMzc4CgkJCQkJCQlvdXRwdXQ6IDY1CgkJCQkJCQl0aG91Z2h0czogNzQ1CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgUmVhY2hhYmlsaXR5IG9mIGB4bWl0LmNgIGluIHRoZSBgYXRoOWtgIE1vZHVsZSoqCgpPa2F5LCBzbyBJIG5lZWQgdG8gZmlndXJlIG91dCBpZiB0aGlzIGB4bWl0LmNgIGZpbGUgaXMgYWN0dWFsbHkgcmVhY2hhYmxlIGZvciBmdXp6aW5nLiBGaXJzdCwgSSYjMzk7bGwgY2hlY2sgdGhlIGBNYWtlZmlsZWAgdG8gc2VlIGhvdyBpdCYjMzk7cyBidWlsdC4gQWxyaWdodCwgaXQgbG9va3MgbGlrZSBgeG1pdC5jYCBpcyBjb21waWxlZCBkaXJlY3RseSBpbnRvIHRoZSBgYXRoOWtgIG1vZHVsZSwgYWxvbmcgd2l0aCBhIGJ1bmNoIG9mIG90aGVyIGNvcmUgZmlsZXMuIEdvb2QsIHRoYXQmIzM5O3MgYSBzdGFydGluZyBwb2ludC4KCk5vdywgdGhlIGBhdGg5a2AgbW9kdWxlIGl0c2VsZi4uLiBJJiMzOTttIHByZXR0eSBzdXJlIHRoYXQmIzM5O3Mgb25seSBsb2FkZWQgd2hlbiBpdCYjMzk7cyBib3VuZCB0byBQQ0kgb3IgQUhCIGhhcmR3YXJlLiBMZXQmIzM5O3MgY29uZmlybSB0aGF0LiBSaWdodCwgYHBjaS5jYCB1c2VzIGEgUENJIGRldmljZSB0YWJsZSAoYGF0aF9wY2lfaWRfdGFibGVgKSwgYW5kIGBhaGIuY2AgdXNlcyBhbiAmIzM0O29mJiMzNDsgbWF0Y2ggdGFibGUgZm9yIHRoZSBBSEIgcGxhdGZvcm0gZGV2aWNlLiAgTm8gc3VycHJpc2VzIHRoZXJlLgoKVGhlIHF1ZXN0aW9uIGlzLCBjYW4gSSBnZXQgdG8gYGF0aDlrYCBpbiBhIHN0YW5kYXJkIFFFTVUgZW52aXJvbm1lbnQ/ICBJIGtub3cgZnJvbSBleHBlcmllbmNlIHRoYXQgc3RhbmRhcmQgUUVNVSBkb2VzbiYjMzk7dCBlbXVsYXRlIEF0aGVyb3MgUENJIGRldmljZXMsIHRoZSBBUjkyODAsIG9yIHRoZSBsaWtlLiBTbywgZGlyZWN0bHkgZW11bGF0aW5nIHRoZSBoYXJkd2FyZSBpc24mIzM5O3QgYW4gb3B0aW9uLgoKVGltZSB0byByZXZpZXcgdGhlIGd1aWRlbGluZXMuICBTZWN0aW9uIDIsIHRoZSAmIzM0O25lZ2F0aXZlIGNyaXRlcmlhJiMzNDsgZm9yIGZ1enppbmcsIG1lbnRpb25zICYjMzQ7U3RydWN0dXJhbGx5IHVucmVhY2hhYmxlIGhhcmR3YXJlLiYjMzQ7IEl0IHNwZWNpZmljYWxseSBjYWxscyBvdXQgdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoZXMgYW5kIGRyaXZlcnMgdGhhdCBuZWVkIHJlYWwgaGFyZHdhcmUsIHdoaWNoIGFyZW4mIzM5O3QgZW11bGF0ZWQuICpUaGF0KiBsb29rcyByZWxldmFudC4gVmlydHVhbCBidXNlcyBhcmUsIG9uIHRoZSBvdGhlciBoYW5kLCAqcG9zaXRpdmUqIGNyaXRlcmlhLgoKV2FpdCBhIHNlY29uZC4uLiBjb3VsZCBgYXRoOWtgIHNvbWVob3cgYmUgcmVhY2hhYmxlIHRocm91Z2ggVVNCPyBJIHNlZW0gdG8gcmVtZW1iZXIgQXRoZXJvcyBoYXMgVVNCIGRyaXZlcnMuIE9rYXksIGxldCYjMzk7cyBsb29rIGF0IHRoYXQgYW5nbGUuIEFoYSEgVGhlcmUmIzM5O3MgYW4gYGF0aDlrX2h0Y2AgZHJpdmVyIGZvciBVU0IuIEJ1dCB0aGF0JiMzOTtzIGEgKkhvc3QgVGFyZ2V0IENvbW11bmljYXRpb24qIGZpcm13YXJlIG92ZXIgVVNCIHNldHVwLiBIbW0sIEkga25vdyB0aGF0IG9uZTsgSSBoYXZlIGEgbG90IG9mIGV4cGVyaWVuY2Ugd2l0aCB0aGF0LiBJdCYjMzk7cyBnb3QgaXRzIG93biBmaWxlcyBsaWtlIGBodGNfZHJ2X3R4cnguY2AgYW5kIGBodGNfZHJ2X21haW4uY2AuIEFuZCBiYXNlZCBvbiB0aGUgbmFtZSBhbG9uZSwgaXQgZG9lc24mIzM5O3Qgc291bmQgbGlrZSBpdCBldmVuICpjb21waWxlcyogYHhtaXQuY2AsIG9yIGNhbGxzIGFueXRoaW5nIGluIGB4bWl0LmNgLgoKVG8gYmUgYWJzb2x1dGVseSBzdXJlLCBJJiMzOTtsbCBzZWFyY2ggZm9yIGNyb3NzLXJlZmVyZW5jZXMgZnJvbSBgYXRoOWtfaHRjYCBpbnRvIGB4bWl0LmNgLiBUaW1lIHRvIGdyZXAgYHhtaXQuY2AgZm9yIGFueSBub24tc3RhdGljIGZ1bmN0aW9uIGRlZmluaXRpb25zIGFuZCBzZWUgaWYgYW55dGhpbmcgY2FsbHMgdGhlbS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yNi8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMDYgMDg6MDk8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7XlthLXpBLVpfXS4qXFxiKGF0aF98YXRoOWtfKVthLXpBLVowLTlfXSYjNDM7XFwoJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jPTQ0PXN0YXRpYyB1MTYgYml0c19wZXJfc3ltYm9sW11bMl0gPSB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYy01NS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmM6NTY6c3RhdGljIHZvaWQgYXRoX3R4X3NlbmRfbm9ybWFsKHN0cnVjdCBhdGhfc29mdGMgKnNjLCBzdHJ1Y3QgYXRoX3R4cSAqdHhxLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYy01Ny1cdFx0XHQgICAgICAgc3RydWN0IGF0aF9hdHhfdGlkICp0aWQsIHN0cnVjdCBza19idWZmICpza2IpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYzo1ODpzdGF0aWMgdm9pZCBhdGhfdHhfY29tcGxldGUoc3RydWN0IGF0aF9zb2Z0YyAqc2MsIHN0cnVjdCBza19idWZmICpza2IsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTU5LVx0XHRcdCAgICBpbnQgdHhfZmxhZ3MsIHN0cnVjdCBhdGhfdHhxICp0eHEsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTYwLVx0XHRcdCAgICBzdHJ1Y3QgaWVlZTgwMjExX3N0YSAqc3RhKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmM6NjE6c3RhdGljIHZvaWQgYXRoX3R4X2NvbXBsZXRlX2J1ZihzdHJ1Y3QgYXRoX3NvZnRjICpzYywgc3RydWN0IGF0aF9idWYgKmJmLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYy02Mi1cdFx0XHRcdHN0cnVjdCBhdGhfdHhxICp0eHEsIHN0cnVjdCBsaXN0X2hlYWQgKmJmX3EsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYy02NC1cdFx0XHRcdHN0cnVjdCBhdGhfdHhfc3RhdHVzICp0cywgaW50IHR4b2spO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYzo2NTpzdGF0aWMgdm9pZCBhdGhfdHhfdHhxYWRkYnVmKHN0cnVjdCBhdGhfc29mdGMgKnNjLCBzdHJ1Y3QgYXRoX3R4cSAqdHhxLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYy02Ni1cdFx0XHQgICAgIHN0cnVjdCBsaXN0X2hlYWQgKmhlYWQsIGJvb2wgaW50ZXJuYWwpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYzo2NzpzdGF0aWMgdm9pZCBhdGhfdHhfcmNfc3RhdHVzKHN0cnVjdCBhdGhfc29mdGMgKnNjLCBzdHJ1Y3QgYXRoX2J1ZiAqYmYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTY4LVx0XHRcdCAgICAgc3RydWN0IGF0aF90eF9zdGF0dXMgKnRzLCBpbnQgbmZyYW1lcywgaW50IG5iYWQsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTY5LVx0XHRcdCAgICAgaW50IHR4b2spO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYzo3MDpzdGF0aWMgdm9pZCBhdGhfdHhfdXBkYXRlX2JhdyhzdHJ1Y3QgYXRoX2F0eF90aWQgKnRpZCwgc3RydWN0IGF0aF9idWYgKmJmKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmM6NzE6c3RhdGljIHN0cnVjdCBhdGhfYnVmICphdGhfdHhfc2V0dXBfYnVmZmVyKHN0cnVjdCBhdGhfc29mdGMgKnNjLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYy03Mi1cdFx0XHRcdFx0ICAgc3RydWN0IGF0aF90eHEgKnR4cSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTc0LVx0XHRcdFx0XHQgICBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmM6NzU6c3RhdGljIGludCBhdGhfdHhfcHJlcGFyZShzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodywgc3RydWN0IHNrX2J1ZmYgKnNrYixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMtNzYtXHRcdFx0ICBzdHJ1Y3QgYXRoX3R4X2NvbnRyb2wgKnR4Y3RsKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jPTc4PWVudW0ge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMtODgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jOjg5OnN0YXRpYyB2b2lkIGF0aF90eF9zdGF0dXMoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsIHN0cnVjdCBza19idWZmICpza2IpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTkwLXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTEwNS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmM6MTA2OnZvaWQgYXRoX3R4cV91bmxvY2tfY29tcGxldGUoc3RydWN0IGF0aF9zb2Z0YyAqc2MsIHN0cnVjdCBhdGhfdHhxICp0eHEpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTEwNy1cdF9fcmVsZWFzZXMoXHUwMDI2dHhxLVx1MDAzZWF4cV9sb2NrKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMtMTIwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYzoxMjE6dm9pZCBhdGhfdHhfcXVldWVfdGlkKHN0cnVjdCBhdGhfc29mdGMgKnNjLCBzdHJ1Y3QgYXRoX2F0eF90aWQgKnRpZClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMtMTIyLXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTEyOC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmM6MTI5OnZvaWQgYXRoOWtfd2FrZV90eF9xdWV1ZShzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodywgc3RydWN0IGllZWU4MDIxMV90eHEgKnF1ZXVlKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYy0xMzAte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmM9MTQ1PXN0YXRpYyBzdHJ1Y3QgYXRoX2ZyYW1lX2luZm8gKmdldF9mcmFtZV9pbmZvKHN0cnVjdCBza19idWZmICpza2IpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYy0xNTItXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jOjE1MzpzdGF0aWMgdm9pZCBhdGhfc2VuZF9iYXIoc3RydWN0IGF0aF9hdHhfdGlkICp0aWQsIHUxNiBzZXFubylcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMtMTU0LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTE2MS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmM6MTYyOnN0YXRpYyBib29sIGF0aF9tZXJnZV9yYXRldGJsKHN0cnVjdCBpZWVlODAyMTFfc3RhICpzdGEsIHN0cnVjdCBhdGhfYnVmICpiZixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMtMTYzLVx0XHRcdCAgICAgIHN0cnVjdCBpZWVlODAyMTFfdHhfaW5mbyAqdHhfaW5mbylcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTE5Ny1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmM6MTk4OnN0YXRpYyB2b2lkIGF0aF9zZXRfcmF0ZXMoc3RydWN0IGllZWU4MDIxMV92aWYgKnZpZiwgc3RydWN0IGllZWU4MDIxMV9zdGEgKnN0YSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMtMTk5LVx0XHRcdCAgc3RydWN0IGF0aF9idWYgKmJmKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMtMjA5LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYzoyMTA6c3RhdGljIHZvaWQgYXRoX3R4cV9za2JfZG9uZShzdHJ1Y3QgYXRoX3NvZnRjICpzYywgc3RydWN0IHNrX2J1ZmYgKnNrYilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMtMjExLXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jPTIzMz1hdGhfdGlkX3B1bGwoc3RydWN0IGF0aF9hdHhfdGlkICp0aWQsIHN0cnVjdCBza19idWZmICoqc2tidWYpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYy0yNjYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jOjI2NzpzdGF0aWMgaW50IGF0aF90aWRfZGVxdWV1ZShzdHJ1Y3QgYXRoX2F0eF90aWQgKnRpZCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMtMjY4LVx0XHRcdCAgIHN0cnVjdCBza19idWZmICoqc2tiKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMtMjc3LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYzoyNzg6c3RhdGljIHZvaWQgYXRoX3R4X2ZsdXNoX3RpZChzdHJ1Y3QgYXRoX3NvZnRjICpzYywgc3RydWN0IGF0aF9hdHhfdGlkICp0aWQpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTI3OS17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYy0zMTYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jOjMxNzpzdGF0aWMgdm9pZCBhdGhfdHhfdXBkYXRlX2JhdyhzdHJ1Y3QgYXRoX2F0eF90aWQgKnRpZCwgc3RydWN0IGF0aF9idWYgKmJmKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYy0zMTgte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMtMzM4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYzozMzk6c3RhdGljIHZvaWQgYXRoX3R4X2FkZHRvX2JhdyhzdHJ1Y3QgYXRoX2F0eF90aWQgKnRpZCwgc3RydWN0IGF0aF9idWYgKmJmKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYy0zNDAte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMtMzU5LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYzozNjA6c3RhdGljIHZvaWQgYXRoX3RpZF9kcmFpbihzdHJ1Y3QgYXRoX3NvZnRjICpzYywgc3RydWN0IGF0aF90eHEgKnR4cSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMtMzYxLVx0XHRcdCAgc3RydWN0IGF0aF9hdHhfdGlkICp0aWQpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYy0zODYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jOjM4NzpzdGF0aWMgdm9pZCBhdGhfdHhfc2V0X3JldHJ5KHN0cnVjdCBhdGhfc29mdGMgKnNjLCBzdHJ1Y3QgYXRoX3R4cSAqdHhxLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYy0zODgtXHRcdFx0ICAgICBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBpbnQgY291bnQpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYy00MDYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jOjQwNzpzdGF0aWMgc3RydWN0IGF0aF9idWYgKmF0aF90eF9nZXRfYnVmZmVyKHN0cnVjdCBhdGhfc29mdGMgKnNjKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYy00MDgte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMtNDI1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYzo0MjY6c3RhdGljIHZvaWQgYXRoX3R4X3JldHVybl9idWZmZXIoc3RydWN0IGF0aF9zb2Z0YyAqc2MsIHN0cnVjdCBhdGhfYnVmICpiZilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMtNDI3LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTQzMi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmM6NDMzOnN0YXRpYyBzdHJ1Y3QgYXRoX2J1ZiogYXRoX2Nsb25lX3R4YnVmKHN0cnVjdCBhdGhfc29mdGMgKnNjLCBzdHJ1Y3QgYXRoX2J1ZiAqYmYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTQzNC17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYy00NTEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jOjQ1MjpzdGF0aWMgdm9pZCBhdGhfdHhfY291bnRfZnJhbWVzKHN0cnVjdCBhdGhfYnVmICpiZiwgc3RydWN0IGF0aF90eF9zdGF0dXMgKnRzLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYy00NTMtXHRcdFx0XHRpbnQgdHhvaywgaW50ICpuZnJhbWVzLCBpbnQgKm5iYWQpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYy00ODItXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jOjQ4MzpzdGF0aWMgdm9pZCBhdGhfdHhfY29tcGxldGVfYWdncihzdHJ1Y3QgYXRoX3NvZnRjICpzYywgc3RydWN0IGF0aF90eHEgKnR4cSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMtNDg0LVx0XHRcdFx0IHN0cnVjdCBhdGhfYnVmICpiZiwgc3RydWN0IGxpc3RfaGVhZCAqYmZfcSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jPTcwMT1zdGF0aWMgYm9vbCBiZl9pc19hbXBkdV9ub3RfcHJvYmluZyhzdHJ1Y3QgYXRoX2J1ZiAqYmYpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYy03MDYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jOjcwNzpzdGF0aWMgdm9pZCBhdGhfdHhfY291bnRfYWlydGltZShzdHJ1Y3QgYXRoX3NvZnRjICpzYyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMtNzA4LVx0XHRcdFx0IHN0cnVjdCBpZWVlODAyMTFfc3RhICpzdGEsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYy03MjQtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jOjcyNTpzdGF0aWMgdm9pZCBhdGhfdHhfcHJvY2Vzc19idWZmZXIoc3RydWN0IGF0aF9zb2Z0YyAqc2MsIHN0cnVjdCBhdGhfdHhxICp0eHEsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTcyNi1cdFx0XHRcdCAgc3RydWN0IGF0aF90eF9zdGF0dXMgKnRzLCBzdHJ1Y3QgYXRoX2J1ZiAqYmYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYy03NzMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jOjc3NDpzdGF0aWMgYm9vbCBhdGhfbG9va3VwX2xlZ2FjeShzdHJ1Y3QgYXRoX2J1ZiAqYmYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTc3NS17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYy03OTUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jOjc5NjpzdGF0aWMgdTMyIGF0aF9sb29rdXBfcmF0ZShzdHJ1Y3QgYXRoX3NvZnRjICpzYywgc3RydWN0IGF0aF9idWYgKmJmLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYy03OTctXHRcdFx0ICAgc3RydWN0IGF0aF9hdHhfdGlkICp0aWQpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYy04NjYtICovXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jOjg2NzpzdGF0aWMgaW50IGF0aF9jb21wdXRlX251bV9kZWxpbXMoc3RydWN0IGF0aF9zb2Z0YyAqc2MsIHN0cnVjdCBhdGhfYXR4X3RpZCAqdGlkLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYy04NjgtXHRcdFx0XHQgIHN0cnVjdCBhdGhfYnVmICpiZiwgdTE2IGZybWxlbixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jPTEwMjc9YXRoX3R4X2Zvcm1fYWdncihzdHJ1Y3QgYXRoX3NvZnRjICpzYywgc3RydWN0IGF0aF90eHEgKnR4cSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTExMTItICovXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jOjExMTM6dTMyIGF0aF9wa3RfZHVyYXRpb24odTggcml4LCBpbnQgcGt0bGVuLCBpbnQgd2lkdGgsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTExMTQtXHRcdCAgICAgaW50IGhhbGZfZ2ksIGJvb2wgc2hvcnRQcmVhbWJsZSlcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTExMzUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jOjExMzY6c3RhdGljIGludCBhdGhfbWF4X2ZyYW1lbGVuKGludCB1c2VjLCBpbnQgbWNzLCBib29sIGh0NDAsIGJvb2wgc2dpKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYy0xMTM3LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTExNTItXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jOjExNTM6dm9pZCBhdGhfdXBkYXRlX21heF9hZ2dyX2ZyYW1lbGVuKHN0cnVjdCBhdGhfc29mdGMgKnNjLCBpbnQgcXVldWUsIGludCB0eG9wKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYy0xMTU0LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTExNzMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jOjExNzQ6c3RhdGljIHU4IGF0aF9nZXRfcmF0ZV90eHBvd2VyKHN0cnVjdCBhdGhfc29mdGMgKnNjLCBzdHJ1Y3QgYXRoX2J1ZiAqYmYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTExNzUtXHRcdFx0ICAgICAgIHU4IHJhdGVpZHgsIGJvb2wgaXNfNDAsIGJvb2wgaXNfY2NrLCBib29sIGlzX21jcylcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTEyNTktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jOjEyNjA6c3RhdGljIHZvaWQgYXRoX2J1Zl9zZXRfcmF0ZShzdHJ1Y3QgYXRoX3NvZnRjICpzYywgc3RydWN0IGF0aF9idWYgKmJmLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYy0xMjYxLVx0XHRcdCAgICAgc3RydWN0IGF0aF90eF9pbmZvICppbmZvLCBpbnQgbGVuLCBib29sIHJ0cylcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jPTEzODA9c3RhdGljIGVudW0gYXRoOWtfcGt0X3R5cGUgZ2V0X2h3X3BhY2tldF90eXBlKHN0cnVjdCBza19idWZmICpza2IpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYy0xNDAyLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYzoxNDAzOnN0YXRpYyB2b2lkIGF0aF90eF9maWxsX2Rlc2Moc3RydWN0IGF0aF9zb2Z0YyAqc2MsIHN0cnVjdCBhdGhfYnVmICpiZixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMtMTQwNC1cdFx0XHQgICAgIHN0cnVjdCBhdGhfdHhxICp0eHEsIGludCBsZW4pXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYz0xNDk2PWF0aF90eF9mb3JtX2J1cnN0KHN0cnVjdCBhdGhfc29mdGMgKnNjLCBzdHJ1Y3QgYXRoX3R4cSAqdHhxLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMtMTUyOC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmM6MTUyOTpzdGF0aWMgaW50IGF0aF90eF9zY2hlZF9hZ2dyKHN0cnVjdCBhdGhfc29mdGMgKnNjLCBzdHJ1Y3QgYXRoX3R4cSAqdHhxLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYy0xNTMwLVx0XHRcdCAgICAgc3RydWN0IGF0aF9hdHhfdGlkICp0aWQpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYy0xNTcwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYzoxNTcxOmludCBhdGhfdHhfYWdncl9zdGFydChzdHJ1Y3QgYXRoX3NvZnRjICpzYywgc3RydWN0IGllZWU4MDIxMV9zdGEgKnN0YSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMtMTU3Mi1cdFx0ICAgICAgdTE2IHRpZCwgdTE2ICpzc24pXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYy0xNjEwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYzoxNjExOnZvaWQgYXRoX3R4X2FnZ3Jfc3RvcChzdHJ1Y3QgYXRoX3NvZnRjICpzYywgc3RydWN0IGllZWU4MDIxMV9zdGEgKnN0YSwgdTE2IHRpZClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMtMTYxMi17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYy0xNjI1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYzoxNjI2OnZvaWQgYXRoX3R4X2FnZ3Jfc2xlZXAoc3RydWN0IGllZWU4MDIxMV9zdGEgKnN0YSwgc3RydWN0IGF0aF9zb2Z0YyAqc2MsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTE2MjctXHRcdCAgICAgICBzdHJ1Y3QgYXRoX25vZGUgKmFuKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMtMTY0My1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmM6MTY0NDp2b2lkIGF0aF90eF9hZ2dyX3dha2V1cChzdHJ1Y3QgYXRoX3NvZnRjICpzYywgc3RydWN0IGF0aF9ub2RlICphbilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMtMTY0NS17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYz0xNjcwPWF0aDlrX3NldF9tb3JlZGF0YShzdHJ1Y3QgYXRoX3NvZnRjICpzYywgc3RydWN0IGF0aF9idWYgKmJmLCBib29sIHZhbClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTE2ODktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jOjE2OTA6dm9pZCBhdGg5a19yZWxlYXNlX2J1ZmZlcmVkX2ZyYW1lcyhzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMtMTY5MS1cdFx0XHRcdCAgIHN0cnVjdCBpZWVlODAyMTFfc3RhICpzdGEsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYy0xNzU3LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYzoxNzU4OnN0cnVjdCBhdGhfdHhxICphdGhfdHhxX3NldHVwKHN0cnVjdCBhdGhfc29mdGMgKnNjLCBpbnQgcXR5cGUsIGludCBzdWJ0eXBlKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYy0xNzU5LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTE4MjktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jOjE4MzA6aW50IGF0aF90eHFfdXBkYXRlKHN0cnVjdCBhdGhfc29mdGMgKnNjLCBpbnQgcW51bSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMtMTgzMS1cdFx0ICAgc3RydWN0IGF0aDlrX3R4X3F1ZXVlX2luZm8gKnFpbmZvKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMtMTg1Ni1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmM6MTg1NzppbnQgYXRoX2NhYnFfdXBkYXRlKHN0cnVjdCBhdGhfc29mdGMgKnNjKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYy0xODU4LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTE4NzEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jOjE4NzI6c3RhdGljIHZvaWQgYXRoX2RyYWluX3R4cV9saXN0KHN0cnVjdCBhdGhfc29mdGMgKnNjLCBzdHJ1Y3QgYXRoX3R4cSAqdHhxLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYy0xODczLVx0XHRcdCAgICAgICBzdHJ1Y3QgbGlzdF9oZWFkICpsaXN0KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMtMTkxMy0gKi9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmM6MTkxNDp2b2lkIGF0aF9kcmFpbnR4cShzdHJ1Y3QgYXRoX3NvZnRjICpzYywgc3RydWN0IGF0aF90eHEgKnR4cSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMtMTkxNS17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYy0xOTM3LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYzoxOTM4OmJvb2wgYXRoX2RyYWluX2FsbF90eHEoc3RydWN0IGF0aF9zb2Z0YyAqc2MpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTE5Mzkte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMtMTk3OS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmM6MTk4MDp2b2lkIGF0aF90eF9jbGVhbnVwcShzdHJ1Y3QgYXRoX3NvZnRjICpzYywgc3RydWN0IGF0aF90eHEgKnR4cSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMtMTk4MS17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYy0xOTg4LSAqL1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYzoxOTg5OnZvaWQgYXRoX3R4cV9zY2hlZHVsZShzdHJ1Y3QgYXRoX3NvZnRjICpzYywgc3RydWN0IGF0aF90eHEgKnR4cSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMtMTk5MC17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYy0yMDI1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYzoyMDI2OnZvaWQgYXRoX3R4cV9zY2hlZHVsZV9hbGwoc3RydWN0IGF0aF9zb2Z0YyAqc2MpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTIwMjcte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMtMjA0Ny0gKi9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmM6MjA0ODpzdGF0aWMgdm9pZCBhdGhfdHhfdHhxYWRkYnVmKHN0cnVjdCBhdGhfc29mdGMgKnNjLCBzdHJ1Y3QgYXRoX3R4cSAqdHhxLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYy0yMDQ5LVx0XHRcdCAgICAgc3RydWN0IGxpc3RfaGVhZCAqaGVhZCwgYm9vbCBpbnRlcm5hbClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTIxMTQtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jOjIxMTU6c3RhdGljIHZvaWQgYXRoX3R4X3NlbmRfbm9ybWFsKHN0cnVjdCBhdGhfc29mdGMgKnNjLCBzdHJ1Y3QgYXRoX3R4cSAqdHhxLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYy0yMTE2LVx0XHRcdCAgICAgICBzdHJ1Y3QgYXRoX2F0eF90aWQgKnRpZCwgc3RydWN0IHNrX2J1ZmYgKnNrYilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jPTIxMzg9c3RhdGljIHZvaWQgc2V0dXBfZnJhbWVfaW5mbyhzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodyxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTIyMDAtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jOjIyMDE6dTggYXRoX3R4Y2hhaW5tYXNrX3JlZHVjdGlvbihzdHJ1Y3QgYXRoX3NvZnRjICpzYywgdTggY2hhaW5tYXNrLCB1MzIgcmF0ZSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMtMjIwMi17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYy0yMjE5LSAqL1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYzoyMjIwOnN0YXRpYyBzdHJ1Y3QgYXRoX2J1ZiAqYXRoX3R4X3NldHVwX2J1ZmZlcihzdHJ1Y3QgYXRoX3NvZnRjICpzYyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMtMjIyMS1cdFx0XHRcdFx0ICAgc3RydWN0IGF0aF90eHEgKnR4cSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTIyNzEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jOjIyNzI6dm9pZCBhdGhfYXNzaWduX3NlcShzdHJ1Y3QgYXRoX2NvbW1vbiAqY29tbW9uLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYy0yMjczLXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTIyOTMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jOjIyOTQ6c3RhdGljIGludCBhdGhfdHhfcHJlcGFyZShzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodywgc3RydWN0IHNrX2J1ZmYgKnNrYixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMtMjI5NS1cdFx0XHQgIHN0cnVjdCBhdGhfdHhfY29udHJvbCAqdHhjdGwpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYy0yMzMxLS8qIFVwb24gZmFpbHVyZSBjYWxsZXIgc2hvdWxkIGZyZWUgc2tiICovXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jOjIzMzI6aW50IGF0aF90eF9zdGFydChzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodywgc3RydWN0IHNrX2J1ZmYgKnNrYixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMtMjMzMy1cdFx0IHN0cnVjdCBhdGhfdHhfY29udHJvbCAqdHhjdGwpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYy0yMzk3LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYzoyMzk4OnZvaWQgYXRoX3R4X2NhYnEoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsIHN0cnVjdCBpZWVlODAyMTFfdmlmICp2aWYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTIzOTktXHRcdCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMtMjQ2My1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmM6MjQ2NDpzdGF0aWMgdm9pZCBhdGhfdHhfY29tcGxldGUoc3RydWN0IGF0aF9zb2Z0YyAqc2MsIHN0cnVjdCBza19idWZmICpza2IsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTI0NjUtXHRcdFx0ICAgIGludCB0eF9mbGFncywgc3RydWN0IGF0aF90eHEgKnR4cSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTI1MTUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jOjI1MTY6c3RhdGljIHZvaWQgYXRoX3R4X2NvbXBsZXRlX2J1ZihzdHJ1Y3QgYXRoX3NvZnRjICpzYywgc3RydWN0IGF0aF9idWYgKmJmLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYy0yNTE3LVx0XHRcdFx0c3RydWN0IGF0aF90eHEgKnR4cSwgc3RydWN0IGxpc3RfaGVhZCAqYmZfcSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTI1NjEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jOjI1NjI6c3RhdGljIHZvaWQgYXRoX2NsZWFyX3R4X3N0YXR1cyhzdHJ1Y3QgaWVlZTgwMjExX3R4X2luZm8gKnR4X2luZm8pXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTI1NjMte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMtMjU3MS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmM6MjU3MjpzdGF0aWMgdm9pZCBhdGhfdHhfcmNfc3RhdHVzKHN0cnVjdCBhdGhfc29mdGMgKnNjLCBzdHJ1Y3QgYXRoX2J1ZiAqYmYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTI1NzMtXHRcdFx0ICAgICBzdHJ1Y3QgYXRoX3R4X3N0YXR1cyAqdHMsIGludCBuZnJhbWVzLCBpbnQgbmJhZCxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTI2MjgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jOjI2Mjk6c3RhdGljIHZvaWQgYXRoX3R4X3Byb2Nlc3NxKHN0cnVjdCBhdGhfc29mdGMgKnNjLCBzdHJ1Y3QgYXRoX3R4cSAqdHhxKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYy0yNjMwLXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTI3MDMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jOjI3MDQ6dm9pZCBhdGhfdHhfdGFza2xldChzdHJ1Y3QgYXRoX3NvZnRjICpzYylcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMtMjcwNS17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYy0yNzE3LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYzoyNzE4OnZvaWQgYXRoX3R4X2VkbWFfdGFza2xldChzdHJ1Y3QgYXRoX3NvZnRjICpzYylcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMtMjcxOS17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYy0yODExLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYzoyODEyOnN0YXRpYyBpbnQgYXRoX3R4c3RhdHVzX3NldHVwKHN0cnVjdCBhdGhfc29mdGMgKnNjLCBpbnQgc2l6ZSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMtMjgxMy17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYy0yODI1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYzoyODI2OnN0YXRpYyBpbnQgYXRoX3R4X2VkbWFfaW5pdChzdHJ1Y3QgYXRoX3NvZnRjICpzYylcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMtMjgyNy17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYy0yODM4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYzoyODM5OmludCBhdGhfdHhfaW5pdChzdHJ1Y3QgYXRoX3NvZnRjICpzYywgaW50IG5idWZzKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYy0yODQwLXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTI4NjctXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jOjI4Njg6dm9pZCBhdGhfdHhfbm9kZV9pbml0KHN0cnVjdCBhdGhfc29mdGMgKnNjLCBzdHJ1Y3QgYXRoX25vZGUgKmFuKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYy0yODY5LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTI4OTEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jOjI4OTI6dm9pZCBhdGhfdHhfbm9kZV9jbGVhbnVwKHN0cnVjdCBhdGhfc29mdGMgKnNjLCBzdHJ1Y3QgYXRoX25vZGUgKmFuKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYy0yODkzLXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTI5MjItXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jOjI5MjM6aW50IGF0aDlrX3R4OTlfc2VuZChzdHJ1Y3QgYXRoX3NvZnRjICpzYywgc3RydWN0IHNrX2J1ZmYgKnNrYixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMtMjkyNC1cdFx0ICAgIHN0cnVjdCBhdGhfdHhfY29udHJvbCAqdHhjdGwpXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzA2IDA4OjA5PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy43LWZsYXNoPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDUxNzI3CgkJCQkJCQlvdXRwdXQ6IDEyMwoJCQkJCQkJdGhvdWdodHM6IDY1MAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXNpcyBvZiBgYXRoOWsveG1pdC5jYCBhbmQgUmVhY2hhYmlsaXR5IGZvciBGdXp6aW5nKioKCk9rYXksIGxldCYjMzk7cyBicmVhayB0aGlzIGRvd24uIEZpcnN0LCBgeG1pdC5jYCBpcyBleGNsdXNpdmVseSBjYWxsZWQgd2l0aGluIHRoZSBgYXRoOWtgIG1vZHVsZSAoYGF0aDlrLmtvYCkuIGBhdGg5ay5rb2AsIGFzIHdlIGtub3csIGlzIHRoZSBkcml2ZXIgZm9yIHRob3NlIG9sZGVyIEF0aGVyb3MgODAyLjExbiB3aXJlbGVzcyBjYXJkcyB0aGF0IHVzZSBQQ0kvUENJZSBvciBBSEIgaW50ZXJmYWNlcy4gVGhlIGNyaXRpY2FsIHBvaW50IGlzIHRoYXQgc3RhbmRhcmQgUUVNVSDigJMgd2hpY2ggaXMgd2hhdCB3ZSYjMzk7cmUgbGlrZWx5IHVzaW5nIGZvciBmdXp6aW5nIOKAkyBkb2VzbiYjMzk7dCBlbXVsYXRlIHRob3NlIHNwZWNpZmljIEF0aGVyb3MgUENJL0FIQiB3aXJlbGVzcyBjYXJkcy4gVGhpcyBpbW1lZGlhdGVseSBzdWdnZXN0cyBhIHByb2JsZW0uCgpOb3csIGxldCYjMzk7cyBjcm9zcy1yZWZlcmVuY2UgdGhpcyBhZ2FpbnN0IFNlY3Rpb24gMiBvZiB0aGUgcHJvbXB0LiBXZSYjMzk7cmUgbG9va2luZyBmb3IgJiMzNDtTdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUgaGFyZHdhcmUmIzM0OyBzY2VuYXJpb3MsIGFuZCB0aGlzIHNlZW1zIHRvIGZpdCBwZXJmZWN0bHk6IHZlbmRvci1zcGVjaWZpYyBQQ0llIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBRRU1VLiBTcGVjaWZpY2FsbHksIHRoZSBtb2RpZmllZCBmaWxlIGhlcmUgaXMgYGRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmNgLCBmb2N1c2luZyBvbiB0aGUgYGF0aF9kcmFpbl90eHFfbGlzdCgpYCBmdW5jdGlvbi4gVGhpcyBmdW5jdGlvbiBpcyBpbnRlcm5hbCB0byBgeG1pdC5jYCBhbmQgb25seSBjYWxsZWQgYnkgYGF0aF9kcmFpbnR4cSgpYC4gYGF0aF9kcmFpbnR4cSgpYCBpdHNlbGYgaXMgaW52b2x2ZWQgaW4gdGFza3MgbGlrZSBiZWFjb24gZ2VuZXJhdGlvbiwgc3dpdGNoaW5nIGNoYW5uZWwgY29udGV4dHMsIGFuZCBpbnRlcmZhY2Ugc3RvcHBpbmcsIG9yIHF1ZXVlIGRyYWluYWdlLCBhbGwgd2l0aGluIHRoZSBgYXRoOWtgIGRyaXZlciwgd2hpY2ggaGluZ2VzIG9uIHRoZSBwcmVzZW5jZSBvZiBwaHlzaWNhbCBQQ0kvQUhCIEF0aGVyb3MgaGFyZHdhcmUuIE5vbmUgb2YgdGhlc2UgZXhlY3V0aW9uIHBhdGhzIGFyZSBwb3NzaWJsZSB3aXRob3V0IHRoYXQgc3BlY2lmaWMgaGFyZHdhcmUuCgpUaGVyZWZvcmUsIHNpbmNlIHdlJiMzOTtyZSBtb2RpZnlpbmcgdGhlIGNvZGUgaW4gYHhtaXQuY2AsIGFuZCB0aGF0IGNvZGUgaXMgKnN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZSogaW4gdGhlIGFic2VuY2Ugb2YgcGh5c2ljYWwgQXRoZXJvcyA4MDIuMTFuIFBDSS9BSEIgaGFyZHdhcmUsIHdoaWNoIGlzIG5vdCBhdmFpbGFibGUgaW4gb3VyIHN0YW5kYXJkIGZ1enppbmcgZW52aXJvbm1lbnQgKFFFTVUpLCB0aGVuIHRoaXMgY29kZSBpc24mIzM5O3Qgd29ydGggZnV6emluZywgYmFzZWQgb24gdGhlIGNyaXRlcmlhIGluIHRoZSBwcm9tcHQuCgpMZXQgbWUganVzdCBkb3VibGUtY2hlY2ssIG1ha2luZyBzdXJlIEkmIzM5O20gZm9sbG93aW5nIGluc3RydWN0aW9ucyBmb3IgYHNldC1yZXN1bHRzYDoKCiogICBgV29ydGhGdXp6aW5nYDogYGZhbHNlYAoqICAgYEZvY3VzU3ltYm9sc2A6IGBbXWAgKGVtcHR5KQoqICAgYEVuYWJsZUNvbmZpZ3NgOiBgW11gIChlbXB0eSkKKiAgIGBSZWFzb25pbmdgOiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyBgYXRoX2RyYWluX3R4cV9saXN0KClgIGluIGBkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jYCwgd2hpY2ggYmVsb25ncyB0byB0aGUgYGF0aDlrYCBkcml2ZXIgZm9yIEF0aGVyb3MgODAyLjExbiBQQ0kgYW5kIEFIQiBkZXZpY2VzLiBCZWNhdXNlIHN0YW5kYXJkIHZpcnR1YWxpemVkIGZ1enppbmcgZW52aXJvbm1lbnRzIChlLmcuIFFFTVUvR0NFKSBsYWNrIGVtdWxhdGlvbiBmb3IgdGhlc2UgcGh5c2ljYWwgQXRoZXJvcyBQQ0kvQUhCIHdpcmVsZXNzIGFkYXB0ZXJzLCB0aGUgbW9kaWZpZWQgY29kZSBpcyBzdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUuJiMzNDsKCkFscmlnaHQsIGxvb2tzIGxpa2Ugd2UmIzM5O3JlIGdvb2QgdG8gY2FsbCBgc2V0LXJlc3VsdHNgLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjI4LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8wNiAwODowOTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFtdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIGBhdGhfZHJhaW5fdHhxX2xpc3QoKWAgaW4gYGRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmNgLCB3aGljaCBiZWxvbmdzIHRvIHRoZSBgYXRoOWtgIGRyaXZlciBmb3IgQXRoZXJvcyA4MDIuMTFuIFBDSSBhbmQgQUhCIGRldmljZXMuIFRoaXMgaGFyZHdhcmUgaXMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyAoZS5nLiwgUUVNVSBvciBHQ0UpLCBtYWtpbmcgdGhlIG1vZGlmaWVkIGNvZGUgc3RydWN0dXJhbGx5IHVucmVhY2hhYmxlIGZvciBmdXp6aW5nLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IG51bGwsCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgYGF0aF9kcmFpbl90eHFfbGlzdCgpYCBpbiBgZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuY2AsIHdoaWNoIGJlbG9uZ3MgdG8gdGhlIGBhdGg5a2AgZHJpdmVyIGZvciBBdGhlcm9zIDgwMi4xMW4gUENJIGFuZCBBSEIgZGV2aWNlcy4gVGhpcyBoYXJkd2FyZSBpcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIChlLmcuLCBRRU1VIG9yIEdDRSksIG1ha2luZyB0aGUgbW9kaWZpZWQgY29kZSBzdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUgZm9yIGZ1enppbmcuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjI5LzE8L3RkPgoJCQk8dGQ+MjAyNi8wOS8wNiAwODowOTwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+SWY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTwvdGJvZHk+Cgk8L3RhYmxlPgoKCTxkaXYgaWQ9ImxsbV9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+TExNIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgVG9rZW5zPC90aD4KCQkJCQk8dGg+QXZnIFRva2VuczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJsbG1fc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJ0b29sX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5Ub29sIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9InRvb2xfc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJkdXJhdGlvbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+Cgk8ZGl2IGlkPSJ0b2tlbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+CgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9qc2FwaSI+PC9zY3JpcHQ+Cgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CgkJZ29vZ2xlLmxvYWQoInZpc3VhbGl6YXRpb24iLCAiMSIsIHtwYWNrYWdlczpbImNvcmVjaGFydCJdfSk7CgkJZ29vZ2xlLnNldE9uTG9hZENhbGxiYWNrKGRyYXdDaGFydHMpOwoKCQlmdW5jdGlvbiBkcmF3Q2hhcnRzKCkgewoJCQljb25zdCByYXdEYXRhID0gW3siU3RhcnRlZCI6IjIwMjYtMDktMDZUMDg6MDg6NTcuMjAxMTg1ODUyWiIsIlNlcSI6MCwiTmVzdGluZyI6MCwiVHlwZSI6ImZsb3ciLCJOYW1lIjoicGF0Y2gtdHJpYWdlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NTgxNTAyMjYwNzIsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiS01TQU5SZWFzb25pbmdcIjogXCJcIixcbiAgXCJOZWVkc0tNU0FOXCI6IGZhbHNlLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyBgYXRoX2RyYWluX3R4cV9saXN0KClgIGluIGBkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jYCwgd2hpY2ggYmVsb25ncyB0byB0aGUgYGF0aDlrYCBkcml2ZXIgZm9yIEF0aGVyb3MgODAyLjExbiBQQ0kgYW5kIEFIQiBkZXZpY2VzLiBUaGlzIGhhcmR3YXJlIGlzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgKGUuZy4sIFFFTVUgb3IgR0NFKSwgbWFraW5nIHRoZSBtb2RpZmllZCBjb2RlIHN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZSBmb3IgZnV6emluZy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTA2VDA4OjA4OjU3LjIwMTE5MDI0MVoiLCJTZXEiOjEsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoicmVhZC1wYXRjaC1kaWZmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NTU0NzY0NjQ0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJQYXRjaERpZmZcIjogXCJjb21taXQgYjMwMTJjZjlhMmVlNjUxNzU3YzQ2ZTdmOTMzNGU5NTMwM2I3MTQ4NFxcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXFx1MDAzZVxcbkRhdGU6ICAgU3VuIFNlcCA2IDA4OjA4OjU2IDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jXFxuaW5kZXggODlkOGIzMTc4Nzg0Ni4uODk5MzBlYWYxZmQzMSAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jXFxuKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuY1xcbkBAIC0xODg0LDggKzE4ODQsMTcgQEAgc3RhdGljIHZvaWQgYXRoX2RyYWluX3R4cV9saXN0KHN0cnVjdCBhdGhfc29mdGMgKnNjLCBzdHJ1Y3QgYXRoX3R4cSAqdHhxLFxcbiBcXHRcXHRiZiA9IGxpc3RfZmlyc3RfZW50cnkobGlzdCwgc3RydWN0IGF0aF9idWYsIGxpc3QpO1xcbiBcXG4gXFx0XFx0aWYgKGJmLVxcdTAwM2ViZl9zdGF0ZS5zdGFsZSkge1xcbi1cXHRcXHRcXHRsaXN0X2RlbChcXHUwMDI2YmYtXFx1MDAzZWxpc3QpO1xcbitcXHRcXHRcXHRzdHJ1Y3Qgc2tfYnVmZiAqc2tiID0gYmYtXFx1MDAzZWJmX21wZHU7XFxuIFxcbitcXHRcXHRcXHRsaXN0X2RlbChcXHUwMDI2YmYtXFx1MDAzZWxpc3QpO1xcbitcXHRcXHRcXHRpZiAoYmYtXFx1MDAzZWJmX2J1Zl9hZGRyKSB7XFxuK1xcdFxcdFxcdFxcdGRtYV91bm1hcF9zaW5nbGUoc2MtXFx1MDAzZWRldiwgYmYtXFx1MDAzZWJmX2J1Zl9hZGRyLFxcbitcXHRcXHRcXHRcXHRcXHRcXHQgc2tiID8gc2tiLVxcdTAwM2VsZW4gOiAwLFxcbitcXHRcXHRcXHRcXHRcXHRcXHQgRE1BX1RPX0RFVklDRSk7XFxuK1xcdFxcdFxcdFxcdGJmLVxcdTAwM2ViZl9idWZfYWRkciA9IDA7XFxuK1xcdFxcdFxcdH1cXG4rXFx0XFx0XFx0YmYtXFx1MDAzZWJmX21wZHUgPSBOVUxMO1xcbitcXHRcXHRcXHRkZXZfa2ZyZWVfc2tiX2FueShza2IpO1xcbiBcXHRcXHRcXHRhdGhfdHhfcmV0dXJuX2J1ZmZlcihzYywgYmYpO1xcbiBcXHRcXHRcXHRjb250aW51ZTtcXG4gXFx0XFx0fVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOS0wNlQwODowODo1Ny43NTY5Mzk0MTZaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJjb3JlIiwiRHVyYXRpb24iOjU3NTk0NDUzNzg3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyBgYXRoX2RyYWluX3R4cV9saXN0KClgIGluIGBkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jYCwgd2hpY2ggYmVsb25ncyB0byB0aGUgYGF0aDlrYCBkcml2ZXIgZm9yIEF0aGVyb3MgODAyLjExbiBQQ0kgYW5kIEFIQiBkZXZpY2VzLiBUaGlzIGhhcmR3YXJlIGlzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgKGUuZy4sIFFFTVUgb3IgR0NFKSwgbWFraW5nIHRoZSBtb2RpZmllZCBjb2RlIHN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZSBmb3IgZnV6emluZy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyIGFuZCBzZWN1cml0eSBlbmdpbmVlci5cbllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZXZhbHVhdGUgd2hldGhlciBpdCB3YXJyYW50cyBmdXp6aW5nIHdpdGggc3l6a2FsbGVyLlxuXG5JTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW5cbnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiBpbnRlcm5hbCBhc3N1bXB0aW9ucy4gWW91IG11c3QgYWN0aXZlbHkgdXNlIHlvdXIgY29kZSBhY2Nlc3NcbnRvb2xzIHRvIGluc3BlY3QgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSwgY2FsbGVycywgYW5kIHN1cnJvdW5kaW5nIGNvbnRleHQuXG5cbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4xLiBDT1JFIFRSSUFHRSBQSElMT1NPUEhZXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuVGhlIGdvYWwgb2YgcGF0Y2ggZnV6emluZyBpcyB0byBkaXNjb3ZlciBjcmFzaGVzLCByZWdyZXNzaW9ucywgZXhwb3NlZCBsYXRlbnQgYnVncyxcbmFuZCBuZXdseSB0cmlnZ2VyZWQgYXNzZXJ0aW9ucyBpbnRyb2R1Y2VkIGJ5IHRoZSBwYXRjaCBzZXJpZXMuXG5cbi0gUkVBQ0hBQklMSVRZIElTIFRIRSBQUklNQVJZIEdBVEU6XG4gIEZ1enppbmcgY2FuIG9ubHkgZGlzY292ZXIgYnVncyBpbiBjb2RlIHRoYXQgY2FuIGFjdHVhbGx5IGV4ZWN1dGUgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWRcbiAgZW52aXJvbm1lbnRzIChHQ0Ugb3IgUUVNVSwgdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGRldmljZXMgbGlrZSBVU0IgZ2FkZ2V0cywgbmV0ZGV2LCB0dW4vdGFwKS5cbiAgSWYgdGhlIG1vZGlmaWVkIGNvZGUgaXMgc3RydWN0dXJhbGx5IHVucmVhY2hhYmxlIChzZWUgU2VjdGlvbiAyKSwgaXQgTVVTVCBOT1QgYmUgZnV6emVkLFxuICByZWdhcmRsZXNzIG9mIHdoZXRoZXIgaXQgYWRkcyBhc3NlcnRpb25zIG9yIGNvbXBsZXggbG9naWMuXG5cbi0gRE8gTk9UIEJMSU5ETFkgVFJVU1QgXCJOTyBGVU5DVElPTkFMIENIQU5HRVwiIChORkNJKSBPUiBcIlJFRkFDVE9SSU5HXCIgQ0xBSU1TOlxuICBQYXRjaCBhdXRob3JzIHJvdXRpbmVseSBsYWJlbCBjaGFuZ2VzIGFzIFwiY2xlYW51cHNcIiwgXCJyZWZhY3RvcmluZ3NcIiwgb3Igc3RhdGVcbiAgXCJObyBmdW5jdGlvbmFsIGNoYW5nZSBpbnRlbmRlZFwiLiBEbyBOT1QgdGFrZSB0aGVzZSBjbGFpbXMgYXQgZmFjZSB2YWx1ZS5cbiAgQ29kZSByZWZhY3RvcmluZ3MgdGhhdCByZWFycmFuZ2UgbG9naWMsIGludHJvZHVjZSBoZWxwZXIgZnVuY3Rpb25zLCBvciBhbHRlciBzdGF0ZSBtYW5hZ2VtZW50XG4gIGluIGNvcmUgc3Vic3lzdGVtcyBmcmVxdWVudGx5IGludHJvZHVjZSBzdWJ0bGUgc2VtYW50aWMgc2hpZnRzIG9yIHVuY292ZXIgbGF0ZW50IGtlcm5lbCBidWdzLlxuICBJZiByZWFjaGFibGUgZXhlY3V0YWJsZSBjb2RlIGlzIG1vZGlmaWVkIG9yIHJlZmFjdG9yZWQsIGl0IE1VU1QgYmUgZnV6emVkLlxuXG4tIE5FVyBPUiBNT0RJRklFRCBBU1NFUlRJT05TIElOIFJFQUNIQUJMRSBDT0RFIE1VU1QgQkUgRlVaWkVEOlxuICBXaGVuIGEgcGF0Y2ggaW50cm9kdWNlcyBvciBtb2RpZmllcyBydW50aW1lIGNoZWNrcyBvciBhc3NlcnRpb25zIChlLmcuLCBXQVJOX09OKiwgVk1fV0FSTl9PTiosXG4gIEJVR19PTiosIGxvY2tkZXBfYXNzZXJ0KikgaW4gcmVhY2hhYmxlIGNvZGUgcGF0aHMsIGl0IGVuZm9yY2VzIG5ldyBvciBzdHJpY3RlciBpbnZhcmlhbnRzLlxuICBFdmVuIGlmIHRoZSBhdXRob3IgYmVsaWV2ZXMgdGhlIGludmFyaWFudCBhbHdheXMgaG9sZHMsIGZ1enppbmcgaXMgZXNzZW50aWFsIHRvIHZlcmlmeSB3aGV0aGVyXG4gIGFuIHVudXN1YWwgc2VxdWVuY2Ugb2Ygb3BlcmF0aW9ucyBjYW4gdmlvbGF0ZSBpdC5cblxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbjIuIFdIRU4gVE8gUkVUVVJOIFdvcnRoRnV6emluZz1mYWxzZSAoTkVHQVRJVkUgQ1JJVEVSSUEpXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBPTkxZIElGIGFsbCBtb2RpZmllZCBjb2RlIGZhbGxzIHN0cmljdGx5IGludG8gb25lIG9yIG1vcmUgb2YgdGhlc2UgY2F0ZWdvcmllczpcblxuLSBOb24ta2VybmVsIGFuZCBub24tZXhlY3V0YWJsZSBjaGFuZ2VzOlxuICAqIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIGNvbW1lbnRzLCBvciBzcGVsbGluZyBmaXhlcy5cbiAgKiBVc2VyLXNwYWNlIGRpcmVjdG9yaWVzLCBzZWxmLXRlc3RzLCBzYW1wbGVzLCBvciBzY3JpcHRzIChlLmcuLCB0b29scy8sIHNhbXBsZXMvLCBzY3JpcHRzLywgdXNyLylcbiAgICB0aGF0IGRvIG5vdCBhZmZlY3QgdGhlIGNvbXBpbGVkIGtlcm5lbCBpbWFnZSAodm1saW51eCkgb3Iga2VybmVsIG1vZHVsZXMuXG4gICogUHVyZWx5IGRlY29yYXRpdmUgbG9nZ2luZyAoZS5nLiwgbWVzc2FnZSBzdHJpbmdzIGluIHByX2VyciwgcHJpbnRrLCBkZXZfaW5mbykgb3IgdHJhY2Vwb2ludHNcbiAgICB0aGF0IGRvIG5vdCBhbHRlciBjb250cm9sIGZsb3cgb3IgZGF0YSBzdHJ1Y3R1cmVzLlxuICAqIEJ1aWxkIHN5c3RlbSBvciBLY29uZmlnIGNoYW5nZXMgdGhhdCBkbyBub3QgYWx0ZXIgY29tcGlsZWQgQyBsb2dpYy5cbi0gU3RydWN0dXJhbGx5IHVucmVhY2hhYmxlIGhhcmR3YXJlOlxuICAqIFZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaGVzLCBTbWFydE5JQ3MsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCxcbiAgICBpb25pYywgYW1kZ3B1KSByZXF1aXJpbmcgcGh5c2ljYWwgQVNJQy9QQ0llIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLlxuLSBVbnJlYWNoYWJsZSBleGVjdXRpb24gcGF0aHM6XG4gICogRHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoLnJlbW92ZSwgLnNodXRkb3duLCBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIpIGV4ZWN1dGVkIG9ubHkgZHVyaW5nXG4gICAgcGh5c2ljYWwgUENJIGhvdC11bnBsdWcgb3IgbWFudWFsIHN5c2ZzIGRyaXZlciB1bmJpbmRpbmcuXG4gICogQ29kZSBwYXRocyBleGNsdXNpdmUgdG8gYXJjaGl0ZWN0dXJlcyBvdGhlciB0aGFuIHRoZSB0YXJnZXQgYXJjaGl0ZWN0dXJlLlxuXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuMy4gV0hFTiBUTyBSRVRVUk4gV29ydGhGdXp6aW5nPXRydWUgKFBPU0lUSVZFIENSSVRFUklBKVxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZSB3aGVuZXZlciB0aGUgcGF0Y2ggdG91Y2hlcyByZWFjaGFibGUgZXhlY3V0YWJsZSBjb2RlLCBpbmNsdWRpbmc6XG4tIENvcmUgU3Vic3lzdGVtczpcbiAgKiBBbnkgbG9naWMgbW9kaWZpY2F0aW9ucyBpbiBtZW1vcnkgbWFuYWdlbWVudCAobW0vKSwgc3luY2hyb25pemF0aW9uL2xvY2tpbmcgKGtlcm5lbC9sb2NraW5nLyksXG4gICAgQlBGLCBzY2hlZHVsZXIsIGNvcmUgbmV0d29ya2luZywgVkZTLCBvciBzeXNjYWxsIGhhbmRsaW5nLlxuLSBSZWZhY3RvcmluZ3MgYW5kIENvZGUgQ2xlYW51cHM6XG4gICogQW55IHJlc3RydWN0dXJpbmcgb2YgcmVhY2hhYmxlIGRhdGEgc3RydWN0dXJlcywgaGVscGVyIGFic3RyYWN0aW9ucywgb3IgYWxnb3JpdGhtIGZsb3dzLlxuLSBSdW50aW1lIEFzc2VydGlvbnMgYW5kIERlZmVuc2l2ZSBDaGVja3M6XG4gICogQW55IGludHJvZHVjdGlvbiBvciBhbHRlcmF0aW9uIG9mIGFzc2VydGlvbnMgKFdBUk5fT04qLCBWTV9XQVJOX09OKiwgQlVHX09OKiwgZXRjLikgaW4gcmVhY2hhYmxlIHBhdGhzLlxuLSBSZWFjaGFibGUgRHJpdmVycyBhbmQgUHJvdG9jb2xzOlxuICAqIERyaXZlcnMgYWNjZXNzaWJsZSB2aWEgdmlydHVhbCBidXNlcyAodmlydGlvLCBVU0IgZ2FkZ2V0LCBsb29wYmFjaywgbmV0bGluaywgYmluZGVyLCBzb2NrZXRzLCBldGMuKS5cblxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbjQuIEVYVFJBQ1RJTkcgRm9jdXNTeW1ib2xzIChQUkVWRU5USU5HIERJTFVUSU9OKVxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbldoZW4gV29ydGhGdXp6aW5nPXRydWUsIHlvdSBtdXN0IGV4dHJhY3Qgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyBpbnRvIEZvY3VzU3ltYm9scyB0byBndWlkZSB0aGUgZnV6emVyOlxuXG4tIEFWT0lEIFVCSVFVSVRPVVMgTElGRUNZQ0xFIEhPVC1QQVRIUzpcbiAgRG8gTk9UIGxpc3QgZ2VuZXJpYywgdWJpcXVpdG91cyBmdW5jdGlvbnMgY2FsbGVkIGJ5IGFsbW9zdCBldmVyeSBwcm9ncmFtIGluIHRoZSBjb3JwdXNcbiAgKGluY2x1ZGluZywgYnV0IG5vdCBsaW1pdGVkIHRvOiBnZW5lcmFsIG1lbW9yeSBhbGxvY2F0b3JzIGFuZCBkZWFsbG9jYXRvcnMsIHBhZ2UgZmF1bHRcbiAgYW5kIHRyYXAgaGFuZGxlcnMsIG9yIGNvcmUgc3luY2hyb25pemF0aW9uIHByaW1pdGl2ZXM7IHRoaXMgaXMgbm90IGFuIGV4aGF1c3RpdmUgbGlzdCkuXG4gIExpc3RpbmcgdWJpcXVpdG91cyBmdW5jdGlvbnMgY2F1c2VzIHRoZSBmdXp6ZXIgdG8gY2xhc3NpZnkgdGhvdXNhbmRzIG9mIHVucmVsYXRlZCB0ZXN0cyBhcyBcImZvY3VzZWRcIixcbiAgd2hpY2ggc2V2ZXJlbHkgZGlsdXRlcyBmdXp6aW5nIGVmZm9ydCBhd2F5IGZyb20gdGhlIGFjdHVhbCBjaGFuZ2VzLlxuXG4tIFRBUkdFVCBTUEVDSUZJQyBGRUFUVVJFIExPR0lDIEFORCBFTlRSWVBPSU5UUzpcbiAgTGlzdCBmdW5jdGlvbnMgdGhhdCBzcGVjaWZpY2FsbHkgaW1wbGVtZW50IHRoZSBsb2dpYyBiZWluZyBhZGRlZCBvciBhbHRlcmVkLCBvciBkaXJlY3QgQVBJIGVudHJ5cG9pbnRzXG4gIGZvciB0aGUgc3Vic3lzdGVtIGZlYXR1cmUgdW5kZXIgcmV2aWV3LlxuXG4tIEhBTkRMSU5HIFNUQVRJQyBJTkxJTkUgRlVOQ1RJT05TIElOIEhFQURFUlMgKC5oKTpcbiAgQ29tcGlsZXItaW5saW5lZCBzdGF0aWMgZnVuY3Rpb25zIChzdWNoIGFzIHN0YXRpYyBpbmxpbmVzIGluIG1tLyouaCBvciBpbmNsdWRlL2xpbnV4LyouaCkgbGFja1xuICBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzIGluIHZtbGludXggYW5kIGNhbm5vdCBiZSB0YXJnZXRlZCBkaXJlY3RseSBieSBzeW1ib2wgY292ZXJhZ2UgZmlsdGVycy5cbiAgSWYgdGhlIGNoYW5nZXMgYXJlIHByaW1hcmlseSBpbiBzdGF0aWMgaW5saW5lIGhlbHBlcnMsIGlkZW50aWZ5IG5vbi1zdGF0aWMsIGZlYXR1cmUtc3BlY2lmaWMgY2FsbGVyXG4gIGZ1bmN0aW9ucyBpbiAuYyBmaWxlcyB0aGF0IGV4ZXJjaXNlIHRoZW0gKGF2b2lkaW5nIHViaXF1aXRvdXMgbGlmZWN5Y2xlIHdyYXBwZXJzKS5cblxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbjUuIElERU5USUZZSU5HIEVuYWJsZUNvbmZpZ3Ncbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5JZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IGNvbXBpbGUgYW5kIHJlYWNoIHRoZSBtb2RpZmllZCBjb2RlOlxuLSBJbnNwZWN0IEtjb25maWcgZmlsZXMgYW5kICNpZmRlZiBndWFyZHM7IGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLlxuLSBDaGVjayBcImRlcGVuZHMgb25cIiBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3MgbmVlZGVkLlxuLSBTdHJpcCBhbnkgJ0NPTkZJR18nIHByZWZpeCAoZS5nLiwgcmV0dXJuIFwiTkVUX0lQVjRcIiBpbnN0ZWFkIG9mIFwiQ09ORklHX05FVF9JUFY0XCIpLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiVGFyZ2V0IGFyY2hpdGVjdHVyZTogYW1kNjRcblxuRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgYjMwMTJjZjlhMmVlNjUxNzU3YzQ2ZTdmOTMzNGU5NTMwM2I3MTQ4NFxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBTdW4gU2VwIDYgMDg6MDg6NTYgMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuY1xuaW5kZXggODlkOGIzMTc4Nzg0Ni4uODk5MzBlYWYxZmQzMSAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmNcbisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmNcbkBAIC0xODg0LDggKzE4ODQsMTcgQEAgc3RhdGljIHZvaWQgYXRoX2RyYWluX3R4cV9saXN0KHN0cnVjdCBhdGhfc29mdGMgKnNjLCBzdHJ1Y3QgYXRoX3R4cSAqdHhxLFxuIFx0XHRiZiA9IGxpc3RfZmlyc3RfZW50cnkobGlzdCwgc3RydWN0IGF0aF9idWYsIGxpc3QpO1xuIFxuIFx0XHRpZiAoYmYtXHUwMDNlYmZfc3RhdGUuc3RhbGUpIHtcbi1cdFx0XHRsaXN0X2RlbChcdTAwMjZiZi1cdTAwM2VsaXN0KTtcbitcdFx0XHRzdHJ1Y3Qgc2tfYnVmZiAqc2tiID0gYmYtXHUwMDNlYmZfbXBkdTtcbiBcbitcdFx0XHRsaXN0X2RlbChcdTAwMjZiZi1cdTAwM2VsaXN0KTtcbitcdFx0XHRpZiAoYmYtXHUwMDNlYmZfYnVmX2FkZHIpIHtcbitcdFx0XHRcdGRtYV91bm1hcF9zaW5nbGUoc2MtXHUwMDNlZGV2LCBiZi1cdTAwM2ViZl9idWZfYWRkcixcbitcdFx0XHRcdFx0XHQgc2tiID8gc2tiLVx1MDAzZWxlbiA6IDAsXG4rXHRcdFx0XHRcdFx0IERNQV9UT19ERVZJQ0UpO1xuK1x0XHRcdFx0YmYtXHUwMDNlYmZfYnVmX2FkZHIgPSAwO1xuK1x0XHRcdH1cbitcdFx0XHRiZi1cdTAwM2ViZl9tcGR1ID0gTlVMTDtcbitcdFx0XHRkZXZfa2ZyZWVfc2tiX2FueShza2IpO1xuIFx0XHRcdGF0aF90eF9yZXR1cm5fYnVmZmVyKHNjLCBiZik7XG4gXHRcdFx0Y29udGludWU7XG4gXHRcdH1cbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTA2VDA4OjA4OjU3Ljc1Njk0MTM4NloiLCJTZXEiOjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy43LWZsYXNoIiwiRHVyYXRpb24iOjExNjU5Nzk2ODQwLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyBhIEtlcm5lbCBQYXRjaCBpbiBgYXRoOWtgKipcblxuT2theSwgbGV0J3MgZGl2ZSBpbnRvIHRoaXMuIFRoZSB0YXNrIGlzIHRvIHVuZGVyc3RhbmQgdGhpcyBwYXRjaCwgYW5kIG15IGluaXRpYWwgdGhvdWdodCBpcyB0byBicmVhayBpdCBkb3duLiBSaWdodCBub3csIEknbSBmb2N1c2luZyBvbiB0aGUgY2hhbmdlcyBtYWRlIHRvIGBkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jYCB3aXRoaW4gdGhlIGBhdGhfZHJhaW5fdHhxX2xpc3RgIGZ1bmN0aW9uLlxuXG5JdCdzIGNsZWFyIHRoZSBwYXRjaCBhZGRyZXNzZXMgYSBzY2VuYXJpbyB3aGVyZSBhIGJ1ZmZlciAoYGJmYCkgaXMgbWFya2VkIGFzIFwic3RhbGVcIi4gTG9va2luZyBhdCB0aGUgY29kZSwgaXQgbG9va3MgbGlrZSBpdCBjbGVhbnMgdXAgdGhlIHJlc291cmNlcyBhc3NvY2lhdGVkIHdpdGggdGhlIGJ1ZmZlci4gU3BlY2lmaWNhbGx5LCBpdCByZW1vdmVzIHRoZSBidWZmZXIgZnJvbSBhIGxpc3QsIHJldHJpZXZlcyB0aGUgYXNzb2NpYXRlZCBgc2tfYnVmZmAsIHVubWFwcyB0aGUgRE1BIHJlZ2lvbiwgbnVsbGlmaWVzIGJ1ZmZlciBhZGRyZXNzZXMgYW5kIHRoZSBza2IsIGFuZCB0aGVuIGRlYWxsb2NhdGVzIHRoZSBgc2tfYnVmZmAgdXNpbmcgYGRldl9rZnJlZV9za2JfYW55YC5cblxuVGhlIGNydWNpYWwgYml0LCBhbmQgdGhlIHJlYXNvbiBJIGFtIGZvY3VzaW5nIG9uIHRoaXMgZnVuY3Rpb24sIGlzIHRoZSBETUEgdW5tYXAgY2FsbC4gSSB3YW50IHRvIG1ha2Ugc3VyZSB0aGlzIGlzIGRvbmUgY29ycmVjdGx5IGFuZCBzYWZlbHkuIFRoZSBvcmlnaW5hbCBjb2RlIGhhcyBiZWVuIHJlcGxhY2VkIHdpdGggb25lIHRoYXQgbG9va3MgbGlrZSBpdCB3aWxsIGZyZWUgdGhlIFNLQi4gSSdsbCBuZWVkIHRvIGRvdWJsZSBjaGVjayB0aGUgY29ycmVjdG5lc3Mgb2YgdGhlIERNQSB1bm1hcCBhbmQgdGhlIGBza2ItXHUwMDNlbGVuYCB1c2FnZSwgZXNwZWNpYWxseSB0aGUgY29uZGl0aW9uYWwgYHNrYiA/IHNrYi1cdTAwM2VsZW4gOiAwYC4gVGhlIG9sZCBjb2RlIGhhZCBhIGxpc3QgZGVsZXRpb24sIHNvIHByZXN1bWFibHkgdGhlcmUgd2FzIGFuIHVuZGVybHlpbmcgaXNzdWUuXG5cblRvIGdldCBhIGJldHRlciBoYW5kbGUgb24gdGhlIGNvbnRleHQsIEkgbmVlZCB0byByZW1pbmQgbXlzZWxmIGV4YWN0bHkgd2hhdCBgYXRoOWtgIGlzLiBJcyB0aGlzIGEgVVNCIGRyaXZlcj8gUENJPyBTb21lIG90aGVyIGludGVyZmFjZT8gSSdsbCBwcm9iYWJseSBzY2FuIHRoZSBgS2NvbmZpZ2AgZmlsZXMgYW5kIHRoZSBkaXJlY3RvcnkgY29udGVudHMgdG8gZGV0ZXJtaW5lIHRoZSBoYXJkd2FyZSBhcmNoaXRlY3R1cmUuIENvbnRleHQgaXMga2V5LCBhZnRlciBhbGwuIEtub3dpbmcgdGhlIGhhcmR3YXJlIHdpbGwgZ3VpZGUgaG93IHRvIHRoaW5rIGFib3V0IHRoZSBETUEgdW5tYXAuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjMwMzIsIk91dHB1dFRva2VucyI6MzQsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyOTYsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOS0wNlQwODowOTowOS40MTY3NDA5NTZaIiwiU2VxIjo0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6OTQyMjUwMTQsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiQVRIOUtcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIlxcbkZ1bGwgb3V0cHV0IGlzIHRvbyBsb25nLCBzaG93aW5nIDUwMCBvdXQgb2YgNTA3MiBsaW5lcy5cXG5Vc2UgbW9yZSBwcmVjaXNlIGV4cHJlc3Npb24gaWYgcG9zc2libGUuXFxuXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWctMS0jIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBJU0NcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZzoyOmNvbmZpZyBBVEg5S19IV1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnLTMtXFx0dHJpc3RhdGVcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZzo0OmNvbmZpZyBBVEg5S19DT01NT05cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZy01LVxcdHRyaXN0YXRlXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWctNi1cXHRzZWxlY3QgQVRIX0NPTU1PTlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnOjc6Y29uZmlnIEFUSDlLX0NPTU1PTl9ERUJVR1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnLTgtXFx0Ym9vbFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnOjk6Y29uZmlnIEFUSDlLX0RGU19ERUJVR0ZTXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWctMTAtXFx0ZGVmX2Jvb2wgeVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnOjExOlxcdGRlcGVuZHMgb24gQVRIOUtfREVCVUdGUyBcXHUwMDI2XFx1MDAyNiBBVEg5S19ERlNfQ0VSVElGSUVEXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWctMTItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWc6MTM6Y29uZmlnIEFUSDlLX0JUQ09FWF9TVVBQT1JUXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWctMTQtXFx0Ym9vbCBcXFwiQXRoZXJvcyBibHVldG9vdGggY29leGlzdGVuY2Ugc3VwcG9ydFxcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZzoxNTpcXHRkZXBlbmRzIG9uIChBVEg5SyB8fCBBVEg5S19IVEMpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWctMTYtXFx0ZGVmYXVsdCB5XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZy0yMC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZzoyMTpjb25maWcgQVRIOUtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZy0yMi1cXHR0cmlzdGF0ZSBcXFwiQXRoZXJvcyA4MDIuMTFuIHdpcmVsZXNzIGNhcmRzIHN1cHBvcnRcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZy0yNC1cXHRzZWxlY3QgTUFDODAyMTFfTEVEUyBpZiBMRURTX0NMQVNTPXkgfHwgTEVEU19DTEFTUz1NQUM4MDIxMVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnOjI1OlxcdHNlbGVjdCBBVEg5S19IV1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnOjI2OlxcdHNlbGVjdCBBVEg5S19DT01NT05cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZy0yNy1cXHRoZWxwXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZy0zOC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZzozOTpjb25maWcgQVRIOUtfUENJXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWctNDAtXFx0Ym9vbCBcXFwiQXRoZXJvcyBhdGg5ayBQQ0kvUENJZSBidXMgc3VwcG9ydFxcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZy00MS1cXHRkZWZhdWx0IHlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZzo0MjpcXHRkZXBlbmRzIG9uIEFUSDlLIFxcdTAwMjZcXHUwMDI2IFBDSVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnLTQzLVxcdGhlbHBcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnLTQ3LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnOjQ4OmNvbmZpZyBBVEg5S19BSEJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZy00OS1cXHRib29sIFxcXCJBdGhlcm9zIGF0aDlrIEFIQiBidXMgc3VwcG9ydFxcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZzo1MDpcXHRkZXBlbmRzIG9uIEFUSDlLIFxcdTAwMjZcXHUwMDI2IE9GXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWctNTEtXFx0ZGVmYXVsdCBuXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZy01Ny1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZzo1ODpjb25maWcgQVRIOUtfREVCVUdGU1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnLTU5LVxcdGJvb2wgXFxcIkF0aGVyb3MgYXRoOWsgZGVidWdnaW5nXFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnOjYwOlxcdGRlcGVuZHMgb24gQVRIOUsgXFx1MDAyNlxcdTAwMjYgREVCVUdfRlMgXFx1MDAyNlxcdTAwMjYgTUFDODAyMTFfREVCVUdGU1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnOjYxOlxcdHNlbGVjdCBBVEg5S19DT01NT05fREVCVUdcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZy02Mi1cXHRoZWxwXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZy02OC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZzo2OTpjb25maWcgQVRIOUtfU1RBVElPTl9TVEFUSVNUSUNTXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWctNzAtXFx0Ym9vbCBcXFwiRGV0YWlsZWQgc3RhdGlvbiBzdGF0aXN0aWNzXFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnOjcxOlxcdGRlcGVuZHMgb24gQVRIOUsgXFx1MDAyNlxcdTAwMjYgQVRIOUtfREVCVUdGUyBcXHUwMDI2XFx1MDAyNiBERUJVR19GU1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnLTcyLVxcdGRlZmF1bHQgblxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWctNzUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWc6NzY6Y29uZmlnIEFUSDlLX1RYOTlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZy03Ny1cXHRib29sIFxcXCJBdGhlcm9zIGF0aDlrIFRYOTkgdGVzdGluZyBzdXBwb3J0XFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnOjc4OlxcdGRlcGVuZHMgb24gQVRIOUtfREVCVUdGUyBcXHUwMDI2XFx1MDAyNiBDRkc4MDIxMV9DRVJUSUZJQ0FUSU9OX09OVVNcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZy03OS1cXHRkZWZhdWx0IG5cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnLTk1LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnOjk2OmNvbmZpZyBBVEg5S19ERlNfQ0VSVElGSUVEXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWctOTctXFx0Ym9vbCBcXFwiQXRoZXJvcyBERlMgc3VwcG9ydCBmb3IgY2VydGlmaWVkIHBsYXRmb3Jtc1xcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZzo5ODpcXHRkZXBlbmRzIG9uIEFUSDlLIFxcdTAwMjZcXHUwMDI2IENGRzgwMjExX0NFUlRJRklDQVRJT05fT05VU1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnLTk5LVxcdGRlZmF1bHQgblxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWctMTE0LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnOjExNTpjb25maWcgQVRIOUtfRFlOQUNLXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWctMTE2LVxcdGJvb2wgXFxcIkF0aGVyb3MgYXRoOWsgQUNLIHRpbWVvdXQgZXN0aW1hdGlvbiBhbGdvcml0aG1cXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWc6MTE3OlxcdGRlcGVuZHMgb24gQVRIOUtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZy0xMTgtXFx0ZGVmYXVsdCBuXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZy0xMjMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWc6MTI0OmNvbmZpZyBBVEg5S19XT1dcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZy0xMjUtXFx0Ym9vbCBcXFwiV2FrZSBvbiBXaXJlbGVzcyBMQU4gc3VwcG9ydCAoRVhQRVJJTUVOVEFMKVxcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZzoxMjY6XFx0ZGVwZW5kcyBvbiBBVEg5SyBcXHUwMDI2XFx1MDAyNiBQTVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnLTEyNy1cXHRkZWZhdWx0IG5cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnLTEzMS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZzoxMzI6Y29uZmlnIEFUSDlLX1JGS0lMTFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnLTEzMy1cXHRib29sIFxcXCJBdGhlcm9zIGF0aDlrIHJma2lsbCBzdXBwb3J0XFxcIiBpZiBFWFBFUlRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZzoxMzQ6XFx0ZGVwZW5kcyBvbiBBVEg5S1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnOjEzNTpcXHRkZXBlbmRzIG9uIFJGS0lMTD15IHx8IFJGS0lMTD1BVEg5S1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnLTEzNi1cXHRkZWZhdWx0IHlcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnLTE0MS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZzoxNDI6Y29uZmlnIEFUSDlLX0NIQU5ORUxfQ09OVEVYVFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnLTE0My1cXHRib29sIFxcXCJDaGFubmVsIENvbnRleHQgc3VwcG9ydFxcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZzoxNDQ6XFx0ZGVwZW5kcyBvbiBBVEg5S1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnLTE0NS1cXHRkZWZhdWx0IG5cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnLTE1MC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZzoxNTE6Y29uZmlnIEFUSDlLX1BDT0VNXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWctMTUyLVxcdGJvb2wgXFxcIkF0aGVyb3MgYXRoOWsgc3VwcG9ydCBmb3IgUEMgT0VNIGNhcmRzXFxcIiBpZiBFWFBFUlRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZzoxNTM6XFx0ZGVwZW5kcyBvbiBBVEg5S1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnLTE1NC1cXHRkZWZhdWx0IHlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZy0xNTUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWc6MTU2OmNvbmZpZyBBVEg5S19QQ0lfTk9fRUVQUk9NXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWctMTU3LVxcdHRyaXN0YXRlIFxcXCJBdGhlcm9zIGF0aDlrIHBjaSBsb2FkZXIgZm9yIEVFUFJPTS1sZXNzIGNoaXBzXFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnOjE1ODpcXHRkZXBlbmRzIG9uIEFUSDlLX1BDSVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnLTE1OS1cXHRkZWZhdWx0IG5cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnLTE3MS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZzoxNzI6Y29uZmlnIEFUSDlLX0hUQ1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnLTE3My1cXHR0cmlzdGF0ZSBcXFwiQXRoZXJvcyBIVEMgYmFzZWQgd2lyZWxlc3MgY2FyZHMgc3VwcG9ydFxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnLTE3NS1cXHRzZWxlY3QgTUFDODAyMTFfTEVEUyBpZiBMRURTX0NMQVNTPXkgfHwgTEVEU19DTEFTUz1NQUM4MDIxMVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnOjE3NjpcXHRzZWxlY3QgQVRIOUtfSFdcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZzoxNzc6XFx0c2VsZWN0IEFUSDlLX0NPTU1PTlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnLTE3OC1cXHRoZWxwXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZy0xODYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWc6MTg3OmNvbmZpZyBBVEg5S19IVENfREVCVUdGU1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnLTE4OC1cXHRib29sIFxcXCJBdGhlcm9zIGF0aDlrX2h0YyBkZWJ1Z2dpbmdcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWc6MTg5OlxcdGRlcGVuZHMgb24gQVRIOUtfSFRDIFxcdTAwMjZcXHUwMDI2IERFQlVHX0ZTXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWc6MTkwOlxcdHNlbGVjdCBBVEg5S19DT01NT05fREVCVUdcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZy0xOTEtXFx0aGVscFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWctMTk0LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnOjE5NTpjb25maWcgQVRIOUtfSFdSTkdcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZy0xOTYtXFx0Ym9vbCBcXFwiUmFuZG9tIG51bWJlciBnZW5lcmF0b3Igc3VwcG9ydFxcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZzoxOTc6XFx0ZGVwZW5kcyBvbiBBVEg5SyBcXHUwMDI2XFx1MDAyNiAoSFdfUkFORE9NID0geSB8fCBIV19SQU5ET00gPSBBVEg5SylcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZy0xOTgtXFx0ZGVmYXVsdCBuXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZy0yMDUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWc6MjA2OmNvbmZpZyBBVEg5S19DT01NT05fU1BFQ1RSQUxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZy0yMDctXFx0Ym9vbCBcXFwiQXRoZXJvcyBhdGg5ay9hdGg5a19odGMgc3BlY3RyYWwgc2NhbiBzdXBwb3J0XFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnOjIwODpcXHRkZXBlbmRzIG9uIEFUSDlLX0RFQlVHRlMgfHwgQVRIOUtfSFRDX0RFQlVHRlNcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZy0yMDktXFx0c2VsZWN0IFJFTEFZXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvTWFrZWZpbGU9Mj1hdGg5ay15ICs9XFx0YmVhY29uLm8gXFxcXFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL01ha2VmaWxlLTExLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9NYWtlZmlsZToxMjphdGg5ay0kKENPTkZJR19BVEg5S19CVENPRVhfU1VQUE9SVCkgKz0gbWNpLm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvTWFrZWZpbGU6MTM6YXRoOWstJChDT05GSUdfQVRIOUtfUENJKSArPSBwY2kub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9NYWtlZmlsZToxNDphdGg5ay0kKENPTkZJR19BVEg5S19BSEIpICs9IGFoYi5vXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL01ha2VmaWxlOjE1OmF0aDlrLSQoQ09ORklHX0FUSDlLX0RGU19ERUJVR0ZTKSArPSBkZnNfZGVidWcub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9NYWtlZmlsZToxNjphdGg5ay0kKENPTkZJR19BVEg5S19ERlNfQ0VSVElGSUVEKSArPSBkZnMub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9NYWtlZmlsZToxNzphdGg5ay0kKENPTkZJR19BVEg5S19UWDk5KSArPSB0eDk5Lm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvTWFrZWZpbGU6MTg6YXRoOWstJChDT05GSUdfQVRIOUtfV09XKSArPSB3b3cub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9NYWtlZmlsZToxOTphdGg5ay0kKENPTkZJR19BVEg5S19IV1JORykgKz0gcm5nLm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvTWFrZWZpbGUtMjAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL01ha2VmaWxlOjIxOmF0aDlrLSQoQ09ORklHX0FUSDlLX0RFQlVHRlMpICs9IGRlYnVnLm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvTWFrZWZpbGUtMjItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL01ha2VmaWxlOjIzOmF0aDlrLSQoQ09ORklHX0FUSDlLX1NUQVRJT05fU1RBVElTVElDUykgKz0gZGVidWdfc3RhLm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvTWFrZWZpbGUtMjQtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL01ha2VmaWxlOjI1Om9iai0kKENPTkZJR19BVEg5SykgKz0gYXRoOWsub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9NYWtlZmlsZS0yNi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvTWFrZWZpbGU9Mjc9YXRoOWtfaHcteTo9XFx0XFxcXFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL01ha2VmaWxlLTQ3LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9NYWtlZmlsZTo0ODphdGg5a19ody0kKENPTkZJR19BVEg5S19XT1cpICs9IGFyOTAwM193b3cub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9NYWtlZmlsZS00OS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvTWFrZWZpbGU6NTA6YXRoOWtfaHctJChDT05GSUdfQVRIOUtfQlRDT0VYX1NVUFBPUlQpICs9IGJ0Y29leC5vIFxcXFxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvTWFrZWZpbGUtNTEtXFx0XFx0XFx0XFx0XFx0ICAgYXI5MDAzX21jaS5vIFxcXFxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9NYWtlZmlsZS01My1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvTWFrZWZpbGU6NTQ6YXRoOWtfaHctJChDT05GSUdfQVRIOUtfUENPRU0pICs9IGFyOTAwM19ydHQub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9NYWtlZmlsZS01NS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvTWFrZWZpbGU6NTY6YXRoOWtfaHctJChDT05GSUdfQVRIOUtfRFlOQUNLKSArPSBkeW5hY2sub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9NYWtlZmlsZS01Ny1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvTWFrZWZpbGU6NTg6b2JqLSQoQ09ORklHX0FUSDlLX0hXKSArPSBhdGg5a19ody5vXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL01ha2VmaWxlLTU5LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9NYWtlZmlsZTo2MDpvYmotJChDT05GSUdfQVRIOUtfQ09NTU9OKSArPSBhdGg5a19jb21tb24ub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9NYWtlZmlsZS02MS1hdGg5a19jb21tb24teTo9XFx0Y29tbW9uLm8gXFxcXFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL01ha2VmaWxlLTY0LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9NYWtlZmlsZTo2NTphdGg5a19jb21tb24tJChDT05GSUdfQVRIOUtfQ09NTU9OX0RFQlVHKSArPSBjb21tb24tZGVidWcub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9NYWtlZmlsZTo2NjphdGg5a19jb21tb24tJChDT05GSUdfQVRIOUtfQ09NTU9OX1NQRUNUUkFMKSArPSBjb21tb24tc3BlY3RyYWwub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9NYWtlZmlsZS02Ny1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvTWFrZWZpbGU9Njg9YXRoOWtfaHRjLXkgKz1cXHRodGNfaHN0Lm8gXFxcXFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL01ha2VmaWxlLTc2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9NYWtlZmlsZTo3NzphdGg5a19odGMtJChDT05GSUdfQVRIOUtfSFRDX0RFQlVHRlMpICs9IGh0Y19kcnZfZGVidWcub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9NYWtlZmlsZS03OC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvTWFrZWZpbGU6Nzk6b2JqLSQoQ09ORklHX0FUSDlLX0hUQykgKz0gYXRoOWtfaHRjLm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvTWFrZWZpbGUtODAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL01ha2VmaWxlOjgxOm9iai0kKENPTkZJR19BVEg5S19QQ0lfTk9fRUVQUk9NKSArPSBhdGg5a19wY2lfb3dsX2xvYWRlci5vXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmM9Mzk9c3RhdGljIGNvbnN0IHN0cnVjdCBhbmlfb2ZkbV9sZXZlbF9lbnRyeSBvZmRtX2xldmVsX3RhYmxlW10gPSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmMtNTEtfTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmM6NTI6I2RlZmluZSBBVEg5S19BTklfT0ZETV9OVU1fTEVWRUwgXFxcXFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYy01My1cXHRBUlJBWV9TSVpFKG9mZG1fbGV2ZWxfdGFibGUpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jOjU0OiNkZWZpbmUgQVRIOUtfQU5JX09GRE1fTUFYX0xFVkVMIFxcXFxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmM6NTU6XFx0KEFUSDlLX0FOSV9PRkRNX05VTV9MRVZFTC0xKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYzo1NjojZGVmaW5lIEFUSDlLX0FOSV9PRkRNX0RFRl9MRVZFTCBcXFxcXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jLTU3LVxcdDMgLyogZGVmYXVsdCBsZXZlbCAtIG1hdGNoZXMgdGhlIElOSSBzZXR0aW5ncyAqL1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jPTg1PXN0YXRpYyBjb25zdCBzdHJ1Y3QgYW5pX2Nja19sZXZlbF9lbnRyeSBjY2tfbGV2ZWxfdGFibGVbXSA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYy05Ny1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmM6OTg6I2RlZmluZSBBVEg5S19BTklfQ0NLX05VTV9MRVZFTCBcXFxcXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jLTk5LVxcdEFSUkFZX1NJWkUoY2NrX2xldmVsX3RhYmxlKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYzoxMDA6I2RlZmluZSBBVEg5S19BTklfQ0NLX01BWF9MRVZFTCBcXFxcXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jOjEwMTpcXHQoQVRIOUtfQU5JX0NDS19OVU1fTEVWRUwtMSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmM6MTAyOiNkZWZpbmUgQVRIOUtfQU5JX0NDS19NQVhfTEVWRUxfTE9XX1JTU0kgXFxcXFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYzoxMDM6XFx0KEFUSDlLX0FOSV9DQ0tfTlVNX0xFVkVMLTMpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jOjEwNDojZGVmaW5lIEFUSDlLX0FOSV9DQ0tfREVGX0xFVkVMIFxcXFxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmMtMTA1LVxcdDIgLyogZGVmYXVsdCBsZXZlbCAtIG1hdGNoZXMgdGhlIElOSSBzZXR0aW5ncyAqL1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jPTE0OT1zdGF0aWMgdm9pZCBhdGg5a19od19zZXRfb2ZkbV9uaWwoc3RydWN0IGF0aF9odyAqYWgsIHU4IGltbXVuaXR5TGV2ZWwsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmMtMTYwLVxcdFxcdGltbXVuaXR5TGV2ZWwsIEJFQUNPTl9SU1NJKGFoKSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmM6MTYxOlxcdFxcdEFUSDlLX0FOSV9SU1NJX1RIUl9MT1csXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jOjE2MjpcXHRcXHRBVEg5S19BTklfUlNTSV9USFJfSElHSCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jLTE2My1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmM6MTY0OlxcdGlmIChBUl9TUkVWXzkxMDAoYWgpIFxcdTAwMjZcXHUwMDI2IGltbXVuaXR5TGV2ZWwgXFx1MDAzYyBBVEg5S19BTklfT0ZETV9ERUZfTEVWRUwpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jOjE2NTpcXHRcXHRpbW11bml0eUxldmVsID0gQVRIOUtfQU5JX09GRE1fREVGX0xFVkVMO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYy0xNjYtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmMtMTc0LVxcdFxcdGF0aDlrX2h3X2FuaV9jb250cm9sKGFoLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYzoxNzU6XFx0XFx0XFx0XFx0ICAgICBBVEg5S19BTklfU1BVUl9JTU1VTklUWV9MRVZFTCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmMtMTc2LVxcdFxcdFxcdFxcdCAgICAgZW50cnlfb2ZkbS1cXHUwMDNlc3B1cl9pbW11bml0eV9sZXZlbCk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmMtMTgwLVxcdFxcdGF0aDlrX2h3X2FuaV9jb250cm9sKGFoLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYzoxODE6XFx0XFx0XFx0XFx0ICAgICBBVEg5S19BTklfRklSU1RFUF9MRVZFTCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmMtMTgyLVxcdFxcdFxcdFxcdCAgICAgZW50cnlfb2ZkbS1cXHUwMDNlZmlyX3N0ZXBfbGV2ZWwpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jLTE4NS1cXHRpZiAoYWgtXFx1MDAzZW9wbW9kZSA9PSBOTDgwMjExX0lGVFlQRV9TVEFUSU9OIFxcdTAwMjZcXHUwMDI2XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jOjE4NjpcXHQgICAgQkVBQ09OX1JTU0koYWgpIFxcdTAwM2M9IEFUSDlLX0FOSV9SU1NJX1RIUl9ISUdIKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYy0xODctXFx0XFx0d2Vha19zaWcgPSB0cnVlO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jLTIwMi1cXHRpZiAoYW5pU3RhdGUtXFx1MDAzZW9mZG1XZWFrU2lnRGV0ZWN0ICE9IHdlYWtfc2lnKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYzoyMDM6XFx0XFx0YXRoOWtfaHdfYW5pX2NvbnRyb2woYWgsIEFUSDlLX0FOSV9PRkRNX1dFQUtfU0lHTkFMX0RFVEVDVElPTixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmMtMjA0LVxcdFxcdFxcdFxcdCAgICAgd2Vha19zaWcpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jLTIwOC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmM6MjA5OlxcdGlmIChhbmlTdGF0ZS1cXHUwMDNlb2ZkbU5vaXNlSW1tdW5pdHlMZXZlbCBcXHUwMDNlPSBBVEg5S19BTklfT0ZETV9ERUZfTEVWRUwpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmM6MjEwOlxcdFxcdGFoLVxcdTAwM2Vjb25maWcub2ZkbV90cmlnX2hpZ2ggPSBBVEg5S19BTklfT0ZETV9UUklHX0hJR0g7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jOjIxMTpcXHRcXHRhaC1cXHUwMDNlY29uZmlnLm9mZG1fdHJpZ19sb3cgPSBBVEg5S19BTklfT0ZETV9UUklHX0xPV19BQk9WRV9JTkk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jLTIxMi1cXHR9IGVsc2Uge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYzoyMTM6XFx0XFx0YWgtXFx1MDAzZWNvbmZpZy5vZmRtX3RyaWdfaGlnaCA9IEFUSDlLX0FOSV9PRkRNX1RSSUdfSElHSF9CRUxPV19JTkk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jOjIxNDpcXHRcXHRhaC1cXHUwMDNlY29uZmlnLm9mZG1fdHJpZ19sb3cgPSBBVEg5S19BTklfT0ZETV9UUklHX0xPVztcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmMtMjE1LVxcdH1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYz0yMTg9c3RhdGljIHZvaWQgYXRoOWtfaHdfYW5pX29mZG1fZXJyX3RyaWdnZXIoc3RydWN0IGF0aF9odyAqYWgpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmMtMjIxLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYzoyMjI6XFx0aWYgKGFuaVN0YXRlLVxcdTAwM2VvZmRtTm9pc2VJbW11bml0eUxldmVsIFxcdTAwM2MgQVRIOUtfQU5JX09GRE1fTUFYX0xFVkVMKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYy0yMjMtXFx0XFx0YXRoOWtfaHdfc2V0X29mZG1fbmlsKGFoLCBhbmlTdGF0ZS1cXHUwMDNlb2ZkbU5vaXNlSW1tdW5pdHlMZXZlbCArIDEsIGZhbHNlKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYz0yMjk9c3RhdGljIHZvaWQgYXRoOWtfaHdfc2V0X2Nja19uaWwoc3RydWN0IGF0aF9odyAqYWgsIHVfaW50OF90IGltbXVuaXR5TGV2ZWwsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmMtMjM4LVxcdFxcdGFuaVN0YXRlLVxcdTAwM2VjY2tOb2lzZUltbXVuaXR5TGV2ZWwsIGltbXVuaXR5TGV2ZWwsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jOjIzOTpcXHRcXHRCRUFDT05fUlNTSShhaCksIEFUSDlLX0FOSV9SU1NJX1RIUl9MT1csXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jOjI0MDpcXHRcXHRBVEg5S19BTklfUlNTSV9USFJfSElHSCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jLTI0MS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmM6MjQyOlxcdGlmIChBUl9TUkVWXzkxMDAoYWgpIFxcdTAwMjZcXHUwMDI2IGltbXVuaXR5TGV2ZWwgXFx1MDAzYyBBVEg5S19BTklfQ0NLX0RFRl9MRVZFTClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmM6MjQzOlxcdFxcdGltbXVuaXR5TGV2ZWwgPSBBVEg5S19BTklfQ0NLX0RFRl9MRVZFTDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmMtMjQ0LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYy0yNDUtXFx0aWYgKGFoLVxcdTAwM2VvcG1vZGUgPT0gTkw4MDIxMV9JRlRZUEVfU1RBVElPTiBcXHUwMDI2XFx1MDAyNlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYzoyNDY6XFx0ICAgIEJFQUNPTl9SU1NJKGFoKSBcXHUwMDNjPSBBVEg5S19BTklfUlNTSV9USFJfTE9XIFxcdTAwMjZcXHUwMDI2XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jOjI0NzpcXHQgICAgaW1tdW5pdHlMZXZlbCBcXHUwMDNlIEFUSDlLX0FOSV9DQ0tfTUFYX0xFVkVMX0xPV19SU1NJKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYzoyNDg6XFx0XFx0aW1tdW5pdHlMZXZlbCA9IEFUSDlLX0FOSV9DQ0tfTUFYX0xFVkVMX0xPV19SU1NJO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYy0yNDktXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmMtMjU4LVxcdFxcdGF0aDlrX2h3X2FuaV9jb250cm9sKGFoLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYzoyNTk6XFx0XFx0XFx0XFx0ICAgICBBVEg5S19BTklfRklSU1RFUF9MRVZFTCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmMtMjYwLVxcdFxcdFxcdFxcdCAgICAgZW50cnlfY2NrLVxcdTAwM2VmaXJfc3RlcF9sZXZlbCk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmMtMjY4LVxcdFxcdGF0aDlrX2h3X2FuaV9jb250cm9sKGFoLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYzoyNjk6XFx0XFx0XFx0XFx0ICAgICBBVEg5S19BTklfTVJDX0NDSyxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmMtMjcwLVxcdFxcdFxcdFxcdCAgICAgZW50cnlfY2NrLVxcdTAwM2VtcmNfY2NrX29uKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYz0yNzM9c3RhdGljIHZvaWQgYXRoOWtfaHdfYW5pX2Nja19lcnJfdHJpZ2dlcihzdHJ1Y3QgYXRoX2h3ICphaClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYy0yNzYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jOjI3NzpcXHRpZiAoYW5pU3RhdGUtXFx1MDAzZWNja05vaXNlSW1tdW5pdHlMZXZlbCBcXHUwMDNjIEFUSDlLX0FOSV9DQ0tfTUFYX0xFVkVMKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYy0yNzgtXFx0XFx0YXRoOWtfaHdfc2V0X2Nja19uaWwoYWgsIGFuaVN0YXRlLVxcdTAwM2VjY2tOb2lzZUltbXVuaXR5TGV2ZWwgKyAxLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jPTMwOT12b2lkIGF0aDlrX2FuaV9yZXNldChzdHJ1Y3QgYXRoX2h3ICphaCwgYm9vbCBpc19zY2FubmluZylcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYy0zMjEtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jOjMyMjpcXHRvZmRtX25pbCA9IG1heF90KGludCwgQVRIOUtfQU5JX09GRE1fREVGX0xFVkVMLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYy0zMjMtXFx0XFx0XFx0IGFuaVN0YXRlLVxcdTAwM2VvZmRtTm9pc2VJbW11bml0eUxldmVsKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmM6MzI0OlxcdGNja19uaWwgPSBtYXhfdChpbnQsIEFUSDlLX0FOSV9DQ0tfREVGX0xFVkVMLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYy0zMjUtXFx0XFx0XFx0IGFuaVN0YXRlLVxcdTAwM2VjY2tOb2lzZUltbXVuaXR5TGV2ZWwpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jLTMzNi1cXHRcXHRpZiAoYW5pU3RhdGUtXFx1MDAzZW9mZG1Ob2lzZUltbXVuaXR5TGV2ZWwgIT1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmM6MzM3OlxcdFxcdCAgICBBVEg5S19BTklfT0ZETV9ERUZfTEVWRUwgfHxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmMtMzM4LVxcdFxcdCAgICBhbmlTdGF0ZS1cXHUwMDNlY2NrTm9pc2VJbW11bml0eUxldmVsICE9XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jOjMzOTpcXHRcXHQgICAgQVRIOUtfQU5JX0NDS19ERUZfTEVWRUwpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmMtMzQwLVxcdFxcdFxcdGF0aF9kYmcoY29tbW9uLCBBTkksXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmMtMzQ3LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYzozNDg6XFx0XFx0XFx0b2ZkbV9uaWwgPSBBVEg5S19BTklfT0ZETV9ERUZfTEVWRUw7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jOjM0OTpcXHRcXHRcXHRjY2tfbmlsID0gQVRIOUtfQU5JX0NDS19ERUZfTEVWRUw7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jLTM1MC1cXHRcXHR9XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmM9NDc3PXZvaWQgYXRoOWtfaHdfYW5pX2luaXQoc3RydWN0IGF0aF9odyAqYWgpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmMtNDg0LVxcdGlmIChBUl9TUkVWXzkzMDBfMjBfT1JfTEFURVIoYWgpKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jOjQ4NTpcXHRcXHRhaC1cXHUwMDNlY29uZmlnLm9mZG1fdHJpZ19oaWdoID0gQVRIOUtfQU5JX09GRE1fVFJJR19ISUdIO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYzo0ODY6XFx0XFx0YWgtXFx1MDAzZWNvbmZpZy5vZmRtX3RyaWdfbG93ID0gQVRIOUtfQU5JX09GRE1fVFJJR19MT1c7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jOjQ4NzpcXHRcXHRhaC1cXHUwMDNlY29uZmlnLmNja190cmlnX2hpZ2ggPSBBVEg5S19BTklfQ0NLX1RSSUdfSElHSDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmM6NDg4OlxcdFxcdGFoLVxcdTAwM2Vjb25maWcuY2NrX3RyaWdfbG93ID0gQVRIOUtfQU5JX0NDS19UUklHX0xPVztcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmMtNDg5LVxcdH0gZWxzZSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jOjQ5MDpcXHRcXHRhaC1cXHUwMDNlY29uZmlnLm9mZG1fdHJpZ19oaWdoID0gQVRIOUtfQU5JX09GRE1fVFJJR19ISUdIX09MRDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmM6NDkxOlxcdFxcdGFoLVxcdTAwM2Vjb25maWcub2ZkbV90cmlnX2xvdyA9IEFUSDlLX0FOSV9PRkRNX1RSSUdfTE9XX09MRDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmM6NDkyOlxcdFxcdGFoLVxcdTAwM2Vjb25maWcuY2NrX3RyaWdfaGlnaCA9IEFUSDlLX0FOSV9DQ0tfVFJJR19ISUdIX09MRDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmM6NDkzOlxcdFxcdGFoLVxcdTAwM2Vjb25maWcuY2NrX3RyaWdfbG93ID0gQVRIOUtfQU5JX0NDS19UUklHX0xPV19PTEQ7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jLTQ5NC1cXHR9XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jLTQ5NS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmM6NDk2OlxcdGFuaS1cXHUwMDNlc3B1ckltbXVuaXR5TGV2ZWwgPSBBVEg5S19BTklfU1BVUl9JTU1VTkVfTFZMO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYzo0OTc6XFx0YW5pLVxcdTAwM2VmaXJzdGVwTGV2ZWwgPSBBVEg5S19BTklfRklSU1RFUF9MVkw7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jLTQ5OC1cXHRhbmktXFx1MDAzZW1yY0NDSyA9IEFSX1NSRVZfOTMwMF8yMF9PUl9MQVRFUihhaCkgPyB0cnVlIDogZmFsc2U7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmMtNTAwLVxcdGFuaS1cXHUwMDNlb2ZkbVdlYWtTaWdEZXRlY3QgPSB0cnVlO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYzo1MDE6XFx0YW5pLVxcdTAwM2VjY2tOb2lzZUltbXVuaXR5TGV2ZWwgPSBBVEg5S19BTklfQ0NLX0RFRl9MRVZFTDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmM6NTAyOlxcdGFuaS1cXHUwMDNlb2ZkbU5vaXNlSW1tdW5pdHlMZXZlbCA9IEFUSDlLX0FOSV9PRkRNX0RFRl9MRVZFTDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmMtNTAzLVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jLTUwNy1cXHQgKi9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmM6NTA4OlxcdGFoLVxcdTAwM2VhbmlwZXJpb2QgPSBBVEg5S19BTklfUEVSSU9EO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYzo1MDk6XFx0YWgtXFx1MDAzZWNvbmZpZy5hbmlfcG9sbF9pbnRlcnZhbCA9IEFUSDlLX0FOSV9QT0xMSU5URVJWQUw7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jLTUxMC1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuaC0yMi0vKiB1bml0cyBhcmUgZXJyb3JzIHBlciBzZWNvbmQgKi9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmg6MjM6I2RlZmluZSBBVEg5S19BTklfT0ZETV9UUklHX0hJR0ggICAgICAgICAgIDM1MDBcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmg6MjQ6I2RlZmluZSBBVEg5S19BTklfT0ZETV9UUklHX0hJR0hfQkVMT1dfSU5JIDEwMDBcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmg6MjU6I2RlZmluZSBBVEg5S19BTklfT0ZETV9UUklHX0hJR0hfT0xEICAgICAgIDUwMFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuaC0yNi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmg6Mjc6I2RlZmluZSBBVEg5S19BTklfT0ZETV9UUklHX0xPVyAgICAgICAgICAgNDAwXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5oOjI4OiNkZWZpbmUgQVRIOUtfQU5JX09GRE1fVFJJR19MT1dfQUJPVkVfSU5JIDkwMFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuaDoyOTojZGVmaW5lIEFUSDlLX0FOSV9PRkRNX1RSSUdfTE9XX09MRCAgICAgICAyMDBcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmgtMzAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5oOjMxOiNkZWZpbmUgQVRIOUtfQU5JX0NDS19UUklHX0hJR0ggICAgICAgICAgIDYwMFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuaDozMjojZGVmaW5lIEFUSDlLX0FOSV9DQ0tfVFJJR19ISUdIX09MRCAgICAgICAyMDBcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmg6MzM6I2RlZmluZSBBVEg5S19BTklfQ0NLX1RSSUdfTE9XICAgICAgICAgICAgMzAwXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5oOjM0OiNkZWZpbmUgQVRIOUtfQU5JX0NDS19UUklHX0xPV19PTEQgICAgICAgIDEwMFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuaC0zNS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmg6MzY6I2RlZmluZSBBVEg5S19BTklfU1BVUl9JTU1VTkVfTFZMICAgICAgICAgM1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuaDozNzojZGVmaW5lIEFUSDlLX0FOSV9GSVJTVEVQX0xWTCAgICAgICAgICAgICAyXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5oLTM4LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuaDozOTojZGVmaW5lIEFUSDlLX0FOSV9SU1NJX1RIUl9ISUdIICAgICAgICAgICA0MFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuaDo0MDojZGVmaW5lIEFUSDlLX0FOSV9SU1NJX1RIUl9MT1cgICAgICAgICAgICA3XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5oLTQxLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuaDo0MjojZGVmaW5lIEFUSDlLX0FOSV9QRVJJT0QgICAgICAgICAgICAgICAgICAzMDBcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmgtNDMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5oLTQ0LS8qIGluIG1zICovXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5oOjQ1OiNkZWZpbmUgQVRIOUtfQU5JX1BPTExJTlRFUlZBTCAgICAgICAgICAgIDEwMDBcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmgtNDYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5oOjQ3OiNkZWZpbmUgQVRIOUtfU0lHX0ZJUlNURVBfU0VUVElOR19NSU4gICAgIDBcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmg6NDg6I2RlZmluZSBBVEg5S19TSUdfRklSU1RFUF9TRVRUSU5HX01BWCAgICAgMjBcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmg6NDk6I2RlZmluZSBBVEg5S19TSUdfU1BVUl9JTU1fU0VUVElOR19NSU4gICAgMFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuaDo1MDojZGVmaW5lIEFUSDlLX1NJR19TUFVSX0lNTV9TRVRUSU5HX01BWCAgICAyMlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuaC01MS1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuaD01ND1lbnVtIGF0aDlrX2FuaV9jbWQge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuaDo1NTpcXHRBVEg5S19BTklfT0ZETV9XRUFLX1NJR05BTF9ERVRFQ1RJT04gPSAweDEsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5oOjU2OlxcdEFUSDlLX0FOSV9GSVJTVEVQX0xFVkVMID0gMHgyLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuaDo1NzpcXHRBVEg5S19BTklfU1BVUl9JTU1VTklUWV9MRVZFTCA9IDB4NCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmg6NTg6XFx0QVRIOUtfQU5JX01SQ19DQ0sgPSAweDgsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5oOjU5OlxcdEFUSDlLX0FOSV9BTEwgPSAweGZmZlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuaC02MC19O1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FyNTAwOF9waHkuYz05NTM9c3RhdGljIGJvb2wgYXI1MDA4X2h3X2FuaV9jb250cm9sX25ldyhzdHJ1Y3QgYXRoX2h3ICphaCxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hcjUwMDhfcGh5LmMtOTYyLVxcdHN3aXRjaCAoY21kIFxcdTAwMjYgYWgtXFx1MDAzZWFuaV9mdW5jdGlvbikge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hcjUwMDhfcGh5LmM6OTYzOlxcdGNhc2UgQVRIOUtfQU5JX09GRE1fV0VBS19TSUdOQUxfREVURUNUSU9OOntcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYXI1MDA4X3BoeS5jLTk2NC1cXHRcXHQvKlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FyNTAwOF9waHkuYy0xMDQzLVxcdH1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYXI1MDA4X3BoeS5jOjEwNDQ6XFx0Y2FzZSBBVEg5S19BTklfRklSU1RFUF9MRVZFTDp7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FyNTAwOF9waHkuYy0xMDQ1LVxcdFxcdHUzMiBsZXZlbCA9IHBhcmFtO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FyNTAwOF9waHkuYy0xMDU4LVxcdFxcdFxcdFxcdGxldmVsLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hcjUwMDhfcGh5LmM6MTA1OTpcXHRcXHRcXHRcXHRBVEg5S19BTklfRklSU1RFUF9MVkwsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FyNTAwOF9waHkuYy0xMDYwLVxcdFxcdFxcdFxcdHZhbHVlLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FyNTAwOF9waHkuYy0xMDY2LVxcdFxcdFxcdFxcdGxldmVsLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hcjUwMDhfcGh5LmM6MTA2NzpcXHRcXHRcXHRcXHRBVEg5S19BTklfRklSU1RFUF9MVkwsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FyNTAwOF9waHkuYy0xMDY4LVxcdFxcdFxcdFxcdHZhbHVlLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FyNTAwOF9waHkuYy0xMDc3LVxcdH1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYXI1MDA4X3BoeS5jOjEwNzg6XFx0Y2FzZSBBVEg5S19BTklfU1BVUl9JTU1VTklUWV9MRVZFTDp7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FyNTAwOF9waHkuYy0xMDc5LVxcdFxcdHUzMiBsZXZlbCA9IHBhcmFtO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FyNTAwOF9waHkuYy0xMDkzLVxcdFxcdFxcdFxcdGxldmVsLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hcjUwMDhfcGh5LmM6MTA5NDpcXHRcXHRcXHRcXHRBVEg5S19BTklfU1BVUl9JTU1VTkVfTFZMLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hcjUwMDhfcGh5LmMtMTA5NS1cXHRcXHRcXHRcXHR2YWx1ZSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hcjUwMDhfcGh5LmMtMTEwMS1cXHRcXHRcXHRcXHRsZXZlbCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYXI1MDA4X3BoeS5jOjExMDI6XFx0XFx0XFx0XFx0QVRIOUtfQU5JX1NQVVJfSU1NVU5FX0xWTCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYXI1MDA4X3BoeS5jLTExMDMtXFx0XFx0XFx0XFx0dmFsdWUsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYXI1MDA4X3BoeS5jLTExMTItXFx0fVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hcjUwMDhfcGh5LmM6MTExMzpcXHRjYXNlIEFUSDlLX0FOSV9NUkNfQ0NLOlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hcjUwMDhfcGh5LmMtMTExNC1cXHRcXHQvKlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FyNTAwOF9waHkuYz0xMTY5PXN0YXRpYyB2b2lkIGFyNTAwOF9od19hbmlfY2FjaGVfaW5pX3JlZ3Moc3RydWN0IGF0aF9odyAqYWgpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYXI1MDA4X3BoeS5jLTEyMTMtXFx0LyogdGhlc2UgbGV2ZWxzIGp1c3QgZ290IHJlc2V0IHRvIGRlZmF1bHRzIGJ5IHRoZSBJTkkgKi9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYXI1MDA4X3BoeS5jOjEyMTQ6XFx0YW5pU3RhdGUtXFx1MDAzZXNwdXJJbW11bml0eUxldmVsID0gQVRIOUtfQU5JX1NQVVJfSU1NVU5FX0xWTDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYXI1MDA4X3BoeS5jOjEyMTU6XFx0YW5pU3RhdGUtXFx1MDAzZWZpcnN0ZXBMZXZlbCA9IEFUSDlLX0FOSV9GSVJTVEVQX0xWTDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYXI1MDA4X3BoeS5jLTEyMTYtXFx0YW5pU3RhdGUtXFx1MDAzZW9mZG1XZWFrU2lnRGV0ZWN0ID0gdHJ1ZTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hcjkwMDJfbWFjLmM9MzI9c3RhdGljIGJvb2wgYXI5MDAyX2h3X2dldF9pc3Ioc3RydWN0IGF0aF9odyAqYWgsIGVudW0gYXRoOWtfaW50ICptYXNrZWQsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYXI5MDAyX21hYy5jLTY2LVxcdFxcdFxcdGlmIChpc3IyIFxcdTAwMjYgQVJfSVNSX1MyX1RJTSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYXI5MDAyX21hYy5jOjY3OlxcdFxcdFxcdFxcdG1hc2syIHw9IEFUSDlLX0lOVF9USU07XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FyOTAwMl9tYWMuYy02OC1cXHRcXHRcXHRpZiAoaXNyMiBcXHUwMDI2IEFSX0lTUl9TMl9EVElNKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hcjkwMDJfbWFjLmM6Njk6XFx0XFx0XFx0XFx0bWFzazIgfD0gQVRIOUtfSU5UX0RUSU07XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FyOTAwMl9tYWMuYy03MC1cXHRcXHRcXHRpZiAoaXNyMiBcXHUwMDI2IEFSX0lTUl9TMl9EVElNU1lOQylcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYXI5MDAyX21hYy5jOjcxOlxcdFxcdFxcdFxcdG1hc2syIHw9IEFUSDlLX0lOVF9EVElNU1lOQztcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYXI5MDAyX21hYy5jLTcyLVxcdFxcdFxcdGlmIChpc3IyIFxcdTAwMjYgKEFSX0lTUl9TMl9DQUJFTkQpKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hcjkwMDJfbWFjLmM6NzM6XFx0XFx0XFx0XFx0bWFzazIgfD0gQVRIOUtfSU5UX0NBQkVORDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYXI5MDAyX21hYy5jLTc0LVxcdFxcdFxcdGlmIChpc3IyIFxcdTAwMjYgQVJfSVNSX1MyX0dUVClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYXI5MDAyX21hYy5jOjc1OlxcdFxcdFxcdFxcdG1hc2syIHw9IEFUSDlLX0lOVF9HVFQ7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FyOTAwMl9tYWMuYy03Ni1cXHRcXHRcXHRpZiAoaXNyMiBcXHUwMDI2IEFSX0lTUl9TMl9DU1QpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FyOTAwMl9tYWMuYzo3NzpcXHRcXHRcXHRcXHRtYXNrMiB8PSBBVEg5S19JTlRfQ1NUO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hcjkwMDJfbWFjLmMtNzgtXFx0XFx0XFx0aWYgKGlzcjIgXFx1MDAyNiBBUl9JU1JfUzJfVFNGT09SKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hcjkwMDJfbWFjLmM6Nzk6XFx0XFx0XFx0XFx0bWFzazIgfD0gQVRIOUtfSU5UX1RTRk9PUjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYXI5MDAyX21hYy5jLTgwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hcjkwMDJfbWFjLmM6ODE6XFx0XFx0XFx0aWYgKCEocENhcC1cXHUwMDNlaHdfY2FwcyBcXHUwMDI2IEFUSDlLX0hXX0NBUF9SQUNfU1VQUE9SVEVEKSkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hcjkwMDJfbWFjLmMtODItXFx0XFx0XFx0XFx0UkVHX1dSSVRFKGFoLCBBUl9JU1JfUzIsIGlzcjIpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FyOTAwMl9tYWMuYy04Ni1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYXI5MDAyX21hYy5jOjg3OlxcdFxcdGlmIChwQ2FwLVxcdTAwM2Vod19jYXBzIFxcdTAwMjYgQVRIOUtfSFdfQ0FQX1JBQ19TVVBQT1JURUQpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FyOTAwMl9tYWMuYy04OC1cXHRcXHRcXHRpc3IgPSBSRUdfUkVBRChhaCwgQVJfSVNSX1JBQyk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYXI5MDAyX21hYy5jLTk0LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hcjkwMDJfbWFjLmM6OTU6XFx0XFx0Km1hc2tlZCA9IGlzciBcXHUwMDI2IEFUSDlLX0lOVF9DT01NT047XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FyOTAwMl9tYWMuYy05Ni1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hcjkwMDJfbWFjLmMtOTgtXFx0XFx0XFx0ICAgQVJfSVNSX1JYT0sgfCBBUl9JU1JfUlhFUlIpKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hcjkwMDJfbWFjLmM6OTk6XFx0XFx0XFx0Km1hc2tlZCB8PSBBVEg5S19JTlRfUlg7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FyOTAwMl9tYWMuYy0xMDAtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYXI5MDAyX21hYy5jLTEwNS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYXI5MDAyX21hYy5jOjEwNjpcXHRcXHRcXHQqbWFza2VkIHw9IEFUSDlLX0lOVF9UWDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYXI5MDAyX21hYy5jLTEwNy1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYXI5MDAyX21hYy5jOjEwODpcXHRcXHRcXHRpZiAocENhcC1cXHUwMDNlaHdfY2FwcyBcXHUwMDI2IEFUSDlLX0hXX0NBUF9SQUNfU1VQUE9SVEVEKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FyOTAwMl9tYWMuYy0xMDktXFx0XFx0XFx0XFx0czBfcyA9IFJFR19SRUFEKGFoLCBBUl9JU1JfUzBfUyk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYXI5MDAyX21hYy5jLTEzOS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYXI5MDAyX21hYy5jOjE0MDpcXHRcXHRpZiAocENhcC1cXHUwMDNlaHdfY2FwcyBcXHUwMDI2IEFUSDlLX0hXX0NBUF9SQUNfU1VQUE9SVEVEKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FyOTAwMl9tYWMuYy0xNDEtXFx0XFx0XFx0czVfcyA9IFJFR19SRUFEKGFoLCBBUl9JU1JfUzVfUyhhaCkpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FyOTAwMl9tYWMuYy0xNTItXFx0XFx0aWYgKGFoLVxcdTAwM2VpbnRyX2dlbl90aW1lcl90cmlnZ2VyKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hcjkwMDJfbWFjLmM6MTUzOlxcdFxcdFxcdCptYXNrZWQgfD0gQVRIOUtfSU5UX0dFTlRJTUVSO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hcjkwMDJfbWFjLmMtMTU0LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hcjkwMDJfbWFjLmMtMTU1LVxcdFxcdGlmICgoczVfcyBcXHUwMDI2IEFSX0lTUl9TNV9USU1fVElNRVIpIFxcdTAwMjZcXHUwMDI2XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FyOTAwMl9tYWMuYzoxNTY6XFx0XFx0ICAgICEocENhcC1cXHUwMDNlaHdfY2FwcyBcXHUwMDI2IEFUSDlLX0hXX0NBUF9BVVRPU0xFRVApKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hcjkwMDJfbWFjLmM6MTU3OlxcdFxcdFxcdCptYXNrZWQgfD0gQVRIOUtfSU5UX1RJTV9USU1FUjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYXI5MDAyX21hYy5jLTE1OC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYXI5MDAyX21hYy5jOjE1OTpcXHRcXHRpZiAoIShwQ2FwLVxcdTAwM2Vod19jYXBzIFxcdTAwMjYgQVRIOUtfSFdfQ0FQX1JBQ19TVVBQT1JURUQpKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FyOTAwMl9tYWMuYy0xNjAtXFx0XFx0XFx0UkVHX1dSSVRFKGFoLCBBUl9JU1JfUzUsIHM1X3MpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FyOTAwMl9tYWMuYy0xNjQtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FyOTAwMl9tYWMuYzoxNjU6XFx0aWYgKCEocENhcC1cXHUwMDNlaHdfY2FwcyBcXHUwMDI2IEFUSDlLX0hXX0NBUF9SQUNfU1VQUE9SVEVEKSkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hcjkwMDJfbWFjLmMtMTY2LVxcdFxcdFJFR19XUklURShhaCwgQVJfSVNSLCBpc3IpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FyOTAwMl9tYWMuYy0xODktXFx0XFx0XFx0fVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hcjkwMDJfbWFjLmM6MTkwOlxcdFxcdFxcdCptYXNrZWQgfD0gQVRIOUtfSU5UX0ZBVEFMO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hcjkwMDJfbWFjLmMtMTkxLVxcdFxcdH1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hcjkwMDJfbWFjLmMtMTk2LVxcdFxcdFxcdFJFR19XUklURShhaCwgQVJfUkMsIDApO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hcjkwMDJfbWFjLmM6MTk3OlxcdFxcdFxcdCptYXNrZWQgfD0gQVRIOUtfSU5UX0ZBVEFMO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hcjkwMDJfbWFjLmMtMTk4LVxcdFxcdH1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hcjkwMDJfbWFjLmM9MjEyPWFyOTAwMl9zZXRfdHhkZXNjKHN0cnVjdCBhdGhfaHcgKmFoLCB2b2lkICpkcywgc3RydWN0IGF0aF90eF9pbmZvICppKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FyOTAwMl9tYWMuYy0yNjAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FyOTAwMl9tYWMuYzoyNjE6XFx0Y3RsMSB8PSAoaS1cXHUwMDNla2V5aXggIT0gQVRIOUtfVFhLRVlJWF9JTlZBTElEID8gU00oaS1cXHUwMDNla2V5aXgsIEFSX0Rlc3RJZHgpIDogMClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYXI5MDAyX21hYy5jLTI2Mi1cXHRcXHR8IFNNKGktXFx1MDAzZXR5cGUsIEFSX0ZyYW1lVHlwZSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYXI5MDAyX21hYy5jOjI2MzpcXHRcXHR8IChpLVxcdTAwM2VmbGFncyBcXHUwMDI2IEFUSDlLX1RYREVTQ19OT0FDSyA/IEFSX05vQWNrIDogMClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYXI5MDAyX21hYy5jOjI2NDpcXHRcXHR8IChpLVxcdTAwM2VmbGFncyBcXHUwMDI2IEFUSDlLX1RYREVTQ19FWFRfT05MWSA/IEFSX0V4dE9ubHkgOiAwKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hcjkwMDJfbWFjLmM6MjY1OlxcdFxcdHwgKGktXFx1MDAzZWZsYWdzIFxcdTAwMjYgQVRIOUtfVFhERVNDX0VYVF9BTkRfQ1RMID8gQVJfRXh0QW5kQ3RsIDogMCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FyOTAwMl9tYWMuYy0yNjYtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYXI5MDAyX21hYy5jLTI4Mi1cXHRXUklURV9PTkNFKGFkcy1cXHUwMDNlZHNfY3RsMCwgKGktXFx1MDAzZXBrdF9sZW4gXFx1MDAyNiBBUl9GcmFtZUxlbilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYXI5MDAyX21hYy5jOjI4MzpcXHRcXHR8IChpLVxcdTAwM2VmbGFncyBcXHUwMDI2IEFUSDlLX1RYREVTQ19WTUYgPyBBUl9WaXJ0TW9yZUZyYWcgOiAwKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hcjkwMDJfbWFjLmMtMjg0LVxcdFxcdHwgU00oaS1cXHUwMDNldHhwb3dlclswXSwgQVJfWG1pdFBvd2VyMClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYXI5MDAyX21hYy5jOjI4NTpcXHRcXHR8IChpLVxcdTAwM2VmbGFncyBcXHUwMDI2IEFUSDlLX1RYREVTQ19WRU9MID8gQVJfVkVPTCA6IDApXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FyOTAwMl9tYWMuYzoyODY6XFx0XFx0fCAoaS1cXHUwMDNlZmxhZ3MgXFx1MDAyNiBBVEg5S19UWERFU0NfSU5UUkVRID8gQVJfVHhJbnRyUmVxIDogMClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYXI5MDAyX21hYy5jOjI4NzpcXHRcXHR8IChpLVxcdTAwM2VrZXlpeCAhPSBBVEg5S19UWEtFWUlYX0lOVkFMSUQgPyBBUl9EZXN0SWR4VmFsaWQgOiAwKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hcjkwMDJfbWFjLmM6Mjg4OlxcdFxcdHwgKGktXFx1MDAzZWZsYWdzIFxcdTAwMjYgQVRIOUtfVFhERVNDX0NMUkRNQVNLID8gQVJfQ2xyRGVzdE1hc2sgOiAwKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hcjkwMDJfbWFjLmM6Mjg5OlxcdFxcdHwgKGktXFx1MDAzZWZsYWdzIFxcdTAwMjYgQVRIOUtfVFhERVNDX1JUU0VOQSA/IEFSX1JUU0VuYWJsZSA6XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FyOTAwMl9tYWMuYzoyOTA6XFx0XFx0ICAgKGktXFx1MDAzZWZsYWdzIFxcdTAwMjYgQVRIOUtfVFhERVNDX0NUU0VOQSA/IEFSX0NUU0VuYWJsZSA6IDApKSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FyOTAwMl9tYWMuYy0yOTEtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYXI5MDAyX21hYy5jPTMxNj1zdGF0aWMgaW50IGFyOTAwMl9od19wcm9jX3R4ZGVzYyhzdHJ1Y3QgYXRoX2h3ICphaCwgdm9pZCAqZHMsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYXI5MDAyX21hYy5jLTMzMC1cXHRpZiAoc3RhdHVzIFxcdTAwMjYgQVJfVHhPcEV4Y2VlZGVkKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hcjkwMDJfbWFjLmM6MzMxOlxcdFxcdHRzLVxcdTAwM2V0c19zdGF0dXMgfD0gQVRIOUtfVFhFUlJfWFRYT1A7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FyOTAwMl9tYWMuYy0zMzItXFx0dHMtXFx1MDAzZXRpZCA9IE1TKHN0YXR1cywgQVJfVHhUaWQpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FyOTAwMl9tYWMuYy0zNDAtXFx0aWYgKHN0YXR1cyBcXHUwMDI2IEFSX1R4QmFTdGF0dXMpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYXI5MDAyX21hYy5jOjM0MTpcXHRcXHR0cy1cXHUwMDNldHNfZmxhZ3MgfD0gQVRIOUtfVFhfQkE7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FyOTAwMl9tYWMuYy0zNDItXFx0XFx0dHMtXFx1MDAzZWJhX2xvdyA9IGFkcy1cXHUwMDNlQVJfQmFCaXRtYXBMb3c7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYXI5MDAyX21hYy5jLTM0Ny1cXHRpZiAoc3RhdHVzIFxcdTAwMjYgQVJfRnJtWG1pdE9LKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hcjkwMDJfbWFjLmM6MzQ4OlxcdFxcdHRzLVxcdTAwM2V0c19zdGF0dXMgfD0gQVRIOUtfVFhfQUNLRUQ7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FyOTAwMl9tYWMuYy0zNDktXFx0ZWxzZSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FyOTAwMl9tYWMuYy0zNTAtXFx0XFx0aWYgKHN0YXR1cyBcXHUwMDI2IEFSX0V4Y2Vzc2l2ZVJldHJpZXMpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FyOTAwMl9tYWMuYzozNTE6XFx0XFx0XFx0dHMtXFx1MDAzZXRzX3N0YXR1cyB8PSBBVEg5S19UWEVSUl9YUkVUUlk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FyOTAwMl9tYWMuYy0zNTItXFx0XFx0aWYgKHN0YXR1cyBcXHUwMDI2IEFSX0ZpbHRlcmVkKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hcjkwMDJfbWFjLmM6MzUzOlxcdFxcdFxcdHRzLVxcdTAwM2V0c19zdGF0dXMgfD0gQVRIOUtfVFhFUlJfRklMVDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYXI5MDAyX21hYy5jLTM1NC1cXHRcXHRpZiAoc3RhdHVzIFxcdTAwMjYgQVJfRklGT1VuZGVycnVuKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FyOTAwMl9tYWMuYzozNTU6XFx0XFx0XFx0dHMtXFx1MDAzZXRzX3N0YXR1cyB8PSBBVEg5S19UWEVSUl9GSUZPO1xcblxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOS0wNlQwODowOTowOS41MTA5NzA5NloiLCJTZXEiOjUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy43LWZsYXNoIiwiRHVyYXRpb24iOjQwMjU0NDU3NDEsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqSW52ZXN0aWdhdGluZyB0aGUgYGF0aDlrYCBEcml2ZXIqKlxuXG5Pa2F5LCBzbyBJJ20gdHJ5aW5nIHRvIGZpZ3VyZSBvdXQgdGhlIHJlbGF0aW9uc2hpcCBiZXR3ZWVuIGBhdGg5a2AgYW5kIGBhdGg5a19odGNgLiBJJ20gcHJldHR5IHN1cmUgYGF0aDlrYCBpcyBwcmltYXJpbHkgZm9yIFBDSSBhbmQgQUhCIGludGVyZmFjZXMsIGJ1dCBJIG5lZWQgdG8gY29uZmlybSB0aGF0LiBUaGUgYmVzdCB3YXkgdG8gZG8gdGhpcyBpcyB0byBkaXZlIGludG8gdGhlIGtlcm5lbCBzb3VyY2UsIHNwZWNpZmljYWxseSB0aGUgYnVpbGQgcHJvY2Vzcy4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgd2hpY2ggZmlsZXMgYXJlIGNvbXBpbGVkIGludG8gYGF0aDlrLmtvYCB2ZXJzdXMgYGF0aDlrX2h0Yy5rb2AuIEknbGwgdXNlIGBhdGg5ay9NYWtlZmlsZWAgaW4gdGhlIGtlcm5lbCBzb3VyY2UgdG8gZ2V0IGEgY2xlYXIgcGljdHVyZSBhbmQgdGhlbiB1c2UgYHJlYWQtZmlsZWAgdG8gZ2V0IHRoZSBNYWtlZmlsZS4gVGhpcyBzaG91bGQgaWxsdW1pbmF0ZSB0aGUgZHJpdmVyJ3MgYXJjaGl0ZWN0dXJlIGFuZCB0aGUga2V5IGRpZmZlcmVuY2VzIGJldHdlZW4gdGhlIHR3byBtb2R1bGVzLlxuXG5cbiIsIklucHV0VG9rZW5zIjoxODI0OSwiT3V0cHV0VG9rZW5zIjozOSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjEwMywiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOS0wNlQwODowOToxMy41MzY0MjE3MDFaIiwiU2VxIjo2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJyZWFkLWZpbGUiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNzA5ODAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJGaWxlXCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL01ha2VmaWxlXCIsXG4gIFwiRmlyc3RMaW5lXCI6IDEsXG4gIFwiTGluZUNvdW50XCI6IDg1XG59IiwiUmVzdWx0cyI6IntcbiAgXCJDb250ZW50c1wiOiBcIiAgIDE6XFx0IyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogSVNDXFxuICAgMjpcXHRhdGg5ay15ICs9XFx0YmVhY29uLm8gXFxcXFxcbiAgIDM6XFx0XFx0XFx0Z3Bpby5vIFxcXFxcXG4gICA0OlxcdFxcdFxcdGluaXQubyBcXFxcXFxuICAgNTpcXHRcXHRcXHRtYWluLm8gXFxcXFxcbiAgIDY6XFx0XFx0XFx0cmVjdi5vIFxcXFxcXG4gICA3OlxcdFxcdFxcdHhtaXQubyBcXFxcXFxuICAgODpcXHRcXHRcXHRsaW5rLm8gXFxcXFxcbiAgIDk6XFx0XFx0XFx0YW50ZW5uYS5vIFxcXFxcXG4gIDEwOlxcdFxcdFxcdGNoYW5uZWwub1xcbiAgMTE6XFx0XFxuICAxMjpcXHRhdGg5ay0kKENPTkZJR19BVEg5S19CVENPRVhfU1VQUE9SVCkgKz0gbWNpLm9cXG4gIDEzOlxcdGF0aDlrLSQoQ09ORklHX0FUSDlLX1BDSSkgKz0gcGNpLm9cXG4gIDE0OlxcdGF0aDlrLSQoQ09ORklHX0FUSDlLX0FIQikgKz0gYWhiLm9cXG4gIDE1OlxcdGF0aDlrLSQoQ09ORklHX0FUSDlLX0RGU19ERUJVR0ZTKSArPSBkZnNfZGVidWcub1xcbiAgMTY6XFx0YXRoOWstJChDT05GSUdfQVRIOUtfREZTX0NFUlRJRklFRCkgKz0gZGZzLm9cXG4gIDE3OlxcdGF0aDlrLSQoQ09ORklHX0FUSDlLX1RYOTkpICs9IHR4OTkub1xcbiAgMTg6XFx0YXRoOWstJChDT05GSUdfQVRIOUtfV09XKSArPSB3b3cub1xcbiAgMTk6XFx0YXRoOWstJChDT05GSUdfQVRIOUtfSFdSTkcpICs9IHJuZy5vXFxuICAyMDpcXHRcXG4gIDIxOlxcdGF0aDlrLSQoQ09ORklHX0FUSDlLX0RFQlVHRlMpICs9IGRlYnVnLm9cXG4gIDIyOlxcdFxcbiAgMjM6XFx0YXRoOWstJChDT05GSUdfQVRIOUtfU1RBVElPTl9TVEFUSVNUSUNTKSArPSBkZWJ1Z19zdGEub1xcbiAgMjQ6XFx0XFxuICAyNTpcXHRvYmotJChDT05GSUdfQVRIOUspICs9IGF0aDlrLm9cXG4gIDI2OlxcdFxcbiAgMjc6XFx0YXRoOWtfaHcteTo9XFx0XFxcXFxcbiAgMjg6XFx0XFx0XFx0YXI5MDAyX2h3Lm8gXFxcXFxcbiAgMjk6XFx0XFx0XFx0YXI5MDAzX2h3Lm8gXFxcXFxcbiAgMzA6XFx0XFx0XFx0aHcubyBcXFxcXFxuICAzMTpcXHRcXHRcXHRhcjkwMDNfcGh5Lm8gXFxcXFxcbiAgMzI6XFx0XFx0XFx0YXI5MDAyX3BoeS5vIFxcXFxcXG4gIDMzOlxcdFxcdFxcdGFyNTAwOF9waHkubyBcXFxcXFxuICAzNDpcXHRcXHRcXHRhcjkwMDJfY2FsaWIubyBcXFxcXFxuICAzNTpcXHRcXHRcXHRhcjkwMDNfY2FsaWIubyBcXFxcXFxuICAzNjpcXHRcXHRcXHRjYWxpYi5vIFxcXFxcXG4gIDM3OlxcdFxcdFxcdGVlcHJvbS5vIFxcXFxcXG4gIDM4OlxcdFxcdFxcdGVlcHJvbV9kZWYubyBcXFxcXFxuICAzOTpcXHRcXHRcXHRlZXByb21fNGsubyBcXFxcXFxuICA0MDpcXHRcXHRcXHRlZXByb21fOTI4Ny5vIFxcXFxcXG4gIDQxOlxcdFxcdFxcdGFuaS5vIFxcXFxcXG4gIDQyOlxcdFxcdFxcdG1hYy5vIFxcXFxcXG4gIDQzOlxcdFxcdFxcdGFyOTAwMl9tYWMubyBcXFxcXFxuICA0NDpcXHRcXHRcXHRhcjkwMDNfbWFjLm8gXFxcXFxcbiAgNDU6XFx0XFx0XFx0YXI5MDAzX2VlcHJvbS5vIFxcXFxcXG4gIDQ2OlxcdFxcdFxcdGFyOTAwM19wYXByZC5vXFxuICA0NzpcXHRcXG4gIDQ4OlxcdGF0aDlrX2h3LSQoQ09ORklHX0FUSDlLX1dPVykgKz0gYXI5MDAzX3dvdy5vXFxuICA0OTpcXHRcXG4gIDUwOlxcdGF0aDlrX2h3LSQoQ09ORklHX0FUSDlLX0JUQ09FWF9TVVBQT1JUKSArPSBidGNvZXgubyBcXFxcXFxuICA1MTpcXHRcXHRcXHRcXHRcXHRcXHQgICBhcjkwMDNfbWNpLm8gXFxcXFxcbiAgNTI6XFx0XFx0XFx0XFx0XFx0XFx0ICAgYXI5MDAzX2FpYy5vXFxuICA1MzpcXHRcXG4gIDU0OlxcdGF0aDlrX2h3LSQoQ09ORklHX0FUSDlLX1BDT0VNKSArPSBhcjkwMDNfcnR0Lm9cXG4gIDU1OlxcdFxcbiAgNTY6XFx0YXRoOWtfaHctJChDT05GSUdfQVRIOUtfRFlOQUNLKSArPSBkeW5hY2sub1xcbiAgNTc6XFx0XFxuICA1ODpcXHRvYmotJChDT05GSUdfQVRIOUtfSFcpICs9IGF0aDlrX2h3Lm9cXG4gIDU5OlxcdFxcbiAgNjA6XFx0b2JqLSQoQ09ORklHX0FUSDlLX0NPTU1PTikgKz0gYXRoOWtfY29tbW9uLm9cXG4gIDYxOlxcdGF0aDlrX2NvbW1vbi15Oj1cXHRjb21tb24ubyBcXFxcXFxuICA2MjpcXHRcXHRcXHRcXHRjb21tb24taW5pdC5vIFxcXFxcXG4gIDYzOlxcdFxcdFxcdFxcdGNvbW1vbi1iZWFjb24ubyBcXFxcXFxuICA2NDpcXHRcXG4gIDY1OlxcdGF0aDlrX2NvbW1vbi0kKENPTkZJR19BVEg5S19DT01NT05fREVCVUcpICs9IGNvbW1vbi1kZWJ1Zy5vXFxuICA2NjpcXHRhdGg5a19jb21tb24tJChDT05GSUdfQVRIOUtfQ09NTU9OX1NQRUNUUkFMKSArPSBjb21tb24tc3BlY3RyYWwub1xcbiAgNjc6XFx0XFxuICA2ODpcXHRhdGg5a19odGMteSArPVxcdGh0Y19oc3QubyBcXFxcXFxuICA2OTpcXHRcXHRcXHRoaWZfdXNiLm8gXFxcXFxcbiAgNzA6XFx0XFx0XFx0d21pLm8gXFxcXFxcbiAgNzE6XFx0XFx0XFx0aHRjX2Rydl90eHJ4Lm8gXFxcXFxcbiAgNzI6XFx0XFx0XFx0aHRjX2Rydl9tYWluLm8gXFxcXFxcbiAgNzM6XFx0XFx0XFx0aHRjX2Rydl9iZWFjb24ubyBcXFxcXFxuICA3NDpcXHRcXHRcXHRodGNfZHJ2X2luaXQubyBcXFxcXFxuICA3NTpcXHRcXHRcXHRodGNfZHJ2X2dwaW8ub1xcbiAgNzY6XFx0XFxuICA3NzpcXHRhdGg5a19odGMtJChDT05GSUdfQVRIOUtfSFRDX0RFQlVHRlMpICs9IGh0Y19kcnZfZGVidWcub1xcbiAgNzg6XFx0XFxuICA3OTpcXHRvYmotJChDT05GSUdfQVRIOUtfSFRDKSArPSBhdGg5a19odGMub1xcbiAgODA6XFx0XFxuICA4MTpcXHRvYmotJChDT05GSUdfQVRIOUtfUENJX05PX0VFUFJPTSkgKz0gYXRoOWtfcGNpX293bF9sb2FkZXIub1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOS0wNlQwODowOToxMy41MzY1OTU5MzFaIiwiU2VxIjo3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuNy1mbGFzaCIsIkR1cmF0aW9uIjoyNTcwNjU3OTA1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgV2lyZWxlc3MgRHJpdmVyIExhbmRzY2FwZSoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoZXNlIHdpcmVsZXNzIGRyaXZlcnMgYW5kIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGVpciBhcmNoaXRlY3R1cmUuIEkgc2VlIHRoYXQgYGF0aDlrLXlgIGluY2x1ZGVzIGB4bWl0Lm9gLCB3aGljaCBpcyBleHBlY3RlZC4gQnV0IHRoZW4sIGBhdGg5a19odGMteWAgdXNlcyBgaHRjX2Rydl90eHJ4Lm9gIGluc3RlYWQsIGFuZCBjcnVjaWFsbHksICpkb2Vzbid0KiBpbmNsdWRlIGB4bWl0Lm9gLiBUaGF0J3MgYSBrZXkgZGlzdGluY3Rpb24uIE5vdyBJIG5lZWQgdG8gY2xhcmlmeSBteSBhc3N1bXB0aW9uczogaXMgYGF0aDlrYCAqc3RyaWN0bHkqIGJvdW5kIHRvIFBDSSBvciBBSEI/IERvZXMgaXQgaGF2ZSBhbnkgVVNCIGludGVyZmFjZSBjYXBhYmlsaXRpZXM/IENhbiBpdCBiZSByZWFjaGVkIHZpYSBhIFJhdyBHYWRnZXQgc2V0dXAgb3IgdmlydGlvPyBJIG5lZWQgdG8ga25vdyBpZiBpdCdzIHB1cmVseSB0aWVkIHRvIHNwZWNpZmljIGhhcmR3YXJlIGJ1c2VzLiBJJ2xsIG5lZWQgdG8gZGlnIGludG8gaG93IGl0J3MgcmVnaXN0ZXJlZCB3aXRoaW4gdGhlIGtlcm5lbCB0byB1bmRlcnN0YW5kIGl0cyBjYXBhYmlsaXRpZXMgYW5kIGhvdyBpdCdzIGV4cG9zZWQgdG8gdGhlIHN5c3RlbS4gSSdsbCBmb2N1cyBteSBzZWFyY2ggZm9yIGRyaXZlciByZWdpc3RyYXRpb25zIHdpdGhpbiB0aGUgYGRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9gIGRpcmVjdG9yeS4gVGhhdCBzaG91bGQgaWxsdW1pbmF0ZSB0aGUgc3VwcG9ydGVkIGhhcmR3YXJlIGludGVyZmFjZXMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjE5ODU5LCJPdXRwdXRUb2tlbnMiOjU1LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTM0LCJUb29sQ2FsbHMiOlsicmVhZC1maWxlIl19LHsiU3RhcnRlZCI6IjIwMjYtMDktMDZUMDg6MDk6MTYuMTA3MjU2OTU2WiIsIlNlcSI6OCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjEwMzQ4NjEwMywiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJtb2R1bGVfaW5pdHxkcml2ZXJfcmVnaXN0ZXJ8cGNpX3JlZ2lzdGVyX2RyaXZlcnxwbGF0Zm9ybV9kcml2ZXJfcmVnaXN0ZXJ8dXNiX3JlZ2lzdGVyXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5a1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYWhiLmM9MTQzPWludCBhdGhfYWhiX2luaXQodm9pZClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYWhiLmMtMTQ0LXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYWhiLmM6MTQ1OlxcdHJldHVybiBwbGF0Zm9ybV9kcml2ZXJfcmVnaXN0ZXIoXFx1MDAyNmF0aF9haGJfZHJpdmVyKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYWhiLmMtMTQ2LX1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9pbml0LmM9MTEzMD1zdGF0aWMgaW50IF9faW5pdCBhdGg5a19pbml0KHZvaWQpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvaW5pdC5jLTExNTUtfVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9pbml0LmM6MTE1Njptb2R1bGVfaW5pdChhdGg5a19pbml0KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvaW5pdC5jLTExNTctXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvcGNpLmM9MTA4Mz1pbnQgYXRoX3BjaV9pbml0KHZvaWQpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3BjaS5jLTEwODQte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9wY2kuYzoxMDg1OlxcdHJldHVybiBwY2lfcmVnaXN0ZXJfZHJpdmVyKFxcdTAwMjZhdGhfcGNpX2RyaXZlcik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3BjaS5jLTEwODYtfVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOS0wNlQwODowOToxNi4yMTA3NDc5NjlaIiwiU2VxIjo5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuNy1mbGFzaCIsIkR1cmF0aW9uIjoyNDYxOTM5MTcyLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgbXkgYXR0ZW1wdCBhdCBzdW1tYXJpemluZyB0aGUgdGhvdWdodCBwcm9jZXNzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlOlxuXG4qKkRpdmluZyBpbnRvIHRoZSBBdGhlcm9zIERyaXZlciBJbml0aWFsaXphdGlvbioqXG5cbk9rYXksIHRpbWUgdG8gdHJvdWJsZXNob290IHRoaXMgQXRoZXJvcyB3aXJlbGVzcyBpc3N1ZS4gTXkgZmlyc3QgaW5zdGluY3QgaXMgdG8gemVybyBpbiBvbiB0aGUgZHJpdmVyIGluaXRpYWxpemF0aW9uLCBzcGVjaWZpY2FsbHkgdGhlIGBhdGg5a2AgZHJpdmVyLiBHaXZlbiBteSBleHBlcmllbmNlLCBhIHByb2JsZW0gd2l0aCBob3cgdGhlIGhhcmR3YXJlIGlzIGJlaW5nIGJyb3VnaHQgb25saW5lIGlzIGEgbGlrZWx5IGN1bHByaXQuIEkgcmVjYWxsIHNpbWlsYXIgaXNzdWVzIGZyb20gcGFzdCBwcm9qZWN0cy4gTGV0J3Mgc3RhcnQgd2l0aCBgYXRoOWsvaW5pdC5jYC4gSSBoYXZlIGEgZmVlbGluZyBzb21ldGhpbmcgcmVsZXZhbnQgbWlnaHQgYmUgaGFwcGVuaW5nIGFyb3VuZCBsaW5lIDExMzAsIHNvIEknbGwgZ28gZGlyZWN0bHkgdG8gdGhhdCBzZWN0aW9uIG9mIHRoZSBzb3VyY2UgY29kZS4gVGhhdCdzIGEgcmVhc29uYWJsZSBwbGFjZSB0byBzdGFydCwgYXMgSSBjYW4gb2Z0ZW4gZmluZCBpbml0aWFsIHJlZ2lzdGVyIHJlYWRzIGFuZCB3cml0ZXMgdGhhdCBjYW4gZ28gYXdyeS5cblxuXG4iLCJJbnB1dFRva2VucyI6MjA2MjksIk91dHB1dFRva2VucyI6NDQsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyMSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOS0wNlQwODowOToxOC42NzI2OTE3NzFaIiwiU2VxIjoxMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoicmVhZC1maWxlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTU3OTMwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRmlsZVwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9pbml0LmNcIixcbiAgXCJGaXJzdExpbmVcIjogMTEyMCxcbiAgXCJMaW5lQ291bnRcIjogNDBcbn0iLCJSZXN1bHRzIjoie1xuICBcIkNvbnRlbnRzXCI6IFwiMTEyMDpcXHRcXHRhdGg5a19kZWluaXRfd293KGh3KTtcXG4xMTIxOlxcdFxcdGllZWU4MDIxMV91bnJlZ2lzdGVyX2h3KGh3KTtcXG4xMTIyOlxcdFxcdGF0aF9yeF9jbGVhbnVwKHNjKTtcXG4xMTIzOlxcdFxcdGF0aDlrX2RlaW5pdF9zb2Z0YyhzYyk7XFxuMTEyNDpcXHR9XFxuMTEyNTpcXHRcXG4xMTI2OlxcdC8qKioqKioqKioqKioqKioqKioqKioqKiovXFxuMTEyNzpcXHQvKiAgICAgTW9kdWxlIEhvb2tzICAgICAqL1xcbjExMjg6XFx0LyoqKioqKioqKioqKioqKioqKioqKioqKi9cXG4xMTI5OlxcdFxcbjExMzA6XFx0c3RhdGljIGludCBfX2luaXQgYXRoOWtfaW5pdCh2b2lkKVxcbjExMzE6XFx0e1xcbjExMzI6XFx0XFx0aW50IGVycm9yO1xcbjExMzM6XFx0XFxuMTEzNDpcXHRcXHRlcnJvciA9IGF0aF9wY2lfaW5pdCgpO1xcbjExMzU6XFx0XFx0aWYgKGVycm9yIFxcdTAwM2MgMCkge1xcbjExMzY6XFx0XFx0XFx0cHJfZXJyKFxcXCJObyBQQ0kgZGV2aWNlcyBmb3VuZCwgZHJpdmVyIG5vdCBpbnN0YWxsZWRcXFxcblxcXCIpO1xcbjExMzc6XFx0XFx0XFx0ZXJyb3IgPSAtRU5PREVWO1xcbjExMzg6XFx0XFx0XFx0Z290byBlcnJfb3V0O1xcbjExMzk6XFx0XFx0fVxcbjExNDA6XFx0XFxuMTE0MTpcXHRcXHRlcnJvciA9IGF0aF9haGJfaW5pdCgpO1xcbjExNDI6XFx0XFx0aWYgKGVycm9yIFxcdTAwM2MgMCkge1xcbjExNDM6XFx0XFx0XFx0ZXJyb3IgPSAtRU5PREVWO1xcbjExNDQ6XFx0XFx0XFx0Z290byBlcnJfcGNpX2V4aXQ7XFxuMTE0NTpcXHRcXHR9XFxuMTE0NjpcXHRcXG4xMTQ3OlxcdFxcdGRtaV9jaGVja19zeXN0ZW0oYXRoOWtfcXVpcmtzKTtcXG4xMTQ4OlxcdFxcbjExNDk6XFx0XFx0cmV0dXJuIDA7XFxuMTE1MDpcXHRcXG4xMTUxOlxcdCBlcnJfcGNpX2V4aXQ6XFxuMTE1MjpcXHRcXHRhdGhfcGNpX2V4aXQoKTtcXG4xMTUzOlxcdCBlcnJfb3V0OlxcbjExNTQ6XFx0XFx0cmV0dXJuIGVycm9yO1xcbjExNTU6XFx0fVxcbjExNTY6XFx0bW9kdWxlX2luaXQoYXRoOWtfaW5pdCk7XFxuMTE1NzpcXHRcXG4xMTU4OlxcdHN0YXRpYyB2b2lkIF9fZXhpdCBhdGg5a19leGl0KHZvaWQpXFxuMTE1OTpcXHR7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTA2VDA4OjA5OjE4LjY3Mjg1NDI2MVoiLCJTZXEiOjExLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuNy1mbGFzaCIsIkR1cmF0aW9uIjozMDE0NDYxNDU2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkludmVzdGlnYXRpbmcgdGhlIGF0aDlrX2h0YyBEcml2ZXIncyBUcmFuc21pc3Npb24gUGF0aCoqXG5cbk9rYXksIGxldCdzIGRpdmUgaW50byB0aGlzLiBJIG5lZWQgdG8gY2xhcmlmeSBob3cgdGhlIGBhdGg5a19odGNgIGRyaXZlciBoYW5kbGVzIHRyYW5zbWlzc2lvbi4gRmlyc3QsIEkgd2FudGVkIHRvIGNvbmZpcm0gaWYgaXQgZGlyZWN0bHkgdXRpbGl6ZXMgdGhlIGB4bWl0LmNgIG1vZHVsZSwgYSBjb3JlIGNvbXBvbmVudCBvZiB0aGUgYGF0aDlrYCB3aXJlbGVzcyBkcml2ZXIuIFNvLCBJIG5lZWQgdG8gY2hlY2sgdGhlIGJ1aWxkIHByb2Nlc3MuXG5cbkknbGwgY2hlY2sgdGhlIGBkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvTWFrZWZpbGVgIGFnYWluLCBqdXN0IHRvIGJlIGFic29sdXRlbHkgY2VydGFpbi4gUmVhZGluZyB0aHJvdWdoIGl0LCBJIGNhbiBzZWUgb24gbGluZSAyLCB0aGF0IHRoZSBiYXNlIGBhdGg5a2AgbW9kdWxlIGluY2x1ZGVzIGB4bWl0Lm9gLiBIb3dldmVyLCBsb29raW5nIHNwZWNpZmljYWxseSBhdCB0aGUgYGF0aDlrX2h0Y2AgbW9kdWxlJ3MgYnVpbGQgaW5zdHJ1Y3Rpb25zIG9uIGxpbmUgNjgsIHRoZXJlJ3Mgbm8gbWVudGlvbiBvZiBgeG1pdC5vYCB3aXRoaW4gdGhlIGBhdGg5a19odGMteWAgbGlzdC5cblxuQWxyaWdodCwgdGhhdCdzIGNvbmNsdXNpdmUuIGBhdGg5a19odGNgIGV4cGxpY2l0bHkgKmRvZXNuJ3QqIGxpbmsgdGhlIGB4bWl0Lm9gIG9iamVjdCBmaWxlLiBTbywgbm93IHRoZSBuZXh0IHF1ZXN0aW9uOiBkb2VzIGBhdGg5a19odGNgIGNhbGwgZnVuY3Rpb25zIGZyb20gYHhtaXQuY2AgaW5kaXJlY3RseT8gSSBuZWVkIHRvIGNoZWNrIGlmIGFueSBvZiB0aGUgZXh0ZXJuYWwgY2FsbHMsIHRoYXQgd291bGQgbmVlZCBhY2Nlc3MgdG8gYHhtaXQuY2AgYXJlIHByZXNlbnQgaW4gYGF0aDlrLmtvYFxuXG5cbiIsIklucHV0VG9rZW5zIjoyMTM2MSwiT3V0cHV0VG9rZW5zIjozNSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjIxNCwiVG9vbENhbGxzIjpbInJlYWQtZmlsZSJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTA2VDA4OjA5OjIxLjY4NzMyMjY5N1oiLCJTZXEiOjEyLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTIxNTY3NTUzLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImF0aF9kcmFpbl90eHFfbGlzdFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9hdGhcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYz0xODU3PWludCBhdGhfY2FicV91cGRhdGUoc3RydWN0IGF0aF9zb2Z0YyAqc2MpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTE4NzEtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYzoxODcyOnN0YXRpYyB2b2lkIGF0aF9kcmFpbl90eHFfbGlzdChzdHJ1Y3QgYXRoX3NvZnRjICpzYywgc3RydWN0IGF0aF90eHEgKnR4cSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTE4NzMtXFx0XFx0XFx0ICAgICAgIHN0cnVjdCBsaXN0X2hlYWQgKmxpc3QpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jPTE5MTQ9dm9pZCBhdGhfZHJhaW50eHEoc3RydWN0IGF0aF9zb2Z0YyAqc2MsIHN0cnVjdCBhdGhfdHhxICp0eHEpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTE5MjItXFx0XFx0d2hpbGUgKCFsaXN0X2VtcHR5KFxcdTAwMjZ0eHEtXFx1MDAzZXR4cV9maWZvW2lkeF0pKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYzoxOTIzOlxcdFxcdFxcdGF0aF9kcmFpbl90eHFfbGlzdChzYywgdHhxLCBcXHUwMDI2dHhxLVxcdTAwM2V0eHFfZmlmb1tpZHhdKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTE5MjQtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTE5MzEtXFx0dHhxLVxcdTAwM2VheHFfdHhfaW5wcm9ncmVzcyA9IGZhbHNlO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmM6MTkzMjpcXHRhdGhfZHJhaW5fdHhxX2xpc3Qoc2MsIHR4cSwgXFx1MDAyNnR4cS1cXHUwMDNlYXhxX3EpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMtMTkzMy1cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMDZUMDg6MDk6MjEuODA4ODk3ODVaIiwiU2VxIjoxMywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjctZmxhc2giLCJEdXJhdGlvbiI6MjIyMTY3ODA0OCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IHN1bW1hcnksIHByZXNlbnRlZCBhcyBhIHN0cmVhbSBvZiB0aG91Z2h0OlxuXG4qKkRpdmluZyBpbnRvIHRoZSBgeG1pdC5jYCBDb2RlYmFzZSoqXG5cbkFscmlnaHQsIHRpbWUgdG8gZ2V0IG15IGhhbmRzIGRpcnR5LiBJJ20gZ29pbmcgdG8gc3RhcnQgYnkgdGFraW5nIGEgY2xvc2UgbG9vayBhdCB0aGUgYGF0aF9kcmFpbnR4cWAgZnVuY3Rpb24uIEdpdmVuIGl0cyBuYW1lLCBJIHN1c3BlY3QgaXQncyBjcnVjaWFsIGZvciBmbHVzaGluZyBvciBkcmFpbmluZyB0cmFuc21pdCBxdWV1ZXMsIHdoaWNoIGlzIGEga2V5IGFyZWEgZm9yIHBlcmZvcm1hbmNlIGFuZCBzdGFiaWxpdHkgaW4gYW55IHdpcmVsZXNzIHN0YWNrLiBUaGVuLCBJIG5lZWQgdG8gdHJhY2UgYWxsIHRoZSBjYWxsIHBhdGhzLCBzcGVjaWZpY2FsbHksIHdoZXJlIHRoaXMgYGF0aF9kcmFpbnR4cWAgZnVuY3Rpb24gaXMgaW52b2tlZC4gVGhhdCdzIG15IGluaXRpYWwgZ29hbC4gQmV5b25kIHRoYXQsIEkgbmVlZCB0byBicm9hZGVuIHRoZSBzY29wZTogSSBtdXN0IGludmVzdGlnYXRlICphbnkqIG90aGVyIGNhbGxzIG9yaWdpbmF0aW5nIGZyb20gd2l0aGluIHRoZSBgeG1pdC5jYCBtb2R1bGUuIFVuZGVyc3RhbmRpbmcgdGhlIHJvbGVzIGFuZCBpbnRlcmFjdGlvbnMgYmV0d2VlbiB0aGUgY29tcG9uZW50cyB3aXRoaW4gdGhpcyBmaWxlIGlzIGVzc2VudGlhbCBmb3IgYSB0aG9yb3VnaCBkaWFnbm9zaXMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjIyMzI4LCJPdXRwdXRUb2tlbnMiOjMyLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NDksIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDktMDZUMDg6MDk6MjQuMDMwNTgwNzE3WiIsIlNlcSI6MTQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo4MTc4NjU5NCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJhdGhfZHJhaW50eHFcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hdGg5ay5oPTU4NT1ib29sIGF0aF9kcmFpbl9hbGxfdHhxKHN0cnVjdCBhdGhfc29mdGMgKnNjKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYXRoOWsuaDo1ODY6dm9pZCBhdGhfZHJhaW50eHEoc3RydWN0IGF0aF9zb2Z0YyAqc2MsIHN0cnVjdCBhdGhfdHhxICp0eHEpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hdGg5ay5oLTU4Ny12b2lkIGF0aF90eF9ub2RlX2luaXQoc3RydWN0IGF0aF9zb2Z0YyAqc2MsIHN0cnVjdCBhdGhfbm9kZSAqYW4pO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2JlYWNvbi5jPTExMj1zdGF0aWMgc3RydWN0IGF0aF9idWYgKmF0aDlrX2JlYWNvbl9nZW5lcmF0ZShzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodyxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9iZWFjb24uYy0xODItXFx0XFx0XFx0XFx0XFxcIkZsdXNoaW5nIHByZXZpb3VzIGNhYnEgdHJhZmZpY1xcXFxuXFxcIik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2JlYWNvbi5jOjE4MzpcXHRcXHRcXHRhdGhfZHJhaW50eHEoc2MsIGNhYnEpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9iZWFjb24uYy0xODQtXFx0XFx0fVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYz0xODcyPXN0YXRpYyB2b2lkIGF0aF9kcmFpbl90eHFfbGlzdChzdHJ1Y3QgYXRoX3NvZnRjICpzYywgc3RydWN0IGF0aF90eHEgKnR4cSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMtMTkxMy0gKi9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jOjE5MTQ6dm9pZCBhdGhfZHJhaW50eHEoc3RydWN0IGF0aF9zb2Z0YyAqc2MsIHN0cnVjdCBhdGhfdHhxICp0eHEpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYy0xOTE1LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmM9MTkzOD1ib29sIGF0aF9kcmFpbl9hbGxfdHhxKHN0cnVjdCBhdGhfc29mdGMgKnNjKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYy0xOTczLVxcdFxcdHR4cSA9IFxcdTAwMjZzYy1cXHUwMDNldHgudHhxW2ldO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmM6MTk3NDpcXHRcXHRhdGhfZHJhaW50eHEoc2MsIHR4cSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYy0xOTc1LVxcdH1cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMDZUMDg6MDk6MjQuMTEyMzcxNjExWiIsIlNlcSI6MTUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy43LWZsYXNoIiwiRHVyYXRpb24iOjMzNzgzNTkxODMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBgYXRoOWtgIERyaXZlciBmb3IgRnV6emluZyBQb3RlbnRpYWwqKlxuXG5Pa2F5LCBzbyBgYXRoOWtgIGlzIHRoZSBBdGhlcm9zIDgwMi4xMW4gZHJpdmVyIGZvciBQQ0kvQUhCLiBGaXJzdCwgSSBuZWVkIHRvIGZpZ3VyZSBvdXQgaWYgdGhlcmUncyBhbnkgUUVNVSBvciBzeXprYWxsZXIgZW11bGF0aW9uIGZvciB0aGlzIHNwZWNpZmljIGRyaXZlci4gTXkgaW5pdGlhbCBpbnN0aW5jdCBpcyB0byBjaGVjayBmb3IgdmlydHVhbCBidXMgb3IgZGV2aWNlIGVtdWxhdGlvbiBjYXBhYmlsaXRpZXMuIE1vcmUgYnJvYWRseSwgSSBzaG91bGQgZGV0ZXJtaW5lIHdoYXQgd2lyZWxlc3MgZGV2aWNlcyBhcmUgZnV6emFibGUgaW4gc3l6a2FsbGVyIGluIGdlbmVyYWwuXG5cbk5vdywgbGV0J3MgbG9vayBhdCBTZWN0aW9uIDIgb2YgdGhlIGluc3RydWN0aW9ucy4gVGhlIHRleHQgY2xlYXJseSBzdGF0ZXMgdGhhdCB1bnJlYWNoYWJsZSBoYXJkd2FyZSBpbmNsdWRlcyB2ZW5kb3Itc3BlY2lmaWMgZGV2aWNlcyBsaWtlIFNtYXJ0TklDcyBhbmQgR1BVcyB0aGF0IG5lZWQgcGh5c2ljYWwgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuIE9uIHRoZSBvdGhlciBoYW5kLCByZWFjaGFibGUgZHJpdmVycyBhbmQgcHJvdG9jb2xzIGFyZSB0aG9zZSBhY2Nlc3NpYmxlIHRocm91Z2ggdmlydHVhbCBidXNlcyBzdWNoIGFzIHZpcnRpbywgVVNCIGdhZGdldCwgbG9vcGJhY2ssIG5ldGxpbmssIGFuZCBzbyBvbi5cblxuQWhhISBTeXprYWxsZXIgKmNhbiogZW11bGF0ZSBVU0IgV2ktRmkgZGV2aWNlcyB2aWEgUmF3IEdhZGdldC9VU0IgZnV6emluZy4gRm9yIGluc3RhbmNlLCBgYXRoOWtfaHRjYCBpcyBhIFVTQiBXaS1GaSBkZXZpY2UgdGhhdCByZWdpc3RlcnMgYSBVU0IgZHJpdmVyIHVzaW5nIGB1c2JfcmVnaXN0ZXJgLiBTbywgdGhlIGNyaXRpY2FsIHF1ZXN0aW9uIGlzOiBpcyBgYXRoOWtgIHNvbGVseSBQQ0kvQUhCLCBvciBkb2VzIGl0IGhhdmUgYSBVU0IgaW50ZXJmYWNlP1xuXG5JJ2xsIGNoZWNrIHRoZSBkcml2ZXIgZmlsZXMgaW4gYGRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9gIGFuZCBzcGVjaWZpY2FsbHkgc2VhcmNoIGZvciBlaXRoZXIgYHBjaV9kcml2ZXJgIG9yIGB1c2JfZHJpdmVyYC4gVGhhdCBzaG91bGQgZ2l2ZSBtZSB0aGUgZGVmaW5pdGl2ZSBhbnN3ZXIuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjIzMTYyLCJPdXRwdXRUb2tlbnMiOjQ2LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MzMzLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTA2VDA4OjA5OjI3LjQ5MDczMzk4NFoiLCJTZXEiOjE2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTE0MTYzNjMzLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInN0cnVjdCAocGNpX2RyaXZlcnx1c2JfZHJpdmVyfHBsYXRmb3JtX2RyaXZlcilcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9haGIuYz0xMTk9c3RhdGljIHZvaWQgYXRoX2FoYl9yZW1vdmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9haGIuYy0xMzEtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FoYi5jOjEzMjpzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RyaXZlciBhdGhfYWhiX2RyaXZlciA9IHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYWhiLmMtMTMzLVxcdC5wcm9iZSA9IGF0aF9haGJfcHJvYmUsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYXRoOWtfcGNpX293bF9sb2FkZXIuYz0yMzA9TU9EVUxFX0RFVklDRV9UQUJMRShwY2ksIG93bF9wY2lfdGFibGUpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hdGg5a19wY2lfb3dsX2xvYWRlci5jLTIzMS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYXRoOWtfcGNpX293bF9sb2FkZXIuYzoyMzI6c3RhdGljIHN0cnVjdCBwY2lfZHJpdmVyIG93bF9kcml2ZXIgPSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2F0aDlrX3BjaV9vd2xfbG9hZGVyLmMtMjMzLVxcdC5uYW1lXFx0XFx0PSBLQlVJTERfTU9ETkFNRSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9oaWZfdXNiLmM9MTQ1OT1zdGF0aWMgaW50IGF0aDlrX2hpZl91c2JfcmVzdW1lKHN0cnVjdCB1c2JfaW50ZXJmYWNlICppbnRlcmZhY2UpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvaGlmX3VzYi5jLTE1MDMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2hpZl91c2IuYzoxNTA0OnN0YXRpYyBzdHJ1Y3QgdXNiX2RyaXZlciBhdGg5a19oaWZfdXNiX2RyaXZlciA9IHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvaGlmX3VzYi5jLTE1MDUtXFx0Lm5hbWUgPSBLQlVJTERfTU9ETkFNRSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9wY2kuYz0xMDczPU1PRFVMRV9ERVZJQ0VfVEFCTEUocGNpLCBhdGhfcGNpX2lkX3RhYmxlKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvcGNpLmMtMTA3NC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvcGNpLmM6MTA3NTpzdGF0aWMgc3RydWN0IHBjaV9kcml2ZXIgYXRoX3BjaV9kcml2ZXIgPSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3BjaS5jLTEwNzYtXFx0Lm5hbWUgICAgICAgPSBcXFwiYXRoOWtcXFwiLFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOS0wNlQwODowOToyNy42MDQ5MDI3NTdaIiwiU2VxIjoxNywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjctZmxhc2giLCJEdXJhdGlvbiI6NTM5NDMwNTA4MywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipNeSBBbmFseXNpcyBvZiB0aGUgYXRoOWsgV2lyZWxlc3MgRHJpdmVyIFN0cnVjdHVyZSoqXG5cbk9rYXksIHNvIEknbSBkaWdnaW5nIGludG8gdGhpcyBgYXRoOWtfaGlmX3VzYl9kcml2ZXJgIGFuZCBob3cgaXQgcmVsYXRlcyB0byB0aGUgYGF0aDlrX2h0Y2AgZHJpdmVyLiAgTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRvIGNvbmZpcm0gdGhlIGNvbm5lY3Rpb24gYmV0d2VlbiB0aGVtLCBhbmQgdGhlIG9idmlvdXMgcGxhY2UgdG8gbG9vayBpcyBgZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2hpZl91c2IuY2AuICBJIG5lZWQgdG8gZGV0ZXJtaW5lIHdoYXQgbW9kdWxlIGBoaWZfdXNiLm9gIGlzIGFjdHVhbGx5IHBhcnQgb2YuIFRoZSBgTWFrZWZpbGVgIGNvbmZpcm1zIHRoaXM6ICBpdCdzIGJ1aWx0IGFzIHBhcnQgb2YgYGF0aDlrX2h0Y2AuICBUaGF0J3MgdGhlIGNvbmZpcm1hdGlvbiBJIG5lZWRlZC5cblxuTm93LCBJJ20gdHJ5aW5nIHRvIHVuZGVyc3RhbmQgdGhlIGludGVycGxheSBiZXR3ZWVuIHRoZSB0d28gbWFpbiBtb2R1bGVzOiBgYXRoOWtgIGFuZCBgYXRoOWtfaHRjYC4gSSdtIHdvbmRlcmluZyBpZiBgYXRoOWtfaHRjYCBsZXZlcmFnZXMgY29kZSBmcm9tIGB4bWl0LmNgIG9yIGlmIHRoZXNlIGFyZSBiYXNpY2FsbHkgc2VwYXJhdGUgZW50aXRpZXMgdGhhdCBqdXN0IGhhcHBlbiB0byBzaGFyZSBgYXRoOWtfY29tbW9uYCBhbmQgYGF0aDlrX2h3YC5cblxuSSBzZWUgdGhhdCBgYXRoOWtgIGlzIGJ1aWx0IGZyb20gYSBzZXQgb2Ygc291cmNlIGZpbGVzIGFuZCBpbmNsdWRlcyBgeG1pdC5jYC4gRnJvbSB0aGlzLCBJJ20gZGV0ZXJtaW5pbmcgdGhhdCBgYXRoOWsub2AgaXMgdXNlZCBmb3IgUENJIGFuZCBBSEIgYmFzZWQgZGV2aWNlcy4gQUhCIGlzIG1haW5seSB1c2VkIG9uIGVtYmVkZGVkIHN5c3RlbXMsIGxpa2UgT3BlbldSVCwgcnVubmluZyBvbiBBdGhlcm9zIE1JUFMvQVJNIFNvQ3MsIHVzaW5nIGRldmljZSB0cmVlcyB0byBkZXNjcmliZSB0aGUgaGFyZHdhcmUuIFBDSSBjb3ZlcnMgc3RhbmRhcmQgUENJL1BDSWUgY2FyZHMsIGxpa2UgdGhlIEFSOTI4MCwgQVI5Mjg1LCBldGMuXG5cblRoZSBpc3N1ZSBpcyB0aGlzOiBhcmUgdGhvc2UgUENJIGRldmljZXMgZXZlbiBlbXVsYXRlZCBpbiBzb21ldGhpbmcgbGlrZSBzdGFuZGFyZCBRRU1VIG9yIEdvb2dsZSBDb21wdXRlIEVuZ2luZT8gQW5kIG9mIGNvdXJzZSwgbm8sIFFFTVUgZG9lc24ndCBlbXVsYXRlIGFueSBBdGhlcm9zIGF0aDlrIFBDSSBkZXZpY2VzLiBJdCBlbXVsYXRlcyBvdGhlciBzdGFuZGFyZCBOSUNzIGxpa2UgZTEwMDAsIHJ0bDgxMzksIG9yIHZpcnRpby1uZXQsIGJ1dCBub3QgdGhlIGF0aDlrLiBUaGUgQUhCIG9uZXMsIHRoZSBwbGF0Zm9ybSBkZXZpY2VzLCB0aGF0J3Mgbm90IGdvaW5nIHRvIHdvcmsgZWl0aGVyIGJlY2F1c2UgdGhvc2UgcmVseSBvbiBPRiBhbmQgZGV2aWNlIHRyZWVzLCB3aGljaCB3b24ndCBiZSBvbiBhbiBhbWQ2NCBRRU1VIGluc3RhbmNlLlxuXG5Pa2F5LCBsZXQgbWUgYmFjayB1cCBhIGxpdHRsZS4gUGVyaGFwcyBgbWFjODAyMTFfaHdzaW1gIGhhcyBzb21ldGhpbmcgdG8gZG8gd2l0aCB0aGUgYXRoOWsgZHJpdmVyPyBJIG5lZWQgdG8gdmVyaWZ5IHdoZXRoZXIgdGhlIGBtYWM4MDIxMV9od3NpbWAgdXNlcyBhbnkgcGFydCBvZiBgYXRoOWtgLiBOb3BlLCBgbWFjODAyMTFfaHdzaW1gIGlzIGEgcHVyZSBzb2Z0d2FyZSBkcml2ZXIgZm9yIG1hYzgwMjExLCBpdCdzIGlycmVsZXZhbnQuIEFuZCB0aGUgc2FtZSBmb3IgYHZpcnRfd2lmaWAuIE9rLCBzbyBkb2VzIGBhdGg5a2AgaGF2ZSBhbnkga2luZCBvZiBtb2NrIG9yIHNpbXVsYXRlZCBkZXZpY2U/IEknbSBnb2luZyB0byBkbyBhIHF1aWNrIHNjYW4gb2YgdGhlIGtlcm5lbCB0cmVlIHRvIGNoZWNrIGZvciBhbnl0aGluZyBsaWtlIHRoYXQuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjI0NDQxLCJPdXRwdXRUb2tlbnMiOjI4LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NjQ5LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTA2VDA4OjA5OjMyLjk5OTIxMDE1WiIsIlNlcSI6MTgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1Nzk3NDUzODMsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiYXRoOWtcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3NcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiXFxuRnVsbCBvdXRwdXQgaXMgdG9vIGxvbmcsIHNob3dpbmcgNTAwIG91dCBvZiAxNDE2NiBsaW5lcy5cXG5Vc2UgbW9yZSBwcmVjaXNlIGV4cHJlc3Npb24gaWYgcG9zc2libGUuXFxuXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL0tjb25maWc9MjY9Y29uZmlnIEFUSF9ERUJVR1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL0tjb25maWctMjktXFx0ICBTYXkgWSwgaWYgeW91IHdhbnQgdG8gZGVidWcgYXRoZXJvcyB3aXJlbGVzcyBkcml2ZXJzLlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9LY29uZmlnOjMwOlxcdCAgUmlnaHQgbm93IG9ubHkgYXRoOWsgbWFrZXMgdXNlIG9mIHRoaXMuXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL0tjb25maWctMzEtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL0tjb25maWc9MzI9Y29uZmlnIEFUSF9UUkFDRVBPSU5UU1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL0tjb25maWctMzctXFx0ICBUaGlzIG9wdGlvbiBlbmFibGVzIHRyYWNlcG9pbnRzIGZvciBhdGhlcm9zIHdpcmVsZXNzIGRyaXZlcnMuXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL0tjb25maWc6Mzg6XFx0ICBDdXJyZW50bHksIGF0aDlrIG1ha2VzIHVzZSBvZiB0aGlzIGZhY2lsaXR5LlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9LY29uZmlnLTM5LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL0tjb25maWc9NTc9c291cmNlIFxcXCJkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNWsvS2NvbmZpZ1xcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvS2NvbmZpZzo1ODpzb3VyY2UgXFxcImRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnXFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9LY29uZmlnLTU5LXNvdXJjZSBcXFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2Nhcmw5MTcwL0tjb25maWdcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvTWFrZWZpbGU9Mj1vYmotJChDT05GSUdfQVRINUspXFx0XFx0Kz0gYXRoNWsvXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL01ha2VmaWxlOjM6b2JqLSQoQ09ORklHX0FUSDlLX0hXKVxcdFxcdCs9IGF0aDlrL1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9NYWtlZmlsZS00LW9iai0kKENPTkZJR19DQVJMOTE3MClcXHRcXHQrPSBjYXJsOTE3MC9cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvaHcuaD02NzM9YXRoMTBrX2lzX3Jzc2lfZW5hYmxlKHN0cnVjdCBhdGgxMGtfaHdfcGFyYW1zICpodyxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvaHcuaC0xMTM2LS8qIFJlZ2lzdGVyIGRlZmluaXRpb25zIGZvciBmaXJzdCBnZW5lcmF0aW9uIGF0aDEwayBjYXJkcy4gVGhlc2UgY2FyZHMgaW5jbHVkZVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvaHcuaDoxMTM3OiAqIGEgbWFjIHdoaWNoIGhhcyBhIHJlZ2lzdGVyIGFsbG9jYXRpb24gc2ltaWxhciB0byBhdGg5ayBhbmQgYXQgbGVhc3Qgc29tZVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvaHcuaC0xMTM4LSAqIHJlZ2lzdGVycyBpbmNsdWRpbmcgdGhlIG9uZXMgcmVsZXZhbnQgZm9yIG1vZGlmeWluZyB0aGUgY292ZXJhZ2UgY2xhc3MgYXJlXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway9ody5oOjExMzk6ICogaWRlbnRpY2FsIHRvIHRoZSBhdGg5ayBkZWZpbml0aW9ucy5cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL2h3LmgtMTE0MC0gKiBUaGVzZSByZWdpc3RlcnMgYXJlIHVzdWFsbHkgbWFuYWdlZCBieSB0aGUgYXRoMTBrIGZpcm13YXJlLiBIb3dldmVyIGJ5XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3NwZWN0cmFsLmM9NjM9aW50IGF0aDEwa19zcGVjdHJhbF9wcm9jZXNzX2ZmdChzdHJ1Y3QgYXRoMTBrICphcixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvc3BlY3RyYWwuYy0xNDAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway9zcGVjdHJhbC5jOjE0MTpcXHQvKiBtYXhfZXhwIGhhcyBiZWVuIGRpcmVjdGx5IHJlcG9ydGVkIGJ5IHByZXZpb3VzIGhhcmR3YXJlIChhdGg5ayksXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway9zcGVjdHJhbC5jLTE0Mi1cXHQgKiBtYXliZSBpdHMgcG9zc2libGUgdG8gZ2V0IGl0IGJ5IG90aGVyIG1lYW5zP1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDVrL2FuaS5jPTY2PWF0aDVrX2FuaV9zZXRfbm9pc2VfaW1tdW5pdHlfbGV2ZWwoc3RydWN0IGF0aDVrX2h3ICphaCwgaW50IGxldmVsKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDVrL2FuaS5jLTY5LVxcdCAqIEFOSSBkb2N1bWVudHMgc3VnZ2VzdCB0aGUgZm9sbG93aW5nIGZpdmUgbGV2ZWxzIHRvIHVzZSwgYnV0IHRoZSBIQUxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNWsvYW5pLmM6NzA6XFx0ICogYW5kIGF0aDlrIHVzZSBvbmx5IHRoZSBsYXN0IHR3byBsZXZlbHMsIG1ha2luZyB0aGlzXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDVrL2FuaS5jLTcxLVxcdCAqIGVzc2VudGlhbGx5IGFuIG9uL29mZiBvcHRpb24uIFRoZXJlICptYXkqIGJlIGEgcmVhc29uIGZvciB0aGlzICg/Pz8pLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDVrL3JlZy5oLTMyLSAqIFRoaXMgZmlsZSBhbHNvIGNvbnRhaW5zIHJlZ2lzdGVyIHZhbHVlcyBmb3VuZCBvbiBhIG1lbW9yeSBkdW1wIG9mXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDVrL3JlZy5oOjMzOiAqIEF0aGVyb3MncyBBUlQgcHJvZ3JhbSAoQXRoZXJvcyBSYWRpbyBUZXN0KSwgb24gYXRoOWssIG9uIGxlZ2FjeS1oYWxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNWsvcmVnLmgtMzQtICogcmVsZWFzZWQgYnkgQXRoZXJvcyBhbmQgb24gdmFyaW91cyBkZWJ1ZyBtZXNzYWdlcyBmb3VuZCBvbiB0aGUgbmV0Llxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWc9MTM9Y29uZmlnIEFUSDlLX0JUQ09FWF9TVVBQT1JUXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZy0xNy1cXHRoZWxwXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWc6MTg6XFx0ICBTYXkgWSwgaWYgeW91IHdhbnQgdG8gdXNlIHRoZSBhdGg5ay9hdGg5a19odGMgcmFkaW9zIHRvZ2V0aGVyIHdpdGhcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZy0xOS1cXHQgIEJsdWV0b290aCBtb2R1bGVzIGluIHRoZSBzYW1lIHN5c3RlbS5cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnPTIxPWNvbmZpZyBBVEg5S1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWctMzEtXFx0ICBjYXJkcywgbGFwdG9wcyB0aGF0IGFscmVhZHkgc2hpcCB3aXRoIHRoZXNlIGNhcmRzIGFuZFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnOjMyOlxcdCAgQVBzIHRoYXQgY29tZSB3aXRoIHRoZXNlIGNhcmRzIHJlZmVyIHRvIGF0aDlrIHdpa2lcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZy0zMy1cXHQgIHByb2R1Y3RzIHBhZ2U6XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWctMzQtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWc6MzU6XFx0ICBodHRwczovL3dpcmVsZXNzLndpa2kua2VybmVsLm9yZy9lbi91c2Vycy9Ecml2ZXJzL2F0aDlrL3Byb2R1Y3RzXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWctMzYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWc6Mzc6XFx0ICBJZiB5b3UgY2hvb3NlIHRvIGJ1aWxkIGEgbW9kdWxlLCBpdCdsbCBiZSBjYWxsZWQgYXRoOWsuXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWctMzgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWc9Mzk9Y29uZmlnIEFUSDlLX1BDSVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnOjQwOlxcdGJvb2wgXFxcIkF0aGVyb3MgYXRoOWsgUENJL1BDSWUgYnVzIHN1cHBvcnRcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWctNDEtXFx0ZGVmYXVsdCB5XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZy00My1cXHRoZWxwXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWc6NDQ6XFx0ICBUaGlzIG9wdGlvbiBlbmFibGVzIHRoZSBQQ0kgYnVzIHN1cHBvcnQgaW4gYXRoOWsuXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWctNDUtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZz00OD1jb25maWcgQVRIOUtfQUhCXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWc6NDk6XFx0Ym9vbCBcXFwiQXRoZXJvcyBhdGg5ayBBSEIgYnVzIHN1cHBvcnRcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWctNTAtXFx0ZGVwZW5kcyBvbiBBVEg5SyBcXHUwMDI2XFx1MDAyNiBPRlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWctNTItXFx0aGVscFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnOjUzOlxcdCAgVGhpcyBvcHRpb24gZW5hYmxlcyB0aGUgQUhCIGJ1cyBzdXBwb3J0IGluIGF0aDlrLlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnLTU0LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWc9NTg9Y29uZmlnIEFUSDlLX0RFQlVHRlNcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZzo1OTpcXHRib29sIFxcXCJBdGhlcm9zIGF0aDlrIGRlYnVnZ2luZ1xcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZy02MC1cXHRkZXBlbmRzIG9uIEFUSDlLIFxcdTAwMjZcXHUwMDI2IERFQlVHX0ZTIFxcdTAwMjZcXHUwMDI2IE1BQzgwMjExX0RFQlVHRlNcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnLTYyLVxcdGhlbHBcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZzo2MzpcXHQgIFNheSBZLCBpZiB5b3UgbmVlZCBhY2Nlc3MgdG8gYXRoOWsncyBzdGF0aXN0aWNzIGZvclxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnLTY0LVxcdCAgaW50ZXJydXB0cywgcmF0ZSBjb250cm9sLCBldGMuXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZz03Nj1jb25maWcgQVRIOUtfVFg5OVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnOjc3OlxcdGJvb2wgXFxcIkF0aGVyb3MgYXRoOWsgVFg5OSB0ZXN0aW5nIHN1cHBvcnRcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWctNzgtXFx0ZGVwZW5kcyBvbiBBVEg5S19ERUJVR0ZTIFxcdTAwMjZcXHUwMDI2IENGRzgwMjExX0NFUlRJRklDQVRJT05fT05VU1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWc9OTY9Y29uZmlnIEFUSDlLX0RGU19DRVJUSUZJRURcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnLTEwMS1cXHQgIFRoaXMgb3B0aW9uIGVuYWJsZXMgREZTIHN1cHBvcnQgZm9yIGluaXRpYXRpbmcgcmFkaWF0aW9uIG9uXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWc6MTAyOlxcdCAgYXRoOWsuIFRoZXJlIGlzIG5vIHdheSB0byBkeW5hbWljYWxseSBkZXRlY3QgaWYgYSBjYXJkIHdhcyBERlNcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZy0xMDMtXFx0ICBjZXJ0aWZpZWQgYW5kIGFzIHN1Y2ggdGhpcyBpcyBsZWZ0IGFzIGEgYnVpbGQgdGltZSBvcHRpb24uIFRoaXNcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnLTEwNi1cXHQgIGhhdmUgb2J0YWluZWQgYXBwcm9wcmlhdGUgcmVndWxhdG9yeSBib2R5IGNlcnRpZmljYXRpb24gZm9yIGFcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZzoxMDc6XFx0ICByZXNwZWN0aXZlIEF0aGVyb3MgY2FyZCBieSB1c2luZyBhdGg5ayBvbiB0aGUgdGFyZ2V0IHNoaXBwaW5nXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWctMTA4LVxcdCAgcGxhdGZvcm1zLlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWc9MTE1PWNvbmZpZyBBVEg5S19EWU5BQ0tcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZzoxMTY6XFx0Ym9vbCBcXFwiQXRoZXJvcyBhdGg5ayBBQ0sgdGltZW91dCBlc3RpbWF0aW9uIGFsZ29yaXRobVxcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZy0xMTctXFx0ZGVwZW5kcyBvbiBBVEg5S1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWctMTE5LVxcdGhlbHBcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZzoxMjA6XFx0ICBUaGlzIG9wdGlvbiBlbmFibGVzIGF0aDlrIGR5bmFtaWMgQUNLIHRpbWVvdXQgZXN0aW1hdGlvbiBhbGdvcml0aG1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZy0xMjEtXFx0ICBiYXNlZCBvbiBBQ0sgZnJhbWUgUlggdGltZXN0YW1wLCBUWCBmcmFtZSB0aW1lc3RhbXAgYW5kIGZyYW1lXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZz0xMzI9Y29uZmlnIEFUSDlLX1JGS0lMTFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnOjEzMzpcXHRib29sIFxcXCJBdGhlcm9zIGF0aDlrIHJma2lsbCBzdXBwb3J0XFxcIiBpZiBFWFBFUlRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZy0xMzQtXFx0ZGVwZW5kcyBvbiBBVEg5S1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWctMTM3LVxcdGhlbHBcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZzoxMzg6XFx0ICBTYXkgWSB0byBoYXZlIGF0aDlrIHBvbGwgdGhlIFJGLUtpbGwgR1BJTyBldmVyeSBjb3VwbGUgb2ZcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZy0xMzktXFx0ICBzZWNvbmRzLiBUdXJuIG9mZiB0byBzYXZlIHBvd2VyLCBidXQgZW5hYmxlIGl0IGlmIHlvdSBoYXZlXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZz0xNDI9Y29uZmlnIEFUSDlLX0NIQU5ORUxfQ09OVEVYVFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWctMTQ2LVxcdGhlbHBcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZzoxNDc6XFx0ICBUaGlzIG9wdGlvbiBlbmFibGVzIGNoYW5uZWwgY29udGV4dCBzdXBwb3J0IGluIGF0aDlrLCB3aGljaCBpcyBuZWVkZWRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZy0xNDgtXFx0ICBmb3IgbXVsdGktY2hhbm5lbCBjb25jdXJyZW5jeS4gRW5hYmxlIHRoaXMgaWYgUDJQIFBvd2VyU2F2ZSBzdXBwb3J0XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZz0xNTE9Y29uZmlnIEFUSDlLX1BDT0VNXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWc6MTUyOlxcdGJvb2wgXFxcIkF0aGVyb3MgYXRoOWsgc3VwcG9ydCBmb3IgUEMgT0VNIGNhcmRzXFxcIiBpZiBFWFBFUlRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZy0xNTMtXFx0ZGVwZW5kcyBvbiBBVEg5S1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWc9MTU2PWNvbmZpZyBBVEg5S19QQ0lfTk9fRUVQUk9NXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWc6MTU3OlxcdHRyaXN0YXRlIFxcXCJBdGhlcm9zIGF0aDlrIHBjaSBsb2FkZXIgZm9yIEVFUFJPTS1sZXNzIGNoaXBzXFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnLTE1OC1cXHRkZXBlbmRzIG9uIEFUSDlLX1BDSVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWctMTYxLVxcdCAgVGhpcyBzZXBhcmF0ZSBkcml2ZXIgcHJvdmlkZXMgYSBsb2FkZXIgaW4gb3JkZXIgdG8gc3VwcG9ydCB0aGVcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZzoxNjI6XFx0ICBBUjUwMFggdG8gQVI5MlhYLWdlbmVyYXRpb24gb2YgYXRoOWsgUENJKGUpIFdpRmkgY2hpcHMsIHdoaWNoIGhhdmVcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZy0xNjMtXFx0ICB0aGVpciBpbml0aWFsaXphdGlvbiBkYXRhICh3aGljaCBjb250YWlucyB0aGUgcmVhbCBQQ0kgRGV2aWNlIElEXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWc6MTY0OlxcdCAgdGhhdCBhdGg5ayB3aWxsIG5lZWQpIHN0b3JlZCB0b2dldGhlciB3aXRoIHRoZSBjYWxpYnJhdGlvbiBkYXRhIG91dFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnOjE2NTpcXHQgIG9mIHJlYWNoIGZvciB0aGUgYXRoOWsgY2hpcC5cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZy0xNjYtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZz0xNzI9Y29uZmlnIEFUSDlLX0hUQ1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWctMTgyLVxcdCAgRm9yIG1vcmUgaW5mb3JtYXRpb246XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWc6MTgzOlxcdCAgaHR0cHM6Ly93aXJlbGVzcy53aWtpLmtlcm5lbC5vcmcvZW4vdXNlcnMvRHJpdmVycy9hdGg5a19odGNcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZy0xODQtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWc6MTg1OlxcdCAgVGhlIGJ1aWx0IG1vZHVsZSB3aWxsIGJlIGF0aDlrX2h0Yy5cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZy0xODYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWc9MTg3PWNvbmZpZyBBVEg5S19IVENfREVCVUdGU1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnOjE4ODpcXHRib29sIFxcXCJBdGhlcm9zIGF0aDlrX2h0YyBkZWJ1Z2dpbmdcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWctMTg5LVxcdGRlcGVuZHMgb24gQVRIOUtfSFRDIFxcdTAwMjZcXHUwMDI2IERFQlVHX0ZTXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZy0xOTEtXFx0aGVscFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnOjE5MjpcXHQgIFNheSBZLCBpZiB5b3UgbmVlZCBhY2Nlc3MgdG8gYXRoOWtfaHRjJ3Mgc3RhdGlzdGljcy5cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZy0xOTMtXFx0ICBBcyB3ZWxsIGFzIGFjY2VzcyB0byB0aGUgRkZUL3NwZWN0cmFsIGRhdGEuXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZz0yMDY9Y29uZmlnIEFUSDlLX0NPTU1PTl9TUEVDVFJBTFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnOjIwNzpcXHRib29sIFxcXCJBdGhlcm9zIGF0aDlrL2F0aDlrX2h0YyBzcGVjdHJhbCBzY2FuIHN1cHBvcnRcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWctMjA4LVxcdGRlcGVuZHMgb24gQVRIOUtfREVCVUdGUyB8fCBBVEg5S19IVENfREVCVUdGU1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL01ha2VmaWxlLTEtIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogSVNDXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL01ha2VmaWxlOjI6YXRoOWsteSArPVxcdGJlYWNvbi5vIFxcXFxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvTWFrZWZpbGUtMy1cXHRcXHRncGlvLm8gXFxcXFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL01ha2VmaWxlLTExLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9NYWtlZmlsZToxMjphdGg5ay0kKENPTkZJR19BVEg5S19CVENPRVhfU1VQUE9SVCkgKz0gbWNpLm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvTWFrZWZpbGU6MTM6YXRoOWstJChDT05GSUdfQVRIOUtfUENJKSArPSBwY2kub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9NYWtlZmlsZToxNDphdGg5ay0kKENPTkZJR19BVEg5S19BSEIpICs9IGFoYi5vXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL01ha2VmaWxlOjE1OmF0aDlrLSQoQ09ORklHX0FUSDlLX0RGU19ERUJVR0ZTKSArPSBkZnNfZGVidWcub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9NYWtlZmlsZToxNjphdGg5ay0kKENPTkZJR19BVEg5S19ERlNfQ0VSVElGSUVEKSArPSBkZnMub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9NYWtlZmlsZToxNzphdGg5ay0kKENPTkZJR19BVEg5S19UWDk5KSArPSB0eDk5Lm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvTWFrZWZpbGU6MTg6YXRoOWstJChDT05GSUdfQVRIOUtfV09XKSArPSB3b3cub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9NYWtlZmlsZToxOTphdGg5ay0kKENPTkZJR19BVEg5S19IV1JORykgKz0gcm5nLm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvTWFrZWZpbGUtMjAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL01ha2VmaWxlOjIxOmF0aDlrLSQoQ09ORklHX0FUSDlLX0RFQlVHRlMpICs9IGRlYnVnLm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvTWFrZWZpbGUtMjItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL01ha2VmaWxlOjIzOmF0aDlrLSQoQ09ORklHX0FUSDlLX1NUQVRJT05fU1RBVElTVElDUykgKz0gZGVidWdfc3RhLm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvTWFrZWZpbGUtMjQtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL01ha2VmaWxlOjI1Om9iai0kKENPTkZJR19BVEg5SykgKz0gYXRoOWsub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9NYWtlZmlsZS0yNi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvTWFrZWZpbGU6Mjc6YXRoOWtfaHcteTo9XFx0XFxcXFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9NYWtlZmlsZS0yOC1cXHRcXHRhcjkwMDJfaHcubyBcXFxcXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvTWFrZWZpbGUtNDctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL01ha2VmaWxlOjQ4OmF0aDlrX2h3LSQoQ09ORklHX0FUSDlLX1dPVykgKz0gYXI5MDAzX3dvdy5vXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL01ha2VmaWxlLTQ5LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9NYWtlZmlsZTo1MDphdGg5a19ody0kKENPTkZJR19BVEg5S19CVENPRVhfU1VQUE9SVCkgKz0gYnRjb2V4Lm8gXFxcXFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9NYWtlZmlsZS01MS1cXHRcXHRcXHRcXHRcXHQgICBhcjkwMDNfbWNpLm8gXFxcXFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL01ha2VmaWxlLTUzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9NYWtlZmlsZTo1NDphdGg5a19ody0kKENPTkZJR19BVEg5S19QQ09FTSkgKz0gYXI5MDAzX3J0dC5vXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL01ha2VmaWxlLTU1LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9NYWtlZmlsZTo1NjphdGg5a19ody0kKENPTkZJR19BVEg5S19EWU5BQ0spICs9IGR5bmFjay5vXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL01ha2VmaWxlLTU3LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9NYWtlZmlsZTo1ODpvYmotJChDT05GSUdfQVRIOUtfSFcpICs9IGF0aDlrX2h3Lm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvTWFrZWZpbGUtNTktXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL01ha2VmaWxlOjYwOm9iai0kKENPTkZJR19BVEg5S19DT01NT04pICs9IGF0aDlrX2NvbW1vbi5vXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL01ha2VmaWxlOjYxOmF0aDlrX2NvbW1vbi15Oj1cXHRjb21tb24ubyBcXFxcXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL01ha2VmaWxlLTYyLVxcdFxcdFxcdGNvbW1vbi1pbml0Lm8gXFxcXFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL01ha2VmaWxlLTY0LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9NYWtlZmlsZTo2NTphdGg5a19jb21tb24tJChDT05GSUdfQVRIOUtfQ09NTU9OX0RFQlVHKSArPSBjb21tb24tZGVidWcub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9NYWtlZmlsZTo2NjphdGg5a19jb21tb24tJChDT05GSUdfQVRIOUtfQ09NTU9OX1NQRUNUUkFMKSArPSBjb21tb24tc3BlY3RyYWwub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9NYWtlZmlsZS02Ny1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvTWFrZWZpbGU6Njg6YXRoOWtfaHRjLXkgKz1cXHRodGNfaHN0Lm8gXFxcXFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9NYWtlZmlsZS02OS1cXHRcXHRoaWZfdXNiLm8gXFxcXFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL01ha2VmaWxlLTc2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9NYWtlZmlsZTo3NzphdGg5a19odGMtJChDT05GSUdfQVRIOUtfSFRDX0RFQlVHRlMpICs9IGh0Y19kcnZfZGVidWcub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9NYWtlZmlsZS03OC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvTWFrZWZpbGU6Nzk6b2JqLSQoQ09ORklHX0FUSDlLX0hUQykgKz0gYXRoOWtfaHRjLm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvTWFrZWZpbGUtODAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL01ha2VmaWxlOjgxOm9iai0kKENPTkZJR19BVEg5S19QQ0lfTk9fRUVQUk9NKSArPSBhdGg5a19wY2lfb3dsX2xvYWRlci5vXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYWhiLmMtMjMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FoYi5jOjI0OiNpbmNsdWRlIFxcXCJhdGg5ay5oXFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9haGIuYy0yNS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYWhiLmM6MjY6c3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgYXRoOWtfb2ZfbWF0Y2hfdGFibGVbXSA9IHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYWhiLmMtMjctXFx0eyAuY29tcGF0aWJsZSA9IFxcXCJxY2EsYXI5MTMwLXdpZmlcXFwiLCAuZGF0YSA9ICh2b2lkICopQVI1NDE2X0FSOTEwMF9ERVZJRCB9LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FoYi5jPTU1PXN0YXRpYyBpbnQgYXRoX2FoYl9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FoYi5jLTc1LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9haGIuYzo3NjpcXHRhdGg5a19maWxsX2NoYW5jdHhfb3BzKCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FoYi5jOjc3OlxcdGh3ID0gaWVlZTgwMjExX2FsbG9jX2h3KHNpemVvZihzdHJ1Y3QgYXRoX3NvZnRjKSwgXFx1MDAyNmF0aDlrX29wcyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FoYi5jLTc4LVxcdGlmIChodyA9PSBOVUxMKSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYWhiLmMtOTEtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FoYi5jOjkyOlxcdHJldCA9IHJlcXVlc3RfaXJxKGlycSwgYXRoX2lzciwgSVJRRl9TSEFSRUQsIFxcXCJhdGg5a1xcXCIsIHNjKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYWhiLmMtOTMtXFx0aWYgKHJldCkge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FoYi5jLTk4LVxcdGRldl9pZCA9ICh1MTYpKGtlcm5lbF91bG9uZ190KW9mX2RldmljZV9nZXRfbWF0Y2hfZGF0YShcXHUwMDI2cGRldi1cXHUwMDNlZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYWhiLmM6OTk6XFx0cmV0ID0gYXRoOWtfaW5pdF9kZXZpY2UoZGV2X2lkLCBzYywgXFx1MDAyNmF0aF9haGJfYnVzX29wcyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FoYi5jLTEwMC1cXHRpZiAocmV0KSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYWhiLmMtMTA1LVxcdGFoID0gc2MtXFx1MDAzZXNjX2FoO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9haGIuYzoxMDY6XFx0YXRoOWtfaHdfbmFtZShhaCwgaHdfbmFtZSwgc2l6ZW9mKGh3X25hbWUpKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYWhiLmMtMTA3LVxcdHdpcGh5X2luZm8oaHctXFx1MDAzZXdpcGh5LCBcXFwiJXMgbWVtPTB4JXAsIGlycT0lZFxcXFxuXFxcIixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9haGIuYz0xMTk9c3RhdGljIHZvaWQgYXRoX2FoYl9yZW1vdmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9haGIuYy0xMjUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FoYi5jOjEyNjpcXHRcXHRhdGg5a19kZWluaXRfZGV2aWNlKHNjKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYWhiLmMtMTI3LVxcdFxcdGZyZWVfaXJxKHNjLVxcdTAwM2VpcnEsIHNjKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9haGIuYz0xMzI9c3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kcml2ZXIgYXRoX2FoYl9kcml2ZXIgPSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYWhiLmMtMTM1LVxcdC5kcml2ZXIgPSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FoYi5jOjEzNjpcXHRcXHQubmFtZSA9IFxcXCJhdGg5a1xcXCIsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FoYi5jOjEzNzpcXHRcXHQub2ZfbWF0Y2hfdGFibGUgPSBhdGg5a19vZl9tYXRjaF90YWJsZSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYWhiLmMtMTM4LVxcdH0sXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYWhiLmMtMTQwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9haGIuYzoxNDE6TU9EVUxFX0RFVklDRV9UQUJMRShvZiwgYXRoOWtfb2ZfbWF0Y2hfdGFibGUpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9haGIuYy0xNDItXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmM9ODU9c3RhdGljIGNvbnN0IHN0cnVjdCBhbmlfY2NrX2xldmVsX2VudHJ5IGNja19sZXZlbF90YWJsZVtdID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jLTEwNi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmM6MTA3OnN0YXRpYyB2b2lkIGF0aDlrX2h3X3VwZGF0ZV9taWJzdGF0cyhzdHJ1Y3QgYXRoX2h3ICphaCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmM6MTA4OlxcdFxcdFxcdFxcdCAgICAgc3RydWN0IGF0aDlrX21pYl9zdGF0cyAqc3RhdHMpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jLTEwOS17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmMtMTI2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYzoxMjc6c3RhdGljIHZvaWQgYXRoOWtfYW5pX3Jlc3RhcnQoc3RydWN0IGF0aF9odyAqYWgpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jLTEyOC17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmMtMTQxLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYzoxNDI6XFx0YXRoOWtfaHdfdXBkYXRlX21pYnN0YXRzKGFoLCBcXHUwMDI2YWgtXFx1MDAzZWFoX21pYlN0YXRzKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmMtMTQzLVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jLTE0OC0vKiBBZGp1c3QgdGhlIE9GRE0gTm9pc2UgSW1tdW5pdHkgTGV2ZWwgKi9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmM6MTQ5OnN0YXRpYyB2b2lkIGF0aDlrX2h3X3NldF9vZmRtX25pbChzdHJ1Y3QgYXRoX2h3ICphaCwgdTggaW1tdW5pdHlMZXZlbCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmMtMTUwLVxcdFxcdFxcdFxcdCAgYm9vbCBzY2FuKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jLTE1Mi1cXHRzdHJ1Y3QgYXI1NDE2QW5pU3RhdGUgKmFuaVN0YXRlID0gXFx1MDAyNmFoLVxcdTAwM2Vhbmk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jOjE1MzpcXHRzdHJ1Y3QgYXRoX2NvbW1vbiAqY29tbW9uID0gYXRoOWtfaHdfY29tbW9uKGFoKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmMtMTU0LVxcdGNvbnN0IHN0cnVjdCBhbmlfb2ZkbV9sZXZlbF9lbnRyeSAqZW50cnlfb2ZkbTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYy0xNzMtXFx0aWYgKGFuaVN0YXRlLVxcdTAwM2VzcHVySW1tdW5pdHlMZXZlbCAhPSBlbnRyeV9vZmRtLVxcdTAwM2VzcHVyX2ltbXVuaXR5X2xldmVsKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYzoxNzQ6XFx0XFx0YXRoOWtfaHdfYW5pX2NvbnRyb2woYWgsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jLTE3NS1cXHRcXHRcXHRcXHQgICAgIEFUSDlLX0FOSV9TUFVSX0lNTVVOSVRZX0xFVkVMLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jLTE3OS1cXHQgICAgZW50cnlfb2ZkbS1cXHUwMDNlZmlyX3N0ZXBfbGV2ZWwgXFx1MDAzZT0gZW50cnlfY2NrLVxcdTAwM2VmaXJfc3RlcF9sZXZlbClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmM6MTgwOlxcdFxcdGF0aDlrX2h3X2FuaV9jb250cm9sKGFoLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYy0xODEtXFx0XFx0XFx0XFx0ICAgICBBVEg5S19BTklfRklSU1RFUF9MRVZFTCxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYy0yMDItXFx0aWYgKGFuaVN0YXRlLVxcdTAwM2VvZmRtV2Vha1NpZ0RldGVjdCAhPSB3ZWFrX3NpZylcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmM6MjAzOlxcdFxcdGF0aDlrX2h3X2FuaV9jb250cm9sKGFoLCBBVEg5S19BTklfT0ZETV9XRUFLX1NJR05BTF9ERVRFQ1RJT04sXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jLTIwNC1cXHRcXHRcXHRcXHQgICAgIHdlYWtfc2lnKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYy0yMTctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jOjIxODpzdGF0aWMgdm9pZCBhdGg5a19od19hbmlfb2ZkbV9lcnJfdHJpZ2dlcihzdHJ1Y3QgYXRoX2h3ICphaClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmMtMjE5LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYy0yMjItXFx0aWYgKGFuaVN0YXRlLVxcdTAwM2VvZmRtTm9pc2VJbW11bml0eUxldmVsIFxcdTAwM2MgQVRIOUtfQU5JX09GRE1fTUFYX0xFVkVMKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYzoyMjM6XFx0XFx0YXRoOWtfaHdfc2V0X29mZG1fbmlsKGFoLCBhbmlTdGF0ZS1cXHUwMDNlb2ZkbU5vaXNlSW1tdW5pdHlMZXZlbCArIDEsIGZhbHNlKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmMtMjI0LX1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYy0yMjgtICovXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jOjIyOTpzdGF0aWMgdm9pZCBhdGg5a19od19zZXRfY2NrX25pbChzdHJ1Y3QgYXRoX2h3ICphaCwgdV9pbnQ4X3QgaW1tdW5pdHlMZXZlbCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmMtMjMwLVxcdFxcdFxcdFxcdCBib29sIHNjYW4pXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmMtMjMyLVxcdHN0cnVjdCBhcjU0MTZBbmlTdGF0ZSAqYW5pU3RhdGUgPSBcXHUwMDI2YWgtXFx1MDAzZWFuaTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmM6MjMzOlxcdHN0cnVjdCBhdGhfY29tbW9uICpjb21tb24gPSBhdGg5a19od19jb21tb24oYWgpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYy0yMzQtXFx0Y29uc3Qgc3RydWN0IGFuaV9vZmRtX2xldmVsX2VudHJ5ICplbnRyeV9vZmRtO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jLTI1Ny1cXHQgICAgZW50cnlfY2NrLVxcdTAwM2VmaXJfc3RlcF9sZXZlbCBcXHUwMDNlPSBlbnRyeV9vZmRtLVxcdTAwM2VmaXJfc3RlcF9sZXZlbClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmM6MjU4OlxcdFxcdGF0aDlrX2h3X2FuaV9jb250cm9sKGFoLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYy0yNTktXFx0XFx0XFx0XFx0ICAgICBBVEg5S19BTklfRklSU1RFUF9MRVZFTCxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYy0yNjctXFx0aWYgKGFuaVN0YXRlLVxcdTAwM2VtcmNDQ0sgIT0gZW50cnlfY2NrLVxcdTAwM2VtcmNfY2NrX29uKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYzoyNjg6XFx0XFx0YXRoOWtfaHdfYW5pX2NvbnRyb2woYWgsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jLTI2OS1cXHRcXHRcXHRcXHQgICAgIEFUSDlLX0FOSV9NUkNfQ0NLLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jLTI3Mi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmM6MjczOnN0YXRpYyB2b2lkIGF0aDlrX2h3X2FuaV9jY2tfZXJyX3RyaWdnZXIoc3RydWN0IGF0aF9odyAqYWgpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jLTI3NC17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmMtMjc3LVxcdGlmIChhbmlTdGF0ZS1cXHUwMDNlY2NrTm9pc2VJbW11bml0eUxldmVsIFxcdTAwM2MgQVRIOUtfQU5JX0NDS19NQVhfTEVWRUwpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jOjI3ODpcXHRcXHRhdGg5a19od19zZXRfY2NrX25pbChhaCwgYW5pU3RhdGUtXFx1MDAzZWNja05vaXNlSW1tdW5pdHlMZXZlbCArIDEsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jLTI3OS1cXHRcXHRcXHRcXHQgICAgIGZhbHNlKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYy0yODUtICovXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jOjI4NjpzdGF0aWMgdm9pZCBhdGg5a19od19hbmlfbG93ZXJfaW1tdW5pdHkoc3RydWN0IGF0aF9odyAqYWgpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jLTI4Ny17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmMtMjkyLVxcdCAgICAoYW5pU3RhdGUtXFx1MDAzZW9mZG1zVHVybiB8fCBhbmlTdGF0ZS1cXHUwMDNlY2NrTm9pc2VJbW11bml0eUxldmVsID09IDApKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jOjI5MzpcXHRcXHRhdGg5a19od19zZXRfb2ZkbV9uaWwoYWgsIGFuaVN0YXRlLVxcdTAwM2VvZmRtTm9pc2VJbW11bml0eUxldmVsIC0gMSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmMtMjk0LVxcdFxcdFxcdFxcdCAgICAgIGZhbHNlKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYy0yOTktXFx0aWYgKGFuaVN0YXRlLVxcdTAwM2VjY2tOb2lzZUltbXVuaXR5TGV2ZWwgXFx1MDAzZSAwKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYzozMDA6XFx0XFx0YXRoOWtfaHdfc2V0X2Nja19uaWwoYWgsIGFuaVN0YXRlLVxcdTAwM2VjY2tOb2lzZUltbXVuaXR5TGV2ZWwgLSAxLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYy0zMDEtXFx0XFx0XFx0XFx0ICAgICBmYWxzZSk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmMtMzA4LSAqL1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYzozMDk6dm9pZCBhdGg5a19hbmlfcmVzZXQoc3RydWN0IGF0aF9odyAqYWgsIGJvb2wgaXNfc2Nhbm5pbmcpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jLTMxMC17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jLTMxMS1cXHRzdHJ1Y3QgYXI1NDE2QW5pU3RhdGUgKmFuaVN0YXRlID0gXFx1MDAyNmFoLVxcdTAwM2Vhbmk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jOjMxMjpcXHRzdHJ1Y3QgYXRoOWtfY2hhbm5lbCAqY2hhbiA9IGFoLVxcdTAwM2VjdXJjaGFuO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYzozMTM6XFx0c3RydWN0IGF0aF9jb21tb24gKmNvbW1vbiA9IGF0aDlrX2h3X2NvbW1vbihhaCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jLTMxNC1cXHRpbnQgb2ZkbV9uaWwsIGNja19uaWw7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmMtMzYyLVxcdH1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmM6MzYzOlxcdGF0aDlrX2h3X3NldF9vZmRtX25pbChhaCwgb2ZkbV9uaWwsIGlzX3NjYW5uaW5nKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmM6MzY0OlxcdGF0aDlrX2h3X3NldF9jY2tfbmlsKGFoLCBjY2tfbmlsLCBpc19zY2FubmluZyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jLTM2NS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmM6MzY2OlxcdGF0aDlrX2FuaV9yZXN0YXJ0KGFoKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmMtMzY3LX1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmMtMzY4LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYzozNjk6c3RhdGljIGJvb2wgYXRoOWtfaHdfYW5pX3JlYWRfY291bnRlcnMoc3RydWN0IGF0aF9odyAqYWgpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jLTM3MC17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jOjM3MTpcXHRzdHJ1Y3QgYXRoX2NvbW1vbiAqY29tbW9uID0gYXRoOWtfaHdfY29tbW9uKGFoKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmMtMzcyLVxcdHN0cnVjdCBhcjU0MTZBbmlTdGF0ZSAqYW5pU3RhdGUgPSBcXHUwMDI2YWgtXFx1MDAzZWFuaTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYy0zODAtXFx0XFx0YWgtXFx1MDAzZXN0YXRzLmFzdF9hbmlfbG5lZ19vcl9semVybysrO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYzozODE6XFx0XFx0YXRoOWtfYW5pX3Jlc3RhcnQoYWgpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYy0zODItXFx0XFx0cmV0dXJuIGZhbHNlO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jLTM4Ni1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmM6Mzg3OlxcdGF0aDlrX2h3X3VwZGF0ZV9taWJzdGF0cyhhaCwgXFx1MDAyNmFoLVxcdTAwM2VhaF9taWJTdGF0cyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jLTM4OC1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYy00MDAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jOjQwMTp2b2lkIGF0aDlrX2h3X2FuaV9tb25pdG9yKHN0cnVjdCBhdGhfaHcgKmFoLCBzdHJ1Y3QgYXRoOWtfY2hhbm5lbCAqY2hhbilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmMtNDAyLXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmMtNDAzLVxcdHN0cnVjdCBhcjU0MTZBbmlTdGF0ZSAqYW5pU3RhdGUgPSBcXHUwMDI2YWgtXFx1MDAzZWFuaTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmM6NDA0OlxcdHN0cnVjdCBhdGhfY29tbW9uICpjb21tb24gPSBhdGg5a19od19jb21tb24oYWgpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYy00MDUtXFx0dTMyIG9mZG1QaHlFcnJSYXRlLCBjY2tQaHlFcnJSYXRlO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYy00MDYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jOjQwNzpcXHRpZiAoIWF0aDlrX2h3X2FuaV9yZWFkX2NvdW50ZXJzKGFoKSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmMtNDA4LVxcdFxcdHJldHVybjtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYy00MjQtXFx0XFx0ICAgIG9mZG1QaHlFcnJSYXRlIFxcdTAwM2MgYWgtXFx1MDAzZWNvbmZpZy5vZmRtX3RyaWdfbG93KSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jOjQyNTpcXHRcXHRcXHRhdGg5a19od19hbmlfbG93ZXJfaW1tdW5pdHkoYWgpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYy00MjYtXFx0XFx0XFx0YW5pU3RhdGUtXFx1MDAzZW9mZG1zVHVybiA9ICFhbmlTdGF0ZS1cXHUwMDNlb2ZkbXNUdXJuO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYy00MjctXFx0XFx0fSBlbHNlIGlmIChvZmRtUGh5RXJyUmF0ZSBcXHUwMDNlIGFoLVxcdTAwM2Vjb25maWcub2ZkbV90cmlnX2hpZ2gpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmM6NDI4OlxcdFxcdFxcdGF0aDlrX2h3X2FuaV9vZmRtX2Vycl90cmlnZ2VyKGFoKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmMtNDI5LVxcdFxcdFxcdGFuaVN0YXRlLVxcdTAwM2VvZmRtc1R1cm4gPSBmYWxzZTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmMtNDMwLVxcdFxcdH0gZWxzZSBpZiAoY2NrUGh5RXJyUmF0ZSBcXHUwMDNlIGFoLVxcdTAwM2Vjb25maWcuY2NrX3RyaWdfaGlnaCkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYzo0MzE6XFx0XFx0XFx0YXRoOWtfaHdfYW5pX2Nja19lcnJfdHJpZ2dlcihhaCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jLTQzMi1cXHRcXHRcXHRhbmlTdGF0ZS1cXHUwMDNlb2ZkbXNUdXJuID0gdHJ1ZTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYy00MzUtXFx0XFx0XFx0XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jOjQzNjpcXHRcXHRhdGg5a19hbmlfcmVzdGFydChhaCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jLTQzNy1cXHR9XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jLTQzOC19XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jOjQzOTpFWFBPUlRfU1lNQk9MKGF0aDlrX2h3X2FuaV9tb25pdG9yKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmMtNDQwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYzo0NDE6dm9pZCBhdGg5a19lbmFibGVfbWliX2NvdW50ZXJzKHN0cnVjdCBhdGhfaHcgKmFoKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYy00NDIte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYzo0NDM6XFx0c3RydWN0IGF0aF9jb21tb24gKmNvbW1vbiA9IGF0aDlrX2h3X2NvbW1vbihhaCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jLTQ0NC1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYy00NDYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jOjQ0NzpcXHRhdGg5a19od191cGRhdGVfbWlic3RhdHMoYWgsIFxcdTAwMjZhaC1cXHUwMDNlYWhfbWliU3RhdHMpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYy00NDgtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmMtNDYyLS8qIEZyZWV6ZSB0aGUgTUlCIGNvdW50ZXJzLCBnZXQgdGhlIHN0YXRzIGFuZCB0aGVuIGNsZWFyIHRoZW0gKi9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmM6NDYzOnZvaWQgYXRoOWtfaHdfZGlzYWJsZV9taWJfY291bnRlcnMoc3RydWN0IGF0aF9odyAqYWgpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jLTQ2NC17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jOjQ2NTpcXHRzdHJ1Y3QgYXRoX2NvbW1vbiAqY29tbW9uID0gYXRoOWtfaHdfY29tbW9uKGFoKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmMtNDY2LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jLTQ2OS1cXHRSRUdfV1JJVEUoYWgsIEFSX01JQkMsIEFSX01JQkNfRk1DKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmM6NDcwOlxcdGF0aDlrX2h3X3VwZGF0ZV9taWJzdGF0cyhhaCwgXFx1MDAyNmFoLVxcdTAwM2VhaF9taWJTdGF0cyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jLTQ3MS1cXHRSRUdfV1JJVEUoYWgsIEFSX01JQkMsIEFSX01JQkNfQ01DKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYy00NzQtfVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYzo0NzU6RVhQT1JUX1NZTUJPTChhdGg5a19od19kaXNhYmxlX21pYl9jb3VudGVycyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jLTQ3Ni1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmM6NDc3OnZvaWQgYXRoOWtfaHdfYW5pX2luaXQoc3RydWN0IGF0aF9odyAqYWgpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jLTQ3OC17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jOjQ3OTpcXHRzdHJ1Y3QgYXRoX2NvbW1vbiAqY29tbW9uID0gYXRoOWtfaHdfY29tbW9uKGFoKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmMtNDgwLVxcdHN0cnVjdCBhcjU0MTZBbmlTdGF0ZSAqYW5pID0gXFx1MDAyNmFoLVxcdTAwM2Vhbmk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmMtNTEwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYzo1MTE6XFx0YXRoOWtfYW5pX3Jlc3RhcnQoYWgpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYzo1MTI6XFx0YXRoOWtfZW5hYmxlX21pYl9jb3VudGVycyhhaCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jLTUxMy19XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmgtNTMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5oOjU0OmVudW0gYXRoOWtfYW5pX2NtZCB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5oLTU1LVxcdEFUSDlLX0FOSV9PRkRNX1dFQUtfU0lHTkFMX0RFVEVDVElPTiA9IDB4MSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuaC02MS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmg6NjI6c3RydWN0IGF0aDlrX21pYl9zdGF0cyB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5oLTYzLVxcdHUzMiBhY2tyY3ZfYmFkO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5oLTcwLS8qIElOSSBkZWZhdWx0IHZhbHVlcyBmb3IgQU5JIHJlZ2lzdGVycyAqL1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuaDo3MTpzdHJ1Y3QgYXRoOWtfYW5pX2RlZmF1bHQge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuaC03Mi1cXHR1MTYgbTFUaHJlc2hMb3c7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmg9ODg9c3RydWN0IGFyNTQxNkFuaVN0YXRlIHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuaC05OS1cXHR1MzIgY2NrUGh5RXJyQ291bnQ7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5oOjEwMDpcXHRzdHJ1Y3QgYXRoOWtfYW5pX2RlZmF1bHQgaW5pRGVmO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuaC0xMDEtfTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuaD0xMDM9c3RydWN0IGFyNTQxNlN0YXRzIHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuaC0xMTYtXFx0dTMyIGF2Z2Jyc3NpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuaDoxMTc6XFx0c3RydWN0IGF0aDlrX21pYl9zdGF0cyBhc3RfbWlic3RhdHM7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5oLTExOC19O1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5oLTEyMC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmg6MTIxOnZvaWQgYXRoOWtfZW5hYmxlX21pYl9jb3VudGVycyhzdHJ1Y3QgYXRoX2h3ICphaCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5oOjEyMjp2b2lkIGF0aDlrX2h3X2Rpc2FibGVfbWliX2NvdW50ZXJzKHN0cnVjdCBhdGhfaHcgKmFoKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmg6MTIzOnZvaWQgYXRoOWtfaHdfYW5pX2luaXQoc3RydWN0IGF0aF9odyAqYWgpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuaC0xMjQtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW50ZW5uYS5jLTE2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbnRlbm5hLmM6MTc6I2luY2x1ZGUgXFxcImF0aDlrLmhcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FudGVubmEuYy0xOC1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbnRlbm5hLmM9NzIxPXZvaWQgYXRoX2FudF9jb21iX3NjYW4oc3RydWN0IGF0aF9zb2Z0YyAqc2MsIHN0cnVjdCBhdGhfcnhfc3RhdHVzICpycylcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbnRlbm5hLmMtNzgwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbnRlbm5hLmM6NzgxOlxcdGF0aDlrX2h3X2FudGRpdl9jb21iX2NvbmZfZ2V0KHNjLVxcdTAwM2VzY19haCwgXFx1MDAyNmRpdl9hbnRfY29uZik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FudGVubmEuYy03ODItXFx0Y3Vycl9hbHRfc2V0ID0gZGl2X2FudF9jb25mLmFsdF9sbmFfY29uZjtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbnRlbm5hLmMtODM5LVxcdGF0aF9hbnRfZGl2X2NvbmZfZmFzdF9kaXZiaWFzKFxcdTAwMjZkaXZfYW50X2NvbmYsIGFudGNvbWIsIGFsdF9yYXRpbyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FudGVubmEuYzo4NDA6XFx0YXRoOWtfaHdfYW50ZGl2X2NvbWJfY29uZl9zZXQoc2MtXFx1MDAzZXNjX2FoLCBcXHUwMDI2ZGl2X2FudF9jb25mKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW50ZW5uYS5jOjg0MTpcXHRhdGg5a19kZWJ1Z19zdGF0X2FudChzYywgXFx1MDAyNmRpdl9hbnRfY29uZiwgbWFpbl9yc3NpX2F2ZywgYWx0X3Jzc2lfYXZnKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW50ZW5uYS5jLTg0Mi1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hcjUwMDhfcGh5LmM9MTExPXN0YXRpYyB2b2lkIGFyNTAwOF9od19waHlfbW9kaWZ5X3J4X2J1ZmZlcih1MzIgKnJmQnVmLCB1MzIgcmVnMzIsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYXI1MDA4X3BoeS5jLTExNy1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYXI1MDA4X3BoeS5jOjExODpcXHR0bXAzMiA9IGF0aDlrX2h3X3JldmVyc2VfYml0cyhyZWczMiwgbnVtQml0cyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FyNTAwOF9waHkuYy0xMTktXFx0YXJyYXlFbnRyeSA9IChmaXJzdEJpdCAtIDEpIC8gODtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hcjUwMDhfcGh5LmM9MTY0PXN0YXRpYyB2b2lkIGFyNTAwOF9od19mb3JjZV9iaWFzKHN0cnVjdCBhdGhfaHcgKmFoLCB1MTYgc3ludGhfZnJlcSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYXI1MDA4X3BoeS5jLTE2NS17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FyNTAwOF9waHkuYzoxNjY6XFx0c3RydWN0IGF0aF9jb21tb24gKmNvbW1vbiA9IGF0aDlrX2h3X2NvbW1vbihhaCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FyNTAwOF9waHkuYy0xNjctXFx0dTMyIHRtcF9yZWc7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYXI1MDA4X3BoeS5jLTE4My1cXHQvKiBwcmUtcmV2ZXJzZSB0aGlzIGZpZWxkICovXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FyNTAwOF9waHkuYzoxODQ6XFx0dG1wX3JlZyA9IGF0aDlrX2h3X3JldmVyc2VfYml0cyhuZXdfYmlhcywgMyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FyNTAwOF9waHkuYy0xODUtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYXI1MDA4X3BoeS5jLTIwMi0gKi9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYXI1MDA4X3BoeS5jOjIwMzpzdGF0aWMgaW50IGFyNTAwOF9od19zZXRfY2hhbm5lbChzdHJ1Y3QgYXRoX2h3ICphaCwgc3RydWN0IGF0aDlrX2NoYW5uZWwgKmNoYW4pXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FyNTAwOF9waHkuYy0yMDQte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hcjUwMDhfcGh5LmM6MjA1OlxcdHN0cnVjdCBhdGhfY29tbW9uICpjb21tb24gPSBhdGg5a19od19jb21tb24oYWgpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hcjUwMDhfcGh5LmMtMjA2LVxcdHUzMiBjaGFubmVsU2VsID0gMDtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hcjUwMDhfcGh5LmMtMjEyLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hcjUwMDhfcGh5LmM6MjEzOlxcdGF0aDlrX2h3X2dldF9jaGFubmVsX2NlbnRlcnMoYWgsIGNoYW4sIFxcdTAwMjZjZW50ZXJzKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYXI1MDA4X3BoeS5jLTIxNC1cXHRmcmVxID0gY2VudGVycy5zeW50aF9jZW50ZXI7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYXI1MDA4X3BoeS5jLTIzMC1cXHRcXHRjaGFubmVsU2VsID0gKGNoYW5uZWxTZWwgXFx1MDAzY1xcdTAwM2MgMikgXFx1MDAyNiAweGZmO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hcjUwMDhfcGh5LmM6MjMxOlxcdFxcdGNoYW5uZWxTZWwgPSBhdGg5a19od19yZXZlcnNlX2JpdHMoY2hhbm5lbFNlbCwgOCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FyNTAwOF9waHkuYy0yMzItXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYXI1MDA4X3BoeS5jLTI0NC1cXHRcXHRjaGFubmVsU2VsID1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYXI1MDA4X3BoeS5jOjI0NTpcXHRcXHQgICAgYXRoOWtfaHdfcmV2ZXJzZV9iaXRzKCgoZnJlcSAtIDQ4MDApIC8gMjAgXFx1MDAzY1xcdTAwM2MgMiksIDgpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hcjUwMDhfcGh5LmM6MjQ2OlxcdFxcdGFNb2RlUmVmU2VsID0gYXRoOWtfaHdfcmV2ZXJzZV9iaXRzKDEsIDIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hcjUwMDhfcGh5LmMtMjQ3LVxcdH0gZWxzZSBpZiAoKGZyZXEgJSAxMCkgPT0gMCkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hcjUwMDhfcGh5LmMtMjQ4LVxcdFxcdGNoYW5uZWxTZWwgPVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hcjUwMDhfcGh5LmM6MjQ5OlxcdFxcdCAgICBhdGg5a19od19yZXZlcnNlX2JpdHMoKChmcmVxIC0gNDgwMCkgLyAxMCBcXHUwMDNjXFx1MDAzYyAxKSwgOCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FyNTAwOF9waHkuYy0yNTAtXFx0XFx0aWYgKEFSX1NSRVZfOTEwMChhaCkgfHwgQVJfU1JFVl85MTYwXzEwX09SX0xBVEVSKGFoKSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYXI1MDA4X3BoeS5jOjI1MTpcXHRcXHRcXHRhTW9kZVJlZlNlbCA9IGF0aDlrX2h3X3JldmVyc2VfYml0cygyLCAyKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYXI1MDA4X3BoeS5jLTI1Mi1cXHRcXHRlbHNlXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FyNTAwOF9waHkuYzoyNTM6XFx0XFx0XFx0YU1vZGVSZWZTZWwgPSBhdGg5a19od19yZXZlcnNlX2JpdHMoMSwgMik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FyNTAwOF9waHkuYy0yNTQtXFx0fSBlbHNlIGlmICgoZnJlcSAlIDUpID09IDApIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYXI1MDA4X3BoeS5jOjI1NTpcXHRcXHRjaGFubmVsU2VsID0gYXRoOWtfaHdfcmV2ZXJzZV9iaXRzKChmcmVxIC0gNDgwMCkgLyA1LCA4KTtcXG5cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMDZUMDg6MDk6MzMuNTc4OTYzMDIzWiIsIlNlcSI6MTksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy43LWZsYXNoIiwiRHVyYXRpb24iOjMwMTUzNDY2NDYsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqRGl2aW5nIGludG8gdGhlIEF0aGVyb3MgOWsgRHJpdmVyJ3MgVHJhbnNtaXNzaW9uIENvZGUqKlxuXG5Pa2F5LCB0aW1lIHRvIGdldCBteSBoYW5kcyBkaXJ0eS4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgaG93IHRoZSBBdGhlcm9zIDlrIGRyaXZlciBoYW5kbGVzIHBhY2tldCB0cmFuc21pc3Npb24sIHNvIEknbGwgc3RhcnQgYnkgY2hlY2tpbmcgb3V0IGBhdGg5ay94bWl0LmNgLiBTcGVjaWZpY2FsbHksIEknbSBoZWFkaW5nIHN0cmFpZ2h0IHRvIHRoZSBoZWFydCBvZiB0aGUgbWF0dGVyIOKAkyBgZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuY2AsIGFuZCBJJ20gaG9taW5nIGluIG9uIHRoZSBjb2RlIGFyb3VuZCBsaW5lIDE4ODQuIFRoYXQncyB1c3VhbGx5IHdoZXJlIHRoZSBjb3JlIHRyYW5zbWlzc2lvbiBsb2dpYyByZXNpZGVzLiBJJ20gZ29pbmcgdG8gY2FyZWZ1bGx5IHJlYWQgdGhpcyBzZWN0aW9uIHRvIGdldCBhIGNsZWFyIHBpY3R1cmUgb2Ygd2hhdCB0aGUgZHJpdmVyIGlzIGRvaW5nIHdoZW4gaXQncyBhY3R1YWxseSBzZW5kaW5nIGRhdGEgb3ZlciB0aGUgYWlyLiBJIG5lZWQgdG8gcmVmcmVzaCBteSBtZW1vcnkgb24gdGhlIGRhdGEgc3RydWN0dXJlcyBpdCdzIHVzaW5nLCB0aGUgcGFja2V0IHF1ZXVlIG1hbmFnZW1lbnQsIHRoZSBoYXJkd2FyZSBpbnRlcmFjdGlvbnPigKYgZXZlcnl0aGluZy4gTGV0J3Mgc2VlIHdoYXQgZ2VtcyB0aGlzIGNvZGUgaG9sZHMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjM4ODk0LCJPdXRwdXRUb2tlbnMiOjQ1LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NTIsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDktMDZUMDg6MDk6MzYuNTk0MzEzNjU5WiIsIlNlcSI6MjAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InJlYWQtZmlsZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjUxMDM3MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkZpbGVcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jXCIsXG4gIFwiRmlyc3RMaW5lXCI6IDE4NzAsXG4gIFwiTGluZUNvdW50XCI6IDQ1XG59IiwiUmVzdWx0cyI6IntcbiAgXCJDb250ZW50c1wiOiBcIjE4NzA6XFx0fVxcbjE4NzE6XFx0XFxuMTg3MjpcXHRzdGF0aWMgdm9pZCBhdGhfZHJhaW5fdHhxX2xpc3Qoc3RydWN0IGF0aF9zb2Z0YyAqc2MsIHN0cnVjdCBhdGhfdHhxICp0eHEsXFxuMTg3MzpcXHRcXHRcXHRcXHQgICAgICAgc3RydWN0IGxpc3RfaGVhZCAqbGlzdClcXG4xODc0OlxcdHtcXG4xODc1OlxcdFxcdHN0cnVjdCBhdGhfYnVmICpiZiwgKmxhc3RiZjtcXG4xODc2OlxcdFxcdHN0cnVjdCBsaXN0X2hlYWQgYmZfaGVhZDtcXG4xODc3OlxcdFxcdHN0cnVjdCBhdGhfdHhfc3RhdHVzIHRzO1xcbjE4Nzg6XFx0XFxuMTg3OTpcXHRcXHRtZW1zZXQoXFx1MDAyNnRzLCAwLCBzaXplb2YodHMpKTtcXG4xODgwOlxcdFxcdHRzLnRzX3N0YXR1cyA9IEFUSDlLX1RYX0ZMVVNIO1xcbjE4ODE6XFx0XFx0SU5JVF9MSVNUX0hFQUQoXFx1MDAyNmJmX2hlYWQpO1xcbjE4ODI6XFx0XFxuMTg4MzpcXHRcXHR3aGlsZSAoIWxpc3RfZW1wdHkobGlzdCkpIHtcXG4xODg0OlxcdFxcdFxcdGJmID0gbGlzdF9maXJzdF9lbnRyeShsaXN0LCBzdHJ1Y3QgYXRoX2J1ZiwgbGlzdCk7XFxuMTg4NTpcXHRcXG4xODg2OlxcdFxcdFxcdGlmIChiZi1cXHUwMDNlYmZfc3RhdGUuc3RhbGUpIHtcXG4xODg3OlxcdFxcdFxcdFxcdHN0cnVjdCBza19idWZmICpza2IgPSBiZi1cXHUwMDNlYmZfbXBkdTtcXG4xODg4OlxcdFxcbjE4ODk6XFx0XFx0XFx0XFx0bGlzdF9kZWwoXFx1MDAyNmJmLVxcdTAwM2VsaXN0KTtcXG4xODkwOlxcdFxcdFxcdFxcdGlmIChiZi1cXHUwMDNlYmZfYnVmX2FkZHIpIHtcXG4xODkxOlxcdFxcdFxcdFxcdFxcdGRtYV91bm1hcF9zaW5nbGUoc2MtXFx1MDAzZWRldiwgYmYtXFx1MDAzZWJmX2J1Zl9hZGRyLFxcbjE4OTI6XFx0XFx0XFx0XFx0XFx0XFx0XFx0IHNrYiA/IHNrYi1cXHUwMDNlbGVuIDogMCxcXG4xODkzOlxcdFxcdFxcdFxcdFxcdFxcdFxcdCBETUFfVE9fREVWSUNFKTtcXG4xODk0OlxcdFxcdFxcdFxcdFxcdGJmLVxcdTAwM2ViZl9idWZfYWRkciA9IDA7XFxuMTg5NTpcXHRcXHRcXHRcXHR9XFxuMTg5NjpcXHRcXHRcXHRcXHRiZi1cXHUwMDNlYmZfbXBkdSA9IE5VTEw7XFxuMTg5NzpcXHRcXHRcXHRcXHRkZXZfa2ZyZWVfc2tiX2FueShza2IpO1xcbjE4OTg6XFx0XFx0XFx0XFx0YXRoX3R4X3JldHVybl9idWZmZXIoc2MsIGJmKTtcXG4xODk5OlxcdFxcdFxcdFxcdGNvbnRpbnVlO1xcbjE5MDA6XFx0XFx0XFx0fVxcbjE5MDE6XFx0XFxuMTkwMjpcXHRcXHRcXHRsYXN0YmYgPSBiZi1cXHUwMDNlYmZfbGFzdGJmO1xcbjE5MDM6XFx0XFx0XFx0bGlzdF9jdXRfcG9zaXRpb24oXFx1MDAyNmJmX2hlYWQsIGxpc3QsIFxcdTAwMjZsYXN0YmYtXFx1MDAzZWxpc3QpO1xcbjE5MDQ6XFx0XFx0XFx0YXRoX3R4X3Byb2Nlc3NfYnVmZmVyKHNjLCB0eHEsIFxcdTAwMjZ0cywgYmYsIFxcdTAwMjZiZl9oZWFkKTtcXG4xOTA1OlxcdFxcdH1cXG4xOTA2OlxcdH1cXG4xOTA3OlxcdFxcbjE5MDg6XFx0LypcXG4xOTA5OlxcdCAqIERyYWluIGEgZ2l2ZW4gVFggcXVldWUgKGNvdWxkIGJlIEJlYWNvbiBvciBEYXRhKVxcbjE5MTA6XFx0ICpcXG4xOTExOlxcdCAqIFRoaXMgYXNzdW1lcyBvdXRwdXQgaGFzIGJlZW4gc3RvcHBlZCBhbmRcXG4xOTEyOlxcdCAqIHdlIGRvIG5vdCBuZWVkIHRvIGJsb2NrIGF0aF90eF90YXNrbGV0LlxcbjE5MTM6XFx0ICovXFxuMTkxNDpcXHR2b2lkIGF0aF9kcmFpbnR4cShzdHJ1Y3QgYXRoX3NvZnRjICpzYywgc3RydWN0IGF0aF90eHEgKnR4cSlcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMDZUMDg6MDk6MzYuNTk0ODI2OTg5WiIsIlNlcSI6MjEsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy43LWZsYXNoIiwiRHVyYXRpb24iOjM0NDIyMjYzNjksIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBteSB0aG91Z2h0IHByb2Nlc3MsIGFzIGlmIEkgd2VyZSBjb25zaWRlcmluZyB0aGlzIGlzc3VlOlxuXG4qKkRlbHZpbmcgaW50byB0aGUgYGF0aDlrYCBEcml2ZXIqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCBgYXRoOWtgLCB0aGUgZHJpdmVyIHRoYXQgaGFuZGxlcyBBdGhlcm9zIFBDSS9QQ0llIGFuZCBBSEIgd2lyZWxlc3MgY2hpcHMsIHBhcnRpY3VsYXJseSB0aG9zZSBBUjcxeHgvQVI5MTMwIHNlcmllcyBkZXZpY2VzLiBOb3csIEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoaXMgZHJpdmVyJ3Mgc2NvcGUgaW4gcmVsYXRpb24gdG8gdGhlIHN5c3RlbSBhcyBhIHdob2xlLiBJJ20gd29uZGVyaW5nOiBBcmUgdGhlcmUgYW55IG90aGVyIGJ1cyB0eXBlcyBpdCBzdXBwb3J0cyB0aGF0IEkgbWlnaHQgYmUgb3Zlcmxvb2tpbmc/IEFuZCBqdXN0IGFzIGltcG9ydGFudGx5LCBhcmUgdGhlcmUgYW55IHNpbXVsYXRpb24gZnJhbWV3b3JrcyB0aGF0IGFyZSBjb21tb25seSB1c2VkIHdpdGggdGhpcyBkcml2ZXIgdGhhdCBjb3VsZCBiZSByZWxldmFudCB0byB0aGUgY3VycmVudCBwcm9ibGVtPyBJIG5lZWQgdG8gYnVpbGQgYSBjb21wcmVoZW5zaXZlIHBpY3R1cmUuIFRoZSBuZXh0IGxvZ2ljYWwgc3RlcCBpcyB0byBkaXZlIHJpZ2h0IGludG8gdGhlIGNvZGUgaXRzZWxmLiBJJ20gZ29pbmcgdG8gcGVyZm9ybSBhIGZpbGUgc2VhcmNoIHdpdGhpbiB0aGUgZHJpdmVyJ3MgY29yZSBkaXJlY3RvcnkgKGBkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYCkgdG8gZ2V0IGEgZnVsbCB2aWV3IG9mIHRoZSBhdmFpbGFibGUgY29tcG9uZW50cyBhbmQgYXNzZXNzIGl0cyBhcmNoaXRlY3R1cmUgaW4gbW9yZSBkZXRhaWwuIFRoYXQgc2hvdWxkIGdpdmUgbWUgYSBnb29kIGhhbmRsZSBvbiBpdHMgZnVuY3Rpb25hbGl0eS5cblxuXG4iLCJJbnB1dFRva2VucyI6Mzk4ODIsIk91dHB1dFRva2VucyI6MjksIk91dHB1dFRob3VnaHRzVG9rZW5zIjo4MSwiVG9vbENhbGxzIjpbInJlYWQtZmlsZSJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTA2VDA4OjA5OjQwLjAzNzA1ODI4OFoiLCJTZXEiOjIyLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJjb2Rlc2VhcmNoLWRpci1pbmRleCIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjIzOTAxMCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkRpclwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5a1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJGaWxlc1wiOiBbXG4gICAgXCJhaGIuY1wiLFxuICAgIFwiYW5pLmNcIixcbiAgICBcImFuaS5oXCIsXG4gICAgXCJhbnRlbm5hLmNcIixcbiAgICBcImFyNTAwOF9pbml0dmFscy5oXCIsXG4gICAgXCJhcjUwMDhfcGh5LmNcIixcbiAgICBcImFyOTAwMV9pbml0dmFscy5oXCIsXG4gICAgXCJhcjkwMDJfY2FsaWIuY1wiLFxuICAgIFwiYXI5MDAyX2h3LmNcIixcbiAgICBcImFyOTAwMl9pbml0dmFscy5oXCIsXG4gICAgXCJhcjkwMDJfbWFjLmNcIixcbiAgICBcImFyOTAwMl9waHkuY1wiLFxuICAgIFwiYXI5MDAyX3BoeS5oXCIsXG4gICAgXCJhcjkwMDNfMnAyX2luaXR2YWxzLmhcIixcbiAgICBcImFyOTAwM19haWMuY1wiLFxuICAgIFwiYXI5MDAzX2FpYy5oXCIsXG4gICAgXCJhcjkwMDNfYnVmZmFsb19pbml0dmFscy5oXCIsXG4gICAgXCJhcjkwMDNfY2FsaWIuY1wiLFxuICAgIFwiYXI5MDAzX2VlcHJvbS5jXCIsXG4gICAgXCJhcjkwMDNfZWVwcm9tLmhcIixcbiAgICBcImFyOTAwM19ody5jXCIsXG4gICAgXCJhcjkwMDNfbWFjLmNcIixcbiAgICBcImFyOTAwM19tYWMuaFwiLFxuICAgIFwiYXI5MDAzX21jaS5jXCIsXG4gICAgXCJhcjkwMDNfbWNpLmhcIixcbiAgICBcImFyOTAwM19wYXByZC5jXCIsXG4gICAgXCJhcjkwMDNfcGh5LmNcIixcbiAgICBcImFyOTAwM19waHkuaFwiLFxuICAgIFwiYXI5MDAzX3J0dC5jXCIsXG4gICAgXCJhcjkwMDNfcnR0LmhcIixcbiAgICBcImFyOTAwM193b3cuY1wiLFxuICAgIFwiYXI5MzMwXzFwMV9pbml0dmFscy5oXCIsXG4gICAgXCJhcjkzMzBfMXAyX2luaXR2YWxzLmhcIixcbiAgICBcImFyOTM0MF9pbml0dmFscy5oXCIsXG4gICAgXCJhcjk0NjJfMnAwX2luaXR2YWxzLmhcIixcbiAgICBcImFyOTQ2Ml8ycDFfaW5pdHZhbHMuaFwiLFxuICAgIFwiYXI5NDg1X2luaXR2YWxzLmhcIixcbiAgICBcImFyOTUzeF9pbml0dmFscy5oXCIsXG4gICAgXCJhcjk1NXhfMXAwX2luaXR2YWxzLmhcIixcbiAgICBcImFyOTU2NV8xcDBfaW5pdHZhbHMuaFwiLFxuICAgIFwiYXI5NTY1XzFwMV9pbml0dmFscy5oXCIsXG4gICAgXCJhcjk1NnhfaW5pdHZhbHMuaFwiLFxuICAgIFwiYXI5NTgwXzFwMF9pbml0dmFscy5oXCIsXG4gICAgXCJhdGg5ay5oXCIsXG4gICAgXCJhdGg5a19wY2lfb3dsX2xvYWRlci5jXCIsXG4gICAgXCJiZWFjb24uY1wiLFxuICAgIFwiYnRjb2V4LmNcIixcbiAgICBcImJ0Y29leC5oXCIsXG4gICAgXCJjYWxpYi5jXCIsXG4gICAgXCJjYWxpYi5oXCIsXG4gICAgXCJjaGFubmVsLmNcIixcbiAgICBcImNvbW1vbi1iZWFjb24uY1wiLFxuICAgIFwiY29tbW9uLWJlYWNvbi5oXCIsXG4gICAgXCJjb21tb24tZGVidWcuY1wiLFxuICAgIFwiY29tbW9uLWRlYnVnLmhcIixcbiAgICBcImNvbW1vbi1pbml0LmNcIixcbiAgICBcImNvbW1vbi1pbml0LmhcIixcbiAgICBcImNvbW1vbi1zcGVjdHJhbC5jXCIsXG4gICAgXCJjb21tb24tc3BlY3RyYWwuaFwiLFxuICAgIFwiY29tbW9uLmNcIixcbiAgICBcImNvbW1vbi5oXCIsXG4gICAgXCJkZWJ1Zy5jXCIsXG4gICAgXCJkZWJ1Zy5oXCIsXG4gICAgXCJkZWJ1Z19zdGEuY1wiLFxuICAgIFwiZGZzLmNcIixcbiAgICBcImRmcy5oXCIsXG4gICAgXCJkZnNfZGVidWcuY1wiLFxuICAgIFwiZGZzX2RlYnVnLmhcIixcbiAgICBcImR5bmFjay5jXCIsXG4gICAgXCJkeW5hY2suaFwiLFxuICAgIFwiZWVwcm9tLmNcIixcbiAgICBcImVlcHJvbS5oXCIsXG4gICAgXCJlZXByb21fNGsuY1wiLFxuICAgIFwiZWVwcm9tXzkyODcuY1wiLFxuICAgIFwiZWVwcm9tX2RlZi5jXCIsXG4gICAgXCJncGlvLmNcIixcbiAgICBcImhpZl91c2IuY1wiLFxuICAgIFwiaGlmX3VzYi5oXCIsXG4gICAgXCJodGMuaFwiLFxuICAgIFwiaHRjX2Rydl9iZWFjb24uY1wiLFxuICAgIFwiaHRjX2Rydl9kZWJ1Zy5jXCIsXG4gICAgXCJodGNfZHJ2X2dwaW8uY1wiLFxuICAgIFwiaHRjX2Rydl9pbml0LmNcIixcbiAgICBcImh0Y19kcnZfbWFpbi5jXCIsXG4gICAgXCJodGNfZHJ2X3R4cnguY1wiLFxuICAgIFwiaHRjX2hzdC5jXCIsXG4gICAgXCJodGNfaHN0LmhcIixcbiAgICBcImh3LW9wcy5oXCIsXG4gICAgXCJody5jXCIsXG4gICAgXCJody5oXCIsXG4gICAgXCJpbml0LmNcIixcbiAgICBcImxpbmsuY1wiLFxuICAgIFwibWFjLmNcIixcbiAgICBcIm1hYy5oXCIsXG4gICAgXCJtYWluLmNcIixcbiAgICBcIm1jaS5jXCIsXG4gICAgXCJtY2kuaFwiLFxuICAgIFwicGNpLmNcIixcbiAgICBcInBoeS5oXCIsXG4gICAgXCJyZWN2LmNcIixcbiAgICBcInJlZy5oXCIsXG4gICAgXCJyZWdfYWljLmhcIixcbiAgICBcInJlZ19tY2kuaFwiLFxuICAgIFwicmVnX3dvdy5oXCIsXG4gICAgXCJybmcuY1wiLFxuICAgIFwidHg5OS5jXCIsXG4gICAgXCJ3bWkuY1wiLFxuICAgIFwid21pLmhcIixcbiAgICBcIndvdy5jXCIsXG4gICAgXCJ4bWl0LmNcIlxuICBdLFxuICBcIlN1YmRpcnNcIjogbnVsbFxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMDZUMDg6MDk6NDAuMDM3MzAwMTM4WiIsIlNlcSI6MjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy43LWZsYXNoIiwiRHVyYXRpb24iOjIwNDc4NjIyNzgsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqSW52ZXN0aWdhdGluZyB0aGUgSFRDIERyaXZlciBmb3IgUG90ZW50aWFsIFJlc291cmNlIE1hbmFnZW1lbnQgSXNzdWVzKipcblxuT2theSwgc28gSSBuZWVkIHRvIGRpZyBpbnRvIHRoZSBIVEMgZHJpdmVyLCBzcGVjaWZpY2FsbHkgdGhlIGBodGNfYCBmaWxlcywgYW5kIHRoZSBgeG1pdC5jYCBmaWxlIHRvIHVuZGVyc3RhbmQgaG93IHRyYW5zbWl0IHF1ZXVlcyBhcmUgbWFuYWdlZCB3aXRoaW4gdGhlIGBhdGg5a19odGNgIGNvbnRleHQuIE15IGluaXRpYWwgdGhvdWdodCBpcyB0byBzZWUgaWYgZnVuY3Rpb25zIGxpa2UgYHhtaXQuY2Agb3IgdGhlIGRyZWFkZWQgYGF0aF9kcmFpbl90eHFfbGlzdGAgYXJlIGV2ZW4gYmVpbmcgKnVzZWQqIGJ5IHRoaXMgcGFydCBvZiB0aGUgZHJpdmVyLiBJZiB0aGV5IGFyZSwgaXQnbGwgZ2l2ZSBtZSBhIGNyaXRpY2FsIGNsdWUgYWJvdXQgaG93IHRoZSBzeXN0ZW0gaGFuZGxlcyBidWZmZXIgcmV0dXJucyBhbmQgcXVldWUgZHJhaW5pbmcuIEkgc2hvdWxkIGFsc28gYnJvYWRlbiB0aGUgc2VhcmNoIHRvIGluY2x1ZGUgb3RoZXIgcG9zc2libHkgcmVsYXRlZCBmdW5jdGlvbnMgaW4gYHhtaXQuY2AsIHNwZWNpZmljYWxseSBmdW5jdGlvbnMgbGlrZSBgYXRoX3R4X3JldHVybl9idWZmZXJgLCBzaW5jZSBpdCdzIHRoZSBjb3JlIG9mIHRyYW5zbWl0LiBJIHdhbnQgdG8gYnVpbGQgYSBjb21wbGV0ZSBtYXAgb2YgdGhlIGtleSBmdW5jdGlvbnMgdGhhdCBjb3VsZCBiZSBhZmZlY3RpbmcgcmVzb3VyY2UgYWxsb2NhdGlvbiwgdG8gaXNvbGF0ZSB0aGUgaXNzdWUuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjQxMjk5LCJPdXRwdXRUb2tlbnMiOjM4LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6OTIsIlRvb2xDYWxscyI6WyJjb2Rlc2VhcmNoLWRpci1pbmRleCJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTA2VDA4OjA5OjQyLjA4NTE2NjU2NloiLCJTZXEiOjI0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTE1NTQ1NjYzLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImF0aF90eF9yZXR1cm5fYnVmZmVyXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5a1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jPTQwNz1zdGF0aWMgc3RydWN0IGF0aF9idWYgKmF0aF90eF9nZXRfYnVmZmVyKHN0cnVjdCBhdGhfc29mdGMgKnNjKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYy00MjUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYzo0MjY6c3RhdGljIHZvaWQgYXRoX3R4X3JldHVybl9idWZmZXIoc3RydWN0IGF0aF9zb2Z0YyAqc2MsIHN0cnVjdCBhdGhfYnVmICpiZilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTQyNy17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jPTE4NzI9c3RhdGljIHZvaWQgYXRoX2RyYWluX3R4cV9saXN0KHN0cnVjdCBhdGhfc29mdGMgKnNjLCBzdHJ1Y3QgYXRoX3R4cSAqdHhxLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYy0xODk3LVxcdFxcdFxcdGRldl9rZnJlZV9za2JfYW55KHNrYik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYzoxODk4OlxcdFxcdFxcdGF0aF90eF9yZXR1cm5fYnVmZmVyKHNjLCBiZik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYy0xODk5LVxcdFxcdFxcdGNvbnRpbnVlO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYz0yMjIwPXN0YXRpYyBzdHJ1Y3QgYXRoX2J1ZiAqYXRoX3R4X3NldHVwX2J1ZmZlcihzdHJ1Y3QgYXRoX3NvZnRjICpzYyxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMtMjI2Mi1cXHRcXHRcXHRcXFwiZG1hX21hcHBpbmdfZXJyb3IoKSBvbiBUWFxcXFxuXFxcIik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYzoyMjYzOlxcdFxcdGF0aF90eF9yZXR1cm5fYnVmZmVyKHNjLCBiZik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYy0yMjY0LVxcdFxcdHJldHVybiBOVUxMO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYz0yNjI5PXN0YXRpYyB2b2lkIGF0aF90eF9wcm9jZXNzcShzdHJ1Y3QgYXRoX3NvZnRjICpzYywgc3RydWN0IGF0aF90eHEgKnR4cSlcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMtMjY5NS1cXHRcXHRcXHRsaXN0X2RlbChcXHUwMDI2YmZfaGVsZC1cXHUwMDNlbGlzdCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYzoyNjk2OlxcdFxcdFxcdGF0aF90eF9yZXR1cm5fYnVmZmVyKHNjLCBiZl9oZWxkKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTI2OTctXFx0XFx0fVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYz0yNzE4PXZvaWQgYXRoX3R4X2VkbWFfdGFza2xldChzdHJ1Y3QgYXRoX3NvZnRjICpzYylcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMtMjc3NS1cXHRcXHRcXHRsaXN0X2RlbChcXHUwMDI2YmYtXFx1MDAzZWxpc3QpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmM6Mjc3NjpcXHRcXHRcXHRhdGhfdHhfcmV0dXJuX2J1ZmZlcihzYywgYmYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMtMjc3Ny1cXHRcXHRcXHRiZiA9IGxpc3RfZmlyc3RfZW50cnkoZmlmb19saXN0LCBzdHJ1Y3QgYXRoX2J1ZiwgbGlzdCk7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTA2VDA4OjA5OjQyLjIwMDcxNzI0OVoiLCJTZXEiOjI1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuNy1mbGFzaCIsIkR1cmF0aW9uIjo2NzUwNDcxOTA1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgUmVhY2hhYmlsaXR5IG9mIGB4bWl0LmNgIGluIHRoZSBgYXRoOWtgIE1vZHVsZSoqXG5cbk9rYXksIHNvIEkgbmVlZCB0byBmaWd1cmUgb3V0IGlmIHRoaXMgYHhtaXQuY2AgZmlsZSBpcyBhY3R1YWxseSByZWFjaGFibGUgZm9yIGZ1enppbmcuIEZpcnN0LCBJJ2xsIGNoZWNrIHRoZSBgTWFrZWZpbGVgIHRvIHNlZSBob3cgaXQncyBidWlsdC4gQWxyaWdodCwgaXQgbG9va3MgbGlrZSBgeG1pdC5jYCBpcyBjb21waWxlZCBkaXJlY3RseSBpbnRvIHRoZSBgYXRoOWtgIG1vZHVsZSwgYWxvbmcgd2l0aCBhIGJ1bmNoIG9mIG90aGVyIGNvcmUgZmlsZXMuIEdvb2QsIHRoYXQncyBhIHN0YXJ0aW5nIHBvaW50LlxuXG5Ob3csIHRoZSBgYXRoOWtgIG1vZHVsZSBpdHNlbGYuLi4gSSdtIHByZXR0eSBzdXJlIHRoYXQncyBvbmx5IGxvYWRlZCB3aGVuIGl0J3MgYm91bmQgdG8gUENJIG9yIEFIQiBoYXJkd2FyZS4gTGV0J3MgY29uZmlybSB0aGF0LiBSaWdodCwgYHBjaS5jYCB1c2VzIGEgUENJIGRldmljZSB0YWJsZSAoYGF0aF9wY2lfaWRfdGFibGVgKSwgYW5kIGBhaGIuY2AgdXNlcyBhbiBcIm9mXCIgbWF0Y2ggdGFibGUgZm9yIHRoZSBBSEIgcGxhdGZvcm0gZGV2aWNlLiAgTm8gc3VycHJpc2VzIHRoZXJlLlxuXG5UaGUgcXVlc3Rpb24gaXMsIGNhbiBJIGdldCB0byBgYXRoOWtgIGluIGEgc3RhbmRhcmQgUUVNVSBlbnZpcm9ubWVudD8gIEkga25vdyBmcm9tIGV4cGVyaWVuY2UgdGhhdCBzdGFuZGFyZCBRRU1VIGRvZXNuJ3QgZW11bGF0ZSBBdGhlcm9zIFBDSSBkZXZpY2VzLCB0aGUgQVI5MjgwLCBvciB0aGUgbGlrZS4gU28sIGRpcmVjdGx5IGVtdWxhdGluZyB0aGUgaGFyZHdhcmUgaXNuJ3QgYW4gb3B0aW9uLlxuXG5UaW1lIHRvIHJldmlldyB0aGUgZ3VpZGVsaW5lcy4gIFNlY3Rpb24gMiwgdGhlIFwibmVnYXRpdmUgY3JpdGVyaWFcIiBmb3IgZnV6emluZywgbWVudGlvbnMgXCJTdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUgaGFyZHdhcmUuXCIgSXQgc3BlY2lmaWNhbGx5IGNhbGxzIG91dCB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2hlcyBhbmQgZHJpdmVycyB0aGF0IG5lZWQgcmVhbCBoYXJkd2FyZSwgd2hpY2ggYXJlbid0IGVtdWxhdGVkLiAqVGhhdCogbG9va3MgcmVsZXZhbnQuIFZpcnR1YWwgYnVzZXMgYXJlLCBvbiB0aGUgb3RoZXIgaGFuZCwgKnBvc2l0aXZlKiBjcml0ZXJpYS5cblxuV2FpdCBhIHNlY29uZC4uLiBjb3VsZCBgYXRoOWtgIHNvbWVob3cgYmUgcmVhY2hhYmxlIHRocm91Z2ggVVNCPyBJIHNlZW0gdG8gcmVtZW1iZXIgQXRoZXJvcyBoYXMgVVNCIGRyaXZlcnMuIE9rYXksIGxldCdzIGxvb2sgYXQgdGhhdCBhbmdsZS4gQWhhISBUaGVyZSdzIGFuIGBhdGg5a19odGNgIGRyaXZlciBmb3IgVVNCLiBCdXQgdGhhdCdzIGEgKkhvc3QgVGFyZ2V0IENvbW11bmljYXRpb24qIGZpcm13YXJlIG92ZXIgVVNCIHNldHVwLiBIbW0sIEkga25vdyB0aGF0IG9uZTsgSSBoYXZlIGEgbG90IG9mIGV4cGVyaWVuY2Ugd2l0aCB0aGF0LiBJdCdzIGdvdCBpdHMgb3duIGZpbGVzIGxpa2UgYGh0Y19kcnZfdHhyeC5jYCBhbmQgYGh0Y19kcnZfbWFpbi5jYC4gQW5kIGJhc2VkIG9uIHRoZSBuYW1lIGFsb25lLCBpdCBkb2Vzbid0IHNvdW5kIGxpa2UgaXQgZXZlbiAqY29tcGlsZXMqIGB4bWl0LmNgLCBvciBjYWxscyBhbnl0aGluZyBpbiBgeG1pdC5jYC5cblxuVG8gYmUgYWJzb2x1dGVseSBzdXJlLCBJJ2xsIHNlYXJjaCBmb3IgY3Jvc3MtcmVmZXJlbmNlcyBmcm9tIGBhdGg5a19odGNgIGludG8gYHhtaXQuY2AuIFRpbWUgdG8gZ3JlcCBgeG1pdC5jYCBmb3IgYW55IG5vbi1zdGF0aWMgZnVuY3Rpb24gZGVmaW5pdGlvbnMgYW5kIHNlZSBpZiBhbnl0aGluZyBjYWxscyB0aGVtLlxuXG5cbiIsIklucHV0VG9rZW5zIjo0MjM3OCwiT3V0cHV0VG9rZW5zIjo2NSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjc0NSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOS0wNlQwODowOTo0OC45NTExOTMxNDRaIiwiU2VxIjoyNiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjY1NDM5Njk2LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIl5bYS16QS1aX10uKlxcXFxiKGF0aF98YXRoOWtfKVthLXpBLVowLTlfXStcXFxcKFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmM9NDQ9c3RhdGljIHUxNiBiaXRzX3Blcl9zeW1ib2xbXVsyXSA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMtNTUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYzo1NjpzdGF0aWMgdm9pZCBhdGhfdHhfc2VuZF9ub3JtYWwoc3RydWN0IGF0aF9zb2Z0YyAqc2MsIHN0cnVjdCBhdGhfdHhxICp0eHEsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYy01Ny1cXHRcXHRcXHQgICAgICAgc3RydWN0IGF0aF9hdHhfdGlkICp0aWQsIHN0cnVjdCBza19idWZmICpza2IpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmM6NTg6c3RhdGljIHZvaWQgYXRoX3R4X2NvbXBsZXRlKHN0cnVjdCBhdGhfc29mdGMgKnNjLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMtNTktXFx0XFx0XFx0ICAgIGludCB0eF9mbGFncywgc3RydWN0IGF0aF90eHEgKnR4cSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTYwLVxcdFxcdFxcdCAgICBzdHJ1Y3QgaWVlZTgwMjExX3N0YSAqc3RhKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jOjYxOnN0YXRpYyB2b2lkIGF0aF90eF9jb21wbGV0ZV9idWYoc3RydWN0IGF0aF9zb2Z0YyAqc2MsIHN0cnVjdCBhdGhfYnVmICpiZixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTYyLVxcdFxcdFxcdFxcdHN0cnVjdCBhdGhfdHhxICp0eHEsIHN0cnVjdCBsaXN0X2hlYWQgKmJmX3EsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTY0LVxcdFxcdFxcdFxcdHN0cnVjdCBhdGhfdHhfc3RhdHVzICp0cywgaW50IHR4b2spO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmM6NjU6c3RhdGljIHZvaWQgYXRoX3R4X3R4cWFkZGJ1ZihzdHJ1Y3QgYXRoX3NvZnRjICpzYywgc3RydWN0IGF0aF90eHEgKnR4cSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTY2LVxcdFxcdFxcdCAgICAgc3RydWN0IGxpc3RfaGVhZCAqaGVhZCwgYm9vbCBpbnRlcm5hbCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYzo2NzpzdGF0aWMgdm9pZCBhdGhfdHhfcmNfc3RhdHVzKHN0cnVjdCBhdGhfc29mdGMgKnNjLCBzdHJ1Y3QgYXRoX2J1ZiAqYmYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYy02OC1cXHRcXHRcXHQgICAgIHN0cnVjdCBhdGhfdHhfc3RhdHVzICp0cywgaW50IG5mcmFtZXMsIGludCBuYmFkLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMtNjktXFx0XFx0XFx0ICAgICBpbnQgdHhvayk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYzo3MDpzdGF0aWMgdm9pZCBhdGhfdHhfdXBkYXRlX2JhdyhzdHJ1Y3QgYXRoX2F0eF90aWQgKnRpZCwgc3RydWN0IGF0aF9idWYgKmJmKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jOjcxOnN0YXRpYyBzdHJ1Y3QgYXRoX2J1ZiAqYXRoX3R4X3NldHVwX2J1ZmZlcihzdHJ1Y3QgYXRoX3NvZnRjICpzYyxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTcyLVxcdFxcdFxcdFxcdFxcdCAgIHN0cnVjdCBhdGhfdHhxICp0eHEsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTc0LVxcdFxcdFxcdFxcdFxcdCAgIHN0cnVjdCBza19idWZmICpza2IpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmM6NzU6c3RhdGljIGludCBhdGhfdHhfcHJlcGFyZShzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodywgc3RydWN0IHNrX2J1ZmYgKnNrYixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTc2LVxcdFxcdFxcdCAgc3RydWN0IGF0aF90eF9jb250cm9sICp0eGN0bCk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jPTc4PWVudW0ge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYy04OC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jOjg5OnN0YXRpYyB2b2lkIGF0aF90eF9zdGF0dXMoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsIHN0cnVjdCBza19idWZmICpza2IpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYy05MC17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTEwNS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jOjEwNjp2b2lkIGF0aF90eHFfdW5sb2NrX2NvbXBsZXRlKHN0cnVjdCBhdGhfc29mdGMgKnNjLCBzdHJ1Y3QgYXRoX3R4cSAqdHhxKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMtMTA3LVxcdF9fcmVsZWFzZXMoXFx1MDAyNnR4cS1cXHUwMDNlYXhxX2xvY2spXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTEyMC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jOjEyMTp2b2lkIGF0aF90eF9xdWV1ZV90aWQoc3RydWN0IGF0aF9zb2Z0YyAqc2MsIHN0cnVjdCBhdGhfYXR4X3RpZCAqdGlkKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMtMTIyLXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMtMTI4LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmM6MTI5OnZvaWQgYXRoOWtfd2FrZV90eF9xdWV1ZShzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodywgc3RydWN0IGllZWU4MDIxMV90eHEgKnF1ZXVlKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMtMTMwLXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmM9MTQ1PXN0YXRpYyBzdHJ1Y3QgYXRoX2ZyYW1lX2luZm8gKmdldF9mcmFtZV9pbmZvKHN0cnVjdCBza19idWZmICpza2IpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTE1Mi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jOjE1MzpzdGF0aWMgdm9pZCBhdGhfc2VuZF9iYXIoc3RydWN0IGF0aF9hdHhfdGlkICp0aWQsIHUxNiBzZXFubylcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTE1NC17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTE2MS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jOjE2MjpzdGF0aWMgYm9vbCBhdGhfbWVyZ2VfcmF0ZXRibChzdHJ1Y3QgaWVlZTgwMjExX3N0YSAqc3RhLCBzdHJ1Y3QgYXRoX2J1ZiAqYmYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYy0xNjMtXFx0XFx0XFx0ICAgICAgc3RydWN0IGllZWU4MDIxMV90eF9pbmZvICp0eF9pbmZvKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYy0xOTctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYzoxOTg6c3RhdGljIHZvaWQgYXRoX3NldF9yYXRlcyhzdHJ1Y3QgaWVlZTgwMjExX3ZpZiAqdmlmLCBzdHJ1Y3QgaWVlZTgwMjExX3N0YSAqc3RhLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMtMTk5LVxcdFxcdFxcdCAgc3RydWN0IGF0aF9idWYgKmJmKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYy0yMDktXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYzoyMTA6c3RhdGljIHZvaWQgYXRoX3R4cV9za2JfZG9uZShzdHJ1Y3QgYXRoX3NvZnRjICpzYywgc3RydWN0IHNrX2J1ZmYgKnNrYilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTIxMS17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jPTIzMz1hdGhfdGlkX3B1bGwoc3RydWN0IGF0aF9hdHhfdGlkICp0aWQsIHN0cnVjdCBza19idWZmICoqc2tidWYpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTI2Ni1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jOjI2NzpzdGF0aWMgaW50IGF0aF90aWRfZGVxdWV1ZShzdHJ1Y3QgYXRoX2F0eF90aWQgKnRpZCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTI2OC1cXHRcXHRcXHQgICBzdHJ1Y3Qgc2tfYnVmZiAqKnNrYilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMtMjc3LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmM6Mjc4OnN0YXRpYyB2b2lkIGF0aF90eF9mbHVzaF90aWQoc3RydWN0IGF0aF9zb2Z0YyAqc2MsIHN0cnVjdCBhdGhfYXR4X3RpZCAqdGlkKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMtMjc5LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMtMzE2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmM6MzE3OnN0YXRpYyB2b2lkIGF0aF90eF91cGRhdGVfYmF3KHN0cnVjdCBhdGhfYXR4X3RpZCAqdGlkLCBzdHJ1Y3QgYXRoX2J1ZiAqYmYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYy0zMTgte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYy0zMzgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYzozMzk6c3RhdGljIHZvaWQgYXRoX3R4X2FkZHRvX2JhdyhzdHJ1Y3QgYXRoX2F0eF90aWQgKnRpZCwgc3RydWN0IGF0aF9idWYgKmJmKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMtMzQwLXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMtMzU5LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmM6MzYwOnN0YXRpYyB2b2lkIGF0aF90aWRfZHJhaW4oc3RydWN0IGF0aF9zb2Z0YyAqc2MsIHN0cnVjdCBhdGhfdHhxICp0eHEsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYy0zNjEtXFx0XFx0XFx0ICBzdHJ1Y3QgYXRoX2F0eF90aWQgKnRpZClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMtMzg2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmM6Mzg3OnN0YXRpYyB2b2lkIGF0aF90eF9zZXRfcmV0cnkoc3RydWN0IGF0aF9zb2Z0YyAqc2MsIHN0cnVjdCBhdGhfdHhxICp0eHEsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYy0zODgtXFx0XFx0XFx0ICAgICBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBpbnQgY291bnQpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTQwNi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jOjQwNzpzdGF0aWMgc3RydWN0IGF0aF9idWYgKmF0aF90eF9nZXRfYnVmZmVyKHN0cnVjdCBhdGhfc29mdGMgKnNjKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMtNDA4LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMtNDI1LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmM6NDI2OnN0YXRpYyB2b2lkIGF0aF90eF9yZXR1cm5fYnVmZmVyKHN0cnVjdCBhdGhfc29mdGMgKnNjLCBzdHJ1Y3QgYXRoX2J1ZiAqYmYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYy00Mjcte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYy00MzItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYzo0MzM6c3RhdGljIHN0cnVjdCBhdGhfYnVmKiBhdGhfY2xvbmVfdHhidWYoc3RydWN0IGF0aF9zb2Z0YyAqc2MsIHN0cnVjdCBhdGhfYnVmICpiZilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTQzNC17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTQ1MS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jOjQ1MjpzdGF0aWMgdm9pZCBhdGhfdHhfY291bnRfZnJhbWVzKHN0cnVjdCBhdGhfYnVmICpiZiwgc3RydWN0IGF0aF90eF9zdGF0dXMgKnRzLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMtNDUzLVxcdFxcdFxcdFxcdGludCB0eG9rLCBpbnQgKm5mcmFtZXMsIGludCAqbmJhZClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMtNDgyLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmM6NDgzOnN0YXRpYyB2b2lkIGF0aF90eF9jb21wbGV0ZV9hZ2dyKHN0cnVjdCBhdGhfc29mdGMgKnNjLCBzdHJ1Y3QgYXRoX3R4cSAqdHhxLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMtNDg0LVxcdFxcdFxcdFxcdCBzdHJ1Y3QgYXRoX2J1ZiAqYmYsIHN0cnVjdCBsaXN0X2hlYWQgKmJmX3EsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jPTcwMT1zdGF0aWMgYm9vbCBiZl9pc19hbXBkdV9ub3RfcHJvYmluZyhzdHJ1Y3QgYXRoX2J1ZiAqYmYpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTcwNi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jOjcwNzpzdGF0aWMgdm9pZCBhdGhfdHhfY291bnRfYWlydGltZShzdHJ1Y3QgYXRoX3NvZnRjICpzYyxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTcwOC1cXHRcXHRcXHRcXHQgc3RydWN0IGllZWU4MDIxMV9zdGEgKnN0YSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMtNzI0LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmM6NzI1OnN0YXRpYyB2b2lkIGF0aF90eF9wcm9jZXNzX2J1ZmZlcihzdHJ1Y3QgYXRoX3NvZnRjICpzYywgc3RydWN0IGF0aF90eHEgKnR4cSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTcyNi1cXHRcXHRcXHRcXHQgIHN0cnVjdCBhdGhfdHhfc3RhdHVzICp0cywgc3RydWN0IGF0aF9idWYgKmJmLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYy03NzMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYzo3NzQ6c3RhdGljIGJvb2wgYXRoX2xvb2t1cF9sZWdhY3koc3RydWN0IGF0aF9idWYgKmJmKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMtNzc1LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMtNzk1LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmM6Nzk2OnN0YXRpYyB1MzIgYXRoX2xvb2t1cF9yYXRlKHN0cnVjdCBhdGhfc29mdGMgKnNjLCBzdHJ1Y3QgYXRoX2J1ZiAqYmYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYy03OTctXFx0XFx0XFx0ICAgc3RydWN0IGF0aF9hdHhfdGlkICp0aWQpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTg2Ni0gKi9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jOjg2NzpzdGF0aWMgaW50IGF0aF9jb21wdXRlX251bV9kZWxpbXMoc3RydWN0IGF0aF9zb2Z0YyAqc2MsIHN0cnVjdCBhdGhfYXR4X3RpZCAqdGlkLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMtODY4LVxcdFxcdFxcdFxcdCAgc3RydWN0IGF0aF9idWYgKmJmLCB1MTYgZnJtbGVuLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYz0xMDI3PWF0aF90eF9mb3JtX2FnZ3Ioc3RydWN0IGF0aF9zb2Z0YyAqc2MsIHN0cnVjdCBhdGhfdHhxICp0eHEsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTExMTItICovXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYzoxMTEzOnUzMiBhdGhfcGt0X2R1cmF0aW9uKHU4IHJpeCwgaW50IHBrdGxlbiwgaW50IHdpZHRoLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMtMTExNC1cXHRcXHQgICAgIGludCBoYWxmX2dpLCBib29sIHNob3J0UHJlYW1ibGUpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTExMzUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYzoxMTM2OnN0YXRpYyBpbnQgYXRoX21heF9mcmFtZWxlbihpbnQgdXNlYywgaW50IG1jcywgYm9vbCBodDQwLCBib29sIHNnaSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTExMzcte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYy0xMTUyLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmM6MTE1Mzp2b2lkIGF0aF91cGRhdGVfbWF4X2FnZ3JfZnJhbWVsZW4oc3RydWN0IGF0aF9zb2Z0YyAqc2MsIGludCBxdWV1ZSwgaW50IHR4b3ApXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYy0xMTU0LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMtMTE3My1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jOjExNzQ6c3RhdGljIHU4IGF0aF9nZXRfcmF0ZV90eHBvd2VyKHN0cnVjdCBhdGhfc29mdGMgKnNjLCBzdHJ1Y3QgYXRoX2J1ZiAqYmYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYy0xMTc1LVxcdFxcdFxcdCAgICAgICB1OCByYXRlaWR4LCBib29sIGlzXzQwLCBib29sIGlzX2NjaywgYm9vbCBpc19tY3MpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTEyNTktXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYzoxMjYwOnN0YXRpYyB2b2lkIGF0aF9idWZfc2V0X3JhdGUoc3RydWN0IGF0aF9zb2Z0YyAqc2MsIHN0cnVjdCBhdGhfYnVmICpiZixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTEyNjEtXFx0XFx0XFx0ICAgICBzdHJ1Y3QgYXRoX3R4X2luZm8gKmluZm8sIGludCBsZW4sIGJvb2wgcnRzKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYz0xMzgwPXN0YXRpYyBlbnVtIGF0aDlrX3BrdF90eXBlIGdldF9od19wYWNrZXRfdHlwZShzdHJ1Y3Qgc2tfYnVmZiAqc2tiKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYy0xNDAyLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmM6MTQwMzpzdGF0aWMgdm9pZCBhdGhfdHhfZmlsbF9kZXNjKHN0cnVjdCBhdGhfc29mdGMgKnNjLCBzdHJ1Y3QgYXRoX2J1ZiAqYmYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYy0xNDA0LVxcdFxcdFxcdCAgICAgc3RydWN0IGF0aF90eHEgKnR4cSwgaW50IGxlbilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmM9MTQ5Nj1hdGhfdHhfZm9ybV9idXJzdChzdHJ1Y3QgYXRoX3NvZnRjICpzYywgc3RydWN0IGF0aF90eHEgKnR4cSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMtMTUyOC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jOjE1Mjk6c3RhdGljIGludCBhdGhfdHhfc2NoZWRfYWdncihzdHJ1Y3QgYXRoX3NvZnRjICpzYywgc3RydWN0IGF0aF90eHEgKnR4cSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTE1MzAtXFx0XFx0XFx0ICAgICBzdHJ1Y3QgYXRoX2F0eF90aWQgKnRpZClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMtMTU3MC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jOjE1NzE6aW50IGF0aF90eF9hZ2dyX3N0YXJ0KHN0cnVjdCBhdGhfc29mdGMgKnNjLCBzdHJ1Y3QgaWVlZTgwMjExX3N0YSAqc3RhLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMtMTU3Mi1cXHRcXHQgICAgICB1MTYgdGlkLCB1MTYgKnNzbilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMtMTYxMC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jOjE2MTE6dm9pZCBhdGhfdHhfYWdncl9zdG9wKHN0cnVjdCBhdGhfc29mdGMgKnNjLCBzdHJ1Y3QgaWVlZTgwMjExX3N0YSAqc3RhLCB1MTYgdGlkKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMtMTYxMi17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTE2MjUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYzoxNjI2OnZvaWQgYXRoX3R4X2FnZ3Jfc2xlZXAoc3RydWN0IGllZWU4MDIxMV9zdGEgKnN0YSwgc3RydWN0IGF0aF9zb2Z0YyAqc2MsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYy0xNjI3LVxcdFxcdCAgICAgICBzdHJ1Y3QgYXRoX25vZGUgKmFuKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYy0xNjQzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmM6MTY0NDp2b2lkIGF0aF90eF9hZ2dyX3dha2V1cChzdHJ1Y3QgYXRoX3NvZnRjICpzYywgc3RydWN0IGF0aF9ub2RlICphbilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTE2NDUte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYz0xNjcwPWF0aDlrX3NldF9tb3JlZGF0YShzdHJ1Y3QgYXRoX3NvZnRjICpzYywgc3RydWN0IGF0aF9idWYgKmJmLCBib29sIHZhbClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMtMTY4OS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jOjE2OTA6dm9pZCBhdGg5a19yZWxlYXNlX2J1ZmZlcmVkX2ZyYW1lcyhzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodyxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTE2OTEtXFx0XFx0XFx0XFx0ICAgc3RydWN0IGllZWU4MDIxMV9zdGEgKnN0YSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMtMTc1Ny1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jOjE3NTg6c3RydWN0IGF0aF90eHEgKmF0aF90eHFfc2V0dXAoc3RydWN0IGF0aF9zb2Z0YyAqc2MsIGludCBxdHlwZSwgaW50IHN1YnR5cGUpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYy0xNzU5LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMtMTgyOS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jOjE4MzA6aW50IGF0aF90eHFfdXBkYXRlKHN0cnVjdCBhdGhfc29mdGMgKnNjLCBpbnQgcW51bSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTE4MzEtXFx0XFx0ICAgc3RydWN0IGF0aDlrX3R4X3F1ZXVlX2luZm8gKnFpbmZvKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYy0xODU2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmM6MTg1NzppbnQgYXRoX2NhYnFfdXBkYXRlKHN0cnVjdCBhdGhfc29mdGMgKnNjKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMtMTg1OC17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTE4NzEtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYzoxODcyOnN0YXRpYyB2b2lkIGF0aF9kcmFpbl90eHFfbGlzdChzdHJ1Y3QgYXRoX3NvZnRjICpzYywgc3RydWN0IGF0aF90eHEgKnR4cSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTE4NzMtXFx0XFx0XFx0ICAgICAgIHN0cnVjdCBsaXN0X2hlYWQgKmxpc3QpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTE5MTMtICovXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYzoxOTE0OnZvaWQgYXRoX2RyYWludHhxKHN0cnVjdCBhdGhfc29mdGMgKnNjLCBzdHJ1Y3QgYXRoX3R4cSAqdHhxKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMtMTkxNS17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTE5MzctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYzoxOTM4OmJvb2wgYXRoX2RyYWluX2FsbF90eHEoc3RydWN0IGF0aF9zb2Z0YyAqc2MpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYy0xOTM5LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMtMTk3OS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jOjE5ODA6dm9pZCBhdGhfdHhfY2xlYW51cHEoc3RydWN0IGF0aF9zb2Z0YyAqc2MsIHN0cnVjdCBhdGhfdHhxICp0eHEpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYy0xOTgxLXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMtMTk4OC0gKi9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jOjE5ODk6dm9pZCBhdGhfdHhxX3NjaGVkdWxlKHN0cnVjdCBhdGhfc29mdGMgKnNjLCBzdHJ1Y3QgYXRoX3R4cSAqdHhxKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMtMTk5MC17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTIwMjUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYzoyMDI2OnZvaWQgYXRoX3R4cV9zY2hlZHVsZV9hbGwoc3RydWN0IGF0aF9zb2Z0YyAqc2MpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYy0yMDI3LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMtMjA0Ny0gKi9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jOjIwNDg6c3RhdGljIHZvaWQgYXRoX3R4X3R4cWFkZGJ1ZihzdHJ1Y3QgYXRoX3NvZnRjICpzYywgc3RydWN0IGF0aF90eHEgKnR4cSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTIwNDktXFx0XFx0XFx0ICAgICBzdHJ1Y3QgbGlzdF9oZWFkICpoZWFkLCBib29sIGludGVybmFsKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYy0yMTE0LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmM6MjExNTpzdGF0aWMgdm9pZCBhdGhfdHhfc2VuZF9ub3JtYWwoc3RydWN0IGF0aF9zb2Z0YyAqc2MsIHN0cnVjdCBhdGhfdHhxICp0eHEsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYy0yMTE2LVxcdFxcdFxcdCAgICAgICBzdHJ1Y3QgYXRoX2F0eF90aWQgKnRpZCwgc3RydWN0IHNrX2J1ZmYgKnNrYilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmM9MjEzOD1zdGF0aWMgdm9pZCBzZXR1cF9mcmFtZV9pbmZvKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYy0yMjAwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmM6MjIwMTp1OCBhdGhfdHhjaGFpbm1hc2tfcmVkdWN0aW9uKHN0cnVjdCBhdGhfc29mdGMgKnNjLCB1OCBjaGFpbm1hc2ssIHUzMiByYXRlKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMtMjIwMi17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTIyMTktICovXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYzoyMjIwOnN0YXRpYyBzdHJ1Y3QgYXRoX2J1ZiAqYXRoX3R4X3NldHVwX2J1ZmZlcihzdHJ1Y3QgYXRoX3NvZnRjICpzYyxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTIyMjEtXFx0XFx0XFx0XFx0XFx0ICAgc3RydWN0IGF0aF90eHEgKnR4cSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMtMjI3MS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jOjIyNzI6dm9pZCBhdGhfYXNzaWduX3NlcShzdHJ1Y3QgYXRoX2NvbW1vbiAqY29tbW9uLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMtMjI3My17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTIyOTMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYzoyMjk0OnN0YXRpYyBpbnQgYXRoX3R4X3ByZXBhcmUoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsIHN0cnVjdCBza19idWZmICpza2IsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYy0yMjk1LVxcdFxcdFxcdCAgc3RydWN0IGF0aF90eF9jb250cm9sICp0eGN0bClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMtMjMzMS0vKiBVcG9uIGZhaWx1cmUgY2FsbGVyIHNob3VsZCBmcmVlIHNrYiAqL1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmM6MjMzMjppbnQgYXRoX3R4X3N0YXJ0KHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMtMjMzMy1cXHRcXHQgc3RydWN0IGF0aF90eF9jb250cm9sICp0eGN0bClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMtMjM5Ny1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jOjIzOTg6dm9pZCBhdGhfdHhfY2FicShzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodywgc3RydWN0IGllZWU4MDIxMV92aWYgKnZpZixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTIzOTktXFx0XFx0IHN0cnVjdCBza19idWZmICpza2IpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTI0NjMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYzoyNDY0OnN0YXRpYyB2b2lkIGF0aF90eF9jb21wbGV0ZShzdHJ1Y3QgYXRoX3NvZnRjICpzYywgc3RydWN0IHNrX2J1ZmYgKnNrYixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTI0NjUtXFx0XFx0XFx0ICAgIGludCB0eF9mbGFncywgc3RydWN0IGF0aF90eHEgKnR4cSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMtMjUxNS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jOjI1MTY6c3RhdGljIHZvaWQgYXRoX3R4X2NvbXBsZXRlX2J1ZihzdHJ1Y3QgYXRoX3NvZnRjICpzYywgc3RydWN0IGF0aF9idWYgKmJmLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMtMjUxNy1cXHRcXHRcXHRcXHRzdHJ1Y3QgYXRoX3R4cSAqdHhxLCBzdHJ1Y3QgbGlzdF9oZWFkICpiZl9xLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYy0yNTYxLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmM6MjU2MjpzdGF0aWMgdm9pZCBhdGhfY2xlYXJfdHhfc3RhdHVzKHN0cnVjdCBpZWVlODAyMTFfdHhfaW5mbyAqdHhfaW5mbylcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTI1NjMte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYy0yNTcxLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmM6MjU3MjpzdGF0aWMgdm9pZCBhdGhfdHhfcmNfc3RhdHVzKHN0cnVjdCBhdGhfc29mdGMgKnNjLCBzdHJ1Y3QgYXRoX2J1ZiAqYmYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYy0yNTczLVxcdFxcdFxcdCAgICAgc3RydWN0IGF0aF90eF9zdGF0dXMgKnRzLCBpbnQgbmZyYW1lcywgaW50IG5iYWQsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTI2MjgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYzoyNjI5OnN0YXRpYyB2b2lkIGF0aF90eF9wcm9jZXNzcShzdHJ1Y3QgYXRoX3NvZnRjICpzYywgc3RydWN0IGF0aF90eHEgKnR4cSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTI2MzAte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYy0yNzAzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmM6MjcwNDp2b2lkIGF0aF90eF90YXNrbGV0KHN0cnVjdCBhdGhfc29mdGMgKnNjKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMtMjcwNS17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTI3MTctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYzoyNzE4OnZvaWQgYXRoX3R4X2VkbWFfdGFza2xldChzdHJ1Y3QgYXRoX3NvZnRjICpzYylcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTI3MTkte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYy0yODExLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmM6MjgxMjpzdGF0aWMgaW50IGF0aF90eHN0YXR1c19zZXR1cChzdHJ1Y3QgYXRoX3NvZnRjICpzYywgaW50IHNpemUpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYy0yODEzLXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMtMjgyNS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jOjI4MjY6c3RhdGljIGludCBhdGhfdHhfZWRtYV9pbml0KHN0cnVjdCBhdGhfc29mdGMgKnNjKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMtMjgyNy17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTI4MzgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYzoyODM5OmludCBhdGhfdHhfaW5pdChzdHJ1Y3QgYXRoX3NvZnRjICpzYywgaW50IG5idWZzKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMtMjg0MC17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTI4NjctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYzoyODY4OnZvaWQgYXRoX3R4X25vZGVfaW5pdChzdHJ1Y3QgYXRoX3NvZnRjICpzYywgc3RydWN0IGF0aF9ub2RlICphbilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTI4Njkte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYy0yODkxLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmM6Mjg5Mjp2b2lkIGF0aF90eF9ub2RlX2NsZWFudXAoc3RydWN0IGF0aF9zb2Z0YyAqc2MsIHN0cnVjdCBhdGhfbm9kZSAqYW4pXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYy0yODkzLXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMtMjkyMi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jOjI5MjM6aW50IGF0aDlrX3R4OTlfc2VuZChzdHJ1Y3QgYXRoX3NvZnRjICpzYywgc3RydWN0IHNrX2J1ZmYgKnNrYixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTI5MjQtXFx0XFx0ICAgIHN0cnVjdCBhdGhfdHhfY29udHJvbCAqdHhjdGwpXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTA2VDA4OjA5OjQ5LjAxNjYzNzUxWiIsIlNlcSI6MjcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy43LWZsYXNoIiwiRHVyYXRpb24iOjYzMzQ3MTYxNTMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHlzaXMgb2YgYGF0aDlrL3htaXQuY2AgYW5kIFJlYWNoYWJpbGl0eSBmb3IgRnV6emluZyoqXG5cbk9rYXksIGxldCdzIGJyZWFrIHRoaXMgZG93bi4gRmlyc3QsIGB4bWl0LmNgIGlzIGV4Y2x1c2l2ZWx5IGNhbGxlZCB3aXRoaW4gdGhlIGBhdGg5a2AgbW9kdWxlIChgYXRoOWsua29gKS4gYGF0aDlrLmtvYCwgYXMgd2Uga25vdywgaXMgdGhlIGRyaXZlciBmb3IgdGhvc2Ugb2xkZXIgQXRoZXJvcyA4MDIuMTFuIHdpcmVsZXNzIGNhcmRzIHRoYXQgdXNlIFBDSS9QQ0llIG9yIEFIQiBpbnRlcmZhY2VzLiBUaGUgY3JpdGljYWwgcG9pbnQgaXMgdGhhdCBzdGFuZGFyZCBRRU1VIOKAkyB3aGljaCBpcyB3aGF0IHdlJ3JlIGxpa2VseSB1c2luZyBmb3IgZnV6emluZyDigJMgZG9lc24ndCBlbXVsYXRlIHRob3NlIHNwZWNpZmljIEF0aGVyb3MgUENJL0FIQiB3aXJlbGVzcyBjYXJkcy4gVGhpcyBpbW1lZGlhdGVseSBzdWdnZXN0cyBhIHByb2JsZW0uXG5cbk5vdywgbGV0J3MgY3Jvc3MtcmVmZXJlbmNlIHRoaXMgYWdhaW5zdCBTZWN0aW9uIDIgb2YgdGhlIHByb21wdC4gV2UncmUgbG9va2luZyBmb3IgXCJTdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUgaGFyZHdhcmVcIiBzY2VuYXJpb3MsIGFuZCB0aGlzIHNlZW1zIHRvIGZpdCBwZXJmZWN0bHk6IHZlbmRvci1zcGVjaWZpYyBQQ0llIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBRRU1VLiBTcGVjaWZpY2FsbHksIHRoZSBtb2RpZmllZCBmaWxlIGhlcmUgaXMgYGRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmNgLCBmb2N1c2luZyBvbiB0aGUgYGF0aF9kcmFpbl90eHFfbGlzdCgpYCBmdW5jdGlvbi4gVGhpcyBmdW5jdGlvbiBpcyBpbnRlcm5hbCB0byBgeG1pdC5jYCBhbmQgb25seSBjYWxsZWQgYnkgYGF0aF9kcmFpbnR4cSgpYC4gYGF0aF9kcmFpbnR4cSgpYCBpdHNlbGYgaXMgaW52b2x2ZWQgaW4gdGFza3MgbGlrZSBiZWFjb24gZ2VuZXJhdGlvbiwgc3dpdGNoaW5nIGNoYW5uZWwgY29udGV4dHMsIGFuZCBpbnRlcmZhY2Ugc3RvcHBpbmcsIG9yIHF1ZXVlIGRyYWluYWdlLCBhbGwgd2l0aGluIHRoZSBgYXRoOWtgIGRyaXZlciwgd2hpY2ggaGluZ2VzIG9uIHRoZSBwcmVzZW5jZSBvZiBwaHlzaWNhbCBQQ0kvQUhCIEF0aGVyb3MgaGFyZHdhcmUuIE5vbmUgb2YgdGhlc2UgZXhlY3V0aW9uIHBhdGhzIGFyZSBwb3NzaWJsZSB3aXRob3V0IHRoYXQgc3BlY2lmaWMgaGFyZHdhcmUuXG5cblRoZXJlZm9yZSwgc2luY2Ugd2UncmUgbW9kaWZ5aW5nIHRoZSBjb2RlIGluIGB4bWl0LmNgLCBhbmQgdGhhdCBjb2RlIGlzICpzdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUqIGluIHRoZSBhYnNlbmNlIG9mIHBoeXNpY2FsIEF0aGVyb3MgODAyLjExbiBQQ0kvQUhCIGhhcmR3YXJlLCB3aGljaCBpcyBub3QgYXZhaWxhYmxlIGluIG91ciBzdGFuZGFyZCBmdXp6aW5nIGVudmlyb25tZW50IChRRU1VKSwgdGhlbiB0aGlzIGNvZGUgaXNuJ3Qgd29ydGggZnV6emluZywgYmFzZWQgb24gdGhlIGNyaXRlcmlhIGluIHRoZSBwcm9tcHQuXG5cbkxldCBtZSBqdXN0IGRvdWJsZS1jaGVjaywgbWFraW5nIHN1cmUgSSdtIGZvbGxvd2luZyBpbnN0cnVjdGlvbnMgZm9yIGBzZXQtcmVzdWx0c2A6XG5cbiogICBgV29ydGhGdXp6aW5nYDogYGZhbHNlYFxuKiAgIGBGb2N1c1N5bWJvbHNgOiBgW11gIChlbXB0eSlcbiogICBgRW5hYmxlQ29uZmlnc2A6IGBbXWAgKGVtcHR5KVxuKiAgIGBSZWFzb25pbmdgOiBcIlRoZSBwYXRjaCBtb2RpZmllcyBgYXRoX2RyYWluX3R4cV9saXN0KClgIGluIGBkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jYCwgd2hpY2ggYmVsb25ncyB0byB0aGUgYGF0aDlrYCBkcml2ZXIgZm9yIEF0aGVyb3MgODAyLjExbiBQQ0kgYW5kIEFIQiBkZXZpY2VzLiBCZWNhdXNlIHN0YW5kYXJkIHZpcnR1YWxpemVkIGZ1enppbmcgZW52aXJvbm1lbnRzIChlLmcuIFFFTVUvR0NFKSBsYWNrIGVtdWxhdGlvbiBmb3IgdGhlc2UgcGh5c2ljYWwgQXRoZXJvcyBQQ0kvQUhCIHdpcmVsZXNzIGFkYXB0ZXJzLCB0aGUgbW9kaWZpZWQgY29kZSBpcyBzdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUuXCJcblxuQWxyaWdodCwgbG9va3MgbGlrZSB3ZSdyZSBnb29kIHRvIGNhbGwgYHNldC1yZXN1bHRzYC5cblxuXG4iLCJJbnB1dFRva2VucyI6NTE3MjcsIk91dHB1dFRva2VucyI6MTIzLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NjUwLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTA2VDA4OjA5OjU1LjM1MTM1Njg4M1oiLCJTZXEiOjI4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjM0NDMwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIGBhdGhfZHJhaW5fdHhxX2xpc3QoKWAgaW4gYGRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmNgLCB3aGljaCBiZWxvbmdzIHRvIHRoZSBgYXRoOWtgIGRyaXZlciBmb3IgQXRoZXJvcyA4MDIuMTFuIFBDSSBhbmQgQUhCIGRldmljZXMuIFRoaXMgaGFyZHdhcmUgaXMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyAoZS5nLiwgUUVNVSBvciBHQ0UpLCBtYWtpbmcgdGhlIG1vZGlmaWVkIGNvZGUgc3RydWN0dXJhbGx5IHVucmVhY2hhYmxlIGZvciBmdXp6aW5nLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgYGF0aF9kcmFpbl90eHFfbGlzdCgpYCBpbiBgZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuY2AsIHdoaWNoIGJlbG9uZ3MgdG8gdGhlIGBhdGg5a2AgZHJpdmVyIGZvciBBdGhlcm9zIDgwMi4xMW4gUENJIGFuZCBBSEIgZGV2aWNlcy4gVGhpcyBoYXJkd2FyZSBpcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIChlLmcuLCBRRU1VIG9yIEdDRSksIG1ha2luZyB0aGUgbW9kaWZpZWQgY29kZSBzdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUgZm9yIGZ1enppbmcuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOS0wNlQwODowOTo1NS4zNTEzOTU5MzNaIiwiU2VxIjoyOSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJJZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjI5MDAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9XTsKCQkJaWYgKCFyYXdEYXRhIHx8IHJhd0RhdGEubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQlkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKTsKCQkJZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSk7CgkJCWRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKSB7CgkJCWNvbnN0IHN0YXRzID0gewoJCQkJbGxtOiB7IGNvdW50OiAwLCB0b2tlbnM6IDAsIGR1cmF0aW9uOiAwIH0sCgkJCQl0b29sOiB7IGNvdW50OiAwLCBkdXJhdGlvbjogMCB9CgkJCX07CgoJCQlyYXdEYXRhLmZvckVhY2gocyA9PiB7CgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsgCgkJCQlpZiAocy5UeXBlID09PSAibGxtIikgewoJCQkJCXN0YXRzLmxsbS5jb3VudCsrOwoJCQkJCXN0YXRzLmxsbS50b2tlbnMgKz0gKHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnMpOwoJCQkJCXN0YXRzLmxsbS5kdXJhdGlvbiArPSBkdXI7CgkJCQl9IGVsc2UgaWYgKHMuVHlwZSA9PT0gInRvb2wiKSB7CgkJCQkJc3RhdHMudG9vbC5jb3VudCsrOwoJCQkJCXN0YXRzLnRvb2wuZHVyYXRpb24gKz0gZHVyOwoJCQkJfQoJCQl9KTsKCgkJCWNvbnN0IGF2Z0xsbUR1ciA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLmR1cmF0aW9uIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnTGxtVG9rZW4gPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS50b2tlbnMgLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdUb29sRHVyID0gc3RhdHMudG9vbC5jb3VudCA+IDAgPyAoc3RhdHMudG9vbC5kdXJhdGlvbiAvIHN0YXRzLnRvb2wuY291bnQpLnRvRml4ZWQoMikgOiAwOwoKCQkJY29uc3QgbGxtU3VtYXJ5Q2VsbHMgPSBbc3RhdHMubGxtLmNvdW50LCBzdGF0cy5sbG0udG9rZW5zLCBhdmdMbG1Ub2tlbiwgc3RhdHMubGxtLmR1cmF0aW9uLCBhdmdMbG1EdXJdOwoJCQljb25zdCB0b29sU3VtbWFyeUNlbGxzID0gW3N0YXRzLnRvb2wuY291bnQsIHN0YXRzLnRvb2wuZHVyYXRpb24sIGF2Z1Rvb2xEdXJdOwoKCQkJY29uc3QgbGxtU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGxtX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQlsbG1TdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgbGxtVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQlsbG1TdW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJbGxtVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJbGxtU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQobGxtVHIpOwoKCQkJY29uc3QgdG9vbFN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rvb2xfc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgdG9vbFRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJdG9vbFN1bW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJdG9vbFRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZCh0b29sVHIpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBmaWx0ZXJlZFN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBbImxsbSIsICJ0b29sIl0uaW5jbHVkZXMoZC5UeXBlKSk7CgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ0R1cmF0aW9uJyk7CgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7IAoKCQkJZmlsdGVyZWRTdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJCgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsKCQkJCWxldCB0b29sdGlwID0gcy5OYW1lOwoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIgJiYgcy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoJCQkJZGF0YS5hZGRSb3coW2Ake3MuU2VxfWAsIGR1ciwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1RpbWUgQ29uc3VtcHRpb24gb2YgTExNL1Rvb2wgQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTS9Ub29sIFN0ZXBzJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ1NlY29uZHMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2R1cmF0aW9uX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBsbG1TdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gZC5UeXBlID09PSAibGxtIik7CgkJCWlmIChsbG1TdGVwcy5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwkJCQoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ1Rva2VucycpOwkJCQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICdzdHlsZSd9KTsJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7CQoKCQkJY29uc3QgYWdlbnRDb2xvcnMgPSB7fTsKCQkJY29uc3QgcGFsZXR0ZSA9IFsnIzQyODVGNCcsICcjREI0NDM3JywgJyNGNEI0MDAnLCAnIzBGOUQ1OCcsICcjQUI0N0JDJywgJyMwMEFDQzEnXTsKCQkJbGV0IGNvbG9ySWR4ID0gMDsKCQkJY29uc3QgYWdlbnRMTE1Db3VudHMgPSB7fTsKCQkJbGxtU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCWlmICghYWdlbnRDb2xvcnNbcy5OYW1lXSkgewoJCQkJCWFnZW50Q29sb3JzW3MuTmFtZV0gPSBwYWxldHRlW2NvbG9ySWR4ICUgcGFsZXR0ZS5sZW5ndGhdOwoJCQkJCWNvbG9ySWR4Kys7CgkJCQl9CgoJCQkJYWdlbnRMTE1Db3VudHNbcy5OYW1lXSA9IChhZ2VudExMTUNvdW50c1tzLk5hbWVdIHx8IDApICsgMTsKCQkJCWNvbnN0IGxhYmVsID0gYCR7cy5OYW1lfS0ke2FnZW50TExNQ291bnRzW3MuTmFtZV19YDsKCQkJCWNvbnN0IHRvdGFsVG9rZW5zID0gcy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2VuczsKCQkJCWNvbnN0IHN0eWxlID0gYGNvbG9yOiAke2FnZW50Q29sb3JzW3MuTmFtZV19YDsKCQkJCWxldCB0b29sdGlwID0gYFRvdGFsIFRva2VuczogJHt0b3RhbFRva2Vuc31cbihJbjogJHtzLklucHV0VG9rZW5zfSwgT3V0OiAke3MuT3V0cHV0VG9rZW5zfSwgVGhvdWdodHM6ICR7cy5PdXRwdXRUaG91Z2h0c1Rva2Vuc30pYDsKCQkJCWlmIChzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgoJCQkJZGF0YS5hZGRSb3coW2xhYmVsLCB0b3RhbFRva2Vucywgc3R5bGUsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUb2tlbiBDb25zdW1wdGlvbiBieSBMTE0gQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTSBDYWxsIFNlcXVlbmNlJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ0NvbnN1bWVkIFRva2VucycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9rZW5fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCQlsZXQgYWxsRXhwYW5kZWQgPSBmYWxzZTsKCQlmdW5jdGlvbiB0b2dnbGVBbGxEZXRhaWxzKCkgewoJCQlhbGxFeHBhbmRlZCA9ICFhbGxFeHBhbmRlZDsKCQkJZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnZGV0YWlscycpLmZvckVhY2goZCA9PiB7CgkJCQlpZiAoYWxsRXhwYW5kZWQpIGQuc2V0QXR0cmlidXRlKCdvcGVuJywgJycpOwoJCQkJZWxzZSBkLnJlbW92ZUF0dHJpYnV0ZSgnb3BlbicpOwoJCQl9KTsKCQl9Cgk8L3NjcmlwdD4KCgo8L2JvZHk+CjwvaHRtbD4K" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowcdkvp[0].run-triage(0) Phase: Succeeded StartedAt: 2026-09-06 07:42:06 +0000 UTC FinishedAt: 2026-09-06 08:09:57 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "AI determined the patch has no functional impact", "targets": null, "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzA2IDA4OjA4PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7S01TQU5SZWFzb25pbmcmIzM0OzogJiMzNDsmIzM0OywKICAmIzM0O05lZWRzS01TQU4mIzM0OzogZmFsc2UsCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgYGF0aF9kcmFpbl90eHFfbGlzdCgpYCBpbiBgZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuY2AsIHdoaWNoIGJlbG9uZ3MgdG8gdGhlIGBhdGg5a2AgZHJpdmVyIGZvciBBdGhlcm9zIDgwMi4xMW4gUENJIGFuZCBBSEIgZGV2aWNlcy4gVGhpcyBoYXJkd2FyZSBpcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIChlLmcuLCBRRU1VIG9yIEdDRSksIG1ha2luZyB0aGUgbW9kaWZpZWQgY29kZSBzdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUgZm9yIGZ1enppbmcuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzA2IDA4OjA4PC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5yZWFkLXBhdGNoLWRpZmY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtQYXRjaERpZmYmIzM0OzogJiMzNDtjb21taXQgYjMwMTJjZjlhMmVlNjUxNzU3YzQ2ZTdmOTMzNGU5NTMwM2I3MTQ4NFxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBTdW4gU2VwIDYgMDg6MDg6NTYgMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmNcbmluZGV4IDg5ZDhiMzE3ODc4NDYuLjg5OTMwZWFmMWZkMzEgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jXG4mIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jXG5AQCAtMTg4NCw4ICYjNDM7MTg4NCwxNyBAQCBzdGF0aWMgdm9pZCBhdGhfZHJhaW5fdHhxX2xpc3Qoc3RydWN0IGF0aF9zb2Z0YyAqc2MsIHN0cnVjdCBhdGhfdHhxICp0eHEsXG4gXHRcdGJmID0gbGlzdF9maXJzdF9lbnRyeShsaXN0LCBzdHJ1Y3QgYXRoX2J1ZiwgbGlzdCk7XG4gXG4gXHRcdGlmIChiZi1cdTAwM2ViZl9zdGF0ZS5zdGFsZSkge1xuLVx0XHRcdGxpc3RfZGVsKFx1MDAyNmJmLVx1MDAzZWxpc3QpO1xuJiM0MztcdFx0XHRzdHJ1Y3Qgc2tfYnVmZiAqc2tiID0gYmYtXHUwMDNlYmZfbXBkdTtcbiBcbiYjNDM7XHRcdFx0bGlzdF9kZWwoXHUwMDI2YmYtXHUwMDNlbGlzdCk7XG4mIzQzO1x0XHRcdGlmIChiZi1cdTAwM2ViZl9idWZfYWRkcikge1xuJiM0MztcdFx0XHRcdGRtYV91bm1hcF9zaW5nbGUoc2MtXHUwMDNlZGV2LCBiZi1cdTAwM2ViZl9idWZfYWRkcixcbiYjNDM7XHRcdFx0XHRcdFx0IHNrYiA/IHNrYi1cdTAwM2VsZW4gOiAwLFxuJiM0MztcdFx0XHRcdFx0XHQgRE1BX1RPX0RFVklDRSk7XG4mIzQzO1x0XHRcdFx0YmYtXHUwMDNlYmZfYnVmX2FkZHIgPSAwO1xuJiM0MztcdFx0XHR9XG4mIzQzO1x0XHRcdGJmLVx1MDAzZWJmX21wZHUgPSBOVUxMO1xuJiM0MztcdFx0XHRkZXZfa2ZyZWVfc2tiX2FueShza2IpO1xuIFx0XHRcdGF0aF90eF9yZXR1cm5fYnVmZmVyKHNjLCBiZik7XG4gXHRcdFx0Y29udGludWU7XG4gXHRcdH1cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yLzE8L3RkPgoJCQk8dGQ+MjAyNi8wOS8wNiAwODowODwvdGQ+CgkJCTx0ZD5hZ2VudDwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5jb3JlPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogbnVsbCwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyBgYXRoX2RyYWluX3R4cV9saXN0KClgIGluIGBkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jYCwgd2hpY2ggYmVsb25ncyB0byB0aGUgYGF0aDlrYCBkcml2ZXIgZm9yIEF0aGVyb3MgODAyLjExbiBQQ0kgYW5kIEFIQiBkZXZpY2VzLiBUaGlzIGhhcmR3YXJlIGlzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgKGUuZy4sIFFFTVUgb3IgR0NFKSwgbWFraW5nIHRoZSBtb2RpZmllZCBjb2RlIHN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZSBmb3IgZnV6emluZy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyIGFuZCBzZWN1cml0eSBlbmdpbmVlci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBldmFsdWF0ZSB3aGV0aGVyIGl0IHdhcnJhbnRzIGZ1enppbmcgd2l0aCBzeXprYWxsZXIuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIGludGVybmFsIGFzc3VtcHRpb25zLiBZb3UgbXVzdCBhY3RpdmVseSB1c2UgeW91ciBjb2RlIGFjY2Vzcwp0b29scyB0byBpbnNwZWN0IHRoZSBhY3R1YWwgc291cmNlIGNvZGUsIGNhbGxlcnMsIGFuZCBzdXJyb3VuZGluZyBjb250ZXh0LgoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KMS4gQ09SRSBUUklBR0UgUEhJTE9TT1BIWQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpUaGUgZ29hbCBvZiBwYXRjaCBmdXp6aW5nIGlzIHRvIGRpc2NvdmVyIGNyYXNoZXMsIHJlZ3Jlc3Npb25zLCBleHBvc2VkIGxhdGVudCBidWdzLAphbmQgbmV3bHkgdHJpZ2dlcmVkIGFzc2VydGlvbnMgaW50cm9kdWNlZCBieSB0aGUgcGF0Y2ggc2VyaWVzLgoKLSBSRUFDSEFCSUxJVFkgSVMgVEhFIFBSSU1BUlkgR0FURToKICBGdXp6aW5nIGNhbiBvbmx5IGRpc2NvdmVyIGJ1Z3MgaW4gY29kZSB0aGF0IGNhbiBhY3R1YWxseSBleGVjdXRlIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkCiAgZW52aXJvbm1lbnRzIChHQ0Ugb3IgUUVNVSwgdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGRldmljZXMgbGlrZSBVU0IgZ2FkZ2V0cywgbmV0ZGV2LCB0dW4vdGFwKS4KICBJZiB0aGUgbW9kaWZpZWQgY29kZSBpcyBzdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUgKHNlZSBTZWN0aW9uIDIpLCBpdCBNVVNUIE5PVCBiZSBmdXp6ZWQsCiAgcmVnYXJkbGVzcyBvZiB3aGV0aGVyIGl0IGFkZHMgYXNzZXJ0aW9ucyBvciBjb21wbGV4IGxvZ2ljLgoKLSBETyBOT1QgQkxJTkRMWSBUUlVTVCAmIzM0O05PIEZVTkNUSU9OQUwgQ0hBTkdFJiMzNDsgKE5GQ0kpIE9SICYjMzQ7UkVGQUNUT1JJTkcmIzM0OyBDTEFJTVM6CiAgUGF0Y2ggYXV0aG9ycyByb3V0aW5lbHkgbGFiZWwgY2hhbmdlcyBhcyAmIzM0O2NsZWFudXBzJiMzNDssICYjMzQ7cmVmYWN0b3JpbmdzJiMzNDssIG9yIHN0YXRlCiAgJiMzNDtObyBmdW5jdGlvbmFsIGNoYW5nZSBpbnRlbmRlZCYjMzQ7LiBEbyBOT1QgdGFrZSB0aGVzZSBjbGFpbXMgYXQgZmFjZSB2YWx1ZS4KICBDb2RlIHJlZmFjdG9yaW5ncyB0aGF0IHJlYXJyYW5nZSBsb2dpYywgaW50cm9kdWNlIGhlbHBlciBmdW5jdGlvbnMsIG9yIGFsdGVyIHN0YXRlIG1hbmFnZW1lbnQKICBpbiBjb3JlIHN1YnN5c3RlbXMgZnJlcXVlbnRseSBpbnRyb2R1Y2Ugc3VidGxlIHNlbWFudGljIHNoaWZ0cyBvciB1bmNvdmVyIGxhdGVudCBrZXJuZWwgYnVncy4KICBJZiByZWFjaGFibGUgZXhlY3V0YWJsZSBjb2RlIGlzIG1vZGlmaWVkIG9yIHJlZmFjdG9yZWQsIGl0IE1VU1QgYmUgZnV6emVkLgoKLSBORVcgT1IgTU9ESUZJRUQgQVNTRVJUSU9OUyBJTiBSRUFDSEFCTEUgQ09ERSBNVVNUIEJFIEZVWlpFRDoKICBXaGVuIGEgcGF0Y2ggaW50cm9kdWNlcyBvciBtb2RpZmllcyBydW50aW1lIGNoZWNrcyBvciBhc3NlcnRpb25zIChlLmcuLCBXQVJOX09OKiwgVk1fV0FSTl9PTiosCiAgQlVHX09OKiwgbG9ja2RlcF9hc3NlcnQqKSBpbiByZWFjaGFibGUgY29kZSBwYXRocywgaXQgZW5mb3JjZXMgbmV3IG9yIHN0cmljdGVyIGludmFyaWFudHMuCiAgRXZlbiBpZiB0aGUgYXV0aG9yIGJlbGlldmVzIHRoZSBpbnZhcmlhbnQgYWx3YXlzIGhvbGRzLCBmdXp6aW5nIGlzIGVzc2VudGlhbCB0byB2ZXJpZnkgd2hldGhlcgogIGFuIHVudXN1YWwgc2VxdWVuY2Ugb2Ygb3BlcmF0aW9ucyBjYW4gdmlvbGF0ZSBpdC4KCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CjIuIFdIRU4gVE8gUkVUVVJOIFdvcnRoRnV6emluZz1mYWxzZSAoTkVHQVRJVkUgQ1JJVEVSSUEpCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgT05MWSBJRiBhbGwgbW9kaWZpZWQgY29kZSBmYWxscyBzdHJpY3RseSBpbnRvIG9uZSBvciBtb3JlIG9mIHRoZXNlIGNhdGVnb3JpZXM6CgotIE5vbi1rZXJuZWwgYW5kIG5vbi1leGVjdXRhYmxlIGNoYW5nZXM6CiAgKiBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBjb21tZW50cywgb3Igc3BlbGxpbmcgZml4ZXMuCiAgKiBVc2VyLXNwYWNlIGRpcmVjdG9yaWVzLCBzZWxmLXRlc3RzLCBzYW1wbGVzLCBvciBzY3JpcHRzIChlLmcuLCB0b29scy8sIHNhbXBsZXMvLCBzY3JpcHRzLywgdXNyLykKICAgIHRoYXQgZG8gbm90IGFmZmVjdCB0aGUgY29tcGlsZWQga2VybmVsIGltYWdlICh2bWxpbnV4KSBvciBrZXJuZWwgbW9kdWxlcy4KICAqIFB1cmVseSBkZWNvcmF0aXZlIGxvZ2dpbmcgKGUuZy4sIG1lc3NhZ2Ugc3RyaW5ncyBpbiBwcl9lcnIsIHByaW50aywgZGV2X2luZm8pIG9yIHRyYWNlcG9pbnRzCiAgICB0aGF0IGRvIG5vdCBhbHRlciBjb250cm9sIGZsb3cgb3IgZGF0YSBzdHJ1Y3R1cmVzLgogICogQnVpbGQgc3lzdGVtIG9yIEtjb25maWcgY2hhbmdlcyB0aGF0IGRvIG5vdCBhbHRlciBjb21waWxlZCBDIGxvZ2ljLgotIFN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZSBoYXJkd2FyZToKICAqIFZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaGVzLCBTbWFydE5JQ3MsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCwKICAgIGlvbmljLCBhbWRncHUpIHJlcXVpcmluZyBwaHlzaWNhbCBBU0lDL1BDSWUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuCi0gVW5yZWFjaGFibGUgZXhlY3V0aW9uIHBhdGhzOgogICogRHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoLnJlbW92ZSwgLnNodXRkb3duLCBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIpIGV4ZWN1dGVkIG9ubHkgZHVyaW5nCiAgICBwaHlzaWNhbCBQQ0kgaG90LXVucGx1ZyBvciBtYW51YWwgc3lzZnMgZHJpdmVyIHVuYmluZGluZy4KICAqIENvZGUgcGF0aHMgZXhjbHVzaXZlIHRvIGFyY2hpdGVjdHVyZXMgb3RoZXIgdGhhbiB0aGUgdGFyZ2V0IGFyY2hpdGVjdHVyZS4KCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CjMuIFdIRU4gVE8gUkVUVVJOIFdvcnRoRnV6emluZz10cnVlIChQT1NJVElWRSBDUklURVJJQSkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUmV0dXJuIFdvcnRoRnV6emluZz10cnVlIHdoZW5ldmVyIHRoZSBwYXRjaCB0b3VjaGVzIHJlYWNoYWJsZSBleGVjdXRhYmxlIGNvZGUsIGluY2x1ZGluZzoKLSBDb3JlIFN1YnN5c3RlbXM6CiAgKiBBbnkgbG9naWMgbW9kaWZpY2F0aW9ucyBpbiBtZW1vcnkgbWFuYWdlbWVudCAobW0vKSwgc3luY2hyb25pemF0aW9uL2xvY2tpbmcgKGtlcm5lbC9sb2NraW5nLyksCiAgICBCUEYsIHNjaGVkdWxlciwgY29yZSBuZXR3b3JraW5nLCBWRlMsIG9yIHN5c2NhbGwgaGFuZGxpbmcuCi0gUmVmYWN0b3JpbmdzIGFuZCBDb2RlIENsZWFudXBzOgogICogQW55IHJlc3RydWN0dXJpbmcgb2YgcmVhY2hhYmxlIGRhdGEgc3RydWN0dXJlcywgaGVscGVyIGFic3RyYWN0aW9ucywgb3IgYWxnb3JpdGhtIGZsb3dzLgotIFJ1bnRpbWUgQXNzZXJ0aW9ucyBhbmQgRGVmZW5zaXZlIENoZWNrczoKICAqIEFueSBpbnRyb2R1Y3Rpb24gb3IgYWx0ZXJhdGlvbiBvZiBhc3NlcnRpb25zIChXQVJOX09OKiwgVk1fV0FSTl9PTiosIEJVR19PTiosIGV0Yy4pIGluIHJlYWNoYWJsZSBwYXRocy4KLSBSZWFjaGFibGUgRHJpdmVycyBhbmQgUHJvdG9jb2xzOgogICogRHJpdmVycyBhY2Nlc3NpYmxlIHZpYSB2aXJ0dWFsIGJ1c2VzICh2aXJ0aW8sIFVTQiBnYWRnZXQsIGxvb3BiYWNrLCBuZXRsaW5rLCBiaW5kZXIsIHNvY2tldHMsIGV0Yy4pLgoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KNC4gRVhUUkFDVElORyBGb2N1c1N5bWJvbHMgKFBSRVZFTlRJTkcgRElMVVRJT04pCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CldoZW4gV29ydGhGdXp6aW5nPXRydWUsIHlvdSBtdXN0IGV4dHJhY3Qgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyBpbnRvIEZvY3VzU3ltYm9scyB0byBndWlkZSB0aGUgZnV6emVyOgoKLSBBVk9JRCBVQklRVUlUT1VTIExJRkVDWUNMRSBIT1QtUEFUSFM6CiAgRG8gTk9UIGxpc3QgZ2VuZXJpYywgdWJpcXVpdG91cyBmdW5jdGlvbnMgY2FsbGVkIGJ5IGFsbW9zdCBldmVyeSBwcm9ncmFtIGluIHRoZSBjb3JwdXMKICAoaW5jbHVkaW5nLCBidXQgbm90IGxpbWl0ZWQgdG86IGdlbmVyYWwgbWVtb3J5IGFsbG9jYXRvcnMgYW5kIGRlYWxsb2NhdG9ycywgcGFnZSBmYXVsdAogIGFuZCB0cmFwIGhhbmRsZXJzLCBvciBjb3JlIHN5bmNocm9uaXphdGlvbiBwcmltaXRpdmVzOyB0aGlzIGlzIG5vdCBhbiBleGhhdXN0aXZlIGxpc3QpLgogIExpc3RpbmcgdWJpcXVpdG91cyBmdW5jdGlvbnMgY2F1c2VzIHRoZSBmdXp6ZXIgdG8gY2xhc3NpZnkgdGhvdXNhbmRzIG9mIHVucmVsYXRlZCB0ZXN0cyBhcyAmIzM0O2ZvY3VzZWQmIzM0OywKICB3aGljaCBzZXZlcmVseSBkaWx1dGVzIGZ1enppbmcgZWZmb3J0IGF3YXkgZnJvbSB0aGUgYWN0dWFsIGNoYW5nZXMuCgotIFRBUkdFVCBTUEVDSUZJQyBGRUFUVVJFIExPR0lDIEFORCBFTlRSWVBPSU5UUzoKICBMaXN0IGZ1bmN0aW9ucyB0aGF0IHNwZWNpZmljYWxseSBpbXBsZW1lbnQgdGhlIGxvZ2ljIGJlaW5nIGFkZGVkIG9yIGFsdGVyZWQsIG9yIGRpcmVjdCBBUEkgZW50cnlwb2ludHMKICBmb3IgdGhlIHN1YnN5c3RlbSBmZWF0dXJlIHVuZGVyIHJldmlldy4KCi0gSEFORExJTkcgU1RBVElDIElOTElORSBGVU5DVElPTlMgSU4gSEVBREVSUyAoLmgpOgogIENvbXBpbGVyLWlubGluZWQgc3RhdGljIGZ1bmN0aW9ucyAoc3VjaCBhcyBzdGF0aWMgaW5saW5lcyBpbiBtbS8qLmggb3IgaW5jbHVkZS9saW51eC8qLmgpIGxhY2sKICBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzIGluIHZtbGludXggYW5kIGNhbm5vdCBiZSB0YXJnZXRlZCBkaXJlY3RseSBieSBzeW1ib2wgY292ZXJhZ2UgZmlsdGVycy4KICBJZiB0aGUgY2hhbmdlcyBhcmUgcHJpbWFyaWx5IGluIHN0YXRpYyBpbmxpbmUgaGVscGVycywgaWRlbnRpZnkgbm9uLXN0YXRpYywgZmVhdHVyZS1zcGVjaWZpYyBjYWxsZXIKICBmdW5jdGlvbnMgaW4gLmMgZmlsZXMgdGhhdCBleGVyY2lzZSB0aGVtIChhdm9pZGluZyB1YmlxdWl0b3VzIGxpZmVjeWNsZSB3cmFwcGVycykuCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQo1LiBJREVOVElGWUlORyBFbmFibGVDb25maWdzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CklkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgY29tcGlsZSBhbmQgcmVhY2ggdGhlIG1vZGlmaWVkIGNvZGU6Ci0gSW5zcGVjdCBLY29uZmlnIGZpbGVzIGFuZCAjaWZkZWYgZ3VhcmRzOyBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy4KLSBDaGVjayAmIzM0O2RlcGVuZHMgb24mIzM0OyBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3MgbmVlZGVkLgotIFN0cmlwIGFueSAmIzM5O0NPTkZJR18mIzM5OyBwcmVmaXggKGUuZy4sIHJldHVybiAmIzM0O05FVF9JUFY0JiMzNDsgaW5zdGVhZCBvZiAmIzM0O0NPTkZJR19ORVRfSVBWNCYjMzQ7KS4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5UYXJnZXQgYXJjaGl0ZWN0dXJlOiBhbWQ2NAoKRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCBiMzAxMmNmOWEyZWU2NTE3NTdjNDZlN2Y5MzM0ZTk1MzAzYjcxNDg0CkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIFN1biBTZXAgNiAwODowODo1NiAyMDI2ICYjNDM7MDAwMAoKICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldwoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jCmluZGV4IDg5ZDhiMzE3ODc4NDYuLjg5OTMwZWFmMWZkMzEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYwpAQCAtMTg4NCw4ICYjNDM7MTg4NCwxNyBAQCBzdGF0aWMgdm9pZCBhdGhfZHJhaW5fdHhxX2xpc3Qoc3RydWN0IGF0aF9zb2Z0YyAqc2MsIHN0cnVjdCBhdGhfdHhxICp0eHEsCiAJCWJmID0gbGlzdF9maXJzdF9lbnRyeShsaXN0LCBzdHJ1Y3QgYXRoX2J1ZiwgbGlzdCk7CiAKIAkJaWYgKGJmLSZndDtiZl9zdGF0ZS5zdGFsZSkgewotCQkJbGlzdF9kZWwoJmFtcDtiZi0mZ3Q7bGlzdCk7CiYjNDM7CQkJc3RydWN0IHNrX2J1ZmYgKnNrYiA9IGJmLSZndDtiZl9tcGR1OwogCiYjNDM7CQkJbGlzdF9kZWwoJmFtcDtiZi0mZ3Q7bGlzdCk7CiYjNDM7CQkJaWYgKGJmLSZndDtiZl9idWZfYWRkcikgewomIzQzOwkJCQlkbWFfdW5tYXBfc2luZ2xlKHNjLSZndDtkZXYsIGJmLSZndDtiZl9idWZfYWRkciwKJiM0MzsJCQkJCQkgc2tiID8gc2tiLSZndDtsZW4gOiAwLAomIzQzOwkJCQkJCSBETUFfVE9fREVWSUNFKTsKJiM0MzsJCQkJYmYtJmd0O2JmX2J1Zl9hZGRyID0gMDsKJiM0MzsJCQl9CiYjNDM7CQkJYmYtJmd0O2JmX21wZHUgPSBOVUxMOwomIzQzOwkJCWRldl9rZnJlZV9za2JfYW55KHNrYik7CiAJCQlhdGhfdHhfcmV0dXJuX2J1ZmZlcihzYywgYmYpOwogCQkJY29udGludWU7CiAJCX0KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMDYgMDg6MDg8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjctZmxhc2g8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzAzMgoJCQkJCQkJb3V0cHV0OiAzNAoJCQkJCQkJdGhvdWdodHM6IDI5NgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgYSBLZXJuZWwgUGF0Y2ggaW4gYGF0aDlrYCoqCgpPa2F5LCBsZXQmIzM5O3MgZGl2ZSBpbnRvIHRoaXMuIFRoZSB0YXNrIGlzIHRvIHVuZGVyc3RhbmQgdGhpcyBwYXRjaCwgYW5kIG15IGluaXRpYWwgdGhvdWdodCBpcyB0byBicmVhayBpdCBkb3duLiBSaWdodCBub3csIEkmIzM5O20gZm9jdXNpbmcgb24gdGhlIGNoYW5nZXMgbWFkZSB0byBgZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuY2Agd2l0aGluIHRoZSBgYXRoX2RyYWluX3R4cV9saXN0YCBmdW5jdGlvbi4KCkl0JiMzOTtzIGNsZWFyIHRoZSBwYXRjaCBhZGRyZXNzZXMgYSBzY2VuYXJpbyB3aGVyZSBhIGJ1ZmZlciAoYGJmYCkgaXMgbWFya2VkIGFzICYjMzQ7c3RhbGUmIzM0Oy4gTG9va2luZyBhdCB0aGUgY29kZSwgaXQgbG9va3MgbGlrZSBpdCBjbGVhbnMgdXAgdGhlIHJlc291cmNlcyBhc3NvY2lhdGVkIHdpdGggdGhlIGJ1ZmZlci4gU3BlY2lmaWNhbGx5LCBpdCByZW1vdmVzIHRoZSBidWZmZXIgZnJvbSBhIGxpc3QsIHJldHJpZXZlcyB0aGUgYXNzb2NpYXRlZCBgc2tfYnVmZmAsIHVubWFwcyB0aGUgRE1BIHJlZ2lvbiwgbnVsbGlmaWVzIGJ1ZmZlciBhZGRyZXNzZXMgYW5kIHRoZSBza2IsIGFuZCB0aGVuIGRlYWxsb2NhdGVzIHRoZSBgc2tfYnVmZmAgdXNpbmcgYGRldl9rZnJlZV9za2JfYW55YC4KClRoZSBjcnVjaWFsIGJpdCwgYW5kIHRoZSByZWFzb24gSSBhbSBmb2N1c2luZyBvbiB0aGlzIGZ1bmN0aW9uLCBpcyB0aGUgRE1BIHVubWFwIGNhbGwuIEkgd2FudCB0byBtYWtlIHN1cmUgdGhpcyBpcyBkb25lIGNvcnJlY3RseSBhbmQgc2FmZWx5LiBUaGUgb3JpZ2luYWwgY29kZSBoYXMgYmVlbiByZXBsYWNlZCB3aXRoIG9uZSB0aGF0IGxvb2tzIGxpa2UgaXQgd2lsbCBmcmVlIHRoZSBTS0IuIEkmIzM5O2xsIG5lZWQgdG8gZG91YmxlIGNoZWNrIHRoZSBjb3JyZWN0bmVzcyBvZiB0aGUgRE1BIHVubWFwIGFuZCB0aGUgYHNrYi0mZ3Q7bGVuYCB1c2FnZSwgZXNwZWNpYWxseSB0aGUgY29uZGl0aW9uYWwgYHNrYiA/IHNrYi0mZ3Q7bGVuIDogMGAuIFRoZSBvbGQgY29kZSBoYWQgYSBsaXN0IGRlbGV0aW9uLCBzbyBwcmVzdW1hYmx5IHRoZXJlIHdhcyBhbiB1bmRlcmx5aW5nIGlzc3VlLgoKVG8gZ2V0IGEgYmV0dGVyIGhhbmRsZSBvbiB0aGUgY29udGV4dCwgSSBuZWVkIHRvIHJlbWluZCBteXNlbGYgZXhhY3RseSB3aGF0IGBhdGg5a2AgaXMuIElzIHRoaXMgYSBVU0IgZHJpdmVyPyBQQ0k/IFNvbWUgb3RoZXIgaW50ZXJmYWNlPyBJJiMzOTtsbCBwcm9iYWJseSBzY2FuIHRoZSBgS2NvbmZpZ2AgZmlsZXMgYW5kIHRoZSBkaXJlY3RvcnkgY29udGVudHMgdG8gZGV0ZXJtaW5lIHRoZSBoYXJkd2FyZSBhcmNoaXRlY3R1cmUuIENvbnRleHQgaXMga2V5LCBhZnRlciBhbGwuIEtub3dpbmcgdGhlIGhhcmR3YXJlIHdpbGwgZ3VpZGUgaG93IHRvIHRoaW5rIGFib3V0IHRoZSBETUEgdW5tYXAuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NC8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMDYgMDg6MDk8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7QVRIOUsmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7XG5GdWxsIG91dHB1dCBpcyB0b28gbG9uZywgc2hvd2luZyA1MDAgb3V0IG9mIDUwNzIgbGluZXMuXG5Vc2UgbW9yZSBwcmVjaXNlIGV4cHJlc3Npb24gaWYgcG9zc2libGUuXG5cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnLTEtIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogSVNDXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZzoyOmNvbmZpZyBBVEg5S19IV1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWctMy1cdHRyaXN0YXRlXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZzo0OmNvbmZpZyBBVEg5S19DT01NT05cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnLTUtXHR0cmlzdGF0ZVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWctNi1cdHNlbGVjdCBBVEhfQ09NTU9OXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZzo3OmNvbmZpZyBBVEg5S19DT01NT05fREVCVUdcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnLTgtXHRib29sXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZzo5OmNvbmZpZyBBVEg5S19ERlNfREVCVUdGU1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWctMTAtXHRkZWZfYm9vbCB5XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZzoxMTpcdGRlcGVuZHMgb24gQVRIOUtfREVCVUdGUyBcdTAwMjZcdTAwMjYgQVRIOUtfREZTX0NFUlRJRklFRFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWctMTItXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZzoxMzpjb25maWcgQVRIOUtfQlRDT0VYX1NVUFBPUlRcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnLTE0LVx0Ym9vbCBcJiMzNDtBdGhlcm9zIGJsdWV0b290aCBjb2V4aXN0ZW5jZSBzdXBwb3J0XCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZzoxNTpcdGRlcGVuZHMgb24gKEFUSDlLIHx8IEFUSDlLX0hUQylcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnLTE2LVx0ZGVmYXVsdCB5XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWctMjAtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZzoyMTpjb25maWcgQVRIOUtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnLTIyLVx0dHJpc3RhdGUgXCYjMzQ7QXRoZXJvcyA4MDIuMTFuIHdpcmVsZXNzIGNhcmRzIHN1cHBvcnRcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZy0yNC1cdHNlbGVjdCBNQUM4MDIxMV9MRURTIGlmIExFRFNfQ0xBU1M9eSB8fCBMRURTX0NMQVNTPU1BQzgwMjExXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZzoyNTpcdHNlbGVjdCBBVEg5S19IV1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWc6MjY6XHRzZWxlY3QgQVRIOUtfQ09NTU9OXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZy0yNy1cdGhlbHBcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZy0zOC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnOjM5OmNvbmZpZyBBVEg5S19QQ0lcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnLTQwLVx0Ym9vbCBcJiMzNDtBdGhlcm9zIGF0aDlrIFBDSS9QQ0llIGJ1cyBzdXBwb3J0XCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZy00MS1cdGRlZmF1bHQgeVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWc6NDI6XHRkZXBlbmRzIG9uIEFUSDlLIFx1MDAyNlx1MDAyNiBQQ0lcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnLTQzLVx0aGVscFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnLTQ3LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWc6NDg6Y29uZmlnIEFUSDlLX0FIQlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWctNDktXHRib29sIFwmIzM0O0F0aGVyb3MgYXRoOWsgQUhCIGJ1cyBzdXBwb3J0XCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZzo1MDpcdGRlcGVuZHMgb24gQVRIOUsgXHUwMDI2XHUwMDI2IE9GXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZy01MS1cdGRlZmF1bHQgblxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnLTU3LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWc6NTg6Y29uZmlnIEFUSDlLX0RFQlVHRlNcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnLTU5LVx0Ym9vbCBcJiMzNDtBdGhlcm9zIGF0aDlrIGRlYnVnZ2luZ1wmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWc6NjA6XHRkZXBlbmRzIG9uIEFUSDlLIFx1MDAyNlx1MDAyNiBERUJVR19GUyBcdTAwMjZcdTAwMjYgTUFDODAyMTFfREVCVUdGU1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWc6NjE6XHRzZWxlY3QgQVRIOUtfQ09NTU9OX0RFQlVHXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZy02Mi1cdGhlbHBcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZy02OC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnOjY5OmNvbmZpZyBBVEg5S19TVEFUSU9OX1NUQVRJU1RJQ1NcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnLTcwLVx0Ym9vbCBcJiMzNDtEZXRhaWxlZCBzdGF0aW9uIHN0YXRpc3RpY3NcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnOjcxOlx0ZGVwZW5kcyBvbiBBVEg5SyBcdTAwMjZcdTAwMjYgQVRIOUtfREVCVUdGUyBcdTAwMjZcdTAwMjYgREVCVUdfRlNcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnLTcyLVx0ZGVmYXVsdCBuXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWctNzUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZzo3Njpjb25maWcgQVRIOUtfVFg5OVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWctNzctXHRib29sIFwmIzM0O0F0aGVyb3MgYXRoOWsgVFg5OSB0ZXN0aW5nIHN1cHBvcnRcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnOjc4Olx0ZGVwZW5kcyBvbiBBVEg5S19ERUJVR0ZTIFx1MDAyNlx1MDAyNiBDRkc4MDIxMV9DRVJUSUZJQ0FUSU9OX09OVVNcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnLTc5LVx0ZGVmYXVsdCBuXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWctOTUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZzo5Njpjb25maWcgQVRIOUtfREZTX0NFUlRJRklFRFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWctOTctXHRib29sIFwmIzM0O0F0aGVyb3MgREZTIHN1cHBvcnQgZm9yIGNlcnRpZmllZCBwbGF0Zm9ybXNcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnOjk4Olx0ZGVwZW5kcyBvbiBBVEg5SyBcdTAwMjZcdTAwMjYgQ0ZHODAyMTFfQ0VSVElGSUNBVElPTl9PTlVTXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZy05OS1cdGRlZmF1bHQgblxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnLTExNC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnOjExNTpjb25maWcgQVRIOUtfRFlOQUNLXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZy0xMTYtXHRib29sIFwmIzM0O0F0aGVyb3MgYXRoOWsgQUNLIHRpbWVvdXQgZXN0aW1hdGlvbiBhbGdvcml0aG1cJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnOjExNzpcdGRlcGVuZHMgb24gQVRIOUtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnLTExOC1cdGRlZmF1bHQgblxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnLTEyMy1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnOjEyNDpjb25maWcgQVRIOUtfV09XXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZy0xMjUtXHRib29sIFwmIzM0O1dha2Ugb24gV2lyZWxlc3MgTEFOIHN1cHBvcnQgKEVYUEVSSU1FTlRBTClcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnOjEyNjpcdGRlcGVuZHMgb24gQVRIOUsgXHUwMDI2XHUwMDI2IFBNXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZy0xMjctXHRkZWZhdWx0IG5cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZy0xMzEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZzoxMzI6Y29uZmlnIEFUSDlLX1JGS0lMTFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWctMTMzLVx0Ym9vbCBcJiMzNDtBdGhlcm9zIGF0aDlrIHJma2lsbCBzdXBwb3J0XCYjMzQ7IGlmIEVYUEVSVFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWc6MTM0Olx0ZGVwZW5kcyBvbiBBVEg5S1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWc6MTM1Olx0ZGVwZW5kcyBvbiBSRktJTEw9eSB8fCBSRktJTEw9QVRIOUtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnLTEzNi1cdGRlZmF1bHQgeVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnLTE0MS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnOjE0Mjpjb25maWcgQVRIOUtfQ0hBTk5FTF9DT05URVhUXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZy0xNDMtXHRib29sIFwmIzM0O0NoYW5uZWwgQ29udGV4dCBzdXBwb3J0XCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZzoxNDQ6XHRkZXBlbmRzIG9uIEFUSDlLXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZy0xNDUtXHRkZWZhdWx0IG5cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZy0xNTAtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZzoxNTE6Y29uZmlnIEFUSDlLX1BDT0VNXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZy0xNTItXHRib29sIFwmIzM0O0F0aGVyb3MgYXRoOWsgc3VwcG9ydCBmb3IgUEMgT0VNIGNhcmRzXCYjMzQ7IGlmIEVYUEVSVFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWc6MTUzOlx0ZGVwZW5kcyBvbiBBVEg5S1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWctMTU0LVx0ZGVmYXVsdCB5XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZy0xNTUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZzoxNTY6Y29uZmlnIEFUSDlLX1BDSV9OT19FRVBST01cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnLTE1Ny1cdHRyaXN0YXRlIFwmIzM0O0F0aGVyb3MgYXRoOWsgcGNpIGxvYWRlciBmb3IgRUVQUk9NLWxlc3MgY2hpcHNcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnOjE1ODpcdGRlcGVuZHMgb24gQVRIOUtfUENJXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZy0xNTktXHRkZWZhdWx0IG5cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZy0xNzEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZzoxNzI6Y29uZmlnIEFUSDlLX0hUQ1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWctMTczLVx0dHJpc3RhdGUgXCYjMzQ7QXRoZXJvcyBIVEMgYmFzZWQgd2lyZWxlc3MgY2FyZHMgc3VwcG9ydFwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnLTE3NS1cdHNlbGVjdCBNQUM4MDIxMV9MRURTIGlmIExFRFNfQ0xBU1M9eSB8fCBMRURTX0NMQVNTPU1BQzgwMjExXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZzoxNzY6XHRzZWxlY3QgQVRIOUtfSFdcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnOjE3NzpcdHNlbGVjdCBBVEg5S19DT01NT05cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnLTE3OC1cdGhlbHBcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZy0xODYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZzoxODc6Y29uZmlnIEFUSDlLX0hUQ19ERUJVR0ZTXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZy0xODgtXHRib29sIFwmIzM0O0F0aGVyb3MgYXRoOWtfaHRjIGRlYnVnZ2luZ1wmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWc6MTg5Olx0ZGVwZW5kcyBvbiBBVEg5S19IVEMgXHUwMDI2XHUwMDI2IERFQlVHX0ZTXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZzoxOTA6XHRzZWxlY3QgQVRIOUtfQ09NTU9OX0RFQlVHXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZy0xOTEtXHRoZWxwXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWctMTk0LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWc6MTk1OmNvbmZpZyBBVEg5S19IV1JOR1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWctMTk2LVx0Ym9vbCBcJiMzNDtSYW5kb20gbnVtYmVyIGdlbmVyYXRvciBzdXBwb3J0XCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZzoxOTc6XHRkZXBlbmRzIG9uIEFUSDlLIFx1MDAyNlx1MDAyNiAoSFdfUkFORE9NID0geSB8fCBIV19SQU5ET00gPSBBVEg5SylcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnLTE5OC1cdGRlZmF1bHQgblxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnLTIwNS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnOjIwNjpjb25maWcgQVRIOUtfQ09NTU9OX1NQRUNUUkFMXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZy0yMDctXHRib29sIFwmIzM0O0F0aGVyb3MgYXRoOWsvYXRoOWtfaHRjIHNwZWN0cmFsIHNjYW4gc3VwcG9ydFwmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWc6MjA4Olx0ZGVwZW5kcyBvbiBBVEg5S19ERUJVR0ZTIHx8IEFUSDlLX0hUQ19ERUJVR0ZTXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZy0yMDktXHRzZWxlY3QgUkVMQVlcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvTWFrZWZpbGU9Mj1hdGg5ay15ICYjNDM7PVx0YmVhY29uLm8gXFxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvTWFrZWZpbGUtMTEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvTWFrZWZpbGU6MTI6YXRoOWstJChDT05GSUdfQVRIOUtfQlRDT0VYX1NVUFBPUlQpICYjNDM7PSBtY2kub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL01ha2VmaWxlOjEzOmF0aDlrLSQoQ09ORklHX0FUSDlLX1BDSSkgJiM0Mzs9IHBjaS5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvTWFrZWZpbGU6MTQ6YXRoOWstJChDT05GSUdfQVRIOUtfQUhCKSAmIzQzOz0gYWhiLm9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9NYWtlZmlsZToxNTphdGg5ay0kKENPTkZJR19BVEg5S19ERlNfREVCVUdGUykgJiM0Mzs9IGRmc19kZWJ1Zy5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvTWFrZWZpbGU6MTY6YXRoOWstJChDT05GSUdfQVRIOUtfREZTX0NFUlRJRklFRCkgJiM0Mzs9IGRmcy5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvTWFrZWZpbGU6MTc6YXRoOWstJChDT05GSUdfQVRIOUtfVFg5OSkgJiM0Mzs9IHR4OTkub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL01ha2VmaWxlOjE4OmF0aDlrLSQoQ09ORklHX0FUSDlLX1dPVykgJiM0Mzs9IHdvdy5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvTWFrZWZpbGU6MTk6YXRoOWstJChDT05GSUdfQVRIOUtfSFdSTkcpICYjNDM7PSBybmcub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL01ha2VmaWxlLTIwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL01ha2VmaWxlOjIxOmF0aDlrLSQoQ09ORklHX0FUSDlLX0RFQlVHRlMpICYjNDM7PSBkZWJ1Zy5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvTWFrZWZpbGUtMjItXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvTWFrZWZpbGU6MjM6YXRoOWstJChDT05GSUdfQVRIOUtfU1RBVElPTl9TVEFUSVNUSUNTKSAmIzQzOz0gZGVidWdfc3RhLm9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9NYWtlZmlsZS0yNC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9NYWtlZmlsZToyNTpvYmotJChDT05GSUdfQVRIOUspICYjNDM7PSBhdGg5ay5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvTWFrZWZpbGUtMjYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvTWFrZWZpbGU9Mjc9YXRoOWtfaHcteTo9XHRcXFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9NYWtlZmlsZS00Ny1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9NYWtlZmlsZTo0ODphdGg5a19ody0kKENPTkZJR19BVEg5S19XT1cpICYjNDM7PSBhcjkwMDNfd293Lm9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9NYWtlZmlsZS00OS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9NYWtlZmlsZTo1MDphdGg5a19ody0kKENPTkZJR19BVEg5S19CVENPRVhfU1VQUE9SVCkgJiM0Mzs9IGJ0Y29leC5vIFxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvTWFrZWZpbGUtNTEtXHRcdFx0XHRcdCAgIGFyOTAwM19tY2kubyBcXFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9NYWtlZmlsZS01My1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9NYWtlZmlsZTo1NDphdGg5a19ody0kKENPTkZJR19BVEg5S19QQ09FTSkgJiM0Mzs9IGFyOTAwM19ydHQub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL01ha2VmaWxlLTU1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL01ha2VmaWxlOjU2OmF0aDlrX2h3LSQoQ09ORklHX0FUSDlLX0RZTkFDSykgJiM0Mzs9IGR5bmFjay5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvTWFrZWZpbGUtNTctXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvTWFrZWZpbGU6NTg6b2JqLSQoQ09ORklHX0FUSDlLX0hXKSAmIzQzOz0gYXRoOWtfaHcub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL01ha2VmaWxlLTU5LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL01ha2VmaWxlOjYwOm9iai0kKENPTkZJR19BVEg5S19DT01NT04pICYjNDM7PSBhdGg5a19jb21tb24ub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL01ha2VmaWxlLTYxLWF0aDlrX2NvbW1vbi15Oj1cdGNvbW1vbi5vIFxcXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL01ha2VmaWxlLTY0LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL01ha2VmaWxlOjY1OmF0aDlrX2NvbW1vbi0kKENPTkZJR19BVEg5S19DT01NT05fREVCVUcpICYjNDM7PSBjb21tb24tZGVidWcub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL01ha2VmaWxlOjY2OmF0aDlrX2NvbW1vbi0kKENPTkZJR19BVEg5S19DT01NT05fU1BFQ1RSQUwpICYjNDM7PSBjb21tb24tc3BlY3RyYWwub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL01ha2VmaWxlLTY3LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL01ha2VmaWxlPTY4PWF0aDlrX2h0Yy15ICYjNDM7PVx0aHRjX2hzdC5vIFxcXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL01ha2VmaWxlLTc2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL01ha2VmaWxlOjc3OmF0aDlrX2h0Yy0kKENPTkZJR19BVEg5S19IVENfREVCVUdGUykgJiM0Mzs9IGh0Y19kcnZfZGVidWcub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL01ha2VmaWxlLTc4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL01ha2VmaWxlOjc5Om9iai0kKENPTkZJR19BVEg5S19IVEMpICYjNDM7PSBhdGg5a19odGMub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL01ha2VmaWxlLTgwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL01ha2VmaWxlOjgxOm9iai0kKENPTkZJR19BVEg5S19QQ0lfTk9fRUVQUk9NKSAmIzQzOz0gYXRoOWtfcGNpX293bF9sb2FkZXIub1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYz0zOT1zdGF0aWMgY29uc3Qgc3RydWN0IGFuaV9vZmRtX2xldmVsX2VudHJ5IG9mZG1fbGV2ZWxfdGFibGVbXSA9IHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmMtNTEtfTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYzo1MjojZGVmaW5lIEFUSDlLX0FOSV9PRkRNX05VTV9MRVZFTCBcXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jLTUzLVx0QVJSQVlfU0laRShvZmRtX2xldmVsX3RhYmxlKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jOjU0OiNkZWZpbmUgQVRIOUtfQU5JX09GRE1fTUFYX0xFVkVMIFxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmM6NTU6XHQoQVRIOUtfQU5JX09GRE1fTlVNX0xFVkVMLTEpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmM6NTY6I2RlZmluZSBBVEg5S19BTklfT0ZETV9ERUZfTEVWRUwgXFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYy01Ny1cdDMgLyogZGVmYXVsdCBsZXZlbCAtIG1hdGNoZXMgdGhlIElOSSBzZXR0aW5ncyAqL1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYz04NT1zdGF0aWMgY29uc3Qgc3RydWN0IGFuaV9jY2tfbGV2ZWxfZW50cnkgY2NrX2xldmVsX3RhYmxlW10gPSB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jLTk3LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jOjk4OiNkZWZpbmUgQVRIOUtfQU5JX0NDS19OVU1fTEVWRUwgXFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYy05OS1cdEFSUkFZX1NJWkUoY2NrX2xldmVsX3RhYmxlKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jOjEwMDojZGVmaW5lIEFUSDlLX0FOSV9DQ0tfTUFYX0xFVkVMIFxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmM6MTAxOlx0KEFUSDlLX0FOSV9DQ0tfTlVNX0xFVkVMLTEpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmM6MTAyOiNkZWZpbmUgQVRIOUtfQU5JX0NDS19NQVhfTEVWRUxfTE9XX1JTU0kgXFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYzoxMDM6XHQoQVRIOUtfQU5JX0NDS19OVU1fTEVWRUwtMylcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYzoxMDQ6I2RlZmluZSBBVEg5S19BTklfQ0NLX0RFRl9MRVZFTCBcXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jLTEwNS1cdDIgLyogZGVmYXVsdCBsZXZlbCAtIG1hdGNoZXMgdGhlIElOSSBzZXR0aW5ncyAqL1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYz0xNDk9c3RhdGljIHZvaWQgYXRoOWtfaHdfc2V0X29mZG1fbmlsKHN0cnVjdCBhdGhfaHcgKmFoLCB1OCBpbW11bml0eUxldmVsLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYy0xNjAtXHRcdGltbXVuaXR5TGV2ZWwsIEJFQUNPTl9SU1NJKGFoKSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYzoxNjE6XHRcdEFUSDlLX0FOSV9SU1NJX1RIUl9MT1csXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmM6MTYyOlx0XHRBVEg5S19BTklfUlNTSV9USFJfSElHSCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmMtMTYzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jOjE2NDpcdGlmIChBUl9TUkVWXzkxMDAoYWgpIFx1MDAyNlx1MDAyNiBpbW11bml0eUxldmVsIFx1MDAzYyBBVEg5S19BTklfT0ZETV9ERUZfTEVWRUwpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmM6MTY1Olx0XHRpbW11bml0eUxldmVsID0gQVRIOUtfQU5JX09GRE1fREVGX0xFVkVMO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jLTE2Ni1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmMtMTc0LVx0XHRhdGg5a19od19hbmlfY29udHJvbChhaCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYzoxNzU6XHRcdFx0XHQgICAgIEFUSDlLX0FOSV9TUFVSX0lNTVVOSVRZX0xFVkVMLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jLTE3Ni1cdFx0XHRcdCAgICAgZW50cnlfb2ZkbS1cdTAwM2VzcHVyX2ltbXVuaXR5X2xldmVsKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmMtMTgwLVx0XHRhdGg5a19od19hbmlfY29udHJvbChhaCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYzoxODE6XHRcdFx0XHQgICAgIEFUSDlLX0FOSV9GSVJTVEVQX0xFVkVMLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jLTE4Mi1cdFx0XHRcdCAgICAgZW50cnlfb2ZkbS1cdTAwM2VmaXJfc3RlcF9sZXZlbCk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jLTE4NS1cdGlmIChhaC1cdTAwM2VvcG1vZGUgPT0gTkw4MDIxMV9JRlRZUEVfU1RBVElPTiBcdTAwMjZcdTAwMjZcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYzoxODY6XHQgICAgQkVBQ09OX1JTU0koYWgpIFx1MDAzYz0gQVRIOUtfQU5JX1JTU0lfVEhSX0hJR0gpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmMtMTg3LVx0XHR3ZWFrX3NpZyA9IHRydWU7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jLTIwMi1cdGlmIChhbmlTdGF0ZS1cdTAwM2VvZmRtV2Vha1NpZ0RldGVjdCAhPSB3ZWFrX3NpZylcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYzoyMDM6XHRcdGF0aDlrX2h3X2FuaV9jb250cm9sKGFoLCBBVEg5S19BTklfT0ZETV9XRUFLX1NJR05BTF9ERVRFQ1RJT04sXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmMtMjA0LVx0XHRcdFx0ICAgICB3ZWFrX3NpZyk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jLTIwOC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYzoyMDk6XHRpZiAoYW5pU3RhdGUtXHUwMDNlb2ZkbU5vaXNlSW1tdW5pdHlMZXZlbCBcdTAwM2U9IEFUSDlLX0FOSV9PRkRNX0RFRl9MRVZFTCkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jOjIxMDpcdFx0YWgtXHUwMDNlY29uZmlnLm9mZG1fdHJpZ19oaWdoID0gQVRIOUtfQU5JX09GRE1fVFJJR19ISUdIO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jOjIxMTpcdFx0YWgtXHUwMDNlY29uZmlnLm9mZG1fdHJpZ19sb3cgPSBBVEg5S19BTklfT0ZETV9UUklHX0xPV19BQk9WRV9JTkk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmMtMjEyLVx0fSBlbHNlIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYzoyMTM6XHRcdGFoLVx1MDAzZWNvbmZpZy5vZmRtX3RyaWdfaGlnaCA9IEFUSDlLX0FOSV9PRkRNX1RSSUdfSElHSF9CRUxPV19JTkk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmM6MjE0Olx0XHRhaC1cdTAwM2Vjb25maWcub2ZkbV90cmlnX2xvdyA9IEFUSDlLX0FOSV9PRkRNX1RSSUdfTE9XO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jLTIxNS1cdH1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmM9MjE4PXN0YXRpYyB2b2lkIGF0aDlrX2h3X2FuaV9vZmRtX2Vycl90cmlnZ2VyKHN0cnVjdCBhdGhfaHcgKmFoKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYy0yMjEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmM6MjIyOlx0aWYgKGFuaVN0YXRlLVx1MDAzZW9mZG1Ob2lzZUltbXVuaXR5TGV2ZWwgXHUwMDNjIEFUSDlLX0FOSV9PRkRNX01BWF9MRVZFTClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYy0yMjMtXHRcdGF0aDlrX2h3X3NldF9vZmRtX25pbChhaCwgYW5pU3RhdGUtXHUwMDNlb2ZkbU5vaXNlSW1tdW5pdHlMZXZlbCAmIzQzOyAxLCBmYWxzZSk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jPTIyOT1zdGF0aWMgdm9pZCBhdGg5a19od19zZXRfY2NrX25pbChzdHJ1Y3QgYXRoX2h3ICphaCwgdV9pbnQ4X3QgaW1tdW5pdHlMZXZlbCxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmMtMjM4LVx0XHRhbmlTdGF0ZS1cdTAwM2VjY2tOb2lzZUltbXVuaXR5TGV2ZWwsIGltbXVuaXR5TGV2ZWwsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmM6MjM5Olx0XHRCRUFDT05fUlNTSShhaCksIEFUSDlLX0FOSV9SU1NJX1RIUl9MT1csXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmM6MjQwOlx0XHRBVEg5S19BTklfUlNTSV9USFJfSElHSCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmMtMjQxLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jOjI0MjpcdGlmIChBUl9TUkVWXzkxMDAoYWgpIFx1MDAyNlx1MDAyNiBpbW11bml0eUxldmVsIFx1MDAzYyBBVEg5S19BTklfQ0NLX0RFRl9MRVZFTClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYzoyNDM6XHRcdGltbXVuaXR5TGV2ZWwgPSBBVEg5S19BTklfQ0NLX0RFRl9MRVZFTDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYy0yNDQtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmMtMjQ1LVx0aWYgKGFoLVx1MDAzZW9wbW9kZSA9PSBOTDgwMjExX0lGVFlQRV9TVEFUSU9OIFx1MDAyNlx1MDAyNlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jOjI0NjpcdCAgICBCRUFDT05fUlNTSShhaCkgXHUwMDNjPSBBVEg5S19BTklfUlNTSV9USFJfTE9XIFx1MDAyNlx1MDAyNlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jOjI0NzpcdCAgICBpbW11bml0eUxldmVsIFx1MDAzZSBBVEg5S19BTklfQ0NLX01BWF9MRVZFTF9MT1dfUlNTSSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYzoyNDg6XHRcdGltbXVuaXR5TGV2ZWwgPSBBVEg5S19BTklfQ0NLX01BWF9MRVZFTF9MT1dfUlNTSTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYy0yNDktXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jLTI1OC1cdFx0YXRoOWtfaHdfYW5pX2NvbnRyb2woYWgsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmM6MjU5Olx0XHRcdFx0ICAgICBBVEg5S19BTklfRklSU1RFUF9MRVZFTCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYy0yNjAtXHRcdFx0XHQgICAgIGVudHJ5X2Njay1cdTAwM2VmaXJfc3RlcF9sZXZlbCk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jLTI2OC1cdFx0YXRoOWtfaHdfYW5pX2NvbnRyb2woYWgsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmM6MjY5Olx0XHRcdFx0ICAgICBBVEg5S19BTklfTVJDX0NDSyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYy0yNzAtXHRcdFx0XHQgICAgIGVudHJ5X2Njay1cdTAwM2VtcmNfY2NrX29uKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmM9MjczPXN0YXRpYyB2b2lkIGF0aDlrX2h3X2FuaV9jY2tfZXJyX3RyaWdnZXIoc3RydWN0IGF0aF9odyAqYWgpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jLTI3Ni1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYzoyNzc6XHRpZiAoYW5pU3RhdGUtXHUwMDNlY2NrTm9pc2VJbW11bml0eUxldmVsIFx1MDAzYyBBVEg5S19BTklfQ0NLX01BWF9MRVZFTClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYy0yNzgtXHRcdGF0aDlrX2h3X3NldF9jY2tfbmlsKGFoLCBhbmlTdGF0ZS1cdTAwM2VjY2tOb2lzZUltbXVuaXR5TGV2ZWwgJiM0MzsgMSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmM9MzA5PXZvaWQgYXRoOWtfYW5pX3Jlc2V0KHN0cnVjdCBhdGhfaHcgKmFoLCBib29sIGlzX3NjYW5uaW5nKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYy0zMjEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmM6MzIyOlx0b2ZkbV9uaWwgPSBtYXhfdChpbnQsIEFUSDlLX0FOSV9PRkRNX0RFRl9MRVZFTCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYy0zMjMtXHRcdFx0IGFuaVN0YXRlLVx1MDAzZW9mZG1Ob2lzZUltbXVuaXR5TGV2ZWwpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jOjMyNDpcdGNja19uaWwgPSBtYXhfdChpbnQsIEFUSDlLX0FOSV9DQ0tfREVGX0xFVkVMLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jLTMyNS1cdFx0XHQgYW5pU3RhdGUtXHUwMDNlY2NrTm9pc2VJbW11bml0eUxldmVsKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmMtMzM2LVx0XHRpZiAoYW5pU3RhdGUtXHUwMDNlb2ZkbU5vaXNlSW1tdW5pdHlMZXZlbCAhPVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jOjMzNzpcdFx0ICAgIEFUSDlLX0FOSV9PRkRNX0RFRl9MRVZFTCB8fFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jLTMzOC1cdFx0ICAgIGFuaVN0YXRlLVx1MDAzZWNja05vaXNlSW1tdW5pdHlMZXZlbCAhPVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jOjMzOTpcdFx0ICAgIEFUSDlLX0FOSV9DQ0tfREVGX0xFVkVMKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmMtMzQwLVx0XHRcdGF0aF9kYmcoY29tbW9uLCBBTkksXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jLTM0Ny1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYzozNDg6XHRcdFx0b2ZkbV9uaWwgPSBBVEg5S19BTklfT0ZETV9ERUZfTEVWRUw7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmM6MzQ5Olx0XHRcdGNja19uaWwgPSBBVEg5S19BTklfQ0NLX0RFRl9MRVZFTDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYy0zNTAtXHRcdH1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmM9NDc3PXZvaWQgYXRoOWtfaHdfYW5pX2luaXQoc3RydWN0IGF0aF9odyAqYWgpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jLTQ4NC1cdGlmIChBUl9TUkVWXzkzMDBfMjBfT1JfTEFURVIoYWgpKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmM6NDg1Olx0XHRhaC1cdTAwM2Vjb25maWcub2ZkbV90cmlnX2hpZ2ggPSBBVEg5S19BTklfT0ZETV9UUklHX0hJR0g7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmM6NDg2Olx0XHRhaC1cdTAwM2Vjb25maWcub2ZkbV90cmlnX2xvdyA9IEFUSDlLX0FOSV9PRkRNX1RSSUdfTE9XO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jOjQ4NzpcdFx0YWgtXHUwMDNlY29uZmlnLmNja190cmlnX2hpZ2ggPSBBVEg5S19BTklfQ0NLX1RSSUdfSElHSDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYzo0ODg6XHRcdGFoLVx1MDAzZWNvbmZpZy5jY2tfdHJpZ19sb3cgPSBBVEg5S19BTklfQ0NLX1RSSUdfTE9XO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jLTQ4OS1cdH0gZWxzZSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmM6NDkwOlx0XHRhaC1cdTAwM2Vjb25maWcub2ZkbV90cmlnX2hpZ2ggPSBBVEg5S19BTklfT0ZETV9UUklHX0hJR0hfT0xEO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jOjQ5MTpcdFx0YWgtXHUwMDNlY29uZmlnLm9mZG1fdHJpZ19sb3cgPSBBVEg5S19BTklfT0ZETV9UUklHX0xPV19PTEQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmM6NDkyOlx0XHRhaC1cdTAwM2Vjb25maWcuY2NrX3RyaWdfaGlnaCA9IEFUSDlLX0FOSV9DQ0tfVFJJR19ISUdIX09MRDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYzo0OTM6XHRcdGFoLVx1MDAzZWNvbmZpZy5jY2tfdHJpZ19sb3cgPSBBVEg5S19BTklfQ0NLX1RSSUdfTE9XX09MRDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYy00OTQtXHR9XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmMtNDk1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jOjQ5NjpcdGFuaS1cdTAwM2VzcHVySW1tdW5pdHlMZXZlbCA9IEFUSDlLX0FOSV9TUFVSX0lNTVVORV9MVkw7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmM6NDk3Olx0YW5pLVx1MDAzZWZpcnN0ZXBMZXZlbCA9IEFUSDlLX0FOSV9GSVJTVEVQX0xWTDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYy00OTgtXHRhbmktXHUwMDNlbXJjQ0NLID0gQVJfU1JFVl85MzAwXzIwX09SX0xBVEVSKGFoKSA/IHRydWUgOiBmYWxzZTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmMtNTAwLVx0YW5pLVx1MDAzZW9mZG1XZWFrU2lnRGV0ZWN0ID0gdHJ1ZTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYzo1MDE6XHRhbmktXHUwMDNlY2NrTm9pc2VJbW11bml0eUxldmVsID0gQVRIOUtfQU5JX0NDS19ERUZfTEVWRUw7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmM6NTAyOlx0YW5pLVx1MDAzZW9mZG1Ob2lzZUltbXVuaXR5TGV2ZWwgPSBBVEg5S19BTklfT0ZETV9ERUZfTEVWRUw7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmMtNTAzLVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYy01MDctXHQgKi9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYzo1MDg6XHRhaC1cdTAwM2VhbmlwZXJpb2QgPSBBVEg5S19BTklfUEVSSU9EO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jOjUwOTpcdGFoLVx1MDAzZWNvbmZpZy5hbmlfcG9sbF9pbnRlcnZhbCA9IEFUSDlLX0FOSV9QT0xMSU5URVJWQUw7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmMtNTEwLVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuaC0yMi0vKiB1bml0cyBhcmUgZXJyb3JzIHBlciBzZWNvbmQgKi9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuaDoyMzojZGVmaW5lIEFUSDlLX0FOSV9PRkRNX1RSSUdfSElHSCAgICAgICAgICAgMzUwMFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5oOjI0OiNkZWZpbmUgQVRIOUtfQU5JX09GRE1fVFJJR19ISUdIX0JFTE9XX0lOSSAxMDAwXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmg6MjU6I2RlZmluZSBBVEg5S19BTklfT0ZETV9UUklHX0hJR0hfT0xEICAgICAgIDUwMFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5oLTI2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5oOjI3OiNkZWZpbmUgQVRIOUtfQU5JX09GRE1fVFJJR19MT1cgICAgICAgICAgIDQwMFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5oOjI4OiNkZWZpbmUgQVRIOUtfQU5JX09GRE1fVFJJR19MT1dfQUJPVkVfSU5JIDkwMFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5oOjI5OiNkZWZpbmUgQVRIOUtfQU5JX09GRE1fVFJJR19MT1dfT0xEICAgICAgIDIwMFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5oLTMwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5oOjMxOiNkZWZpbmUgQVRIOUtfQU5JX0NDS19UUklHX0hJR0ggICAgICAgICAgIDYwMFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5oOjMyOiNkZWZpbmUgQVRIOUtfQU5JX0NDS19UUklHX0hJR0hfT0xEICAgICAgIDIwMFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5oOjMzOiNkZWZpbmUgQVRIOUtfQU5JX0NDS19UUklHX0xPVyAgICAgICAgICAgIDMwMFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5oOjM0OiNkZWZpbmUgQVRIOUtfQU5JX0NDS19UUklHX0xPV19PTEQgICAgICAgIDEwMFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5oLTM1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5oOjM2OiNkZWZpbmUgQVRIOUtfQU5JX1NQVVJfSU1NVU5FX0xWTCAgICAgICAgIDNcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuaDozNzojZGVmaW5lIEFUSDlLX0FOSV9GSVJTVEVQX0xWTCAgICAgICAgICAgICAyXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmgtMzgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmg6Mzk6I2RlZmluZSBBVEg5S19BTklfUlNTSV9USFJfSElHSCAgICAgICAgICAgNDBcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuaDo0MDojZGVmaW5lIEFUSDlLX0FOSV9SU1NJX1RIUl9MT1cgICAgICAgICAgICA3XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmgtNDEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmg6NDI6I2RlZmluZSBBVEg5S19BTklfUEVSSU9EICAgICAgICAgICAgICAgICAgMzAwXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmgtNDMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmgtNDQtLyogaW4gbXMgKi9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuaDo0NTojZGVmaW5lIEFUSDlLX0FOSV9QT0xMSU5URVJWQUwgICAgICAgICAgICAxMDAwXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmgtNDYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmg6NDc6I2RlZmluZSBBVEg5S19TSUdfRklSU1RFUF9TRVRUSU5HX01JTiAgICAgMFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5oOjQ4OiNkZWZpbmUgQVRIOUtfU0lHX0ZJUlNURVBfU0VUVElOR19NQVggICAgIDIwXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmg6NDk6I2RlZmluZSBBVEg5S19TSUdfU1BVUl9JTU1fU0VUVElOR19NSU4gICAgMFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5oOjUwOiNkZWZpbmUgQVRIOUtfU0lHX1NQVVJfSU1NX1NFVFRJTkdfTUFYICAgIDIyXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmgtNTEtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5oPTU0PWVudW0gYXRoOWtfYW5pX2NtZCB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmg6NTU6XHRBVEg5S19BTklfT0ZETV9XRUFLX1NJR05BTF9ERVRFQ1RJT04gPSAweDEsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmg6NTY6XHRBVEg5S19BTklfRklSU1RFUF9MRVZFTCA9IDB4MixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuaDo1NzpcdEFUSDlLX0FOSV9TUFVSX0lNTVVOSVRZX0xFVkVMID0gMHg0LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5oOjU4Olx0QVRIOUtfQU5JX01SQ19DQ0sgPSAweDgsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmg6NTk6XHRBVEg5S19BTklfQUxMID0gMHhmZmZcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuaC02MC19O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hcjUwMDhfcGh5LmM9OTUzPXN0YXRpYyBib29sIGFyNTAwOF9od19hbmlfY29udHJvbF9uZXcoc3RydWN0IGF0aF9odyAqYWgsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FyNTAwOF9waHkuYy05NjItXHRzd2l0Y2ggKGNtZCBcdTAwMjYgYWgtXHUwMDNlYW5pX2Z1bmN0aW9uKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYXI1MDA4X3BoeS5jOjk2MzpcdGNhc2UgQVRIOUtfQU5JX09GRE1fV0VBS19TSUdOQUxfREVURUNUSU9OOntcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hcjUwMDhfcGh5LmMtOTY0LVx0XHQvKlxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hcjUwMDhfcGh5LmMtMTA0My1cdH1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hcjUwMDhfcGh5LmM6MTA0NDpcdGNhc2UgQVRIOUtfQU5JX0ZJUlNURVBfTEVWRUw6e1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FyNTAwOF9waHkuYy0xMDQ1LVx0XHR1MzIgbGV2ZWwgPSBwYXJhbTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYXI1MDA4X3BoeS5jLTEwNTgtXHRcdFx0XHRsZXZlbCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hcjUwMDhfcGh5LmM6MTA1OTpcdFx0XHRcdEFUSDlLX0FOSV9GSVJTVEVQX0xWTCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hcjUwMDhfcGh5LmMtMTA2MC1cdFx0XHRcdHZhbHVlLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hcjUwMDhfcGh5LmMtMTA2Ni1cdFx0XHRcdGxldmVsLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FyNTAwOF9waHkuYzoxMDY3Olx0XHRcdFx0QVRIOUtfQU5JX0ZJUlNURVBfTFZMLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FyNTAwOF9waHkuYy0xMDY4LVx0XHRcdFx0dmFsdWUsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FyNTAwOF9waHkuYy0xMDc3LVx0fVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FyNTAwOF9waHkuYzoxMDc4Olx0Y2FzZSBBVEg5S19BTklfU1BVUl9JTU1VTklUWV9MRVZFTDp7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYXI1MDA4X3BoeS5jLTEwNzktXHRcdHUzMiBsZXZlbCA9IHBhcmFtO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hcjUwMDhfcGh5LmMtMTA5My1cdFx0XHRcdGxldmVsLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FyNTAwOF9waHkuYzoxMDk0Olx0XHRcdFx0QVRIOUtfQU5JX1NQVVJfSU1NVU5FX0xWTCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hcjUwMDhfcGh5LmMtMTA5NS1cdFx0XHRcdHZhbHVlLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hcjUwMDhfcGh5LmMtMTEwMS1cdFx0XHRcdGxldmVsLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FyNTAwOF9waHkuYzoxMTAyOlx0XHRcdFx0QVRIOUtfQU5JX1NQVVJfSU1NVU5FX0xWTCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hcjUwMDhfcGh5LmMtMTEwMy1cdFx0XHRcdHZhbHVlLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hcjUwMDhfcGh5LmMtMTExMi1cdH1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hcjUwMDhfcGh5LmM6MTExMzpcdGNhc2UgQVRIOUtfQU5JX01SQ19DQ0s6XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYXI1MDA4X3BoeS5jLTExMTQtXHRcdC8qXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FyNTAwOF9waHkuYz0xMTY5PXN0YXRpYyB2b2lkIGFyNTAwOF9od19hbmlfY2FjaGVfaW5pX3JlZ3Moc3RydWN0IGF0aF9odyAqYWgpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FyNTAwOF9waHkuYy0xMjEzLVx0LyogdGhlc2UgbGV2ZWxzIGp1c3QgZ290IHJlc2V0IHRvIGRlZmF1bHRzIGJ5IHRoZSBJTkkgKi9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hcjUwMDhfcGh5LmM6MTIxNDpcdGFuaVN0YXRlLVx1MDAzZXNwdXJJbW11bml0eUxldmVsID0gQVRIOUtfQU5JX1NQVVJfSU1NVU5FX0xWTDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hcjUwMDhfcGh5LmM6MTIxNTpcdGFuaVN0YXRlLVx1MDAzZWZpcnN0ZXBMZXZlbCA9IEFUSDlLX0FOSV9GSVJTVEVQX0xWTDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hcjUwMDhfcGh5LmMtMTIxNi1cdGFuaVN0YXRlLVx1MDAzZW9mZG1XZWFrU2lnRGV0ZWN0ID0gdHJ1ZTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYXI5MDAyX21hYy5jPTMyPXN0YXRpYyBib29sIGFyOTAwMl9od19nZXRfaXNyKHN0cnVjdCBhdGhfaHcgKmFoLCBlbnVtIGF0aDlrX2ludCAqbWFza2VkLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hcjkwMDJfbWFjLmMtNjYtXHRcdFx0aWYgKGlzcjIgXHUwMDI2IEFSX0lTUl9TMl9USU0pXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYXI5MDAyX21hYy5jOjY3Olx0XHRcdFx0bWFzazIgfD0gQVRIOUtfSU5UX1RJTTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hcjkwMDJfbWFjLmMtNjgtXHRcdFx0aWYgKGlzcjIgXHUwMDI2IEFSX0lTUl9TMl9EVElNKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FyOTAwMl9tYWMuYzo2OTpcdFx0XHRcdG1hc2syIHw9IEFUSDlLX0lOVF9EVElNO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FyOTAwMl9tYWMuYy03MC1cdFx0XHRpZiAoaXNyMiBcdTAwMjYgQVJfSVNSX1MyX0RUSU1TWU5DKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FyOTAwMl9tYWMuYzo3MTpcdFx0XHRcdG1hc2syIHw9IEFUSDlLX0lOVF9EVElNU1lOQztcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hcjkwMDJfbWFjLmMtNzItXHRcdFx0aWYgKGlzcjIgXHUwMDI2IChBUl9JU1JfUzJfQ0FCRU5EKSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hcjkwMDJfbWFjLmM6NzM6XHRcdFx0XHRtYXNrMiB8PSBBVEg5S19JTlRfQ0FCRU5EO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FyOTAwMl9tYWMuYy03NC1cdFx0XHRpZiAoaXNyMiBcdTAwMjYgQVJfSVNSX1MyX0dUVClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hcjkwMDJfbWFjLmM6NzU6XHRcdFx0XHRtYXNrMiB8PSBBVEg5S19JTlRfR1RUO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FyOTAwMl9tYWMuYy03Ni1cdFx0XHRpZiAoaXNyMiBcdTAwMjYgQVJfSVNSX1MyX0NTVClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hcjkwMDJfbWFjLmM6Nzc6XHRcdFx0XHRtYXNrMiB8PSBBVEg5S19JTlRfQ1NUO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FyOTAwMl9tYWMuYy03OC1cdFx0XHRpZiAoaXNyMiBcdTAwMjYgQVJfSVNSX1MyX1RTRk9PUilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hcjkwMDJfbWFjLmM6Nzk6XHRcdFx0XHRtYXNrMiB8PSBBVEg5S19JTlRfVFNGT09SO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FyOTAwMl9tYWMuYy04MC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hcjkwMDJfbWFjLmM6ODE6XHRcdFx0aWYgKCEocENhcC1cdTAwM2Vod19jYXBzIFx1MDAyNiBBVEg5S19IV19DQVBfUkFDX1NVUFBPUlRFRCkpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hcjkwMDJfbWFjLmMtODItXHRcdFx0XHRSRUdfV1JJVEUoYWgsIEFSX0lTUl9TMiwgaXNyMik7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FyOTAwMl9tYWMuYy04Ni1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hcjkwMDJfbWFjLmM6ODc6XHRcdGlmIChwQ2FwLVx1MDAzZWh3X2NhcHMgXHUwMDI2IEFUSDlLX0hXX0NBUF9SQUNfU1VQUE9SVEVEKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FyOTAwMl9tYWMuYy04OC1cdFx0XHRpc3IgPSBSRUdfUkVBRChhaCwgQVJfSVNSX1JBQyk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FyOTAwMl9tYWMuYy05NC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hcjkwMDJfbWFjLmM6OTU6XHRcdCptYXNrZWQgPSBpc3IgXHUwMDI2IEFUSDlLX0lOVF9DT01NT047XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYXI5MDAyX21hYy5jLTk2LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hcjkwMDJfbWFjLmMtOTgtXHRcdFx0ICAgQVJfSVNSX1JYT0sgfCBBUl9JU1JfUlhFUlIpKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FyOTAwMl9tYWMuYzo5OTpcdFx0XHQqbWFza2VkIHw9IEFUSDlLX0lOVF9SWDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hcjkwMDJfbWFjLmMtMTAwLVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hcjkwMDJfbWFjLmMtMTA1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FyOTAwMl9tYWMuYzoxMDY6XHRcdFx0Km1hc2tlZCB8PSBBVEg5S19JTlRfVFg7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYXI5MDAyX21hYy5jLTEwNy1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hcjkwMDJfbWFjLmM6MTA4Olx0XHRcdGlmIChwQ2FwLVx1MDAzZWh3X2NhcHMgXHUwMDI2IEFUSDlLX0hXX0NBUF9SQUNfU1VQUE9SVEVEKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYXI5MDAyX21hYy5jLTEwOS1cdFx0XHRcdHMwX3MgPSBSRUdfUkVBRChhaCwgQVJfSVNSX1MwX1MpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hcjkwMDJfbWFjLmMtMTM5LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FyOTAwMl9tYWMuYzoxNDA6XHRcdGlmIChwQ2FwLVx1MDAzZWh3X2NhcHMgXHUwMDI2IEFUSDlLX0hXX0NBUF9SQUNfU1VQUE9SVEVEKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYXI5MDAyX21hYy5jLTE0MS1cdFx0XHRzNV9zID0gUkVHX1JFQUQoYWgsIEFSX0lTUl9TNV9TKGFoKSk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FyOTAwMl9tYWMuYy0xNTItXHRcdGlmIChhaC1cdTAwM2VpbnRyX2dlbl90aW1lcl90cmlnZ2VyKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FyOTAwMl9tYWMuYzoxNTM6XHRcdFx0Km1hc2tlZCB8PSBBVEg5S19JTlRfR0VOVElNRVI7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYXI5MDAyX21hYy5jLTE1NC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hcjkwMDJfbWFjLmMtMTU1LVx0XHRpZiAoKHM1X3MgXHUwMDI2IEFSX0lTUl9TNV9USU1fVElNRVIpIFx1MDAyNlx1MDAyNlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FyOTAwMl9tYWMuYzoxNTY6XHRcdCAgICAhKHBDYXAtXHUwMDNlaHdfY2FwcyBcdTAwMjYgQVRIOUtfSFdfQ0FQX0FVVE9TTEVFUCkpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYXI5MDAyX21hYy5jOjE1NzpcdFx0XHQqbWFza2VkIHw9IEFUSDlLX0lOVF9USU1fVElNRVI7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYXI5MDAyX21hYy5jLTE1OC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hcjkwMDJfbWFjLmM6MTU5Olx0XHRpZiAoIShwQ2FwLVx1MDAzZWh3X2NhcHMgXHUwMDI2IEFUSDlLX0hXX0NBUF9SQUNfU1VQUE9SVEVEKSkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FyOTAwMl9tYWMuYy0xNjAtXHRcdFx0UkVHX1dSSVRFKGFoLCBBUl9JU1JfUzUsIHM1X3MpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hcjkwMDJfbWFjLmMtMTY0LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FyOTAwMl9tYWMuYzoxNjU6XHRpZiAoIShwQ2FwLVx1MDAzZWh3X2NhcHMgXHUwMDI2IEFUSDlLX0hXX0NBUF9SQUNfU1VQUE9SVEVEKSkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FyOTAwMl9tYWMuYy0xNjYtXHRcdFJFR19XUklURShhaCwgQVJfSVNSLCBpc3IpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hcjkwMDJfbWFjLmMtMTg5LVx0XHRcdH1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hcjkwMDJfbWFjLmM6MTkwOlx0XHRcdCptYXNrZWQgfD0gQVRIOUtfSU5UX0ZBVEFMO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FyOTAwMl9tYWMuYy0xOTEtXHRcdH1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYXI5MDAyX21hYy5jLTE5Ni1cdFx0XHRSRUdfV1JJVEUoYWgsIEFSX1JDLCAwKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hcjkwMDJfbWFjLmM6MTk3Olx0XHRcdCptYXNrZWQgfD0gQVRIOUtfSU5UX0ZBVEFMO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FyOTAwMl9tYWMuYy0xOTgtXHRcdH1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYXI5MDAyX21hYy5jPTIxMj1hcjkwMDJfc2V0X3R4ZGVzYyhzdHJ1Y3QgYXRoX2h3ICphaCwgdm9pZCAqZHMsIHN0cnVjdCBhdGhfdHhfaW5mbyAqaSlcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYXI5MDAyX21hYy5jLTI2MC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hcjkwMDJfbWFjLmM6MjYxOlx0Y3RsMSB8PSAoaS1cdTAwM2VrZXlpeCAhPSBBVEg5S19UWEtFWUlYX0lOVkFMSUQgPyBTTShpLVx1MDAzZWtleWl4LCBBUl9EZXN0SWR4KSA6IDApXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYXI5MDAyX21hYy5jLTI2Mi1cdFx0fCBTTShpLVx1MDAzZXR5cGUsIEFSX0ZyYW1lVHlwZSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hcjkwMDJfbWFjLmM6MjYzOlx0XHR8IChpLVx1MDAzZWZsYWdzIFx1MDAyNiBBVEg5S19UWERFU0NfTk9BQ0sgPyBBUl9Ob0FjayA6IDApXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYXI5MDAyX21hYy5jOjI2NDpcdFx0fCAoaS1cdTAwM2VmbGFncyBcdTAwMjYgQVRIOUtfVFhERVNDX0VYVF9PTkxZID8gQVJfRXh0T25seSA6IDApXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYXI5MDAyX21hYy5jOjI2NTpcdFx0fCAoaS1cdTAwM2VmbGFncyBcdTAwMjYgQVRIOUtfVFhERVNDX0VYVF9BTkRfQ1RMID8gQVJfRXh0QW5kQ3RsIDogMCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYXI5MDAyX21hYy5jLTI2Ni1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYXI5MDAyX21hYy5jLTI4Mi1cdFdSSVRFX09OQ0UoYWRzLVx1MDAzZWRzX2N0bDAsIChpLVx1MDAzZXBrdF9sZW4gXHUwMDI2IEFSX0ZyYW1lTGVuKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FyOTAwMl9tYWMuYzoyODM6XHRcdHwgKGktXHUwMDNlZmxhZ3MgXHUwMDI2IEFUSDlLX1RYREVTQ19WTUYgPyBBUl9WaXJ0TW9yZUZyYWcgOiAwKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FyOTAwMl9tYWMuYy0yODQtXHRcdHwgU00oaS1cdTAwM2V0eHBvd2VyWzBdLCBBUl9YbWl0UG93ZXIwKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FyOTAwMl9tYWMuYzoyODU6XHRcdHwgKGktXHUwMDNlZmxhZ3MgXHUwMDI2IEFUSDlLX1RYREVTQ19WRU9MID8gQVJfVkVPTCA6IDApXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYXI5MDAyX21hYy5jOjI4NjpcdFx0fCAoaS1cdTAwM2VmbGFncyBcdTAwMjYgQVRIOUtfVFhERVNDX0lOVFJFUSA/IEFSX1R4SW50clJlcSA6IDApXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYXI5MDAyX21hYy5jOjI4NzpcdFx0fCAoaS1cdTAwM2VrZXlpeCAhPSBBVEg5S19UWEtFWUlYX0lOVkFMSUQgPyBBUl9EZXN0SWR4VmFsaWQgOiAwKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FyOTAwMl9tYWMuYzoyODg6XHRcdHwgKGktXHUwMDNlZmxhZ3MgXHUwMDI2IEFUSDlLX1RYREVTQ19DTFJETUFTSyA/IEFSX0NsckRlc3RNYXNrIDogMClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hcjkwMDJfbWFjLmM6Mjg5Olx0XHR8IChpLVx1MDAzZWZsYWdzIFx1MDAyNiBBVEg5S19UWERFU0NfUlRTRU5BID8gQVJfUlRTRW5hYmxlIDpcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hcjkwMDJfbWFjLmM6MjkwOlx0XHQgICAoaS1cdTAwM2VmbGFncyBcdTAwMjYgQVRIOUtfVFhERVNDX0NUU0VOQSA/IEFSX0NUU0VuYWJsZSA6IDApKSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYXI5MDAyX21hYy5jLTI5MS1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYXI5MDAyX21hYy5jPTMxNj1zdGF0aWMgaW50IGFyOTAwMl9od19wcm9jX3R4ZGVzYyhzdHJ1Y3QgYXRoX2h3ICphaCwgdm9pZCAqZHMsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FyOTAwMl9tYWMuYy0zMzAtXHRpZiAoc3RhdHVzIFx1MDAyNiBBUl9UeE9wRXhjZWVkZWQpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYXI5MDAyX21hYy5jOjMzMTpcdFx0dHMtXHUwMDNldHNfc3RhdHVzIHw9IEFUSDlLX1RYRVJSX1hUWE9QO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FyOTAwMl9tYWMuYy0zMzItXHR0cy1cdTAwM2V0aWQgPSBNUyhzdGF0dXMsIEFSX1R4VGlkKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYXI5MDAyX21hYy5jLTM0MC1cdGlmIChzdGF0dXMgXHUwMDI2IEFSX1R4QmFTdGF0dXMpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hcjkwMDJfbWFjLmM6MzQxOlx0XHR0cy1cdTAwM2V0c19mbGFncyB8PSBBVEg5S19UWF9CQTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hcjkwMDJfbWFjLmMtMzQyLVx0XHR0cy1cdTAwM2ViYV9sb3cgPSBhZHMtXHUwMDNlQVJfQmFCaXRtYXBMb3c7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FyOTAwMl9tYWMuYy0zNDctXHRpZiAoc3RhdHVzIFx1MDAyNiBBUl9Gcm1YbWl0T0spXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYXI5MDAyX21hYy5jOjM0ODpcdFx0dHMtXHUwMDNldHNfc3RhdHVzIHw9IEFUSDlLX1RYX0FDS0VEO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FyOTAwMl9tYWMuYy0zNDktXHRlbHNlIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hcjkwMDJfbWFjLmMtMzUwLVx0XHRpZiAoc3RhdHVzIFx1MDAyNiBBUl9FeGNlc3NpdmVSZXRyaWVzKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FyOTAwMl9tYWMuYzozNTE6XHRcdFx0dHMtXHUwMDNldHNfc3RhdHVzIHw9IEFUSDlLX1RYRVJSX1hSRVRSWTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hcjkwMDJfbWFjLmMtMzUyLVx0XHRpZiAoc3RhdHVzIFx1MDAyNiBBUl9GaWx0ZXJlZClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hcjkwMDJfbWFjLmM6MzUzOlx0XHRcdHRzLVx1MDAzZXRzX3N0YXR1cyB8PSBBVEg5S19UWEVSUl9GSUxUO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FyOTAwMl9tYWMuYy0zNTQtXHRcdGlmIChzdGF0dXMgXHUwMDI2IEFSX0ZJRk9VbmRlcnJ1bikge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FyOTAwMl9tYWMuYzozNTU6XHRcdFx0dHMtXHUwMDNldHNfc3RhdHVzIHw9IEFUSDlLX1RYRVJSX0ZJRk87XG5cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8wNiAwODowOTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuNy1mbGFzaDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxODI0OQoJCQkJCQkJb3V0cHV0OiAzOQoJCQkJCQkJdGhvdWdodHM6IDEwMwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipJbnZlc3RpZ2F0aW5nIHRoZSBgYXRoOWtgIERyaXZlcioqCgpPa2F5LCBzbyBJJiMzOTttIHRyeWluZyB0byBmaWd1cmUgb3V0IHRoZSByZWxhdGlvbnNoaXAgYmV0d2VlbiBgYXRoOWtgIGFuZCBgYXRoOWtfaHRjYC4gSSYjMzk7bSBwcmV0dHkgc3VyZSBgYXRoOWtgIGlzIHByaW1hcmlseSBmb3IgUENJIGFuZCBBSEIgaW50ZXJmYWNlcywgYnV0IEkgbmVlZCB0byBjb25maXJtIHRoYXQuIFRoZSBiZXN0IHdheSB0byBkbyB0aGlzIGlzIHRvIGRpdmUgaW50byB0aGUga2VybmVsIHNvdXJjZSwgc3BlY2lmaWNhbGx5IHRoZSBidWlsZCBwcm9jZXNzLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCB3aGljaCBmaWxlcyBhcmUgY29tcGlsZWQgaW50byBgYXRoOWsua29gIHZlcnN1cyBgYXRoOWtfaHRjLmtvYC4gSSYjMzk7bGwgdXNlIGBhdGg5ay9NYWtlZmlsZWAgaW4gdGhlIGtlcm5lbCBzb3VyY2UgdG8gZ2V0IGEgY2xlYXIgcGljdHVyZSBhbmQgdGhlbiB1c2UgYHJlYWQtZmlsZWAgdG8gZ2V0IHRoZSBNYWtlZmlsZS4gVGhpcyBzaG91bGQgaWxsdW1pbmF0ZSB0aGUgZHJpdmVyJiMzOTtzIGFyY2hpdGVjdHVyZSBhbmQgdGhlIGtleSBkaWZmZXJlbmNlcyBiZXR3ZWVuIHRoZSB0d28gbW9kdWxlcy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8wNiAwODowOTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnJlYWQtZmlsZTwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RmlsZSYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9NYWtlZmlsZSYjMzQ7LAogICYjMzQ7Rmlyc3RMaW5lJiMzNDs6IDEsCiAgJiMzNDtMaW5lQ291bnQmIzM0OzogODUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0NvbnRlbnRzJiMzNDs6ICYjMzQ7ICAgMTpcdCMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IElTQ1xuICAgMjpcdGF0aDlrLXkgJiM0Mzs9XHRiZWFjb24ubyBcXFxuICAgMzpcdFx0XHRncGlvLm8gXFxcbiAgIDQ6XHRcdFx0aW5pdC5vIFxcXG4gICA1Olx0XHRcdG1haW4ubyBcXFxuICAgNjpcdFx0XHRyZWN2Lm8gXFxcbiAgIDc6XHRcdFx0eG1pdC5vIFxcXG4gICA4Olx0XHRcdGxpbmsubyBcXFxuICAgOTpcdFx0XHRhbnRlbm5hLm8gXFxcbiAgMTA6XHRcdFx0Y2hhbm5lbC5vXG4gIDExOlx0XG4gIDEyOlx0YXRoOWstJChDT05GSUdfQVRIOUtfQlRDT0VYX1NVUFBPUlQpICYjNDM7PSBtY2kub1xuICAxMzpcdGF0aDlrLSQoQ09ORklHX0FUSDlLX1BDSSkgJiM0Mzs9IHBjaS5vXG4gIDE0Olx0YXRoOWstJChDT05GSUdfQVRIOUtfQUhCKSAmIzQzOz0gYWhiLm9cbiAgMTU6XHRhdGg5ay0kKENPTkZJR19BVEg5S19ERlNfREVCVUdGUykgJiM0Mzs9IGRmc19kZWJ1Zy5vXG4gIDE2Olx0YXRoOWstJChDT05GSUdfQVRIOUtfREZTX0NFUlRJRklFRCkgJiM0Mzs9IGRmcy5vXG4gIDE3Olx0YXRoOWstJChDT05GSUdfQVRIOUtfVFg5OSkgJiM0Mzs9IHR4OTkub1xuICAxODpcdGF0aDlrLSQoQ09ORklHX0FUSDlLX1dPVykgJiM0Mzs9IHdvdy5vXG4gIDE5Olx0YXRoOWstJChDT05GSUdfQVRIOUtfSFdSTkcpICYjNDM7PSBybmcub1xuICAyMDpcdFxuICAyMTpcdGF0aDlrLSQoQ09ORklHX0FUSDlLX0RFQlVHRlMpICYjNDM7PSBkZWJ1Zy5vXG4gIDIyOlx0XG4gIDIzOlx0YXRoOWstJChDT05GSUdfQVRIOUtfU1RBVElPTl9TVEFUSVNUSUNTKSAmIzQzOz0gZGVidWdfc3RhLm9cbiAgMjQ6XHRcbiAgMjU6XHRvYmotJChDT05GSUdfQVRIOUspICYjNDM7PSBhdGg5ay5vXG4gIDI2Olx0XG4gIDI3Olx0YXRoOWtfaHcteTo9XHRcXFxuICAyODpcdFx0XHRhcjkwMDJfaHcubyBcXFxuICAyOTpcdFx0XHRhcjkwMDNfaHcubyBcXFxuICAzMDpcdFx0XHRody5vIFxcXG4gIDMxOlx0XHRcdGFyOTAwM19waHkubyBcXFxuICAzMjpcdFx0XHRhcjkwMDJfcGh5Lm8gXFxcbiAgMzM6XHRcdFx0YXI1MDA4X3BoeS5vIFxcXG4gIDM0Olx0XHRcdGFyOTAwMl9jYWxpYi5vIFxcXG4gIDM1Olx0XHRcdGFyOTAwM19jYWxpYi5vIFxcXG4gIDM2Olx0XHRcdGNhbGliLm8gXFxcbiAgMzc6XHRcdFx0ZWVwcm9tLm8gXFxcbiAgMzg6XHRcdFx0ZWVwcm9tX2RlZi5vIFxcXG4gIDM5Olx0XHRcdGVlcHJvbV80ay5vIFxcXG4gIDQwOlx0XHRcdGVlcHJvbV85Mjg3Lm8gXFxcbiAgNDE6XHRcdFx0YW5pLm8gXFxcbiAgNDI6XHRcdFx0bWFjLm8gXFxcbiAgNDM6XHRcdFx0YXI5MDAyX21hYy5vIFxcXG4gIDQ0Olx0XHRcdGFyOTAwM19tYWMubyBcXFxuICA0NTpcdFx0XHRhcjkwMDNfZWVwcm9tLm8gXFxcbiAgNDY6XHRcdFx0YXI5MDAzX3BhcHJkLm9cbiAgNDc6XHRcbiAgNDg6XHRhdGg5a19ody0kKENPTkZJR19BVEg5S19XT1cpICYjNDM7PSBhcjkwMDNfd293Lm9cbiAgNDk6XHRcbiAgNTA6XHRhdGg5a19ody0kKENPTkZJR19BVEg5S19CVENPRVhfU1VQUE9SVCkgJiM0Mzs9IGJ0Y29leC5vIFxcXG4gIDUxOlx0XHRcdFx0XHRcdCAgIGFyOTAwM19tY2kubyBcXFxuICA1MjpcdFx0XHRcdFx0XHQgICBhcjkwMDNfYWljLm9cbiAgNTM6XHRcbiAgNTQ6XHRhdGg5a19ody0kKENPTkZJR19BVEg5S19QQ09FTSkgJiM0Mzs9IGFyOTAwM19ydHQub1xuICA1NTpcdFxuICA1NjpcdGF0aDlrX2h3LSQoQ09ORklHX0FUSDlLX0RZTkFDSykgJiM0Mzs9IGR5bmFjay5vXG4gIDU3Olx0XG4gIDU4Olx0b2JqLSQoQ09ORklHX0FUSDlLX0hXKSAmIzQzOz0gYXRoOWtfaHcub1xuICA1OTpcdFxuICA2MDpcdG9iai0kKENPTkZJR19BVEg5S19DT01NT04pICYjNDM7PSBhdGg5a19jb21tb24ub1xuICA2MTpcdGF0aDlrX2NvbW1vbi15Oj1cdGNvbW1vbi5vIFxcXG4gIDYyOlx0XHRcdFx0Y29tbW9uLWluaXQubyBcXFxuICA2MzpcdFx0XHRcdGNvbW1vbi1iZWFjb24ubyBcXFxuICA2NDpcdFxuICA2NTpcdGF0aDlrX2NvbW1vbi0kKENPTkZJR19BVEg5S19DT01NT05fREVCVUcpICYjNDM7PSBjb21tb24tZGVidWcub1xuICA2NjpcdGF0aDlrX2NvbW1vbi0kKENPTkZJR19BVEg5S19DT01NT05fU1BFQ1RSQUwpICYjNDM7PSBjb21tb24tc3BlY3RyYWwub1xuICA2NzpcdFxuICA2ODpcdGF0aDlrX2h0Yy15ICYjNDM7PVx0aHRjX2hzdC5vIFxcXG4gIDY5Olx0XHRcdGhpZl91c2IubyBcXFxuICA3MDpcdFx0XHR3bWkubyBcXFxuICA3MTpcdFx0XHRodGNfZHJ2X3R4cngubyBcXFxuICA3MjpcdFx0XHRodGNfZHJ2X21haW4ubyBcXFxuICA3MzpcdFx0XHRodGNfZHJ2X2JlYWNvbi5vIFxcXG4gIDc0Olx0XHRcdGh0Y19kcnZfaW5pdC5vIFxcXG4gIDc1Olx0XHRcdGh0Y19kcnZfZ3Bpby5vXG4gIDc2Olx0XG4gIDc3Olx0YXRoOWtfaHRjLSQoQ09ORklHX0FUSDlLX0hUQ19ERUJVR0ZTKSAmIzQzOz0gaHRjX2Rydl9kZWJ1Zy5vXG4gIDc4Olx0XG4gIDc5Olx0b2JqLSQoQ09ORklHX0FUSDlLX0hUQykgJiM0Mzs9IGF0aDlrX2h0Yy5vXG4gIDgwOlx0XG4gIDgxOlx0b2JqLSQoQ09ORklHX0FUSDlLX1BDSV9OT19FRVBST00pICYjNDM7PSBhdGg5a19wY2lfb3dsX2xvYWRlci5vXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ny8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMDYgMDg6MDk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjctZmxhc2g8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTk4NTkKCQkJCQkJCW91dHB1dDogNTUKCQkJCQkJCXRob3VnaHRzOiAxMzQKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBXaXJlbGVzcyBEcml2ZXIgTGFuZHNjYXBlKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGVzZSB3aXJlbGVzcyBkcml2ZXJzIGFuZCBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlaXIgYXJjaGl0ZWN0dXJlLiBJIHNlZSB0aGF0IGBhdGg5ay15YCBpbmNsdWRlcyBgeG1pdC5vYCwgd2hpY2ggaXMgZXhwZWN0ZWQuIEJ1dCB0aGVuLCBgYXRoOWtfaHRjLXlgIHVzZXMgYGh0Y19kcnZfdHhyeC5vYCBpbnN0ZWFkLCBhbmQgY3J1Y2lhbGx5LCAqZG9lc24mIzM5O3QqIGluY2x1ZGUgYHhtaXQub2AuIFRoYXQmIzM5O3MgYSBrZXkgZGlzdGluY3Rpb24uIE5vdyBJIG5lZWQgdG8gY2xhcmlmeSBteSBhc3N1bXB0aW9uczogaXMgYGF0aDlrYCAqc3RyaWN0bHkqIGJvdW5kIHRvIFBDSSBvciBBSEI/IERvZXMgaXQgaGF2ZSBhbnkgVVNCIGludGVyZmFjZSBjYXBhYmlsaXRpZXM/IENhbiBpdCBiZSByZWFjaGVkIHZpYSBhIFJhdyBHYWRnZXQgc2V0dXAgb3IgdmlydGlvPyBJIG5lZWQgdG8ga25vdyBpZiBpdCYjMzk7cyBwdXJlbHkgdGllZCB0byBzcGVjaWZpYyBoYXJkd2FyZSBidXNlcy4gSSYjMzk7bGwgbmVlZCB0byBkaWcgaW50byBob3cgaXQmIzM5O3MgcmVnaXN0ZXJlZCB3aXRoaW4gdGhlIGtlcm5lbCB0byB1bmRlcnN0YW5kIGl0cyBjYXBhYmlsaXRpZXMgYW5kIGhvdyBpdCYjMzk7cyBleHBvc2VkIHRvIHRoZSBzeXN0ZW0uIEkmIzM5O2xsIGZvY3VzIG15IHNlYXJjaCBmb3IgZHJpdmVyIHJlZ2lzdHJhdGlvbnMgd2l0aGluIHRoZSBgZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2AgZGlyZWN0b3J5LiBUaGF0IHNob3VsZCBpbGx1bWluYXRlIHRoZSBzdXBwb3J0ZWQgaGFyZHdhcmUgaW50ZXJmYWNlcy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD44LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8wNiAwODowOTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDttb2R1bGVfaW5pdHxkcml2ZXJfcmVnaXN0ZXJ8cGNpX3JlZ2lzdGVyX2RyaXZlcnxwbGF0Zm9ybV9kcml2ZXJfcmVnaXN0ZXJ8dXNiX3JlZ2lzdGVyJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9haGIuYz0xNDM9aW50IGF0aF9haGJfaW5pdCh2b2lkKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FoYi5jLTE0NC17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYWhiLmM6MTQ1Olx0cmV0dXJuIHBsYXRmb3JtX2RyaXZlcl9yZWdpc3RlcihcdTAwMjZhdGhfYWhiX2RyaXZlcik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYWhiLmMtMTQ2LX1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvaW5pdC5jPTExMzA9c3RhdGljIGludCBfX2luaXQgYXRoOWtfaW5pdCh2b2lkKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9pbml0LmMtMTE1NS19XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvaW5pdC5jOjExNTY6bW9kdWxlX2luaXQoYXRoOWtfaW5pdCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvaW5pdC5jLTExNTctXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3BjaS5jPTEwODM9aW50IGF0aF9wY2lfaW5pdCh2b2lkKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3BjaS5jLTEwODQte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3BjaS5jOjEwODU6XHRyZXR1cm4gcGNpX3JlZ2lzdGVyX2RyaXZlcihcdTAwMjZhdGhfcGNpX2RyaXZlcik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvcGNpLmMtMTA4Ni19XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OS8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMDYgMDg6MDk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjctZmxhc2g8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjA2MjkKCQkJCQkJCW91dHB1dDogNDQKCQkJCQkJCXRob3VnaHRzOiAyMQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+SGVyZSYjMzk7cyBteSBhdHRlbXB0IGF0IHN1bW1hcml6aW5nIHRoZSB0aG91Z2h0IHByb2Nlc3MsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2U6CgoqKkRpdmluZyBpbnRvIHRoZSBBdGhlcm9zIERyaXZlciBJbml0aWFsaXphdGlvbioqCgpPa2F5LCB0aW1lIHRvIHRyb3VibGVzaG9vdCB0aGlzIEF0aGVyb3Mgd2lyZWxlc3MgaXNzdWUuIE15IGZpcnN0IGluc3RpbmN0IGlzIHRvIHplcm8gaW4gb24gdGhlIGRyaXZlciBpbml0aWFsaXphdGlvbiwgc3BlY2lmaWNhbGx5IHRoZSBgYXRoOWtgIGRyaXZlci4gR2l2ZW4gbXkgZXhwZXJpZW5jZSwgYSBwcm9ibGVtIHdpdGggaG93IHRoZSBoYXJkd2FyZSBpcyBiZWluZyBicm91Z2h0IG9ubGluZSBpcyBhIGxpa2VseSBjdWxwcml0LiBJIHJlY2FsbCBzaW1pbGFyIGlzc3VlcyBmcm9tIHBhc3QgcHJvamVjdHMuIExldCYjMzk7cyBzdGFydCB3aXRoIGBhdGg5ay9pbml0LmNgLiBJIGhhdmUgYSBmZWVsaW5nIHNvbWV0aGluZyByZWxldmFudCBtaWdodCBiZSBoYXBwZW5pbmcgYXJvdW5kIGxpbmUgMTEzMCwgc28gSSYjMzk7bGwgZ28gZGlyZWN0bHkgdG8gdGhhdCBzZWN0aW9uIG9mIHRoZSBzb3VyY2UgY29kZS4gVGhhdCYjMzk7cyBhIHJlYXNvbmFibGUgcGxhY2UgdG8gc3RhcnQsIGFzIEkgY2FuIG9mdGVuIGZpbmQgaW5pdGlhbCByZWdpc3RlciByZWFkcyBhbmQgd3JpdGVzIHRoYXQgY2FuIGdvIGF3cnkuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzA2IDA4OjA5PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+cmVhZC1maWxlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtGaWxlJiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2luaXQuYyYjMzQ7LAogICYjMzQ7Rmlyc3RMaW5lJiMzNDs6IDExMjAsCiAgJiMzNDtMaW5lQ291bnQmIzM0OzogNDAKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0NvbnRlbnRzJiMzNDs6ICYjMzQ7MTEyMDpcdFx0YXRoOWtfZGVpbml0X3dvdyhodyk7XG4xMTIxOlx0XHRpZWVlODAyMTFfdW5yZWdpc3Rlcl9odyhodyk7XG4xMTIyOlx0XHRhdGhfcnhfY2xlYW51cChzYyk7XG4xMTIzOlx0XHRhdGg5a19kZWluaXRfc29mdGMoc2MpO1xuMTEyNDpcdH1cbjExMjU6XHRcbjExMjY6XHQvKioqKioqKioqKioqKioqKioqKioqKioqL1xuMTEyNzpcdC8qICAgICBNb2R1bGUgSG9va3MgICAgICovXG4xMTI4Olx0LyoqKioqKioqKioqKioqKioqKioqKioqKi9cbjExMjk6XHRcbjExMzA6XHRzdGF0aWMgaW50IF9faW5pdCBhdGg5a19pbml0KHZvaWQpXG4xMTMxOlx0e1xuMTEzMjpcdFx0aW50IGVycm9yO1xuMTEzMzpcdFxuMTEzNDpcdFx0ZXJyb3IgPSBhdGhfcGNpX2luaXQoKTtcbjExMzU6XHRcdGlmIChlcnJvciBcdTAwM2MgMCkge1xuMTEzNjpcdFx0XHRwcl9lcnIoXCYjMzQ7Tm8gUENJIGRldmljZXMgZm91bmQsIGRyaXZlciBub3QgaW5zdGFsbGVkXFxuXCYjMzQ7KTtcbjExMzc6XHRcdFx0ZXJyb3IgPSAtRU5PREVWO1xuMTEzODpcdFx0XHRnb3RvIGVycl9vdXQ7XG4xMTM5Olx0XHR9XG4xMTQwOlx0XG4xMTQxOlx0XHRlcnJvciA9IGF0aF9haGJfaW5pdCgpO1xuMTE0MjpcdFx0aWYgKGVycm9yIFx1MDAzYyAwKSB7XG4xMTQzOlx0XHRcdGVycm9yID0gLUVOT0RFVjtcbjExNDQ6XHRcdFx0Z290byBlcnJfcGNpX2V4aXQ7XG4xMTQ1Olx0XHR9XG4xMTQ2Olx0XG4xMTQ3Olx0XHRkbWlfY2hlY2tfc3lzdGVtKGF0aDlrX3F1aXJrcyk7XG4xMTQ4Olx0XG4xMTQ5Olx0XHRyZXR1cm4gMDtcbjExNTA6XHRcbjExNTE6XHQgZXJyX3BjaV9leGl0OlxuMTE1MjpcdFx0YXRoX3BjaV9leGl0KCk7XG4xMTUzOlx0IGVycl9vdXQ6XG4xMTU0Olx0XHRyZXR1cm4gZXJyb3I7XG4xMTU1Olx0fVxuMTE1NjpcdG1vZHVsZV9pbml0KGF0aDlrX2luaXQpO1xuMTE1NzpcdFxuMTE1ODpcdHN0YXRpYyB2b2lkIF9fZXhpdCBhdGg5a19leGl0KHZvaWQpXG4xMTU5Olx0e1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjExLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8wNiAwODowOTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuNy1mbGFzaDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyMTM2MQoJCQkJCQkJb3V0cHV0OiAzNQoJCQkJCQkJdGhvdWdodHM6IDIxNAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipJbnZlc3RpZ2F0aW5nIHRoZSBhdGg5a19odGMgRHJpdmVyJiMzOTtzIFRyYW5zbWlzc2lvbiBQYXRoKioKCk9rYXksIGxldCYjMzk7cyBkaXZlIGludG8gdGhpcy4gSSBuZWVkIHRvIGNsYXJpZnkgaG93IHRoZSBgYXRoOWtfaHRjYCBkcml2ZXIgaGFuZGxlcyB0cmFuc21pc3Npb24uIEZpcnN0LCBJIHdhbnRlZCB0byBjb25maXJtIGlmIGl0IGRpcmVjdGx5IHV0aWxpemVzIHRoZSBgeG1pdC5jYCBtb2R1bGUsIGEgY29yZSBjb21wb25lbnQgb2YgdGhlIGBhdGg5a2Agd2lyZWxlc3MgZHJpdmVyLiBTbywgSSBuZWVkIHRvIGNoZWNrIHRoZSBidWlsZCBwcm9jZXNzLgoKSSYjMzk7bGwgY2hlY2sgdGhlIGBkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvTWFrZWZpbGVgIGFnYWluLCBqdXN0IHRvIGJlIGFic29sdXRlbHkgY2VydGFpbi4gUmVhZGluZyB0aHJvdWdoIGl0LCBJIGNhbiBzZWUgb24gbGluZSAyLCB0aGF0IHRoZSBiYXNlIGBhdGg5a2AgbW9kdWxlIGluY2x1ZGVzIGB4bWl0Lm9gLiBIb3dldmVyLCBsb29raW5nIHNwZWNpZmljYWxseSBhdCB0aGUgYGF0aDlrX2h0Y2AgbW9kdWxlJiMzOTtzIGJ1aWxkIGluc3RydWN0aW9ucyBvbiBsaW5lIDY4LCB0aGVyZSYjMzk7cyBubyBtZW50aW9uIG9mIGB4bWl0Lm9gIHdpdGhpbiB0aGUgYGF0aDlrX2h0Yy15YCBsaXN0LgoKQWxyaWdodCwgdGhhdCYjMzk7cyBjb25jbHVzaXZlLiBgYXRoOWtfaHRjYCBleHBsaWNpdGx5ICpkb2VzbiYjMzk7dCogbGluayB0aGUgYHhtaXQub2Agb2JqZWN0IGZpbGUuIFNvLCBub3cgdGhlIG5leHQgcXVlc3Rpb246IGRvZXMgYGF0aDlrX2h0Y2AgY2FsbCBmdW5jdGlvbnMgZnJvbSBgeG1pdC5jYCBpbmRpcmVjdGx5PyBJIG5lZWQgdG8gY2hlY2sgaWYgYW55IG9mIHRoZSBleHRlcm5hbCBjYWxscywgdGhhdCB3b3VsZCBuZWVkIGFjY2VzcyB0byBgeG1pdC5jYCBhcmUgcHJlc2VudCBpbiBgYXRoOWsua29gCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTIvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzA2IDA4OjA5PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2F0aF9kcmFpbl90eHFfbGlzdCYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aCYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jPTE4NTc9aW50IGF0aF9jYWJxX3VwZGF0ZShzdHJ1Y3QgYXRoX3NvZnRjICpzYylcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTE4NzEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jOjE4NzI6c3RhdGljIHZvaWQgYXRoX2RyYWluX3R4cV9saXN0KHN0cnVjdCBhdGhfc29mdGMgKnNjLCBzdHJ1Y3QgYXRoX3R4cSAqdHhxLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYy0xODczLVx0XHRcdCAgICAgICBzdHJ1Y3QgbGlzdF9oZWFkICpsaXN0KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmM9MTkxND12b2lkIGF0aF9kcmFpbnR4cShzdHJ1Y3QgYXRoX3NvZnRjICpzYywgc3RydWN0IGF0aF90eHEgKnR4cSlcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTE5MjItXHRcdHdoaWxlICghbGlzdF9lbXB0eShcdTAwMjZ0eHEtXHUwMDNldHhxX2ZpZm9baWR4XSkpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmM6MTkyMzpcdFx0XHRhdGhfZHJhaW5fdHhxX2xpc3Qoc2MsIHR4cSwgXHUwMDI2dHhxLVx1MDAzZXR4cV9maWZvW2lkeF0pO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYy0xOTI0LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMtMTkzMS1cdHR4cS1cdTAwM2VheHFfdHhfaW5wcm9ncmVzcyA9IGZhbHNlO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYzoxOTMyOlx0YXRoX2RyYWluX3R4cV9saXN0KHNjLCB0eHEsIFx1MDAyNnR4cS1cdTAwM2VheHFfcSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTE5MzMtXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzA2IDA4OjA5PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy43LWZsYXNoPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDIyMzI4CgkJCQkJCQlvdXRwdXQ6IDMyCgkJCQkJCQl0aG91Z2h0czogNDkKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgc3VtbWFyeSwgcHJlc2VudGVkIGFzIGEgc3RyZWFtIG9mIHRob3VnaHQ6CgoqKkRpdmluZyBpbnRvIHRoZSBgeG1pdC5jYCBDb2RlYmFzZSoqCgpBbHJpZ2h0LCB0aW1lIHRvIGdldCBteSBoYW5kcyBkaXJ0eS4gSSYjMzk7bSBnb2luZyB0byBzdGFydCBieSB0YWtpbmcgYSBjbG9zZSBsb29rIGF0IHRoZSBgYXRoX2RyYWludHhxYCBmdW5jdGlvbi4gR2l2ZW4gaXRzIG5hbWUsIEkgc3VzcGVjdCBpdCYjMzk7cyBjcnVjaWFsIGZvciBmbHVzaGluZyBvciBkcmFpbmluZyB0cmFuc21pdCBxdWV1ZXMsIHdoaWNoIGlzIGEga2V5IGFyZWEgZm9yIHBlcmZvcm1hbmNlIGFuZCBzdGFiaWxpdHkgaW4gYW55IHdpcmVsZXNzIHN0YWNrLiBUaGVuLCBJIG5lZWQgdG8gdHJhY2UgYWxsIHRoZSBjYWxsIHBhdGhzLCBzcGVjaWZpY2FsbHksIHdoZXJlIHRoaXMgYGF0aF9kcmFpbnR4cWAgZnVuY3Rpb24gaXMgaW52b2tlZC4gVGhhdCYjMzk7cyBteSBpbml0aWFsIGdvYWwuIEJleW9uZCB0aGF0LCBJIG5lZWQgdG8gYnJvYWRlbiB0aGUgc2NvcGU6IEkgbXVzdCBpbnZlc3RpZ2F0ZSAqYW55KiBvdGhlciBjYWxscyBvcmlnaW5hdGluZyBmcm9tIHdpdGhpbiB0aGUgYHhtaXQuY2AgbW9kdWxlLiBVbmRlcnN0YW5kaW5nIHRoZSByb2xlcyBhbmQgaW50ZXJhY3Rpb25zIGJldHdlZW4gdGhlIGNvbXBvbmVudHMgd2l0aGluIHRoaXMgZmlsZSBpcyBlc3NlbnRpYWwgZm9yIGEgdGhvcm91Z2ggZGlhZ25vc2lzLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE0LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8wNiAwODowOTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDthdGhfZHJhaW50eHEmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2F0aDlrLmg9NTg1PWJvb2wgYXRoX2RyYWluX2FsbF90eHEoc3RydWN0IGF0aF9zb2Z0YyAqc2MpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2F0aDlrLmg6NTg2OnZvaWQgYXRoX2RyYWludHhxKHN0cnVjdCBhdGhfc29mdGMgKnNjLCBzdHJ1Y3QgYXRoX3R4cSAqdHhxKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hdGg5ay5oLTU4Ny12b2lkIGF0aF90eF9ub2RlX2luaXQoc3RydWN0IGF0aF9zb2Z0YyAqc2MsIHN0cnVjdCBhdGhfbm9kZSAqYW4pO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9iZWFjb24uYz0xMTI9c3RhdGljIHN0cnVjdCBhdGhfYnVmICphdGg5a19iZWFjb25fZ2VuZXJhdGUoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2JlYWNvbi5jLTE4Mi1cdFx0XHRcdFwmIzM0O0ZsdXNoaW5nIHByZXZpb3VzIGNhYnEgdHJhZmZpY1xcblwmIzM0Oyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYmVhY29uLmM6MTgzOlx0XHRcdGF0aF9kcmFpbnR4cShzYywgY2FicSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYmVhY29uLmMtMTg0LVx0XHR9XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYz0xODcyPXN0YXRpYyB2b2lkIGF0aF9kcmFpbl90eHFfbGlzdChzdHJ1Y3QgYXRoX3NvZnRjICpzYywgc3RydWN0IGF0aF90eHEgKnR4cSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTE5MTMtICovXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jOjE5MTQ6dm9pZCBhdGhfZHJhaW50eHEoc3RydWN0IGF0aF9zb2Z0YyAqc2MsIHN0cnVjdCBhdGhfdHhxICp0eHEpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTE5MTUte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmM9MTkzOD1ib29sIGF0aF9kcmFpbl9hbGxfdHhxKHN0cnVjdCBhdGhfc29mdGMgKnNjKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMtMTk3My1cdFx0dHhxID0gXHUwMDI2c2MtXHUwMDNldHgudHhxW2ldO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYzoxOTc0Olx0XHRhdGhfZHJhaW50eHEoc2MsIHR4cSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTE5NzUtXHR9XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzA2IDA4OjA5PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy43LWZsYXNoPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDIzMTYyCgkJCQkJCQlvdXRwdXQ6IDQ2CgkJCQkJCQl0aG91Z2h0czogMzMzCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgYGF0aDlrYCBEcml2ZXIgZm9yIEZ1enppbmcgUG90ZW50aWFsKioKCk9rYXksIHNvIGBhdGg5a2AgaXMgdGhlIEF0aGVyb3MgODAyLjExbiBkcml2ZXIgZm9yIFBDSS9BSEIuIEZpcnN0LCBJIG5lZWQgdG8gZmlndXJlIG91dCBpZiB0aGVyZSYjMzk7cyBhbnkgUUVNVSBvciBzeXprYWxsZXIgZW11bGF0aW9uIGZvciB0aGlzIHNwZWNpZmljIGRyaXZlci4gTXkgaW5pdGlhbCBpbnN0aW5jdCBpcyB0byBjaGVjayBmb3IgdmlydHVhbCBidXMgb3IgZGV2aWNlIGVtdWxhdGlvbiBjYXBhYmlsaXRpZXMuIE1vcmUgYnJvYWRseSwgSSBzaG91bGQgZGV0ZXJtaW5lIHdoYXQgd2lyZWxlc3MgZGV2aWNlcyBhcmUgZnV6emFibGUgaW4gc3l6a2FsbGVyIGluIGdlbmVyYWwuCgpOb3csIGxldCYjMzk7cyBsb29rIGF0IFNlY3Rpb24gMiBvZiB0aGUgaW5zdHJ1Y3Rpb25zLiBUaGUgdGV4dCBjbGVhcmx5IHN0YXRlcyB0aGF0IHVucmVhY2hhYmxlIGhhcmR3YXJlIGluY2x1ZGVzIHZlbmRvci1zcGVjaWZpYyBkZXZpY2VzIGxpa2UgU21hcnROSUNzIGFuZCBHUFVzIHRoYXQgbmVlZCBwaHlzaWNhbCBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS4gT24gdGhlIG90aGVyIGhhbmQsIHJlYWNoYWJsZSBkcml2ZXJzIGFuZCBwcm90b2NvbHMgYXJlIHRob3NlIGFjY2Vzc2libGUgdGhyb3VnaCB2aXJ0dWFsIGJ1c2VzIHN1Y2ggYXMgdmlydGlvLCBVU0IgZ2FkZ2V0LCBsb29wYmFjaywgbmV0bGluaywgYW5kIHNvIG9uLgoKQWhhISBTeXprYWxsZXIgKmNhbiogZW11bGF0ZSBVU0IgV2ktRmkgZGV2aWNlcyB2aWEgUmF3IEdhZGdldC9VU0IgZnV6emluZy4gRm9yIGluc3RhbmNlLCBgYXRoOWtfaHRjYCBpcyBhIFVTQiBXaS1GaSBkZXZpY2UgdGhhdCByZWdpc3RlcnMgYSBVU0IgZHJpdmVyIHVzaW5nIGB1c2JfcmVnaXN0ZXJgLiBTbywgdGhlIGNyaXRpY2FsIHF1ZXN0aW9uIGlzOiBpcyBgYXRoOWtgIHNvbGVseSBQQ0kvQUhCLCBvciBkb2VzIGl0IGhhdmUgYSBVU0IgaW50ZXJmYWNlPwoKSSYjMzk7bGwgY2hlY2sgdGhlIGRyaXZlciBmaWxlcyBpbiBgZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2AgYW5kIHNwZWNpZmljYWxseSBzZWFyY2ggZm9yIGVpdGhlciBgcGNpX2RyaXZlcmAgb3IgYHVzYl9kcml2ZXJgLiBUaGF0IHNob3VsZCBnaXZlIG1lIHRoZSBkZWZpbml0aXZlIGFuc3dlci4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNi8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMDYgMDg6MDk8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7c3RydWN0IChwY2lfZHJpdmVyfHVzYl9kcml2ZXJ8cGxhdGZvcm1fZHJpdmVyKSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ayYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYWhiLmM9MTE5PXN0YXRpYyB2b2lkIGF0aF9haGJfcmVtb3ZlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FoYi5jLTEzMS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9haGIuYzoxMzI6c3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kcml2ZXIgYXRoX2FoYl9kcml2ZXIgPSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYWhiLmMtMTMzLVx0LnByb2JlID0gYXRoX2FoYl9wcm9iZSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYXRoOWtfcGNpX293bF9sb2FkZXIuYz0yMzA9TU9EVUxFX0RFVklDRV9UQUJMRShwY2ksIG93bF9wY2lfdGFibGUpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2F0aDlrX3BjaV9vd2xfbG9hZGVyLmMtMjMxLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2F0aDlrX3BjaV9vd2xfbG9hZGVyLmM6MjMyOnN0YXRpYyBzdHJ1Y3QgcGNpX2RyaXZlciBvd2xfZHJpdmVyID0ge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2F0aDlrX3BjaV9vd2xfbG9hZGVyLmMtMjMzLVx0Lm5hbWVcdFx0PSBLQlVJTERfTU9ETkFNRSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvaGlmX3VzYi5jPTE0NTk9c3RhdGljIGludCBhdGg5a19oaWZfdXNiX3Jlc3VtZShzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqaW50ZXJmYWNlKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9oaWZfdXNiLmMtMTUwMy1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9oaWZfdXNiLmM6MTUwNDpzdGF0aWMgc3RydWN0IHVzYl9kcml2ZXIgYXRoOWtfaGlmX3VzYl9kcml2ZXIgPSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvaGlmX3VzYi5jLTE1MDUtXHQubmFtZSA9IEtCVUlMRF9NT0ROQU1FLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9wY2kuYz0xMDczPU1PRFVMRV9ERVZJQ0VfVEFCTEUocGNpLCBhdGhfcGNpX2lkX3RhYmxlKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9wY2kuYy0xMDc0LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3BjaS5jOjEwNzU6c3RhdGljIHN0cnVjdCBwY2lfZHJpdmVyIGF0aF9wY2lfZHJpdmVyID0ge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3BjaS5jLTEwNzYtXHQubmFtZSAgICAgICA9IFwmIzM0O2F0aDlrXCYjMzQ7LFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE3LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8wNiAwODowOTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuNy1mbGFzaDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyNDQ0MQoJCQkJCQkJb3V0cHV0OiAyOAoJCQkJCQkJdGhvdWdodHM6IDY0OQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBBbmFseXNpcyBvZiB0aGUgYXRoOWsgV2lyZWxlc3MgRHJpdmVyIFN0cnVjdHVyZSoqCgpPa2F5LCBzbyBJJiMzOTttIGRpZ2dpbmcgaW50byB0aGlzIGBhdGg5a19oaWZfdXNiX2RyaXZlcmAgYW5kIGhvdyBpdCByZWxhdGVzIHRvIHRoZSBgYXRoOWtfaHRjYCBkcml2ZXIuICBNeSBpbml0aWFsIHRob3VnaHQgaXMgdG8gY29uZmlybSB0aGUgY29ubmVjdGlvbiBiZXR3ZWVuIHRoZW0sIGFuZCB0aGUgb2J2aW91cyBwbGFjZSB0byBsb29rIGlzIGBkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvaGlmX3VzYi5jYC4gIEkgbmVlZCB0byBkZXRlcm1pbmUgd2hhdCBtb2R1bGUgYGhpZl91c2Iub2AgaXMgYWN0dWFsbHkgcGFydCBvZi4gVGhlIGBNYWtlZmlsZWAgY29uZmlybXMgdGhpczogIGl0JiMzOTtzIGJ1aWx0IGFzIHBhcnQgb2YgYGF0aDlrX2h0Y2AuICBUaGF0JiMzOTtzIHRoZSBjb25maXJtYXRpb24gSSBuZWVkZWQuCgpOb3csIEkmIzM5O20gdHJ5aW5nIHRvIHVuZGVyc3RhbmQgdGhlIGludGVycGxheSBiZXR3ZWVuIHRoZSB0d28gbWFpbiBtb2R1bGVzOiBgYXRoOWtgIGFuZCBgYXRoOWtfaHRjYC4gSSYjMzk7bSB3b25kZXJpbmcgaWYgYGF0aDlrX2h0Y2AgbGV2ZXJhZ2VzIGNvZGUgZnJvbSBgeG1pdC5jYCBvciBpZiB0aGVzZSBhcmUgYmFzaWNhbGx5IHNlcGFyYXRlIGVudGl0aWVzIHRoYXQganVzdCBoYXBwZW4gdG8gc2hhcmUgYGF0aDlrX2NvbW1vbmAgYW5kIGBhdGg5a19od2AuCgpJIHNlZSB0aGF0IGBhdGg5a2AgaXMgYnVpbHQgZnJvbSBhIHNldCBvZiBzb3VyY2UgZmlsZXMgYW5kIGluY2x1ZGVzIGB4bWl0LmNgLiBGcm9tIHRoaXMsIEkmIzM5O20gZGV0ZXJtaW5pbmcgdGhhdCBgYXRoOWsub2AgaXMgdXNlZCBmb3IgUENJIGFuZCBBSEIgYmFzZWQgZGV2aWNlcy4gQUhCIGlzIG1haW5seSB1c2VkIG9uIGVtYmVkZGVkIHN5c3RlbXMsIGxpa2UgT3BlbldSVCwgcnVubmluZyBvbiBBdGhlcm9zIE1JUFMvQVJNIFNvQ3MsIHVzaW5nIGRldmljZSB0cmVlcyB0byBkZXNjcmliZSB0aGUgaGFyZHdhcmUuIFBDSSBjb3ZlcnMgc3RhbmRhcmQgUENJL1BDSWUgY2FyZHMsIGxpa2UgdGhlIEFSOTI4MCwgQVI5Mjg1LCBldGMuCgpUaGUgaXNzdWUgaXMgdGhpczogYXJlIHRob3NlIFBDSSBkZXZpY2VzIGV2ZW4gZW11bGF0ZWQgaW4gc29tZXRoaW5nIGxpa2Ugc3RhbmRhcmQgUUVNVSBvciBHb29nbGUgQ29tcHV0ZSBFbmdpbmU/IEFuZCBvZiBjb3Vyc2UsIG5vLCBRRU1VIGRvZXNuJiMzOTt0IGVtdWxhdGUgYW55IEF0aGVyb3MgYXRoOWsgUENJIGRldmljZXMuIEl0IGVtdWxhdGVzIG90aGVyIHN0YW5kYXJkIE5JQ3MgbGlrZSBlMTAwMCwgcnRsODEzOSwgb3IgdmlydGlvLW5ldCwgYnV0IG5vdCB0aGUgYXRoOWsuIFRoZSBBSEIgb25lcywgdGhlIHBsYXRmb3JtIGRldmljZXMsIHRoYXQmIzM5O3Mgbm90IGdvaW5nIHRvIHdvcmsgZWl0aGVyIGJlY2F1c2UgdGhvc2UgcmVseSBvbiBPRiBhbmQgZGV2aWNlIHRyZWVzLCB3aGljaCB3b24mIzM5O3QgYmUgb24gYW4gYW1kNjQgUUVNVSBpbnN0YW5jZS4KCk9rYXksIGxldCBtZSBiYWNrIHVwIGEgbGl0dGxlLiBQZXJoYXBzIGBtYWM4MDIxMV9od3NpbWAgaGFzIHNvbWV0aGluZyB0byBkbyB3aXRoIHRoZSBhdGg5ayBkcml2ZXI/IEkgbmVlZCB0byB2ZXJpZnkgd2hldGhlciB0aGUgYG1hYzgwMjExX2h3c2ltYCB1c2VzIGFueSBwYXJ0IG9mIGBhdGg5a2AuIE5vcGUsIGBtYWM4MDIxMV9od3NpbWAgaXMgYSBwdXJlIHNvZnR3YXJlIGRyaXZlciBmb3IgbWFjODAyMTEsIGl0JiMzOTtzIGlycmVsZXZhbnQuIEFuZCB0aGUgc2FtZSBmb3IgYHZpcnRfd2lmaWAuIE9rLCBzbyBkb2VzIGBhdGg5a2AgaGF2ZSBhbnkga2luZCBvZiBtb2NrIG9yIHNpbXVsYXRlZCBkZXZpY2U/IEkmIzM5O20gZ29pbmcgdG8gZG8gYSBxdWljayBzY2FuIG9mIHRoZSBrZXJuZWwgdHJlZSB0byBjaGVjayBmb3IgYW55dGhpbmcgbGlrZSB0aGF0LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE4LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8wNiAwODowOTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDthdGg5ayYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O1xuRnVsbCBvdXRwdXQgaXMgdG9vIGxvbmcsIHNob3dpbmcgNTAwIG91dCBvZiAxNDE2NiBsaW5lcy5cblVzZSBtb3JlIHByZWNpc2UgZXhwcmVzc2lvbiBpZiBwb3NzaWJsZS5cblxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL0tjb25maWc9MjY9Y29uZmlnIEFUSF9ERUJVR1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9LY29uZmlnLTI5LVx0ICBTYXkgWSwgaWYgeW91IHdhbnQgdG8gZGVidWcgYXRoZXJvcyB3aXJlbGVzcyBkcml2ZXJzLlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL0tjb25maWc6MzA6XHQgIFJpZ2h0IG5vdyBvbmx5IGF0aDlrIG1ha2VzIHVzZSBvZiB0aGlzLlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL0tjb25maWctMzEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvS2NvbmZpZz0zMj1jb25maWcgQVRIX1RSQUNFUE9JTlRTXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL0tjb25maWctMzctXHQgIFRoaXMgb3B0aW9uIGVuYWJsZXMgdHJhY2Vwb2ludHMgZm9yIGF0aGVyb3Mgd2lyZWxlc3MgZHJpdmVycy5cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9LY29uZmlnOjM4Olx0ICBDdXJyZW50bHksIGF0aDlrIG1ha2VzIHVzZSBvZiB0aGlzIGZhY2lsaXR5LlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL0tjb25maWctMzktXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL0tjb25maWc9NTc9c291cmNlIFwmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg1ay9LY29uZmlnXCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvS2NvbmZpZzo1ODpzb3VyY2UgXCYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWdcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9LY29uZmlnLTU5LXNvdXJjZSBcJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvY2FybDkxNzAvS2NvbmZpZ1wmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9NYWtlZmlsZT0yPW9iai0kKENPTkZJR19BVEg1SylcdFx0JiM0Mzs9IGF0aDVrL1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL01ha2VmaWxlOjM6b2JqLSQoQ09ORklHX0FUSDlLX0hXKVx0XHQmIzQzOz0gYXRoOWsvXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvTWFrZWZpbGUtNC1vYmotJChDT05GSUdfQ0FSTDkxNzApXHRcdCYjNDM7PSBjYXJsOTE3MC9cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL2h3Lmg9NjczPWF0aDEwa19pc19yc3NpX2VuYWJsZShzdHJ1Y3QgYXRoMTBrX2h3X3BhcmFtcyAqaHcsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway9ody5oLTExMzYtLyogUmVnaXN0ZXIgZGVmaW5pdGlvbnMgZm9yIGZpcnN0IGdlbmVyYXRpb24gYXRoMTBrIGNhcmRzLiBUaGVzZSBjYXJkcyBpbmNsdWRlXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL2h3Lmg6MTEzNzogKiBhIG1hYyB3aGljaCBoYXMgYSByZWdpc3RlciBhbGxvY2F0aW9uIHNpbWlsYXIgdG8gYXRoOWsgYW5kIGF0IGxlYXN0IHNvbWVcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvaHcuaC0xMTM4LSAqIHJlZ2lzdGVycyBpbmNsdWRpbmcgdGhlIG9uZXMgcmVsZXZhbnQgZm9yIG1vZGlmeWluZyB0aGUgY292ZXJhZ2UgY2xhc3MgYXJlXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL2h3Lmg6MTEzOTogKiBpZGVudGljYWwgdG8gdGhlIGF0aDlrIGRlZmluaXRpb25zLlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway9ody5oLTExNDAtICogVGhlc2UgcmVnaXN0ZXJzIGFyZSB1c3VhbGx5IG1hbmFnZWQgYnkgdGhlIGF0aDEwayBmaXJtd2FyZS4gSG93ZXZlciBieVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvc3BlY3RyYWwuYz02Mz1pbnQgYXRoMTBrX3NwZWN0cmFsX3Byb2Nlc3NfZmZ0KHN0cnVjdCBhdGgxMGsgKmFyLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvc3BlY3RyYWwuYy0xNDAtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3NwZWN0cmFsLmM6MTQxOlx0LyogbWF4X2V4cCBoYXMgYmVlbiBkaXJlY3RseSByZXBvcnRlZCBieSBwcmV2aW91cyBoYXJkd2FyZSAoYXRoOWspLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway9zcGVjdHJhbC5jLTE0Mi1cdCAqIG1heWJlIGl0cyBwb3NzaWJsZSB0byBnZXQgaXQgYnkgb3RoZXIgbWVhbnM/XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDVrL2FuaS5jPTY2PWF0aDVrX2FuaV9zZXRfbm9pc2VfaW1tdW5pdHlfbGV2ZWwoc3RydWN0IGF0aDVrX2h3ICphaCwgaW50IGxldmVsKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg1ay9hbmkuYy02OS1cdCAqIEFOSSBkb2N1bWVudHMgc3VnZ2VzdCB0aGUgZm9sbG93aW5nIGZpdmUgbGV2ZWxzIHRvIHVzZSwgYnV0IHRoZSBIQUxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg1ay9hbmkuYzo3MDpcdCAqIGFuZCBhdGg5ayB1c2Ugb25seSB0aGUgbGFzdCB0d28gbGV2ZWxzLCBtYWtpbmcgdGhpc1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDVrL2FuaS5jLTcxLVx0ICogZXNzZW50aWFsbHkgYW4gb24vb2ZmIG9wdGlvbi4gVGhlcmUgKm1heSogYmUgYSByZWFzb24gZm9yIHRoaXMgKD8/PyksXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDVrL3JlZy5oLTMyLSAqIFRoaXMgZmlsZSBhbHNvIGNvbnRhaW5zIHJlZ2lzdGVyIHZhbHVlcyBmb3VuZCBvbiBhIG1lbW9yeSBkdW1wIG9mXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNWsvcmVnLmg6MzM6ICogQXRoZXJvcyYjMzk7cyBBUlQgcHJvZ3JhbSAoQXRoZXJvcyBSYWRpbyBUZXN0KSwgb24gYXRoOWssIG9uIGxlZ2FjeS1oYWxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg1ay9yZWcuaC0zNC0gKiByZWxlYXNlZCBieSBBdGhlcm9zIGFuZCBvbiB2YXJpb3VzIGRlYnVnIG1lc3NhZ2VzIGZvdW5kIG9uIHRoZSBuZXQuXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWc9MTM9Y29uZmlnIEFUSDlLX0JUQ09FWF9TVVBQT1JUXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWctMTctXHRoZWxwXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZzoxODpcdCAgU2F5IFksIGlmIHlvdSB3YW50IHRvIHVzZSB0aGUgYXRoOWsvYXRoOWtfaHRjIHJhZGlvcyB0b2dldGhlciB3aXRoXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZy0xOS1cdCAgQmx1ZXRvb3RoIG1vZHVsZXMgaW4gdGhlIHNhbWUgc3lzdGVtLlxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnPTIxPWNvbmZpZyBBVEg5S1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnLTMxLVx0ICBjYXJkcywgbGFwdG9wcyB0aGF0IGFscmVhZHkgc2hpcCB3aXRoIHRoZXNlIGNhcmRzIGFuZFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWc6MzI6XHQgIEFQcyB0aGF0IGNvbWUgd2l0aCB0aGVzZSBjYXJkcyByZWZlciB0byBhdGg5ayB3aWtpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZy0zMy1cdCAgcHJvZHVjdHMgcGFnZTpcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnLTM0LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWc6MzU6XHQgIGh0dHBzOi8vd2lyZWxlc3Mud2lraS5rZXJuZWwub3JnL2VuL3VzZXJzL0RyaXZlcnMvYXRoOWsvcHJvZHVjdHNcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnLTM2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWc6Mzc6XHQgIElmIHlvdSBjaG9vc2UgdG8gYnVpbGQgYSBtb2R1bGUsIGl0JiMzOTtsbCBiZSBjYWxsZWQgYXRoOWsuXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZy0zOC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnPTM5PWNvbmZpZyBBVEg5S19QQ0lcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnOjQwOlx0Ym9vbCBcJiMzNDtBdGhlcm9zIGF0aDlrIFBDSS9QQ0llIGJ1cyBzdXBwb3J0XCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZy00MS1cdGRlZmF1bHQgeVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnLTQzLVx0aGVscFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWc6NDQ6XHQgIFRoaXMgb3B0aW9uIGVuYWJsZXMgdGhlIFBDSSBidXMgc3VwcG9ydCBpbiBhdGg5ay5cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnLTQ1LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnPTQ4PWNvbmZpZyBBVEg5S19BSEJcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnOjQ5Olx0Ym9vbCBcJiMzNDtBdGhlcm9zIGF0aDlrIEFIQiBidXMgc3VwcG9ydFwmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWctNTAtXHRkZXBlbmRzIG9uIEFUSDlLIFx1MDAyNlx1MDAyNiBPRlxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnLTUyLVx0aGVscFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWc6NTM6XHQgIFRoaXMgb3B0aW9uIGVuYWJsZXMgdGhlIEFIQiBidXMgc3VwcG9ydCBpbiBhdGg5ay5cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnLTU0LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnPTU4PWNvbmZpZyBBVEg5S19ERUJVR0ZTXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZzo1OTpcdGJvb2wgXCYjMzQ7QXRoZXJvcyBhdGg5ayBkZWJ1Z2dpbmdcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnLTYwLVx0ZGVwZW5kcyBvbiBBVEg5SyBcdTAwMjZcdTAwMjYgREVCVUdfRlMgXHUwMDI2XHUwMDI2IE1BQzgwMjExX0RFQlVHRlNcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZy02Mi1cdGhlbHBcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnOjYzOlx0ICBTYXkgWSwgaWYgeW91IG5lZWQgYWNjZXNzIHRvIGF0aDlrJiMzOTtzIHN0YXRpc3RpY3MgZm9yXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZy02NC1cdCAgaW50ZXJydXB0cywgcmF0ZSBjb250cm9sLCBldGMuXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWc9NzY9Y29uZmlnIEFUSDlLX1RYOTlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnOjc3Olx0Ym9vbCBcJiMzNDtBdGhlcm9zIGF0aDlrIFRYOTkgdGVzdGluZyBzdXBwb3J0XCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZy03OC1cdGRlcGVuZHMgb24gQVRIOUtfREVCVUdGUyBcdTAwMjZcdTAwMjYgQ0ZHODAyMTFfQ0VSVElGSUNBVElPTl9PTlVTXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWc9OTY9Y29uZmlnIEFUSDlLX0RGU19DRVJUSUZJRURcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZy0xMDEtXHQgIFRoaXMgb3B0aW9uIGVuYWJsZXMgREZTIHN1cHBvcnQgZm9yIGluaXRpYXRpbmcgcmFkaWF0aW9uIG9uXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZzoxMDI6XHQgIGF0aDlrLiBUaGVyZSBpcyBubyB3YXkgdG8gZHluYW1pY2FsbHkgZGV0ZWN0IGlmIGEgY2FyZCB3YXMgREZTXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZy0xMDMtXHQgIGNlcnRpZmllZCBhbmQgYXMgc3VjaCB0aGlzIGlzIGxlZnQgYXMgYSBidWlsZCB0aW1lIG9wdGlvbi4gVGhpc1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnLTEwNi1cdCAgaGF2ZSBvYnRhaW5lZCBhcHByb3ByaWF0ZSByZWd1bGF0b3J5IGJvZHkgY2VydGlmaWNhdGlvbiBmb3IgYVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWc6MTA3Olx0ICByZXNwZWN0aXZlIEF0aGVyb3MgY2FyZCBieSB1c2luZyBhdGg5ayBvbiB0aGUgdGFyZ2V0IHNoaXBwaW5nXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZy0xMDgtXHQgIHBsYXRmb3Jtcy5cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZz0xMTU9Y29uZmlnIEFUSDlLX0RZTkFDS1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWc6MTE2Olx0Ym9vbCBcJiMzNDtBdGhlcm9zIGF0aDlrIEFDSyB0aW1lb3V0IGVzdGltYXRpb24gYWxnb3JpdGhtXCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZy0xMTctXHRkZXBlbmRzIG9uIEFUSDlLXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWctMTE5LVx0aGVscFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWc6MTIwOlx0ICBUaGlzIG9wdGlvbiBlbmFibGVzIGF0aDlrIGR5bmFtaWMgQUNLIHRpbWVvdXQgZXN0aW1hdGlvbiBhbGdvcml0aG1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnLTEyMS1cdCAgYmFzZWQgb24gQUNLIGZyYW1lIFJYIHRpbWVzdGFtcCwgVFggZnJhbWUgdGltZXN0YW1wIGFuZCBmcmFtZVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnPTEzMj1jb25maWcgQVRIOUtfUkZLSUxMXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZzoxMzM6XHRib29sIFwmIzM0O0F0aGVyb3MgYXRoOWsgcmZraWxsIHN1cHBvcnRcJiMzNDsgaWYgRVhQRVJUXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZy0xMzQtXHRkZXBlbmRzIG9uIEFUSDlLXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWctMTM3LVx0aGVscFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWc6MTM4Olx0ICBTYXkgWSB0byBoYXZlIGF0aDlrIHBvbGwgdGhlIFJGLUtpbGwgR1BJTyBldmVyeSBjb3VwbGUgb2ZcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnLTEzOS1cdCAgc2Vjb25kcy4gVHVybiBvZmYgdG8gc2F2ZSBwb3dlciwgYnV0IGVuYWJsZSBpdCBpZiB5b3UgaGF2ZVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnPTE0Mj1jb25maWcgQVRIOUtfQ0hBTk5FTF9DT05URVhUXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWctMTQ2LVx0aGVscFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWc6MTQ3Olx0ICBUaGlzIG9wdGlvbiBlbmFibGVzIGNoYW5uZWwgY29udGV4dCBzdXBwb3J0IGluIGF0aDlrLCB3aGljaCBpcyBuZWVkZWRcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnLTE0OC1cdCAgZm9yIG11bHRpLWNoYW5uZWwgY29uY3VycmVuY3kuIEVuYWJsZSB0aGlzIGlmIFAyUCBQb3dlclNhdmUgc3VwcG9ydFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnPTE1MT1jb25maWcgQVRIOUtfUENPRU1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnOjE1MjpcdGJvb2wgXCYjMzQ7QXRoZXJvcyBhdGg5ayBzdXBwb3J0IGZvciBQQyBPRU0gY2FyZHNcJiMzNDsgaWYgRVhQRVJUXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZy0xNTMtXHRkZXBlbmRzIG9uIEFUSDlLXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWc9MTU2PWNvbmZpZyBBVEg5S19QQ0lfTk9fRUVQUk9NXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZzoxNTc6XHR0cmlzdGF0ZSBcJiMzNDtBdGhlcm9zIGF0aDlrIHBjaSBsb2FkZXIgZm9yIEVFUFJPTS1sZXNzIGNoaXBzXCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZy0xNTgtXHRkZXBlbmRzIG9uIEFUSDlLX1BDSVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnLTE2MS1cdCAgVGhpcyBzZXBhcmF0ZSBkcml2ZXIgcHJvdmlkZXMgYSBsb2FkZXIgaW4gb3JkZXIgdG8gc3VwcG9ydCB0aGVcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnOjE2MjpcdCAgQVI1MDBYIHRvIEFSOTJYWC1nZW5lcmF0aW9uIG9mIGF0aDlrIFBDSShlKSBXaUZpIGNoaXBzLCB3aGljaCBoYXZlXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZy0xNjMtXHQgIHRoZWlyIGluaXRpYWxpemF0aW9uIGRhdGEgKHdoaWNoIGNvbnRhaW5zIHRoZSByZWFsIFBDSSBEZXZpY2UgSURcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnOjE2NDpcdCAgdGhhdCBhdGg5ayB3aWxsIG5lZWQpIHN0b3JlZCB0b2dldGhlciB3aXRoIHRoZSBjYWxpYnJhdGlvbiBkYXRhIG91dFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWc6MTY1Olx0ICBvZiByZWFjaCBmb3IgdGhlIGF0aDlrIGNoaXAuXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZy0xNjYtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWc9MTcyPWNvbmZpZyBBVEg5S19IVENcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZy0xODItXHQgIEZvciBtb3JlIGluZm9ybWF0aW9uOlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWc6MTgzOlx0ICBodHRwczovL3dpcmVsZXNzLndpa2kua2VybmVsLm9yZy9lbi91c2Vycy9Ecml2ZXJzL2F0aDlrX2h0Y1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWctMTg0LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWc6MTg1Olx0ICBUaGUgYnVpbHQgbW9kdWxlIHdpbGwgYmUgYXRoOWtfaHRjLlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWctMTg2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWc9MTg3PWNvbmZpZyBBVEg5S19IVENfREVCVUdGU1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWc6MTg4Olx0Ym9vbCBcJiMzNDtBdGhlcm9zIGF0aDlrX2h0YyBkZWJ1Z2dpbmdcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnLTE4OS1cdGRlcGVuZHMgb24gQVRIOUtfSFRDIFx1MDAyNlx1MDAyNiBERUJVR19GU1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnLTE5MS1cdGhlbHBcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnOjE5MjpcdCAgU2F5IFksIGlmIHlvdSBuZWVkIGFjY2VzcyB0byBhdGg5a19odGMmIzM5O3Mgc3RhdGlzdGljcy5cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnLTE5My1cdCAgQXMgd2VsbCBhcyBhY2Nlc3MgdG8gdGhlIEZGVC9zcGVjdHJhbCBkYXRhLlxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnPTIwNj1jb25maWcgQVRIOUtfQ09NTU9OX1NQRUNUUkFMXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZzoyMDc6XHRib29sIFwmIzM0O0F0aGVyb3MgYXRoOWsvYXRoOWtfaHRjIHNwZWN0cmFsIHNjYW4gc3VwcG9ydFwmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWctMjA4LVx0ZGVwZW5kcyBvbiBBVEg5S19ERUJVR0ZTIHx8IEFUSDlLX0hUQ19ERUJVR0ZTXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL01ha2VmaWxlLTEtIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogSVNDXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvTWFrZWZpbGU6MjphdGg5ay15ICYjNDM7PVx0YmVhY29uLm8gXFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9NYWtlZmlsZS0zLVx0XHRncGlvLm8gXFxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvTWFrZWZpbGUtMTEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvTWFrZWZpbGU6MTI6YXRoOWstJChDT05GSUdfQVRIOUtfQlRDT0VYX1NVUFBPUlQpICYjNDM7PSBtY2kub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL01ha2VmaWxlOjEzOmF0aDlrLSQoQ09ORklHX0FUSDlLX1BDSSkgJiM0Mzs9IHBjaS5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvTWFrZWZpbGU6MTQ6YXRoOWstJChDT05GSUdfQVRIOUtfQUhCKSAmIzQzOz0gYWhiLm9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9NYWtlZmlsZToxNTphdGg5ay0kKENPTkZJR19BVEg5S19ERlNfREVCVUdGUykgJiM0Mzs9IGRmc19kZWJ1Zy5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvTWFrZWZpbGU6MTY6YXRoOWstJChDT05GSUdfQVRIOUtfREZTX0NFUlRJRklFRCkgJiM0Mzs9IGRmcy5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvTWFrZWZpbGU6MTc6YXRoOWstJChDT05GSUdfQVRIOUtfVFg5OSkgJiM0Mzs9IHR4OTkub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL01ha2VmaWxlOjE4OmF0aDlrLSQoQ09ORklHX0FUSDlLX1dPVykgJiM0Mzs9IHdvdy5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvTWFrZWZpbGU6MTk6YXRoOWstJChDT05GSUdfQVRIOUtfSFdSTkcpICYjNDM7PSBybmcub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL01ha2VmaWxlLTIwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL01ha2VmaWxlOjIxOmF0aDlrLSQoQ09ORklHX0FUSDlLX0RFQlVHRlMpICYjNDM7PSBkZWJ1Zy5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvTWFrZWZpbGUtMjItXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvTWFrZWZpbGU6MjM6YXRoOWstJChDT05GSUdfQVRIOUtfU1RBVElPTl9TVEFUSVNUSUNTKSAmIzQzOz0gZGVidWdfc3RhLm9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9NYWtlZmlsZS0yNC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9NYWtlZmlsZToyNTpvYmotJChDT05GSUdfQVRIOUspICYjNDM7PSBhdGg5ay5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvTWFrZWZpbGUtMjYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvTWFrZWZpbGU6Mjc6YXRoOWtfaHcteTo9XHRcXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL01ha2VmaWxlLTI4LVx0XHRhcjkwMDJfaHcubyBcXFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9NYWtlZmlsZS00Ny1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9NYWtlZmlsZTo0ODphdGg5a19ody0kKENPTkZJR19BVEg5S19XT1cpICYjNDM7PSBhcjkwMDNfd293Lm9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9NYWtlZmlsZS00OS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9NYWtlZmlsZTo1MDphdGg5a19ody0kKENPTkZJR19BVEg5S19CVENPRVhfU1VQUE9SVCkgJiM0Mzs9IGJ0Y29leC5vIFxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvTWFrZWZpbGUtNTEtXHRcdFx0XHRcdCAgIGFyOTAwM19tY2kubyBcXFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9NYWtlZmlsZS01My1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9NYWtlZmlsZTo1NDphdGg5a19ody0kKENPTkZJR19BVEg5S19QQ09FTSkgJiM0Mzs9IGFyOTAwM19ydHQub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL01ha2VmaWxlLTU1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL01ha2VmaWxlOjU2OmF0aDlrX2h3LSQoQ09ORklHX0FUSDlLX0RZTkFDSykgJiM0Mzs9IGR5bmFjay5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvTWFrZWZpbGUtNTctXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvTWFrZWZpbGU6NTg6b2JqLSQoQ09ORklHX0FUSDlLX0hXKSAmIzQzOz0gYXRoOWtfaHcub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL01ha2VmaWxlLTU5LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL01ha2VmaWxlOjYwOm9iai0kKENPTkZJR19BVEg5S19DT01NT04pICYjNDM7PSBhdGg5a19jb21tb24ub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL01ha2VmaWxlOjYxOmF0aDlrX2NvbW1vbi15Oj1cdGNvbW1vbi5vIFxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvTWFrZWZpbGUtNjItXHRcdFx0Y29tbW9uLWluaXQubyBcXFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9NYWtlZmlsZS02NC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9NYWtlZmlsZTo2NTphdGg5a19jb21tb24tJChDT05GSUdfQVRIOUtfQ09NTU9OX0RFQlVHKSAmIzQzOz0gY29tbW9uLWRlYnVnLm9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9NYWtlZmlsZTo2NjphdGg5a19jb21tb24tJChDT05GSUdfQVRIOUtfQ09NTU9OX1NQRUNUUkFMKSAmIzQzOz0gY29tbW9uLXNwZWN0cmFsLm9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9NYWtlZmlsZS02Ny1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9NYWtlZmlsZTo2ODphdGg5a19odGMteSAmIzQzOz1cdGh0Y19oc3QubyBcXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL01ha2VmaWxlLTY5LVx0XHRoaWZfdXNiLm8gXFxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvTWFrZWZpbGUtNzYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvTWFrZWZpbGU6Nzc6YXRoOWtfaHRjLSQoQ09ORklHX0FUSDlLX0hUQ19ERUJVR0ZTKSAmIzQzOz0gaHRjX2Rydl9kZWJ1Zy5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvTWFrZWZpbGUtNzgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvTWFrZWZpbGU6Nzk6b2JqLSQoQ09ORklHX0FUSDlLX0hUQykgJiM0Mzs9IGF0aDlrX2h0Yy5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvTWFrZWZpbGUtODAtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvTWFrZWZpbGU6ODE6b2JqLSQoQ09ORklHX0FUSDlLX1BDSV9OT19FRVBST00pICYjNDM7PSBhdGg5a19wY2lfb3dsX2xvYWRlci5vXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FoYi5jLTIzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FoYi5jOjI0OiNpbmNsdWRlIFwmIzM0O2F0aDlrLmhcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9haGIuYy0yNS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9haGIuYzoyNjpzdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBhdGg5a19vZl9tYXRjaF90YWJsZVtdID0ge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FoYi5jLTI3LVx0eyAuY29tcGF0aWJsZSA9IFwmIzM0O3FjYSxhcjkxMzAtd2lmaVwmIzM0OywgLmRhdGEgPSAodm9pZCAqKUFSNTQxNl9BUjkxMDBfREVWSUQgfSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYWhiLmM9NTU9c3RhdGljIGludCBhdGhfYWhiX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FoYi5jLTc1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FoYi5jOjc2Olx0YXRoOWtfZmlsbF9jaGFuY3R4X29wcygpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FoYi5jOjc3Olx0aHcgPSBpZWVlODAyMTFfYWxsb2NfaHcoc2l6ZW9mKHN0cnVjdCBhdGhfc29mdGMpLCBcdTAwMjZhdGg5a19vcHMpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FoYi5jLTc4LVx0aWYgKGh3ID09IE5VTEwpIHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYWhiLmMtOTEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYWhiLmM6OTI6XHRyZXQgPSByZXF1ZXN0X2lycShpcnEsIGF0aF9pc3IsIElSUUZfU0hBUkVELCBcJiMzNDthdGg5a1wmIzM0Oywgc2MpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FoYi5jLTkzLVx0aWYgKHJldCkge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9haGIuYy05OC1cdGRldl9pZCA9ICh1MTYpKGtlcm5lbF91bG9uZ190KW9mX2RldmljZV9nZXRfbWF0Y2hfZGF0YShcdTAwMjZwZGV2LVx1MDAzZWRldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYWhiLmM6OTk6XHRyZXQgPSBhdGg5a19pbml0X2RldmljZShkZXZfaWQsIHNjLCBcdTAwMjZhdGhfYWhiX2J1c19vcHMpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FoYi5jLTEwMC1cdGlmIChyZXQpIHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYWhiLmMtMTA1LVx0YWggPSBzYy1cdTAwM2VzY19haDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9haGIuYzoxMDY6XHRhdGg5a19od19uYW1lKGFoLCBod19uYW1lLCBzaXplb2YoaHdfbmFtZSkpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FoYi5jLTEwNy1cdHdpcGh5X2luZm8oaHctXHUwMDNld2lwaHksIFwmIzM0OyVzIG1lbT0weCVwLCBpcnE9JWRcXG5cJiMzNDssXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FoYi5jPTExOT1zdGF0aWMgdm9pZCBhdGhfYWhiX3JlbW92ZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9haGIuYy0xMjUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYWhiLmM6MTI2Olx0XHRhdGg5a19kZWluaXRfZGV2aWNlKHNjKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9haGIuYy0xMjctXHRcdGZyZWVfaXJxKHNjLVx1MDAzZWlycSwgc2MpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9haGIuYz0xMzI9c3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kcml2ZXIgYXRoX2FoYl9kcml2ZXIgPSB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FoYi5jLTEzNS1cdC5kcml2ZXIgPSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYWhiLmM6MTM2Olx0XHQubmFtZSA9IFwmIzM0O2F0aDlrXCYjMzQ7LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FoYi5jOjEzNzpcdFx0Lm9mX21hdGNoX3RhYmxlID0gYXRoOWtfb2ZfbWF0Y2hfdGFibGUsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYWhiLmMtMTM4LVx0fSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYWhiLmMtMTQwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FoYi5jOjE0MTpNT0RVTEVfREVWSUNFX1RBQkxFKG9mLCBhdGg5a19vZl9tYXRjaF90YWJsZSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYWhiLmMtMTQyLVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYz04NT1zdGF0aWMgY29uc3Qgc3RydWN0IGFuaV9jY2tfbGV2ZWxfZW50cnkgY2NrX2xldmVsX3RhYmxlW10gPSB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jLTEwNi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYzoxMDc6c3RhdGljIHZvaWQgYXRoOWtfaHdfdXBkYXRlX21pYnN0YXRzKHN0cnVjdCBhdGhfaHcgKmFoLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jOjEwODpcdFx0XHRcdCAgICAgc3RydWN0IGF0aDlrX21pYl9zdGF0cyAqc3RhdHMpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmMtMTA5LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmMtMTI2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jOjEyNzpzdGF0aWMgdm9pZCBhdGg5a19hbmlfcmVzdGFydChzdHJ1Y3QgYXRoX2h3ICphaClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYy0xMjgte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYy0xNDEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmM6MTQyOlx0YXRoOWtfaHdfdXBkYXRlX21pYnN0YXRzKGFoLCBcdTAwMjZhaC1cdTAwM2VhaF9taWJTdGF0cyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmMtMTQzLVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYy0xNDgtLyogQWRqdXN0IHRoZSBPRkRNIE5vaXNlIEltbXVuaXR5IExldmVsICovXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmM6MTQ5OnN0YXRpYyB2b2lkIGF0aDlrX2h3X3NldF9vZmRtX25pbChzdHJ1Y3QgYXRoX2h3ICphaCwgdTggaW1tdW5pdHlMZXZlbCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYy0xNTAtXHRcdFx0XHQgIGJvb2wgc2Nhbilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmMtMTUyLVx0c3RydWN0IGFyNTQxNkFuaVN0YXRlICphbmlTdGF0ZSA9IFx1MDAyNmFoLVx1MDAzZWFuaTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYzoxNTM6XHRzdHJ1Y3QgYXRoX2NvbW1vbiAqY29tbW9uID0gYXRoOWtfaHdfY29tbW9uKGFoKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYy0xNTQtXHRjb25zdCBzdHJ1Y3QgYW5pX29mZG1fbGV2ZWxfZW50cnkgKmVudHJ5X29mZG07XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jLTE3My1cdGlmIChhbmlTdGF0ZS1cdTAwM2VzcHVySW1tdW5pdHlMZXZlbCAhPSBlbnRyeV9vZmRtLVx1MDAzZXNwdXJfaW1tdW5pdHlfbGV2ZWwpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmM6MTc0Olx0XHRhdGg5a19od19hbmlfY29udHJvbChhaCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYy0xNzUtXHRcdFx0XHQgICAgIEFUSDlLX0FOSV9TUFVSX0lNTVVOSVRZX0xFVkVMLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYy0xNzktXHQgICAgZW50cnlfb2ZkbS1cdTAwM2VmaXJfc3RlcF9sZXZlbCBcdTAwM2U9IGVudHJ5X2Njay1cdTAwM2VmaXJfc3RlcF9sZXZlbClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYzoxODA6XHRcdGF0aDlrX2h3X2FuaV9jb250cm9sKGFoLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jLTE4MS1cdFx0XHRcdCAgICAgQVRIOUtfQU5JX0ZJUlNURVBfTEVWRUwsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jLTIwMi1cdGlmIChhbmlTdGF0ZS1cdTAwM2VvZmRtV2Vha1NpZ0RldGVjdCAhPSB3ZWFrX3NpZylcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYzoyMDM6XHRcdGF0aDlrX2h3X2FuaV9jb250cm9sKGFoLCBBVEg5S19BTklfT0ZETV9XRUFLX1NJR05BTF9ERVRFQ1RJT04sXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmMtMjA0LVx0XHRcdFx0ICAgICB3ZWFrX3NpZyk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jLTIxNy1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYzoyMTg6c3RhdGljIHZvaWQgYXRoOWtfaHdfYW5pX29mZG1fZXJyX3RyaWdnZXIoc3RydWN0IGF0aF9odyAqYWgpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmMtMjE5LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmMtMjIyLVx0aWYgKGFuaVN0YXRlLVx1MDAzZW9mZG1Ob2lzZUltbXVuaXR5TGV2ZWwgXHUwMDNjIEFUSDlLX0FOSV9PRkRNX01BWF9MRVZFTClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYzoyMjM6XHRcdGF0aDlrX2h3X3NldF9vZmRtX25pbChhaCwgYW5pU3RhdGUtXHUwMDNlb2ZkbU5vaXNlSW1tdW5pdHlMZXZlbCAmIzQzOyAxLCBmYWxzZSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmMtMjI0LX1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmMtMjI4LSAqL1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jOjIyOTpzdGF0aWMgdm9pZCBhdGg5a19od19zZXRfY2NrX25pbChzdHJ1Y3QgYXRoX2h3ICphaCwgdV9pbnQ4X3QgaW1tdW5pdHlMZXZlbCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYy0yMzAtXHRcdFx0XHQgYm9vbCBzY2FuKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYy0yMzItXHRzdHJ1Y3QgYXI1NDE2QW5pU3RhdGUgKmFuaVN0YXRlID0gXHUwMDI2YWgtXHUwMDNlYW5pO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jOjIzMzpcdHN0cnVjdCBhdGhfY29tbW9uICpjb21tb24gPSBhdGg5a19od19jb21tb24oYWgpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jLTIzNC1cdGNvbnN0IHN0cnVjdCBhbmlfb2ZkbV9sZXZlbF9lbnRyeSAqZW50cnlfb2ZkbTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmMtMjU3LVx0ICAgIGVudHJ5X2Njay1cdTAwM2VmaXJfc3RlcF9sZXZlbCBcdTAwM2U9IGVudHJ5X29mZG0tXHUwMDNlZmlyX3N0ZXBfbGV2ZWwpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmM6MjU4Olx0XHRhdGg5a19od19hbmlfY29udHJvbChhaCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYy0yNTktXHRcdFx0XHQgICAgIEFUSDlLX0FOSV9GSVJTVEVQX0xFVkVMLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYy0yNjctXHRpZiAoYW5pU3RhdGUtXHUwMDNlbXJjQ0NLICE9IGVudHJ5X2Njay1cdTAwM2VtcmNfY2NrX29uKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jOjI2ODpcdFx0YXRoOWtfaHdfYW5pX2NvbnRyb2woYWgsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmMtMjY5LVx0XHRcdFx0ICAgICBBVEg5S19BTklfTVJDX0NDSyxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmMtMjcyLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jOjI3MzpzdGF0aWMgdm9pZCBhdGg5a19od19hbmlfY2NrX2Vycl90cmlnZ2VyKHN0cnVjdCBhdGhfaHcgKmFoKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jLTI3NC17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jLTI3Ny1cdGlmIChhbmlTdGF0ZS1cdTAwM2VjY2tOb2lzZUltbXVuaXR5TGV2ZWwgXHUwMDNjIEFUSDlLX0FOSV9DQ0tfTUFYX0xFVkVMKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jOjI3ODpcdFx0YXRoOWtfaHdfc2V0X2Nja19uaWwoYWgsIGFuaVN0YXRlLVx1MDAzZWNja05vaXNlSW1tdW5pdHlMZXZlbCAmIzQzOyAxLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jLTI3OS1cdFx0XHRcdCAgICAgZmFsc2UpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYy0yODUtICovXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmM6Mjg2OnN0YXRpYyB2b2lkIGF0aDlrX2h3X2FuaV9sb3dlcl9pbW11bml0eShzdHJ1Y3QgYXRoX2h3ICphaClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYy0yODcte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYy0yOTItXHQgICAgKGFuaVN0YXRlLVx1MDAzZW9mZG1zVHVybiB8fCBhbmlTdGF0ZS1cdTAwM2VjY2tOb2lzZUltbXVuaXR5TGV2ZWwgPT0gMCkpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYzoyOTM6XHRcdGF0aDlrX2h3X3NldF9vZmRtX25pbChhaCwgYW5pU3RhdGUtXHUwMDNlb2ZkbU5vaXNlSW1tdW5pdHlMZXZlbCAtIDEsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmMtMjk0LVx0XHRcdFx0ICAgICAgZmFsc2UpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYy0yOTktXHRpZiAoYW5pU3RhdGUtXHUwMDNlY2NrTm9pc2VJbW11bml0eUxldmVsIFx1MDAzZSAwKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jOjMwMDpcdFx0YXRoOWtfaHdfc2V0X2Nja19uaWwoYWgsIGFuaVN0YXRlLVx1MDAzZWNja05vaXNlSW1tdW5pdHlMZXZlbCAtIDEsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmMtMzAxLVx0XHRcdFx0ICAgICBmYWxzZSk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jLTMwOC0gKi9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYzozMDk6dm9pZCBhdGg5a19hbmlfcmVzZXQoc3RydWN0IGF0aF9odyAqYWgsIGJvb2wgaXNfc2Nhbm5pbmcpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmMtMzEwLXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYy0zMTEtXHRzdHJ1Y3QgYXI1NDE2QW5pU3RhdGUgKmFuaVN0YXRlID0gXHUwMDI2YWgtXHUwMDNlYW5pO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jOjMxMjpcdHN0cnVjdCBhdGg5a19jaGFubmVsICpjaGFuID0gYWgtXHUwMDNlY3VyY2hhbjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYzozMTM6XHRzdHJ1Y3QgYXRoX2NvbW1vbiAqY29tbW9uID0gYXRoOWtfaHdfY29tbW9uKGFoKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYy0zMTQtXHRpbnQgb2ZkbV9uaWwsIGNja19uaWw7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jLTM2Mi1cdH1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYzozNjM6XHRhdGg5a19od19zZXRfb2ZkbV9uaWwoYWgsIG9mZG1fbmlsLCBpc19zY2FubmluZyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmM6MzY0Olx0YXRoOWtfaHdfc2V0X2Nja19uaWwoYWgsIGNja19uaWwsIGlzX3NjYW5uaW5nKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYy0zNjUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmM6MzY2Olx0YXRoOWtfYW5pX3Jlc3RhcnQoYWgpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jLTM2Ny19XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmMtMzY4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jOjM2OTpzdGF0aWMgYm9vbCBhdGg5a19od19hbmlfcmVhZF9jb3VudGVycyhzdHJ1Y3QgYXRoX2h3ICphaClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYy0zNzAte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jOjM3MTpcdHN0cnVjdCBhdGhfY29tbW9uICpjb21tb24gPSBhdGg5a19od19jb21tb24oYWgpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jLTM3Mi1cdHN0cnVjdCBhcjU0MTZBbmlTdGF0ZSAqYW5pU3RhdGUgPSBcdTAwMjZhaC1cdTAwM2Vhbmk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jLTM4MC1cdFx0YWgtXHUwMDNlc3RhdHMuYXN0X2FuaV9sbmVnX29yX2x6ZXJvJiM0MzsmIzQzOztcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYzozODE6XHRcdGF0aDlrX2FuaV9yZXN0YXJ0KGFoKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYy0zODItXHRcdHJldHVybiBmYWxzZTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmMtMzg2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jOjM4NzpcdGF0aDlrX2h3X3VwZGF0ZV9taWJzdGF0cyhhaCwgXHUwMDI2YWgtXHUwMDNlYWhfbWliU3RhdHMpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jLTM4OC1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmMtNDAwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jOjQwMTp2b2lkIGF0aDlrX2h3X2FuaV9tb25pdG9yKHN0cnVjdCBhdGhfaHcgKmFoLCBzdHJ1Y3QgYXRoOWtfY2hhbm5lbCAqY2hhbilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYy00MDIte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jLTQwMy1cdHN0cnVjdCBhcjU0MTZBbmlTdGF0ZSAqYW5pU3RhdGUgPSBcdTAwMjZhaC1cdTAwM2Vhbmk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmM6NDA0Olx0c3RydWN0IGF0aF9jb21tb24gKmNvbW1vbiA9IGF0aDlrX2h3X2NvbW1vbihhaCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmMtNDA1LVx0dTMyIG9mZG1QaHlFcnJSYXRlLCBjY2tQaHlFcnJSYXRlO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jLTQwNi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYzo0MDc6XHRpZiAoIWF0aDlrX2h3X2FuaV9yZWFkX2NvdW50ZXJzKGFoKSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYy00MDgtXHRcdHJldHVybjtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmMtNDI0LVx0XHQgICAgb2ZkbVBoeUVyclJhdGUgXHUwMDNjIGFoLVx1MDAzZWNvbmZpZy5vZmRtX3RyaWdfbG93KSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmM6NDI1Olx0XHRcdGF0aDlrX2h3X2FuaV9sb3dlcl9pbW11bml0eShhaCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmMtNDI2LVx0XHRcdGFuaVN0YXRlLVx1MDAzZW9mZG1zVHVybiA9ICFhbmlTdGF0ZS1cdTAwM2VvZmRtc1R1cm47XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmMtNDI3LVx0XHR9IGVsc2UgaWYgKG9mZG1QaHlFcnJSYXRlIFx1MDAzZSBhaC1cdTAwM2Vjb25maWcub2ZkbV90cmlnX2hpZ2gpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYzo0Mjg6XHRcdFx0YXRoOWtfaHdfYW5pX29mZG1fZXJyX3RyaWdnZXIoYWgpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jLTQyOS1cdFx0XHRhbmlTdGF0ZS1cdTAwM2VvZmRtc1R1cm4gPSBmYWxzZTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYy00MzAtXHRcdH0gZWxzZSBpZiAoY2NrUGh5RXJyUmF0ZSBcdTAwM2UgYWgtXHUwMDNlY29uZmlnLmNja190cmlnX2hpZ2gpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYzo0MzE6XHRcdFx0YXRoOWtfaHdfYW5pX2Nja19lcnJfdHJpZ2dlcihhaCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmMtNDMyLVx0XHRcdGFuaVN0YXRlLVx1MDAzZW9mZG1zVHVybiA9IHRydWU7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jLTQzNS1cdFx0XHRcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYzo0MzY6XHRcdGF0aDlrX2FuaV9yZXN0YXJ0KGFoKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYy00MzctXHR9XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmMtNDM4LX1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYzo0Mzk6RVhQT1JUX1NZTUJPTChhdGg5a19od19hbmlfbW9uaXRvcik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmMtNDQwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jOjQ0MTp2b2lkIGF0aDlrX2VuYWJsZV9taWJfY291bnRlcnMoc3RydWN0IGF0aF9odyAqYWgpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmMtNDQyLXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYzo0NDM6XHRzdHJ1Y3QgYXRoX2NvbW1vbiAqY29tbW9uID0gYXRoOWtfaHdfY29tbW9uKGFoKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYy00NDQtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jLTQ0Ni1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYzo0NDc6XHRhdGg5a19od191cGRhdGVfbWlic3RhdHMoYWgsIFx1MDAyNmFoLVx1MDAzZWFoX21pYlN0YXRzKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYy00NDgtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jLTQ2Mi0vKiBGcmVlemUgdGhlIE1JQiBjb3VudGVycywgZ2V0IHRoZSBzdGF0cyBhbmQgdGhlbiBjbGVhciB0aGVtICovXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmM6NDYzOnZvaWQgYXRoOWtfaHdfZGlzYWJsZV9taWJfY291bnRlcnMoc3RydWN0IGF0aF9odyAqYWgpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmMtNDY0LXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYzo0NjU6XHRzdHJ1Y3QgYXRoX2NvbW1vbiAqY29tbW9uID0gYXRoOWtfaHdfY29tbW9uKGFoKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYy00NjYtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jLTQ2OS1cdFJFR19XUklURShhaCwgQVJfTUlCQywgQVJfTUlCQ19GTUMpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jOjQ3MDpcdGF0aDlrX2h3X3VwZGF0ZV9taWJzdGF0cyhhaCwgXHUwMDI2YWgtXHUwMDNlYWhfbWliU3RhdHMpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jLTQ3MS1cdFJFR19XUklURShhaCwgQVJfTUlCQywgQVJfTUlCQ19DTUMpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYy00NzQtfVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jOjQ3NTpFWFBPUlRfU1lNQk9MKGF0aDlrX2h3X2Rpc2FibGVfbWliX2NvdW50ZXJzKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYy00NzYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmM6NDc3OnZvaWQgYXRoOWtfaHdfYW5pX2luaXQoc3RydWN0IGF0aF9odyAqYWgpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmMtNDc4LXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYzo0Nzk6XHRzdHJ1Y3QgYXRoX2NvbW1vbiAqY29tbW9uID0gYXRoOWtfaHdfY29tbW9uKGFoKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYy00ODAtXHRzdHJ1Y3QgYXI1NDE2QW5pU3RhdGUgKmFuaSA9IFx1MDAyNmFoLVx1MDAzZWFuaTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmMtNTEwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jOjUxMTpcdGF0aDlrX2FuaV9yZXN0YXJ0KGFoKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYzo1MTI6XHRhdGg5a19lbmFibGVfbWliX2NvdW50ZXJzKGFoKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYy01MTMtfVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuaC01My1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuaDo1NDplbnVtIGF0aDlrX2FuaV9jbWQge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5oLTU1LVx0QVRIOUtfQU5JX09GRE1fV0VBS19TSUdOQUxfREVURUNUSU9OID0gMHgxLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuaC02MS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuaDo2MjpzdHJ1Y3QgYXRoOWtfbWliX3N0YXRzIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuaC02My1cdHUzMiBhY2tyY3ZfYmFkO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuaC03MC0vKiBJTkkgZGVmYXVsdCB2YWx1ZXMgZm9yIEFOSSByZWdpc3RlcnMgKi9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuaDo3MTpzdHJ1Y3QgYXRoOWtfYW5pX2RlZmF1bHQge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5oLTcyLVx0dTE2IG0xVGhyZXNoTG93O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuaD04OD1zdHJ1Y3QgYXI1NDE2QW5pU3RhdGUge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuaC05OS1cdHUzMiBjY2tQaHlFcnJDb3VudDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuaDoxMDA6XHRzdHJ1Y3QgYXRoOWtfYW5pX2RlZmF1bHQgaW5pRGVmO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5oLTEwMS19O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuaD0xMDM9c3RydWN0IGFyNTQxNlN0YXRzIHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmgtMTE2LVx0dTMyIGF2Z2Jyc3NpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5oOjExNzpcdHN0cnVjdCBhdGg5a19taWJfc3RhdHMgYXN0X21pYnN0YXRzO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5oLTExOC19O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuaC0xMjAtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmg6MTIxOnZvaWQgYXRoOWtfZW5hYmxlX21pYl9jb3VudGVycyhzdHJ1Y3QgYXRoX2h3ICphaCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmg6MTIyOnZvaWQgYXRoOWtfaHdfZGlzYWJsZV9taWJfY291bnRlcnMoc3RydWN0IGF0aF9odyAqYWgpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5oOjEyMzp2b2lkIGF0aDlrX2h3X2FuaV9pbml0KHN0cnVjdCBhdGhfaHcgKmFoKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuaC0xMjQtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FudGVubmEuYy0xNi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbnRlbm5hLmM6MTc6I2luY2x1ZGUgXCYjMzQ7YXRoOWsuaFwmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FudGVubmEuYy0xOC1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW50ZW5uYS5jPTcyMT12b2lkIGF0aF9hbnRfY29tYl9zY2FuKHN0cnVjdCBhdGhfc29mdGMgKnNjLCBzdHJ1Y3QgYXRoX3J4X3N0YXR1cyAqcnMpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FudGVubmEuYy03ODAtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW50ZW5uYS5jOjc4MTpcdGF0aDlrX2h3X2FudGRpdl9jb21iX2NvbmZfZ2V0KHNjLVx1MDAzZXNjX2FoLCBcdTAwMjZkaXZfYW50X2NvbmYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FudGVubmEuYy03ODItXHRjdXJyX2FsdF9zZXQgPSBkaXZfYW50X2NvbmYuYWx0X2xuYV9jb25mO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbnRlbm5hLmMtODM5LVx0YXRoX2FudF9kaXZfY29uZl9mYXN0X2RpdmJpYXMoXHUwMDI2ZGl2X2FudF9jb25mLCBhbnRjb21iLCBhbHRfcmF0aW8pO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FudGVubmEuYzo4NDA6XHRhdGg5a19od19hbnRkaXZfY29tYl9jb25mX3NldChzYy1cdTAwM2VzY19haCwgXHUwMDI2ZGl2X2FudF9jb25mKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbnRlbm5hLmM6ODQxOlx0YXRoOWtfZGVidWdfc3RhdF9hbnQoc2MsIFx1MDAyNmRpdl9hbnRfY29uZiwgbWFpbl9yc3NpX2F2ZywgYWx0X3Jzc2lfYXZnKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbnRlbm5hLmMtODQyLVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hcjUwMDhfcGh5LmM9MTExPXN0YXRpYyB2b2lkIGFyNTAwOF9od19waHlfbW9kaWZ5X3J4X2J1ZmZlcih1MzIgKnJmQnVmLCB1MzIgcmVnMzIsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FyNTAwOF9waHkuYy0xMTctXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYXI1MDA4X3BoeS5jOjExODpcdHRtcDMyID0gYXRoOWtfaHdfcmV2ZXJzZV9iaXRzKHJlZzMyLCBudW1CaXRzKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hcjUwMDhfcGh5LmMtMTE5LVx0YXJyYXlFbnRyeSA9IChmaXJzdEJpdCAtIDEpIC8gODtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYXI1MDA4X3BoeS5jPTE2ND1zdGF0aWMgdm9pZCBhcjUwMDhfaHdfZm9yY2VfYmlhcyhzdHJ1Y3QgYXRoX2h3ICphaCwgdTE2IHN5bnRoX2ZyZXEpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYXI1MDA4X3BoeS5jLTE2NS17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYXI1MDA4X3BoeS5jOjE2NjpcdHN0cnVjdCBhdGhfY29tbW9uICpjb21tb24gPSBhdGg5a19od19jb21tb24oYWgpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FyNTAwOF9waHkuYy0xNjctXHR1MzIgdG1wX3JlZztcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYXI1MDA4X3BoeS5jLTE4My1cdC8qIHByZS1yZXZlcnNlIHRoaXMgZmllbGQgKi9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hcjUwMDhfcGh5LmM6MTg0Olx0dG1wX3JlZyA9IGF0aDlrX2h3X3JldmVyc2VfYml0cyhuZXdfYmlhcywgMyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYXI1MDA4X3BoeS5jLTE4NS1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYXI1MDA4X3BoeS5jLTIwMi0gKi9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hcjUwMDhfcGh5LmM6MjAzOnN0YXRpYyBpbnQgYXI1MDA4X2h3X3NldF9jaGFubmVsKHN0cnVjdCBhdGhfaHcgKmFoLCBzdHJ1Y3QgYXRoOWtfY2hhbm5lbCAqY2hhbilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hcjUwMDhfcGh5LmMtMjA0LXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hcjUwMDhfcGh5LmM6MjA1Olx0c3RydWN0IGF0aF9jb21tb24gKmNvbW1vbiA9IGF0aDlrX2h3X2NvbW1vbihhaCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYXI1MDA4X3BoeS5jLTIwNi1cdHUzMiBjaGFubmVsU2VsID0gMDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYXI1MDA4X3BoeS5jLTIxMi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hcjUwMDhfcGh5LmM6MjEzOlx0YXRoOWtfaHdfZ2V0X2NoYW5uZWxfY2VudGVycyhhaCwgY2hhbiwgXHUwMDI2Y2VudGVycyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYXI1MDA4X3BoeS5jLTIxNC1cdGZyZXEgPSBjZW50ZXJzLnN5bnRoX2NlbnRlcjtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYXI1MDA4X3BoeS5jLTIzMC1cdFx0Y2hhbm5lbFNlbCA9IChjaGFubmVsU2VsIFx1MDAzY1x1MDAzYyAyKSBcdTAwMjYgMHhmZjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hcjUwMDhfcGh5LmM6MjMxOlx0XHRjaGFubmVsU2VsID0gYXRoOWtfaHdfcmV2ZXJzZV9iaXRzKGNoYW5uZWxTZWwsIDgpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FyNTAwOF9waHkuYy0yMzItXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FyNTAwOF9waHkuYy0yNDQtXHRcdGNoYW5uZWxTZWwgPVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FyNTAwOF9waHkuYzoyNDU6XHRcdCAgICBhdGg5a19od19yZXZlcnNlX2JpdHMoKChmcmVxIC0gNDgwMCkgLyAyMCBcdTAwM2NcdTAwM2MgMiksIDgpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FyNTAwOF9waHkuYzoyNDY6XHRcdGFNb2RlUmVmU2VsID0gYXRoOWtfaHdfcmV2ZXJzZV9iaXRzKDEsIDIpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FyNTAwOF9waHkuYy0yNDctXHR9IGVsc2UgaWYgKChmcmVxICUgMTApID09IDApIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hcjUwMDhfcGh5LmMtMjQ4LVx0XHRjaGFubmVsU2VsID1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hcjUwMDhfcGh5LmM6MjQ5Olx0XHQgICAgYXRoOWtfaHdfcmV2ZXJzZV9iaXRzKCgoZnJlcSAtIDQ4MDApIC8gMTAgXHUwMDNjXHUwMDNjIDEpLCA4KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hcjUwMDhfcGh5LmMtMjUwLVx0XHRpZiAoQVJfU1JFVl85MTAwKGFoKSB8fCBBUl9TUkVWXzkxNjBfMTBfT1JfTEFURVIoYWgpKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FyNTAwOF9waHkuYzoyNTE6XHRcdFx0YU1vZGVSZWZTZWwgPSBhdGg5a19od19yZXZlcnNlX2JpdHMoMiwgMik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYXI1MDA4X3BoeS5jLTI1Mi1cdFx0ZWxzZVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FyNTAwOF9waHkuYzoyNTM6XHRcdFx0YU1vZGVSZWZTZWwgPSBhdGg5a19od19yZXZlcnNlX2JpdHMoMSwgMik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYXI1MDA4X3BoeS5jLTI1NC1cdH0gZWxzZSBpZiAoKGZyZXEgJSA1KSA9PSAwKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYXI1MDA4X3BoeS5jOjI1NTpcdFx0Y2hhbm5lbFNlbCA9IGF0aDlrX2h3X3JldmVyc2VfYml0cygoZnJlcSAtIDQ4MDApIC8gNSwgOCk7XG5cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xOS8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMDYgMDg6MDk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjctZmxhc2g8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzg4OTQKCQkJCQkJCW91dHB1dDogNDUKCQkJCQkJCXRob3VnaHRzOiA1MgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipEaXZpbmcgaW50byB0aGUgQXRoZXJvcyA5ayBEcml2ZXImIzM5O3MgVHJhbnNtaXNzaW9uIENvZGUqKgoKT2theSwgdGltZSB0byBnZXQgbXkgaGFuZHMgZGlydHkuIEkgbmVlZCB0byB1bmRlcnN0YW5kIGhvdyB0aGUgQXRoZXJvcyA5ayBkcml2ZXIgaGFuZGxlcyBwYWNrZXQgdHJhbnNtaXNzaW9uLCBzbyBJJiMzOTtsbCBzdGFydCBieSBjaGVja2luZyBvdXQgYGF0aDlrL3htaXQuY2AuIFNwZWNpZmljYWxseSwgSSYjMzk7bSBoZWFkaW5nIHN0cmFpZ2h0IHRvIHRoZSBoZWFydCBvZiB0aGUgbWF0dGVyIOKAkyBgZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuY2AsIGFuZCBJJiMzOTttIGhvbWluZyBpbiBvbiB0aGUgY29kZSBhcm91bmQgbGluZSAxODg0LiBUaGF0JiMzOTtzIHVzdWFsbHkgd2hlcmUgdGhlIGNvcmUgdHJhbnNtaXNzaW9uIGxvZ2ljIHJlc2lkZXMuIEkmIzM5O20gZ29pbmcgdG8gY2FyZWZ1bGx5IHJlYWQgdGhpcyBzZWN0aW9uIHRvIGdldCBhIGNsZWFyIHBpY3R1cmUgb2Ygd2hhdCB0aGUgZHJpdmVyIGlzIGRvaW5nIHdoZW4gaXQmIzM5O3MgYWN0dWFsbHkgc2VuZGluZyBkYXRhIG92ZXIgdGhlIGFpci4gSSBuZWVkIHRvIHJlZnJlc2ggbXkgbWVtb3J5IG9uIHRoZSBkYXRhIHN0cnVjdHVyZXMgaXQmIzM5O3MgdXNpbmcsIHRoZSBwYWNrZXQgcXVldWUgbWFuYWdlbWVudCwgdGhlIGhhcmR3YXJlIGludGVyYWN0aW9uc+KApiBldmVyeXRoaW5nLiBMZXQmIzM5O3Mgc2VlIHdoYXQgZ2VtcyB0aGlzIGNvZGUgaG9sZHMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzA2IDA4OjA5PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+cmVhZC1maWxlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtGaWxlJiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYyYjMzQ7LAogICYjMzQ7Rmlyc3RMaW5lJiMzNDs6IDE4NzAsCiAgJiMzNDtMaW5lQ291bnQmIzM0OzogNDUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0NvbnRlbnRzJiMzNDs6ICYjMzQ7MTg3MDpcdH1cbjE4NzE6XHRcbjE4NzI6XHRzdGF0aWMgdm9pZCBhdGhfZHJhaW5fdHhxX2xpc3Qoc3RydWN0IGF0aF9zb2Z0YyAqc2MsIHN0cnVjdCBhdGhfdHhxICp0eHEsXG4xODczOlx0XHRcdFx0ICAgICAgIHN0cnVjdCBsaXN0X2hlYWQgKmxpc3QpXG4xODc0Olx0e1xuMTg3NTpcdFx0c3RydWN0IGF0aF9idWYgKmJmLCAqbGFzdGJmO1xuMTg3NjpcdFx0c3RydWN0IGxpc3RfaGVhZCBiZl9oZWFkO1xuMTg3NzpcdFx0c3RydWN0IGF0aF90eF9zdGF0dXMgdHM7XG4xODc4Olx0XG4xODc5Olx0XHRtZW1zZXQoXHUwMDI2dHMsIDAsIHNpemVvZih0cykpO1xuMTg4MDpcdFx0dHMudHNfc3RhdHVzID0gQVRIOUtfVFhfRkxVU0g7XG4xODgxOlx0XHRJTklUX0xJU1RfSEVBRChcdTAwMjZiZl9oZWFkKTtcbjE4ODI6XHRcbjE4ODM6XHRcdHdoaWxlICghbGlzdF9lbXB0eShsaXN0KSkge1xuMTg4NDpcdFx0XHRiZiA9IGxpc3RfZmlyc3RfZW50cnkobGlzdCwgc3RydWN0IGF0aF9idWYsIGxpc3QpO1xuMTg4NTpcdFxuMTg4NjpcdFx0XHRpZiAoYmYtXHUwMDNlYmZfc3RhdGUuc3RhbGUpIHtcbjE4ODc6XHRcdFx0XHRzdHJ1Y3Qgc2tfYnVmZiAqc2tiID0gYmYtXHUwMDNlYmZfbXBkdTtcbjE4ODg6XHRcbjE4ODk6XHRcdFx0XHRsaXN0X2RlbChcdTAwMjZiZi1cdTAwM2VsaXN0KTtcbjE4OTA6XHRcdFx0XHRpZiAoYmYtXHUwMDNlYmZfYnVmX2FkZHIpIHtcbjE4OTE6XHRcdFx0XHRcdGRtYV91bm1hcF9zaW5nbGUoc2MtXHUwMDNlZGV2LCBiZi1cdTAwM2ViZl9idWZfYWRkcixcbjE4OTI6XHRcdFx0XHRcdFx0XHQgc2tiID8gc2tiLVx1MDAzZWxlbiA6IDAsXG4xODkzOlx0XHRcdFx0XHRcdFx0IERNQV9UT19ERVZJQ0UpO1xuMTg5NDpcdFx0XHRcdFx0YmYtXHUwMDNlYmZfYnVmX2FkZHIgPSAwO1xuMTg5NTpcdFx0XHRcdH1cbjE4OTY6XHRcdFx0XHRiZi1cdTAwM2ViZl9tcGR1ID0gTlVMTDtcbjE4OTc6XHRcdFx0XHRkZXZfa2ZyZWVfc2tiX2FueShza2IpO1xuMTg5ODpcdFx0XHRcdGF0aF90eF9yZXR1cm5fYnVmZmVyKHNjLCBiZik7XG4xODk5Olx0XHRcdFx0Y29udGludWU7XG4xOTAwOlx0XHRcdH1cbjE5MDE6XHRcbjE5MDI6XHRcdFx0bGFzdGJmID0gYmYtXHUwMDNlYmZfbGFzdGJmO1xuMTkwMzpcdFx0XHRsaXN0X2N1dF9wb3NpdGlvbihcdTAwMjZiZl9oZWFkLCBsaXN0LCBcdTAwMjZsYXN0YmYtXHUwMDNlbGlzdCk7XG4xOTA0Olx0XHRcdGF0aF90eF9wcm9jZXNzX2J1ZmZlcihzYywgdHhxLCBcdTAwMjZ0cywgYmYsIFx1MDAyNmJmX2hlYWQpO1xuMTkwNTpcdFx0fVxuMTkwNjpcdH1cbjE5MDc6XHRcbjE5MDg6XHQvKlxuMTkwOTpcdCAqIERyYWluIGEgZ2l2ZW4gVFggcXVldWUgKGNvdWxkIGJlIEJlYWNvbiBvciBEYXRhKVxuMTkxMDpcdCAqXG4xOTExOlx0ICogVGhpcyBhc3N1bWVzIG91dHB1dCBoYXMgYmVlbiBzdG9wcGVkIGFuZFxuMTkxMjpcdCAqIHdlIGRvIG5vdCBuZWVkIHRvIGJsb2NrIGF0aF90eF90YXNrbGV0LlxuMTkxMzpcdCAqL1xuMTkxNDpcdHZvaWQgYXRoX2RyYWludHhxKHN0cnVjdCBhdGhfc29mdGMgKnNjLCBzdHJ1Y3QgYXRoX3R4cSAqdHhxKVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIxLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8wNiAwODowOTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuNy1mbGFzaDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzOTg4MgoJCQkJCQkJb3V0cHV0OiAyOQoJCQkJCQkJdGhvdWdodHM6IDgxCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5IZXJlJiMzOTtzIG15IHRob3VnaHQgcHJvY2VzcywgYXMgaWYgSSB3ZXJlIGNvbnNpZGVyaW5nIHRoaXMgaXNzdWU6CgoqKkRlbHZpbmcgaW50byB0aGUgYGF0aDlrYCBEcml2ZXIqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IGBhdGg5a2AsIHRoZSBkcml2ZXIgdGhhdCBoYW5kbGVzIEF0aGVyb3MgUENJL1BDSWUgYW5kIEFIQiB3aXJlbGVzcyBjaGlwcywgcGFydGljdWxhcmx5IHRob3NlIEFSNzF4eC9BUjkxMzAgc2VyaWVzIGRldmljZXMuIE5vdywgSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhpcyBkcml2ZXImIzM5O3Mgc2NvcGUgaW4gcmVsYXRpb24gdG8gdGhlIHN5c3RlbSBhcyBhIHdob2xlLiBJJiMzOTttIHdvbmRlcmluZzogQXJlIHRoZXJlIGFueSBvdGhlciBidXMgdHlwZXMgaXQgc3VwcG9ydHMgdGhhdCBJIG1pZ2h0IGJlIG92ZXJsb29raW5nPyBBbmQganVzdCBhcyBpbXBvcnRhbnRseSwgYXJlIHRoZXJlIGFueSBzaW11bGF0aW9uIGZyYW1ld29ya3MgdGhhdCBhcmUgY29tbW9ubHkgdXNlZCB3aXRoIHRoaXMgZHJpdmVyIHRoYXQgY291bGQgYmUgcmVsZXZhbnQgdG8gdGhlIGN1cnJlbnQgcHJvYmxlbT8gSSBuZWVkIHRvIGJ1aWxkIGEgY29tcHJlaGVuc2l2ZSBwaWN0dXJlLiBUaGUgbmV4dCBsb2dpY2FsIHN0ZXAgaXMgdG8gZGl2ZSByaWdodCBpbnRvIHRoZSBjb2RlIGl0c2VsZi4gSSYjMzk7bSBnb2luZyB0byBwZXJmb3JtIGEgZmlsZSBzZWFyY2ggd2l0aGluIHRoZSBkcml2ZXImIzM5O3MgY29yZSBkaXJlY3RvcnkgKGBkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYCkgdG8gZ2V0IGEgZnVsbCB2aWV3IG9mIHRoZSBhdmFpbGFibGUgY29tcG9uZW50cyBhbmQgYXNzZXNzIGl0cyBhcmNoaXRlY3R1cmUgaW4gbW9yZSBkZXRhaWwuIFRoYXQgc2hvdWxkIGdpdmUgbWUgYSBnb29kIGhhbmRsZSBvbiBpdHMgZnVuY3Rpb25hbGl0eS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yMi8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMDYgMDg6MDk8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5jb2Rlc2VhcmNoLWRpci1pbmRleDwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RGlyJiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGVzJiMzNDs6IFsKICAgICYjMzQ7YWhiLmMmIzM0OywKICAgICYjMzQ7YW5pLmMmIzM0OywKICAgICYjMzQ7YW5pLmgmIzM0OywKICAgICYjMzQ7YW50ZW5uYS5jJiMzNDssCiAgICAmIzM0O2FyNTAwOF9pbml0dmFscy5oJiMzNDssCiAgICAmIzM0O2FyNTAwOF9waHkuYyYjMzQ7LAogICAgJiMzNDthcjkwMDFfaW5pdHZhbHMuaCYjMzQ7LAogICAgJiMzNDthcjkwMDJfY2FsaWIuYyYjMzQ7LAogICAgJiMzNDthcjkwMDJfaHcuYyYjMzQ7LAogICAgJiMzNDthcjkwMDJfaW5pdHZhbHMuaCYjMzQ7LAogICAgJiMzNDthcjkwMDJfbWFjLmMmIzM0OywKICAgICYjMzQ7YXI5MDAyX3BoeS5jJiMzNDssCiAgICAmIzM0O2FyOTAwMl9waHkuaCYjMzQ7LAogICAgJiMzNDthcjkwMDNfMnAyX2luaXR2YWxzLmgmIzM0OywKICAgICYjMzQ7YXI5MDAzX2FpYy5jJiMzNDssCiAgICAmIzM0O2FyOTAwM19haWMuaCYjMzQ7LAogICAgJiMzNDthcjkwMDNfYnVmZmFsb19pbml0dmFscy5oJiMzNDssCiAgICAmIzM0O2FyOTAwM19jYWxpYi5jJiMzNDssCiAgICAmIzM0O2FyOTAwM19lZXByb20uYyYjMzQ7LAogICAgJiMzNDthcjkwMDNfZWVwcm9tLmgmIzM0OywKICAgICYjMzQ7YXI5MDAzX2h3LmMmIzM0OywKICAgICYjMzQ7YXI5MDAzX21hYy5jJiMzNDssCiAgICAmIzM0O2FyOTAwM19tYWMuaCYjMzQ7LAogICAgJiMzNDthcjkwMDNfbWNpLmMmIzM0OywKICAgICYjMzQ7YXI5MDAzX21jaS5oJiMzNDssCiAgICAmIzM0O2FyOTAwM19wYXByZC5jJiMzNDssCiAgICAmIzM0O2FyOTAwM19waHkuYyYjMzQ7LAogICAgJiMzNDthcjkwMDNfcGh5LmgmIzM0OywKICAgICYjMzQ7YXI5MDAzX3J0dC5jJiMzNDssCiAgICAmIzM0O2FyOTAwM19ydHQuaCYjMzQ7LAogICAgJiMzNDthcjkwMDNfd293LmMmIzM0OywKICAgICYjMzQ7YXI5MzMwXzFwMV9pbml0dmFscy5oJiMzNDssCiAgICAmIzM0O2FyOTMzMF8xcDJfaW5pdHZhbHMuaCYjMzQ7LAogICAgJiMzNDthcjkzNDBfaW5pdHZhbHMuaCYjMzQ7LAogICAgJiMzNDthcjk0NjJfMnAwX2luaXR2YWxzLmgmIzM0OywKICAgICYjMzQ7YXI5NDYyXzJwMV9pbml0dmFscy5oJiMzNDssCiAgICAmIzM0O2FyOTQ4NV9pbml0dmFscy5oJiMzNDssCiAgICAmIzM0O2FyOTUzeF9pbml0dmFscy5oJiMzNDssCiAgICAmIzM0O2FyOTU1eF8xcDBfaW5pdHZhbHMuaCYjMzQ7LAogICAgJiMzNDthcjk1NjVfMXAwX2luaXR2YWxzLmgmIzM0OywKICAgICYjMzQ7YXI5NTY1XzFwMV9pbml0dmFscy5oJiMzNDssCiAgICAmIzM0O2FyOTU2eF9pbml0dmFscy5oJiMzNDssCiAgICAmIzM0O2FyOTU4MF8xcDBfaW5pdHZhbHMuaCYjMzQ7LAogICAgJiMzNDthdGg5ay5oJiMzNDssCiAgICAmIzM0O2F0aDlrX3BjaV9vd2xfbG9hZGVyLmMmIzM0OywKICAgICYjMzQ7YmVhY29uLmMmIzM0OywKICAgICYjMzQ7YnRjb2V4LmMmIzM0OywKICAgICYjMzQ7YnRjb2V4LmgmIzM0OywKICAgICYjMzQ7Y2FsaWIuYyYjMzQ7LAogICAgJiMzNDtjYWxpYi5oJiMzNDssCiAgICAmIzM0O2NoYW5uZWwuYyYjMzQ7LAogICAgJiMzNDtjb21tb24tYmVhY29uLmMmIzM0OywKICAgICYjMzQ7Y29tbW9uLWJlYWNvbi5oJiMzNDssCiAgICAmIzM0O2NvbW1vbi1kZWJ1Zy5jJiMzNDssCiAgICAmIzM0O2NvbW1vbi1kZWJ1Zy5oJiMzNDssCiAgICAmIzM0O2NvbW1vbi1pbml0LmMmIzM0OywKICAgICYjMzQ7Y29tbW9uLWluaXQuaCYjMzQ7LAogICAgJiMzNDtjb21tb24tc3BlY3RyYWwuYyYjMzQ7LAogICAgJiMzNDtjb21tb24tc3BlY3RyYWwuaCYjMzQ7LAogICAgJiMzNDtjb21tb24uYyYjMzQ7LAogICAgJiMzNDtjb21tb24uaCYjMzQ7LAogICAgJiMzNDtkZWJ1Zy5jJiMzNDssCiAgICAmIzM0O2RlYnVnLmgmIzM0OywKICAgICYjMzQ7ZGVidWdfc3RhLmMmIzM0OywKICAgICYjMzQ7ZGZzLmMmIzM0OywKICAgICYjMzQ7ZGZzLmgmIzM0OywKICAgICYjMzQ7ZGZzX2RlYnVnLmMmIzM0OywKICAgICYjMzQ7ZGZzX2RlYnVnLmgmIzM0OywKICAgICYjMzQ7ZHluYWNrLmMmIzM0OywKICAgICYjMzQ7ZHluYWNrLmgmIzM0OywKICAgICYjMzQ7ZWVwcm9tLmMmIzM0OywKICAgICYjMzQ7ZWVwcm9tLmgmIzM0OywKICAgICYjMzQ7ZWVwcm9tXzRrLmMmIzM0OywKICAgICYjMzQ7ZWVwcm9tXzkyODcuYyYjMzQ7LAogICAgJiMzNDtlZXByb21fZGVmLmMmIzM0OywKICAgICYjMzQ7Z3Bpby5jJiMzNDssCiAgICAmIzM0O2hpZl91c2IuYyYjMzQ7LAogICAgJiMzNDtoaWZfdXNiLmgmIzM0OywKICAgICYjMzQ7aHRjLmgmIzM0OywKICAgICYjMzQ7aHRjX2Rydl9iZWFjb24uYyYjMzQ7LAogICAgJiMzNDtodGNfZHJ2X2RlYnVnLmMmIzM0OywKICAgICYjMzQ7aHRjX2Rydl9ncGlvLmMmIzM0OywKICAgICYjMzQ7aHRjX2Rydl9pbml0LmMmIzM0OywKICAgICYjMzQ7aHRjX2Rydl9tYWluLmMmIzM0OywKICAgICYjMzQ7aHRjX2Rydl90eHJ4LmMmIzM0OywKICAgICYjMzQ7aHRjX2hzdC5jJiMzNDssCiAgICAmIzM0O2h0Y19oc3QuaCYjMzQ7LAogICAgJiMzNDtody1vcHMuaCYjMzQ7LAogICAgJiMzNDtody5jJiMzNDssCiAgICAmIzM0O2h3LmgmIzM0OywKICAgICYjMzQ7aW5pdC5jJiMzNDssCiAgICAmIzM0O2xpbmsuYyYjMzQ7LAogICAgJiMzNDttYWMuYyYjMzQ7LAogICAgJiMzNDttYWMuaCYjMzQ7LAogICAgJiMzNDttYWluLmMmIzM0OywKICAgICYjMzQ7bWNpLmMmIzM0OywKICAgICYjMzQ7bWNpLmgmIzM0OywKICAgICYjMzQ7cGNpLmMmIzM0OywKICAgICYjMzQ7cGh5LmgmIzM0OywKICAgICYjMzQ7cmVjdi5jJiMzNDssCiAgICAmIzM0O3JlZy5oJiMzNDssCiAgICAmIzM0O3JlZ19haWMuaCYjMzQ7LAogICAgJiMzNDtyZWdfbWNpLmgmIzM0OywKICAgICYjMzQ7cmVnX3dvdy5oJiMzNDssCiAgICAmIzM0O3JuZy5jJiMzNDssCiAgICAmIzM0O3R4OTkuYyYjMzQ7LAogICAgJiMzNDt3bWkuYyYjMzQ7LAogICAgJiMzNDt3bWkuaCYjMzQ7LAogICAgJiMzNDt3b3cuYyYjMzQ7LAogICAgJiMzNDt4bWl0LmMmIzM0OwogIF0sCiAgJiMzNDtTdWJkaXJzJiMzNDs6IG51bGwKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIzLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8wNiAwODowOTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuNy1mbGFzaDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA0MTI5OQoJCQkJCQkJb3V0cHV0OiAzOAoJCQkJCQkJdGhvdWdodHM6IDkyCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkludmVzdGlnYXRpbmcgdGhlIEhUQyBEcml2ZXIgZm9yIFBvdGVudGlhbCBSZXNvdXJjZSBNYW5hZ2VtZW50IElzc3VlcyoqCgpPa2F5LCBzbyBJIG5lZWQgdG8gZGlnIGludG8gdGhlIEhUQyBkcml2ZXIsIHNwZWNpZmljYWxseSB0aGUgYGh0Y19gIGZpbGVzLCBhbmQgdGhlIGB4bWl0LmNgIGZpbGUgdG8gdW5kZXJzdGFuZCBob3cgdHJhbnNtaXQgcXVldWVzIGFyZSBtYW5hZ2VkIHdpdGhpbiB0aGUgYGF0aDlrX2h0Y2AgY29udGV4dC4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRvIHNlZSBpZiBmdW5jdGlvbnMgbGlrZSBgeG1pdC5jYCBvciB0aGUgZHJlYWRlZCBgYXRoX2RyYWluX3R4cV9saXN0YCBhcmUgZXZlbiBiZWluZyAqdXNlZCogYnkgdGhpcyBwYXJ0IG9mIHRoZSBkcml2ZXIuIElmIHRoZXkgYXJlLCBpdCYjMzk7bGwgZ2l2ZSBtZSBhIGNyaXRpY2FsIGNsdWUgYWJvdXQgaG93IHRoZSBzeXN0ZW0gaGFuZGxlcyBidWZmZXIgcmV0dXJucyBhbmQgcXVldWUgZHJhaW5pbmcuIEkgc2hvdWxkIGFsc28gYnJvYWRlbiB0aGUgc2VhcmNoIHRvIGluY2x1ZGUgb3RoZXIgcG9zc2libHkgcmVsYXRlZCBmdW5jdGlvbnMgaW4gYHhtaXQuY2AsIHNwZWNpZmljYWxseSBmdW5jdGlvbnMgbGlrZSBgYXRoX3R4X3JldHVybl9idWZmZXJgLCBzaW5jZSBpdCYjMzk7cyB0aGUgY29yZSBvZiB0cmFuc21pdC4gSSB3YW50IHRvIGJ1aWxkIGEgY29tcGxldGUgbWFwIG9mIHRoZSBrZXkgZnVuY3Rpb25zIHRoYXQgY291bGQgYmUgYWZmZWN0aW5nIHJlc291cmNlIGFsbG9jYXRpb24sIHRvIGlzb2xhdGUgdGhlIGlzc3VlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjI0LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8wNiAwODowOTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDthdGhfdHhfcmV0dXJuX2J1ZmZlciYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ayYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jPTQwNz1zdGF0aWMgc3RydWN0IGF0aF9idWYgKmF0aF90eF9nZXRfYnVmZmVyKHN0cnVjdCBhdGhfc29mdGMgKnNjKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMtNDI1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYzo0MjY6c3RhdGljIHZvaWQgYXRoX3R4X3JldHVybl9idWZmZXIoc3RydWN0IGF0aF9zb2Z0YyAqc2MsIHN0cnVjdCBhdGhfYnVmICpiZilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMtNDI3LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jPTE4NzI9c3RhdGljIHZvaWQgYXRoX2RyYWluX3R4cV9saXN0KHN0cnVjdCBhdGhfc29mdGMgKnNjLCBzdHJ1Y3QgYXRoX3R4cSAqdHhxLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMtMTg5Ny1cdFx0XHRkZXZfa2ZyZWVfc2tiX2FueShza2IpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYzoxODk4Olx0XHRcdGF0aF90eF9yZXR1cm5fYnVmZmVyKHNjLCBiZik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTE4OTktXHRcdFx0Y29udGludWU7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYz0yMjIwPXN0YXRpYyBzdHJ1Y3QgYXRoX2J1ZiAqYXRoX3R4X3NldHVwX2J1ZmZlcihzdHJ1Y3QgYXRoX3NvZnRjICpzYyxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTIyNjItXHRcdFx0XCYjMzQ7ZG1hX21hcHBpbmdfZXJyb3IoKSBvbiBUWFxcblwmIzM0Oyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jOjIyNjM6XHRcdGF0aF90eF9yZXR1cm5fYnVmZmVyKHNjLCBiZik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTIyNjQtXHRcdHJldHVybiBOVUxMO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmM9MjYyOT1zdGF0aWMgdm9pZCBhdGhfdHhfcHJvY2Vzc3Eoc3RydWN0IGF0aF9zb2Z0YyAqc2MsIHN0cnVjdCBhdGhfdHhxICp0eHEpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYy0yNjk1LVx0XHRcdGxpc3RfZGVsKFx1MDAyNmJmX2hlbGQtXHUwMDNlbGlzdCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jOjI2OTY6XHRcdFx0YXRoX3R4X3JldHVybl9idWZmZXIoc2MsIGJmX2hlbGQpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYy0yNjk3LVx0XHR9XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYz0yNzE4PXZvaWQgYXRoX3R4X2VkbWFfdGFza2xldChzdHJ1Y3QgYXRoX3NvZnRjICpzYylcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTI3NzUtXHRcdFx0bGlzdF9kZWwoXHUwMDI2YmYtXHUwMDNlbGlzdCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jOjI3NzY6XHRcdFx0YXRoX3R4X3JldHVybl9idWZmZXIoc2MsIGJmKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMtMjc3Ny1cdFx0XHRiZiA9IGxpc3RfZmlyc3RfZW50cnkoZmlmb19saXN0LCBzdHJ1Y3QgYXRoX2J1ZiwgbGlzdCk7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzA2IDA4OjA5PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy43LWZsYXNoPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDQyMzc4CgkJCQkJCQlvdXRwdXQ6IDY1CgkJCQkJCQl0aG91Z2h0czogNzQ1CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgUmVhY2hhYmlsaXR5IG9mIGB4bWl0LmNgIGluIHRoZSBgYXRoOWtgIE1vZHVsZSoqCgpPa2F5LCBzbyBJIG5lZWQgdG8gZmlndXJlIG91dCBpZiB0aGlzIGB4bWl0LmNgIGZpbGUgaXMgYWN0dWFsbHkgcmVhY2hhYmxlIGZvciBmdXp6aW5nLiBGaXJzdCwgSSYjMzk7bGwgY2hlY2sgdGhlIGBNYWtlZmlsZWAgdG8gc2VlIGhvdyBpdCYjMzk7cyBidWlsdC4gQWxyaWdodCwgaXQgbG9va3MgbGlrZSBgeG1pdC5jYCBpcyBjb21waWxlZCBkaXJlY3RseSBpbnRvIHRoZSBgYXRoOWtgIG1vZHVsZSwgYWxvbmcgd2l0aCBhIGJ1bmNoIG9mIG90aGVyIGNvcmUgZmlsZXMuIEdvb2QsIHRoYXQmIzM5O3MgYSBzdGFydGluZyBwb2ludC4KCk5vdywgdGhlIGBhdGg5a2AgbW9kdWxlIGl0c2VsZi4uLiBJJiMzOTttIHByZXR0eSBzdXJlIHRoYXQmIzM5O3Mgb25seSBsb2FkZWQgd2hlbiBpdCYjMzk7cyBib3VuZCB0byBQQ0kgb3IgQUhCIGhhcmR3YXJlLiBMZXQmIzM5O3MgY29uZmlybSB0aGF0LiBSaWdodCwgYHBjaS5jYCB1c2VzIGEgUENJIGRldmljZSB0YWJsZSAoYGF0aF9wY2lfaWRfdGFibGVgKSwgYW5kIGBhaGIuY2AgdXNlcyBhbiAmIzM0O29mJiMzNDsgbWF0Y2ggdGFibGUgZm9yIHRoZSBBSEIgcGxhdGZvcm0gZGV2aWNlLiAgTm8gc3VycHJpc2VzIHRoZXJlLgoKVGhlIHF1ZXN0aW9uIGlzLCBjYW4gSSBnZXQgdG8gYGF0aDlrYCBpbiBhIHN0YW5kYXJkIFFFTVUgZW52aXJvbm1lbnQ/ICBJIGtub3cgZnJvbSBleHBlcmllbmNlIHRoYXQgc3RhbmRhcmQgUUVNVSBkb2VzbiYjMzk7dCBlbXVsYXRlIEF0aGVyb3MgUENJIGRldmljZXMsIHRoZSBBUjkyODAsIG9yIHRoZSBsaWtlLiBTbywgZGlyZWN0bHkgZW11bGF0aW5nIHRoZSBoYXJkd2FyZSBpc24mIzM5O3QgYW4gb3B0aW9uLgoKVGltZSB0byByZXZpZXcgdGhlIGd1aWRlbGluZXMuICBTZWN0aW9uIDIsIHRoZSAmIzM0O25lZ2F0aXZlIGNyaXRlcmlhJiMzNDsgZm9yIGZ1enppbmcsIG1lbnRpb25zICYjMzQ7U3RydWN0dXJhbGx5IHVucmVhY2hhYmxlIGhhcmR3YXJlLiYjMzQ7IEl0IHNwZWNpZmljYWxseSBjYWxscyBvdXQgdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoZXMgYW5kIGRyaXZlcnMgdGhhdCBuZWVkIHJlYWwgaGFyZHdhcmUsIHdoaWNoIGFyZW4mIzM5O3QgZW11bGF0ZWQuICpUaGF0KiBsb29rcyByZWxldmFudC4gVmlydHVhbCBidXNlcyBhcmUsIG9uIHRoZSBvdGhlciBoYW5kLCAqcG9zaXRpdmUqIGNyaXRlcmlhLgoKV2FpdCBhIHNlY29uZC4uLiBjb3VsZCBgYXRoOWtgIHNvbWVob3cgYmUgcmVhY2hhYmxlIHRocm91Z2ggVVNCPyBJIHNlZW0gdG8gcmVtZW1iZXIgQXRoZXJvcyBoYXMgVVNCIGRyaXZlcnMuIE9rYXksIGxldCYjMzk7cyBsb29rIGF0IHRoYXQgYW5nbGUuIEFoYSEgVGhlcmUmIzM5O3MgYW4gYGF0aDlrX2h0Y2AgZHJpdmVyIGZvciBVU0IuIEJ1dCB0aGF0JiMzOTtzIGEgKkhvc3QgVGFyZ2V0IENvbW11bmljYXRpb24qIGZpcm13YXJlIG92ZXIgVVNCIHNldHVwLiBIbW0sIEkga25vdyB0aGF0IG9uZTsgSSBoYXZlIGEgbG90IG9mIGV4cGVyaWVuY2Ugd2l0aCB0aGF0LiBJdCYjMzk7cyBnb3QgaXRzIG93biBmaWxlcyBsaWtlIGBodGNfZHJ2X3R4cnguY2AgYW5kIGBodGNfZHJ2X21haW4uY2AuIEFuZCBiYXNlZCBvbiB0aGUgbmFtZSBhbG9uZSwgaXQgZG9lc24mIzM5O3Qgc291bmQgbGlrZSBpdCBldmVuICpjb21waWxlcyogYHhtaXQuY2AsIG9yIGNhbGxzIGFueXRoaW5nIGluIGB4bWl0LmNgLgoKVG8gYmUgYWJzb2x1dGVseSBzdXJlLCBJJiMzOTtsbCBzZWFyY2ggZm9yIGNyb3NzLXJlZmVyZW5jZXMgZnJvbSBgYXRoOWtfaHRjYCBpbnRvIGB4bWl0LmNgLiBUaW1lIHRvIGdyZXAgYHhtaXQuY2AgZm9yIGFueSBub24tc3RhdGljIGZ1bmN0aW9uIGRlZmluaXRpb25zIGFuZCBzZWUgaWYgYW55dGhpbmcgY2FsbHMgdGhlbS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yNi8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMDYgMDg6MDk8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7XlthLXpBLVpfXS4qXFxiKGF0aF98YXRoOWtfKVthLXpBLVowLTlfXSYjNDM7XFwoJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jPTQ0PXN0YXRpYyB1MTYgYml0c19wZXJfc3ltYm9sW11bMl0gPSB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYy01NS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmM6NTY6c3RhdGljIHZvaWQgYXRoX3R4X3NlbmRfbm9ybWFsKHN0cnVjdCBhdGhfc29mdGMgKnNjLCBzdHJ1Y3QgYXRoX3R4cSAqdHhxLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYy01Ny1cdFx0XHQgICAgICAgc3RydWN0IGF0aF9hdHhfdGlkICp0aWQsIHN0cnVjdCBza19idWZmICpza2IpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYzo1ODpzdGF0aWMgdm9pZCBhdGhfdHhfY29tcGxldGUoc3RydWN0IGF0aF9zb2Z0YyAqc2MsIHN0cnVjdCBza19idWZmICpza2IsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTU5LVx0XHRcdCAgICBpbnQgdHhfZmxhZ3MsIHN0cnVjdCBhdGhfdHhxICp0eHEsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTYwLVx0XHRcdCAgICBzdHJ1Y3QgaWVlZTgwMjExX3N0YSAqc3RhKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmM6NjE6c3RhdGljIHZvaWQgYXRoX3R4X2NvbXBsZXRlX2J1ZihzdHJ1Y3QgYXRoX3NvZnRjICpzYywgc3RydWN0IGF0aF9idWYgKmJmLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYy02Mi1cdFx0XHRcdHN0cnVjdCBhdGhfdHhxICp0eHEsIHN0cnVjdCBsaXN0X2hlYWQgKmJmX3EsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYy02NC1cdFx0XHRcdHN0cnVjdCBhdGhfdHhfc3RhdHVzICp0cywgaW50IHR4b2spO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYzo2NTpzdGF0aWMgdm9pZCBhdGhfdHhfdHhxYWRkYnVmKHN0cnVjdCBhdGhfc29mdGMgKnNjLCBzdHJ1Y3QgYXRoX3R4cSAqdHhxLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYy02Ni1cdFx0XHQgICAgIHN0cnVjdCBsaXN0X2hlYWQgKmhlYWQsIGJvb2wgaW50ZXJuYWwpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYzo2NzpzdGF0aWMgdm9pZCBhdGhfdHhfcmNfc3RhdHVzKHN0cnVjdCBhdGhfc29mdGMgKnNjLCBzdHJ1Y3QgYXRoX2J1ZiAqYmYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTY4LVx0XHRcdCAgICAgc3RydWN0IGF0aF90eF9zdGF0dXMgKnRzLCBpbnQgbmZyYW1lcywgaW50IG5iYWQsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTY5LVx0XHRcdCAgICAgaW50IHR4b2spO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYzo3MDpzdGF0aWMgdm9pZCBhdGhfdHhfdXBkYXRlX2JhdyhzdHJ1Y3QgYXRoX2F0eF90aWQgKnRpZCwgc3RydWN0IGF0aF9idWYgKmJmKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmM6NzE6c3RhdGljIHN0cnVjdCBhdGhfYnVmICphdGhfdHhfc2V0dXBfYnVmZmVyKHN0cnVjdCBhdGhfc29mdGMgKnNjLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYy03Mi1cdFx0XHRcdFx0ICAgc3RydWN0IGF0aF90eHEgKnR4cSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTc0LVx0XHRcdFx0XHQgICBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmM6NzU6c3RhdGljIGludCBhdGhfdHhfcHJlcGFyZShzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodywgc3RydWN0IHNrX2J1ZmYgKnNrYixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMtNzYtXHRcdFx0ICBzdHJ1Y3QgYXRoX3R4X2NvbnRyb2wgKnR4Y3RsKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jPTc4PWVudW0ge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMtODgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jOjg5OnN0YXRpYyB2b2lkIGF0aF90eF9zdGF0dXMoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsIHN0cnVjdCBza19idWZmICpza2IpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTkwLXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTEwNS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmM6MTA2OnZvaWQgYXRoX3R4cV91bmxvY2tfY29tcGxldGUoc3RydWN0IGF0aF9zb2Z0YyAqc2MsIHN0cnVjdCBhdGhfdHhxICp0eHEpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTEwNy1cdF9fcmVsZWFzZXMoXHUwMDI2dHhxLVx1MDAzZWF4cV9sb2NrKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMtMTIwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYzoxMjE6dm9pZCBhdGhfdHhfcXVldWVfdGlkKHN0cnVjdCBhdGhfc29mdGMgKnNjLCBzdHJ1Y3QgYXRoX2F0eF90aWQgKnRpZClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMtMTIyLXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTEyOC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmM6MTI5OnZvaWQgYXRoOWtfd2FrZV90eF9xdWV1ZShzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodywgc3RydWN0IGllZWU4MDIxMV90eHEgKnF1ZXVlKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYy0xMzAte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmM9MTQ1PXN0YXRpYyBzdHJ1Y3QgYXRoX2ZyYW1lX2luZm8gKmdldF9mcmFtZV9pbmZvKHN0cnVjdCBza19idWZmICpza2IpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYy0xNTItXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jOjE1MzpzdGF0aWMgdm9pZCBhdGhfc2VuZF9iYXIoc3RydWN0IGF0aF9hdHhfdGlkICp0aWQsIHUxNiBzZXFubylcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMtMTU0LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTE2MS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmM6MTYyOnN0YXRpYyBib29sIGF0aF9tZXJnZV9yYXRldGJsKHN0cnVjdCBpZWVlODAyMTFfc3RhICpzdGEsIHN0cnVjdCBhdGhfYnVmICpiZixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMtMTYzLVx0XHRcdCAgICAgIHN0cnVjdCBpZWVlODAyMTFfdHhfaW5mbyAqdHhfaW5mbylcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTE5Ny1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmM6MTk4OnN0YXRpYyB2b2lkIGF0aF9zZXRfcmF0ZXMoc3RydWN0IGllZWU4MDIxMV92aWYgKnZpZiwgc3RydWN0IGllZWU4MDIxMV9zdGEgKnN0YSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMtMTk5LVx0XHRcdCAgc3RydWN0IGF0aF9idWYgKmJmKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMtMjA5LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYzoyMTA6c3RhdGljIHZvaWQgYXRoX3R4cV9za2JfZG9uZShzdHJ1Y3QgYXRoX3NvZnRjICpzYywgc3RydWN0IHNrX2J1ZmYgKnNrYilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMtMjExLXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jPTIzMz1hdGhfdGlkX3B1bGwoc3RydWN0IGF0aF9hdHhfdGlkICp0aWQsIHN0cnVjdCBza19idWZmICoqc2tidWYpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYy0yNjYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jOjI2NzpzdGF0aWMgaW50IGF0aF90aWRfZGVxdWV1ZShzdHJ1Y3QgYXRoX2F0eF90aWQgKnRpZCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMtMjY4LVx0XHRcdCAgIHN0cnVjdCBza19idWZmICoqc2tiKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMtMjc3LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYzoyNzg6c3RhdGljIHZvaWQgYXRoX3R4X2ZsdXNoX3RpZChzdHJ1Y3QgYXRoX3NvZnRjICpzYywgc3RydWN0IGF0aF9hdHhfdGlkICp0aWQpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTI3OS17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYy0zMTYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jOjMxNzpzdGF0aWMgdm9pZCBhdGhfdHhfdXBkYXRlX2JhdyhzdHJ1Y3QgYXRoX2F0eF90aWQgKnRpZCwgc3RydWN0IGF0aF9idWYgKmJmKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYy0zMTgte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMtMzM4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYzozMzk6c3RhdGljIHZvaWQgYXRoX3R4X2FkZHRvX2JhdyhzdHJ1Y3QgYXRoX2F0eF90aWQgKnRpZCwgc3RydWN0IGF0aF9idWYgKmJmKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYy0zNDAte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMtMzU5LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYzozNjA6c3RhdGljIHZvaWQgYXRoX3RpZF9kcmFpbihzdHJ1Y3QgYXRoX3NvZnRjICpzYywgc3RydWN0IGF0aF90eHEgKnR4cSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMtMzYxLVx0XHRcdCAgc3RydWN0IGF0aF9hdHhfdGlkICp0aWQpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYy0zODYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jOjM4NzpzdGF0aWMgdm9pZCBhdGhfdHhfc2V0X3JldHJ5KHN0cnVjdCBhdGhfc29mdGMgKnNjLCBzdHJ1Y3QgYXRoX3R4cSAqdHhxLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYy0zODgtXHRcdFx0ICAgICBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBpbnQgY291bnQpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYy00MDYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jOjQwNzpzdGF0aWMgc3RydWN0IGF0aF9idWYgKmF0aF90eF9nZXRfYnVmZmVyKHN0cnVjdCBhdGhfc29mdGMgKnNjKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYy00MDgte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMtNDI1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYzo0MjY6c3RhdGljIHZvaWQgYXRoX3R4X3JldHVybl9idWZmZXIoc3RydWN0IGF0aF9zb2Z0YyAqc2MsIHN0cnVjdCBhdGhfYnVmICpiZilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMtNDI3LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTQzMi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmM6NDMzOnN0YXRpYyBzdHJ1Y3QgYXRoX2J1ZiogYXRoX2Nsb25lX3R4YnVmKHN0cnVjdCBhdGhfc29mdGMgKnNjLCBzdHJ1Y3QgYXRoX2J1ZiAqYmYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTQzNC17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYy00NTEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jOjQ1MjpzdGF0aWMgdm9pZCBhdGhfdHhfY291bnRfZnJhbWVzKHN0cnVjdCBhdGhfYnVmICpiZiwgc3RydWN0IGF0aF90eF9zdGF0dXMgKnRzLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYy00NTMtXHRcdFx0XHRpbnQgdHhvaywgaW50ICpuZnJhbWVzLCBpbnQgKm5iYWQpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYy00ODItXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jOjQ4MzpzdGF0aWMgdm9pZCBhdGhfdHhfY29tcGxldGVfYWdncihzdHJ1Y3QgYXRoX3NvZnRjICpzYywgc3RydWN0IGF0aF90eHEgKnR4cSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMtNDg0LVx0XHRcdFx0IHN0cnVjdCBhdGhfYnVmICpiZiwgc3RydWN0IGxpc3RfaGVhZCAqYmZfcSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jPTcwMT1zdGF0aWMgYm9vbCBiZl9pc19hbXBkdV9ub3RfcHJvYmluZyhzdHJ1Y3QgYXRoX2J1ZiAqYmYpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYy03MDYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jOjcwNzpzdGF0aWMgdm9pZCBhdGhfdHhfY291bnRfYWlydGltZShzdHJ1Y3QgYXRoX3NvZnRjICpzYyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMtNzA4LVx0XHRcdFx0IHN0cnVjdCBpZWVlODAyMTFfc3RhICpzdGEsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYy03MjQtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jOjcyNTpzdGF0aWMgdm9pZCBhdGhfdHhfcHJvY2Vzc19idWZmZXIoc3RydWN0IGF0aF9zb2Z0YyAqc2MsIHN0cnVjdCBhdGhfdHhxICp0eHEsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTcyNi1cdFx0XHRcdCAgc3RydWN0IGF0aF90eF9zdGF0dXMgKnRzLCBzdHJ1Y3QgYXRoX2J1ZiAqYmYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYy03NzMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jOjc3NDpzdGF0aWMgYm9vbCBhdGhfbG9va3VwX2xlZ2FjeShzdHJ1Y3QgYXRoX2J1ZiAqYmYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTc3NS17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYy03OTUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jOjc5NjpzdGF0aWMgdTMyIGF0aF9sb29rdXBfcmF0ZShzdHJ1Y3QgYXRoX3NvZnRjICpzYywgc3RydWN0IGF0aF9idWYgKmJmLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYy03OTctXHRcdFx0ICAgc3RydWN0IGF0aF9hdHhfdGlkICp0aWQpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYy04NjYtICovXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jOjg2NzpzdGF0aWMgaW50IGF0aF9jb21wdXRlX251bV9kZWxpbXMoc3RydWN0IGF0aF9zb2Z0YyAqc2MsIHN0cnVjdCBhdGhfYXR4X3RpZCAqdGlkLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYy04NjgtXHRcdFx0XHQgIHN0cnVjdCBhdGhfYnVmICpiZiwgdTE2IGZybWxlbixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jPTEwMjc9YXRoX3R4X2Zvcm1fYWdncihzdHJ1Y3QgYXRoX3NvZnRjICpzYywgc3RydWN0IGF0aF90eHEgKnR4cSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTExMTItICovXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jOjExMTM6dTMyIGF0aF9wa3RfZHVyYXRpb24odTggcml4LCBpbnQgcGt0bGVuLCBpbnQgd2lkdGgsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTExMTQtXHRcdCAgICAgaW50IGhhbGZfZ2ksIGJvb2wgc2hvcnRQcmVhbWJsZSlcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTExMzUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jOjExMzY6c3RhdGljIGludCBhdGhfbWF4X2ZyYW1lbGVuKGludCB1c2VjLCBpbnQgbWNzLCBib29sIGh0NDAsIGJvb2wgc2dpKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYy0xMTM3LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTExNTItXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jOjExNTM6dm9pZCBhdGhfdXBkYXRlX21heF9hZ2dyX2ZyYW1lbGVuKHN0cnVjdCBhdGhfc29mdGMgKnNjLCBpbnQgcXVldWUsIGludCB0eG9wKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYy0xMTU0LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTExNzMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jOjExNzQ6c3RhdGljIHU4IGF0aF9nZXRfcmF0ZV90eHBvd2VyKHN0cnVjdCBhdGhfc29mdGMgKnNjLCBzdHJ1Y3QgYXRoX2J1ZiAqYmYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTExNzUtXHRcdFx0ICAgICAgIHU4IHJhdGVpZHgsIGJvb2wgaXNfNDAsIGJvb2wgaXNfY2NrLCBib29sIGlzX21jcylcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTEyNTktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jOjEyNjA6c3RhdGljIHZvaWQgYXRoX2J1Zl9zZXRfcmF0ZShzdHJ1Y3QgYXRoX3NvZnRjICpzYywgc3RydWN0IGF0aF9idWYgKmJmLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYy0xMjYxLVx0XHRcdCAgICAgc3RydWN0IGF0aF90eF9pbmZvICppbmZvLCBpbnQgbGVuLCBib29sIHJ0cylcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jPTEzODA9c3RhdGljIGVudW0gYXRoOWtfcGt0X3R5cGUgZ2V0X2h3X3BhY2tldF90eXBlKHN0cnVjdCBza19idWZmICpza2IpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYy0xNDAyLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYzoxNDAzOnN0YXRpYyB2b2lkIGF0aF90eF9maWxsX2Rlc2Moc3RydWN0IGF0aF9zb2Z0YyAqc2MsIHN0cnVjdCBhdGhfYnVmICpiZixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMtMTQwNC1cdFx0XHQgICAgIHN0cnVjdCBhdGhfdHhxICp0eHEsIGludCBsZW4pXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYz0xNDk2PWF0aF90eF9mb3JtX2J1cnN0KHN0cnVjdCBhdGhfc29mdGMgKnNjLCBzdHJ1Y3QgYXRoX3R4cSAqdHhxLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMtMTUyOC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmM6MTUyOTpzdGF0aWMgaW50IGF0aF90eF9zY2hlZF9hZ2dyKHN0cnVjdCBhdGhfc29mdGMgKnNjLCBzdHJ1Y3QgYXRoX3R4cSAqdHhxLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYy0xNTMwLVx0XHRcdCAgICAgc3RydWN0IGF0aF9hdHhfdGlkICp0aWQpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYy0xNTcwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYzoxNTcxOmludCBhdGhfdHhfYWdncl9zdGFydChzdHJ1Y3QgYXRoX3NvZnRjICpzYywgc3RydWN0IGllZWU4MDIxMV9zdGEgKnN0YSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMtMTU3Mi1cdFx0ICAgICAgdTE2IHRpZCwgdTE2ICpzc24pXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYy0xNjEwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYzoxNjExOnZvaWQgYXRoX3R4X2FnZ3Jfc3RvcChzdHJ1Y3QgYXRoX3NvZnRjICpzYywgc3RydWN0IGllZWU4MDIxMV9zdGEgKnN0YSwgdTE2IHRpZClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMtMTYxMi17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYy0xNjI1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYzoxNjI2OnZvaWQgYXRoX3R4X2FnZ3Jfc2xlZXAoc3RydWN0IGllZWU4MDIxMV9zdGEgKnN0YSwgc3RydWN0IGF0aF9zb2Z0YyAqc2MsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTE2MjctXHRcdCAgICAgICBzdHJ1Y3QgYXRoX25vZGUgKmFuKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMtMTY0My1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmM6MTY0NDp2b2lkIGF0aF90eF9hZ2dyX3dha2V1cChzdHJ1Y3QgYXRoX3NvZnRjICpzYywgc3RydWN0IGF0aF9ub2RlICphbilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMtMTY0NS17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYz0xNjcwPWF0aDlrX3NldF9tb3JlZGF0YShzdHJ1Y3QgYXRoX3NvZnRjICpzYywgc3RydWN0IGF0aF9idWYgKmJmLCBib29sIHZhbClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTE2ODktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jOjE2OTA6dm9pZCBhdGg5a19yZWxlYXNlX2J1ZmZlcmVkX2ZyYW1lcyhzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMtMTY5MS1cdFx0XHRcdCAgIHN0cnVjdCBpZWVlODAyMTFfc3RhICpzdGEsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYy0xNzU3LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYzoxNzU4OnN0cnVjdCBhdGhfdHhxICphdGhfdHhxX3NldHVwKHN0cnVjdCBhdGhfc29mdGMgKnNjLCBpbnQgcXR5cGUsIGludCBzdWJ0eXBlKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYy0xNzU5LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTE4MjktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jOjE4MzA6aW50IGF0aF90eHFfdXBkYXRlKHN0cnVjdCBhdGhfc29mdGMgKnNjLCBpbnQgcW51bSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMtMTgzMS1cdFx0ICAgc3RydWN0IGF0aDlrX3R4X3F1ZXVlX2luZm8gKnFpbmZvKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMtMTg1Ni1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmM6MTg1NzppbnQgYXRoX2NhYnFfdXBkYXRlKHN0cnVjdCBhdGhfc29mdGMgKnNjKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYy0xODU4LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTE4NzEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jOjE4NzI6c3RhdGljIHZvaWQgYXRoX2RyYWluX3R4cV9saXN0KHN0cnVjdCBhdGhfc29mdGMgKnNjLCBzdHJ1Y3QgYXRoX3R4cSAqdHhxLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYy0xODczLVx0XHRcdCAgICAgICBzdHJ1Y3QgbGlzdF9oZWFkICpsaXN0KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMtMTkxMy0gKi9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmM6MTkxNDp2b2lkIGF0aF9kcmFpbnR4cShzdHJ1Y3QgYXRoX3NvZnRjICpzYywgc3RydWN0IGF0aF90eHEgKnR4cSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMtMTkxNS17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYy0xOTM3LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYzoxOTM4OmJvb2wgYXRoX2RyYWluX2FsbF90eHEoc3RydWN0IGF0aF9zb2Z0YyAqc2MpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTE5Mzkte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMtMTk3OS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmM6MTk4MDp2b2lkIGF0aF90eF9jbGVhbnVwcShzdHJ1Y3QgYXRoX3NvZnRjICpzYywgc3RydWN0IGF0aF90eHEgKnR4cSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMtMTk4MS17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYy0xOTg4LSAqL1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYzoxOTg5OnZvaWQgYXRoX3R4cV9zY2hlZHVsZShzdHJ1Y3QgYXRoX3NvZnRjICpzYywgc3RydWN0IGF0aF90eHEgKnR4cSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMtMTk5MC17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYy0yMDI1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYzoyMDI2OnZvaWQgYXRoX3R4cV9zY2hlZHVsZV9hbGwoc3RydWN0IGF0aF9zb2Z0YyAqc2MpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTIwMjcte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMtMjA0Ny0gKi9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmM6MjA0ODpzdGF0aWMgdm9pZCBhdGhfdHhfdHhxYWRkYnVmKHN0cnVjdCBhdGhfc29mdGMgKnNjLCBzdHJ1Y3QgYXRoX3R4cSAqdHhxLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYy0yMDQ5LVx0XHRcdCAgICAgc3RydWN0IGxpc3RfaGVhZCAqaGVhZCwgYm9vbCBpbnRlcm5hbClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTIxMTQtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jOjIxMTU6c3RhdGljIHZvaWQgYXRoX3R4X3NlbmRfbm9ybWFsKHN0cnVjdCBhdGhfc29mdGMgKnNjLCBzdHJ1Y3QgYXRoX3R4cSAqdHhxLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYy0yMTE2LVx0XHRcdCAgICAgICBzdHJ1Y3QgYXRoX2F0eF90aWQgKnRpZCwgc3RydWN0IHNrX2J1ZmYgKnNrYilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jPTIxMzg9c3RhdGljIHZvaWQgc2V0dXBfZnJhbWVfaW5mbyhzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodyxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTIyMDAtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jOjIyMDE6dTggYXRoX3R4Y2hhaW5tYXNrX3JlZHVjdGlvbihzdHJ1Y3QgYXRoX3NvZnRjICpzYywgdTggY2hhaW5tYXNrLCB1MzIgcmF0ZSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMtMjIwMi17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYy0yMjE5LSAqL1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYzoyMjIwOnN0YXRpYyBzdHJ1Y3QgYXRoX2J1ZiAqYXRoX3R4X3NldHVwX2J1ZmZlcihzdHJ1Y3QgYXRoX3NvZnRjICpzYyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMtMjIyMS1cdFx0XHRcdFx0ICAgc3RydWN0IGF0aF90eHEgKnR4cSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTIyNzEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jOjIyNzI6dm9pZCBhdGhfYXNzaWduX3NlcShzdHJ1Y3QgYXRoX2NvbW1vbiAqY29tbW9uLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYy0yMjczLXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTIyOTMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jOjIyOTQ6c3RhdGljIGludCBhdGhfdHhfcHJlcGFyZShzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodywgc3RydWN0IHNrX2J1ZmYgKnNrYixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMtMjI5NS1cdFx0XHQgIHN0cnVjdCBhdGhfdHhfY29udHJvbCAqdHhjdGwpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYy0yMzMxLS8qIFVwb24gZmFpbHVyZSBjYWxsZXIgc2hvdWxkIGZyZWUgc2tiICovXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jOjIzMzI6aW50IGF0aF90eF9zdGFydChzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodywgc3RydWN0IHNrX2J1ZmYgKnNrYixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMtMjMzMy1cdFx0IHN0cnVjdCBhdGhfdHhfY29udHJvbCAqdHhjdGwpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYy0yMzk3LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYzoyMzk4OnZvaWQgYXRoX3R4X2NhYnEoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsIHN0cnVjdCBpZWVlODAyMTFfdmlmICp2aWYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTIzOTktXHRcdCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMtMjQ2My1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmM6MjQ2NDpzdGF0aWMgdm9pZCBhdGhfdHhfY29tcGxldGUoc3RydWN0IGF0aF9zb2Z0YyAqc2MsIHN0cnVjdCBza19idWZmICpza2IsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTI0NjUtXHRcdFx0ICAgIGludCB0eF9mbGFncywgc3RydWN0IGF0aF90eHEgKnR4cSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTI1MTUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jOjI1MTY6c3RhdGljIHZvaWQgYXRoX3R4X2NvbXBsZXRlX2J1ZihzdHJ1Y3QgYXRoX3NvZnRjICpzYywgc3RydWN0IGF0aF9idWYgKmJmLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYy0yNTE3LVx0XHRcdFx0c3RydWN0IGF0aF90eHEgKnR4cSwgc3RydWN0IGxpc3RfaGVhZCAqYmZfcSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTI1NjEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jOjI1NjI6c3RhdGljIHZvaWQgYXRoX2NsZWFyX3R4X3N0YXR1cyhzdHJ1Y3QgaWVlZTgwMjExX3R4X2luZm8gKnR4X2luZm8pXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTI1NjMte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMtMjU3MS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmM6MjU3MjpzdGF0aWMgdm9pZCBhdGhfdHhfcmNfc3RhdHVzKHN0cnVjdCBhdGhfc29mdGMgKnNjLCBzdHJ1Y3QgYXRoX2J1ZiAqYmYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTI1NzMtXHRcdFx0ICAgICBzdHJ1Y3QgYXRoX3R4X3N0YXR1cyAqdHMsIGludCBuZnJhbWVzLCBpbnQgbmJhZCxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTI2MjgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jOjI2Mjk6c3RhdGljIHZvaWQgYXRoX3R4X3Byb2Nlc3NxKHN0cnVjdCBhdGhfc29mdGMgKnNjLCBzdHJ1Y3QgYXRoX3R4cSAqdHhxKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYy0yNjMwLXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTI3MDMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jOjI3MDQ6dm9pZCBhdGhfdHhfdGFza2xldChzdHJ1Y3QgYXRoX3NvZnRjICpzYylcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMtMjcwNS17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYy0yNzE3LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYzoyNzE4OnZvaWQgYXRoX3R4X2VkbWFfdGFza2xldChzdHJ1Y3QgYXRoX3NvZnRjICpzYylcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMtMjcxOS17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYy0yODExLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYzoyODEyOnN0YXRpYyBpbnQgYXRoX3R4c3RhdHVzX3NldHVwKHN0cnVjdCBhdGhfc29mdGMgKnNjLCBpbnQgc2l6ZSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMtMjgxMy17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYy0yODI1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYzoyODI2OnN0YXRpYyBpbnQgYXRoX3R4X2VkbWFfaW5pdChzdHJ1Y3QgYXRoX3NvZnRjICpzYylcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMtMjgyNy17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYy0yODM4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYzoyODM5OmludCBhdGhfdHhfaW5pdChzdHJ1Y3QgYXRoX3NvZnRjICpzYywgaW50IG5idWZzKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYy0yODQwLXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTI4NjctXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jOjI4Njg6dm9pZCBhdGhfdHhfbm9kZV9pbml0KHN0cnVjdCBhdGhfc29mdGMgKnNjLCBzdHJ1Y3QgYXRoX25vZGUgKmFuKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYy0yODY5LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTI4OTEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jOjI4OTI6dm9pZCBhdGhfdHhfbm9kZV9jbGVhbnVwKHN0cnVjdCBhdGhfc29mdGMgKnNjLCBzdHJ1Y3QgYXRoX25vZGUgKmFuKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYy0yODkzLXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTI5MjItXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jOjI5MjM6aW50IGF0aDlrX3R4OTlfc2VuZChzdHJ1Y3QgYXRoX3NvZnRjICpzYywgc3RydWN0IHNrX2J1ZmYgKnNrYixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMtMjkyNC1cdFx0ICAgIHN0cnVjdCBhdGhfdHhfY29udHJvbCAqdHhjdGwpXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzA2IDA4OjA5PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy43LWZsYXNoPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDUxNzI3CgkJCQkJCQlvdXRwdXQ6IDEyMwoJCQkJCQkJdGhvdWdodHM6IDY1MAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXNpcyBvZiBgYXRoOWsveG1pdC5jYCBhbmQgUmVhY2hhYmlsaXR5IGZvciBGdXp6aW5nKioKCk9rYXksIGxldCYjMzk7cyBicmVhayB0aGlzIGRvd24uIEZpcnN0LCBgeG1pdC5jYCBpcyBleGNsdXNpdmVseSBjYWxsZWQgd2l0aGluIHRoZSBgYXRoOWtgIG1vZHVsZSAoYGF0aDlrLmtvYCkuIGBhdGg5ay5rb2AsIGFzIHdlIGtub3csIGlzIHRoZSBkcml2ZXIgZm9yIHRob3NlIG9sZGVyIEF0aGVyb3MgODAyLjExbiB3aXJlbGVzcyBjYXJkcyB0aGF0IHVzZSBQQ0kvUENJZSBvciBBSEIgaW50ZXJmYWNlcy4gVGhlIGNyaXRpY2FsIHBvaW50IGlzIHRoYXQgc3RhbmRhcmQgUUVNVSDigJMgd2hpY2ggaXMgd2hhdCB3ZSYjMzk7cmUgbGlrZWx5IHVzaW5nIGZvciBmdXp6aW5nIOKAkyBkb2VzbiYjMzk7dCBlbXVsYXRlIHRob3NlIHNwZWNpZmljIEF0aGVyb3MgUENJL0FIQiB3aXJlbGVzcyBjYXJkcy4gVGhpcyBpbW1lZGlhdGVseSBzdWdnZXN0cyBhIHByb2JsZW0uCgpOb3csIGxldCYjMzk7cyBjcm9zcy1yZWZlcmVuY2UgdGhpcyBhZ2FpbnN0IFNlY3Rpb24gMiBvZiB0aGUgcHJvbXB0LiBXZSYjMzk7cmUgbG9va2luZyBmb3IgJiMzNDtTdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUgaGFyZHdhcmUmIzM0OyBzY2VuYXJpb3MsIGFuZCB0aGlzIHNlZW1zIHRvIGZpdCBwZXJmZWN0bHk6IHZlbmRvci1zcGVjaWZpYyBQQ0llIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBRRU1VLiBTcGVjaWZpY2FsbHksIHRoZSBtb2RpZmllZCBmaWxlIGhlcmUgaXMgYGRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmNgLCBmb2N1c2luZyBvbiB0aGUgYGF0aF9kcmFpbl90eHFfbGlzdCgpYCBmdW5jdGlvbi4gVGhpcyBmdW5jdGlvbiBpcyBpbnRlcm5hbCB0byBgeG1pdC5jYCBhbmQgb25seSBjYWxsZWQgYnkgYGF0aF9kcmFpbnR4cSgpYC4gYGF0aF9kcmFpbnR4cSgpYCBpdHNlbGYgaXMgaW52b2x2ZWQgaW4gdGFza3MgbGlrZSBiZWFjb24gZ2VuZXJhdGlvbiwgc3dpdGNoaW5nIGNoYW5uZWwgY29udGV4dHMsIGFuZCBpbnRlcmZhY2Ugc3RvcHBpbmcsIG9yIHF1ZXVlIGRyYWluYWdlLCBhbGwgd2l0aGluIHRoZSBgYXRoOWtgIGRyaXZlciwgd2hpY2ggaGluZ2VzIG9uIHRoZSBwcmVzZW5jZSBvZiBwaHlzaWNhbCBQQ0kvQUhCIEF0aGVyb3MgaGFyZHdhcmUuIE5vbmUgb2YgdGhlc2UgZXhlY3V0aW9uIHBhdGhzIGFyZSBwb3NzaWJsZSB3aXRob3V0IHRoYXQgc3BlY2lmaWMgaGFyZHdhcmUuCgpUaGVyZWZvcmUsIHNpbmNlIHdlJiMzOTtyZSBtb2RpZnlpbmcgdGhlIGNvZGUgaW4gYHhtaXQuY2AsIGFuZCB0aGF0IGNvZGUgaXMgKnN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZSogaW4gdGhlIGFic2VuY2Ugb2YgcGh5c2ljYWwgQXRoZXJvcyA4MDIuMTFuIFBDSS9BSEIgaGFyZHdhcmUsIHdoaWNoIGlzIG5vdCBhdmFpbGFibGUgaW4gb3VyIHN0YW5kYXJkIGZ1enppbmcgZW52aXJvbm1lbnQgKFFFTVUpLCB0aGVuIHRoaXMgY29kZSBpc24mIzM5O3Qgd29ydGggZnV6emluZywgYmFzZWQgb24gdGhlIGNyaXRlcmlhIGluIHRoZSBwcm9tcHQuCgpMZXQgbWUganVzdCBkb3VibGUtY2hlY2ssIG1ha2luZyBzdXJlIEkmIzM5O20gZm9sbG93aW5nIGluc3RydWN0aW9ucyBmb3IgYHNldC1yZXN1bHRzYDoKCiogICBgV29ydGhGdXp6aW5nYDogYGZhbHNlYAoqICAgYEZvY3VzU3ltYm9sc2A6IGBbXWAgKGVtcHR5KQoqICAgYEVuYWJsZUNvbmZpZ3NgOiBgW11gIChlbXB0eSkKKiAgIGBSZWFzb25pbmdgOiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyBgYXRoX2RyYWluX3R4cV9saXN0KClgIGluIGBkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jYCwgd2hpY2ggYmVsb25ncyB0byB0aGUgYGF0aDlrYCBkcml2ZXIgZm9yIEF0aGVyb3MgODAyLjExbiBQQ0kgYW5kIEFIQiBkZXZpY2VzLiBCZWNhdXNlIHN0YW5kYXJkIHZpcnR1YWxpemVkIGZ1enppbmcgZW52aXJvbm1lbnRzIChlLmcuIFFFTVUvR0NFKSBsYWNrIGVtdWxhdGlvbiBmb3IgdGhlc2UgcGh5c2ljYWwgQXRoZXJvcyBQQ0kvQUhCIHdpcmVsZXNzIGFkYXB0ZXJzLCB0aGUgbW9kaWZpZWQgY29kZSBpcyBzdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUuJiMzNDsKCkFscmlnaHQsIGxvb2tzIGxpa2Ugd2UmIzM5O3JlIGdvb2QgdG8gY2FsbCBgc2V0LXJlc3VsdHNgLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjI4LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8wNiAwODowOTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFtdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIGBhdGhfZHJhaW5fdHhxX2xpc3QoKWAgaW4gYGRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmNgLCB3aGljaCBiZWxvbmdzIHRvIHRoZSBgYXRoOWtgIGRyaXZlciBmb3IgQXRoZXJvcyA4MDIuMTFuIFBDSSBhbmQgQUhCIGRldmljZXMuIFRoaXMgaGFyZHdhcmUgaXMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyAoZS5nLiwgUUVNVSBvciBHQ0UpLCBtYWtpbmcgdGhlIG1vZGlmaWVkIGNvZGUgc3RydWN0dXJhbGx5IHVucmVhY2hhYmxlIGZvciBmdXp6aW5nLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IG51bGwsCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgYGF0aF9kcmFpbl90eHFfbGlzdCgpYCBpbiBgZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuY2AsIHdoaWNoIGJlbG9uZ3MgdG8gdGhlIGBhdGg5a2AgZHJpdmVyIGZvciBBdGhlcm9zIDgwMi4xMW4gUENJIGFuZCBBSEIgZGV2aWNlcy4gVGhpcyBoYXJkd2FyZSBpcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIChlLmcuLCBRRU1VIG9yIEdDRSksIG1ha2luZyB0aGUgbW9kaWZpZWQgY29kZSBzdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUgZm9yIGZ1enppbmcuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjI5LzE8L3RkPgoJCQk8dGQ+MjAyNi8wOS8wNiAwODowOTwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+SWY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTwvdGJvZHk+Cgk8L3RhYmxlPgoKCTxkaXYgaWQ9ImxsbV9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+TExNIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgVG9rZW5zPC90aD4KCQkJCQk8dGg+QXZnIFRva2VuczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJsbG1fc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJ0b29sX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5Ub29sIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9InRvb2xfc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJkdXJhdGlvbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+Cgk8ZGl2IGlkPSJ0b2tlbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+CgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9qc2FwaSI+PC9zY3JpcHQ+Cgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CgkJZ29vZ2xlLmxvYWQoInZpc3VhbGl6YXRpb24iLCAiMSIsIHtwYWNrYWdlczpbImNvcmVjaGFydCJdfSk7CgkJZ29vZ2xlLnNldE9uTG9hZENhbGxiYWNrKGRyYXdDaGFydHMpOwoKCQlmdW5jdGlvbiBkcmF3Q2hhcnRzKCkgewoJCQljb25zdCByYXdEYXRhID0gW3siU3RhcnRlZCI6IjIwMjYtMDktMDZUMDg6MDg6NTcuMjAxMTg1ODUyWiIsIlNlcSI6MCwiTmVzdGluZyI6MCwiVHlwZSI6ImZsb3ciLCJOYW1lIjoicGF0Y2gtdHJpYWdlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NTgxNTAyMjYwNzIsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiS01TQU5SZWFzb25pbmdcIjogXCJcIixcbiAgXCJOZWVkc0tNU0FOXCI6IGZhbHNlLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyBgYXRoX2RyYWluX3R4cV9saXN0KClgIGluIGBkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jYCwgd2hpY2ggYmVsb25ncyB0byB0aGUgYGF0aDlrYCBkcml2ZXIgZm9yIEF0aGVyb3MgODAyLjExbiBQQ0kgYW5kIEFIQiBkZXZpY2VzLiBUaGlzIGhhcmR3YXJlIGlzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgKGUuZy4sIFFFTVUgb3IgR0NFKSwgbWFraW5nIHRoZSBtb2RpZmllZCBjb2RlIHN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZSBmb3IgZnV6emluZy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTA2VDA4OjA4OjU3LjIwMTE5MDI0MVoiLCJTZXEiOjEsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoicmVhZC1wYXRjaC1kaWZmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NTU0NzY0NjQ0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJQYXRjaERpZmZcIjogXCJjb21taXQgYjMwMTJjZjlhMmVlNjUxNzU3YzQ2ZTdmOTMzNGU5NTMwM2I3MTQ4NFxcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXFx1MDAzZVxcbkRhdGU6ICAgU3VuIFNlcCA2IDA4OjA4OjU2IDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jXFxuaW5kZXggODlkOGIzMTc4Nzg0Ni4uODk5MzBlYWYxZmQzMSAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jXFxuKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuY1xcbkBAIC0xODg0LDggKzE4ODQsMTcgQEAgc3RhdGljIHZvaWQgYXRoX2RyYWluX3R4cV9saXN0KHN0cnVjdCBhdGhfc29mdGMgKnNjLCBzdHJ1Y3QgYXRoX3R4cSAqdHhxLFxcbiBcXHRcXHRiZiA9IGxpc3RfZmlyc3RfZW50cnkobGlzdCwgc3RydWN0IGF0aF9idWYsIGxpc3QpO1xcbiBcXG4gXFx0XFx0aWYgKGJmLVxcdTAwM2ViZl9zdGF0ZS5zdGFsZSkge1xcbi1cXHRcXHRcXHRsaXN0X2RlbChcXHUwMDI2YmYtXFx1MDAzZWxpc3QpO1xcbitcXHRcXHRcXHRzdHJ1Y3Qgc2tfYnVmZiAqc2tiID0gYmYtXFx1MDAzZWJmX21wZHU7XFxuIFxcbitcXHRcXHRcXHRsaXN0X2RlbChcXHUwMDI2YmYtXFx1MDAzZWxpc3QpO1xcbitcXHRcXHRcXHRpZiAoYmYtXFx1MDAzZWJmX2J1Zl9hZGRyKSB7XFxuK1xcdFxcdFxcdFxcdGRtYV91bm1hcF9zaW5nbGUoc2MtXFx1MDAzZWRldiwgYmYtXFx1MDAzZWJmX2J1Zl9hZGRyLFxcbitcXHRcXHRcXHRcXHRcXHRcXHQgc2tiID8gc2tiLVxcdTAwM2VsZW4gOiAwLFxcbitcXHRcXHRcXHRcXHRcXHRcXHQgRE1BX1RPX0RFVklDRSk7XFxuK1xcdFxcdFxcdFxcdGJmLVxcdTAwM2ViZl9idWZfYWRkciA9IDA7XFxuK1xcdFxcdFxcdH1cXG4rXFx0XFx0XFx0YmYtXFx1MDAzZWJmX21wZHUgPSBOVUxMO1xcbitcXHRcXHRcXHRkZXZfa2ZyZWVfc2tiX2FueShza2IpO1xcbiBcXHRcXHRcXHRhdGhfdHhfcmV0dXJuX2J1ZmZlcihzYywgYmYpO1xcbiBcXHRcXHRcXHRjb250aW51ZTtcXG4gXFx0XFx0fVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOS0wNlQwODowODo1Ny43NTY5Mzk0MTZaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJjb3JlIiwiRHVyYXRpb24iOjU3NTk0NDUzNzg3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyBgYXRoX2RyYWluX3R4cV9saXN0KClgIGluIGBkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jYCwgd2hpY2ggYmVsb25ncyB0byB0aGUgYGF0aDlrYCBkcml2ZXIgZm9yIEF0aGVyb3MgODAyLjExbiBQQ0kgYW5kIEFIQiBkZXZpY2VzLiBUaGlzIGhhcmR3YXJlIGlzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgKGUuZy4sIFFFTVUgb3IgR0NFKSwgbWFraW5nIHRoZSBtb2RpZmllZCBjb2RlIHN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZSBmb3IgZnV6emluZy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyIGFuZCBzZWN1cml0eSBlbmdpbmVlci5cbllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZXZhbHVhdGUgd2hldGhlciBpdCB3YXJyYW50cyBmdXp6aW5nIHdpdGggc3l6a2FsbGVyLlxuXG5JTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW5cbnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiBpbnRlcm5hbCBhc3N1bXB0aW9ucy4gWW91IG11c3QgYWN0aXZlbHkgdXNlIHlvdXIgY29kZSBhY2Nlc3NcbnRvb2xzIHRvIGluc3BlY3QgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSwgY2FsbGVycywgYW5kIHN1cnJvdW5kaW5nIGNvbnRleHQuXG5cbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4xLiBDT1JFIFRSSUFHRSBQSElMT1NPUEhZXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuVGhlIGdvYWwgb2YgcGF0Y2ggZnV6emluZyBpcyB0byBkaXNjb3ZlciBjcmFzaGVzLCByZWdyZXNzaW9ucywgZXhwb3NlZCBsYXRlbnQgYnVncyxcbmFuZCBuZXdseSB0cmlnZ2VyZWQgYXNzZXJ0aW9ucyBpbnRyb2R1Y2VkIGJ5IHRoZSBwYXRjaCBzZXJpZXMuXG5cbi0gUkVBQ0hBQklMSVRZIElTIFRIRSBQUklNQVJZIEdBVEU6XG4gIEZ1enppbmcgY2FuIG9ubHkgZGlzY292ZXIgYnVncyBpbiBjb2RlIHRoYXQgY2FuIGFjdHVhbGx5IGV4ZWN1dGUgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWRcbiAgZW52aXJvbm1lbnRzIChHQ0Ugb3IgUUVNVSwgdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGRldmljZXMgbGlrZSBVU0IgZ2FkZ2V0cywgbmV0ZGV2LCB0dW4vdGFwKS5cbiAgSWYgdGhlIG1vZGlmaWVkIGNvZGUgaXMgc3RydWN0dXJhbGx5IHVucmVhY2hhYmxlIChzZWUgU2VjdGlvbiAyKSwgaXQgTVVTVCBOT1QgYmUgZnV6emVkLFxuICByZWdhcmRsZXNzIG9mIHdoZXRoZXIgaXQgYWRkcyBhc3NlcnRpb25zIG9yIGNvbXBsZXggbG9naWMuXG5cbi0gRE8gTk9UIEJMSU5ETFkgVFJVU1QgXCJOTyBGVU5DVElPTkFMIENIQU5HRVwiIChORkNJKSBPUiBcIlJFRkFDVE9SSU5HXCIgQ0xBSU1TOlxuICBQYXRjaCBhdXRob3JzIHJvdXRpbmVseSBsYWJlbCBjaGFuZ2VzIGFzIFwiY2xlYW51cHNcIiwgXCJyZWZhY3RvcmluZ3NcIiwgb3Igc3RhdGVcbiAgXCJObyBmdW5jdGlvbmFsIGNoYW5nZSBpbnRlbmRlZFwiLiBEbyBOT1QgdGFrZSB0aGVzZSBjbGFpbXMgYXQgZmFjZSB2YWx1ZS5cbiAgQ29kZSByZWZhY3RvcmluZ3MgdGhhdCByZWFycmFuZ2UgbG9naWMsIGludHJvZHVjZSBoZWxwZXIgZnVuY3Rpb25zLCBvciBhbHRlciBzdGF0ZSBtYW5hZ2VtZW50XG4gIGluIGNvcmUgc3Vic3lzdGVtcyBmcmVxdWVudGx5IGludHJvZHVjZSBzdWJ0bGUgc2VtYW50aWMgc2hpZnRzIG9yIHVuY292ZXIgbGF0ZW50IGtlcm5lbCBidWdzLlxuICBJZiByZWFjaGFibGUgZXhlY3V0YWJsZSBjb2RlIGlzIG1vZGlmaWVkIG9yIHJlZmFjdG9yZWQsIGl0IE1VU1QgYmUgZnV6emVkLlxuXG4tIE5FVyBPUiBNT0RJRklFRCBBU1NFUlRJT05TIElOIFJFQUNIQUJMRSBDT0RFIE1VU1QgQkUgRlVaWkVEOlxuICBXaGVuIGEgcGF0Y2ggaW50cm9kdWNlcyBvciBtb2RpZmllcyBydW50aW1lIGNoZWNrcyBvciBhc3NlcnRpb25zIChlLmcuLCBXQVJOX09OKiwgVk1fV0FSTl9PTiosXG4gIEJVR19PTiosIGxvY2tkZXBfYXNzZXJ0KikgaW4gcmVhY2hhYmxlIGNvZGUgcGF0aHMsIGl0IGVuZm9yY2VzIG5ldyBvciBzdHJpY3RlciBpbnZhcmlhbnRzLlxuICBFdmVuIGlmIHRoZSBhdXRob3IgYmVsaWV2ZXMgdGhlIGludmFyaWFudCBhbHdheXMgaG9sZHMsIGZ1enppbmcgaXMgZXNzZW50aWFsIHRvIHZlcmlmeSB3aGV0aGVyXG4gIGFuIHVudXN1YWwgc2VxdWVuY2Ugb2Ygb3BlcmF0aW9ucyBjYW4gdmlvbGF0ZSBpdC5cblxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbjIuIFdIRU4gVE8gUkVUVVJOIFdvcnRoRnV6emluZz1mYWxzZSAoTkVHQVRJVkUgQ1JJVEVSSUEpXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBPTkxZIElGIGFsbCBtb2RpZmllZCBjb2RlIGZhbGxzIHN0cmljdGx5IGludG8gb25lIG9yIG1vcmUgb2YgdGhlc2UgY2F0ZWdvcmllczpcblxuLSBOb24ta2VybmVsIGFuZCBub24tZXhlY3V0YWJsZSBjaGFuZ2VzOlxuICAqIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIGNvbW1lbnRzLCBvciBzcGVsbGluZyBmaXhlcy5cbiAgKiBVc2VyLXNwYWNlIGRpcmVjdG9yaWVzLCBzZWxmLXRlc3RzLCBzYW1wbGVzLCBvciBzY3JpcHRzIChlLmcuLCB0b29scy8sIHNhbXBsZXMvLCBzY3JpcHRzLywgdXNyLylcbiAgICB0aGF0IGRvIG5vdCBhZmZlY3QgdGhlIGNvbXBpbGVkIGtlcm5lbCBpbWFnZSAodm1saW51eCkgb3Iga2VybmVsIG1vZHVsZXMuXG4gICogUHVyZWx5IGRlY29yYXRpdmUgbG9nZ2luZyAoZS5nLiwgbWVzc2FnZSBzdHJpbmdzIGluIHByX2VyciwgcHJpbnRrLCBkZXZfaW5mbykgb3IgdHJhY2Vwb2ludHNcbiAgICB0aGF0IGRvIG5vdCBhbHRlciBjb250cm9sIGZsb3cgb3IgZGF0YSBzdHJ1Y3R1cmVzLlxuICAqIEJ1aWxkIHN5c3RlbSBvciBLY29uZmlnIGNoYW5nZXMgdGhhdCBkbyBub3QgYWx0ZXIgY29tcGlsZWQgQyBsb2dpYy5cbi0gU3RydWN0dXJhbGx5IHVucmVhY2hhYmxlIGhhcmR3YXJlOlxuICAqIFZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaGVzLCBTbWFydE5JQ3MsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCxcbiAgICBpb25pYywgYW1kZ3B1KSByZXF1aXJpbmcgcGh5c2ljYWwgQVNJQy9QQ0llIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLlxuLSBVbnJlYWNoYWJsZSBleGVjdXRpb24gcGF0aHM6XG4gICogRHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoLnJlbW92ZSwgLnNodXRkb3duLCBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIpIGV4ZWN1dGVkIG9ubHkgZHVyaW5nXG4gICAgcGh5c2ljYWwgUENJIGhvdC11bnBsdWcgb3IgbWFudWFsIHN5c2ZzIGRyaXZlciB1bmJpbmRpbmcuXG4gICogQ29kZSBwYXRocyBleGNsdXNpdmUgdG8gYXJjaGl0ZWN0dXJlcyBvdGhlciB0aGFuIHRoZSB0YXJnZXQgYXJjaGl0ZWN0dXJlLlxuXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuMy4gV0hFTiBUTyBSRVRVUk4gV29ydGhGdXp6aW5nPXRydWUgKFBPU0lUSVZFIENSSVRFUklBKVxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZSB3aGVuZXZlciB0aGUgcGF0Y2ggdG91Y2hlcyByZWFjaGFibGUgZXhlY3V0YWJsZSBjb2RlLCBpbmNsdWRpbmc6XG4tIENvcmUgU3Vic3lzdGVtczpcbiAgKiBBbnkgbG9naWMgbW9kaWZpY2F0aW9ucyBpbiBtZW1vcnkgbWFuYWdlbWVudCAobW0vKSwgc3luY2hyb25pemF0aW9uL2xvY2tpbmcgKGtlcm5lbC9sb2NraW5nLyksXG4gICAgQlBGLCBzY2hlZHVsZXIsIGNvcmUgbmV0d29ya2luZywgVkZTLCBvciBzeXNjYWxsIGhhbmRsaW5nLlxuLSBSZWZhY3RvcmluZ3MgYW5kIENvZGUgQ2xlYW51cHM6XG4gICogQW55IHJlc3RydWN0dXJpbmcgb2YgcmVhY2hhYmxlIGRhdGEgc3RydWN0dXJlcywgaGVscGVyIGFic3RyYWN0aW9ucywgb3IgYWxnb3JpdGhtIGZsb3dzLlxuLSBSdW50aW1lIEFzc2VydGlvbnMgYW5kIERlZmVuc2l2ZSBDaGVja3M6XG4gICogQW55IGludHJvZHVjdGlvbiBvciBhbHRlcmF0aW9uIG9mIGFzc2VydGlvbnMgKFdBUk5fT04qLCBWTV9XQVJOX09OKiwgQlVHX09OKiwgZXRjLikgaW4gcmVhY2hhYmxlIHBhdGhzLlxuLSBSZWFjaGFibGUgRHJpdmVycyBhbmQgUHJvdG9jb2xzOlxuICAqIERyaXZlcnMgYWNjZXNzaWJsZSB2aWEgdmlydHVhbCBidXNlcyAodmlydGlvLCBVU0IgZ2FkZ2V0LCBsb29wYmFjaywgbmV0bGluaywgYmluZGVyLCBzb2NrZXRzLCBldGMuKS5cblxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbjQuIEVYVFJBQ1RJTkcgRm9jdXNTeW1ib2xzIChQUkVWRU5USU5HIERJTFVUSU9OKVxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbldoZW4gV29ydGhGdXp6aW5nPXRydWUsIHlvdSBtdXN0IGV4dHJhY3Qgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyBpbnRvIEZvY3VzU3ltYm9scyB0byBndWlkZSB0aGUgZnV6emVyOlxuXG4tIEFWT0lEIFVCSVFVSVRPVVMgTElGRUNZQ0xFIEhPVC1QQVRIUzpcbiAgRG8gTk9UIGxpc3QgZ2VuZXJpYywgdWJpcXVpdG91cyBmdW5jdGlvbnMgY2FsbGVkIGJ5IGFsbW9zdCBldmVyeSBwcm9ncmFtIGluIHRoZSBjb3JwdXNcbiAgKGluY2x1ZGluZywgYnV0IG5vdCBsaW1pdGVkIHRvOiBnZW5lcmFsIG1lbW9yeSBhbGxvY2F0b3JzIGFuZCBkZWFsbG9jYXRvcnMsIHBhZ2UgZmF1bHRcbiAgYW5kIHRyYXAgaGFuZGxlcnMsIG9yIGNvcmUgc3luY2hyb25pemF0aW9uIHByaW1pdGl2ZXM7IHRoaXMgaXMgbm90IGFuIGV4aGF1c3RpdmUgbGlzdCkuXG4gIExpc3RpbmcgdWJpcXVpdG91cyBmdW5jdGlvbnMgY2F1c2VzIHRoZSBmdXp6ZXIgdG8gY2xhc3NpZnkgdGhvdXNhbmRzIG9mIHVucmVsYXRlZCB0ZXN0cyBhcyBcImZvY3VzZWRcIixcbiAgd2hpY2ggc2V2ZXJlbHkgZGlsdXRlcyBmdXp6aW5nIGVmZm9ydCBhd2F5IGZyb20gdGhlIGFjdHVhbCBjaGFuZ2VzLlxuXG4tIFRBUkdFVCBTUEVDSUZJQyBGRUFUVVJFIExPR0lDIEFORCBFTlRSWVBPSU5UUzpcbiAgTGlzdCBmdW5jdGlvbnMgdGhhdCBzcGVjaWZpY2FsbHkgaW1wbGVtZW50IHRoZSBsb2dpYyBiZWluZyBhZGRlZCBvciBhbHRlcmVkLCBvciBkaXJlY3QgQVBJIGVudHJ5cG9pbnRzXG4gIGZvciB0aGUgc3Vic3lzdGVtIGZlYXR1cmUgdW5kZXIgcmV2aWV3LlxuXG4tIEhBTkRMSU5HIFNUQVRJQyBJTkxJTkUgRlVOQ1RJT05TIElOIEhFQURFUlMgKC5oKTpcbiAgQ29tcGlsZXItaW5saW5lZCBzdGF0aWMgZnVuY3Rpb25zIChzdWNoIGFzIHN0YXRpYyBpbmxpbmVzIGluIG1tLyouaCBvciBpbmNsdWRlL2xpbnV4LyouaCkgbGFja1xuICBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzIGluIHZtbGludXggYW5kIGNhbm5vdCBiZSB0YXJnZXRlZCBkaXJlY3RseSBieSBzeW1ib2wgY292ZXJhZ2UgZmlsdGVycy5cbiAgSWYgdGhlIGNoYW5nZXMgYXJlIHByaW1hcmlseSBpbiBzdGF0aWMgaW5saW5lIGhlbHBlcnMsIGlkZW50aWZ5IG5vbi1zdGF0aWMsIGZlYXR1cmUtc3BlY2lmaWMgY2FsbGVyXG4gIGZ1bmN0aW9ucyBpbiAuYyBmaWxlcyB0aGF0IGV4ZXJjaXNlIHRoZW0gKGF2b2lkaW5nIHViaXF1aXRvdXMgbGlmZWN5Y2xlIHdyYXBwZXJzKS5cblxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbjUuIElERU5USUZZSU5HIEVuYWJsZUNvbmZpZ3Ncbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5JZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IGNvbXBpbGUgYW5kIHJlYWNoIHRoZSBtb2RpZmllZCBjb2RlOlxuLSBJbnNwZWN0IEtjb25maWcgZmlsZXMgYW5kICNpZmRlZiBndWFyZHM7IGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLlxuLSBDaGVjayBcImRlcGVuZHMgb25cIiBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3MgbmVlZGVkLlxuLSBTdHJpcCBhbnkgJ0NPTkZJR18nIHByZWZpeCAoZS5nLiwgcmV0dXJuIFwiTkVUX0lQVjRcIiBpbnN0ZWFkIG9mIFwiQ09ORklHX05FVF9JUFY0XCIpLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiVGFyZ2V0IGFyY2hpdGVjdHVyZTogYW1kNjRcblxuRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgYjMwMTJjZjlhMmVlNjUxNzU3YzQ2ZTdmOTMzNGU5NTMwM2I3MTQ4NFxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBTdW4gU2VwIDYgMDg6MDg6NTYgMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuY1xuaW5kZXggODlkOGIzMTc4Nzg0Ni4uODk5MzBlYWYxZmQzMSAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmNcbisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmNcbkBAIC0xODg0LDggKzE4ODQsMTcgQEAgc3RhdGljIHZvaWQgYXRoX2RyYWluX3R4cV9saXN0KHN0cnVjdCBhdGhfc29mdGMgKnNjLCBzdHJ1Y3QgYXRoX3R4cSAqdHhxLFxuIFx0XHRiZiA9IGxpc3RfZmlyc3RfZW50cnkobGlzdCwgc3RydWN0IGF0aF9idWYsIGxpc3QpO1xuIFxuIFx0XHRpZiAoYmYtXHUwMDNlYmZfc3RhdGUuc3RhbGUpIHtcbi1cdFx0XHRsaXN0X2RlbChcdTAwMjZiZi1cdTAwM2VsaXN0KTtcbitcdFx0XHRzdHJ1Y3Qgc2tfYnVmZiAqc2tiID0gYmYtXHUwMDNlYmZfbXBkdTtcbiBcbitcdFx0XHRsaXN0X2RlbChcdTAwMjZiZi1cdTAwM2VsaXN0KTtcbitcdFx0XHRpZiAoYmYtXHUwMDNlYmZfYnVmX2FkZHIpIHtcbitcdFx0XHRcdGRtYV91bm1hcF9zaW5nbGUoc2MtXHUwMDNlZGV2LCBiZi1cdTAwM2ViZl9idWZfYWRkcixcbitcdFx0XHRcdFx0XHQgc2tiID8gc2tiLVx1MDAzZWxlbiA6IDAsXG4rXHRcdFx0XHRcdFx0IERNQV9UT19ERVZJQ0UpO1xuK1x0XHRcdFx0YmYtXHUwMDNlYmZfYnVmX2FkZHIgPSAwO1xuK1x0XHRcdH1cbitcdFx0XHRiZi1cdTAwM2ViZl9tcGR1ID0gTlVMTDtcbitcdFx0XHRkZXZfa2ZyZWVfc2tiX2FueShza2IpO1xuIFx0XHRcdGF0aF90eF9yZXR1cm5fYnVmZmVyKHNjLCBiZik7XG4gXHRcdFx0Y29udGludWU7XG4gXHRcdH1cbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTA2VDA4OjA4OjU3Ljc1Njk0MTM4NloiLCJTZXEiOjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy43LWZsYXNoIiwiRHVyYXRpb24iOjExNjU5Nzk2ODQwLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyBhIEtlcm5lbCBQYXRjaCBpbiBgYXRoOWtgKipcblxuT2theSwgbGV0J3MgZGl2ZSBpbnRvIHRoaXMuIFRoZSB0YXNrIGlzIHRvIHVuZGVyc3RhbmQgdGhpcyBwYXRjaCwgYW5kIG15IGluaXRpYWwgdGhvdWdodCBpcyB0byBicmVhayBpdCBkb3duLiBSaWdodCBub3csIEknbSBmb2N1c2luZyBvbiB0aGUgY2hhbmdlcyBtYWRlIHRvIGBkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jYCB3aXRoaW4gdGhlIGBhdGhfZHJhaW5fdHhxX2xpc3RgIGZ1bmN0aW9uLlxuXG5JdCdzIGNsZWFyIHRoZSBwYXRjaCBhZGRyZXNzZXMgYSBzY2VuYXJpbyB3aGVyZSBhIGJ1ZmZlciAoYGJmYCkgaXMgbWFya2VkIGFzIFwic3RhbGVcIi4gTG9va2luZyBhdCB0aGUgY29kZSwgaXQgbG9va3MgbGlrZSBpdCBjbGVhbnMgdXAgdGhlIHJlc291cmNlcyBhc3NvY2lhdGVkIHdpdGggdGhlIGJ1ZmZlci4gU3BlY2lmaWNhbGx5LCBpdCByZW1vdmVzIHRoZSBidWZmZXIgZnJvbSBhIGxpc3QsIHJldHJpZXZlcyB0aGUgYXNzb2NpYXRlZCBgc2tfYnVmZmAsIHVubWFwcyB0aGUgRE1BIHJlZ2lvbiwgbnVsbGlmaWVzIGJ1ZmZlciBhZGRyZXNzZXMgYW5kIHRoZSBza2IsIGFuZCB0aGVuIGRlYWxsb2NhdGVzIHRoZSBgc2tfYnVmZmAgdXNpbmcgYGRldl9rZnJlZV9za2JfYW55YC5cblxuVGhlIGNydWNpYWwgYml0LCBhbmQgdGhlIHJlYXNvbiBJIGFtIGZvY3VzaW5nIG9uIHRoaXMgZnVuY3Rpb24sIGlzIHRoZSBETUEgdW5tYXAgY2FsbC4gSSB3YW50IHRvIG1ha2Ugc3VyZSB0aGlzIGlzIGRvbmUgY29ycmVjdGx5IGFuZCBzYWZlbHkuIFRoZSBvcmlnaW5hbCBjb2RlIGhhcyBiZWVuIHJlcGxhY2VkIHdpdGggb25lIHRoYXQgbG9va3MgbGlrZSBpdCB3aWxsIGZyZWUgdGhlIFNLQi4gSSdsbCBuZWVkIHRvIGRvdWJsZSBjaGVjayB0aGUgY29ycmVjdG5lc3Mgb2YgdGhlIERNQSB1bm1hcCBhbmQgdGhlIGBza2ItXHUwMDNlbGVuYCB1c2FnZSwgZXNwZWNpYWxseSB0aGUgY29uZGl0aW9uYWwgYHNrYiA/IHNrYi1cdTAwM2VsZW4gOiAwYC4gVGhlIG9sZCBjb2RlIGhhZCBhIGxpc3QgZGVsZXRpb24sIHNvIHByZXN1bWFibHkgdGhlcmUgd2FzIGFuIHVuZGVybHlpbmcgaXNzdWUuXG5cblRvIGdldCBhIGJldHRlciBoYW5kbGUgb24gdGhlIGNvbnRleHQsIEkgbmVlZCB0byByZW1pbmQgbXlzZWxmIGV4YWN0bHkgd2hhdCBgYXRoOWtgIGlzLiBJcyB0aGlzIGEgVVNCIGRyaXZlcj8gUENJPyBTb21lIG90aGVyIGludGVyZmFjZT8gSSdsbCBwcm9iYWJseSBzY2FuIHRoZSBgS2NvbmZpZ2AgZmlsZXMgYW5kIHRoZSBkaXJlY3RvcnkgY29udGVudHMgdG8gZGV0ZXJtaW5lIHRoZSBoYXJkd2FyZSBhcmNoaXRlY3R1cmUuIENvbnRleHQgaXMga2V5LCBhZnRlciBhbGwuIEtub3dpbmcgdGhlIGhhcmR3YXJlIHdpbGwgZ3VpZGUgaG93IHRvIHRoaW5rIGFib3V0IHRoZSBETUEgdW5tYXAuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjMwMzIsIk91dHB1dFRva2VucyI6MzQsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyOTYsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOS0wNlQwODowOTowOS40MTY3NDA5NTZaIiwiU2VxIjo0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6OTQyMjUwMTQsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiQVRIOUtcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIlxcbkZ1bGwgb3V0cHV0IGlzIHRvbyBsb25nLCBzaG93aW5nIDUwMCBvdXQgb2YgNTA3MiBsaW5lcy5cXG5Vc2UgbW9yZSBwcmVjaXNlIGV4cHJlc3Npb24gaWYgcG9zc2libGUuXFxuXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWctMS0jIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBJU0NcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZzoyOmNvbmZpZyBBVEg5S19IV1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnLTMtXFx0dHJpc3RhdGVcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZzo0OmNvbmZpZyBBVEg5S19DT01NT05cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZy01LVxcdHRyaXN0YXRlXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWctNi1cXHRzZWxlY3QgQVRIX0NPTU1PTlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnOjc6Y29uZmlnIEFUSDlLX0NPTU1PTl9ERUJVR1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnLTgtXFx0Ym9vbFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnOjk6Y29uZmlnIEFUSDlLX0RGU19ERUJVR0ZTXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWctMTAtXFx0ZGVmX2Jvb2wgeVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnOjExOlxcdGRlcGVuZHMgb24gQVRIOUtfREVCVUdGUyBcXHUwMDI2XFx1MDAyNiBBVEg5S19ERlNfQ0VSVElGSUVEXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWctMTItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWc6MTM6Y29uZmlnIEFUSDlLX0JUQ09FWF9TVVBQT1JUXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWctMTQtXFx0Ym9vbCBcXFwiQXRoZXJvcyBibHVldG9vdGggY29leGlzdGVuY2Ugc3VwcG9ydFxcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZzoxNTpcXHRkZXBlbmRzIG9uIChBVEg5SyB8fCBBVEg5S19IVEMpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWctMTYtXFx0ZGVmYXVsdCB5XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZy0yMC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZzoyMTpjb25maWcgQVRIOUtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZy0yMi1cXHR0cmlzdGF0ZSBcXFwiQXRoZXJvcyA4MDIuMTFuIHdpcmVsZXNzIGNhcmRzIHN1cHBvcnRcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZy0yNC1cXHRzZWxlY3QgTUFDODAyMTFfTEVEUyBpZiBMRURTX0NMQVNTPXkgfHwgTEVEU19DTEFTUz1NQUM4MDIxMVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnOjI1OlxcdHNlbGVjdCBBVEg5S19IV1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnOjI2OlxcdHNlbGVjdCBBVEg5S19DT01NT05cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZy0yNy1cXHRoZWxwXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZy0zOC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZzozOTpjb25maWcgQVRIOUtfUENJXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWctNDAtXFx0Ym9vbCBcXFwiQXRoZXJvcyBhdGg5ayBQQ0kvUENJZSBidXMgc3VwcG9ydFxcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZy00MS1cXHRkZWZhdWx0IHlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZzo0MjpcXHRkZXBlbmRzIG9uIEFUSDlLIFxcdTAwMjZcXHUwMDI2IFBDSVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnLTQzLVxcdGhlbHBcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnLTQ3LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnOjQ4OmNvbmZpZyBBVEg5S19BSEJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZy00OS1cXHRib29sIFxcXCJBdGhlcm9zIGF0aDlrIEFIQiBidXMgc3VwcG9ydFxcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZzo1MDpcXHRkZXBlbmRzIG9uIEFUSDlLIFxcdTAwMjZcXHUwMDI2IE9GXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWctNTEtXFx0ZGVmYXVsdCBuXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZy01Ny1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZzo1ODpjb25maWcgQVRIOUtfREVCVUdGU1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnLTU5LVxcdGJvb2wgXFxcIkF0aGVyb3MgYXRoOWsgZGVidWdnaW5nXFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnOjYwOlxcdGRlcGVuZHMgb24gQVRIOUsgXFx1MDAyNlxcdTAwMjYgREVCVUdfRlMgXFx1MDAyNlxcdTAwMjYgTUFDODAyMTFfREVCVUdGU1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnOjYxOlxcdHNlbGVjdCBBVEg5S19DT01NT05fREVCVUdcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZy02Mi1cXHRoZWxwXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZy02OC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZzo2OTpjb25maWcgQVRIOUtfU1RBVElPTl9TVEFUSVNUSUNTXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWctNzAtXFx0Ym9vbCBcXFwiRGV0YWlsZWQgc3RhdGlvbiBzdGF0aXN0aWNzXFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnOjcxOlxcdGRlcGVuZHMgb24gQVRIOUsgXFx1MDAyNlxcdTAwMjYgQVRIOUtfREVCVUdGUyBcXHUwMDI2XFx1MDAyNiBERUJVR19GU1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnLTcyLVxcdGRlZmF1bHQgblxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWctNzUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWc6NzY6Y29uZmlnIEFUSDlLX1RYOTlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZy03Ny1cXHRib29sIFxcXCJBdGhlcm9zIGF0aDlrIFRYOTkgdGVzdGluZyBzdXBwb3J0XFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnOjc4OlxcdGRlcGVuZHMgb24gQVRIOUtfREVCVUdGUyBcXHUwMDI2XFx1MDAyNiBDRkc4MDIxMV9DRVJUSUZJQ0FUSU9OX09OVVNcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZy03OS1cXHRkZWZhdWx0IG5cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnLTk1LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnOjk2OmNvbmZpZyBBVEg5S19ERlNfQ0VSVElGSUVEXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWctOTctXFx0Ym9vbCBcXFwiQXRoZXJvcyBERlMgc3VwcG9ydCBmb3IgY2VydGlmaWVkIHBsYXRmb3Jtc1xcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZzo5ODpcXHRkZXBlbmRzIG9uIEFUSDlLIFxcdTAwMjZcXHUwMDI2IENGRzgwMjExX0NFUlRJRklDQVRJT05fT05VU1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnLTk5LVxcdGRlZmF1bHQgblxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWctMTE0LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnOjExNTpjb25maWcgQVRIOUtfRFlOQUNLXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWctMTE2LVxcdGJvb2wgXFxcIkF0aGVyb3MgYXRoOWsgQUNLIHRpbWVvdXQgZXN0aW1hdGlvbiBhbGdvcml0aG1cXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWc6MTE3OlxcdGRlcGVuZHMgb24gQVRIOUtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZy0xMTgtXFx0ZGVmYXVsdCBuXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZy0xMjMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWc6MTI0OmNvbmZpZyBBVEg5S19XT1dcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZy0xMjUtXFx0Ym9vbCBcXFwiV2FrZSBvbiBXaXJlbGVzcyBMQU4gc3VwcG9ydCAoRVhQRVJJTUVOVEFMKVxcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZzoxMjY6XFx0ZGVwZW5kcyBvbiBBVEg5SyBcXHUwMDI2XFx1MDAyNiBQTVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnLTEyNy1cXHRkZWZhdWx0IG5cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnLTEzMS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZzoxMzI6Y29uZmlnIEFUSDlLX1JGS0lMTFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnLTEzMy1cXHRib29sIFxcXCJBdGhlcm9zIGF0aDlrIHJma2lsbCBzdXBwb3J0XFxcIiBpZiBFWFBFUlRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZzoxMzQ6XFx0ZGVwZW5kcyBvbiBBVEg5S1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnOjEzNTpcXHRkZXBlbmRzIG9uIFJGS0lMTD15IHx8IFJGS0lMTD1BVEg5S1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnLTEzNi1cXHRkZWZhdWx0IHlcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnLTE0MS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZzoxNDI6Y29uZmlnIEFUSDlLX0NIQU5ORUxfQ09OVEVYVFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnLTE0My1cXHRib29sIFxcXCJDaGFubmVsIENvbnRleHQgc3VwcG9ydFxcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZzoxNDQ6XFx0ZGVwZW5kcyBvbiBBVEg5S1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnLTE0NS1cXHRkZWZhdWx0IG5cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnLTE1MC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZzoxNTE6Y29uZmlnIEFUSDlLX1BDT0VNXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWctMTUyLVxcdGJvb2wgXFxcIkF0aGVyb3MgYXRoOWsgc3VwcG9ydCBmb3IgUEMgT0VNIGNhcmRzXFxcIiBpZiBFWFBFUlRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZzoxNTM6XFx0ZGVwZW5kcyBvbiBBVEg5S1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnLTE1NC1cXHRkZWZhdWx0IHlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZy0xNTUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWc6MTU2OmNvbmZpZyBBVEg5S19QQ0lfTk9fRUVQUk9NXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWctMTU3LVxcdHRyaXN0YXRlIFxcXCJBdGhlcm9zIGF0aDlrIHBjaSBsb2FkZXIgZm9yIEVFUFJPTS1sZXNzIGNoaXBzXFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnOjE1ODpcXHRkZXBlbmRzIG9uIEFUSDlLX1BDSVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnLTE1OS1cXHRkZWZhdWx0IG5cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnLTE3MS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZzoxNzI6Y29uZmlnIEFUSDlLX0hUQ1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnLTE3My1cXHR0cmlzdGF0ZSBcXFwiQXRoZXJvcyBIVEMgYmFzZWQgd2lyZWxlc3MgY2FyZHMgc3VwcG9ydFxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnLTE3NS1cXHRzZWxlY3QgTUFDODAyMTFfTEVEUyBpZiBMRURTX0NMQVNTPXkgfHwgTEVEU19DTEFTUz1NQUM4MDIxMVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnOjE3NjpcXHRzZWxlY3QgQVRIOUtfSFdcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZzoxNzc6XFx0c2VsZWN0IEFUSDlLX0NPTU1PTlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnLTE3OC1cXHRoZWxwXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZy0xODYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWc6MTg3OmNvbmZpZyBBVEg5S19IVENfREVCVUdGU1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnLTE4OC1cXHRib29sIFxcXCJBdGhlcm9zIGF0aDlrX2h0YyBkZWJ1Z2dpbmdcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWc6MTg5OlxcdGRlcGVuZHMgb24gQVRIOUtfSFRDIFxcdTAwMjZcXHUwMDI2IERFQlVHX0ZTXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWc6MTkwOlxcdHNlbGVjdCBBVEg5S19DT01NT05fREVCVUdcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZy0xOTEtXFx0aGVscFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWctMTk0LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnOjE5NTpjb25maWcgQVRIOUtfSFdSTkdcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZy0xOTYtXFx0Ym9vbCBcXFwiUmFuZG9tIG51bWJlciBnZW5lcmF0b3Igc3VwcG9ydFxcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZzoxOTc6XFx0ZGVwZW5kcyBvbiBBVEg5SyBcXHUwMDI2XFx1MDAyNiAoSFdfUkFORE9NID0geSB8fCBIV19SQU5ET00gPSBBVEg5SylcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZy0xOTgtXFx0ZGVmYXVsdCBuXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZy0yMDUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWc6MjA2OmNvbmZpZyBBVEg5S19DT01NT05fU1BFQ1RSQUxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZy0yMDctXFx0Ym9vbCBcXFwiQXRoZXJvcyBhdGg5ay9hdGg5a19odGMgc3BlY3RyYWwgc2NhbiBzdXBwb3J0XFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnOjIwODpcXHRkZXBlbmRzIG9uIEFUSDlLX0RFQlVHRlMgfHwgQVRIOUtfSFRDX0RFQlVHRlNcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZy0yMDktXFx0c2VsZWN0IFJFTEFZXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvTWFrZWZpbGU9Mj1hdGg5ay15ICs9XFx0YmVhY29uLm8gXFxcXFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL01ha2VmaWxlLTExLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9NYWtlZmlsZToxMjphdGg5ay0kKENPTkZJR19BVEg5S19CVENPRVhfU1VQUE9SVCkgKz0gbWNpLm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvTWFrZWZpbGU6MTM6YXRoOWstJChDT05GSUdfQVRIOUtfUENJKSArPSBwY2kub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9NYWtlZmlsZToxNDphdGg5ay0kKENPTkZJR19BVEg5S19BSEIpICs9IGFoYi5vXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL01ha2VmaWxlOjE1OmF0aDlrLSQoQ09ORklHX0FUSDlLX0RGU19ERUJVR0ZTKSArPSBkZnNfZGVidWcub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9NYWtlZmlsZToxNjphdGg5ay0kKENPTkZJR19BVEg5S19ERlNfQ0VSVElGSUVEKSArPSBkZnMub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9NYWtlZmlsZToxNzphdGg5ay0kKENPTkZJR19BVEg5S19UWDk5KSArPSB0eDk5Lm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvTWFrZWZpbGU6MTg6YXRoOWstJChDT05GSUdfQVRIOUtfV09XKSArPSB3b3cub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9NYWtlZmlsZToxOTphdGg5ay0kKENPTkZJR19BVEg5S19IV1JORykgKz0gcm5nLm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvTWFrZWZpbGUtMjAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL01ha2VmaWxlOjIxOmF0aDlrLSQoQ09ORklHX0FUSDlLX0RFQlVHRlMpICs9IGRlYnVnLm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvTWFrZWZpbGUtMjItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL01ha2VmaWxlOjIzOmF0aDlrLSQoQ09ORklHX0FUSDlLX1NUQVRJT05fU1RBVElTVElDUykgKz0gZGVidWdfc3RhLm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvTWFrZWZpbGUtMjQtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL01ha2VmaWxlOjI1Om9iai0kKENPTkZJR19BVEg5SykgKz0gYXRoOWsub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9NYWtlZmlsZS0yNi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvTWFrZWZpbGU9Mjc9YXRoOWtfaHcteTo9XFx0XFxcXFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL01ha2VmaWxlLTQ3LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9NYWtlZmlsZTo0ODphdGg5a19ody0kKENPTkZJR19BVEg5S19XT1cpICs9IGFyOTAwM193b3cub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9NYWtlZmlsZS00OS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvTWFrZWZpbGU6NTA6YXRoOWtfaHctJChDT05GSUdfQVRIOUtfQlRDT0VYX1NVUFBPUlQpICs9IGJ0Y29leC5vIFxcXFxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvTWFrZWZpbGUtNTEtXFx0XFx0XFx0XFx0XFx0ICAgYXI5MDAzX21jaS5vIFxcXFxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9NYWtlZmlsZS01My1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvTWFrZWZpbGU6NTQ6YXRoOWtfaHctJChDT05GSUdfQVRIOUtfUENPRU0pICs9IGFyOTAwM19ydHQub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9NYWtlZmlsZS01NS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvTWFrZWZpbGU6NTY6YXRoOWtfaHctJChDT05GSUdfQVRIOUtfRFlOQUNLKSArPSBkeW5hY2sub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9NYWtlZmlsZS01Ny1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvTWFrZWZpbGU6NTg6b2JqLSQoQ09ORklHX0FUSDlLX0hXKSArPSBhdGg5a19ody5vXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL01ha2VmaWxlLTU5LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9NYWtlZmlsZTo2MDpvYmotJChDT05GSUdfQVRIOUtfQ09NTU9OKSArPSBhdGg5a19jb21tb24ub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9NYWtlZmlsZS02MS1hdGg5a19jb21tb24teTo9XFx0Y29tbW9uLm8gXFxcXFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL01ha2VmaWxlLTY0LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9NYWtlZmlsZTo2NTphdGg5a19jb21tb24tJChDT05GSUdfQVRIOUtfQ09NTU9OX0RFQlVHKSArPSBjb21tb24tZGVidWcub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9NYWtlZmlsZTo2NjphdGg5a19jb21tb24tJChDT05GSUdfQVRIOUtfQ09NTU9OX1NQRUNUUkFMKSArPSBjb21tb24tc3BlY3RyYWwub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9NYWtlZmlsZS02Ny1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvTWFrZWZpbGU9Njg9YXRoOWtfaHRjLXkgKz1cXHRodGNfaHN0Lm8gXFxcXFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL01ha2VmaWxlLTc2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9NYWtlZmlsZTo3NzphdGg5a19odGMtJChDT05GSUdfQVRIOUtfSFRDX0RFQlVHRlMpICs9IGh0Y19kcnZfZGVidWcub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9NYWtlZmlsZS03OC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvTWFrZWZpbGU6Nzk6b2JqLSQoQ09ORklHX0FUSDlLX0hUQykgKz0gYXRoOWtfaHRjLm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvTWFrZWZpbGUtODAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL01ha2VmaWxlOjgxOm9iai0kKENPTkZJR19BVEg5S19QQ0lfTk9fRUVQUk9NKSArPSBhdGg5a19wY2lfb3dsX2xvYWRlci5vXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmM9Mzk9c3RhdGljIGNvbnN0IHN0cnVjdCBhbmlfb2ZkbV9sZXZlbF9lbnRyeSBvZmRtX2xldmVsX3RhYmxlW10gPSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmMtNTEtfTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmM6NTI6I2RlZmluZSBBVEg5S19BTklfT0ZETV9OVU1fTEVWRUwgXFxcXFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYy01My1cXHRBUlJBWV9TSVpFKG9mZG1fbGV2ZWxfdGFibGUpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jOjU0OiNkZWZpbmUgQVRIOUtfQU5JX09GRE1fTUFYX0xFVkVMIFxcXFxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmM6NTU6XFx0KEFUSDlLX0FOSV9PRkRNX05VTV9MRVZFTC0xKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYzo1NjojZGVmaW5lIEFUSDlLX0FOSV9PRkRNX0RFRl9MRVZFTCBcXFxcXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jLTU3LVxcdDMgLyogZGVmYXVsdCBsZXZlbCAtIG1hdGNoZXMgdGhlIElOSSBzZXR0aW5ncyAqL1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jPTg1PXN0YXRpYyBjb25zdCBzdHJ1Y3QgYW5pX2Nja19sZXZlbF9lbnRyeSBjY2tfbGV2ZWxfdGFibGVbXSA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYy05Ny1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmM6OTg6I2RlZmluZSBBVEg5S19BTklfQ0NLX05VTV9MRVZFTCBcXFxcXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jLTk5LVxcdEFSUkFZX1NJWkUoY2NrX2xldmVsX3RhYmxlKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYzoxMDA6I2RlZmluZSBBVEg5S19BTklfQ0NLX01BWF9MRVZFTCBcXFxcXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jOjEwMTpcXHQoQVRIOUtfQU5JX0NDS19OVU1fTEVWRUwtMSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmM6MTAyOiNkZWZpbmUgQVRIOUtfQU5JX0NDS19NQVhfTEVWRUxfTE9XX1JTU0kgXFxcXFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYzoxMDM6XFx0KEFUSDlLX0FOSV9DQ0tfTlVNX0xFVkVMLTMpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jOjEwNDojZGVmaW5lIEFUSDlLX0FOSV9DQ0tfREVGX0xFVkVMIFxcXFxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmMtMTA1LVxcdDIgLyogZGVmYXVsdCBsZXZlbCAtIG1hdGNoZXMgdGhlIElOSSBzZXR0aW5ncyAqL1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jPTE0OT1zdGF0aWMgdm9pZCBhdGg5a19od19zZXRfb2ZkbV9uaWwoc3RydWN0IGF0aF9odyAqYWgsIHU4IGltbXVuaXR5TGV2ZWwsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmMtMTYwLVxcdFxcdGltbXVuaXR5TGV2ZWwsIEJFQUNPTl9SU1NJKGFoKSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmM6MTYxOlxcdFxcdEFUSDlLX0FOSV9SU1NJX1RIUl9MT1csXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jOjE2MjpcXHRcXHRBVEg5S19BTklfUlNTSV9USFJfSElHSCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jLTE2My1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmM6MTY0OlxcdGlmIChBUl9TUkVWXzkxMDAoYWgpIFxcdTAwMjZcXHUwMDI2IGltbXVuaXR5TGV2ZWwgXFx1MDAzYyBBVEg5S19BTklfT0ZETV9ERUZfTEVWRUwpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jOjE2NTpcXHRcXHRpbW11bml0eUxldmVsID0gQVRIOUtfQU5JX09GRE1fREVGX0xFVkVMO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYy0xNjYtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmMtMTc0LVxcdFxcdGF0aDlrX2h3X2FuaV9jb250cm9sKGFoLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYzoxNzU6XFx0XFx0XFx0XFx0ICAgICBBVEg5S19BTklfU1BVUl9JTU1VTklUWV9MRVZFTCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmMtMTc2LVxcdFxcdFxcdFxcdCAgICAgZW50cnlfb2ZkbS1cXHUwMDNlc3B1cl9pbW11bml0eV9sZXZlbCk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmMtMTgwLVxcdFxcdGF0aDlrX2h3X2FuaV9jb250cm9sKGFoLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYzoxODE6XFx0XFx0XFx0XFx0ICAgICBBVEg5S19BTklfRklSU1RFUF9MRVZFTCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmMtMTgyLVxcdFxcdFxcdFxcdCAgICAgZW50cnlfb2ZkbS1cXHUwMDNlZmlyX3N0ZXBfbGV2ZWwpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jLTE4NS1cXHRpZiAoYWgtXFx1MDAzZW9wbW9kZSA9PSBOTDgwMjExX0lGVFlQRV9TVEFUSU9OIFxcdTAwMjZcXHUwMDI2XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jOjE4NjpcXHQgICAgQkVBQ09OX1JTU0koYWgpIFxcdTAwM2M9IEFUSDlLX0FOSV9SU1NJX1RIUl9ISUdIKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYy0xODctXFx0XFx0d2Vha19zaWcgPSB0cnVlO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jLTIwMi1cXHRpZiAoYW5pU3RhdGUtXFx1MDAzZW9mZG1XZWFrU2lnRGV0ZWN0ICE9IHdlYWtfc2lnKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYzoyMDM6XFx0XFx0YXRoOWtfaHdfYW5pX2NvbnRyb2woYWgsIEFUSDlLX0FOSV9PRkRNX1dFQUtfU0lHTkFMX0RFVEVDVElPTixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmMtMjA0LVxcdFxcdFxcdFxcdCAgICAgd2Vha19zaWcpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jLTIwOC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmM6MjA5OlxcdGlmIChhbmlTdGF0ZS1cXHUwMDNlb2ZkbU5vaXNlSW1tdW5pdHlMZXZlbCBcXHUwMDNlPSBBVEg5S19BTklfT0ZETV9ERUZfTEVWRUwpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmM6MjEwOlxcdFxcdGFoLVxcdTAwM2Vjb25maWcub2ZkbV90cmlnX2hpZ2ggPSBBVEg5S19BTklfT0ZETV9UUklHX0hJR0g7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jOjIxMTpcXHRcXHRhaC1cXHUwMDNlY29uZmlnLm9mZG1fdHJpZ19sb3cgPSBBVEg5S19BTklfT0ZETV9UUklHX0xPV19BQk9WRV9JTkk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jLTIxMi1cXHR9IGVsc2Uge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYzoyMTM6XFx0XFx0YWgtXFx1MDAzZWNvbmZpZy5vZmRtX3RyaWdfaGlnaCA9IEFUSDlLX0FOSV9PRkRNX1RSSUdfSElHSF9CRUxPV19JTkk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jOjIxNDpcXHRcXHRhaC1cXHUwMDNlY29uZmlnLm9mZG1fdHJpZ19sb3cgPSBBVEg5S19BTklfT0ZETV9UUklHX0xPVztcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmMtMjE1LVxcdH1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYz0yMTg9c3RhdGljIHZvaWQgYXRoOWtfaHdfYW5pX29mZG1fZXJyX3RyaWdnZXIoc3RydWN0IGF0aF9odyAqYWgpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmMtMjIxLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYzoyMjI6XFx0aWYgKGFuaVN0YXRlLVxcdTAwM2VvZmRtTm9pc2VJbW11bml0eUxldmVsIFxcdTAwM2MgQVRIOUtfQU5JX09GRE1fTUFYX0xFVkVMKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYy0yMjMtXFx0XFx0YXRoOWtfaHdfc2V0X29mZG1fbmlsKGFoLCBhbmlTdGF0ZS1cXHUwMDNlb2ZkbU5vaXNlSW1tdW5pdHlMZXZlbCArIDEsIGZhbHNlKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYz0yMjk9c3RhdGljIHZvaWQgYXRoOWtfaHdfc2V0X2Nja19uaWwoc3RydWN0IGF0aF9odyAqYWgsIHVfaW50OF90IGltbXVuaXR5TGV2ZWwsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmMtMjM4LVxcdFxcdGFuaVN0YXRlLVxcdTAwM2VjY2tOb2lzZUltbXVuaXR5TGV2ZWwsIGltbXVuaXR5TGV2ZWwsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jOjIzOTpcXHRcXHRCRUFDT05fUlNTSShhaCksIEFUSDlLX0FOSV9SU1NJX1RIUl9MT1csXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jOjI0MDpcXHRcXHRBVEg5S19BTklfUlNTSV9USFJfSElHSCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jLTI0MS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmM6MjQyOlxcdGlmIChBUl9TUkVWXzkxMDAoYWgpIFxcdTAwMjZcXHUwMDI2IGltbXVuaXR5TGV2ZWwgXFx1MDAzYyBBVEg5S19BTklfQ0NLX0RFRl9MRVZFTClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmM6MjQzOlxcdFxcdGltbXVuaXR5TGV2ZWwgPSBBVEg5S19BTklfQ0NLX0RFRl9MRVZFTDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmMtMjQ0LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYy0yNDUtXFx0aWYgKGFoLVxcdTAwM2VvcG1vZGUgPT0gTkw4MDIxMV9JRlRZUEVfU1RBVElPTiBcXHUwMDI2XFx1MDAyNlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYzoyNDY6XFx0ICAgIEJFQUNPTl9SU1NJKGFoKSBcXHUwMDNjPSBBVEg5S19BTklfUlNTSV9USFJfTE9XIFxcdTAwMjZcXHUwMDI2XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jOjI0NzpcXHQgICAgaW1tdW5pdHlMZXZlbCBcXHUwMDNlIEFUSDlLX0FOSV9DQ0tfTUFYX0xFVkVMX0xPV19SU1NJKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYzoyNDg6XFx0XFx0aW1tdW5pdHlMZXZlbCA9IEFUSDlLX0FOSV9DQ0tfTUFYX0xFVkVMX0xPV19SU1NJO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYy0yNDktXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmMtMjU4LVxcdFxcdGF0aDlrX2h3X2FuaV9jb250cm9sKGFoLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYzoyNTk6XFx0XFx0XFx0XFx0ICAgICBBVEg5S19BTklfRklSU1RFUF9MRVZFTCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmMtMjYwLVxcdFxcdFxcdFxcdCAgICAgZW50cnlfY2NrLVxcdTAwM2VmaXJfc3RlcF9sZXZlbCk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmMtMjY4LVxcdFxcdGF0aDlrX2h3X2FuaV9jb250cm9sKGFoLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYzoyNjk6XFx0XFx0XFx0XFx0ICAgICBBVEg5S19BTklfTVJDX0NDSyxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmMtMjcwLVxcdFxcdFxcdFxcdCAgICAgZW50cnlfY2NrLVxcdTAwM2VtcmNfY2NrX29uKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYz0yNzM9c3RhdGljIHZvaWQgYXRoOWtfaHdfYW5pX2Nja19lcnJfdHJpZ2dlcihzdHJ1Y3QgYXRoX2h3ICphaClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYy0yNzYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jOjI3NzpcXHRpZiAoYW5pU3RhdGUtXFx1MDAzZWNja05vaXNlSW1tdW5pdHlMZXZlbCBcXHUwMDNjIEFUSDlLX0FOSV9DQ0tfTUFYX0xFVkVMKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYy0yNzgtXFx0XFx0YXRoOWtfaHdfc2V0X2Nja19uaWwoYWgsIGFuaVN0YXRlLVxcdTAwM2VjY2tOb2lzZUltbXVuaXR5TGV2ZWwgKyAxLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jPTMwOT12b2lkIGF0aDlrX2FuaV9yZXNldChzdHJ1Y3QgYXRoX2h3ICphaCwgYm9vbCBpc19zY2FubmluZylcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYy0zMjEtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jOjMyMjpcXHRvZmRtX25pbCA9IG1heF90KGludCwgQVRIOUtfQU5JX09GRE1fREVGX0xFVkVMLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYy0zMjMtXFx0XFx0XFx0IGFuaVN0YXRlLVxcdTAwM2VvZmRtTm9pc2VJbW11bml0eUxldmVsKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmM6MzI0OlxcdGNja19uaWwgPSBtYXhfdChpbnQsIEFUSDlLX0FOSV9DQ0tfREVGX0xFVkVMLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYy0zMjUtXFx0XFx0XFx0IGFuaVN0YXRlLVxcdTAwM2VjY2tOb2lzZUltbXVuaXR5TGV2ZWwpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jLTMzNi1cXHRcXHRpZiAoYW5pU3RhdGUtXFx1MDAzZW9mZG1Ob2lzZUltbXVuaXR5TGV2ZWwgIT1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmM6MzM3OlxcdFxcdCAgICBBVEg5S19BTklfT0ZETV9ERUZfTEVWRUwgfHxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmMtMzM4LVxcdFxcdCAgICBhbmlTdGF0ZS1cXHUwMDNlY2NrTm9pc2VJbW11bml0eUxldmVsICE9XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jOjMzOTpcXHRcXHQgICAgQVRIOUtfQU5JX0NDS19ERUZfTEVWRUwpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmMtMzQwLVxcdFxcdFxcdGF0aF9kYmcoY29tbW9uLCBBTkksXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmMtMzQ3LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYzozNDg6XFx0XFx0XFx0b2ZkbV9uaWwgPSBBVEg5S19BTklfT0ZETV9ERUZfTEVWRUw7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jOjM0OTpcXHRcXHRcXHRjY2tfbmlsID0gQVRIOUtfQU5JX0NDS19ERUZfTEVWRUw7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jLTM1MC1cXHRcXHR9XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmM9NDc3PXZvaWQgYXRoOWtfaHdfYW5pX2luaXQoc3RydWN0IGF0aF9odyAqYWgpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmMtNDg0LVxcdGlmIChBUl9TUkVWXzkzMDBfMjBfT1JfTEFURVIoYWgpKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jOjQ4NTpcXHRcXHRhaC1cXHUwMDNlY29uZmlnLm9mZG1fdHJpZ19oaWdoID0gQVRIOUtfQU5JX09GRE1fVFJJR19ISUdIO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYzo0ODY6XFx0XFx0YWgtXFx1MDAzZWNvbmZpZy5vZmRtX3RyaWdfbG93ID0gQVRIOUtfQU5JX09GRE1fVFJJR19MT1c7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jOjQ4NzpcXHRcXHRhaC1cXHUwMDNlY29uZmlnLmNja190cmlnX2hpZ2ggPSBBVEg5S19BTklfQ0NLX1RSSUdfSElHSDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmM6NDg4OlxcdFxcdGFoLVxcdTAwM2Vjb25maWcuY2NrX3RyaWdfbG93ID0gQVRIOUtfQU5JX0NDS19UUklHX0xPVztcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmMtNDg5LVxcdH0gZWxzZSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jOjQ5MDpcXHRcXHRhaC1cXHUwMDNlY29uZmlnLm9mZG1fdHJpZ19oaWdoID0gQVRIOUtfQU5JX09GRE1fVFJJR19ISUdIX09MRDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmM6NDkxOlxcdFxcdGFoLVxcdTAwM2Vjb25maWcub2ZkbV90cmlnX2xvdyA9IEFUSDlLX0FOSV9PRkRNX1RSSUdfTE9XX09MRDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmM6NDkyOlxcdFxcdGFoLVxcdTAwM2Vjb25maWcuY2NrX3RyaWdfaGlnaCA9IEFUSDlLX0FOSV9DQ0tfVFJJR19ISUdIX09MRDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmM6NDkzOlxcdFxcdGFoLVxcdTAwM2Vjb25maWcuY2NrX3RyaWdfbG93ID0gQVRIOUtfQU5JX0NDS19UUklHX0xPV19PTEQ7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jLTQ5NC1cXHR9XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jLTQ5NS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmM6NDk2OlxcdGFuaS1cXHUwMDNlc3B1ckltbXVuaXR5TGV2ZWwgPSBBVEg5S19BTklfU1BVUl9JTU1VTkVfTFZMO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYzo0OTc6XFx0YW5pLVxcdTAwM2VmaXJzdGVwTGV2ZWwgPSBBVEg5S19BTklfRklSU1RFUF9MVkw7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jLTQ5OC1cXHRhbmktXFx1MDAzZW1yY0NDSyA9IEFSX1NSRVZfOTMwMF8yMF9PUl9MQVRFUihhaCkgPyB0cnVlIDogZmFsc2U7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmMtNTAwLVxcdGFuaS1cXHUwMDNlb2ZkbVdlYWtTaWdEZXRlY3QgPSB0cnVlO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYzo1MDE6XFx0YW5pLVxcdTAwM2VjY2tOb2lzZUltbXVuaXR5TGV2ZWwgPSBBVEg5S19BTklfQ0NLX0RFRl9MRVZFTDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmM6NTAyOlxcdGFuaS1cXHUwMDNlb2ZkbU5vaXNlSW1tdW5pdHlMZXZlbCA9IEFUSDlLX0FOSV9PRkRNX0RFRl9MRVZFTDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmMtNTAzLVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jLTUwNy1cXHQgKi9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmM6NTA4OlxcdGFoLVxcdTAwM2VhbmlwZXJpb2QgPSBBVEg5S19BTklfUEVSSU9EO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYzo1MDk6XFx0YWgtXFx1MDAzZWNvbmZpZy5hbmlfcG9sbF9pbnRlcnZhbCA9IEFUSDlLX0FOSV9QT0xMSU5URVJWQUw7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jLTUxMC1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuaC0yMi0vKiB1bml0cyBhcmUgZXJyb3JzIHBlciBzZWNvbmQgKi9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmg6MjM6I2RlZmluZSBBVEg5S19BTklfT0ZETV9UUklHX0hJR0ggICAgICAgICAgIDM1MDBcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmg6MjQ6I2RlZmluZSBBVEg5S19BTklfT0ZETV9UUklHX0hJR0hfQkVMT1dfSU5JIDEwMDBcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmg6MjU6I2RlZmluZSBBVEg5S19BTklfT0ZETV9UUklHX0hJR0hfT0xEICAgICAgIDUwMFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuaC0yNi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmg6Mjc6I2RlZmluZSBBVEg5S19BTklfT0ZETV9UUklHX0xPVyAgICAgICAgICAgNDAwXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5oOjI4OiNkZWZpbmUgQVRIOUtfQU5JX09GRE1fVFJJR19MT1dfQUJPVkVfSU5JIDkwMFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuaDoyOTojZGVmaW5lIEFUSDlLX0FOSV9PRkRNX1RSSUdfTE9XX09MRCAgICAgICAyMDBcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmgtMzAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5oOjMxOiNkZWZpbmUgQVRIOUtfQU5JX0NDS19UUklHX0hJR0ggICAgICAgICAgIDYwMFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuaDozMjojZGVmaW5lIEFUSDlLX0FOSV9DQ0tfVFJJR19ISUdIX09MRCAgICAgICAyMDBcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmg6MzM6I2RlZmluZSBBVEg5S19BTklfQ0NLX1RSSUdfTE9XICAgICAgICAgICAgMzAwXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5oOjM0OiNkZWZpbmUgQVRIOUtfQU5JX0NDS19UUklHX0xPV19PTEQgICAgICAgIDEwMFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuaC0zNS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmg6MzY6I2RlZmluZSBBVEg5S19BTklfU1BVUl9JTU1VTkVfTFZMICAgICAgICAgM1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuaDozNzojZGVmaW5lIEFUSDlLX0FOSV9GSVJTVEVQX0xWTCAgICAgICAgICAgICAyXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5oLTM4LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuaDozOTojZGVmaW5lIEFUSDlLX0FOSV9SU1NJX1RIUl9ISUdIICAgICAgICAgICA0MFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuaDo0MDojZGVmaW5lIEFUSDlLX0FOSV9SU1NJX1RIUl9MT1cgICAgICAgICAgICA3XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5oLTQxLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuaDo0MjojZGVmaW5lIEFUSDlLX0FOSV9QRVJJT0QgICAgICAgICAgICAgICAgICAzMDBcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmgtNDMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5oLTQ0LS8qIGluIG1zICovXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5oOjQ1OiNkZWZpbmUgQVRIOUtfQU5JX1BPTExJTlRFUlZBTCAgICAgICAgICAgIDEwMDBcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmgtNDYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5oOjQ3OiNkZWZpbmUgQVRIOUtfU0lHX0ZJUlNURVBfU0VUVElOR19NSU4gICAgIDBcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmg6NDg6I2RlZmluZSBBVEg5S19TSUdfRklSU1RFUF9TRVRUSU5HX01BWCAgICAgMjBcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmg6NDk6I2RlZmluZSBBVEg5S19TSUdfU1BVUl9JTU1fU0VUVElOR19NSU4gICAgMFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuaDo1MDojZGVmaW5lIEFUSDlLX1NJR19TUFVSX0lNTV9TRVRUSU5HX01BWCAgICAyMlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuaC01MS1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuaD01ND1lbnVtIGF0aDlrX2FuaV9jbWQge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuaDo1NTpcXHRBVEg5S19BTklfT0ZETV9XRUFLX1NJR05BTF9ERVRFQ1RJT04gPSAweDEsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5oOjU2OlxcdEFUSDlLX0FOSV9GSVJTVEVQX0xFVkVMID0gMHgyLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuaDo1NzpcXHRBVEg5S19BTklfU1BVUl9JTU1VTklUWV9MRVZFTCA9IDB4NCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmg6NTg6XFx0QVRIOUtfQU5JX01SQ19DQ0sgPSAweDgsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5oOjU5OlxcdEFUSDlLX0FOSV9BTEwgPSAweGZmZlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuaC02MC19O1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FyNTAwOF9waHkuYz05NTM9c3RhdGljIGJvb2wgYXI1MDA4X2h3X2FuaV9jb250cm9sX25ldyhzdHJ1Y3QgYXRoX2h3ICphaCxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hcjUwMDhfcGh5LmMtOTYyLVxcdHN3aXRjaCAoY21kIFxcdTAwMjYgYWgtXFx1MDAzZWFuaV9mdW5jdGlvbikge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hcjUwMDhfcGh5LmM6OTYzOlxcdGNhc2UgQVRIOUtfQU5JX09GRE1fV0VBS19TSUdOQUxfREVURUNUSU9OOntcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYXI1MDA4X3BoeS5jLTk2NC1cXHRcXHQvKlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FyNTAwOF9waHkuYy0xMDQzLVxcdH1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYXI1MDA4X3BoeS5jOjEwNDQ6XFx0Y2FzZSBBVEg5S19BTklfRklSU1RFUF9MRVZFTDp7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FyNTAwOF9waHkuYy0xMDQ1LVxcdFxcdHUzMiBsZXZlbCA9IHBhcmFtO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FyNTAwOF9waHkuYy0xMDU4LVxcdFxcdFxcdFxcdGxldmVsLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hcjUwMDhfcGh5LmM6MTA1OTpcXHRcXHRcXHRcXHRBVEg5S19BTklfRklSU1RFUF9MVkwsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FyNTAwOF9waHkuYy0xMDYwLVxcdFxcdFxcdFxcdHZhbHVlLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FyNTAwOF9waHkuYy0xMDY2LVxcdFxcdFxcdFxcdGxldmVsLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hcjUwMDhfcGh5LmM6MTA2NzpcXHRcXHRcXHRcXHRBVEg5S19BTklfRklSU1RFUF9MVkwsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FyNTAwOF9waHkuYy0xMDY4LVxcdFxcdFxcdFxcdHZhbHVlLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FyNTAwOF9waHkuYy0xMDc3LVxcdH1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYXI1MDA4X3BoeS5jOjEwNzg6XFx0Y2FzZSBBVEg5S19BTklfU1BVUl9JTU1VTklUWV9MRVZFTDp7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FyNTAwOF9waHkuYy0xMDc5LVxcdFxcdHUzMiBsZXZlbCA9IHBhcmFtO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FyNTAwOF9waHkuYy0xMDkzLVxcdFxcdFxcdFxcdGxldmVsLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hcjUwMDhfcGh5LmM6MTA5NDpcXHRcXHRcXHRcXHRBVEg5S19BTklfU1BVUl9JTU1VTkVfTFZMLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hcjUwMDhfcGh5LmMtMTA5NS1cXHRcXHRcXHRcXHR2YWx1ZSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hcjUwMDhfcGh5LmMtMTEwMS1cXHRcXHRcXHRcXHRsZXZlbCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYXI1MDA4X3BoeS5jOjExMDI6XFx0XFx0XFx0XFx0QVRIOUtfQU5JX1NQVVJfSU1NVU5FX0xWTCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYXI1MDA4X3BoeS5jLTExMDMtXFx0XFx0XFx0XFx0dmFsdWUsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYXI1MDA4X3BoeS5jLTExMTItXFx0fVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hcjUwMDhfcGh5LmM6MTExMzpcXHRjYXNlIEFUSDlLX0FOSV9NUkNfQ0NLOlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hcjUwMDhfcGh5LmMtMTExNC1cXHRcXHQvKlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FyNTAwOF9waHkuYz0xMTY5PXN0YXRpYyB2b2lkIGFyNTAwOF9od19hbmlfY2FjaGVfaW5pX3JlZ3Moc3RydWN0IGF0aF9odyAqYWgpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYXI1MDA4X3BoeS5jLTEyMTMtXFx0LyogdGhlc2UgbGV2ZWxzIGp1c3QgZ290IHJlc2V0IHRvIGRlZmF1bHRzIGJ5IHRoZSBJTkkgKi9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYXI1MDA4X3BoeS5jOjEyMTQ6XFx0YW5pU3RhdGUtXFx1MDAzZXNwdXJJbW11bml0eUxldmVsID0gQVRIOUtfQU5JX1NQVVJfSU1NVU5FX0xWTDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYXI1MDA4X3BoeS5jOjEyMTU6XFx0YW5pU3RhdGUtXFx1MDAzZWZpcnN0ZXBMZXZlbCA9IEFUSDlLX0FOSV9GSVJTVEVQX0xWTDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYXI1MDA4X3BoeS5jLTEyMTYtXFx0YW5pU3RhdGUtXFx1MDAzZW9mZG1XZWFrU2lnRGV0ZWN0ID0gdHJ1ZTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hcjkwMDJfbWFjLmM9MzI9c3RhdGljIGJvb2wgYXI5MDAyX2h3X2dldF9pc3Ioc3RydWN0IGF0aF9odyAqYWgsIGVudW0gYXRoOWtfaW50ICptYXNrZWQsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYXI5MDAyX21hYy5jLTY2LVxcdFxcdFxcdGlmIChpc3IyIFxcdTAwMjYgQVJfSVNSX1MyX1RJTSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYXI5MDAyX21hYy5jOjY3OlxcdFxcdFxcdFxcdG1hc2syIHw9IEFUSDlLX0lOVF9USU07XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FyOTAwMl9tYWMuYy02OC1cXHRcXHRcXHRpZiAoaXNyMiBcXHUwMDI2IEFSX0lTUl9TMl9EVElNKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hcjkwMDJfbWFjLmM6Njk6XFx0XFx0XFx0XFx0bWFzazIgfD0gQVRIOUtfSU5UX0RUSU07XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FyOTAwMl9tYWMuYy03MC1cXHRcXHRcXHRpZiAoaXNyMiBcXHUwMDI2IEFSX0lTUl9TMl9EVElNU1lOQylcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYXI5MDAyX21hYy5jOjcxOlxcdFxcdFxcdFxcdG1hc2syIHw9IEFUSDlLX0lOVF9EVElNU1lOQztcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYXI5MDAyX21hYy5jLTcyLVxcdFxcdFxcdGlmIChpc3IyIFxcdTAwMjYgKEFSX0lTUl9TMl9DQUJFTkQpKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hcjkwMDJfbWFjLmM6NzM6XFx0XFx0XFx0XFx0bWFzazIgfD0gQVRIOUtfSU5UX0NBQkVORDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYXI5MDAyX21hYy5jLTc0LVxcdFxcdFxcdGlmIChpc3IyIFxcdTAwMjYgQVJfSVNSX1MyX0dUVClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYXI5MDAyX21hYy5jOjc1OlxcdFxcdFxcdFxcdG1hc2syIHw9IEFUSDlLX0lOVF9HVFQ7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FyOTAwMl9tYWMuYy03Ni1cXHRcXHRcXHRpZiAoaXNyMiBcXHUwMDI2IEFSX0lTUl9TMl9DU1QpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FyOTAwMl9tYWMuYzo3NzpcXHRcXHRcXHRcXHRtYXNrMiB8PSBBVEg5S19JTlRfQ1NUO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hcjkwMDJfbWFjLmMtNzgtXFx0XFx0XFx0aWYgKGlzcjIgXFx1MDAyNiBBUl9JU1JfUzJfVFNGT09SKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hcjkwMDJfbWFjLmM6Nzk6XFx0XFx0XFx0XFx0bWFzazIgfD0gQVRIOUtfSU5UX1RTRk9PUjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYXI5MDAyX21hYy5jLTgwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hcjkwMDJfbWFjLmM6ODE6XFx0XFx0XFx0aWYgKCEocENhcC1cXHUwMDNlaHdfY2FwcyBcXHUwMDI2IEFUSDlLX0hXX0NBUF9SQUNfU1VQUE9SVEVEKSkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hcjkwMDJfbWFjLmMtODItXFx0XFx0XFx0XFx0UkVHX1dSSVRFKGFoLCBBUl9JU1JfUzIsIGlzcjIpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FyOTAwMl9tYWMuYy04Ni1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYXI5MDAyX21hYy5jOjg3OlxcdFxcdGlmIChwQ2FwLVxcdTAwM2Vod19jYXBzIFxcdTAwMjYgQVRIOUtfSFdfQ0FQX1JBQ19TVVBQT1JURUQpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FyOTAwMl9tYWMuYy04OC1cXHRcXHRcXHRpc3IgPSBSRUdfUkVBRChhaCwgQVJfSVNSX1JBQyk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYXI5MDAyX21hYy5jLTk0LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hcjkwMDJfbWFjLmM6OTU6XFx0XFx0Km1hc2tlZCA9IGlzciBcXHUwMDI2IEFUSDlLX0lOVF9DT01NT047XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FyOTAwMl9tYWMuYy05Ni1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hcjkwMDJfbWFjLmMtOTgtXFx0XFx0XFx0ICAgQVJfSVNSX1JYT0sgfCBBUl9JU1JfUlhFUlIpKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hcjkwMDJfbWFjLmM6OTk6XFx0XFx0XFx0Km1hc2tlZCB8PSBBVEg5S19JTlRfUlg7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FyOTAwMl9tYWMuYy0xMDAtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYXI5MDAyX21hYy5jLTEwNS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYXI5MDAyX21hYy5jOjEwNjpcXHRcXHRcXHQqbWFza2VkIHw9IEFUSDlLX0lOVF9UWDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYXI5MDAyX21hYy5jLTEwNy1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYXI5MDAyX21hYy5jOjEwODpcXHRcXHRcXHRpZiAocENhcC1cXHUwMDNlaHdfY2FwcyBcXHUwMDI2IEFUSDlLX0hXX0NBUF9SQUNfU1VQUE9SVEVEKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FyOTAwMl9tYWMuYy0xMDktXFx0XFx0XFx0XFx0czBfcyA9IFJFR19SRUFEKGFoLCBBUl9JU1JfUzBfUyk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYXI5MDAyX21hYy5jLTEzOS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYXI5MDAyX21hYy5jOjE0MDpcXHRcXHRpZiAocENhcC1cXHUwMDNlaHdfY2FwcyBcXHUwMDI2IEFUSDlLX0hXX0NBUF9SQUNfU1VQUE9SVEVEKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FyOTAwMl9tYWMuYy0xNDEtXFx0XFx0XFx0czVfcyA9IFJFR19SRUFEKGFoLCBBUl9JU1JfUzVfUyhhaCkpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FyOTAwMl9tYWMuYy0xNTItXFx0XFx0aWYgKGFoLVxcdTAwM2VpbnRyX2dlbl90aW1lcl90cmlnZ2VyKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hcjkwMDJfbWFjLmM6MTUzOlxcdFxcdFxcdCptYXNrZWQgfD0gQVRIOUtfSU5UX0dFTlRJTUVSO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hcjkwMDJfbWFjLmMtMTU0LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hcjkwMDJfbWFjLmMtMTU1LVxcdFxcdGlmICgoczVfcyBcXHUwMDI2IEFSX0lTUl9TNV9USU1fVElNRVIpIFxcdTAwMjZcXHUwMDI2XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FyOTAwMl9tYWMuYzoxNTY6XFx0XFx0ICAgICEocENhcC1cXHUwMDNlaHdfY2FwcyBcXHUwMDI2IEFUSDlLX0hXX0NBUF9BVVRPU0xFRVApKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hcjkwMDJfbWFjLmM6MTU3OlxcdFxcdFxcdCptYXNrZWQgfD0gQVRIOUtfSU5UX1RJTV9USU1FUjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYXI5MDAyX21hYy5jLTE1OC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYXI5MDAyX21hYy5jOjE1OTpcXHRcXHRpZiAoIShwQ2FwLVxcdTAwM2Vod19jYXBzIFxcdTAwMjYgQVRIOUtfSFdfQ0FQX1JBQ19TVVBQT1JURUQpKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FyOTAwMl9tYWMuYy0xNjAtXFx0XFx0XFx0UkVHX1dSSVRFKGFoLCBBUl9JU1JfUzUsIHM1X3MpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FyOTAwMl9tYWMuYy0xNjQtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FyOTAwMl9tYWMuYzoxNjU6XFx0aWYgKCEocENhcC1cXHUwMDNlaHdfY2FwcyBcXHUwMDI2IEFUSDlLX0hXX0NBUF9SQUNfU1VQUE9SVEVEKSkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hcjkwMDJfbWFjLmMtMTY2LVxcdFxcdFJFR19XUklURShhaCwgQVJfSVNSLCBpc3IpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FyOTAwMl9tYWMuYy0xODktXFx0XFx0XFx0fVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hcjkwMDJfbWFjLmM6MTkwOlxcdFxcdFxcdCptYXNrZWQgfD0gQVRIOUtfSU5UX0ZBVEFMO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hcjkwMDJfbWFjLmMtMTkxLVxcdFxcdH1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hcjkwMDJfbWFjLmMtMTk2LVxcdFxcdFxcdFJFR19XUklURShhaCwgQVJfUkMsIDApO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hcjkwMDJfbWFjLmM6MTk3OlxcdFxcdFxcdCptYXNrZWQgfD0gQVRIOUtfSU5UX0ZBVEFMO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hcjkwMDJfbWFjLmMtMTk4LVxcdFxcdH1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hcjkwMDJfbWFjLmM9MjEyPWFyOTAwMl9zZXRfdHhkZXNjKHN0cnVjdCBhdGhfaHcgKmFoLCB2b2lkICpkcywgc3RydWN0IGF0aF90eF9pbmZvICppKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FyOTAwMl9tYWMuYy0yNjAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FyOTAwMl9tYWMuYzoyNjE6XFx0Y3RsMSB8PSAoaS1cXHUwMDNla2V5aXggIT0gQVRIOUtfVFhLRVlJWF9JTlZBTElEID8gU00oaS1cXHUwMDNla2V5aXgsIEFSX0Rlc3RJZHgpIDogMClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYXI5MDAyX21hYy5jLTI2Mi1cXHRcXHR8IFNNKGktXFx1MDAzZXR5cGUsIEFSX0ZyYW1lVHlwZSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYXI5MDAyX21hYy5jOjI2MzpcXHRcXHR8IChpLVxcdTAwM2VmbGFncyBcXHUwMDI2IEFUSDlLX1RYREVTQ19OT0FDSyA/IEFSX05vQWNrIDogMClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYXI5MDAyX21hYy5jOjI2NDpcXHRcXHR8IChpLVxcdTAwM2VmbGFncyBcXHUwMDI2IEFUSDlLX1RYREVTQ19FWFRfT05MWSA/IEFSX0V4dE9ubHkgOiAwKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hcjkwMDJfbWFjLmM6MjY1OlxcdFxcdHwgKGktXFx1MDAzZWZsYWdzIFxcdTAwMjYgQVRIOUtfVFhERVNDX0VYVF9BTkRfQ1RMID8gQVJfRXh0QW5kQ3RsIDogMCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FyOTAwMl9tYWMuYy0yNjYtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYXI5MDAyX21hYy5jLTI4Mi1cXHRXUklURV9PTkNFKGFkcy1cXHUwMDNlZHNfY3RsMCwgKGktXFx1MDAzZXBrdF9sZW4gXFx1MDAyNiBBUl9GcmFtZUxlbilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYXI5MDAyX21hYy5jOjI4MzpcXHRcXHR8IChpLVxcdTAwM2VmbGFncyBcXHUwMDI2IEFUSDlLX1RYREVTQ19WTUYgPyBBUl9WaXJ0TW9yZUZyYWcgOiAwKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hcjkwMDJfbWFjLmMtMjg0LVxcdFxcdHwgU00oaS1cXHUwMDNldHhwb3dlclswXSwgQVJfWG1pdFBvd2VyMClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYXI5MDAyX21hYy5jOjI4NTpcXHRcXHR8IChpLVxcdTAwM2VmbGFncyBcXHUwMDI2IEFUSDlLX1RYREVTQ19WRU9MID8gQVJfVkVPTCA6IDApXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FyOTAwMl9tYWMuYzoyODY6XFx0XFx0fCAoaS1cXHUwMDNlZmxhZ3MgXFx1MDAyNiBBVEg5S19UWERFU0NfSU5UUkVRID8gQVJfVHhJbnRyUmVxIDogMClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYXI5MDAyX21hYy5jOjI4NzpcXHRcXHR8IChpLVxcdTAwM2VrZXlpeCAhPSBBVEg5S19UWEtFWUlYX0lOVkFMSUQgPyBBUl9EZXN0SWR4VmFsaWQgOiAwKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hcjkwMDJfbWFjLmM6Mjg4OlxcdFxcdHwgKGktXFx1MDAzZWZsYWdzIFxcdTAwMjYgQVRIOUtfVFhERVNDX0NMUkRNQVNLID8gQVJfQ2xyRGVzdE1hc2sgOiAwKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hcjkwMDJfbWFjLmM6Mjg5OlxcdFxcdHwgKGktXFx1MDAzZWZsYWdzIFxcdTAwMjYgQVRIOUtfVFhERVNDX1JUU0VOQSA/IEFSX1JUU0VuYWJsZSA6XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FyOTAwMl9tYWMuYzoyOTA6XFx0XFx0ICAgKGktXFx1MDAzZWZsYWdzIFxcdTAwMjYgQVRIOUtfVFhERVNDX0NUU0VOQSA/IEFSX0NUU0VuYWJsZSA6IDApKSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FyOTAwMl9tYWMuYy0yOTEtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYXI5MDAyX21hYy5jPTMxNj1zdGF0aWMgaW50IGFyOTAwMl9od19wcm9jX3R4ZGVzYyhzdHJ1Y3QgYXRoX2h3ICphaCwgdm9pZCAqZHMsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYXI5MDAyX21hYy5jLTMzMC1cXHRpZiAoc3RhdHVzIFxcdTAwMjYgQVJfVHhPcEV4Y2VlZGVkKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hcjkwMDJfbWFjLmM6MzMxOlxcdFxcdHRzLVxcdTAwM2V0c19zdGF0dXMgfD0gQVRIOUtfVFhFUlJfWFRYT1A7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FyOTAwMl9tYWMuYy0zMzItXFx0dHMtXFx1MDAzZXRpZCA9IE1TKHN0YXR1cywgQVJfVHhUaWQpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FyOTAwMl9tYWMuYy0zNDAtXFx0aWYgKHN0YXR1cyBcXHUwMDI2IEFSX1R4QmFTdGF0dXMpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYXI5MDAyX21hYy5jOjM0MTpcXHRcXHR0cy1cXHUwMDNldHNfZmxhZ3MgfD0gQVRIOUtfVFhfQkE7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FyOTAwMl9tYWMuYy0zNDItXFx0XFx0dHMtXFx1MDAzZWJhX2xvdyA9IGFkcy1cXHUwMDNlQVJfQmFCaXRtYXBMb3c7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYXI5MDAyX21hYy5jLTM0Ny1cXHRpZiAoc3RhdHVzIFxcdTAwMjYgQVJfRnJtWG1pdE9LKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hcjkwMDJfbWFjLmM6MzQ4OlxcdFxcdHRzLVxcdTAwM2V0c19zdGF0dXMgfD0gQVRIOUtfVFhfQUNLRUQ7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FyOTAwMl9tYWMuYy0zNDktXFx0ZWxzZSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FyOTAwMl9tYWMuYy0zNTAtXFx0XFx0aWYgKHN0YXR1cyBcXHUwMDI2IEFSX0V4Y2Vzc2l2ZVJldHJpZXMpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FyOTAwMl9tYWMuYzozNTE6XFx0XFx0XFx0dHMtXFx1MDAzZXRzX3N0YXR1cyB8PSBBVEg5S19UWEVSUl9YUkVUUlk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FyOTAwMl9tYWMuYy0zNTItXFx0XFx0aWYgKHN0YXR1cyBcXHUwMDI2IEFSX0ZpbHRlcmVkKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hcjkwMDJfbWFjLmM6MzUzOlxcdFxcdFxcdHRzLVxcdTAwM2V0c19zdGF0dXMgfD0gQVRIOUtfVFhFUlJfRklMVDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYXI5MDAyX21hYy5jLTM1NC1cXHRcXHRpZiAoc3RhdHVzIFxcdTAwMjYgQVJfRklGT1VuZGVycnVuKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FyOTAwMl9tYWMuYzozNTU6XFx0XFx0XFx0dHMtXFx1MDAzZXRzX3N0YXR1cyB8PSBBVEg5S19UWEVSUl9GSUZPO1xcblxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOS0wNlQwODowOTowOS41MTA5NzA5NloiLCJTZXEiOjUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy43LWZsYXNoIiwiRHVyYXRpb24iOjQwMjU0NDU3NDEsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqSW52ZXN0aWdhdGluZyB0aGUgYGF0aDlrYCBEcml2ZXIqKlxuXG5Pa2F5LCBzbyBJJ20gdHJ5aW5nIHRvIGZpZ3VyZSBvdXQgdGhlIHJlbGF0aW9uc2hpcCBiZXR3ZWVuIGBhdGg5a2AgYW5kIGBhdGg5a19odGNgLiBJJ20gcHJldHR5IHN1cmUgYGF0aDlrYCBpcyBwcmltYXJpbHkgZm9yIFBDSSBhbmQgQUhCIGludGVyZmFjZXMsIGJ1dCBJIG5lZWQgdG8gY29uZmlybSB0aGF0LiBUaGUgYmVzdCB3YXkgdG8gZG8gdGhpcyBpcyB0byBkaXZlIGludG8gdGhlIGtlcm5lbCBzb3VyY2UsIHNwZWNpZmljYWxseSB0aGUgYnVpbGQgcHJvY2Vzcy4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgd2hpY2ggZmlsZXMgYXJlIGNvbXBpbGVkIGludG8gYGF0aDlrLmtvYCB2ZXJzdXMgYGF0aDlrX2h0Yy5rb2AuIEknbGwgdXNlIGBhdGg5ay9NYWtlZmlsZWAgaW4gdGhlIGtlcm5lbCBzb3VyY2UgdG8gZ2V0IGEgY2xlYXIgcGljdHVyZSBhbmQgdGhlbiB1c2UgYHJlYWQtZmlsZWAgdG8gZ2V0IHRoZSBNYWtlZmlsZS4gVGhpcyBzaG91bGQgaWxsdW1pbmF0ZSB0aGUgZHJpdmVyJ3MgYXJjaGl0ZWN0dXJlIGFuZCB0aGUga2V5IGRpZmZlcmVuY2VzIGJldHdlZW4gdGhlIHR3byBtb2R1bGVzLlxuXG5cbiIsIklucHV0VG9rZW5zIjoxODI0OSwiT3V0cHV0VG9rZW5zIjozOSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjEwMywiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOS0wNlQwODowOToxMy41MzY0MjE3MDFaIiwiU2VxIjo2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJyZWFkLWZpbGUiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNzA5ODAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJGaWxlXCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL01ha2VmaWxlXCIsXG4gIFwiRmlyc3RMaW5lXCI6IDEsXG4gIFwiTGluZUNvdW50XCI6IDg1XG59IiwiUmVzdWx0cyI6IntcbiAgXCJDb250ZW50c1wiOiBcIiAgIDE6XFx0IyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogSVNDXFxuICAgMjpcXHRhdGg5ay15ICs9XFx0YmVhY29uLm8gXFxcXFxcbiAgIDM6XFx0XFx0XFx0Z3Bpby5vIFxcXFxcXG4gICA0OlxcdFxcdFxcdGluaXQubyBcXFxcXFxuICAgNTpcXHRcXHRcXHRtYWluLm8gXFxcXFxcbiAgIDY6XFx0XFx0XFx0cmVjdi5vIFxcXFxcXG4gICA3OlxcdFxcdFxcdHhtaXQubyBcXFxcXFxuICAgODpcXHRcXHRcXHRsaW5rLm8gXFxcXFxcbiAgIDk6XFx0XFx0XFx0YW50ZW5uYS5vIFxcXFxcXG4gIDEwOlxcdFxcdFxcdGNoYW5uZWwub1xcbiAgMTE6XFx0XFxuICAxMjpcXHRhdGg5ay0kKENPTkZJR19BVEg5S19CVENPRVhfU1VQUE9SVCkgKz0gbWNpLm9cXG4gIDEzOlxcdGF0aDlrLSQoQ09ORklHX0FUSDlLX1BDSSkgKz0gcGNpLm9cXG4gIDE0OlxcdGF0aDlrLSQoQ09ORklHX0FUSDlLX0FIQikgKz0gYWhiLm9cXG4gIDE1OlxcdGF0aDlrLSQoQ09ORklHX0FUSDlLX0RGU19ERUJVR0ZTKSArPSBkZnNfZGVidWcub1xcbiAgMTY6XFx0YXRoOWstJChDT05GSUdfQVRIOUtfREZTX0NFUlRJRklFRCkgKz0gZGZzLm9cXG4gIDE3OlxcdGF0aDlrLSQoQ09ORklHX0FUSDlLX1RYOTkpICs9IHR4OTkub1xcbiAgMTg6XFx0YXRoOWstJChDT05GSUdfQVRIOUtfV09XKSArPSB3b3cub1xcbiAgMTk6XFx0YXRoOWstJChDT05GSUdfQVRIOUtfSFdSTkcpICs9IHJuZy5vXFxuICAyMDpcXHRcXG4gIDIxOlxcdGF0aDlrLSQoQ09ORklHX0FUSDlLX0RFQlVHRlMpICs9IGRlYnVnLm9cXG4gIDIyOlxcdFxcbiAgMjM6XFx0YXRoOWstJChDT05GSUdfQVRIOUtfU1RBVElPTl9TVEFUSVNUSUNTKSArPSBkZWJ1Z19zdGEub1xcbiAgMjQ6XFx0XFxuICAyNTpcXHRvYmotJChDT05GSUdfQVRIOUspICs9IGF0aDlrLm9cXG4gIDI2OlxcdFxcbiAgMjc6XFx0YXRoOWtfaHcteTo9XFx0XFxcXFxcbiAgMjg6XFx0XFx0XFx0YXI5MDAyX2h3Lm8gXFxcXFxcbiAgMjk6XFx0XFx0XFx0YXI5MDAzX2h3Lm8gXFxcXFxcbiAgMzA6XFx0XFx0XFx0aHcubyBcXFxcXFxuICAzMTpcXHRcXHRcXHRhcjkwMDNfcGh5Lm8gXFxcXFxcbiAgMzI6XFx0XFx0XFx0YXI5MDAyX3BoeS5vIFxcXFxcXG4gIDMzOlxcdFxcdFxcdGFyNTAwOF9waHkubyBcXFxcXFxuICAzNDpcXHRcXHRcXHRhcjkwMDJfY2FsaWIubyBcXFxcXFxuICAzNTpcXHRcXHRcXHRhcjkwMDNfY2FsaWIubyBcXFxcXFxuICAzNjpcXHRcXHRcXHRjYWxpYi5vIFxcXFxcXG4gIDM3OlxcdFxcdFxcdGVlcHJvbS5vIFxcXFxcXG4gIDM4OlxcdFxcdFxcdGVlcHJvbV9kZWYubyBcXFxcXFxuICAzOTpcXHRcXHRcXHRlZXByb21fNGsubyBcXFxcXFxuICA0MDpcXHRcXHRcXHRlZXByb21fOTI4Ny5vIFxcXFxcXG4gIDQxOlxcdFxcdFxcdGFuaS5vIFxcXFxcXG4gIDQyOlxcdFxcdFxcdG1hYy5vIFxcXFxcXG4gIDQzOlxcdFxcdFxcdGFyOTAwMl9tYWMubyBcXFxcXFxuICA0NDpcXHRcXHRcXHRhcjkwMDNfbWFjLm8gXFxcXFxcbiAgNDU6XFx0XFx0XFx0YXI5MDAzX2VlcHJvbS5vIFxcXFxcXG4gIDQ2OlxcdFxcdFxcdGFyOTAwM19wYXByZC5vXFxuICA0NzpcXHRcXG4gIDQ4OlxcdGF0aDlrX2h3LSQoQ09ORklHX0FUSDlLX1dPVykgKz0gYXI5MDAzX3dvdy5vXFxuICA0OTpcXHRcXG4gIDUwOlxcdGF0aDlrX2h3LSQoQ09ORklHX0FUSDlLX0JUQ09FWF9TVVBQT1JUKSArPSBidGNvZXgubyBcXFxcXFxuICA1MTpcXHRcXHRcXHRcXHRcXHRcXHQgICBhcjkwMDNfbWNpLm8gXFxcXFxcbiAgNTI6XFx0XFx0XFx0XFx0XFx0XFx0ICAgYXI5MDAzX2FpYy5vXFxuICA1MzpcXHRcXG4gIDU0OlxcdGF0aDlrX2h3LSQoQ09ORklHX0FUSDlLX1BDT0VNKSArPSBhcjkwMDNfcnR0Lm9cXG4gIDU1OlxcdFxcbiAgNTY6XFx0YXRoOWtfaHctJChDT05GSUdfQVRIOUtfRFlOQUNLKSArPSBkeW5hY2sub1xcbiAgNTc6XFx0XFxuICA1ODpcXHRvYmotJChDT05GSUdfQVRIOUtfSFcpICs9IGF0aDlrX2h3Lm9cXG4gIDU5OlxcdFxcbiAgNjA6XFx0b2JqLSQoQ09ORklHX0FUSDlLX0NPTU1PTikgKz0gYXRoOWtfY29tbW9uLm9cXG4gIDYxOlxcdGF0aDlrX2NvbW1vbi15Oj1cXHRjb21tb24ubyBcXFxcXFxuICA2MjpcXHRcXHRcXHRcXHRjb21tb24taW5pdC5vIFxcXFxcXG4gIDYzOlxcdFxcdFxcdFxcdGNvbW1vbi1iZWFjb24ubyBcXFxcXFxuICA2NDpcXHRcXG4gIDY1OlxcdGF0aDlrX2NvbW1vbi0kKENPTkZJR19BVEg5S19DT01NT05fREVCVUcpICs9IGNvbW1vbi1kZWJ1Zy5vXFxuICA2NjpcXHRhdGg5a19jb21tb24tJChDT05GSUdfQVRIOUtfQ09NTU9OX1NQRUNUUkFMKSArPSBjb21tb24tc3BlY3RyYWwub1xcbiAgNjc6XFx0XFxuICA2ODpcXHRhdGg5a19odGMteSArPVxcdGh0Y19oc3QubyBcXFxcXFxuICA2OTpcXHRcXHRcXHRoaWZfdXNiLm8gXFxcXFxcbiAgNzA6XFx0XFx0XFx0d21pLm8gXFxcXFxcbiAgNzE6XFx0XFx0XFx0aHRjX2Rydl90eHJ4Lm8gXFxcXFxcbiAgNzI6XFx0XFx0XFx0aHRjX2Rydl9tYWluLm8gXFxcXFxcbiAgNzM6XFx0XFx0XFx0aHRjX2Rydl9iZWFjb24ubyBcXFxcXFxuICA3NDpcXHRcXHRcXHRodGNfZHJ2X2luaXQubyBcXFxcXFxuICA3NTpcXHRcXHRcXHRodGNfZHJ2X2dwaW8ub1xcbiAgNzY6XFx0XFxuICA3NzpcXHRhdGg5a19odGMtJChDT05GSUdfQVRIOUtfSFRDX0RFQlVHRlMpICs9IGh0Y19kcnZfZGVidWcub1xcbiAgNzg6XFx0XFxuICA3OTpcXHRvYmotJChDT05GSUdfQVRIOUtfSFRDKSArPSBhdGg5a19odGMub1xcbiAgODA6XFx0XFxuICA4MTpcXHRvYmotJChDT05GSUdfQVRIOUtfUENJX05PX0VFUFJPTSkgKz0gYXRoOWtfcGNpX293bF9sb2FkZXIub1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOS0wNlQwODowOToxMy41MzY1OTU5MzFaIiwiU2VxIjo3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuNy1mbGFzaCIsIkR1cmF0aW9uIjoyNTcwNjU3OTA1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgV2lyZWxlc3MgRHJpdmVyIExhbmRzY2FwZSoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoZXNlIHdpcmVsZXNzIGRyaXZlcnMgYW5kIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGVpciBhcmNoaXRlY3R1cmUuIEkgc2VlIHRoYXQgYGF0aDlrLXlgIGluY2x1ZGVzIGB4bWl0Lm9gLCB3aGljaCBpcyBleHBlY3RlZC4gQnV0IHRoZW4sIGBhdGg5a19odGMteWAgdXNlcyBgaHRjX2Rydl90eHJ4Lm9gIGluc3RlYWQsIGFuZCBjcnVjaWFsbHksICpkb2Vzbid0KiBpbmNsdWRlIGB4bWl0Lm9gLiBUaGF0J3MgYSBrZXkgZGlzdGluY3Rpb24uIE5vdyBJIG5lZWQgdG8gY2xhcmlmeSBteSBhc3N1bXB0aW9uczogaXMgYGF0aDlrYCAqc3RyaWN0bHkqIGJvdW5kIHRvIFBDSSBvciBBSEI/IERvZXMgaXQgaGF2ZSBhbnkgVVNCIGludGVyZmFjZSBjYXBhYmlsaXRpZXM/IENhbiBpdCBiZSByZWFjaGVkIHZpYSBhIFJhdyBHYWRnZXQgc2V0dXAgb3IgdmlydGlvPyBJIG5lZWQgdG8ga25vdyBpZiBpdCdzIHB1cmVseSB0aWVkIHRvIHNwZWNpZmljIGhhcmR3YXJlIGJ1c2VzLiBJJ2xsIG5lZWQgdG8gZGlnIGludG8gaG93IGl0J3MgcmVnaXN0ZXJlZCB3aXRoaW4gdGhlIGtlcm5lbCB0byB1bmRlcnN0YW5kIGl0cyBjYXBhYmlsaXRpZXMgYW5kIGhvdyBpdCdzIGV4cG9zZWQgdG8gdGhlIHN5c3RlbS4gSSdsbCBmb2N1cyBteSBzZWFyY2ggZm9yIGRyaXZlciByZWdpc3RyYXRpb25zIHdpdGhpbiB0aGUgYGRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9gIGRpcmVjdG9yeS4gVGhhdCBzaG91bGQgaWxsdW1pbmF0ZSB0aGUgc3VwcG9ydGVkIGhhcmR3YXJlIGludGVyZmFjZXMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjE5ODU5LCJPdXRwdXRUb2tlbnMiOjU1LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTM0LCJUb29sQ2FsbHMiOlsicmVhZC1maWxlIl19LHsiU3RhcnRlZCI6IjIwMjYtMDktMDZUMDg6MDk6MTYuMTA3MjU2OTU2WiIsIlNlcSI6OCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjEwMzQ4NjEwMywiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJtb2R1bGVfaW5pdHxkcml2ZXJfcmVnaXN0ZXJ8cGNpX3JlZ2lzdGVyX2RyaXZlcnxwbGF0Zm9ybV9kcml2ZXJfcmVnaXN0ZXJ8dXNiX3JlZ2lzdGVyXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5a1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYWhiLmM9MTQzPWludCBhdGhfYWhiX2luaXQodm9pZClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYWhiLmMtMTQ0LXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYWhiLmM6MTQ1OlxcdHJldHVybiBwbGF0Zm9ybV9kcml2ZXJfcmVnaXN0ZXIoXFx1MDAyNmF0aF9haGJfZHJpdmVyKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYWhiLmMtMTQ2LX1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9pbml0LmM9MTEzMD1zdGF0aWMgaW50IF9faW5pdCBhdGg5a19pbml0KHZvaWQpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvaW5pdC5jLTExNTUtfVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9pbml0LmM6MTE1Njptb2R1bGVfaW5pdChhdGg5a19pbml0KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvaW5pdC5jLTExNTctXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvcGNpLmM9MTA4Mz1pbnQgYXRoX3BjaV9pbml0KHZvaWQpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3BjaS5jLTEwODQte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9wY2kuYzoxMDg1OlxcdHJldHVybiBwY2lfcmVnaXN0ZXJfZHJpdmVyKFxcdTAwMjZhdGhfcGNpX2RyaXZlcik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3BjaS5jLTEwODYtfVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOS0wNlQwODowOToxNi4yMTA3NDc5NjlaIiwiU2VxIjo5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuNy1mbGFzaCIsIkR1cmF0aW9uIjoyNDYxOTM5MTcyLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgbXkgYXR0ZW1wdCBhdCBzdW1tYXJpemluZyB0aGUgdGhvdWdodCBwcm9jZXNzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlOlxuXG4qKkRpdmluZyBpbnRvIHRoZSBBdGhlcm9zIERyaXZlciBJbml0aWFsaXphdGlvbioqXG5cbk9rYXksIHRpbWUgdG8gdHJvdWJsZXNob290IHRoaXMgQXRoZXJvcyB3aXJlbGVzcyBpc3N1ZS4gTXkgZmlyc3QgaW5zdGluY3QgaXMgdG8gemVybyBpbiBvbiB0aGUgZHJpdmVyIGluaXRpYWxpemF0aW9uLCBzcGVjaWZpY2FsbHkgdGhlIGBhdGg5a2AgZHJpdmVyLiBHaXZlbiBteSBleHBlcmllbmNlLCBhIHByb2JsZW0gd2l0aCBob3cgdGhlIGhhcmR3YXJlIGlzIGJlaW5nIGJyb3VnaHQgb25saW5lIGlzIGEgbGlrZWx5IGN1bHByaXQuIEkgcmVjYWxsIHNpbWlsYXIgaXNzdWVzIGZyb20gcGFzdCBwcm9qZWN0cy4gTGV0J3Mgc3RhcnQgd2l0aCBgYXRoOWsvaW5pdC5jYC4gSSBoYXZlIGEgZmVlbGluZyBzb21ldGhpbmcgcmVsZXZhbnQgbWlnaHQgYmUgaGFwcGVuaW5nIGFyb3VuZCBsaW5lIDExMzAsIHNvIEknbGwgZ28gZGlyZWN0bHkgdG8gdGhhdCBzZWN0aW9uIG9mIHRoZSBzb3VyY2UgY29kZS4gVGhhdCdzIGEgcmVhc29uYWJsZSBwbGFjZSB0byBzdGFydCwgYXMgSSBjYW4gb2Z0ZW4gZmluZCBpbml0aWFsIHJlZ2lzdGVyIHJlYWRzIGFuZCB3cml0ZXMgdGhhdCBjYW4gZ28gYXdyeS5cblxuXG4iLCJJbnB1dFRva2VucyI6MjA2MjksIk91dHB1dFRva2VucyI6NDQsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyMSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOS0wNlQwODowOToxOC42NzI2OTE3NzFaIiwiU2VxIjoxMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoicmVhZC1maWxlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTU3OTMwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRmlsZVwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9pbml0LmNcIixcbiAgXCJGaXJzdExpbmVcIjogMTEyMCxcbiAgXCJMaW5lQ291bnRcIjogNDBcbn0iLCJSZXN1bHRzIjoie1xuICBcIkNvbnRlbnRzXCI6IFwiMTEyMDpcXHRcXHRhdGg5a19kZWluaXRfd293KGh3KTtcXG4xMTIxOlxcdFxcdGllZWU4MDIxMV91bnJlZ2lzdGVyX2h3KGh3KTtcXG4xMTIyOlxcdFxcdGF0aF9yeF9jbGVhbnVwKHNjKTtcXG4xMTIzOlxcdFxcdGF0aDlrX2RlaW5pdF9zb2Z0YyhzYyk7XFxuMTEyNDpcXHR9XFxuMTEyNTpcXHRcXG4xMTI2OlxcdC8qKioqKioqKioqKioqKioqKioqKioqKiovXFxuMTEyNzpcXHQvKiAgICAgTW9kdWxlIEhvb2tzICAgICAqL1xcbjExMjg6XFx0LyoqKioqKioqKioqKioqKioqKioqKioqKi9cXG4xMTI5OlxcdFxcbjExMzA6XFx0c3RhdGljIGludCBfX2luaXQgYXRoOWtfaW5pdCh2b2lkKVxcbjExMzE6XFx0e1xcbjExMzI6XFx0XFx0aW50IGVycm9yO1xcbjExMzM6XFx0XFxuMTEzNDpcXHRcXHRlcnJvciA9IGF0aF9wY2lfaW5pdCgpO1xcbjExMzU6XFx0XFx0aWYgKGVycm9yIFxcdTAwM2MgMCkge1xcbjExMzY6XFx0XFx0XFx0cHJfZXJyKFxcXCJObyBQQ0kgZGV2aWNlcyBmb3VuZCwgZHJpdmVyIG5vdCBpbnN0YWxsZWRcXFxcblxcXCIpO1xcbjExMzc6XFx0XFx0XFx0ZXJyb3IgPSAtRU5PREVWO1xcbjExMzg6XFx0XFx0XFx0Z290byBlcnJfb3V0O1xcbjExMzk6XFx0XFx0fVxcbjExNDA6XFx0XFxuMTE0MTpcXHRcXHRlcnJvciA9IGF0aF9haGJfaW5pdCgpO1xcbjExNDI6XFx0XFx0aWYgKGVycm9yIFxcdTAwM2MgMCkge1xcbjExNDM6XFx0XFx0XFx0ZXJyb3IgPSAtRU5PREVWO1xcbjExNDQ6XFx0XFx0XFx0Z290byBlcnJfcGNpX2V4aXQ7XFxuMTE0NTpcXHRcXHR9XFxuMTE0NjpcXHRcXG4xMTQ3OlxcdFxcdGRtaV9jaGVja19zeXN0ZW0oYXRoOWtfcXVpcmtzKTtcXG4xMTQ4OlxcdFxcbjExNDk6XFx0XFx0cmV0dXJuIDA7XFxuMTE1MDpcXHRcXG4xMTUxOlxcdCBlcnJfcGNpX2V4aXQ6XFxuMTE1MjpcXHRcXHRhdGhfcGNpX2V4aXQoKTtcXG4xMTUzOlxcdCBlcnJfb3V0OlxcbjExNTQ6XFx0XFx0cmV0dXJuIGVycm9yO1xcbjExNTU6XFx0fVxcbjExNTY6XFx0bW9kdWxlX2luaXQoYXRoOWtfaW5pdCk7XFxuMTE1NzpcXHRcXG4xMTU4OlxcdHN0YXRpYyB2b2lkIF9fZXhpdCBhdGg5a19leGl0KHZvaWQpXFxuMTE1OTpcXHR7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTA2VDA4OjA5OjE4LjY3Mjg1NDI2MVoiLCJTZXEiOjExLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuNy1mbGFzaCIsIkR1cmF0aW9uIjozMDE0NDYxNDU2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkludmVzdGlnYXRpbmcgdGhlIGF0aDlrX2h0YyBEcml2ZXIncyBUcmFuc21pc3Npb24gUGF0aCoqXG5cbk9rYXksIGxldCdzIGRpdmUgaW50byB0aGlzLiBJIG5lZWQgdG8gY2xhcmlmeSBob3cgdGhlIGBhdGg5a19odGNgIGRyaXZlciBoYW5kbGVzIHRyYW5zbWlzc2lvbi4gRmlyc3QsIEkgd2FudGVkIHRvIGNvbmZpcm0gaWYgaXQgZGlyZWN0bHkgdXRpbGl6ZXMgdGhlIGB4bWl0LmNgIG1vZHVsZSwgYSBjb3JlIGNvbXBvbmVudCBvZiB0aGUgYGF0aDlrYCB3aXJlbGVzcyBkcml2ZXIuIFNvLCBJIG5lZWQgdG8gY2hlY2sgdGhlIGJ1aWxkIHByb2Nlc3MuXG5cbkknbGwgY2hlY2sgdGhlIGBkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvTWFrZWZpbGVgIGFnYWluLCBqdXN0IHRvIGJlIGFic29sdXRlbHkgY2VydGFpbi4gUmVhZGluZyB0aHJvdWdoIGl0LCBJIGNhbiBzZWUgb24gbGluZSAyLCB0aGF0IHRoZSBiYXNlIGBhdGg5a2AgbW9kdWxlIGluY2x1ZGVzIGB4bWl0Lm9gLiBIb3dldmVyLCBsb29raW5nIHNwZWNpZmljYWxseSBhdCB0aGUgYGF0aDlrX2h0Y2AgbW9kdWxlJ3MgYnVpbGQgaW5zdHJ1Y3Rpb25zIG9uIGxpbmUgNjgsIHRoZXJlJ3Mgbm8gbWVudGlvbiBvZiBgeG1pdC5vYCB3aXRoaW4gdGhlIGBhdGg5a19odGMteWAgbGlzdC5cblxuQWxyaWdodCwgdGhhdCdzIGNvbmNsdXNpdmUuIGBhdGg5a19odGNgIGV4cGxpY2l0bHkgKmRvZXNuJ3QqIGxpbmsgdGhlIGB4bWl0Lm9gIG9iamVjdCBmaWxlLiBTbywgbm93IHRoZSBuZXh0IHF1ZXN0aW9uOiBkb2VzIGBhdGg5a19odGNgIGNhbGwgZnVuY3Rpb25zIGZyb20gYHhtaXQuY2AgaW5kaXJlY3RseT8gSSBuZWVkIHRvIGNoZWNrIGlmIGFueSBvZiB0aGUgZXh0ZXJuYWwgY2FsbHMsIHRoYXQgd291bGQgbmVlZCBhY2Nlc3MgdG8gYHhtaXQuY2AgYXJlIHByZXNlbnQgaW4gYGF0aDlrLmtvYFxuXG5cbiIsIklucHV0VG9rZW5zIjoyMTM2MSwiT3V0cHV0VG9rZW5zIjozNSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjIxNCwiVG9vbENhbGxzIjpbInJlYWQtZmlsZSJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTA2VDA4OjA5OjIxLjY4NzMyMjY5N1oiLCJTZXEiOjEyLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTIxNTY3NTUzLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImF0aF9kcmFpbl90eHFfbGlzdFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9hdGhcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYz0xODU3PWludCBhdGhfY2FicV91cGRhdGUoc3RydWN0IGF0aF9zb2Z0YyAqc2MpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTE4NzEtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYzoxODcyOnN0YXRpYyB2b2lkIGF0aF9kcmFpbl90eHFfbGlzdChzdHJ1Y3QgYXRoX3NvZnRjICpzYywgc3RydWN0IGF0aF90eHEgKnR4cSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTE4NzMtXFx0XFx0XFx0ICAgICAgIHN0cnVjdCBsaXN0X2hlYWQgKmxpc3QpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jPTE5MTQ9dm9pZCBhdGhfZHJhaW50eHEoc3RydWN0IGF0aF9zb2Z0YyAqc2MsIHN0cnVjdCBhdGhfdHhxICp0eHEpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTE5MjItXFx0XFx0d2hpbGUgKCFsaXN0X2VtcHR5KFxcdTAwMjZ0eHEtXFx1MDAzZXR4cV9maWZvW2lkeF0pKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYzoxOTIzOlxcdFxcdFxcdGF0aF9kcmFpbl90eHFfbGlzdChzYywgdHhxLCBcXHUwMDI2dHhxLVxcdTAwM2V0eHFfZmlmb1tpZHhdKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTE5MjQtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTE5MzEtXFx0dHhxLVxcdTAwM2VheHFfdHhfaW5wcm9ncmVzcyA9IGZhbHNlO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmM6MTkzMjpcXHRhdGhfZHJhaW5fdHhxX2xpc3Qoc2MsIHR4cSwgXFx1MDAyNnR4cS1cXHUwMDNlYXhxX3EpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMtMTkzMy1cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMDZUMDg6MDk6MjEuODA4ODk3ODVaIiwiU2VxIjoxMywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjctZmxhc2giLCJEdXJhdGlvbiI6MjIyMTY3ODA0OCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IHN1bW1hcnksIHByZXNlbnRlZCBhcyBhIHN0cmVhbSBvZiB0aG91Z2h0OlxuXG4qKkRpdmluZyBpbnRvIHRoZSBgeG1pdC5jYCBDb2RlYmFzZSoqXG5cbkFscmlnaHQsIHRpbWUgdG8gZ2V0IG15IGhhbmRzIGRpcnR5LiBJJ20gZ29pbmcgdG8gc3RhcnQgYnkgdGFraW5nIGEgY2xvc2UgbG9vayBhdCB0aGUgYGF0aF9kcmFpbnR4cWAgZnVuY3Rpb24uIEdpdmVuIGl0cyBuYW1lLCBJIHN1c3BlY3QgaXQncyBjcnVjaWFsIGZvciBmbHVzaGluZyBvciBkcmFpbmluZyB0cmFuc21pdCBxdWV1ZXMsIHdoaWNoIGlzIGEga2V5IGFyZWEgZm9yIHBlcmZvcm1hbmNlIGFuZCBzdGFiaWxpdHkgaW4gYW55IHdpcmVsZXNzIHN0YWNrLiBUaGVuLCBJIG5lZWQgdG8gdHJhY2UgYWxsIHRoZSBjYWxsIHBhdGhzLCBzcGVjaWZpY2FsbHksIHdoZXJlIHRoaXMgYGF0aF9kcmFpbnR4cWAgZnVuY3Rpb24gaXMgaW52b2tlZC4gVGhhdCdzIG15IGluaXRpYWwgZ29hbC4gQmV5b25kIHRoYXQsIEkgbmVlZCB0byBicm9hZGVuIHRoZSBzY29wZTogSSBtdXN0IGludmVzdGlnYXRlICphbnkqIG90aGVyIGNhbGxzIG9yaWdpbmF0aW5nIGZyb20gd2l0aGluIHRoZSBgeG1pdC5jYCBtb2R1bGUuIFVuZGVyc3RhbmRpbmcgdGhlIHJvbGVzIGFuZCBpbnRlcmFjdGlvbnMgYmV0d2VlbiB0aGUgY29tcG9uZW50cyB3aXRoaW4gdGhpcyBmaWxlIGlzIGVzc2VudGlhbCBmb3IgYSB0aG9yb3VnaCBkaWFnbm9zaXMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjIyMzI4LCJPdXRwdXRUb2tlbnMiOjMyLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NDksIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDktMDZUMDg6MDk6MjQuMDMwNTgwNzE3WiIsIlNlcSI6MTQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo4MTc4NjU5NCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJhdGhfZHJhaW50eHFcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hdGg5ay5oPTU4NT1ib29sIGF0aF9kcmFpbl9hbGxfdHhxKHN0cnVjdCBhdGhfc29mdGMgKnNjKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYXRoOWsuaDo1ODY6dm9pZCBhdGhfZHJhaW50eHEoc3RydWN0IGF0aF9zb2Z0YyAqc2MsIHN0cnVjdCBhdGhfdHhxICp0eHEpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hdGg5ay5oLTU4Ny12b2lkIGF0aF90eF9ub2RlX2luaXQoc3RydWN0IGF0aF9zb2Z0YyAqc2MsIHN0cnVjdCBhdGhfbm9kZSAqYW4pO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2JlYWNvbi5jPTExMj1zdGF0aWMgc3RydWN0IGF0aF9idWYgKmF0aDlrX2JlYWNvbl9nZW5lcmF0ZShzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodyxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9iZWFjb24uYy0xODItXFx0XFx0XFx0XFx0XFxcIkZsdXNoaW5nIHByZXZpb3VzIGNhYnEgdHJhZmZpY1xcXFxuXFxcIik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2JlYWNvbi5jOjE4MzpcXHRcXHRcXHRhdGhfZHJhaW50eHEoc2MsIGNhYnEpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9iZWFjb24uYy0xODQtXFx0XFx0fVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYz0xODcyPXN0YXRpYyB2b2lkIGF0aF9kcmFpbl90eHFfbGlzdChzdHJ1Y3QgYXRoX3NvZnRjICpzYywgc3RydWN0IGF0aF90eHEgKnR4cSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMtMTkxMy0gKi9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jOjE5MTQ6dm9pZCBhdGhfZHJhaW50eHEoc3RydWN0IGF0aF9zb2Z0YyAqc2MsIHN0cnVjdCBhdGhfdHhxICp0eHEpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYy0xOTE1LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmM9MTkzOD1ib29sIGF0aF9kcmFpbl9hbGxfdHhxKHN0cnVjdCBhdGhfc29mdGMgKnNjKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYy0xOTczLVxcdFxcdHR4cSA9IFxcdTAwMjZzYy1cXHUwMDNldHgudHhxW2ldO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmM6MTk3NDpcXHRcXHRhdGhfZHJhaW50eHEoc2MsIHR4cSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYy0xOTc1LVxcdH1cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMDZUMDg6MDk6MjQuMTEyMzcxNjExWiIsIlNlcSI6MTUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy43LWZsYXNoIiwiRHVyYXRpb24iOjMzNzgzNTkxODMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBgYXRoOWtgIERyaXZlciBmb3IgRnV6emluZyBQb3RlbnRpYWwqKlxuXG5Pa2F5LCBzbyBgYXRoOWtgIGlzIHRoZSBBdGhlcm9zIDgwMi4xMW4gZHJpdmVyIGZvciBQQ0kvQUhCLiBGaXJzdCwgSSBuZWVkIHRvIGZpZ3VyZSBvdXQgaWYgdGhlcmUncyBhbnkgUUVNVSBvciBzeXprYWxsZXIgZW11bGF0aW9uIGZvciB0aGlzIHNwZWNpZmljIGRyaXZlci4gTXkgaW5pdGlhbCBpbnN0aW5jdCBpcyB0byBjaGVjayBmb3IgdmlydHVhbCBidXMgb3IgZGV2aWNlIGVtdWxhdGlvbiBjYXBhYmlsaXRpZXMuIE1vcmUgYnJvYWRseSwgSSBzaG91bGQgZGV0ZXJtaW5lIHdoYXQgd2lyZWxlc3MgZGV2aWNlcyBhcmUgZnV6emFibGUgaW4gc3l6a2FsbGVyIGluIGdlbmVyYWwuXG5cbk5vdywgbGV0J3MgbG9vayBhdCBTZWN0aW9uIDIgb2YgdGhlIGluc3RydWN0aW9ucy4gVGhlIHRleHQgY2xlYXJseSBzdGF0ZXMgdGhhdCB1bnJlYWNoYWJsZSBoYXJkd2FyZSBpbmNsdWRlcyB2ZW5kb3Itc3BlY2lmaWMgZGV2aWNlcyBsaWtlIFNtYXJ0TklDcyBhbmQgR1BVcyB0aGF0IG5lZWQgcGh5c2ljYWwgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuIE9uIHRoZSBvdGhlciBoYW5kLCByZWFjaGFibGUgZHJpdmVycyBhbmQgcHJvdG9jb2xzIGFyZSB0aG9zZSBhY2Nlc3NpYmxlIHRocm91Z2ggdmlydHVhbCBidXNlcyBzdWNoIGFzIHZpcnRpbywgVVNCIGdhZGdldCwgbG9vcGJhY2ssIG5ldGxpbmssIGFuZCBzbyBvbi5cblxuQWhhISBTeXprYWxsZXIgKmNhbiogZW11bGF0ZSBVU0IgV2ktRmkgZGV2aWNlcyB2aWEgUmF3IEdhZGdldC9VU0IgZnV6emluZy4gRm9yIGluc3RhbmNlLCBgYXRoOWtfaHRjYCBpcyBhIFVTQiBXaS1GaSBkZXZpY2UgdGhhdCByZWdpc3RlcnMgYSBVU0IgZHJpdmVyIHVzaW5nIGB1c2JfcmVnaXN0ZXJgLiBTbywgdGhlIGNyaXRpY2FsIHF1ZXN0aW9uIGlzOiBpcyBgYXRoOWtgIHNvbGVseSBQQ0kvQUhCLCBvciBkb2VzIGl0IGhhdmUgYSBVU0IgaW50ZXJmYWNlP1xuXG5JJ2xsIGNoZWNrIHRoZSBkcml2ZXIgZmlsZXMgaW4gYGRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9gIGFuZCBzcGVjaWZpY2FsbHkgc2VhcmNoIGZvciBlaXRoZXIgYHBjaV9kcml2ZXJgIG9yIGB1c2JfZHJpdmVyYC4gVGhhdCBzaG91bGQgZ2l2ZSBtZSB0aGUgZGVmaW5pdGl2ZSBhbnN3ZXIuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjIzMTYyLCJPdXRwdXRUb2tlbnMiOjQ2LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MzMzLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTA2VDA4OjA5OjI3LjQ5MDczMzk4NFoiLCJTZXEiOjE2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTE0MTYzNjMzLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInN0cnVjdCAocGNpX2RyaXZlcnx1c2JfZHJpdmVyfHBsYXRmb3JtX2RyaXZlcilcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9haGIuYz0xMTk9c3RhdGljIHZvaWQgYXRoX2FoYl9yZW1vdmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9haGIuYy0xMzEtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FoYi5jOjEzMjpzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RyaXZlciBhdGhfYWhiX2RyaXZlciA9IHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYWhiLmMtMTMzLVxcdC5wcm9iZSA9IGF0aF9haGJfcHJvYmUsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYXRoOWtfcGNpX293bF9sb2FkZXIuYz0yMzA9TU9EVUxFX0RFVklDRV9UQUJMRShwY2ksIG93bF9wY2lfdGFibGUpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hdGg5a19wY2lfb3dsX2xvYWRlci5jLTIzMS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYXRoOWtfcGNpX293bF9sb2FkZXIuYzoyMzI6c3RhdGljIHN0cnVjdCBwY2lfZHJpdmVyIG93bF9kcml2ZXIgPSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2F0aDlrX3BjaV9vd2xfbG9hZGVyLmMtMjMzLVxcdC5uYW1lXFx0XFx0PSBLQlVJTERfTU9ETkFNRSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9oaWZfdXNiLmM9MTQ1OT1zdGF0aWMgaW50IGF0aDlrX2hpZl91c2JfcmVzdW1lKHN0cnVjdCB1c2JfaW50ZXJmYWNlICppbnRlcmZhY2UpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvaGlmX3VzYi5jLTE1MDMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2hpZl91c2IuYzoxNTA0OnN0YXRpYyBzdHJ1Y3QgdXNiX2RyaXZlciBhdGg5a19oaWZfdXNiX2RyaXZlciA9IHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvaGlmX3VzYi5jLTE1MDUtXFx0Lm5hbWUgPSBLQlVJTERfTU9ETkFNRSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9wY2kuYz0xMDczPU1PRFVMRV9ERVZJQ0VfVEFCTEUocGNpLCBhdGhfcGNpX2lkX3RhYmxlKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvcGNpLmMtMTA3NC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvcGNpLmM6MTA3NTpzdGF0aWMgc3RydWN0IHBjaV9kcml2ZXIgYXRoX3BjaV9kcml2ZXIgPSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3BjaS5jLTEwNzYtXFx0Lm5hbWUgICAgICAgPSBcXFwiYXRoOWtcXFwiLFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOS0wNlQwODowOToyNy42MDQ5MDI3NTdaIiwiU2VxIjoxNywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjctZmxhc2giLCJEdXJhdGlvbiI6NTM5NDMwNTA4MywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipNeSBBbmFseXNpcyBvZiB0aGUgYXRoOWsgV2lyZWxlc3MgRHJpdmVyIFN0cnVjdHVyZSoqXG5cbk9rYXksIHNvIEknbSBkaWdnaW5nIGludG8gdGhpcyBgYXRoOWtfaGlmX3VzYl9kcml2ZXJgIGFuZCBob3cgaXQgcmVsYXRlcyB0byB0aGUgYGF0aDlrX2h0Y2AgZHJpdmVyLiAgTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRvIGNvbmZpcm0gdGhlIGNvbm5lY3Rpb24gYmV0d2VlbiB0aGVtLCBhbmQgdGhlIG9idmlvdXMgcGxhY2UgdG8gbG9vayBpcyBgZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2hpZl91c2IuY2AuICBJIG5lZWQgdG8gZGV0ZXJtaW5lIHdoYXQgbW9kdWxlIGBoaWZfdXNiLm9gIGlzIGFjdHVhbGx5IHBhcnQgb2YuIFRoZSBgTWFrZWZpbGVgIGNvbmZpcm1zIHRoaXM6ICBpdCdzIGJ1aWx0IGFzIHBhcnQgb2YgYGF0aDlrX2h0Y2AuICBUaGF0J3MgdGhlIGNvbmZpcm1hdGlvbiBJIG5lZWRlZC5cblxuTm93LCBJJ20gdHJ5aW5nIHRvIHVuZGVyc3RhbmQgdGhlIGludGVycGxheSBiZXR3ZWVuIHRoZSB0d28gbWFpbiBtb2R1bGVzOiBgYXRoOWtgIGFuZCBgYXRoOWtfaHRjYC4gSSdtIHdvbmRlcmluZyBpZiBgYXRoOWtfaHRjYCBsZXZlcmFnZXMgY29kZSBmcm9tIGB4bWl0LmNgIG9yIGlmIHRoZXNlIGFyZSBiYXNpY2FsbHkgc2VwYXJhdGUgZW50aXRpZXMgdGhhdCBqdXN0IGhhcHBlbiB0byBzaGFyZSBgYXRoOWtfY29tbW9uYCBhbmQgYGF0aDlrX2h3YC5cblxuSSBzZWUgdGhhdCBgYXRoOWtgIGlzIGJ1aWx0IGZyb20gYSBzZXQgb2Ygc291cmNlIGZpbGVzIGFuZCBpbmNsdWRlcyBgeG1pdC5jYC4gRnJvbSB0aGlzLCBJJ20gZGV0ZXJtaW5pbmcgdGhhdCBgYXRoOWsub2AgaXMgdXNlZCBmb3IgUENJIGFuZCBBSEIgYmFzZWQgZGV2aWNlcy4gQUhCIGlzIG1haW5seSB1c2VkIG9uIGVtYmVkZGVkIHN5c3RlbXMsIGxpa2UgT3BlbldSVCwgcnVubmluZyBvbiBBdGhlcm9zIE1JUFMvQVJNIFNvQ3MsIHVzaW5nIGRldmljZSB0cmVlcyB0byBkZXNjcmliZSB0aGUgaGFyZHdhcmUuIFBDSSBjb3ZlcnMgc3RhbmRhcmQgUENJL1BDSWUgY2FyZHMsIGxpa2UgdGhlIEFSOTI4MCwgQVI5Mjg1LCBldGMuXG5cblRoZSBpc3N1ZSBpcyB0aGlzOiBhcmUgdGhvc2UgUENJIGRldmljZXMgZXZlbiBlbXVsYXRlZCBpbiBzb21ldGhpbmcgbGlrZSBzdGFuZGFyZCBRRU1VIG9yIEdvb2dsZSBDb21wdXRlIEVuZ2luZT8gQW5kIG9mIGNvdXJzZSwgbm8sIFFFTVUgZG9lc24ndCBlbXVsYXRlIGFueSBBdGhlcm9zIGF0aDlrIFBDSSBkZXZpY2VzLiBJdCBlbXVsYXRlcyBvdGhlciBzdGFuZGFyZCBOSUNzIGxpa2UgZTEwMDAsIHJ0bDgxMzksIG9yIHZpcnRpby1uZXQsIGJ1dCBub3QgdGhlIGF0aDlrLiBUaGUgQUhCIG9uZXMsIHRoZSBwbGF0Zm9ybSBkZXZpY2VzLCB0aGF0J3Mgbm90IGdvaW5nIHRvIHdvcmsgZWl0aGVyIGJlY2F1c2UgdGhvc2UgcmVseSBvbiBPRiBhbmQgZGV2aWNlIHRyZWVzLCB3aGljaCB3b24ndCBiZSBvbiBhbiBhbWQ2NCBRRU1VIGluc3RhbmNlLlxuXG5Pa2F5LCBsZXQgbWUgYmFjayB1cCBhIGxpdHRsZS4gUGVyaGFwcyBgbWFjODAyMTFfaHdzaW1gIGhhcyBzb21ldGhpbmcgdG8gZG8gd2l0aCB0aGUgYXRoOWsgZHJpdmVyPyBJIG5lZWQgdG8gdmVyaWZ5IHdoZXRoZXIgdGhlIGBtYWM4MDIxMV9od3NpbWAgdXNlcyBhbnkgcGFydCBvZiBgYXRoOWtgLiBOb3BlLCBgbWFjODAyMTFfaHdzaW1gIGlzIGEgcHVyZSBzb2Z0d2FyZSBkcml2ZXIgZm9yIG1hYzgwMjExLCBpdCdzIGlycmVsZXZhbnQuIEFuZCB0aGUgc2FtZSBmb3IgYHZpcnRfd2lmaWAuIE9rLCBzbyBkb2VzIGBhdGg5a2AgaGF2ZSBhbnkga2luZCBvZiBtb2NrIG9yIHNpbXVsYXRlZCBkZXZpY2U/IEknbSBnb2luZyB0byBkbyBhIHF1aWNrIHNjYW4gb2YgdGhlIGtlcm5lbCB0cmVlIHRvIGNoZWNrIGZvciBhbnl0aGluZyBsaWtlIHRoYXQuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjI0NDQxLCJPdXRwdXRUb2tlbnMiOjI4LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NjQ5LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTA2VDA4OjA5OjMyLjk5OTIxMDE1WiIsIlNlcSI6MTgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1Nzk3NDUzODMsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiYXRoOWtcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3NcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiXFxuRnVsbCBvdXRwdXQgaXMgdG9vIGxvbmcsIHNob3dpbmcgNTAwIG91dCBvZiAxNDE2NiBsaW5lcy5cXG5Vc2UgbW9yZSBwcmVjaXNlIGV4cHJlc3Npb24gaWYgcG9zc2libGUuXFxuXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL0tjb25maWc9MjY9Y29uZmlnIEFUSF9ERUJVR1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL0tjb25maWctMjktXFx0ICBTYXkgWSwgaWYgeW91IHdhbnQgdG8gZGVidWcgYXRoZXJvcyB3aXJlbGVzcyBkcml2ZXJzLlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9LY29uZmlnOjMwOlxcdCAgUmlnaHQgbm93IG9ubHkgYXRoOWsgbWFrZXMgdXNlIG9mIHRoaXMuXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL0tjb25maWctMzEtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL0tjb25maWc9MzI9Y29uZmlnIEFUSF9UUkFDRVBPSU5UU1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL0tjb25maWctMzctXFx0ICBUaGlzIG9wdGlvbiBlbmFibGVzIHRyYWNlcG9pbnRzIGZvciBhdGhlcm9zIHdpcmVsZXNzIGRyaXZlcnMuXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL0tjb25maWc6Mzg6XFx0ICBDdXJyZW50bHksIGF0aDlrIG1ha2VzIHVzZSBvZiB0aGlzIGZhY2lsaXR5LlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9LY29uZmlnLTM5LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL0tjb25maWc9NTc9c291cmNlIFxcXCJkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNWsvS2NvbmZpZ1xcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvS2NvbmZpZzo1ODpzb3VyY2UgXFxcImRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnXFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9LY29uZmlnLTU5LXNvdXJjZSBcXFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2Nhcmw5MTcwL0tjb25maWdcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvTWFrZWZpbGU9Mj1vYmotJChDT05GSUdfQVRINUspXFx0XFx0Kz0gYXRoNWsvXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL01ha2VmaWxlOjM6b2JqLSQoQ09ORklHX0FUSDlLX0hXKVxcdFxcdCs9IGF0aDlrL1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9NYWtlZmlsZS00LW9iai0kKENPTkZJR19DQVJMOTE3MClcXHRcXHQrPSBjYXJsOTE3MC9cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvaHcuaD02NzM9YXRoMTBrX2lzX3Jzc2lfZW5hYmxlKHN0cnVjdCBhdGgxMGtfaHdfcGFyYW1zICpodyxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvaHcuaC0xMTM2LS8qIFJlZ2lzdGVyIGRlZmluaXRpb25zIGZvciBmaXJzdCBnZW5lcmF0aW9uIGF0aDEwayBjYXJkcy4gVGhlc2UgY2FyZHMgaW5jbHVkZVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvaHcuaDoxMTM3OiAqIGEgbWFjIHdoaWNoIGhhcyBhIHJlZ2lzdGVyIGFsbG9jYXRpb24gc2ltaWxhciB0byBhdGg5ayBhbmQgYXQgbGVhc3Qgc29tZVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvaHcuaC0xMTM4LSAqIHJlZ2lzdGVycyBpbmNsdWRpbmcgdGhlIG9uZXMgcmVsZXZhbnQgZm9yIG1vZGlmeWluZyB0aGUgY292ZXJhZ2UgY2xhc3MgYXJlXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway9ody5oOjExMzk6ICogaWRlbnRpY2FsIHRvIHRoZSBhdGg5ayBkZWZpbml0aW9ucy5cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL2h3LmgtMTE0MC0gKiBUaGVzZSByZWdpc3RlcnMgYXJlIHVzdWFsbHkgbWFuYWdlZCBieSB0aGUgYXRoMTBrIGZpcm13YXJlLiBIb3dldmVyIGJ5XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTBrL3NwZWN0cmFsLmM9NjM9aW50IGF0aDEwa19zcGVjdHJhbF9wcm9jZXNzX2ZmdChzdHJ1Y3QgYXRoMTBrICphcixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMGsvc3BlY3RyYWwuYy0xNDAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway9zcGVjdHJhbC5jOjE0MTpcXHQvKiBtYXhfZXhwIGhhcyBiZWVuIGRpcmVjdGx5IHJlcG9ydGVkIGJ5IHByZXZpb3VzIGhhcmR3YXJlIChhdGg5ayksXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDEway9zcGVjdHJhbC5jLTE0Mi1cXHQgKiBtYXliZSBpdHMgcG9zc2libGUgdG8gZ2V0IGl0IGJ5IG90aGVyIG1lYW5zP1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDVrL2FuaS5jPTY2PWF0aDVrX2FuaV9zZXRfbm9pc2VfaW1tdW5pdHlfbGV2ZWwoc3RydWN0IGF0aDVrX2h3ICphaCwgaW50IGxldmVsKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDVrL2FuaS5jLTY5LVxcdCAqIEFOSSBkb2N1bWVudHMgc3VnZ2VzdCB0aGUgZm9sbG93aW5nIGZpdmUgbGV2ZWxzIHRvIHVzZSwgYnV0IHRoZSBIQUxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNWsvYW5pLmM6NzA6XFx0ICogYW5kIGF0aDlrIHVzZSBvbmx5IHRoZSBsYXN0IHR3byBsZXZlbHMsIG1ha2luZyB0aGlzXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDVrL2FuaS5jLTcxLVxcdCAqIGVzc2VudGlhbGx5IGFuIG9uL29mZiBvcHRpb24uIFRoZXJlICptYXkqIGJlIGEgcmVhc29uIGZvciB0aGlzICg/Pz8pLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDVrL3JlZy5oLTMyLSAqIFRoaXMgZmlsZSBhbHNvIGNvbnRhaW5zIHJlZ2lzdGVyIHZhbHVlcyBmb3VuZCBvbiBhIG1lbW9yeSBkdW1wIG9mXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDVrL3JlZy5oOjMzOiAqIEF0aGVyb3MncyBBUlQgcHJvZ3JhbSAoQXRoZXJvcyBSYWRpbyBUZXN0KSwgb24gYXRoOWssIG9uIGxlZ2FjeS1oYWxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNWsvcmVnLmgtMzQtICogcmVsZWFzZWQgYnkgQXRoZXJvcyBhbmQgb24gdmFyaW91cyBkZWJ1ZyBtZXNzYWdlcyBmb3VuZCBvbiB0aGUgbmV0Llxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWc9MTM9Y29uZmlnIEFUSDlLX0JUQ09FWF9TVVBQT1JUXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZy0xNy1cXHRoZWxwXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWc6MTg6XFx0ICBTYXkgWSwgaWYgeW91IHdhbnQgdG8gdXNlIHRoZSBhdGg5ay9hdGg5a19odGMgcmFkaW9zIHRvZ2V0aGVyIHdpdGhcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZy0xOS1cXHQgIEJsdWV0b290aCBtb2R1bGVzIGluIHRoZSBzYW1lIHN5c3RlbS5cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnPTIxPWNvbmZpZyBBVEg5S1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWctMzEtXFx0ICBjYXJkcywgbGFwdG9wcyB0aGF0IGFscmVhZHkgc2hpcCB3aXRoIHRoZXNlIGNhcmRzIGFuZFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnOjMyOlxcdCAgQVBzIHRoYXQgY29tZSB3aXRoIHRoZXNlIGNhcmRzIHJlZmVyIHRvIGF0aDlrIHdpa2lcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZy0zMy1cXHQgIHByb2R1Y3RzIHBhZ2U6XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWctMzQtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWc6MzU6XFx0ICBodHRwczovL3dpcmVsZXNzLndpa2kua2VybmVsLm9yZy9lbi91c2Vycy9Ecml2ZXJzL2F0aDlrL3Byb2R1Y3RzXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWctMzYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWc6Mzc6XFx0ICBJZiB5b3UgY2hvb3NlIHRvIGJ1aWxkIGEgbW9kdWxlLCBpdCdsbCBiZSBjYWxsZWQgYXRoOWsuXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWctMzgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWc9Mzk9Y29uZmlnIEFUSDlLX1BDSVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnOjQwOlxcdGJvb2wgXFxcIkF0aGVyb3MgYXRoOWsgUENJL1BDSWUgYnVzIHN1cHBvcnRcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWctNDEtXFx0ZGVmYXVsdCB5XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZy00My1cXHRoZWxwXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWc6NDQ6XFx0ICBUaGlzIG9wdGlvbiBlbmFibGVzIHRoZSBQQ0kgYnVzIHN1cHBvcnQgaW4gYXRoOWsuXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWctNDUtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZz00OD1jb25maWcgQVRIOUtfQUhCXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWc6NDk6XFx0Ym9vbCBcXFwiQXRoZXJvcyBhdGg5ayBBSEIgYnVzIHN1cHBvcnRcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWctNTAtXFx0ZGVwZW5kcyBvbiBBVEg5SyBcXHUwMDI2XFx1MDAyNiBPRlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWctNTItXFx0aGVscFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnOjUzOlxcdCAgVGhpcyBvcHRpb24gZW5hYmxlcyB0aGUgQUhCIGJ1cyBzdXBwb3J0IGluIGF0aDlrLlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnLTU0LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWc9NTg9Y29uZmlnIEFUSDlLX0RFQlVHRlNcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZzo1OTpcXHRib29sIFxcXCJBdGhlcm9zIGF0aDlrIGRlYnVnZ2luZ1xcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZy02MC1cXHRkZXBlbmRzIG9uIEFUSDlLIFxcdTAwMjZcXHUwMDI2IERFQlVHX0ZTIFxcdTAwMjZcXHUwMDI2IE1BQzgwMjExX0RFQlVHRlNcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnLTYyLVxcdGhlbHBcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZzo2MzpcXHQgIFNheSBZLCBpZiB5b3UgbmVlZCBhY2Nlc3MgdG8gYXRoOWsncyBzdGF0aXN0aWNzIGZvclxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnLTY0LVxcdCAgaW50ZXJydXB0cywgcmF0ZSBjb250cm9sLCBldGMuXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZz03Nj1jb25maWcgQVRIOUtfVFg5OVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnOjc3OlxcdGJvb2wgXFxcIkF0aGVyb3MgYXRoOWsgVFg5OSB0ZXN0aW5nIHN1cHBvcnRcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWctNzgtXFx0ZGVwZW5kcyBvbiBBVEg5S19ERUJVR0ZTIFxcdTAwMjZcXHUwMDI2IENGRzgwMjExX0NFUlRJRklDQVRJT05fT05VU1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWc9OTY9Y29uZmlnIEFUSDlLX0RGU19DRVJUSUZJRURcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnLTEwMS1cXHQgIFRoaXMgb3B0aW9uIGVuYWJsZXMgREZTIHN1cHBvcnQgZm9yIGluaXRpYXRpbmcgcmFkaWF0aW9uIG9uXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWc6MTAyOlxcdCAgYXRoOWsuIFRoZXJlIGlzIG5vIHdheSB0byBkeW5hbWljYWxseSBkZXRlY3QgaWYgYSBjYXJkIHdhcyBERlNcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZy0xMDMtXFx0ICBjZXJ0aWZpZWQgYW5kIGFzIHN1Y2ggdGhpcyBpcyBsZWZ0IGFzIGEgYnVpbGQgdGltZSBvcHRpb24uIFRoaXNcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnLTEwNi1cXHQgIGhhdmUgb2J0YWluZWQgYXBwcm9wcmlhdGUgcmVndWxhdG9yeSBib2R5IGNlcnRpZmljYXRpb24gZm9yIGFcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZzoxMDc6XFx0ICByZXNwZWN0aXZlIEF0aGVyb3MgY2FyZCBieSB1c2luZyBhdGg5ayBvbiB0aGUgdGFyZ2V0IHNoaXBwaW5nXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWctMTA4LVxcdCAgcGxhdGZvcm1zLlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWc9MTE1PWNvbmZpZyBBVEg5S19EWU5BQ0tcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZzoxMTY6XFx0Ym9vbCBcXFwiQXRoZXJvcyBhdGg5ayBBQ0sgdGltZW91dCBlc3RpbWF0aW9uIGFsZ29yaXRobVxcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZy0xMTctXFx0ZGVwZW5kcyBvbiBBVEg5S1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWctMTE5LVxcdGhlbHBcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZzoxMjA6XFx0ICBUaGlzIG9wdGlvbiBlbmFibGVzIGF0aDlrIGR5bmFtaWMgQUNLIHRpbWVvdXQgZXN0aW1hdGlvbiBhbGdvcml0aG1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZy0xMjEtXFx0ICBiYXNlZCBvbiBBQ0sgZnJhbWUgUlggdGltZXN0YW1wLCBUWCBmcmFtZSB0aW1lc3RhbXAgYW5kIGZyYW1lXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZz0xMzI9Y29uZmlnIEFUSDlLX1JGS0lMTFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnOjEzMzpcXHRib29sIFxcXCJBdGhlcm9zIGF0aDlrIHJma2lsbCBzdXBwb3J0XFxcIiBpZiBFWFBFUlRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZy0xMzQtXFx0ZGVwZW5kcyBvbiBBVEg5S1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWctMTM3LVxcdGhlbHBcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZzoxMzg6XFx0ICBTYXkgWSB0byBoYXZlIGF0aDlrIHBvbGwgdGhlIFJGLUtpbGwgR1BJTyBldmVyeSBjb3VwbGUgb2ZcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZy0xMzktXFx0ICBzZWNvbmRzLiBUdXJuIG9mZiB0byBzYXZlIHBvd2VyLCBidXQgZW5hYmxlIGl0IGlmIHlvdSBoYXZlXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZz0xNDI9Y29uZmlnIEFUSDlLX0NIQU5ORUxfQ09OVEVYVFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWctMTQ2LVxcdGhlbHBcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZzoxNDc6XFx0ICBUaGlzIG9wdGlvbiBlbmFibGVzIGNoYW5uZWwgY29udGV4dCBzdXBwb3J0IGluIGF0aDlrLCB3aGljaCBpcyBuZWVkZWRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZy0xNDgtXFx0ICBmb3IgbXVsdGktY2hhbm5lbCBjb25jdXJyZW5jeS4gRW5hYmxlIHRoaXMgaWYgUDJQIFBvd2VyU2F2ZSBzdXBwb3J0XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZz0xNTE9Y29uZmlnIEFUSDlLX1BDT0VNXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWc6MTUyOlxcdGJvb2wgXFxcIkF0aGVyb3MgYXRoOWsgc3VwcG9ydCBmb3IgUEMgT0VNIGNhcmRzXFxcIiBpZiBFWFBFUlRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZy0xNTMtXFx0ZGVwZW5kcyBvbiBBVEg5S1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWc9MTU2PWNvbmZpZyBBVEg5S19QQ0lfTk9fRUVQUk9NXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWc6MTU3OlxcdHRyaXN0YXRlIFxcXCJBdGhlcm9zIGF0aDlrIHBjaSBsb2FkZXIgZm9yIEVFUFJPTS1sZXNzIGNoaXBzXFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnLTE1OC1cXHRkZXBlbmRzIG9uIEFUSDlLX1BDSVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWctMTYxLVxcdCAgVGhpcyBzZXBhcmF0ZSBkcml2ZXIgcHJvdmlkZXMgYSBsb2FkZXIgaW4gb3JkZXIgdG8gc3VwcG9ydCB0aGVcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZzoxNjI6XFx0ICBBUjUwMFggdG8gQVI5MlhYLWdlbmVyYXRpb24gb2YgYXRoOWsgUENJKGUpIFdpRmkgY2hpcHMsIHdoaWNoIGhhdmVcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZy0xNjMtXFx0ICB0aGVpciBpbml0aWFsaXphdGlvbiBkYXRhICh3aGljaCBjb250YWlucyB0aGUgcmVhbCBQQ0kgRGV2aWNlIElEXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWc6MTY0OlxcdCAgdGhhdCBhdGg5ayB3aWxsIG5lZWQpIHN0b3JlZCB0b2dldGhlciB3aXRoIHRoZSBjYWxpYnJhdGlvbiBkYXRhIG91dFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnOjE2NTpcXHQgIG9mIHJlYWNoIGZvciB0aGUgYXRoOWsgY2hpcC5cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZy0xNjYtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZz0xNzI9Y29uZmlnIEFUSDlLX0hUQ1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWctMTgyLVxcdCAgRm9yIG1vcmUgaW5mb3JtYXRpb246XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWc6MTgzOlxcdCAgaHR0cHM6Ly93aXJlbGVzcy53aWtpLmtlcm5lbC5vcmcvZW4vdXNlcnMvRHJpdmVycy9hdGg5a19odGNcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZy0xODQtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWc6MTg1OlxcdCAgVGhlIGJ1aWx0IG1vZHVsZSB3aWxsIGJlIGF0aDlrX2h0Yy5cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZy0xODYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWc9MTg3PWNvbmZpZyBBVEg5S19IVENfREVCVUdGU1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnOjE4ODpcXHRib29sIFxcXCJBdGhlcm9zIGF0aDlrX2h0YyBkZWJ1Z2dpbmdcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWctMTg5LVxcdGRlcGVuZHMgb24gQVRIOUtfSFRDIFxcdTAwMjZcXHUwMDI2IERFQlVHX0ZTXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZy0xOTEtXFx0aGVscFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnOjE5MjpcXHQgIFNheSBZLCBpZiB5b3UgbmVlZCBhY2Nlc3MgdG8gYXRoOWtfaHRjJ3Mgc3RhdGlzdGljcy5cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZy0xOTMtXFx0ICBBcyB3ZWxsIGFzIGFjY2VzcyB0byB0aGUgRkZUL3NwZWN0cmFsIGRhdGEuXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvS2NvbmZpZz0yMDY9Y29uZmlnIEFUSDlLX0NPTU1PTl9TUEVDVFJBTFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9LY29uZmlnOjIwNzpcXHRib29sIFxcXCJBdGhlcm9zIGF0aDlrL2F0aDlrX2h0YyBzcGVjdHJhbCBzY2FuIHN1cHBvcnRcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL0tjb25maWctMjA4LVxcdGRlcGVuZHMgb24gQVRIOUtfREVCVUdGUyB8fCBBVEg5S19IVENfREVCVUdGU1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL01ha2VmaWxlLTEtIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogSVNDXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL01ha2VmaWxlOjI6YXRoOWsteSArPVxcdGJlYWNvbi5vIFxcXFxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvTWFrZWZpbGUtMy1cXHRcXHRncGlvLm8gXFxcXFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL01ha2VmaWxlLTExLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9NYWtlZmlsZToxMjphdGg5ay0kKENPTkZJR19BVEg5S19CVENPRVhfU1VQUE9SVCkgKz0gbWNpLm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvTWFrZWZpbGU6MTM6YXRoOWstJChDT05GSUdfQVRIOUtfUENJKSArPSBwY2kub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9NYWtlZmlsZToxNDphdGg5ay0kKENPTkZJR19BVEg5S19BSEIpICs9IGFoYi5vXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL01ha2VmaWxlOjE1OmF0aDlrLSQoQ09ORklHX0FUSDlLX0RGU19ERUJVR0ZTKSArPSBkZnNfZGVidWcub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9NYWtlZmlsZToxNjphdGg5ay0kKENPTkZJR19BVEg5S19ERlNfQ0VSVElGSUVEKSArPSBkZnMub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9NYWtlZmlsZToxNzphdGg5ay0kKENPTkZJR19BVEg5S19UWDk5KSArPSB0eDk5Lm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvTWFrZWZpbGU6MTg6YXRoOWstJChDT05GSUdfQVRIOUtfV09XKSArPSB3b3cub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9NYWtlZmlsZToxOTphdGg5ay0kKENPTkZJR19BVEg5S19IV1JORykgKz0gcm5nLm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvTWFrZWZpbGUtMjAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL01ha2VmaWxlOjIxOmF0aDlrLSQoQ09ORklHX0FUSDlLX0RFQlVHRlMpICs9IGRlYnVnLm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvTWFrZWZpbGUtMjItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL01ha2VmaWxlOjIzOmF0aDlrLSQoQ09ORklHX0FUSDlLX1NUQVRJT05fU1RBVElTVElDUykgKz0gZGVidWdfc3RhLm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvTWFrZWZpbGUtMjQtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL01ha2VmaWxlOjI1Om9iai0kKENPTkZJR19BVEg5SykgKz0gYXRoOWsub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9NYWtlZmlsZS0yNi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvTWFrZWZpbGU6Mjc6YXRoOWtfaHcteTo9XFx0XFxcXFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9NYWtlZmlsZS0yOC1cXHRcXHRhcjkwMDJfaHcubyBcXFxcXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvTWFrZWZpbGUtNDctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL01ha2VmaWxlOjQ4OmF0aDlrX2h3LSQoQ09ORklHX0FUSDlLX1dPVykgKz0gYXI5MDAzX3dvdy5vXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL01ha2VmaWxlLTQ5LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9NYWtlZmlsZTo1MDphdGg5a19ody0kKENPTkZJR19BVEg5S19CVENPRVhfU1VQUE9SVCkgKz0gYnRjb2V4Lm8gXFxcXFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9NYWtlZmlsZS01MS1cXHRcXHRcXHRcXHRcXHQgICBhcjkwMDNfbWNpLm8gXFxcXFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL01ha2VmaWxlLTUzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9NYWtlZmlsZTo1NDphdGg5a19ody0kKENPTkZJR19BVEg5S19QQ09FTSkgKz0gYXI5MDAzX3J0dC5vXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL01ha2VmaWxlLTU1LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9NYWtlZmlsZTo1NjphdGg5a19ody0kKENPTkZJR19BVEg5S19EWU5BQ0spICs9IGR5bmFjay5vXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL01ha2VmaWxlLTU3LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9NYWtlZmlsZTo1ODpvYmotJChDT05GSUdfQVRIOUtfSFcpICs9IGF0aDlrX2h3Lm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvTWFrZWZpbGUtNTktXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL01ha2VmaWxlOjYwOm9iai0kKENPTkZJR19BVEg5S19DT01NT04pICs9IGF0aDlrX2NvbW1vbi5vXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL01ha2VmaWxlOjYxOmF0aDlrX2NvbW1vbi15Oj1cXHRjb21tb24ubyBcXFxcXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL01ha2VmaWxlLTYyLVxcdFxcdFxcdGNvbW1vbi1pbml0Lm8gXFxcXFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL01ha2VmaWxlLTY0LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9NYWtlZmlsZTo2NTphdGg5a19jb21tb24tJChDT05GSUdfQVRIOUtfQ09NTU9OX0RFQlVHKSArPSBjb21tb24tZGVidWcub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9NYWtlZmlsZTo2NjphdGg5a19jb21tb24tJChDT05GSUdfQVRIOUtfQ09NTU9OX1NQRUNUUkFMKSArPSBjb21tb24tc3BlY3RyYWwub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9NYWtlZmlsZS02Ny1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvTWFrZWZpbGU6Njg6YXRoOWtfaHRjLXkgKz1cXHRodGNfaHN0Lm8gXFxcXFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9NYWtlZmlsZS02OS1cXHRcXHRoaWZfdXNiLm8gXFxcXFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL01ha2VmaWxlLTc2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9NYWtlZmlsZTo3NzphdGg5a19odGMtJChDT05GSUdfQVRIOUtfSFRDX0RFQlVHRlMpICs9IGh0Y19kcnZfZGVidWcub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9NYWtlZmlsZS03OC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvTWFrZWZpbGU6Nzk6b2JqLSQoQ09ORklHX0FUSDlLX0hUQykgKz0gYXRoOWtfaHRjLm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvTWFrZWZpbGUtODAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL01ha2VmaWxlOjgxOm9iai0kKENPTkZJR19BVEg5S19QQ0lfTk9fRUVQUk9NKSArPSBhdGg5a19wY2lfb3dsX2xvYWRlci5vXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYWhiLmMtMjMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FoYi5jOjI0OiNpbmNsdWRlIFxcXCJhdGg5ay5oXFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9haGIuYy0yNS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYWhiLmM6MjY6c3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgYXRoOWtfb2ZfbWF0Y2hfdGFibGVbXSA9IHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYWhiLmMtMjctXFx0eyAuY29tcGF0aWJsZSA9IFxcXCJxY2EsYXI5MTMwLXdpZmlcXFwiLCAuZGF0YSA9ICh2b2lkICopQVI1NDE2X0FSOTEwMF9ERVZJRCB9LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FoYi5jPTU1PXN0YXRpYyBpbnQgYXRoX2FoYl9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FoYi5jLTc1LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9haGIuYzo3NjpcXHRhdGg5a19maWxsX2NoYW5jdHhfb3BzKCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FoYi5jOjc3OlxcdGh3ID0gaWVlZTgwMjExX2FsbG9jX2h3KHNpemVvZihzdHJ1Y3QgYXRoX3NvZnRjKSwgXFx1MDAyNmF0aDlrX29wcyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FoYi5jLTc4LVxcdGlmIChodyA9PSBOVUxMKSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYWhiLmMtOTEtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FoYi5jOjkyOlxcdHJldCA9IHJlcXVlc3RfaXJxKGlycSwgYXRoX2lzciwgSVJRRl9TSEFSRUQsIFxcXCJhdGg5a1xcXCIsIHNjKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYWhiLmMtOTMtXFx0aWYgKHJldCkge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FoYi5jLTk4LVxcdGRldl9pZCA9ICh1MTYpKGtlcm5lbF91bG9uZ190KW9mX2RldmljZV9nZXRfbWF0Y2hfZGF0YShcXHUwMDI2cGRldi1cXHUwMDNlZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYWhiLmM6OTk6XFx0cmV0ID0gYXRoOWtfaW5pdF9kZXZpY2UoZGV2X2lkLCBzYywgXFx1MDAyNmF0aF9haGJfYnVzX29wcyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FoYi5jLTEwMC1cXHRpZiAocmV0KSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYWhiLmMtMTA1LVxcdGFoID0gc2MtXFx1MDAzZXNjX2FoO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9haGIuYzoxMDY6XFx0YXRoOWtfaHdfbmFtZShhaCwgaHdfbmFtZSwgc2l6ZW9mKGh3X25hbWUpKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYWhiLmMtMTA3LVxcdHdpcGh5X2luZm8oaHctXFx1MDAzZXdpcGh5LCBcXFwiJXMgbWVtPTB4JXAsIGlycT0lZFxcXFxuXFxcIixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9haGIuYz0xMTk9c3RhdGljIHZvaWQgYXRoX2FoYl9yZW1vdmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9haGIuYy0xMjUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FoYi5jOjEyNjpcXHRcXHRhdGg5a19kZWluaXRfZGV2aWNlKHNjKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYWhiLmMtMTI3LVxcdFxcdGZyZWVfaXJxKHNjLVxcdTAwM2VpcnEsIHNjKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9haGIuYz0xMzI9c3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kcml2ZXIgYXRoX2FoYl9kcml2ZXIgPSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYWhiLmMtMTM1LVxcdC5kcml2ZXIgPSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FoYi5jOjEzNjpcXHRcXHQubmFtZSA9IFxcXCJhdGg5a1xcXCIsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FoYi5jOjEzNzpcXHRcXHQub2ZfbWF0Y2hfdGFibGUgPSBhdGg5a19vZl9tYXRjaF90YWJsZSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYWhiLmMtMTM4LVxcdH0sXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYWhiLmMtMTQwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9haGIuYzoxNDE6TU9EVUxFX0RFVklDRV9UQUJMRShvZiwgYXRoOWtfb2ZfbWF0Y2hfdGFibGUpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9haGIuYy0xNDItXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmM9ODU9c3RhdGljIGNvbnN0IHN0cnVjdCBhbmlfY2NrX2xldmVsX2VudHJ5IGNja19sZXZlbF90YWJsZVtdID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jLTEwNi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmM6MTA3OnN0YXRpYyB2b2lkIGF0aDlrX2h3X3VwZGF0ZV9taWJzdGF0cyhzdHJ1Y3QgYXRoX2h3ICphaCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmM6MTA4OlxcdFxcdFxcdFxcdCAgICAgc3RydWN0IGF0aDlrX21pYl9zdGF0cyAqc3RhdHMpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jLTEwOS17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmMtMTI2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYzoxMjc6c3RhdGljIHZvaWQgYXRoOWtfYW5pX3Jlc3RhcnQoc3RydWN0IGF0aF9odyAqYWgpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jLTEyOC17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmMtMTQxLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYzoxNDI6XFx0YXRoOWtfaHdfdXBkYXRlX21pYnN0YXRzKGFoLCBcXHUwMDI2YWgtXFx1MDAzZWFoX21pYlN0YXRzKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmMtMTQzLVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jLTE0OC0vKiBBZGp1c3QgdGhlIE9GRE0gTm9pc2UgSW1tdW5pdHkgTGV2ZWwgKi9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmM6MTQ5OnN0YXRpYyB2b2lkIGF0aDlrX2h3X3NldF9vZmRtX25pbChzdHJ1Y3QgYXRoX2h3ICphaCwgdTggaW1tdW5pdHlMZXZlbCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmMtMTUwLVxcdFxcdFxcdFxcdCAgYm9vbCBzY2FuKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jLTE1Mi1cXHRzdHJ1Y3QgYXI1NDE2QW5pU3RhdGUgKmFuaVN0YXRlID0gXFx1MDAyNmFoLVxcdTAwM2Vhbmk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jOjE1MzpcXHRzdHJ1Y3QgYXRoX2NvbW1vbiAqY29tbW9uID0gYXRoOWtfaHdfY29tbW9uKGFoKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmMtMTU0LVxcdGNvbnN0IHN0cnVjdCBhbmlfb2ZkbV9sZXZlbF9lbnRyeSAqZW50cnlfb2ZkbTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYy0xNzMtXFx0aWYgKGFuaVN0YXRlLVxcdTAwM2VzcHVySW1tdW5pdHlMZXZlbCAhPSBlbnRyeV9vZmRtLVxcdTAwM2VzcHVyX2ltbXVuaXR5X2xldmVsKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYzoxNzQ6XFx0XFx0YXRoOWtfaHdfYW5pX2NvbnRyb2woYWgsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jLTE3NS1cXHRcXHRcXHRcXHQgICAgIEFUSDlLX0FOSV9TUFVSX0lNTVVOSVRZX0xFVkVMLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jLTE3OS1cXHQgICAgZW50cnlfb2ZkbS1cXHUwMDNlZmlyX3N0ZXBfbGV2ZWwgXFx1MDAzZT0gZW50cnlfY2NrLVxcdTAwM2VmaXJfc3RlcF9sZXZlbClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmM6MTgwOlxcdFxcdGF0aDlrX2h3X2FuaV9jb250cm9sKGFoLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYy0xODEtXFx0XFx0XFx0XFx0ICAgICBBVEg5S19BTklfRklSU1RFUF9MRVZFTCxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYy0yMDItXFx0aWYgKGFuaVN0YXRlLVxcdTAwM2VvZmRtV2Vha1NpZ0RldGVjdCAhPSB3ZWFrX3NpZylcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmM6MjAzOlxcdFxcdGF0aDlrX2h3X2FuaV9jb250cm9sKGFoLCBBVEg5S19BTklfT0ZETV9XRUFLX1NJR05BTF9ERVRFQ1RJT04sXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jLTIwNC1cXHRcXHRcXHRcXHQgICAgIHdlYWtfc2lnKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYy0yMTctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jOjIxODpzdGF0aWMgdm9pZCBhdGg5a19od19hbmlfb2ZkbV9lcnJfdHJpZ2dlcihzdHJ1Y3QgYXRoX2h3ICphaClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmMtMjE5LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYy0yMjItXFx0aWYgKGFuaVN0YXRlLVxcdTAwM2VvZmRtTm9pc2VJbW11bml0eUxldmVsIFxcdTAwM2MgQVRIOUtfQU5JX09GRE1fTUFYX0xFVkVMKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYzoyMjM6XFx0XFx0YXRoOWtfaHdfc2V0X29mZG1fbmlsKGFoLCBhbmlTdGF0ZS1cXHUwMDNlb2ZkbU5vaXNlSW1tdW5pdHlMZXZlbCArIDEsIGZhbHNlKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmMtMjI0LX1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYy0yMjgtICovXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jOjIyOTpzdGF0aWMgdm9pZCBhdGg5a19od19zZXRfY2NrX25pbChzdHJ1Y3QgYXRoX2h3ICphaCwgdV9pbnQ4X3QgaW1tdW5pdHlMZXZlbCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmMtMjMwLVxcdFxcdFxcdFxcdCBib29sIHNjYW4pXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmMtMjMyLVxcdHN0cnVjdCBhcjU0MTZBbmlTdGF0ZSAqYW5pU3RhdGUgPSBcXHUwMDI2YWgtXFx1MDAzZWFuaTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmM6MjMzOlxcdHN0cnVjdCBhdGhfY29tbW9uICpjb21tb24gPSBhdGg5a19od19jb21tb24oYWgpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYy0yMzQtXFx0Y29uc3Qgc3RydWN0IGFuaV9vZmRtX2xldmVsX2VudHJ5ICplbnRyeV9vZmRtO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jLTI1Ny1cXHQgICAgZW50cnlfY2NrLVxcdTAwM2VmaXJfc3RlcF9sZXZlbCBcXHUwMDNlPSBlbnRyeV9vZmRtLVxcdTAwM2VmaXJfc3RlcF9sZXZlbClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmM6MjU4OlxcdFxcdGF0aDlrX2h3X2FuaV9jb250cm9sKGFoLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYy0yNTktXFx0XFx0XFx0XFx0ICAgICBBVEg5S19BTklfRklSU1RFUF9MRVZFTCxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYy0yNjctXFx0aWYgKGFuaVN0YXRlLVxcdTAwM2VtcmNDQ0sgIT0gZW50cnlfY2NrLVxcdTAwM2VtcmNfY2NrX29uKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYzoyNjg6XFx0XFx0YXRoOWtfaHdfYW5pX2NvbnRyb2woYWgsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jLTI2OS1cXHRcXHRcXHRcXHQgICAgIEFUSDlLX0FOSV9NUkNfQ0NLLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jLTI3Mi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmM6MjczOnN0YXRpYyB2b2lkIGF0aDlrX2h3X2FuaV9jY2tfZXJyX3RyaWdnZXIoc3RydWN0IGF0aF9odyAqYWgpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jLTI3NC17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmMtMjc3LVxcdGlmIChhbmlTdGF0ZS1cXHUwMDNlY2NrTm9pc2VJbW11bml0eUxldmVsIFxcdTAwM2MgQVRIOUtfQU5JX0NDS19NQVhfTEVWRUwpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jOjI3ODpcXHRcXHRhdGg5a19od19zZXRfY2NrX25pbChhaCwgYW5pU3RhdGUtXFx1MDAzZWNja05vaXNlSW1tdW5pdHlMZXZlbCArIDEsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jLTI3OS1cXHRcXHRcXHRcXHQgICAgIGZhbHNlKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYy0yODUtICovXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jOjI4NjpzdGF0aWMgdm9pZCBhdGg5a19od19hbmlfbG93ZXJfaW1tdW5pdHkoc3RydWN0IGF0aF9odyAqYWgpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jLTI4Ny17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmMtMjkyLVxcdCAgICAoYW5pU3RhdGUtXFx1MDAzZW9mZG1zVHVybiB8fCBhbmlTdGF0ZS1cXHUwMDNlY2NrTm9pc2VJbW11bml0eUxldmVsID09IDApKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jOjI5MzpcXHRcXHRhdGg5a19od19zZXRfb2ZkbV9uaWwoYWgsIGFuaVN0YXRlLVxcdTAwM2VvZmRtTm9pc2VJbW11bml0eUxldmVsIC0gMSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmMtMjk0LVxcdFxcdFxcdFxcdCAgICAgIGZhbHNlKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYy0yOTktXFx0aWYgKGFuaVN0YXRlLVxcdTAwM2VjY2tOb2lzZUltbXVuaXR5TGV2ZWwgXFx1MDAzZSAwKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYzozMDA6XFx0XFx0YXRoOWtfaHdfc2V0X2Nja19uaWwoYWgsIGFuaVN0YXRlLVxcdTAwM2VjY2tOb2lzZUltbXVuaXR5TGV2ZWwgLSAxLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYy0zMDEtXFx0XFx0XFx0XFx0ICAgICBmYWxzZSk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmMtMzA4LSAqL1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYzozMDk6dm9pZCBhdGg5a19hbmlfcmVzZXQoc3RydWN0IGF0aF9odyAqYWgsIGJvb2wgaXNfc2Nhbm5pbmcpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jLTMxMC17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jLTMxMS1cXHRzdHJ1Y3QgYXI1NDE2QW5pU3RhdGUgKmFuaVN0YXRlID0gXFx1MDAyNmFoLVxcdTAwM2Vhbmk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jOjMxMjpcXHRzdHJ1Y3QgYXRoOWtfY2hhbm5lbCAqY2hhbiA9IGFoLVxcdTAwM2VjdXJjaGFuO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYzozMTM6XFx0c3RydWN0IGF0aF9jb21tb24gKmNvbW1vbiA9IGF0aDlrX2h3X2NvbW1vbihhaCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jLTMxNC1cXHRpbnQgb2ZkbV9uaWwsIGNja19uaWw7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmMtMzYyLVxcdH1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmM6MzYzOlxcdGF0aDlrX2h3X3NldF9vZmRtX25pbChhaCwgb2ZkbV9uaWwsIGlzX3NjYW5uaW5nKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmM6MzY0OlxcdGF0aDlrX2h3X3NldF9jY2tfbmlsKGFoLCBjY2tfbmlsLCBpc19zY2FubmluZyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jLTM2NS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmM6MzY2OlxcdGF0aDlrX2FuaV9yZXN0YXJ0KGFoKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmMtMzY3LX1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmMtMzY4LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYzozNjk6c3RhdGljIGJvb2wgYXRoOWtfaHdfYW5pX3JlYWRfY291bnRlcnMoc3RydWN0IGF0aF9odyAqYWgpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jLTM3MC17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jOjM3MTpcXHRzdHJ1Y3QgYXRoX2NvbW1vbiAqY29tbW9uID0gYXRoOWtfaHdfY29tbW9uKGFoKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmMtMzcyLVxcdHN0cnVjdCBhcjU0MTZBbmlTdGF0ZSAqYW5pU3RhdGUgPSBcXHUwMDI2YWgtXFx1MDAzZWFuaTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYy0zODAtXFx0XFx0YWgtXFx1MDAzZXN0YXRzLmFzdF9hbmlfbG5lZ19vcl9semVybysrO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYzozODE6XFx0XFx0YXRoOWtfYW5pX3Jlc3RhcnQoYWgpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYy0zODItXFx0XFx0cmV0dXJuIGZhbHNlO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jLTM4Ni1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmM6Mzg3OlxcdGF0aDlrX2h3X3VwZGF0ZV9taWJzdGF0cyhhaCwgXFx1MDAyNmFoLVxcdTAwM2VhaF9taWJTdGF0cyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jLTM4OC1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYy00MDAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jOjQwMTp2b2lkIGF0aDlrX2h3X2FuaV9tb25pdG9yKHN0cnVjdCBhdGhfaHcgKmFoLCBzdHJ1Y3QgYXRoOWtfY2hhbm5lbCAqY2hhbilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmMtNDAyLXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmMtNDAzLVxcdHN0cnVjdCBhcjU0MTZBbmlTdGF0ZSAqYW5pU3RhdGUgPSBcXHUwMDI2YWgtXFx1MDAzZWFuaTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmM6NDA0OlxcdHN0cnVjdCBhdGhfY29tbW9uICpjb21tb24gPSBhdGg5a19od19jb21tb24oYWgpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYy00MDUtXFx0dTMyIG9mZG1QaHlFcnJSYXRlLCBjY2tQaHlFcnJSYXRlO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYy00MDYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jOjQwNzpcXHRpZiAoIWF0aDlrX2h3X2FuaV9yZWFkX2NvdW50ZXJzKGFoKSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmMtNDA4LVxcdFxcdHJldHVybjtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYy00MjQtXFx0XFx0ICAgIG9mZG1QaHlFcnJSYXRlIFxcdTAwM2MgYWgtXFx1MDAzZWNvbmZpZy5vZmRtX3RyaWdfbG93KSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jOjQyNTpcXHRcXHRcXHRhdGg5a19od19hbmlfbG93ZXJfaW1tdW5pdHkoYWgpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYy00MjYtXFx0XFx0XFx0YW5pU3RhdGUtXFx1MDAzZW9mZG1zVHVybiA9ICFhbmlTdGF0ZS1cXHUwMDNlb2ZkbXNUdXJuO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYy00MjctXFx0XFx0fSBlbHNlIGlmIChvZmRtUGh5RXJyUmF0ZSBcXHUwMDNlIGFoLVxcdTAwM2Vjb25maWcub2ZkbV90cmlnX2hpZ2gpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmM6NDI4OlxcdFxcdFxcdGF0aDlrX2h3X2FuaV9vZmRtX2Vycl90cmlnZ2VyKGFoKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmMtNDI5LVxcdFxcdFxcdGFuaVN0YXRlLVxcdTAwM2VvZmRtc1R1cm4gPSBmYWxzZTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmMtNDMwLVxcdFxcdH0gZWxzZSBpZiAoY2NrUGh5RXJyUmF0ZSBcXHUwMDNlIGFoLVxcdTAwM2Vjb25maWcuY2NrX3RyaWdfaGlnaCkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYzo0MzE6XFx0XFx0XFx0YXRoOWtfaHdfYW5pX2Nja19lcnJfdHJpZ2dlcihhaCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jLTQzMi1cXHRcXHRcXHRhbmlTdGF0ZS1cXHUwMDNlb2ZkbXNUdXJuID0gdHJ1ZTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYy00MzUtXFx0XFx0XFx0XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jOjQzNjpcXHRcXHRhdGg5a19hbmlfcmVzdGFydChhaCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jLTQzNy1cXHR9XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jLTQzOC19XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jOjQzOTpFWFBPUlRfU1lNQk9MKGF0aDlrX2h3X2FuaV9tb25pdG9yKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmMtNDQwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYzo0NDE6dm9pZCBhdGg5a19lbmFibGVfbWliX2NvdW50ZXJzKHN0cnVjdCBhdGhfaHcgKmFoKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYy00NDIte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYzo0NDM6XFx0c3RydWN0IGF0aF9jb21tb24gKmNvbW1vbiA9IGF0aDlrX2h3X2NvbW1vbihhaCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jLTQ0NC1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYy00NDYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jOjQ0NzpcXHRhdGg5a19od191cGRhdGVfbWlic3RhdHMoYWgsIFxcdTAwMjZhaC1cXHUwMDNlYWhfbWliU3RhdHMpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYy00NDgtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmMtNDYyLS8qIEZyZWV6ZSB0aGUgTUlCIGNvdW50ZXJzLCBnZXQgdGhlIHN0YXRzIGFuZCB0aGVuIGNsZWFyIHRoZW0gKi9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmM6NDYzOnZvaWQgYXRoOWtfaHdfZGlzYWJsZV9taWJfY291bnRlcnMoc3RydWN0IGF0aF9odyAqYWgpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jLTQ2NC17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jOjQ2NTpcXHRzdHJ1Y3QgYXRoX2NvbW1vbiAqY29tbW9uID0gYXRoOWtfaHdfY29tbW9uKGFoKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmMtNDY2LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jLTQ2OS1cXHRSRUdfV1JJVEUoYWgsIEFSX01JQkMsIEFSX01JQkNfRk1DKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmM6NDcwOlxcdGF0aDlrX2h3X3VwZGF0ZV9taWJzdGF0cyhhaCwgXFx1MDAyNmFoLVxcdTAwM2VhaF9taWJTdGF0cyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jLTQ3MS1cXHRSRUdfV1JJVEUoYWgsIEFSX01JQkMsIEFSX01JQkNfQ01DKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYy00NzQtfVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYzo0NzU6RVhQT1JUX1NZTUJPTChhdGg5a19od19kaXNhYmxlX21pYl9jb3VudGVycyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jLTQ3Ni1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmM6NDc3OnZvaWQgYXRoOWtfaHdfYW5pX2luaXQoc3RydWN0IGF0aF9odyAqYWgpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jLTQ3OC17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jOjQ3OTpcXHRzdHJ1Y3QgYXRoX2NvbW1vbiAqY29tbW9uID0gYXRoOWtfaHdfY29tbW9uKGFoKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmMtNDgwLVxcdHN0cnVjdCBhcjU0MTZBbmlTdGF0ZSAqYW5pID0gXFx1MDAyNmFoLVxcdTAwM2Vhbmk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmMtNTEwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYzo1MTE6XFx0YXRoOWtfYW5pX3Jlc3RhcnQoYWgpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuYzo1MTI6XFx0YXRoOWtfZW5hYmxlX21pYl9jb3VudGVycyhhaCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5jLTUxMy19XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmgtNTMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5oOjU0OmVudW0gYXRoOWtfYW5pX2NtZCB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5oLTU1LVxcdEFUSDlLX0FOSV9PRkRNX1dFQUtfU0lHTkFMX0RFVEVDVElPTiA9IDB4MSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuaC02MS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmg6NjI6c3RydWN0IGF0aDlrX21pYl9zdGF0cyB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5oLTYzLVxcdHUzMiBhY2tyY3ZfYmFkO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5oLTcwLS8qIElOSSBkZWZhdWx0IHZhbHVlcyBmb3IgQU5JIHJlZ2lzdGVycyAqL1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuaDo3MTpzdHJ1Y3QgYXRoOWtfYW5pX2RlZmF1bHQge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuaC03Mi1cXHR1MTYgbTFUaHJlc2hMb3c7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmg9ODg9c3RydWN0IGFyNTQxNkFuaVN0YXRlIHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuaC05OS1cXHR1MzIgY2NrUGh5RXJyQ291bnQ7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5oOjEwMDpcXHRzdHJ1Y3QgYXRoOWtfYW5pX2RlZmF1bHQgaW5pRGVmO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuaC0xMDEtfTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuaD0xMDM9c3RydWN0IGFyNTQxNlN0YXRzIHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuaC0xMTYtXFx0dTMyIGF2Z2Jyc3NpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuaDoxMTc6XFx0c3RydWN0IGF0aDlrX21pYl9zdGF0cyBhc3RfbWlic3RhdHM7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5oLTExOC19O1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5oLTEyMC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmg6MTIxOnZvaWQgYXRoOWtfZW5hYmxlX21pYl9jb3VudGVycyhzdHJ1Y3QgYXRoX2h3ICphaCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FuaS5oOjEyMjp2b2lkIGF0aDlrX2h3X2Rpc2FibGVfbWliX2NvdW50ZXJzKHN0cnVjdCBhdGhfaHcgKmFoKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW5pLmg6MTIzOnZvaWQgYXRoOWtfaHdfYW5pX2luaXQoc3RydWN0IGF0aF9odyAqYWgpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbmkuaC0xMjQtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW50ZW5uYS5jLTE2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbnRlbm5hLmM6MTc6I2luY2x1ZGUgXFxcImF0aDlrLmhcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FudGVubmEuYy0xOC1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbnRlbm5hLmM9NzIxPXZvaWQgYXRoX2FudF9jb21iX3NjYW4oc3RydWN0IGF0aF9zb2Z0YyAqc2MsIHN0cnVjdCBhdGhfcnhfc3RhdHVzICpycylcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbnRlbm5hLmMtNzgwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbnRlbm5hLmM6NzgxOlxcdGF0aDlrX2h3X2FudGRpdl9jb21iX2NvbmZfZ2V0KHNjLVxcdTAwM2VzY19haCwgXFx1MDAyNmRpdl9hbnRfY29uZik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FudGVubmEuYy03ODItXFx0Y3Vycl9hbHRfc2V0ID0gZGl2X2FudF9jb25mLmFsdF9sbmFfY29uZjtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hbnRlbm5hLmMtODM5LVxcdGF0aF9hbnRfZGl2X2NvbmZfZmFzdF9kaXZiaWFzKFxcdTAwMjZkaXZfYW50X2NvbmYsIGFudGNvbWIsIGFsdF9yYXRpbyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FudGVubmEuYzo4NDA6XFx0YXRoOWtfaHdfYW50ZGl2X2NvbWJfY29uZl9zZXQoc2MtXFx1MDAzZXNjX2FoLCBcXHUwMDI2ZGl2X2FudF9jb25mKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW50ZW5uYS5jOjg0MTpcXHRhdGg5a19kZWJ1Z19zdGF0X2FudChzYywgXFx1MDAyNmRpdl9hbnRfY29uZiwgbWFpbl9yc3NpX2F2ZywgYWx0X3Jzc2lfYXZnKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYW50ZW5uYS5jLTg0Mi1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hcjUwMDhfcGh5LmM9MTExPXN0YXRpYyB2b2lkIGFyNTAwOF9od19waHlfbW9kaWZ5X3J4X2J1ZmZlcih1MzIgKnJmQnVmLCB1MzIgcmVnMzIsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYXI1MDA4X3BoeS5jLTExNy1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYXI1MDA4X3BoeS5jOjExODpcXHR0bXAzMiA9IGF0aDlrX2h3X3JldmVyc2VfYml0cyhyZWczMiwgbnVtQml0cyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FyNTAwOF9waHkuYy0xMTktXFx0YXJyYXlFbnRyeSA9IChmaXJzdEJpdCAtIDEpIC8gODtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hcjUwMDhfcGh5LmM9MTY0PXN0YXRpYyB2b2lkIGFyNTAwOF9od19mb3JjZV9iaWFzKHN0cnVjdCBhdGhfaHcgKmFoLCB1MTYgc3ludGhfZnJlcSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYXI1MDA4X3BoeS5jLTE2NS17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FyNTAwOF9waHkuYzoxNjY6XFx0c3RydWN0IGF0aF9jb21tb24gKmNvbW1vbiA9IGF0aDlrX2h3X2NvbW1vbihhaCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FyNTAwOF9waHkuYy0xNjctXFx0dTMyIHRtcF9yZWc7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYXI1MDA4X3BoeS5jLTE4My1cXHQvKiBwcmUtcmV2ZXJzZSB0aGlzIGZpZWxkICovXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FyNTAwOF9waHkuYzoxODQ6XFx0dG1wX3JlZyA9IGF0aDlrX2h3X3JldmVyc2VfYml0cyhuZXdfYmlhcywgMyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FyNTAwOF9waHkuYy0xODUtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYXI1MDA4X3BoeS5jLTIwMi0gKi9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYXI1MDA4X3BoeS5jOjIwMzpzdGF0aWMgaW50IGFyNTAwOF9od19zZXRfY2hhbm5lbChzdHJ1Y3QgYXRoX2h3ICphaCwgc3RydWN0IGF0aDlrX2NoYW5uZWwgKmNoYW4pXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FyNTAwOF9waHkuYy0yMDQte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hcjUwMDhfcGh5LmM6MjA1OlxcdHN0cnVjdCBhdGhfY29tbW9uICpjb21tb24gPSBhdGg5a19od19jb21tb24oYWgpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hcjUwMDhfcGh5LmMtMjA2LVxcdHUzMiBjaGFubmVsU2VsID0gMDtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hcjUwMDhfcGh5LmMtMjEyLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hcjUwMDhfcGh5LmM6MjEzOlxcdGF0aDlrX2h3X2dldF9jaGFubmVsX2NlbnRlcnMoYWgsIGNoYW4sIFxcdTAwMjZjZW50ZXJzKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYXI1MDA4X3BoeS5jLTIxNC1cXHRmcmVxID0gY2VudGVycy5zeW50aF9jZW50ZXI7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYXI1MDA4X3BoeS5jLTIzMC1cXHRcXHRjaGFubmVsU2VsID0gKGNoYW5uZWxTZWwgXFx1MDAzY1xcdTAwM2MgMikgXFx1MDAyNiAweGZmO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hcjUwMDhfcGh5LmM6MjMxOlxcdFxcdGNoYW5uZWxTZWwgPSBhdGg5a19od19yZXZlcnNlX2JpdHMoY2hhbm5lbFNlbCwgOCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FyNTAwOF9waHkuYy0yMzItXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYXI1MDA4X3BoeS5jLTI0NC1cXHRcXHRjaGFubmVsU2VsID1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYXI1MDA4X3BoeS5jOjI0NTpcXHRcXHQgICAgYXRoOWtfaHdfcmV2ZXJzZV9iaXRzKCgoZnJlcSAtIDQ4MDApIC8gMjAgXFx1MDAzY1xcdTAwM2MgMiksIDgpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hcjUwMDhfcGh5LmM6MjQ2OlxcdFxcdGFNb2RlUmVmU2VsID0gYXRoOWtfaHdfcmV2ZXJzZV9iaXRzKDEsIDIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hcjUwMDhfcGh5LmMtMjQ3LVxcdH0gZWxzZSBpZiAoKGZyZXEgJSAxMCkgPT0gMCkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hcjUwMDhfcGh5LmMtMjQ4LVxcdFxcdGNoYW5uZWxTZWwgPVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hcjUwMDhfcGh5LmM6MjQ5OlxcdFxcdCAgICBhdGg5a19od19yZXZlcnNlX2JpdHMoKChmcmVxIC0gNDgwMCkgLyAxMCBcXHUwMDNjXFx1MDAzYyAxKSwgOCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FyNTAwOF9waHkuYy0yNTAtXFx0XFx0aWYgKEFSX1NSRVZfOTEwMChhaCkgfHwgQVJfU1JFVl85MTYwXzEwX09SX0xBVEVSKGFoKSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYXI1MDA4X3BoeS5jOjI1MTpcXHRcXHRcXHRhTW9kZVJlZlNlbCA9IGF0aDlrX2h3X3JldmVyc2VfYml0cygyLCAyKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYXI1MDA4X3BoeS5jLTI1Mi1cXHRcXHRlbHNlXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FyNTAwOF9waHkuYzoyNTM6XFx0XFx0XFx0YU1vZGVSZWZTZWwgPSBhdGg5a19od19yZXZlcnNlX2JpdHMoMSwgMik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FyNTAwOF9waHkuYy0yNTQtXFx0fSBlbHNlIGlmICgoZnJlcSAlIDUpID09IDApIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYXI1MDA4X3BoeS5jOjI1NTpcXHRcXHRjaGFubmVsU2VsID0gYXRoOWtfaHdfcmV2ZXJzZV9iaXRzKChmcmVxIC0gNDgwMCkgLyA1LCA4KTtcXG5cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMDZUMDg6MDk6MzMuNTc4OTYzMDIzWiIsIlNlcSI6MTksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy43LWZsYXNoIiwiRHVyYXRpb24iOjMwMTUzNDY2NDYsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqRGl2aW5nIGludG8gdGhlIEF0aGVyb3MgOWsgRHJpdmVyJ3MgVHJhbnNtaXNzaW9uIENvZGUqKlxuXG5Pa2F5LCB0aW1lIHRvIGdldCBteSBoYW5kcyBkaXJ0eS4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgaG93IHRoZSBBdGhlcm9zIDlrIGRyaXZlciBoYW5kbGVzIHBhY2tldCB0cmFuc21pc3Npb24sIHNvIEknbGwgc3RhcnQgYnkgY2hlY2tpbmcgb3V0IGBhdGg5ay94bWl0LmNgLiBTcGVjaWZpY2FsbHksIEknbSBoZWFkaW5nIHN0cmFpZ2h0IHRvIHRoZSBoZWFydCBvZiB0aGUgbWF0dGVyIOKAkyBgZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuY2AsIGFuZCBJJ20gaG9taW5nIGluIG9uIHRoZSBjb2RlIGFyb3VuZCBsaW5lIDE4ODQuIFRoYXQncyB1c3VhbGx5IHdoZXJlIHRoZSBjb3JlIHRyYW5zbWlzc2lvbiBsb2dpYyByZXNpZGVzLiBJJ20gZ29pbmcgdG8gY2FyZWZ1bGx5IHJlYWQgdGhpcyBzZWN0aW9uIHRvIGdldCBhIGNsZWFyIHBpY3R1cmUgb2Ygd2hhdCB0aGUgZHJpdmVyIGlzIGRvaW5nIHdoZW4gaXQncyBhY3R1YWxseSBzZW5kaW5nIGRhdGEgb3ZlciB0aGUgYWlyLiBJIG5lZWQgdG8gcmVmcmVzaCBteSBtZW1vcnkgb24gdGhlIGRhdGEgc3RydWN0dXJlcyBpdCdzIHVzaW5nLCB0aGUgcGFja2V0IHF1ZXVlIG1hbmFnZW1lbnQsIHRoZSBoYXJkd2FyZSBpbnRlcmFjdGlvbnPigKYgZXZlcnl0aGluZy4gTGV0J3Mgc2VlIHdoYXQgZ2VtcyB0aGlzIGNvZGUgaG9sZHMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjM4ODk0LCJPdXRwdXRUb2tlbnMiOjQ1LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NTIsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDktMDZUMDg6MDk6MzYuNTk0MzEzNjU5WiIsIlNlcSI6MjAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InJlYWQtZmlsZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjUxMDM3MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkZpbGVcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jXCIsXG4gIFwiRmlyc3RMaW5lXCI6IDE4NzAsXG4gIFwiTGluZUNvdW50XCI6IDQ1XG59IiwiUmVzdWx0cyI6IntcbiAgXCJDb250ZW50c1wiOiBcIjE4NzA6XFx0fVxcbjE4NzE6XFx0XFxuMTg3MjpcXHRzdGF0aWMgdm9pZCBhdGhfZHJhaW5fdHhxX2xpc3Qoc3RydWN0IGF0aF9zb2Z0YyAqc2MsIHN0cnVjdCBhdGhfdHhxICp0eHEsXFxuMTg3MzpcXHRcXHRcXHRcXHQgICAgICAgc3RydWN0IGxpc3RfaGVhZCAqbGlzdClcXG4xODc0OlxcdHtcXG4xODc1OlxcdFxcdHN0cnVjdCBhdGhfYnVmICpiZiwgKmxhc3RiZjtcXG4xODc2OlxcdFxcdHN0cnVjdCBsaXN0X2hlYWQgYmZfaGVhZDtcXG4xODc3OlxcdFxcdHN0cnVjdCBhdGhfdHhfc3RhdHVzIHRzO1xcbjE4Nzg6XFx0XFxuMTg3OTpcXHRcXHRtZW1zZXQoXFx1MDAyNnRzLCAwLCBzaXplb2YodHMpKTtcXG4xODgwOlxcdFxcdHRzLnRzX3N0YXR1cyA9IEFUSDlLX1RYX0ZMVVNIO1xcbjE4ODE6XFx0XFx0SU5JVF9MSVNUX0hFQUQoXFx1MDAyNmJmX2hlYWQpO1xcbjE4ODI6XFx0XFxuMTg4MzpcXHRcXHR3aGlsZSAoIWxpc3RfZW1wdHkobGlzdCkpIHtcXG4xODg0OlxcdFxcdFxcdGJmID0gbGlzdF9maXJzdF9lbnRyeShsaXN0LCBzdHJ1Y3QgYXRoX2J1ZiwgbGlzdCk7XFxuMTg4NTpcXHRcXG4xODg2OlxcdFxcdFxcdGlmIChiZi1cXHUwMDNlYmZfc3RhdGUuc3RhbGUpIHtcXG4xODg3OlxcdFxcdFxcdFxcdHN0cnVjdCBza19idWZmICpza2IgPSBiZi1cXHUwMDNlYmZfbXBkdTtcXG4xODg4OlxcdFxcbjE4ODk6XFx0XFx0XFx0XFx0bGlzdF9kZWwoXFx1MDAyNmJmLVxcdTAwM2VsaXN0KTtcXG4xODkwOlxcdFxcdFxcdFxcdGlmIChiZi1cXHUwMDNlYmZfYnVmX2FkZHIpIHtcXG4xODkxOlxcdFxcdFxcdFxcdFxcdGRtYV91bm1hcF9zaW5nbGUoc2MtXFx1MDAzZWRldiwgYmYtXFx1MDAzZWJmX2J1Zl9hZGRyLFxcbjE4OTI6XFx0XFx0XFx0XFx0XFx0XFx0XFx0IHNrYiA/IHNrYi1cXHUwMDNlbGVuIDogMCxcXG4xODkzOlxcdFxcdFxcdFxcdFxcdFxcdFxcdCBETUFfVE9fREVWSUNFKTtcXG4xODk0OlxcdFxcdFxcdFxcdFxcdGJmLVxcdTAwM2ViZl9idWZfYWRkciA9IDA7XFxuMTg5NTpcXHRcXHRcXHRcXHR9XFxuMTg5NjpcXHRcXHRcXHRcXHRiZi1cXHUwMDNlYmZfbXBkdSA9IE5VTEw7XFxuMTg5NzpcXHRcXHRcXHRcXHRkZXZfa2ZyZWVfc2tiX2FueShza2IpO1xcbjE4OTg6XFx0XFx0XFx0XFx0YXRoX3R4X3JldHVybl9idWZmZXIoc2MsIGJmKTtcXG4xODk5OlxcdFxcdFxcdFxcdGNvbnRpbnVlO1xcbjE5MDA6XFx0XFx0XFx0fVxcbjE5MDE6XFx0XFxuMTkwMjpcXHRcXHRcXHRsYXN0YmYgPSBiZi1cXHUwMDNlYmZfbGFzdGJmO1xcbjE5MDM6XFx0XFx0XFx0bGlzdF9jdXRfcG9zaXRpb24oXFx1MDAyNmJmX2hlYWQsIGxpc3QsIFxcdTAwMjZsYXN0YmYtXFx1MDAzZWxpc3QpO1xcbjE5MDQ6XFx0XFx0XFx0YXRoX3R4X3Byb2Nlc3NfYnVmZmVyKHNjLCB0eHEsIFxcdTAwMjZ0cywgYmYsIFxcdTAwMjZiZl9oZWFkKTtcXG4xOTA1OlxcdFxcdH1cXG4xOTA2OlxcdH1cXG4xOTA3OlxcdFxcbjE5MDg6XFx0LypcXG4xOTA5OlxcdCAqIERyYWluIGEgZ2l2ZW4gVFggcXVldWUgKGNvdWxkIGJlIEJlYWNvbiBvciBEYXRhKVxcbjE5MTA6XFx0ICpcXG4xOTExOlxcdCAqIFRoaXMgYXNzdW1lcyBvdXRwdXQgaGFzIGJlZW4gc3RvcHBlZCBhbmRcXG4xOTEyOlxcdCAqIHdlIGRvIG5vdCBuZWVkIHRvIGJsb2NrIGF0aF90eF90YXNrbGV0LlxcbjE5MTM6XFx0ICovXFxuMTkxNDpcXHR2b2lkIGF0aF9kcmFpbnR4cShzdHJ1Y3QgYXRoX3NvZnRjICpzYywgc3RydWN0IGF0aF90eHEgKnR4cSlcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMDZUMDg6MDk6MzYuNTk0ODI2OTg5WiIsIlNlcSI6MjEsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy43LWZsYXNoIiwiRHVyYXRpb24iOjM0NDIyMjYzNjksIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBteSB0aG91Z2h0IHByb2Nlc3MsIGFzIGlmIEkgd2VyZSBjb25zaWRlcmluZyB0aGlzIGlzc3VlOlxuXG4qKkRlbHZpbmcgaW50byB0aGUgYGF0aDlrYCBEcml2ZXIqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCBgYXRoOWtgLCB0aGUgZHJpdmVyIHRoYXQgaGFuZGxlcyBBdGhlcm9zIFBDSS9QQ0llIGFuZCBBSEIgd2lyZWxlc3MgY2hpcHMsIHBhcnRpY3VsYXJseSB0aG9zZSBBUjcxeHgvQVI5MTMwIHNlcmllcyBkZXZpY2VzLiBOb3csIEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoaXMgZHJpdmVyJ3Mgc2NvcGUgaW4gcmVsYXRpb24gdG8gdGhlIHN5c3RlbSBhcyBhIHdob2xlLiBJJ20gd29uZGVyaW5nOiBBcmUgdGhlcmUgYW55IG90aGVyIGJ1cyB0eXBlcyBpdCBzdXBwb3J0cyB0aGF0IEkgbWlnaHQgYmUgb3Zlcmxvb2tpbmc/IEFuZCBqdXN0IGFzIGltcG9ydGFudGx5LCBhcmUgdGhlcmUgYW55IHNpbXVsYXRpb24gZnJhbWV3b3JrcyB0aGF0IGFyZSBjb21tb25seSB1c2VkIHdpdGggdGhpcyBkcml2ZXIgdGhhdCBjb3VsZCBiZSByZWxldmFudCB0byB0aGUgY3VycmVudCBwcm9ibGVtPyBJIG5lZWQgdG8gYnVpbGQgYSBjb21wcmVoZW5zaXZlIHBpY3R1cmUuIFRoZSBuZXh0IGxvZ2ljYWwgc3RlcCBpcyB0byBkaXZlIHJpZ2h0IGludG8gdGhlIGNvZGUgaXRzZWxmLiBJJ20gZ29pbmcgdG8gcGVyZm9ybSBhIGZpbGUgc2VhcmNoIHdpdGhpbiB0aGUgZHJpdmVyJ3MgY29yZSBkaXJlY3RvcnkgKGBkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYCkgdG8gZ2V0IGEgZnVsbCB2aWV3IG9mIHRoZSBhdmFpbGFibGUgY29tcG9uZW50cyBhbmQgYXNzZXNzIGl0cyBhcmNoaXRlY3R1cmUgaW4gbW9yZSBkZXRhaWwuIFRoYXQgc2hvdWxkIGdpdmUgbWUgYSBnb29kIGhhbmRsZSBvbiBpdHMgZnVuY3Rpb25hbGl0eS5cblxuXG4iLCJJbnB1dFRva2VucyI6Mzk4ODIsIk91dHB1dFRva2VucyI6MjksIk91dHB1dFRob3VnaHRzVG9rZW5zIjo4MSwiVG9vbENhbGxzIjpbInJlYWQtZmlsZSJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTA2VDA4OjA5OjQwLjAzNzA1ODI4OFoiLCJTZXEiOjIyLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJjb2Rlc2VhcmNoLWRpci1pbmRleCIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjIzOTAxMCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkRpclwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5a1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJGaWxlc1wiOiBbXG4gICAgXCJhaGIuY1wiLFxuICAgIFwiYW5pLmNcIixcbiAgICBcImFuaS5oXCIsXG4gICAgXCJhbnRlbm5hLmNcIixcbiAgICBcImFyNTAwOF9pbml0dmFscy5oXCIsXG4gICAgXCJhcjUwMDhfcGh5LmNcIixcbiAgICBcImFyOTAwMV9pbml0dmFscy5oXCIsXG4gICAgXCJhcjkwMDJfY2FsaWIuY1wiLFxuICAgIFwiYXI5MDAyX2h3LmNcIixcbiAgICBcImFyOTAwMl9pbml0dmFscy5oXCIsXG4gICAgXCJhcjkwMDJfbWFjLmNcIixcbiAgICBcImFyOTAwMl9waHkuY1wiLFxuICAgIFwiYXI5MDAyX3BoeS5oXCIsXG4gICAgXCJhcjkwMDNfMnAyX2luaXR2YWxzLmhcIixcbiAgICBcImFyOTAwM19haWMuY1wiLFxuICAgIFwiYXI5MDAzX2FpYy5oXCIsXG4gICAgXCJhcjkwMDNfYnVmZmFsb19pbml0dmFscy5oXCIsXG4gICAgXCJhcjkwMDNfY2FsaWIuY1wiLFxuICAgIFwiYXI5MDAzX2VlcHJvbS5jXCIsXG4gICAgXCJhcjkwMDNfZWVwcm9tLmhcIixcbiAgICBcImFyOTAwM19ody5jXCIsXG4gICAgXCJhcjkwMDNfbWFjLmNcIixcbiAgICBcImFyOTAwM19tYWMuaFwiLFxuICAgIFwiYXI5MDAzX21jaS5jXCIsXG4gICAgXCJhcjkwMDNfbWNpLmhcIixcbiAgICBcImFyOTAwM19wYXByZC5jXCIsXG4gICAgXCJhcjkwMDNfcGh5LmNcIixcbiAgICBcImFyOTAwM19waHkuaFwiLFxuICAgIFwiYXI5MDAzX3J0dC5jXCIsXG4gICAgXCJhcjkwMDNfcnR0LmhcIixcbiAgICBcImFyOTAwM193b3cuY1wiLFxuICAgIFwiYXI5MzMwXzFwMV9pbml0dmFscy5oXCIsXG4gICAgXCJhcjkzMzBfMXAyX2luaXR2YWxzLmhcIixcbiAgICBcImFyOTM0MF9pbml0dmFscy5oXCIsXG4gICAgXCJhcjk0NjJfMnAwX2luaXR2YWxzLmhcIixcbiAgICBcImFyOTQ2Ml8ycDFfaW5pdHZhbHMuaFwiLFxuICAgIFwiYXI5NDg1X2luaXR2YWxzLmhcIixcbiAgICBcImFyOTUzeF9pbml0dmFscy5oXCIsXG4gICAgXCJhcjk1NXhfMXAwX2luaXR2YWxzLmhcIixcbiAgICBcImFyOTU2NV8xcDBfaW5pdHZhbHMuaFwiLFxuICAgIFwiYXI5NTY1XzFwMV9pbml0dmFscy5oXCIsXG4gICAgXCJhcjk1NnhfaW5pdHZhbHMuaFwiLFxuICAgIFwiYXI5NTgwXzFwMF9pbml0dmFscy5oXCIsXG4gICAgXCJhdGg5ay5oXCIsXG4gICAgXCJhdGg5a19wY2lfb3dsX2xvYWRlci5jXCIsXG4gICAgXCJiZWFjb24uY1wiLFxuICAgIFwiYnRjb2V4LmNcIixcbiAgICBcImJ0Y29leC5oXCIsXG4gICAgXCJjYWxpYi5jXCIsXG4gICAgXCJjYWxpYi5oXCIsXG4gICAgXCJjaGFubmVsLmNcIixcbiAgICBcImNvbW1vbi1iZWFjb24uY1wiLFxuICAgIFwiY29tbW9uLWJlYWNvbi5oXCIsXG4gICAgXCJjb21tb24tZGVidWcuY1wiLFxuICAgIFwiY29tbW9uLWRlYnVnLmhcIixcbiAgICBcImNvbW1vbi1pbml0LmNcIixcbiAgICBcImNvbW1vbi1pbml0LmhcIixcbiAgICBcImNvbW1vbi1zcGVjdHJhbC5jXCIsXG4gICAgXCJjb21tb24tc3BlY3RyYWwuaFwiLFxuICAgIFwiY29tbW9uLmNcIixcbiAgICBcImNvbW1vbi5oXCIsXG4gICAgXCJkZWJ1Zy5jXCIsXG4gICAgXCJkZWJ1Zy5oXCIsXG4gICAgXCJkZWJ1Z19zdGEuY1wiLFxuICAgIFwiZGZzLmNcIixcbiAgICBcImRmcy5oXCIsXG4gICAgXCJkZnNfZGVidWcuY1wiLFxuICAgIFwiZGZzX2RlYnVnLmhcIixcbiAgICBcImR5bmFjay5jXCIsXG4gICAgXCJkeW5hY2suaFwiLFxuICAgIFwiZWVwcm9tLmNcIixcbiAgICBcImVlcHJvbS5oXCIsXG4gICAgXCJlZXByb21fNGsuY1wiLFxuICAgIFwiZWVwcm9tXzkyODcuY1wiLFxuICAgIFwiZWVwcm9tX2RlZi5jXCIsXG4gICAgXCJncGlvLmNcIixcbiAgICBcImhpZl91c2IuY1wiLFxuICAgIFwiaGlmX3VzYi5oXCIsXG4gICAgXCJodGMuaFwiLFxuICAgIFwiaHRjX2Rydl9iZWFjb24uY1wiLFxuICAgIFwiaHRjX2Rydl9kZWJ1Zy5jXCIsXG4gICAgXCJodGNfZHJ2X2dwaW8uY1wiLFxuICAgIFwiaHRjX2Rydl9pbml0LmNcIixcbiAgICBcImh0Y19kcnZfbWFpbi5jXCIsXG4gICAgXCJodGNfZHJ2X3R4cnguY1wiLFxuICAgIFwiaHRjX2hzdC5jXCIsXG4gICAgXCJodGNfaHN0LmhcIixcbiAgICBcImh3LW9wcy5oXCIsXG4gICAgXCJody5jXCIsXG4gICAgXCJody5oXCIsXG4gICAgXCJpbml0LmNcIixcbiAgICBcImxpbmsuY1wiLFxuICAgIFwibWFjLmNcIixcbiAgICBcIm1hYy5oXCIsXG4gICAgXCJtYWluLmNcIixcbiAgICBcIm1jaS5jXCIsXG4gICAgXCJtY2kuaFwiLFxuICAgIFwicGNpLmNcIixcbiAgICBcInBoeS5oXCIsXG4gICAgXCJyZWN2LmNcIixcbiAgICBcInJlZy5oXCIsXG4gICAgXCJyZWdfYWljLmhcIixcbiAgICBcInJlZ19tY2kuaFwiLFxuICAgIFwicmVnX3dvdy5oXCIsXG4gICAgXCJybmcuY1wiLFxuICAgIFwidHg5OS5jXCIsXG4gICAgXCJ3bWkuY1wiLFxuICAgIFwid21pLmhcIixcbiAgICBcIndvdy5jXCIsXG4gICAgXCJ4bWl0LmNcIlxuICBdLFxuICBcIlN1YmRpcnNcIjogbnVsbFxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMDZUMDg6MDk6NDAuMDM3MzAwMTM4WiIsIlNlcSI6MjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy43LWZsYXNoIiwiRHVyYXRpb24iOjIwNDc4NjIyNzgsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqSW52ZXN0aWdhdGluZyB0aGUgSFRDIERyaXZlciBmb3IgUG90ZW50aWFsIFJlc291cmNlIE1hbmFnZW1lbnQgSXNzdWVzKipcblxuT2theSwgc28gSSBuZWVkIHRvIGRpZyBpbnRvIHRoZSBIVEMgZHJpdmVyLCBzcGVjaWZpY2FsbHkgdGhlIGBodGNfYCBmaWxlcywgYW5kIHRoZSBgeG1pdC5jYCBmaWxlIHRvIHVuZGVyc3RhbmQgaG93IHRyYW5zbWl0IHF1ZXVlcyBhcmUgbWFuYWdlZCB3aXRoaW4gdGhlIGBhdGg5a19odGNgIGNvbnRleHQuIE15IGluaXRpYWwgdGhvdWdodCBpcyB0byBzZWUgaWYgZnVuY3Rpb25zIGxpa2UgYHhtaXQuY2Agb3IgdGhlIGRyZWFkZWQgYGF0aF9kcmFpbl90eHFfbGlzdGAgYXJlIGV2ZW4gYmVpbmcgKnVzZWQqIGJ5IHRoaXMgcGFydCBvZiB0aGUgZHJpdmVyLiBJZiB0aGV5IGFyZSwgaXQnbGwgZ2l2ZSBtZSBhIGNyaXRpY2FsIGNsdWUgYWJvdXQgaG93IHRoZSBzeXN0ZW0gaGFuZGxlcyBidWZmZXIgcmV0dXJucyBhbmQgcXVldWUgZHJhaW5pbmcuIEkgc2hvdWxkIGFsc28gYnJvYWRlbiB0aGUgc2VhcmNoIHRvIGluY2x1ZGUgb3RoZXIgcG9zc2libHkgcmVsYXRlZCBmdW5jdGlvbnMgaW4gYHhtaXQuY2AsIHNwZWNpZmljYWxseSBmdW5jdGlvbnMgbGlrZSBgYXRoX3R4X3JldHVybl9idWZmZXJgLCBzaW5jZSBpdCdzIHRoZSBjb3JlIG9mIHRyYW5zbWl0LiBJIHdhbnQgdG8gYnVpbGQgYSBjb21wbGV0ZSBtYXAgb2YgdGhlIGtleSBmdW5jdGlvbnMgdGhhdCBjb3VsZCBiZSBhZmZlY3RpbmcgcmVzb3VyY2UgYWxsb2NhdGlvbiwgdG8gaXNvbGF0ZSB0aGUgaXNzdWUuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjQxMjk5LCJPdXRwdXRUb2tlbnMiOjM4LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6OTIsIlRvb2xDYWxscyI6WyJjb2Rlc2VhcmNoLWRpci1pbmRleCJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTA2VDA4OjA5OjQyLjA4NTE2NjU2NloiLCJTZXEiOjI0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTE1NTQ1NjYzLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImF0aF90eF9yZXR1cm5fYnVmZmVyXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5a1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jPTQwNz1zdGF0aWMgc3RydWN0IGF0aF9idWYgKmF0aF90eF9nZXRfYnVmZmVyKHN0cnVjdCBhdGhfc29mdGMgKnNjKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYy00MjUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYzo0MjY6c3RhdGljIHZvaWQgYXRoX3R4X3JldHVybl9idWZmZXIoc3RydWN0IGF0aF9zb2Z0YyAqc2MsIHN0cnVjdCBhdGhfYnVmICpiZilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTQyNy17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jPTE4NzI9c3RhdGljIHZvaWQgYXRoX2RyYWluX3R4cV9saXN0KHN0cnVjdCBhdGhfc29mdGMgKnNjLCBzdHJ1Y3QgYXRoX3R4cSAqdHhxLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYy0xODk3LVxcdFxcdFxcdGRldl9rZnJlZV9za2JfYW55KHNrYik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYzoxODk4OlxcdFxcdFxcdGF0aF90eF9yZXR1cm5fYnVmZmVyKHNjLCBiZik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYy0xODk5LVxcdFxcdFxcdGNvbnRpbnVlO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYz0yMjIwPXN0YXRpYyBzdHJ1Y3QgYXRoX2J1ZiAqYXRoX3R4X3NldHVwX2J1ZmZlcihzdHJ1Y3QgYXRoX3NvZnRjICpzYyxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMtMjI2Mi1cXHRcXHRcXHRcXFwiZG1hX21hcHBpbmdfZXJyb3IoKSBvbiBUWFxcXFxuXFxcIik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYzoyMjYzOlxcdFxcdGF0aF90eF9yZXR1cm5fYnVmZmVyKHNjLCBiZik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYy0yMjY0LVxcdFxcdHJldHVybiBOVUxMO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYz0yNjI5PXN0YXRpYyB2b2lkIGF0aF90eF9wcm9jZXNzcShzdHJ1Y3QgYXRoX3NvZnRjICpzYywgc3RydWN0IGF0aF90eHEgKnR4cSlcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMtMjY5NS1cXHRcXHRcXHRsaXN0X2RlbChcXHUwMDI2YmZfaGVsZC1cXHUwMDNlbGlzdCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYzoyNjk2OlxcdFxcdFxcdGF0aF90eF9yZXR1cm5fYnVmZmVyKHNjLCBiZl9oZWxkKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTI2OTctXFx0XFx0fVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYz0yNzE4PXZvaWQgYXRoX3R4X2VkbWFfdGFza2xldChzdHJ1Y3QgYXRoX3NvZnRjICpzYylcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMtMjc3NS1cXHRcXHRcXHRsaXN0X2RlbChcXHUwMDI2YmYtXFx1MDAzZWxpc3QpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmM6Mjc3NjpcXHRcXHRcXHRhdGhfdHhfcmV0dXJuX2J1ZmZlcihzYywgYmYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMtMjc3Ny1cXHRcXHRcXHRiZiA9IGxpc3RfZmlyc3RfZW50cnkoZmlmb19saXN0LCBzdHJ1Y3QgYXRoX2J1ZiwgbGlzdCk7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTA2VDA4OjA5OjQyLjIwMDcxNzI0OVoiLCJTZXEiOjI1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuNy1mbGFzaCIsIkR1cmF0aW9uIjo2NzUwNDcxOTA1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgUmVhY2hhYmlsaXR5IG9mIGB4bWl0LmNgIGluIHRoZSBgYXRoOWtgIE1vZHVsZSoqXG5cbk9rYXksIHNvIEkgbmVlZCB0byBmaWd1cmUgb3V0IGlmIHRoaXMgYHhtaXQuY2AgZmlsZSBpcyBhY3R1YWxseSByZWFjaGFibGUgZm9yIGZ1enppbmcuIEZpcnN0LCBJJ2xsIGNoZWNrIHRoZSBgTWFrZWZpbGVgIHRvIHNlZSBob3cgaXQncyBidWlsdC4gQWxyaWdodCwgaXQgbG9va3MgbGlrZSBgeG1pdC5jYCBpcyBjb21waWxlZCBkaXJlY3RseSBpbnRvIHRoZSBgYXRoOWtgIG1vZHVsZSwgYWxvbmcgd2l0aCBhIGJ1bmNoIG9mIG90aGVyIGNvcmUgZmlsZXMuIEdvb2QsIHRoYXQncyBhIHN0YXJ0aW5nIHBvaW50LlxuXG5Ob3csIHRoZSBgYXRoOWtgIG1vZHVsZSBpdHNlbGYuLi4gSSdtIHByZXR0eSBzdXJlIHRoYXQncyBvbmx5IGxvYWRlZCB3aGVuIGl0J3MgYm91bmQgdG8gUENJIG9yIEFIQiBoYXJkd2FyZS4gTGV0J3MgY29uZmlybSB0aGF0LiBSaWdodCwgYHBjaS5jYCB1c2VzIGEgUENJIGRldmljZSB0YWJsZSAoYGF0aF9wY2lfaWRfdGFibGVgKSwgYW5kIGBhaGIuY2AgdXNlcyBhbiBcIm9mXCIgbWF0Y2ggdGFibGUgZm9yIHRoZSBBSEIgcGxhdGZvcm0gZGV2aWNlLiAgTm8gc3VycHJpc2VzIHRoZXJlLlxuXG5UaGUgcXVlc3Rpb24gaXMsIGNhbiBJIGdldCB0byBgYXRoOWtgIGluIGEgc3RhbmRhcmQgUUVNVSBlbnZpcm9ubWVudD8gIEkga25vdyBmcm9tIGV4cGVyaWVuY2UgdGhhdCBzdGFuZGFyZCBRRU1VIGRvZXNuJ3QgZW11bGF0ZSBBdGhlcm9zIFBDSSBkZXZpY2VzLCB0aGUgQVI5MjgwLCBvciB0aGUgbGlrZS4gU28sIGRpcmVjdGx5IGVtdWxhdGluZyB0aGUgaGFyZHdhcmUgaXNuJ3QgYW4gb3B0aW9uLlxuXG5UaW1lIHRvIHJldmlldyB0aGUgZ3VpZGVsaW5lcy4gIFNlY3Rpb24gMiwgdGhlIFwibmVnYXRpdmUgY3JpdGVyaWFcIiBmb3IgZnV6emluZywgbWVudGlvbnMgXCJTdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUgaGFyZHdhcmUuXCIgSXQgc3BlY2lmaWNhbGx5IGNhbGxzIG91dCB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2hlcyBhbmQgZHJpdmVycyB0aGF0IG5lZWQgcmVhbCBoYXJkd2FyZSwgd2hpY2ggYXJlbid0IGVtdWxhdGVkLiAqVGhhdCogbG9va3MgcmVsZXZhbnQuIFZpcnR1YWwgYnVzZXMgYXJlLCBvbiB0aGUgb3RoZXIgaGFuZCwgKnBvc2l0aXZlKiBjcml0ZXJpYS5cblxuV2FpdCBhIHNlY29uZC4uLiBjb3VsZCBgYXRoOWtgIHNvbWVob3cgYmUgcmVhY2hhYmxlIHRocm91Z2ggVVNCPyBJIHNlZW0gdG8gcmVtZW1iZXIgQXRoZXJvcyBoYXMgVVNCIGRyaXZlcnMuIE9rYXksIGxldCdzIGxvb2sgYXQgdGhhdCBhbmdsZS4gQWhhISBUaGVyZSdzIGFuIGBhdGg5a19odGNgIGRyaXZlciBmb3IgVVNCLiBCdXQgdGhhdCdzIGEgKkhvc3QgVGFyZ2V0IENvbW11bmljYXRpb24qIGZpcm13YXJlIG92ZXIgVVNCIHNldHVwLiBIbW0sIEkga25vdyB0aGF0IG9uZTsgSSBoYXZlIGEgbG90IG9mIGV4cGVyaWVuY2Ugd2l0aCB0aGF0LiBJdCdzIGdvdCBpdHMgb3duIGZpbGVzIGxpa2UgYGh0Y19kcnZfdHhyeC5jYCBhbmQgYGh0Y19kcnZfbWFpbi5jYC4gQW5kIGJhc2VkIG9uIHRoZSBuYW1lIGFsb25lLCBpdCBkb2Vzbid0IHNvdW5kIGxpa2UgaXQgZXZlbiAqY29tcGlsZXMqIGB4bWl0LmNgLCBvciBjYWxscyBhbnl0aGluZyBpbiBgeG1pdC5jYC5cblxuVG8gYmUgYWJzb2x1dGVseSBzdXJlLCBJJ2xsIHNlYXJjaCBmb3IgY3Jvc3MtcmVmZXJlbmNlcyBmcm9tIGBhdGg5a19odGNgIGludG8gYHhtaXQuY2AuIFRpbWUgdG8gZ3JlcCBgeG1pdC5jYCBmb3IgYW55IG5vbi1zdGF0aWMgZnVuY3Rpb24gZGVmaW5pdGlvbnMgYW5kIHNlZSBpZiBhbnl0aGluZyBjYWxscyB0aGVtLlxuXG5cbiIsIklucHV0VG9rZW5zIjo0MjM3OCwiT3V0cHV0VG9rZW5zIjo2NSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjc0NSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOS0wNlQwODowOTo0OC45NTExOTMxNDRaIiwiU2VxIjoyNiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjY1NDM5Njk2LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIl5bYS16QS1aX10uKlxcXFxiKGF0aF98YXRoOWtfKVthLXpBLVowLTlfXStcXFxcKFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmM9NDQ9c3RhdGljIHUxNiBiaXRzX3Blcl9zeW1ib2xbXVsyXSA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMtNTUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYzo1NjpzdGF0aWMgdm9pZCBhdGhfdHhfc2VuZF9ub3JtYWwoc3RydWN0IGF0aF9zb2Z0YyAqc2MsIHN0cnVjdCBhdGhfdHhxICp0eHEsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYy01Ny1cXHRcXHRcXHQgICAgICAgc3RydWN0IGF0aF9hdHhfdGlkICp0aWQsIHN0cnVjdCBza19idWZmICpza2IpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmM6NTg6c3RhdGljIHZvaWQgYXRoX3R4X2NvbXBsZXRlKHN0cnVjdCBhdGhfc29mdGMgKnNjLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMtNTktXFx0XFx0XFx0ICAgIGludCB0eF9mbGFncywgc3RydWN0IGF0aF90eHEgKnR4cSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTYwLVxcdFxcdFxcdCAgICBzdHJ1Y3QgaWVlZTgwMjExX3N0YSAqc3RhKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jOjYxOnN0YXRpYyB2b2lkIGF0aF90eF9jb21wbGV0ZV9idWYoc3RydWN0IGF0aF9zb2Z0YyAqc2MsIHN0cnVjdCBhdGhfYnVmICpiZixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTYyLVxcdFxcdFxcdFxcdHN0cnVjdCBhdGhfdHhxICp0eHEsIHN0cnVjdCBsaXN0X2hlYWQgKmJmX3EsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTY0LVxcdFxcdFxcdFxcdHN0cnVjdCBhdGhfdHhfc3RhdHVzICp0cywgaW50IHR4b2spO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmM6NjU6c3RhdGljIHZvaWQgYXRoX3R4X3R4cWFkZGJ1ZihzdHJ1Y3QgYXRoX3NvZnRjICpzYywgc3RydWN0IGF0aF90eHEgKnR4cSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTY2LVxcdFxcdFxcdCAgICAgc3RydWN0IGxpc3RfaGVhZCAqaGVhZCwgYm9vbCBpbnRlcm5hbCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYzo2NzpzdGF0aWMgdm9pZCBhdGhfdHhfcmNfc3RhdHVzKHN0cnVjdCBhdGhfc29mdGMgKnNjLCBzdHJ1Y3QgYXRoX2J1ZiAqYmYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYy02OC1cXHRcXHRcXHQgICAgIHN0cnVjdCBhdGhfdHhfc3RhdHVzICp0cywgaW50IG5mcmFtZXMsIGludCBuYmFkLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMtNjktXFx0XFx0XFx0ICAgICBpbnQgdHhvayk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYzo3MDpzdGF0aWMgdm9pZCBhdGhfdHhfdXBkYXRlX2JhdyhzdHJ1Y3QgYXRoX2F0eF90aWQgKnRpZCwgc3RydWN0IGF0aF9idWYgKmJmKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jOjcxOnN0YXRpYyBzdHJ1Y3QgYXRoX2J1ZiAqYXRoX3R4X3NldHVwX2J1ZmZlcihzdHJ1Y3QgYXRoX3NvZnRjICpzYyxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTcyLVxcdFxcdFxcdFxcdFxcdCAgIHN0cnVjdCBhdGhfdHhxICp0eHEsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTc0LVxcdFxcdFxcdFxcdFxcdCAgIHN0cnVjdCBza19idWZmICpza2IpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmM6NzU6c3RhdGljIGludCBhdGhfdHhfcHJlcGFyZShzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodywgc3RydWN0IHNrX2J1ZmYgKnNrYixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTc2LVxcdFxcdFxcdCAgc3RydWN0IGF0aF90eF9jb250cm9sICp0eGN0bCk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jPTc4PWVudW0ge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYy04OC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jOjg5OnN0YXRpYyB2b2lkIGF0aF90eF9zdGF0dXMoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsIHN0cnVjdCBza19idWZmICpza2IpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYy05MC17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTEwNS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jOjEwNjp2b2lkIGF0aF90eHFfdW5sb2NrX2NvbXBsZXRlKHN0cnVjdCBhdGhfc29mdGMgKnNjLCBzdHJ1Y3QgYXRoX3R4cSAqdHhxKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMtMTA3LVxcdF9fcmVsZWFzZXMoXFx1MDAyNnR4cS1cXHUwMDNlYXhxX2xvY2spXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTEyMC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jOjEyMTp2b2lkIGF0aF90eF9xdWV1ZV90aWQoc3RydWN0IGF0aF9zb2Z0YyAqc2MsIHN0cnVjdCBhdGhfYXR4X3RpZCAqdGlkKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMtMTIyLXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMtMTI4LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmM6MTI5OnZvaWQgYXRoOWtfd2FrZV90eF9xdWV1ZShzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodywgc3RydWN0IGllZWU4MDIxMV90eHEgKnF1ZXVlKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMtMTMwLXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmM9MTQ1PXN0YXRpYyBzdHJ1Y3QgYXRoX2ZyYW1lX2luZm8gKmdldF9mcmFtZV9pbmZvKHN0cnVjdCBza19idWZmICpza2IpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTE1Mi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jOjE1MzpzdGF0aWMgdm9pZCBhdGhfc2VuZF9iYXIoc3RydWN0IGF0aF9hdHhfdGlkICp0aWQsIHUxNiBzZXFubylcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTE1NC17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTE2MS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jOjE2MjpzdGF0aWMgYm9vbCBhdGhfbWVyZ2VfcmF0ZXRibChzdHJ1Y3QgaWVlZTgwMjExX3N0YSAqc3RhLCBzdHJ1Y3QgYXRoX2J1ZiAqYmYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYy0xNjMtXFx0XFx0XFx0ICAgICAgc3RydWN0IGllZWU4MDIxMV90eF9pbmZvICp0eF9pbmZvKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYy0xOTctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYzoxOTg6c3RhdGljIHZvaWQgYXRoX3NldF9yYXRlcyhzdHJ1Y3QgaWVlZTgwMjExX3ZpZiAqdmlmLCBzdHJ1Y3QgaWVlZTgwMjExX3N0YSAqc3RhLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMtMTk5LVxcdFxcdFxcdCAgc3RydWN0IGF0aF9idWYgKmJmKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYy0yMDktXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYzoyMTA6c3RhdGljIHZvaWQgYXRoX3R4cV9za2JfZG9uZShzdHJ1Y3QgYXRoX3NvZnRjICpzYywgc3RydWN0IHNrX2J1ZmYgKnNrYilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTIxMS17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jPTIzMz1hdGhfdGlkX3B1bGwoc3RydWN0IGF0aF9hdHhfdGlkICp0aWQsIHN0cnVjdCBza19idWZmICoqc2tidWYpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTI2Ni1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jOjI2NzpzdGF0aWMgaW50IGF0aF90aWRfZGVxdWV1ZShzdHJ1Y3QgYXRoX2F0eF90aWQgKnRpZCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTI2OC1cXHRcXHRcXHQgICBzdHJ1Y3Qgc2tfYnVmZiAqKnNrYilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMtMjc3LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmM6Mjc4OnN0YXRpYyB2b2lkIGF0aF90eF9mbHVzaF90aWQoc3RydWN0IGF0aF9zb2Z0YyAqc2MsIHN0cnVjdCBhdGhfYXR4X3RpZCAqdGlkKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMtMjc5LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMtMzE2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmM6MzE3OnN0YXRpYyB2b2lkIGF0aF90eF91cGRhdGVfYmF3KHN0cnVjdCBhdGhfYXR4X3RpZCAqdGlkLCBzdHJ1Y3QgYXRoX2J1ZiAqYmYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYy0zMTgte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYy0zMzgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYzozMzk6c3RhdGljIHZvaWQgYXRoX3R4X2FkZHRvX2JhdyhzdHJ1Y3QgYXRoX2F0eF90aWQgKnRpZCwgc3RydWN0IGF0aF9idWYgKmJmKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMtMzQwLXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMtMzU5LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmM6MzYwOnN0YXRpYyB2b2lkIGF0aF90aWRfZHJhaW4oc3RydWN0IGF0aF9zb2Z0YyAqc2MsIHN0cnVjdCBhdGhfdHhxICp0eHEsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYy0zNjEtXFx0XFx0XFx0ICBzdHJ1Y3QgYXRoX2F0eF90aWQgKnRpZClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMtMzg2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmM6Mzg3OnN0YXRpYyB2b2lkIGF0aF90eF9zZXRfcmV0cnkoc3RydWN0IGF0aF9zb2Z0YyAqc2MsIHN0cnVjdCBhdGhfdHhxICp0eHEsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYy0zODgtXFx0XFx0XFx0ICAgICBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBpbnQgY291bnQpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTQwNi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jOjQwNzpzdGF0aWMgc3RydWN0IGF0aF9idWYgKmF0aF90eF9nZXRfYnVmZmVyKHN0cnVjdCBhdGhfc29mdGMgKnNjKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMtNDA4LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMtNDI1LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmM6NDI2OnN0YXRpYyB2b2lkIGF0aF90eF9yZXR1cm5fYnVmZmVyKHN0cnVjdCBhdGhfc29mdGMgKnNjLCBzdHJ1Y3QgYXRoX2J1ZiAqYmYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYy00Mjcte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYy00MzItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYzo0MzM6c3RhdGljIHN0cnVjdCBhdGhfYnVmKiBhdGhfY2xvbmVfdHhidWYoc3RydWN0IGF0aF9zb2Z0YyAqc2MsIHN0cnVjdCBhdGhfYnVmICpiZilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTQzNC17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTQ1MS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jOjQ1MjpzdGF0aWMgdm9pZCBhdGhfdHhfY291bnRfZnJhbWVzKHN0cnVjdCBhdGhfYnVmICpiZiwgc3RydWN0IGF0aF90eF9zdGF0dXMgKnRzLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMtNDUzLVxcdFxcdFxcdFxcdGludCB0eG9rLCBpbnQgKm5mcmFtZXMsIGludCAqbmJhZClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMtNDgyLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmM6NDgzOnN0YXRpYyB2b2lkIGF0aF90eF9jb21wbGV0ZV9hZ2dyKHN0cnVjdCBhdGhfc29mdGMgKnNjLCBzdHJ1Y3QgYXRoX3R4cSAqdHhxLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMtNDg0LVxcdFxcdFxcdFxcdCBzdHJ1Y3QgYXRoX2J1ZiAqYmYsIHN0cnVjdCBsaXN0X2hlYWQgKmJmX3EsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jPTcwMT1zdGF0aWMgYm9vbCBiZl9pc19hbXBkdV9ub3RfcHJvYmluZyhzdHJ1Y3QgYXRoX2J1ZiAqYmYpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTcwNi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jOjcwNzpzdGF0aWMgdm9pZCBhdGhfdHhfY291bnRfYWlydGltZShzdHJ1Y3QgYXRoX3NvZnRjICpzYyxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTcwOC1cXHRcXHRcXHRcXHQgc3RydWN0IGllZWU4MDIxMV9zdGEgKnN0YSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMtNzI0LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmM6NzI1OnN0YXRpYyB2b2lkIGF0aF90eF9wcm9jZXNzX2J1ZmZlcihzdHJ1Y3QgYXRoX3NvZnRjICpzYywgc3RydWN0IGF0aF90eHEgKnR4cSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTcyNi1cXHRcXHRcXHRcXHQgIHN0cnVjdCBhdGhfdHhfc3RhdHVzICp0cywgc3RydWN0IGF0aF9idWYgKmJmLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYy03NzMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYzo3NzQ6c3RhdGljIGJvb2wgYXRoX2xvb2t1cF9sZWdhY3koc3RydWN0IGF0aF9idWYgKmJmKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMtNzc1LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMtNzk1LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmM6Nzk2OnN0YXRpYyB1MzIgYXRoX2xvb2t1cF9yYXRlKHN0cnVjdCBhdGhfc29mdGMgKnNjLCBzdHJ1Y3QgYXRoX2J1ZiAqYmYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYy03OTctXFx0XFx0XFx0ICAgc3RydWN0IGF0aF9hdHhfdGlkICp0aWQpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTg2Ni0gKi9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jOjg2NzpzdGF0aWMgaW50IGF0aF9jb21wdXRlX251bV9kZWxpbXMoc3RydWN0IGF0aF9zb2Z0YyAqc2MsIHN0cnVjdCBhdGhfYXR4X3RpZCAqdGlkLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMtODY4LVxcdFxcdFxcdFxcdCAgc3RydWN0IGF0aF9idWYgKmJmLCB1MTYgZnJtbGVuLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYz0xMDI3PWF0aF90eF9mb3JtX2FnZ3Ioc3RydWN0IGF0aF9zb2Z0YyAqc2MsIHN0cnVjdCBhdGhfdHhxICp0eHEsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTExMTItICovXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYzoxMTEzOnUzMiBhdGhfcGt0X2R1cmF0aW9uKHU4IHJpeCwgaW50IHBrdGxlbiwgaW50IHdpZHRoLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMtMTExNC1cXHRcXHQgICAgIGludCBoYWxmX2dpLCBib29sIHNob3J0UHJlYW1ibGUpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTExMzUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYzoxMTM2OnN0YXRpYyBpbnQgYXRoX21heF9mcmFtZWxlbihpbnQgdXNlYywgaW50IG1jcywgYm9vbCBodDQwLCBib29sIHNnaSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTExMzcte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYy0xMTUyLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmM6MTE1Mzp2b2lkIGF0aF91cGRhdGVfbWF4X2FnZ3JfZnJhbWVsZW4oc3RydWN0IGF0aF9zb2Z0YyAqc2MsIGludCBxdWV1ZSwgaW50IHR4b3ApXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYy0xMTU0LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMtMTE3My1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jOjExNzQ6c3RhdGljIHU4IGF0aF9nZXRfcmF0ZV90eHBvd2VyKHN0cnVjdCBhdGhfc29mdGMgKnNjLCBzdHJ1Y3QgYXRoX2J1ZiAqYmYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYy0xMTc1LVxcdFxcdFxcdCAgICAgICB1OCByYXRlaWR4LCBib29sIGlzXzQwLCBib29sIGlzX2NjaywgYm9vbCBpc19tY3MpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTEyNTktXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYzoxMjYwOnN0YXRpYyB2b2lkIGF0aF9idWZfc2V0X3JhdGUoc3RydWN0IGF0aF9zb2Z0YyAqc2MsIHN0cnVjdCBhdGhfYnVmICpiZixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTEyNjEtXFx0XFx0XFx0ICAgICBzdHJ1Y3QgYXRoX3R4X2luZm8gKmluZm8sIGludCBsZW4sIGJvb2wgcnRzKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYz0xMzgwPXN0YXRpYyBlbnVtIGF0aDlrX3BrdF90eXBlIGdldF9od19wYWNrZXRfdHlwZShzdHJ1Y3Qgc2tfYnVmZiAqc2tiKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYy0xNDAyLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmM6MTQwMzpzdGF0aWMgdm9pZCBhdGhfdHhfZmlsbF9kZXNjKHN0cnVjdCBhdGhfc29mdGMgKnNjLCBzdHJ1Y3QgYXRoX2J1ZiAqYmYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYy0xNDA0LVxcdFxcdFxcdCAgICAgc3RydWN0IGF0aF90eHEgKnR4cSwgaW50IGxlbilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmM9MTQ5Nj1hdGhfdHhfZm9ybV9idXJzdChzdHJ1Y3QgYXRoX3NvZnRjICpzYywgc3RydWN0IGF0aF90eHEgKnR4cSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMtMTUyOC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jOjE1Mjk6c3RhdGljIGludCBhdGhfdHhfc2NoZWRfYWdncihzdHJ1Y3QgYXRoX3NvZnRjICpzYywgc3RydWN0IGF0aF90eHEgKnR4cSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTE1MzAtXFx0XFx0XFx0ICAgICBzdHJ1Y3QgYXRoX2F0eF90aWQgKnRpZClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMtMTU3MC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jOjE1NzE6aW50IGF0aF90eF9hZ2dyX3N0YXJ0KHN0cnVjdCBhdGhfc29mdGMgKnNjLCBzdHJ1Y3QgaWVlZTgwMjExX3N0YSAqc3RhLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMtMTU3Mi1cXHRcXHQgICAgICB1MTYgdGlkLCB1MTYgKnNzbilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMtMTYxMC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jOjE2MTE6dm9pZCBhdGhfdHhfYWdncl9zdG9wKHN0cnVjdCBhdGhfc29mdGMgKnNjLCBzdHJ1Y3QgaWVlZTgwMjExX3N0YSAqc3RhLCB1MTYgdGlkKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMtMTYxMi17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTE2MjUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYzoxNjI2OnZvaWQgYXRoX3R4X2FnZ3Jfc2xlZXAoc3RydWN0IGllZWU4MDIxMV9zdGEgKnN0YSwgc3RydWN0IGF0aF9zb2Z0YyAqc2MsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYy0xNjI3LVxcdFxcdCAgICAgICBzdHJ1Y3QgYXRoX25vZGUgKmFuKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYy0xNjQzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmM6MTY0NDp2b2lkIGF0aF90eF9hZ2dyX3dha2V1cChzdHJ1Y3QgYXRoX3NvZnRjICpzYywgc3RydWN0IGF0aF9ub2RlICphbilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTE2NDUte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYz0xNjcwPWF0aDlrX3NldF9tb3JlZGF0YShzdHJ1Y3QgYXRoX3NvZnRjICpzYywgc3RydWN0IGF0aF9idWYgKmJmLCBib29sIHZhbClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMtMTY4OS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jOjE2OTA6dm9pZCBhdGg5a19yZWxlYXNlX2J1ZmZlcmVkX2ZyYW1lcyhzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodyxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTE2OTEtXFx0XFx0XFx0XFx0ICAgc3RydWN0IGllZWU4MDIxMV9zdGEgKnN0YSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMtMTc1Ny1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jOjE3NTg6c3RydWN0IGF0aF90eHEgKmF0aF90eHFfc2V0dXAoc3RydWN0IGF0aF9zb2Z0YyAqc2MsIGludCBxdHlwZSwgaW50IHN1YnR5cGUpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYy0xNzU5LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMtMTgyOS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jOjE4MzA6aW50IGF0aF90eHFfdXBkYXRlKHN0cnVjdCBhdGhfc29mdGMgKnNjLCBpbnQgcW51bSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTE4MzEtXFx0XFx0ICAgc3RydWN0IGF0aDlrX3R4X3F1ZXVlX2luZm8gKnFpbmZvKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYy0xODU2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmM6MTg1NzppbnQgYXRoX2NhYnFfdXBkYXRlKHN0cnVjdCBhdGhfc29mdGMgKnNjKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMtMTg1OC17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTE4NzEtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYzoxODcyOnN0YXRpYyB2b2lkIGF0aF9kcmFpbl90eHFfbGlzdChzdHJ1Y3QgYXRoX3NvZnRjICpzYywgc3RydWN0IGF0aF90eHEgKnR4cSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTE4NzMtXFx0XFx0XFx0ICAgICAgIHN0cnVjdCBsaXN0X2hlYWQgKmxpc3QpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTE5MTMtICovXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYzoxOTE0OnZvaWQgYXRoX2RyYWludHhxKHN0cnVjdCBhdGhfc29mdGMgKnNjLCBzdHJ1Y3QgYXRoX3R4cSAqdHhxKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMtMTkxNS17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTE5MzctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYzoxOTM4OmJvb2wgYXRoX2RyYWluX2FsbF90eHEoc3RydWN0IGF0aF9zb2Z0YyAqc2MpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYy0xOTM5LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMtMTk3OS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jOjE5ODA6dm9pZCBhdGhfdHhfY2xlYW51cHEoc3RydWN0IGF0aF9zb2Z0YyAqc2MsIHN0cnVjdCBhdGhfdHhxICp0eHEpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYy0xOTgxLXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMtMTk4OC0gKi9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jOjE5ODk6dm9pZCBhdGhfdHhxX3NjaGVkdWxlKHN0cnVjdCBhdGhfc29mdGMgKnNjLCBzdHJ1Y3QgYXRoX3R4cSAqdHhxKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMtMTk5MC17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTIwMjUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYzoyMDI2OnZvaWQgYXRoX3R4cV9zY2hlZHVsZV9hbGwoc3RydWN0IGF0aF9zb2Z0YyAqc2MpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYy0yMDI3LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMtMjA0Ny0gKi9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jOjIwNDg6c3RhdGljIHZvaWQgYXRoX3R4X3R4cWFkZGJ1ZihzdHJ1Y3QgYXRoX3NvZnRjICpzYywgc3RydWN0IGF0aF90eHEgKnR4cSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTIwNDktXFx0XFx0XFx0ICAgICBzdHJ1Y3QgbGlzdF9oZWFkICpoZWFkLCBib29sIGludGVybmFsKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYy0yMTE0LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmM6MjExNTpzdGF0aWMgdm9pZCBhdGhfdHhfc2VuZF9ub3JtYWwoc3RydWN0IGF0aF9zb2Z0YyAqc2MsIHN0cnVjdCBhdGhfdHhxICp0eHEsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYy0yMTE2LVxcdFxcdFxcdCAgICAgICBzdHJ1Y3QgYXRoX2F0eF90aWQgKnRpZCwgc3RydWN0IHNrX2J1ZmYgKnNrYilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmM9MjEzOD1zdGF0aWMgdm9pZCBzZXR1cF9mcmFtZV9pbmZvKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYy0yMjAwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmM6MjIwMTp1OCBhdGhfdHhjaGFpbm1hc2tfcmVkdWN0aW9uKHN0cnVjdCBhdGhfc29mdGMgKnNjLCB1OCBjaGFpbm1hc2ssIHUzMiByYXRlKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMtMjIwMi17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTIyMTktICovXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYzoyMjIwOnN0YXRpYyBzdHJ1Y3QgYXRoX2J1ZiAqYXRoX3R4X3NldHVwX2J1ZmZlcihzdHJ1Y3QgYXRoX3NvZnRjICpzYyxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTIyMjEtXFx0XFx0XFx0XFx0XFx0ICAgc3RydWN0IGF0aF90eHEgKnR4cSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMtMjI3MS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jOjIyNzI6dm9pZCBhdGhfYXNzaWduX3NlcShzdHJ1Y3QgYXRoX2NvbW1vbiAqY29tbW9uLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMtMjI3My17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTIyOTMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYzoyMjk0OnN0YXRpYyBpbnQgYXRoX3R4X3ByZXBhcmUoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsIHN0cnVjdCBza19idWZmICpza2IsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYy0yMjk1LVxcdFxcdFxcdCAgc3RydWN0IGF0aF90eF9jb250cm9sICp0eGN0bClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMtMjMzMS0vKiBVcG9uIGZhaWx1cmUgY2FsbGVyIHNob3VsZCBmcmVlIHNrYiAqL1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmM6MjMzMjppbnQgYXRoX3R4X3N0YXJ0KHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMtMjMzMy1cXHRcXHQgc3RydWN0IGF0aF90eF9jb250cm9sICp0eGN0bClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMtMjM5Ny1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jOjIzOTg6dm9pZCBhdGhfdHhfY2FicShzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodywgc3RydWN0IGllZWU4MDIxMV92aWYgKnZpZixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTIzOTktXFx0XFx0IHN0cnVjdCBza19idWZmICpza2IpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTI0NjMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYzoyNDY0OnN0YXRpYyB2b2lkIGF0aF90eF9jb21wbGV0ZShzdHJ1Y3QgYXRoX3NvZnRjICpzYywgc3RydWN0IHNrX2J1ZmYgKnNrYixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTI0NjUtXFx0XFx0XFx0ICAgIGludCB0eF9mbGFncywgc3RydWN0IGF0aF90eHEgKnR4cSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMtMjUxNS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jOjI1MTY6c3RhdGljIHZvaWQgYXRoX3R4X2NvbXBsZXRlX2J1ZihzdHJ1Y3QgYXRoX3NvZnRjICpzYywgc3RydWN0IGF0aF9idWYgKmJmLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMtMjUxNy1cXHRcXHRcXHRcXHRzdHJ1Y3QgYXRoX3R4cSAqdHhxLCBzdHJ1Y3QgbGlzdF9oZWFkICpiZl9xLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYy0yNTYxLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmM6MjU2MjpzdGF0aWMgdm9pZCBhdGhfY2xlYXJfdHhfc3RhdHVzKHN0cnVjdCBpZWVlODAyMTFfdHhfaW5mbyAqdHhfaW5mbylcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTI1NjMte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYy0yNTcxLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmM6MjU3MjpzdGF0aWMgdm9pZCBhdGhfdHhfcmNfc3RhdHVzKHN0cnVjdCBhdGhfc29mdGMgKnNjLCBzdHJ1Y3QgYXRoX2J1ZiAqYmYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYy0yNTczLVxcdFxcdFxcdCAgICAgc3RydWN0IGF0aF90eF9zdGF0dXMgKnRzLCBpbnQgbmZyYW1lcywgaW50IG5iYWQsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTI2MjgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYzoyNjI5OnN0YXRpYyB2b2lkIGF0aF90eF9wcm9jZXNzcShzdHJ1Y3QgYXRoX3NvZnRjICpzYywgc3RydWN0IGF0aF90eHEgKnR4cSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTI2MzAte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYy0yNzAzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmM6MjcwNDp2b2lkIGF0aF90eF90YXNrbGV0KHN0cnVjdCBhdGhfc29mdGMgKnNjKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMtMjcwNS17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTI3MTctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYzoyNzE4OnZvaWQgYXRoX3R4X2VkbWFfdGFza2xldChzdHJ1Y3QgYXRoX3NvZnRjICpzYylcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTI3MTkte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYy0yODExLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmM6MjgxMjpzdGF0aWMgaW50IGF0aF90eHN0YXR1c19zZXR1cChzdHJ1Y3QgYXRoX3NvZnRjICpzYywgaW50IHNpemUpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYy0yODEzLXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMtMjgyNS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jOjI4MjY6c3RhdGljIGludCBhdGhfdHhfZWRtYV9pbml0KHN0cnVjdCBhdGhfc29mdGMgKnNjKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMtMjgyNy17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTI4MzgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYzoyODM5OmludCBhdGhfdHhfaW5pdChzdHJ1Y3QgYXRoX3NvZnRjICpzYywgaW50IG5idWZzKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMtMjg0MC17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTI4NjctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYzoyODY4OnZvaWQgYXRoX3R4X25vZGVfaW5pdChzdHJ1Y3QgYXRoX3NvZnRjICpzYywgc3RydWN0IGF0aF9ub2RlICphbilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTI4Njkte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYy0yODkxLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmM6Mjg5Mjp2b2lkIGF0aF90eF9ub2RlX2NsZWFudXAoc3RydWN0IGF0aF9zb2Z0YyAqc2MsIHN0cnVjdCBhdGhfbm9kZSAqYW4pXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYy0yODkzLXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMtMjkyMi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jOjI5MjM6aW50IGF0aDlrX3R4OTlfc2VuZChzdHJ1Y3QgYXRoX3NvZnRjICpzYywgc3RydWN0IHNrX2J1ZmYgKnNrYixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jLTI5MjQtXFx0XFx0ICAgIHN0cnVjdCBhdGhfdHhfY29udHJvbCAqdHhjdGwpXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTA2VDA4OjA5OjQ5LjAxNjYzNzUxWiIsIlNlcSI6MjcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy43LWZsYXNoIiwiRHVyYXRpb24iOjYzMzQ3MTYxNTMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHlzaXMgb2YgYGF0aDlrL3htaXQuY2AgYW5kIFJlYWNoYWJpbGl0eSBmb3IgRnV6emluZyoqXG5cbk9rYXksIGxldCdzIGJyZWFrIHRoaXMgZG93bi4gRmlyc3QsIGB4bWl0LmNgIGlzIGV4Y2x1c2l2ZWx5IGNhbGxlZCB3aXRoaW4gdGhlIGBhdGg5a2AgbW9kdWxlIChgYXRoOWsua29gKS4gYGF0aDlrLmtvYCwgYXMgd2Uga25vdywgaXMgdGhlIGRyaXZlciBmb3IgdGhvc2Ugb2xkZXIgQXRoZXJvcyA4MDIuMTFuIHdpcmVsZXNzIGNhcmRzIHRoYXQgdXNlIFBDSS9QQ0llIG9yIEFIQiBpbnRlcmZhY2VzLiBUaGUgY3JpdGljYWwgcG9pbnQgaXMgdGhhdCBzdGFuZGFyZCBRRU1VIOKAkyB3aGljaCBpcyB3aGF0IHdlJ3JlIGxpa2VseSB1c2luZyBmb3IgZnV6emluZyDigJMgZG9lc24ndCBlbXVsYXRlIHRob3NlIHNwZWNpZmljIEF0aGVyb3MgUENJL0FIQiB3aXJlbGVzcyBjYXJkcy4gVGhpcyBpbW1lZGlhdGVseSBzdWdnZXN0cyBhIHByb2JsZW0uXG5cbk5vdywgbGV0J3MgY3Jvc3MtcmVmZXJlbmNlIHRoaXMgYWdhaW5zdCBTZWN0aW9uIDIgb2YgdGhlIHByb21wdC4gV2UncmUgbG9va2luZyBmb3IgXCJTdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUgaGFyZHdhcmVcIiBzY2VuYXJpb3MsIGFuZCB0aGlzIHNlZW1zIHRvIGZpdCBwZXJmZWN0bHk6IHZlbmRvci1zcGVjaWZpYyBQQ0llIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBRRU1VLiBTcGVjaWZpY2FsbHksIHRoZSBtb2RpZmllZCBmaWxlIGhlcmUgaXMgYGRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmNgLCBmb2N1c2luZyBvbiB0aGUgYGF0aF9kcmFpbl90eHFfbGlzdCgpYCBmdW5jdGlvbi4gVGhpcyBmdW5jdGlvbiBpcyBpbnRlcm5hbCB0byBgeG1pdC5jYCBhbmQgb25seSBjYWxsZWQgYnkgYGF0aF9kcmFpbnR4cSgpYC4gYGF0aF9kcmFpbnR4cSgpYCBpdHNlbGYgaXMgaW52b2x2ZWQgaW4gdGFza3MgbGlrZSBiZWFjb24gZ2VuZXJhdGlvbiwgc3dpdGNoaW5nIGNoYW5uZWwgY29udGV4dHMsIGFuZCBpbnRlcmZhY2Ugc3RvcHBpbmcsIG9yIHF1ZXVlIGRyYWluYWdlLCBhbGwgd2l0aGluIHRoZSBgYXRoOWtgIGRyaXZlciwgd2hpY2ggaGluZ2VzIG9uIHRoZSBwcmVzZW5jZSBvZiBwaHlzaWNhbCBQQ0kvQUhCIEF0aGVyb3MgaGFyZHdhcmUuIE5vbmUgb2YgdGhlc2UgZXhlY3V0aW9uIHBhdGhzIGFyZSBwb3NzaWJsZSB3aXRob3V0IHRoYXQgc3BlY2lmaWMgaGFyZHdhcmUuXG5cblRoZXJlZm9yZSwgc2luY2Ugd2UncmUgbW9kaWZ5aW5nIHRoZSBjb2RlIGluIGB4bWl0LmNgLCBhbmQgdGhhdCBjb2RlIGlzICpzdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUqIGluIHRoZSBhYnNlbmNlIG9mIHBoeXNpY2FsIEF0aGVyb3MgODAyLjExbiBQQ0kvQUhCIGhhcmR3YXJlLCB3aGljaCBpcyBub3QgYXZhaWxhYmxlIGluIG91ciBzdGFuZGFyZCBmdXp6aW5nIGVudmlyb25tZW50IChRRU1VKSwgdGhlbiB0aGlzIGNvZGUgaXNuJ3Qgd29ydGggZnV6emluZywgYmFzZWQgb24gdGhlIGNyaXRlcmlhIGluIHRoZSBwcm9tcHQuXG5cbkxldCBtZSBqdXN0IGRvdWJsZS1jaGVjaywgbWFraW5nIHN1cmUgSSdtIGZvbGxvd2luZyBpbnN0cnVjdGlvbnMgZm9yIGBzZXQtcmVzdWx0c2A6XG5cbiogICBgV29ydGhGdXp6aW5nYDogYGZhbHNlYFxuKiAgIGBGb2N1c1N5bWJvbHNgOiBgW11gIChlbXB0eSlcbiogICBgRW5hYmxlQ29uZmlnc2A6IGBbXWAgKGVtcHR5KVxuKiAgIGBSZWFzb25pbmdgOiBcIlRoZSBwYXRjaCBtb2RpZmllcyBgYXRoX2RyYWluX3R4cV9saXN0KClgIGluIGBkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jYCwgd2hpY2ggYmVsb25ncyB0byB0aGUgYGF0aDlrYCBkcml2ZXIgZm9yIEF0aGVyb3MgODAyLjExbiBQQ0kgYW5kIEFIQiBkZXZpY2VzLiBCZWNhdXNlIHN0YW5kYXJkIHZpcnR1YWxpemVkIGZ1enppbmcgZW52aXJvbm1lbnRzIChlLmcuIFFFTVUvR0NFKSBsYWNrIGVtdWxhdGlvbiBmb3IgdGhlc2UgcGh5c2ljYWwgQXRoZXJvcyBQQ0kvQUhCIHdpcmVsZXNzIGFkYXB0ZXJzLCB0aGUgbW9kaWZpZWQgY29kZSBpcyBzdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUuXCJcblxuQWxyaWdodCwgbG9va3MgbGlrZSB3ZSdyZSBnb29kIHRvIGNhbGwgYHNldC1yZXN1bHRzYC5cblxuXG4iLCJJbnB1dFRva2VucyI6NTE3MjcsIk91dHB1dFRva2VucyI6MTIzLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NjUwLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTA2VDA4OjA5OjU1LjM1MTM1Njg4M1oiLCJTZXEiOjI4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjM0NDMwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIGBhdGhfZHJhaW5fdHhxX2xpc3QoKWAgaW4gYGRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmNgLCB3aGljaCBiZWxvbmdzIHRvIHRoZSBgYXRoOWtgIGRyaXZlciBmb3IgQXRoZXJvcyA4MDIuMTFuIFBDSSBhbmQgQUhCIGRldmljZXMuIFRoaXMgaGFyZHdhcmUgaXMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyAoZS5nLiwgUUVNVSBvciBHQ0UpLCBtYWtpbmcgdGhlIG1vZGlmaWVkIGNvZGUgc3RydWN0dXJhbGx5IHVucmVhY2hhYmxlIGZvciBmdXp6aW5nLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgYGF0aF9kcmFpbl90eHFfbGlzdCgpYCBpbiBgZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuY2AsIHdoaWNoIGJlbG9uZ3MgdG8gdGhlIGBhdGg5a2AgZHJpdmVyIGZvciBBdGhlcm9zIDgwMi4xMW4gUENJIGFuZCBBSEIgZGV2aWNlcy4gVGhpcyBoYXJkd2FyZSBpcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIChlLmcuLCBRRU1VIG9yIEdDRSksIG1ha2luZyB0aGUgbW9kaWZpZWQgY29kZSBzdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUgZm9yIGZ1enppbmcuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOS0wNlQwODowOTo1NS4zNTEzOTU5MzNaIiwiU2VxIjoyOSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJJZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjI5MDAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9XTsKCQkJaWYgKCFyYXdEYXRhIHx8IHJhd0RhdGEubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQlkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKTsKCQkJZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSk7CgkJCWRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKSB7CgkJCWNvbnN0IHN0YXRzID0gewoJCQkJbGxtOiB7IGNvdW50OiAwLCB0b2tlbnM6IDAsIGR1cmF0aW9uOiAwIH0sCgkJCQl0b29sOiB7IGNvdW50OiAwLCBkdXJhdGlvbjogMCB9CgkJCX07CgoJCQlyYXdEYXRhLmZvckVhY2gocyA9PiB7CgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsgCgkJCQlpZiAocy5UeXBlID09PSAibGxtIikgewoJCQkJCXN0YXRzLmxsbS5jb3VudCsrOwoJCQkJCXN0YXRzLmxsbS50b2tlbnMgKz0gKHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnMpOwoJCQkJCXN0YXRzLmxsbS5kdXJhdGlvbiArPSBkdXI7CgkJCQl9IGVsc2UgaWYgKHMuVHlwZSA9PT0gInRvb2wiKSB7CgkJCQkJc3RhdHMudG9vbC5jb3VudCsrOwoJCQkJCXN0YXRzLnRvb2wuZHVyYXRpb24gKz0gZHVyOwoJCQkJfQoJCQl9KTsKCgkJCWNvbnN0IGF2Z0xsbUR1ciA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLmR1cmF0aW9uIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnTGxtVG9rZW4gPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS50b2tlbnMgLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdUb29sRHVyID0gc3RhdHMudG9vbC5jb3VudCA+IDAgPyAoc3RhdHMudG9vbC5kdXJhdGlvbiAvIHN0YXRzLnRvb2wuY291bnQpLnRvRml4ZWQoMikgOiAwOwoKCQkJY29uc3QgbGxtU3VtYXJ5Q2VsbHMgPSBbc3RhdHMubGxtLmNvdW50LCBzdGF0cy5sbG0udG9rZW5zLCBhdmdMbG1Ub2tlbiwgc3RhdHMubGxtLmR1cmF0aW9uLCBhdmdMbG1EdXJdOwoJCQljb25zdCB0b29sU3VtbWFyeUNlbGxzID0gW3N0YXRzLnRvb2wuY291bnQsIHN0YXRzLnRvb2wuZHVyYXRpb24sIGF2Z1Rvb2xEdXJdOwoKCQkJY29uc3QgbGxtU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGxtX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQlsbG1TdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgbGxtVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQlsbG1TdW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJbGxtVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJbGxtU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQobGxtVHIpOwoKCQkJY29uc3QgdG9vbFN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rvb2xfc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgdG9vbFRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJdG9vbFN1bW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJdG9vbFRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZCh0b29sVHIpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBmaWx0ZXJlZFN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBbImxsbSIsICJ0b29sIl0uaW5jbHVkZXMoZC5UeXBlKSk7CgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ0R1cmF0aW9uJyk7CgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7IAoKCQkJZmlsdGVyZWRTdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJCgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsKCQkJCWxldCB0b29sdGlwID0gcy5OYW1lOwoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIgJiYgcy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoJCQkJZGF0YS5hZGRSb3coW2Ake3MuU2VxfWAsIGR1ciwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1RpbWUgQ29uc3VtcHRpb24gb2YgTExNL1Rvb2wgQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTS9Ub29sIFN0ZXBzJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ1NlY29uZHMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2R1cmF0aW9uX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBsbG1TdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gZC5UeXBlID09PSAibGxtIik7CgkJCWlmIChsbG1TdGVwcy5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwkJCQoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ1Rva2VucycpOwkJCQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICdzdHlsZSd9KTsJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7CQoKCQkJY29uc3QgYWdlbnRDb2xvcnMgPSB7fTsKCQkJY29uc3QgcGFsZXR0ZSA9IFsnIzQyODVGNCcsICcjREI0NDM3JywgJyNGNEI0MDAnLCAnIzBGOUQ1OCcsICcjQUI0N0JDJywgJyMwMEFDQzEnXTsKCQkJbGV0IGNvbG9ySWR4ID0gMDsKCQkJY29uc3QgYWdlbnRMTE1Db3VudHMgPSB7fTsKCQkJbGxtU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCWlmICghYWdlbnRDb2xvcnNbcy5OYW1lXSkgewoJCQkJCWFnZW50Q29sb3JzW3MuTmFtZV0gPSBwYWxldHRlW2NvbG9ySWR4ICUgcGFsZXR0ZS5sZW5ndGhdOwoJCQkJCWNvbG9ySWR4Kys7CgkJCQl9CgoJCQkJYWdlbnRMTE1Db3VudHNbcy5OYW1lXSA9IChhZ2VudExMTUNvdW50c1tzLk5hbWVdIHx8IDApICsgMTsKCQkJCWNvbnN0IGxhYmVsID0gYCR7cy5OYW1lfS0ke2FnZW50TExNQ291bnRzW3MuTmFtZV19YDsKCQkJCWNvbnN0IHRvdGFsVG9rZW5zID0gcy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2VuczsKCQkJCWNvbnN0IHN0eWxlID0gYGNvbG9yOiAke2FnZW50Q29sb3JzW3MuTmFtZV19YDsKCQkJCWxldCB0b29sdGlwID0gYFRvdGFsIFRva2VuczogJHt0b3RhbFRva2Vuc31cbihJbjogJHtzLklucHV0VG9rZW5zfSwgT3V0OiAke3MuT3V0cHV0VG9rZW5zfSwgVGhvdWdodHM6ICR7cy5PdXRwdXRUaG91Z2h0c1Rva2Vuc30pYDsKCQkJCWlmIChzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgoJCQkJZGF0YS5hZGRSb3coW2xhYmVsLCB0b3RhbFRva2Vucywgc3R5bGUsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUb2tlbiBDb25zdW1wdGlvbiBieSBMTE0gQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTSBDYWxsIFNlcXVlbmNlJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ0NvbnN1bWVkIFRva2VucycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9rZW5fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCQlsZXQgYWxsRXhwYW5kZWQgPSBmYWxzZTsKCQlmdW5jdGlvbiB0b2dnbGVBbGxEZXRhaWxzKCkgewoJCQlhbGxFeHBhbmRlZCA9ICFhbGxFeHBhbmRlZDsKCQkJZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnZGV0YWlscycpLmZvckVhY2goZCA9PiB7CgkJCQlpZiAoYWxsRXhwYW5kZWQpIGQuc2V0QXR0cmlidXRlKCdvcGVuJywgJycpOwoJCQkJZWxzZSBkLnJlbW92ZUF0dHJpYnV0ZSgnb3BlbicpOwoJCQl9KTsKCQl9Cgk8L3NjcmlwdD4KCgo8L2JvZHk+CjwvaHRtbD4K" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowcdkvp[1] Phase: Running StartedAt: 2026-09-06 08:10:07 +0000 UTC FinishedAt: 0001-01-01 00:00:00 +0000 UTC Input: nil Output: nil --------- Name: series-workflowcdkvp[1].abort-on-skip-outcome Phase: Failed StartedAt: 2026-09-06 08:10:07 +0000 UTC FinishedAt: 2026-09-06 08:10:12 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:code,Default:nil,Value:*1,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{},Result:nil,ExitCode:*1,}