Name: series-workflowsqm9t Phase: Failed StartedAt: 2026-09-13 14:11:35 +0000 UTC FinishedAt: 2026-09-13 14:32:16 +0000 UTC Input: nil Output: nil --------- Name: series-workflowsqm9t[0] Phase: Succeeded StartedAt: 2026-09-13 14:11:35 +0000 UTC FinishedAt: 2026-09-13 14:32:06 +0000 UTC Input: nil Output: nil --------- Name: series-workflowsqm9t[0].run-triage Phase: Succeeded StartedAt: 2026-09-13 14:11:35 +0000 UTC FinishedAt: 2026-09-13 14:32:06 +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+CgkJCTx0ZD4yMDI2LzA5LzEzIDE0OjMwPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7S01TQU5SZWFzb25pbmcmIzM0OzogJiMzNDsmIzM0OywKICAmIzM0O05lZWRzS01TQU4mIzM0OzogZmFsc2UsCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgYHJ2dV9tY3NfcHRwX2NmZygpYCBpbiBgZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvbWNzX3J2dV9pZi5jYCwgYWRkaW5nIGEgTlVMTCBjaGVjayBmb3IgdGhlIHBvaW50ZXIgcmV0dXJuZWQgYnkgYG1jc19nZXRfcGRhdGEoKWAuIFRoaXMgY29kZSBpcyBwYXJ0IG9mIHRoZSBNYXJ2ZWxsIE9jdGVvblRYMiBSVlUgQWRtaW4gRnVuY3Rpb24gZHJpdmVyLCB3aGljaCByZXF1aXJlcyB2ZW5kb3Itc3BlY2lmaWMgcGh5c2ljYWwgU21hcnROSUMgLyBTb0MgQVNJQyBoYXJkd2FyZSAoQ2F2aXVtL01hcnZlbGwgT2N0ZW9uVFgyL0NOMTBLIFBDSWUgZGV2aWNlcykgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIFFFTVUuIENvbnNlcXVlbnRseSwgdGhlIG1vZGlmaWVkIGNvZGUgaXMgc3RydWN0dXJhbGx5IHVucmVhY2hhYmxlIGZvciBzeXprYWxsZXIgZnV6emluZy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MS8xPC90ZD4KCQkJPHRkPjIwMjYvMDkvMTMgMTQ6MzA8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPnJlYWQtcGF0Y2gtZGlmZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1BhdGNoRGlmZiYjMzQ7OiAmIzM0O2NvbW1pdCA5MTMwNjcyMWM3MWNhZDllN2ZiYjVjYzFhYmU2NWM2NTg5OTNjOWViXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFN1biBTZXAgMTMgMTQ6MzA6NTQgMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvbWNzX3J2dV9pZi5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvbWNzX3J2dV9pZi5jXG5pbmRleCBmY2UyMmUzMTRjYWMwLi41ZTI0ZDQzZDVmYzc5IDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvbWNzX3J2dV9pZi5jXG4mIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9tY3NfcnZ1X2lmLmNcbkBAIC01MCw2ICYjNDM7NTAsOCBAQCB2b2lkIHJ2dV9tY3NfcHRwX2NmZyhzdHJ1Y3QgcnZ1ICpydnUsIHU4IHJwbV9pZCwgdTggbG1hY19pZCwgYm9vbCBlbmEpXG4gXHQvKiBDTkYxMEstQiAqL1xuIFx0aWYgKHJ2dS1cdTAwM2VtY3NfYmxrX2NudCBcdTAwM2UgMSkge1xuIFx0XHRtY3MgPSBtY3NfZ2V0X3BkYXRhKHJwbV9pZCk7XG4mIzQzO1x0XHRpZiAoIW1jcylcbiYjNDM7XHRcdFx0cmV0dXJuO1xuIFx0XHRjZmcgPSBtY3NfcmVnX3JlYWQobWNzLCBNQ1NYX1BFWF9SWF9TTEFWRV9QRVhfQ09ORklHVVJBVElPTik7XG4gXHRcdGlmIChlbmEpXG4gXHRcdFx0Y2ZnIHw9IEJJVF9VTEwobG1hY19pZCk7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDkvMTMgMTQ6MzA8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Y29yZTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IG51bGwsCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgYHJ2dV9tY3NfcHRwX2NmZygpYCBpbiBgZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvbWNzX3J2dV9pZi5jYCwgYWRkaW5nIGEgTlVMTCBjaGVjayBmb3IgdGhlIHBvaW50ZXIgcmV0dXJuZWQgYnkgYG1jc19nZXRfcGRhdGEoKWAuIFRoaXMgY29kZSBpcyBwYXJ0IG9mIHRoZSBNYXJ2ZWxsIE9jdGVvblRYMiBSVlUgQWRtaW4gRnVuY3Rpb24gZHJpdmVyLCB3aGljaCByZXF1aXJlcyB2ZW5kb3Itc3BlY2lmaWMgcGh5c2ljYWwgU21hcnROSUMgLyBTb0MgQVNJQyBoYXJkd2FyZSAoQ2F2aXVtL01hcnZlbGwgT2N0ZW9uVFgyL0NOMTBLIFBDSWUgZGV2aWNlcykgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIFFFTVUuIENvbnNlcXVlbnRseSwgdGhlIG1vZGlmaWVkIGNvZGUgaXMgc3RydWN0dXJhbGx5IHVucmVhY2hhYmxlIGZvciBzeXprYWxsZXIgZnV6emluZy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyIGFuZCBzZWN1cml0eSBlbmdpbmVlci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBldmFsdWF0ZSB3aGV0aGVyIGl0IHdhcnJhbnRzIGZ1enppbmcgd2l0aCBzeXprYWxsZXIuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIGludGVybmFsIGFzc3VtcHRpb25zLiBZb3UgbXVzdCBhY3RpdmVseSB1c2UgeW91ciBjb2RlIGFjY2Vzcwp0b29scyB0byBpbnNwZWN0IHRoZSBhY3R1YWwgc291cmNlIGNvZGUsIGNhbGxlcnMsIGFuZCBzdXJyb3VuZGluZyBjb250ZXh0LgoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KMS4gQ09SRSBUUklBR0UgUEhJTE9TT1BIWQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpUaGUgZ29hbCBvZiBwYXRjaCBmdXp6aW5nIGlzIHRvIGRpc2NvdmVyIGNyYXNoZXMsIHJlZ3Jlc3Npb25zLCBleHBvc2VkIGxhdGVudCBidWdzLAphbmQgbmV3bHkgdHJpZ2dlcmVkIGFzc2VydGlvbnMgaW50cm9kdWNlZCBieSB0aGUgcGF0Y2ggc2VyaWVzLgoKLSBSRUFDSEFCSUxJVFkgSVMgVEhFIFBSSU1BUlkgR0FURToKICBGdXp6aW5nIGNhbiBvbmx5IGRpc2NvdmVyIGJ1Z3MgaW4gY29kZSB0aGF0IGNhbiBhY3R1YWxseSBleGVjdXRlIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkCiAgZW52aXJvbm1lbnRzIChHQ0Ugb3IgUUVNVSwgdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGRldmljZXMgbGlrZSBVU0IgZ2FkZ2V0cywgbmV0ZGV2LCB0dW4vdGFwKS4KICBJZiB0aGUgbW9kaWZpZWQgY29kZSBpcyBzdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUgKHNlZSBTZWN0aW9uIDIpLCBpdCBNVVNUIE5PVCBiZSBmdXp6ZWQsCiAgcmVnYXJkbGVzcyBvZiB3aGV0aGVyIGl0IGFkZHMgYXNzZXJ0aW9ucyBvciBjb21wbGV4IGxvZ2ljLgoKLSBETyBOT1QgQkxJTkRMWSBUUlVTVCAmIzM0O05PIEZVTkNUSU9OQUwgQ0hBTkdFJiMzNDsgKE5GQ0kpIE9SICYjMzQ7UkVGQUNUT1JJTkcmIzM0OyBDTEFJTVM6CiAgUGF0Y2ggYXV0aG9ycyByb3V0aW5lbHkgbGFiZWwgY2hhbmdlcyBhcyAmIzM0O2NsZWFudXBzJiMzNDssICYjMzQ7cmVmYWN0b3JpbmdzJiMzNDssIG9yIHN0YXRlCiAgJiMzNDtObyBmdW5jdGlvbmFsIGNoYW5nZSBpbnRlbmRlZCYjMzQ7LiBEbyBOT1QgdGFrZSB0aGVzZSBjbGFpbXMgYXQgZmFjZSB2YWx1ZS4KICBDb2RlIHJlZmFjdG9yaW5ncyB0aGF0IHJlYXJyYW5nZSBsb2dpYywgaW50cm9kdWNlIGhlbHBlciBmdW5jdGlvbnMsIG9yIGFsdGVyIHN0YXRlIG1hbmFnZW1lbnQKICBpbiBjb3JlIHN1YnN5c3RlbXMgZnJlcXVlbnRseSBpbnRyb2R1Y2Ugc3VidGxlIHNlbWFudGljIHNoaWZ0cyBvciB1bmNvdmVyIGxhdGVudCBrZXJuZWwgYnVncy4KICBJZiByZWFjaGFibGUgZXhlY3V0YWJsZSBjb2RlIGlzIG1vZGlmaWVkIG9yIHJlZmFjdG9yZWQsIGl0IE1VU1QgYmUgZnV6emVkLgoKLSBORVcgT1IgTU9ESUZJRUQgQVNTRVJUSU9OUyBJTiBSRUFDSEFCTEUgQ09ERSBNVVNUIEJFIEZVWlpFRDoKICBXaGVuIGEgcGF0Y2ggaW50cm9kdWNlcyBvciBtb2RpZmllcyBydW50aW1lIGNoZWNrcyBvciBhc3NlcnRpb25zIChlLmcuLCBXQVJOX09OKiwgVk1fV0FSTl9PTiosCiAgQlVHX09OKiwgbG9ja2RlcF9hc3NlcnQqKSBpbiByZWFjaGFibGUgY29kZSBwYXRocywgaXQgZW5mb3JjZXMgbmV3IG9yIHN0cmljdGVyIGludmFyaWFudHMuCiAgRXZlbiBpZiB0aGUgYXV0aG9yIGJlbGlldmVzIHRoZSBpbnZhcmlhbnQgYWx3YXlzIGhvbGRzLCBmdXp6aW5nIGlzIGVzc2VudGlhbCB0byB2ZXJpZnkgd2hldGhlcgogIGFuIHVudXN1YWwgc2VxdWVuY2Ugb2Ygb3BlcmF0aW9ucyBjYW4gdmlvbGF0ZSBpdC4KCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CjIuIFdIRU4gVE8gUkVUVVJOIFdvcnRoRnV6emluZz1mYWxzZSAoTkVHQVRJVkUgQ1JJVEVSSUEpCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgT05MWSBJRiBhbGwgbW9kaWZpZWQgY29kZSBmYWxscyBzdHJpY3RseSBpbnRvIG9uZSBvciBtb3JlIG9mIHRoZXNlIGNhdGVnb3JpZXM6CgotIE5vbi1rZXJuZWwgYW5kIG5vbi1leGVjdXRhYmxlIGNoYW5nZXM6CiAgKiBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBjb21tZW50cywgb3Igc3BlbGxpbmcgZml4ZXMuCiAgKiBVc2VyLXNwYWNlIGRpcmVjdG9yaWVzLCBzZWxmLXRlc3RzLCBzYW1wbGVzLCBvciBzY3JpcHRzIChlLmcuLCB0b29scy8sIHNhbXBsZXMvLCBzY3JpcHRzLywgdXNyLykKICAgIHRoYXQgZG8gbm90IGFmZmVjdCB0aGUgY29tcGlsZWQga2VybmVsIGltYWdlICh2bWxpbnV4KSBvciBrZXJuZWwgbW9kdWxlcy4KICAqIFB1cmVseSBkZWNvcmF0aXZlIGxvZ2dpbmcgKGUuZy4sIG1lc3NhZ2Ugc3RyaW5ncyBpbiBwcl9lcnIsIHByaW50aywgZGV2X2luZm8pIG9yIHRyYWNlcG9pbnRzCiAgICB0aGF0IGRvIG5vdCBhbHRlciBjb250cm9sIGZsb3cgb3IgZGF0YSBzdHJ1Y3R1cmVzLgogICogQnVpbGQgc3lzdGVtIG9yIEtjb25maWcgY2hhbmdlcyB0aGF0IGRvIG5vdCBhbHRlciBjb21waWxlZCBDIGxvZ2ljLgotIFN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZSBoYXJkd2FyZToKICAqIFZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaGVzLCBTbWFydE5JQ3MsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCwKICAgIGlvbmljLCBhbWRncHUpIHJlcXVpcmluZyBwaHlzaWNhbCBBU0lDL1BDSWUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuCi0gVW5yZWFjaGFibGUgZXhlY3V0aW9uIHBhdGhzOgogICogRHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoLnJlbW92ZSwgLnNodXRkb3duLCBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIpIGV4ZWN1dGVkIG9ubHkgZHVyaW5nCiAgICBwaHlzaWNhbCBQQ0kgaG90LXVucGx1ZyBvciBtYW51YWwgc3lzZnMgZHJpdmVyIHVuYmluZGluZy4KICAqIENvZGUgcGF0aHMgZXhjbHVzaXZlIHRvIGFyY2hpdGVjdHVyZXMgb3RoZXIgdGhhbiB0aGUgdGFyZ2V0IGFyY2hpdGVjdHVyZS4KCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CjMuIFdIRU4gVE8gUkVUVVJOIFdvcnRoRnV6emluZz10cnVlIChQT1NJVElWRSBDUklURVJJQSkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUmV0dXJuIFdvcnRoRnV6emluZz10cnVlIHdoZW5ldmVyIHRoZSBwYXRjaCB0b3VjaGVzIHJlYWNoYWJsZSBleGVjdXRhYmxlIGNvZGUsIGluY2x1ZGluZzoKLSBDb3JlIFN1YnN5c3RlbXM6CiAgKiBBbnkgbG9naWMgbW9kaWZpY2F0aW9ucyBpbiBtZW1vcnkgbWFuYWdlbWVudCAobW0vKSwgc3luY2hyb25pemF0aW9uL2xvY2tpbmcgKGtlcm5lbC9sb2NraW5nLyksCiAgICBCUEYsIHNjaGVkdWxlciwgY29yZSBuZXR3b3JraW5nLCBWRlMsIG9yIHN5c2NhbGwgaGFuZGxpbmcuCi0gUmVmYWN0b3JpbmdzIGFuZCBDb2RlIENsZWFudXBzOgogICogQW55IHJlc3RydWN0dXJpbmcgb2YgcmVhY2hhYmxlIGRhdGEgc3RydWN0dXJlcywgaGVscGVyIGFic3RyYWN0aW9ucywgb3IgYWxnb3JpdGhtIGZsb3dzLgotIFJ1bnRpbWUgQXNzZXJ0aW9ucyBhbmQgRGVmZW5zaXZlIENoZWNrczoKICAqIEFueSBpbnRyb2R1Y3Rpb24gb3IgYWx0ZXJhdGlvbiBvZiBhc3NlcnRpb25zIChXQVJOX09OKiwgVk1fV0FSTl9PTiosIEJVR19PTiosIGV0Yy4pIGluIHJlYWNoYWJsZSBwYXRocy4KLSBSZWFjaGFibGUgRHJpdmVycyBhbmQgUHJvdG9jb2xzOgogICogRHJpdmVycyBhY2Nlc3NpYmxlIHZpYSB2aXJ0dWFsIGJ1c2VzICh2aXJ0aW8sIFVTQiBnYWRnZXQsIGxvb3BiYWNrLCBuZXRsaW5rLCBiaW5kZXIsIHNvY2tldHMsIGV0Yy4pLgoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KNC4gRVhUUkFDVElORyBGb2N1c1N5bWJvbHMgKFBSRVZFTlRJTkcgRElMVVRJT04pCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CldoZW4gV29ydGhGdXp6aW5nPXRydWUsIHlvdSBtdXN0IGV4dHJhY3Qgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyBpbnRvIEZvY3VzU3ltYm9scyB0byBndWlkZSB0aGUgZnV6emVyOgoKLSBBVk9JRCBVQklRVUlUT1VTIExJRkVDWUNMRSBIT1QtUEFUSFM6CiAgRG8gTk9UIGxpc3QgZ2VuZXJpYywgdWJpcXVpdG91cyBmdW5jdGlvbnMgY2FsbGVkIGJ5IGFsbW9zdCBldmVyeSBwcm9ncmFtIGluIHRoZSBjb3JwdXMKICAoaW5jbHVkaW5nLCBidXQgbm90IGxpbWl0ZWQgdG86IGdlbmVyYWwgbWVtb3J5IGFsbG9jYXRvcnMgYW5kIGRlYWxsb2NhdG9ycywgcGFnZSBmYXVsdAogIGFuZCB0cmFwIGhhbmRsZXJzLCBvciBjb3JlIHN5bmNocm9uaXphdGlvbiBwcmltaXRpdmVzOyB0aGlzIGlzIG5vdCBhbiBleGhhdXN0aXZlIGxpc3QpLgogIExpc3RpbmcgdWJpcXVpdG91cyBmdW5jdGlvbnMgY2F1c2VzIHRoZSBmdXp6ZXIgdG8gY2xhc3NpZnkgdGhvdXNhbmRzIG9mIHVucmVsYXRlZCB0ZXN0cyBhcyAmIzM0O2ZvY3VzZWQmIzM0OywKICB3aGljaCBzZXZlcmVseSBkaWx1dGVzIGZ1enppbmcgZWZmb3J0IGF3YXkgZnJvbSB0aGUgYWN0dWFsIGNoYW5nZXMuCgotIFRBUkdFVCBTUEVDSUZJQyBGRUFUVVJFIExPR0lDIEFORCBFTlRSWVBPSU5UUzoKICBMaXN0IGZ1bmN0aW9ucyB0aGF0IHNwZWNpZmljYWxseSBpbXBsZW1lbnQgdGhlIGxvZ2ljIGJlaW5nIGFkZGVkIG9yIGFsdGVyZWQsIG9yIGRpcmVjdCBBUEkgZW50cnlwb2ludHMKICBmb3IgdGhlIHN1YnN5c3RlbSBmZWF0dXJlIHVuZGVyIHJldmlldy4KCi0gSEFORExJTkcgU1RBVElDIElOTElORSBGVU5DVElPTlMgSU4gSEVBREVSUyAoLmgpOgogIENvbXBpbGVyLWlubGluZWQgc3RhdGljIGZ1bmN0aW9ucyAoc3VjaCBhcyBzdGF0aWMgaW5saW5lcyBpbiBtbS8qLmggb3IgaW5jbHVkZS9saW51eC8qLmgpIGxhY2sKICBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzIGluIHZtbGludXggYW5kIGNhbm5vdCBiZSB0YXJnZXRlZCBkaXJlY3RseSBieSBzeW1ib2wgY292ZXJhZ2UgZmlsdGVycy4KICBJZiB0aGUgY2hhbmdlcyBhcmUgcHJpbWFyaWx5IGluIHN0YXRpYyBpbmxpbmUgaGVscGVycywgaWRlbnRpZnkgbm9uLXN0YXRpYywgZmVhdHVyZS1zcGVjaWZpYyBjYWxsZXIKICBmdW5jdGlvbnMgaW4gLmMgZmlsZXMgdGhhdCBleGVyY2lzZSB0aGVtIChhdm9pZGluZyB1YmlxdWl0b3VzIGxpZmVjeWNsZSB3cmFwcGVycykuCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQo1LiBJREVOVElGWUlORyBFbmFibGVDb25maWdzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CklkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgY29tcGlsZSBhbmQgcmVhY2ggdGhlIG1vZGlmaWVkIGNvZGU6Ci0gSW5zcGVjdCBLY29uZmlnIGZpbGVzIGFuZCAjaWZkZWYgZ3VhcmRzOyBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy4KLSBDaGVjayAmIzM0O2RlcGVuZHMgb24mIzM0OyBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3MgbmVlZGVkLgotIFN0cmlwIGFueSAmIzM5O0NPTkZJR18mIzM5OyBwcmVmaXggKGUuZy4sIHJldHVybiAmIzM0O05FVF9JUFY0JiMzNDsgaW5zdGVhZCBvZiAmIzM0O0NPTkZJR19ORVRfSVBWNCYjMzQ7KS4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5UYXJnZXQgYXJjaGl0ZWN0dXJlOiBhbWQ2NAoKRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCA5MTMwNjcyMWM3MWNhZDllN2ZiYjVjYzFhYmU2NWM2NTg5OTNjOWViCkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIFN1biBTZXAgMTMgMTQ6MzA6NTQgMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9tY3NfcnZ1X2lmLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9tY3NfcnZ1X2lmLmMKaW5kZXggZmNlMjJlMzE0Y2FjMC4uNWUyNGQ0M2Q1ZmM3OSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvbWNzX3J2dV9pZi5jCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL21jc19ydnVfaWYuYwpAQCAtNTAsNiAmIzQzOzUwLDggQEAgdm9pZCBydnVfbWNzX3B0cF9jZmcoc3RydWN0IHJ2dSAqcnZ1LCB1OCBycG1faWQsIHU4IGxtYWNfaWQsIGJvb2wgZW5hKQogCS8qIENORjEwSy1CICovCiAJaWYgKHJ2dS0mZ3Q7bWNzX2Jsa19jbnQgJmd0OyAxKSB7CiAJCW1jcyA9IG1jc19nZXRfcGRhdGEocnBtX2lkKTsKJiM0MzsJCWlmICghbWNzKQomIzQzOwkJCXJldHVybjsKIAkJY2ZnID0gbWNzX3JlZ19yZWFkKG1jcywgTUNTWF9QRVhfUlhfU0xBVkVfUEVYX0NPTkZJR1VSQVRJT04pOwogCQlpZiAoZW5hKQogCQkJY2ZnIHw9IEJJVF9VTEwobG1hY19pZCk7CjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzEzIDE0OjMwPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy44LWZsYXNoPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDI5NjgKCQkJCQkJCW91dHB1dDogNDQKCQkJCQkJCXRob3VnaHRzOiA0MjMKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoaXMgUGF0Y2g6IEEgUXVpY2sgRGVlcCBEaXZlKioKCk9rYXksIGxldCYjMzk7cyBkaXZlIGludG8gdGhpcyBwYXRjaC4gTXkgaW1tZWRpYXRlIHRob3VnaHQgaXMgdG8gdW5kZXJzdGFuZCB0aGUgaW1wbGljYXRpb25zIHdpdGhpbiB0aGUgT2N0ZW9uVFgyIGVjb3N5c3RlbS4gVGhlIGRpZmYgaXMgdGFyZ2V0aW5nIGBkcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9tY3NfcnZ1X2lmLmNgLCB3aGljaCB0ZWxscyBtZSB3ZSYjMzk7cmUgZGVhbGluZyB3aXRoIHRoZSBNYXJ2ZWxsIE9jdGVvbiBUWDIgZmFtaWx5LCBzcGVjaWZpY2FsbHkgdGhlIEFGIChBcHBsaWNhdGlvbiBGYWJyaWMpIGNvbXBvbmVudCwgcHJvYmFibHkgcmVsYXRlZCB0byBuZXR3b3JrIGludGVyZmFjZSBjb25maWd1cmF0aW9uLiBHaXZlbiBteSBleHBlcmllbmNlIHdpdGggdGhlc2UgU29DcywgSSYjMzk7bSBhbHJlYWR5IG1lbnRhbGx5IG1hcHBpbmcgdGhlIHJlbGV2YW50IGhhcmR3YXJlIGJsb2Nrcy4KCkxvb2tpbmcgYXQgdGhlIGNvZGUsIGl0JiMzOTtzIG1vZGlmeWluZyB0aGUgYHJ2dV9tY3NfcHRwX2NmZ2AgZnVuY3Rpb24uIFRoaXMgZnVuY3Rpb24gc2VlbXMgdG8gaGFuZGxlIFByZWNpc2lvbiBUaW1lIFByb3RvY29sIChQVFApIGNvbmZpZ3VyYXRpb24sIHByb2JhYmx5IGZvciBhIHNwZWNpZmljIExNQUMgKExvZ2ljYWwgTUFDKSBJRCB3aXRoaW4gdGhlIE9jdGVvblRYMi4gVGhlIGtleSBjaGFuZ2UgaXMgdGhlIGFkZGl0aW9uIG9mIGEgbnVsbCBjaGVjayBmb3IgYG1jc2AgYmVmb3JlIGFjY2Vzc2luZyBpdHMgbWVtYmVycy4gSXQgYXBwZWFycyB0aGVyZSB3YXMgYSBwb3RlbnRpYWwgZm9yIGEgbnVsbCBwb2ludGVyIGRlcmVmZXJlbmNlIHRoZXJlLiBHaXZlbiB0aGUgY29udGV4dCBvZiB0aGUgYG1jc19nZXRfcGRhdGFgIGZ1bmN0aW9uLCBpdCBtdXN0IGhhdmUgYmVlbiByZXR1cm5pbmcgTlVMTCBpbiBzb21lIHNjZW5hcmlvcy4gVGhlIGludHJvZHVjdGlvbiBvZiB0aGUgbnVsbCBjaGVjayBzZWVtcyBzdHJhaWdodGZvcndhcmQgYnV0LCBJIGFtIGN1cmlvdXMgYXMgdG8gdGhlIHBhcnRpY3VsYXIgY29kZSBwYXRoIHRoYXQgY2FuIHByb2R1Y2UgdGhlIGZhaWx1cmUuCgpNeSBuZXh0IHN0ZXAgaXMgdG8gaW52ZXN0aWdhdGUgdGhlIEtjb25maWcgb3B0aW9ucyBmb3IgdGhlIGBvY3Rlb250eDIvYWZgIGRpcmVjdG9yeSB0byBnZXQgYSBiZXR0ZXIgaGFuZGxlIG9uIHRoZSBwb3RlbnRpYWwgY29uZmlndXJhdGlvbiBzY2VuYXJpb3MgdGhhdCBsZWQgdG8gdGhlIHJlcG9ydGVkIGlzc3VlIGFuZCB0byBhc2NlcnRhaW4gdGhlIGJyb2FkZXIgaW1wbGljYXRpb25zIGFuZCBidWlsZCBkZXBlbmRlbmNpZXMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NC8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMTMgMTQ6MzE8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7bWNzX3J2dV9pZiYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9NYWtlZmlsZT0xMT1ydnVfYWYteSA6PSBjZ3gubyBydnUubyBydnVfY2d4Lm8gcnZ1X25wYS5vIHJ2dV9uaXgubyBcXFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL01ha2VmaWxlLTEzLVx0XHQgIHJ2dV9jcHQubyBydnVfZGV2bGluay5vIHJwbS5vIHJ2dV9jbjEway5vIHJ2dV9zd2l0Y2gubyBcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvTWFrZWZpbGU6MTQ6XHRcdCAgcnZ1X3NkcC5vIHJ2dV9ucGNfaGFzaC5vIG1jcy5vIG1jc19ydnVfaWYubyBtY3NfY25mMTBrYi5vIFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9NYWtlZmlsZS0xNS1cdFx0ICBydnVfcmVwLm8gY24yMGsvbWJveF9pbml0Lm8gY24yMGsvbml4Lm8gY24yMGsvZGVidWdmcy5vIFxcXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NS8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMTMgMTQ6MzE8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjgtZmxhc2g8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNDAwNwoJCQkJCQkJb3V0cHV0OiAzNAoJCQkJCQkJdGhvdWdodHM6IDQ3CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5IZXJlJiMzOTtzIG15IHRob3VnaHQgcHJvY2VzcywgYXMgcmVxdWVzdGVkOgoKKipOYXZpZ2F0aW5nIHRoZSBPY3Rlb25UWDIgRXRoZXJuZXQgRHJpdmVyIENvbmZpZ3VyYXRpb24qKgoKT2theSwgc28gSSBuZWVkIHRvIGZpZ3VyZSBvdXQgdGhlIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBmb3IgdGhlIE9jdGVvblRYMiBFdGhlcm5ldCBkcml2ZXIuIE15IGZpcnN0IGluc3RpbmN0LCBnaXZlbiBteSBleHBlcmllbmNlLCBpcyB0byB6ZXJvIGluIG9uIHRoZSBgS2NvbmZpZ2AgZmlsZXMuIFRoYXQmIzM5O3Mgd2hlcmUgYWxsIHRoZSBidWlsZC10aW1lIGNvbmZpZ3VyYXRpb24gbWFnaWMgaGFwcGVucywgZGVmaW5pbmcgdGhlIGRpZmZlcmVudCBmZWF0dXJlcywgc2V0dGluZ3MsIGFuZCBkZXBlbmRlbmNpZXMuIE5vdywgd2hlcmUgd291bGQgdGhlIHJlbGV2YW50IGNvbmZpZ3VyYXRpb25zICpsaWtlbHkqIGxpdmU/IENvbnNpZGVyaW5nIHRoZSBkcml2ZXImIzM5O3MgYXJjaGl0ZWN0dXJlIGFuZCB0aGUgcG9zc2libGUgcHJlc2VuY2Ugb2Ygb2ZmbG9hZCBmdW5jdGlvbmFsaXRpZXMsIEkmIzM5O2xsIHN0YXJ0IGJ5IGNoZWNraW5nIGVpdGhlciB0aGUgbWFpbiBgS2NvbmZpZ2AgZmlsZSB1bmRlciBgZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvS2NvbmZpZ2Agb3IsIHNpbmNlIHRoZSBgYWZgIGRpcmVjdG9yeSBvZnRlbiBoYW5kbGVzIG9mZmxvYWQgZmVhdHVyZXMsIEkmIzM5O2xsIGFsc28gbG9vayBhdCBgZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvS2NvbmZpZ2AuIFRoZXNlIHNlZW0gbGlrZSB0aGUgbW9zdCBsb2dpY2FsIHN0YXJ0aW5nIHBvaW50cyB0byBleGFtaW5lIHRoZSBhdmFpbGFibGUgY29uZmlndXJhdGlvbnMuIEkgZXhwZWN0IHRvIGZpbmQgdGhpbmdzIGxpa2UgZW5hYmxpbmcvZGlzYWJsaW5nIGRpZmZlcmVudCBmZWF0dXJlcywgZGVmaW5pbmcgYnVmZmVyIHNpemVzLCBhbmQgcGVyaGFwcyBldmVuIHNvbWUgZGVidWdnaW5nIG9wdGlvbnMsIGFsbCBjb250cm9sbGVkIGJ5IHRoZXNlIEtjb25maWcgZmlsZXMuIFRpbWUgdG8gZGlnIGluIQoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzEzIDE0OjMxPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3J2dV9hZiYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL01ha2VmaWxlPTc9b2JqLSQoQ09ORklHX09DVEVPTlRYMl9NQk9YKSAmIzQzOz0gcnZ1X21ib3gub1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvTWFrZWZpbGU6ODpvYmotJChDT05GSUdfT0NURU9OVFgyX0FGKSAmIzQzOz0gcnZ1X2FmLm9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL01ha2VmaWxlLTktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9NYWtlZmlsZT0xMD1ydnVfbWJveC15IDo9IG1ib3gubyBydnVfdHJhY2Uub1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvTWFrZWZpbGU6MTE6cnZ1X2FmLXkgOj0gY2d4Lm8gcnZ1Lm8gcnZ1X2NneC5vIHJ2dV9ucGEubyBydnVfbml4Lm8gXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL01ha2VmaWxlLTEyLVx0XHQgIHJ2dV9yZWcubyBydnVfbnBjLm8gcnZ1X2RlYnVnZnMubyBwdHAubyBydnVfbnBjX2ZzLm8gXFxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jbjIway9zdHJ1Y3QuaD0xOT1lbnVtIHJ2dV9tYm94X3BmX2ludF92ZWNfZSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY24yMGsvc3RydWN0LmgtMjgtLyogUlZVIEFkbWluIGZ1bmN0aW9uIEludGVycnVwdCBWZWN0b3IgRW51bWVyYXRpb24gKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL2NuMjBrL3N0cnVjdC5oOjI5OmVudW0gcnZ1X2FmX2NuMjBrX2ludF92ZWNfZSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jbjIway9zdHJ1Y3QuaC0zMC1cdFJWVV9BRl9DTjIwS19JTlRfVkVDX1BPSVNPTlx0XHQ9IDB4MCxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9tYm94Lmg9NDY4PXN0cnVjdCBtc2dfcnNwIHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9tYm94LmgtNDc0LSAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvbWJveC5oOjQ3NTplbnVtIHJ2dV9hZl9zdGF0dXMge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvbWJveC5oLTQ3Ni1cdFJWVV9JTlZBTElEX1ZGX0lEICAgICAgICAgICA9IC0yNTYsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmMtMjYtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYzoyNzojZGVmaW5lIERSVl9OQU1FXHRcJiMzNDtydnVfYWZcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jLTI4LSNkZWZpbmUgRFJWX1NUUklORyAgICAgIFwmIzM0O01hcnZlbGwgT2N0ZW9uVFgyIFJWVSBBZG1pbiBGdW5jdGlvbiBEcml2ZXJcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYz0yMzA3PXN0YXRpYyB2b2lkIF9fcnZ1X21ib3hfaGFuZGxlcihzdHJ1Y3QgcnZ1X3dvcmsgKm13b3JrLCBpbnQgdHlwZSwgYm9vbCBwb2xsKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jLTIzOTctXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYzoyMzk4OnN0YXRpYyBpbmxpbmUgdm9pZCBydnVfYWZwZl9tYm94X2hhbmRsZXIoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmMtMjM5OS17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmMtMjQwNy1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jOjI0MDg6c3RhdGljIGlubGluZSB2b2lkIHJ2dV9hZnZmX21ib3hfaGFuZGxlcihzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYy0yNDA5LXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYz0yNDE1PXN0YXRpYyB2b2lkIF9fcnZ1X21ib3hfdXBfaGFuZGxlcihzdHJ1Y3QgcnZ1X3dvcmsgKm13b3JrLCBpbnQgdHlwZSlcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYy0yNDgyLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmM6MjQ4MzpzdGF0aWMgaW5saW5lIHZvaWQgcnZ1X2FmcGZfbWJveF91cF9oYW5kbGVyKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaylcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jLTI0ODQte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jLTI0ODktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYzoyNDkwOnN0YXRpYyBpbmxpbmUgdm9pZCBydnVfYWZ2Zl9tYm94X3VwX2hhbmRsZXIoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmMtMjQ5MS17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmM9MjU3MD1zdGF0aWMgaW50IHJ2dV9tYm94X2luaXQoc3RydWN0IHJ2dSAqcnZ1LCBzdHJ1Y3QgbWJveF93cV9pbmZvICptdyxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYy0yNjI1LVx0Y2FzZSBUWVBFX0FGUEY6XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYzoyNjI2Olx0XHRuYW1lID0gXCYjMzQ7cnZ1X2FmcGZfbWFpbGJveFwmIzM0OztcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jLTI2MjctXHRcdGRpciA9IE1CT1hfRElSX0FGUEY7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmMtMjYzNC1cdGNhc2UgVFlQRV9BRlZGOlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmM6MjYzNTpcdFx0bmFtZSA9IFwmIzM0O3J2dV9hZnZmX21haWxib3hcJiMzNDs7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYy0yNjM2LVx0XHRkaXIgPSBNQk9YX0RJUl9QRlZGO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jPTI4ODk9c3RhdGljIHZvaWQgX19ydnVfZmxyX2hhbmRsZXIoc3RydWN0IHJ2dSAqcnZ1LCB1MTYgcGNpZnVuYylcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYy0yOTI5LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmM6MjkzMDpzdGF0aWMgdm9pZCBydnVfYWZ2Zl9mbHJfaGFuZGxlcihzdHJ1Y3QgcnZ1ICpydnUsIGludCB2ZilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jLTI5MzEte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jPTI5NDc9c3RhdGljIHZvaWQgcnZ1X2Zscl9oYW5kbGVyKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaylcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYy0yOTU2LVx0aWYgKHBmIFx1MDAzZT0gcnZ1LVx1MDAzZWh3LVx1MDAzZXRvdGFsX3Bmcykge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmM6Mjk1NzpcdFx0cnZ1X2FmdmZfZmxyX2hhbmRsZXIocnZ1LCBwZiAtIHJ2dS1cdTAwM2Vody1cdTAwM2V0b3RhbF9wZnMpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmMtMjk1OC1cdFx0cmV0dXJuO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jLTI5NzYtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYzoyOTc3OnN0YXRpYyB2b2lkIHJ2dV9hZnZmX3F1ZXVlX2Zscl93b3JrKHN0cnVjdCBydnUgKnJ2dSwgaW50IHN0YXJ0X3ZmLCBpbnQgbnVtdmZzKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmMtMjk3OC17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmM9MzAwMT1zdGF0aWMgaXJxcmV0dXJuX3QgcnZ1X2Zscl9pbnRyX2hhbmRsZXIoaW50IGlycSwgdm9pZCAqcnZ1X2lycSlcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYy0zMDI0LWFmdmZfZmxyOlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmM6MzAyNTpcdHJ2dV9hZnZmX3F1ZXVlX2Zscl93b3JrKHJ2dSwgMCwgNjQpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmMtMzAyNi1cdGlmIChydnUtXHUwMDNldmZzIFx1MDAzZSA2NClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jOjMwMjc6XHRcdHJ2dV9hZnZmX3F1ZXVlX2Zscl93b3JrKHJ2dSwgNjQsIHJ2dS1cdTAwM2V2ZnMgLSA2NCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYy0zMDI4LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jPTMwOTM9c3RhdGljIHZvaWQgcnZ1X3VucmVnaXN0ZXJfaW50ZXJydXB0cyhzdHJ1Y3QgcnZ1ICpydnUpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmMtMzEyNC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jOjMxMjU6c3RhdGljIGludCBydnVfYWZ2Zl9tc2l4X3ZlY3RvcnNfbnVtX29rKHN0cnVjdCBydnUgKnJ2dSlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jLTMxMjYte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jPTMxNDU9c3RhdGljIGludCBydnVfcmVnaXN0ZXJfaW50ZXJydXB0cyhzdHJ1Y3QgcnZ1ICpydnUpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmMtMzI0Mi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jOjMyNDM6XHRpZiAoIXJ2dV9hZnZmX21zaXhfdmVjdG9yc19udW1fb2socnZ1KSlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jLTMyNDQtXHRcdHJldHVybiAwO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jPTMzNjA9c3RhdGljIGludCBydnVfZmxyX2luaXQoc3RydWN0IHJ2dSAqcnZ1KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jLTMzNzItXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYzozMzczOlx0cnZ1LVx1MDAzZWZscl93cSA9IGFsbG9jX3dvcmtxdWV1ZShcJiMzNDtydnVfYWZwZl9mbHJcJiMzNDssXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYy0zMzc0LVx0XHRcdFx0ICAgICAgV1FfSElHSFBSSSB8IFdRX01FTV9SRUNMQUlNLCAwKTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYz0zNDczPXN0YXRpYyBpbnQgcnZ1X2VuYWJsZV9zcmlvdihzdHJ1Y3QgcnZ1ICpydnUpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmMtMzQ3OC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jOjM0Nzk6XHRpZiAoIXJ2dV9hZnZmX21zaXhfdmVjdG9yc19udW1fb2socnZ1KSkge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmMtMzQ4MC1cdFx0ZGV2X3dhcm4oXHUwMDI2cGRldi1cdTAwM2VkZXYsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmMtMzUxOS1cdGVyciA9IHJ2dV9tYm94X2luaXQocnZ1LCBcdTAwMjZydnUtXHUwMDNlYWZ2Zl93cV9pbmZvLCBUWVBFX0FGVkYsIHZmcyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jOjM1MjA6XHRcdFx0ICAgIHJ2dV9hZnZmX21ib3hfaGFuZGxlciwgcnZ1X2FmdmZfbWJveF91cF9oYW5kbGVyKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jLTM1MjEtXHRpZiAoZXJyKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jPTM1NTg9c3RhdGljIGludCBydnVfcHJvYmUoc3RydWN0IHBjaV9kZXYgKnBkZXYsIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICppZClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYy0zNjM4LVx0ZXJyID0gcnZ1X21ib3hfaW5pdChydnUsIFx1MDAyNnJ2dS1cdTAwM2VhZnBmX3dxX2luZm8sIFRZUEVfQUZQRixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jOjM2Mzk6XHRcdFx0ICAgIHJ2dS1cdTAwM2Vody1cdTAwM2V0b3RhbF9wZnMsIHJ2dV9hZnBmX21ib3hfaGFuZGxlcixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jOjM2NDA6XHRcdFx0ICAgIHJ2dV9hZnBmX21ib3hfdXBfaGFuZGxlcik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYy0zNjQxLVx0aWYgKGVycikge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9kZXZsaW5rLmM9MTE2OT1zdGF0aWMgdm9pZCBydnVfaGVhbHRoX3JlcG9ydGVyc19kZXN0cm95KHN0cnVjdCBydnUgKnJ2dSlcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGV2bGluay5jLTExODEtLyogRGV2bGluayBQYXJhbXMgQVBJcyAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2RldmxpbmsuYzoxMTgyOnN0YXRpYyBpbnQgcnZ1X2FmX2RsX2R3cnJfbXR1X3ZhbGlkYXRlKHN0cnVjdCBkZXZsaW5rICpkZXZsaW5rLCB1MzIgaWQsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGV2bGluay5jLTExODMtXHRcdFx0XHQgICAgICAgdW5pb24gZGV2bGlua19wYXJhbV92YWx1ZSAqdmFsLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9kZXZsaW5rLmMtMTIyMC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9kZXZsaW5rLmM6MTIyMTpzdGF0aWMgaW50IHJ2dV9hZl9kbF9kd3JyX210dV9zZXQoc3RydWN0IGRldmxpbmsgKmRldmxpbmssIHUzMiBpZCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9kZXZsaW5rLmMtMTIyMi1cdFx0XHRcdCAgc3RydWN0IGRldmxpbmtfcGFyYW1fZ3NldF9jdHggKmN0eCxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGV2bGluay5jLTEyMzUtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGV2bGluay5jOjEyMzY6c3RhdGljIGludCBydnVfYWZfZGxfZHdycl9tdHVfZ2V0KHN0cnVjdCBkZXZsaW5rICpkZXZsaW5rLCB1MzIgaWQsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGV2bGluay5jLTEyMzctXHRcdFx0XHQgIHN0cnVjdCBkZXZsaW5rX3BhcmFtX2dzZXRfY3R4ICpjdHgsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2RldmxpbmsuYy0xMjUzLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2RldmxpbmsuYzoxMjU0OmVudW0gcnZ1X2FmX2RsX3BhcmFtX2lkIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9kZXZsaW5rLmMtMTI1NS1cdFJWVV9BRl9ERVZMSU5LX1BBUkFNX0lEX0JBU0UgPSBERVZMSU5LX1BBUkFNX0dFTkVSSUNfSURfTUFYLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9kZXZsaW5rLmMtMTI2NC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9kZXZsaW5rLmM6MTI2NTpzdGF0aWMgaW50IHJ2dV9hZl9ucGNfZGVmcmFnX2ZlYXR1cmVfZ2V0KHN0cnVjdCBkZXZsaW5rICpkZXZsaW5rLCB1MzIgaWQsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGV2bGluay5jLTEyNjYtXHRcdFx0XHRcdCBzdHJ1Y3QgZGV2bGlua19wYXJhbV9nc2V0X2N0eCAqY3R4LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9kZXZsaW5rLmMtMTI4MC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9kZXZsaW5rLmM6MTI4MTpzdGF0aWMgaW50IHJ2dV9hZl9ucGNfZGVmcmFnKHN0cnVjdCBkZXZsaW5rICpkZXZsaW5rLCB1MzIgaWQsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGV2bGluay5jLTEyODItXHRcdFx0ICAgICBzdHJ1Y3QgZGV2bGlua19wYXJhbV9nc2V0X2N0eCAqY3R4LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9kZXZsaW5rLmMtMTI5Ny1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9kZXZsaW5rLmM6MTI5ODpzdGF0aWMgaW50IHJ2dV9hZl9ucGNfZGVmcmFnX2ZlYXR1cmVfdmFsaWRhdGUoc3RydWN0IGRldmxpbmsgKmRldmxpbmssIHUzMiBpZCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9kZXZsaW5rLmMtMTI5OS1cdFx0XHRcdFx0ICAgICAgdW5pb24gZGV2bGlua19wYXJhbV92YWx1ZSAqdmFsLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9kZXZsaW5rLmMtMTMyNS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9kZXZsaW5rLmM6MTMyNjpzdGF0aWMgaW50IHJ2dV9hZl9ucGNfZXhhY3RfZmVhdHVyZV9nZXQoc3RydWN0IGRldmxpbmsgKmRldmxpbmssIHUzMiBpZCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9kZXZsaW5rLmMtMTMyNy1cdFx0XHRcdFx0c3RydWN0IGRldmxpbmtfcGFyYW1fZ3NldF9jdHggKmN0eCxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGV2bGluay5jLTEzNDEtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGV2bGluay5jOjEzNDI6c3RhdGljIGludCBydnVfYWZfbnBjX2V4YWN0X2ZlYXR1cmVfZGlzYWJsZShzdHJ1Y3QgZGV2bGluayAqZGV2bGluaywgdTMyIGlkLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2RldmxpbmsuYy0xMzQzLVx0XHRcdFx0XHQgICAgc3RydWN0IGRldmxpbmtfcGFyYW1fZ3NldF9jdHggKmN0eCxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGV2bGluay5jLTEzNTMtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGV2bGluay5jOjEzNTQ6c3RhdGljIGludCBydnVfYWZfbnBjX2V4YWN0X2ZlYXR1cmVfdmFsaWRhdGUoc3RydWN0IGRldmxpbmsgKmRldmxpbmssIHUzMiBpZCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9kZXZsaW5rLmMtMTM1NS1cdFx0XHRcdFx0ICAgICB1bmlvbiBkZXZsaW5rX3BhcmFtX3ZhbHVlICp2YWwsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2RldmxpbmsuYy0xMzgxLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2RldmxpbmsuYzoxMzgyOnN0YXRpYyBpbnQgcnZ1X2FmX2RsX25wY19tY2FtX2hpZ2hfem9uZV9wZXJjZW50X2dldChzdHJ1Y3QgZGV2bGluayAqZGV2bGluaywgdTMyIGlkLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2RldmxpbmsuYy0xMzgzLVx0XHRcdFx0XHRcdCAgICBzdHJ1Y3QgZGV2bGlua19wYXJhbV9nc2V0X2N0eCAqY3R4LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9kZXZsaW5rLmMtMTM5Ny1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9kZXZsaW5rLmM6MTM5ODpzdGF0aWMgaW50IHJ2dV9hZl9kbF9ucGNfbWNhbV9oaWdoX3pvbmVfcGVyY2VudF9zZXQoc3RydWN0IGRldmxpbmsgKmRldmxpbmssIHUzMiBpZCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9kZXZsaW5rLmMtMTM5OS1cdFx0XHRcdFx0XHQgICAgc3RydWN0IGRldmxpbmtfcGFyYW1fZ3NldF9jdHggKmN0eCxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGV2bGluay5jLTE0MTYtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGV2bGluay5jOjE0MTc6c3RhdGljIGludCBydnVfYWZfZGxfbnBjX21jYW1faGlnaF96b25lX3BlcmNlbnRfdmFsaWRhdGUoc3RydWN0IGRldmxpbmsgKmRldmxpbmssIHUzMiBpZCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9kZXZsaW5rLmMtMTQxOC1cdFx0XHRcdFx0XHRcdCB1bmlvbiBkZXZsaW5rX3BhcmFtX3ZhbHVlICp2YWwsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2RldmxpbmsuYy0xNDQ0LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2RldmxpbmsuYzoxNDQ1OnN0YXRpYyBpbnQgcnZ1X2FmX2RsX25wY19kZWZfcnVsZV9jbnRyX2dldChzdHJ1Y3QgZGV2bGluayAqZGV2bGluaywgdTMyIGlkLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2RldmxpbmsuYy0xNDQ2LVx0XHRcdFx0XHQgICBzdHJ1Y3QgZGV2bGlua19wYXJhbV9nc2V0X2N0eCAqY3R4LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9kZXZsaW5rLmMtMTQ1Ni1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9kZXZsaW5rLmM6MTQ1NzpzdGF0aWMgaW50IHJ2dV9hZl9kbF9ucGNfZGVmX3J1bGVfY250cl9zZXQoc3RydWN0IGRldmxpbmsgKmRldmxpbmssIHUzMiBpZCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9kZXZsaW5rLmMtMTQ1OC1cdFx0XHRcdFx0ICAgc3RydWN0IGRldmxpbmtfcGFyYW1fZ3NldF9jdHggKmN0eCxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGV2bGluay5jLTE0NzEtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGV2bGluay5jOjE0NzI6c3RhdGljIGludCBydnVfYWZfZGxfbml4X21heGxmX2dldChzdHJ1Y3QgZGV2bGluayAqZGV2bGluaywgdTMyIGlkLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2RldmxpbmsuYy0xNDczLVx0XHRcdFx0ICAgc3RydWN0IGRldmxpbmtfcGFyYW1fZ3NldF9jdHggKmN0eCxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGV2bGluay5jLTE0ODMtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGV2bGluay5jOjE0ODQ6c3RhdGljIGludCBydnVfYWZfZGxfbml4X21heGxmX3NldChzdHJ1Y3QgZGV2bGluayAqZGV2bGluaywgdTMyIGlkLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2RldmxpbmsuYy0xNDg1LVx0XHRcdFx0ICAgc3RydWN0IGRldmxpbmtfcGFyYW1fZ3NldF9jdHggKmN0eCxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGV2bGluay5jLTE1MDYtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGV2bGluay5jOjE1MDc6c3RhdGljIGludCBydnVfYWZfZGxfbml4X21heGxmX3ZhbGlkYXRlKHN0cnVjdCBkZXZsaW5rICpkZXZsaW5rLCB1MzIgaWQsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGV2bGluay5jLTE1MDgtXHRcdFx0XHRcdHVuaW9uIGRldmxpbmtfcGFyYW1fdmFsdWUgKnZhbCxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGV2bGluay5jLTE1NTctXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGV2bGluay5jOjE1NTg6c3RhdGljIGNvbnN0IHN0cnVjdCBkZXZsaW5rX3BhcmFtIHJ2dV9hZl9kbF9wYXJhbXNbXSA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9kZXZsaW5rLmMtMTU1OS1cdERFVkxJTktfUEFSQU1fRFJJVkVSKFJWVV9BRl9ERVZMSU5LX1BBUkFNX0lEX0RXUlJfTVRVLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9kZXZsaW5rLmMtMTU2MS1cdFx0XHQgICAgIEJJVChERVZMSU5LX1BBUkFNX0NNT0RFX1JVTlRJTUUpLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2RldmxpbmsuYzoxNTYyOlx0XHRcdCAgICAgcnZ1X2FmX2RsX2R3cnJfbXR1X2dldCwgcnZ1X2FmX2RsX2R3cnJfbXR1X3NldCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9kZXZsaW5rLmM6MTU2MzpcdFx0XHQgICAgIHJ2dV9hZl9kbF9kd3JyX210dV92YWxpZGF0ZSksXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGV2bGluay5jLTE1NjQtXHRERVZMSU5LX1BBUkFNX0RSSVZFUihSVlVfQUZfREVWTElOS19QQVJBTV9JRF9OUENfTUNBTV9aT05FX1BFUkNFTlQsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2RldmxpbmsuYy0xNTY2LVx0XHRcdCAgICAgQklUKERFVkxJTktfUEFSQU1fQ01PREVfUlVOVElNRSksXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGV2bGluay5jOjE1Njc6XHRcdFx0ICAgICBydnVfYWZfZGxfbnBjX21jYW1faGlnaF96b25lX3BlcmNlbnRfZ2V0LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2RldmxpbmsuYzoxNTY4Olx0XHRcdCAgICAgcnZ1X2FmX2RsX25wY19tY2FtX2hpZ2hfem9uZV9wZXJjZW50X3NldCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9kZXZsaW5rLmM6MTU2OTpcdFx0XHQgICAgIHJ2dV9hZl9kbF9ucGNfbWNhbV9oaWdoX3pvbmVfcGVyY2VudF92YWxpZGF0ZSksXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGV2bGluay5jLTE1NzAtXHRERVZMSU5LX1BBUkFNX0RSSVZFUihSVlVfQUZfREVWTElOS19QQVJBTV9JRF9OUENfREVGX1JVTEVfQ05UUl9FTkFCTEUsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2RldmxpbmsuYy0xNTcyLVx0XHRcdCAgICAgQklUKERFVkxJTktfUEFSQU1fQ01PREVfUlVOVElNRSksXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGV2bGluay5jOjE1NzM6XHRcdFx0ICAgICBydnVfYWZfZGxfbnBjX2RlZl9ydWxlX2NudHJfZ2V0LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2RldmxpbmsuYzoxNTc0Olx0XHRcdCAgICAgcnZ1X2FmX2RsX25wY19kZWZfcnVsZV9jbnRyX3NldCwgTlVMTCksXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGV2bGluay5jLTE1NzUtXHRERVZMSU5LX1BBUkFNX0RSSVZFUihSVlVfQUZfREVWTElOS19QQVJBTV9JRF9OSVhfTUFYTEYsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2RldmxpbmsuYy0xNTc3LVx0XHRcdCAgICAgQklUKERFVkxJTktfUEFSQU1fQ01PREVfUlVOVElNRSksXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGV2bGluay5jOjE1Nzg6XHRcdFx0ICAgICBydnVfYWZfZGxfbml4X21heGxmX2dldCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9kZXZsaW5rLmM6MTU3OTpcdFx0XHQgICAgIHJ2dV9hZl9kbF9uaXhfbWF4bGZfc2V0LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2RldmxpbmsuYzoxNTgwOlx0XHRcdCAgICAgcnZ1X2FmX2RsX25peF9tYXhsZl92YWxpZGF0ZSksXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGV2bGluay5jLTE1ODEtfTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9kZXZsaW5rLmMtMTU4Mi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9kZXZsaW5rLmM6MTU4MzpzdGF0aWMgY29uc3Qgc3RydWN0IGRldmxpbmtfcGFyYW0gcnZ1X2FmX2RsX3BhcmFtX2V4YWN0X21hdGNoW10gPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGV2bGluay5jLTE1ODQtXHRERVZMSU5LX1BBUkFNX0RSSVZFUihSVlVfQUZfREVWTElOS19QQVJBTV9JRF9OUENfRVhBQ1RfRkVBVFVSRV9ESVNBQkxFLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9kZXZsaW5rLmMtMTU4Ni1cdFx0XHQgICAgIEJJVChERVZMSU5LX1BBUkFNX0NNT0RFX1JVTlRJTUUpLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2RldmxpbmsuYzoxNTg3Olx0XHRcdCAgICAgcnZ1X2FmX25wY19leGFjdF9mZWF0dXJlX2dldCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9kZXZsaW5rLmM6MTU4ODpcdFx0XHQgICAgIHJ2dV9hZl9ucGNfZXhhY3RfZmVhdHVyZV9kaXNhYmxlLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2RldmxpbmsuYzoxNTg5Olx0XHRcdCAgICAgcnZ1X2FmX25wY19leGFjdF9mZWF0dXJlX3ZhbGlkYXRlKSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9kZXZsaW5rLmMtMTU5MC19O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9kZXZsaW5rLmM9MTYwOD1zdGF0aWMgaW50IHJ2dV9kZXZsaW5rX2Vzd2l0Y2hfbW9kZV9zZXQoc3RydWN0IGRldmxpbmsgKmRldmxpbmssIHUxNiBtb2RlLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9kZXZsaW5rLmMtMTYzMy1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9kZXZsaW5rLmM6MTYzNDpzdGF0aWMgaW50IHJ2dV9hZl9kbF9ucGNfc3JjaF9vcmRlcl9zZXQoc3RydWN0IGRldmxpbmsgKmRldmxpbmssIHUzMiBpZCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9kZXZsaW5rLmMtMTYzNS1cdFx0XHRcdFx0c3RydWN0IGRldmxpbmtfcGFyYW1fZ3NldF9jdHggKmN0eCxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGV2bGluay5jLTE2NDUtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGV2bGluay5jOjE2NDY6c3RhdGljIGludCBydnVfYWZfZGxfbnBjX3NyY2hfb3JkZXJfZ2V0KHN0cnVjdCBkZXZsaW5rICpkZXZsaW5rLCB1MzIgaWQsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGV2bGluay5jLTE2NDctXHRcdFx0XHRcdHN0cnVjdCBkZXZsaW5rX3BhcmFtX2dzZXRfY3R4ICpjdHgsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2RldmxpbmsuYy0xNjYxLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2RldmxpbmsuYzoxNjYyOnN0YXRpYyBpbnQgcnZ1X2FmX2RsX25wY19zcmNoX29yZGVyX3ZhbGlkYXRlKHN0cnVjdCBkZXZsaW5rICpkZXZsaW5rLCB1MzIgaWQsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGV2bGluay5jLTE2NjMtXHRcdFx0XHRcdCAgICAgdW5pb24gZGV2bGlua19wYXJhbV92YWx1ZSAqdmFsLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9kZXZsaW5rLmM9MTY5OT1zdGF0aWMgY29uc3Qgc3RydWN0IGRldmxpbmtfb3BzIHJ2dV9kZXZsaW5rX29wcyA9IHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGV2bGluay5jLTE3MDMtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGV2bGluay5jOjE3MDQ6c3RhdGljIGNvbnN0IHN0cnVjdCBkZXZsaW5rX3BhcmFtIHJ2dV9hZl9kbF9jbjIwa19wYXJhbXNbXSA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9kZXZsaW5rLmMtMTcwNS1cdERFVkxJTktfUEFSQU1fRFJJVkVSKFJWVV9BRl9ERVZMSU5LX1BBUkFNX0lEX05QQ19TUkNIX09SREVSLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9kZXZsaW5rLmMtMTcwNy1cdFx0XHQgICAgIEJJVChERVZMSU5LX1BBUkFNX0NNT0RFX1JVTlRJTUUpLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2RldmxpbmsuYzoxNzA4Olx0XHRcdCAgICAgcnZ1X2FmX2RsX25wY19zcmNoX29yZGVyX2dldCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9kZXZsaW5rLmM6MTcwOTpcdFx0XHQgICAgIHJ2dV9hZl9kbF9ucGNfc3JjaF9vcmRlcl9zZXQsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGV2bGluay5jOjE3MTA6XHRcdFx0ICAgICBydnVfYWZfZGxfbnBjX3NyY2hfb3JkZXJfdmFsaWRhdGUpLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2RldmxpbmsuYy0xNzExLVx0REVWTElOS19QQVJBTV9EUklWRVIoUlZVX0FGX0RFVkxJTktfUEFSQU1fSURfTlBDX0RFRlJBRyxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGV2bGluay5jLTE3MTMtXHRcdFx0ICAgICBCSVQoREVWTElOS19QQVJBTV9DTU9ERV9SVU5USU1FKSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9kZXZsaW5rLmM6MTcxNDpcdFx0XHQgICAgIHJ2dV9hZl9ucGNfZGVmcmFnX2ZlYXR1cmVfZ2V0LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2RldmxpbmsuYzoxNzE1Olx0XHRcdCAgICAgcnZ1X2FmX25wY19kZWZyYWcsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGV2bGluay5jOjE3MTY6XHRcdFx0ICAgICBydnVfYWZfbnBjX2RlZnJhZ19mZWF0dXJlX3ZhbGlkYXRlKSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9kZXZsaW5rLmMtMTcxNy19O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9kZXZsaW5rLmM9MTcxOT1pbnQgcnZ1X3JlZ2lzdGVyX2RsKHN0cnVjdCBydnUgKnJ2dSlcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGV2bGluay5jLTE3NDMtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGV2bGluay5jOjE3NDQ6XHRlcnIgPSBkZXZsaW5rX3BhcmFtc19yZWdpc3RlcihkbCwgcnZ1X2FmX2RsX3BhcmFtcywgQVJSQVlfU0laRShydnVfYWZfZGxfcGFyYW1zKSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGV2bGluay5jLTE3NDUtXHRpZiAoZXJyKSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2RldmxpbmsuYy0xNzUxLVx0aWYgKGlzX2NuMjBrKHJ2dS1cdTAwM2VwZGV2KSkge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2RldmxpbmsuYzoxNzUyOlx0XHRlcnIgPSBkZXZsaW5rX3BhcmFtc19yZWdpc3RlcihkbCwgcnZ1X2FmX2RsX2NuMjBrX3BhcmFtcyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9kZXZsaW5rLmM6MTc1MzpcdFx0XHRcdFx0ICAgICAgQVJSQVlfU0laRShydnVfYWZfZGxfY24yMGtfcGFyYW1zKSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGV2bGluay5jLTE3NTQtXHRcdGlmIChlcnIpIHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGV2bGluay5jLTE3NjUtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGV2bGluay5jOjE3NjY6XHRlcnIgPSBkZXZsaW5rX3BhcmFtc19yZWdpc3RlcihkbCwgcnZ1X2FmX2RsX3BhcmFtX2V4YWN0X21hdGNoLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2RldmxpbmsuYzoxNzY3Olx0XHRcdFx0ICAgICAgQVJSQVlfU0laRShydnVfYWZfZGxfcGFyYW1fZXhhY3RfbWF0Y2gpKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9kZXZsaW5rLmMtMTc2OC1cdGlmIChlcnIpIHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGV2bGluay5jLTE3ODAtXHRpZiAoaXNfY24yMGsocnZ1LVx1MDAzZXBkZXYpKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2RldmxpbmsuYzoxNzgxOlx0XHRkZXZsaW5rX3BhcmFtc191bnJlZ2lzdGVyKGRsLCBydnVfYWZfZGxfY24yMGtfcGFyYW1zLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2RldmxpbmsuYzoxNzgyOlx0XHRcdFx0XHQgIEFSUkFZX1NJWkUocnZ1X2FmX2RsX2NuMjBrX3BhcmFtcykpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2RldmxpbmsuYy0xNzgzLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2RldmxpbmsuYy0xNzg0LWVycl9kbF9jbjIwa19wYXJhbXM6XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGV2bGluay5jOjE3ODU6XHRkZXZsaW5rX3BhcmFtc191bnJlZ2lzdGVyKGRsLCBydnVfYWZfZGxfcGFyYW1zLCBBUlJBWV9TSVpFKHJ2dV9hZl9kbF9wYXJhbXMpKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9kZXZsaW5rLmMtMTc4Ni1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGV2bGluay5jPTE3OTM9dm9pZCBydnVfdW5yZWdpc3Rlcl9kbChzdHJ1Y3QgcnZ1ICpydnUpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2RldmxpbmsuYy0xNzk5LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2RldmxpbmsuYzoxODAwOlx0ZGV2bGlua19wYXJhbXNfdW5yZWdpc3RlcihkbCwgcnZ1X2FmX2RsX3BhcmFtcywgQVJSQVlfU0laRShydnVfYWZfZGxfcGFyYW1zKSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGV2bGluay5jLTE4MDEtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGV2bGluay5jLTE4MDItXHRpZiAoaXNfY24yMGsocnZ1LVx1MDAzZXBkZXYpKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2RldmxpbmsuYzoxODAzOlx0XHRkZXZsaW5rX3BhcmFtc191bnJlZ2lzdGVyKGRsLCBydnVfYWZfZGxfY24yMGtfcGFyYW1zLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2RldmxpbmsuYzoxODA0Olx0XHRcdFx0XHQgIEFSUkFZX1NJWkUocnZ1X2FmX2RsX2NuMjBrX3BhcmFtcykpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2RldmxpbmsuYy0xODA1LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9kZXZsaW5rLmMtMTgwNy1cdGlmIChydnVfbnBjX2V4YWN0X2hhc19tYXRjaF90YWJsZShydnUpKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2RldmxpbmsuYzoxODA4Olx0XHRkZXZsaW5rX3BhcmFtc191bnJlZ2lzdGVyKGRsLCBydnVfYWZfZGxfcGFyYW1fZXhhY3RfbWF0Y2gsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGV2bGluay5jOjE4MDk6XHRcdFx0XHRcdCAgQVJSQVlfU0laRShydnVfYWZfZGxfcGFyYW1fZXhhY3RfbWF0Y2gpKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9kZXZsaW5rLmMtMTgxMC1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfc3RydWN0Lmg9NDM9ZW51bSBydnVfYmxvY2tfdHlwZV9lIHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfc3RydWN0LmgtNTktLyogUlZVIEFkbWluIGZ1bmN0aW9uIEludGVycnVwdCBWZWN0b3IgRW51bWVyYXRpb24gKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9zdHJ1Y3QuaDo2MDplbnVtIHJ2dV9hZl9pbnRfdmVjX2Uge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X3N0cnVjdC5oLTYxLVx0UlZVX0FGX0lOVF9WRUNfUE9JU09OID0gMHgwLFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzEzIDE0OjMxPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy44LWZsYXNoPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDE0NTY0CgkJCQkJCQlvdXRwdXQ6IDM2CgkJCQkJCQl0aG91Z2h0czogMjQKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgbXkgc3VtbWFyeSwgYXMgdGhvdWdoIEkmIzM5O20gdGhpbmtpbmcgdGhyb3VnaCB0aGlzIHByb2Nlc3M6CgoqKkRpdmluZyBpbnRvIHRoZSBNYXJ2ZWxsIE9jdGVvbiBUWDIgRXRoZXJuZXQgRHJpdmVyIENvbmZpZ3VyYXRpb24qKgoKT2theSwgdGltZSB0byBnZXQgYSBoYW5kbGUgb24gdGhlIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBmb3IgdGhpcyBPY3Rlb24gVFgyIGV0aGVybmV0IGRyaXZlci4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgd2hhdCBrbm9icyBhcmUgYXZhaWxhYmxlLCB3aGF0IGZlYXR1cmVzIGNhbiBiZSBlbmFibGVkIG9yIGRpc2FibGVkLCBhbmQgaG93IGV2ZXJ5dGhpbmcgaXMgc3RydWN0dXJlZC4gVGhlIGZpcnN0IHBsYWNlIHRvIGxvb2ssIG9mIGNvdXJzZSwgaXMgdGhlIEtjb25maWcgZmlsZS4gTGV0JiMzOTtzIHN0YXJ0IGJ5IG5hdmlnYXRpbmcgdG8gYGRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL0tjb25maWdgLiBIb3BlZnVsbHksIHRoaXMgd2lsbCBnaXZlIG1lIGEgY2xlYXIgcGljdHVyZSBvZiB0aGUgYnVpbGQtdGltZSBjb25maWd1cmF0aW9uIHBhcmFtZXRlcnMgSSBjYW4gdHdlYWsuIEkmIzM5O20gZXhwZWN0aW5nIHRvIGZpbmQgb3B0aW9ucyBmb3IgdGhpbmdzIGxpa2UgZmxvdyBjb250cm9sLCBqdW1ibyBmcmFtZXMsIGNoZWNrc3VtIG9mZmxvYWQsIG1heWJlIGV2ZW4gc3BlY2lmaWMgaGFyZHdhcmUgcmV2aXNpb25zIG9yIFBIWSB0eXBlcy4gVGhpcyBpcyB0aGUgYmVkcm9jayBvZiB0aGUgY29uZmlndXJhdGlvbiwgc28gdGhpcyBpcyB3aGVyZSBJIG5lZWQgdG8gc3RhcnQuIEZyb20gaGVyZSwgSSBjYW4gZ2V0IGEgZmVlbCBmb3IgdGhlIHVuZGVybHlpbmcgYXJjaGl0ZWN0dXJlIGFuZCBob3cgdG8gcHJvcGVybHkgY29uZmlndXJlIHRoaXMgZHJpdmVyIGZvciBpdHMgdmFyaW91cyB1c2UgY2FzZXMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OC8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMTMgMTQ6MzE8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIE9DVEVPTlRYMiYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL0tjb25maWctNS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL0tjb25maWc6Njpjb25maWcgT0NURU9OVFgyX01CT1hcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL0tjb25maWctNy1cdHRyaXN0YXRlXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9LY29uZmlnLTgtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9LY29uZmlnOjk6Y29uZmlnIE9DVEVPTlRYMl9BRlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvS2NvbmZpZy0xMC1cdHRyaXN0YXRlIFwmIzM0O01hcnZlbGwgT2N0ZW9uVFgyIFJWVSBBZG1pbiBGdW5jdGlvbiBkcml2ZXJcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9LY29uZmlnPTIyPWNvbmZpZyBORENfRElTX0RZTkFNSUNfQ0FDSElOR1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL0tjb25maWctMzAtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9LY29uZmlnOjMxOmNvbmZpZyBPQ1RFT05UWDJfUEZcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL0tjb25maWctMzItXHR0cmlzdGF0ZSBcJiMzNDtNYXJ2ZWxsIE9jdGVvblRYMiBOSUMgUGh5c2ljYWwgRnVuY3Rpb24gZHJpdmVyXCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvS2NvbmZpZy00NC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL0tjb25maWc6NDU6Y29uZmlnIE9DVEVPTlRYMl9WRlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvS2NvbmZpZy00Ni1cdHRyaXN0YXRlIFwmIzM0O01hcnZlbGwgT2N0ZW9uVFgyIE5JQyBWaXJ0dWFsIEZ1bmN0aW9uIGRyaXZlclwmIzM0O1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjkvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzEzIDE0OjMxPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy44LWZsYXNoPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDE1MjQ3CgkJCQkJCQlvdXRwdXQ6IDQ0CgkJCQkJCQl0aG91Z2h0czogMjQKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgbXkgdGFrZSBvbiB0aGUgYGRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL0tjb25maWdgIGZpbGU6CgoqKkRpdmluZyBpbnRvIHRoZSBPY3Rlb24gVFgyIEtjb25maWcqKgoKT2theSwgc28gSSYjMzk7bSBhYm91dCB0byBkaWcgaW50byB0aGUgY29uZmlndXJhdGlvbiBmaWxlIGZvciB0aGUgT2N0ZW9uIFRYMiBFdGhlcm5ldCBkcml2ZXIuIE15IGV4cGVjdGF0aW9uIGlzIHRoaXMgaXMgd2hlcmUgdGhlIG1lYXQgb2YgdGhlIGRyaXZlciYjMzk7cyBidWlsZC10aW1lIG9wdGlvbnMgYW5kIGRlcGVuZGVuY2llcyB3aWxsIHJlc2lkZS4gSSYjMzk7bSBsb29raW5nIGZvciB0aGUgdXN1YWwgc3VzcGVjdHM6IGZlYXR1cmUgZmxhZ3MsIG1vZHVsZSBzZWxlY3Rpb24sIGFuZCBhbnkgcGxhdGZvcm0tc3BlY2lmaWMgY29uZmlndXJhdGlvbnMuIEkmIzM5O2xsIG5lZWQgdG8gdW5kZXJzdGFuZCB3aGF0IGFzcGVjdHMgYXJlIGNvbmZpZ3VyYWJsZSwgd2hpY2ggZmVhdHVyZXMgYXJlIGVuYWJsZWQgb3IgZGlzYWJsZWQgYnkgZGVmYXVsdCwgYW5kIGhvdyB0aGUgZHJpdmVyIGludGVyYWN0cyB3aXRoIHRoZSByZXN0IG9mIHRoZSBrZXJuZWwgYnVpbGQgc3lzdGVtLiBUaGlzIGlzIGNydWNpYWwgZm9yIGN1c3RvbWl6aW5nIHRoZSBkcml2ZXIgdG8gc3BlY2lmaWMgaGFyZHdhcmUgY29uZmlndXJhdGlvbnMgb3IgcGVyZm9ybWFuY2UgcmVxdWlyZW1lbnRzLCBhbmQgZm9yIHJlc29sdmluZyBhbnkgYnVpbGQgY29uZmxpY3RzIGlmIHRoZSBwcm9qZWN0IGlzIGJlaW5nIGNvbXBpbGVkIGZvciBhIGRpZmZlcmVudCB0YXJnZXQuIEkmIzM5O2xsIHN0YXJ0IHdpdGggdGhlIGZpbGUmIzM5O3Mgc3RydWN0dXJlLiBJJiMzOTtsbCBwYXkgY2xvc2UgYXR0ZW50aW9uIHRvIHRoZSBkZXBlbmRlbmNpZXMgYW5kIGFueSBgc2VsZWN0YCBzdGF0ZW1lbnRzLCBzaW5jZSB0aG9zZSB3aWxsIGRpY3RhdGUgd2hpY2ggb3RoZXIgcGFydHMgb2YgdGhlIGRyaXZlciBvciBrZXJuZWwgYXJlIHB1bGxlZCBpbiBiYXNlZCBvbiBteSBjaG9pY2VzLiBJdCB3aWxsIGJlIGhlbHBmdWwgdG8gc2VlIGFueSBjb21tZW50cywgc2luY2UgdGhlc2UgY29udGFpbiB2aXRhbCBpbmZvcm1hdGlvbi4gSSYjMzk7bSBjdXJpb3VzIHdoYXQga2luZCBvZiBncmFudWxhcml0eSB0aGV5IG9mZmVyLiBJJiMzOTttIGFsc28gbG9va2luZyBmb3IgYW55IGNsdWVzIHJlZ2FyZGluZyB3aGF0JiMzOTtzIGNvbnNpZGVyZWQgZXhwZXJpbWVudGFsIG9yIG5vdCB5ZXQgZnVsbHkgYmFrZWQuIEZpbmFsbHksIEkmIzM5O2xsIG5lZWQgdG8gY3Jvc3MtcmVmZXJlbmNlIHRoaXMgd2l0aCB0aGUgZHJpdmVyIGNvZGUgaXRzZWxmIHRvIGZ1bGx5IGdyYXNwIHRoZSByYW1pZmljYXRpb25zIG9mIGVhY2ggY29uZmlndXJhdGlvbiBvcHRpb24uIExldCYjMzk7cyBzZWUgd2hhdCB3ZSYjMzk7dmUgZ290LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8xMyAxNDozMTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnJlYWQtZmlsZTwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RmlsZSYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL0tjb25maWcmIzM0OywKICAmIzM0O0ZpcnN0TGluZSYjMzQ7OiAxLAogICYjMzQ7TGluZUNvdW50JiMzNDs6IDYwCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtDb250ZW50cyYjMzQ7OiAmIzM0OyAgIDE6XHQjIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHlcbiAgIDI6XHQjXG4gICAzOlx0IyBNYXJ2ZWxsIFJWVSBOZXR3b3JrIGRyaXZlcnMgY29uZmlndXJhdGlvblxuICAgNDpcdCNcbiAgIDU6XHRcbiAgIDY6XHRjb25maWcgT0NURU9OVFgyX01CT1hcbiAgIDc6XHRcdHRyaXN0YXRlXG4gICA4Olx0XG4gICA5Olx0Y29uZmlnIE9DVEVPTlRYMl9BRlxuICAxMDpcdFx0dHJpc3RhdGUgXCYjMzQ7TWFydmVsbCBPY3Rlb25UWDIgUlZVIEFkbWluIEZ1bmN0aW9uIGRyaXZlclwmIzM0O1xuICAxMTpcdFx0c2VsZWN0IE9DVEVPTlRYMl9NQk9YXG4gIDEyOlx0XHRzZWxlY3QgTkVUX0RFVkxJTktcbiAgMTM6XHRcdGRlcGVuZHMgb24gKDY0QklUIFx1MDAyNlx1MDAyNiBDT01QSUxFX1RFU1QpIHx8IEFSTTY0XG4gIDE0Olx0XHRkZXBlbmRzIG9uIFBDSVxuICAxNTpcdFx0ZGVwZW5kcyBvbiBQVFBfMTU4OF9DTE9DS19PUFRJT05BTFxuICAxNjpcdFx0aGVscFxuICAxNzpcdFx0ICBUaGlzIGRyaXZlciBzdXBwb3J0cyBNYXJ2ZWxsJiMzOTtzIE9jdGVvblRYMiBSZXNvdXJjZSBWaXJ0dWFsaXphdGlvblxuICAxODpcdFx0ICBVbml0JiMzOTtzIGFkbWluIGZ1bmN0aW9uIG1hbmFnZXIgd2hpY2ggbWFuYWdlcyBhbGwgUlZVIEhXIHJlc291cmNlc1xuICAxOTpcdFx0ICBhbmQgcHJvdmlkZXMgYSBtZWRpdW0gdG8gb3RoZXIgUEYvVkZzIHRvIGNvbmZpZ3VyZSBIVy4gU2hvdWxkIGJlXG4gIDIwOlx0XHQgIGVuYWJsZWQgZm9yIG90aGVyIFJWVSBkZXZpY2UgZHJpdmVycyB0byB3b3JrLlxuICAyMTpcdFxuICAyMjpcdGNvbmZpZyBORENfRElTX0RZTkFNSUNfQ0FDSElOR1xuICAyMzpcdFx0Ym9vbCBcJiMzNDtEaXNhYmxlIGNhY2hpbmcgb2YgZHluYW1pYyBlbnRyaWVzIGluIE5EQ1wmIzM0O1xuICAyNDpcdFx0ZGVwZW5kcyBvbiBPQ1RFT05UWDJfQUZcbiAgMjU6XHRcdGRlZmF1bHQgblxuICAyNjpcdFx0aGVscFxuICAyNzpcdFx0ICBUaGlzIGNvbmZpZyBvcHRpb24gZGlzYWJsZXMgY2FjaGluZyBvZiBkeW5hbWljIGVudHJpZXMgc3VjaCBhcyBOSVggU1FFc1xuICAyODpcdFx0ICAsIE5QQSBzdGFjayBwYWdlcyBldGMgaW4gTkRDLiBBbHNvIGxvY2tzIGRvd24gTklYIFNRL0NRL1JRL1JTUyBhbmRcbiAgMjk6XHRcdCAgTlBBIEF1cmEvUG9vbCBjb250ZXh0cy5cbiAgMzA6XHRcbiAgMzE6XHRjb25maWcgT0NURU9OVFgyX1BGXG4gIDMyOlx0XHR0cmlzdGF0ZSBcJiMzNDtNYXJ2ZWxsIE9jdGVvblRYMiBOSUMgUGh5c2ljYWwgRnVuY3Rpb24gZHJpdmVyXCYjMzQ7XG4gIDMzOlx0XHRzZWxlY3QgT0NURU9OVFgyX01CT1hcbiAgMzQ6XHRcdHNlbGVjdCBORVRfREVWTElOS1xuICAzNTpcdFx0c2VsZWN0IFBBR0VfUE9PTFxuICAzNjpcdFx0c2VsZWN0IENSWVBUT19MSUJfQUVTIGlmIE1BQ1NFQ1xuICAzNzpcdFx0ZGVwZW5kcyBvbiAoNjRCSVQgXHUwMDI2XHUwMDI2IENPTVBJTEVfVEVTVCkgfHwgQVJNNjRcbiAgMzg6XHRcdHNlbGVjdCBESU1MSUJcbiAgMzk6XHRcdGRlcGVuZHMgb24gUENJXG4gIDQwOlx0XHRkZXBlbmRzIG9uIFBUUF8xNTg4X0NMT0NLX09QVElPTkFMXG4gIDQxOlx0XHRkZXBlbmRzIG9uIE1BQ1NFQyB8fCAhTUFDU0VDXG4gIDQyOlx0XHRoZWxwXG4gIDQzOlx0XHQgIFRoaXMgZHJpdmVyIHN1cHBvcnRzIE1hcnZlbGwmIzM5O3MgT2N0ZW9uVFgyIE5JQyBwaHlzaWNhbCBmdW5jdGlvbi5cbiAgNDQ6XHRcbiAgNDU6XHRjb25maWcgT0NURU9OVFgyX1ZGXG4gIDQ2Olx0XHR0cmlzdGF0ZSBcJiMzNDtNYXJ2ZWxsIE9jdGVvblRYMiBOSUMgVmlydHVhbCBGdW5jdGlvbiBkcml2ZXJcJiMzNDtcbiAgNDc6XHRcdGRlcGVuZHMgb24gT0NURU9OVFgyX1BGXG4gIDQ4Olx0XHRoZWxwXG4gIDQ5Olx0XHQgIFRoaXMgZHJpdmVyIHN1cHBvcnRzIE1hcnZlbGwmIzM5O3MgT2N0ZW9uVFgyIE5JQyB2aXJ0dWFsIGZ1bmN0aW9uLlxuICA1MDpcdFxuICA1MTpcdGNvbmZpZyBSVlVfRVNXSVRDSFxuICA1MjpcdFx0dHJpc3RhdGUgXCYjMzQ7TWFydmVsbCBSVlUgRS1Td2l0Y2ggc3VwcG9ydFwmIzM0O1xuICA1MzpcdFx0ZGVwZW5kcyBvbiBPQ1RFT05UWDJfUEZcbiAgNTQ6XHRcdGRlZmF1bHQgbVxuICA1NTpcdFx0aGVscFxuICA1NjpcdFx0ICBUaGlzIGRyaXZlciBzdXBwb3J0cyBNYXJ2ZWxsJiMzOTtzIFJWVSBFLVN3aXRjaCB0aGF0XG4gIDU3Olx0XHQgIHByb3ZpZGVzIGludGVybmFsIFNSSU9WIHBhY2tldCBzdGVlcmluZyBhbmQgc3dpdGNoaW5nLlxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjExLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8xMyAxNDozMTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuOC1mbGFzaDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxNjQzMwoJCQkJCQkJb3V0cHV0OiA1MwoJCQkJCQkJdGhvdWdodHM6IDEzMgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIE1hcnZlbGwgT2N0ZW9uVFgyIERyaXZlcioqCgpPa2F5LCBsZXQmIzM5O3MgYnJlYWsgdGhpcyBkb3duLiBGaXJzdCwgSSBzZWUgdGhlIGRlcGVuZGVuY3k6IGAoNjRCSVQgJmFtcDsmYW1wOyBDT01QSUxFX1RFU1QpIHx8IEFSTTY0YC4gVGhhdCB0ZWxscyBtZSB0aGlzIG1vZHVsZSBpcyBsaWtlbHkgdGFyZ2V0ZWQgdG93YXJkcyA2NC1iaXQgYXJjaGl0ZWN0dXJlcywgYW5kIHBvc3NpYmx5IGluY2x1ZGVzIHNvbWUgdGVzdGluZyBvciBidWlsZC10aW1lIGNoZWNrcywgb3IgQVJNNjQuIEludGVyZXN0aW5nLiBUaGVuIEkgc3BvdCB0aGUgYFBDSWAgZGVwZW5kZW5jeS4gVGhhdCBpbW1lZGlhdGVseSBuYXJyb3dzIGRvd24gdGhlIGhhcmR3YXJlIGludGVyYWN0aW9uOyB0aGlzIHRoaW5nIGlzIGRlYWxpbmcgd2l0aCBQZXJpcGhlcmFsIENvbXBvbmVudCBJbnRlcmNvbm5lY3QsIHdoaWNoIGlzIG5vIHN1cnByaXNlIGdpdmVuIGl0cyBsaWtlbHkgcm9sZSBpbiBuZXR3b3JrIGFjY2VsZXJhdGlvbi4KClRoZW4gSSByZWFkIHRoZSBkcml2ZXIgZGVzY3JpcHRpb246ICYjMzQ7VGhpcyBkcml2ZXIgc3VwcG9ydHMgTWFydmVsbCYjMzk7cyBPY3Rlb25UWDIgUmVzb3VyY2UgVmlydHVhbGl6YXRpb24gVW5pdCYjMzk7cyBhZG1pbiBmdW5jdGlvbiBtYW5hZ2VyIHdoaWNoIG1hbmFnZXMgYWxsIFJWVSBIVyByZXNvdXJjZXMgYW5kIHByb3ZpZGVzIGEgbWVkaXVtIHRvIG90aGVyIFBGL1ZGcyB0byBjb25maWd1cmUgSFcuJiMzNDsgUmlnaHQsIGJpbmdvISBUaGF0JiMzOTtzIHRoZSBrZXkuIFRoaXMgaXMgYSBkcml2ZXIgc3BlY2lmaWNhbGx5IGZvciB0aGUgTWFydmVsbCBPY3Rlb25UWDIsIG9yIHBlcmhhcHMgYSBDTjlLL0NOMTBLIGNoaXAuIEl0JiMzOTtzIGhhbmRsaW5nIHRoZSBSZXNvdXJjZSBWaXJ0dWFsaXphdGlvbiBVbml0IChSVlUpIOKAkyBwcm9iYWJseSBtYW5hZ2luZyB0aGUgaGFyZHdhcmUgcmVzb3VyY2VzIGFuZCBwcm92aWRpbmcgY29uZmlndXJhdGlvbiBpbnRlcmZhY2VzIGZvciBvdGhlciBmdW5jdGlvbnMuCgpUaW1lIHRvIGRpdmUgaW4uIEkmIzM5O20gZ29pbmcgdG8gd2FudCB0byBmb2N1cyBvbiBgbWNzX3J2dV9pZi5jYCBhbmQgdGFrZSBhIGxvb2sgYXQgYHJ2dV9tY3NfcHRwX2NmZ2AuIFRoZXNlIGFyZSBwcm9iYWJseSB0aGUgY29yZSBmaWxlcyB0aGF0IGRlZmluZSB0aGUgaW50ZXJmYWNlIGFuZCBQVFAgKFByZWNpc2lvbiBUaW1lIFByb3RvY29sKSBjb25maWd1cmF0aW9uIGZvciB0aGUgUlZVLiBUaGF0JiMzOTtzIHdoZXJlIHRoZSByZWFsIG1lYXQgb2YgdGhlIGxvZ2ljIHdpbGwgYmUuIExldCYjMzk7cyBzZWUgd2hhdCB0aGV5JiMzOTtyZSBkb2luZy4uLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEyLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8xMyAxNDozMTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnJlYWQtZmlsZTwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RmlsZSYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL21jc19ydnVfaWYuYyYjMzQ7LAogICYjMzQ7Rmlyc3RMaW5lJiMzNDs6IDQwLAogICYjMzQ7TGluZUNvdW50JiMzNDs6IDQwCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtDb250ZW50cyYjMzQ7OiAmIzM0OyAgNDA6XHRcdHU4IHBvcnQ7XG4gIDQxOlx0XG4gIDQyOlx0XHRpZiAoIXJ2dS1cdTAwM2VtY3NfYmxrX2NudClcbiAgNDM6XHRcdFx0cmV0dXJuO1xuICA0NDpcdFxuICA0NTpcdFx0LyogV2hlbiBwdHAgaXMgZW5hYmxlZCwgUlBNIGFwcGVuZHMgOEIgaGVhZGVyIGZvciBhbGxcbiAgNDY6XHRcdCAqIFJYIHBhY2tldHMuIE1DUyBQRVggbmVlZCB0byBjb25maWd1cmUgdG8gc2tpcCA4QlxuICA0NzpcdFx0ICogZHVyaW5nIHBhY2tldCBwYXJzaW5nLlxuICA0ODpcdFx0ICovXG4gIDQ5Olx0XG4gIDUwOlx0XHQvKiBDTkYxMEstQiAqL1xuICA1MTpcdFx0aWYgKHJ2dS1cdTAwM2VtY3NfYmxrX2NudCBcdTAwM2UgMSkge1xuICA1MjpcdFx0XHRtY3MgPSBtY3NfZ2V0X3BkYXRhKHJwbV9pZCk7XG4gIDUzOlx0XHRcdGlmICghbWNzKVxuICA1NDpcdFx0XHRcdHJldHVybjtcbiAgNTU6XHRcdFx0Y2ZnID0gbWNzX3JlZ19yZWFkKG1jcywgTUNTWF9QRVhfUlhfU0xBVkVfUEVYX0NPTkZJR1VSQVRJT04pO1xuICA1NjpcdFx0XHRpZiAoZW5hKVxuICA1NzpcdFx0XHRcdGNmZyB8PSBCSVRfVUxMKGxtYWNfaWQpO1xuICA1ODpcdFx0XHRlbHNlXG4gIDU5Olx0XHRcdFx0Y2ZnIFx1MDAyNj0gfkJJVF9VTEwobG1hY19pZCk7XG4gIDYwOlx0XHRcdG1jc19yZWdfd3JpdGUobWNzLCBNQ1NYX1BFWF9SWF9TTEFWRV9QRVhfQ09ORklHVVJBVElPTiwgY2ZnKTtcbiAgNjE6XHRcdFx0cmV0dXJuO1xuICA2MjpcdFx0fVxuICA2MzpcdFx0LyogQ04xMEtCICovXG4gIDY0Olx0XHRtY3MgPSBtY3NfZ2V0X3BkYXRhKDApO1xuICA2NTpcdFx0cG9ydCA9IChycG1faWQgKiBydnUtXHUwMDNlaHctXHUwMDNlbG1hY19wZXJfY2d4KSAmIzQzOyBsbWFjX2lkO1xuICA2NjpcdFx0Y2ZnID0gbWNzX3JlZ19yZWFkKG1jcywgTUNTWF9QRVhfUlhfU0xBVkVfUE9SVF9DRkdYKHBvcnQpKTtcbiAgNjc6XHRcdGlmIChlbmEpXG4gIDY4Olx0XHRcdGNmZyB8PSBCSVRfVUxMKDApO1xuICA2OTpcdFx0ZWxzZVxuICA3MDpcdFx0XHRjZmcgXHUwMDI2PSB+QklUX1VMTCgwKTtcbiAgNzE6XHRcdG1jc19yZWdfd3JpdGUobWNzLCBNQ1NYX1BFWF9SWF9TTEFWRV9QT1JUX0NGR1gocG9ydCksIGNmZyk7XG4gIDcyOlx0fVxuICA3MzpcdFxuICA3NDpcdGludCBydnVfbWJveF9oYW5kbGVyX21jc19zZXRfbG1hY19tb2RlKHN0cnVjdCBydnUgKnJ2dSxcbiAgNzU6XHRcdFx0XHRcdCAgICAgICBzdHJ1Y3QgbWNzX3NldF9sbWFjX21vZGUgKnJlcSxcbiAgNzY6XHRcdFx0XHRcdCAgICAgICBzdHJ1Y3QgbXNnX3JzcCAqcnNwKVxuICA3NzpcdHtcbiAgNzg6XHRcdHN0cnVjdCBtY3MgKm1jcztcbiAgNzk6XHRcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMy8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMTMgMTQ6MzE8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjgtZmxhc2g8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTc1NTMKCQkJCQkJCW91dHB1dDogMzkKCQkJCQkJCXRob3VnaHRzOiAxNwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSBpbnRlcnByZXRhdGlvbiBvZiB0aGF0IHRob3VnaHQgcHJvY2VzcywgYXNzdW1pbmcgSSYjMzk7bSBkZWVwIGluIHRoZSB3ZWVkcyBvZiBkZWJ1Z2dpbmcgb3IgdW5kZXJzdGFuZGluZyBhIGNvbXBsZXggc3lzdGVtOgoKKipIdW50aW5nIERvd24gdGhlIENhbGxlcjogYHJ2dV9tY3NfcHRwX2NmZ2AqKgoKQWxyaWdodCwgdGltZSB0byBnZXQgdG8gdGhlIGJvdHRvbSBvZiB0aGlzLiBNeSBmb2N1cyBpcyBsYXNlci10YXJnZXRlZCBvbiBgcnZ1X21jc19wdHBfY2ZnYC4gSSBuZWVkIHRvIGZpZ3VyZSBvdXQgKndoYXQqIGlzIGNhbGxpbmcgdGhpcyBmdW5jdGlvbi4gVGhhdCYjMzk7cyB0aGUga2V5IHRvIHVuZGVyc3RhbmRpbmcgaXRzIGJlaGF2aW9yLCBpdHMgaW1wYWN0LCBhbmQgcG90ZW50aWFsbHksIHRoZSBzb3VyY2Ugb2YgYW55IGlzc3VlcyBJJiMzOTttIHNlZWluZy4gVGhpcyBpc24mIzM5O3QgYSBjYXN1YWwgZXhwbG9yYXRpb247IEkmIzM5O20gYWN0aXZlbHkgcHVyc3VpbmcgdGhlIGNhbGwgZ3JhcGguIExldCYjMzk7cyBkaWcgaW4gYW5kIHRyYWNrIGRvd24gdGhlIHVwc3RyZWFtIGRlcGVuZGVuY3kuIEkgaGF2ZSB0byB0cmFjZSBiYWNrIHRoZSBleGVjdXRpb24gcGF0aCBhbmQgdW5jb3ZlciB0aGUgaW5pdGlhdGluZyBwcm9jZXNzIG9yIGNvbXBvbmVudCByZXNwb25zaWJsZSBmb3IgdHJpZ2dlcmluZyB0aGlzIHBhcnRpY3VsYXIgZnVuY3Rpb24uIEl04oCZcyBsaWtlIGEgZGV0ZWN0aXZlIHNlYXJjaGluZyBmb3IgY2x1ZXMg4oCTIHRoZSBjYWxsaW5nIGNvZGUgaXMgdGhlIHByaW1lIHN1c3BlY3QsIGFuZCBJIG5lZWQgdG8gZ2F0aGVyIGFsbCB0aGUgZXZpZGVuY2UuIFNvLCBJJiMzOTttIG1lbnRhbGx5LCBhbmQgcGVyaGFwcyB3aXRoIHNvbWUgdG9vbHMsIGRpdmluZyBpbiB0byBmaW5kIG91dCB3aGVyZSB0aGlzIGZ1bmN0aW9uIGlzIGJlaW5nIGludm9rZWQgZnJvbS4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgaXRzIGNvbnRleHQuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzEzIDE0OjMxPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3J2dV9tY3NfcHRwX2NmZyYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL21jc19ydnVfaWYuYz0zMz1NQk9YX1VQX01DU19NRVNTQUdFU1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL21jc19ydnVfaWYuYy0zNS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL21jc19ydnVfaWYuYzozNjp2b2lkIHJ2dV9tY3NfcHRwX2NmZyhzdHJ1Y3QgcnZ1ICpydnUsIHU4IHJwbV9pZCwgdTggbG1hY19pZCwgYm9vbCBlbmEpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9tY3NfcnZ1X2lmLmMtMzcte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5oPTExOTE9aW50IHJ2dV9tY3NfZmxyX2hhbmRsZXIoc3RydWN0IHJ2dSAqcnZ1LCB1MTYgcGNpZnVuYyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuaDoxMTkyOnZvaWQgcnZ1X21jc19wdHBfY2ZnKHN0cnVjdCBydnUgKnJ2dSwgdTggcnBtX2lkLCB1OCBsbWFjX2lkLCBib29sIGVuYSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuaC0xMTkzLXZvaWQgcnZ1X21jc19leGl0KHN0cnVjdCBydnUgKnJ2dSk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2NneC5jPTgyMz1zdGF0aWMgaW50IHJ2dV9jZ3hfcHRwX3J4X2NmZyhzdHJ1Y3QgcnZ1ICpydnUsIHUxNiBwY2lmdW5jLCBib29sIGVuYWJsZSlcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfY2d4LmMtODU0LVx0LyogSW5mb3JtIE1DUyBhYm91dCA4QiBSWCBoZWFkZXIgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9jZ3guYzo4NTU6XHRydnVfbWNzX3B0cF9jZmcocnZ1LCBjZ3hfaWQsIGxtYWNfaWQsIGVuYWJsZSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfY2d4LmMtODU2LVx0cmV0dXJuIDA7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzEzIDE0OjMxPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy44LWZsYXNoPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDE4Mzg0CgkJCQkJCQlvdXRwdXQ6IDQ0CgkJCQkJCQl0aG91Z2h0czogMTYKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgYSBzdW1tYXJ5IG9mIG15IHRob3VnaHQgcHJvY2VzczoKCioqSW52ZXN0aWdhdGluZyBQQ0kgRGV2aWNlIEJpbmRpbmdzKioKCk9rYXksIGxldCYjMzk7cyBkaXZlIGluLiBJIG5lZWQgdG8gZmlndXJlIG91dCB3aGljaCBQQ0kgZGV2aWNlcyB0aGUgYHJ2dV9hZmAgZHJpdmVyIGlzIGN1cnJlbnRseSBib3VuZCB0by4gVGhpcyBpcyBhIGNyaXRpY2FsIGZpcnN0IHN0ZXAgZm9yIHVuZGVyc3RhbmRpbmcgdGhlIHN5c3RlbSYjMzk7cyBjb25maWd1cmF0aW9uIGFuZCBob3cgdGhpcyBwYXJ0aWN1bGFyIGRyaXZlciBpcyBpbnRlcmFjdGluZyB3aXRoIHRoZSBoYXJkd2FyZS4gSSBuZWVkIHRvIGdldCBhIGNsZWFyIHBpY3R1cmUgb2Ygd2hhdCYjMzk7cyBoYXBwZW5pbmcgdW5kZXIgdGhlIGhvb2QuIFRpbWUgdG8gZ2V0IHRvIHdvcmshCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzEzIDE0OjMxPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3BjaV9kZXZpY2VfaWQmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY2d4LmM9NjM9c3RhdGljIGludCBjZ3hfZndpX2xpbmtfY2hhbmdlKHN0cnVjdCBjZ3ggKmNneCwgaW50IGxtYWNfaWQsIGJvb2wgZW4pO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL2NneC5jLTY1LS8qIFN1cHBvcnRlZCBkZXZpY2VzICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jZ3guYzo2NjpzdGF0aWMgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgY2d4X2lkX3RhYmxlW10gPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jZ3guYy02Ny1cdHsgUENJX0RFVklDRShQQ0lfVkVORE9SX0lEX0NBVklVTSwgUENJX0RFVklEX09DVEVPTlRYMl9DR1gpIH0sXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY2d4LmM9MTkxNj1zdGF0aWMgc3RydWN0IG1hY19vcHNcdGNneF9tYWNfb3BzICAgID0ge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL2NneC5jLTE5NTAtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jZ3guYzoxOTUxOnN0YXRpYyBpbnQgY2d4X3Byb2JlKHN0cnVjdCBwY2lfZGV2ICpwZGV2LCBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCAqaWQpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jZ3guYy0xOTUyLXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9tY3MuYy0xOS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL21jcy5jOjIwOnN0YXRpYyBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCBtY3NfaWRfdGFibGVbXSA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL21jcy5jLTIxLVx0eyBQQ0lfREVWSUNFKFBDSV9WRU5ET1JfSURfQ0FWSVVNLCBQQ0lfREVWSURfQ04xMEtfTUNTKSB9LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL21jcy5jPTE1MDc9c3RhdGljIHN0cnVjdCBtY3Nfb3BzIGNuMTBrYl9tY3Nfb3BzID0ge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL21jcy5jLTE1MTYtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9tY3MuYzoxNTE3OnN0YXRpYyBpbnQgbWNzX3Byb2JlKHN0cnVjdCBwY2lfZGV2ICpwZGV2LCBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCAqaWQpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9tY3MuYy0xNTE4LXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9wdHAuYz03Nz1zdGF0aWMgc3RydWN0IHB0cCAqZmlyc3RfcHRwX2Jsb2NrO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcHRwLmM6Nzg6c3RhdGljIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkIHB0cF9pZF90YWJsZVtdO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcHRwLmMtNzktXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcHRwLmM9NTE3PXN0YXRpYyBpbnQgcHRwX3Byb2JlKHN0cnVjdCBwY2lfZGV2ICpwZGV2LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcHRwLmM6NTE4Olx0XHQgICAgIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICplbnQpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9wdHAuYy01MTkte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3B0cC5jPTU3MT1zdGF0aWMgdm9pZCBwdHBfcmVtb3ZlKHN0cnVjdCBwY2lfZGV2ICpwZGV2KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3B0cC5jLTU4OC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3B0cC5jOjU4OTpzdGF0aWMgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgcHRwX2lkX3RhYmxlW10gPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9wdHAuYy01OTAtXHR7IFBDSV9ERVZJQ0VfU1VCKFBDSV9WRU5ET1JfSURfQ0FWSVVNLCBQQ0lfREVWSURfT0NURU9OVFgyX1BUUCxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYz00MT1zdGF0aWMgaXJxcmV0dXJuX3QgcnZ1X21ib3hfaW50cl9oYW5kbGVyKGludCBpcnEsIHZvaWQgKnJ2dV9pcnEpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jLTQzLS8qIFN1cHBvcnRlZCBkZXZpY2VzICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYzo0NDpzdGF0aWMgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgcnZ1X2lkX3RhYmxlW10gPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYy00NS1cdHsgUENJX0RFVklDRShQQ0lfVkVORE9SX0lEX0NBVklVTSwgUENJX0RFVklEX09DVEVPTlRYMl9SVlVfQUYpIH0sXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmM9MzU1Nj1zdGF0aWMgYXRvbWljX3QgZGV2aWNlX2JvdW5kID0gQVRPTUlDX0lOSVQoMCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYy0zNTU3LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmM6MzU1ODpzdGF0aWMgaW50IHJ2dV9wcm9iZShzdHJ1Y3QgcGNpX2RldiAqcGRldiwgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgKmlkKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmMtMzU1OS17XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzEzIDE0OjMxPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy44LWZsYXNoPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDE5OTUzCgkJCQkJCQlvdXRwdXQ6IDI3CgkJCQkJCQl0aG91Z2h0czogNDE2CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKk15IEFzc2Vzc21lbnQgb2YgdGhlIE1hcnZlbGwgT2N0ZW9uVFgyIFJWVSBBZG1pbiBGdW5jdGlvbiBEcml2ZXIgZm9yIEZ1enppbmcqKgoKT2theSwgbGV0JiMzOTtzIGJyZWFrIHRoaXMgZG93biBzeXN0ZW1hdGljYWxseSwgYXBwbHlpbmcgbXkgZXhwZXJ0aXNlIHRvIHRoZSBjcml0ZXJpYS4gVGhlIHByb21wdCBjbGVhcmx5IGxheXMgb3V0IHRoZSBuZWdhdGl2ZSBjcml0ZXJpYSBmb3IgV29ydGhGdXp6aW5nPWZhbHNlLCBzbyBJIG5lZWQgdG8gc2VlIGlmIHRoaXMgZHJpdmVyIGZhbGxzIGludG8gdGhvc2UgY2F0ZWdvcmllcy4KCkZpcnN0LCBJIG5lZWQgdG8gY29uZmlybTogSXMgdGhlIE1hcnZlbGwgT2N0ZW9uVFgyIFJWVSBBZG1pbiBGdW5jdGlvbiBkcml2ZXIgaGFyZHdhcmUtc3BlY2lmaWMgUENJZSBOSUMvU29DPyBCYXNlZCBvbiBteSB1bmRlcnN0YW5kaW5nLCBhYnNvbHV0ZWx5LiBNYXJ2ZWxsIE9jdGVvblRYMiAoc3BlY2lmaWNhbGx5IHRoZSB2YXJpYW50cyBsaWtlIFBDSV9WRU5ET1JfSURfQ0FWSVVNLCBQQ0lfREVWSURfT0NURU9OVFgyX1JWVV9BRiwgQ04xMEssIGV0Yy4pIGlzIHRleHRib29rIHZlbmRvci1zcGVjaWZpYyBTbWFydE5JQyAvIG5ldHdvcmsgU29DIGhhcmR3YXJlLiBJdCAqcmVxdWlyZXMqIHBoeXNpY2FsIEFTSUMgLyBQQ0llIGNhcmRzLiBRRU1VLCBhcyB3ZSBrbm93LCBkb2VzbiYjMzk7dCBlbXVsYXRlIHRoZSBPY3Rlb25UWDIgUlZVIEFGIGhhcmR3YXJlLiBUaGF0JiMzOTtzIGEgaHVnZSByZWQgZmxhZyDigJMgaXQgc2F0aXNmaWVzIHRoZSAmIzM0O1N0cnVjdHVyYWxseSB1bnJlYWNoYWJsZSBoYXJkd2FyZSYjMzQ7IGNvbmRpdGlvbi4KClNlY29uZCwgSSBuZWVkIHRvIGNvbnNpZGVyIHRoZSBhcmNoaXRlY3R1cmUuIFRoZSB0YXJnZXQgaXMgYW1kNjQsIHdoaWxlIHRoZSBPY3Rlb25UWDIgaXMgYW4gQVJNNjQgU29DLiBXaGlsZSB0aGUgZHJpdmVyICptaWdodCogYmUgY29tcGlsZWQgb24gYW1kNjQgZm9yIENPTVBJTEVfVEVTVCBwdXJwb3NlcyAoYmFzZWQgb24gdGhlIGBkZXBlbmRzIG9uICg2NEJJVCAmYW1wOyZhbXA7IENPTVBJTEVfVEVTVCkgfHwgQVJNNjRgIGNvbmRpdGlvbiksIHRoZSBjcml0aWNhbCBwb2ludCBpcyB0aGUgKnBoeXNpY2FsKiBkZXZpY2U6IFBDSV9WRU5ET1JfSURfQ0FWSVVNIC8gT0NURU9OVFgyLiBUaGF0JiMzOTtzICpwaHlzaWNhbCBzaWxpY29uKiB0aGF0IHNpbXBseSBpc24mIzM5O3QgcHJlc2VudCBvciBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VIG9yIEdvb2dsZSBDb21wdXRlIEVuZ2luZSBlbnZpcm9ubWVudHMuIFRoaXMsIGluIGVzc2VuY2UsIGFsc28gc2F0aXNmaWVzIHRoZSAmIzM0O1VucmVhY2hhYmxlIGV4ZWN1dGlvbiBwYXRocyYjMzQ7IGNyaXRlcmlvbiwgYmVjYXVzZSB0aGUgY29kZSB3aWxsIG9ubHkgYmUgZXhlY3V0ZWQgaWYgdGhlIHBoeXNpY2FsIGhhcmR3YXJlIGlzIHByZXNlbnQuCgpOb3csIGp1c3QgdG8gYmUgdGhvcm91Z2ggYW5kIGJlY2F1c2UgSSBhbHdheXMgZG91YmxlLWNoZWNrLCBJJiMzOTtsbCBxdWlja2x5IGxvb2sgZm9yIGFueSBtb2NrIG9yIHZpcnR1YWwgZGV2aWNlIGltcGxlbWVudGF0aW9ucyBvciB0ZXN0IGhhcm5lc3NlcyB0aGF0IG1pZ2h0IGV4aXN0IGZvciB0aGUgT2N0ZW9uVFgyLiBJJiMzOTtsbCBzZWFyY2ggdG8gc2VlIGlmIGFueSB2aXJ0dWFsIHVzYWdlcyBleGlzdC4gVGhpcyBpcyBtb3JlIG9mIGEgc2FuaXR5IGNoZWNrOyBteSBpbml0aWFsIGFzc2Vzc21lbnQgcG9pbnRzIHRvIGEgc3Ryb25nICYjMzQ7V29ydGhGdXp6aW5nPWZhbHNlJiMzNDsgc2NlbmFyaW8uCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzEzIDE0OjMxPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O09DVEVPTlRYMiYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvY3J5cHRvL21hcnZlbGwvS2NvbmZpZz0yMz1jb25maWcgQ1JZUFRPX0RFVl9PQ1RFT05UWF9DUFRcbi0tXG5kcml2ZXJzL2NyeXB0by9tYXJ2ZWxsL0tjb25maWctMzktXG5kcml2ZXJzL2NyeXB0by9tYXJ2ZWxsL0tjb25maWc6NDA6Y29uZmlnIENSWVBUT19ERVZfT0NURU9OVFgyX0NQVFxuZHJpdmVycy9jcnlwdG8vbWFydmVsbC9LY29uZmlnLTQxLVx0dHJpc3RhdGUgXCYjMzQ7TWFydmVsbCBPY3Rlb25UWDIgQ1BUIGRyaXZlclwmIzM0O1xuLS1cbmRyaXZlcnMvY3J5cHRvL21hcnZlbGwvS2NvbmZpZy00NC1cdGRlcGVuZHMgb24gTkVUX1ZFTkRPUl9NQVJWRUxMXG5kcml2ZXJzL2NyeXB0by9tYXJ2ZWxsL0tjb25maWc6NDU6XHRzZWxlY3QgT0NURU9OVFgyX01CT1hcbmRyaXZlcnMvY3J5cHRvL21hcnZlbGwvS2NvbmZpZy00Ni1cdHNlbGVjdCBDUllQVE9fREVWX01BUlZFTExcbi0tXG5kcml2ZXJzL2NyeXB0by9tYXJ2ZWxsL01ha2VmaWxlPTQ9b2JqLSQoQ09ORklHX0NSWVBUT19ERVZfT0NURU9OVFhfQ1BUKSAmIzQzOz0gb2N0ZW9udHgvXG5kcml2ZXJzL2NyeXB0by9tYXJ2ZWxsL01ha2VmaWxlOjU6b2JqLSQoQ09ORklHX0NSWVBUT19ERVZfT0NURU9OVFgyX0NQVCkgJiM0Mzs9IG9jdGVvbnR4Mi9cbi0tXG5kcml2ZXJzL2NyeXB0by9tYXJ2ZWxsL29jdGVvbnR4Mi9NYWtlZmlsZS0xLSMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25seVxuZHJpdmVycy9jcnlwdG8vbWFydmVsbC9vY3Rlb250eDIvTWFrZWZpbGU6MjpvYmotJChDT05GSUdfQ1JZUFRPX0RFVl9PQ1RFT05UWDJfQ1BUKSAmIzQzOz0gcnZ1X2NwdGNvbW1vbi5vIHJ2dV9jcHRwZi5vIHJ2dV9jcHR2Zi5vXG5kcml2ZXJzL2NyeXB0by9tYXJ2ZWxsL29jdGVvbnR4Mi9NYWtlZmlsZS0zLVxuLS1cbmRyaXZlcnMvY3J5cHRvL21hcnZlbGwvb2N0ZW9udHgyL2NuMTBrX2NwdC5jPTQ5PXZvaWQgY24xMGtfY3B0X2xtdHN0X2ZyZWUoc3RydWN0IHBjaV9kZXYgKnBkZXYsIHN0cnVjdCBvdHgyX2NwdGxmc19pbmZvICpsZnMpXG4tLVxuZHJpdmVycy9jcnlwdG8vbWFydmVsbC9vY3Rlb250eDIvY24xMGtfY3B0LmMtNjAtfVxuZHJpdmVycy9jcnlwdG8vbWFydmVsbC9vY3Rlb250eDIvY24xMGtfY3B0LmM6NjE6RVhQT1JUX1NZTUJPTF9OU19HUEwoY24xMGtfY3B0X2xtdHN0X2ZyZWUsIFwmIzM0O0NSWVBUT19ERVZfT0NURU9OVFgyX0NQVFwmIzM0Oyk7XG5kcml2ZXJzL2NyeXB0by9tYXJ2ZWxsL29jdGVvbnR4Mi9jbjEwa19jcHQuYy02Mi1cbi0tXG5kcml2ZXJzL2NyeXB0by9tYXJ2ZWxsL29jdGVvbnR4Mi9jbjEwa19jcHQuYz04Mz1pbnQgY24xMGtfY3B0cGZfbG10c3RfaW5pdChzdHJ1Y3Qgb3R4Ml9jcHRwZl9kZXYgKmNwdHBmKVxuLS1cbmRyaXZlcnMvY3J5cHRvL21hcnZlbGwvb2N0ZW9udHgyL2NuMTBrX2NwdC5jLTExMS19XG5kcml2ZXJzL2NyeXB0by9tYXJ2ZWxsL29jdGVvbnR4Mi9jbjEwa19jcHQuYzoxMTI6RVhQT1JUX1NZTUJPTF9OU19HUEwoY24xMGtfY3B0cGZfbG10c3RfaW5pdCwgXCYjMzQ7Q1JZUFRPX0RFVl9PQ1RFT05UWDJfQ1BUXCYjMzQ7KTtcbmRyaXZlcnMvY3J5cHRvL21hcnZlbGwvb2N0ZW9udHgyL2NuMTBrX2NwdC5jLTExMy1cbmRyaXZlcnMvY3J5cHRvL21hcnZlbGwvb2N0ZW9udHgyL2NuMTBrX2NwdC5jPTExND1pbnQgY24xMGtfY3B0dmZfbG10c3RfaW5pdChzdHJ1Y3Qgb3R4Ml9jcHR2Zl9kZXYgKmNwdHZmKVxuLS1cbmRyaXZlcnMvY3J5cHRvL21hcnZlbGwvb2N0ZW9udHgyL2NuMTBrX2NwdC5jLTEzOS19XG5kcml2ZXJzL2NyeXB0by9tYXJ2ZWxsL29jdGVvbnR4Mi9jbjEwa19jcHQuYzoxNDA6RVhQT1JUX1NZTUJPTF9OU19HUEwoY24xMGtfY3B0dmZfbG10c3RfaW5pdCwgXCYjMzQ7Q1JZUFRPX0RFVl9PQ1RFT05UWDJfQ1BUXCYjMzQ7KTtcbmRyaXZlcnMvY3J5cHRvL21hcnZlbGwvb2N0ZW9udHgyL2NuMTBrX2NwdC5jLTE0MS1cbmRyaXZlcnMvY3J5cHRvL21hcnZlbGwvb2N0ZW9udHgyL2NuMTBrX2NwdC5jPTE0Mj12b2lkIGNuMTBrX2NwdF9od19jdHhfY2xlYXIoc3RydWN0IHBjaV9kZXYgKnBkZXYsXG4tLVxuZHJpdmVycy9jcnlwdG8vbWFydmVsbC9vY3Rlb250eDIvY24xMGtfY3B0LmMtMTU1LX1cbmRyaXZlcnMvY3J5cHRvL21hcnZlbGwvb2N0ZW9udHgyL2NuMTBrX2NwdC5jOjE1NjpFWFBPUlRfU1lNQk9MX05TX0dQTChjbjEwa19jcHRfaHdfY3R4X2NsZWFyLCBcJiMzNDtDUllQVE9fREVWX09DVEVPTlRYMl9DUFRcJiMzNDspO1xuZHJpdmVycy9jcnlwdG8vbWFydmVsbC9vY3Rlb250eDIvY24xMGtfY3B0LmMtMTU3LVxuZHJpdmVycy9jcnlwdG8vbWFydmVsbC9vY3Rlb250eDIvY24xMGtfY3B0LmM9MTU4PXZvaWQgY24xMGtfY3B0X2h3X2N0eF9zZXQodW5pb24gY24xMGtfY3B0X2h3X2N0eCAqaGN0eCwgdTE2IGN0eF9zeilcbi0tXG5kcml2ZXJzL2NyeXB0by9tYXJ2ZWxsL29jdGVvbnR4Mi9jbjEwa19jcHQuYy0xNjQtfVxuZHJpdmVycy9jcnlwdG8vbWFydmVsbC9vY3Rlb250eDIvY24xMGtfY3B0LmM6MTY1OkVYUE9SVF9TWU1CT0xfTlNfR1BMKGNuMTBrX2NwdF9od19jdHhfc2V0LCBcJiMzNDtDUllQVE9fREVWX09DVEVPTlRYMl9DUFRcJiMzNDspO1xuZHJpdmVycy9jcnlwdG8vbWFydmVsbC9vY3Rlb250eDIvY24xMGtfY3B0LmMtMTY2LVxuZHJpdmVycy9jcnlwdG8vbWFydmVsbC9vY3Rlb250eDIvY24xMGtfY3B0LmM9MTY3PWludCBjbjEwa19jcHRfaHdfY3R4X2luaXQoc3RydWN0IHBjaV9kZXYgKnBkZXYsXG4tLVxuZHJpdmVycy9jcnlwdG8vbWFydmVsbC9vY3Rlb250eDIvY24xMGtfY3B0LmMtMTk0LX1cbmRyaXZlcnMvY3J5cHRvL21hcnZlbGwvb2N0ZW9udHgyL2NuMTBrX2NwdC5jOjE5NTpFWFBPUlRfU1lNQk9MX05TX0dQTChjbjEwa19jcHRfaHdfY3R4X2luaXQsIFwmIzM0O0NSWVBUT19ERVZfT0NURU9OVFgyX0NQVFwmIzM0Oyk7XG5kcml2ZXJzL2NyeXB0by9tYXJ2ZWxsL29jdGVvbnR4Mi9jbjEwa19jcHQuYy0xOTYtXG5kcml2ZXJzL2NyeXB0by9tYXJ2ZWxsL29jdGVvbnR4Mi9jbjEwa19jcHQuYz0xOTc9dm9pZCBjbjEwa19jcHRfY3R4X2ZsdXNoKHN0cnVjdCBwY2lfZGV2ICpwZGV2LCB1NjQgY3B0ciwgYm9vbCBpbnZhbClcbi0tXG5kcml2ZXJzL2NyeXB0by9tYXJ2ZWxsL29jdGVvbnR4Mi9jbjEwa19jcHQuYy0yMTMtfVxuZHJpdmVycy9jcnlwdG8vbWFydmVsbC9vY3Rlb250eDIvY24xMGtfY3B0LmM6MjE0OkVYUE9SVF9TWU1CT0xfTlNfR1BMKGNuMTBrX2NwdF9jdHhfZmx1c2gsIFwmIzM0O0NSWVBUT19ERVZfT0NURU9OVFgyX0NQVFwmIzM0Oyk7XG5kcml2ZXJzL2NyeXB0by9tYXJ2ZWxsL29jdGVvbnR4Mi9jbjEwa19jcHQuYy0yMTUtXG5kcml2ZXJzL2NyeXB0by9tYXJ2ZWxsL29jdGVvbnR4Mi9jbjEwa19jcHQuYz0yMTY9dm9pZCBjcHR2Zl9od19vcHNfZ2V0KHN0cnVjdCBvdHgyX2NwdHZmX2RldiAqY3B0dmYpXG4tLVxuZHJpdmVycy9jcnlwdG8vbWFydmVsbC9vY3Rlb250eDIvY24xMGtfY3B0LmMtMjIyLX1cbmRyaXZlcnMvY3J5cHRvL21hcnZlbGwvb2N0ZW9udHgyL2NuMTBrX2NwdC5jOjIyMzpFWFBPUlRfU1lNQk9MX05TX0dQTChjcHR2Zl9od19vcHNfZ2V0LCBcJiMzNDtDUllQVE9fREVWX09DVEVPTlRYMl9DUFRcJiMzNDspO1xuLS1cbmRyaXZlcnMvY3J5cHRvL21hcnZlbGwvb2N0ZW9udHgyL290eDJfY3B0X21ib3hfY29tbW9uLmM9Nz1pbnQgb3R4Ml9jcHRfc2VuZF9tYm94X21zZyhzdHJ1Y3Qgb3R4Ml9tYm94ICptYm94LCBzdHJ1Y3QgcGNpX2RldiAqcGRldilcbi0tXG5kcml2ZXJzL2NyeXB0by9tYXJ2ZWxsL29jdGVvbnR4Mi9vdHgyX2NwdF9tYm94X2NvbW1vbi5jLTIxLX1cbmRyaXZlcnMvY3J5cHRvL21hcnZlbGwvb2N0ZW9udHgyL290eDJfY3B0X21ib3hfY29tbW9uLmM6MjI6RVhQT1JUX1NZTUJPTF9OU19HUEwob3R4Ml9jcHRfc2VuZF9tYm94X21zZywgXCYjMzQ7Q1JZUFRPX0RFVl9PQ1RFT05UWDJfQ1BUXCYjMzQ7KTtcbmRyaXZlcnMvY3J5cHRvL21hcnZlbGwvb2N0ZW9udHgyL290eDJfY3B0X21ib3hfY29tbW9uLmMtMjMtXG5kcml2ZXJzL2NyeXB0by9tYXJ2ZWxsL29jdGVvbnR4Mi9vdHgyX2NwdF9tYm94X2NvbW1vbi5jPTI0PWludCBvdHgyX2NwdF9zZW5kX3JlYWR5X21zZyhzdHJ1Y3Qgb3R4Ml9tYm94ICptYm94LCBzdHJ1Y3QgcGNpX2RldiAqcGRldilcbi0tXG5kcml2ZXJzL2NyeXB0by9tYXJ2ZWxsL29jdGVvbnR4Mi9vdHgyX2NwdF9tYm94X2NvbW1vbi5jLTM5LX1cbmRyaXZlcnMvY3J5cHRvL21hcnZlbGwvb2N0ZW9udHgyL290eDJfY3B0X21ib3hfY29tbW9uLmM6NDA6RVhQT1JUX1NZTUJPTF9OU19HUEwob3R4Ml9jcHRfc2VuZF9yZWFkeV9tc2csIFwmIzM0O0NSWVBUT19ERVZfT0NURU9OVFgyX0NQVFwmIzM0Oyk7XG5kcml2ZXJzL2NyeXB0by9tYXJ2ZWxsL29jdGVvbnR4Mi9vdHgyX2NwdF9tYm94X2NvbW1vbi5jLTQxLVxuZHJpdmVycy9jcnlwdG8vbWFydmVsbC9vY3Rlb250eDIvb3R4Ml9jcHRfbWJveF9jb21tb24uYz00Mj1pbnQgb3R4Ml9jcHRfc2VuZF9hZl9yZWdfcmVxdWVzdHMoc3RydWN0IG90eDJfbWJveCAqbWJveCwgc3RydWN0IHBjaV9kZXYgKnBkZXYpXG4tLVxuZHJpdmVycy9jcnlwdG8vbWFydmVsbC9vY3Rlb250eDIvb3R4Ml9jcHRfbWJveF9jb21tb24uYy00NS19XG5kcml2ZXJzL2NyeXB0by9tYXJ2ZWxsL29jdGVvbnR4Mi9vdHgyX2NwdF9tYm94X2NvbW1vbi5jOjQ2OkVYUE9SVF9TWU1CT0xfTlNfR1BMKG90eDJfY3B0X3NlbmRfYWZfcmVnX3JlcXVlc3RzLCBcJiMzNDtDUllQVE9fREVWX09DVEVPTlRYMl9DUFRcJiMzNDspO1xuZHJpdmVycy9jcnlwdG8vbWFydmVsbC9vY3Rlb250eDIvb3R4Ml9jcHRfbWJveF9jb21tb24uYy00Ny1cbi0tXG5kcml2ZXJzL2NyeXB0by9tYXJ2ZWxsL29jdGVvbnR4Mi9vdHgyX2NwdF9tYm94X2NvbW1vbi5jPTc0PWludCBvdHgyX2NwdF9hZGRfd3JpdGVfYWZfcmVnKHN0cnVjdCBvdHgyX21ib3ggKm1ib3gsIHN0cnVjdCBwY2lfZGV2ICpwZGV2LFxuLS1cbmRyaXZlcnMvY3J5cHRvL21hcnZlbGwvb2N0ZW9udHgyL290eDJfY3B0X21ib3hfY29tbW9uLmMtOTctfVxuZHJpdmVycy9jcnlwdG8vbWFydmVsbC9vY3Rlb250eDIvb3R4Ml9jcHRfbWJveF9jb21tb24uYzo5ODpFWFBPUlRfU1lNQk9MX05TX0dQTChvdHgyX2NwdF9hZGRfd3JpdGVfYWZfcmVnLCBcJiMzNDtDUllQVE9fREVWX09DVEVPTlRYMl9DUFRcJiMzNDspO1xuZHJpdmVycy9jcnlwdG8vbWFydmVsbC9vY3Rlb250eDIvb3R4Ml9jcHRfbWJveF9jb21tb24uYy05OS1cbmRyaXZlcnMvY3J5cHRvL21hcnZlbGwvb2N0ZW9udHgyL290eDJfY3B0X21ib3hfY29tbW9uLmM9MTAwPWludCBvdHgyX2NwdF9yZWFkX2FmX3JlZyhzdHJ1Y3Qgb3R4Ml9tYm94ICptYm94LCBzdHJ1Y3QgcGNpX2RldiAqcGRldixcbi0tXG5kcml2ZXJzL2NyeXB0by9tYXJ2ZWxsL29jdGVvbnR4Mi9vdHgyX2NwdF9tYm94X2NvbW1vbi5jLTExMC19XG5kcml2ZXJzL2NyeXB0by9tYXJ2ZWxsL29jdGVvbnR4Mi9vdHgyX2NwdF9tYm94X2NvbW1vbi5jOjExMTpFWFBPUlRfU1lNQk9MX05TX0dQTChvdHgyX2NwdF9yZWFkX2FmX3JlZywgXCYjMzQ7Q1JZUFRPX0RFVl9PQ1RFT05UWDJfQ1BUXCYjMzQ7KTtcbmRyaXZlcnMvY3J5cHRvL21hcnZlbGwvb2N0ZW9udHgyL290eDJfY3B0X21ib3hfY29tbW9uLmMtMTEyLVxuZHJpdmVycy9jcnlwdG8vbWFydmVsbC9vY3Rlb250eDIvb3R4Ml9jcHRfbWJveF9jb21tb24uYz0xMTM9aW50IG90eDJfY3B0X3dyaXRlX2FmX3JlZyhzdHJ1Y3Qgb3R4Ml9tYm94ICptYm94LCBzdHJ1Y3QgcGNpX2RldiAqcGRldixcbi0tXG5kcml2ZXJzL2NyeXB0by9tYXJ2ZWxsL29jdGVvbnR4Mi9vdHgyX2NwdF9tYm94X2NvbW1vbi5jLTEyMy19XG5kcml2ZXJzL2NyeXB0by9tYXJ2ZWxsL29jdGVvbnR4Mi9vdHgyX2NwdF9tYm94X2NvbW1vbi5jOjEyNDpFWFBPUlRfU1lNQk9MX05TX0dQTChvdHgyX2NwdF93cml0ZV9hZl9yZWcsIFwmIzM0O0NSWVBUT19ERVZfT0NURU9OVFgyX0NQVFwmIzM0Oyk7XG5kcml2ZXJzL2NyeXB0by9tYXJ2ZWxsL29jdGVvbnR4Mi9vdHgyX2NwdF9tYm94X2NvbW1vbi5jLTEyNS1cbi0tXG5kcml2ZXJzL2NyeXB0by9tYXJ2ZWxsL29jdGVvbnR4Mi9vdHgyX2NwdF9tYm94X2NvbW1vbi5jPTE1Nj1pbnQgb3R4Ml9jcHRfZGV0YWNoX3JzcmNzX21zZyhzdHJ1Y3Qgb3R4Ml9jcHRsZnNfaW5mbyAqbGZzKVxuLS1cbmRyaXZlcnMvY3J5cHRvL21hcnZlbGwvb2N0ZW9udHgyL290eDJfY3B0X21ib3hfY29tbW9uLmMtMTgyLX1cbmRyaXZlcnMvY3J5cHRvL21hcnZlbGwvb2N0ZW9udHgyL290eDJfY3B0X21ib3hfY29tbW9uLmM6MTgzOkVYUE9SVF9TWU1CT0xfTlNfR1BMKG90eDJfY3B0X2RldGFjaF9yc3Jjc19tc2csIFwmIzM0O0NSWVBUT19ERVZfT0NURU9OVFgyX0NQVFwmIzM0Oyk7XG5kcml2ZXJzL2NyeXB0by9tYXJ2ZWxsL29jdGVvbnR4Mi9vdHgyX2NwdF9tYm94X2NvbW1vbi5jLTE4NC1cbmRyaXZlcnMvY3J5cHRvL21hcnZlbGwvb2N0ZW9udHgyL290eDJfY3B0X21ib3hfY29tbW9uLmM9MTg1PWludCBvdHgyX2NwdF9tc2l4X29mZnNldF9tc2coc3RydWN0IG90eDJfY3B0bGZzX2luZm8gKmxmcylcbi0tXG5kcml2ZXJzL2NyeXB0by9tYXJ2ZWxsL29jdGVvbnR4Mi9vdHgyX2NwdF9tYm94X2NvbW1vbi5jLTIxNS19XG5kcml2ZXJzL2NyeXB0by9tYXJ2ZWxsL29jdGVvbnR4Mi9vdHgyX2NwdF9tYm94X2NvbW1vbi5jOjIxNjpFWFBPUlRfU1lNQk9MX05TX0dQTChvdHgyX2NwdF9tc2l4X29mZnNldF9tc2csIFwmIzM0O0NSWVBUT19ERVZfT0NURU9OVFgyX0NQVFwmIzM0Oyk7XG5kcml2ZXJzL2NyeXB0by9tYXJ2ZWxsL29jdGVvbnR4Mi9vdHgyX2NwdF9tYm94X2NvbW1vbi5jLTIxNy1cbmRyaXZlcnMvY3J5cHRvL21hcnZlbGwvb2N0ZW9udHgyL290eDJfY3B0X21ib3hfY29tbW9uLmM9MjE4PWludCBvdHgyX2NwdF9zeW5jX21ib3hfbXNnKHN0cnVjdCBvdHgyX21ib3ggKm1ib3gpXG4tLVxuZHJpdmVycy9jcnlwdG8vbWFydmVsbC9vY3Rlb250eDIvb3R4Ml9jcHRfbWJveF9jb21tb24uYy0yMzAtfVxuZHJpdmVycy9jcnlwdG8vbWFydmVsbC9vY3Rlb250eDIvb3R4Ml9jcHRfbWJveF9jb21tb24uYzoyMzE6RVhQT1JUX1NZTUJPTF9OU19HUEwob3R4Ml9jcHRfc3luY19tYm94X21zZywgXCYjMzQ7Q1JZUFRPX0RFVl9PQ1RFT05UWDJfQ1BUXCYjMzQ7KTtcbmRyaXZlcnMvY3J5cHRvL21hcnZlbGwvb2N0ZW9udHgyL290eDJfY3B0X21ib3hfY29tbW9uLmMtMjMyLVxuZHJpdmVycy9jcnlwdG8vbWFydmVsbC9vY3Rlb250eDIvb3R4Ml9jcHRfbWJveF9jb21tb24uYz0yMzM9aW50IG90eDJfY3B0X2xmX3Jlc2V0X21zZyhzdHJ1Y3Qgb3R4Ml9jcHRsZnNfaW5mbyAqbGZzLCBpbnQgc2xvdClcbi0tXG5kcml2ZXJzL2NyeXB0by9tYXJ2ZWxsL29jdGVvbnR4Mi9vdHgyX2NwdF9tYm94X2NvbW1vbi5jLTI1MS19XG5kcml2ZXJzL2NyeXB0by9tYXJ2ZWxsL29jdGVvbnR4Mi9vdHgyX2NwdF9tYm94X2NvbW1vbi5jOjI1MjpFWFBPUlRfU1lNQk9MX05TX0dQTChvdHgyX2NwdF9sZl9yZXNldF9tc2csIFwmIzM0O0NSWVBUT19ERVZfT0NURU9OVFgyX0NQVFwmIzM0Oyk7XG5kcml2ZXJzL2NyeXB0by9tYXJ2ZWxsL29jdGVvbnR4Mi9vdHgyX2NwdF9tYm94X2NvbW1vbi5jLTI1My1cbmRyaXZlcnMvY3J5cHRvL21hcnZlbGwvb2N0ZW9udHgyL290eDJfY3B0X21ib3hfY29tbW9uLmM9MjU0PWludCBvdHgyX2NwdF9sbXRzdF90Ymxfc2V0dXBfbXNnKHN0cnVjdCBvdHgyX2NwdGxmc19pbmZvICpsZnMpXG4tLVxuZHJpdmVycy9jcnlwdG8vbWFydmVsbC9vY3Rlb250eDIvb3R4Ml9jcHRfbWJveF9jb21tb24uYy0yNzYtfVxuZHJpdmVycy9jcnlwdG8vbWFydmVsbC9vY3Rlb250eDIvb3R4Ml9jcHRfbWJveF9jb21tb24uYzoyNzc6RVhQT1JUX1NZTUJPTF9OU19HUEwob3R4Ml9jcHRfbG10c3RfdGJsX3NldHVwX21zZywgXCYjMzQ7Q1JZUFRPX0RFVl9PQ1RFT05UWDJfQ1BUXCYjMzQ7KTtcbi0tXG5kcml2ZXJzL2NyeXB0by9tYXJ2ZWxsL29jdGVvbnR4Mi9vdHgyX2NwdGxmLmM9Mjc0PXZvaWQgb3R4Ml9jcHRsZl91bnJlZ2lzdGVyX21pc2NfaW50ZXJydXB0cyhzdHJ1Y3Qgb3R4Ml9jcHRsZnNfaW5mbyAqbGZzKVxuLS1cbmRyaXZlcnMvY3J5cHRvL21hcnZlbGwvb2N0ZW9udHgyL290eDJfY3B0bGYuYy0yOTAtfVxuZHJpdmVycy9jcnlwdG8vbWFydmVsbC9vY3Rlb250eDIvb3R4Ml9jcHRsZi5jOjI5MTpFWFBPUlRfU1lNQk9MX05TX0dQTChvdHgyX2NwdGxmX3VucmVnaXN0ZXJfbWlzY19pbnRlcnJ1cHRzLCBcJiMzNDtDUllQVE9fREVWX09DVEVPTlRYMl9DUFRcJiMzNDspO1xuZHJpdmVycy9jcnlwdG8vbWFydmVsbC9vY3Rlb250eDIvb3R4Ml9jcHRsZi5jLTI5Mi1cbmRyaXZlcnMvY3J5cHRvL21hcnZlbGwvb2N0ZW9udHgyL290eDJfY3B0bGYuYz0yOTM9dm9pZCBvdHgyX2NwdGxmX3VucmVnaXN0ZXJfZG9uZV9pbnRlcnJ1cHRzKHN0cnVjdCBvdHgyX2NwdGxmc19pbmZvICpsZnMpXG4tLVxuZHJpdmVycy9jcnlwdG8vbWFydmVsbC9vY3Rlb250eDIvb3R4Ml9jcHRsZi5jLTMwOS19XG5kcml2ZXJzL2NyeXB0by9tYXJ2ZWxsL29jdGVvbnR4Mi9vdHgyX2NwdGxmLmM6MzEwOkVYUE9SVF9TWU1CT0xfTlNfR1BMKG90eDJfY3B0bGZfdW5yZWdpc3Rlcl9kb25lX2ludGVycnVwdHMsIFwmIzM0O0NSWVBUT19ERVZfT0NURU9OVFgyX0NQVFwmIzM0Oyk7XG5kcml2ZXJzL2NyeXB0by9tYXJ2ZWxsL29jdGVvbnR4Mi9vdHgyX2NwdGxmLmMtMzExLVxuLS1cbmRyaXZlcnMvY3J5cHRvL21hcnZlbGwvb2N0ZW9udHgyL290eDJfY3B0bGYuYz0zMzE9aW50IG90eDJfY3B0bGZfcmVnaXN0ZXJfbWlzY19pbnRlcnJ1cHRzKHN0cnVjdCBvdHgyX2NwdGxmc19pbmZvICpsZnMpXG4tLVxuZHJpdmVycy9jcnlwdG8vbWFydmVsbC9vY3Rlb250eDIvb3R4Ml9jcHRsZi5jLTM1MS19XG5kcml2ZXJzL2NyeXB0by9tYXJ2ZWxsL29jdGVvbnR4Mi9vdHgyX2NwdGxmLmM6MzUyOkVYUE9SVF9TWU1CT0xfTlNfR1BMKG90eDJfY3B0bGZfcmVnaXN0ZXJfbWlzY19pbnRlcnJ1cHRzLCBcJiMzNDtDUllQVE9fREVWX09DVEVPTlRYMl9DUFRcJiMzNDspO1xuZHJpdmVycy9jcnlwdG8vbWFydmVsbC9vY3Rlb250eDIvb3R4Ml9jcHRsZi5jLTM1My1cbmRyaXZlcnMvY3J5cHRvL21hcnZlbGwvb2N0ZW9udHgyL290eDJfY3B0bGYuYz0zNTQ9aW50IG90eDJfY3B0bGZfcmVnaXN0ZXJfZG9uZV9pbnRlcnJ1cHRzKHN0cnVjdCBvdHgyX2NwdGxmc19pbmZvICpsZnMpXG4tLVxuZHJpdmVycy9jcnlwdG8vbWFydmVsbC9vY3Rlb250eDIvb3R4Ml9jcHRsZi5jLTM3NC19XG5kcml2ZXJzL2NyeXB0by9tYXJ2ZWxsL29jdGVvbnR4Mi9vdHgyX2NwdGxmLmM6Mzc1OkVYUE9SVF9TWU1CT0xfTlNfR1BMKG90eDJfY3B0bGZfcmVnaXN0ZXJfZG9uZV9pbnRlcnJ1cHRzLCBcJiMzNDtDUllQVE9fREVWX09DVEVPTlRYMl9DUFRcJiMzNDspO1xuZHJpdmVycy9jcnlwdG8vbWFydmVsbC9vY3Rlb250eDIvb3R4Ml9jcHRsZi5jLTM3Ni1cbmRyaXZlcnMvY3J5cHRvL21hcnZlbGwvb2N0ZW9udHgyL290eDJfY3B0bGYuYz0zNzc9dm9pZCBvdHgyX2NwdGxmX2ZyZWVfaXJxc19hZmZpbml0eShzdHJ1Y3Qgb3R4Ml9jcHRsZnNfaW5mbyAqbGZzKVxuLS1cbmRyaXZlcnMvY3J5cHRvL21hcnZlbGwvb2N0ZW9udHgyL290eDJfY3B0bGYuYy0zODgtfVxuZHJpdmVycy9jcnlwdG8vbWFydmVsbC9vY3Rlb250eDIvb3R4Ml9jcHRsZi5jOjM4OTpFWFBPUlRfU1lNQk9MX05TX0dQTChvdHgyX2NwdGxmX2ZyZWVfaXJxc19hZmZpbml0eSwgXCYjMzQ7Q1JZUFRPX0RFVl9PQ1RFT05UWDJfQ1BUXCYjMzQ7KTtcbmRyaXZlcnMvY3J5cHRvL21hcnZlbGwvb2N0ZW9udHgyL290eDJfY3B0bGYuYy0zOTAtXG5kcml2ZXJzL2NyeXB0by9tYXJ2ZWxsL29jdGVvbnR4Mi9vdHgyX2NwdGxmLmM9MzkxPWludCBvdHgyX2NwdGxmX3NldF9pcnFzX2FmZmluaXR5KHN0cnVjdCBvdHgyX2NwdGxmc19pbmZvICpsZnMpXG4tLVxuZHJpdmVycy9jcnlwdG8vbWFydmVsbC9vY3Rlb250eDIvb3R4Ml9jcHRsZi5jLTQyMS19XG5kcml2ZXJzL2NyeXB0by9tYXJ2ZWxsL29jdGVvbnR4Mi9vdHgyX2NwdGxmLmM6NDIyOkVYUE9SVF9TWU1CT0xfTlNfR1BMKG90eDJfY3B0bGZfc2V0X2lycXNfYWZmaW5pdHksIFwmIzM0O0NSWVBUT19ERVZfT0NURU9OVFgyX0NQVFwmIzM0Oyk7XG5kcml2ZXJzL2NyeXB0by9tYXJ2ZWxsL29jdGVvbnR4Mi9vdHgyX2NwdGxmLmMtNDIzLVxuZHJpdmVycy9jcnlwdG8vbWFydmVsbC9vY3Rlb250eDIvb3R4Ml9jcHRsZi5jPTQyND1pbnQgb3R4Ml9jcHRsZl9pbml0KHN0cnVjdCBvdHgyX2NwdGxmc19pbmZvICpsZnMsIHU4IGVuZ19ncnBfbWFzaywgaW50IHByaSxcbi0tXG5kcml2ZXJzL2NyeXB0by9tYXJ2ZWxsL29jdGVvbnR4Mi9vdHgyX2NwdGxmLmMtNDgxLX1cbmRyaXZlcnMvY3J5cHRvL21hcnZlbGwvb2N0ZW9udHgyL290eDJfY3B0bGYuYzo0ODI6RVhQT1JUX1NZTUJPTF9OU19HUEwob3R4Ml9jcHRsZl9pbml0LCBcJiMzNDtDUllQVE9fREVWX09DVEVPTlRYMl9DUFRcJiMzNDspO1xuZHJpdmVycy9jcnlwdG8vbWFydmVsbC9vY3Rlb250eDIvb3R4Ml9jcHRsZi5jLTQ4My1cbmRyaXZlcnMvY3J5cHRvL21hcnZlbGwvb2N0ZW9udHgyL290eDJfY3B0bGYuYz00ODQ9dm9pZCBvdHgyX2NwdGxmX3NodXRkb3duKHN0cnVjdCBvdHgyX2NwdGxmc19pbmZvICpsZnMpXG4tLVxuZHJpdmVycy9jcnlwdG8vbWFydmVsbC9vY3Rlb250eDIvb3R4Ml9jcHRsZi5jLTQ5My19XG5kcml2ZXJzL2NyeXB0by9tYXJ2ZWxsL29jdGVvbnR4Mi9vdHgyX2NwdGxmLmM6NDk0OkVYUE9SVF9TWU1CT0xfTlNfR1BMKG90eDJfY3B0bGZfc2h1dGRvd24sIFwmIzM0O0NSWVBUT19ERVZfT0NURU9OVFgyX0NQVFwmIzM0Oyk7XG5kcml2ZXJzL2NyeXB0by9tYXJ2ZWxsL29jdGVvbnR4Mi9vdHgyX2NwdGxmLmMtNDk1LVxuLS1cbmRyaXZlcnMvY3J5cHRvL21hcnZlbGwvb2N0ZW9udHgyL290eDJfY3B0cGZfbWFpbi5jPTg3Nz1tb2R1bGVfcGNpX2RyaXZlcihvdHgyX2NwdF9wY2lfZHJpdmVyKTtcbmRyaXZlcnMvY3J5cHRvL21hcnZlbGwvb2N0ZW9udHgyL290eDJfY3B0cGZfbWFpbi5jLTg3OC1cbmRyaXZlcnMvY3J5cHRvL21hcnZlbGwvb2N0ZW9udHgyL290eDJfY3B0cGZfbWFpbi5jOjg3OTpNT0RVTEVfSU1QT1JUX05TKFwmIzM0O0NSWVBUT19ERVZfT0NURU9OVFgyX0NQVFwmIzM0Oyk7XG5kcml2ZXJzL2NyeXB0by9tYXJ2ZWxsL29jdGVvbnR4Mi9vdHgyX2NwdHBmX21haW4uYy04ODAtXG4tLVxuZHJpdmVycy9jcnlwdG8vbWFydmVsbC9vY3Rlb250eDIvb3R4Ml9jcHR2Zl9tYWluLmM9NDc2PW1vZHVsZV9wY2lfZHJpdmVyKG90eDJfY3B0dmZfcGNpX2RyaXZlcik7XG5kcml2ZXJzL2NyeXB0by9tYXJ2ZWxsL29jdGVvbnR4Mi9vdHgyX2NwdHZmX21haW4uYy00NzctXG5kcml2ZXJzL2NyeXB0by9tYXJ2ZWxsL29jdGVvbnR4Mi9vdHgyX2NwdHZmX21haW4uYzo0Nzg6TU9EVUxFX0lNUE9SVF9OUyhcJiMzNDtDUllQVE9fREVWX09DVEVPTlRYMl9DUFRcJiMzNDspO1xuZHJpdmVycy9jcnlwdG8vbWFydmVsbC9vY3Rlb250eDIvb3R4Ml9jcHR2Zl9tYWluLmMtNDc5LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL0tjb25maWctNS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL0tjb25maWc6Njpjb25maWcgT0NURU9OVFgyX01CT1hcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL0tjb25maWctNy1cdHRyaXN0YXRlXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9LY29uZmlnLTgtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9LY29uZmlnOjk6Y29uZmlnIE9DVEVPTlRYMl9BRlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvS2NvbmZpZy0xMC1cdHRyaXN0YXRlIFwmIzM0O01hcnZlbGwgT2N0ZW9uVFgyIFJWVSBBZG1pbiBGdW5jdGlvbiBkcml2ZXJcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL0tjb25maWc6MTE6XHRzZWxlY3QgT0NURU9OVFgyX01CT1hcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL0tjb25maWctMTItXHRzZWxlY3QgTkVUX0RFVkxJTktcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9LY29uZmlnPTIyPWNvbmZpZyBORENfRElTX0RZTkFNSUNfQ0FDSElOR1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvS2NvbmZpZy0yMy1cdGJvb2wgXCYjMzQ7RGlzYWJsZSBjYWNoaW5nIG9mIGR5bmFtaWMgZW50cmllcyBpbiBORENcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL0tjb25maWc6MjQ6XHRkZXBlbmRzIG9uIE9DVEVPTlRYMl9BRlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvS2NvbmZpZy0yNS1cdGRlZmF1bHQgblxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL0tjb25maWctMzAtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9LY29uZmlnOjMxOmNvbmZpZyBPQ1RFT05UWDJfUEZcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL0tjb25maWctMzItXHR0cmlzdGF0ZSBcJiMzNDtNYXJ2ZWxsIE9jdGVvblRYMiBOSUMgUGh5c2ljYWwgRnVuY3Rpb24gZHJpdmVyXCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9LY29uZmlnOjMzOlx0c2VsZWN0IE9DVEVPTlRYMl9NQk9YXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9LY29uZmlnLTM0LVx0c2VsZWN0IE5FVF9ERVZMSU5LXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvS2NvbmZpZy00NC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL0tjb25maWc6NDU6Y29uZmlnIE9DVEVPTlRYMl9WRlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvS2NvbmZpZy00Ni1cdHRyaXN0YXRlIFwmIzM0O01hcnZlbGwgT2N0ZW9uVFgyIE5JQyBWaXJ0dWFsIEZ1bmN0aW9uIGRyaXZlclwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvS2NvbmZpZzo0NzpcdGRlcGVuZHMgb24gT0NURU9OVFgyX1BGXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9LY29uZmlnLTQ4LVx0aGVscFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL0tjb25maWc9NTE9Y29uZmlnIFJWVV9FU1dJVENIXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9LY29uZmlnLTUyLVx0dHJpc3RhdGUgXCYjMzQ7TWFydmVsbCBSVlUgRS1Td2l0Y2ggc3VwcG9ydFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvS2NvbmZpZzo1MzpcdGRlcGVuZHMgb24gT0NURU9OVFgyX1BGXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9LY29uZmlnLTU0LVx0ZGVmYXVsdCBtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvTWFrZWZpbGUtNS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL01ha2VmaWxlOjY6b2JqLSQoQ09ORklHX09DVEVPTlRYMl9NQk9YKSAmIzQzOz0gYWYvXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9NYWtlZmlsZTo3Om9iai0kKENPTkZJR19PQ1RFT05UWDJfQUYpICYjNDM7PSBhZi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL01ha2VmaWxlOjg6b2JqLSQoQ09ORklHX09DVEVPTlRYMl9QRikgJiM0Mzs9IG5pYy9cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9NYWtlZmlsZT02PWNjZmxhZ3MteSAmIzQzOz0gLUkkKHNyYylcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL01ha2VmaWxlOjc6b2JqLSQoQ09ORklHX09DVEVPTlRYMl9NQk9YKSAmIzQzOz0gcnZ1X21ib3gub1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvTWFrZWZpbGU6ODpvYmotJChDT05GSUdfT0NURU9OVFgyX0FGKSAmIzQzOz0gcnZ1X2FmLm9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL01ha2VmaWxlLTktXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY2d4LmM9NjY9c3RhdGljIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkIGNneF9pZF90YWJsZVtdID0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY2d4LmM6Njc6XHR7IFBDSV9ERVZJQ0UoUENJX1ZFTkRPUl9JRF9DQVZJVU0sIFBDSV9ERVZJRF9PQ1RFT05UWDJfQ0dYKSB9LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY2d4LmMtNjgtXHR7IFBDSV9ERVZJQ0VfU1VCKFBDSV9WRU5ET1JfSURfQ0FWSVVNLCBQQ0lfREVWSURfQ04xMEtfUlBNLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL2NneC5oLTE1LSAvKiBQQ0kgZGV2aWNlIElEcyAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY2d4Lmg6MTY6I2RlZmluZVx0UENJX0RFVklEX09DVEVPTlRYMl9DR1hcdFx0MHhBMDU5XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jZ3guaC0xNy1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jbjIway9kZWJ1Z2ZzLmM9MTU0PURFRklORV9TSE9XX0FUVFJJQlVURShucGNfbWNhbV9sYXlvdXQpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY24yMGsvZGVidWdmcy5jLTE1NS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL2NuMjBrL2RlYnVnZnMuYzoxNTY6I2RlZmluZSBfX09DVEVPTlRYMl9ERUJVR0ZTX0FUVFJJQlVURV9GT1BTKF9fbmFtZSlcdFx0XHRcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY24yMGsvZGVidWdmcy5jLTE1Ny1zdGF0aWMgY29uc3Qgc3RydWN0IGZpbGVfb3BlcmF0aW9ucyBfX25hbWUgIyMgX2ZvcHMgPSB7XHRcdFx0XFxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jbjIway9kZWJ1Z2ZzLmMtMTY0LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY24yMGsvZGVidWdmcy5jOjE2NTojZGVmaW5lIERFRklORV9PQ1RFT05UWDJfREVCVUdGU19BVFRSSUJVVEVfV0lUSF9TSVpFKF9fbmFtZSwgX19zaXplKVx0XHRcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY24yMGsvZGVidWdmcy5jLTE2Ni1zdGF0aWMgaW50IF9fbmFtZSAjIyBfb3BlbihzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmlsZSlcdFx0XFxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jbjIway9kZWJ1Z2ZzLmMtMTcwLX1cdFx0XHRcdFx0XHRcdFx0XHRcdFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jbjIway9kZWJ1Z2ZzLmM6MTcxOl9fT0NURU9OVFgyX0RFQlVHRlNfQVRUUklCVVRFX0ZPUFMoX19uYW1lKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY24yMGsvZGVidWdmcy5jLTE3Mi1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jbjIway9kZWJ1Z2ZzLmM9MTgxPXN0YXRpYyBpbnQgbnBjX21jYW1fZHN0YXRzX3Nob3coc3RydWN0IHNlcV9maWxlICpzLCB2b2lkICp1bnVzZWQpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY24yMGsvZGVidWdmcy5jLTI0Mi0jZGVmaW5lIFRPVEFMX1NaIChNQVhfTlVNX0JBTktTICogTUFYX05VTV9TVUJfQkFOS1MgKiBNQVhfU1VCQkFOS19ERVBUSCAqIDY0KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY24yMGsvZGVidWdmcy5jOjI0MzpERUZJTkVfT0NURU9OVFgyX0RFQlVHRlNfQVRUUklCVVRFX1dJVEhfU0laRShucGNfbWNhbV9kc3RhdHMsIFRPVEFMX1NaKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL2NuMjBrL2RlYnVnZnMuYy0yNDQtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jbjIway9kZWJ1Z2ZzLmM9MjQ1PXN0YXRpYyBpbnQgbnBjX21jYW1fbWlzbWF0Y2hfc2hvdyhzdHJ1Y3Qgc2VxX2ZpbGUgKnMsIHZvaWQgKnVudXNlZClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jbjIway9kZWJ1Z2ZzLmMtMjg0LS8qIFwmIzM0OyV1XFx0JWRcXHQldVxcblwmIzM0OyBuZWVkcyBsZXNzIHRoYW4gNjQgY2hhcmFjdGVycyB0byBwcmludC4gKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL2NuMjBrL2RlYnVnZnMuYzoyODU6REVGSU5FX09DVEVPTlRYMl9ERUJVR0ZTX0FUVFJJQlVURV9XSVRIX1NJWkUobnBjX21jYW1fbWlzbWF0Y2gsIFRPVEFMX1NaKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL2NuMjBrL2RlYnVnZnMuYy0yODYtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcHRwLmMtMjAtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9wdHAuYzoyMTojZGVmaW5lIFBDSV9ERVZJRF9PQ1RFT05UWDJfUFRQXHRcdFx0MHhBMDBDXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9wdHAuYy0yMi0jZGVmaW5lIFBDSV9TVUJTWVNfREVWSURfT0NUWDJfOTh4eF9QVFBcdFx0MHhCMTAwXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcHRwLmMtMjctI2RlZmluZSBQQ0lfU1VCU1lTX0RFVklEX09DVFgyXzk1WFhPX1BUUFx0MHhCNjAwXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9wdHAuYzoyODojZGVmaW5lIFBDSV9ERVZJRF9PQ1RFT05UWDJfUlNUXHRcdFx0MHhBMDg1XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9wdHAuYy0yOS0jZGVmaW5lIFBDSV9ERVZJRF9DTjEwS19QVFBcdFx0XHQweEEwOUVcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9wdHAuYz01ODk9c3RhdGljIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkIHB0cF9pZF90YWJsZVtdID0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcHRwLmM6NTkwOlx0eyBQQ0lfREVWSUNFX1NVQihQQ0lfVkVORE9SX0lEX0NBVklVTSwgUENJX0RFVklEX09DVEVPTlRYMl9QVFAsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9wdHAuYy01OTEtXHRcdFx0IFBDSV9WRU5ET1JfSURfQ0FWSVVNLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcHRwLmMtNTkyLVx0XHRcdCBQQ0lfU1VCU1lTX0RFVklEX09DVFgyXzk4eHhfUFRQKSB9LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcHRwLmM6NTkzOlx0eyBQQ0lfREVWSUNFX1NVQihQQ0lfVkVORE9SX0lEX0NBVklVTSwgUENJX0RFVklEX09DVEVPTlRYMl9QVFAsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9wdHAuYy01OTQtXHRcdFx0IFBDSV9WRU5ET1JfSURfQ0FWSVVNLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcHRwLmMtNTk1LVx0XHRcdCBQQ0lfU1VCU1lTX0RFVklEX09DVFgyXzk2WFhfUFRQKSB9LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcHRwLmM6NTk2Olx0eyBQQ0lfREVWSUNFX1NVQihQQ0lfVkVORE9SX0lEX0NBVklVTSwgUENJX0RFVklEX09DVEVPTlRYMl9QVFAsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9wdHAuYy01OTctXHRcdFx0IFBDSV9WRU5ET1JfSURfQ0FWSVVNLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcHRwLmMtNTk4LVx0XHRcdCBQQ0lfU1VCU1lTX0RFVklEX09DVFgyXzk1WFhfUFRQKSB9LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcHRwLmM6NTk5Olx0eyBQQ0lfREVWSUNFX1NVQihQQ0lfVkVORE9SX0lEX0NBVklVTSwgUENJX0RFVklEX09DVEVPTlRYMl9QVFAsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9wdHAuYy02MDAtXHRcdFx0IFBDSV9WRU5ET1JfSURfQ0FWSVVNLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcHRwLmMtNjAxLVx0XHRcdCBQQ0lfU1VCU1lTX0RFVklEX09DVFgyXzk1WFhOX1BUUCkgfSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3B0cC5jOjYwMjpcdHsgUENJX0RFVklDRV9TVUIoUENJX1ZFTkRPUl9JRF9DQVZJVU0sIFBDSV9ERVZJRF9PQ1RFT05UWDJfUFRQLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcHRwLmMtNjAzLVx0XHRcdCBQQ0lfVkVORE9SX0lEX0NBVklVTSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3B0cC5jLTYwNC1cdFx0XHQgUENJX1NVQlNZU19ERVZJRF9PQ1RYMl85NU1NX1BUUCkgfSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3B0cC5jOjYwNTpcdHsgUENJX0RFVklDRV9TVUIoUENJX1ZFTkRPUl9JRF9DQVZJVU0sIFBDSV9ERVZJRF9PQ1RFT05UWDJfUFRQLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcHRwLmMtNjA2LVx0XHRcdCBQQ0lfVkVORE9SX0lEX0NBVklVTSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYz00ND1zdGF0aWMgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgcnZ1X2lkX3RhYmxlW10gPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYzo0NTpcdHsgUENJX0RFVklDRShQQ0lfVkVORE9SX0lEX0NBVklVTSwgUENJX0RFVklEX09DVEVPTlRYMl9SVlVfQUYpIH0sXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYy00Ni1cdHsgMCwgfSAgLyogZW5kIG9mIHRhYmxlICovXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmM9OTI3PXN0YXRpYyB2b2lkIHJ2dV9nZXRfbGJrX2J1ZnNpemUoc3RydWN0IHJ2dSAqcnZ1KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jLTkzMy1cdHBkZXYgPSBwY2lfZ2V0X2RldmljZShQQ0lfVkVORE9SX0lEX0NBVklVTSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jOjkzNDpcdFx0XHQgICAgICBQQ0lfREVWSURfT0NURU9OVFgyX0xCSywgcGRldik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYy05MzUtXHRpZiAoIXBkZXYpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmM9MzQ0Nz1pbnQgcnZ1X2dldF9udW1fbGJrX2NoYW5zKHZvaWQpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmMtMzQ1Mi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jOjM0NTM6XHRwZGV2ID0gcGNpX2dldF9kZXZpY2UoUENJX1ZFTkRPUl9JRF9DQVZJVU0sIFBDSV9ERVZJRF9PQ1RFT05UWDJfTEJLLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmMtMzQ1NC1cdFx0XHQgICAgICBOVUxMKTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYy0zNDcwLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmM6MzQ3MTojZGVmaW5lIFBDSV9ERVZJRF9PQ1RFT05UWDJfUlZVX0FGVkZcdDB4QTBGOFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmMtMzQ3Mi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jPTM0NzM9c3RhdGljIGludCBydnVfZW5hYmxlX3NyaW92KHN0cnVjdCBydnUgKnJ2dSlcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYy0zNDk0LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmM6MzQ5NTpcdGlmIChydnUtXHUwMDNldmZfZGV2aWQgPT0gUENJX0RFVklEX09DVEVPTlRYMl9SVlVfQUZWRikge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmMtMzQ5Ni1cdFx0Y2hhbnMgPSBydnVfZ2V0X251bV9sYmtfY2hhbnMoKTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuaC0yMy0vKiBQQ0kgZGV2aWNlIElEcyAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1Lmg6MjQ6I2RlZmluZVx0UENJX0RFVklEX09DVEVPTlRYMl9SVlVfQUZcdFx0MHhBMDY1XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuaDoyNTojZGVmaW5lXHRQQ0lfREVWSURfT0NURU9OVFgyX0xCS1x0XHRcdDB4QTA2MVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmgtMjYtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2NuMTBrLmM9MzkyPXN0YXRpYyB2b2lkIHJ2dV9sYmtfc2V0X2NoYW5uZWxzKHN0cnVjdCBydnUgKnJ2dSlcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfY24xMGsuYy00MTUtXHRcdHBkZXYgPSBwY2lfZ2V0X2RldmljZShQQ0lfVkVORE9SX0lEX0NBVklVTSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9jbjEway5jOjQxNjpcdFx0XHRcdCAgICAgIFBDSV9ERVZJRF9PQ1RFT05UWDJfTEJLLCBwZGV2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9jbjEway5jLTQxNy1cdFx0aWYgKCFwZGV2KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9kZWJ1Z2ZzLmM9MjgwNj1zdGF0aWMgdm9pZCBydnVfZGJnX25wYV9pbml0KHN0cnVjdCBydnUgKnJ2dSlcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGVidWdmcy5jLTI4MjUtLyogUGVyLWxtYWMgQ0dYIGRlYnVnZnMgZmlsZXMgbmVlZCBib3RoIFJWVSBhbmQgQ0dYIGhhbmRsZTsgaW5vZGUtXHUwMDNlaV9wcml2YXRlXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGVidWdmcy5jOjI4MjY6ICogcG9pbnRzIGhlcmUgc28gc2VxX2ZpbGUgb3BzIGF2b2lkIHBjaV9nZXRfZGV2aWNlKFBDSV9ERVZJRF9PQ1RFT05UWDJfUlZVX0FGKS5cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9kZWJ1Z2ZzLmMtMjgyNy0gKi9cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvTWFrZWZpbGUtNS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9NYWtlZmlsZTo2Om9iai0kKENPTkZJR19PQ1RFT05UWDJfUEYpICYjNDM7PSBydnVfbmljcGYubyBvdHgyX3B0cC5vXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvTWFrZWZpbGU6NzpvYmotJChDT05GSUdfT0NURU9OVFgyX1ZGKSAmIzQzOz0gcnZ1X25pY3ZmLm8gb3R4Ml9wdHAub1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL01ha2VmaWxlLTgtb2JqLSQoQ09ORklHX1JWVV9FU1dJVENIKSAmIzQzOz0gcnZ1X3JlcC5vXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfY29tbW9uLmgtNDItLyogUENJIGRldmljZSBJRHMgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX2NvbW1vbi5oOjQzOiNkZWZpbmUgUENJX0RFVklEX09DVEVPTlRYMl9SVlVfUEYgICAgICAgICAgICAgIDB4QTA2M1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfY29tbW9uLmg6NDQ6I2RlZmluZSBQQ0lfREVWSURfT0NURU9OVFgyX1JWVV9WRlx0XHQweEEwNjRcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX2NvbW1vbi5oOjQ1OiNkZWZpbmUgUENJX0RFVklEX09DVEVPTlRYMl9SVlVfQUZWRlx0XHQweEEwRjhcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX2NvbW1vbi5oLTQ2LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX2NvbW1vbi5oLTUwLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfY29tbW9uLmg6NTE6I2RlZmluZSBQQ0lfREVWSURfT0NURU9OVFgyX1NEUF9SRVBcdFx0MHhBMEY3XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml9jb21tb24uaC01Mi1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml9jb21tb24uaD01OTc9c3RhdGljIGlubGluZSBib29sIGlzX290eDJfbGJrdmYoc3RydWN0IHBjaV9kZXYgKnBkZXYpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml9jb21tb24uaC01OTgte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfY29tbW9uLmg6NTk5Olx0cmV0dXJuIChwZGV2LVx1MDAzZWRldmljZSA9PSBQQ0lfREVWSURfT0NURU9OVFgyX1JWVV9BRlZGKSB8fFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfY29tbW9uLmgtNjAwLVx0XHQocGRldi1cdTAwM2VkZXZpY2UgPT0gUENJX0RFVklEX1JWVV9SRVApO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX2NvbW1vbi5oPTYxNT1zdGF0aWMgaW5saW5lIGJvb2wgaXNfb3R4Ml9zZHBfcmVwKHN0cnVjdCBwY2lfZGV2ICpwZGV2KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfY29tbW9uLmgtNjE2LXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX2NvbW1vbi5oOjYxNzpcdHJldHVybiBwZGV2LVx1MDAzZWRldmljZSA9PSBQQ0lfREVWSURfT0NURU9OVFgyX1NEUF9SRVA7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml9jb21tb24uaC02MTgtfVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX3BmLmM9MzY9c3RhdGljIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkIG90eDJfcGZfaWRfdGFibGVbXSA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX3BmLmM6Mzc6XHR7IFBDSV9ERVZJQ0UoUENJX1ZFTkRPUl9JRF9DQVZJVU0sIFBDSV9ERVZJRF9PQ1RFT05UWDJfUlZVX1BGKSB9LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfcGYuYy0zOC1cdHsgMCwgfSAgLyogZW5kIG9mIHRhYmxlICovXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfdmYuYz0yMj1zdGF0aWMgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgb3R4Ml92Zl9pZF90YWJsZVtdID0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfdmYuYzoyMzpcdHsgUENJX0RFVklDRShQQ0lfVkVORE9SX0lEX0NBVklVTSwgUENJX0RFVklEX09DVEVPTlRYMl9SVlVfQUZWRikgfSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX3ZmLmM6MjQ6XHR7IFBDSV9ERVZJQ0UoUENJX1ZFTkRPUl9JRF9DQVZJVU0sIFBDSV9ERVZJRF9PQ1RFT05UWDJfUlZVX1ZGKSB9LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfdmYuYzoyNTpcdHsgUENJX0RFVklDRShQQ0lfVkVORE9SX0lEX0NBVklVTSwgUENJX0RFVklEX09DVEVPTlRYMl9TRFBfUkVQKSB9LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfdmYuYy0yNi1cdHsgfVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE5LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8xMyAxNDozMTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuOC1mbGFzaDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzMjYxMgoJCQkJCQkJb3V0cHV0OiAxNzAKCQkJCQkJCXRob3VnaHRzOiA1MjUKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqV29ydGhGdXp6aW5nIEFzc2Vzc21lbnQ6IE1hcnZlbGwgT2N0ZW9uVFgyIFJWVSBEcml2ZXIqKgoKT2theSwgbGV0JiMzOTtzIGJyZWFrIHRoaXMgZG93bi4gVGhlIHBhdGNoIGlzIGluIGBkcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9tY3NfcnZ1X2lmLmNgLCBzcGVjaWZpY2FsbHkgaW4gdGhlIGBydnVfbWNzX3B0cF9jZmdgIGZ1bmN0aW9uLiBJdCYjMzk7cyBhIHNpbXBsZSBOVUxMIGNoZWNrIOKAkyBhZGRpbmcgYG1jc19nZXRfcGRhdGEocnBtX2lkKWAgdG8gcHJldmVudCBhIHBvdGVudGlhbCBjcmFzaC4gTm8gZ3JvdW5kYnJlYWtpbmcgZnVuY3Rpb25hbGl0eSBoZXJlLCBqdXN0IGRlZmVuc2l2ZSBwcm9ncmFtbWluZy4KClRoZSBjcml0aWNhbCBwaWVjZSwgaG93ZXZlciwgaXMgdGhlIGhhcmR3YXJlLiBUaGlzIGlzIHRoZSBSVlUgQWRtaW4gRnVuY3Rpb24gZHJpdmVyIGZvciBNYXJ2ZWxsIE9jdGVvblRYMiBhbmQgQ04xMEsgaGFyZHdhcmUuIFdlJiMzOTtyZSB0YWxraW5nIGFib3V0ICp2ZW5kb3Itc3BlY2lmaWMqIHBoeXNpY2FsIGhhcmR3YXJlIOKAkyBTbWFydE5JQ3MsIG5ldHdvcmsgU29DcywgdGhhdCBzb3J0IG9mIHRoaW5nLiBUaGUgUENJIElEcyBjb25maXJtIHRoaXM6IGBQQ0lfVkVORE9SX0lEX0NBVklVTWAsIGBQQ0lfREVWSURfT0NURU9OVFgyX1JWVV9BRmAsIGBQQ0lfREVWSURfQ04xMEtfTUNTYC4KCk5vdywgdGhlIGluc3RydWN0aW9ucyBmbGFnZ2VkIHRoaXMgYXMgYSBwb3RlbnRpYWwgbmVnYXRpdmUgY2FzZS4gTGV0IG1lIGNoZWNrLi4uIFllcCwgc3RydWN0dXJhbGx5IHVucmVhY2hhYmxlIGhhcmR3YXJlIGlzIGEgbm8tZ28gZm9yIGZ1enppbmcuIFdlJiMzOTtyZSB0YWxraW5nIGFib3V0IHRoaW5ncyBsaWtlIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaGVzLCBTbWFydE5JQ3MsIEdQVSBkcml2ZXJzIOKAkyB0aGUgbGlzdCBnb2VzIG9uLiBBbmQgc3BlY2lmaWNhbGx5LCB0aGUgZXhhbXBsZSBnaXZlbiBpcyBkcml2ZXJzICpyZXF1aXJpbmcgcGh5c2ljYWwgQVNJQy9QQ0llIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VKi4gQmluZ28uIFRoaXMgKmlzKiB0aGF0IGNhc2UuIFRoZSBNYXJ2ZWxsIE9jdGVvblRYMiBSVlUgcmVxdWlyZXMgcmVhbCwgcGh5c2ljYWwgTWFydmVsbCBDYXZpdW0vT2N0ZW9uVFgyIGhhcmR3YXJlLCBvciBzb21lIHZlcnkgc3BlY2lhbGl6ZWQgZW11bGF0aW9uLiBTdGFuZGFyZCBRRU1VIG9yIEdDRSBhcmUgdXNlbGVzcyBoZXJlLgoKVGhlcmVmb3JlLCBiZWNhdXNlIHRoaXMgY29kZSBpcyB0aWVkIHRvIHNwZWNpZmljIGhhcmR3YXJlIHRoYXQmIzM5O3Mgbm90IGFjY2Vzc2libGUgaW4gYSBzdGFuZGFyZCBmdXp6aW5nIHNldHVwLCBgV29ydGhGdXp6aW5nYCBoYXMgdG8gYmUgYGZhbHNlYC4KCkxldCBtZSBxdWlja2x5IHN1bW1hcml6ZSBteSByZWFzb25pbmcgZm9yIHRoZSByZWNvcmQ6CgoqICAgTW9kaWZpZWQgY29kZTogYGRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL21jc19ydnVfaWYuY2AgKE1hcnZlbGwgT2N0ZW9uVFgyIFJWVSBBZG1pbiBGdW5jdGlvbiBkcml2ZXIpLgoqICAgUGF0Y2g6IEFkZHMgYSBOVUxMIGNoZWNrIGluIGBydnVfbWNzX3B0cF9jZmdgLgoqICAgSGFyZHdhcmUgRGVwZW5kZW5jeTogVmVuZG9yLXNwZWNpZmljIFNtYXJ0TklDIC8gbmV0d29yayBTb0MgZHJpdmVyIHRoYXQgcmVxdWlyZXMgcGh5c2ljYWwgTWFydmVsbCBPY3Rlb25UWDIgLyBDTjEwSyBQQ0llIGhhcmR3YXJlLgoqICAgUmVhY2hhYmlsaXR5OiBTdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQgZnV6emluZyBlbnZpcm9ubWVudHMgKFFFTVUvR0NFKSB3aXRob3V0IHNwZWNpYWxpemVkIGVtdWxhdGlvbi4KKiAgIENvbmNsdXNpb246IGBXb3J0aEZ1enppbmcgPSBmYWxzZWAuCgpBbmQgc2luY2UgYFdvcnRoRnV6emluZ2AgaXMgYGZhbHNlYCwgdGhlIGBFbmFibGVDb25maWdzYCBhbmQgYEZvY3VzU3ltYm9sc2Agd2lsbCBiZSBlbXB0eS4gSSBjYW4gc2V0IHRoZSByZXN1bHRzIG5vdy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMTMgMTQ6MzE8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyBgcnZ1X21jc19wdHBfY2ZnKClgIGluIGBkcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9tY3NfcnZ1X2lmLmNgLCBhZGRpbmcgYSBOVUxMIGNoZWNrIGZvciB0aGUgcG9pbnRlciByZXR1cm5lZCBieSBgbWNzX2dldF9wZGF0YSgpYC4gVGhpcyBjb2RlIGlzIHBhcnQgb2YgdGhlIE1hcnZlbGwgT2N0ZW9uVFgyIFJWVSBBZG1pbiBGdW5jdGlvbiBkcml2ZXIsIHdoaWNoIHJlcXVpcmVzIHZlbmRvci1zcGVjaWZpYyBwaHlzaWNhbCBTbWFydE5JQyAvIFNvQyBBU0lDIGhhcmR3YXJlIChDYXZpdW0vTWFydmVsbCBPY3Rlb25UWDIvQ04xMEsgUENJZSBkZXZpY2VzKSBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgUUVNVS4gQ29uc2VxdWVudGx5LCB0aGUgbW9kaWZpZWQgY29kZSBpcyBzdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUgZm9yIHN5emthbGxlciBmdXp6aW5nLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IG51bGwsCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgYHJ2dV9tY3NfcHRwX2NmZygpYCBpbiBgZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvbWNzX3J2dV9pZi5jYCwgYWRkaW5nIGEgTlVMTCBjaGVjayBmb3IgdGhlIHBvaW50ZXIgcmV0dXJuZWQgYnkgYG1jc19nZXRfcGRhdGEoKWAuIFRoaXMgY29kZSBpcyBwYXJ0IG9mIHRoZSBNYXJ2ZWxsIE9jdGVvblRYMiBSVlUgQWRtaW4gRnVuY3Rpb24gZHJpdmVyLCB3aGljaCByZXF1aXJlcyB2ZW5kb3Itc3BlY2lmaWMgcGh5c2ljYWwgU21hcnROSUMgLyBTb0MgQVNJQyBoYXJkd2FyZSAoQ2F2aXVtL01hcnZlbGwgT2N0ZW9uVFgyL0NOMTBLIFBDSWUgZGV2aWNlcykgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIFFFTVUuIENvbnNlcXVlbnRseSwgdGhlIG1vZGlmaWVkIGNvZGUgaXMgc3RydWN0dXJhbGx5IHVucmVhY2hhYmxlIGZvciBzeXprYWxsZXIgZnV6emluZy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjEvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzEzIDE0OjMxPC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5JZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPC90Ym9keT4KCTwvdGFibGU+CgoJPGRpdiBpZD0ibGxtX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5MTE0gQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBUb2tlbnM8L3RoPgoJCQkJCTx0aD5BdmcgVG9rZW5zPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9ImxsbV9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9InRvb2xfc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPlRvb2wgQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0idG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9ImR1cmF0aW9uX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCTxkaXYgaWQ9InRva2VuX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL2pzYXBpIj48L3NjcmlwdD4KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCQlnb29nbGUubG9hZCgidmlzdWFsaXphdGlvbiIsICIxIiwge3BhY2thZ2VzOlsiY29yZWNoYXJ0Il19KTsKCQlnb29nbGUuc2V0T25Mb2FkQ2FsbGJhY2soZHJhd0NoYXJ0cyk7CgoJCWZ1bmN0aW9uIGRyYXdDaGFydHMoKSB7CgkJCWNvbnN0IHJhd0RhdGEgPSBbeyJTdGFydGVkIjoiMjAyNi0wOS0xM1QxNDozMDo1NS42OTcyOTYwMTVaIiwiU2VxIjowLCJOZXN0aW5nIjowLCJUeXBlIjoiZmxvdyIsIk5hbWUiOiJwYXRjaC10cmlhZ2UiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1OTA2NTg4NzQwNCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJLTVNBTlJlYXNvbmluZ1wiOiBcIlwiLFxuICBcIk5lZWRzS01TQU5cIjogZmFsc2UsXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIGBydnVfbWNzX3B0cF9jZmcoKWAgaW4gYGRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL21jc19ydnVfaWYuY2AsIGFkZGluZyBhIE5VTEwgY2hlY2sgZm9yIHRoZSBwb2ludGVyIHJldHVybmVkIGJ5IGBtY3NfZ2V0X3BkYXRhKClgLiBUaGlzIGNvZGUgaXMgcGFydCBvZiB0aGUgTWFydmVsbCBPY3Rlb25UWDIgUlZVIEFkbWluIEZ1bmN0aW9uIGRyaXZlciwgd2hpY2ggcmVxdWlyZXMgdmVuZG9yLXNwZWNpZmljIHBoeXNpY2FsIFNtYXJ0TklDIC8gU29DIEFTSUMgaGFyZHdhcmUgKENhdml1bS9NYXJ2ZWxsIE9jdGVvblRYMi9DTjEwSyBQQ0llIGRldmljZXMpIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBRRU1VLiBDb25zZXF1ZW50bHksIHRoZSBtb2RpZmllZCBjb2RlIGlzIHN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZSBmb3Igc3l6a2FsbGVyIGZ1enppbmcuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOS0xM1QxNDozMDo1NS42OTczMDM5NTVaIiwiU2VxIjoxLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6InJlYWQtcGF0Y2gtZGlmZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjUzMTI4NDA3NSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiUGF0Y2hEaWZmXCI6IFwiY29tbWl0IDkxMzA2NzIxYzcxY2FkOWU3ZmJiNWNjMWFiZTY1YzY1ODk5M2M5ZWJcXG5BdXRob3I6IHN5ei1jbHVzdGVyIFxcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVxcdTAwM2VcXG5EYXRlOiAgIFN1biBTZXAgMTMgMTQ6MzA6NTQgMjAyNiArMDAwMFxcblxcbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcXG5cXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvbWNzX3J2dV9pZi5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvbWNzX3J2dV9pZi5jXFxuaW5kZXggZmNlMjJlMzE0Y2FjMC4uNWUyNGQ0M2Q1ZmM3OSAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9tY3NfcnZ1X2lmLmNcXG4rKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9tY3NfcnZ1X2lmLmNcXG5AQCAtNTAsNiArNTAsOCBAQCB2b2lkIHJ2dV9tY3NfcHRwX2NmZyhzdHJ1Y3QgcnZ1ICpydnUsIHU4IHJwbV9pZCwgdTggbG1hY19pZCwgYm9vbCBlbmEpXFxuIFxcdC8qIENORjEwSy1CICovXFxuIFxcdGlmIChydnUtXFx1MDAzZW1jc19ibGtfY250IFxcdTAwM2UgMSkge1xcbiBcXHRcXHRtY3MgPSBtY3NfZ2V0X3BkYXRhKHJwbV9pZCk7XFxuK1xcdFxcdGlmICghbWNzKVxcbitcXHRcXHRcXHRyZXR1cm47XFxuIFxcdFxcdGNmZyA9IG1jc19yZWdfcmVhZChtY3MsIE1DU1hfUEVYX1JYX1NMQVZFX1BFWF9DT05GSUdVUkFUSU9OKTtcXG4gXFx0XFx0aWYgKGVuYSlcXG4gXFx0XFx0XFx0Y2ZnIHw9IEJJVF9VTEwobG1hY19pZCk7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTEzVDE0OjMwOjU2LjIyOTI2NDUyWiIsIlNlcSI6MiwiTmVzdGluZyI6MSwiVHlwZSI6ImFnZW50IiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiY29yZSIsIkR1cmF0aW9uIjo1ODUzMzkwMzQ5OCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgYHJ2dV9tY3NfcHRwX2NmZygpYCBpbiBgZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvbWNzX3J2dV9pZi5jYCwgYWRkaW5nIGEgTlVMTCBjaGVjayBmb3IgdGhlIHBvaW50ZXIgcmV0dXJuZWQgYnkgYG1jc19nZXRfcGRhdGEoKWAuIFRoaXMgY29kZSBpcyBwYXJ0IG9mIHRoZSBNYXJ2ZWxsIE9jdGVvblRYMiBSVlUgQWRtaW4gRnVuY3Rpb24gZHJpdmVyLCB3aGljaCByZXF1aXJlcyB2ZW5kb3Itc3BlY2lmaWMgcGh5c2ljYWwgU21hcnROSUMgLyBTb0MgQVNJQyBoYXJkd2FyZSAoQ2F2aXVtL01hcnZlbGwgT2N0ZW9uVFgyL0NOMTBLIFBDSWUgZGV2aWNlcykgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIFFFTVUuIENvbnNlcXVlbnRseSwgdGhlIG1vZGlmaWVkIGNvZGUgaXMgc3RydWN0dXJhbGx5IHVucmVhY2hhYmxlIGZvciBzeXprYWxsZXIgZnV6emluZy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyIGFuZCBzZWN1cml0eSBlbmdpbmVlci5cbllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZXZhbHVhdGUgd2hldGhlciBpdCB3YXJyYW50cyBmdXp6aW5nIHdpdGggc3l6a2FsbGVyLlxuXG5JTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW5cbnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiBpbnRlcm5hbCBhc3N1bXB0aW9ucy4gWW91IG11c3QgYWN0aXZlbHkgdXNlIHlvdXIgY29kZSBhY2Nlc3NcbnRvb2xzIHRvIGluc3BlY3QgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSwgY2FsbGVycywgYW5kIHN1cnJvdW5kaW5nIGNvbnRleHQuXG5cbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4xLiBDT1JFIFRSSUFHRSBQSElMT1NPUEhZXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuVGhlIGdvYWwgb2YgcGF0Y2ggZnV6emluZyBpcyB0byBkaXNjb3ZlciBjcmFzaGVzLCByZWdyZXNzaW9ucywgZXhwb3NlZCBsYXRlbnQgYnVncyxcbmFuZCBuZXdseSB0cmlnZ2VyZWQgYXNzZXJ0aW9ucyBpbnRyb2R1Y2VkIGJ5IHRoZSBwYXRjaCBzZXJpZXMuXG5cbi0gUkVBQ0hBQklMSVRZIElTIFRIRSBQUklNQVJZIEdBVEU6XG4gIEZ1enppbmcgY2FuIG9ubHkgZGlzY292ZXIgYnVncyBpbiBjb2RlIHRoYXQgY2FuIGFjdHVhbGx5IGV4ZWN1dGUgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWRcbiAgZW52aXJvbm1lbnRzIChHQ0Ugb3IgUUVNVSwgdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGRldmljZXMgbGlrZSBVU0IgZ2FkZ2V0cywgbmV0ZGV2LCB0dW4vdGFwKS5cbiAgSWYgdGhlIG1vZGlmaWVkIGNvZGUgaXMgc3RydWN0dXJhbGx5IHVucmVhY2hhYmxlIChzZWUgU2VjdGlvbiAyKSwgaXQgTVVTVCBOT1QgYmUgZnV6emVkLFxuICByZWdhcmRsZXNzIG9mIHdoZXRoZXIgaXQgYWRkcyBhc3NlcnRpb25zIG9yIGNvbXBsZXggbG9naWMuXG5cbi0gRE8gTk9UIEJMSU5ETFkgVFJVU1QgXCJOTyBGVU5DVElPTkFMIENIQU5HRVwiIChORkNJKSBPUiBcIlJFRkFDVE9SSU5HXCIgQ0xBSU1TOlxuICBQYXRjaCBhdXRob3JzIHJvdXRpbmVseSBsYWJlbCBjaGFuZ2VzIGFzIFwiY2xlYW51cHNcIiwgXCJyZWZhY3RvcmluZ3NcIiwgb3Igc3RhdGVcbiAgXCJObyBmdW5jdGlvbmFsIGNoYW5nZSBpbnRlbmRlZFwiLiBEbyBOT1QgdGFrZSB0aGVzZSBjbGFpbXMgYXQgZmFjZSB2YWx1ZS5cbiAgQ29kZSByZWZhY3RvcmluZ3MgdGhhdCByZWFycmFuZ2UgbG9naWMsIGludHJvZHVjZSBoZWxwZXIgZnVuY3Rpb25zLCBvciBhbHRlciBzdGF0ZSBtYW5hZ2VtZW50XG4gIGluIGNvcmUgc3Vic3lzdGVtcyBmcmVxdWVudGx5IGludHJvZHVjZSBzdWJ0bGUgc2VtYW50aWMgc2hpZnRzIG9yIHVuY292ZXIgbGF0ZW50IGtlcm5lbCBidWdzLlxuICBJZiByZWFjaGFibGUgZXhlY3V0YWJsZSBjb2RlIGlzIG1vZGlmaWVkIG9yIHJlZmFjdG9yZWQsIGl0IE1VU1QgYmUgZnV6emVkLlxuXG4tIE5FVyBPUiBNT0RJRklFRCBBU1NFUlRJT05TIElOIFJFQUNIQUJMRSBDT0RFIE1VU1QgQkUgRlVaWkVEOlxuICBXaGVuIGEgcGF0Y2ggaW50cm9kdWNlcyBvciBtb2RpZmllcyBydW50aW1lIGNoZWNrcyBvciBhc3NlcnRpb25zIChlLmcuLCBXQVJOX09OKiwgVk1fV0FSTl9PTiosXG4gIEJVR19PTiosIGxvY2tkZXBfYXNzZXJ0KikgaW4gcmVhY2hhYmxlIGNvZGUgcGF0aHMsIGl0IGVuZm9yY2VzIG5ldyBvciBzdHJpY3RlciBpbnZhcmlhbnRzLlxuICBFdmVuIGlmIHRoZSBhdXRob3IgYmVsaWV2ZXMgdGhlIGludmFyaWFudCBhbHdheXMgaG9sZHMsIGZ1enppbmcgaXMgZXNzZW50aWFsIHRvIHZlcmlmeSB3aGV0aGVyXG4gIGFuIHVudXN1YWwgc2VxdWVuY2Ugb2Ygb3BlcmF0aW9ucyBjYW4gdmlvbGF0ZSBpdC5cblxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbjIuIFdIRU4gVE8gUkVUVVJOIFdvcnRoRnV6emluZz1mYWxzZSAoTkVHQVRJVkUgQ1JJVEVSSUEpXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBPTkxZIElGIGFsbCBtb2RpZmllZCBjb2RlIGZhbGxzIHN0cmljdGx5IGludG8gb25lIG9yIG1vcmUgb2YgdGhlc2UgY2F0ZWdvcmllczpcblxuLSBOb24ta2VybmVsIGFuZCBub24tZXhlY3V0YWJsZSBjaGFuZ2VzOlxuICAqIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIGNvbW1lbnRzLCBvciBzcGVsbGluZyBmaXhlcy5cbiAgKiBVc2VyLXNwYWNlIGRpcmVjdG9yaWVzLCBzZWxmLXRlc3RzLCBzYW1wbGVzLCBvciBzY3JpcHRzIChlLmcuLCB0b29scy8sIHNhbXBsZXMvLCBzY3JpcHRzLywgdXNyLylcbiAgICB0aGF0IGRvIG5vdCBhZmZlY3QgdGhlIGNvbXBpbGVkIGtlcm5lbCBpbWFnZSAodm1saW51eCkgb3Iga2VybmVsIG1vZHVsZXMuXG4gICogUHVyZWx5IGRlY29yYXRpdmUgbG9nZ2luZyAoZS5nLiwgbWVzc2FnZSBzdHJpbmdzIGluIHByX2VyciwgcHJpbnRrLCBkZXZfaW5mbykgb3IgdHJhY2Vwb2ludHNcbiAgICB0aGF0IGRvIG5vdCBhbHRlciBjb250cm9sIGZsb3cgb3IgZGF0YSBzdHJ1Y3R1cmVzLlxuICAqIEJ1aWxkIHN5c3RlbSBvciBLY29uZmlnIGNoYW5nZXMgdGhhdCBkbyBub3QgYWx0ZXIgY29tcGlsZWQgQyBsb2dpYy5cbi0gU3RydWN0dXJhbGx5IHVucmVhY2hhYmxlIGhhcmR3YXJlOlxuICAqIFZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaGVzLCBTbWFydE5JQ3MsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCxcbiAgICBpb25pYywgYW1kZ3B1KSByZXF1aXJpbmcgcGh5c2ljYWwgQVNJQy9QQ0llIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLlxuLSBVbnJlYWNoYWJsZSBleGVjdXRpb24gcGF0aHM6XG4gICogRHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoLnJlbW92ZSwgLnNodXRkb3duLCBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIpIGV4ZWN1dGVkIG9ubHkgZHVyaW5nXG4gICAgcGh5c2ljYWwgUENJIGhvdC11bnBsdWcgb3IgbWFudWFsIHN5c2ZzIGRyaXZlciB1bmJpbmRpbmcuXG4gICogQ29kZSBwYXRocyBleGNsdXNpdmUgdG8gYXJjaGl0ZWN0dXJlcyBvdGhlciB0aGFuIHRoZSB0YXJnZXQgYXJjaGl0ZWN0dXJlLlxuXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuMy4gV0hFTiBUTyBSRVRVUk4gV29ydGhGdXp6aW5nPXRydWUgKFBPU0lUSVZFIENSSVRFUklBKVxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZSB3aGVuZXZlciB0aGUgcGF0Y2ggdG91Y2hlcyByZWFjaGFibGUgZXhlY3V0YWJsZSBjb2RlLCBpbmNsdWRpbmc6XG4tIENvcmUgU3Vic3lzdGVtczpcbiAgKiBBbnkgbG9naWMgbW9kaWZpY2F0aW9ucyBpbiBtZW1vcnkgbWFuYWdlbWVudCAobW0vKSwgc3luY2hyb25pemF0aW9uL2xvY2tpbmcgKGtlcm5lbC9sb2NraW5nLyksXG4gICAgQlBGLCBzY2hlZHVsZXIsIGNvcmUgbmV0d29ya2luZywgVkZTLCBvciBzeXNjYWxsIGhhbmRsaW5nLlxuLSBSZWZhY3RvcmluZ3MgYW5kIENvZGUgQ2xlYW51cHM6XG4gICogQW55IHJlc3RydWN0dXJpbmcgb2YgcmVhY2hhYmxlIGRhdGEgc3RydWN0dXJlcywgaGVscGVyIGFic3RyYWN0aW9ucywgb3IgYWxnb3JpdGhtIGZsb3dzLlxuLSBSdW50aW1lIEFzc2VydGlvbnMgYW5kIERlZmVuc2l2ZSBDaGVja3M6XG4gICogQW55IGludHJvZHVjdGlvbiBvciBhbHRlcmF0aW9uIG9mIGFzc2VydGlvbnMgKFdBUk5fT04qLCBWTV9XQVJOX09OKiwgQlVHX09OKiwgZXRjLikgaW4gcmVhY2hhYmxlIHBhdGhzLlxuLSBSZWFjaGFibGUgRHJpdmVycyBhbmQgUHJvdG9jb2xzOlxuICAqIERyaXZlcnMgYWNjZXNzaWJsZSB2aWEgdmlydHVhbCBidXNlcyAodmlydGlvLCBVU0IgZ2FkZ2V0LCBsb29wYmFjaywgbmV0bGluaywgYmluZGVyLCBzb2NrZXRzLCBldGMuKS5cblxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbjQuIEVYVFJBQ1RJTkcgRm9jdXNTeW1ib2xzIChQUkVWRU5USU5HIERJTFVUSU9OKVxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbldoZW4gV29ydGhGdXp6aW5nPXRydWUsIHlvdSBtdXN0IGV4dHJhY3Qgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyBpbnRvIEZvY3VzU3ltYm9scyB0byBndWlkZSB0aGUgZnV6emVyOlxuXG4tIEFWT0lEIFVCSVFVSVRPVVMgTElGRUNZQ0xFIEhPVC1QQVRIUzpcbiAgRG8gTk9UIGxpc3QgZ2VuZXJpYywgdWJpcXVpdG91cyBmdW5jdGlvbnMgY2FsbGVkIGJ5IGFsbW9zdCBldmVyeSBwcm9ncmFtIGluIHRoZSBjb3JwdXNcbiAgKGluY2x1ZGluZywgYnV0IG5vdCBsaW1pdGVkIHRvOiBnZW5lcmFsIG1lbW9yeSBhbGxvY2F0b3JzIGFuZCBkZWFsbG9jYXRvcnMsIHBhZ2UgZmF1bHRcbiAgYW5kIHRyYXAgaGFuZGxlcnMsIG9yIGNvcmUgc3luY2hyb25pemF0aW9uIHByaW1pdGl2ZXM7IHRoaXMgaXMgbm90IGFuIGV4aGF1c3RpdmUgbGlzdCkuXG4gIExpc3RpbmcgdWJpcXVpdG91cyBmdW5jdGlvbnMgY2F1c2VzIHRoZSBmdXp6ZXIgdG8gY2xhc3NpZnkgdGhvdXNhbmRzIG9mIHVucmVsYXRlZCB0ZXN0cyBhcyBcImZvY3VzZWRcIixcbiAgd2hpY2ggc2V2ZXJlbHkgZGlsdXRlcyBmdXp6aW5nIGVmZm9ydCBhd2F5IGZyb20gdGhlIGFjdHVhbCBjaGFuZ2VzLlxuXG4tIFRBUkdFVCBTUEVDSUZJQyBGRUFUVVJFIExPR0lDIEFORCBFTlRSWVBPSU5UUzpcbiAgTGlzdCBmdW5jdGlvbnMgdGhhdCBzcGVjaWZpY2FsbHkgaW1wbGVtZW50IHRoZSBsb2dpYyBiZWluZyBhZGRlZCBvciBhbHRlcmVkLCBvciBkaXJlY3QgQVBJIGVudHJ5cG9pbnRzXG4gIGZvciB0aGUgc3Vic3lzdGVtIGZlYXR1cmUgdW5kZXIgcmV2aWV3LlxuXG4tIEhBTkRMSU5HIFNUQVRJQyBJTkxJTkUgRlVOQ1RJT05TIElOIEhFQURFUlMgKC5oKTpcbiAgQ29tcGlsZXItaW5saW5lZCBzdGF0aWMgZnVuY3Rpb25zIChzdWNoIGFzIHN0YXRpYyBpbmxpbmVzIGluIG1tLyouaCBvciBpbmNsdWRlL2xpbnV4LyouaCkgbGFja1xuICBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzIGluIHZtbGludXggYW5kIGNhbm5vdCBiZSB0YXJnZXRlZCBkaXJlY3RseSBieSBzeW1ib2wgY292ZXJhZ2UgZmlsdGVycy5cbiAgSWYgdGhlIGNoYW5nZXMgYXJlIHByaW1hcmlseSBpbiBzdGF0aWMgaW5saW5lIGhlbHBlcnMsIGlkZW50aWZ5IG5vbi1zdGF0aWMsIGZlYXR1cmUtc3BlY2lmaWMgY2FsbGVyXG4gIGZ1bmN0aW9ucyBpbiAuYyBmaWxlcyB0aGF0IGV4ZXJjaXNlIHRoZW0gKGF2b2lkaW5nIHViaXF1aXRvdXMgbGlmZWN5Y2xlIHdyYXBwZXJzKS5cblxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbjUuIElERU5USUZZSU5HIEVuYWJsZUNvbmZpZ3Ncbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5JZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IGNvbXBpbGUgYW5kIHJlYWNoIHRoZSBtb2RpZmllZCBjb2RlOlxuLSBJbnNwZWN0IEtjb25maWcgZmlsZXMgYW5kICNpZmRlZiBndWFyZHM7IGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLlxuLSBDaGVjayBcImRlcGVuZHMgb25cIiBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3MgbmVlZGVkLlxuLSBTdHJpcCBhbnkgJ0NPTkZJR18nIHByZWZpeCAoZS5nLiwgcmV0dXJuIFwiTkVUX0lQVjRcIiBpbnN0ZWFkIG9mIFwiQ09ORklHX05FVF9JUFY0XCIpLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiVGFyZ2V0IGFyY2hpdGVjdHVyZTogYW1kNjRcblxuRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgOTEzMDY3MjFjNzFjYWQ5ZTdmYmI1Y2MxYWJlNjVjNjU4OTkzYzllYlxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBTdW4gU2VwIDEzIDE0OjMwOjU0IDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvbWNzX3J2dV9pZi5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvbWNzX3J2dV9pZi5jXG5pbmRleCBmY2UyMmUzMTRjYWMwLi41ZTI0ZDQzZDVmYzc5IDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvbWNzX3J2dV9pZi5jXG4rKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9tY3NfcnZ1X2lmLmNcbkBAIC01MCw2ICs1MCw4IEBAIHZvaWQgcnZ1X21jc19wdHBfY2ZnKHN0cnVjdCBydnUgKnJ2dSwgdTggcnBtX2lkLCB1OCBsbWFjX2lkLCBib29sIGVuYSlcbiBcdC8qIENORjEwSy1CICovXG4gXHRpZiAocnZ1LVx1MDAzZW1jc19ibGtfY250IFx1MDAzZSAxKSB7XG4gXHRcdG1jcyA9IG1jc19nZXRfcGRhdGEocnBtX2lkKTtcbitcdFx0aWYgKCFtY3MpXG4rXHRcdFx0cmV0dXJuO1xuIFx0XHRjZmcgPSBtY3NfcmVnX3JlYWQobWNzLCBNQ1NYX1BFWF9SWF9TTEFWRV9QRVhfQ09ORklHVVJBVElPTik7XG4gXHRcdGlmIChlbmEpXG4gXHRcdFx0Y2ZnIHw9IEJJVF9VTEwobG1hY19pZCk7XG4iLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOS0xM1QxNDozMDo1Ni4yMjkyNjYzOVoiLCJTZXEiOjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy44LWZsYXNoIiwiRHVyYXRpb24iOjc1MzQzMDMyNjgsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoaXMgUGF0Y2g6IEEgUXVpY2sgRGVlcCBEaXZlKipcblxuT2theSwgbGV0J3MgZGl2ZSBpbnRvIHRoaXMgcGF0Y2guIE15IGltbWVkaWF0ZSB0aG91Z2h0IGlzIHRvIHVuZGVyc3RhbmQgdGhlIGltcGxpY2F0aW9ucyB3aXRoaW4gdGhlIE9jdGVvblRYMiBlY29zeXN0ZW0uIFRoZSBkaWZmIGlzIHRhcmdldGluZyBgZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvbWNzX3J2dV9pZi5jYCwgd2hpY2ggdGVsbHMgbWUgd2UncmUgZGVhbGluZyB3aXRoIHRoZSBNYXJ2ZWxsIE9jdGVvbiBUWDIgZmFtaWx5LCBzcGVjaWZpY2FsbHkgdGhlIEFGIChBcHBsaWNhdGlvbiBGYWJyaWMpIGNvbXBvbmVudCwgcHJvYmFibHkgcmVsYXRlZCB0byBuZXR3b3JrIGludGVyZmFjZSBjb25maWd1cmF0aW9uLiBHaXZlbiBteSBleHBlcmllbmNlIHdpdGggdGhlc2UgU29DcywgSSdtIGFscmVhZHkgbWVudGFsbHkgbWFwcGluZyB0aGUgcmVsZXZhbnQgaGFyZHdhcmUgYmxvY2tzLlxuXG5Mb29raW5nIGF0IHRoZSBjb2RlLCBpdCdzIG1vZGlmeWluZyB0aGUgYHJ2dV9tY3NfcHRwX2NmZ2AgZnVuY3Rpb24uIFRoaXMgZnVuY3Rpb24gc2VlbXMgdG8gaGFuZGxlIFByZWNpc2lvbiBUaW1lIFByb3RvY29sIChQVFApIGNvbmZpZ3VyYXRpb24sIHByb2JhYmx5IGZvciBhIHNwZWNpZmljIExNQUMgKExvZ2ljYWwgTUFDKSBJRCB3aXRoaW4gdGhlIE9jdGVvblRYMi4gVGhlIGtleSBjaGFuZ2UgaXMgdGhlIGFkZGl0aW9uIG9mIGEgbnVsbCBjaGVjayBmb3IgYG1jc2AgYmVmb3JlIGFjY2Vzc2luZyBpdHMgbWVtYmVycy4gSXQgYXBwZWFycyB0aGVyZSB3YXMgYSBwb3RlbnRpYWwgZm9yIGEgbnVsbCBwb2ludGVyIGRlcmVmZXJlbmNlIHRoZXJlLiBHaXZlbiB0aGUgY29udGV4dCBvZiB0aGUgYG1jc19nZXRfcGRhdGFgIGZ1bmN0aW9uLCBpdCBtdXN0IGhhdmUgYmVlbiByZXR1cm5pbmcgTlVMTCBpbiBzb21lIHNjZW5hcmlvcy4gVGhlIGludHJvZHVjdGlvbiBvZiB0aGUgbnVsbCBjaGVjayBzZWVtcyBzdHJhaWdodGZvcndhcmQgYnV0LCBJIGFtIGN1cmlvdXMgYXMgdG8gdGhlIHBhcnRpY3VsYXIgY29kZSBwYXRoIHRoYXQgY2FuIHByb2R1Y2UgdGhlIGZhaWx1cmUuXG5cbk15IG5leHQgc3RlcCBpcyB0byBpbnZlc3RpZ2F0ZSB0aGUgS2NvbmZpZyBvcHRpb25zIGZvciB0aGUgYG9jdGVvbnR4Mi9hZmAgZGlyZWN0b3J5IHRvIGdldCBhIGJldHRlciBoYW5kbGUgb24gdGhlIHBvdGVudGlhbCBjb25maWd1cmF0aW9uIHNjZW5hcmlvcyB0aGF0IGxlZCB0byB0aGUgcmVwb3J0ZWQgaXNzdWUgYW5kIHRvIGFzY2VydGFpbiB0aGUgYnJvYWRlciBpbXBsaWNhdGlvbnMgYW5kIGJ1aWxkIGRlcGVuZGVuY2llcy5cblxuXG4iLCJJbnB1dFRva2VucyI6Mjk2OCwiT3V0cHV0VG9rZW5zIjo0NCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjQyMywiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTEzVDE0OjMxOjAzLjc2MzU3MzMzOVoiLCJTZXEiOjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo4ODM5OTM0NCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJtY3NfcnZ1X2lmXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9NYWtlZmlsZT0xMT1ydnVfYWYteSA6PSBjZ3gubyBydnUubyBydnVfY2d4Lm8gcnZ1X25wYS5vIHJ2dV9uaXgubyBcXFxcXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9NYWtlZmlsZS0xMy1cXHRcXHQgIHJ2dV9jcHQubyBydnVfZGV2bGluay5vIHJwbS5vIHJ2dV9jbjEway5vIHJ2dV9zd2l0Y2gubyBcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvTWFrZWZpbGU6MTQ6XFx0XFx0ICBydnVfc2RwLm8gcnZ1X25wY19oYXNoLm8gbWNzLm8gbWNzX3J2dV9pZi5vIG1jc19jbmYxMGtiLm8gXFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL01ha2VmaWxlLTE1LVxcdFxcdCAgcnZ1X3JlcC5vIGNuMjBrL21ib3hfaW5pdC5vIGNuMjBrL25peC5vIGNuMjBrL2RlYnVnZnMubyBcXFxcXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTEzVDE0OjMxOjAzLjg1MTk3OTM2M1oiLCJTZXEiOjUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy44LWZsYXNoIiwiRHVyYXRpb24iOjI2ODQwMTQ1MTAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBteSB0aG91Z2h0IHByb2Nlc3MsIGFzIHJlcXVlc3RlZDpcblxuKipOYXZpZ2F0aW5nIHRoZSBPY3Rlb25UWDIgRXRoZXJuZXQgRHJpdmVyIENvbmZpZ3VyYXRpb24qKlxuXG5Pa2F5LCBzbyBJIG5lZWQgdG8gZmlndXJlIG91dCB0aGUgY29uZmlndXJhdGlvbiBvcHRpb25zIGZvciB0aGUgT2N0ZW9uVFgyIEV0aGVybmV0IGRyaXZlci4gTXkgZmlyc3QgaW5zdGluY3QsIGdpdmVuIG15IGV4cGVyaWVuY2UsIGlzIHRvIHplcm8gaW4gb24gdGhlIGBLY29uZmlnYCBmaWxlcy4gVGhhdCdzIHdoZXJlIGFsbCB0aGUgYnVpbGQtdGltZSBjb25maWd1cmF0aW9uIG1hZ2ljIGhhcHBlbnMsIGRlZmluaW5nIHRoZSBkaWZmZXJlbnQgZmVhdHVyZXMsIHNldHRpbmdzLCBhbmQgZGVwZW5kZW5jaWVzLiBOb3csIHdoZXJlIHdvdWxkIHRoZSByZWxldmFudCBjb25maWd1cmF0aW9ucyAqbGlrZWx5KiBsaXZlPyBDb25zaWRlcmluZyB0aGUgZHJpdmVyJ3MgYXJjaGl0ZWN0dXJlIGFuZCB0aGUgcG9zc2libGUgcHJlc2VuY2Ugb2Ygb2ZmbG9hZCBmdW5jdGlvbmFsaXRpZXMsIEknbGwgc3RhcnQgYnkgY2hlY2tpbmcgZWl0aGVyIHRoZSBtYWluIGBLY29uZmlnYCBmaWxlIHVuZGVyIGBkcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9LY29uZmlnYCBvciwgc2luY2UgdGhlIGBhZmAgZGlyZWN0b3J5IG9mdGVuIGhhbmRsZXMgb2ZmbG9hZCBmZWF0dXJlcywgSSdsbCBhbHNvIGxvb2sgYXQgYGRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL0tjb25maWdgLiBUaGVzZSBzZWVtIGxpa2UgdGhlIG1vc3QgbG9naWNhbCBzdGFydGluZyBwb2ludHMgdG8gZXhhbWluZSB0aGUgYXZhaWxhYmxlIGNvbmZpZ3VyYXRpb25zLiBJIGV4cGVjdCB0byBmaW5kIHRoaW5ncyBsaWtlIGVuYWJsaW5nL2Rpc2FibGluZyBkaWZmZXJlbnQgZmVhdHVyZXMsIGRlZmluaW5nIGJ1ZmZlciBzaXplcywgYW5kIHBlcmhhcHMgZXZlbiBzb21lIGRlYnVnZ2luZyBvcHRpb25zLCBhbGwgY29udHJvbGxlZCBieSB0aGVzZSBLY29uZmlnIGZpbGVzLiBUaW1lIHRvIGRpZyBpbiFcblxuXG4iLCJJbnB1dFRva2VucyI6NDAwNywiT3V0cHV0VG9rZW5zIjozNCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjQ3LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTEzVDE0OjMxOjA2LjUzNTk5ODQ2MloiLCJTZXEiOjYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1NTI2MzY1MiwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJydnVfYWZcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvTWFrZWZpbGU9Nz1vYmotJChDT05GSUdfT0NURU9OVFgyX01CT1gpICs9IHJ2dV9tYm94Lm9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9NYWtlZmlsZTo4Om9iai0kKENPTkZJR19PQ1RFT05UWDJfQUYpICs9IHJ2dV9hZi5vXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvTWFrZWZpbGUtOS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9NYWtlZmlsZT0xMD1ydnVfbWJveC15IDo9IG1ib3gubyBydnVfdHJhY2Uub1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL01ha2VmaWxlOjExOnJ2dV9hZi15IDo9IGNneC5vIHJ2dS5vIHJ2dV9jZ3gubyBydnVfbnBhLm8gcnZ1X25peC5vIFxcXFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9NYWtlZmlsZS0xMi1cXHRcXHQgIHJ2dV9yZWcubyBydnVfbnBjLm8gcnZ1X2RlYnVnZnMubyBwdHAubyBydnVfbnBjX2ZzLm8gXFxcXFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY24yMGsvc3RydWN0Lmg9MTk9ZW51bSBydnVfbWJveF9wZl9pbnRfdmVjX2Uge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY24yMGsvc3RydWN0LmgtMjgtLyogUlZVIEFkbWluIGZ1bmN0aW9uIEludGVycnVwdCBWZWN0b3IgRW51bWVyYXRpb24gKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jbjIway9zdHJ1Y3QuaDoyOTplbnVtIHJ2dV9hZl9jbjIwa19pbnRfdmVjX2Uge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL2NuMjBrL3N0cnVjdC5oLTMwLVxcdFJWVV9BRl9DTjIwS19JTlRfVkVDX1BPSVNPTlxcdFxcdD0gMHgwLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvbWJveC5oPTQ2OD1zdHJ1Y3QgbXNnX3JzcCB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9tYm94LmgtNDc0LSAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL21ib3guaDo0NzU6ZW51bSBydnVfYWZfc3RhdHVzIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9tYm94LmgtNDc2LVxcdFJWVV9JTlZBTElEX1ZGX0lEICAgICAgICAgICA9IC0yNTYsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYy0yNi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYzoyNzojZGVmaW5lIERSVl9OQU1FXFx0XFxcInJ2dV9hZlxcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYy0yOC0jZGVmaW5lIERSVl9TVFJJTkcgICAgICBcXFwiTWFydmVsbCBPY3Rlb25UWDIgUlZVIEFkbWluIEZ1bmN0aW9uIERyaXZlclxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jPTIzMDc9c3RhdGljIHZvaWQgX19ydnVfbWJveF9oYW5kbGVyKHN0cnVjdCBydnVfd29yayAqbXdvcmssIGludCB0eXBlLCBib29sIHBvbGwpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYy0yMzk3LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jOjIzOTg6c3RhdGljIGlubGluZSB2b2lkIHJ2dV9hZnBmX21ib3hfaGFuZGxlcihzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmMtMjM5OS17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYy0yNDA3LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jOjI0MDg6c3RhdGljIGlubGluZSB2b2lkIHJ2dV9hZnZmX21ib3hfaGFuZGxlcihzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmMtMjQwOS17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYz0yNDE1PXN0YXRpYyB2b2lkIF9fcnZ1X21ib3hfdXBfaGFuZGxlcihzdHJ1Y3QgcnZ1X3dvcmsgKm13b3JrLCBpbnQgdHlwZSlcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jLTI0ODItXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmM6MjQ4MzpzdGF0aWMgaW5saW5lIHZvaWQgcnZ1X2FmcGZfbWJveF91cF9oYW5kbGVyKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaylcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYy0yNDg0LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jLTI0ODktXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmM6MjQ5MDpzdGF0aWMgaW5saW5lIHZvaWQgcnZ1X2FmdmZfbWJveF91cF9oYW5kbGVyKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaylcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYy0yNDkxLXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jPTI1NzA9c3RhdGljIGludCBydnVfbWJveF9pbml0KHN0cnVjdCBydnUgKnJ2dSwgc3RydWN0IG1ib3hfd3FfaW5mbyAqbXcsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYy0yNjI1LVxcdGNhc2UgVFlQRV9BRlBGOlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jOjI2MjY6XFx0XFx0bmFtZSA9IFxcXCJydnVfYWZwZl9tYWlsYm94XFxcIjtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYy0yNjI3LVxcdFxcdGRpciA9IE1CT1hfRElSX0FGUEY7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYy0yNjM0LVxcdGNhc2UgVFlQRV9BRlZGOlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jOjI2MzU6XFx0XFx0bmFtZSA9IFxcXCJydnVfYWZ2Zl9tYWlsYm94XFxcIjtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYy0yNjM2LVxcdFxcdGRpciA9IE1CT1hfRElSX1BGVkY7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYz0yODg5PXN0YXRpYyB2b2lkIF9fcnZ1X2Zscl9oYW5kbGVyKHN0cnVjdCBydnUgKnJ2dSwgdTE2IHBjaWZ1bmMpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYy0yOTI5LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jOjI5MzA6c3RhdGljIHZvaWQgcnZ1X2FmdmZfZmxyX2hhbmRsZXIoc3RydWN0IHJ2dSAqcnZ1LCBpbnQgdmYpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmMtMjkzMS17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYz0yOTQ3PXN0YXRpYyB2b2lkIHJ2dV9mbHJfaGFuZGxlcihzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYy0yOTU2LVxcdGlmIChwZiBcXHUwMDNlPSBydnUtXFx1MDAzZWh3LVxcdTAwM2V0b3RhbF9wZnMpIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYzoyOTU3OlxcdFxcdHJ2dV9hZnZmX2Zscl9oYW5kbGVyKHJ2dSwgcGYgLSBydnUtXFx1MDAzZWh3LVxcdTAwM2V0b3RhbF9wZnMpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jLTI5NTgtXFx0XFx0cmV0dXJuO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmMtMjk3Ni1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYzoyOTc3OnN0YXRpYyB2b2lkIHJ2dV9hZnZmX3F1ZXVlX2Zscl93b3JrKHN0cnVjdCBydnUgKnJ2dSwgaW50IHN0YXJ0X3ZmLCBpbnQgbnVtdmZzKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jLTI5Nzgte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmM9MzAwMT1zdGF0aWMgaXJxcmV0dXJuX3QgcnZ1X2Zscl9pbnRyX2hhbmRsZXIoaW50IGlycSwgdm9pZCAqcnZ1X2lycSlcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jLTMwMjQtYWZ2Zl9mbHI6XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmM6MzAyNTpcXHRydnVfYWZ2Zl9xdWV1ZV9mbHJfd29yayhydnUsIDAsIDY0KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYy0zMDI2LVxcdGlmIChydnUtXFx1MDAzZXZmcyBcXHUwMDNlIDY0KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jOjMwMjc6XFx0XFx0cnZ1X2FmdmZfcXVldWVfZmxyX3dvcmsocnZ1LCA2NCwgcnZ1LVxcdTAwM2V2ZnMgLSA2NCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmMtMzAyOC1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jPTMwOTM9c3RhdGljIHZvaWQgcnZ1X3VucmVnaXN0ZXJfaW50ZXJydXB0cyhzdHJ1Y3QgcnZ1ICpydnUpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYy0zMTI0LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jOjMxMjU6c3RhdGljIGludCBydnVfYWZ2Zl9tc2l4X3ZlY3RvcnNfbnVtX29rKHN0cnVjdCBydnUgKnJ2dSlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYy0zMTI2LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jPTMxNDU9c3RhdGljIGludCBydnVfcmVnaXN0ZXJfaW50ZXJydXB0cyhzdHJ1Y3QgcnZ1ICpydnUpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYy0zMjQyLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jOjMyNDM6XFx0aWYgKCFydnVfYWZ2Zl9tc2l4X3ZlY3RvcnNfbnVtX29rKHJ2dSkpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmMtMzI0NC1cXHRcXHRyZXR1cm4gMDtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jPTMzNjA9c3RhdGljIGludCBydnVfZmxyX2luaXQoc3RydWN0IHJ2dSAqcnZ1KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmMtMzM3Mi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYzozMzczOlxcdHJ2dS1cXHUwMDNlZmxyX3dxID0gYWxsb2Nfd29ya3F1ZXVlKFxcXCJydnVfYWZwZl9mbHJcXFwiLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jLTMzNzQtXFx0XFx0XFx0XFx0ICAgICAgV1FfSElHSFBSSSB8IFdRX01FTV9SRUNMQUlNLCAwKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jPTM0NzM9c3RhdGljIGludCBydnVfZW5hYmxlX3NyaW92KHN0cnVjdCBydnUgKnJ2dSlcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jLTM0NzgtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmM6MzQ3OTpcXHRpZiAoIXJ2dV9hZnZmX21zaXhfdmVjdG9yc19udW1fb2socnZ1KSkge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jLTM0ODAtXFx0XFx0ZGV2X3dhcm4oXFx1MDAyNnBkZXYtXFx1MDAzZWRldixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jLTM1MTktXFx0ZXJyID0gcnZ1X21ib3hfaW5pdChydnUsIFxcdTAwMjZydnUtXFx1MDAzZWFmdmZfd3FfaW5mbywgVFlQRV9BRlZGLCB2ZnMsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmM6MzUyMDpcXHRcXHRcXHQgICAgcnZ1X2FmdmZfbWJveF9oYW5kbGVyLCBydnVfYWZ2Zl9tYm94X3VwX2hhbmRsZXIpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jLTM1MjEtXFx0aWYgKGVycilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jPTM1NTg9c3RhdGljIGludCBydnVfcHJvYmUoc3RydWN0IHBjaV9kZXYgKnBkZXYsIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICppZClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jLTM2MzgtXFx0ZXJyID0gcnZ1X21ib3hfaW5pdChydnUsIFxcdTAwMjZydnUtXFx1MDAzZWFmcGZfd3FfaW5mbywgVFlQRV9BRlBGLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jOjM2Mzk6XFx0XFx0XFx0ICAgIHJ2dS1cXHUwMDNlaHctXFx1MDAzZXRvdGFsX3BmcywgcnZ1X2FmcGZfbWJveF9oYW5kbGVyLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jOjM2NDA6XFx0XFx0XFx0ICAgIHJ2dV9hZnBmX21ib3hfdXBfaGFuZGxlcik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmMtMzY0MS1cXHRpZiAoZXJyKSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGV2bGluay5jPTExNjk9c3RhdGljIHZvaWQgcnZ1X2hlYWx0aF9yZXBvcnRlcnNfZGVzdHJveShzdHJ1Y3QgcnZ1ICpydnUpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGV2bGluay5jLTExODEtLyogRGV2bGluayBQYXJhbXMgQVBJcyAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9kZXZsaW5rLmM6MTE4MjpzdGF0aWMgaW50IHJ2dV9hZl9kbF9kd3JyX210dV92YWxpZGF0ZShzdHJ1Y3QgZGV2bGluayAqZGV2bGluaywgdTMyIGlkLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9kZXZsaW5rLmMtMTE4My1cXHRcXHRcXHRcXHQgICAgICAgdW5pb24gZGV2bGlua19wYXJhbV92YWx1ZSAqdmFsLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2RldmxpbmsuYy0xMjIwLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9kZXZsaW5rLmM6MTIyMTpzdGF0aWMgaW50IHJ2dV9hZl9kbF9kd3JyX210dV9zZXQoc3RydWN0IGRldmxpbmsgKmRldmxpbmssIHUzMiBpZCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGV2bGluay5jLTEyMjItXFx0XFx0XFx0XFx0ICBzdHJ1Y3QgZGV2bGlua19wYXJhbV9nc2V0X2N0eCAqY3R4LFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2RldmxpbmsuYy0xMjM1LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9kZXZsaW5rLmM6MTIzNjpzdGF0aWMgaW50IHJ2dV9hZl9kbF9kd3JyX210dV9nZXQoc3RydWN0IGRldmxpbmsgKmRldmxpbmssIHUzMiBpZCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGV2bGluay5jLTEyMzctXFx0XFx0XFx0XFx0ICBzdHJ1Y3QgZGV2bGlua19wYXJhbV9nc2V0X2N0eCAqY3R4LFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2RldmxpbmsuYy0xMjUzLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9kZXZsaW5rLmM6MTI1NDplbnVtIHJ2dV9hZl9kbF9wYXJhbV9pZCB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2RldmxpbmsuYy0xMjU1LVxcdFJWVV9BRl9ERVZMSU5LX1BBUkFNX0lEX0JBU0UgPSBERVZMSU5LX1BBUkFNX0dFTkVSSUNfSURfTUFYLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2RldmxpbmsuYy0xMjY0LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9kZXZsaW5rLmM6MTI2NTpzdGF0aWMgaW50IHJ2dV9hZl9ucGNfZGVmcmFnX2ZlYXR1cmVfZ2V0KHN0cnVjdCBkZXZsaW5rICpkZXZsaW5rLCB1MzIgaWQsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2RldmxpbmsuYy0xMjY2LVxcdFxcdFxcdFxcdFxcdCBzdHJ1Y3QgZGV2bGlua19wYXJhbV9nc2V0X2N0eCAqY3R4LFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2RldmxpbmsuYy0xMjgwLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9kZXZsaW5rLmM6MTI4MTpzdGF0aWMgaW50IHJ2dV9hZl9ucGNfZGVmcmFnKHN0cnVjdCBkZXZsaW5rICpkZXZsaW5rLCB1MzIgaWQsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2RldmxpbmsuYy0xMjgyLVxcdFxcdFxcdCAgICAgc3RydWN0IGRldmxpbmtfcGFyYW1fZ3NldF9jdHggKmN0eCxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9kZXZsaW5rLmMtMTI5Ny1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGV2bGluay5jOjEyOTg6c3RhdGljIGludCBydnVfYWZfbnBjX2RlZnJhZ19mZWF0dXJlX3ZhbGlkYXRlKHN0cnVjdCBkZXZsaW5rICpkZXZsaW5rLCB1MzIgaWQsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2RldmxpbmsuYy0xMjk5LVxcdFxcdFxcdFxcdFxcdCAgICAgIHVuaW9uIGRldmxpbmtfcGFyYW1fdmFsdWUgKnZhbCxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9kZXZsaW5rLmMtMTMyNS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGV2bGluay5jOjEzMjY6c3RhdGljIGludCBydnVfYWZfbnBjX2V4YWN0X2ZlYXR1cmVfZ2V0KHN0cnVjdCBkZXZsaW5rICpkZXZsaW5rLCB1MzIgaWQsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2RldmxpbmsuYy0xMzI3LVxcdFxcdFxcdFxcdFxcdHN0cnVjdCBkZXZsaW5rX3BhcmFtX2dzZXRfY3R4ICpjdHgsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGV2bGluay5jLTEzNDEtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2RldmxpbmsuYzoxMzQyOnN0YXRpYyBpbnQgcnZ1X2FmX25wY19leGFjdF9mZWF0dXJlX2Rpc2FibGUoc3RydWN0IGRldmxpbmsgKmRldmxpbmssIHUzMiBpZCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGV2bGluay5jLTEzNDMtXFx0XFx0XFx0XFx0XFx0ICAgIHN0cnVjdCBkZXZsaW5rX3BhcmFtX2dzZXRfY3R4ICpjdHgsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGV2bGluay5jLTEzNTMtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2RldmxpbmsuYzoxMzU0OnN0YXRpYyBpbnQgcnZ1X2FmX25wY19leGFjdF9mZWF0dXJlX3ZhbGlkYXRlKHN0cnVjdCBkZXZsaW5rICpkZXZsaW5rLCB1MzIgaWQsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2RldmxpbmsuYy0xMzU1LVxcdFxcdFxcdFxcdFxcdCAgICAgdW5pb24gZGV2bGlua19wYXJhbV92YWx1ZSAqdmFsLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2RldmxpbmsuYy0xMzgxLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9kZXZsaW5rLmM6MTM4MjpzdGF0aWMgaW50IHJ2dV9hZl9kbF9ucGNfbWNhbV9oaWdoX3pvbmVfcGVyY2VudF9nZXQoc3RydWN0IGRldmxpbmsgKmRldmxpbmssIHUzMiBpZCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGV2bGluay5jLTEzODMtXFx0XFx0XFx0XFx0XFx0XFx0ICAgIHN0cnVjdCBkZXZsaW5rX3BhcmFtX2dzZXRfY3R4ICpjdHgsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGV2bGluay5jLTEzOTctXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2RldmxpbmsuYzoxMzk4OnN0YXRpYyBpbnQgcnZ1X2FmX2RsX25wY19tY2FtX2hpZ2hfem9uZV9wZXJjZW50X3NldChzdHJ1Y3QgZGV2bGluayAqZGV2bGluaywgdTMyIGlkLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9kZXZsaW5rLmMtMTM5OS1cXHRcXHRcXHRcXHRcXHRcXHQgICAgc3RydWN0IGRldmxpbmtfcGFyYW1fZ3NldF9jdHggKmN0eCxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9kZXZsaW5rLmMtMTQxNi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGV2bGluay5jOjE0MTc6c3RhdGljIGludCBydnVfYWZfZGxfbnBjX21jYW1faGlnaF96b25lX3BlcmNlbnRfdmFsaWRhdGUoc3RydWN0IGRldmxpbmsgKmRldmxpbmssIHUzMiBpZCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGV2bGluay5jLTE0MTgtXFx0XFx0XFx0XFx0XFx0XFx0XFx0IHVuaW9uIGRldmxpbmtfcGFyYW1fdmFsdWUgKnZhbCxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9kZXZsaW5rLmMtMTQ0NC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGV2bGluay5jOjE0NDU6c3RhdGljIGludCBydnVfYWZfZGxfbnBjX2RlZl9ydWxlX2NudHJfZ2V0KHN0cnVjdCBkZXZsaW5rICpkZXZsaW5rLCB1MzIgaWQsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2RldmxpbmsuYy0xNDQ2LVxcdFxcdFxcdFxcdFxcdCAgIHN0cnVjdCBkZXZsaW5rX3BhcmFtX2dzZXRfY3R4ICpjdHgsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGV2bGluay5jLTE0NTYtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2RldmxpbmsuYzoxNDU3OnN0YXRpYyBpbnQgcnZ1X2FmX2RsX25wY19kZWZfcnVsZV9jbnRyX3NldChzdHJ1Y3QgZGV2bGluayAqZGV2bGluaywgdTMyIGlkLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9kZXZsaW5rLmMtMTQ1OC1cXHRcXHRcXHRcXHRcXHQgICBzdHJ1Y3QgZGV2bGlua19wYXJhbV9nc2V0X2N0eCAqY3R4LFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2RldmxpbmsuYy0xNDcxLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9kZXZsaW5rLmM6MTQ3MjpzdGF0aWMgaW50IHJ2dV9hZl9kbF9uaXhfbWF4bGZfZ2V0KHN0cnVjdCBkZXZsaW5rICpkZXZsaW5rLCB1MzIgaWQsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2RldmxpbmsuYy0xNDczLVxcdFxcdFxcdFxcdCAgIHN0cnVjdCBkZXZsaW5rX3BhcmFtX2dzZXRfY3R4ICpjdHgsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGV2bGluay5jLTE0ODMtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2RldmxpbmsuYzoxNDg0OnN0YXRpYyBpbnQgcnZ1X2FmX2RsX25peF9tYXhsZl9zZXQoc3RydWN0IGRldmxpbmsgKmRldmxpbmssIHUzMiBpZCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGV2bGluay5jLTE0ODUtXFx0XFx0XFx0XFx0ICAgc3RydWN0IGRldmxpbmtfcGFyYW1fZ3NldF9jdHggKmN0eCxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9kZXZsaW5rLmMtMTUwNi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGV2bGluay5jOjE1MDc6c3RhdGljIGludCBydnVfYWZfZGxfbml4X21heGxmX3ZhbGlkYXRlKHN0cnVjdCBkZXZsaW5rICpkZXZsaW5rLCB1MzIgaWQsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2RldmxpbmsuYy0xNTA4LVxcdFxcdFxcdFxcdFxcdHVuaW9uIGRldmxpbmtfcGFyYW1fdmFsdWUgKnZhbCxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9kZXZsaW5rLmMtMTU1Ny1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGV2bGluay5jOjE1NTg6c3RhdGljIGNvbnN0IHN0cnVjdCBkZXZsaW5rX3BhcmFtIHJ2dV9hZl9kbF9wYXJhbXNbXSA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGV2bGluay5jLTE1NTktXFx0REVWTElOS19QQVJBTV9EUklWRVIoUlZVX0FGX0RFVkxJTktfUEFSQU1fSURfRFdSUl9NVFUsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGV2bGluay5jLTE1NjEtXFx0XFx0XFx0ICAgICBCSVQoREVWTElOS19QQVJBTV9DTU9ERV9SVU5USU1FKSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGV2bGluay5jOjE1NjI6XFx0XFx0XFx0ICAgICBydnVfYWZfZGxfZHdycl9tdHVfZ2V0LCBydnVfYWZfZGxfZHdycl9tdHVfc2V0LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9kZXZsaW5rLmM6MTU2MzpcXHRcXHRcXHQgICAgIHJ2dV9hZl9kbF9kd3JyX210dV92YWxpZGF0ZSksXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2RldmxpbmsuYy0xNTY0LVxcdERFVkxJTktfUEFSQU1fRFJJVkVSKFJWVV9BRl9ERVZMSU5LX1BBUkFNX0lEX05QQ19NQ0FNX1pPTkVfUEVSQ0VOVCxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9kZXZsaW5rLmMtMTU2Ni1cXHRcXHRcXHQgICAgIEJJVChERVZMSU5LX1BBUkFNX0NNT0RFX1JVTlRJTUUpLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9kZXZsaW5rLmM6MTU2NzpcXHRcXHRcXHQgICAgIHJ2dV9hZl9kbF9ucGNfbWNhbV9oaWdoX3pvbmVfcGVyY2VudF9nZXQsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2RldmxpbmsuYzoxNTY4OlxcdFxcdFxcdCAgICAgcnZ1X2FmX2RsX25wY19tY2FtX2hpZ2hfem9uZV9wZXJjZW50X3NldCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGV2bGluay5jOjE1Njk6XFx0XFx0XFx0ICAgICBydnVfYWZfZGxfbnBjX21jYW1faGlnaF96b25lX3BlcmNlbnRfdmFsaWRhdGUpLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9kZXZsaW5rLmMtMTU3MC1cXHRERVZMSU5LX1BBUkFNX0RSSVZFUihSVlVfQUZfREVWTElOS19QQVJBTV9JRF9OUENfREVGX1JVTEVfQ05UUl9FTkFCTEUsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGV2bGluay5jLTE1NzItXFx0XFx0XFx0ICAgICBCSVQoREVWTElOS19QQVJBTV9DTU9ERV9SVU5USU1FKSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGV2bGluay5jOjE1NzM6XFx0XFx0XFx0ICAgICBydnVfYWZfZGxfbnBjX2RlZl9ydWxlX2NudHJfZ2V0LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9kZXZsaW5rLmM6MTU3NDpcXHRcXHRcXHQgICAgIHJ2dV9hZl9kbF9ucGNfZGVmX3J1bGVfY250cl9zZXQsIE5VTEwpLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9kZXZsaW5rLmMtMTU3NS1cXHRERVZMSU5LX1BBUkFNX0RSSVZFUihSVlVfQUZfREVWTElOS19QQVJBTV9JRF9OSVhfTUFYTEYsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGV2bGluay5jLTE1NzctXFx0XFx0XFx0ICAgICBCSVQoREVWTElOS19QQVJBTV9DTU9ERV9SVU5USU1FKSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGV2bGluay5jOjE1Nzg6XFx0XFx0XFx0ICAgICBydnVfYWZfZGxfbml4X21heGxmX2dldCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGV2bGluay5jOjE1Nzk6XFx0XFx0XFx0ICAgICBydnVfYWZfZGxfbml4X21heGxmX3NldCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGV2bGluay5jOjE1ODA6XFx0XFx0XFx0ICAgICBydnVfYWZfZGxfbml4X21heGxmX3ZhbGlkYXRlKSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGV2bGluay5jLTE1ODEtfTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGV2bGluay5jLTE1ODItXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2RldmxpbmsuYzoxNTgzOnN0YXRpYyBjb25zdCBzdHJ1Y3QgZGV2bGlua19wYXJhbSBydnVfYWZfZGxfcGFyYW1fZXhhY3RfbWF0Y2hbXSA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGV2bGluay5jLTE1ODQtXFx0REVWTElOS19QQVJBTV9EUklWRVIoUlZVX0FGX0RFVkxJTktfUEFSQU1fSURfTlBDX0VYQUNUX0ZFQVRVUkVfRElTQUJMRSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9kZXZsaW5rLmMtMTU4Ni1cXHRcXHRcXHQgICAgIEJJVChERVZMSU5LX1BBUkFNX0NNT0RFX1JVTlRJTUUpLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9kZXZsaW5rLmM6MTU4NzpcXHRcXHRcXHQgICAgIHJ2dV9hZl9ucGNfZXhhY3RfZmVhdHVyZV9nZXQsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2RldmxpbmsuYzoxNTg4OlxcdFxcdFxcdCAgICAgcnZ1X2FmX25wY19leGFjdF9mZWF0dXJlX2Rpc2FibGUsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2RldmxpbmsuYzoxNTg5OlxcdFxcdFxcdCAgICAgcnZ1X2FmX25wY19leGFjdF9mZWF0dXJlX3ZhbGlkYXRlKSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGV2bGluay5jLTE1OTAtfTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9kZXZsaW5rLmM9MTYwOD1zdGF0aWMgaW50IHJ2dV9kZXZsaW5rX2Vzd2l0Y2hfbW9kZV9zZXQoc3RydWN0IGRldmxpbmsgKmRldmxpbmssIHUxNiBtb2RlLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2RldmxpbmsuYy0xNjMzLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9kZXZsaW5rLmM6MTYzNDpzdGF0aWMgaW50IHJ2dV9hZl9kbF9ucGNfc3JjaF9vcmRlcl9zZXQoc3RydWN0IGRldmxpbmsgKmRldmxpbmssIHUzMiBpZCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGV2bGluay5jLTE2MzUtXFx0XFx0XFx0XFx0XFx0c3RydWN0IGRldmxpbmtfcGFyYW1fZ3NldF9jdHggKmN0eCxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9kZXZsaW5rLmMtMTY0NS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGV2bGluay5jOjE2NDY6c3RhdGljIGludCBydnVfYWZfZGxfbnBjX3NyY2hfb3JkZXJfZ2V0KHN0cnVjdCBkZXZsaW5rICpkZXZsaW5rLCB1MzIgaWQsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2RldmxpbmsuYy0xNjQ3LVxcdFxcdFxcdFxcdFxcdHN0cnVjdCBkZXZsaW5rX3BhcmFtX2dzZXRfY3R4ICpjdHgsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGV2bGluay5jLTE2NjEtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2RldmxpbmsuYzoxNjYyOnN0YXRpYyBpbnQgcnZ1X2FmX2RsX25wY19zcmNoX29yZGVyX3ZhbGlkYXRlKHN0cnVjdCBkZXZsaW5rICpkZXZsaW5rLCB1MzIgaWQsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2RldmxpbmsuYy0xNjYzLVxcdFxcdFxcdFxcdFxcdCAgICAgdW5pb24gZGV2bGlua19wYXJhbV92YWx1ZSAqdmFsLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2RldmxpbmsuYz0xNjk5PXN0YXRpYyBjb25zdCBzdHJ1Y3QgZGV2bGlua19vcHMgcnZ1X2Rldmxpbmtfb3BzID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2RldmxpbmsuYy0xNzAzLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9kZXZsaW5rLmM6MTcwNDpzdGF0aWMgY29uc3Qgc3RydWN0IGRldmxpbmtfcGFyYW0gcnZ1X2FmX2RsX2NuMjBrX3BhcmFtc1tdID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9kZXZsaW5rLmMtMTcwNS1cXHRERVZMSU5LX1BBUkFNX0RSSVZFUihSVlVfQUZfREVWTElOS19QQVJBTV9JRF9OUENfU1JDSF9PUkRFUixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9kZXZsaW5rLmMtMTcwNy1cXHRcXHRcXHQgICAgIEJJVChERVZMSU5LX1BBUkFNX0NNT0RFX1JVTlRJTUUpLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9kZXZsaW5rLmM6MTcwODpcXHRcXHRcXHQgICAgIHJ2dV9hZl9kbF9ucGNfc3JjaF9vcmRlcl9nZXQsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2RldmxpbmsuYzoxNzA5OlxcdFxcdFxcdCAgICAgcnZ1X2FmX2RsX25wY19zcmNoX29yZGVyX3NldCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGV2bGluay5jOjE3MTA6XFx0XFx0XFx0ICAgICBydnVfYWZfZGxfbnBjX3NyY2hfb3JkZXJfdmFsaWRhdGUpLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9kZXZsaW5rLmMtMTcxMS1cXHRERVZMSU5LX1BBUkFNX0RSSVZFUihSVlVfQUZfREVWTElOS19QQVJBTV9JRF9OUENfREVGUkFHLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2RldmxpbmsuYy0xNzEzLVxcdFxcdFxcdCAgICAgQklUKERFVkxJTktfUEFSQU1fQ01PREVfUlVOVElNRSksXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2RldmxpbmsuYzoxNzE0OlxcdFxcdFxcdCAgICAgcnZ1X2FmX25wY19kZWZyYWdfZmVhdHVyZV9nZXQsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2RldmxpbmsuYzoxNzE1OlxcdFxcdFxcdCAgICAgcnZ1X2FmX25wY19kZWZyYWcsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2RldmxpbmsuYzoxNzE2OlxcdFxcdFxcdCAgICAgcnZ1X2FmX25wY19kZWZyYWdfZmVhdHVyZV92YWxpZGF0ZSksXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2RldmxpbmsuYy0xNzE3LX07XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGV2bGluay5jPTE3MTk9aW50IHJ2dV9yZWdpc3Rlcl9kbChzdHJ1Y3QgcnZ1ICpydnUpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGV2bGluay5jLTE3NDMtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2RldmxpbmsuYzoxNzQ0OlxcdGVyciA9IGRldmxpbmtfcGFyYW1zX3JlZ2lzdGVyKGRsLCBydnVfYWZfZGxfcGFyYW1zLCBBUlJBWV9TSVpFKHJ2dV9hZl9kbF9wYXJhbXMpKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGV2bGluay5jLTE3NDUtXFx0aWYgKGVycikge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2RldmxpbmsuYy0xNzUxLVxcdGlmIChpc19jbjIwayhydnUtXFx1MDAzZXBkZXYpKSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2RldmxpbmsuYzoxNzUyOlxcdFxcdGVyciA9IGRldmxpbmtfcGFyYW1zX3JlZ2lzdGVyKGRsLCBydnVfYWZfZGxfY24yMGtfcGFyYW1zLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9kZXZsaW5rLmM6MTc1MzpcXHRcXHRcXHRcXHRcXHQgICAgICBBUlJBWV9TSVpFKHJ2dV9hZl9kbF9jbjIwa19wYXJhbXMpKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGV2bGluay5jLTE3NTQtXFx0XFx0aWYgKGVycikge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2RldmxpbmsuYy0xNzY1LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9kZXZsaW5rLmM6MTc2NjpcXHRlcnIgPSBkZXZsaW5rX3BhcmFtc19yZWdpc3RlcihkbCwgcnZ1X2FmX2RsX3BhcmFtX2V4YWN0X21hdGNoLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9kZXZsaW5rLmM6MTc2NzpcXHRcXHRcXHRcXHQgICAgICBBUlJBWV9TSVpFKHJ2dV9hZl9kbF9wYXJhbV9leGFjdF9tYXRjaCkpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9kZXZsaW5rLmMtMTc2OC1cXHRpZiAoZXJyKSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGV2bGluay5jLTE3ODAtXFx0aWYgKGlzX2NuMjBrKHJ2dS1cXHUwMDNlcGRldikpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2RldmxpbmsuYzoxNzgxOlxcdFxcdGRldmxpbmtfcGFyYW1zX3VucmVnaXN0ZXIoZGwsIHJ2dV9hZl9kbF9jbjIwa19wYXJhbXMsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2RldmxpbmsuYzoxNzgyOlxcdFxcdFxcdFxcdFxcdCAgQVJSQVlfU0laRShydnVfYWZfZGxfY24yMGtfcGFyYW1zKSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2RldmxpbmsuYy0xNzgzLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9kZXZsaW5rLmMtMTc4NC1lcnJfZGxfY24yMGtfcGFyYW1zOlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9kZXZsaW5rLmM6MTc4NTpcXHRkZXZsaW5rX3BhcmFtc191bnJlZ2lzdGVyKGRsLCBydnVfYWZfZGxfcGFyYW1zLCBBUlJBWV9TSVpFKHJ2dV9hZl9kbF9wYXJhbXMpKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGV2bGluay5jLTE3ODYtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGV2bGluay5jPTE3OTM9dm9pZCBydnVfdW5yZWdpc3Rlcl9kbChzdHJ1Y3QgcnZ1ICpydnUpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGV2bGluay5jLTE3OTktXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2RldmxpbmsuYzoxODAwOlxcdGRldmxpbmtfcGFyYW1zX3VucmVnaXN0ZXIoZGwsIHJ2dV9hZl9kbF9wYXJhbXMsIEFSUkFZX1NJWkUocnZ1X2FmX2RsX3BhcmFtcykpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9kZXZsaW5rLmMtMTgwMS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGV2bGluay5jLTE4MDItXFx0aWYgKGlzX2NuMjBrKHJ2dS1cXHUwMDNlcGRldikpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2RldmxpbmsuYzoxODAzOlxcdFxcdGRldmxpbmtfcGFyYW1zX3VucmVnaXN0ZXIoZGwsIHJ2dV9hZl9kbF9jbjIwa19wYXJhbXMsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2RldmxpbmsuYzoxODA0OlxcdFxcdFxcdFxcdFxcdCAgQVJSQVlfU0laRShydnVfYWZfZGxfY24yMGtfcGFyYW1zKSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2RldmxpbmsuYy0xODA1LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2RldmxpbmsuYy0xODA3LVxcdGlmIChydnVfbnBjX2V4YWN0X2hhc19tYXRjaF90YWJsZShydnUpKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9kZXZsaW5rLmM6MTgwODpcXHRcXHRkZXZsaW5rX3BhcmFtc191bnJlZ2lzdGVyKGRsLCBydnVfYWZfZGxfcGFyYW1fZXhhY3RfbWF0Y2gsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2RldmxpbmsuYzoxODA5OlxcdFxcdFxcdFxcdFxcdCAgQVJSQVlfU0laRShydnVfYWZfZGxfcGFyYW1fZXhhY3RfbWF0Y2gpKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGV2bGluay5jLTE4MTAtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfc3RydWN0Lmg9NDM9ZW51bSBydnVfYmxvY2tfdHlwZV9lIHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9zdHJ1Y3QuaC01OS0vKiBSVlUgQWRtaW4gZnVuY3Rpb24gSW50ZXJydXB0IFZlY3RvciBFbnVtZXJhdGlvbiAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9zdHJ1Y3QuaDo2MDplbnVtIHJ2dV9hZl9pbnRfdmVjX2Uge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9zdHJ1Y3QuaC02MS1cXHRSVlVfQUZfSU5UX1ZFQ19QT0lTT04gPSAweDAsXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTEzVDE0OjMxOjA2LjU5MTI2OTEzNVoiLCJTZXEiOjcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy44LWZsYXNoIiwiRHVyYXRpb24iOjI1MTEwOTY5ODYsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBteSBzdW1tYXJ5LCBhcyB0aG91Z2ggSSdtIHRoaW5raW5nIHRocm91Z2ggdGhpcyBwcm9jZXNzOlxuXG4qKkRpdmluZyBpbnRvIHRoZSBNYXJ2ZWxsIE9jdGVvbiBUWDIgRXRoZXJuZXQgRHJpdmVyIENvbmZpZ3VyYXRpb24qKlxuXG5Pa2F5LCB0aW1lIHRvIGdldCBhIGhhbmRsZSBvbiB0aGUgY29uZmlndXJhdGlvbiBvcHRpb25zIGZvciB0aGlzIE9jdGVvbiBUWDIgZXRoZXJuZXQgZHJpdmVyLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCB3aGF0IGtub2JzIGFyZSBhdmFpbGFibGUsIHdoYXQgZmVhdHVyZXMgY2FuIGJlIGVuYWJsZWQgb3IgZGlzYWJsZWQsIGFuZCBob3cgZXZlcnl0aGluZyBpcyBzdHJ1Y3R1cmVkLiBUaGUgZmlyc3QgcGxhY2UgdG8gbG9vaywgb2YgY291cnNlLCBpcyB0aGUgS2NvbmZpZyBmaWxlLiBMZXQncyBzdGFydCBieSBuYXZpZ2F0aW5nIHRvIGBkcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9LY29uZmlnYC4gSG9wZWZ1bGx5LCB0aGlzIHdpbGwgZ2l2ZSBtZSBhIGNsZWFyIHBpY3R1cmUgb2YgdGhlIGJ1aWxkLXRpbWUgY29uZmlndXJhdGlvbiBwYXJhbWV0ZXJzIEkgY2FuIHR3ZWFrLiBJJ20gZXhwZWN0aW5nIHRvIGZpbmQgb3B0aW9ucyBmb3IgdGhpbmdzIGxpa2UgZmxvdyBjb250cm9sLCBqdW1ibyBmcmFtZXMsIGNoZWNrc3VtIG9mZmxvYWQsIG1heWJlIGV2ZW4gc3BlY2lmaWMgaGFyZHdhcmUgcmV2aXNpb25zIG9yIFBIWSB0eXBlcy4gVGhpcyBpcyB0aGUgYmVkcm9jayBvZiB0aGUgY29uZmlndXJhdGlvbiwgc28gdGhpcyBpcyB3aGVyZSBJIG5lZWQgdG8gc3RhcnQuIEZyb20gaGVyZSwgSSBjYW4gZ2V0IGEgZmVlbCBmb3IgdGhlIHVuZGVybHlpbmcgYXJjaGl0ZWN0dXJlIGFuZCBob3cgdG8gcHJvcGVybHkgY29uZmlndXJlIHRoaXMgZHJpdmVyIGZvciBpdHMgdmFyaW91cyB1c2UgY2FzZXMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjE0NTY0LCJPdXRwdXRUb2tlbnMiOjM2LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjQsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDktMTNUMTQ6MzE6MDkuMTAyMzcxNDJaIiwiU2VxIjo4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NTQzOTgwOTIsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY29uZmlnIE9DVEVPTlRYMlwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9LY29uZmlnLTUtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvS2NvbmZpZzo2OmNvbmZpZyBPQ1RFT05UWDJfTUJPWFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL0tjb25maWctNy1cXHR0cmlzdGF0ZVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL0tjb25maWctOC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9LY29uZmlnOjk6Y29uZmlnIE9DVEVPTlRYMl9BRlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL0tjb25maWctMTAtXFx0dHJpc3RhdGUgXFxcIk1hcnZlbGwgT2N0ZW9uVFgyIFJWVSBBZG1pbiBGdW5jdGlvbiBkcml2ZXJcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9LY29uZmlnPTIyPWNvbmZpZyBORENfRElTX0RZTkFNSUNfQ0FDSElOR1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvS2NvbmZpZy0zMC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9LY29uZmlnOjMxOmNvbmZpZyBPQ1RFT05UWDJfUEZcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9LY29uZmlnLTMyLVxcdHRyaXN0YXRlIFxcXCJNYXJ2ZWxsIE9jdGVvblRYMiBOSUMgUGh5c2ljYWwgRnVuY3Rpb24gZHJpdmVyXFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvS2NvbmZpZy00NC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9LY29uZmlnOjQ1OmNvbmZpZyBPQ1RFT05UWDJfVkZcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9LY29uZmlnLTQ2LVxcdHRyaXN0YXRlIFxcXCJNYXJ2ZWxsIE9jdGVvblRYMiBOSUMgVmlydHVhbCBGdW5jdGlvbiBkcml2ZXJcXFwiXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTEzVDE0OjMxOjA5LjE1Njc3Njg4MloiLCJTZXEiOjksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy44LWZsYXNoIiwiRHVyYXRpb24iOjMwMDM2OTE5ODMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBteSB0YWtlIG9uIHRoZSBgZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvS2NvbmZpZ2AgZmlsZTpcblxuKipEaXZpbmcgaW50byB0aGUgT2N0ZW9uIFRYMiBLY29uZmlnKipcblxuT2theSwgc28gSSdtIGFib3V0IHRvIGRpZyBpbnRvIHRoZSBjb25maWd1cmF0aW9uIGZpbGUgZm9yIHRoZSBPY3Rlb24gVFgyIEV0aGVybmV0IGRyaXZlci4gTXkgZXhwZWN0YXRpb24gaXMgdGhpcyBpcyB3aGVyZSB0aGUgbWVhdCBvZiB0aGUgZHJpdmVyJ3MgYnVpbGQtdGltZSBvcHRpb25zIGFuZCBkZXBlbmRlbmNpZXMgd2lsbCByZXNpZGUuIEknbSBsb29raW5nIGZvciB0aGUgdXN1YWwgc3VzcGVjdHM6IGZlYXR1cmUgZmxhZ3MsIG1vZHVsZSBzZWxlY3Rpb24sIGFuZCBhbnkgcGxhdGZvcm0tc3BlY2lmaWMgY29uZmlndXJhdGlvbnMuIEknbGwgbmVlZCB0byB1bmRlcnN0YW5kIHdoYXQgYXNwZWN0cyBhcmUgY29uZmlndXJhYmxlLCB3aGljaCBmZWF0dXJlcyBhcmUgZW5hYmxlZCBvciBkaXNhYmxlZCBieSBkZWZhdWx0LCBhbmQgaG93IHRoZSBkcml2ZXIgaW50ZXJhY3RzIHdpdGggdGhlIHJlc3Qgb2YgdGhlIGtlcm5lbCBidWlsZCBzeXN0ZW0uIFRoaXMgaXMgY3J1Y2lhbCBmb3IgY3VzdG9taXppbmcgdGhlIGRyaXZlciB0byBzcGVjaWZpYyBoYXJkd2FyZSBjb25maWd1cmF0aW9ucyBvciBwZXJmb3JtYW5jZSByZXF1aXJlbWVudHMsIGFuZCBmb3IgcmVzb2x2aW5nIGFueSBidWlsZCBjb25mbGljdHMgaWYgdGhlIHByb2plY3QgaXMgYmVpbmcgY29tcGlsZWQgZm9yIGEgZGlmZmVyZW50IHRhcmdldC4gSSdsbCBzdGFydCB3aXRoIHRoZSBmaWxlJ3Mgc3RydWN0dXJlLiBJJ2xsIHBheSBjbG9zZSBhdHRlbnRpb24gdG8gdGhlIGRlcGVuZGVuY2llcyBhbmQgYW55IGBzZWxlY3RgIHN0YXRlbWVudHMsIHNpbmNlIHRob3NlIHdpbGwgZGljdGF0ZSB3aGljaCBvdGhlciBwYXJ0cyBvZiB0aGUgZHJpdmVyIG9yIGtlcm5lbCBhcmUgcHVsbGVkIGluIGJhc2VkIG9uIG15IGNob2ljZXMuIEl0IHdpbGwgYmUgaGVscGZ1bCB0byBzZWUgYW55IGNvbW1lbnRzLCBzaW5jZSB0aGVzZSBjb250YWluIHZpdGFsIGluZm9ybWF0aW9uLiBJJ20gY3VyaW91cyB3aGF0IGtpbmQgb2YgZ3JhbnVsYXJpdHkgdGhleSBvZmZlci4gSSdtIGFsc28gbG9va2luZyBmb3IgYW55IGNsdWVzIHJlZ2FyZGluZyB3aGF0J3MgY29uc2lkZXJlZCBleHBlcmltZW50YWwgb3Igbm90IHlldCBmdWxseSBiYWtlZC4gRmluYWxseSwgSSdsbCBuZWVkIHRvIGNyb3NzLXJlZmVyZW5jZSB0aGlzIHdpdGggdGhlIGRyaXZlciBjb2RlIGl0c2VsZiB0byBmdWxseSBncmFzcCB0aGUgcmFtaWZpY2F0aW9ucyBvZiBlYWNoIGNvbmZpZ3VyYXRpb24gb3B0aW9uLiBMZXQncyBzZWUgd2hhdCB3ZSd2ZSBnb3QuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjE1MjQ3LCJPdXRwdXRUb2tlbnMiOjQ0LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjQsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDktMTNUMTQ6MzE6MTIuMTYwNDcyMjY1WiIsIlNlcSI6MTAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InJlYWQtZmlsZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjgxMjYwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRmlsZVwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL0tjb25maWdcIixcbiAgXCJGaXJzdExpbmVcIjogMSxcbiAgXCJMaW5lQ291bnRcIjogNjBcbn0iLCJSZXN1bHRzIjoie1xuICBcIkNvbnRlbnRzXCI6IFwiICAgMTpcXHQjIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHlcXG4gICAyOlxcdCNcXG4gICAzOlxcdCMgTWFydmVsbCBSVlUgTmV0d29yayBkcml2ZXJzIGNvbmZpZ3VyYXRpb25cXG4gICA0OlxcdCNcXG4gICA1OlxcdFxcbiAgIDY6XFx0Y29uZmlnIE9DVEVPTlRYMl9NQk9YXFxuICAgNzpcXHRcXHR0cmlzdGF0ZVxcbiAgIDg6XFx0XFxuICAgOTpcXHRjb25maWcgT0NURU9OVFgyX0FGXFxuICAxMDpcXHRcXHR0cmlzdGF0ZSBcXFwiTWFydmVsbCBPY3Rlb25UWDIgUlZVIEFkbWluIEZ1bmN0aW9uIGRyaXZlclxcXCJcXG4gIDExOlxcdFxcdHNlbGVjdCBPQ1RFT05UWDJfTUJPWFxcbiAgMTI6XFx0XFx0c2VsZWN0IE5FVF9ERVZMSU5LXFxuICAxMzpcXHRcXHRkZXBlbmRzIG9uICg2NEJJVCBcXHUwMDI2XFx1MDAyNiBDT01QSUxFX1RFU1QpIHx8IEFSTTY0XFxuICAxNDpcXHRcXHRkZXBlbmRzIG9uIFBDSVxcbiAgMTU6XFx0XFx0ZGVwZW5kcyBvbiBQVFBfMTU4OF9DTE9DS19PUFRJT05BTFxcbiAgMTY6XFx0XFx0aGVscFxcbiAgMTc6XFx0XFx0ICBUaGlzIGRyaXZlciBzdXBwb3J0cyBNYXJ2ZWxsJ3MgT2N0ZW9uVFgyIFJlc291cmNlIFZpcnR1YWxpemF0aW9uXFxuICAxODpcXHRcXHQgIFVuaXQncyBhZG1pbiBmdW5jdGlvbiBtYW5hZ2VyIHdoaWNoIG1hbmFnZXMgYWxsIFJWVSBIVyByZXNvdXJjZXNcXG4gIDE5OlxcdFxcdCAgYW5kIHByb3ZpZGVzIGEgbWVkaXVtIHRvIG90aGVyIFBGL1ZGcyB0byBjb25maWd1cmUgSFcuIFNob3VsZCBiZVxcbiAgMjA6XFx0XFx0ICBlbmFibGVkIGZvciBvdGhlciBSVlUgZGV2aWNlIGRyaXZlcnMgdG8gd29yay5cXG4gIDIxOlxcdFxcbiAgMjI6XFx0Y29uZmlnIE5EQ19ESVNfRFlOQU1JQ19DQUNISU5HXFxuICAyMzpcXHRcXHRib29sIFxcXCJEaXNhYmxlIGNhY2hpbmcgb2YgZHluYW1pYyBlbnRyaWVzIGluIE5EQ1xcXCJcXG4gIDI0OlxcdFxcdGRlcGVuZHMgb24gT0NURU9OVFgyX0FGXFxuICAyNTpcXHRcXHRkZWZhdWx0IG5cXG4gIDI2OlxcdFxcdGhlbHBcXG4gIDI3OlxcdFxcdCAgVGhpcyBjb25maWcgb3B0aW9uIGRpc2FibGVzIGNhY2hpbmcgb2YgZHluYW1pYyBlbnRyaWVzIHN1Y2ggYXMgTklYIFNRRXNcXG4gIDI4OlxcdFxcdCAgLCBOUEEgc3RhY2sgcGFnZXMgZXRjIGluIE5EQy4gQWxzbyBsb2NrcyBkb3duIE5JWCBTUS9DUS9SUS9SU1MgYW5kXFxuICAyOTpcXHRcXHQgIE5QQSBBdXJhL1Bvb2wgY29udGV4dHMuXFxuICAzMDpcXHRcXG4gIDMxOlxcdGNvbmZpZyBPQ1RFT05UWDJfUEZcXG4gIDMyOlxcdFxcdHRyaXN0YXRlIFxcXCJNYXJ2ZWxsIE9jdGVvblRYMiBOSUMgUGh5c2ljYWwgRnVuY3Rpb24gZHJpdmVyXFxcIlxcbiAgMzM6XFx0XFx0c2VsZWN0IE9DVEVPTlRYMl9NQk9YXFxuICAzNDpcXHRcXHRzZWxlY3QgTkVUX0RFVkxJTktcXG4gIDM1OlxcdFxcdHNlbGVjdCBQQUdFX1BPT0xcXG4gIDM2OlxcdFxcdHNlbGVjdCBDUllQVE9fTElCX0FFUyBpZiBNQUNTRUNcXG4gIDM3OlxcdFxcdGRlcGVuZHMgb24gKDY0QklUIFxcdTAwMjZcXHUwMDI2IENPTVBJTEVfVEVTVCkgfHwgQVJNNjRcXG4gIDM4OlxcdFxcdHNlbGVjdCBESU1MSUJcXG4gIDM5OlxcdFxcdGRlcGVuZHMgb24gUENJXFxuICA0MDpcXHRcXHRkZXBlbmRzIG9uIFBUUF8xNTg4X0NMT0NLX09QVElPTkFMXFxuICA0MTpcXHRcXHRkZXBlbmRzIG9uIE1BQ1NFQyB8fCAhTUFDU0VDXFxuICA0MjpcXHRcXHRoZWxwXFxuICA0MzpcXHRcXHQgIFRoaXMgZHJpdmVyIHN1cHBvcnRzIE1hcnZlbGwncyBPY3Rlb25UWDIgTklDIHBoeXNpY2FsIGZ1bmN0aW9uLlxcbiAgNDQ6XFx0XFxuICA0NTpcXHRjb25maWcgT0NURU9OVFgyX1ZGXFxuICA0NjpcXHRcXHR0cmlzdGF0ZSBcXFwiTWFydmVsbCBPY3Rlb25UWDIgTklDIFZpcnR1YWwgRnVuY3Rpb24gZHJpdmVyXFxcIlxcbiAgNDc6XFx0XFx0ZGVwZW5kcyBvbiBPQ1RFT05UWDJfUEZcXG4gIDQ4OlxcdFxcdGhlbHBcXG4gIDQ5OlxcdFxcdCAgVGhpcyBkcml2ZXIgc3VwcG9ydHMgTWFydmVsbCdzIE9jdGVvblRYMiBOSUMgdmlydHVhbCBmdW5jdGlvbi5cXG4gIDUwOlxcdFxcbiAgNTE6XFx0Y29uZmlnIFJWVV9FU1dJVENIXFxuICA1MjpcXHRcXHR0cmlzdGF0ZSBcXFwiTWFydmVsbCBSVlUgRS1Td2l0Y2ggc3VwcG9ydFxcXCJcXG4gIDUzOlxcdFxcdGRlcGVuZHMgb24gT0NURU9OVFgyX1BGXFxuICA1NDpcXHRcXHRkZWZhdWx0IG1cXG4gIDU1OlxcdFxcdGhlbHBcXG4gIDU2OlxcdFxcdCAgVGhpcyBkcml2ZXIgc3VwcG9ydHMgTWFydmVsbCdzIFJWVSBFLVN3aXRjaCB0aGF0XFxuICA1NzpcXHRcXHQgIHByb3ZpZGVzIGludGVybmFsIFNSSU9WIHBhY2tldCBzdGVlcmluZyBhbmQgc3dpdGNoaW5nLlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOS0xM1QxNDozMToxMi4xNjA1NTYzMDZaIiwiU2VxIjoxMSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjgtZmxhc2giLCJEdXJhdGlvbiI6MTE2NzI1Njg3MTgsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBNYXJ2ZWxsIE9jdGVvblRYMiBEcml2ZXIqKlxuXG5Pa2F5LCBsZXQncyBicmVhayB0aGlzIGRvd24uIEZpcnN0LCBJIHNlZSB0aGUgZGVwZW5kZW5jeTogYCg2NEJJVCBcdTAwMjZcdTAwMjYgQ09NUElMRV9URVNUKSB8fCBBUk02NGAuIFRoYXQgdGVsbHMgbWUgdGhpcyBtb2R1bGUgaXMgbGlrZWx5IHRhcmdldGVkIHRvd2FyZHMgNjQtYml0IGFyY2hpdGVjdHVyZXMsIGFuZCBwb3NzaWJseSBpbmNsdWRlcyBzb21lIHRlc3Rpbmcgb3IgYnVpbGQtdGltZSBjaGVja3MsIG9yIEFSTTY0LiBJbnRlcmVzdGluZy4gVGhlbiBJIHNwb3QgdGhlIGBQQ0lgIGRlcGVuZGVuY3kuIFRoYXQgaW1tZWRpYXRlbHkgbmFycm93cyBkb3duIHRoZSBoYXJkd2FyZSBpbnRlcmFjdGlvbjsgdGhpcyB0aGluZyBpcyBkZWFsaW5nIHdpdGggUGVyaXBoZXJhbCBDb21wb25lbnQgSW50ZXJjb25uZWN0LCB3aGljaCBpcyBubyBzdXJwcmlzZSBnaXZlbiBpdHMgbGlrZWx5IHJvbGUgaW4gbmV0d29yayBhY2NlbGVyYXRpb24uXG5cblRoZW4gSSByZWFkIHRoZSBkcml2ZXIgZGVzY3JpcHRpb246IFwiVGhpcyBkcml2ZXIgc3VwcG9ydHMgTWFydmVsbCdzIE9jdGVvblRYMiBSZXNvdXJjZSBWaXJ0dWFsaXphdGlvbiBVbml0J3MgYWRtaW4gZnVuY3Rpb24gbWFuYWdlciB3aGljaCBtYW5hZ2VzIGFsbCBSVlUgSFcgcmVzb3VyY2VzIGFuZCBwcm92aWRlcyBhIG1lZGl1bSB0byBvdGhlciBQRi9WRnMgdG8gY29uZmlndXJlIEhXLlwiIFJpZ2h0LCBiaW5nbyEgVGhhdCdzIHRoZSBrZXkuIFRoaXMgaXMgYSBkcml2ZXIgc3BlY2lmaWNhbGx5IGZvciB0aGUgTWFydmVsbCBPY3Rlb25UWDIsIG9yIHBlcmhhcHMgYSBDTjlLL0NOMTBLIGNoaXAuIEl0J3MgaGFuZGxpbmcgdGhlIFJlc291cmNlIFZpcnR1YWxpemF0aW9uIFVuaXQgKFJWVSkg4oCTIHByb2JhYmx5IG1hbmFnaW5nIHRoZSBoYXJkd2FyZSByZXNvdXJjZXMgYW5kIHByb3ZpZGluZyBjb25maWd1cmF0aW9uIGludGVyZmFjZXMgZm9yIG90aGVyIGZ1bmN0aW9ucy5cblxuVGltZSB0byBkaXZlIGluLiBJJ20gZ29pbmcgdG8gd2FudCB0byBmb2N1cyBvbiBgbWNzX3J2dV9pZi5jYCBhbmQgdGFrZSBhIGxvb2sgYXQgYHJ2dV9tY3NfcHRwX2NmZ2AuIFRoZXNlIGFyZSBwcm9iYWJseSB0aGUgY29yZSBmaWxlcyB0aGF0IGRlZmluZSB0aGUgaW50ZXJmYWNlIGFuZCBQVFAgKFByZWNpc2lvbiBUaW1lIFByb3RvY29sKSBjb25maWd1cmF0aW9uIGZvciB0aGUgUlZVLiBUaGF0J3Mgd2hlcmUgdGhlIHJlYWwgbWVhdCBvZiB0aGUgbG9naWMgd2lsbCBiZS4gTGV0J3Mgc2VlIHdoYXQgdGhleSdyZSBkb2luZy4uLlxuXG5cbiIsIklucHV0VG9rZW5zIjoxNjQzMywiT3V0cHV0VG9rZW5zIjo1MywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjEzMiwiVG9vbENhbGxzIjpbInJlYWQtZmlsZSJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTEzVDE0OjMxOjIzLjgzMzEyOTI3NFoiLCJTZXEiOjEyLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJyZWFkLWZpbGUiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo5NjY0MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkZpbGVcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9tY3NfcnZ1X2lmLmNcIixcbiAgXCJGaXJzdExpbmVcIjogNDAsXG4gIFwiTGluZUNvdW50XCI6IDQwXG59IiwiUmVzdWx0cyI6IntcbiAgXCJDb250ZW50c1wiOiBcIiAgNDA6XFx0XFx0dTggcG9ydDtcXG4gIDQxOlxcdFxcbiAgNDI6XFx0XFx0aWYgKCFydnUtXFx1MDAzZW1jc19ibGtfY250KVxcbiAgNDM6XFx0XFx0XFx0cmV0dXJuO1xcbiAgNDQ6XFx0XFxuICA0NTpcXHRcXHQvKiBXaGVuIHB0cCBpcyBlbmFibGVkLCBSUE0gYXBwZW5kcyA4QiBoZWFkZXIgZm9yIGFsbFxcbiAgNDY6XFx0XFx0ICogUlggcGFja2V0cy4gTUNTIFBFWCBuZWVkIHRvIGNvbmZpZ3VyZSB0byBza2lwIDhCXFxuICA0NzpcXHRcXHQgKiBkdXJpbmcgcGFja2V0IHBhcnNpbmcuXFxuICA0ODpcXHRcXHQgKi9cXG4gIDQ5OlxcdFxcbiAgNTA6XFx0XFx0LyogQ05GMTBLLUIgKi9cXG4gIDUxOlxcdFxcdGlmIChydnUtXFx1MDAzZW1jc19ibGtfY250IFxcdTAwM2UgMSkge1xcbiAgNTI6XFx0XFx0XFx0bWNzID0gbWNzX2dldF9wZGF0YShycG1faWQpO1xcbiAgNTM6XFx0XFx0XFx0aWYgKCFtY3MpXFxuICA1NDpcXHRcXHRcXHRcXHRyZXR1cm47XFxuICA1NTpcXHRcXHRcXHRjZmcgPSBtY3NfcmVnX3JlYWQobWNzLCBNQ1NYX1BFWF9SWF9TTEFWRV9QRVhfQ09ORklHVVJBVElPTik7XFxuICA1NjpcXHRcXHRcXHRpZiAoZW5hKVxcbiAgNTc6XFx0XFx0XFx0XFx0Y2ZnIHw9IEJJVF9VTEwobG1hY19pZCk7XFxuICA1ODpcXHRcXHRcXHRlbHNlXFxuICA1OTpcXHRcXHRcXHRcXHRjZmcgXFx1MDAyNj0gfkJJVF9VTEwobG1hY19pZCk7XFxuICA2MDpcXHRcXHRcXHRtY3NfcmVnX3dyaXRlKG1jcywgTUNTWF9QRVhfUlhfU0xBVkVfUEVYX0NPTkZJR1VSQVRJT04sIGNmZyk7XFxuICA2MTpcXHRcXHRcXHRyZXR1cm47XFxuICA2MjpcXHRcXHR9XFxuICA2MzpcXHRcXHQvKiBDTjEwS0IgKi9cXG4gIDY0OlxcdFxcdG1jcyA9IG1jc19nZXRfcGRhdGEoMCk7XFxuICA2NTpcXHRcXHRwb3J0ID0gKHJwbV9pZCAqIHJ2dS1cXHUwMDNlaHctXFx1MDAzZWxtYWNfcGVyX2NneCkgKyBsbWFjX2lkO1xcbiAgNjY6XFx0XFx0Y2ZnID0gbWNzX3JlZ19yZWFkKG1jcywgTUNTWF9QRVhfUlhfU0xBVkVfUE9SVF9DRkdYKHBvcnQpKTtcXG4gIDY3OlxcdFxcdGlmIChlbmEpXFxuICA2ODpcXHRcXHRcXHRjZmcgfD0gQklUX1VMTCgwKTtcXG4gIDY5OlxcdFxcdGVsc2VcXG4gIDcwOlxcdFxcdFxcdGNmZyBcXHUwMDI2PSB+QklUX1VMTCgwKTtcXG4gIDcxOlxcdFxcdG1jc19yZWdfd3JpdGUobWNzLCBNQ1NYX1BFWF9SWF9TTEFWRV9QT1JUX0NGR1gocG9ydCksIGNmZyk7XFxuICA3MjpcXHR9XFxuICA3MzpcXHRcXG4gIDc0OlxcdGludCBydnVfbWJveF9oYW5kbGVyX21jc19zZXRfbG1hY19tb2RlKHN0cnVjdCBydnUgKnJ2dSxcXG4gIDc1OlxcdFxcdFxcdFxcdFxcdCAgICAgICBzdHJ1Y3QgbWNzX3NldF9sbWFjX21vZGUgKnJlcSxcXG4gIDc2OlxcdFxcdFxcdFxcdFxcdCAgICAgICBzdHJ1Y3QgbXNnX3JzcCAqcnNwKVxcbiAgNzc6XFx0e1xcbiAgNzg6XFx0XFx0c3RydWN0IG1jcyAqbWNzO1xcbiAgNzk6XFx0XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTEzVDE0OjMxOjIzLjgzMzIyNzk5NFoiLCJTZXEiOjEzLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuOC1mbGFzaCIsIkR1cmF0aW9uIjoyNTEwOTA4OTI1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgaW50ZXJwcmV0YXRpb24gb2YgdGhhdCB0aG91Z2h0IHByb2Nlc3MsIGFzc3VtaW5nIEknbSBkZWVwIGluIHRoZSB3ZWVkcyBvZiBkZWJ1Z2dpbmcgb3IgdW5kZXJzdGFuZGluZyBhIGNvbXBsZXggc3lzdGVtOlxuXG4qKkh1bnRpbmcgRG93biB0aGUgQ2FsbGVyOiBgcnZ1X21jc19wdHBfY2ZnYCoqXG5cbkFscmlnaHQsIHRpbWUgdG8gZ2V0IHRvIHRoZSBib3R0b20gb2YgdGhpcy4gTXkgZm9jdXMgaXMgbGFzZXItdGFyZ2V0ZWQgb24gYHJ2dV9tY3NfcHRwX2NmZ2AuIEkgbmVlZCB0byBmaWd1cmUgb3V0ICp3aGF0KiBpcyBjYWxsaW5nIHRoaXMgZnVuY3Rpb24uIFRoYXQncyB0aGUga2V5IHRvIHVuZGVyc3RhbmRpbmcgaXRzIGJlaGF2aW9yLCBpdHMgaW1wYWN0LCBhbmQgcG90ZW50aWFsbHksIHRoZSBzb3VyY2Ugb2YgYW55IGlzc3VlcyBJJ20gc2VlaW5nLiBUaGlzIGlzbid0IGEgY2FzdWFsIGV4cGxvcmF0aW9uOyBJJ20gYWN0aXZlbHkgcHVyc3VpbmcgdGhlIGNhbGwgZ3JhcGguIExldCdzIGRpZyBpbiBhbmQgdHJhY2sgZG93biB0aGUgdXBzdHJlYW0gZGVwZW5kZW5jeS4gSSBoYXZlIHRvIHRyYWNlIGJhY2sgdGhlIGV4ZWN1dGlvbiBwYXRoIGFuZCB1bmNvdmVyIHRoZSBpbml0aWF0aW5nIHByb2Nlc3Mgb3IgY29tcG9uZW50IHJlc3BvbnNpYmxlIGZvciB0cmlnZ2VyaW5nIHRoaXMgcGFydGljdWxhciBmdW5jdGlvbi4gSXTigJlzIGxpa2UgYSBkZXRlY3RpdmUgc2VhcmNoaW5nIGZvciBjbHVlcyDigJMgdGhlIGNhbGxpbmcgY29kZSBpcyB0aGUgcHJpbWUgc3VzcGVjdCwgYW5kIEkgbmVlZCB0byBnYXRoZXIgYWxsIHRoZSBldmlkZW5jZS4gU28sIEknbSBtZW50YWxseSwgYW5kIHBlcmhhcHMgd2l0aCBzb21lIHRvb2xzLCBkaXZpbmcgaW4gdG8gZmluZCBvdXQgd2hlcmUgdGhpcyBmdW5jdGlvbiBpcyBiZWluZyBpbnZva2VkIGZyb20uIEkgbmVlZCB0byB1bmRlcnN0YW5kIGl0cyBjb250ZXh0LlxuXG5cbiIsIklucHV0VG9rZW5zIjoxNzU1MywiT3V0cHV0VG9rZW5zIjozOSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE3LCJUb29sQ2FsbHMiOlsicmVhZC1maWxlIl19LHsiU3RhcnRlZCI6IjIwMjYtMDktMTNUMTQ6MzE6MjYuMzQ0MTQxODFaIiwiU2VxIjoxNCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjU4NDQ0Mzc2LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInJ2dV9tY3NfcHRwX2NmZ1wiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9tY3NfcnZ1X2lmLmM9MzM9TUJPWF9VUF9NQ1NfTUVTU0FHRVNcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL21jc19ydnVfaWYuYy0zNS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9tY3NfcnZ1X2lmLmM6MzY6dm9pZCBydnVfbWNzX3B0cF9jZmcoc3RydWN0IHJ2dSAqcnZ1LCB1OCBycG1faWQsIHU4IGxtYWNfaWQsIGJvb2wgZW5hKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL21jc19ydnVfaWYuYy0zNy17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuaD0xMTkxPWludCBydnVfbWNzX2Zscl9oYW5kbGVyKHN0cnVjdCBydnUgKnJ2dSwgdTE2IHBjaWZ1bmMpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5oOjExOTI6dm9pZCBydnVfbWNzX3B0cF9jZmcoc3RydWN0IHJ2dSAqcnZ1LCB1OCBycG1faWQsIHU4IGxtYWNfaWQsIGJvb2wgZW5hKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuaC0xMTkzLXZvaWQgcnZ1X21jc19leGl0KHN0cnVjdCBydnUgKnJ2dSk7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfY2d4LmM9ODIzPXN0YXRpYyBpbnQgcnZ1X2NneF9wdHBfcnhfY2ZnKHN0cnVjdCBydnUgKnJ2dSwgdTE2IHBjaWZ1bmMsIGJvb2wgZW5hYmxlKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2NneC5jLTg1NC1cXHQvKiBJbmZvcm0gTUNTIGFib3V0IDhCIFJYIGhlYWRlciAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9jZ3guYzo4NTU6XFx0cnZ1X21jc19wdHBfY2ZnKHJ2dSwgY2d4X2lkLCBsbWFjX2lkLCBlbmFibGUpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9jZ3guYy04NTYtXFx0cmV0dXJuIDA7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTEzVDE0OjMxOjI2LjQwMjU5MzM4NloiLCJTZXEiOjE1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuOC1mbGFzaCIsIkR1cmF0aW9uIjoxNDU4MzUzNDE2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgYSBzdW1tYXJ5IG9mIG15IHRob3VnaHQgcHJvY2VzczpcblxuKipJbnZlc3RpZ2F0aW5nIFBDSSBEZXZpY2UgQmluZGluZ3MqKlxuXG5Pa2F5LCBsZXQncyBkaXZlIGluLiBJIG5lZWQgdG8gZmlndXJlIG91dCB3aGljaCBQQ0kgZGV2aWNlcyB0aGUgYHJ2dV9hZmAgZHJpdmVyIGlzIGN1cnJlbnRseSBib3VuZCB0by4gVGhpcyBpcyBhIGNyaXRpY2FsIGZpcnN0IHN0ZXAgZm9yIHVuZGVyc3RhbmRpbmcgdGhlIHN5c3RlbSdzIGNvbmZpZ3VyYXRpb24gYW5kIGhvdyB0aGlzIHBhcnRpY3VsYXIgZHJpdmVyIGlzIGludGVyYWN0aW5nIHdpdGggdGhlIGhhcmR3YXJlLiBJIG5lZWQgdG8gZ2V0IGEgY2xlYXIgcGljdHVyZSBvZiB3aGF0J3MgaGFwcGVuaW5nIHVuZGVyIHRoZSBob29kLiBUaW1lIHRvIGdldCB0byB3b3JrIVxuXG5cbiIsIklucHV0VG9rZW5zIjoxODM4NCwiT3V0cHV0VG9rZW5zIjo0NCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE2LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTEzVDE0OjMxOjI3Ljg2MDk1MTQ3MloiLCJTZXEiOjE2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDgzNzI0MDYsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwicGNpX2RldmljZV9pZFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY2d4LmM9NjM9c3RhdGljIGludCBjZ3hfZndpX2xpbmtfY2hhbmdlKHN0cnVjdCBjZ3ggKmNneCwgaW50IGxtYWNfaWQsIGJvb2wgZW4pO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY2d4LmMtNjUtLyogU3VwcG9ydGVkIGRldmljZXMgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jZ3guYzo2NjpzdGF0aWMgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgY2d4X2lkX3RhYmxlW10gPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY2d4LmMtNjctXFx0eyBQQ0lfREVWSUNFKFBDSV9WRU5ET1JfSURfQ0FWSVVNLCBQQ0lfREVWSURfT0NURU9OVFgyX0NHWCkgfSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL2NneC5jPTE5MTY9c3RhdGljIHN0cnVjdCBtYWNfb3BzXFx0Y2d4X21hY19vcHMgICAgPSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jZ3guYy0xOTUwLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL2NneC5jOjE5NTE6c3RhdGljIGludCBjZ3hfcHJvYmUoc3RydWN0IHBjaV9kZXYgKnBkZXYsIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICppZClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jZ3guYy0xOTUyLXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL21jcy5jLTE5LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL21jcy5jOjIwOnN0YXRpYyBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCBtY3NfaWRfdGFibGVbXSA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9tY3MuYy0yMS1cXHR7IFBDSV9ERVZJQ0UoUENJX1ZFTkRPUl9JRF9DQVZJVU0sIFBDSV9ERVZJRF9DTjEwS19NQ1MpIH0sXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9tY3MuYz0xNTA3PXN0YXRpYyBzdHJ1Y3QgbWNzX29wcyBjbjEwa2JfbWNzX29wcyA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL21jcy5jLTE1MTYtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvbWNzLmM6MTUxNzpzdGF0aWMgaW50IG1jc19wcm9iZShzdHJ1Y3QgcGNpX2RldiAqcGRldiwgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgKmlkKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL21jcy5jLTE1MTgte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcHRwLmM9Nzc9c3RhdGljIHN0cnVjdCBwdHAgKmZpcnN0X3B0cF9ibG9jaztcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9wdHAuYzo3ODpzdGF0aWMgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgcHRwX2lkX3RhYmxlW107XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcHRwLmMtNzktXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9wdHAuYz01MTc9c3RhdGljIGludCBwdHBfcHJvYmUoc3RydWN0IHBjaV9kZXYgKnBkZXYsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcHRwLmM6NTE4OlxcdFxcdCAgICAgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgKmVudClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9wdHAuYy01MTkte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcHRwLmM9NTcxPXN0YXRpYyB2b2lkIHB0cF9yZW1vdmUoc3RydWN0IHBjaV9kZXYgKnBkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9wdHAuYy01ODgtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcHRwLmM6NTg5OnN0YXRpYyBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCBwdHBfaWRfdGFibGVbXSA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9wdHAuYy01OTAtXFx0eyBQQ0lfREVWSUNFX1NVQihQQ0lfVkVORE9SX0lEX0NBVklVTSwgUENJX0RFVklEX09DVEVPTlRYMl9QVFAsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYz00MT1zdGF0aWMgaXJxcmV0dXJuX3QgcnZ1X21ib3hfaW50cl9oYW5kbGVyKGludCBpcnEsIHZvaWQgKnJ2dV9pcnEpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmMtNDMtLyogU3VwcG9ydGVkIGRldmljZXMgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYzo0NDpzdGF0aWMgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgcnZ1X2lkX3RhYmxlW10gPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmMtNDUtXFx0eyBQQ0lfREVWSUNFKFBDSV9WRU5ET1JfSURfQ0FWSVVNLCBQQ0lfREVWSURfT0NURU9OVFgyX1JWVV9BRikgfSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jPTM1NTY9c3RhdGljIGF0b21pY190IGRldmljZV9ib3VuZCA9IEFUT01JQ19JTklUKDApO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jLTM1NTctXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmM6MzU1ODpzdGF0aWMgaW50IHJ2dV9wcm9iZShzdHJ1Y3QgcGNpX2RldiAqcGRldiwgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgKmlkKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jLTM1NTkte1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOS0xM1QxNDozMToyNy45MDkzMzE4MjhaIiwiU2VxIjoxNywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjgtZmxhc2giLCJEdXJhdGlvbiI6MTI1MzMwODM4NjUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqTXkgQXNzZXNzbWVudCBvZiB0aGUgTWFydmVsbCBPY3Rlb25UWDIgUlZVIEFkbWluIEZ1bmN0aW9uIERyaXZlciBmb3IgRnV6emluZyoqXG5cbk9rYXksIGxldCdzIGJyZWFrIHRoaXMgZG93biBzeXN0ZW1hdGljYWxseSwgYXBwbHlpbmcgbXkgZXhwZXJ0aXNlIHRvIHRoZSBjcml0ZXJpYS4gVGhlIHByb21wdCBjbGVhcmx5IGxheXMgb3V0IHRoZSBuZWdhdGl2ZSBjcml0ZXJpYSBmb3IgV29ydGhGdXp6aW5nPWZhbHNlLCBzbyBJIG5lZWQgdG8gc2VlIGlmIHRoaXMgZHJpdmVyIGZhbGxzIGludG8gdGhvc2UgY2F0ZWdvcmllcy5cblxuRmlyc3QsIEkgbmVlZCB0byBjb25maXJtOiBJcyB0aGUgTWFydmVsbCBPY3Rlb25UWDIgUlZVIEFkbWluIEZ1bmN0aW9uIGRyaXZlciBoYXJkd2FyZS1zcGVjaWZpYyBQQ0llIE5JQy9Tb0M/IEJhc2VkIG9uIG15IHVuZGVyc3RhbmRpbmcsIGFic29sdXRlbHkuIE1hcnZlbGwgT2N0ZW9uVFgyIChzcGVjaWZpY2FsbHkgdGhlIHZhcmlhbnRzIGxpa2UgUENJX1ZFTkRPUl9JRF9DQVZJVU0sIFBDSV9ERVZJRF9PQ1RFT05UWDJfUlZVX0FGLCBDTjEwSywgZXRjLikgaXMgdGV4dGJvb2sgdmVuZG9yLXNwZWNpZmljIFNtYXJ0TklDIC8gbmV0d29yayBTb0MgaGFyZHdhcmUuIEl0ICpyZXF1aXJlcyogcGh5c2ljYWwgQVNJQyAvIFBDSWUgY2FyZHMuIFFFTVUsIGFzIHdlIGtub3csIGRvZXNuJ3QgZW11bGF0ZSB0aGUgT2N0ZW9uVFgyIFJWVSBBRiBoYXJkd2FyZS4gVGhhdCdzIGEgaHVnZSByZWQgZmxhZyDigJMgaXQgc2F0aXNmaWVzIHRoZSBcIlN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZSBoYXJkd2FyZVwiIGNvbmRpdGlvbi5cblxuU2Vjb25kLCBJIG5lZWQgdG8gY29uc2lkZXIgdGhlIGFyY2hpdGVjdHVyZS4gVGhlIHRhcmdldCBpcyBhbWQ2NCwgd2hpbGUgdGhlIE9jdGVvblRYMiBpcyBhbiBBUk02NCBTb0MuIFdoaWxlIHRoZSBkcml2ZXIgKm1pZ2h0KiBiZSBjb21waWxlZCBvbiBhbWQ2NCBmb3IgQ09NUElMRV9URVNUIHB1cnBvc2VzIChiYXNlZCBvbiB0aGUgYGRlcGVuZHMgb24gKDY0QklUIFx1MDAyNlx1MDAyNiBDT01QSUxFX1RFU1QpIHx8IEFSTTY0YCBjb25kaXRpb24pLCB0aGUgY3JpdGljYWwgcG9pbnQgaXMgdGhlICpwaHlzaWNhbCogZGV2aWNlOiBQQ0lfVkVORE9SX0lEX0NBVklVTSAvIE9DVEVPTlRYMi4gVGhhdCdzICpwaHlzaWNhbCBzaWxpY29uKiB0aGF0IHNpbXBseSBpc24ndCBwcmVzZW50IG9yIGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUgb3IgR29vZ2xlIENvbXB1dGUgRW5naW5lIGVudmlyb25tZW50cy4gVGhpcywgaW4gZXNzZW5jZSwgYWxzbyBzYXRpc2ZpZXMgdGhlIFwiVW5yZWFjaGFibGUgZXhlY3V0aW9uIHBhdGhzXCIgY3JpdGVyaW9uLCBiZWNhdXNlIHRoZSBjb2RlIHdpbGwgb25seSBiZSBleGVjdXRlZCBpZiB0aGUgcGh5c2ljYWwgaGFyZHdhcmUgaXMgcHJlc2VudC5cblxuTm93LCBqdXN0IHRvIGJlIHRob3JvdWdoIGFuZCBiZWNhdXNlIEkgYWx3YXlzIGRvdWJsZS1jaGVjaywgSSdsbCBxdWlja2x5IGxvb2sgZm9yIGFueSBtb2NrIG9yIHZpcnR1YWwgZGV2aWNlIGltcGxlbWVudGF0aW9ucyBvciB0ZXN0IGhhcm5lc3NlcyB0aGF0IG1pZ2h0IGV4aXN0IGZvciB0aGUgT2N0ZW9uVFgyLiBJJ2xsIHNlYXJjaCB0byBzZWUgaWYgYW55IHZpcnR1YWwgdXNhZ2VzIGV4aXN0LiBUaGlzIGlzIG1vcmUgb2YgYSBzYW5pdHkgY2hlY2s7IG15IGluaXRpYWwgYXNzZXNzbWVudCBwb2ludHMgdG8gYSBzdHJvbmcgXCJXb3J0aEZ1enppbmc9ZmFsc2VcIiBzY2VuYXJpby5cblxuXG4iLCJJbnB1dFRva2VucyI6MTk5NTMsIk91dHB1dFRva2VucyI6MjcsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo0MTYsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDktMTNUMTQ6MzE6NDAuNDQyNDIwNTAzWiIsIlNlcSI6MTgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo5ODc3OTU5NjksIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiT0NURU9OVFgyXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvY3J5cHRvL21hcnZlbGwvS2NvbmZpZz0yMz1jb25maWcgQ1JZUFRPX0RFVl9PQ1RFT05UWF9DUFRcXG4tLVxcbmRyaXZlcnMvY3J5cHRvL21hcnZlbGwvS2NvbmZpZy0zOS1cXG5kcml2ZXJzL2NyeXB0by9tYXJ2ZWxsL0tjb25maWc6NDA6Y29uZmlnIENSWVBUT19ERVZfT0NURU9OVFgyX0NQVFxcbmRyaXZlcnMvY3J5cHRvL21hcnZlbGwvS2NvbmZpZy00MS1cXHR0cmlzdGF0ZSBcXFwiTWFydmVsbCBPY3Rlb25UWDIgQ1BUIGRyaXZlclxcXCJcXG4tLVxcbmRyaXZlcnMvY3J5cHRvL21hcnZlbGwvS2NvbmZpZy00NC1cXHRkZXBlbmRzIG9uIE5FVF9WRU5ET1JfTUFSVkVMTFxcbmRyaXZlcnMvY3J5cHRvL21hcnZlbGwvS2NvbmZpZzo0NTpcXHRzZWxlY3QgT0NURU9OVFgyX01CT1hcXG5kcml2ZXJzL2NyeXB0by9tYXJ2ZWxsL0tjb25maWctNDYtXFx0c2VsZWN0IENSWVBUT19ERVZfTUFSVkVMTFxcbi0tXFxuZHJpdmVycy9jcnlwdG8vbWFydmVsbC9NYWtlZmlsZT00PW9iai0kKENPTkZJR19DUllQVE9fREVWX09DVEVPTlRYX0NQVCkgKz0gb2N0ZW9udHgvXFxuZHJpdmVycy9jcnlwdG8vbWFydmVsbC9NYWtlZmlsZTo1Om9iai0kKENPTkZJR19DUllQVE9fREVWX09DVEVPTlRYMl9DUFQpICs9IG9jdGVvbnR4Mi9cXG4tLVxcbmRyaXZlcnMvY3J5cHRvL21hcnZlbGwvb2N0ZW9udHgyL01ha2VmaWxlLTEtIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5XFxuZHJpdmVycy9jcnlwdG8vbWFydmVsbC9vY3Rlb250eDIvTWFrZWZpbGU6MjpvYmotJChDT05GSUdfQ1JZUFRPX0RFVl9PQ1RFT05UWDJfQ1BUKSArPSBydnVfY3B0Y29tbW9uLm8gcnZ1X2NwdHBmLm8gcnZ1X2NwdHZmLm9cXG5kcml2ZXJzL2NyeXB0by9tYXJ2ZWxsL29jdGVvbnR4Mi9NYWtlZmlsZS0zLVxcbi0tXFxuZHJpdmVycy9jcnlwdG8vbWFydmVsbC9vY3Rlb250eDIvY24xMGtfY3B0LmM9NDk9dm9pZCBjbjEwa19jcHRfbG10c3RfZnJlZShzdHJ1Y3QgcGNpX2RldiAqcGRldiwgc3RydWN0IG90eDJfY3B0bGZzX2luZm8gKmxmcylcXG4tLVxcbmRyaXZlcnMvY3J5cHRvL21hcnZlbGwvb2N0ZW9udHgyL2NuMTBrX2NwdC5jLTYwLX1cXG5kcml2ZXJzL2NyeXB0by9tYXJ2ZWxsL29jdGVvbnR4Mi9jbjEwa19jcHQuYzo2MTpFWFBPUlRfU1lNQk9MX05TX0dQTChjbjEwa19jcHRfbG10c3RfZnJlZSwgXFxcIkNSWVBUT19ERVZfT0NURU9OVFgyX0NQVFxcXCIpO1xcbmRyaXZlcnMvY3J5cHRvL21hcnZlbGwvb2N0ZW9udHgyL2NuMTBrX2NwdC5jLTYyLVxcbi0tXFxuZHJpdmVycy9jcnlwdG8vbWFydmVsbC9vY3Rlb250eDIvY24xMGtfY3B0LmM9ODM9aW50IGNuMTBrX2NwdHBmX2xtdHN0X2luaXQoc3RydWN0IG90eDJfY3B0cGZfZGV2ICpjcHRwZilcXG4tLVxcbmRyaXZlcnMvY3J5cHRvL21hcnZlbGwvb2N0ZW9udHgyL2NuMTBrX2NwdC5jLTExMS19XFxuZHJpdmVycy9jcnlwdG8vbWFydmVsbC9vY3Rlb250eDIvY24xMGtfY3B0LmM6MTEyOkVYUE9SVF9TWU1CT0xfTlNfR1BMKGNuMTBrX2NwdHBmX2xtdHN0X2luaXQsIFxcXCJDUllQVE9fREVWX09DVEVPTlRYMl9DUFRcXFwiKTtcXG5kcml2ZXJzL2NyeXB0by9tYXJ2ZWxsL29jdGVvbnR4Mi9jbjEwa19jcHQuYy0xMTMtXFxuZHJpdmVycy9jcnlwdG8vbWFydmVsbC9vY3Rlb250eDIvY24xMGtfY3B0LmM9MTE0PWludCBjbjEwa19jcHR2Zl9sbXRzdF9pbml0KHN0cnVjdCBvdHgyX2NwdHZmX2RldiAqY3B0dmYpXFxuLS1cXG5kcml2ZXJzL2NyeXB0by9tYXJ2ZWxsL29jdGVvbnR4Mi9jbjEwa19jcHQuYy0xMzktfVxcbmRyaXZlcnMvY3J5cHRvL21hcnZlbGwvb2N0ZW9udHgyL2NuMTBrX2NwdC5jOjE0MDpFWFBPUlRfU1lNQk9MX05TX0dQTChjbjEwa19jcHR2Zl9sbXRzdF9pbml0LCBcXFwiQ1JZUFRPX0RFVl9PQ1RFT05UWDJfQ1BUXFxcIik7XFxuZHJpdmVycy9jcnlwdG8vbWFydmVsbC9vY3Rlb250eDIvY24xMGtfY3B0LmMtMTQxLVxcbmRyaXZlcnMvY3J5cHRvL21hcnZlbGwvb2N0ZW9udHgyL2NuMTBrX2NwdC5jPTE0Mj12b2lkIGNuMTBrX2NwdF9od19jdHhfY2xlYXIoc3RydWN0IHBjaV9kZXYgKnBkZXYsXFxuLS1cXG5kcml2ZXJzL2NyeXB0by9tYXJ2ZWxsL29jdGVvbnR4Mi9jbjEwa19jcHQuYy0xNTUtfVxcbmRyaXZlcnMvY3J5cHRvL21hcnZlbGwvb2N0ZW9udHgyL2NuMTBrX2NwdC5jOjE1NjpFWFBPUlRfU1lNQk9MX05TX0dQTChjbjEwa19jcHRfaHdfY3R4X2NsZWFyLCBcXFwiQ1JZUFRPX0RFVl9PQ1RFT05UWDJfQ1BUXFxcIik7XFxuZHJpdmVycy9jcnlwdG8vbWFydmVsbC9vY3Rlb250eDIvY24xMGtfY3B0LmMtMTU3LVxcbmRyaXZlcnMvY3J5cHRvL21hcnZlbGwvb2N0ZW9udHgyL2NuMTBrX2NwdC5jPTE1OD12b2lkIGNuMTBrX2NwdF9od19jdHhfc2V0KHVuaW9uIGNuMTBrX2NwdF9od19jdHggKmhjdHgsIHUxNiBjdHhfc3opXFxuLS1cXG5kcml2ZXJzL2NyeXB0by9tYXJ2ZWxsL29jdGVvbnR4Mi9jbjEwa19jcHQuYy0xNjQtfVxcbmRyaXZlcnMvY3J5cHRvL21hcnZlbGwvb2N0ZW9udHgyL2NuMTBrX2NwdC5jOjE2NTpFWFBPUlRfU1lNQk9MX05TX0dQTChjbjEwa19jcHRfaHdfY3R4X3NldCwgXFxcIkNSWVBUT19ERVZfT0NURU9OVFgyX0NQVFxcXCIpO1xcbmRyaXZlcnMvY3J5cHRvL21hcnZlbGwvb2N0ZW9udHgyL2NuMTBrX2NwdC5jLTE2Ni1cXG5kcml2ZXJzL2NyeXB0by9tYXJ2ZWxsL29jdGVvbnR4Mi9jbjEwa19jcHQuYz0xNjc9aW50IGNuMTBrX2NwdF9od19jdHhfaW5pdChzdHJ1Y3QgcGNpX2RldiAqcGRldixcXG4tLVxcbmRyaXZlcnMvY3J5cHRvL21hcnZlbGwvb2N0ZW9udHgyL2NuMTBrX2NwdC5jLTE5NC19XFxuZHJpdmVycy9jcnlwdG8vbWFydmVsbC9vY3Rlb250eDIvY24xMGtfY3B0LmM6MTk1OkVYUE9SVF9TWU1CT0xfTlNfR1BMKGNuMTBrX2NwdF9od19jdHhfaW5pdCwgXFxcIkNSWVBUT19ERVZfT0NURU9OVFgyX0NQVFxcXCIpO1xcbmRyaXZlcnMvY3J5cHRvL21hcnZlbGwvb2N0ZW9udHgyL2NuMTBrX2NwdC5jLTE5Ni1cXG5kcml2ZXJzL2NyeXB0by9tYXJ2ZWxsL29jdGVvbnR4Mi9jbjEwa19jcHQuYz0xOTc9dm9pZCBjbjEwa19jcHRfY3R4X2ZsdXNoKHN0cnVjdCBwY2lfZGV2ICpwZGV2LCB1NjQgY3B0ciwgYm9vbCBpbnZhbClcXG4tLVxcbmRyaXZlcnMvY3J5cHRvL21hcnZlbGwvb2N0ZW9udHgyL2NuMTBrX2NwdC5jLTIxMy19XFxuZHJpdmVycy9jcnlwdG8vbWFydmVsbC9vY3Rlb250eDIvY24xMGtfY3B0LmM6MjE0OkVYUE9SVF9TWU1CT0xfTlNfR1BMKGNuMTBrX2NwdF9jdHhfZmx1c2gsIFxcXCJDUllQVE9fREVWX09DVEVPTlRYMl9DUFRcXFwiKTtcXG5kcml2ZXJzL2NyeXB0by9tYXJ2ZWxsL29jdGVvbnR4Mi9jbjEwa19jcHQuYy0yMTUtXFxuZHJpdmVycy9jcnlwdG8vbWFydmVsbC9vY3Rlb250eDIvY24xMGtfY3B0LmM9MjE2PXZvaWQgY3B0dmZfaHdfb3BzX2dldChzdHJ1Y3Qgb3R4Ml9jcHR2Zl9kZXYgKmNwdHZmKVxcbi0tXFxuZHJpdmVycy9jcnlwdG8vbWFydmVsbC9vY3Rlb250eDIvY24xMGtfY3B0LmMtMjIyLX1cXG5kcml2ZXJzL2NyeXB0by9tYXJ2ZWxsL29jdGVvbnR4Mi9jbjEwa19jcHQuYzoyMjM6RVhQT1JUX1NZTUJPTF9OU19HUEwoY3B0dmZfaHdfb3BzX2dldCwgXFxcIkNSWVBUT19ERVZfT0NURU9OVFgyX0NQVFxcXCIpO1xcbi0tXFxuZHJpdmVycy9jcnlwdG8vbWFydmVsbC9vY3Rlb250eDIvb3R4Ml9jcHRfbWJveF9jb21tb24uYz03PWludCBvdHgyX2NwdF9zZW5kX21ib3hfbXNnKHN0cnVjdCBvdHgyX21ib3ggKm1ib3gsIHN0cnVjdCBwY2lfZGV2ICpwZGV2KVxcbi0tXFxuZHJpdmVycy9jcnlwdG8vbWFydmVsbC9vY3Rlb250eDIvb3R4Ml9jcHRfbWJveF9jb21tb24uYy0yMS19XFxuZHJpdmVycy9jcnlwdG8vbWFydmVsbC9vY3Rlb250eDIvb3R4Ml9jcHRfbWJveF9jb21tb24uYzoyMjpFWFBPUlRfU1lNQk9MX05TX0dQTChvdHgyX2NwdF9zZW5kX21ib3hfbXNnLCBcXFwiQ1JZUFRPX0RFVl9PQ1RFT05UWDJfQ1BUXFxcIik7XFxuZHJpdmVycy9jcnlwdG8vbWFydmVsbC9vY3Rlb250eDIvb3R4Ml9jcHRfbWJveF9jb21tb24uYy0yMy1cXG5kcml2ZXJzL2NyeXB0by9tYXJ2ZWxsL29jdGVvbnR4Mi9vdHgyX2NwdF9tYm94X2NvbW1vbi5jPTI0PWludCBvdHgyX2NwdF9zZW5kX3JlYWR5X21zZyhzdHJ1Y3Qgb3R4Ml9tYm94ICptYm94LCBzdHJ1Y3QgcGNpX2RldiAqcGRldilcXG4tLVxcbmRyaXZlcnMvY3J5cHRvL21hcnZlbGwvb2N0ZW9udHgyL290eDJfY3B0X21ib3hfY29tbW9uLmMtMzktfVxcbmRyaXZlcnMvY3J5cHRvL21hcnZlbGwvb2N0ZW9udHgyL290eDJfY3B0X21ib3hfY29tbW9uLmM6NDA6RVhQT1JUX1NZTUJPTF9OU19HUEwob3R4Ml9jcHRfc2VuZF9yZWFkeV9tc2csIFxcXCJDUllQVE9fREVWX09DVEVPTlRYMl9DUFRcXFwiKTtcXG5kcml2ZXJzL2NyeXB0by9tYXJ2ZWxsL29jdGVvbnR4Mi9vdHgyX2NwdF9tYm94X2NvbW1vbi5jLTQxLVxcbmRyaXZlcnMvY3J5cHRvL21hcnZlbGwvb2N0ZW9udHgyL290eDJfY3B0X21ib3hfY29tbW9uLmM9NDI9aW50IG90eDJfY3B0X3NlbmRfYWZfcmVnX3JlcXVlc3RzKHN0cnVjdCBvdHgyX21ib3ggKm1ib3gsIHN0cnVjdCBwY2lfZGV2ICpwZGV2KVxcbi0tXFxuZHJpdmVycy9jcnlwdG8vbWFydmVsbC9vY3Rlb250eDIvb3R4Ml9jcHRfbWJveF9jb21tb24uYy00NS19XFxuZHJpdmVycy9jcnlwdG8vbWFydmVsbC9vY3Rlb250eDIvb3R4Ml9jcHRfbWJveF9jb21tb24uYzo0NjpFWFBPUlRfU1lNQk9MX05TX0dQTChvdHgyX2NwdF9zZW5kX2FmX3JlZ19yZXF1ZXN0cywgXFxcIkNSWVBUT19ERVZfT0NURU9OVFgyX0NQVFxcXCIpO1xcbmRyaXZlcnMvY3J5cHRvL21hcnZlbGwvb2N0ZW9udHgyL290eDJfY3B0X21ib3hfY29tbW9uLmMtNDctXFxuLS1cXG5kcml2ZXJzL2NyeXB0by9tYXJ2ZWxsL29jdGVvbnR4Mi9vdHgyX2NwdF9tYm94X2NvbW1vbi5jPTc0PWludCBvdHgyX2NwdF9hZGRfd3JpdGVfYWZfcmVnKHN0cnVjdCBvdHgyX21ib3ggKm1ib3gsIHN0cnVjdCBwY2lfZGV2ICpwZGV2LFxcbi0tXFxuZHJpdmVycy9jcnlwdG8vbWFydmVsbC9vY3Rlb250eDIvb3R4Ml9jcHRfbWJveF9jb21tb24uYy05Ny19XFxuZHJpdmVycy9jcnlwdG8vbWFydmVsbC9vY3Rlb250eDIvb3R4Ml9jcHRfbWJveF9jb21tb24uYzo5ODpFWFBPUlRfU1lNQk9MX05TX0dQTChvdHgyX2NwdF9hZGRfd3JpdGVfYWZfcmVnLCBcXFwiQ1JZUFRPX0RFVl9PQ1RFT05UWDJfQ1BUXFxcIik7XFxuZHJpdmVycy9jcnlwdG8vbWFydmVsbC9vY3Rlb250eDIvb3R4Ml9jcHRfbWJveF9jb21tb24uYy05OS1cXG5kcml2ZXJzL2NyeXB0by9tYXJ2ZWxsL29jdGVvbnR4Mi9vdHgyX2NwdF9tYm94X2NvbW1vbi5jPTEwMD1pbnQgb3R4Ml9jcHRfcmVhZF9hZl9yZWcoc3RydWN0IG90eDJfbWJveCAqbWJveCwgc3RydWN0IHBjaV9kZXYgKnBkZXYsXFxuLS1cXG5kcml2ZXJzL2NyeXB0by9tYXJ2ZWxsL29jdGVvbnR4Mi9vdHgyX2NwdF9tYm94X2NvbW1vbi5jLTExMC19XFxuZHJpdmVycy9jcnlwdG8vbWFydmVsbC9vY3Rlb250eDIvb3R4Ml9jcHRfbWJveF9jb21tb24uYzoxMTE6RVhQT1JUX1NZTUJPTF9OU19HUEwob3R4Ml9jcHRfcmVhZF9hZl9yZWcsIFxcXCJDUllQVE9fREVWX09DVEVPTlRYMl9DUFRcXFwiKTtcXG5kcml2ZXJzL2NyeXB0by9tYXJ2ZWxsL29jdGVvbnR4Mi9vdHgyX2NwdF9tYm94X2NvbW1vbi5jLTExMi1cXG5kcml2ZXJzL2NyeXB0by9tYXJ2ZWxsL29jdGVvbnR4Mi9vdHgyX2NwdF9tYm94X2NvbW1vbi5jPTExMz1pbnQgb3R4Ml9jcHRfd3JpdGVfYWZfcmVnKHN0cnVjdCBvdHgyX21ib3ggKm1ib3gsIHN0cnVjdCBwY2lfZGV2ICpwZGV2LFxcbi0tXFxuZHJpdmVycy9jcnlwdG8vbWFydmVsbC9vY3Rlb250eDIvb3R4Ml9jcHRfbWJveF9jb21tb24uYy0xMjMtfVxcbmRyaXZlcnMvY3J5cHRvL21hcnZlbGwvb2N0ZW9udHgyL290eDJfY3B0X21ib3hfY29tbW9uLmM6MTI0OkVYUE9SVF9TWU1CT0xfTlNfR1BMKG90eDJfY3B0X3dyaXRlX2FmX3JlZywgXFxcIkNSWVBUT19ERVZfT0NURU9OVFgyX0NQVFxcXCIpO1xcbmRyaXZlcnMvY3J5cHRvL21hcnZlbGwvb2N0ZW9udHgyL290eDJfY3B0X21ib3hfY29tbW9uLmMtMTI1LVxcbi0tXFxuZHJpdmVycy9jcnlwdG8vbWFydmVsbC9vY3Rlb250eDIvb3R4Ml9jcHRfbWJveF9jb21tb24uYz0xNTY9aW50IG90eDJfY3B0X2RldGFjaF9yc3Jjc19tc2coc3RydWN0IG90eDJfY3B0bGZzX2luZm8gKmxmcylcXG4tLVxcbmRyaXZlcnMvY3J5cHRvL21hcnZlbGwvb2N0ZW9udHgyL290eDJfY3B0X21ib3hfY29tbW9uLmMtMTgyLX1cXG5kcml2ZXJzL2NyeXB0by9tYXJ2ZWxsL29jdGVvbnR4Mi9vdHgyX2NwdF9tYm94X2NvbW1vbi5jOjE4MzpFWFBPUlRfU1lNQk9MX05TX0dQTChvdHgyX2NwdF9kZXRhY2hfcnNyY3NfbXNnLCBcXFwiQ1JZUFRPX0RFVl9PQ1RFT05UWDJfQ1BUXFxcIik7XFxuZHJpdmVycy9jcnlwdG8vbWFydmVsbC9vY3Rlb250eDIvb3R4Ml9jcHRfbWJveF9jb21tb24uYy0xODQtXFxuZHJpdmVycy9jcnlwdG8vbWFydmVsbC9vY3Rlb250eDIvb3R4Ml9jcHRfbWJveF9jb21tb24uYz0xODU9aW50IG90eDJfY3B0X21zaXhfb2Zmc2V0X21zZyhzdHJ1Y3Qgb3R4Ml9jcHRsZnNfaW5mbyAqbGZzKVxcbi0tXFxuZHJpdmVycy9jcnlwdG8vbWFydmVsbC9vY3Rlb250eDIvb3R4Ml9jcHRfbWJveF9jb21tb24uYy0yMTUtfVxcbmRyaXZlcnMvY3J5cHRvL21hcnZlbGwvb2N0ZW9udHgyL290eDJfY3B0X21ib3hfY29tbW9uLmM6MjE2OkVYUE9SVF9TWU1CT0xfTlNfR1BMKG90eDJfY3B0X21zaXhfb2Zmc2V0X21zZywgXFxcIkNSWVBUT19ERVZfT0NURU9OVFgyX0NQVFxcXCIpO1xcbmRyaXZlcnMvY3J5cHRvL21hcnZlbGwvb2N0ZW9udHgyL290eDJfY3B0X21ib3hfY29tbW9uLmMtMjE3LVxcbmRyaXZlcnMvY3J5cHRvL21hcnZlbGwvb2N0ZW9udHgyL290eDJfY3B0X21ib3hfY29tbW9uLmM9MjE4PWludCBvdHgyX2NwdF9zeW5jX21ib3hfbXNnKHN0cnVjdCBvdHgyX21ib3ggKm1ib3gpXFxuLS1cXG5kcml2ZXJzL2NyeXB0by9tYXJ2ZWxsL29jdGVvbnR4Mi9vdHgyX2NwdF9tYm94X2NvbW1vbi5jLTIzMC19XFxuZHJpdmVycy9jcnlwdG8vbWFydmVsbC9vY3Rlb250eDIvb3R4Ml9jcHRfbWJveF9jb21tb24uYzoyMzE6RVhQT1JUX1NZTUJPTF9OU19HUEwob3R4Ml9jcHRfc3luY19tYm94X21zZywgXFxcIkNSWVBUT19ERVZfT0NURU9OVFgyX0NQVFxcXCIpO1xcbmRyaXZlcnMvY3J5cHRvL21hcnZlbGwvb2N0ZW9udHgyL290eDJfY3B0X21ib3hfY29tbW9uLmMtMjMyLVxcbmRyaXZlcnMvY3J5cHRvL21hcnZlbGwvb2N0ZW9udHgyL290eDJfY3B0X21ib3hfY29tbW9uLmM9MjMzPWludCBvdHgyX2NwdF9sZl9yZXNldF9tc2coc3RydWN0IG90eDJfY3B0bGZzX2luZm8gKmxmcywgaW50IHNsb3QpXFxuLS1cXG5kcml2ZXJzL2NyeXB0by9tYXJ2ZWxsL29jdGVvbnR4Mi9vdHgyX2NwdF9tYm94X2NvbW1vbi5jLTI1MS19XFxuZHJpdmVycy9jcnlwdG8vbWFydmVsbC9vY3Rlb250eDIvb3R4Ml9jcHRfbWJveF9jb21tb24uYzoyNTI6RVhQT1JUX1NZTUJPTF9OU19HUEwob3R4Ml9jcHRfbGZfcmVzZXRfbXNnLCBcXFwiQ1JZUFRPX0RFVl9PQ1RFT05UWDJfQ1BUXFxcIik7XFxuZHJpdmVycy9jcnlwdG8vbWFydmVsbC9vY3Rlb250eDIvb3R4Ml9jcHRfbWJveF9jb21tb24uYy0yNTMtXFxuZHJpdmVycy9jcnlwdG8vbWFydmVsbC9vY3Rlb250eDIvb3R4Ml9jcHRfbWJveF9jb21tb24uYz0yNTQ9aW50IG90eDJfY3B0X2xtdHN0X3RibF9zZXR1cF9tc2coc3RydWN0IG90eDJfY3B0bGZzX2luZm8gKmxmcylcXG4tLVxcbmRyaXZlcnMvY3J5cHRvL21hcnZlbGwvb2N0ZW9udHgyL290eDJfY3B0X21ib3hfY29tbW9uLmMtMjc2LX1cXG5kcml2ZXJzL2NyeXB0by9tYXJ2ZWxsL29jdGVvbnR4Mi9vdHgyX2NwdF9tYm94X2NvbW1vbi5jOjI3NzpFWFBPUlRfU1lNQk9MX05TX0dQTChvdHgyX2NwdF9sbXRzdF90Ymxfc2V0dXBfbXNnLCBcXFwiQ1JZUFRPX0RFVl9PQ1RFT05UWDJfQ1BUXFxcIik7XFxuLS1cXG5kcml2ZXJzL2NyeXB0by9tYXJ2ZWxsL29jdGVvbnR4Mi9vdHgyX2NwdGxmLmM9Mjc0PXZvaWQgb3R4Ml9jcHRsZl91bnJlZ2lzdGVyX21pc2NfaW50ZXJydXB0cyhzdHJ1Y3Qgb3R4Ml9jcHRsZnNfaW5mbyAqbGZzKVxcbi0tXFxuZHJpdmVycy9jcnlwdG8vbWFydmVsbC9vY3Rlb250eDIvb3R4Ml9jcHRsZi5jLTI5MC19XFxuZHJpdmVycy9jcnlwdG8vbWFydmVsbC9vY3Rlb250eDIvb3R4Ml9jcHRsZi5jOjI5MTpFWFBPUlRfU1lNQk9MX05TX0dQTChvdHgyX2NwdGxmX3VucmVnaXN0ZXJfbWlzY19pbnRlcnJ1cHRzLCBcXFwiQ1JZUFRPX0RFVl9PQ1RFT05UWDJfQ1BUXFxcIik7XFxuZHJpdmVycy9jcnlwdG8vbWFydmVsbC9vY3Rlb250eDIvb3R4Ml9jcHRsZi5jLTI5Mi1cXG5kcml2ZXJzL2NyeXB0by9tYXJ2ZWxsL29jdGVvbnR4Mi9vdHgyX2NwdGxmLmM9MjkzPXZvaWQgb3R4Ml9jcHRsZl91bnJlZ2lzdGVyX2RvbmVfaW50ZXJydXB0cyhzdHJ1Y3Qgb3R4Ml9jcHRsZnNfaW5mbyAqbGZzKVxcbi0tXFxuZHJpdmVycy9jcnlwdG8vbWFydmVsbC9vY3Rlb250eDIvb3R4Ml9jcHRsZi5jLTMwOS19XFxuZHJpdmVycy9jcnlwdG8vbWFydmVsbC9vY3Rlb250eDIvb3R4Ml9jcHRsZi5jOjMxMDpFWFBPUlRfU1lNQk9MX05TX0dQTChvdHgyX2NwdGxmX3VucmVnaXN0ZXJfZG9uZV9pbnRlcnJ1cHRzLCBcXFwiQ1JZUFRPX0RFVl9PQ1RFT05UWDJfQ1BUXFxcIik7XFxuZHJpdmVycy9jcnlwdG8vbWFydmVsbC9vY3Rlb250eDIvb3R4Ml9jcHRsZi5jLTMxMS1cXG4tLVxcbmRyaXZlcnMvY3J5cHRvL21hcnZlbGwvb2N0ZW9udHgyL290eDJfY3B0bGYuYz0zMzE9aW50IG90eDJfY3B0bGZfcmVnaXN0ZXJfbWlzY19pbnRlcnJ1cHRzKHN0cnVjdCBvdHgyX2NwdGxmc19pbmZvICpsZnMpXFxuLS1cXG5kcml2ZXJzL2NyeXB0by9tYXJ2ZWxsL29jdGVvbnR4Mi9vdHgyX2NwdGxmLmMtMzUxLX1cXG5kcml2ZXJzL2NyeXB0by9tYXJ2ZWxsL29jdGVvbnR4Mi9vdHgyX2NwdGxmLmM6MzUyOkVYUE9SVF9TWU1CT0xfTlNfR1BMKG90eDJfY3B0bGZfcmVnaXN0ZXJfbWlzY19pbnRlcnJ1cHRzLCBcXFwiQ1JZUFRPX0RFVl9PQ1RFT05UWDJfQ1BUXFxcIik7XFxuZHJpdmVycy9jcnlwdG8vbWFydmVsbC9vY3Rlb250eDIvb3R4Ml9jcHRsZi5jLTM1My1cXG5kcml2ZXJzL2NyeXB0by9tYXJ2ZWxsL29jdGVvbnR4Mi9vdHgyX2NwdGxmLmM9MzU0PWludCBvdHgyX2NwdGxmX3JlZ2lzdGVyX2RvbmVfaW50ZXJydXB0cyhzdHJ1Y3Qgb3R4Ml9jcHRsZnNfaW5mbyAqbGZzKVxcbi0tXFxuZHJpdmVycy9jcnlwdG8vbWFydmVsbC9vY3Rlb250eDIvb3R4Ml9jcHRsZi5jLTM3NC19XFxuZHJpdmVycy9jcnlwdG8vbWFydmVsbC9vY3Rlb250eDIvb3R4Ml9jcHRsZi5jOjM3NTpFWFBPUlRfU1lNQk9MX05TX0dQTChvdHgyX2NwdGxmX3JlZ2lzdGVyX2RvbmVfaW50ZXJydXB0cywgXFxcIkNSWVBUT19ERVZfT0NURU9OVFgyX0NQVFxcXCIpO1xcbmRyaXZlcnMvY3J5cHRvL21hcnZlbGwvb2N0ZW9udHgyL290eDJfY3B0bGYuYy0zNzYtXFxuZHJpdmVycy9jcnlwdG8vbWFydmVsbC9vY3Rlb250eDIvb3R4Ml9jcHRsZi5jPTM3Nz12b2lkIG90eDJfY3B0bGZfZnJlZV9pcnFzX2FmZmluaXR5KHN0cnVjdCBvdHgyX2NwdGxmc19pbmZvICpsZnMpXFxuLS1cXG5kcml2ZXJzL2NyeXB0by9tYXJ2ZWxsL29jdGVvbnR4Mi9vdHgyX2NwdGxmLmMtMzg4LX1cXG5kcml2ZXJzL2NyeXB0by9tYXJ2ZWxsL29jdGVvbnR4Mi9vdHgyX2NwdGxmLmM6Mzg5OkVYUE9SVF9TWU1CT0xfTlNfR1BMKG90eDJfY3B0bGZfZnJlZV9pcnFzX2FmZmluaXR5LCBcXFwiQ1JZUFRPX0RFVl9PQ1RFT05UWDJfQ1BUXFxcIik7XFxuZHJpdmVycy9jcnlwdG8vbWFydmVsbC9vY3Rlb250eDIvb3R4Ml9jcHRsZi5jLTM5MC1cXG5kcml2ZXJzL2NyeXB0by9tYXJ2ZWxsL29jdGVvbnR4Mi9vdHgyX2NwdGxmLmM9MzkxPWludCBvdHgyX2NwdGxmX3NldF9pcnFzX2FmZmluaXR5KHN0cnVjdCBvdHgyX2NwdGxmc19pbmZvICpsZnMpXFxuLS1cXG5kcml2ZXJzL2NyeXB0by9tYXJ2ZWxsL29jdGVvbnR4Mi9vdHgyX2NwdGxmLmMtNDIxLX1cXG5kcml2ZXJzL2NyeXB0by9tYXJ2ZWxsL29jdGVvbnR4Mi9vdHgyX2NwdGxmLmM6NDIyOkVYUE9SVF9TWU1CT0xfTlNfR1BMKG90eDJfY3B0bGZfc2V0X2lycXNfYWZmaW5pdHksIFxcXCJDUllQVE9fREVWX09DVEVPTlRYMl9DUFRcXFwiKTtcXG5kcml2ZXJzL2NyeXB0by9tYXJ2ZWxsL29jdGVvbnR4Mi9vdHgyX2NwdGxmLmMtNDIzLVxcbmRyaXZlcnMvY3J5cHRvL21hcnZlbGwvb2N0ZW9udHgyL290eDJfY3B0bGYuYz00MjQ9aW50IG90eDJfY3B0bGZfaW5pdChzdHJ1Y3Qgb3R4Ml9jcHRsZnNfaW5mbyAqbGZzLCB1OCBlbmdfZ3JwX21hc2ssIGludCBwcmksXFxuLS1cXG5kcml2ZXJzL2NyeXB0by9tYXJ2ZWxsL29jdGVvbnR4Mi9vdHgyX2NwdGxmLmMtNDgxLX1cXG5kcml2ZXJzL2NyeXB0by9tYXJ2ZWxsL29jdGVvbnR4Mi9vdHgyX2NwdGxmLmM6NDgyOkVYUE9SVF9TWU1CT0xfTlNfR1BMKG90eDJfY3B0bGZfaW5pdCwgXFxcIkNSWVBUT19ERVZfT0NURU9OVFgyX0NQVFxcXCIpO1xcbmRyaXZlcnMvY3J5cHRvL21hcnZlbGwvb2N0ZW9udHgyL290eDJfY3B0bGYuYy00ODMtXFxuZHJpdmVycy9jcnlwdG8vbWFydmVsbC9vY3Rlb250eDIvb3R4Ml9jcHRsZi5jPTQ4ND12b2lkIG90eDJfY3B0bGZfc2h1dGRvd24oc3RydWN0IG90eDJfY3B0bGZzX2luZm8gKmxmcylcXG4tLVxcbmRyaXZlcnMvY3J5cHRvL21hcnZlbGwvb2N0ZW9udHgyL290eDJfY3B0bGYuYy00OTMtfVxcbmRyaXZlcnMvY3J5cHRvL21hcnZlbGwvb2N0ZW9udHgyL290eDJfY3B0bGYuYzo0OTQ6RVhQT1JUX1NZTUJPTF9OU19HUEwob3R4Ml9jcHRsZl9zaHV0ZG93biwgXFxcIkNSWVBUT19ERVZfT0NURU9OVFgyX0NQVFxcXCIpO1xcbmRyaXZlcnMvY3J5cHRvL21hcnZlbGwvb2N0ZW9udHgyL290eDJfY3B0bGYuYy00OTUtXFxuLS1cXG5kcml2ZXJzL2NyeXB0by9tYXJ2ZWxsL29jdGVvbnR4Mi9vdHgyX2NwdHBmX21haW4uYz04Nzc9bW9kdWxlX3BjaV9kcml2ZXIob3R4Ml9jcHRfcGNpX2RyaXZlcik7XFxuZHJpdmVycy9jcnlwdG8vbWFydmVsbC9vY3Rlb250eDIvb3R4Ml9jcHRwZl9tYWluLmMtODc4LVxcbmRyaXZlcnMvY3J5cHRvL21hcnZlbGwvb2N0ZW9udHgyL290eDJfY3B0cGZfbWFpbi5jOjg3OTpNT0RVTEVfSU1QT1JUX05TKFxcXCJDUllQVE9fREVWX09DVEVPTlRYMl9DUFRcXFwiKTtcXG5kcml2ZXJzL2NyeXB0by9tYXJ2ZWxsL29jdGVvbnR4Mi9vdHgyX2NwdHBmX21haW4uYy04ODAtXFxuLS1cXG5kcml2ZXJzL2NyeXB0by9tYXJ2ZWxsL29jdGVvbnR4Mi9vdHgyX2NwdHZmX21haW4uYz00NzY9bW9kdWxlX3BjaV9kcml2ZXIob3R4Ml9jcHR2Zl9wY2lfZHJpdmVyKTtcXG5kcml2ZXJzL2NyeXB0by9tYXJ2ZWxsL29jdGVvbnR4Mi9vdHgyX2NwdHZmX21haW4uYy00NzctXFxuZHJpdmVycy9jcnlwdG8vbWFydmVsbC9vY3Rlb250eDIvb3R4Ml9jcHR2Zl9tYWluLmM6NDc4Ok1PRFVMRV9JTVBPUlRfTlMoXFxcIkNSWVBUT19ERVZfT0NURU9OVFgyX0NQVFxcXCIpO1xcbmRyaXZlcnMvY3J5cHRvL21hcnZlbGwvb2N0ZW9udHgyL290eDJfY3B0dmZfbWFpbi5jLTQ3OS1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL0tjb25maWctNS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9LY29uZmlnOjY6Y29uZmlnIE9DVEVPTlRYMl9NQk9YXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvS2NvbmZpZy03LVxcdHRyaXN0YXRlXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvS2NvbmZpZy04LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL0tjb25maWc6OTpjb25maWcgT0NURU9OVFgyX0FGXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvS2NvbmZpZy0xMC1cXHR0cmlzdGF0ZSBcXFwiTWFydmVsbCBPY3Rlb25UWDIgUlZVIEFkbWluIEZ1bmN0aW9uIGRyaXZlclxcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9LY29uZmlnOjExOlxcdHNlbGVjdCBPQ1RFT05UWDJfTUJPWFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL0tjb25maWctMTItXFx0c2VsZWN0IE5FVF9ERVZMSU5LXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9LY29uZmlnPTIyPWNvbmZpZyBORENfRElTX0RZTkFNSUNfQ0FDSElOR1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL0tjb25maWctMjMtXFx0Ym9vbCBcXFwiRGlzYWJsZSBjYWNoaW5nIG9mIGR5bmFtaWMgZW50cmllcyBpbiBORENcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvS2NvbmZpZzoyNDpcXHRkZXBlbmRzIG9uIE9DVEVPTlRYMl9BRlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL0tjb25maWctMjUtXFx0ZGVmYXVsdCBuXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9LY29uZmlnLTMwLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL0tjb25maWc6MzE6Y29uZmlnIE9DVEVPTlRYMl9QRlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL0tjb25maWctMzItXFx0dHJpc3RhdGUgXFxcIk1hcnZlbGwgT2N0ZW9uVFgyIE5JQyBQaHlzaWNhbCBGdW5jdGlvbiBkcml2ZXJcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvS2NvbmZpZzozMzpcXHRzZWxlY3QgT0NURU9OVFgyX01CT1hcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9LY29uZmlnLTM0LVxcdHNlbGVjdCBORVRfREVWTElOS1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvS2NvbmZpZy00NC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9LY29uZmlnOjQ1OmNvbmZpZyBPQ1RFT05UWDJfVkZcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9LY29uZmlnLTQ2LVxcdHRyaXN0YXRlIFxcXCJNYXJ2ZWxsIE9jdGVvblRYMiBOSUMgVmlydHVhbCBGdW5jdGlvbiBkcml2ZXJcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvS2NvbmZpZzo0NzpcXHRkZXBlbmRzIG9uIE9DVEVPTlRYMl9QRlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL0tjb25maWctNDgtXFx0aGVscFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvS2NvbmZpZz01MT1jb25maWcgUlZVX0VTV0lUQ0hcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9LY29uZmlnLTUyLVxcdHRyaXN0YXRlIFxcXCJNYXJ2ZWxsIFJWVSBFLVN3aXRjaCBzdXBwb3J0XFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL0tjb25maWc6NTM6XFx0ZGVwZW5kcyBvbiBPQ1RFT05UWDJfUEZcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9LY29uZmlnLTU0LVxcdGRlZmF1bHQgbVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvTWFrZWZpbGUtNS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9NYWtlZmlsZTo2Om9iai0kKENPTkZJR19PQ1RFT05UWDJfTUJPWCkgKz0gYWYvXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvTWFrZWZpbGU6NzpvYmotJChDT05GSUdfT0NURU9OVFgyX0FGKSArPSBhZi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9NYWtlZmlsZTo4Om9iai0kKENPTkZJR19PQ1RFT05UWDJfUEYpICs9IG5pYy9cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL01ha2VmaWxlPTY9Y2NmbGFncy15ICs9IC1JJChzcmMpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvTWFrZWZpbGU6NzpvYmotJChDT05GSUdfT0NURU9OVFgyX01CT1gpICs9IHJ2dV9tYm94Lm9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9NYWtlZmlsZTo4Om9iai0kKENPTkZJR19PQ1RFT05UWDJfQUYpICs9IHJ2dV9hZi5vXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvTWFrZWZpbGUtOS1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL2NneC5jPTY2PXN0YXRpYyBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCBjZ3hfaWRfdGFibGVbXSA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jZ3guYzo2NzpcXHR7IFBDSV9ERVZJQ0UoUENJX1ZFTkRPUl9JRF9DQVZJVU0sIFBDSV9ERVZJRF9PQ1RFT05UWDJfQ0dYKSB9LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL2NneC5jLTY4LVxcdHsgUENJX0RFVklDRV9TVUIoUENJX1ZFTkRPUl9JRF9DQVZJVU0sIFBDSV9ERVZJRF9DTjEwS19SUE0sXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jZ3guaC0xNS0gLyogUENJIGRldmljZSBJRHMgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jZ3guaDoxNjojZGVmaW5lXFx0UENJX0RFVklEX09DVEVPTlRYMl9DR1hcXHRcXHQweEEwNTlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jZ3guaC0xNy1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL2NuMjBrL2RlYnVnZnMuYz0xNTQ9REVGSU5FX1NIT1dfQVRUUklCVVRFKG5wY19tY2FtX2xheW91dCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY24yMGsvZGVidWdmcy5jLTE1NS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jbjIway9kZWJ1Z2ZzLmM6MTU2OiNkZWZpbmUgX19PQ1RFT05UWDJfREVCVUdGU19BVFRSSUJVVEVfRk9QUyhfX25hbWUpXFx0XFx0XFx0XFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL2NuMjBrL2RlYnVnZnMuYy0xNTctc3RhdGljIGNvbnN0IHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgX19uYW1lICMjIF9mb3BzID0ge1xcdFxcdFxcdFxcXFxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL2NuMjBrL2RlYnVnZnMuYy0xNjQtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY24yMGsvZGVidWdmcy5jOjE2NTojZGVmaW5lIERFRklORV9PQ1RFT05UWDJfREVCVUdGU19BVFRSSUJVVEVfV0lUSF9TSVpFKF9fbmFtZSwgX19zaXplKVxcdFxcdFxcXFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jbjIway9kZWJ1Z2ZzLmMtMTY2LXN0YXRpYyBpbnQgX19uYW1lICMjIF9vcGVuKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxlKVxcdFxcdFxcXFxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL2NuMjBrL2RlYnVnZnMuYy0xNzAtfVxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcXFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jbjIway9kZWJ1Z2ZzLmM6MTcxOl9fT0NURU9OVFgyX0RFQlVHRlNfQVRUUklCVVRFX0ZPUFMoX19uYW1lKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL2NuMjBrL2RlYnVnZnMuYy0xNzItXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jbjIway9kZWJ1Z2ZzLmM9MTgxPXN0YXRpYyBpbnQgbnBjX21jYW1fZHN0YXRzX3Nob3coc3RydWN0IHNlcV9maWxlICpzLCB2b2lkICp1bnVzZWQpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jbjIway9kZWJ1Z2ZzLmMtMjQyLSNkZWZpbmUgVE9UQUxfU1ogKE1BWF9OVU1fQkFOS1MgKiBNQVhfTlVNX1NVQl9CQU5LUyAqIE1BWF9TVUJCQU5LX0RFUFRIICogNjQpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY24yMGsvZGVidWdmcy5jOjI0MzpERUZJTkVfT0NURU9OVFgyX0RFQlVHRlNfQVRUUklCVVRFX1dJVEhfU0laRShucGNfbWNhbV9kc3RhdHMsIFRPVEFMX1NaKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jbjIway9kZWJ1Z2ZzLmMtMjQ0LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL2NuMjBrL2RlYnVnZnMuYz0yNDU9c3RhdGljIGludCBucGNfbWNhbV9taXNtYXRjaF9zaG93KHN0cnVjdCBzZXFfZmlsZSAqcywgdm9pZCAqdW51c2VkKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY24yMGsvZGVidWdmcy5jLTI4NC0vKiBcXFwiJXVcXFxcdCVkXFxcXHQldVxcXFxuXFxcIiBuZWVkcyBsZXNzIHRoYW4gNjQgY2hhcmFjdGVycyB0byBwcmludC4gKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jbjIway9kZWJ1Z2ZzLmM6Mjg1OkRFRklORV9PQ1RFT05UWDJfREVCVUdGU19BVFRSSUJVVEVfV0lUSF9TSVpFKG5wY19tY2FtX21pc21hdGNoLCBUT1RBTF9TWik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY24yMGsvZGVidWdmcy5jLTI4Ni1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3B0cC5jLTIwLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3B0cC5jOjIxOiNkZWZpbmUgUENJX0RFVklEX09DVEVPTlRYMl9QVFBcXHRcXHRcXHQweEEwMENcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9wdHAuYy0yMi0jZGVmaW5lIFBDSV9TVUJTWVNfREVWSURfT0NUWDJfOTh4eF9QVFBcXHRcXHQweEIxMDBcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3B0cC5jLTI3LSNkZWZpbmUgUENJX1NVQlNZU19ERVZJRF9PQ1RYMl85NVhYT19QVFBcXHQweEI2MDBcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9wdHAuYzoyODojZGVmaW5lIFBDSV9ERVZJRF9PQ1RFT05UWDJfUlNUXFx0XFx0XFx0MHhBMDg1XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcHRwLmMtMjktI2RlZmluZSBQQ0lfREVWSURfQ04xMEtfUFRQXFx0XFx0XFx0MHhBMDlFXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9wdHAuYz01ODk9c3RhdGljIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkIHB0cF9pZF90YWJsZVtdID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3B0cC5jOjU5MDpcXHR7IFBDSV9ERVZJQ0VfU1VCKFBDSV9WRU5ET1JfSURfQ0FWSVVNLCBQQ0lfREVWSURfT0NURU9OVFgyX1BUUCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9wdHAuYy01OTEtXFx0XFx0XFx0IFBDSV9WRU5ET1JfSURfQ0FWSVVNLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3B0cC5jLTU5Mi1cXHRcXHRcXHQgUENJX1NVQlNZU19ERVZJRF9PQ1RYMl85OHh4X1BUUCkgfSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9wdHAuYzo1OTM6XFx0eyBQQ0lfREVWSUNFX1NVQihQQ0lfVkVORE9SX0lEX0NBVklVTSwgUENJX0RFVklEX09DVEVPTlRYMl9QVFAsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcHRwLmMtNTk0LVxcdFxcdFxcdCBQQ0lfVkVORE9SX0lEX0NBVklVTSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9wdHAuYy01OTUtXFx0XFx0XFx0IFBDSV9TVUJTWVNfREVWSURfT0NUWDJfOTZYWF9QVFApIH0sXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcHRwLmM6NTk2OlxcdHsgUENJX0RFVklDRV9TVUIoUENJX1ZFTkRPUl9JRF9DQVZJVU0sIFBDSV9ERVZJRF9PQ1RFT05UWDJfUFRQLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3B0cC5jLTU5Ny1cXHRcXHRcXHQgUENJX1ZFTkRPUl9JRF9DQVZJVU0sXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcHRwLmMtNTk4LVxcdFxcdFxcdCBQQ0lfU1VCU1lTX0RFVklEX09DVFgyXzk1WFhfUFRQKSB9LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3B0cC5jOjU5OTpcXHR7IFBDSV9ERVZJQ0VfU1VCKFBDSV9WRU5ET1JfSURfQ0FWSVVNLCBQQ0lfREVWSURfT0NURU9OVFgyX1BUUCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9wdHAuYy02MDAtXFx0XFx0XFx0IFBDSV9WRU5ET1JfSURfQ0FWSVVNLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3B0cC5jLTYwMS1cXHRcXHRcXHQgUENJX1NVQlNZU19ERVZJRF9PQ1RYMl85NVhYTl9QVFApIH0sXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcHRwLmM6NjAyOlxcdHsgUENJX0RFVklDRV9TVUIoUENJX1ZFTkRPUl9JRF9DQVZJVU0sIFBDSV9ERVZJRF9PQ1RFT05UWDJfUFRQLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3B0cC5jLTYwMy1cXHRcXHRcXHQgUENJX1ZFTkRPUl9JRF9DQVZJVU0sXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcHRwLmMtNjA0LVxcdFxcdFxcdCBQQ0lfU1VCU1lTX0RFVklEX09DVFgyXzk1TU1fUFRQKSB9LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3B0cC5jOjYwNTpcXHR7IFBDSV9ERVZJQ0VfU1VCKFBDSV9WRU5ET1JfSURfQ0FWSVVNLCBQQ0lfREVWSURfT0NURU9OVFgyX1BUUCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9wdHAuYy02MDYtXFx0XFx0XFx0IFBDSV9WRU5ET1JfSURfQ0FWSVVNLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmM9NDQ9c3RhdGljIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkIHJ2dV9pZF90YWJsZVtdID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jOjQ1OlxcdHsgUENJX0RFVklDRShQQ0lfVkVORE9SX0lEX0NBVklVTSwgUENJX0RFVklEX09DVEVPTlRYMl9SVlVfQUYpIH0sXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmMtNDYtXFx0eyAwLCB9ICAvKiBlbmQgb2YgdGFibGUgKi9cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jPTkyNz1zdGF0aWMgdm9pZCBydnVfZ2V0X2xia19idWZzaXplKHN0cnVjdCBydnUgKnJ2dSlcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jLTkzMy1cXHRwZGV2ID0gcGNpX2dldF9kZXZpY2UoUENJX1ZFTkRPUl9JRF9DQVZJVU0sXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmM6OTM0OlxcdFxcdFxcdCAgICAgIFBDSV9ERVZJRF9PQ1RFT05UWDJfTEJLLCBwZGV2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYy05MzUtXFx0aWYgKCFwZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmM9MzQ0Nz1pbnQgcnZ1X2dldF9udW1fbGJrX2NoYW5zKHZvaWQpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYy0zNDUyLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jOjM0NTM6XFx0cGRldiA9IHBjaV9nZXRfZGV2aWNlKFBDSV9WRU5ET1JfSURfQ0FWSVVNLCBQQ0lfREVWSURfT0NURU9OVFgyX0xCSyxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYy0zNDU0LVxcdFxcdFxcdCAgICAgIE5VTEwpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmMtMzQ3MC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYzozNDcxOiNkZWZpbmUgUENJX0RFVklEX09DVEVPTlRYMl9SVlVfQUZWRlxcdDB4QTBGOFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jLTM0NzItXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmM9MzQ3Mz1zdGF0aWMgaW50IHJ2dV9lbmFibGVfc3Jpb3Yoc3RydWN0IHJ2dSAqcnZ1KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmMtMzQ5NC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYzozNDk1OlxcdGlmIChydnUtXFx1MDAzZXZmX2RldmlkID09IFBDSV9ERVZJRF9PQ1RFT05UWDJfUlZVX0FGVkYpIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYy0zNDk2LVxcdFxcdGNoYW5zID0gcnZ1X2dldF9udW1fbGJrX2NoYW5zKCk7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuaC0yMy0vKiBQQ0kgZGV2aWNlIElEcyAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5oOjI0OiNkZWZpbmVcXHRQQ0lfREVWSURfT0NURU9OVFgyX1JWVV9BRlxcdFxcdDB4QTA2NVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5oOjI1OiNkZWZpbmVcXHRQQ0lfREVWSURfT0NURU9OVFgyX0xCS1xcdFxcdFxcdDB4QTA2MVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5oLTI2LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2NuMTBrLmM9MzkyPXN0YXRpYyB2b2lkIHJ2dV9sYmtfc2V0X2NoYW5uZWxzKHN0cnVjdCBydnUgKnJ2dSlcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9jbjEway5jLTQxNS1cXHRcXHRwZGV2ID0gcGNpX2dldF9kZXZpY2UoUENJX1ZFTkRPUl9JRF9DQVZJVU0sXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2NuMTBrLmM6NDE2OlxcdFxcdFxcdFxcdCAgICAgIFBDSV9ERVZJRF9PQ1RFT05UWDJfTEJLLCBwZGV2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfY24xMGsuYy00MTctXFx0XFx0aWYgKCFwZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2RlYnVnZnMuYz0yODA2PXN0YXRpYyB2b2lkIHJ2dV9kYmdfbnBhX2luaXQoc3RydWN0IHJ2dSAqcnZ1KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2RlYnVnZnMuYy0yODI1LS8qIFBlci1sbWFjIENHWCBkZWJ1Z2ZzIGZpbGVzIG5lZWQgYm90aCBSVlUgYW5kIENHWCBoYW5kbGU7IGlub2RlLVxcdTAwM2VpX3ByaXZhdGVcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGVidWdmcy5jOjI4MjY6ICogcG9pbnRzIGhlcmUgc28gc2VxX2ZpbGUgb3BzIGF2b2lkIHBjaV9nZXRfZGV2aWNlKFBDSV9ERVZJRF9PQ1RFT05UWDJfUlZVX0FGKS5cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGVidWdmcy5jLTI4MjctICovXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvTWFrZWZpbGUtNS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvTWFrZWZpbGU6NjpvYmotJChDT05GSUdfT0NURU9OVFgyX1BGKSArPSBydnVfbmljcGYubyBvdHgyX3B0cC5vXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL01ha2VmaWxlOjc6b2JqLSQoQ09ORklHX09DVEVPTlRYMl9WRikgKz0gcnZ1X25pY3ZmLm8gb3R4Ml9wdHAub1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9NYWtlZmlsZS04LW9iai0kKENPTkZJR19SVlVfRVNXSVRDSCkgKz0gcnZ1X3JlcC5vXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml9jb21tb24uaC00Mi0vKiBQQ0kgZGV2aWNlIElEcyAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX2NvbW1vbi5oOjQzOiNkZWZpbmUgUENJX0RFVklEX09DVEVPTlRYMl9SVlVfUEYgICAgICAgICAgICAgIDB4QTA2M1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX2NvbW1vbi5oOjQ0OiNkZWZpbmUgUENJX0RFVklEX09DVEVPTlRYMl9SVlVfVkZcXHRcXHQweEEwNjRcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml9jb21tb24uaDo0NTojZGVmaW5lIFBDSV9ERVZJRF9PQ1RFT05UWDJfUlZVX0FGVkZcXHRcXHQweEEwRjhcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml9jb21tb24uaC00Ni1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX2NvbW1vbi5oLTUwLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX2NvbW1vbi5oOjUxOiNkZWZpbmUgUENJX0RFVklEX09DVEVPTlRYMl9TRFBfUkVQXFx0XFx0MHhBMEY3XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfY29tbW9uLmgtNTItXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml9jb21tb24uaD01OTc9c3RhdGljIGlubGluZSBib29sIGlzX290eDJfbGJrdmYoc3RydWN0IHBjaV9kZXYgKnBkZXYpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfY29tbW9uLmgtNTk4LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml9jb21tb24uaDo1OTk6XFx0cmV0dXJuIChwZGV2LVxcdTAwM2VkZXZpY2UgPT0gUENJX0RFVklEX09DVEVPTlRYMl9SVlVfQUZWRikgfHxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml9jb21tb24uaC02MDAtXFx0XFx0KHBkZXYtXFx1MDAzZWRldmljZSA9PSBQQ0lfREVWSURfUlZVX1JFUCk7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml9jb21tb24uaD02MTU9c3RhdGljIGlubGluZSBib29sIGlzX290eDJfc2RwX3JlcChzdHJ1Y3QgcGNpX2RldiAqcGRldilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml9jb21tb24uaC02MTYte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX2NvbW1vbi5oOjYxNzpcXHRyZXR1cm4gcGRldi1cXHUwMDNlZGV2aWNlID09IFBDSV9ERVZJRF9PQ1RFT05UWDJfU0RQX1JFUDtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml9jb21tb24uaC02MTgtfVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfcGYuYz0zNj1zdGF0aWMgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgb3R4Ml9wZl9pZF90YWJsZVtdID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX3BmLmM6Mzc6XFx0eyBQQ0lfREVWSUNFKFBDSV9WRU5ET1JfSURfQ0FWSVVNLCBQQ0lfREVWSURfT0NURU9OVFgyX1JWVV9QRikgfSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml9wZi5jLTM4LVxcdHsgMCwgfSAgLyogZW5kIG9mIHRhYmxlICovXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml92Zi5jPTIyPXN0YXRpYyBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCBvdHgyX3ZmX2lkX3RhYmxlW10gPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfdmYuYzoyMzpcXHR7IFBDSV9ERVZJQ0UoUENJX1ZFTkRPUl9JRF9DQVZJVU0sIFBDSV9ERVZJRF9PQ1RFT05UWDJfUlZVX0FGVkYpIH0sXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfdmYuYzoyNDpcXHR7IFBDSV9ERVZJQ0UoUENJX1ZFTkRPUl9JRF9DQVZJVU0sIFBDSV9ERVZJRF9PQ1RFT05UWDJfUlZVX1ZGKSB9LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX3ZmLmM6MjU6XFx0eyBQQ0lfREVWSUNFKFBDSV9WRU5ET1JfSURfQ0FWSVVNLCBQQ0lfREVWSURfT0NURU9OVFgyX1NEUF9SRVApIH0sXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfdmYuYy0yNi1cXHR7IH1cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMTNUMTQ6MzE6NDEuNDMwMjI0MjkyWiIsIlNlcSI6MTksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy44LWZsYXNoIiwiRHVyYXRpb24iOjEzMzMyOTAzMDI3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKldvcnRoRnV6emluZyBBc3Nlc3NtZW50OiBNYXJ2ZWxsIE9jdGVvblRYMiBSVlUgRHJpdmVyKipcblxuT2theSwgbGV0J3MgYnJlYWsgdGhpcyBkb3duLiBUaGUgcGF0Y2ggaXMgaW4gYGRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL21jc19ydnVfaWYuY2AsIHNwZWNpZmljYWxseSBpbiB0aGUgYHJ2dV9tY3NfcHRwX2NmZ2AgZnVuY3Rpb24uIEl0J3MgYSBzaW1wbGUgTlVMTCBjaGVjayDigJMgYWRkaW5nIGBtY3NfZ2V0X3BkYXRhKHJwbV9pZClgIHRvIHByZXZlbnQgYSBwb3RlbnRpYWwgY3Jhc2guIE5vIGdyb3VuZGJyZWFraW5nIGZ1bmN0aW9uYWxpdHkgaGVyZSwganVzdCBkZWZlbnNpdmUgcHJvZ3JhbW1pbmcuXG5cblRoZSBjcml0aWNhbCBwaWVjZSwgaG93ZXZlciwgaXMgdGhlIGhhcmR3YXJlLiBUaGlzIGlzIHRoZSBSVlUgQWRtaW4gRnVuY3Rpb24gZHJpdmVyIGZvciBNYXJ2ZWxsIE9jdGVvblRYMiBhbmQgQ04xMEsgaGFyZHdhcmUuIFdlJ3JlIHRhbGtpbmcgYWJvdXQgKnZlbmRvci1zcGVjaWZpYyogcGh5c2ljYWwgaGFyZHdhcmUg4oCTIFNtYXJ0TklDcywgbmV0d29yayBTb0NzLCB0aGF0IHNvcnQgb2YgdGhpbmcuIFRoZSBQQ0kgSURzIGNvbmZpcm0gdGhpczogYFBDSV9WRU5ET1JfSURfQ0FWSVVNYCwgYFBDSV9ERVZJRF9PQ1RFT05UWDJfUlZVX0FGYCwgYFBDSV9ERVZJRF9DTjEwS19NQ1NgLlxuXG5Ob3csIHRoZSBpbnN0cnVjdGlvbnMgZmxhZ2dlZCB0aGlzIGFzIGEgcG90ZW50aWFsIG5lZ2F0aXZlIGNhc2UuIExldCBtZSBjaGVjay4uLiBZZXAsIHN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZSBoYXJkd2FyZSBpcyBhIG5vLWdvIGZvciBmdXp6aW5nLiBXZSdyZSB0YWxraW5nIGFib3V0IHRoaW5ncyBsaWtlIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaGVzLCBTbWFydE5JQ3MsIEdQVSBkcml2ZXJzIOKAkyB0aGUgbGlzdCBnb2VzIG9uLiBBbmQgc3BlY2lmaWNhbGx5LCB0aGUgZXhhbXBsZSBnaXZlbiBpcyBkcml2ZXJzICpyZXF1aXJpbmcgcGh5c2ljYWwgQVNJQy9QQ0llIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VKi4gQmluZ28uIFRoaXMgKmlzKiB0aGF0IGNhc2UuIFRoZSBNYXJ2ZWxsIE9jdGVvblRYMiBSVlUgcmVxdWlyZXMgcmVhbCwgcGh5c2ljYWwgTWFydmVsbCBDYXZpdW0vT2N0ZW9uVFgyIGhhcmR3YXJlLCBvciBzb21lIHZlcnkgc3BlY2lhbGl6ZWQgZW11bGF0aW9uLiBTdGFuZGFyZCBRRU1VIG9yIEdDRSBhcmUgdXNlbGVzcyBoZXJlLlxuXG5UaGVyZWZvcmUsIGJlY2F1c2UgdGhpcyBjb2RlIGlzIHRpZWQgdG8gc3BlY2lmaWMgaGFyZHdhcmUgdGhhdCdzIG5vdCBhY2Nlc3NpYmxlIGluIGEgc3RhbmRhcmQgZnV6emluZyBzZXR1cCwgYFdvcnRoRnV6emluZ2AgaGFzIHRvIGJlIGBmYWxzZWAuXG5cbkxldCBtZSBxdWlja2x5IHN1bW1hcml6ZSBteSByZWFzb25pbmcgZm9yIHRoZSByZWNvcmQ6XG5cbiogICBNb2RpZmllZCBjb2RlOiBgZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvbWNzX3J2dV9pZi5jYCAoTWFydmVsbCBPY3Rlb25UWDIgUlZVIEFkbWluIEZ1bmN0aW9uIGRyaXZlcikuXG4qICAgUGF0Y2g6IEFkZHMgYSBOVUxMIGNoZWNrIGluIGBydnVfbWNzX3B0cF9jZmdgLlxuKiAgIEhhcmR3YXJlIERlcGVuZGVuY3k6IFZlbmRvci1zcGVjaWZpYyBTbWFydE5JQyAvIG5ldHdvcmsgU29DIGRyaXZlciB0aGF0IHJlcXVpcmVzIHBoeXNpY2FsIE1hcnZlbGwgT2N0ZW9uVFgyIC8gQ04xMEsgUENJZSBoYXJkd2FyZS5cbiogICBSZWFjaGFiaWxpdHk6IFN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZSBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBmdXp6aW5nIGVudmlyb25tZW50cyAoUUVNVS9HQ0UpIHdpdGhvdXQgc3BlY2lhbGl6ZWQgZW11bGF0aW9uLlxuKiAgIENvbmNsdXNpb246IGBXb3J0aEZ1enppbmcgPSBmYWxzZWAuXG5cbkFuZCBzaW5jZSBgV29ydGhGdXp6aW5nYCBpcyBgZmFsc2VgLCB0aGUgYEVuYWJsZUNvbmZpZ3NgIGFuZCBgRm9jdXNTeW1ib2xzYCB3aWxsIGJlIGVtcHR5LiBJIGNhbiBzZXQgdGhlIHJlc3VsdHMgbm93LlxuXG5cbiIsIklucHV0VG9rZW5zIjozMjYxMiwiT3V0cHV0VG9rZW5zIjoxNzAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo1MjUsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDktMTNUMTQ6MzE6NTQuNzYzMTMxNTk4WiIsIlNlcSI6MjAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InNldC1yZXN1bHRzIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MzQwNjAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgYHJ2dV9tY3NfcHRwX2NmZygpYCBpbiBgZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvbWNzX3J2dV9pZi5jYCwgYWRkaW5nIGEgTlVMTCBjaGVjayBmb3IgdGhlIHBvaW50ZXIgcmV0dXJuZWQgYnkgYG1jc19nZXRfcGRhdGEoKWAuIFRoaXMgY29kZSBpcyBwYXJ0IG9mIHRoZSBNYXJ2ZWxsIE9jdGVvblRYMiBSVlUgQWRtaW4gRnVuY3Rpb24gZHJpdmVyLCB3aGljaCByZXF1aXJlcyB2ZW5kb3Itc3BlY2lmaWMgcGh5c2ljYWwgU21hcnROSUMgLyBTb0MgQVNJQyBoYXJkd2FyZSAoQ2F2aXVtL01hcnZlbGwgT2N0ZW9uVFgyL0NOMTBLIFBDSWUgZGV2aWNlcykgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIFFFTVUuIENvbnNlcXVlbnRseSwgdGhlIG1vZGlmaWVkIGNvZGUgaXMgc3RydWN0dXJhbGx5IHVucmVhY2hhYmxlIGZvciBzeXprYWxsZXIgZnV6emluZy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIGBydnVfbWNzX3B0cF9jZmcoKWAgaW4gYGRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL21jc19ydnVfaWYuY2AsIGFkZGluZyBhIE5VTEwgY2hlY2sgZm9yIHRoZSBwb2ludGVyIHJldHVybmVkIGJ5IGBtY3NfZ2V0X3BkYXRhKClgLiBUaGlzIGNvZGUgaXMgcGFydCBvZiB0aGUgTWFydmVsbCBPY3Rlb25UWDIgUlZVIEFkbWluIEZ1bmN0aW9uIGRyaXZlciwgd2hpY2ggcmVxdWlyZXMgdmVuZG9yLXNwZWNpZmljIHBoeXNpY2FsIFNtYXJ0TklDIC8gU29DIEFTSUMgaGFyZHdhcmUgKENhdml1bS9NYXJ2ZWxsIE9jdGVvblRYMi9DTjEwSyBQQ0llIGRldmljZXMpIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBRRU1VLiBDb25zZXF1ZW50bHksIHRoZSBtb2RpZmllZCBjb2RlIGlzIHN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZSBmb3Igc3l6a2FsbGVyIGZ1enppbmcuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOS0xM1QxNDozMTo1NC43NjMxNzA4MzhaIiwiU2VxIjoyMSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJJZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjI4ODksIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9XTsKCQkJaWYgKCFyYXdEYXRhIHx8IHJhd0RhdGEubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQlkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKTsKCQkJZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSk7CgkJCWRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKSB7CgkJCWNvbnN0IHN0YXRzID0gewoJCQkJbGxtOiB7IGNvdW50OiAwLCB0b2tlbnM6IDAsIGR1cmF0aW9uOiAwIH0sCgkJCQl0b29sOiB7IGNvdW50OiAwLCBkdXJhdGlvbjogMCB9CgkJCX07CgoJCQlyYXdEYXRhLmZvckVhY2gocyA9PiB7CgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsgCgkJCQlpZiAocy5UeXBlID09PSAibGxtIikgewoJCQkJCXN0YXRzLmxsbS5jb3VudCsrOwoJCQkJCXN0YXRzLmxsbS50b2tlbnMgKz0gKHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnMpOwoJCQkJCXN0YXRzLmxsbS5kdXJhdGlvbiArPSBkdXI7CgkJCQl9IGVsc2UgaWYgKHMuVHlwZSA9PT0gInRvb2wiKSB7CgkJCQkJc3RhdHMudG9vbC5jb3VudCsrOwoJCQkJCXN0YXRzLnRvb2wuZHVyYXRpb24gKz0gZHVyOwoJCQkJfQoJCQl9KTsKCgkJCWNvbnN0IGF2Z0xsbUR1ciA9IHN0YXRzLmxsbS5jb3VudCA+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-workflowsqm9t[0].run-triage(0) Phase: Succeeded StartedAt: 2026-09-13 14:11:35 +0000 UTC FinishedAt: 2026-09-13 14:31:56 +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+CgkJCTx0ZD4yMDI2LzA5LzEzIDE0OjMwPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7S01TQU5SZWFzb25pbmcmIzM0OzogJiMzNDsmIzM0OywKICAmIzM0O05lZWRzS01TQU4mIzM0OzogZmFsc2UsCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgYHJ2dV9tY3NfcHRwX2NmZygpYCBpbiBgZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvbWNzX3J2dV9pZi5jYCwgYWRkaW5nIGEgTlVMTCBjaGVjayBmb3IgdGhlIHBvaW50ZXIgcmV0dXJuZWQgYnkgYG1jc19nZXRfcGRhdGEoKWAuIFRoaXMgY29kZSBpcyBwYXJ0IG9mIHRoZSBNYXJ2ZWxsIE9jdGVvblRYMiBSVlUgQWRtaW4gRnVuY3Rpb24gZHJpdmVyLCB3aGljaCByZXF1aXJlcyB2ZW5kb3Itc3BlY2lmaWMgcGh5c2ljYWwgU21hcnROSUMgLyBTb0MgQVNJQyBoYXJkd2FyZSAoQ2F2aXVtL01hcnZlbGwgT2N0ZW9uVFgyL0NOMTBLIFBDSWUgZGV2aWNlcykgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIFFFTVUuIENvbnNlcXVlbnRseSwgdGhlIG1vZGlmaWVkIGNvZGUgaXMgc3RydWN0dXJhbGx5IHVucmVhY2hhYmxlIGZvciBzeXprYWxsZXIgZnV6emluZy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MS8xPC90ZD4KCQkJPHRkPjIwMjYvMDkvMTMgMTQ6MzA8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPnJlYWQtcGF0Y2gtZGlmZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1BhdGNoRGlmZiYjMzQ7OiAmIzM0O2NvbW1pdCA5MTMwNjcyMWM3MWNhZDllN2ZiYjVjYzFhYmU2NWM2NTg5OTNjOWViXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFN1biBTZXAgMTMgMTQ6MzA6NTQgMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvbWNzX3J2dV9pZi5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvbWNzX3J2dV9pZi5jXG5pbmRleCBmY2UyMmUzMTRjYWMwLi41ZTI0ZDQzZDVmYzc5IDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvbWNzX3J2dV9pZi5jXG4mIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9tY3NfcnZ1X2lmLmNcbkBAIC01MCw2ICYjNDM7NTAsOCBAQCB2b2lkIHJ2dV9tY3NfcHRwX2NmZyhzdHJ1Y3QgcnZ1ICpydnUsIHU4IHJwbV9pZCwgdTggbG1hY19pZCwgYm9vbCBlbmEpXG4gXHQvKiBDTkYxMEstQiAqL1xuIFx0aWYgKHJ2dS1cdTAwM2VtY3NfYmxrX2NudCBcdTAwM2UgMSkge1xuIFx0XHRtY3MgPSBtY3NfZ2V0X3BkYXRhKHJwbV9pZCk7XG4mIzQzO1x0XHRpZiAoIW1jcylcbiYjNDM7XHRcdFx0cmV0dXJuO1xuIFx0XHRjZmcgPSBtY3NfcmVnX3JlYWQobWNzLCBNQ1NYX1BFWF9SWF9TTEFWRV9QRVhfQ09ORklHVVJBVElPTik7XG4gXHRcdGlmIChlbmEpXG4gXHRcdFx0Y2ZnIHw9IEJJVF9VTEwobG1hY19pZCk7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDkvMTMgMTQ6MzA8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Y29yZTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IG51bGwsCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgYHJ2dV9tY3NfcHRwX2NmZygpYCBpbiBgZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvbWNzX3J2dV9pZi5jYCwgYWRkaW5nIGEgTlVMTCBjaGVjayBmb3IgdGhlIHBvaW50ZXIgcmV0dXJuZWQgYnkgYG1jc19nZXRfcGRhdGEoKWAuIFRoaXMgY29kZSBpcyBwYXJ0IG9mIHRoZSBNYXJ2ZWxsIE9jdGVvblRYMiBSVlUgQWRtaW4gRnVuY3Rpb24gZHJpdmVyLCB3aGljaCByZXF1aXJlcyB2ZW5kb3Itc3BlY2lmaWMgcGh5c2ljYWwgU21hcnROSUMgLyBTb0MgQVNJQyBoYXJkd2FyZSAoQ2F2aXVtL01hcnZlbGwgT2N0ZW9uVFgyL0NOMTBLIFBDSWUgZGV2aWNlcykgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIFFFTVUuIENvbnNlcXVlbnRseSwgdGhlIG1vZGlmaWVkIGNvZGUgaXMgc3RydWN0dXJhbGx5IHVucmVhY2hhYmxlIGZvciBzeXprYWxsZXIgZnV6emluZy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyIGFuZCBzZWN1cml0eSBlbmdpbmVlci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBldmFsdWF0ZSB3aGV0aGVyIGl0IHdhcnJhbnRzIGZ1enppbmcgd2l0aCBzeXprYWxsZXIuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIGludGVybmFsIGFzc3VtcHRpb25zLiBZb3UgbXVzdCBhY3RpdmVseSB1c2UgeW91ciBjb2RlIGFjY2Vzcwp0b29scyB0byBpbnNwZWN0IHRoZSBhY3R1YWwgc291cmNlIGNvZGUsIGNhbGxlcnMsIGFuZCBzdXJyb3VuZGluZyBjb250ZXh0LgoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KMS4gQ09SRSBUUklBR0UgUEhJTE9TT1BIWQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpUaGUgZ29hbCBvZiBwYXRjaCBmdXp6aW5nIGlzIHRvIGRpc2NvdmVyIGNyYXNoZXMsIHJlZ3Jlc3Npb25zLCBleHBvc2VkIGxhdGVudCBidWdzLAphbmQgbmV3bHkgdHJpZ2dlcmVkIGFzc2VydGlvbnMgaW50cm9kdWNlZCBieSB0aGUgcGF0Y2ggc2VyaWVzLgoKLSBSRUFDSEFCSUxJVFkgSVMgVEhFIFBSSU1BUlkgR0FURToKICBGdXp6aW5nIGNhbiBvbmx5IGRpc2NvdmVyIGJ1Z3MgaW4gY29kZSB0aGF0IGNhbiBhY3R1YWxseSBleGVjdXRlIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkCiAgZW52aXJvbm1lbnRzIChHQ0Ugb3IgUUVNVSwgdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGRldmljZXMgbGlrZSBVU0IgZ2FkZ2V0cywgbmV0ZGV2LCB0dW4vdGFwKS4KICBJZiB0aGUgbW9kaWZpZWQgY29kZSBpcyBzdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUgKHNlZSBTZWN0aW9uIDIpLCBpdCBNVVNUIE5PVCBiZSBmdXp6ZWQsCiAgcmVnYXJkbGVzcyBvZiB3aGV0aGVyIGl0IGFkZHMgYXNzZXJ0aW9ucyBvciBjb21wbGV4IGxvZ2ljLgoKLSBETyBOT1QgQkxJTkRMWSBUUlVTVCAmIzM0O05PIEZVTkNUSU9OQUwgQ0hBTkdFJiMzNDsgKE5GQ0kpIE9SICYjMzQ7UkVGQUNUT1JJTkcmIzM0OyBDTEFJTVM6CiAgUGF0Y2ggYXV0aG9ycyByb3V0aW5lbHkgbGFiZWwgY2hhbmdlcyBhcyAmIzM0O2NsZWFudXBzJiMzNDssICYjMzQ7cmVmYWN0b3JpbmdzJiMzNDssIG9yIHN0YXRlCiAgJiMzNDtObyBmdW5jdGlvbmFsIGNoYW5nZSBpbnRlbmRlZCYjMzQ7LiBEbyBOT1QgdGFrZSB0aGVzZSBjbGFpbXMgYXQgZmFjZSB2YWx1ZS4KICBDb2RlIHJlZmFjdG9yaW5ncyB0aGF0IHJlYXJyYW5nZSBsb2dpYywgaW50cm9kdWNlIGhlbHBlciBmdW5jdGlvbnMsIG9yIGFsdGVyIHN0YXRlIG1hbmFnZW1lbnQKICBpbiBjb3JlIHN1YnN5c3RlbXMgZnJlcXVlbnRseSBpbnRyb2R1Y2Ugc3VidGxlIHNlbWFudGljIHNoaWZ0cyBvciB1bmNvdmVyIGxhdGVudCBrZXJuZWwgYnVncy4KICBJZiByZWFjaGFibGUgZXhlY3V0YWJsZSBjb2RlIGlzIG1vZGlmaWVkIG9yIHJlZmFjdG9yZWQsIGl0IE1VU1QgYmUgZnV6emVkLgoKLSBORVcgT1IgTU9ESUZJRUQgQVNTRVJUSU9OUyBJTiBSRUFDSEFCTEUgQ09ERSBNVVNUIEJFIEZVWlpFRDoKICBXaGVuIGEgcGF0Y2ggaW50cm9kdWNlcyBvciBtb2RpZmllcyBydW50aW1lIGNoZWNrcyBvciBhc3NlcnRpb25zIChlLmcuLCBXQVJOX09OKiwgVk1fV0FSTl9PTiosCiAgQlVHX09OKiwgbG9ja2RlcF9hc3NlcnQqKSBpbiByZWFjaGFibGUgY29kZSBwYXRocywgaXQgZW5mb3JjZXMgbmV3IG9yIHN0cmljdGVyIGludmFyaWFudHMuCiAgRXZlbiBpZiB0aGUgYXV0aG9yIGJlbGlldmVzIHRoZSBpbnZhcmlhbnQgYWx3YXlzIGhvbGRzLCBmdXp6aW5nIGlzIGVzc2VudGlhbCB0byB2ZXJpZnkgd2hldGhlcgogIGFuIHVudXN1YWwgc2VxdWVuY2Ugb2Ygb3BlcmF0aW9ucyBjYW4gdmlvbGF0ZSBpdC4KCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CjIuIFdIRU4gVE8gUkVUVVJOIFdvcnRoRnV6emluZz1mYWxzZSAoTkVHQVRJVkUgQ1JJVEVSSUEpCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgT05MWSBJRiBhbGwgbW9kaWZpZWQgY29kZSBmYWxscyBzdHJpY3RseSBpbnRvIG9uZSBvciBtb3JlIG9mIHRoZXNlIGNhdGVnb3JpZXM6CgotIE5vbi1rZXJuZWwgYW5kIG5vbi1leGVjdXRhYmxlIGNoYW5nZXM6CiAgKiBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBjb21tZW50cywgb3Igc3BlbGxpbmcgZml4ZXMuCiAgKiBVc2VyLXNwYWNlIGRpcmVjdG9yaWVzLCBzZWxmLXRlc3RzLCBzYW1wbGVzLCBvciBzY3JpcHRzIChlLmcuLCB0b29scy8sIHNhbXBsZXMvLCBzY3JpcHRzLywgdXNyLykKICAgIHRoYXQgZG8gbm90IGFmZmVjdCB0aGUgY29tcGlsZWQga2VybmVsIGltYWdlICh2bWxpbnV4KSBvciBrZXJuZWwgbW9kdWxlcy4KICAqIFB1cmVseSBkZWNvcmF0aXZlIGxvZ2dpbmcgKGUuZy4sIG1lc3NhZ2Ugc3RyaW5ncyBpbiBwcl9lcnIsIHByaW50aywgZGV2X2luZm8pIG9yIHRyYWNlcG9pbnRzCiAgICB0aGF0IGRvIG5vdCBhbHRlciBjb250cm9sIGZsb3cgb3IgZGF0YSBzdHJ1Y3R1cmVzLgogICogQnVpbGQgc3lzdGVtIG9yIEtjb25maWcgY2hhbmdlcyB0aGF0IGRvIG5vdCBhbHRlciBjb21waWxlZCBDIGxvZ2ljLgotIFN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZSBoYXJkd2FyZToKICAqIFZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaGVzLCBTbWFydE5JQ3MsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCwKICAgIGlvbmljLCBhbWRncHUpIHJlcXVpcmluZyBwaHlzaWNhbCBBU0lDL1BDSWUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuCi0gVW5yZWFjaGFibGUgZXhlY3V0aW9uIHBhdGhzOgogICogRHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoLnJlbW92ZSwgLnNodXRkb3duLCBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIpIGV4ZWN1dGVkIG9ubHkgZHVyaW5nCiAgICBwaHlzaWNhbCBQQ0kgaG90LXVucGx1ZyBvciBtYW51YWwgc3lzZnMgZHJpdmVyIHVuYmluZGluZy4KICAqIENvZGUgcGF0aHMgZXhjbHVzaXZlIHRvIGFyY2hpdGVjdHVyZXMgb3RoZXIgdGhhbiB0aGUgdGFyZ2V0IGFyY2hpdGVjdHVyZS4KCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CjMuIFdIRU4gVE8gUkVUVVJOIFdvcnRoRnV6emluZz10cnVlIChQT1NJVElWRSBDUklURVJJQSkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUmV0dXJuIFdvcnRoRnV6emluZz10cnVlIHdoZW5ldmVyIHRoZSBwYXRjaCB0b3VjaGVzIHJlYWNoYWJsZSBleGVjdXRhYmxlIGNvZGUsIGluY2x1ZGluZzoKLSBDb3JlIFN1YnN5c3RlbXM6CiAgKiBBbnkgbG9naWMgbW9kaWZpY2F0aW9ucyBpbiBtZW1vcnkgbWFuYWdlbWVudCAobW0vKSwgc3luY2hyb25pemF0aW9uL2xvY2tpbmcgKGtlcm5lbC9sb2NraW5nLyksCiAgICBCUEYsIHNjaGVkdWxlciwgY29yZSBuZXR3b3JraW5nLCBWRlMsIG9yIHN5c2NhbGwgaGFuZGxpbmcuCi0gUmVmYWN0b3JpbmdzIGFuZCBDb2RlIENsZWFudXBzOgogICogQW55IHJlc3RydWN0dXJpbmcgb2YgcmVhY2hhYmxlIGRhdGEgc3RydWN0dXJlcywgaGVscGVyIGFic3RyYWN0aW9ucywgb3IgYWxnb3JpdGhtIGZsb3dzLgotIFJ1bnRpbWUgQXNzZXJ0aW9ucyBhbmQgRGVmZW5zaXZlIENoZWNrczoKICAqIEFueSBpbnRyb2R1Y3Rpb24gb3IgYWx0ZXJhdGlvbiBvZiBhc3NlcnRpb25zIChXQVJOX09OKiwgVk1fV0FSTl9PTiosIEJVR19PTiosIGV0Yy4pIGluIHJlYWNoYWJsZSBwYXRocy4KLSBSZWFjaGFibGUgRHJpdmVycyBhbmQgUHJvdG9jb2xzOgogICogRHJpdmVycyBhY2Nlc3NpYmxlIHZpYSB2aXJ0dWFsIGJ1c2VzICh2aXJ0aW8sIFVTQiBnYWRnZXQsIGxvb3BiYWNrLCBuZXRsaW5rLCBiaW5kZXIsIHNvY2tldHMsIGV0Yy4pLgoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KNC4gRVhUUkFDVElORyBGb2N1c1N5bWJvbHMgKFBSRVZFTlRJTkcgRElMVVRJT04pCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CldoZW4gV29ydGhGdXp6aW5nPXRydWUsIHlvdSBtdXN0IGV4dHJhY3Qgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyBpbnRvIEZvY3VzU3ltYm9scyB0byBndWlkZSB0aGUgZnV6emVyOgoKLSBBVk9JRCBVQklRVUlUT1VTIExJRkVDWUNMRSBIT1QtUEFUSFM6CiAgRG8gTk9UIGxpc3QgZ2VuZXJpYywgdWJpcXVpdG91cyBmdW5jdGlvbnMgY2FsbGVkIGJ5IGFsbW9zdCBldmVyeSBwcm9ncmFtIGluIHRoZSBjb3JwdXMKICAoaW5jbHVkaW5nLCBidXQgbm90IGxpbWl0ZWQgdG86IGdlbmVyYWwgbWVtb3J5IGFsbG9jYXRvcnMgYW5kIGRlYWxsb2NhdG9ycywgcGFnZSBmYXVsdAogIGFuZCB0cmFwIGhhbmRsZXJzLCBvciBjb3JlIHN5bmNocm9uaXphdGlvbiBwcmltaXRpdmVzOyB0aGlzIGlzIG5vdCBhbiBleGhhdXN0aXZlIGxpc3QpLgogIExpc3RpbmcgdWJpcXVpdG91cyBmdW5jdGlvbnMgY2F1c2VzIHRoZSBmdXp6ZXIgdG8gY2xhc3NpZnkgdGhvdXNhbmRzIG9mIHVucmVsYXRlZCB0ZXN0cyBhcyAmIzM0O2ZvY3VzZWQmIzM0OywKICB3aGljaCBzZXZlcmVseSBkaWx1dGVzIGZ1enppbmcgZWZmb3J0IGF3YXkgZnJvbSB0aGUgYWN0dWFsIGNoYW5nZXMuCgotIFRBUkdFVCBTUEVDSUZJQyBGRUFUVVJFIExPR0lDIEFORCBFTlRSWVBPSU5UUzoKICBMaXN0IGZ1bmN0aW9ucyB0aGF0IHNwZWNpZmljYWxseSBpbXBsZW1lbnQgdGhlIGxvZ2ljIGJlaW5nIGFkZGVkIG9yIGFsdGVyZWQsIG9yIGRpcmVjdCBBUEkgZW50cnlwb2ludHMKICBmb3IgdGhlIHN1YnN5c3RlbSBmZWF0dXJlIHVuZGVyIHJldmlldy4KCi0gSEFORExJTkcgU1RBVElDIElOTElORSBGVU5DVElPTlMgSU4gSEVBREVSUyAoLmgpOgogIENvbXBpbGVyLWlubGluZWQgc3RhdGljIGZ1bmN0aW9ucyAoc3VjaCBhcyBzdGF0aWMgaW5saW5lcyBpbiBtbS8qLmggb3IgaW5jbHVkZS9saW51eC8qLmgpIGxhY2sKICBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzIGluIHZtbGludXggYW5kIGNhbm5vdCBiZSB0YXJnZXRlZCBkaXJlY3RseSBieSBzeW1ib2wgY292ZXJhZ2UgZmlsdGVycy4KICBJZiB0aGUgY2hhbmdlcyBhcmUgcHJpbWFyaWx5IGluIHN0YXRpYyBpbmxpbmUgaGVscGVycywgaWRlbnRpZnkgbm9uLXN0YXRpYywgZmVhdHVyZS1zcGVjaWZpYyBjYWxsZXIKICBmdW5jdGlvbnMgaW4gLmMgZmlsZXMgdGhhdCBleGVyY2lzZSB0aGVtIChhdm9pZGluZyB1YmlxdWl0b3VzIGxpZmVjeWNsZSB3cmFwcGVycykuCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQo1LiBJREVOVElGWUlORyBFbmFibGVDb25maWdzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CklkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgY29tcGlsZSBhbmQgcmVhY2ggdGhlIG1vZGlmaWVkIGNvZGU6Ci0gSW5zcGVjdCBLY29uZmlnIGZpbGVzIGFuZCAjaWZkZWYgZ3VhcmRzOyBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy4KLSBDaGVjayAmIzM0O2RlcGVuZHMgb24mIzM0OyBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3MgbmVlZGVkLgotIFN0cmlwIGFueSAmIzM5O0NPTkZJR18mIzM5OyBwcmVmaXggKGUuZy4sIHJldHVybiAmIzM0O05FVF9JUFY0JiMzNDsgaW5zdGVhZCBvZiAmIzM0O0NPTkZJR19ORVRfSVBWNCYjMzQ7KS4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5UYXJnZXQgYXJjaGl0ZWN0dXJlOiBhbWQ2NAoKRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCA5MTMwNjcyMWM3MWNhZDllN2ZiYjVjYzFhYmU2NWM2NTg5OTNjOWViCkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIFN1biBTZXAgMTMgMTQ6MzA6NTQgMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9tY3NfcnZ1X2lmLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9tY3NfcnZ1X2lmLmMKaW5kZXggZmNlMjJlMzE0Y2FjMC4uNWUyNGQ0M2Q1ZmM3OSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvbWNzX3J2dV9pZi5jCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL21jc19ydnVfaWYuYwpAQCAtNTAsNiAmIzQzOzUwLDggQEAgdm9pZCBydnVfbWNzX3B0cF9jZmcoc3RydWN0IHJ2dSAqcnZ1LCB1OCBycG1faWQsIHU4IGxtYWNfaWQsIGJvb2wgZW5hKQogCS8qIENORjEwSy1CICovCiAJaWYgKHJ2dS0mZ3Q7bWNzX2Jsa19jbnQgJmd0OyAxKSB7CiAJCW1jcyA9IG1jc19nZXRfcGRhdGEocnBtX2lkKTsKJiM0MzsJCWlmICghbWNzKQomIzQzOwkJCXJldHVybjsKIAkJY2ZnID0gbWNzX3JlZ19yZWFkKG1jcywgTUNTWF9QRVhfUlhfU0xBVkVfUEVYX0NPTkZJR1VSQVRJT04pOwogCQlpZiAoZW5hKQogCQkJY2ZnIHw9IEJJVF9VTEwobG1hY19pZCk7CjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzEzIDE0OjMwPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy44LWZsYXNoPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDI5NjgKCQkJCQkJCW91dHB1dDogNDQKCQkJCQkJCXRob3VnaHRzOiA0MjMKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoaXMgUGF0Y2g6IEEgUXVpY2sgRGVlcCBEaXZlKioKCk9rYXksIGxldCYjMzk7cyBkaXZlIGludG8gdGhpcyBwYXRjaC4gTXkgaW1tZWRpYXRlIHRob3VnaHQgaXMgdG8gdW5kZXJzdGFuZCB0aGUgaW1wbGljYXRpb25zIHdpdGhpbiB0aGUgT2N0ZW9uVFgyIGVjb3N5c3RlbS4gVGhlIGRpZmYgaXMgdGFyZ2V0aW5nIGBkcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9tY3NfcnZ1X2lmLmNgLCB3aGljaCB0ZWxscyBtZSB3ZSYjMzk7cmUgZGVhbGluZyB3aXRoIHRoZSBNYXJ2ZWxsIE9jdGVvbiBUWDIgZmFtaWx5LCBzcGVjaWZpY2FsbHkgdGhlIEFGIChBcHBsaWNhdGlvbiBGYWJyaWMpIGNvbXBvbmVudCwgcHJvYmFibHkgcmVsYXRlZCB0byBuZXR3b3JrIGludGVyZmFjZSBjb25maWd1cmF0aW9uLiBHaXZlbiBteSBleHBlcmllbmNlIHdpdGggdGhlc2UgU29DcywgSSYjMzk7bSBhbHJlYWR5IG1lbnRhbGx5IG1hcHBpbmcgdGhlIHJlbGV2YW50IGhhcmR3YXJlIGJsb2Nrcy4KCkxvb2tpbmcgYXQgdGhlIGNvZGUsIGl0JiMzOTtzIG1vZGlmeWluZyB0aGUgYHJ2dV9tY3NfcHRwX2NmZ2AgZnVuY3Rpb24uIFRoaXMgZnVuY3Rpb24gc2VlbXMgdG8gaGFuZGxlIFByZWNpc2lvbiBUaW1lIFByb3RvY29sIChQVFApIGNvbmZpZ3VyYXRpb24sIHByb2JhYmx5IGZvciBhIHNwZWNpZmljIExNQUMgKExvZ2ljYWwgTUFDKSBJRCB3aXRoaW4gdGhlIE9jdGVvblRYMi4gVGhlIGtleSBjaGFuZ2UgaXMgdGhlIGFkZGl0aW9uIG9mIGEgbnVsbCBjaGVjayBmb3IgYG1jc2AgYmVmb3JlIGFjY2Vzc2luZyBpdHMgbWVtYmVycy4gSXQgYXBwZWFycyB0aGVyZSB3YXMgYSBwb3RlbnRpYWwgZm9yIGEgbnVsbCBwb2ludGVyIGRlcmVmZXJlbmNlIHRoZXJlLiBHaXZlbiB0aGUgY29udGV4dCBvZiB0aGUgYG1jc19nZXRfcGRhdGFgIGZ1bmN0aW9uLCBpdCBtdXN0IGhhdmUgYmVlbiByZXR1cm5pbmcgTlVMTCBpbiBzb21lIHNjZW5hcmlvcy4gVGhlIGludHJvZHVjdGlvbiBvZiB0aGUgbnVsbCBjaGVjayBzZWVtcyBzdHJhaWdodGZvcndhcmQgYnV0LCBJIGFtIGN1cmlvdXMgYXMgdG8gdGhlIHBhcnRpY3VsYXIgY29kZSBwYXRoIHRoYXQgY2FuIHByb2R1Y2UgdGhlIGZhaWx1cmUuCgpNeSBuZXh0IHN0ZXAgaXMgdG8gaW52ZXN0aWdhdGUgdGhlIEtjb25maWcgb3B0aW9ucyBmb3IgdGhlIGBvY3Rlb250eDIvYWZgIGRpcmVjdG9yeSB0byBnZXQgYSBiZXR0ZXIgaGFuZGxlIG9uIHRoZSBwb3RlbnRpYWwgY29uZmlndXJhdGlvbiBzY2VuYXJpb3MgdGhhdCBsZWQgdG8gdGhlIHJlcG9ydGVkIGlzc3VlIGFuZCB0byBhc2NlcnRhaW4gdGhlIGJyb2FkZXIgaW1wbGljYXRpb25zIGFuZCBidWlsZCBkZXBlbmRlbmNpZXMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NC8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMTMgMTQ6MzE8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7bWNzX3J2dV9pZiYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9NYWtlZmlsZT0xMT1ydnVfYWYteSA6PSBjZ3gubyBydnUubyBydnVfY2d4Lm8gcnZ1X25wYS5vIHJ2dV9uaXgubyBcXFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL01ha2VmaWxlLTEzLVx0XHQgIHJ2dV9jcHQubyBydnVfZGV2bGluay5vIHJwbS5vIHJ2dV9jbjEway5vIHJ2dV9zd2l0Y2gubyBcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvTWFrZWZpbGU6MTQ6XHRcdCAgcnZ1X3NkcC5vIHJ2dV9ucGNfaGFzaC5vIG1jcy5vIG1jc19ydnVfaWYubyBtY3NfY25mMTBrYi5vIFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9NYWtlZmlsZS0xNS1cdFx0ICBydnVfcmVwLm8gY24yMGsvbWJveF9pbml0Lm8gY24yMGsvbml4Lm8gY24yMGsvZGVidWdmcy5vIFxcXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NS8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMTMgMTQ6MzE8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjgtZmxhc2g8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNDAwNwoJCQkJCQkJb3V0cHV0OiAzNAoJCQkJCQkJdGhvdWdodHM6IDQ3CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5IZXJlJiMzOTtzIG15IHRob3VnaHQgcHJvY2VzcywgYXMgcmVxdWVzdGVkOgoKKipOYXZpZ2F0aW5nIHRoZSBPY3Rlb25UWDIgRXRoZXJuZXQgRHJpdmVyIENvbmZpZ3VyYXRpb24qKgoKT2theSwgc28gSSBuZWVkIHRvIGZpZ3VyZSBvdXQgdGhlIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBmb3IgdGhlIE9jdGVvblRYMiBFdGhlcm5ldCBkcml2ZXIuIE15IGZpcnN0IGluc3RpbmN0LCBnaXZlbiBteSBleHBlcmllbmNlLCBpcyB0byB6ZXJvIGluIG9uIHRoZSBgS2NvbmZpZ2AgZmlsZXMuIFRoYXQmIzM5O3Mgd2hlcmUgYWxsIHRoZSBidWlsZC10aW1lIGNvbmZpZ3VyYXRpb24gbWFnaWMgaGFwcGVucywgZGVmaW5pbmcgdGhlIGRpZmZlcmVudCBmZWF0dXJlcywgc2V0dGluZ3MsIGFuZCBkZXBlbmRlbmNpZXMuIE5vdywgd2hlcmUgd291bGQgdGhlIHJlbGV2YW50IGNvbmZpZ3VyYXRpb25zICpsaWtlbHkqIGxpdmU/IENvbnNpZGVyaW5nIHRoZSBkcml2ZXImIzM5O3MgYXJjaGl0ZWN0dXJlIGFuZCB0aGUgcG9zc2libGUgcHJlc2VuY2Ugb2Ygb2ZmbG9hZCBmdW5jdGlvbmFsaXRpZXMsIEkmIzM5O2xsIHN0YXJ0IGJ5IGNoZWNraW5nIGVpdGhlciB0aGUgbWFpbiBgS2NvbmZpZ2AgZmlsZSB1bmRlciBgZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvS2NvbmZpZ2Agb3IsIHNpbmNlIHRoZSBgYWZgIGRpcmVjdG9yeSBvZnRlbiBoYW5kbGVzIG9mZmxvYWQgZmVhdHVyZXMsIEkmIzM5O2xsIGFsc28gbG9vayBhdCBgZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvS2NvbmZpZ2AuIFRoZXNlIHNlZW0gbGlrZSB0aGUgbW9zdCBsb2dpY2FsIHN0YXJ0aW5nIHBvaW50cyB0byBleGFtaW5lIHRoZSBhdmFpbGFibGUgY29uZmlndXJhdGlvbnMuIEkgZXhwZWN0IHRvIGZpbmQgdGhpbmdzIGxpa2UgZW5hYmxpbmcvZGlzYWJsaW5nIGRpZmZlcmVudCBmZWF0dXJlcywgZGVmaW5pbmcgYnVmZmVyIHNpemVzLCBhbmQgcGVyaGFwcyBldmVuIHNvbWUgZGVidWdnaW5nIG9wdGlvbnMsIGFsbCBjb250cm9sbGVkIGJ5IHRoZXNlIEtjb25maWcgZmlsZXMuIFRpbWUgdG8gZGlnIGluIQoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzEzIDE0OjMxPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3J2dV9hZiYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL01ha2VmaWxlPTc9b2JqLSQoQ09ORklHX09DVEVPTlRYMl9NQk9YKSAmIzQzOz0gcnZ1X21ib3gub1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvTWFrZWZpbGU6ODpvYmotJChDT05GSUdfT0NURU9OVFgyX0FGKSAmIzQzOz0gcnZ1X2FmLm9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL01ha2VmaWxlLTktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9NYWtlZmlsZT0xMD1ydnVfbWJveC15IDo9IG1ib3gubyBydnVfdHJhY2Uub1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvTWFrZWZpbGU6MTE6cnZ1X2FmLXkgOj0gY2d4Lm8gcnZ1Lm8gcnZ1X2NneC5vIHJ2dV9ucGEubyBydnVfbml4Lm8gXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL01ha2VmaWxlLTEyLVx0XHQgIHJ2dV9yZWcubyBydnVfbnBjLm8gcnZ1X2RlYnVnZnMubyBwdHAubyBydnVfbnBjX2ZzLm8gXFxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jbjIway9zdHJ1Y3QuaD0xOT1lbnVtIHJ2dV9tYm94X3BmX2ludF92ZWNfZSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY24yMGsvc3RydWN0LmgtMjgtLyogUlZVIEFkbWluIGZ1bmN0aW9uIEludGVycnVwdCBWZWN0b3IgRW51bWVyYXRpb24gKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL2NuMjBrL3N0cnVjdC5oOjI5OmVudW0gcnZ1X2FmX2NuMjBrX2ludF92ZWNfZSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jbjIway9zdHJ1Y3QuaC0zMC1cdFJWVV9BRl9DTjIwS19JTlRfVkVDX1BPSVNPTlx0XHQ9IDB4MCxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9tYm94Lmg9NDY4PXN0cnVjdCBtc2dfcnNwIHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9tYm94LmgtNDc0LSAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvbWJveC5oOjQ3NTplbnVtIHJ2dV9hZl9zdGF0dXMge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvbWJveC5oLTQ3Ni1cdFJWVV9JTlZBTElEX1ZGX0lEICAgICAgICAgICA9IC0yNTYsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmMtMjYtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYzoyNzojZGVmaW5lIERSVl9OQU1FXHRcJiMzNDtydnVfYWZcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jLTI4LSNkZWZpbmUgRFJWX1NUUklORyAgICAgIFwmIzM0O01hcnZlbGwgT2N0ZW9uVFgyIFJWVSBBZG1pbiBGdW5jdGlvbiBEcml2ZXJcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYz0yMzA3PXN0YXRpYyB2b2lkIF9fcnZ1X21ib3hfaGFuZGxlcihzdHJ1Y3QgcnZ1X3dvcmsgKm13b3JrLCBpbnQgdHlwZSwgYm9vbCBwb2xsKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jLTIzOTctXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYzoyMzk4OnN0YXRpYyBpbmxpbmUgdm9pZCBydnVfYWZwZl9tYm94X2hhbmRsZXIoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmMtMjM5OS17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmMtMjQwNy1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jOjI0MDg6c3RhdGljIGlubGluZSB2b2lkIHJ2dV9hZnZmX21ib3hfaGFuZGxlcihzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYy0yNDA5LXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYz0yNDE1PXN0YXRpYyB2b2lkIF9fcnZ1X21ib3hfdXBfaGFuZGxlcihzdHJ1Y3QgcnZ1X3dvcmsgKm13b3JrLCBpbnQgdHlwZSlcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYy0yNDgyLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmM6MjQ4MzpzdGF0aWMgaW5saW5lIHZvaWQgcnZ1X2FmcGZfbWJveF91cF9oYW5kbGVyKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaylcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jLTI0ODQte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jLTI0ODktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYzoyNDkwOnN0YXRpYyBpbmxpbmUgdm9pZCBydnVfYWZ2Zl9tYm94X3VwX2hhbmRsZXIoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmMtMjQ5MS17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmM9MjU3MD1zdGF0aWMgaW50IHJ2dV9tYm94X2luaXQoc3RydWN0IHJ2dSAqcnZ1LCBzdHJ1Y3QgbWJveF93cV9pbmZvICptdyxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYy0yNjI1LVx0Y2FzZSBUWVBFX0FGUEY6XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYzoyNjI2Olx0XHRuYW1lID0gXCYjMzQ7cnZ1X2FmcGZfbWFpbGJveFwmIzM0OztcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jLTI2MjctXHRcdGRpciA9IE1CT1hfRElSX0FGUEY7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmMtMjYzNC1cdGNhc2UgVFlQRV9BRlZGOlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmM6MjYzNTpcdFx0bmFtZSA9IFwmIzM0O3J2dV9hZnZmX21haWxib3hcJiMzNDs7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYy0yNjM2LVx0XHRkaXIgPSBNQk9YX0RJUl9QRlZGO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jPTI4ODk9c3RhdGljIHZvaWQgX19ydnVfZmxyX2hhbmRsZXIoc3RydWN0IHJ2dSAqcnZ1LCB1MTYgcGNpZnVuYylcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYy0yOTI5LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmM6MjkzMDpzdGF0aWMgdm9pZCBydnVfYWZ2Zl9mbHJfaGFuZGxlcihzdHJ1Y3QgcnZ1ICpydnUsIGludCB2ZilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jLTI5MzEte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jPTI5NDc9c3RhdGljIHZvaWQgcnZ1X2Zscl9oYW5kbGVyKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaylcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYy0yOTU2LVx0aWYgKHBmIFx1MDAzZT0gcnZ1LVx1MDAzZWh3LVx1MDAzZXRvdGFsX3Bmcykge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmM6Mjk1NzpcdFx0cnZ1X2FmdmZfZmxyX2hhbmRsZXIocnZ1LCBwZiAtIHJ2dS1cdTAwM2Vody1cdTAwM2V0b3RhbF9wZnMpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmMtMjk1OC1cdFx0cmV0dXJuO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jLTI5NzYtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYzoyOTc3OnN0YXRpYyB2b2lkIHJ2dV9hZnZmX3F1ZXVlX2Zscl93b3JrKHN0cnVjdCBydnUgKnJ2dSwgaW50IHN0YXJ0X3ZmLCBpbnQgbnVtdmZzKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmMtMjk3OC17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmM9MzAwMT1zdGF0aWMgaXJxcmV0dXJuX3QgcnZ1X2Zscl9pbnRyX2hhbmRsZXIoaW50IGlycSwgdm9pZCAqcnZ1X2lycSlcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYy0zMDI0LWFmdmZfZmxyOlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmM6MzAyNTpcdHJ2dV9hZnZmX3F1ZXVlX2Zscl93b3JrKHJ2dSwgMCwgNjQpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmMtMzAyNi1cdGlmIChydnUtXHUwMDNldmZzIFx1MDAzZSA2NClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jOjMwMjc6XHRcdHJ2dV9hZnZmX3F1ZXVlX2Zscl93b3JrKHJ2dSwgNjQsIHJ2dS1cdTAwM2V2ZnMgLSA2NCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYy0zMDI4LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jPTMwOTM9c3RhdGljIHZvaWQgcnZ1X3VucmVnaXN0ZXJfaW50ZXJydXB0cyhzdHJ1Y3QgcnZ1ICpydnUpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmMtMzEyNC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jOjMxMjU6c3RhdGljIGludCBydnVfYWZ2Zl9tc2l4X3ZlY3RvcnNfbnVtX29rKHN0cnVjdCBydnUgKnJ2dSlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jLTMxMjYte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jPTMxNDU9c3RhdGljIGludCBydnVfcmVnaXN0ZXJfaW50ZXJydXB0cyhzdHJ1Y3QgcnZ1ICpydnUpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmMtMzI0Mi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jOjMyNDM6XHRpZiAoIXJ2dV9hZnZmX21zaXhfdmVjdG9yc19udW1fb2socnZ1KSlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jLTMyNDQtXHRcdHJldHVybiAwO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jPTMzNjA9c3RhdGljIGludCBydnVfZmxyX2luaXQoc3RydWN0IHJ2dSAqcnZ1KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jLTMzNzItXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYzozMzczOlx0cnZ1LVx1MDAzZWZscl93cSA9IGFsbG9jX3dvcmtxdWV1ZShcJiMzNDtydnVfYWZwZl9mbHJcJiMzNDssXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYy0zMzc0LVx0XHRcdFx0ICAgICAgV1FfSElHSFBSSSB8IFdRX01FTV9SRUNMQUlNLCAwKTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYz0zNDczPXN0YXRpYyBpbnQgcnZ1X2VuYWJsZV9zcmlvdihzdHJ1Y3QgcnZ1ICpydnUpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmMtMzQ3OC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jOjM0Nzk6XHRpZiAoIXJ2dV9hZnZmX21zaXhfdmVjdG9yc19udW1fb2socnZ1KSkge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmMtMzQ4MC1cdFx0ZGV2X3dhcm4oXHUwMDI2cGRldi1cdTAwM2VkZXYsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmMtMzUxOS1cdGVyciA9IHJ2dV9tYm94X2luaXQocnZ1LCBcdTAwMjZydnUtXHUwMDNlYWZ2Zl93cV9pbmZvLCBUWVBFX0FGVkYsIHZmcyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jOjM1MjA6XHRcdFx0ICAgIHJ2dV9hZnZmX21ib3hfaGFuZGxlciwgcnZ1X2FmdmZfbWJveF91cF9oYW5kbGVyKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jLTM1MjEtXHRpZiAoZXJyKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jPTM1NTg9c3RhdGljIGludCBydnVfcHJvYmUoc3RydWN0IHBjaV9kZXYgKnBkZXYsIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICppZClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYy0zNjM4LVx0ZXJyID0gcnZ1X21ib3hfaW5pdChydnUsIFx1MDAyNnJ2dS1cdTAwM2VhZnBmX3dxX2luZm8sIFRZUEVfQUZQRixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jOjM2Mzk6XHRcdFx0ICAgIHJ2dS1cdTAwM2Vody1cdTAwM2V0b3RhbF9wZnMsIHJ2dV9hZnBmX21ib3hfaGFuZGxlcixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jOjM2NDA6XHRcdFx0ICAgIHJ2dV9hZnBmX21ib3hfdXBfaGFuZGxlcik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYy0zNjQxLVx0aWYgKGVycikge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9kZXZsaW5rLmM9MTE2OT1zdGF0aWMgdm9pZCBydnVfaGVhbHRoX3JlcG9ydGVyc19kZXN0cm95KHN0cnVjdCBydnUgKnJ2dSlcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGV2bGluay5jLTExODEtLyogRGV2bGluayBQYXJhbXMgQVBJcyAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2RldmxpbmsuYzoxMTgyOnN0YXRpYyBpbnQgcnZ1X2FmX2RsX2R3cnJfbXR1X3ZhbGlkYXRlKHN0cnVjdCBkZXZsaW5rICpkZXZsaW5rLCB1MzIgaWQsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGV2bGluay5jLTExODMtXHRcdFx0XHQgICAgICAgdW5pb24gZGV2bGlua19wYXJhbV92YWx1ZSAqdmFsLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9kZXZsaW5rLmMtMTIyMC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9kZXZsaW5rLmM6MTIyMTpzdGF0aWMgaW50IHJ2dV9hZl9kbF9kd3JyX210dV9zZXQoc3RydWN0IGRldmxpbmsgKmRldmxpbmssIHUzMiBpZCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9kZXZsaW5rLmMtMTIyMi1cdFx0XHRcdCAgc3RydWN0IGRldmxpbmtfcGFyYW1fZ3NldF9jdHggKmN0eCxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGV2bGluay5jLTEyMzUtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGV2bGluay5jOjEyMzY6c3RhdGljIGludCBydnVfYWZfZGxfZHdycl9tdHVfZ2V0KHN0cnVjdCBkZXZsaW5rICpkZXZsaW5rLCB1MzIgaWQsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGV2bGluay5jLTEyMzctXHRcdFx0XHQgIHN0cnVjdCBkZXZsaW5rX3BhcmFtX2dzZXRfY3R4ICpjdHgsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2RldmxpbmsuYy0xMjUzLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2RldmxpbmsuYzoxMjU0OmVudW0gcnZ1X2FmX2RsX3BhcmFtX2lkIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9kZXZsaW5rLmMtMTI1NS1cdFJWVV9BRl9ERVZMSU5LX1BBUkFNX0lEX0JBU0UgPSBERVZMSU5LX1BBUkFNX0dFTkVSSUNfSURfTUFYLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9kZXZsaW5rLmMtMTI2NC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9kZXZsaW5rLmM6MTI2NTpzdGF0aWMgaW50IHJ2dV9hZl9ucGNfZGVmcmFnX2ZlYXR1cmVfZ2V0KHN0cnVjdCBkZXZsaW5rICpkZXZsaW5rLCB1MzIgaWQsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGV2bGluay5jLTEyNjYtXHRcdFx0XHRcdCBzdHJ1Y3QgZGV2bGlua19wYXJhbV9nc2V0X2N0eCAqY3R4LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9kZXZsaW5rLmMtMTI4MC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9kZXZsaW5rLmM6MTI4MTpzdGF0aWMgaW50IHJ2dV9hZl9ucGNfZGVmcmFnKHN0cnVjdCBkZXZsaW5rICpkZXZsaW5rLCB1MzIgaWQsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGV2bGluay5jLTEyODItXHRcdFx0ICAgICBzdHJ1Y3QgZGV2bGlua19wYXJhbV9nc2V0X2N0eCAqY3R4LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9kZXZsaW5rLmMtMTI5Ny1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9kZXZsaW5rLmM6MTI5ODpzdGF0aWMgaW50IHJ2dV9hZl9ucGNfZGVmcmFnX2ZlYXR1cmVfdmFsaWRhdGUoc3RydWN0IGRldmxpbmsgKmRldmxpbmssIHUzMiBpZCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9kZXZsaW5rLmMtMTI5OS1cdFx0XHRcdFx0ICAgICAgdW5pb24gZGV2bGlua19wYXJhbV92YWx1ZSAqdmFsLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9kZXZsaW5rLmMtMTMyNS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9kZXZsaW5rLmM6MTMyNjpzdGF0aWMgaW50IHJ2dV9hZl9ucGNfZXhhY3RfZmVhdHVyZV9nZXQoc3RydWN0IGRldmxpbmsgKmRldmxpbmssIHUzMiBpZCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9kZXZsaW5rLmMtMTMyNy1cdFx0XHRcdFx0c3RydWN0IGRldmxpbmtfcGFyYW1fZ3NldF9jdHggKmN0eCxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGV2bGluay5jLTEzNDEtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGV2bGluay5jOjEzNDI6c3RhdGljIGludCBydnVfYWZfbnBjX2V4YWN0X2ZlYXR1cmVfZGlzYWJsZShzdHJ1Y3QgZGV2bGluayAqZGV2bGluaywgdTMyIGlkLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2RldmxpbmsuYy0xMzQzLVx0XHRcdFx0XHQgICAgc3RydWN0IGRldmxpbmtfcGFyYW1fZ3NldF9jdHggKmN0eCxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGV2bGluay5jLTEzNTMtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGV2bGluay5jOjEzNTQ6c3RhdGljIGludCBydnVfYWZfbnBjX2V4YWN0X2ZlYXR1cmVfdmFsaWRhdGUoc3RydWN0IGRldmxpbmsgKmRldmxpbmssIHUzMiBpZCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9kZXZsaW5rLmMtMTM1NS1cdFx0XHRcdFx0ICAgICB1bmlvbiBkZXZsaW5rX3BhcmFtX3ZhbHVlICp2YWwsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2RldmxpbmsuYy0xMzgxLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2RldmxpbmsuYzoxMzgyOnN0YXRpYyBpbnQgcnZ1X2FmX2RsX25wY19tY2FtX2hpZ2hfem9uZV9wZXJjZW50X2dldChzdHJ1Y3QgZGV2bGluayAqZGV2bGluaywgdTMyIGlkLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2RldmxpbmsuYy0xMzgzLVx0XHRcdFx0XHRcdCAgICBzdHJ1Y3QgZGV2bGlua19wYXJhbV9nc2V0X2N0eCAqY3R4LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9kZXZsaW5rLmMtMTM5Ny1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9kZXZsaW5rLmM6MTM5ODpzdGF0aWMgaW50IHJ2dV9hZl9kbF9ucGNfbWNhbV9oaWdoX3pvbmVfcGVyY2VudF9zZXQoc3RydWN0IGRldmxpbmsgKmRldmxpbmssIHUzMiBpZCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9kZXZsaW5rLmMtMTM5OS1cdFx0XHRcdFx0XHQgICAgc3RydWN0IGRldmxpbmtfcGFyYW1fZ3NldF9jdHggKmN0eCxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGV2bGluay5jLTE0MTYtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGV2bGluay5jOjE0MTc6c3RhdGljIGludCBydnVfYWZfZGxfbnBjX21jYW1faGlnaF96b25lX3BlcmNlbnRfdmFsaWRhdGUoc3RydWN0IGRldmxpbmsgKmRldmxpbmssIHUzMiBpZCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9kZXZsaW5rLmMtMTQxOC1cdFx0XHRcdFx0XHRcdCB1bmlvbiBkZXZsaW5rX3BhcmFtX3ZhbHVlICp2YWwsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2RldmxpbmsuYy0xNDQ0LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2RldmxpbmsuYzoxNDQ1OnN0YXRpYyBpbnQgcnZ1X2FmX2RsX25wY19kZWZfcnVsZV9jbnRyX2dldChzdHJ1Y3QgZGV2bGluayAqZGV2bGluaywgdTMyIGlkLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2RldmxpbmsuYy0xNDQ2LVx0XHRcdFx0XHQgICBzdHJ1Y3QgZGV2bGlua19wYXJhbV9nc2V0X2N0eCAqY3R4LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9kZXZsaW5rLmMtMTQ1Ni1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9kZXZsaW5rLmM6MTQ1NzpzdGF0aWMgaW50IHJ2dV9hZl9kbF9ucGNfZGVmX3J1bGVfY250cl9zZXQoc3RydWN0IGRldmxpbmsgKmRldmxpbmssIHUzMiBpZCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9kZXZsaW5rLmMtMTQ1OC1cdFx0XHRcdFx0ICAgc3RydWN0IGRldmxpbmtfcGFyYW1fZ3NldF9jdHggKmN0eCxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGV2bGluay5jLTE0NzEtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGV2bGluay5jOjE0NzI6c3RhdGljIGludCBydnVfYWZfZGxfbml4X21heGxmX2dldChzdHJ1Y3QgZGV2bGluayAqZGV2bGluaywgdTMyIGlkLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2RldmxpbmsuYy0xNDczLVx0XHRcdFx0ICAgc3RydWN0IGRldmxpbmtfcGFyYW1fZ3NldF9jdHggKmN0eCxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGV2bGluay5jLTE0ODMtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGV2bGluay5jOjE0ODQ6c3RhdGljIGludCBydnVfYWZfZGxfbml4X21heGxmX3NldChzdHJ1Y3QgZGV2bGluayAqZGV2bGluaywgdTMyIGlkLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2RldmxpbmsuYy0xNDg1LVx0XHRcdFx0ICAgc3RydWN0IGRldmxpbmtfcGFyYW1fZ3NldF9jdHggKmN0eCxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGV2bGluay5jLTE1MDYtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGV2bGluay5jOjE1MDc6c3RhdGljIGludCBydnVfYWZfZGxfbml4X21heGxmX3ZhbGlkYXRlKHN0cnVjdCBkZXZsaW5rICpkZXZsaW5rLCB1MzIgaWQsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGV2bGluay5jLTE1MDgtXHRcdFx0XHRcdHVuaW9uIGRldmxpbmtfcGFyYW1fdmFsdWUgKnZhbCxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGV2bGluay5jLTE1NTctXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGV2bGluay5jOjE1NTg6c3RhdGljIGNvbnN0IHN0cnVjdCBkZXZsaW5rX3BhcmFtIHJ2dV9hZl9kbF9wYXJhbXNbXSA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9kZXZsaW5rLmMtMTU1OS1cdERFVkxJTktfUEFSQU1fRFJJVkVSKFJWVV9BRl9ERVZMSU5LX1BBUkFNX0lEX0RXUlJfTVRVLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9kZXZsaW5rLmMtMTU2MS1cdFx0XHQgICAgIEJJVChERVZMSU5LX1BBUkFNX0NNT0RFX1JVTlRJTUUpLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2RldmxpbmsuYzoxNTYyOlx0XHRcdCAgICAgcnZ1X2FmX2RsX2R3cnJfbXR1X2dldCwgcnZ1X2FmX2RsX2R3cnJfbXR1X3NldCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9kZXZsaW5rLmM6MTU2MzpcdFx0XHQgICAgIHJ2dV9hZl9kbF9kd3JyX210dV92YWxpZGF0ZSksXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGV2bGluay5jLTE1NjQtXHRERVZMSU5LX1BBUkFNX0RSSVZFUihSVlVfQUZfREVWTElOS19QQVJBTV9JRF9OUENfTUNBTV9aT05FX1BFUkNFTlQsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2RldmxpbmsuYy0xNTY2LVx0XHRcdCAgICAgQklUKERFVkxJTktfUEFSQU1fQ01PREVfUlVOVElNRSksXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGV2bGluay5jOjE1Njc6XHRcdFx0ICAgICBydnVfYWZfZGxfbnBjX21jYW1faGlnaF96b25lX3BlcmNlbnRfZ2V0LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2RldmxpbmsuYzoxNTY4Olx0XHRcdCAgICAgcnZ1X2FmX2RsX25wY19tY2FtX2hpZ2hfem9uZV9wZXJjZW50X3NldCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9kZXZsaW5rLmM6MTU2OTpcdFx0XHQgICAgIHJ2dV9hZl9kbF9ucGNfbWNhbV9oaWdoX3pvbmVfcGVyY2VudF92YWxpZGF0ZSksXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGV2bGluay5jLTE1NzAtXHRERVZMSU5LX1BBUkFNX0RSSVZFUihSVlVfQUZfREVWTElOS19QQVJBTV9JRF9OUENfREVGX1JVTEVfQ05UUl9FTkFCTEUsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2RldmxpbmsuYy0xNTcyLVx0XHRcdCAgICAgQklUKERFVkxJTktfUEFSQU1fQ01PREVfUlVOVElNRSksXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGV2bGluay5jOjE1NzM6XHRcdFx0ICAgICBydnVfYWZfZGxfbnBjX2RlZl9ydWxlX2NudHJfZ2V0LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2RldmxpbmsuYzoxNTc0Olx0XHRcdCAgICAgcnZ1X2FmX2RsX25wY19kZWZfcnVsZV9jbnRyX3NldCwgTlVMTCksXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGV2bGluay5jLTE1NzUtXHRERVZMSU5LX1BBUkFNX0RSSVZFUihSVlVfQUZfREVWTElOS19QQVJBTV9JRF9OSVhfTUFYTEYsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2RldmxpbmsuYy0xNTc3LVx0XHRcdCAgICAgQklUKERFVkxJTktfUEFSQU1fQ01PREVfUlVOVElNRSksXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGV2bGluay5jOjE1Nzg6XHRcdFx0ICAgICBydnVfYWZfZGxfbml4X21heGxmX2dldCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9kZXZsaW5rLmM6MTU3OTpcdFx0XHQgICAgIHJ2dV9hZl9kbF9uaXhfbWF4bGZfc2V0LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2RldmxpbmsuYzoxNTgwOlx0XHRcdCAgICAgcnZ1X2FmX2RsX25peF9tYXhsZl92YWxpZGF0ZSksXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGV2bGluay5jLTE1ODEtfTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9kZXZsaW5rLmMtMTU4Mi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9kZXZsaW5rLmM6MTU4MzpzdGF0aWMgY29uc3Qgc3RydWN0IGRldmxpbmtfcGFyYW0gcnZ1X2FmX2RsX3BhcmFtX2V4YWN0X21hdGNoW10gPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGV2bGluay5jLTE1ODQtXHRERVZMSU5LX1BBUkFNX0RSSVZFUihSVlVfQUZfREVWTElOS19QQVJBTV9JRF9OUENfRVhBQ1RfRkVBVFVSRV9ESVNBQkxFLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9kZXZsaW5rLmMtMTU4Ni1cdFx0XHQgICAgIEJJVChERVZMSU5LX1BBUkFNX0NNT0RFX1JVTlRJTUUpLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2RldmxpbmsuYzoxNTg3Olx0XHRcdCAgICAgcnZ1X2FmX25wY19leGFjdF9mZWF0dXJlX2dldCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9kZXZsaW5rLmM6MTU4ODpcdFx0XHQgICAgIHJ2dV9hZl9ucGNfZXhhY3RfZmVhdHVyZV9kaXNhYmxlLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2RldmxpbmsuYzoxNTg5Olx0XHRcdCAgICAgcnZ1X2FmX25wY19leGFjdF9mZWF0dXJlX3ZhbGlkYXRlKSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9kZXZsaW5rLmMtMTU5MC19O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9kZXZsaW5rLmM9MTYwOD1zdGF0aWMgaW50IHJ2dV9kZXZsaW5rX2Vzd2l0Y2hfbW9kZV9zZXQoc3RydWN0IGRldmxpbmsgKmRldmxpbmssIHUxNiBtb2RlLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9kZXZsaW5rLmMtMTYzMy1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9kZXZsaW5rLmM6MTYzNDpzdGF0aWMgaW50IHJ2dV9hZl9kbF9ucGNfc3JjaF9vcmRlcl9zZXQoc3RydWN0IGRldmxpbmsgKmRldmxpbmssIHUzMiBpZCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9kZXZsaW5rLmMtMTYzNS1cdFx0XHRcdFx0c3RydWN0IGRldmxpbmtfcGFyYW1fZ3NldF9jdHggKmN0eCxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGV2bGluay5jLTE2NDUtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGV2bGluay5jOjE2NDY6c3RhdGljIGludCBydnVfYWZfZGxfbnBjX3NyY2hfb3JkZXJfZ2V0KHN0cnVjdCBkZXZsaW5rICpkZXZsaW5rLCB1MzIgaWQsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGV2bGluay5jLTE2NDctXHRcdFx0XHRcdHN0cnVjdCBkZXZsaW5rX3BhcmFtX2dzZXRfY3R4ICpjdHgsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2RldmxpbmsuYy0xNjYxLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2RldmxpbmsuYzoxNjYyOnN0YXRpYyBpbnQgcnZ1X2FmX2RsX25wY19zcmNoX29yZGVyX3ZhbGlkYXRlKHN0cnVjdCBkZXZsaW5rICpkZXZsaW5rLCB1MzIgaWQsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGV2bGluay5jLTE2NjMtXHRcdFx0XHRcdCAgICAgdW5pb24gZGV2bGlua19wYXJhbV92YWx1ZSAqdmFsLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9kZXZsaW5rLmM9MTY5OT1zdGF0aWMgY29uc3Qgc3RydWN0IGRldmxpbmtfb3BzIHJ2dV9kZXZsaW5rX29wcyA9IHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGV2bGluay5jLTE3MDMtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGV2bGluay5jOjE3MDQ6c3RhdGljIGNvbnN0IHN0cnVjdCBkZXZsaW5rX3BhcmFtIHJ2dV9hZl9kbF9jbjIwa19wYXJhbXNbXSA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9kZXZsaW5rLmMtMTcwNS1cdERFVkxJTktfUEFSQU1fRFJJVkVSKFJWVV9BRl9ERVZMSU5LX1BBUkFNX0lEX05QQ19TUkNIX09SREVSLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9kZXZsaW5rLmMtMTcwNy1cdFx0XHQgICAgIEJJVChERVZMSU5LX1BBUkFNX0NNT0RFX1JVTlRJTUUpLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2RldmxpbmsuYzoxNzA4Olx0XHRcdCAgICAgcnZ1X2FmX2RsX25wY19zcmNoX29yZGVyX2dldCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9kZXZsaW5rLmM6MTcwOTpcdFx0XHQgICAgIHJ2dV9hZl9kbF9ucGNfc3JjaF9vcmRlcl9zZXQsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGV2bGluay5jOjE3MTA6XHRcdFx0ICAgICBydnVfYWZfZGxfbnBjX3NyY2hfb3JkZXJfdmFsaWRhdGUpLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2RldmxpbmsuYy0xNzExLVx0REVWTElOS19QQVJBTV9EUklWRVIoUlZVX0FGX0RFVkxJTktfUEFSQU1fSURfTlBDX0RFRlJBRyxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGV2bGluay5jLTE3MTMtXHRcdFx0ICAgICBCSVQoREVWTElOS19QQVJBTV9DTU9ERV9SVU5USU1FKSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9kZXZsaW5rLmM6MTcxNDpcdFx0XHQgICAgIHJ2dV9hZl9ucGNfZGVmcmFnX2ZlYXR1cmVfZ2V0LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2RldmxpbmsuYzoxNzE1Olx0XHRcdCAgICAgcnZ1X2FmX25wY19kZWZyYWcsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGV2bGluay5jOjE3MTY6XHRcdFx0ICAgICBydnVfYWZfbnBjX2RlZnJhZ19mZWF0dXJlX3ZhbGlkYXRlKSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9kZXZsaW5rLmMtMTcxNy19O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9kZXZsaW5rLmM9MTcxOT1pbnQgcnZ1X3JlZ2lzdGVyX2RsKHN0cnVjdCBydnUgKnJ2dSlcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGV2bGluay5jLTE3NDMtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGV2bGluay5jOjE3NDQ6XHRlcnIgPSBkZXZsaW5rX3BhcmFtc19yZWdpc3RlcihkbCwgcnZ1X2FmX2RsX3BhcmFtcywgQVJSQVlfU0laRShydnVfYWZfZGxfcGFyYW1zKSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGV2bGluay5jLTE3NDUtXHRpZiAoZXJyKSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2RldmxpbmsuYy0xNzUxLVx0aWYgKGlzX2NuMjBrKHJ2dS1cdTAwM2VwZGV2KSkge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2RldmxpbmsuYzoxNzUyOlx0XHRlcnIgPSBkZXZsaW5rX3BhcmFtc19yZWdpc3RlcihkbCwgcnZ1X2FmX2RsX2NuMjBrX3BhcmFtcyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9kZXZsaW5rLmM6MTc1MzpcdFx0XHRcdFx0ICAgICAgQVJSQVlfU0laRShydnVfYWZfZGxfY24yMGtfcGFyYW1zKSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGV2bGluay5jLTE3NTQtXHRcdGlmIChlcnIpIHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGV2bGluay5jLTE3NjUtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGV2bGluay5jOjE3NjY6XHRlcnIgPSBkZXZsaW5rX3BhcmFtc19yZWdpc3RlcihkbCwgcnZ1X2FmX2RsX3BhcmFtX2V4YWN0X21hdGNoLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2RldmxpbmsuYzoxNzY3Olx0XHRcdFx0ICAgICAgQVJSQVlfU0laRShydnVfYWZfZGxfcGFyYW1fZXhhY3RfbWF0Y2gpKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9kZXZsaW5rLmMtMTc2OC1cdGlmIChlcnIpIHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGV2bGluay5jLTE3ODAtXHRpZiAoaXNfY24yMGsocnZ1LVx1MDAzZXBkZXYpKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2RldmxpbmsuYzoxNzgxOlx0XHRkZXZsaW5rX3BhcmFtc191bnJlZ2lzdGVyKGRsLCBydnVfYWZfZGxfY24yMGtfcGFyYW1zLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2RldmxpbmsuYzoxNzgyOlx0XHRcdFx0XHQgIEFSUkFZX1NJWkUocnZ1X2FmX2RsX2NuMjBrX3BhcmFtcykpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2RldmxpbmsuYy0xNzgzLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2RldmxpbmsuYy0xNzg0LWVycl9kbF9jbjIwa19wYXJhbXM6XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGV2bGluay5jOjE3ODU6XHRkZXZsaW5rX3BhcmFtc191bnJlZ2lzdGVyKGRsLCBydnVfYWZfZGxfcGFyYW1zLCBBUlJBWV9TSVpFKHJ2dV9hZl9kbF9wYXJhbXMpKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9kZXZsaW5rLmMtMTc4Ni1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGV2bGluay5jPTE3OTM9dm9pZCBydnVfdW5yZWdpc3Rlcl9kbChzdHJ1Y3QgcnZ1ICpydnUpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2RldmxpbmsuYy0xNzk5LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2RldmxpbmsuYzoxODAwOlx0ZGV2bGlua19wYXJhbXNfdW5yZWdpc3RlcihkbCwgcnZ1X2FmX2RsX3BhcmFtcywgQVJSQVlfU0laRShydnVfYWZfZGxfcGFyYW1zKSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGV2bGluay5jLTE4MDEtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGV2bGluay5jLTE4MDItXHRpZiAoaXNfY24yMGsocnZ1LVx1MDAzZXBkZXYpKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2RldmxpbmsuYzoxODAzOlx0XHRkZXZsaW5rX3BhcmFtc191bnJlZ2lzdGVyKGRsLCBydnVfYWZfZGxfY24yMGtfcGFyYW1zLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2RldmxpbmsuYzoxODA0Olx0XHRcdFx0XHQgIEFSUkFZX1NJWkUocnZ1X2FmX2RsX2NuMjBrX3BhcmFtcykpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2RldmxpbmsuYy0xODA1LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9kZXZsaW5rLmMtMTgwNy1cdGlmIChydnVfbnBjX2V4YWN0X2hhc19tYXRjaF90YWJsZShydnUpKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2RldmxpbmsuYzoxODA4Olx0XHRkZXZsaW5rX3BhcmFtc191bnJlZ2lzdGVyKGRsLCBydnVfYWZfZGxfcGFyYW1fZXhhY3RfbWF0Y2gsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGV2bGluay5jOjE4MDk6XHRcdFx0XHRcdCAgQVJSQVlfU0laRShydnVfYWZfZGxfcGFyYW1fZXhhY3RfbWF0Y2gpKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9kZXZsaW5rLmMtMTgxMC1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfc3RydWN0Lmg9NDM9ZW51bSBydnVfYmxvY2tfdHlwZV9lIHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfc3RydWN0LmgtNTktLyogUlZVIEFkbWluIGZ1bmN0aW9uIEludGVycnVwdCBWZWN0b3IgRW51bWVyYXRpb24gKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9zdHJ1Y3QuaDo2MDplbnVtIHJ2dV9hZl9pbnRfdmVjX2Uge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X3N0cnVjdC5oLTYxLVx0UlZVX0FGX0lOVF9WRUNfUE9JU09OID0gMHgwLFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzEzIDE0OjMxPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy44LWZsYXNoPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDE0NTY0CgkJCQkJCQlvdXRwdXQ6IDM2CgkJCQkJCQl0aG91Z2h0czogMjQKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgbXkgc3VtbWFyeSwgYXMgdGhvdWdoIEkmIzM5O20gdGhpbmtpbmcgdGhyb3VnaCB0aGlzIHByb2Nlc3M6CgoqKkRpdmluZyBpbnRvIHRoZSBNYXJ2ZWxsIE9jdGVvbiBUWDIgRXRoZXJuZXQgRHJpdmVyIENvbmZpZ3VyYXRpb24qKgoKT2theSwgdGltZSB0byBnZXQgYSBoYW5kbGUgb24gdGhlIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBmb3IgdGhpcyBPY3Rlb24gVFgyIGV0aGVybmV0IGRyaXZlci4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgd2hhdCBrbm9icyBhcmUgYXZhaWxhYmxlLCB3aGF0IGZlYXR1cmVzIGNhbiBiZSBlbmFibGVkIG9yIGRpc2FibGVkLCBhbmQgaG93IGV2ZXJ5dGhpbmcgaXMgc3RydWN0dXJlZC4gVGhlIGZpcnN0IHBsYWNlIHRvIGxvb2ssIG9mIGNvdXJzZSwgaXMgdGhlIEtjb25maWcgZmlsZS4gTGV0JiMzOTtzIHN0YXJ0IGJ5IG5hdmlnYXRpbmcgdG8gYGRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL0tjb25maWdgLiBIb3BlZnVsbHksIHRoaXMgd2lsbCBnaXZlIG1lIGEgY2xlYXIgcGljdHVyZSBvZiB0aGUgYnVpbGQtdGltZSBjb25maWd1cmF0aW9uIHBhcmFtZXRlcnMgSSBjYW4gdHdlYWsuIEkmIzM5O20gZXhwZWN0aW5nIHRvIGZpbmQgb3B0aW9ucyBmb3IgdGhpbmdzIGxpa2UgZmxvdyBjb250cm9sLCBqdW1ibyBmcmFtZXMsIGNoZWNrc3VtIG9mZmxvYWQsIG1heWJlIGV2ZW4gc3BlY2lmaWMgaGFyZHdhcmUgcmV2aXNpb25zIG9yIFBIWSB0eXBlcy4gVGhpcyBpcyB0aGUgYmVkcm9jayBvZiB0aGUgY29uZmlndXJhdGlvbiwgc28gdGhpcyBpcyB3aGVyZSBJIG5lZWQgdG8gc3RhcnQuIEZyb20gaGVyZSwgSSBjYW4gZ2V0IGEgZmVlbCBmb3IgdGhlIHVuZGVybHlpbmcgYXJjaGl0ZWN0dXJlIGFuZCBob3cgdG8gcHJvcGVybHkgY29uZmlndXJlIHRoaXMgZHJpdmVyIGZvciBpdHMgdmFyaW91cyB1c2UgY2FzZXMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OC8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMTMgMTQ6MzE8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIE9DVEVPTlRYMiYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL0tjb25maWctNS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL0tjb25maWc6Njpjb25maWcgT0NURU9OVFgyX01CT1hcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL0tjb25maWctNy1cdHRyaXN0YXRlXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9LY29uZmlnLTgtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9LY29uZmlnOjk6Y29uZmlnIE9DVEVPTlRYMl9BRlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvS2NvbmZpZy0xMC1cdHRyaXN0YXRlIFwmIzM0O01hcnZlbGwgT2N0ZW9uVFgyIFJWVSBBZG1pbiBGdW5jdGlvbiBkcml2ZXJcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9LY29uZmlnPTIyPWNvbmZpZyBORENfRElTX0RZTkFNSUNfQ0FDSElOR1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL0tjb25maWctMzAtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9LY29uZmlnOjMxOmNvbmZpZyBPQ1RFT05UWDJfUEZcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL0tjb25maWctMzItXHR0cmlzdGF0ZSBcJiMzNDtNYXJ2ZWxsIE9jdGVvblRYMiBOSUMgUGh5c2ljYWwgRnVuY3Rpb24gZHJpdmVyXCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvS2NvbmZpZy00NC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL0tjb25maWc6NDU6Y29uZmlnIE9DVEVPTlRYMl9WRlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvS2NvbmZpZy00Ni1cdHRyaXN0YXRlIFwmIzM0O01hcnZlbGwgT2N0ZW9uVFgyIE5JQyBWaXJ0dWFsIEZ1bmN0aW9uIGRyaXZlclwmIzM0O1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjkvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzEzIDE0OjMxPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy44LWZsYXNoPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDE1MjQ3CgkJCQkJCQlvdXRwdXQ6IDQ0CgkJCQkJCQl0aG91Z2h0czogMjQKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgbXkgdGFrZSBvbiB0aGUgYGRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL0tjb25maWdgIGZpbGU6CgoqKkRpdmluZyBpbnRvIHRoZSBPY3Rlb24gVFgyIEtjb25maWcqKgoKT2theSwgc28gSSYjMzk7bSBhYm91dCB0byBkaWcgaW50byB0aGUgY29uZmlndXJhdGlvbiBmaWxlIGZvciB0aGUgT2N0ZW9uIFRYMiBFdGhlcm5ldCBkcml2ZXIuIE15IGV4cGVjdGF0aW9uIGlzIHRoaXMgaXMgd2hlcmUgdGhlIG1lYXQgb2YgdGhlIGRyaXZlciYjMzk7cyBidWlsZC10aW1lIG9wdGlvbnMgYW5kIGRlcGVuZGVuY2llcyB3aWxsIHJlc2lkZS4gSSYjMzk7bSBsb29raW5nIGZvciB0aGUgdXN1YWwgc3VzcGVjdHM6IGZlYXR1cmUgZmxhZ3MsIG1vZHVsZSBzZWxlY3Rpb24sIGFuZCBhbnkgcGxhdGZvcm0tc3BlY2lmaWMgY29uZmlndXJhdGlvbnMuIEkmIzM5O2xsIG5lZWQgdG8gdW5kZXJzdGFuZCB3aGF0IGFzcGVjdHMgYXJlIGNvbmZpZ3VyYWJsZSwgd2hpY2ggZmVhdHVyZXMgYXJlIGVuYWJsZWQgb3IgZGlzYWJsZWQgYnkgZGVmYXVsdCwgYW5kIGhvdyB0aGUgZHJpdmVyIGludGVyYWN0cyB3aXRoIHRoZSByZXN0IG9mIHRoZSBrZXJuZWwgYnVpbGQgc3lzdGVtLiBUaGlzIGlzIGNydWNpYWwgZm9yIGN1c3RvbWl6aW5nIHRoZSBkcml2ZXIgdG8gc3BlY2lmaWMgaGFyZHdhcmUgY29uZmlndXJhdGlvbnMgb3IgcGVyZm9ybWFuY2UgcmVxdWlyZW1lbnRzLCBhbmQgZm9yIHJlc29sdmluZyBhbnkgYnVpbGQgY29uZmxpY3RzIGlmIHRoZSBwcm9qZWN0IGlzIGJlaW5nIGNvbXBpbGVkIGZvciBhIGRpZmZlcmVudCB0YXJnZXQuIEkmIzM5O2xsIHN0YXJ0IHdpdGggdGhlIGZpbGUmIzM5O3Mgc3RydWN0dXJlLiBJJiMzOTtsbCBwYXkgY2xvc2UgYXR0ZW50aW9uIHRvIHRoZSBkZXBlbmRlbmNpZXMgYW5kIGFueSBgc2VsZWN0YCBzdGF0ZW1lbnRzLCBzaW5jZSB0aG9zZSB3aWxsIGRpY3RhdGUgd2hpY2ggb3RoZXIgcGFydHMgb2YgdGhlIGRyaXZlciBvciBrZXJuZWwgYXJlIHB1bGxlZCBpbiBiYXNlZCBvbiBteSBjaG9pY2VzLiBJdCB3aWxsIGJlIGhlbHBmdWwgdG8gc2VlIGFueSBjb21tZW50cywgc2luY2UgdGhlc2UgY29udGFpbiB2aXRhbCBpbmZvcm1hdGlvbi4gSSYjMzk7bSBjdXJpb3VzIHdoYXQga2luZCBvZiBncmFudWxhcml0eSB0aGV5IG9mZmVyLiBJJiMzOTttIGFsc28gbG9va2luZyBmb3IgYW55IGNsdWVzIHJlZ2FyZGluZyB3aGF0JiMzOTtzIGNvbnNpZGVyZWQgZXhwZXJpbWVudGFsIG9yIG5vdCB5ZXQgZnVsbHkgYmFrZWQuIEZpbmFsbHksIEkmIzM5O2xsIG5lZWQgdG8gY3Jvc3MtcmVmZXJlbmNlIHRoaXMgd2l0aCB0aGUgZHJpdmVyIGNvZGUgaXRzZWxmIHRvIGZ1bGx5IGdyYXNwIHRoZSByYW1pZmljYXRpb25zIG9mIGVhY2ggY29uZmlndXJhdGlvbiBvcHRpb24uIExldCYjMzk7cyBzZWUgd2hhdCB3ZSYjMzk7dmUgZ290LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8xMyAxNDozMTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnJlYWQtZmlsZTwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RmlsZSYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL0tjb25maWcmIzM0OywKICAmIzM0O0ZpcnN0TGluZSYjMzQ7OiAxLAogICYjMzQ7TGluZUNvdW50JiMzNDs6IDYwCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtDb250ZW50cyYjMzQ7OiAmIzM0OyAgIDE6XHQjIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHlcbiAgIDI6XHQjXG4gICAzOlx0IyBNYXJ2ZWxsIFJWVSBOZXR3b3JrIGRyaXZlcnMgY29uZmlndXJhdGlvblxuICAgNDpcdCNcbiAgIDU6XHRcbiAgIDY6XHRjb25maWcgT0NURU9OVFgyX01CT1hcbiAgIDc6XHRcdHRyaXN0YXRlXG4gICA4Olx0XG4gICA5Olx0Y29uZmlnIE9DVEVPTlRYMl9BRlxuICAxMDpcdFx0dHJpc3RhdGUgXCYjMzQ7TWFydmVsbCBPY3Rlb25UWDIgUlZVIEFkbWluIEZ1bmN0aW9uIGRyaXZlclwmIzM0O1xuICAxMTpcdFx0c2VsZWN0IE9DVEVPTlRYMl9NQk9YXG4gIDEyOlx0XHRzZWxlY3QgTkVUX0RFVkxJTktcbiAgMTM6XHRcdGRlcGVuZHMgb24gKDY0QklUIFx1MDAyNlx1MDAyNiBDT01QSUxFX1RFU1QpIHx8IEFSTTY0XG4gIDE0Olx0XHRkZXBlbmRzIG9uIFBDSVxuICAxNTpcdFx0ZGVwZW5kcyBvbiBQVFBfMTU4OF9DTE9DS19PUFRJT05BTFxuICAxNjpcdFx0aGVscFxuICAxNzpcdFx0ICBUaGlzIGRyaXZlciBzdXBwb3J0cyBNYXJ2ZWxsJiMzOTtzIE9jdGVvblRYMiBSZXNvdXJjZSBWaXJ0dWFsaXphdGlvblxuICAxODpcdFx0ICBVbml0JiMzOTtzIGFkbWluIGZ1bmN0aW9uIG1hbmFnZXIgd2hpY2ggbWFuYWdlcyBhbGwgUlZVIEhXIHJlc291cmNlc1xuICAxOTpcdFx0ICBhbmQgcHJvdmlkZXMgYSBtZWRpdW0gdG8gb3RoZXIgUEYvVkZzIHRvIGNvbmZpZ3VyZSBIVy4gU2hvdWxkIGJlXG4gIDIwOlx0XHQgIGVuYWJsZWQgZm9yIG90aGVyIFJWVSBkZXZpY2UgZHJpdmVycyB0byB3b3JrLlxuICAyMTpcdFxuICAyMjpcdGNvbmZpZyBORENfRElTX0RZTkFNSUNfQ0FDSElOR1xuICAyMzpcdFx0Ym9vbCBcJiMzNDtEaXNhYmxlIGNhY2hpbmcgb2YgZHluYW1pYyBlbnRyaWVzIGluIE5EQ1wmIzM0O1xuICAyNDpcdFx0ZGVwZW5kcyBvbiBPQ1RFT05UWDJfQUZcbiAgMjU6XHRcdGRlZmF1bHQgblxuICAyNjpcdFx0aGVscFxuICAyNzpcdFx0ICBUaGlzIGNvbmZpZyBvcHRpb24gZGlzYWJsZXMgY2FjaGluZyBvZiBkeW5hbWljIGVudHJpZXMgc3VjaCBhcyBOSVggU1FFc1xuICAyODpcdFx0ICAsIE5QQSBzdGFjayBwYWdlcyBldGMgaW4gTkRDLiBBbHNvIGxvY2tzIGRvd24gTklYIFNRL0NRL1JRL1JTUyBhbmRcbiAgMjk6XHRcdCAgTlBBIEF1cmEvUG9vbCBjb250ZXh0cy5cbiAgMzA6XHRcbiAgMzE6XHRjb25maWcgT0NURU9OVFgyX1BGXG4gIDMyOlx0XHR0cmlzdGF0ZSBcJiMzNDtNYXJ2ZWxsIE9jdGVvblRYMiBOSUMgUGh5c2ljYWwgRnVuY3Rpb24gZHJpdmVyXCYjMzQ7XG4gIDMzOlx0XHRzZWxlY3QgT0NURU9OVFgyX01CT1hcbiAgMzQ6XHRcdHNlbGVjdCBORVRfREVWTElOS1xuICAzNTpcdFx0c2VsZWN0IFBBR0VfUE9PTFxuICAzNjpcdFx0c2VsZWN0IENSWVBUT19MSUJfQUVTIGlmIE1BQ1NFQ1xuICAzNzpcdFx0ZGVwZW5kcyBvbiAoNjRCSVQgXHUwMDI2XHUwMDI2IENPTVBJTEVfVEVTVCkgfHwgQVJNNjRcbiAgMzg6XHRcdHNlbGVjdCBESU1MSUJcbiAgMzk6XHRcdGRlcGVuZHMgb24gUENJXG4gIDQwOlx0XHRkZXBlbmRzIG9uIFBUUF8xNTg4X0NMT0NLX09QVElPTkFMXG4gIDQxOlx0XHRkZXBlbmRzIG9uIE1BQ1NFQyB8fCAhTUFDU0VDXG4gIDQyOlx0XHRoZWxwXG4gIDQzOlx0XHQgIFRoaXMgZHJpdmVyIHN1cHBvcnRzIE1hcnZlbGwmIzM5O3MgT2N0ZW9uVFgyIE5JQyBwaHlzaWNhbCBmdW5jdGlvbi5cbiAgNDQ6XHRcbiAgNDU6XHRjb25maWcgT0NURU9OVFgyX1ZGXG4gIDQ2Olx0XHR0cmlzdGF0ZSBcJiMzNDtNYXJ2ZWxsIE9jdGVvblRYMiBOSUMgVmlydHVhbCBGdW5jdGlvbiBkcml2ZXJcJiMzNDtcbiAgNDc6XHRcdGRlcGVuZHMgb24gT0NURU9OVFgyX1BGXG4gIDQ4Olx0XHRoZWxwXG4gIDQ5Olx0XHQgIFRoaXMgZHJpdmVyIHN1cHBvcnRzIE1hcnZlbGwmIzM5O3MgT2N0ZW9uVFgyIE5JQyB2aXJ0dWFsIGZ1bmN0aW9uLlxuICA1MDpcdFxuICA1MTpcdGNvbmZpZyBSVlVfRVNXSVRDSFxuICA1MjpcdFx0dHJpc3RhdGUgXCYjMzQ7TWFydmVsbCBSVlUgRS1Td2l0Y2ggc3VwcG9ydFwmIzM0O1xuICA1MzpcdFx0ZGVwZW5kcyBvbiBPQ1RFT05UWDJfUEZcbiAgNTQ6XHRcdGRlZmF1bHQgbVxuICA1NTpcdFx0aGVscFxuICA1NjpcdFx0ICBUaGlzIGRyaXZlciBzdXBwb3J0cyBNYXJ2ZWxsJiMzOTtzIFJWVSBFLVN3aXRjaCB0aGF0XG4gIDU3Olx0XHQgIHByb3ZpZGVzIGludGVybmFsIFNSSU9WIHBhY2tldCBzdGVlcmluZyBhbmQgc3dpdGNoaW5nLlxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjExLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8xMyAxNDozMTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuOC1mbGFzaDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxNjQzMwoJCQkJCQkJb3V0cHV0OiA1MwoJCQkJCQkJdGhvdWdodHM6IDEzMgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIE1hcnZlbGwgT2N0ZW9uVFgyIERyaXZlcioqCgpPa2F5LCBsZXQmIzM5O3MgYnJlYWsgdGhpcyBkb3duLiBGaXJzdCwgSSBzZWUgdGhlIGRlcGVuZGVuY3k6IGAoNjRCSVQgJmFtcDsmYW1wOyBDT01QSUxFX1RFU1QpIHx8IEFSTTY0YC4gVGhhdCB0ZWxscyBtZSB0aGlzIG1vZHVsZSBpcyBsaWtlbHkgdGFyZ2V0ZWQgdG93YXJkcyA2NC1iaXQgYXJjaGl0ZWN0dXJlcywgYW5kIHBvc3NpYmx5IGluY2x1ZGVzIHNvbWUgdGVzdGluZyBvciBidWlsZC10aW1lIGNoZWNrcywgb3IgQVJNNjQuIEludGVyZXN0aW5nLiBUaGVuIEkgc3BvdCB0aGUgYFBDSWAgZGVwZW5kZW5jeS4gVGhhdCBpbW1lZGlhdGVseSBuYXJyb3dzIGRvd24gdGhlIGhhcmR3YXJlIGludGVyYWN0aW9uOyB0aGlzIHRoaW5nIGlzIGRlYWxpbmcgd2l0aCBQZXJpcGhlcmFsIENvbXBvbmVudCBJbnRlcmNvbm5lY3QsIHdoaWNoIGlzIG5vIHN1cnByaXNlIGdpdmVuIGl0cyBsaWtlbHkgcm9sZSBpbiBuZXR3b3JrIGFjY2VsZXJhdGlvbi4KClRoZW4gSSByZWFkIHRoZSBkcml2ZXIgZGVzY3JpcHRpb246ICYjMzQ7VGhpcyBkcml2ZXIgc3VwcG9ydHMgTWFydmVsbCYjMzk7cyBPY3Rlb25UWDIgUmVzb3VyY2UgVmlydHVhbGl6YXRpb24gVW5pdCYjMzk7cyBhZG1pbiBmdW5jdGlvbiBtYW5hZ2VyIHdoaWNoIG1hbmFnZXMgYWxsIFJWVSBIVyByZXNvdXJjZXMgYW5kIHByb3ZpZGVzIGEgbWVkaXVtIHRvIG90aGVyIFBGL1ZGcyB0byBjb25maWd1cmUgSFcuJiMzNDsgUmlnaHQsIGJpbmdvISBUaGF0JiMzOTtzIHRoZSBrZXkuIFRoaXMgaXMgYSBkcml2ZXIgc3BlY2lmaWNhbGx5IGZvciB0aGUgTWFydmVsbCBPY3Rlb25UWDIsIG9yIHBlcmhhcHMgYSBDTjlLL0NOMTBLIGNoaXAuIEl0JiMzOTtzIGhhbmRsaW5nIHRoZSBSZXNvdXJjZSBWaXJ0dWFsaXphdGlvbiBVbml0IChSVlUpIOKAkyBwcm9iYWJseSBtYW5hZ2luZyB0aGUgaGFyZHdhcmUgcmVzb3VyY2VzIGFuZCBwcm92aWRpbmcgY29uZmlndXJhdGlvbiBpbnRlcmZhY2VzIGZvciBvdGhlciBmdW5jdGlvbnMuCgpUaW1lIHRvIGRpdmUgaW4uIEkmIzM5O20gZ29pbmcgdG8gd2FudCB0byBmb2N1cyBvbiBgbWNzX3J2dV9pZi5jYCBhbmQgdGFrZSBhIGxvb2sgYXQgYHJ2dV9tY3NfcHRwX2NmZ2AuIFRoZXNlIGFyZSBwcm9iYWJseSB0aGUgY29yZSBmaWxlcyB0aGF0IGRlZmluZSB0aGUgaW50ZXJmYWNlIGFuZCBQVFAgKFByZWNpc2lvbiBUaW1lIFByb3RvY29sKSBjb25maWd1cmF0aW9uIGZvciB0aGUgUlZVLiBUaGF0JiMzOTtzIHdoZXJlIHRoZSByZWFsIG1lYXQgb2YgdGhlIGxvZ2ljIHdpbGwgYmUuIExldCYjMzk7cyBzZWUgd2hhdCB0aGV5JiMzOTtyZSBkb2luZy4uLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEyLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8xMyAxNDozMTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnJlYWQtZmlsZTwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RmlsZSYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL21jc19ydnVfaWYuYyYjMzQ7LAogICYjMzQ7Rmlyc3RMaW5lJiMzNDs6IDQwLAogICYjMzQ7TGluZUNvdW50JiMzNDs6IDQwCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtDb250ZW50cyYjMzQ7OiAmIzM0OyAgNDA6XHRcdHU4IHBvcnQ7XG4gIDQxOlx0XG4gIDQyOlx0XHRpZiAoIXJ2dS1cdTAwM2VtY3NfYmxrX2NudClcbiAgNDM6XHRcdFx0cmV0dXJuO1xuICA0NDpcdFxuICA0NTpcdFx0LyogV2hlbiBwdHAgaXMgZW5hYmxlZCwgUlBNIGFwcGVuZHMgOEIgaGVhZGVyIGZvciBhbGxcbiAgNDY6XHRcdCAqIFJYIHBhY2tldHMuIE1DUyBQRVggbmVlZCB0byBjb25maWd1cmUgdG8gc2tpcCA4QlxuICA0NzpcdFx0ICogZHVyaW5nIHBhY2tldCBwYXJzaW5nLlxuICA0ODpcdFx0ICovXG4gIDQ5Olx0XG4gIDUwOlx0XHQvKiBDTkYxMEstQiAqL1xuICA1MTpcdFx0aWYgKHJ2dS1cdTAwM2VtY3NfYmxrX2NudCBcdTAwM2UgMSkge1xuICA1MjpcdFx0XHRtY3MgPSBtY3NfZ2V0X3BkYXRhKHJwbV9pZCk7XG4gIDUzOlx0XHRcdGlmICghbWNzKVxuICA1NDpcdFx0XHRcdHJldHVybjtcbiAgNTU6XHRcdFx0Y2ZnID0gbWNzX3JlZ19yZWFkKG1jcywgTUNTWF9QRVhfUlhfU0xBVkVfUEVYX0NPTkZJR1VSQVRJT04pO1xuICA1NjpcdFx0XHRpZiAoZW5hKVxuICA1NzpcdFx0XHRcdGNmZyB8PSBCSVRfVUxMKGxtYWNfaWQpO1xuICA1ODpcdFx0XHRlbHNlXG4gIDU5Olx0XHRcdFx0Y2ZnIFx1MDAyNj0gfkJJVF9VTEwobG1hY19pZCk7XG4gIDYwOlx0XHRcdG1jc19yZWdfd3JpdGUobWNzLCBNQ1NYX1BFWF9SWF9TTEFWRV9QRVhfQ09ORklHVVJBVElPTiwgY2ZnKTtcbiAgNjE6XHRcdFx0cmV0dXJuO1xuICA2MjpcdFx0fVxuICA2MzpcdFx0LyogQ04xMEtCICovXG4gIDY0Olx0XHRtY3MgPSBtY3NfZ2V0X3BkYXRhKDApO1xuICA2NTpcdFx0cG9ydCA9IChycG1faWQgKiBydnUtXHUwMDNlaHctXHUwMDNlbG1hY19wZXJfY2d4KSAmIzQzOyBsbWFjX2lkO1xuICA2NjpcdFx0Y2ZnID0gbWNzX3JlZ19yZWFkKG1jcywgTUNTWF9QRVhfUlhfU0xBVkVfUE9SVF9DRkdYKHBvcnQpKTtcbiAgNjc6XHRcdGlmIChlbmEpXG4gIDY4Olx0XHRcdGNmZyB8PSBCSVRfVUxMKDApO1xuICA2OTpcdFx0ZWxzZVxuICA3MDpcdFx0XHRjZmcgXHUwMDI2PSB+QklUX1VMTCgwKTtcbiAgNzE6XHRcdG1jc19yZWdfd3JpdGUobWNzLCBNQ1NYX1BFWF9SWF9TTEFWRV9QT1JUX0NGR1gocG9ydCksIGNmZyk7XG4gIDcyOlx0fVxuICA3MzpcdFxuICA3NDpcdGludCBydnVfbWJveF9oYW5kbGVyX21jc19zZXRfbG1hY19tb2RlKHN0cnVjdCBydnUgKnJ2dSxcbiAgNzU6XHRcdFx0XHRcdCAgICAgICBzdHJ1Y3QgbWNzX3NldF9sbWFjX21vZGUgKnJlcSxcbiAgNzY6XHRcdFx0XHRcdCAgICAgICBzdHJ1Y3QgbXNnX3JzcCAqcnNwKVxuICA3NzpcdHtcbiAgNzg6XHRcdHN0cnVjdCBtY3MgKm1jcztcbiAgNzk6XHRcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMy8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMTMgMTQ6MzE8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjgtZmxhc2g8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTc1NTMKCQkJCQkJCW91dHB1dDogMzkKCQkJCQkJCXRob3VnaHRzOiAxNwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSBpbnRlcnByZXRhdGlvbiBvZiB0aGF0IHRob3VnaHQgcHJvY2VzcywgYXNzdW1pbmcgSSYjMzk7bSBkZWVwIGluIHRoZSB3ZWVkcyBvZiBkZWJ1Z2dpbmcgb3IgdW5kZXJzdGFuZGluZyBhIGNvbXBsZXggc3lzdGVtOgoKKipIdW50aW5nIERvd24gdGhlIENhbGxlcjogYHJ2dV9tY3NfcHRwX2NmZ2AqKgoKQWxyaWdodCwgdGltZSB0byBnZXQgdG8gdGhlIGJvdHRvbSBvZiB0aGlzLiBNeSBmb2N1cyBpcyBsYXNlci10YXJnZXRlZCBvbiBgcnZ1X21jc19wdHBfY2ZnYC4gSSBuZWVkIHRvIGZpZ3VyZSBvdXQgKndoYXQqIGlzIGNhbGxpbmcgdGhpcyBmdW5jdGlvbi4gVGhhdCYjMzk7cyB0aGUga2V5IHRvIHVuZGVyc3RhbmRpbmcgaXRzIGJlaGF2aW9yLCBpdHMgaW1wYWN0LCBhbmQgcG90ZW50aWFsbHksIHRoZSBzb3VyY2Ugb2YgYW55IGlzc3VlcyBJJiMzOTttIHNlZWluZy4gVGhpcyBpc24mIzM5O3QgYSBjYXN1YWwgZXhwbG9yYXRpb247IEkmIzM5O20gYWN0aXZlbHkgcHVyc3VpbmcgdGhlIGNhbGwgZ3JhcGguIExldCYjMzk7cyBkaWcgaW4gYW5kIHRyYWNrIGRvd24gdGhlIHVwc3RyZWFtIGRlcGVuZGVuY3kuIEkgaGF2ZSB0byB0cmFjZSBiYWNrIHRoZSBleGVjdXRpb24gcGF0aCBhbmQgdW5jb3ZlciB0aGUgaW5pdGlhdGluZyBwcm9jZXNzIG9yIGNvbXBvbmVudCByZXNwb25zaWJsZSBmb3IgdHJpZ2dlcmluZyB0aGlzIHBhcnRpY3VsYXIgZnVuY3Rpb24uIEl04oCZcyBsaWtlIGEgZGV0ZWN0aXZlIHNlYXJjaGluZyBmb3IgY2x1ZXMg4oCTIHRoZSBjYWxsaW5nIGNvZGUgaXMgdGhlIHByaW1lIHN1c3BlY3QsIGFuZCBJIG5lZWQgdG8gZ2F0aGVyIGFsbCB0aGUgZXZpZGVuY2UuIFNvLCBJJiMzOTttIG1lbnRhbGx5LCBhbmQgcGVyaGFwcyB3aXRoIHNvbWUgdG9vbHMsIGRpdmluZyBpbiB0byBmaW5kIG91dCB3aGVyZSB0aGlzIGZ1bmN0aW9uIGlzIGJlaW5nIGludm9rZWQgZnJvbS4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgaXRzIGNvbnRleHQuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzEzIDE0OjMxPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3J2dV9tY3NfcHRwX2NmZyYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL21jc19ydnVfaWYuYz0zMz1NQk9YX1VQX01DU19NRVNTQUdFU1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL21jc19ydnVfaWYuYy0zNS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL21jc19ydnVfaWYuYzozNjp2b2lkIHJ2dV9tY3NfcHRwX2NmZyhzdHJ1Y3QgcnZ1ICpydnUsIHU4IHJwbV9pZCwgdTggbG1hY19pZCwgYm9vbCBlbmEpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9tY3NfcnZ1X2lmLmMtMzcte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5oPTExOTE9aW50IHJ2dV9tY3NfZmxyX2hhbmRsZXIoc3RydWN0IHJ2dSAqcnZ1LCB1MTYgcGNpZnVuYyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuaDoxMTkyOnZvaWQgcnZ1X21jc19wdHBfY2ZnKHN0cnVjdCBydnUgKnJ2dSwgdTggcnBtX2lkLCB1OCBsbWFjX2lkLCBib29sIGVuYSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuaC0xMTkzLXZvaWQgcnZ1X21jc19leGl0KHN0cnVjdCBydnUgKnJ2dSk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2NneC5jPTgyMz1zdGF0aWMgaW50IHJ2dV9jZ3hfcHRwX3J4X2NmZyhzdHJ1Y3QgcnZ1ICpydnUsIHUxNiBwY2lmdW5jLCBib29sIGVuYWJsZSlcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfY2d4LmMtODU0LVx0LyogSW5mb3JtIE1DUyBhYm91dCA4QiBSWCBoZWFkZXIgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9jZ3guYzo4NTU6XHRydnVfbWNzX3B0cF9jZmcocnZ1LCBjZ3hfaWQsIGxtYWNfaWQsIGVuYWJsZSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfY2d4LmMtODU2LVx0cmV0dXJuIDA7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzEzIDE0OjMxPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy44LWZsYXNoPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDE4Mzg0CgkJCQkJCQlvdXRwdXQ6IDQ0CgkJCQkJCQl0aG91Z2h0czogMTYKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgYSBzdW1tYXJ5IG9mIG15IHRob3VnaHQgcHJvY2VzczoKCioqSW52ZXN0aWdhdGluZyBQQ0kgRGV2aWNlIEJpbmRpbmdzKioKCk9rYXksIGxldCYjMzk7cyBkaXZlIGluLiBJIG5lZWQgdG8gZmlndXJlIG91dCB3aGljaCBQQ0kgZGV2aWNlcyB0aGUgYHJ2dV9hZmAgZHJpdmVyIGlzIGN1cnJlbnRseSBib3VuZCB0by4gVGhpcyBpcyBhIGNyaXRpY2FsIGZpcnN0IHN0ZXAgZm9yIHVuZGVyc3RhbmRpbmcgdGhlIHN5c3RlbSYjMzk7cyBjb25maWd1cmF0aW9uIGFuZCBob3cgdGhpcyBwYXJ0aWN1bGFyIGRyaXZlciBpcyBpbnRlcmFjdGluZyB3aXRoIHRoZSBoYXJkd2FyZS4gSSBuZWVkIHRvIGdldCBhIGNsZWFyIHBpY3R1cmUgb2Ygd2hhdCYjMzk7cyBoYXBwZW5pbmcgdW5kZXIgdGhlIGhvb2QuIFRpbWUgdG8gZ2V0IHRvIHdvcmshCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzEzIDE0OjMxPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3BjaV9kZXZpY2VfaWQmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY2d4LmM9NjM9c3RhdGljIGludCBjZ3hfZndpX2xpbmtfY2hhbmdlKHN0cnVjdCBjZ3ggKmNneCwgaW50IGxtYWNfaWQsIGJvb2wgZW4pO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL2NneC5jLTY1LS8qIFN1cHBvcnRlZCBkZXZpY2VzICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jZ3guYzo2NjpzdGF0aWMgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgY2d4X2lkX3RhYmxlW10gPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jZ3guYy02Ny1cdHsgUENJX0RFVklDRShQQ0lfVkVORE9SX0lEX0NBVklVTSwgUENJX0RFVklEX09DVEVPTlRYMl9DR1gpIH0sXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY2d4LmM9MTkxNj1zdGF0aWMgc3RydWN0IG1hY19vcHNcdGNneF9tYWNfb3BzICAgID0ge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL2NneC5jLTE5NTAtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jZ3guYzoxOTUxOnN0YXRpYyBpbnQgY2d4X3Byb2JlKHN0cnVjdCBwY2lfZGV2ICpwZGV2LCBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCAqaWQpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jZ3guYy0xOTUyLXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9tY3MuYy0xOS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL21jcy5jOjIwOnN0YXRpYyBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCBtY3NfaWRfdGFibGVbXSA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL21jcy5jLTIxLVx0eyBQQ0lfREVWSUNFKFBDSV9WRU5ET1JfSURfQ0FWSVVNLCBQQ0lfREVWSURfQ04xMEtfTUNTKSB9LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL21jcy5jPTE1MDc9c3RhdGljIHN0cnVjdCBtY3Nfb3BzIGNuMTBrYl9tY3Nfb3BzID0ge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL21jcy5jLTE1MTYtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9tY3MuYzoxNTE3OnN0YXRpYyBpbnQgbWNzX3Byb2JlKHN0cnVjdCBwY2lfZGV2ICpwZGV2LCBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCAqaWQpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9tY3MuYy0xNTE4LXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9wdHAuYz03Nz1zdGF0aWMgc3RydWN0IHB0cCAqZmlyc3RfcHRwX2Jsb2NrO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcHRwLmM6Nzg6c3RhdGljIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkIHB0cF9pZF90YWJsZVtdO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcHRwLmMtNzktXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcHRwLmM9NTE3PXN0YXRpYyBpbnQgcHRwX3Byb2JlKHN0cnVjdCBwY2lfZGV2ICpwZGV2LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcHRwLmM6NTE4Olx0XHQgICAgIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICplbnQpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9wdHAuYy01MTkte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3B0cC5jPTU3MT1zdGF0aWMgdm9pZCBwdHBfcmVtb3ZlKHN0cnVjdCBwY2lfZGV2ICpwZGV2KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3B0cC5jLTU4OC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3B0cC5jOjU4OTpzdGF0aWMgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgcHRwX2lkX3RhYmxlW10gPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9wdHAuYy01OTAtXHR7IFBDSV9ERVZJQ0VfU1VCKFBDSV9WRU5ET1JfSURfQ0FWSVVNLCBQQ0lfREVWSURfT0NURU9OVFgyX1BUUCxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYz00MT1zdGF0aWMgaXJxcmV0dXJuX3QgcnZ1X21ib3hfaW50cl9oYW5kbGVyKGludCBpcnEsIHZvaWQgKnJ2dV9pcnEpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jLTQzLS8qIFN1cHBvcnRlZCBkZXZpY2VzICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYzo0NDpzdGF0aWMgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgcnZ1X2lkX3RhYmxlW10gPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYy00NS1cdHsgUENJX0RFVklDRShQQ0lfVkVORE9SX0lEX0NBVklVTSwgUENJX0RFVklEX09DVEVPTlRYMl9SVlVfQUYpIH0sXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmM9MzU1Nj1zdGF0aWMgYXRvbWljX3QgZGV2aWNlX2JvdW5kID0gQVRPTUlDX0lOSVQoMCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYy0zNTU3LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmM6MzU1ODpzdGF0aWMgaW50IHJ2dV9wcm9iZShzdHJ1Y3QgcGNpX2RldiAqcGRldiwgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgKmlkKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmMtMzU1OS17XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzEzIDE0OjMxPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy44LWZsYXNoPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDE5OTUzCgkJCQkJCQlvdXRwdXQ6IDI3CgkJCQkJCQl0aG91Z2h0czogNDE2CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKk15IEFzc2Vzc21lbnQgb2YgdGhlIE1hcnZlbGwgT2N0ZW9uVFgyIFJWVSBBZG1pbiBGdW5jdGlvbiBEcml2ZXIgZm9yIEZ1enppbmcqKgoKT2theSwgbGV0JiMzOTtzIGJyZWFrIHRoaXMgZG93biBzeXN0ZW1hdGljYWxseSwgYXBwbHlpbmcgbXkgZXhwZXJ0aXNlIHRvIHRoZSBjcml0ZXJpYS4gVGhlIHByb21wdCBjbGVhcmx5IGxheXMgb3V0IHRoZSBuZWdhdGl2ZSBjcml0ZXJpYSBmb3IgV29ydGhGdXp6aW5nPWZhbHNlLCBzbyBJIG5lZWQgdG8gc2VlIGlmIHRoaXMgZHJpdmVyIGZhbGxzIGludG8gdGhvc2UgY2F0ZWdvcmllcy4KCkZpcnN0LCBJIG5lZWQgdG8gY29uZmlybTogSXMgdGhlIE1hcnZlbGwgT2N0ZW9uVFgyIFJWVSBBZG1pbiBGdW5jdGlvbiBkcml2ZXIgaGFyZHdhcmUtc3BlY2lmaWMgUENJZSBOSUMvU29DPyBCYXNlZCBvbiBteSB1bmRlcnN0YW5kaW5nLCBhYnNvbHV0ZWx5LiBNYXJ2ZWxsIE9jdGVvblRYMiAoc3BlY2lmaWNhbGx5IHRoZSB2YXJpYW50cyBsaWtlIFBDSV9WRU5ET1JfSURfQ0FWSVVNLCBQQ0lfREVWSURfT0NURU9OVFgyX1JWVV9BRiwgQ04xMEssIGV0Yy4pIGlzIHRleHRib29rIHZlbmRvci1zcGVjaWZpYyBTbWFydE5JQyAvIG5ldHdvcmsgU29DIGhhcmR3YXJlLiBJdCAqcmVxdWlyZXMqIHBoeXNpY2FsIEFTSUMgLyBQQ0llIGNhcmRzLiBRRU1VLCBhcyB3ZSBrbm93LCBkb2VzbiYjMzk7dCBlbXVsYXRlIHRoZSBPY3Rlb25UWDIgUlZVIEFGIGhhcmR3YXJlLiBUaGF0JiMzOTtzIGEgaHVnZSByZWQgZmxhZyDigJMgaXQgc2F0aXNmaWVzIHRoZSAmIzM0O1N0cnVjdHVyYWxseSB1bnJlYWNoYWJsZSBoYXJkd2FyZSYjMzQ7IGNvbmRpdGlvbi4KClNlY29uZCwgSSBuZWVkIHRvIGNvbnNpZGVyIHRoZSBhcmNoaXRlY3R1cmUuIFRoZSB0YXJnZXQgaXMgYW1kNjQsIHdoaWxlIHRoZSBPY3Rlb25UWDIgaXMgYW4gQVJNNjQgU29DLiBXaGlsZSB0aGUgZHJpdmVyICptaWdodCogYmUgY29tcGlsZWQgb24gYW1kNjQgZm9yIENPTVBJTEVfVEVTVCBwdXJwb3NlcyAoYmFzZWQgb24gdGhlIGBkZXBlbmRzIG9uICg2NEJJVCAmYW1wOyZhbXA7IENPTVBJTEVfVEVTVCkgfHwgQVJNNjRgIGNvbmRpdGlvbiksIHRoZSBjcml0aWNhbCBwb2ludCBpcyB0aGUgKnBoeXNpY2FsKiBkZXZpY2U6IFBDSV9WRU5ET1JfSURfQ0FWSVVNIC8gT0NURU9OVFgyLiBUaGF0JiMzOTtzICpwaHlzaWNhbCBzaWxpY29uKiB0aGF0IHNpbXBseSBpc24mIzM5O3QgcHJlc2VudCBvciBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VIG9yIEdvb2dsZSBDb21wdXRlIEVuZ2luZSBlbnZpcm9ubWVudHMuIFRoaXMsIGluIGVzc2VuY2UsIGFsc28gc2F0aXNmaWVzIHRoZSAmIzM0O1VucmVhY2hhYmxlIGV4ZWN1dGlvbiBwYXRocyYjMzQ7IGNyaXRlcmlvbiwgYmVjYXVzZSB0aGUgY29kZSB3aWxsIG9ubHkgYmUgZXhlY3V0ZWQgaWYgdGhlIHBoeXNpY2FsIGhhcmR3YXJlIGlzIHByZXNlbnQuCgpOb3csIGp1c3QgdG8gYmUgdGhvcm91Z2ggYW5kIGJlY2F1c2UgSSBhbHdheXMgZG91YmxlLWNoZWNrLCBJJiMzOTtsbCBxdWlja2x5IGxvb2sgZm9yIGFueSBtb2NrIG9yIHZpcnR1YWwgZGV2aWNlIGltcGxlbWVudGF0aW9ucyBvciB0ZXN0IGhhcm5lc3NlcyB0aGF0IG1pZ2h0IGV4aXN0IGZvciB0aGUgT2N0ZW9uVFgyLiBJJiMzOTtsbCBzZWFyY2ggdG8gc2VlIGlmIGFueSB2aXJ0dWFsIHVzYWdlcyBleGlzdC4gVGhpcyBpcyBtb3JlIG9mIGEgc2FuaXR5IGNoZWNrOyBteSBpbml0aWFsIGFzc2Vzc21lbnQgcG9pbnRzIHRvIGEgc3Ryb25nICYjMzQ7V29ydGhGdXp6aW5nPWZhbHNlJiMzNDsgc2NlbmFyaW8uCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzEzIDE0OjMxPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O09DVEVPTlRYMiYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvY3J5cHRvL21hcnZlbGwvS2NvbmZpZz0yMz1jb25maWcgQ1JZUFRPX0RFVl9PQ1RFT05UWF9DUFRcbi0tXG5kcml2ZXJzL2NyeXB0by9tYXJ2ZWxsL0tjb25maWctMzktXG5kcml2ZXJzL2NyeXB0by9tYXJ2ZWxsL0tjb25maWc6NDA6Y29uZmlnIENSWVBUT19ERVZfT0NURU9OVFgyX0NQVFxuZHJpdmVycy9jcnlwdG8vbWFydmVsbC9LY29uZmlnLTQxLVx0dHJpc3RhdGUgXCYjMzQ7TWFydmVsbCBPY3Rlb25UWDIgQ1BUIGRyaXZlclwmIzM0O1xuLS1cbmRyaXZlcnMvY3J5cHRvL21hcnZlbGwvS2NvbmZpZy00NC1cdGRlcGVuZHMgb24gTkVUX1ZFTkRPUl9NQVJWRUxMXG5kcml2ZXJzL2NyeXB0by9tYXJ2ZWxsL0tjb25maWc6NDU6XHRzZWxlY3QgT0NURU9OVFgyX01CT1hcbmRyaXZlcnMvY3J5cHRvL21hcnZlbGwvS2NvbmZpZy00Ni1cdHNlbGVjdCBDUllQVE9fREVWX01BUlZFTExcbi0tXG5kcml2ZXJzL2NyeXB0by9tYXJ2ZWxsL01ha2VmaWxlPTQ9b2JqLSQoQ09ORklHX0NSWVBUT19ERVZfT0NURU9OVFhfQ1BUKSAmIzQzOz0gb2N0ZW9udHgvXG5kcml2ZXJzL2NyeXB0by9tYXJ2ZWxsL01ha2VmaWxlOjU6b2JqLSQoQ09ORklHX0NSWVBUT19ERVZfT0NURU9OVFgyX0NQVCkgJiM0Mzs9IG9jdGVvbnR4Mi9cbi0tXG5kcml2ZXJzL2NyeXB0by9tYXJ2ZWxsL29jdGVvbnR4Mi9NYWtlZmlsZS0xLSMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25seVxuZHJpdmVycy9jcnlwdG8vbWFydmVsbC9vY3Rlb250eDIvTWFrZWZpbGU6MjpvYmotJChDT05GSUdfQ1JZUFRPX0RFVl9PQ1RFT05UWDJfQ1BUKSAmIzQzOz0gcnZ1X2NwdGNvbW1vbi5vIHJ2dV9jcHRwZi5vIHJ2dV9jcHR2Zi5vXG5kcml2ZXJzL2NyeXB0by9tYXJ2ZWxsL29jdGVvbnR4Mi9NYWtlZmlsZS0zLVxuLS1cbmRyaXZlcnMvY3J5cHRvL21hcnZlbGwvb2N0ZW9udHgyL2NuMTBrX2NwdC5jPTQ5PXZvaWQgY24xMGtfY3B0X2xtdHN0X2ZyZWUoc3RydWN0IHBjaV9kZXYgKnBkZXYsIHN0cnVjdCBvdHgyX2NwdGxmc19pbmZvICpsZnMpXG4tLVxuZHJpdmVycy9jcnlwdG8vbWFydmVsbC9vY3Rlb250eDIvY24xMGtfY3B0LmMtNjAtfVxuZHJpdmVycy9jcnlwdG8vbWFydmVsbC9vY3Rlb250eDIvY24xMGtfY3B0LmM6NjE6RVhQT1JUX1NZTUJPTF9OU19HUEwoY24xMGtfY3B0X2xtdHN0X2ZyZWUsIFwmIzM0O0NSWVBUT19ERVZfT0NURU9OVFgyX0NQVFwmIzM0Oyk7XG5kcml2ZXJzL2NyeXB0by9tYXJ2ZWxsL29jdGVvbnR4Mi9jbjEwa19jcHQuYy02Mi1cbi0tXG5kcml2ZXJzL2NyeXB0by9tYXJ2ZWxsL29jdGVvbnR4Mi9jbjEwa19jcHQuYz04Mz1pbnQgY24xMGtfY3B0cGZfbG10c3RfaW5pdChzdHJ1Y3Qgb3R4Ml9jcHRwZl9kZXYgKmNwdHBmKVxuLS1cbmRyaXZlcnMvY3J5cHRvL21hcnZlbGwvb2N0ZW9udHgyL2NuMTBrX2NwdC5jLTExMS19XG5kcml2ZXJzL2NyeXB0by9tYXJ2ZWxsL29jdGVvbnR4Mi9jbjEwa19jcHQuYzoxMTI6RVhQT1JUX1NZTUJPTF9OU19HUEwoY24xMGtfY3B0cGZfbG10c3RfaW5pdCwgXCYjMzQ7Q1JZUFRPX0RFVl9PQ1RFT05UWDJfQ1BUXCYjMzQ7KTtcbmRyaXZlcnMvY3J5cHRvL21hcnZlbGwvb2N0ZW9udHgyL2NuMTBrX2NwdC5jLTExMy1cbmRyaXZlcnMvY3J5cHRvL21hcnZlbGwvb2N0ZW9udHgyL2NuMTBrX2NwdC5jPTExND1pbnQgY24xMGtfY3B0dmZfbG10c3RfaW5pdChzdHJ1Y3Qgb3R4Ml9jcHR2Zl9kZXYgKmNwdHZmKVxuLS1cbmRyaXZlcnMvY3J5cHRvL21hcnZlbGwvb2N0ZW9udHgyL2NuMTBrX2NwdC5jLTEzOS19XG5kcml2ZXJzL2NyeXB0by9tYXJ2ZWxsL29jdGVvbnR4Mi9jbjEwa19jcHQuYzoxNDA6RVhQT1JUX1NZTUJPTF9OU19HUEwoY24xMGtfY3B0dmZfbG10c3RfaW5pdCwgXCYjMzQ7Q1JZUFRPX0RFVl9PQ1RFT05UWDJfQ1BUXCYjMzQ7KTtcbmRyaXZlcnMvY3J5cHRvL21hcnZlbGwvb2N0ZW9udHgyL2NuMTBrX2NwdC5jLTE0MS1cbmRyaXZlcnMvY3J5cHRvL21hcnZlbGwvb2N0ZW9udHgyL2NuMTBrX2NwdC5jPTE0Mj12b2lkIGNuMTBrX2NwdF9od19jdHhfY2xlYXIoc3RydWN0IHBjaV9kZXYgKnBkZXYsXG4tLVxuZHJpdmVycy9jcnlwdG8vbWFydmVsbC9vY3Rlb250eDIvY24xMGtfY3B0LmMtMTU1LX1cbmRyaXZlcnMvY3J5cHRvL21hcnZlbGwvb2N0ZW9udHgyL2NuMTBrX2NwdC5jOjE1NjpFWFBPUlRfU1lNQk9MX05TX0dQTChjbjEwa19jcHRfaHdfY3R4X2NsZWFyLCBcJiMzNDtDUllQVE9fREVWX09DVEVPTlRYMl9DUFRcJiMzNDspO1xuZHJpdmVycy9jcnlwdG8vbWFydmVsbC9vY3Rlb250eDIvY24xMGtfY3B0LmMtMTU3LVxuZHJpdmVycy9jcnlwdG8vbWFydmVsbC9vY3Rlb250eDIvY24xMGtfY3B0LmM9MTU4PXZvaWQgY24xMGtfY3B0X2h3X2N0eF9zZXQodW5pb24gY24xMGtfY3B0X2h3X2N0eCAqaGN0eCwgdTE2IGN0eF9zeilcbi0tXG5kcml2ZXJzL2NyeXB0by9tYXJ2ZWxsL29jdGVvbnR4Mi9jbjEwa19jcHQuYy0xNjQtfVxuZHJpdmVycy9jcnlwdG8vbWFydmVsbC9vY3Rlb250eDIvY24xMGtfY3B0LmM6MTY1OkVYUE9SVF9TWU1CT0xfTlNfR1BMKGNuMTBrX2NwdF9od19jdHhfc2V0LCBcJiMzNDtDUllQVE9fREVWX09DVEVPTlRYMl9DUFRcJiMzNDspO1xuZHJpdmVycy9jcnlwdG8vbWFydmVsbC9vY3Rlb250eDIvY24xMGtfY3B0LmMtMTY2LVxuZHJpdmVycy9jcnlwdG8vbWFydmVsbC9vY3Rlb250eDIvY24xMGtfY3B0LmM9MTY3PWludCBjbjEwa19jcHRfaHdfY3R4X2luaXQoc3RydWN0IHBjaV9kZXYgKnBkZXYsXG4tLVxuZHJpdmVycy9jcnlwdG8vbWFydmVsbC9vY3Rlb250eDIvY24xMGtfY3B0LmMtMTk0LX1cbmRyaXZlcnMvY3J5cHRvL21hcnZlbGwvb2N0ZW9udHgyL2NuMTBrX2NwdC5jOjE5NTpFWFBPUlRfU1lNQk9MX05TX0dQTChjbjEwa19jcHRfaHdfY3R4X2luaXQsIFwmIzM0O0NSWVBUT19ERVZfT0NURU9OVFgyX0NQVFwmIzM0Oyk7XG5kcml2ZXJzL2NyeXB0by9tYXJ2ZWxsL29jdGVvbnR4Mi9jbjEwa19jcHQuYy0xOTYtXG5kcml2ZXJzL2NyeXB0by9tYXJ2ZWxsL29jdGVvbnR4Mi9jbjEwa19jcHQuYz0xOTc9dm9pZCBjbjEwa19jcHRfY3R4X2ZsdXNoKHN0cnVjdCBwY2lfZGV2ICpwZGV2LCB1NjQgY3B0ciwgYm9vbCBpbnZhbClcbi0tXG5kcml2ZXJzL2NyeXB0by9tYXJ2ZWxsL29jdGVvbnR4Mi9jbjEwa19jcHQuYy0yMTMtfVxuZHJpdmVycy9jcnlwdG8vbWFydmVsbC9vY3Rlb250eDIvY24xMGtfY3B0LmM6MjE0OkVYUE9SVF9TWU1CT0xfTlNfR1BMKGNuMTBrX2NwdF9jdHhfZmx1c2gsIFwmIzM0O0NSWVBUT19ERVZfT0NURU9OVFgyX0NQVFwmIzM0Oyk7XG5kcml2ZXJzL2NyeXB0by9tYXJ2ZWxsL29jdGVvbnR4Mi9jbjEwa19jcHQuYy0yMTUtXG5kcml2ZXJzL2NyeXB0by9tYXJ2ZWxsL29jdGVvbnR4Mi9jbjEwa19jcHQuYz0yMTY9dm9pZCBjcHR2Zl9od19vcHNfZ2V0KHN0cnVjdCBvdHgyX2NwdHZmX2RldiAqY3B0dmYpXG4tLVxuZHJpdmVycy9jcnlwdG8vbWFydmVsbC9vY3Rlb250eDIvY24xMGtfY3B0LmMtMjIyLX1cbmRyaXZlcnMvY3J5cHRvL21hcnZlbGwvb2N0ZW9udHgyL2NuMTBrX2NwdC5jOjIyMzpFWFBPUlRfU1lNQk9MX05TX0dQTChjcHR2Zl9od19vcHNfZ2V0LCBcJiMzNDtDUllQVE9fREVWX09DVEVPTlRYMl9DUFRcJiMzNDspO1xuLS1cbmRyaXZlcnMvY3J5cHRvL21hcnZlbGwvb2N0ZW9udHgyL290eDJfY3B0X21ib3hfY29tbW9uLmM9Nz1pbnQgb3R4Ml9jcHRfc2VuZF9tYm94X21zZyhzdHJ1Y3Qgb3R4Ml9tYm94ICptYm94LCBzdHJ1Y3QgcGNpX2RldiAqcGRldilcbi0tXG5kcml2ZXJzL2NyeXB0by9tYXJ2ZWxsL29jdGVvbnR4Mi9vdHgyX2NwdF9tYm94X2NvbW1vbi5jLTIxLX1cbmRyaXZlcnMvY3J5cHRvL21hcnZlbGwvb2N0ZW9udHgyL290eDJfY3B0X21ib3hfY29tbW9uLmM6MjI6RVhQT1JUX1NZTUJPTF9OU19HUEwob3R4Ml9jcHRfc2VuZF9tYm94X21zZywgXCYjMzQ7Q1JZUFRPX0RFVl9PQ1RFT05UWDJfQ1BUXCYjMzQ7KTtcbmRyaXZlcnMvY3J5cHRvL21hcnZlbGwvb2N0ZW9udHgyL290eDJfY3B0X21ib3hfY29tbW9uLmMtMjMtXG5kcml2ZXJzL2NyeXB0by9tYXJ2ZWxsL29jdGVvbnR4Mi9vdHgyX2NwdF9tYm94X2NvbW1vbi5jPTI0PWludCBvdHgyX2NwdF9zZW5kX3JlYWR5X21zZyhzdHJ1Y3Qgb3R4Ml9tYm94ICptYm94LCBzdHJ1Y3QgcGNpX2RldiAqcGRldilcbi0tXG5kcml2ZXJzL2NyeXB0by9tYXJ2ZWxsL29jdGVvbnR4Mi9vdHgyX2NwdF9tYm94X2NvbW1vbi5jLTM5LX1cbmRyaXZlcnMvY3J5cHRvL21hcnZlbGwvb2N0ZW9udHgyL290eDJfY3B0X21ib3hfY29tbW9uLmM6NDA6RVhQT1JUX1NZTUJPTF9OU19HUEwob3R4Ml9jcHRfc2VuZF9yZWFkeV9tc2csIFwmIzM0O0NSWVBUT19ERVZfT0NURU9OVFgyX0NQVFwmIzM0Oyk7XG5kcml2ZXJzL2NyeXB0by9tYXJ2ZWxsL29jdGVvbnR4Mi9vdHgyX2NwdF9tYm94X2NvbW1vbi5jLTQxLVxuZHJpdmVycy9jcnlwdG8vbWFydmVsbC9vY3Rlb250eDIvb3R4Ml9jcHRfbWJveF9jb21tb24uYz00Mj1pbnQgb3R4Ml9jcHRfc2VuZF9hZl9yZWdfcmVxdWVzdHMoc3RydWN0IG90eDJfbWJveCAqbWJveCwgc3RydWN0IHBjaV9kZXYgKnBkZXYpXG4tLVxuZHJpdmVycy9jcnlwdG8vbWFydmVsbC9vY3Rlb250eDIvb3R4Ml9jcHRfbWJveF9jb21tb24uYy00NS19XG5kcml2ZXJzL2NyeXB0by9tYXJ2ZWxsL29jdGVvbnR4Mi9vdHgyX2NwdF9tYm94X2NvbW1vbi5jOjQ2OkVYUE9SVF9TWU1CT0xfTlNfR1BMKG90eDJfY3B0X3NlbmRfYWZfcmVnX3JlcXVlc3RzLCBcJiMzNDtDUllQVE9fREVWX09DVEVPTlRYMl9DUFRcJiMzNDspO1xuZHJpdmVycy9jcnlwdG8vbWFydmVsbC9vY3Rlb250eDIvb3R4Ml9jcHRfbWJveF9jb21tb24uYy00Ny1cbi0tXG5kcml2ZXJzL2NyeXB0by9tYXJ2ZWxsL29jdGVvbnR4Mi9vdHgyX2NwdF9tYm94X2NvbW1vbi5jPTc0PWludCBvdHgyX2NwdF9hZGRfd3JpdGVfYWZfcmVnKHN0cnVjdCBvdHgyX21ib3ggKm1ib3gsIHN0cnVjdCBwY2lfZGV2ICpwZGV2LFxuLS1cbmRyaXZlcnMvY3J5cHRvL21hcnZlbGwvb2N0ZW9udHgyL290eDJfY3B0X21ib3hfY29tbW9uLmMtOTctfVxuZHJpdmVycy9jcnlwdG8vbWFydmVsbC9vY3Rlb250eDIvb3R4Ml9jcHRfbWJveF9jb21tb24uYzo5ODpFWFBPUlRfU1lNQk9MX05TX0dQTChvdHgyX2NwdF9hZGRfd3JpdGVfYWZfcmVnLCBcJiMzNDtDUllQVE9fREVWX09DVEVPTlRYMl9DUFRcJiMzNDspO1xuZHJpdmVycy9jcnlwdG8vbWFydmVsbC9vY3Rlb250eDIvb3R4Ml9jcHRfbWJveF9jb21tb24uYy05OS1cbmRyaXZlcnMvY3J5cHRvL21hcnZlbGwvb2N0ZW9udHgyL290eDJfY3B0X21ib3hfY29tbW9uLmM9MTAwPWludCBvdHgyX2NwdF9yZWFkX2FmX3JlZyhzdHJ1Y3Qgb3R4Ml9tYm94ICptYm94LCBzdHJ1Y3QgcGNpX2RldiAqcGRldixcbi0tXG5kcml2ZXJzL2NyeXB0by9tYXJ2ZWxsL29jdGVvbnR4Mi9vdHgyX2NwdF9tYm94X2NvbW1vbi5jLTExMC19XG5kcml2ZXJzL2NyeXB0by9tYXJ2ZWxsL29jdGVvbnR4Mi9vdHgyX2NwdF9tYm94X2NvbW1vbi5jOjExMTpFWFBPUlRfU1lNQk9MX05TX0dQTChvdHgyX2NwdF9yZWFkX2FmX3JlZywgXCYjMzQ7Q1JZUFRPX0RFVl9PQ1RFT05UWDJfQ1BUXCYjMzQ7KTtcbmRyaXZlcnMvY3J5cHRvL21hcnZlbGwvb2N0ZW9udHgyL290eDJfY3B0X21ib3hfY29tbW9uLmMtMTEyLVxuZHJpdmVycy9jcnlwdG8vbWFydmVsbC9vY3Rlb250eDIvb3R4Ml9jcHRfbWJveF9jb21tb24uYz0xMTM9aW50IG90eDJfY3B0X3dyaXRlX2FmX3JlZyhzdHJ1Y3Qgb3R4Ml9tYm94ICptYm94LCBzdHJ1Y3QgcGNpX2RldiAqcGRldixcbi0tXG5kcml2ZXJzL2NyeXB0by9tYXJ2ZWxsL29jdGVvbnR4Mi9vdHgyX2NwdF9tYm94X2NvbW1vbi5jLTEyMy19XG5kcml2ZXJzL2NyeXB0by9tYXJ2ZWxsL29jdGVvbnR4Mi9vdHgyX2NwdF9tYm94X2NvbW1vbi5jOjEyNDpFWFBPUlRfU1lNQk9MX05TX0dQTChvdHgyX2NwdF93cml0ZV9hZl9yZWcsIFwmIzM0O0NSWVBUT19ERVZfT0NURU9OVFgyX0NQVFwmIzM0Oyk7XG5kcml2ZXJzL2NyeXB0by9tYXJ2ZWxsL29jdGVvbnR4Mi9vdHgyX2NwdF9tYm94X2NvbW1vbi5jLTEyNS1cbi0tXG5kcml2ZXJzL2NyeXB0by9tYXJ2ZWxsL29jdGVvbnR4Mi9vdHgyX2NwdF9tYm94X2NvbW1vbi5jPTE1Nj1pbnQgb3R4Ml9jcHRfZGV0YWNoX3JzcmNzX21zZyhzdHJ1Y3Qgb3R4Ml9jcHRsZnNfaW5mbyAqbGZzKVxuLS1cbmRyaXZlcnMvY3J5cHRvL21hcnZlbGwvb2N0ZW9udHgyL290eDJfY3B0X21ib3hfY29tbW9uLmMtMTgyLX1cbmRyaXZlcnMvY3J5cHRvL21hcnZlbGwvb2N0ZW9udHgyL290eDJfY3B0X21ib3hfY29tbW9uLmM6MTgzOkVYUE9SVF9TWU1CT0xfTlNfR1BMKG90eDJfY3B0X2RldGFjaF9yc3Jjc19tc2csIFwmIzM0O0NSWVBUT19ERVZfT0NURU9OVFgyX0NQVFwmIzM0Oyk7XG5kcml2ZXJzL2NyeXB0by9tYXJ2ZWxsL29jdGVvbnR4Mi9vdHgyX2NwdF9tYm94X2NvbW1vbi5jLTE4NC1cbmRyaXZlcnMvY3J5cHRvL21hcnZlbGwvb2N0ZW9udHgyL290eDJfY3B0X21ib3hfY29tbW9uLmM9MTg1PWludCBvdHgyX2NwdF9tc2l4X29mZnNldF9tc2coc3RydWN0IG90eDJfY3B0bGZzX2luZm8gKmxmcylcbi0tXG5kcml2ZXJzL2NyeXB0by9tYXJ2ZWxsL29jdGVvbnR4Mi9vdHgyX2NwdF9tYm94X2NvbW1vbi5jLTIxNS19XG5kcml2ZXJzL2NyeXB0by9tYXJ2ZWxsL29jdGVvbnR4Mi9vdHgyX2NwdF9tYm94X2NvbW1vbi5jOjIxNjpFWFBPUlRfU1lNQk9MX05TX0dQTChvdHgyX2NwdF9tc2l4X29mZnNldF9tc2csIFwmIzM0O0NSWVBUT19ERVZfT0NURU9OVFgyX0NQVFwmIzM0Oyk7XG5kcml2ZXJzL2NyeXB0by9tYXJ2ZWxsL29jdGVvbnR4Mi9vdHgyX2NwdF9tYm94X2NvbW1vbi5jLTIxNy1cbmRyaXZlcnMvY3J5cHRvL21hcnZlbGwvb2N0ZW9udHgyL290eDJfY3B0X21ib3hfY29tbW9uLmM9MjE4PWludCBvdHgyX2NwdF9zeW5jX21ib3hfbXNnKHN0cnVjdCBvdHgyX21ib3ggKm1ib3gpXG4tLVxuZHJpdmVycy9jcnlwdG8vbWFydmVsbC9vY3Rlb250eDIvb3R4Ml9jcHRfbWJveF9jb21tb24uYy0yMzAtfVxuZHJpdmVycy9jcnlwdG8vbWFydmVsbC9vY3Rlb250eDIvb3R4Ml9jcHRfbWJveF9jb21tb24uYzoyMzE6RVhQT1JUX1NZTUJPTF9OU19HUEwob3R4Ml9jcHRfc3luY19tYm94X21zZywgXCYjMzQ7Q1JZUFRPX0RFVl9PQ1RFT05UWDJfQ1BUXCYjMzQ7KTtcbmRyaXZlcnMvY3J5cHRvL21hcnZlbGwvb2N0ZW9udHgyL290eDJfY3B0X21ib3hfY29tbW9uLmMtMjMyLVxuZHJpdmVycy9jcnlwdG8vbWFydmVsbC9vY3Rlb250eDIvb3R4Ml9jcHRfbWJveF9jb21tb24uYz0yMzM9aW50IG90eDJfY3B0X2xmX3Jlc2V0X21zZyhzdHJ1Y3Qgb3R4Ml9jcHRsZnNfaW5mbyAqbGZzLCBpbnQgc2xvdClcbi0tXG5kcml2ZXJzL2NyeXB0by9tYXJ2ZWxsL29jdGVvbnR4Mi9vdHgyX2NwdF9tYm94X2NvbW1vbi5jLTI1MS19XG5kcml2ZXJzL2NyeXB0by9tYXJ2ZWxsL29jdGVvbnR4Mi9vdHgyX2NwdF9tYm94X2NvbW1vbi5jOjI1MjpFWFBPUlRfU1lNQk9MX05TX0dQTChvdHgyX2NwdF9sZl9yZXNldF9tc2csIFwmIzM0O0NSWVBUT19ERVZfT0NURU9OVFgyX0NQVFwmIzM0Oyk7XG5kcml2ZXJzL2NyeXB0by9tYXJ2ZWxsL29jdGVvbnR4Mi9vdHgyX2NwdF9tYm94X2NvbW1vbi5jLTI1My1cbmRyaXZlcnMvY3J5cHRvL21hcnZlbGwvb2N0ZW9udHgyL290eDJfY3B0X21ib3hfY29tbW9uLmM9MjU0PWludCBvdHgyX2NwdF9sbXRzdF90Ymxfc2V0dXBfbXNnKHN0cnVjdCBvdHgyX2NwdGxmc19pbmZvICpsZnMpXG4tLVxuZHJpdmVycy9jcnlwdG8vbWFydmVsbC9vY3Rlb250eDIvb3R4Ml9jcHRfbWJveF9jb21tb24uYy0yNzYtfVxuZHJpdmVycy9jcnlwdG8vbWFydmVsbC9vY3Rlb250eDIvb3R4Ml9jcHRfbWJveF9jb21tb24uYzoyNzc6RVhQT1JUX1NZTUJPTF9OU19HUEwob3R4Ml9jcHRfbG10c3RfdGJsX3NldHVwX21zZywgXCYjMzQ7Q1JZUFRPX0RFVl9PQ1RFT05UWDJfQ1BUXCYjMzQ7KTtcbi0tXG5kcml2ZXJzL2NyeXB0by9tYXJ2ZWxsL29jdGVvbnR4Mi9vdHgyX2NwdGxmLmM9Mjc0PXZvaWQgb3R4Ml9jcHRsZl91bnJlZ2lzdGVyX21pc2NfaW50ZXJydXB0cyhzdHJ1Y3Qgb3R4Ml9jcHRsZnNfaW5mbyAqbGZzKVxuLS1cbmRyaXZlcnMvY3J5cHRvL21hcnZlbGwvb2N0ZW9udHgyL290eDJfY3B0bGYuYy0yOTAtfVxuZHJpdmVycy9jcnlwdG8vbWFydmVsbC9vY3Rlb250eDIvb3R4Ml9jcHRsZi5jOjI5MTpFWFBPUlRfU1lNQk9MX05TX0dQTChvdHgyX2NwdGxmX3VucmVnaXN0ZXJfbWlzY19pbnRlcnJ1cHRzLCBcJiMzNDtDUllQVE9fREVWX09DVEVPTlRYMl9DUFRcJiMzNDspO1xuZHJpdmVycy9jcnlwdG8vbWFydmVsbC9vY3Rlb250eDIvb3R4Ml9jcHRsZi5jLTI5Mi1cbmRyaXZlcnMvY3J5cHRvL21hcnZlbGwvb2N0ZW9udHgyL290eDJfY3B0bGYuYz0yOTM9dm9pZCBvdHgyX2NwdGxmX3VucmVnaXN0ZXJfZG9uZV9pbnRlcnJ1cHRzKHN0cnVjdCBvdHgyX2NwdGxmc19pbmZvICpsZnMpXG4tLVxuZHJpdmVycy9jcnlwdG8vbWFydmVsbC9vY3Rlb250eDIvb3R4Ml9jcHRsZi5jLTMwOS19XG5kcml2ZXJzL2NyeXB0by9tYXJ2ZWxsL29jdGVvbnR4Mi9vdHgyX2NwdGxmLmM6MzEwOkVYUE9SVF9TWU1CT0xfTlNfR1BMKG90eDJfY3B0bGZfdW5yZWdpc3Rlcl9kb25lX2ludGVycnVwdHMsIFwmIzM0O0NSWVBUT19ERVZfT0NURU9OVFgyX0NQVFwmIzM0Oyk7XG5kcml2ZXJzL2NyeXB0by9tYXJ2ZWxsL29jdGVvbnR4Mi9vdHgyX2NwdGxmLmMtMzExLVxuLS1cbmRyaXZlcnMvY3J5cHRvL21hcnZlbGwvb2N0ZW9udHgyL290eDJfY3B0bGYuYz0zMzE9aW50IG90eDJfY3B0bGZfcmVnaXN0ZXJfbWlzY19pbnRlcnJ1cHRzKHN0cnVjdCBvdHgyX2NwdGxmc19pbmZvICpsZnMpXG4tLVxuZHJpdmVycy9jcnlwdG8vbWFydmVsbC9vY3Rlb250eDIvb3R4Ml9jcHRsZi5jLTM1MS19XG5kcml2ZXJzL2NyeXB0by9tYXJ2ZWxsL29jdGVvbnR4Mi9vdHgyX2NwdGxmLmM6MzUyOkVYUE9SVF9TWU1CT0xfTlNfR1BMKG90eDJfY3B0bGZfcmVnaXN0ZXJfbWlzY19pbnRlcnJ1cHRzLCBcJiMzNDtDUllQVE9fREVWX09DVEVPTlRYMl9DUFRcJiMzNDspO1xuZHJpdmVycy9jcnlwdG8vbWFydmVsbC9vY3Rlb250eDIvb3R4Ml9jcHRsZi5jLTM1My1cbmRyaXZlcnMvY3J5cHRvL21hcnZlbGwvb2N0ZW9udHgyL290eDJfY3B0bGYuYz0zNTQ9aW50IG90eDJfY3B0bGZfcmVnaXN0ZXJfZG9uZV9pbnRlcnJ1cHRzKHN0cnVjdCBvdHgyX2NwdGxmc19pbmZvICpsZnMpXG4tLVxuZHJpdmVycy9jcnlwdG8vbWFydmVsbC9vY3Rlb250eDIvb3R4Ml9jcHRsZi5jLTM3NC19XG5kcml2ZXJzL2NyeXB0by9tYXJ2ZWxsL29jdGVvbnR4Mi9vdHgyX2NwdGxmLmM6Mzc1OkVYUE9SVF9TWU1CT0xfTlNfR1BMKG90eDJfY3B0bGZfcmVnaXN0ZXJfZG9uZV9pbnRlcnJ1cHRzLCBcJiMzNDtDUllQVE9fREVWX09DVEVPTlRYMl9DUFRcJiMzNDspO1xuZHJpdmVycy9jcnlwdG8vbWFydmVsbC9vY3Rlb250eDIvb3R4Ml9jcHRsZi5jLTM3Ni1cbmRyaXZlcnMvY3J5cHRvL21hcnZlbGwvb2N0ZW9udHgyL290eDJfY3B0bGYuYz0zNzc9dm9pZCBvdHgyX2NwdGxmX2ZyZWVfaXJxc19hZmZpbml0eShzdHJ1Y3Qgb3R4Ml9jcHRsZnNfaW5mbyAqbGZzKVxuLS1cbmRyaXZlcnMvY3J5cHRvL21hcnZlbGwvb2N0ZW9udHgyL290eDJfY3B0bGYuYy0zODgtfVxuZHJpdmVycy9jcnlwdG8vbWFydmVsbC9vY3Rlb250eDIvb3R4Ml9jcHRsZi5jOjM4OTpFWFBPUlRfU1lNQk9MX05TX0dQTChvdHgyX2NwdGxmX2ZyZWVfaXJxc19hZmZpbml0eSwgXCYjMzQ7Q1JZUFRPX0RFVl9PQ1RFT05UWDJfQ1BUXCYjMzQ7KTtcbmRyaXZlcnMvY3J5cHRvL21hcnZlbGwvb2N0ZW9udHgyL290eDJfY3B0bGYuYy0zOTAtXG5kcml2ZXJzL2NyeXB0by9tYXJ2ZWxsL29jdGVvbnR4Mi9vdHgyX2NwdGxmLmM9MzkxPWludCBvdHgyX2NwdGxmX3NldF9pcnFzX2FmZmluaXR5KHN0cnVjdCBvdHgyX2NwdGxmc19pbmZvICpsZnMpXG4tLVxuZHJpdmVycy9jcnlwdG8vbWFydmVsbC9vY3Rlb250eDIvb3R4Ml9jcHRsZi5jLTQyMS19XG5kcml2ZXJzL2NyeXB0by9tYXJ2ZWxsL29jdGVvbnR4Mi9vdHgyX2NwdGxmLmM6NDIyOkVYUE9SVF9TWU1CT0xfTlNfR1BMKG90eDJfY3B0bGZfc2V0X2lycXNfYWZmaW5pdHksIFwmIzM0O0NSWVBUT19ERVZfT0NURU9OVFgyX0NQVFwmIzM0Oyk7XG5kcml2ZXJzL2NyeXB0by9tYXJ2ZWxsL29jdGVvbnR4Mi9vdHgyX2NwdGxmLmMtNDIzLVxuZHJpdmVycy9jcnlwdG8vbWFydmVsbC9vY3Rlb250eDIvb3R4Ml9jcHRsZi5jPTQyND1pbnQgb3R4Ml9jcHRsZl9pbml0KHN0cnVjdCBvdHgyX2NwdGxmc19pbmZvICpsZnMsIHU4IGVuZ19ncnBfbWFzaywgaW50IHByaSxcbi0tXG5kcml2ZXJzL2NyeXB0by9tYXJ2ZWxsL29jdGVvbnR4Mi9vdHgyX2NwdGxmLmMtNDgxLX1cbmRyaXZlcnMvY3J5cHRvL21hcnZlbGwvb2N0ZW9udHgyL290eDJfY3B0bGYuYzo0ODI6RVhQT1JUX1NZTUJPTF9OU19HUEwob3R4Ml9jcHRsZl9pbml0LCBcJiMzNDtDUllQVE9fREVWX09DVEVPTlRYMl9DUFRcJiMzNDspO1xuZHJpdmVycy9jcnlwdG8vbWFydmVsbC9vY3Rlb250eDIvb3R4Ml9jcHRsZi5jLTQ4My1cbmRyaXZlcnMvY3J5cHRvL21hcnZlbGwvb2N0ZW9udHgyL290eDJfY3B0bGYuYz00ODQ9dm9pZCBvdHgyX2NwdGxmX3NodXRkb3duKHN0cnVjdCBvdHgyX2NwdGxmc19pbmZvICpsZnMpXG4tLVxuZHJpdmVycy9jcnlwdG8vbWFydmVsbC9vY3Rlb250eDIvb3R4Ml9jcHRsZi5jLTQ5My19XG5kcml2ZXJzL2NyeXB0by9tYXJ2ZWxsL29jdGVvbnR4Mi9vdHgyX2NwdGxmLmM6NDk0OkVYUE9SVF9TWU1CT0xfTlNfR1BMKG90eDJfY3B0bGZfc2h1dGRvd24sIFwmIzM0O0NSWVBUT19ERVZfT0NURU9OVFgyX0NQVFwmIzM0Oyk7XG5kcml2ZXJzL2NyeXB0by9tYXJ2ZWxsL29jdGVvbnR4Mi9vdHgyX2NwdGxmLmMtNDk1LVxuLS1cbmRyaXZlcnMvY3J5cHRvL21hcnZlbGwvb2N0ZW9udHgyL290eDJfY3B0cGZfbWFpbi5jPTg3Nz1tb2R1bGVfcGNpX2RyaXZlcihvdHgyX2NwdF9wY2lfZHJpdmVyKTtcbmRyaXZlcnMvY3J5cHRvL21hcnZlbGwvb2N0ZW9udHgyL290eDJfY3B0cGZfbWFpbi5jLTg3OC1cbmRyaXZlcnMvY3J5cHRvL21hcnZlbGwvb2N0ZW9udHgyL290eDJfY3B0cGZfbWFpbi5jOjg3OTpNT0RVTEVfSU1QT1JUX05TKFwmIzM0O0NSWVBUT19ERVZfT0NURU9OVFgyX0NQVFwmIzM0Oyk7XG5kcml2ZXJzL2NyeXB0by9tYXJ2ZWxsL29jdGVvbnR4Mi9vdHgyX2NwdHBmX21haW4uYy04ODAtXG4tLVxuZHJpdmVycy9jcnlwdG8vbWFydmVsbC9vY3Rlb250eDIvb3R4Ml9jcHR2Zl9tYWluLmM9NDc2PW1vZHVsZV9wY2lfZHJpdmVyKG90eDJfY3B0dmZfcGNpX2RyaXZlcik7XG5kcml2ZXJzL2NyeXB0by9tYXJ2ZWxsL29jdGVvbnR4Mi9vdHgyX2NwdHZmX21haW4uYy00NzctXG5kcml2ZXJzL2NyeXB0by9tYXJ2ZWxsL29jdGVvbnR4Mi9vdHgyX2NwdHZmX21haW4uYzo0Nzg6TU9EVUxFX0lNUE9SVF9OUyhcJiMzNDtDUllQVE9fREVWX09DVEVPTlRYMl9DUFRcJiMzNDspO1xuZHJpdmVycy9jcnlwdG8vbWFydmVsbC9vY3Rlb250eDIvb3R4Ml9jcHR2Zl9tYWluLmMtNDc5LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL0tjb25maWctNS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL0tjb25maWc6Njpjb25maWcgT0NURU9OVFgyX01CT1hcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL0tjb25maWctNy1cdHRyaXN0YXRlXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9LY29uZmlnLTgtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9LY29uZmlnOjk6Y29uZmlnIE9DVEVPTlRYMl9BRlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvS2NvbmZpZy0xMC1cdHRyaXN0YXRlIFwmIzM0O01hcnZlbGwgT2N0ZW9uVFgyIFJWVSBBZG1pbiBGdW5jdGlvbiBkcml2ZXJcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL0tjb25maWc6MTE6XHRzZWxlY3QgT0NURU9OVFgyX01CT1hcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL0tjb25maWctMTItXHRzZWxlY3QgTkVUX0RFVkxJTktcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9LY29uZmlnPTIyPWNvbmZpZyBORENfRElTX0RZTkFNSUNfQ0FDSElOR1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvS2NvbmZpZy0yMy1cdGJvb2wgXCYjMzQ7RGlzYWJsZSBjYWNoaW5nIG9mIGR5bmFtaWMgZW50cmllcyBpbiBORENcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL0tjb25maWc6MjQ6XHRkZXBlbmRzIG9uIE9DVEVPTlRYMl9BRlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvS2NvbmZpZy0yNS1cdGRlZmF1bHQgblxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL0tjb25maWctMzAtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9LY29uZmlnOjMxOmNvbmZpZyBPQ1RFT05UWDJfUEZcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL0tjb25maWctMzItXHR0cmlzdGF0ZSBcJiMzNDtNYXJ2ZWxsIE9jdGVvblRYMiBOSUMgUGh5c2ljYWwgRnVuY3Rpb24gZHJpdmVyXCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9LY29uZmlnOjMzOlx0c2VsZWN0IE9DVEVPTlRYMl9NQk9YXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9LY29uZmlnLTM0LVx0c2VsZWN0IE5FVF9ERVZMSU5LXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvS2NvbmZpZy00NC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL0tjb25maWc6NDU6Y29uZmlnIE9DVEVPTlRYMl9WRlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvS2NvbmZpZy00Ni1cdHRyaXN0YXRlIFwmIzM0O01hcnZlbGwgT2N0ZW9uVFgyIE5JQyBWaXJ0dWFsIEZ1bmN0aW9uIGRyaXZlclwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvS2NvbmZpZzo0NzpcdGRlcGVuZHMgb24gT0NURU9OVFgyX1BGXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9LY29uZmlnLTQ4LVx0aGVscFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL0tjb25maWc9NTE9Y29uZmlnIFJWVV9FU1dJVENIXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9LY29uZmlnLTUyLVx0dHJpc3RhdGUgXCYjMzQ7TWFydmVsbCBSVlUgRS1Td2l0Y2ggc3VwcG9ydFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvS2NvbmZpZzo1MzpcdGRlcGVuZHMgb24gT0NURU9OVFgyX1BGXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9LY29uZmlnLTU0LVx0ZGVmYXVsdCBtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvTWFrZWZpbGUtNS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL01ha2VmaWxlOjY6b2JqLSQoQ09ORklHX09DVEVPTlRYMl9NQk9YKSAmIzQzOz0gYWYvXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9NYWtlZmlsZTo3Om9iai0kKENPTkZJR19PQ1RFT05UWDJfQUYpICYjNDM7PSBhZi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL01ha2VmaWxlOjg6b2JqLSQoQ09ORklHX09DVEVPTlRYMl9QRikgJiM0Mzs9IG5pYy9cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9NYWtlZmlsZT02PWNjZmxhZ3MteSAmIzQzOz0gLUkkKHNyYylcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL01ha2VmaWxlOjc6b2JqLSQoQ09ORklHX09DVEVPTlRYMl9NQk9YKSAmIzQzOz0gcnZ1X21ib3gub1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvTWFrZWZpbGU6ODpvYmotJChDT05GSUdfT0NURU9OVFgyX0FGKSAmIzQzOz0gcnZ1X2FmLm9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL01ha2VmaWxlLTktXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY2d4LmM9NjY9c3RhdGljIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkIGNneF9pZF90YWJsZVtdID0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY2d4LmM6Njc6XHR7IFBDSV9ERVZJQ0UoUENJX1ZFTkRPUl9JRF9DQVZJVU0sIFBDSV9ERVZJRF9PQ1RFT05UWDJfQ0dYKSB9LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY2d4LmMtNjgtXHR7IFBDSV9ERVZJQ0VfU1VCKFBDSV9WRU5ET1JfSURfQ0FWSVVNLCBQQ0lfREVWSURfQ04xMEtfUlBNLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL2NneC5oLTE1LSAvKiBQQ0kgZGV2aWNlIElEcyAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY2d4Lmg6MTY6I2RlZmluZVx0UENJX0RFVklEX09DVEVPTlRYMl9DR1hcdFx0MHhBMDU5XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jZ3guaC0xNy1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jbjIway9kZWJ1Z2ZzLmM9MTU0PURFRklORV9TSE9XX0FUVFJJQlVURShucGNfbWNhbV9sYXlvdXQpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY24yMGsvZGVidWdmcy5jLTE1NS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL2NuMjBrL2RlYnVnZnMuYzoxNTY6I2RlZmluZSBfX09DVEVPTlRYMl9ERUJVR0ZTX0FUVFJJQlVURV9GT1BTKF9fbmFtZSlcdFx0XHRcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY24yMGsvZGVidWdmcy5jLTE1Ny1zdGF0aWMgY29uc3Qgc3RydWN0IGZpbGVfb3BlcmF0aW9ucyBfX25hbWUgIyMgX2ZvcHMgPSB7XHRcdFx0XFxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jbjIway9kZWJ1Z2ZzLmMtMTY0LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY24yMGsvZGVidWdmcy5jOjE2NTojZGVmaW5lIERFRklORV9PQ1RFT05UWDJfREVCVUdGU19BVFRSSUJVVEVfV0lUSF9TSVpFKF9fbmFtZSwgX19zaXplKVx0XHRcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY24yMGsvZGVidWdmcy5jLTE2Ni1zdGF0aWMgaW50IF9fbmFtZSAjIyBfb3BlbihzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmlsZSlcdFx0XFxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jbjIway9kZWJ1Z2ZzLmMtMTcwLX1cdFx0XHRcdFx0XHRcdFx0XHRcdFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jbjIway9kZWJ1Z2ZzLmM6MTcxOl9fT0NURU9OVFgyX0RFQlVHRlNfQVRUUklCVVRFX0ZPUFMoX19uYW1lKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY24yMGsvZGVidWdmcy5jLTE3Mi1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jbjIway9kZWJ1Z2ZzLmM9MTgxPXN0YXRpYyBpbnQgbnBjX21jYW1fZHN0YXRzX3Nob3coc3RydWN0IHNlcV9maWxlICpzLCB2b2lkICp1bnVzZWQpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY24yMGsvZGVidWdmcy5jLTI0Mi0jZGVmaW5lIFRPVEFMX1NaIChNQVhfTlVNX0JBTktTICogTUFYX05VTV9TVUJfQkFOS1MgKiBNQVhfU1VCQkFOS19ERVBUSCAqIDY0KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY24yMGsvZGVidWdmcy5jOjI0MzpERUZJTkVfT0NURU9OVFgyX0RFQlVHRlNfQVRUUklCVVRFX1dJVEhfU0laRShucGNfbWNhbV9kc3RhdHMsIFRPVEFMX1NaKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL2NuMjBrL2RlYnVnZnMuYy0yNDQtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jbjIway9kZWJ1Z2ZzLmM9MjQ1PXN0YXRpYyBpbnQgbnBjX21jYW1fbWlzbWF0Y2hfc2hvdyhzdHJ1Y3Qgc2VxX2ZpbGUgKnMsIHZvaWQgKnVudXNlZClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jbjIway9kZWJ1Z2ZzLmMtMjg0LS8qIFwmIzM0OyV1XFx0JWRcXHQldVxcblwmIzM0OyBuZWVkcyBsZXNzIHRoYW4gNjQgY2hhcmFjdGVycyB0byBwcmludC4gKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL2NuMjBrL2RlYnVnZnMuYzoyODU6REVGSU5FX09DVEVPTlRYMl9ERUJVR0ZTX0FUVFJJQlVURV9XSVRIX1NJWkUobnBjX21jYW1fbWlzbWF0Y2gsIFRPVEFMX1NaKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL2NuMjBrL2RlYnVnZnMuYy0yODYtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcHRwLmMtMjAtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9wdHAuYzoyMTojZGVmaW5lIFBDSV9ERVZJRF9PQ1RFT05UWDJfUFRQXHRcdFx0MHhBMDBDXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9wdHAuYy0yMi0jZGVmaW5lIFBDSV9TVUJTWVNfREVWSURfT0NUWDJfOTh4eF9QVFBcdFx0MHhCMTAwXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcHRwLmMtMjctI2RlZmluZSBQQ0lfU1VCU1lTX0RFVklEX09DVFgyXzk1WFhPX1BUUFx0MHhCNjAwXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9wdHAuYzoyODojZGVmaW5lIFBDSV9ERVZJRF9PQ1RFT05UWDJfUlNUXHRcdFx0MHhBMDg1XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9wdHAuYy0yOS0jZGVmaW5lIFBDSV9ERVZJRF9DTjEwS19QVFBcdFx0XHQweEEwOUVcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9wdHAuYz01ODk9c3RhdGljIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkIHB0cF9pZF90YWJsZVtdID0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcHRwLmM6NTkwOlx0eyBQQ0lfREVWSUNFX1NVQihQQ0lfVkVORE9SX0lEX0NBVklVTSwgUENJX0RFVklEX09DVEVPTlRYMl9QVFAsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9wdHAuYy01OTEtXHRcdFx0IFBDSV9WRU5ET1JfSURfQ0FWSVVNLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcHRwLmMtNTkyLVx0XHRcdCBQQ0lfU1VCU1lTX0RFVklEX09DVFgyXzk4eHhfUFRQKSB9LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcHRwLmM6NTkzOlx0eyBQQ0lfREVWSUNFX1NVQihQQ0lfVkVORE9SX0lEX0NBVklVTSwgUENJX0RFVklEX09DVEVPTlRYMl9QVFAsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9wdHAuYy01OTQtXHRcdFx0IFBDSV9WRU5ET1JfSURfQ0FWSVVNLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcHRwLmMtNTk1LVx0XHRcdCBQQ0lfU1VCU1lTX0RFVklEX09DVFgyXzk2WFhfUFRQKSB9LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcHRwLmM6NTk2Olx0eyBQQ0lfREVWSUNFX1NVQihQQ0lfVkVORE9SX0lEX0NBVklVTSwgUENJX0RFVklEX09DVEVPTlRYMl9QVFAsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9wdHAuYy01OTctXHRcdFx0IFBDSV9WRU5ET1JfSURfQ0FWSVVNLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcHRwLmMtNTk4LVx0XHRcdCBQQ0lfU1VCU1lTX0RFVklEX09DVFgyXzk1WFhfUFRQKSB9LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcHRwLmM6NTk5Olx0eyBQQ0lfREVWSUNFX1NVQihQQ0lfVkVORE9SX0lEX0NBVklVTSwgUENJX0RFVklEX09DVEVPTlRYMl9QVFAsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9wdHAuYy02MDAtXHRcdFx0IFBDSV9WRU5ET1JfSURfQ0FWSVVNLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcHRwLmMtNjAxLVx0XHRcdCBQQ0lfU1VCU1lTX0RFVklEX09DVFgyXzk1WFhOX1BUUCkgfSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3B0cC5jOjYwMjpcdHsgUENJX0RFVklDRV9TVUIoUENJX1ZFTkRPUl9JRF9DQVZJVU0sIFBDSV9ERVZJRF9PQ1RFT05UWDJfUFRQLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcHRwLmMtNjAzLVx0XHRcdCBQQ0lfVkVORE9SX0lEX0NBVklVTSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3B0cC5jLTYwNC1cdFx0XHQgUENJX1NVQlNZU19ERVZJRF9PQ1RYMl85NU1NX1BUUCkgfSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3B0cC5jOjYwNTpcdHsgUENJX0RFVklDRV9TVUIoUENJX1ZFTkRPUl9JRF9DQVZJVU0sIFBDSV9ERVZJRF9PQ1RFT05UWDJfUFRQLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcHRwLmMtNjA2LVx0XHRcdCBQQ0lfVkVORE9SX0lEX0NBVklVTSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYz00ND1zdGF0aWMgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgcnZ1X2lkX3RhYmxlW10gPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYzo0NTpcdHsgUENJX0RFVklDRShQQ0lfVkVORE9SX0lEX0NBVklVTSwgUENJX0RFVklEX09DVEVPTlRYMl9SVlVfQUYpIH0sXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYy00Ni1cdHsgMCwgfSAgLyogZW5kIG9mIHRhYmxlICovXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmM9OTI3PXN0YXRpYyB2b2lkIHJ2dV9nZXRfbGJrX2J1ZnNpemUoc3RydWN0IHJ2dSAqcnZ1KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jLTkzMy1cdHBkZXYgPSBwY2lfZ2V0X2RldmljZShQQ0lfVkVORE9SX0lEX0NBVklVTSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jOjkzNDpcdFx0XHQgICAgICBQQ0lfREVWSURfT0NURU9OVFgyX0xCSywgcGRldik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYy05MzUtXHRpZiAoIXBkZXYpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmM9MzQ0Nz1pbnQgcnZ1X2dldF9udW1fbGJrX2NoYW5zKHZvaWQpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmMtMzQ1Mi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jOjM0NTM6XHRwZGV2ID0gcGNpX2dldF9kZXZpY2UoUENJX1ZFTkRPUl9JRF9DQVZJVU0sIFBDSV9ERVZJRF9PQ1RFT05UWDJfTEJLLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmMtMzQ1NC1cdFx0XHQgICAgICBOVUxMKTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYy0zNDcwLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmM6MzQ3MTojZGVmaW5lIFBDSV9ERVZJRF9PQ1RFT05UWDJfUlZVX0FGVkZcdDB4QTBGOFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmMtMzQ3Mi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jPTM0NzM9c3RhdGljIGludCBydnVfZW5hYmxlX3NyaW92KHN0cnVjdCBydnUgKnJ2dSlcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYy0zNDk0LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmM6MzQ5NTpcdGlmIChydnUtXHUwMDNldmZfZGV2aWQgPT0gUENJX0RFVklEX09DVEVPTlRYMl9SVlVfQUZWRikge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmMtMzQ5Ni1cdFx0Y2hhbnMgPSBydnVfZ2V0X251bV9sYmtfY2hhbnMoKTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuaC0yMy0vKiBQQ0kgZGV2aWNlIElEcyAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1Lmg6MjQ6I2RlZmluZVx0UENJX0RFVklEX09DVEVPTlRYMl9SVlVfQUZcdFx0MHhBMDY1XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuaDoyNTojZGVmaW5lXHRQQ0lfREVWSURfT0NURU9OVFgyX0xCS1x0XHRcdDB4QTA2MVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmgtMjYtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2NuMTBrLmM9MzkyPXN0YXRpYyB2b2lkIHJ2dV9sYmtfc2V0X2NoYW5uZWxzKHN0cnVjdCBydnUgKnJ2dSlcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfY24xMGsuYy00MTUtXHRcdHBkZXYgPSBwY2lfZ2V0X2RldmljZShQQ0lfVkVORE9SX0lEX0NBVklVTSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9jbjEway5jOjQxNjpcdFx0XHRcdCAgICAgIFBDSV9ERVZJRF9PQ1RFT05UWDJfTEJLLCBwZGV2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9jbjEway5jLTQxNy1cdFx0aWYgKCFwZGV2KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9kZWJ1Z2ZzLmM9MjgwNj1zdGF0aWMgdm9pZCBydnVfZGJnX25wYV9pbml0KHN0cnVjdCBydnUgKnJ2dSlcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGVidWdmcy5jLTI4MjUtLyogUGVyLWxtYWMgQ0dYIGRlYnVnZnMgZmlsZXMgbmVlZCBib3RoIFJWVSBhbmQgQ0dYIGhhbmRsZTsgaW5vZGUtXHUwMDNlaV9wcml2YXRlXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGVidWdmcy5jOjI4MjY6ICogcG9pbnRzIGhlcmUgc28gc2VxX2ZpbGUgb3BzIGF2b2lkIHBjaV9nZXRfZGV2aWNlKFBDSV9ERVZJRF9PQ1RFT05UWDJfUlZVX0FGKS5cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9kZWJ1Z2ZzLmMtMjgyNy0gKi9cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvTWFrZWZpbGUtNS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9NYWtlZmlsZTo2Om9iai0kKENPTkZJR19PQ1RFT05UWDJfUEYpICYjNDM7PSBydnVfbmljcGYubyBvdHgyX3B0cC5vXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvTWFrZWZpbGU6NzpvYmotJChDT05GSUdfT0NURU9OVFgyX1ZGKSAmIzQzOz0gcnZ1X25pY3ZmLm8gb3R4Ml9wdHAub1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL01ha2VmaWxlLTgtb2JqLSQoQ09ORklHX1JWVV9FU1dJVENIKSAmIzQzOz0gcnZ1X3JlcC5vXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfY29tbW9uLmgtNDItLyogUENJIGRldmljZSBJRHMgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX2NvbW1vbi5oOjQzOiNkZWZpbmUgUENJX0RFVklEX09DVEVPTlRYMl9SVlVfUEYgICAgICAgICAgICAgIDB4QTA2M1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfY29tbW9uLmg6NDQ6I2RlZmluZSBQQ0lfREVWSURfT0NURU9OVFgyX1JWVV9WRlx0XHQweEEwNjRcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX2NvbW1vbi5oOjQ1OiNkZWZpbmUgUENJX0RFVklEX09DVEVPTlRYMl9SVlVfQUZWRlx0XHQweEEwRjhcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX2NvbW1vbi5oLTQ2LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX2NvbW1vbi5oLTUwLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfY29tbW9uLmg6NTE6I2RlZmluZSBQQ0lfREVWSURfT0NURU9OVFgyX1NEUF9SRVBcdFx0MHhBMEY3XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml9jb21tb24uaC01Mi1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml9jb21tb24uaD01OTc9c3RhdGljIGlubGluZSBib29sIGlzX290eDJfbGJrdmYoc3RydWN0IHBjaV9kZXYgKnBkZXYpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml9jb21tb24uaC01OTgte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfY29tbW9uLmg6NTk5Olx0cmV0dXJuIChwZGV2LVx1MDAzZWRldmljZSA9PSBQQ0lfREVWSURfT0NURU9OVFgyX1JWVV9BRlZGKSB8fFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfY29tbW9uLmgtNjAwLVx0XHQocGRldi1cdTAwM2VkZXZpY2UgPT0gUENJX0RFVklEX1JWVV9SRVApO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX2NvbW1vbi5oPTYxNT1zdGF0aWMgaW5saW5lIGJvb2wgaXNfb3R4Ml9zZHBfcmVwKHN0cnVjdCBwY2lfZGV2ICpwZGV2KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfY29tbW9uLmgtNjE2LXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX2NvbW1vbi5oOjYxNzpcdHJldHVybiBwZGV2LVx1MDAzZWRldmljZSA9PSBQQ0lfREVWSURfT0NURU9OVFgyX1NEUF9SRVA7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml9jb21tb24uaC02MTgtfVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX3BmLmM9MzY9c3RhdGljIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkIG90eDJfcGZfaWRfdGFibGVbXSA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX3BmLmM6Mzc6XHR7IFBDSV9ERVZJQ0UoUENJX1ZFTkRPUl9JRF9DQVZJVU0sIFBDSV9ERVZJRF9PQ1RFT05UWDJfUlZVX1BGKSB9LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfcGYuYy0zOC1cdHsgMCwgfSAgLyogZW5kIG9mIHRhYmxlICovXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfdmYuYz0yMj1zdGF0aWMgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgb3R4Ml92Zl9pZF90YWJsZVtdID0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfdmYuYzoyMzpcdHsgUENJX0RFVklDRShQQ0lfVkVORE9SX0lEX0NBVklVTSwgUENJX0RFVklEX09DVEVPTlRYMl9SVlVfQUZWRikgfSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX3ZmLmM6MjQ6XHR7IFBDSV9ERVZJQ0UoUENJX1ZFTkRPUl9JRF9DQVZJVU0sIFBDSV9ERVZJRF9PQ1RFT05UWDJfUlZVX1ZGKSB9LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfdmYuYzoyNTpcdHsgUENJX0RFVklDRShQQ0lfVkVORE9SX0lEX0NBVklVTSwgUENJX0RFVklEX09DVEVPTlRYMl9TRFBfUkVQKSB9LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfdmYuYy0yNi1cdHsgfVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE5LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8xMyAxNDozMTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuOC1mbGFzaDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzMjYxMgoJCQkJCQkJb3V0cHV0OiAxNzAKCQkJCQkJCXRob3VnaHRzOiA1MjUKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqV29ydGhGdXp6aW5nIEFzc2Vzc21lbnQ6IE1hcnZlbGwgT2N0ZW9uVFgyIFJWVSBEcml2ZXIqKgoKT2theSwgbGV0JiMzOTtzIGJyZWFrIHRoaXMgZG93bi4gVGhlIHBhdGNoIGlzIGluIGBkcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9tY3NfcnZ1X2lmLmNgLCBzcGVjaWZpY2FsbHkgaW4gdGhlIGBydnVfbWNzX3B0cF9jZmdgIGZ1bmN0aW9uLiBJdCYjMzk7cyBhIHNpbXBsZSBOVUxMIGNoZWNrIOKAkyBhZGRpbmcgYG1jc19nZXRfcGRhdGEocnBtX2lkKWAgdG8gcHJldmVudCBhIHBvdGVudGlhbCBjcmFzaC4gTm8gZ3JvdW5kYnJlYWtpbmcgZnVuY3Rpb25hbGl0eSBoZXJlLCBqdXN0IGRlZmVuc2l2ZSBwcm9ncmFtbWluZy4KClRoZSBjcml0aWNhbCBwaWVjZSwgaG93ZXZlciwgaXMgdGhlIGhhcmR3YXJlLiBUaGlzIGlzIHRoZSBSVlUgQWRtaW4gRnVuY3Rpb24gZHJpdmVyIGZvciBNYXJ2ZWxsIE9jdGVvblRYMiBhbmQgQ04xMEsgaGFyZHdhcmUuIFdlJiMzOTtyZSB0YWxraW5nIGFib3V0ICp2ZW5kb3Itc3BlY2lmaWMqIHBoeXNpY2FsIGhhcmR3YXJlIOKAkyBTbWFydE5JQ3MsIG5ldHdvcmsgU29DcywgdGhhdCBzb3J0IG9mIHRoaW5nLiBUaGUgUENJIElEcyBjb25maXJtIHRoaXM6IGBQQ0lfVkVORE9SX0lEX0NBVklVTWAsIGBQQ0lfREVWSURfT0NURU9OVFgyX1JWVV9BRmAsIGBQQ0lfREVWSURfQ04xMEtfTUNTYC4KCk5vdywgdGhlIGluc3RydWN0aW9ucyBmbGFnZ2VkIHRoaXMgYXMgYSBwb3RlbnRpYWwgbmVnYXRpdmUgY2FzZS4gTGV0IG1lIGNoZWNrLi4uIFllcCwgc3RydWN0dXJhbGx5IHVucmVhY2hhYmxlIGhhcmR3YXJlIGlzIGEgbm8tZ28gZm9yIGZ1enppbmcuIFdlJiMzOTtyZSB0YWxraW5nIGFib3V0IHRoaW5ncyBsaWtlIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaGVzLCBTbWFydE5JQ3MsIEdQVSBkcml2ZXJzIOKAkyB0aGUgbGlzdCBnb2VzIG9uLiBBbmQgc3BlY2lmaWNhbGx5LCB0aGUgZXhhbXBsZSBnaXZlbiBpcyBkcml2ZXJzICpyZXF1aXJpbmcgcGh5c2ljYWwgQVNJQy9QQ0llIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VKi4gQmluZ28uIFRoaXMgKmlzKiB0aGF0IGNhc2UuIFRoZSBNYXJ2ZWxsIE9jdGVvblRYMiBSVlUgcmVxdWlyZXMgcmVhbCwgcGh5c2ljYWwgTWFydmVsbCBDYXZpdW0vT2N0ZW9uVFgyIGhhcmR3YXJlLCBvciBzb21lIHZlcnkgc3BlY2lhbGl6ZWQgZW11bGF0aW9uLiBTdGFuZGFyZCBRRU1VIG9yIEdDRSBhcmUgdXNlbGVzcyBoZXJlLgoKVGhlcmVmb3JlLCBiZWNhdXNlIHRoaXMgY29kZSBpcyB0aWVkIHRvIHNwZWNpZmljIGhhcmR3YXJlIHRoYXQmIzM5O3Mgbm90IGFjY2Vzc2libGUgaW4gYSBzdGFuZGFyZCBmdXp6aW5nIHNldHVwLCBgV29ydGhGdXp6aW5nYCBoYXMgdG8gYmUgYGZhbHNlYC4KCkxldCBtZSBxdWlja2x5IHN1bW1hcml6ZSBteSByZWFzb25pbmcgZm9yIHRoZSByZWNvcmQ6CgoqICAgTW9kaWZpZWQgY29kZTogYGRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL21jc19ydnVfaWYuY2AgKE1hcnZlbGwgT2N0ZW9uVFgyIFJWVSBBZG1pbiBGdW5jdGlvbiBkcml2ZXIpLgoqICAgUGF0Y2g6IEFkZHMgYSBOVUxMIGNoZWNrIGluIGBydnVfbWNzX3B0cF9jZmdgLgoqICAgSGFyZHdhcmUgRGVwZW5kZW5jeTogVmVuZG9yLXNwZWNpZmljIFNtYXJ0TklDIC8gbmV0d29yayBTb0MgZHJpdmVyIHRoYXQgcmVxdWlyZXMgcGh5c2ljYWwgTWFydmVsbCBPY3Rlb25UWDIgLyBDTjEwSyBQQ0llIGhhcmR3YXJlLgoqICAgUmVhY2hhYmlsaXR5OiBTdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQgZnV6emluZyBlbnZpcm9ubWVudHMgKFFFTVUvR0NFKSB3aXRob3V0IHNwZWNpYWxpemVkIGVtdWxhdGlvbi4KKiAgIENvbmNsdXNpb246IGBXb3J0aEZ1enppbmcgPSBmYWxzZWAuCgpBbmQgc2luY2UgYFdvcnRoRnV6emluZ2AgaXMgYGZhbHNlYCwgdGhlIGBFbmFibGVDb25maWdzYCBhbmQgYEZvY3VzU3ltYm9sc2Agd2lsbCBiZSBlbXB0eS4gSSBjYW4gc2V0IHRoZSByZXN1bHRzIG5vdy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMTMgMTQ6MzE8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyBgcnZ1X21jc19wdHBfY2ZnKClgIGluIGBkcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9tY3NfcnZ1X2lmLmNgLCBhZGRpbmcgYSBOVUxMIGNoZWNrIGZvciB0aGUgcG9pbnRlciByZXR1cm5lZCBieSBgbWNzX2dldF9wZGF0YSgpYC4gVGhpcyBjb2RlIGlzIHBhcnQgb2YgdGhlIE1hcnZlbGwgT2N0ZW9uVFgyIFJWVSBBZG1pbiBGdW5jdGlvbiBkcml2ZXIsIHdoaWNoIHJlcXVpcmVzIHZlbmRvci1zcGVjaWZpYyBwaHlzaWNhbCBTbWFydE5JQyAvIFNvQyBBU0lDIGhhcmR3YXJlIChDYXZpdW0vTWFydmVsbCBPY3Rlb25UWDIvQ04xMEsgUENJZSBkZXZpY2VzKSBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgUUVNVS4gQ29uc2VxdWVudGx5LCB0aGUgbW9kaWZpZWQgY29kZSBpcyBzdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUgZm9yIHN5emthbGxlciBmdXp6aW5nLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IG51bGwsCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgYHJ2dV9tY3NfcHRwX2NmZygpYCBpbiBgZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvbWNzX3J2dV9pZi5jYCwgYWRkaW5nIGEgTlVMTCBjaGVjayBmb3IgdGhlIHBvaW50ZXIgcmV0dXJuZWQgYnkgYG1jc19nZXRfcGRhdGEoKWAuIFRoaXMgY29kZSBpcyBwYXJ0IG9mIHRoZSBNYXJ2ZWxsIE9jdGVvblRYMiBSVlUgQWRtaW4gRnVuY3Rpb24gZHJpdmVyLCB3aGljaCByZXF1aXJlcyB2ZW5kb3Itc3BlY2lmaWMgcGh5c2ljYWwgU21hcnROSUMgLyBTb0MgQVNJQyBoYXJkd2FyZSAoQ2F2aXVtL01hcnZlbGwgT2N0ZW9uVFgyL0NOMTBLIFBDSWUgZGV2aWNlcykgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIFFFTVUuIENvbnNlcXVlbnRseSwgdGhlIG1vZGlmaWVkIGNvZGUgaXMgc3RydWN0dXJhbGx5IHVucmVhY2hhYmxlIGZvciBzeXprYWxsZXIgZnV6emluZy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjEvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzEzIDE0OjMxPC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5JZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPC90Ym9keT4KCTwvdGFibGU+CgoJPGRpdiBpZD0ibGxtX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5MTE0gQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBUb2tlbnM8L3RoPgoJCQkJCTx0aD5BdmcgVG9rZW5zPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9ImxsbV9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9InRvb2xfc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPlRvb2wgQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0idG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9ImR1cmF0aW9uX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCTxkaXYgaWQ9InRva2VuX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL2pzYXBpIj48L3NjcmlwdD4KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCQlnb29nbGUubG9hZCgidmlzdWFsaXphdGlvbiIsICIxIiwge3BhY2thZ2VzOlsiY29yZWNoYXJ0Il19KTsKCQlnb29nbGUuc2V0T25Mb2FkQ2FsbGJhY2soZHJhd0NoYXJ0cyk7CgoJCWZ1bmN0aW9uIGRyYXdDaGFydHMoKSB7CgkJCWNvbnN0IHJhd0RhdGEgPSBbeyJTdGFydGVkIjoiMjAyNi0wOS0xM1QxNDozMDo1NS42OTcyOTYwMTVaIiwiU2VxIjowLCJOZXN0aW5nIjowLCJUeXBlIjoiZmxvdyIsIk5hbWUiOiJwYXRjaC10cmlhZ2UiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1OTA2NTg4NzQwNCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJLTVNBTlJlYXNvbmluZ1wiOiBcIlwiLFxuICBcIk5lZWRzS01TQU5cIjogZmFsc2UsXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIGBydnVfbWNzX3B0cF9jZmcoKWAgaW4gYGRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL21jc19ydnVfaWYuY2AsIGFkZGluZyBhIE5VTEwgY2hlY2sgZm9yIHRoZSBwb2ludGVyIHJldHVybmVkIGJ5IGBtY3NfZ2V0X3BkYXRhKClgLiBUaGlzIGNvZGUgaXMgcGFydCBvZiB0aGUgTWFydmVsbCBPY3Rlb25UWDIgUlZVIEFkbWluIEZ1bmN0aW9uIGRyaXZlciwgd2hpY2ggcmVxdWlyZXMgdmVuZG9yLXNwZWNpZmljIHBoeXNpY2FsIFNtYXJ0TklDIC8gU29DIEFTSUMgaGFyZHdhcmUgKENhdml1bS9NYXJ2ZWxsIE9jdGVvblRYMi9DTjEwSyBQQ0llIGRldmljZXMpIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBRRU1VLiBDb25zZXF1ZW50bHksIHRoZSBtb2RpZmllZCBjb2RlIGlzIHN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZSBmb3Igc3l6a2FsbGVyIGZ1enppbmcuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOS0xM1QxNDozMDo1NS42OTczMDM5NTVaIiwiU2VxIjoxLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6InJlYWQtcGF0Y2gtZGlmZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjUzMTI4NDA3NSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiUGF0Y2hEaWZmXCI6IFwiY29tbWl0IDkxMzA2NzIxYzcxY2FkOWU3ZmJiNWNjMWFiZTY1YzY1ODk5M2M5ZWJcXG5BdXRob3I6IHN5ei1jbHVzdGVyIFxcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVxcdTAwM2VcXG5EYXRlOiAgIFN1biBTZXAgMTMgMTQ6MzA6NTQgMjAyNiArMDAwMFxcblxcbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcXG5cXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvbWNzX3J2dV9pZi5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvbWNzX3J2dV9pZi5jXFxuaW5kZXggZmNlMjJlMzE0Y2FjMC4uNWUyNGQ0M2Q1ZmM3OSAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9tY3NfcnZ1X2lmLmNcXG4rKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9tY3NfcnZ1X2lmLmNcXG5AQCAtNTAsNiArNTAsOCBAQCB2b2lkIHJ2dV9tY3NfcHRwX2NmZyhzdHJ1Y3QgcnZ1ICpydnUsIHU4IHJwbV9pZCwgdTggbG1hY19pZCwgYm9vbCBlbmEpXFxuIFxcdC8qIENORjEwSy1CICovXFxuIFxcdGlmIChydnUtXFx1MDAzZW1jc19ibGtfY250IFxcdTAwM2UgMSkge1xcbiBcXHRcXHRtY3MgPSBtY3NfZ2V0X3BkYXRhKHJwbV9pZCk7XFxuK1xcdFxcdGlmICghbWNzKVxcbitcXHRcXHRcXHRyZXR1cm47XFxuIFxcdFxcdGNmZyA9IG1jc19yZWdfcmVhZChtY3MsIE1DU1hfUEVYX1JYX1NMQVZFX1BFWF9DT05GSUdVUkFUSU9OKTtcXG4gXFx0XFx0aWYgKGVuYSlcXG4gXFx0XFx0XFx0Y2ZnIHw9IEJJVF9VTEwobG1hY19pZCk7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTEzVDE0OjMwOjU2LjIyOTI2NDUyWiIsIlNlcSI6MiwiTmVzdGluZyI6MSwiVHlwZSI6ImFnZW50IiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiY29yZSIsIkR1cmF0aW9uIjo1ODUzMzkwMzQ5OCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgYHJ2dV9tY3NfcHRwX2NmZygpYCBpbiBgZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvbWNzX3J2dV9pZi5jYCwgYWRkaW5nIGEgTlVMTCBjaGVjayBmb3IgdGhlIHBvaW50ZXIgcmV0dXJuZWQgYnkgYG1jc19nZXRfcGRhdGEoKWAuIFRoaXMgY29kZSBpcyBwYXJ0IG9mIHRoZSBNYXJ2ZWxsIE9jdGVvblRYMiBSVlUgQWRtaW4gRnVuY3Rpb24gZHJpdmVyLCB3aGljaCByZXF1aXJlcyB2ZW5kb3Itc3BlY2lmaWMgcGh5c2ljYWwgU21hcnROSUMgLyBTb0MgQVNJQyBoYXJkd2FyZSAoQ2F2aXVtL01hcnZlbGwgT2N0ZW9uVFgyL0NOMTBLIFBDSWUgZGV2aWNlcykgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIFFFTVUuIENvbnNlcXVlbnRseSwgdGhlIG1vZGlmaWVkIGNvZGUgaXMgc3RydWN0dXJhbGx5IHVucmVhY2hhYmxlIGZvciBzeXprYWxsZXIgZnV6emluZy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyIGFuZCBzZWN1cml0eSBlbmdpbmVlci5cbllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZXZhbHVhdGUgd2hldGhlciBpdCB3YXJyYW50cyBmdXp6aW5nIHdpdGggc3l6a2FsbGVyLlxuXG5JTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW5cbnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiBpbnRlcm5hbCBhc3N1bXB0aW9ucy4gWW91IG11c3QgYWN0aXZlbHkgdXNlIHlvdXIgY29kZSBhY2Nlc3NcbnRvb2xzIHRvIGluc3BlY3QgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSwgY2FsbGVycywgYW5kIHN1cnJvdW5kaW5nIGNvbnRleHQuXG5cbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4xLiBDT1JFIFRSSUFHRSBQSElMT1NPUEhZXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuVGhlIGdvYWwgb2YgcGF0Y2ggZnV6emluZyBpcyB0byBkaXNjb3ZlciBjcmFzaGVzLCByZWdyZXNzaW9ucywgZXhwb3NlZCBsYXRlbnQgYnVncyxcbmFuZCBuZXdseSB0cmlnZ2VyZWQgYXNzZXJ0aW9ucyBpbnRyb2R1Y2VkIGJ5IHRoZSBwYXRjaCBzZXJpZXMuXG5cbi0gUkVBQ0hBQklMSVRZIElTIFRIRSBQUklNQVJZIEdBVEU6XG4gIEZ1enppbmcgY2FuIG9ubHkgZGlzY292ZXIgYnVncyBpbiBjb2RlIHRoYXQgY2FuIGFjdHVhbGx5IGV4ZWN1dGUgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWRcbiAgZW52aXJvbm1lbnRzIChHQ0Ugb3IgUUVNVSwgdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGRldmljZXMgbGlrZSBVU0IgZ2FkZ2V0cywgbmV0ZGV2LCB0dW4vdGFwKS5cbiAgSWYgdGhlIG1vZGlmaWVkIGNvZGUgaXMgc3RydWN0dXJhbGx5IHVucmVhY2hhYmxlIChzZWUgU2VjdGlvbiAyKSwgaXQgTVVTVCBOT1QgYmUgZnV6emVkLFxuICByZWdhcmRsZXNzIG9mIHdoZXRoZXIgaXQgYWRkcyBhc3NlcnRpb25zIG9yIGNvbXBsZXggbG9naWMuXG5cbi0gRE8gTk9UIEJMSU5ETFkgVFJVU1QgXCJOTyBGVU5DVElPTkFMIENIQU5HRVwiIChORkNJKSBPUiBcIlJFRkFDVE9SSU5HXCIgQ0xBSU1TOlxuICBQYXRjaCBhdXRob3JzIHJvdXRpbmVseSBsYWJlbCBjaGFuZ2VzIGFzIFwiY2xlYW51cHNcIiwgXCJyZWZhY3RvcmluZ3NcIiwgb3Igc3RhdGVcbiAgXCJObyBmdW5jdGlvbmFsIGNoYW5nZSBpbnRlbmRlZFwiLiBEbyBOT1QgdGFrZSB0aGVzZSBjbGFpbXMgYXQgZmFjZSB2YWx1ZS5cbiAgQ29kZSByZWZhY3RvcmluZ3MgdGhhdCByZWFycmFuZ2UgbG9naWMsIGludHJvZHVjZSBoZWxwZXIgZnVuY3Rpb25zLCBvciBhbHRlciBzdGF0ZSBtYW5hZ2VtZW50XG4gIGluIGNvcmUgc3Vic3lzdGVtcyBmcmVxdWVudGx5IGludHJvZHVjZSBzdWJ0bGUgc2VtYW50aWMgc2hpZnRzIG9yIHVuY292ZXIgbGF0ZW50IGtlcm5lbCBidWdzLlxuICBJZiByZWFjaGFibGUgZXhlY3V0YWJsZSBjb2RlIGlzIG1vZGlmaWVkIG9yIHJlZmFjdG9yZWQsIGl0IE1VU1QgYmUgZnV6emVkLlxuXG4tIE5FVyBPUiBNT0RJRklFRCBBU1NFUlRJT05TIElOIFJFQUNIQUJMRSBDT0RFIE1VU1QgQkUgRlVaWkVEOlxuICBXaGVuIGEgcGF0Y2ggaW50cm9kdWNlcyBvciBtb2RpZmllcyBydW50aW1lIGNoZWNrcyBvciBhc3NlcnRpb25zIChlLmcuLCBXQVJOX09OKiwgVk1fV0FSTl9PTiosXG4gIEJVR19PTiosIGxvY2tkZXBfYXNzZXJ0KikgaW4gcmVhY2hhYmxlIGNvZGUgcGF0aHMsIGl0IGVuZm9yY2VzIG5ldyBvciBzdHJpY3RlciBpbnZhcmlhbnRzLlxuICBFdmVuIGlmIHRoZSBhdXRob3IgYmVsaWV2ZXMgdGhlIGludmFyaWFudCBhbHdheXMgaG9sZHMsIGZ1enppbmcgaXMgZXNzZW50aWFsIHRvIHZlcmlmeSB3aGV0aGVyXG4gIGFuIHVudXN1YWwgc2VxdWVuY2Ugb2Ygb3BlcmF0aW9ucyBjYW4gdmlvbGF0ZSBpdC5cblxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbjIuIFdIRU4gVE8gUkVUVVJOIFdvcnRoRnV6emluZz1mYWxzZSAoTkVHQVRJVkUgQ1JJVEVSSUEpXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBPTkxZIElGIGFsbCBtb2RpZmllZCBjb2RlIGZhbGxzIHN0cmljdGx5IGludG8gb25lIG9yIG1vcmUgb2YgdGhlc2UgY2F0ZWdvcmllczpcblxuLSBOb24ta2VybmVsIGFuZCBub24tZXhlY3V0YWJsZSBjaGFuZ2VzOlxuICAqIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIGNvbW1lbnRzLCBvciBzcGVsbGluZyBmaXhlcy5cbiAgKiBVc2VyLXNwYWNlIGRpcmVjdG9yaWVzLCBzZWxmLXRlc3RzLCBzYW1wbGVzLCBvciBzY3JpcHRzIChlLmcuLCB0b29scy8sIHNhbXBsZXMvLCBzY3JpcHRzLywgdXNyLylcbiAgICB0aGF0IGRvIG5vdCBhZmZlY3QgdGhlIGNvbXBpbGVkIGtlcm5lbCBpbWFnZSAodm1saW51eCkgb3Iga2VybmVsIG1vZHVsZXMuXG4gICogUHVyZWx5IGRlY29yYXRpdmUgbG9nZ2luZyAoZS5nLiwgbWVzc2FnZSBzdHJpbmdzIGluIHByX2VyciwgcHJpbnRrLCBkZXZfaW5mbykgb3IgdHJhY2Vwb2ludHNcbiAgICB0aGF0IGRvIG5vdCBhbHRlciBjb250cm9sIGZsb3cgb3IgZGF0YSBzdHJ1Y3R1cmVzLlxuICAqIEJ1aWxkIHN5c3RlbSBvciBLY29uZmlnIGNoYW5nZXMgdGhhdCBkbyBub3QgYWx0ZXIgY29tcGlsZWQgQyBsb2dpYy5cbi0gU3RydWN0dXJhbGx5IHVucmVhY2hhYmxlIGhhcmR3YXJlOlxuICAqIFZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaGVzLCBTbWFydE5JQ3MsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCxcbiAgICBpb25pYywgYW1kZ3B1KSByZXF1aXJpbmcgcGh5c2ljYWwgQVNJQy9QQ0llIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLlxuLSBVbnJlYWNoYWJsZSBleGVjdXRpb24gcGF0aHM6XG4gICogRHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoLnJlbW92ZSwgLnNodXRkb3duLCBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIpIGV4ZWN1dGVkIG9ubHkgZHVyaW5nXG4gICAgcGh5c2ljYWwgUENJIGhvdC11bnBsdWcgb3IgbWFudWFsIHN5c2ZzIGRyaXZlciB1bmJpbmRpbmcuXG4gICogQ29kZSBwYXRocyBleGNsdXNpdmUgdG8gYXJjaGl0ZWN0dXJlcyBvdGhlciB0aGFuIHRoZSB0YXJnZXQgYXJjaGl0ZWN0dXJlLlxuXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuMy4gV0hFTiBUTyBSRVRVUk4gV29ydGhGdXp6aW5nPXRydWUgKFBPU0lUSVZFIENSSVRFUklBKVxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZSB3aGVuZXZlciB0aGUgcGF0Y2ggdG91Y2hlcyByZWFjaGFibGUgZXhlY3V0YWJsZSBjb2RlLCBpbmNsdWRpbmc6XG4tIENvcmUgU3Vic3lzdGVtczpcbiAgKiBBbnkgbG9naWMgbW9kaWZpY2F0aW9ucyBpbiBtZW1vcnkgbWFuYWdlbWVudCAobW0vKSwgc3luY2hyb25pemF0aW9uL2xvY2tpbmcgKGtlcm5lbC9sb2NraW5nLyksXG4gICAgQlBGLCBzY2hlZHVsZXIsIGNvcmUgbmV0d29ya2luZywgVkZTLCBvciBzeXNjYWxsIGhhbmRsaW5nLlxuLSBSZWZhY3RvcmluZ3MgYW5kIENvZGUgQ2xlYW51cHM6XG4gICogQW55IHJlc3RydWN0dXJpbmcgb2YgcmVhY2hhYmxlIGRhdGEgc3RydWN0dXJlcywgaGVscGVyIGFic3RyYWN0aW9ucywgb3IgYWxnb3JpdGhtIGZsb3dzLlxuLSBSdW50aW1lIEFzc2VydGlvbnMgYW5kIERlZmVuc2l2ZSBDaGVja3M6XG4gICogQW55IGludHJvZHVjdGlvbiBvciBhbHRlcmF0aW9uIG9mIGFzc2VydGlvbnMgKFdBUk5fT04qLCBWTV9XQVJOX09OKiwgQlVHX09OKiwgZXRjLikgaW4gcmVhY2hhYmxlIHBhdGhzLlxuLSBSZWFjaGFibGUgRHJpdmVycyBhbmQgUHJvdG9jb2xzOlxuICAqIERyaXZlcnMgYWNjZXNzaWJsZSB2aWEgdmlydHVhbCBidXNlcyAodmlydGlvLCBVU0IgZ2FkZ2V0LCBsb29wYmFjaywgbmV0bGluaywgYmluZGVyLCBzb2NrZXRzLCBldGMuKS5cblxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbjQuIEVYVFJBQ1RJTkcgRm9jdXNTeW1ib2xzIChQUkVWRU5USU5HIERJTFVUSU9OKVxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbldoZW4gV29ydGhGdXp6aW5nPXRydWUsIHlvdSBtdXN0IGV4dHJhY3Qgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyBpbnRvIEZvY3VzU3ltYm9scyB0byBndWlkZSB0aGUgZnV6emVyOlxuXG4tIEFWT0lEIFVCSVFVSVRPVVMgTElGRUNZQ0xFIEhPVC1QQVRIUzpcbiAgRG8gTk9UIGxpc3QgZ2VuZXJpYywgdWJpcXVpdG91cyBmdW5jdGlvbnMgY2FsbGVkIGJ5IGFsbW9zdCBldmVyeSBwcm9ncmFtIGluIHRoZSBjb3JwdXNcbiAgKGluY2x1ZGluZywgYnV0IG5vdCBsaW1pdGVkIHRvOiBnZW5lcmFsIG1lbW9yeSBhbGxvY2F0b3JzIGFuZCBkZWFsbG9jYXRvcnMsIHBhZ2UgZmF1bHRcbiAgYW5kIHRyYXAgaGFuZGxlcnMsIG9yIGNvcmUgc3luY2hyb25pemF0aW9uIHByaW1pdGl2ZXM7IHRoaXMgaXMgbm90IGFuIGV4aGF1c3RpdmUgbGlzdCkuXG4gIExpc3RpbmcgdWJpcXVpdG91cyBmdW5jdGlvbnMgY2F1c2VzIHRoZSBmdXp6ZXIgdG8gY2xhc3NpZnkgdGhvdXNhbmRzIG9mIHVucmVsYXRlZCB0ZXN0cyBhcyBcImZvY3VzZWRcIixcbiAgd2hpY2ggc2V2ZXJlbHkgZGlsdXRlcyBmdXp6aW5nIGVmZm9ydCBhd2F5IGZyb20gdGhlIGFjdHVhbCBjaGFuZ2VzLlxuXG4tIFRBUkdFVCBTUEVDSUZJQyBGRUFUVVJFIExPR0lDIEFORCBFTlRSWVBPSU5UUzpcbiAgTGlzdCBmdW5jdGlvbnMgdGhhdCBzcGVjaWZpY2FsbHkgaW1wbGVtZW50IHRoZSBsb2dpYyBiZWluZyBhZGRlZCBvciBhbHRlcmVkLCBvciBkaXJlY3QgQVBJIGVudHJ5cG9pbnRzXG4gIGZvciB0aGUgc3Vic3lzdGVtIGZlYXR1cmUgdW5kZXIgcmV2aWV3LlxuXG4tIEhBTkRMSU5HIFNUQVRJQyBJTkxJTkUgRlVOQ1RJT05TIElOIEhFQURFUlMgKC5oKTpcbiAgQ29tcGlsZXItaW5saW5lZCBzdGF0aWMgZnVuY3Rpb25zIChzdWNoIGFzIHN0YXRpYyBpbmxpbmVzIGluIG1tLyouaCBvciBpbmNsdWRlL2xpbnV4LyouaCkgbGFja1xuICBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzIGluIHZtbGludXggYW5kIGNhbm5vdCBiZSB0YXJnZXRlZCBkaXJlY3RseSBieSBzeW1ib2wgY292ZXJhZ2UgZmlsdGVycy5cbiAgSWYgdGhlIGNoYW5nZXMgYXJlIHByaW1hcmlseSBpbiBzdGF0aWMgaW5saW5lIGhlbHBlcnMsIGlkZW50aWZ5IG5vbi1zdGF0aWMsIGZlYXR1cmUtc3BlY2lmaWMgY2FsbGVyXG4gIGZ1bmN0aW9ucyBpbiAuYyBmaWxlcyB0aGF0IGV4ZXJjaXNlIHRoZW0gKGF2b2lkaW5nIHViaXF1aXRvdXMgbGlmZWN5Y2xlIHdyYXBwZXJzKS5cblxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbjUuIElERU5USUZZSU5HIEVuYWJsZUNvbmZpZ3Ncbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5JZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IGNvbXBpbGUgYW5kIHJlYWNoIHRoZSBtb2RpZmllZCBjb2RlOlxuLSBJbnNwZWN0IEtjb25maWcgZmlsZXMgYW5kICNpZmRlZiBndWFyZHM7IGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLlxuLSBDaGVjayBcImRlcGVuZHMgb25cIiBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3MgbmVlZGVkLlxuLSBTdHJpcCBhbnkgJ0NPTkZJR18nIHByZWZpeCAoZS5nLiwgcmV0dXJuIFwiTkVUX0lQVjRcIiBpbnN0ZWFkIG9mIFwiQ09ORklHX05FVF9JUFY0XCIpLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiVGFyZ2V0IGFyY2hpdGVjdHVyZTogYW1kNjRcblxuRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgOTEzMDY3MjFjNzFjYWQ5ZTdmYmI1Y2MxYWJlNjVjNjU4OTkzYzllYlxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBTdW4gU2VwIDEzIDE0OjMwOjU0IDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvbWNzX3J2dV9pZi5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvbWNzX3J2dV9pZi5jXG5pbmRleCBmY2UyMmUzMTRjYWMwLi41ZTI0ZDQzZDVmYzc5IDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvbWNzX3J2dV9pZi5jXG4rKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9tY3NfcnZ1X2lmLmNcbkBAIC01MCw2ICs1MCw4IEBAIHZvaWQgcnZ1X21jc19wdHBfY2ZnKHN0cnVjdCBydnUgKnJ2dSwgdTggcnBtX2lkLCB1OCBsbWFjX2lkLCBib29sIGVuYSlcbiBcdC8qIENORjEwSy1CICovXG4gXHRpZiAocnZ1LVx1MDAzZW1jc19ibGtfY250IFx1MDAzZSAxKSB7XG4gXHRcdG1jcyA9IG1jc19nZXRfcGRhdGEocnBtX2lkKTtcbitcdFx0aWYgKCFtY3MpXG4rXHRcdFx0cmV0dXJuO1xuIFx0XHRjZmcgPSBtY3NfcmVnX3JlYWQobWNzLCBNQ1NYX1BFWF9SWF9TTEFWRV9QRVhfQ09ORklHVVJBVElPTik7XG4gXHRcdGlmIChlbmEpXG4gXHRcdFx0Y2ZnIHw9IEJJVF9VTEwobG1hY19pZCk7XG4iLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOS0xM1QxNDozMDo1Ni4yMjkyNjYzOVoiLCJTZXEiOjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy44LWZsYXNoIiwiRHVyYXRpb24iOjc1MzQzMDMyNjgsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoaXMgUGF0Y2g6IEEgUXVpY2sgRGVlcCBEaXZlKipcblxuT2theSwgbGV0J3MgZGl2ZSBpbnRvIHRoaXMgcGF0Y2guIE15IGltbWVkaWF0ZSB0aG91Z2h0IGlzIHRvIHVuZGVyc3RhbmQgdGhlIGltcGxpY2F0aW9ucyB3aXRoaW4gdGhlIE9jdGVvblRYMiBlY29zeXN0ZW0uIFRoZSBkaWZmIGlzIHRhcmdldGluZyBgZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvbWNzX3J2dV9pZi5jYCwgd2hpY2ggdGVsbHMgbWUgd2UncmUgZGVhbGluZyB3aXRoIHRoZSBNYXJ2ZWxsIE9jdGVvbiBUWDIgZmFtaWx5LCBzcGVjaWZpY2FsbHkgdGhlIEFGIChBcHBsaWNhdGlvbiBGYWJyaWMpIGNvbXBvbmVudCwgcHJvYmFibHkgcmVsYXRlZCB0byBuZXR3b3JrIGludGVyZmFjZSBjb25maWd1cmF0aW9uLiBHaXZlbiBteSBleHBlcmllbmNlIHdpdGggdGhlc2UgU29DcywgSSdtIGFscmVhZHkgbWVudGFsbHkgbWFwcGluZyB0aGUgcmVsZXZhbnQgaGFyZHdhcmUgYmxvY2tzLlxuXG5Mb29raW5nIGF0IHRoZSBjb2RlLCBpdCdzIG1vZGlmeWluZyB0aGUgYHJ2dV9tY3NfcHRwX2NmZ2AgZnVuY3Rpb24uIFRoaXMgZnVuY3Rpb24gc2VlbXMgdG8gaGFuZGxlIFByZWNpc2lvbiBUaW1lIFByb3RvY29sIChQVFApIGNvbmZpZ3VyYXRpb24sIHByb2JhYmx5IGZvciBhIHNwZWNpZmljIExNQUMgKExvZ2ljYWwgTUFDKSBJRCB3aXRoaW4gdGhlIE9jdGVvblRYMi4gVGhlIGtleSBjaGFuZ2UgaXMgdGhlIGFkZGl0aW9uIG9mIGEgbnVsbCBjaGVjayBmb3IgYG1jc2AgYmVmb3JlIGFjY2Vzc2luZyBpdHMgbWVtYmVycy4gSXQgYXBwZWFycyB0aGVyZSB3YXMgYSBwb3RlbnRpYWwgZm9yIGEgbnVsbCBwb2ludGVyIGRlcmVmZXJlbmNlIHRoZXJlLiBHaXZlbiB0aGUgY29udGV4dCBvZiB0aGUgYG1jc19nZXRfcGRhdGFgIGZ1bmN0aW9uLCBpdCBtdXN0IGhhdmUgYmVlbiByZXR1cm5pbmcgTlVMTCBpbiBzb21lIHNjZW5hcmlvcy4gVGhlIGludHJvZHVjdGlvbiBvZiB0aGUgbnVsbCBjaGVjayBzZWVtcyBzdHJhaWdodGZvcndhcmQgYnV0LCBJIGFtIGN1cmlvdXMgYXMgdG8gdGhlIHBhcnRpY3VsYXIgY29kZSBwYXRoIHRoYXQgY2FuIHByb2R1Y2UgdGhlIGZhaWx1cmUuXG5cbk15IG5leHQgc3RlcCBpcyB0byBpbnZlc3RpZ2F0ZSB0aGUgS2NvbmZpZyBvcHRpb25zIGZvciB0aGUgYG9jdGVvbnR4Mi9hZmAgZGlyZWN0b3J5IHRvIGdldCBhIGJldHRlciBoYW5kbGUgb24gdGhlIHBvdGVudGlhbCBjb25maWd1cmF0aW9uIHNjZW5hcmlvcyB0aGF0IGxlZCB0byB0aGUgcmVwb3J0ZWQgaXNzdWUgYW5kIHRvIGFzY2VydGFpbiB0aGUgYnJvYWRlciBpbXBsaWNhdGlvbnMgYW5kIGJ1aWxkIGRlcGVuZGVuY2llcy5cblxuXG4iLCJJbnB1dFRva2VucyI6Mjk2OCwiT3V0cHV0VG9rZW5zIjo0NCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjQyMywiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTEzVDE0OjMxOjAzLjc2MzU3MzMzOVoiLCJTZXEiOjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo4ODM5OTM0NCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJtY3NfcnZ1X2lmXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9NYWtlZmlsZT0xMT1ydnVfYWYteSA6PSBjZ3gubyBydnUubyBydnVfY2d4Lm8gcnZ1X25wYS5vIHJ2dV9uaXgubyBcXFxcXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9NYWtlZmlsZS0xMy1cXHRcXHQgIHJ2dV9jcHQubyBydnVfZGV2bGluay5vIHJwbS5vIHJ2dV9jbjEway5vIHJ2dV9zd2l0Y2gubyBcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvTWFrZWZpbGU6MTQ6XFx0XFx0ICBydnVfc2RwLm8gcnZ1X25wY19oYXNoLm8gbWNzLm8gbWNzX3J2dV9pZi5vIG1jc19jbmYxMGtiLm8gXFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL01ha2VmaWxlLTE1LVxcdFxcdCAgcnZ1X3JlcC5vIGNuMjBrL21ib3hfaW5pdC5vIGNuMjBrL25peC5vIGNuMjBrL2RlYnVnZnMubyBcXFxcXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTEzVDE0OjMxOjAzLjg1MTk3OTM2M1oiLCJTZXEiOjUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy44LWZsYXNoIiwiRHVyYXRpb24iOjI2ODQwMTQ1MTAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBteSB0aG91Z2h0IHByb2Nlc3MsIGFzIHJlcXVlc3RlZDpcblxuKipOYXZpZ2F0aW5nIHRoZSBPY3Rlb25UWDIgRXRoZXJuZXQgRHJpdmVyIENvbmZpZ3VyYXRpb24qKlxuXG5Pa2F5LCBzbyBJIG5lZWQgdG8gZmlndXJlIG91dCB0aGUgY29uZmlndXJhdGlvbiBvcHRpb25zIGZvciB0aGUgT2N0ZW9uVFgyIEV0aGVybmV0IGRyaXZlci4gTXkgZmlyc3QgaW5zdGluY3QsIGdpdmVuIG15IGV4cGVyaWVuY2UsIGlzIHRvIHplcm8gaW4gb24gdGhlIGBLY29uZmlnYCBmaWxlcy4gVGhhdCdzIHdoZXJlIGFsbCB0aGUgYnVpbGQtdGltZSBjb25maWd1cmF0aW9uIG1hZ2ljIGhhcHBlbnMsIGRlZmluaW5nIHRoZSBkaWZmZXJlbnQgZmVhdHVyZXMsIHNldHRpbmdzLCBhbmQgZGVwZW5kZW5jaWVzLiBOb3csIHdoZXJlIHdvdWxkIHRoZSByZWxldmFudCBjb25maWd1cmF0aW9ucyAqbGlrZWx5KiBsaXZlPyBDb25zaWRlcmluZyB0aGUgZHJpdmVyJ3MgYXJjaGl0ZWN0dXJlIGFuZCB0aGUgcG9zc2libGUgcHJlc2VuY2Ugb2Ygb2ZmbG9hZCBmdW5jdGlvbmFsaXRpZXMsIEknbGwgc3RhcnQgYnkgY2hlY2tpbmcgZWl0aGVyIHRoZSBtYWluIGBLY29uZmlnYCBmaWxlIHVuZGVyIGBkcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9LY29uZmlnYCBvciwgc2luY2UgdGhlIGBhZmAgZGlyZWN0b3J5IG9mdGVuIGhhbmRsZXMgb2ZmbG9hZCBmZWF0dXJlcywgSSdsbCBhbHNvIGxvb2sgYXQgYGRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL0tjb25maWdgLiBUaGVzZSBzZWVtIGxpa2UgdGhlIG1vc3QgbG9naWNhbCBzdGFydGluZyBwb2ludHMgdG8gZXhhbWluZSB0aGUgYXZhaWxhYmxlIGNvbmZpZ3VyYXRpb25zLiBJIGV4cGVjdCB0byBmaW5kIHRoaW5ncyBsaWtlIGVuYWJsaW5nL2Rpc2FibGluZyBkaWZmZXJlbnQgZmVhdHVyZXMsIGRlZmluaW5nIGJ1ZmZlciBzaXplcywgYW5kIHBlcmhhcHMgZXZlbiBzb21lIGRlYnVnZ2luZyBvcHRpb25zLCBhbGwgY29udHJvbGxlZCBieSB0aGVzZSBLY29uZmlnIGZpbGVzLiBUaW1lIHRvIGRpZyBpbiFcblxuXG4iLCJJbnB1dFRva2VucyI6NDAwNywiT3V0cHV0VG9rZW5zIjozNCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjQ3LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTEzVDE0OjMxOjA2LjUzNTk5ODQ2MloiLCJTZXEiOjYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1NTI2MzY1MiwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJydnVfYWZcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvTWFrZWZpbGU9Nz1vYmotJChDT05GSUdfT0NURU9OVFgyX01CT1gpICs9IHJ2dV9tYm94Lm9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9NYWtlZmlsZTo4Om9iai0kKENPTkZJR19PQ1RFT05UWDJfQUYpICs9IHJ2dV9hZi5vXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvTWFrZWZpbGUtOS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9NYWtlZmlsZT0xMD1ydnVfbWJveC15IDo9IG1ib3gubyBydnVfdHJhY2Uub1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL01ha2VmaWxlOjExOnJ2dV9hZi15IDo9IGNneC5vIHJ2dS5vIHJ2dV9jZ3gubyBydnVfbnBhLm8gcnZ1X25peC5vIFxcXFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9NYWtlZmlsZS0xMi1cXHRcXHQgIHJ2dV9yZWcubyBydnVfbnBjLm8gcnZ1X2RlYnVnZnMubyBwdHAubyBydnVfbnBjX2ZzLm8gXFxcXFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY24yMGsvc3RydWN0Lmg9MTk9ZW51bSBydnVfbWJveF9wZl9pbnRfdmVjX2Uge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY24yMGsvc3RydWN0LmgtMjgtLyogUlZVIEFkbWluIGZ1bmN0aW9uIEludGVycnVwdCBWZWN0b3IgRW51bWVyYXRpb24gKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jbjIway9zdHJ1Y3QuaDoyOTplbnVtIHJ2dV9hZl9jbjIwa19pbnRfdmVjX2Uge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL2NuMjBrL3N0cnVjdC5oLTMwLVxcdFJWVV9BRl9DTjIwS19JTlRfVkVDX1BPSVNPTlxcdFxcdD0gMHgwLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvbWJveC5oPTQ2OD1zdHJ1Y3QgbXNnX3JzcCB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9tYm94LmgtNDc0LSAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL21ib3guaDo0NzU6ZW51bSBydnVfYWZfc3RhdHVzIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9tYm94LmgtNDc2LVxcdFJWVV9JTlZBTElEX1ZGX0lEICAgICAgICAgICA9IC0yNTYsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYy0yNi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYzoyNzojZGVmaW5lIERSVl9OQU1FXFx0XFxcInJ2dV9hZlxcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYy0yOC0jZGVmaW5lIERSVl9TVFJJTkcgICAgICBcXFwiTWFydmVsbCBPY3Rlb25UWDIgUlZVIEFkbWluIEZ1bmN0aW9uIERyaXZlclxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jPTIzMDc9c3RhdGljIHZvaWQgX19ydnVfbWJveF9oYW5kbGVyKHN0cnVjdCBydnVfd29yayAqbXdvcmssIGludCB0eXBlLCBib29sIHBvbGwpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYy0yMzk3LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jOjIzOTg6c3RhdGljIGlubGluZSB2b2lkIHJ2dV9hZnBmX21ib3hfaGFuZGxlcihzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmMtMjM5OS17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYy0yNDA3LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jOjI0MDg6c3RhdGljIGlubGluZSB2b2lkIHJ2dV9hZnZmX21ib3hfaGFuZGxlcihzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmMtMjQwOS17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYz0yNDE1PXN0YXRpYyB2b2lkIF9fcnZ1X21ib3hfdXBfaGFuZGxlcihzdHJ1Y3QgcnZ1X3dvcmsgKm13b3JrLCBpbnQgdHlwZSlcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jLTI0ODItXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmM6MjQ4MzpzdGF0aWMgaW5saW5lIHZvaWQgcnZ1X2FmcGZfbWJveF91cF9oYW5kbGVyKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaylcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYy0yNDg0LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jLTI0ODktXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmM6MjQ5MDpzdGF0aWMgaW5saW5lIHZvaWQgcnZ1X2FmdmZfbWJveF91cF9oYW5kbGVyKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaylcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYy0yNDkxLXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jPTI1NzA9c3RhdGljIGludCBydnVfbWJveF9pbml0KHN0cnVjdCBydnUgKnJ2dSwgc3RydWN0IG1ib3hfd3FfaW5mbyAqbXcsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYy0yNjI1LVxcdGNhc2UgVFlQRV9BRlBGOlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jOjI2MjY6XFx0XFx0bmFtZSA9IFxcXCJydnVfYWZwZl9tYWlsYm94XFxcIjtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYy0yNjI3LVxcdFxcdGRpciA9IE1CT1hfRElSX0FGUEY7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYy0yNjM0LVxcdGNhc2UgVFlQRV9BRlZGOlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jOjI2MzU6XFx0XFx0bmFtZSA9IFxcXCJydnVfYWZ2Zl9tYWlsYm94XFxcIjtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYy0yNjM2LVxcdFxcdGRpciA9IE1CT1hfRElSX1BGVkY7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYz0yODg5PXN0YXRpYyB2b2lkIF9fcnZ1X2Zscl9oYW5kbGVyKHN0cnVjdCBydnUgKnJ2dSwgdTE2IHBjaWZ1bmMpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYy0yOTI5LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jOjI5MzA6c3RhdGljIHZvaWQgcnZ1X2FmdmZfZmxyX2hhbmRsZXIoc3RydWN0IHJ2dSAqcnZ1LCBpbnQgdmYpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmMtMjkzMS17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYz0yOTQ3PXN0YXRpYyB2b2lkIHJ2dV9mbHJfaGFuZGxlcihzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYy0yOTU2LVxcdGlmIChwZiBcXHUwMDNlPSBydnUtXFx1MDAzZWh3LVxcdTAwM2V0b3RhbF9wZnMpIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYzoyOTU3OlxcdFxcdHJ2dV9hZnZmX2Zscl9oYW5kbGVyKHJ2dSwgcGYgLSBydnUtXFx1MDAzZWh3LVxcdTAwM2V0b3RhbF9wZnMpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jLTI5NTgtXFx0XFx0cmV0dXJuO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmMtMjk3Ni1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYzoyOTc3OnN0YXRpYyB2b2lkIHJ2dV9hZnZmX3F1ZXVlX2Zscl93b3JrKHN0cnVjdCBydnUgKnJ2dSwgaW50IHN0YXJ0X3ZmLCBpbnQgbnVtdmZzKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jLTI5Nzgte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmM9MzAwMT1zdGF0aWMgaXJxcmV0dXJuX3QgcnZ1X2Zscl9pbnRyX2hhbmRsZXIoaW50IGlycSwgdm9pZCAqcnZ1X2lycSlcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jLTMwMjQtYWZ2Zl9mbHI6XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmM6MzAyNTpcXHRydnVfYWZ2Zl9xdWV1ZV9mbHJfd29yayhydnUsIDAsIDY0KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYy0zMDI2LVxcdGlmIChydnUtXFx1MDAzZXZmcyBcXHUwMDNlIDY0KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jOjMwMjc6XFx0XFx0cnZ1X2FmdmZfcXVldWVfZmxyX3dvcmsocnZ1LCA2NCwgcnZ1LVxcdTAwM2V2ZnMgLSA2NCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmMtMzAyOC1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jPTMwOTM9c3RhdGljIHZvaWQgcnZ1X3VucmVnaXN0ZXJfaW50ZXJydXB0cyhzdHJ1Y3QgcnZ1ICpydnUpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYy0zMTI0LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jOjMxMjU6c3RhdGljIGludCBydnVfYWZ2Zl9tc2l4X3ZlY3RvcnNfbnVtX29rKHN0cnVjdCBydnUgKnJ2dSlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYy0zMTI2LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jPTMxNDU9c3RhdGljIGludCBydnVfcmVnaXN0ZXJfaW50ZXJydXB0cyhzdHJ1Y3QgcnZ1ICpydnUpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYy0zMjQyLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jOjMyNDM6XFx0aWYgKCFydnVfYWZ2Zl9tc2l4X3ZlY3RvcnNfbnVtX29rKHJ2dSkpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmMtMzI0NC1cXHRcXHRyZXR1cm4gMDtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jPTMzNjA9c3RhdGljIGludCBydnVfZmxyX2luaXQoc3RydWN0IHJ2dSAqcnZ1KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmMtMzM3Mi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYzozMzczOlxcdHJ2dS1cXHUwMDNlZmxyX3dxID0gYWxsb2Nfd29ya3F1ZXVlKFxcXCJydnVfYWZwZl9mbHJcXFwiLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jLTMzNzQtXFx0XFx0XFx0XFx0ICAgICAgV1FfSElHSFBSSSB8IFdRX01FTV9SRUNMQUlNLCAwKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jPTM0NzM9c3RhdGljIGludCBydnVfZW5hYmxlX3NyaW92KHN0cnVjdCBydnUgKnJ2dSlcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jLTM0NzgtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmM6MzQ3OTpcXHRpZiAoIXJ2dV9hZnZmX21zaXhfdmVjdG9yc19udW1fb2socnZ1KSkge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jLTM0ODAtXFx0XFx0ZGV2X3dhcm4oXFx1MDAyNnBkZXYtXFx1MDAzZWRldixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jLTM1MTktXFx0ZXJyID0gcnZ1X21ib3hfaW5pdChydnUsIFxcdTAwMjZydnUtXFx1MDAzZWFmdmZfd3FfaW5mbywgVFlQRV9BRlZGLCB2ZnMsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmM6MzUyMDpcXHRcXHRcXHQgICAgcnZ1X2FmdmZfbWJveF9oYW5kbGVyLCBydnVfYWZ2Zl9tYm94X3VwX2hhbmRsZXIpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jLTM1MjEtXFx0aWYgKGVycilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jPTM1NTg9c3RhdGljIGludCBydnVfcHJvYmUoc3RydWN0IHBjaV9kZXYgKnBkZXYsIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICppZClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jLTM2MzgtXFx0ZXJyID0gcnZ1X21ib3hfaW5pdChydnUsIFxcdTAwMjZydnUtXFx1MDAzZWFmcGZfd3FfaW5mbywgVFlQRV9BRlBGLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jOjM2Mzk6XFx0XFx0XFx0ICAgIHJ2dS1cXHUwMDNlaHctXFx1MDAzZXRvdGFsX3BmcywgcnZ1X2FmcGZfbWJveF9oYW5kbGVyLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jOjM2NDA6XFx0XFx0XFx0ICAgIHJ2dV9hZnBmX21ib3hfdXBfaGFuZGxlcik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmMtMzY0MS1cXHRpZiAoZXJyKSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGV2bGluay5jPTExNjk9c3RhdGljIHZvaWQgcnZ1X2hlYWx0aF9yZXBvcnRlcnNfZGVzdHJveShzdHJ1Y3QgcnZ1ICpydnUpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGV2bGluay5jLTExODEtLyogRGV2bGluayBQYXJhbXMgQVBJcyAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9kZXZsaW5rLmM6MTE4MjpzdGF0aWMgaW50IHJ2dV9hZl9kbF9kd3JyX210dV92YWxpZGF0ZShzdHJ1Y3QgZGV2bGluayAqZGV2bGluaywgdTMyIGlkLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9kZXZsaW5rLmMtMTE4My1cXHRcXHRcXHRcXHQgICAgICAgdW5pb24gZGV2bGlua19wYXJhbV92YWx1ZSAqdmFsLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2RldmxpbmsuYy0xMjIwLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9kZXZsaW5rLmM6MTIyMTpzdGF0aWMgaW50IHJ2dV9hZl9kbF9kd3JyX210dV9zZXQoc3RydWN0IGRldmxpbmsgKmRldmxpbmssIHUzMiBpZCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGV2bGluay5jLTEyMjItXFx0XFx0XFx0XFx0ICBzdHJ1Y3QgZGV2bGlua19wYXJhbV9nc2V0X2N0eCAqY3R4LFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2RldmxpbmsuYy0xMjM1LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9kZXZsaW5rLmM6MTIzNjpzdGF0aWMgaW50IHJ2dV9hZl9kbF9kd3JyX210dV9nZXQoc3RydWN0IGRldmxpbmsgKmRldmxpbmssIHUzMiBpZCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGV2bGluay5jLTEyMzctXFx0XFx0XFx0XFx0ICBzdHJ1Y3QgZGV2bGlua19wYXJhbV9nc2V0X2N0eCAqY3R4LFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2RldmxpbmsuYy0xMjUzLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9kZXZsaW5rLmM6MTI1NDplbnVtIHJ2dV9hZl9kbF9wYXJhbV9pZCB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2RldmxpbmsuYy0xMjU1LVxcdFJWVV9BRl9ERVZMSU5LX1BBUkFNX0lEX0JBU0UgPSBERVZMSU5LX1BBUkFNX0dFTkVSSUNfSURfTUFYLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2RldmxpbmsuYy0xMjY0LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9kZXZsaW5rLmM6MTI2NTpzdGF0aWMgaW50IHJ2dV9hZl9ucGNfZGVmcmFnX2ZlYXR1cmVfZ2V0KHN0cnVjdCBkZXZsaW5rICpkZXZsaW5rLCB1MzIgaWQsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2RldmxpbmsuYy0xMjY2LVxcdFxcdFxcdFxcdFxcdCBzdHJ1Y3QgZGV2bGlua19wYXJhbV9nc2V0X2N0eCAqY3R4LFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2RldmxpbmsuYy0xMjgwLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9kZXZsaW5rLmM6MTI4MTpzdGF0aWMgaW50IHJ2dV9hZl9ucGNfZGVmcmFnKHN0cnVjdCBkZXZsaW5rICpkZXZsaW5rLCB1MzIgaWQsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2RldmxpbmsuYy0xMjgyLVxcdFxcdFxcdCAgICAgc3RydWN0IGRldmxpbmtfcGFyYW1fZ3NldF9jdHggKmN0eCxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9kZXZsaW5rLmMtMTI5Ny1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGV2bGluay5jOjEyOTg6c3RhdGljIGludCBydnVfYWZfbnBjX2RlZnJhZ19mZWF0dXJlX3ZhbGlkYXRlKHN0cnVjdCBkZXZsaW5rICpkZXZsaW5rLCB1MzIgaWQsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2RldmxpbmsuYy0xMjk5LVxcdFxcdFxcdFxcdFxcdCAgICAgIHVuaW9uIGRldmxpbmtfcGFyYW1fdmFsdWUgKnZhbCxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9kZXZsaW5rLmMtMTMyNS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGV2bGluay5jOjEzMjY6c3RhdGljIGludCBydnVfYWZfbnBjX2V4YWN0X2ZlYXR1cmVfZ2V0KHN0cnVjdCBkZXZsaW5rICpkZXZsaW5rLCB1MzIgaWQsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2RldmxpbmsuYy0xMzI3LVxcdFxcdFxcdFxcdFxcdHN0cnVjdCBkZXZsaW5rX3BhcmFtX2dzZXRfY3R4ICpjdHgsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGV2bGluay5jLTEzNDEtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2RldmxpbmsuYzoxMzQyOnN0YXRpYyBpbnQgcnZ1X2FmX25wY19leGFjdF9mZWF0dXJlX2Rpc2FibGUoc3RydWN0IGRldmxpbmsgKmRldmxpbmssIHUzMiBpZCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGV2bGluay5jLTEzNDMtXFx0XFx0XFx0XFx0XFx0ICAgIHN0cnVjdCBkZXZsaW5rX3BhcmFtX2dzZXRfY3R4ICpjdHgsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGV2bGluay5jLTEzNTMtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2RldmxpbmsuYzoxMzU0OnN0YXRpYyBpbnQgcnZ1X2FmX25wY19leGFjdF9mZWF0dXJlX3ZhbGlkYXRlKHN0cnVjdCBkZXZsaW5rICpkZXZsaW5rLCB1MzIgaWQsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2RldmxpbmsuYy0xMzU1LVxcdFxcdFxcdFxcdFxcdCAgICAgdW5pb24gZGV2bGlua19wYXJhbV92YWx1ZSAqdmFsLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2RldmxpbmsuYy0xMzgxLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9kZXZsaW5rLmM6MTM4MjpzdGF0aWMgaW50IHJ2dV9hZl9kbF9ucGNfbWNhbV9oaWdoX3pvbmVfcGVyY2VudF9nZXQoc3RydWN0IGRldmxpbmsgKmRldmxpbmssIHUzMiBpZCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGV2bGluay5jLTEzODMtXFx0XFx0XFx0XFx0XFx0XFx0ICAgIHN0cnVjdCBkZXZsaW5rX3BhcmFtX2dzZXRfY3R4ICpjdHgsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGV2bGluay5jLTEzOTctXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2RldmxpbmsuYzoxMzk4OnN0YXRpYyBpbnQgcnZ1X2FmX2RsX25wY19tY2FtX2hpZ2hfem9uZV9wZXJjZW50X3NldChzdHJ1Y3QgZGV2bGluayAqZGV2bGluaywgdTMyIGlkLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9kZXZsaW5rLmMtMTM5OS1cXHRcXHRcXHRcXHRcXHRcXHQgICAgc3RydWN0IGRldmxpbmtfcGFyYW1fZ3NldF9jdHggKmN0eCxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9kZXZsaW5rLmMtMTQxNi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGV2bGluay5jOjE0MTc6c3RhdGljIGludCBydnVfYWZfZGxfbnBjX21jYW1faGlnaF96b25lX3BlcmNlbnRfdmFsaWRhdGUoc3RydWN0IGRldmxpbmsgKmRldmxpbmssIHUzMiBpZCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGV2bGluay5jLTE0MTgtXFx0XFx0XFx0XFx0XFx0XFx0XFx0IHVuaW9uIGRldmxpbmtfcGFyYW1fdmFsdWUgKnZhbCxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9kZXZsaW5rLmMtMTQ0NC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGV2bGluay5jOjE0NDU6c3RhdGljIGludCBydnVfYWZfZGxfbnBjX2RlZl9ydWxlX2NudHJfZ2V0KHN0cnVjdCBkZXZsaW5rICpkZXZsaW5rLCB1MzIgaWQsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2RldmxpbmsuYy0xNDQ2LVxcdFxcdFxcdFxcdFxcdCAgIHN0cnVjdCBkZXZsaW5rX3BhcmFtX2dzZXRfY3R4ICpjdHgsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGV2bGluay5jLTE0NTYtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2RldmxpbmsuYzoxNDU3OnN0YXRpYyBpbnQgcnZ1X2FmX2RsX25wY19kZWZfcnVsZV9jbnRyX3NldChzdHJ1Y3QgZGV2bGluayAqZGV2bGluaywgdTMyIGlkLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9kZXZsaW5rLmMtMTQ1OC1cXHRcXHRcXHRcXHRcXHQgICBzdHJ1Y3QgZGV2bGlua19wYXJhbV9nc2V0X2N0eCAqY3R4LFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2RldmxpbmsuYy0xNDcxLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9kZXZsaW5rLmM6MTQ3MjpzdGF0aWMgaW50IHJ2dV9hZl9kbF9uaXhfbWF4bGZfZ2V0KHN0cnVjdCBkZXZsaW5rICpkZXZsaW5rLCB1MzIgaWQsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2RldmxpbmsuYy0xNDczLVxcdFxcdFxcdFxcdCAgIHN0cnVjdCBkZXZsaW5rX3BhcmFtX2dzZXRfY3R4ICpjdHgsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGV2bGluay5jLTE0ODMtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2RldmxpbmsuYzoxNDg0OnN0YXRpYyBpbnQgcnZ1X2FmX2RsX25peF9tYXhsZl9zZXQoc3RydWN0IGRldmxpbmsgKmRldmxpbmssIHUzMiBpZCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGV2bGluay5jLTE0ODUtXFx0XFx0XFx0XFx0ICAgc3RydWN0IGRldmxpbmtfcGFyYW1fZ3NldF9jdHggKmN0eCxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9kZXZsaW5rLmMtMTUwNi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGV2bGluay5jOjE1MDc6c3RhdGljIGludCBydnVfYWZfZGxfbml4X21heGxmX3ZhbGlkYXRlKHN0cnVjdCBkZXZsaW5rICpkZXZsaW5rLCB1MzIgaWQsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2RldmxpbmsuYy0xNTA4LVxcdFxcdFxcdFxcdFxcdHVuaW9uIGRldmxpbmtfcGFyYW1fdmFsdWUgKnZhbCxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9kZXZsaW5rLmMtMTU1Ny1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGV2bGluay5jOjE1NTg6c3RhdGljIGNvbnN0IHN0cnVjdCBkZXZsaW5rX3BhcmFtIHJ2dV9hZl9kbF9wYXJhbXNbXSA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGV2bGluay5jLTE1NTktXFx0REVWTElOS19QQVJBTV9EUklWRVIoUlZVX0FGX0RFVkxJTktfUEFSQU1fSURfRFdSUl9NVFUsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGV2bGluay5jLTE1NjEtXFx0XFx0XFx0ICAgICBCSVQoREVWTElOS19QQVJBTV9DTU9ERV9SVU5USU1FKSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGV2bGluay5jOjE1NjI6XFx0XFx0XFx0ICAgICBydnVfYWZfZGxfZHdycl9tdHVfZ2V0LCBydnVfYWZfZGxfZHdycl9tdHVfc2V0LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9kZXZsaW5rLmM6MTU2MzpcXHRcXHRcXHQgICAgIHJ2dV9hZl9kbF9kd3JyX210dV92YWxpZGF0ZSksXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2RldmxpbmsuYy0xNTY0LVxcdERFVkxJTktfUEFSQU1fRFJJVkVSKFJWVV9BRl9ERVZMSU5LX1BBUkFNX0lEX05QQ19NQ0FNX1pPTkVfUEVSQ0VOVCxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9kZXZsaW5rLmMtMTU2Ni1cXHRcXHRcXHQgICAgIEJJVChERVZMSU5LX1BBUkFNX0NNT0RFX1JVTlRJTUUpLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9kZXZsaW5rLmM6MTU2NzpcXHRcXHRcXHQgICAgIHJ2dV9hZl9kbF9ucGNfbWNhbV9oaWdoX3pvbmVfcGVyY2VudF9nZXQsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2RldmxpbmsuYzoxNTY4OlxcdFxcdFxcdCAgICAgcnZ1X2FmX2RsX25wY19tY2FtX2hpZ2hfem9uZV9wZXJjZW50X3NldCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGV2bGluay5jOjE1Njk6XFx0XFx0XFx0ICAgICBydnVfYWZfZGxfbnBjX21jYW1faGlnaF96b25lX3BlcmNlbnRfdmFsaWRhdGUpLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9kZXZsaW5rLmMtMTU3MC1cXHRERVZMSU5LX1BBUkFNX0RSSVZFUihSVlVfQUZfREVWTElOS19QQVJBTV9JRF9OUENfREVGX1JVTEVfQ05UUl9FTkFCTEUsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGV2bGluay5jLTE1NzItXFx0XFx0XFx0ICAgICBCSVQoREVWTElOS19QQVJBTV9DTU9ERV9SVU5USU1FKSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGV2bGluay5jOjE1NzM6XFx0XFx0XFx0ICAgICBydnVfYWZfZGxfbnBjX2RlZl9ydWxlX2NudHJfZ2V0LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9kZXZsaW5rLmM6MTU3NDpcXHRcXHRcXHQgICAgIHJ2dV9hZl9kbF9ucGNfZGVmX3J1bGVfY250cl9zZXQsIE5VTEwpLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9kZXZsaW5rLmMtMTU3NS1cXHRERVZMSU5LX1BBUkFNX0RSSVZFUihSVlVfQUZfREVWTElOS19QQVJBTV9JRF9OSVhfTUFYTEYsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGV2bGluay5jLTE1NzctXFx0XFx0XFx0ICAgICBCSVQoREVWTElOS19QQVJBTV9DTU9ERV9SVU5USU1FKSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGV2bGluay5jOjE1Nzg6XFx0XFx0XFx0ICAgICBydnVfYWZfZGxfbml4X21heGxmX2dldCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGV2bGluay5jOjE1Nzk6XFx0XFx0XFx0ICAgICBydnVfYWZfZGxfbml4X21heGxmX3NldCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGV2bGluay5jOjE1ODA6XFx0XFx0XFx0ICAgICBydnVfYWZfZGxfbml4X21heGxmX3ZhbGlkYXRlKSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGV2bGluay5jLTE1ODEtfTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGV2bGluay5jLTE1ODItXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2RldmxpbmsuYzoxNTgzOnN0YXRpYyBjb25zdCBzdHJ1Y3QgZGV2bGlua19wYXJhbSBydnVfYWZfZGxfcGFyYW1fZXhhY3RfbWF0Y2hbXSA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGV2bGluay5jLTE1ODQtXFx0REVWTElOS19QQVJBTV9EUklWRVIoUlZVX0FGX0RFVkxJTktfUEFSQU1fSURfTlBDX0VYQUNUX0ZFQVRVUkVfRElTQUJMRSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9kZXZsaW5rLmMtMTU4Ni1cXHRcXHRcXHQgICAgIEJJVChERVZMSU5LX1BBUkFNX0NNT0RFX1JVTlRJTUUpLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9kZXZsaW5rLmM6MTU4NzpcXHRcXHRcXHQgICAgIHJ2dV9hZl9ucGNfZXhhY3RfZmVhdHVyZV9nZXQsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2RldmxpbmsuYzoxNTg4OlxcdFxcdFxcdCAgICAgcnZ1X2FmX25wY19leGFjdF9mZWF0dXJlX2Rpc2FibGUsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2RldmxpbmsuYzoxNTg5OlxcdFxcdFxcdCAgICAgcnZ1X2FmX25wY19leGFjdF9mZWF0dXJlX3ZhbGlkYXRlKSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGV2bGluay5jLTE1OTAtfTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9kZXZsaW5rLmM9MTYwOD1zdGF0aWMgaW50IHJ2dV9kZXZsaW5rX2Vzd2l0Y2hfbW9kZV9zZXQoc3RydWN0IGRldmxpbmsgKmRldmxpbmssIHUxNiBtb2RlLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2RldmxpbmsuYy0xNjMzLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9kZXZsaW5rLmM6MTYzNDpzdGF0aWMgaW50IHJ2dV9hZl9kbF9ucGNfc3JjaF9vcmRlcl9zZXQoc3RydWN0IGRldmxpbmsgKmRldmxpbmssIHUzMiBpZCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGV2bGluay5jLTE2MzUtXFx0XFx0XFx0XFx0XFx0c3RydWN0IGRldmxpbmtfcGFyYW1fZ3NldF9jdHggKmN0eCxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9kZXZsaW5rLmMtMTY0NS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGV2bGluay5jOjE2NDY6c3RhdGljIGludCBydnVfYWZfZGxfbnBjX3NyY2hfb3JkZXJfZ2V0KHN0cnVjdCBkZXZsaW5rICpkZXZsaW5rLCB1MzIgaWQsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2RldmxpbmsuYy0xNjQ3LVxcdFxcdFxcdFxcdFxcdHN0cnVjdCBkZXZsaW5rX3BhcmFtX2dzZXRfY3R4ICpjdHgsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGV2bGluay5jLTE2NjEtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2RldmxpbmsuYzoxNjYyOnN0YXRpYyBpbnQgcnZ1X2FmX2RsX25wY19zcmNoX29yZGVyX3ZhbGlkYXRlKHN0cnVjdCBkZXZsaW5rICpkZXZsaW5rLCB1MzIgaWQsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2RldmxpbmsuYy0xNjYzLVxcdFxcdFxcdFxcdFxcdCAgICAgdW5pb24gZGV2bGlua19wYXJhbV92YWx1ZSAqdmFsLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2RldmxpbmsuYz0xNjk5PXN0YXRpYyBjb25zdCBzdHJ1Y3QgZGV2bGlua19vcHMgcnZ1X2Rldmxpbmtfb3BzID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2RldmxpbmsuYy0xNzAzLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9kZXZsaW5rLmM6MTcwNDpzdGF0aWMgY29uc3Qgc3RydWN0IGRldmxpbmtfcGFyYW0gcnZ1X2FmX2RsX2NuMjBrX3BhcmFtc1tdID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9kZXZsaW5rLmMtMTcwNS1cXHRERVZMSU5LX1BBUkFNX0RSSVZFUihSVlVfQUZfREVWTElOS19QQVJBTV9JRF9OUENfU1JDSF9PUkRFUixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9kZXZsaW5rLmMtMTcwNy1cXHRcXHRcXHQgICAgIEJJVChERVZMSU5LX1BBUkFNX0NNT0RFX1JVTlRJTUUpLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9kZXZsaW5rLmM6MTcwODpcXHRcXHRcXHQgICAgIHJ2dV9hZl9kbF9ucGNfc3JjaF9vcmRlcl9nZXQsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2RldmxpbmsuYzoxNzA5OlxcdFxcdFxcdCAgICAgcnZ1X2FmX2RsX25wY19zcmNoX29yZGVyX3NldCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGV2bGluay5jOjE3MTA6XFx0XFx0XFx0ICAgICBydnVfYWZfZGxfbnBjX3NyY2hfb3JkZXJfdmFsaWRhdGUpLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9kZXZsaW5rLmMtMTcxMS1cXHRERVZMSU5LX1BBUkFNX0RSSVZFUihSVlVfQUZfREVWTElOS19QQVJBTV9JRF9OUENfREVGUkFHLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2RldmxpbmsuYy0xNzEzLVxcdFxcdFxcdCAgICAgQklUKERFVkxJTktfUEFSQU1fQ01PREVfUlVOVElNRSksXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2RldmxpbmsuYzoxNzE0OlxcdFxcdFxcdCAgICAgcnZ1X2FmX25wY19kZWZyYWdfZmVhdHVyZV9nZXQsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2RldmxpbmsuYzoxNzE1OlxcdFxcdFxcdCAgICAgcnZ1X2FmX25wY19kZWZyYWcsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2RldmxpbmsuYzoxNzE2OlxcdFxcdFxcdCAgICAgcnZ1X2FmX25wY19kZWZyYWdfZmVhdHVyZV92YWxpZGF0ZSksXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2RldmxpbmsuYy0xNzE3LX07XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGV2bGluay5jPTE3MTk9aW50IHJ2dV9yZWdpc3Rlcl9kbChzdHJ1Y3QgcnZ1ICpydnUpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGV2bGluay5jLTE3NDMtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2RldmxpbmsuYzoxNzQ0OlxcdGVyciA9IGRldmxpbmtfcGFyYW1zX3JlZ2lzdGVyKGRsLCBydnVfYWZfZGxfcGFyYW1zLCBBUlJBWV9TSVpFKHJ2dV9hZl9kbF9wYXJhbXMpKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGV2bGluay5jLTE3NDUtXFx0aWYgKGVycikge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2RldmxpbmsuYy0xNzUxLVxcdGlmIChpc19jbjIwayhydnUtXFx1MDAzZXBkZXYpKSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2RldmxpbmsuYzoxNzUyOlxcdFxcdGVyciA9IGRldmxpbmtfcGFyYW1zX3JlZ2lzdGVyKGRsLCBydnVfYWZfZGxfY24yMGtfcGFyYW1zLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9kZXZsaW5rLmM6MTc1MzpcXHRcXHRcXHRcXHRcXHQgICAgICBBUlJBWV9TSVpFKHJ2dV9hZl9kbF9jbjIwa19wYXJhbXMpKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGV2bGluay5jLTE3NTQtXFx0XFx0aWYgKGVycikge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2RldmxpbmsuYy0xNzY1LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9kZXZsaW5rLmM6MTc2NjpcXHRlcnIgPSBkZXZsaW5rX3BhcmFtc19yZWdpc3RlcihkbCwgcnZ1X2FmX2RsX3BhcmFtX2V4YWN0X21hdGNoLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9kZXZsaW5rLmM6MTc2NzpcXHRcXHRcXHRcXHQgICAgICBBUlJBWV9TSVpFKHJ2dV9hZl9kbF9wYXJhbV9leGFjdF9tYXRjaCkpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9kZXZsaW5rLmMtMTc2OC1cXHRpZiAoZXJyKSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGV2bGluay5jLTE3ODAtXFx0aWYgKGlzX2NuMjBrKHJ2dS1cXHUwMDNlcGRldikpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2RldmxpbmsuYzoxNzgxOlxcdFxcdGRldmxpbmtfcGFyYW1zX3VucmVnaXN0ZXIoZGwsIHJ2dV9hZl9kbF9jbjIwa19wYXJhbXMsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2RldmxpbmsuYzoxNzgyOlxcdFxcdFxcdFxcdFxcdCAgQVJSQVlfU0laRShydnVfYWZfZGxfY24yMGtfcGFyYW1zKSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2RldmxpbmsuYy0xNzgzLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9kZXZsaW5rLmMtMTc4NC1lcnJfZGxfY24yMGtfcGFyYW1zOlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9kZXZsaW5rLmM6MTc4NTpcXHRkZXZsaW5rX3BhcmFtc191bnJlZ2lzdGVyKGRsLCBydnVfYWZfZGxfcGFyYW1zLCBBUlJBWV9TSVpFKHJ2dV9hZl9kbF9wYXJhbXMpKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGV2bGluay5jLTE3ODYtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGV2bGluay5jPTE3OTM9dm9pZCBydnVfdW5yZWdpc3Rlcl9kbChzdHJ1Y3QgcnZ1ICpydnUpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGV2bGluay5jLTE3OTktXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2RldmxpbmsuYzoxODAwOlxcdGRldmxpbmtfcGFyYW1zX3VucmVnaXN0ZXIoZGwsIHJ2dV9hZl9kbF9wYXJhbXMsIEFSUkFZX1NJWkUocnZ1X2FmX2RsX3BhcmFtcykpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9kZXZsaW5rLmMtMTgwMS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGV2bGluay5jLTE4MDItXFx0aWYgKGlzX2NuMjBrKHJ2dS1cXHUwMDNlcGRldikpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2RldmxpbmsuYzoxODAzOlxcdFxcdGRldmxpbmtfcGFyYW1zX3VucmVnaXN0ZXIoZGwsIHJ2dV9hZl9kbF9jbjIwa19wYXJhbXMsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2RldmxpbmsuYzoxODA0OlxcdFxcdFxcdFxcdFxcdCAgQVJSQVlfU0laRShydnVfYWZfZGxfY24yMGtfcGFyYW1zKSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2RldmxpbmsuYy0xODA1LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2RldmxpbmsuYy0xODA3LVxcdGlmIChydnVfbnBjX2V4YWN0X2hhc19tYXRjaF90YWJsZShydnUpKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9kZXZsaW5rLmM6MTgwODpcXHRcXHRkZXZsaW5rX3BhcmFtc191bnJlZ2lzdGVyKGRsLCBydnVfYWZfZGxfcGFyYW1fZXhhY3RfbWF0Y2gsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2RldmxpbmsuYzoxODA5OlxcdFxcdFxcdFxcdFxcdCAgQVJSQVlfU0laRShydnVfYWZfZGxfcGFyYW1fZXhhY3RfbWF0Y2gpKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGV2bGluay5jLTE4MTAtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfc3RydWN0Lmg9NDM9ZW51bSBydnVfYmxvY2tfdHlwZV9lIHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9zdHJ1Y3QuaC01OS0vKiBSVlUgQWRtaW4gZnVuY3Rpb24gSW50ZXJydXB0IFZlY3RvciBFbnVtZXJhdGlvbiAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9zdHJ1Y3QuaDo2MDplbnVtIHJ2dV9hZl9pbnRfdmVjX2Uge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9zdHJ1Y3QuaC02MS1cXHRSVlVfQUZfSU5UX1ZFQ19QT0lTT04gPSAweDAsXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTEzVDE0OjMxOjA2LjU5MTI2OTEzNVoiLCJTZXEiOjcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy44LWZsYXNoIiwiRHVyYXRpb24iOjI1MTEwOTY5ODYsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBteSBzdW1tYXJ5LCBhcyB0aG91Z2ggSSdtIHRoaW5raW5nIHRocm91Z2ggdGhpcyBwcm9jZXNzOlxuXG4qKkRpdmluZyBpbnRvIHRoZSBNYXJ2ZWxsIE9jdGVvbiBUWDIgRXRoZXJuZXQgRHJpdmVyIENvbmZpZ3VyYXRpb24qKlxuXG5Pa2F5LCB0aW1lIHRvIGdldCBhIGhhbmRsZSBvbiB0aGUgY29uZmlndXJhdGlvbiBvcHRpb25zIGZvciB0aGlzIE9jdGVvbiBUWDIgZXRoZXJuZXQgZHJpdmVyLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCB3aGF0IGtub2JzIGFyZSBhdmFpbGFibGUsIHdoYXQgZmVhdHVyZXMgY2FuIGJlIGVuYWJsZWQgb3IgZGlzYWJsZWQsIGFuZCBob3cgZXZlcnl0aGluZyBpcyBzdHJ1Y3R1cmVkLiBUaGUgZmlyc3QgcGxhY2UgdG8gbG9vaywgb2YgY291cnNlLCBpcyB0aGUgS2NvbmZpZyBmaWxlLiBMZXQncyBzdGFydCBieSBuYXZpZ2F0aW5nIHRvIGBkcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9LY29uZmlnYC4gSG9wZWZ1bGx5LCB0aGlzIHdpbGwgZ2l2ZSBtZSBhIGNsZWFyIHBpY3R1cmUgb2YgdGhlIGJ1aWxkLXRpbWUgY29uZmlndXJhdGlvbiBwYXJhbWV0ZXJzIEkgY2FuIHR3ZWFrLiBJJ20gZXhwZWN0aW5nIHRvIGZpbmQgb3B0aW9ucyBmb3IgdGhpbmdzIGxpa2UgZmxvdyBjb250cm9sLCBqdW1ibyBmcmFtZXMsIGNoZWNrc3VtIG9mZmxvYWQsIG1heWJlIGV2ZW4gc3BlY2lmaWMgaGFyZHdhcmUgcmV2aXNpb25zIG9yIFBIWSB0eXBlcy4gVGhpcyBpcyB0aGUgYmVkcm9jayBvZiB0aGUgY29uZmlndXJhdGlvbiwgc28gdGhpcyBpcyB3aGVyZSBJIG5lZWQgdG8gc3RhcnQuIEZyb20gaGVyZSwgSSBjYW4gZ2V0IGEgZmVlbCBmb3IgdGhlIHVuZGVybHlpbmcgYXJjaGl0ZWN0dXJlIGFuZCBob3cgdG8gcHJvcGVybHkgY29uZmlndXJlIHRoaXMgZHJpdmVyIGZvciBpdHMgdmFyaW91cyB1c2UgY2FzZXMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjE0NTY0LCJPdXRwdXRUb2tlbnMiOjM2LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjQsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDktMTNUMTQ6MzE6MDkuMTAyMzcxNDJaIiwiU2VxIjo4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NTQzOTgwOTIsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY29uZmlnIE9DVEVPTlRYMlwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9LY29uZmlnLTUtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvS2NvbmZpZzo2OmNvbmZpZyBPQ1RFT05UWDJfTUJPWFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL0tjb25maWctNy1cXHR0cmlzdGF0ZVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL0tjb25maWctOC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9LY29uZmlnOjk6Y29uZmlnIE9DVEVPTlRYMl9BRlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL0tjb25maWctMTAtXFx0dHJpc3RhdGUgXFxcIk1hcnZlbGwgT2N0ZW9uVFgyIFJWVSBBZG1pbiBGdW5jdGlvbiBkcml2ZXJcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9LY29uZmlnPTIyPWNvbmZpZyBORENfRElTX0RZTkFNSUNfQ0FDSElOR1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvS2NvbmZpZy0zMC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9LY29uZmlnOjMxOmNvbmZpZyBPQ1RFT05UWDJfUEZcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9LY29uZmlnLTMyLVxcdHRyaXN0YXRlIFxcXCJNYXJ2ZWxsIE9jdGVvblRYMiBOSUMgUGh5c2ljYWwgRnVuY3Rpb24gZHJpdmVyXFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvS2NvbmZpZy00NC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9LY29uZmlnOjQ1OmNvbmZpZyBPQ1RFT05UWDJfVkZcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9LY29uZmlnLTQ2LVxcdHRyaXN0YXRlIFxcXCJNYXJ2ZWxsIE9jdGVvblRYMiBOSUMgVmlydHVhbCBGdW5jdGlvbiBkcml2ZXJcXFwiXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTEzVDE0OjMxOjA5LjE1Njc3Njg4MloiLCJTZXEiOjksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy44LWZsYXNoIiwiRHVyYXRpb24iOjMwMDM2OTE5ODMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBteSB0YWtlIG9uIHRoZSBgZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvS2NvbmZpZ2AgZmlsZTpcblxuKipEaXZpbmcgaW50byB0aGUgT2N0ZW9uIFRYMiBLY29uZmlnKipcblxuT2theSwgc28gSSdtIGFib3V0IHRvIGRpZyBpbnRvIHRoZSBjb25maWd1cmF0aW9uIGZpbGUgZm9yIHRoZSBPY3Rlb24gVFgyIEV0aGVybmV0IGRyaXZlci4gTXkgZXhwZWN0YXRpb24gaXMgdGhpcyBpcyB3aGVyZSB0aGUgbWVhdCBvZiB0aGUgZHJpdmVyJ3MgYnVpbGQtdGltZSBvcHRpb25zIGFuZCBkZXBlbmRlbmNpZXMgd2lsbCByZXNpZGUuIEknbSBsb29raW5nIGZvciB0aGUgdXN1YWwgc3VzcGVjdHM6IGZlYXR1cmUgZmxhZ3MsIG1vZHVsZSBzZWxlY3Rpb24sIGFuZCBhbnkgcGxhdGZvcm0tc3BlY2lmaWMgY29uZmlndXJhdGlvbnMuIEknbGwgbmVlZCB0byB1bmRlcnN0YW5kIHdoYXQgYXNwZWN0cyBhcmUgY29uZmlndXJhYmxlLCB3aGljaCBmZWF0dXJlcyBhcmUgZW5hYmxlZCBvciBkaXNhYmxlZCBieSBkZWZhdWx0LCBhbmQgaG93IHRoZSBkcml2ZXIgaW50ZXJhY3RzIHdpdGggdGhlIHJlc3Qgb2YgdGhlIGtlcm5lbCBidWlsZCBzeXN0ZW0uIFRoaXMgaXMgY3J1Y2lhbCBmb3IgY3VzdG9taXppbmcgdGhlIGRyaXZlciB0byBzcGVjaWZpYyBoYXJkd2FyZSBjb25maWd1cmF0aW9ucyBvciBwZXJmb3JtYW5jZSByZXF1aXJlbWVudHMsIGFuZCBmb3IgcmVzb2x2aW5nIGFueSBidWlsZCBjb25mbGljdHMgaWYgdGhlIHByb2plY3QgaXMgYmVpbmcgY29tcGlsZWQgZm9yIGEgZGlmZmVyZW50IHRhcmdldC4gSSdsbCBzdGFydCB3aXRoIHRoZSBmaWxlJ3Mgc3RydWN0dXJlLiBJJ2xsIHBheSBjbG9zZSBhdHRlbnRpb24gdG8gdGhlIGRlcGVuZGVuY2llcyBhbmQgYW55IGBzZWxlY3RgIHN0YXRlbWVudHMsIHNpbmNlIHRob3NlIHdpbGwgZGljdGF0ZSB3aGljaCBvdGhlciBwYXJ0cyBvZiB0aGUgZHJpdmVyIG9yIGtlcm5lbCBhcmUgcHVsbGVkIGluIGJhc2VkIG9uIG15IGNob2ljZXMuIEl0IHdpbGwgYmUgaGVscGZ1bCB0byBzZWUgYW55IGNvbW1lbnRzLCBzaW5jZSB0aGVzZSBjb250YWluIHZpdGFsIGluZm9ybWF0aW9uLiBJJ20gY3VyaW91cyB3aGF0IGtpbmQgb2YgZ3JhbnVsYXJpdHkgdGhleSBvZmZlci4gSSdtIGFsc28gbG9va2luZyBmb3IgYW55IGNsdWVzIHJlZ2FyZGluZyB3aGF0J3MgY29uc2lkZXJlZCBleHBlcmltZW50YWwgb3Igbm90IHlldCBmdWxseSBiYWtlZC4gRmluYWxseSwgSSdsbCBuZWVkIHRvIGNyb3NzLXJlZmVyZW5jZSB0aGlzIHdpdGggdGhlIGRyaXZlciBjb2RlIGl0c2VsZiB0byBmdWxseSBncmFzcCB0aGUgcmFtaWZpY2F0aW9ucyBvZiBlYWNoIGNvbmZpZ3VyYXRpb24gb3B0aW9uLiBMZXQncyBzZWUgd2hhdCB3ZSd2ZSBnb3QuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjE1MjQ3LCJPdXRwdXRUb2tlbnMiOjQ0LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjQsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDktMTNUMTQ6MzE6MTIuMTYwNDcyMjY1WiIsIlNlcSI6MTAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InJlYWQtZmlsZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjgxMjYwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRmlsZVwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL0tjb25maWdcIixcbiAgXCJGaXJzdExpbmVcIjogMSxcbiAgXCJMaW5lQ291bnRcIjogNjBcbn0iLCJSZXN1bHRzIjoie1xuICBcIkNvbnRlbnRzXCI6IFwiICAgMTpcXHQjIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHlcXG4gICAyOlxcdCNcXG4gICAzOlxcdCMgTWFydmVsbCBSVlUgTmV0d29yayBkcml2ZXJzIGNvbmZpZ3VyYXRpb25cXG4gICA0OlxcdCNcXG4gICA1OlxcdFxcbiAgIDY6XFx0Y29uZmlnIE9DVEVPTlRYMl9NQk9YXFxuICAgNzpcXHRcXHR0cmlzdGF0ZVxcbiAgIDg6XFx0XFxuICAgOTpcXHRjb25maWcgT0NURU9OVFgyX0FGXFxuICAxMDpcXHRcXHR0cmlzdGF0ZSBcXFwiTWFydmVsbCBPY3Rlb25UWDIgUlZVIEFkbWluIEZ1bmN0aW9uIGRyaXZlclxcXCJcXG4gIDExOlxcdFxcdHNlbGVjdCBPQ1RFT05UWDJfTUJPWFxcbiAgMTI6XFx0XFx0c2VsZWN0IE5FVF9ERVZMSU5LXFxuICAxMzpcXHRcXHRkZXBlbmRzIG9uICg2NEJJVCBcXHUwMDI2XFx1MDAyNiBDT01QSUxFX1RFU1QpIHx8IEFSTTY0XFxuICAxNDpcXHRcXHRkZXBlbmRzIG9uIFBDSVxcbiAgMTU6XFx0XFx0ZGVwZW5kcyBvbiBQVFBfMTU4OF9DTE9DS19PUFRJT05BTFxcbiAgMTY6XFx0XFx0aGVscFxcbiAgMTc6XFx0XFx0ICBUaGlzIGRyaXZlciBzdXBwb3J0cyBNYXJ2ZWxsJ3MgT2N0ZW9uVFgyIFJlc291cmNlIFZpcnR1YWxpemF0aW9uXFxuICAxODpcXHRcXHQgIFVuaXQncyBhZG1pbiBmdW5jdGlvbiBtYW5hZ2VyIHdoaWNoIG1hbmFnZXMgYWxsIFJWVSBIVyByZXNvdXJjZXNcXG4gIDE5OlxcdFxcdCAgYW5kIHByb3ZpZGVzIGEgbWVkaXVtIHRvIG90aGVyIFBGL1ZGcyB0byBjb25maWd1cmUgSFcuIFNob3VsZCBiZVxcbiAgMjA6XFx0XFx0ICBlbmFibGVkIGZvciBvdGhlciBSVlUgZGV2aWNlIGRyaXZlcnMgdG8gd29yay5cXG4gIDIxOlxcdFxcbiAgMjI6XFx0Y29uZmlnIE5EQ19ESVNfRFlOQU1JQ19DQUNISU5HXFxuICAyMzpcXHRcXHRib29sIFxcXCJEaXNhYmxlIGNhY2hpbmcgb2YgZHluYW1pYyBlbnRyaWVzIGluIE5EQ1xcXCJcXG4gIDI0OlxcdFxcdGRlcGVuZHMgb24gT0NURU9OVFgyX0FGXFxuICAyNTpcXHRcXHRkZWZhdWx0IG5cXG4gIDI2OlxcdFxcdGhlbHBcXG4gIDI3OlxcdFxcdCAgVGhpcyBjb25maWcgb3B0aW9uIGRpc2FibGVzIGNhY2hpbmcgb2YgZHluYW1pYyBlbnRyaWVzIHN1Y2ggYXMgTklYIFNRRXNcXG4gIDI4OlxcdFxcdCAgLCBOUEEgc3RhY2sgcGFnZXMgZXRjIGluIE5EQy4gQWxzbyBsb2NrcyBkb3duIE5JWCBTUS9DUS9SUS9SU1MgYW5kXFxuICAyOTpcXHRcXHQgIE5QQSBBdXJhL1Bvb2wgY29udGV4dHMuXFxuICAzMDpcXHRcXG4gIDMxOlxcdGNvbmZpZyBPQ1RFT05UWDJfUEZcXG4gIDMyOlxcdFxcdHRyaXN0YXRlIFxcXCJNYXJ2ZWxsIE9jdGVvblRYMiBOSUMgUGh5c2ljYWwgRnVuY3Rpb24gZHJpdmVyXFxcIlxcbiAgMzM6XFx0XFx0c2VsZWN0IE9DVEVPTlRYMl9NQk9YXFxuICAzNDpcXHRcXHRzZWxlY3QgTkVUX0RFVkxJTktcXG4gIDM1OlxcdFxcdHNlbGVjdCBQQUdFX1BPT0xcXG4gIDM2OlxcdFxcdHNlbGVjdCBDUllQVE9fTElCX0FFUyBpZiBNQUNTRUNcXG4gIDM3OlxcdFxcdGRlcGVuZHMgb24gKDY0QklUIFxcdTAwMjZcXHUwMDI2IENPTVBJTEVfVEVTVCkgfHwgQVJNNjRcXG4gIDM4OlxcdFxcdHNlbGVjdCBESU1MSUJcXG4gIDM5OlxcdFxcdGRlcGVuZHMgb24gUENJXFxuICA0MDpcXHRcXHRkZXBlbmRzIG9uIFBUUF8xNTg4X0NMT0NLX09QVElPTkFMXFxuICA0MTpcXHRcXHRkZXBlbmRzIG9uIE1BQ1NFQyB8fCAhTUFDU0VDXFxuICA0MjpcXHRcXHRoZWxwXFxuICA0MzpcXHRcXHQgIFRoaXMgZHJpdmVyIHN1cHBvcnRzIE1hcnZlbGwncyBPY3Rlb25UWDIgTklDIHBoeXNpY2FsIGZ1bmN0aW9uLlxcbiAgNDQ6XFx0XFxuICA0NTpcXHRjb25maWcgT0NURU9OVFgyX1ZGXFxuICA0NjpcXHRcXHR0cmlzdGF0ZSBcXFwiTWFydmVsbCBPY3Rlb25UWDIgTklDIFZpcnR1YWwgRnVuY3Rpb24gZHJpdmVyXFxcIlxcbiAgNDc6XFx0XFx0ZGVwZW5kcyBvbiBPQ1RFT05UWDJfUEZcXG4gIDQ4OlxcdFxcdGhlbHBcXG4gIDQ5OlxcdFxcdCAgVGhpcyBkcml2ZXIgc3VwcG9ydHMgTWFydmVsbCdzIE9jdGVvblRYMiBOSUMgdmlydHVhbCBmdW5jdGlvbi5cXG4gIDUwOlxcdFxcbiAgNTE6XFx0Y29uZmlnIFJWVV9FU1dJVENIXFxuICA1MjpcXHRcXHR0cmlzdGF0ZSBcXFwiTWFydmVsbCBSVlUgRS1Td2l0Y2ggc3VwcG9ydFxcXCJcXG4gIDUzOlxcdFxcdGRlcGVuZHMgb24gT0NURU9OVFgyX1BGXFxuICA1NDpcXHRcXHRkZWZhdWx0IG1cXG4gIDU1OlxcdFxcdGhlbHBcXG4gIDU2OlxcdFxcdCAgVGhpcyBkcml2ZXIgc3VwcG9ydHMgTWFydmVsbCdzIFJWVSBFLVN3aXRjaCB0aGF0XFxuICA1NzpcXHRcXHQgIHByb3ZpZGVzIGludGVybmFsIFNSSU9WIHBhY2tldCBzdGVlcmluZyBhbmQgc3dpdGNoaW5nLlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOS0xM1QxNDozMToxMi4xNjA1NTYzMDZaIiwiU2VxIjoxMSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjgtZmxhc2giLCJEdXJhdGlvbiI6MTE2NzI1Njg3MTgsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBNYXJ2ZWxsIE9jdGVvblRYMiBEcml2ZXIqKlxuXG5Pa2F5LCBsZXQncyBicmVhayB0aGlzIGRvd24uIEZpcnN0LCBJIHNlZSB0aGUgZGVwZW5kZW5jeTogYCg2NEJJVCBcdTAwMjZcdTAwMjYgQ09NUElMRV9URVNUKSB8fCBBUk02NGAuIFRoYXQgdGVsbHMgbWUgdGhpcyBtb2R1bGUgaXMgbGlrZWx5IHRhcmdldGVkIHRvd2FyZHMgNjQtYml0IGFyY2hpdGVjdHVyZXMsIGFuZCBwb3NzaWJseSBpbmNsdWRlcyBzb21lIHRlc3Rpbmcgb3IgYnVpbGQtdGltZSBjaGVja3MsIG9yIEFSTTY0LiBJbnRlcmVzdGluZy4gVGhlbiBJIHNwb3QgdGhlIGBQQ0lgIGRlcGVuZGVuY3kuIFRoYXQgaW1tZWRpYXRlbHkgbmFycm93cyBkb3duIHRoZSBoYXJkd2FyZSBpbnRlcmFjdGlvbjsgdGhpcyB0aGluZyBpcyBkZWFsaW5nIHdpdGggUGVyaXBoZXJhbCBDb21wb25lbnQgSW50ZXJjb25uZWN0LCB3aGljaCBpcyBubyBzdXJwcmlzZSBnaXZlbiBpdHMgbGlrZWx5IHJvbGUgaW4gbmV0d29yayBhY2NlbGVyYXRpb24uXG5cblRoZW4gSSByZWFkIHRoZSBkcml2ZXIgZGVzY3JpcHRpb246IFwiVGhpcyBkcml2ZXIgc3VwcG9ydHMgTWFydmVsbCdzIE9jdGVvblRYMiBSZXNvdXJjZSBWaXJ0dWFsaXphdGlvbiBVbml0J3MgYWRtaW4gZnVuY3Rpb24gbWFuYWdlciB3aGljaCBtYW5hZ2VzIGFsbCBSVlUgSFcgcmVzb3VyY2VzIGFuZCBwcm92aWRlcyBhIG1lZGl1bSB0byBvdGhlciBQRi9WRnMgdG8gY29uZmlndXJlIEhXLlwiIFJpZ2h0LCBiaW5nbyEgVGhhdCdzIHRoZSBrZXkuIFRoaXMgaXMgYSBkcml2ZXIgc3BlY2lmaWNhbGx5IGZvciB0aGUgTWFydmVsbCBPY3Rlb25UWDIsIG9yIHBlcmhhcHMgYSBDTjlLL0NOMTBLIGNoaXAuIEl0J3MgaGFuZGxpbmcgdGhlIFJlc291cmNlIFZpcnR1YWxpemF0aW9uIFVuaXQgKFJWVSkg4oCTIHByb2JhYmx5IG1hbmFnaW5nIHRoZSBoYXJkd2FyZSByZXNvdXJjZXMgYW5kIHByb3ZpZGluZyBjb25maWd1cmF0aW9uIGludGVyZmFjZXMgZm9yIG90aGVyIGZ1bmN0aW9ucy5cblxuVGltZSB0byBkaXZlIGluLiBJJ20gZ29pbmcgdG8gd2FudCB0byBmb2N1cyBvbiBgbWNzX3J2dV9pZi5jYCBhbmQgdGFrZSBhIGxvb2sgYXQgYHJ2dV9tY3NfcHRwX2NmZ2AuIFRoZXNlIGFyZSBwcm9iYWJseSB0aGUgY29yZSBmaWxlcyB0aGF0IGRlZmluZSB0aGUgaW50ZXJmYWNlIGFuZCBQVFAgKFByZWNpc2lvbiBUaW1lIFByb3RvY29sKSBjb25maWd1cmF0aW9uIGZvciB0aGUgUlZVLiBUaGF0J3Mgd2hlcmUgdGhlIHJlYWwgbWVhdCBvZiB0aGUgbG9naWMgd2lsbCBiZS4gTGV0J3Mgc2VlIHdoYXQgdGhleSdyZSBkb2luZy4uLlxuXG5cbiIsIklucHV0VG9rZW5zIjoxNjQzMywiT3V0cHV0VG9rZW5zIjo1MywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjEzMiwiVG9vbENhbGxzIjpbInJlYWQtZmlsZSJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTEzVDE0OjMxOjIzLjgzMzEyOTI3NFoiLCJTZXEiOjEyLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJyZWFkLWZpbGUiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo5NjY0MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkZpbGVcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9tY3NfcnZ1X2lmLmNcIixcbiAgXCJGaXJzdExpbmVcIjogNDAsXG4gIFwiTGluZUNvdW50XCI6IDQwXG59IiwiUmVzdWx0cyI6IntcbiAgXCJDb250ZW50c1wiOiBcIiAgNDA6XFx0XFx0dTggcG9ydDtcXG4gIDQxOlxcdFxcbiAgNDI6XFx0XFx0aWYgKCFydnUtXFx1MDAzZW1jc19ibGtfY250KVxcbiAgNDM6XFx0XFx0XFx0cmV0dXJuO1xcbiAgNDQ6XFx0XFxuICA0NTpcXHRcXHQvKiBXaGVuIHB0cCBpcyBlbmFibGVkLCBSUE0gYXBwZW5kcyA4QiBoZWFkZXIgZm9yIGFsbFxcbiAgNDY6XFx0XFx0ICogUlggcGFja2V0cy4gTUNTIFBFWCBuZWVkIHRvIGNvbmZpZ3VyZSB0byBza2lwIDhCXFxuICA0NzpcXHRcXHQgKiBkdXJpbmcgcGFja2V0IHBhcnNpbmcuXFxuICA0ODpcXHRcXHQgKi9cXG4gIDQ5OlxcdFxcbiAgNTA6XFx0XFx0LyogQ05GMTBLLUIgKi9cXG4gIDUxOlxcdFxcdGlmIChydnUtXFx1MDAzZW1jc19ibGtfY250IFxcdTAwM2UgMSkge1xcbiAgNTI6XFx0XFx0XFx0bWNzID0gbWNzX2dldF9wZGF0YShycG1faWQpO1xcbiAgNTM6XFx0XFx0XFx0aWYgKCFtY3MpXFxuICA1NDpcXHRcXHRcXHRcXHRyZXR1cm47XFxuICA1NTpcXHRcXHRcXHRjZmcgPSBtY3NfcmVnX3JlYWQobWNzLCBNQ1NYX1BFWF9SWF9TTEFWRV9QRVhfQ09ORklHVVJBVElPTik7XFxuICA1NjpcXHRcXHRcXHRpZiAoZW5hKVxcbiAgNTc6XFx0XFx0XFx0XFx0Y2ZnIHw9IEJJVF9VTEwobG1hY19pZCk7XFxuICA1ODpcXHRcXHRcXHRlbHNlXFxuICA1OTpcXHRcXHRcXHRcXHRjZmcgXFx1MDAyNj0gfkJJVF9VTEwobG1hY19pZCk7XFxuICA2MDpcXHRcXHRcXHRtY3NfcmVnX3dyaXRlKG1jcywgTUNTWF9QRVhfUlhfU0xBVkVfUEVYX0NPTkZJR1VSQVRJT04sIGNmZyk7XFxuICA2MTpcXHRcXHRcXHRyZXR1cm47XFxuICA2MjpcXHRcXHR9XFxuICA2MzpcXHRcXHQvKiBDTjEwS0IgKi9cXG4gIDY0OlxcdFxcdG1jcyA9IG1jc19nZXRfcGRhdGEoMCk7XFxuICA2NTpcXHRcXHRwb3J0ID0gKHJwbV9pZCAqIHJ2dS1cXHUwMDNlaHctXFx1MDAzZWxtYWNfcGVyX2NneCkgKyBsbWFjX2lkO1xcbiAgNjY6XFx0XFx0Y2ZnID0gbWNzX3JlZ19yZWFkKG1jcywgTUNTWF9QRVhfUlhfU0xBVkVfUE9SVF9DRkdYKHBvcnQpKTtcXG4gIDY3OlxcdFxcdGlmIChlbmEpXFxuICA2ODpcXHRcXHRcXHRjZmcgfD0gQklUX1VMTCgwKTtcXG4gIDY5OlxcdFxcdGVsc2VcXG4gIDcwOlxcdFxcdFxcdGNmZyBcXHUwMDI2PSB+QklUX1VMTCgwKTtcXG4gIDcxOlxcdFxcdG1jc19yZWdfd3JpdGUobWNzLCBNQ1NYX1BFWF9SWF9TTEFWRV9QT1JUX0NGR1gocG9ydCksIGNmZyk7XFxuICA3MjpcXHR9XFxuICA3MzpcXHRcXG4gIDc0OlxcdGludCBydnVfbWJveF9oYW5kbGVyX21jc19zZXRfbG1hY19tb2RlKHN0cnVjdCBydnUgKnJ2dSxcXG4gIDc1OlxcdFxcdFxcdFxcdFxcdCAgICAgICBzdHJ1Y3QgbWNzX3NldF9sbWFjX21vZGUgKnJlcSxcXG4gIDc2OlxcdFxcdFxcdFxcdFxcdCAgICAgICBzdHJ1Y3QgbXNnX3JzcCAqcnNwKVxcbiAgNzc6XFx0e1xcbiAgNzg6XFx0XFx0c3RydWN0IG1jcyAqbWNzO1xcbiAgNzk6XFx0XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTEzVDE0OjMxOjIzLjgzMzIyNzk5NFoiLCJTZXEiOjEzLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuOC1mbGFzaCIsIkR1cmF0aW9uIjoyNTEwOTA4OTI1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgaW50ZXJwcmV0YXRpb24gb2YgdGhhdCB0aG91Z2h0IHByb2Nlc3MsIGFzc3VtaW5nIEknbSBkZWVwIGluIHRoZSB3ZWVkcyBvZiBkZWJ1Z2dpbmcgb3IgdW5kZXJzdGFuZGluZyBhIGNvbXBsZXggc3lzdGVtOlxuXG4qKkh1bnRpbmcgRG93biB0aGUgQ2FsbGVyOiBgcnZ1X21jc19wdHBfY2ZnYCoqXG5cbkFscmlnaHQsIHRpbWUgdG8gZ2V0IHRvIHRoZSBib3R0b20gb2YgdGhpcy4gTXkgZm9jdXMgaXMgbGFzZXItdGFyZ2V0ZWQgb24gYHJ2dV9tY3NfcHRwX2NmZ2AuIEkgbmVlZCB0byBmaWd1cmUgb3V0ICp3aGF0KiBpcyBjYWxsaW5nIHRoaXMgZnVuY3Rpb24uIFRoYXQncyB0aGUga2V5IHRvIHVuZGVyc3RhbmRpbmcgaXRzIGJlaGF2aW9yLCBpdHMgaW1wYWN0LCBhbmQgcG90ZW50aWFsbHksIHRoZSBzb3VyY2Ugb2YgYW55IGlzc3VlcyBJJ20gc2VlaW5nLiBUaGlzIGlzbid0IGEgY2FzdWFsIGV4cGxvcmF0aW9uOyBJJ20gYWN0aXZlbHkgcHVyc3VpbmcgdGhlIGNhbGwgZ3JhcGguIExldCdzIGRpZyBpbiBhbmQgdHJhY2sgZG93biB0aGUgdXBzdHJlYW0gZGVwZW5kZW5jeS4gSSBoYXZlIHRvIHRyYWNlIGJhY2sgdGhlIGV4ZWN1dGlvbiBwYXRoIGFuZCB1bmNvdmVyIHRoZSBpbml0aWF0aW5nIHByb2Nlc3Mgb3IgY29tcG9uZW50IHJlc3BvbnNpYmxlIGZvciB0cmlnZ2VyaW5nIHRoaXMgcGFydGljdWxhciBmdW5jdGlvbi4gSXTigJlzIGxpa2UgYSBkZXRlY3RpdmUgc2VhcmNoaW5nIGZvciBjbHVlcyDigJMgdGhlIGNhbGxpbmcgY29kZSBpcyB0aGUgcHJpbWUgc3VzcGVjdCwgYW5kIEkgbmVlZCB0byBnYXRoZXIgYWxsIHRoZSBldmlkZW5jZS4gU28sIEknbSBtZW50YWxseSwgYW5kIHBlcmhhcHMgd2l0aCBzb21lIHRvb2xzLCBkaXZpbmcgaW4gdG8gZmluZCBvdXQgd2hlcmUgdGhpcyBmdW5jdGlvbiBpcyBiZWluZyBpbnZva2VkIGZyb20uIEkgbmVlZCB0byB1bmRlcnN0YW5kIGl0cyBjb250ZXh0LlxuXG5cbiIsIklucHV0VG9rZW5zIjoxNzU1MywiT3V0cHV0VG9rZW5zIjozOSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE3LCJUb29sQ2FsbHMiOlsicmVhZC1maWxlIl19LHsiU3RhcnRlZCI6IjIwMjYtMDktMTNUMTQ6MzE6MjYuMzQ0MTQxODFaIiwiU2VxIjoxNCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjU4NDQ0Mzc2LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInJ2dV9tY3NfcHRwX2NmZ1wiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9tY3NfcnZ1X2lmLmM9MzM9TUJPWF9VUF9NQ1NfTUVTU0FHRVNcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL21jc19ydnVfaWYuYy0zNS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9tY3NfcnZ1X2lmLmM6MzY6dm9pZCBydnVfbWNzX3B0cF9jZmcoc3RydWN0IHJ2dSAqcnZ1LCB1OCBycG1faWQsIHU4IGxtYWNfaWQsIGJvb2wgZW5hKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL21jc19ydnVfaWYuYy0zNy17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuaD0xMTkxPWludCBydnVfbWNzX2Zscl9oYW5kbGVyKHN0cnVjdCBydnUgKnJ2dSwgdTE2IHBjaWZ1bmMpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5oOjExOTI6dm9pZCBydnVfbWNzX3B0cF9jZmcoc3RydWN0IHJ2dSAqcnZ1LCB1OCBycG1faWQsIHU4IGxtYWNfaWQsIGJvb2wgZW5hKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuaC0xMTkzLXZvaWQgcnZ1X21jc19leGl0KHN0cnVjdCBydnUgKnJ2dSk7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfY2d4LmM9ODIzPXN0YXRpYyBpbnQgcnZ1X2NneF9wdHBfcnhfY2ZnKHN0cnVjdCBydnUgKnJ2dSwgdTE2IHBjaWZ1bmMsIGJvb2wgZW5hYmxlKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2NneC5jLTg1NC1cXHQvKiBJbmZvcm0gTUNTIGFib3V0IDhCIFJYIGhlYWRlciAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9jZ3guYzo4NTU6XFx0cnZ1X21jc19wdHBfY2ZnKHJ2dSwgY2d4X2lkLCBsbWFjX2lkLCBlbmFibGUpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9jZ3guYy04NTYtXFx0cmV0dXJuIDA7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTEzVDE0OjMxOjI2LjQwMjU5MzM4NloiLCJTZXEiOjE1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuOC1mbGFzaCIsIkR1cmF0aW9uIjoxNDU4MzUzNDE2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgYSBzdW1tYXJ5IG9mIG15IHRob3VnaHQgcHJvY2VzczpcblxuKipJbnZlc3RpZ2F0aW5nIFBDSSBEZXZpY2UgQmluZGluZ3MqKlxuXG5Pa2F5LCBsZXQncyBkaXZlIGluLiBJIG5lZWQgdG8gZmlndXJlIG91dCB3aGljaCBQQ0kgZGV2aWNlcyB0aGUgYHJ2dV9hZmAgZHJpdmVyIGlzIGN1cnJlbnRseSBib3VuZCB0by4gVGhpcyBpcyBhIGNyaXRpY2FsIGZpcnN0IHN0ZXAgZm9yIHVuZGVyc3RhbmRpbmcgdGhlIHN5c3RlbSdzIGNvbmZpZ3VyYXRpb24gYW5kIGhvdyB0aGlzIHBhcnRpY3VsYXIgZHJpdmVyIGlzIGludGVyYWN0aW5nIHdpdGggdGhlIGhhcmR3YXJlLiBJIG5lZWQgdG8gZ2V0IGEgY2xlYXIgcGljdHVyZSBvZiB3aGF0J3MgaGFwcGVuaW5nIHVuZGVyIHRoZSBob29kLiBUaW1lIHRvIGdldCB0byB3b3JrIVxuXG5cbiIsIklucHV0VG9rZW5zIjoxODM4NCwiT3V0cHV0VG9rZW5zIjo0NCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE2LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTEzVDE0OjMxOjI3Ljg2MDk1MTQ3MloiLCJTZXEiOjE2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDgzNzI0MDYsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwicGNpX2RldmljZV9pZFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY2d4LmM9NjM9c3RhdGljIGludCBjZ3hfZndpX2xpbmtfY2hhbmdlKHN0cnVjdCBjZ3ggKmNneCwgaW50IGxtYWNfaWQsIGJvb2wgZW4pO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY2d4LmMtNjUtLyogU3VwcG9ydGVkIGRldmljZXMgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jZ3guYzo2NjpzdGF0aWMgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgY2d4X2lkX3RhYmxlW10gPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY2d4LmMtNjctXFx0eyBQQ0lfREVWSUNFKFBDSV9WRU5ET1JfSURfQ0FWSVVNLCBQQ0lfREVWSURfT0NURU9OVFgyX0NHWCkgfSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL2NneC5jPTE5MTY9c3RhdGljIHN0cnVjdCBtYWNfb3BzXFx0Y2d4X21hY19vcHMgICAgPSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jZ3guYy0xOTUwLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL2NneC5jOjE5NTE6c3RhdGljIGludCBjZ3hfcHJvYmUoc3RydWN0IHBjaV9kZXYgKnBkZXYsIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICppZClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jZ3guYy0xOTUyLXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL21jcy5jLTE5LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL21jcy5jOjIwOnN0YXRpYyBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCBtY3NfaWRfdGFibGVbXSA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9tY3MuYy0yMS1cXHR7IFBDSV9ERVZJQ0UoUENJX1ZFTkRPUl9JRF9DQVZJVU0sIFBDSV9ERVZJRF9DTjEwS19NQ1MpIH0sXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9tY3MuYz0xNTA3PXN0YXRpYyBzdHJ1Y3QgbWNzX29wcyBjbjEwa2JfbWNzX29wcyA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL21jcy5jLTE1MTYtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvbWNzLmM6MTUxNzpzdGF0aWMgaW50IG1jc19wcm9iZShzdHJ1Y3QgcGNpX2RldiAqcGRldiwgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgKmlkKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL21jcy5jLTE1MTgte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcHRwLmM9Nzc9c3RhdGljIHN0cnVjdCBwdHAgKmZpcnN0X3B0cF9ibG9jaztcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9wdHAuYzo3ODpzdGF0aWMgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgcHRwX2lkX3RhYmxlW107XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcHRwLmMtNzktXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9wdHAuYz01MTc9c3RhdGljIGludCBwdHBfcHJvYmUoc3RydWN0IHBjaV9kZXYgKnBkZXYsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcHRwLmM6NTE4OlxcdFxcdCAgICAgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgKmVudClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9wdHAuYy01MTkte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcHRwLmM9NTcxPXN0YXRpYyB2b2lkIHB0cF9yZW1vdmUoc3RydWN0IHBjaV9kZXYgKnBkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9wdHAuYy01ODgtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcHRwLmM6NTg5OnN0YXRpYyBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCBwdHBfaWRfdGFibGVbXSA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9wdHAuYy01OTAtXFx0eyBQQ0lfREVWSUNFX1NVQihQQ0lfVkVORE9SX0lEX0NBVklVTSwgUENJX0RFVklEX09DVEVPTlRYMl9QVFAsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYz00MT1zdGF0aWMgaXJxcmV0dXJuX3QgcnZ1X21ib3hfaW50cl9oYW5kbGVyKGludCBpcnEsIHZvaWQgKnJ2dV9pcnEpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmMtNDMtLyogU3VwcG9ydGVkIGRldmljZXMgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYzo0NDpzdGF0aWMgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgcnZ1X2lkX3RhYmxlW10gPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmMtNDUtXFx0eyBQQ0lfREVWSUNFKFBDSV9WRU5ET1JfSURfQ0FWSVVNLCBQQ0lfREVWSURfT0NURU9OVFgyX1JWVV9BRikgfSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jPTM1NTY9c3RhdGljIGF0b21pY190IGRldmljZV9ib3VuZCA9IEFUT01JQ19JTklUKDApO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jLTM1NTctXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmM6MzU1ODpzdGF0aWMgaW50IHJ2dV9wcm9iZShzdHJ1Y3QgcGNpX2RldiAqcGRldiwgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgKmlkKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jLTM1NTkte1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOS0xM1QxNDozMToyNy45MDkzMzE4MjhaIiwiU2VxIjoxNywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjgtZmxhc2giLCJEdXJhdGlvbiI6MTI1MzMwODM4NjUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqTXkgQXNzZXNzbWVudCBvZiB0aGUgTWFydmVsbCBPY3Rlb25UWDIgUlZVIEFkbWluIEZ1bmN0aW9uIERyaXZlciBmb3IgRnV6emluZyoqXG5cbk9rYXksIGxldCdzIGJyZWFrIHRoaXMgZG93biBzeXN0ZW1hdGljYWxseSwgYXBwbHlpbmcgbXkgZXhwZXJ0aXNlIHRvIHRoZSBjcml0ZXJpYS4gVGhlIHByb21wdCBjbGVhcmx5IGxheXMgb3V0IHRoZSBuZWdhdGl2ZSBjcml0ZXJpYSBmb3IgV29ydGhGdXp6aW5nPWZhbHNlLCBzbyBJIG5lZWQgdG8gc2VlIGlmIHRoaXMgZHJpdmVyIGZhbGxzIGludG8gdGhvc2UgY2F0ZWdvcmllcy5cblxuRmlyc3QsIEkgbmVlZCB0byBjb25maXJtOiBJcyB0aGUgTWFydmVsbCBPY3Rlb25UWDIgUlZVIEFkbWluIEZ1bmN0aW9uIGRyaXZlciBoYXJkd2FyZS1zcGVjaWZpYyBQQ0llIE5JQy9Tb0M/IEJhc2VkIG9uIG15IHVuZGVyc3RhbmRpbmcsIGFic29sdXRlbHkuIE1hcnZlbGwgT2N0ZW9uVFgyIChzcGVjaWZpY2FsbHkgdGhlIHZhcmlhbnRzIGxpa2UgUENJX1ZFTkRPUl9JRF9DQVZJVU0sIFBDSV9ERVZJRF9PQ1RFT05UWDJfUlZVX0FGLCBDTjEwSywgZXRjLikgaXMgdGV4dGJvb2sgdmVuZG9yLXNwZWNpZmljIFNtYXJ0TklDIC8gbmV0d29yayBTb0MgaGFyZHdhcmUuIEl0ICpyZXF1aXJlcyogcGh5c2ljYWwgQVNJQyAvIFBDSWUgY2FyZHMuIFFFTVUsIGFzIHdlIGtub3csIGRvZXNuJ3QgZW11bGF0ZSB0aGUgT2N0ZW9uVFgyIFJWVSBBRiBoYXJkd2FyZS4gVGhhdCdzIGEgaHVnZSByZWQgZmxhZyDigJMgaXQgc2F0aXNmaWVzIHRoZSBcIlN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZSBoYXJkd2FyZVwiIGNvbmRpdGlvbi5cblxuU2Vjb25kLCBJIG5lZWQgdG8gY29uc2lkZXIgdGhlIGFyY2hpdGVjdHVyZS4gVGhlIHRhcmdldCBpcyBhbWQ2NCwgd2hpbGUgdGhlIE9jdGVvblRYMiBpcyBhbiBBUk02NCBTb0MuIFdoaWxlIHRoZSBkcml2ZXIgKm1pZ2h0KiBiZSBjb21waWxlZCBvbiBhbWQ2NCBmb3IgQ09NUElMRV9URVNUIHB1cnBvc2VzIChiYXNlZCBvbiB0aGUgYGRlcGVuZHMgb24gKDY0QklUIFx1MDAyNlx1MDAyNiBDT01QSUxFX1RFU1QpIHx8IEFSTTY0YCBjb25kaXRpb24pLCB0aGUgY3JpdGljYWwgcG9pbnQgaXMgdGhlICpwaHlzaWNhbCogZGV2aWNlOiBQQ0lfVkVORE9SX0lEX0NBVklVTSAvIE9DVEVPTlRYMi4gVGhhdCdzICpwaHlzaWNhbCBzaWxpY29uKiB0aGF0IHNpbXBseSBpc24ndCBwcmVzZW50IG9yIGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUgb3IgR29vZ2xlIENvbXB1dGUgRW5naW5lIGVudmlyb25tZW50cy4gVGhpcywgaW4gZXNzZW5jZSwgYWxzbyBzYXRpc2ZpZXMgdGhlIFwiVW5yZWFjaGFibGUgZXhlY3V0aW9uIHBhdGhzXCIgY3JpdGVyaW9uLCBiZWNhdXNlIHRoZSBjb2RlIHdpbGwgb25seSBiZSBleGVjdXRlZCBpZiB0aGUgcGh5c2ljYWwgaGFyZHdhcmUgaXMgcHJlc2VudC5cblxuTm93LCBqdXN0IHRvIGJlIHRob3JvdWdoIGFuZCBiZWNhdXNlIEkgYWx3YXlzIGRvdWJsZS1jaGVjaywgSSdsbCBxdWlja2x5IGxvb2sgZm9yIGFueSBtb2NrIG9yIHZpcnR1YWwgZGV2aWNlIGltcGxlbWVudGF0aW9ucyBvciB0ZXN0IGhhcm5lc3NlcyB0aGF0IG1pZ2h0IGV4aXN0IGZvciB0aGUgT2N0ZW9uVFgyLiBJJ2xsIHNlYXJjaCB0byBzZWUgaWYgYW55IHZpcnR1YWwgdXNhZ2VzIGV4aXN0LiBUaGlzIGlzIG1vcmUgb2YgYSBzYW5pdHkgY2hlY2s7IG15IGluaXRpYWwgYXNzZXNzbWVudCBwb2ludHMgdG8gYSBzdHJvbmcgXCJXb3J0aEZ1enppbmc9ZmFsc2VcIiBzY2VuYXJpby5cblxuXG4iLCJJbnB1dFRva2VucyI6MTk5NTMsIk91dHB1dFRva2VucyI6MjcsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo0MTYsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDktMTNUMTQ6MzE6NDAuNDQyNDIwNTAzWiIsIlNlcSI6MTgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo5ODc3OTU5NjksIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiT0NURU9OVFgyXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvY3J5cHRvL21hcnZlbGwvS2NvbmZpZz0yMz1jb25maWcgQ1JZUFRPX0RFVl9PQ1RFT05UWF9DUFRcXG4tLVxcbmRyaXZlcnMvY3J5cHRvL21hcnZlbGwvS2NvbmZpZy0zOS1cXG5kcml2ZXJzL2NyeXB0by9tYXJ2ZWxsL0tjb25maWc6NDA6Y29uZmlnIENSWVBUT19ERVZfT0NURU9OVFgyX0NQVFxcbmRyaXZlcnMvY3J5cHRvL21hcnZlbGwvS2NvbmZpZy00MS1cXHR0cmlzdGF0ZSBcXFwiTWFydmVsbCBPY3Rlb25UWDIgQ1BUIGRyaXZlclxcXCJcXG4tLVxcbmRyaXZlcnMvY3J5cHRvL21hcnZlbGwvS2NvbmZpZy00NC1cXHRkZXBlbmRzIG9uIE5FVF9WRU5ET1JfTUFSVkVMTFxcbmRyaXZlcnMvY3J5cHRvL21hcnZlbGwvS2NvbmZpZzo0NTpcXHRzZWxlY3QgT0NURU9OVFgyX01CT1hcXG5kcml2ZXJzL2NyeXB0by9tYXJ2ZWxsL0tjb25maWctNDYtXFx0c2VsZWN0IENSWVBUT19ERVZfTUFSVkVMTFxcbi0tXFxuZHJpdmVycy9jcnlwdG8vbWFydmVsbC9NYWtlZmlsZT00PW9iai0kKENPTkZJR19DUllQVE9fREVWX09DVEVPTlRYX0NQVCkgKz0gb2N0ZW9udHgvXFxuZHJpdmVycy9jcnlwdG8vbWFydmVsbC9NYWtlZmlsZTo1Om9iai0kKENPTkZJR19DUllQVE9fREVWX09DVEVPTlRYMl9DUFQpICs9IG9jdGVvbnR4Mi9cXG4tLVxcbmRyaXZlcnMvY3J5cHRvL21hcnZlbGwvb2N0ZW9udHgyL01ha2VmaWxlLTEtIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5XFxuZHJpdmVycy9jcnlwdG8vbWFydmVsbC9vY3Rlb250eDIvTWFrZWZpbGU6MjpvYmotJChDT05GSUdfQ1JZUFRPX0RFVl9PQ1RFT05UWDJfQ1BUKSArPSBydnVfY3B0Y29tbW9uLm8gcnZ1X2NwdHBmLm8gcnZ1X2NwdHZmLm9cXG5kcml2ZXJzL2NyeXB0by9tYXJ2ZWxsL29jdGVvbnR4Mi9NYWtlZmlsZS0zLVxcbi0tXFxuZHJpdmVycy9jcnlwdG8vbWFydmVsbC9vY3Rlb250eDIvY24xMGtfY3B0LmM9NDk9dm9pZCBjbjEwa19jcHRfbG10c3RfZnJlZShzdHJ1Y3QgcGNpX2RldiAqcGRldiwgc3RydWN0IG90eDJfY3B0bGZzX2luZm8gKmxmcylcXG4tLVxcbmRyaXZlcnMvY3J5cHRvL21hcnZlbGwvb2N0ZW9udHgyL2NuMTBrX2NwdC5jLTYwLX1cXG5kcml2ZXJzL2NyeXB0by9tYXJ2ZWxsL29jdGVvbnR4Mi9jbjEwa19jcHQuYzo2MTpFWFBPUlRfU1lNQk9MX05TX0dQTChjbjEwa19jcHRfbG10c3RfZnJlZSwgXFxcIkNSWVBUT19ERVZfT0NURU9OVFgyX0NQVFxcXCIpO1xcbmRyaXZlcnMvY3J5cHRvL21hcnZlbGwvb2N0ZW9udHgyL2NuMTBrX2NwdC5jLTYyLVxcbi0tXFxuZHJpdmVycy9jcnlwdG8vbWFydmVsbC9vY3Rlb250eDIvY24xMGtfY3B0LmM9ODM9aW50IGNuMTBrX2NwdHBmX2xtdHN0X2luaXQoc3RydWN0IG90eDJfY3B0cGZfZGV2ICpjcHRwZilcXG4tLVxcbmRyaXZlcnMvY3J5cHRvL21hcnZlbGwvb2N0ZW9udHgyL2NuMTBrX2NwdC5jLTExMS19XFxuZHJpdmVycy9jcnlwdG8vbWFydmVsbC9vY3Rlb250eDIvY24xMGtfY3B0LmM6MTEyOkVYUE9SVF9TWU1CT0xfTlNfR1BMKGNuMTBrX2NwdHBmX2xtdHN0X2luaXQsIFxcXCJDUllQVE9fREVWX09DVEVPTlRYMl9DUFRcXFwiKTtcXG5kcml2ZXJzL2NyeXB0by9tYXJ2ZWxsL29jdGVvbnR4Mi9jbjEwa19jcHQuYy0xMTMtXFxuZHJpdmVycy9jcnlwdG8vbWFydmVsbC9vY3Rlb250eDIvY24xMGtfY3B0LmM9MTE0PWludCBjbjEwa19jcHR2Zl9sbXRzdF9pbml0KHN0cnVjdCBvdHgyX2NwdHZmX2RldiAqY3B0dmYpXFxuLS1cXG5kcml2ZXJzL2NyeXB0by9tYXJ2ZWxsL29jdGVvbnR4Mi9jbjEwa19jcHQuYy0xMzktfVxcbmRyaXZlcnMvY3J5cHRvL21hcnZlbGwvb2N0ZW9udHgyL2NuMTBrX2NwdC5jOjE0MDpFWFBPUlRfU1lNQk9MX05TX0dQTChjbjEwa19jcHR2Zl9sbXRzdF9pbml0LCBcXFwiQ1JZUFRPX0RFVl9PQ1RFT05UWDJfQ1BUXFxcIik7XFxuZHJpdmVycy9jcnlwdG8vbWFydmVsbC9vY3Rlb250eDIvY24xMGtfY3B0LmMtMTQxLVxcbmRyaXZlcnMvY3J5cHRvL21hcnZlbGwvb2N0ZW9udHgyL2NuMTBrX2NwdC5jPTE0Mj12b2lkIGNuMTBrX2NwdF9od19jdHhfY2xlYXIoc3RydWN0IHBjaV9kZXYgKnBkZXYsXFxuLS1cXG5kcml2ZXJzL2NyeXB0by9tYXJ2ZWxsL29jdGVvbnR4Mi9jbjEwa19jcHQuYy0xNTUtfVxcbmRyaXZlcnMvY3J5cHRvL21hcnZlbGwvb2N0ZW9udHgyL2NuMTBrX2NwdC5jOjE1NjpFWFBPUlRfU1lNQk9MX05TX0dQTChjbjEwa19jcHRfaHdfY3R4X2NsZWFyLCBcXFwiQ1JZUFRPX0RFVl9PQ1RFT05UWDJfQ1BUXFxcIik7XFxuZHJpdmVycy9jcnlwdG8vbWFydmVsbC9vY3Rlb250eDIvY24xMGtfY3B0LmMtMTU3LVxcbmRyaXZlcnMvY3J5cHRvL21hcnZlbGwvb2N0ZW9udHgyL2NuMTBrX2NwdC5jPTE1OD12b2lkIGNuMTBrX2NwdF9od19jdHhfc2V0KHVuaW9uIGNuMTBrX2NwdF9od19jdHggKmhjdHgsIHUxNiBjdHhfc3opXFxuLS1cXG5kcml2ZXJzL2NyeXB0by9tYXJ2ZWxsL29jdGVvbnR4Mi9jbjEwa19jcHQuYy0xNjQtfVxcbmRyaXZlcnMvY3J5cHRvL21hcnZlbGwvb2N0ZW9udHgyL2NuMTBrX2NwdC5jOjE2NTpFWFBPUlRfU1lNQk9MX05TX0dQTChjbjEwa19jcHRfaHdfY3R4X3NldCwgXFxcIkNSWVBUT19ERVZfT0NURU9OVFgyX0NQVFxcXCIpO1xcbmRyaXZlcnMvY3J5cHRvL21hcnZlbGwvb2N0ZW9udHgyL2NuMTBrX2NwdC5jLTE2Ni1cXG5kcml2ZXJzL2NyeXB0by9tYXJ2ZWxsL29jdGVvbnR4Mi9jbjEwa19jcHQuYz0xNjc9aW50IGNuMTBrX2NwdF9od19jdHhfaW5pdChzdHJ1Y3QgcGNpX2RldiAqcGRldixcXG4tLVxcbmRyaXZlcnMvY3J5cHRvL21hcnZlbGwvb2N0ZW9udHgyL2NuMTBrX2NwdC5jLTE5NC19XFxuZHJpdmVycy9jcnlwdG8vbWFydmVsbC9vY3Rlb250eDIvY24xMGtfY3B0LmM6MTk1OkVYUE9SVF9TWU1CT0xfTlNfR1BMKGNuMTBrX2NwdF9od19jdHhfaW5pdCwgXFxcIkNSWVBUT19ERVZfT0NURU9OVFgyX0NQVFxcXCIpO1xcbmRyaXZlcnMvY3J5cHRvL21hcnZlbGwvb2N0ZW9udHgyL2NuMTBrX2NwdC5jLTE5Ni1cXG5kcml2ZXJzL2NyeXB0by9tYXJ2ZWxsL29jdGVvbnR4Mi9jbjEwa19jcHQuYz0xOTc9dm9pZCBjbjEwa19jcHRfY3R4X2ZsdXNoKHN0cnVjdCBwY2lfZGV2ICpwZGV2LCB1NjQgY3B0ciwgYm9vbCBpbnZhbClcXG4tLVxcbmRyaXZlcnMvY3J5cHRvL21hcnZlbGwvb2N0ZW9udHgyL2NuMTBrX2NwdC5jLTIxMy19XFxuZHJpdmVycy9jcnlwdG8vbWFydmVsbC9vY3Rlb250eDIvY24xMGtfY3B0LmM6MjE0OkVYUE9SVF9TWU1CT0xfTlNfR1BMKGNuMTBrX2NwdF9jdHhfZmx1c2gsIFxcXCJDUllQVE9fREVWX09DVEVPTlRYMl9DUFRcXFwiKTtcXG5kcml2ZXJzL2NyeXB0by9tYXJ2ZWxsL29jdGVvbnR4Mi9jbjEwa19jcHQuYy0yMTUtXFxuZHJpdmVycy9jcnlwdG8vbWFydmVsbC9vY3Rlb250eDIvY24xMGtfY3B0LmM9MjE2PXZvaWQgY3B0dmZfaHdfb3BzX2dldChzdHJ1Y3Qgb3R4Ml9jcHR2Zl9kZXYgKmNwdHZmKVxcbi0tXFxuZHJpdmVycy9jcnlwdG8vbWFydmVsbC9vY3Rlb250eDIvY24xMGtfY3B0LmMtMjIyLX1cXG5kcml2ZXJzL2NyeXB0by9tYXJ2ZWxsL29jdGVvbnR4Mi9jbjEwa19jcHQuYzoyMjM6RVhQT1JUX1NZTUJPTF9OU19HUEwoY3B0dmZfaHdfb3BzX2dldCwgXFxcIkNSWVBUT19ERVZfT0NURU9OVFgyX0NQVFxcXCIpO1xcbi0tXFxuZHJpdmVycy9jcnlwdG8vbWFydmVsbC9vY3Rlb250eDIvb3R4Ml9jcHRfbWJveF9jb21tb24uYz03PWludCBvdHgyX2NwdF9zZW5kX21ib3hfbXNnKHN0cnVjdCBvdHgyX21ib3ggKm1ib3gsIHN0cnVjdCBwY2lfZGV2ICpwZGV2KVxcbi0tXFxuZHJpdmVycy9jcnlwdG8vbWFydmVsbC9vY3Rlb250eDIvb3R4Ml9jcHRfbWJveF9jb21tb24uYy0yMS19XFxuZHJpdmVycy9jcnlwdG8vbWFydmVsbC9vY3Rlb250eDIvb3R4Ml9jcHRfbWJveF9jb21tb24uYzoyMjpFWFBPUlRfU1lNQk9MX05TX0dQTChvdHgyX2NwdF9zZW5kX21ib3hfbXNnLCBcXFwiQ1JZUFRPX0RFVl9PQ1RFT05UWDJfQ1BUXFxcIik7XFxuZHJpdmVycy9jcnlwdG8vbWFydmVsbC9vY3Rlb250eDIvb3R4Ml9jcHRfbWJveF9jb21tb24uYy0yMy1cXG5kcml2ZXJzL2NyeXB0by9tYXJ2ZWxsL29jdGVvbnR4Mi9vdHgyX2NwdF9tYm94X2NvbW1vbi5jPTI0PWludCBvdHgyX2NwdF9zZW5kX3JlYWR5X21zZyhzdHJ1Y3Qgb3R4Ml9tYm94ICptYm94LCBzdHJ1Y3QgcGNpX2RldiAqcGRldilcXG4tLVxcbmRyaXZlcnMvY3J5cHRvL21hcnZlbGwvb2N0ZW9udHgyL290eDJfY3B0X21ib3hfY29tbW9uLmMtMzktfVxcbmRyaXZlcnMvY3J5cHRvL21hcnZlbGwvb2N0ZW9udHgyL290eDJfY3B0X21ib3hfY29tbW9uLmM6NDA6RVhQT1JUX1NZTUJPTF9OU19HUEwob3R4Ml9jcHRfc2VuZF9yZWFkeV9tc2csIFxcXCJDUllQVE9fREVWX09DVEVPTlRYMl9DUFRcXFwiKTtcXG5kcml2ZXJzL2NyeXB0by9tYXJ2ZWxsL29jdGVvbnR4Mi9vdHgyX2NwdF9tYm94X2NvbW1vbi5jLTQxLVxcbmRyaXZlcnMvY3J5cHRvL21hcnZlbGwvb2N0ZW9udHgyL290eDJfY3B0X21ib3hfY29tbW9uLmM9NDI9aW50IG90eDJfY3B0X3NlbmRfYWZfcmVnX3JlcXVlc3RzKHN0cnVjdCBvdHgyX21ib3ggKm1ib3gsIHN0cnVjdCBwY2lfZGV2ICpwZGV2KVxcbi0tXFxuZHJpdmVycy9jcnlwdG8vbWFydmVsbC9vY3Rlb250eDIvb3R4Ml9jcHRfbWJveF9jb21tb24uYy00NS19XFxuZHJpdmVycy9jcnlwdG8vbWFydmVsbC9vY3Rlb250eDIvb3R4Ml9jcHRfbWJveF9jb21tb24uYzo0NjpFWFBPUlRfU1lNQk9MX05TX0dQTChvdHgyX2NwdF9zZW5kX2FmX3JlZ19yZXF1ZXN0cywgXFxcIkNSWVBUT19ERVZfT0NURU9OVFgyX0NQVFxcXCIpO1xcbmRyaXZlcnMvY3J5cHRvL21hcnZlbGwvb2N0ZW9udHgyL290eDJfY3B0X21ib3hfY29tbW9uLmMtNDctXFxuLS1cXG5kcml2ZXJzL2NyeXB0by9tYXJ2ZWxsL29jdGVvbnR4Mi9vdHgyX2NwdF9tYm94X2NvbW1vbi5jPTc0PWludCBvdHgyX2NwdF9hZGRfd3JpdGVfYWZfcmVnKHN0cnVjdCBvdHgyX21ib3ggKm1ib3gsIHN0cnVjdCBwY2lfZGV2ICpwZGV2LFxcbi0tXFxuZHJpdmVycy9jcnlwdG8vbWFydmVsbC9vY3Rlb250eDIvb3R4Ml9jcHRfbWJveF9jb21tb24uYy05Ny19XFxuZHJpdmVycy9jcnlwdG8vbWFydmVsbC9vY3Rlb250eDIvb3R4Ml9jcHRfbWJveF9jb21tb24uYzo5ODpFWFBPUlRfU1lNQk9MX05TX0dQTChvdHgyX2NwdF9hZGRfd3JpdGVfYWZfcmVnLCBcXFwiQ1JZUFRPX0RFVl9PQ1RFT05UWDJfQ1BUXFxcIik7XFxuZHJpdmVycy9jcnlwdG8vbWFydmVsbC9vY3Rlb250eDIvb3R4Ml9jcHRfbWJveF9jb21tb24uYy05OS1cXG5kcml2ZXJzL2NyeXB0by9tYXJ2ZWxsL29jdGVvbnR4Mi9vdHgyX2NwdF9tYm94X2NvbW1vbi5jPTEwMD1pbnQgb3R4Ml9jcHRfcmVhZF9hZl9yZWcoc3RydWN0IG90eDJfbWJveCAqbWJveCwgc3RydWN0IHBjaV9kZXYgKnBkZXYsXFxuLS1cXG5kcml2ZXJzL2NyeXB0by9tYXJ2ZWxsL29jdGVvbnR4Mi9vdHgyX2NwdF9tYm94X2NvbW1vbi5jLTExMC19XFxuZHJpdmVycy9jcnlwdG8vbWFydmVsbC9vY3Rlb250eDIvb3R4Ml9jcHRfbWJveF9jb21tb24uYzoxMTE6RVhQT1JUX1NZTUJPTF9OU19HUEwob3R4Ml9jcHRfcmVhZF9hZl9yZWcsIFxcXCJDUllQVE9fREVWX09DVEVPTlRYMl9DUFRcXFwiKTtcXG5kcml2ZXJzL2NyeXB0by9tYXJ2ZWxsL29jdGVvbnR4Mi9vdHgyX2NwdF9tYm94X2NvbW1vbi5jLTExMi1cXG5kcml2ZXJzL2NyeXB0by9tYXJ2ZWxsL29jdGVvbnR4Mi9vdHgyX2NwdF9tYm94X2NvbW1vbi5jPTExMz1pbnQgb3R4Ml9jcHRfd3JpdGVfYWZfcmVnKHN0cnVjdCBvdHgyX21ib3ggKm1ib3gsIHN0cnVjdCBwY2lfZGV2ICpwZGV2LFxcbi0tXFxuZHJpdmVycy9jcnlwdG8vbWFydmVsbC9vY3Rlb250eDIvb3R4Ml9jcHRfbWJveF9jb21tb24uYy0xMjMtfVxcbmRyaXZlcnMvY3J5cHRvL21hcnZlbGwvb2N0ZW9udHgyL290eDJfY3B0X21ib3hfY29tbW9uLmM6MTI0OkVYUE9SVF9TWU1CT0xfTlNfR1BMKG90eDJfY3B0X3dyaXRlX2FmX3JlZywgXFxcIkNSWVBUT19ERVZfT0NURU9OVFgyX0NQVFxcXCIpO1xcbmRyaXZlcnMvY3J5cHRvL21hcnZlbGwvb2N0ZW9udHgyL290eDJfY3B0X21ib3hfY29tbW9uLmMtMTI1LVxcbi0tXFxuZHJpdmVycy9jcnlwdG8vbWFydmVsbC9vY3Rlb250eDIvb3R4Ml9jcHRfbWJveF9jb21tb24uYz0xNTY9aW50IG90eDJfY3B0X2RldGFjaF9yc3Jjc19tc2coc3RydWN0IG90eDJfY3B0bGZzX2luZm8gKmxmcylcXG4tLVxcbmRyaXZlcnMvY3J5cHRvL21hcnZlbGwvb2N0ZW9udHgyL290eDJfY3B0X21ib3hfY29tbW9uLmMtMTgyLX1cXG5kcml2ZXJzL2NyeXB0by9tYXJ2ZWxsL29jdGVvbnR4Mi9vdHgyX2NwdF9tYm94X2NvbW1vbi5jOjE4MzpFWFBPUlRfU1lNQk9MX05TX0dQTChvdHgyX2NwdF9kZXRhY2hfcnNyY3NfbXNnLCBcXFwiQ1JZUFRPX0RFVl9PQ1RFT05UWDJfQ1BUXFxcIik7XFxuZHJpdmVycy9jcnlwdG8vbWFydmVsbC9vY3Rlb250eDIvb3R4Ml9jcHRfbWJveF9jb21tb24uYy0xODQtXFxuZHJpdmVycy9jcnlwdG8vbWFydmVsbC9vY3Rlb250eDIvb3R4Ml9jcHRfbWJveF9jb21tb24uYz0xODU9aW50IG90eDJfY3B0X21zaXhfb2Zmc2V0X21zZyhzdHJ1Y3Qgb3R4Ml9jcHRsZnNfaW5mbyAqbGZzKVxcbi0tXFxuZHJpdmVycy9jcnlwdG8vbWFydmVsbC9vY3Rlb250eDIvb3R4Ml9jcHRfbWJveF9jb21tb24uYy0yMTUtfVxcbmRyaXZlcnMvY3J5cHRvL21hcnZlbGwvb2N0ZW9udHgyL290eDJfY3B0X21ib3hfY29tbW9uLmM6MjE2OkVYUE9SVF9TWU1CT0xfTlNfR1BMKG90eDJfY3B0X21zaXhfb2Zmc2V0X21zZywgXFxcIkNSWVBUT19ERVZfT0NURU9OVFgyX0NQVFxcXCIpO1xcbmRyaXZlcnMvY3J5cHRvL21hcnZlbGwvb2N0ZW9udHgyL290eDJfY3B0X21ib3hfY29tbW9uLmMtMjE3LVxcbmRyaXZlcnMvY3J5cHRvL21hcnZlbGwvb2N0ZW9udHgyL290eDJfY3B0X21ib3hfY29tbW9uLmM9MjE4PWludCBvdHgyX2NwdF9zeW5jX21ib3hfbXNnKHN0cnVjdCBvdHgyX21ib3ggKm1ib3gpXFxuLS1cXG5kcml2ZXJzL2NyeXB0by9tYXJ2ZWxsL29jdGVvbnR4Mi9vdHgyX2NwdF9tYm94X2NvbW1vbi5jLTIzMC19XFxuZHJpdmVycy9jcnlwdG8vbWFydmVsbC9vY3Rlb250eDIvb3R4Ml9jcHRfbWJveF9jb21tb24uYzoyMzE6RVhQT1JUX1NZTUJPTF9OU19HUEwob3R4Ml9jcHRfc3luY19tYm94X21zZywgXFxcIkNSWVBUT19ERVZfT0NURU9OVFgyX0NQVFxcXCIpO1xcbmRyaXZlcnMvY3J5cHRvL21hcnZlbGwvb2N0ZW9udHgyL290eDJfY3B0X21ib3hfY29tbW9uLmMtMjMyLVxcbmRyaXZlcnMvY3J5cHRvL21hcnZlbGwvb2N0ZW9udHgyL290eDJfY3B0X21ib3hfY29tbW9uLmM9MjMzPWludCBvdHgyX2NwdF9sZl9yZXNldF9tc2coc3RydWN0IG90eDJfY3B0bGZzX2luZm8gKmxmcywgaW50IHNsb3QpXFxuLS1cXG5kcml2ZXJzL2NyeXB0by9tYXJ2ZWxsL29jdGVvbnR4Mi9vdHgyX2NwdF9tYm94X2NvbW1vbi5jLTI1MS19XFxuZHJpdmVycy9jcnlwdG8vbWFydmVsbC9vY3Rlb250eDIvb3R4Ml9jcHRfbWJveF9jb21tb24uYzoyNTI6RVhQT1JUX1NZTUJPTF9OU19HUEwob3R4Ml9jcHRfbGZfcmVzZXRfbXNnLCBcXFwiQ1JZUFRPX0RFVl9PQ1RFT05UWDJfQ1BUXFxcIik7XFxuZHJpdmVycy9jcnlwdG8vbWFydmVsbC9vY3Rlb250eDIvb3R4Ml9jcHRfbWJveF9jb21tb24uYy0yNTMtXFxuZHJpdmVycy9jcnlwdG8vbWFydmVsbC9vY3Rlb250eDIvb3R4Ml9jcHRfbWJveF9jb21tb24uYz0yNTQ9aW50IG90eDJfY3B0X2xtdHN0X3RibF9zZXR1cF9tc2coc3RydWN0IG90eDJfY3B0bGZzX2luZm8gKmxmcylcXG4tLVxcbmRyaXZlcnMvY3J5cHRvL21hcnZlbGwvb2N0ZW9udHgyL290eDJfY3B0X21ib3hfY29tbW9uLmMtMjc2LX1cXG5kcml2ZXJzL2NyeXB0by9tYXJ2ZWxsL29jdGVvbnR4Mi9vdHgyX2NwdF9tYm94X2NvbW1vbi5jOjI3NzpFWFBPUlRfU1lNQk9MX05TX0dQTChvdHgyX2NwdF9sbXRzdF90Ymxfc2V0dXBfbXNnLCBcXFwiQ1JZUFRPX0RFVl9PQ1RFT05UWDJfQ1BUXFxcIik7XFxuLS1cXG5kcml2ZXJzL2NyeXB0by9tYXJ2ZWxsL29jdGVvbnR4Mi9vdHgyX2NwdGxmLmM9Mjc0PXZvaWQgb3R4Ml9jcHRsZl91bnJlZ2lzdGVyX21pc2NfaW50ZXJydXB0cyhzdHJ1Y3Qgb3R4Ml9jcHRsZnNfaW5mbyAqbGZzKVxcbi0tXFxuZHJpdmVycy9jcnlwdG8vbWFydmVsbC9vY3Rlb250eDIvb3R4Ml9jcHRsZi5jLTI5MC19XFxuZHJpdmVycy9jcnlwdG8vbWFydmVsbC9vY3Rlb250eDIvb3R4Ml9jcHRsZi5jOjI5MTpFWFBPUlRfU1lNQk9MX05TX0dQTChvdHgyX2NwdGxmX3VucmVnaXN0ZXJfbWlzY19pbnRlcnJ1cHRzLCBcXFwiQ1JZUFRPX0RFVl9PQ1RFT05UWDJfQ1BUXFxcIik7XFxuZHJpdmVycy9jcnlwdG8vbWFydmVsbC9vY3Rlb250eDIvb3R4Ml9jcHRsZi5jLTI5Mi1cXG5kcml2ZXJzL2NyeXB0by9tYXJ2ZWxsL29jdGVvbnR4Mi9vdHgyX2NwdGxmLmM9MjkzPXZvaWQgb3R4Ml9jcHRsZl91bnJlZ2lzdGVyX2RvbmVfaW50ZXJydXB0cyhzdHJ1Y3Qgb3R4Ml9jcHRsZnNfaW5mbyAqbGZzKVxcbi0tXFxuZHJpdmVycy9jcnlwdG8vbWFydmVsbC9vY3Rlb250eDIvb3R4Ml9jcHRsZi5jLTMwOS19XFxuZHJpdmVycy9jcnlwdG8vbWFydmVsbC9vY3Rlb250eDIvb3R4Ml9jcHRsZi5jOjMxMDpFWFBPUlRfU1lNQk9MX05TX0dQTChvdHgyX2NwdGxmX3VucmVnaXN0ZXJfZG9uZV9pbnRlcnJ1cHRzLCBcXFwiQ1JZUFRPX0RFVl9PQ1RFT05UWDJfQ1BUXFxcIik7XFxuZHJpdmVycy9jcnlwdG8vbWFydmVsbC9vY3Rlb250eDIvb3R4Ml9jcHRsZi5jLTMxMS1cXG4tLVxcbmRyaXZlcnMvY3J5cHRvL21hcnZlbGwvb2N0ZW9udHgyL290eDJfY3B0bGYuYz0zMzE9aW50IG90eDJfY3B0bGZfcmVnaXN0ZXJfbWlzY19pbnRlcnJ1cHRzKHN0cnVjdCBvdHgyX2NwdGxmc19pbmZvICpsZnMpXFxuLS1cXG5kcml2ZXJzL2NyeXB0by9tYXJ2ZWxsL29jdGVvbnR4Mi9vdHgyX2NwdGxmLmMtMzUxLX1cXG5kcml2ZXJzL2NyeXB0by9tYXJ2ZWxsL29jdGVvbnR4Mi9vdHgyX2NwdGxmLmM6MzUyOkVYUE9SVF9TWU1CT0xfTlNfR1BMKG90eDJfY3B0bGZfcmVnaXN0ZXJfbWlzY19pbnRlcnJ1cHRzLCBcXFwiQ1JZUFRPX0RFVl9PQ1RFT05UWDJfQ1BUXFxcIik7XFxuZHJpdmVycy9jcnlwdG8vbWFydmVsbC9vY3Rlb250eDIvb3R4Ml9jcHRsZi5jLTM1My1cXG5kcml2ZXJzL2NyeXB0by9tYXJ2ZWxsL29jdGVvbnR4Mi9vdHgyX2NwdGxmLmM9MzU0PWludCBvdHgyX2NwdGxmX3JlZ2lzdGVyX2RvbmVfaW50ZXJydXB0cyhzdHJ1Y3Qgb3R4Ml9jcHRsZnNfaW5mbyAqbGZzKVxcbi0tXFxuZHJpdmVycy9jcnlwdG8vbWFydmVsbC9vY3Rlb250eDIvb3R4Ml9jcHRsZi5jLTM3NC19XFxuZHJpdmVycy9jcnlwdG8vbWFydmVsbC9vY3Rlb250eDIvb3R4Ml9jcHRsZi5jOjM3NTpFWFBPUlRfU1lNQk9MX05TX0dQTChvdHgyX2NwdGxmX3JlZ2lzdGVyX2RvbmVfaW50ZXJydXB0cywgXFxcIkNSWVBUT19ERVZfT0NURU9OVFgyX0NQVFxcXCIpO1xcbmRyaXZlcnMvY3J5cHRvL21hcnZlbGwvb2N0ZW9udHgyL290eDJfY3B0bGYuYy0zNzYtXFxuZHJpdmVycy9jcnlwdG8vbWFydmVsbC9vY3Rlb250eDIvb3R4Ml9jcHRsZi5jPTM3Nz12b2lkIG90eDJfY3B0bGZfZnJlZV9pcnFzX2FmZmluaXR5KHN0cnVjdCBvdHgyX2NwdGxmc19pbmZvICpsZnMpXFxuLS1cXG5kcml2ZXJzL2NyeXB0by9tYXJ2ZWxsL29jdGVvbnR4Mi9vdHgyX2NwdGxmLmMtMzg4LX1cXG5kcml2ZXJzL2NyeXB0by9tYXJ2ZWxsL29jdGVvbnR4Mi9vdHgyX2NwdGxmLmM6Mzg5OkVYUE9SVF9TWU1CT0xfTlNfR1BMKG90eDJfY3B0bGZfZnJlZV9pcnFzX2FmZmluaXR5LCBcXFwiQ1JZUFRPX0RFVl9PQ1RFT05UWDJfQ1BUXFxcIik7XFxuZHJpdmVycy9jcnlwdG8vbWFydmVsbC9vY3Rlb250eDIvb3R4Ml9jcHRsZi5jLTM5MC1cXG5kcml2ZXJzL2NyeXB0by9tYXJ2ZWxsL29jdGVvbnR4Mi9vdHgyX2NwdGxmLmM9MzkxPWludCBvdHgyX2NwdGxmX3NldF9pcnFzX2FmZmluaXR5KHN0cnVjdCBvdHgyX2NwdGxmc19pbmZvICpsZnMpXFxuLS1cXG5kcml2ZXJzL2NyeXB0by9tYXJ2ZWxsL29jdGVvbnR4Mi9vdHgyX2NwdGxmLmMtNDIxLX1cXG5kcml2ZXJzL2NyeXB0by9tYXJ2ZWxsL29jdGVvbnR4Mi9vdHgyX2NwdGxmLmM6NDIyOkVYUE9SVF9TWU1CT0xfTlNfR1BMKG90eDJfY3B0bGZfc2V0X2lycXNfYWZmaW5pdHksIFxcXCJDUllQVE9fREVWX09DVEVPTlRYMl9DUFRcXFwiKTtcXG5kcml2ZXJzL2NyeXB0by9tYXJ2ZWxsL29jdGVvbnR4Mi9vdHgyX2NwdGxmLmMtNDIzLVxcbmRyaXZlcnMvY3J5cHRvL21hcnZlbGwvb2N0ZW9udHgyL290eDJfY3B0bGYuYz00MjQ9aW50IG90eDJfY3B0bGZfaW5pdChzdHJ1Y3Qgb3R4Ml9jcHRsZnNfaW5mbyAqbGZzLCB1OCBlbmdfZ3JwX21hc2ssIGludCBwcmksXFxuLS1cXG5kcml2ZXJzL2NyeXB0by9tYXJ2ZWxsL29jdGVvbnR4Mi9vdHgyX2NwdGxmLmMtNDgxLX1cXG5kcml2ZXJzL2NyeXB0by9tYXJ2ZWxsL29jdGVvbnR4Mi9vdHgyX2NwdGxmLmM6NDgyOkVYUE9SVF9TWU1CT0xfTlNfR1BMKG90eDJfY3B0bGZfaW5pdCwgXFxcIkNSWVBUT19ERVZfT0NURU9OVFgyX0NQVFxcXCIpO1xcbmRyaXZlcnMvY3J5cHRvL21hcnZlbGwvb2N0ZW9udHgyL290eDJfY3B0bGYuYy00ODMtXFxuZHJpdmVycy9jcnlwdG8vbWFydmVsbC9vY3Rlb250eDIvb3R4Ml9jcHRsZi5jPTQ4ND12b2lkIG90eDJfY3B0bGZfc2h1dGRvd24oc3RydWN0IG90eDJfY3B0bGZzX2luZm8gKmxmcylcXG4tLVxcbmRyaXZlcnMvY3J5cHRvL21hcnZlbGwvb2N0ZW9udHgyL290eDJfY3B0bGYuYy00OTMtfVxcbmRyaXZlcnMvY3J5cHRvL21hcnZlbGwvb2N0ZW9udHgyL290eDJfY3B0bGYuYzo0OTQ6RVhQT1JUX1NZTUJPTF9OU19HUEwob3R4Ml9jcHRsZl9zaHV0ZG93biwgXFxcIkNSWVBUT19ERVZfT0NURU9OVFgyX0NQVFxcXCIpO1xcbmRyaXZlcnMvY3J5cHRvL21hcnZlbGwvb2N0ZW9udHgyL290eDJfY3B0bGYuYy00OTUtXFxuLS1cXG5kcml2ZXJzL2NyeXB0by9tYXJ2ZWxsL29jdGVvbnR4Mi9vdHgyX2NwdHBmX21haW4uYz04Nzc9bW9kdWxlX3BjaV9kcml2ZXIob3R4Ml9jcHRfcGNpX2RyaXZlcik7XFxuZHJpdmVycy9jcnlwdG8vbWFydmVsbC9vY3Rlb250eDIvb3R4Ml9jcHRwZl9tYWluLmMtODc4LVxcbmRyaXZlcnMvY3J5cHRvL21hcnZlbGwvb2N0ZW9udHgyL290eDJfY3B0cGZfbWFpbi5jOjg3OTpNT0RVTEVfSU1QT1JUX05TKFxcXCJDUllQVE9fREVWX09DVEVPTlRYMl9DUFRcXFwiKTtcXG5kcml2ZXJzL2NyeXB0by9tYXJ2ZWxsL29jdGVvbnR4Mi9vdHgyX2NwdHBmX21haW4uYy04ODAtXFxuLS1cXG5kcml2ZXJzL2NyeXB0by9tYXJ2ZWxsL29jdGVvbnR4Mi9vdHgyX2NwdHZmX21haW4uYz00NzY9bW9kdWxlX3BjaV9kcml2ZXIob3R4Ml9jcHR2Zl9wY2lfZHJpdmVyKTtcXG5kcml2ZXJzL2NyeXB0by9tYXJ2ZWxsL29jdGVvbnR4Mi9vdHgyX2NwdHZmX21haW4uYy00NzctXFxuZHJpdmVycy9jcnlwdG8vbWFydmVsbC9vY3Rlb250eDIvb3R4Ml9jcHR2Zl9tYWluLmM6NDc4Ok1PRFVMRV9JTVBPUlRfTlMoXFxcIkNSWVBUT19ERVZfT0NURU9OVFgyX0NQVFxcXCIpO1xcbmRyaXZlcnMvY3J5cHRvL21hcnZlbGwvb2N0ZW9udHgyL290eDJfY3B0dmZfbWFpbi5jLTQ3OS1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL0tjb25maWctNS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9LY29uZmlnOjY6Y29uZmlnIE9DVEVPTlRYMl9NQk9YXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvS2NvbmZpZy03LVxcdHRyaXN0YXRlXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvS2NvbmZpZy04LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL0tjb25maWc6OTpjb25maWcgT0NURU9OVFgyX0FGXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvS2NvbmZpZy0xMC1cXHR0cmlzdGF0ZSBcXFwiTWFydmVsbCBPY3Rlb25UWDIgUlZVIEFkbWluIEZ1bmN0aW9uIGRyaXZlclxcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9LY29uZmlnOjExOlxcdHNlbGVjdCBPQ1RFT05UWDJfTUJPWFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL0tjb25maWctMTItXFx0c2VsZWN0IE5FVF9ERVZMSU5LXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9LY29uZmlnPTIyPWNvbmZpZyBORENfRElTX0RZTkFNSUNfQ0FDSElOR1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL0tjb25maWctMjMtXFx0Ym9vbCBcXFwiRGlzYWJsZSBjYWNoaW5nIG9mIGR5bmFtaWMgZW50cmllcyBpbiBORENcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvS2NvbmZpZzoyNDpcXHRkZXBlbmRzIG9uIE9DVEVPTlRYMl9BRlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL0tjb25maWctMjUtXFx0ZGVmYXVsdCBuXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9LY29uZmlnLTMwLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL0tjb25maWc6MzE6Y29uZmlnIE9DVEVPTlRYMl9QRlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL0tjb25maWctMzItXFx0dHJpc3RhdGUgXFxcIk1hcnZlbGwgT2N0ZW9uVFgyIE5JQyBQaHlzaWNhbCBGdW5jdGlvbiBkcml2ZXJcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvS2NvbmZpZzozMzpcXHRzZWxlY3QgT0NURU9OVFgyX01CT1hcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9LY29uZmlnLTM0LVxcdHNlbGVjdCBORVRfREVWTElOS1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvS2NvbmZpZy00NC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9LY29uZmlnOjQ1OmNvbmZpZyBPQ1RFT05UWDJfVkZcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9LY29uZmlnLTQ2LVxcdHRyaXN0YXRlIFxcXCJNYXJ2ZWxsIE9jdGVvblRYMiBOSUMgVmlydHVhbCBGdW5jdGlvbiBkcml2ZXJcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvS2NvbmZpZzo0NzpcXHRkZXBlbmRzIG9uIE9DVEVPTlRYMl9QRlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL0tjb25maWctNDgtXFx0aGVscFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvS2NvbmZpZz01MT1jb25maWcgUlZVX0VTV0lUQ0hcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9LY29uZmlnLTUyLVxcdHRyaXN0YXRlIFxcXCJNYXJ2ZWxsIFJWVSBFLVN3aXRjaCBzdXBwb3J0XFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL0tjb25maWc6NTM6XFx0ZGVwZW5kcyBvbiBPQ1RFT05UWDJfUEZcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9LY29uZmlnLTU0LVxcdGRlZmF1bHQgbVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvTWFrZWZpbGUtNS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9NYWtlZmlsZTo2Om9iai0kKENPTkZJR19PQ1RFT05UWDJfTUJPWCkgKz0gYWYvXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvTWFrZWZpbGU6NzpvYmotJChDT05GSUdfT0NURU9OVFgyX0FGKSArPSBhZi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9NYWtlZmlsZTo4Om9iai0kKENPTkZJR19PQ1RFT05UWDJfUEYpICs9IG5pYy9cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL01ha2VmaWxlPTY9Y2NmbGFncy15ICs9IC1JJChzcmMpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvTWFrZWZpbGU6NzpvYmotJChDT05GSUdfT0NURU9OVFgyX01CT1gpICs9IHJ2dV9tYm94Lm9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9NYWtlZmlsZTo4Om9iai0kKENPTkZJR19PQ1RFT05UWDJfQUYpICs9IHJ2dV9hZi5vXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvTWFrZWZpbGUtOS1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL2NneC5jPTY2PXN0YXRpYyBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCBjZ3hfaWRfdGFibGVbXSA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jZ3guYzo2NzpcXHR7IFBDSV9ERVZJQ0UoUENJX1ZFTkRPUl9JRF9DQVZJVU0sIFBDSV9ERVZJRF9PQ1RFT05UWDJfQ0dYKSB9LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL2NneC5jLTY4LVxcdHsgUENJX0RFVklDRV9TVUIoUENJX1ZFTkRPUl9JRF9DQVZJVU0sIFBDSV9ERVZJRF9DTjEwS19SUE0sXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jZ3guaC0xNS0gLyogUENJIGRldmljZSBJRHMgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jZ3guaDoxNjojZGVmaW5lXFx0UENJX0RFVklEX09DVEVPTlRYMl9DR1hcXHRcXHQweEEwNTlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jZ3guaC0xNy1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL2NuMjBrL2RlYnVnZnMuYz0xNTQ9REVGSU5FX1NIT1dfQVRUUklCVVRFKG5wY19tY2FtX2xheW91dCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY24yMGsvZGVidWdmcy5jLTE1NS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jbjIway9kZWJ1Z2ZzLmM6MTU2OiNkZWZpbmUgX19PQ1RFT05UWDJfREVCVUdGU19BVFRSSUJVVEVfRk9QUyhfX25hbWUpXFx0XFx0XFx0XFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL2NuMjBrL2RlYnVnZnMuYy0xNTctc3RhdGljIGNvbnN0IHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgX19uYW1lICMjIF9mb3BzID0ge1xcdFxcdFxcdFxcXFxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL2NuMjBrL2RlYnVnZnMuYy0xNjQtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY24yMGsvZGVidWdmcy5jOjE2NTojZGVmaW5lIERFRklORV9PQ1RFT05UWDJfREVCVUdGU19BVFRSSUJVVEVfV0lUSF9TSVpFKF9fbmFtZSwgX19zaXplKVxcdFxcdFxcXFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jbjIway9kZWJ1Z2ZzLmMtMTY2LXN0YXRpYyBpbnQgX19uYW1lICMjIF9vcGVuKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxlKVxcdFxcdFxcXFxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL2NuMjBrL2RlYnVnZnMuYy0xNzAtfVxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcXFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jbjIway9kZWJ1Z2ZzLmM6MTcxOl9fT0NURU9OVFgyX0RFQlVHRlNfQVRUUklCVVRFX0ZPUFMoX19uYW1lKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL2NuMjBrL2RlYnVnZnMuYy0xNzItXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jbjIway9kZWJ1Z2ZzLmM9MTgxPXN0YXRpYyBpbnQgbnBjX21jYW1fZHN0YXRzX3Nob3coc3RydWN0IHNlcV9maWxlICpzLCB2b2lkICp1bnVzZWQpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jbjIway9kZWJ1Z2ZzLmMtMjQyLSNkZWZpbmUgVE9UQUxfU1ogKE1BWF9OVU1fQkFOS1MgKiBNQVhfTlVNX1NVQl9CQU5LUyAqIE1BWF9TVUJCQU5LX0RFUFRIICogNjQpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY24yMGsvZGVidWdmcy5jOjI0MzpERUZJTkVfT0NURU9OVFgyX0RFQlVHRlNfQVRUUklCVVRFX1dJVEhfU0laRShucGNfbWNhbV9kc3RhdHMsIFRPVEFMX1NaKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jbjIway9kZWJ1Z2ZzLmMtMjQ0LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL2NuMjBrL2RlYnVnZnMuYz0yNDU9c3RhdGljIGludCBucGNfbWNhbV9taXNtYXRjaF9zaG93KHN0cnVjdCBzZXFfZmlsZSAqcywgdm9pZCAqdW51c2VkKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY24yMGsvZGVidWdmcy5jLTI4NC0vKiBcXFwiJXVcXFxcdCVkXFxcXHQldVxcXFxuXFxcIiBuZWVkcyBsZXNzIHRoYW4gNjQgY2hhcmFjdGVycyB0byBwcmludC4gKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jbjIway9kZWJ1Z2ZzLmM6Mjg1OkRFRklORV9PQ1RFT05UWDJfREVCVUdGU19BVFRSSUJVVEVfV0lUSF9TSVpFKG5wY19tY2FtX21pc21hdGNoLCBUT1RBTF9TWik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY24yMGsvZGVidWdmcy5jLTI4Ni1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3B0cC5jLTIwLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3B0cC5jOjIxOiNkZWZpbmUgUENJX0RFVklEX09DVEVPTlRYMl9QVFBcXHRcXHRcXHQweEEwMENcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9wdHAuYy0yMi0jZGVmaW5lIFBDSV9TVUJTWVNfREVWSURfT0NUWDJfOTh4eF9QVFBcXHRcXHQweEIxMDBcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3B0cC5jLTI3LSNkZWZpbmUgUENJX1NVQlNZU19ERVZJRF9PQ1RYMl85NVhYT19QVFBcXHQweEI2MDBcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9wdHAuYzoyODojZGVmaW5lIFBDSV9ERVZJRF9PQ1RFT05UWDJfUlNUXFx0XFx0XFx0MHhBMDg1XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcHRwLmMtMjktI2RlZmluZSBQQ0lfREVWSURfQ04xMEtfUFRQXFx0XFx0XFx0MHhBMDlFXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9wdHAuYz01ODk9c3RhdGljIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkIHB0cF9pZF90YWJsZVtdID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3B0cC5jOjU5MDpcXHR7IFBDSV9ERVZJQ0VfU1VCKFBDSV9WRU5ET1JfSURfQ0FWSVVNLCBQQ0lfREVWSURfT0NURU9OVFgyX1BUUCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9wdHAuYy01OTEtXFx0XFx0XFx0IFBDSV9WRU5ET1JfSURfQ0FWSVVNLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3B0cC5jLTU5Mi1cXHRcXHRcXHQgUENJX1NVQlNZU19ERVZJRF9PQ1RYMl85OHh4X1BUUCkgfSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9wdHAuYzo1OTM6XFx0eyBQQ0lfREVWSUNFX1NVQihQQ0lfVkVORE9SX0lEX0NBVklVTSwgUENJX0RFVklEX09DVEVPTlRYMl9QVFAsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcHRwLmMtNTk0LVxcdFxcdFxcdCBQQ0lfVkVORE9SX0lEX0NBVklVTSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9wdHAuYy01OTUtXFx0XFx0XFx0IFBDSV9TVUJTWVNfREVWSURfT0NUWDJfOTZYWF9QVFApIH0sXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcHRwLmM6NTk2OlxcdHsgUENJX0RFVklDRV9TVUIoUENJX1ZFTkRPUl9JRF9DQVZJVU0sIFBDSV9ERVZJRF9PQ1RFT05UWDJfUFRQLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3B0cC5jLTU5Ny1cXHRcXHRcXHQgUENJX1ZFTkRPUl9JRF9DQVZJVU0sXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcHRwLmMtNTk4LVxcdFxcdFxcdCBQQ0lfU1VCU1lTX0RFVklEX09DVFgyXzk1WFhfUFRQKSB9LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3B0cC5jOjU5OTpcXHR7IFBDSV9ERVZJQ0VfU1VCKFBDSV9WRU5ET1JfSURfQ0FWSVVNLCBQQ0lfREVWSURfT0NURU9OVFgyX1BUUCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9wdHAuYy02MDAtXFx0XFx0XFx0IFBDSV9WRU5ET1JfSURfQ0FWSVVNLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3B0cC5jLTYwMS1cXHRcXHRcXHQgUENJX1NVQlNZU19ERVZJRF9PQ1RYMl85NVhYTl9QVFApIH0sXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcHRwLmM6NjAyOlxcdHsgUENJX0RFVklDRV9TVUIoUENJX1ZFTkRPUl9JRF9DQVZJVU0sIFBDSV9ERVZJRF9PQ1RFT05UWDJfUFRQLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3B0cC5jLTYwMy1cXHRcXHRcXHQgUENJX1ZFTkRPUl9JRF9DQVZJVU0sXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcHRwLmMtNjA0LVxcdFxcdFxcdCBQQ0lfU1VCU1lTX0RFVklEX09DVFgyXzk1TU1fUFRQKSB9LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3B0cC5jOjYwNTpcXHR7IFBDSV9ERVZJQ0VfU1VCKFBDSV9WRU5ET1JfSURfQ0FWSVVNLCBQQ0lfREVWSURfT0NURU9OVFgyX1BUUCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9wdHAuYy02MDYtXFx0XFx0XFx0IFBDSV9WRU5ET1JfSURfQ0FWSVVNLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmM9NDQ9c3RhdGljIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkIHJ2dV9pZF90YWJsZVtdID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jOjQ1OlxcdHsgUENJX0RFVklDRShQQ0lfVkVORE9SX0lEX0NBVklVTSwgUENJX0RFVklEX09DVEVPTlRYMl9SVlVfQUYpIH0sXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmMtNDYtXFx0eyAwLCB9ICAvKiBlbmQgb2YgdGFibGUgKi9cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jPTkyNz1zdGF0aWMgdm9pZCBydnVfZ2V0X2xia19idWZzaXplKHN0cnVjdCBydnUgKnJ2dSlcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jLTkzMy1cXHRwZGV2ID0gcGNpX2dldF9kZXZpY2UoUENJX1ZFTkRPUl9JRF9DQVZJVU0sXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmM6OTM0OlxcdFxcdFxcdCAgICAgIFBDSV9ERVZJRF9PQ1RFT05UWDJfTEJLLCBwZGV2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYy05MzUtXFx0aWYgKCFwZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmM9MzQ0Nz1pbnQgcnZ1X2dldF9udW1fbGJrX2NoYW5zKHZvaWQpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYy0zNDUyLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jOjM0NTM6XFx0cGRldiA9IHBjaV9nZXRfZGV2aWNlKFBDSV9WRU5ET1JfSURfQ0FWSVVNLCBQQ0lfREVWSURfT0NURU9OVFgyX0xCSyxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYy0zNDU0LVxcdFxcdFxcdCAgICAgIE5VTEwpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmMtMzQ3MC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYzozNDcxOiNkZWZpbmUgUENJX0RFVklEX09DVEVPTlRYMl9SVlVfQUZWRlxcdDB4QTBGOFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jLTM0NzItXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmM9MzQ3Mz1zdGF0aWMgaW50IHJ2dV9lbmFibGVfc3Jpb3Yoc3RydWN0IHJ2dSAqcnZ1KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmMtMzQ5NC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYzozNDk1OlxcdGlmIChydnUtXFx1MDAzZXZmX2RldmlkID09IFBDSV9ERVZJRF9PQ1RFT05UWDJfUlZVX0FGVkYpIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYy0zNDk2LVxcdFxcdGNoYW5zID0gcnZ1X2dldF9udW1fbGJrX2NoYW5zKCk7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuaC0yMy0vKiBQQ0kgZGV2aWNlIElEcyAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5oOjI0OiNkZWZpbmVcXHRQQ0lfREVWSURfT0NURU9OVFgyX1JWVV9BRlxcdFxcdDB4QTA2NVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5oOjI1OiNkZWZpbmVcXHRQQ0lfREVWSURfT0NURU9OVFgyX0xCS1xcdFxcdFxcdDB4QTA2MVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5oLTI2LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2NuMTBrLmM9MzkyPXN0YXRpYyB2b2lkIHJ2dV9sYmtfc2V0X2NoYW5uZWxzKHN0cnVjdCBydnUgKnJ2dSlcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9jbjEway5jLTQxNS1cXHRcXHRwZGV2ID0gcGNpX2dldF9kZXZpY2UoUENJX1ZFTkRPUl9JRF9DQVZJVU0sXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2NuMTBrLmM6NDE2OlxcdFxcdFxcdFxcdCAgICAgIFBDSV9ERVZJRF9PQ1RFT05UWDJfTEJLLCBwZGV2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfY24xMGsuYy00MTctXFx0XFx0aWYgKCFwZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2RlYnVnZnMuYz0yODA2PXN0YXRpYyB2b2lkIHJ2dV9kYmdfbnBhX2luaXQoc3RydWN0IHJ2dSAqcnZ1KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2RlYnVnZnMuYy0yODI1LS8qIFBlci1sbWFjIENHWCBkZWJ1Z2ZzIGZpbGVzIG5lZWQgYm90aCBSVlUgYW5kIENHWCBoYW5kbGU7IGlub2RlLVxcdTAwM2VpX3ByaXZhdGVcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGVidWdmcy5jOjI4MjY6ICogcG9pbnRzIGhlcmUgc28gc2VxX2ZpbGUgb3BzIGF2b2lkIHBjaV9nZXRfZGV2aWNlKFBDSV9ERVZJRF9PQ1RFT05UWDJfUlZVX0FGKS5cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGVidWdmcy5jLTI4MjctICovXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvTWFrZWZpbGUtNS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvTWFrZWZpbGU6NjpvYmotJChDT05GSUdfT0NURU9OVFgyX1BGKSArPSBydnVfbmljcGYubyBvdHgyX3B0cC5vXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL01ha2VmaWxlOjc6b2JqLSQoQ09ORklHX09DVEVPTlRYMl9WRikgKz0gcnZ1X25pY3ZmLm8gb3R4Ml9wdHAub1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9NYWtlZmlsZS04LW9iai0kKENPTkZJR19SVlVfRVNXSVRDSCkgKz0gcnZ1X3JlcC5vXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml9jb21tb24uaC00Mi0vKiBQQ0kgZGV2aWNlIElEcyAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX2NvbW1vbi5oOjQzOiNkZWZpbmUgUENJX0RFVklEX09DVEVPTlRYMl9SVlVfUEYgICAgICAgICAgICAgIDB4QTA2M1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX2NvbW1vbi5oOjQ0OiNkZWZpbmUgUENJX0RFVklEX09DVEVPTlRYMl9SVlVfVkZcXHRcXHQweEEwNjRcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml9jb21tb24uaDo0NTojZGVmaW5lIFBDSV9ERVZJRF9PQ1RFT05UWDJfUlZVX0FGVkZcXHRcXHQweEEwRjhcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml9jb21tb24uaC00Ni1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX2NvbW1vbi5oLTUwLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX2NvbW1vbi5oOjUxOiNkZWZpbmUgUENJX0RFVklEX09DVEVPTlRYMl9TRFBfUkVQXFx0XFx0MHhBMEY3XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfY29tbW9uLmgtNTItXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml9jb21tb24uaD01OTc9c3RhdGljIGlubGluZSBib29sIGlzX290eDJfbGJrdmYoc3RydWN0IHBjaV9kZXYgKnBkZXYpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfY29tbW9uLmgtNTk4LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml9jb21tb24uaDo1OTk6XFx0cmV0dXJuIChwZGV2LVxcdTAwM2VkZXZpY2UgPT0gUENJX0RFVklEX09DVEVPTlRYMl9SVlVfQUZWRikgfHxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml9jb21tb24uaC02MDAtXFx0XFx0KHBkZXYtXFx1MDAzZWRldmljZSA9PSBQQ0lfREVWSURfUlZVX1JFUCk7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml9jb21tb24uaD02MTU9c3RhdGljIGlubGluZSBib29sIGlzX290eDJfc2RwX3JlcChzdHJ1Y3QgcGNpX2RldiAqcGRldilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml9jb21tb24uaC02MTYte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX2NvbW1vbi5oOjYxNzpcXHRyZXR1cm4gcGRldi1cXHUwMDNlZGV2aWNlID09IFBDSV9ERVZJRF9PQ1RFT05UWDJfU0RQX1JFUDtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml9jb21tb24uaC02MTgtfVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfcGYuYz0zNj1zdGF0aWMgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgb3R4Ml9wZl9pZF90YWJsZVtdID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX3BmLmM6Mzc6XFx0eyBQQ0lfREVWSUNFKFBDSV9WRU5ET1JfSURfQ0FWSVVNLCBQQ0lfREVWSURfT0NURU9OVFgyX1JWVV9QRikgfSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml9wZi5jLTM4LVxcdHsgMCwgfSAgLyogZW5kIG9mIHRhYmxlICovXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml92Zi5jPTIyPXN0YXRpYyBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCBvdHgyX3ZmX2lkX3RhYmxlW10gPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfdmYuYzoyMzpcXHR7IFBDSV9ERVZJQ0UoUENJX1ZFTkRPUl9JRF9DQVZJVU0sIFBDSV9ERVZJRF9PQ1RFT05UWDJfUlZVX0FGVkYpIH0sXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfdmYuYzoyNDpcXHR7IFBDSV9ERVZJQ0UoUENJX1ZFTkRPUl9JRF9DQVZJVU0sIFBDSV9ERVZJRF9PQ1RFT05UWDJfUlZVX1ZGKSB9LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX3ZmLmM6MjU6XFx0eyBQQ0lfREVWSUNFKFBDSV9WRU5ET1JfSURfQ0FWSVVNLCBQQ0lfREVWSURfT0NURU9OVFgyX1NEUF9SRVApIH0sXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfdmYuYy0yNi1cXHR7IH1cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMTNUMTQ6MzE6NDEuNDMwMjI0MjkyWiIsIlNlcSI6MTksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy44LWZsYXNoIiwiRHVyYXRpb24iOjEzMzMyOTAzMDI3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKldvcnRoRnV6emluZyBBc3Nlc3NtZW50OiBNYXJ2ZWxsIE9jdGVvblRYMiBSVlUgRHJpdmVyKipcblxuT2theSwgbGV0J3MgYnJlYWsgdGhpcyBkb3duLiBUaGUgcGF0Y2ggaXMgaW4gYGRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL21jc19ydnVfaWYuY2AsIHNwZWNpZmljYWxseSBpbiB0aGUgYHJ2dV9tY3NfcHRwX2NmZ2AgZnVuY3Rpb24uIEl0J3MgYSBzaW1wbGUgTlVMTCBjaGVjayDigJMgYWRkaW5nIGBtY3NfZ2V0X3BkYXRhKHJwbV9pZClgIHRvIHByZXZlbnQgYSBwb3RlbnRpYWwgY3Jhc2guIE5vIGdyb3VuZGJyZWFraW5nIGZ1bmN0aW9uYWxpdHkgaGVyZSwganVzdCBkZWZlbnNpdmUgcHJvZ3JhbW1pbmcuXG5cblRoZSBjcml0aWNhbCBwaWVjZSwgaG93ZXZlciwgaXMgdGhlIGhhcmR3YXJlLiBUaGlzIGlzIHRoZSBSVlUgQWRtaW4gRnVuY3Rpb24gZHJpdmVyIGZvciBNYXJ2ZWxsIE9jdGVvblRYMiBhbmQgQ04xMEsgaGFyZHdhcmUuIFdlJ3JlIHRhbGtpbmcgYWJvdXQgKnZlbmRvci1zcGVjaWZpYyogcGh5c2ljYWwgaGFyZHdhcmUg4oCTIFNtYXJ0TklDcywgbmV0d29yayBTb0NzLCB0aGF0IHNvcnQgb2YgdGhpbmcuIFRoZSBQQ0kgSURzIGNvbmZpcm0gdGhpczogYFBDSV9WRU5ET1JfSURfQ0FWSVVNYCwgYFBDSV9ERVZJRF9PQ1RFT05UWDJfUlZVX0FGYCwgYFBDSV9ERVZJRF9DTjEwS19NQ1NgLlxuXG5Ob3csIHRoZSBpbnN0cnVjdGlvbnMgZmxhZ2dlZCB0aGlzIGFzIGEgcG90ZW50aWFsIG5lZ2F0aXZlIGNhc2UuIExldCBtZSBjaGVjay4uLiBZZXAsIHN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZSBoYXJkd2FyZSBpcyBhIG5vLWdvIGZvciBmdXp6aW5nLiBXZSdyZSB0YWxraW5nIGFib3V0IHRoaW5ncyBsaWtlIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaGVzLCBTbWFydE5JQ3MsIEdQVSBkcml2ZXJzIOKAkyB0aGUgbGlzdCBnb2VzIG9uLiBBbmQgc3BlY2lmaWNhbGx5LCB0aGUgZXhhbXBsZSBnaXZlbiBpcyBkcml2ZXJzICpyZXF1aXJpbmcgcGh5c2ljYWwgQVNJQy9QQ0llIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VKi4gQmluZ28uIFRoaXMgKmlzKiB0aGF0IGNhc2UuIFRoZSBNYXJ2ZWxsIE9jdGVvblRYMiBSVlUgcmVxdWlyZXMgcmVhbCwgcGh5c2ljYWwgTWFydmVsbCBDYXZpdW0vT2N0ZW9uVFgyIGhhcmR3YXJlLCBvciBzb21lIHZlcnkgc3BlY2lhbGl6ZWQgZW11bGF0aW9uLiBTdGFuZGFyZCBRRU1VIG9yIEdDRSBhcmUgdXNlbGVzcyBoZXJlLlxuXG5UaGVyZWZvcmUsIGJlY2F1c2UgdGhpcyBjb2RlIGlzIHRpZWQgdG8gc3BlY2lmaWMgaGFyZHdhcmUgdGhhdCdzIG5vdCBhY2Nlc3NpYmxlIGluIGEgc3RhbmRhcmQgZnV6emluZyBzZXR1cCwgYFdvcnRoRnV6emluZ2AgaGFzIHRvIGJlIGBmYWxzZWAuXG5cbkxldCBtZSBxdWlja2x5IHN1bW1hcml6ZSBteSByZWFzb25pbmcgZm9yIHRoZSByZWNvcmQ6XG5cbiogICBNb2RpZmllZCBjb2RlOiBgZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvbWNzX3J2dV9pZi5jYCAoTWFydmVsbCBPY3Rlb25UWDIgUlZVIEFkbWluIEZ1bmN0aW9uIGRyaXZlcikuXG4qICAgUGF0Y2g6IEFkZHMgYSBOVUxMIGNoZWNrIGluIGBydnVfbWNzX3B0cF9jZmdgLlxuKiAgIEhhcmR3YXJlIERlcGVuZGVuY3k6IFZlbmRvci1zcGVjaWZpYyBTbWFydE5JQyAvIG5ldHdvcmsgU29DIGRyaXZlciB0aGF0IHJlcXVpcmVzIHBoeXNpY2FsIE1hcnZlbGwgT2N0ZW9uVFgyIC8gQ04xMEsgUENJZSBoYXJkd2FyZS5cbiogICBSZWFjaGFiaWxpdHk6IFN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZSBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBmdXp6aW5nIGVudmlyb25tZW50cyAoUUVNVS9HQ0UpIHdpdGhvdXQgc3BlY2lhbGl6ZWQgZW11bGF0aW9uLlxuKiAgIENvbmNsdXNpb246IGBXb3J0aEZ1enppbmcgPSBmYWxzZWAuXG5cbkFuZCBzaW5jZSBgV29ydGhGdXp6aW5nYCBpcyBgZmFsc2VgLCB0aGUgYEVuYWJsZUNvbmZpZ3NgIGFuZCBgRm9jdXNTeW1ib2xzYCB3aWxsIGJlIGVtcHR5LiBJIGNhbiBzZXQgdGhlIHJlc3VsdHMgbm93LlxuXG5cbiIsIklucHV0VG9rZW5zIjozMjYxMiwiT3V0cHV0VG9rZW5zIjoxNzAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo1MjUsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDktMTNUMTQ6MzE6NTQuNzYzMTMxNTk4WiIsIlNlcSI6MjAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InNldC1yZXN1bHRzIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MzQwNjAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgYHJ2dV9tY3NfcHRwX2NmZygpYCBpbiBgZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvbWNzX3J2dV9pZi5jYCwgYWRkaW5nIGEgTlVMTCBjaGVjayBmb3IgdGhlIHBvaW50ZXIgcmV0dXJuZWQgYnkgYG1jc19nZXRfcGRhdGEoKWAuIFRoaXMgY29kZSBpcyBwYXJ0IG9mIHRoZSBNYXJ2ZWxsIE9jdGVvblRYMiBSVlUgQWRtaW4gRnVuY3Rpb24gZHJpdmVyLCB3aGljaCByZXF1aXJlcyB2ZW5kb3Itc3BlY2lmaWMgcGh5c2ljYWwgU21hcnROSUMgLyBTb0MgQVNJQyBoYXJkd2FyZSAoQ2F2aXVtL01hcnZlbGwgT2N0ZW9uVFgyL0NOMTBLIFBDSWUgZGV2aWNlcykgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIFFFTVUuIENvbnNlcXVlbnRseSwgdGhlIG1vZGlmaWVkIGNvZGUgaXMgc3RydWN0dXJhbGx5IHVucmVhY2hhYmxlIGZvciBzeXprYWxsZXIgZnV6emluZy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIGBydnVfbWNzX3B0cF9jZmcoKWAgaW4gYGRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL21jc19ydnVfaWYuY2AsIGFkZGluZyBhIE5VTEwgY2hlY2sgZm9yIHRoZSBwb2ludGVyIHJldHVybmVkIGJ5IGBtY3NfZ2V0X3BkYXRhKClgLiBUaGlzIGNvZGUgaXMgcGFydCBvZiB0aGUgTWFydmVsbCBPY3Rlb25UWDIgUlZVIEFkbWluIEZ1bmN0aW9uIGRyaXZlciwgd2hpY2ggcmVxdWlyZXMgdmVuZG9yLXNwZWNpZmljIHBoeXNpY2FsIFNtYXJ0TklDIC8gU29DIEFTSUMgaGFyZHdhcmUgKENhdml1bS9NYXJ2ZWxsIE9jdGVvblRYMi9DTjEwSyBQQ0llIGRldmljZXMpIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBRRU1VLiBDb25zZXF1ZW50bHksIHRoZSBtb2RpZmllZCBjb2RlIGlzIHN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZSBmb3Igc3l6a2FsbGVyIGZ1enppbmcuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOS0xM1QxNDozMTo1NC43NjMxNzA4MzhaIiwiU2VxIjoyMSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJJZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjI4ODksIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9XTsKCQkJaWYgKCFyYXdEYXRhIHx8IHJhd0RhdGEubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQlkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKTsKCQkJZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSk7CgkJCWRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKSB7CgkJCWNvbnN0IHN0YXRzID0gewoJCQkJbGxtOiB7IGNvdW50OiAwLCB0b2tlbnM6IDAsIGR1cmF0aW9uOiAwIH0sCgkJCQl0b29sOiB7IGNvdW50OiAwLCBkdXJhdGlvbjogMCB9CgkJCX07CgoJCQlyYXdEYXRhLmZvckVhY2gocyA9PiB7CgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsgCgkJCQlpZiAocy5UeXBlID09PSAibGxtIikgewoJCQkJCXN0YXRzLmxsbS5jb3VudCsrOwoJCQkJCXN0YXRzLmxsbS50b2tlbnMgKz0gKHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnMpOwoJCQkJCXN0YXRzLmxsbS5kdXJhdGlvbiArPSBkdXI7CgkJCQl9IGVsc2UgaWYgKHMuVHlwZSA9PT0gInRvb2wiKSB7CgkJCQkJc3RhdHMudG9vbC5jb3VudCsrOwoJCQkJCXN0YXRzLnRvb2wuZHVyYXRpb24gKz0gZHVyOwoJCQkJfQoJCQl9KTsKCgkJCWNvbnN0IGF2Z0xsbUR1ciA9IHN0YXRzLmxsbS5jb3VudCA+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-workflowsqm9t[1] Phase: Running StartedAt: 2026-09-13 14:32:06 +0000 UTC FinishedAt: 0001-01-01 00:00:00 +0000 UTC Input: nil Output: nil --------- Name: series-workflowsqm9t[1].abort-on-skip-outcome Phase: Failed StartedAt: 2026-09-13 14:32:06 +0000 UTC FinishedAt: 2026-09-13 14:32:11 +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,}