Name: series-workflow6ks7f Phase: Failed StartedAt: 2026-09-11 06:15:31 +0000 UTC FinishedAt: 2026-09-11 06:32:56 +0000 UTC Input: nil Output: nil --------- Name: series-workflow6ks7f[0] Phase: Succeeded StartedAt: 2026-09-11 06:15:31 +0000 UTC FinishedAt: 2026-09-11 06:32:46 +0000 UTC Input: nil Output: nil --------- Name: series-workflow6ks7f[0].run-triage Phase: Succeeded StartedAt: 2026-09-11 06:15:31 +0000 UTC FinishedAt: 2026-09-11 06:32:46 +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+CgkJCTx0ZD4yMDI2LzA5LzExIDA2OjMyPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7S01TQU5SZWFzb25pbmcmIzM0OzogJiMzNDsmIzM0OywKICAmIzM0O05lZWRzS01TQU4mIzM0OzogZmFsc2UsCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbWFjLmMgaW4gdGhlIE1lZGlhVGVrIE1UNzk5NiB3aXJlbGVzcyBkcml2ZXIgKENPTkZJR19NVDc5OTZFKS4gVGhpcyBkcml2ZXIgaXMgZXhjbHVzaXZlbHkgYSBQQ0llIGRldmljZSBkcml2ZXIgZm9yIHBoeXNpY2FsIE1lZGlhVGVrIE1UNzk5Ni9NVDc5OTIvTVQ3OTkwIGhhcmR3YXJlLCB3aGljaCBpcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQgZnV6emluZyBlbnZpcm9ubWVudHMgKFFFTVUvR0NFKS4gQ29uc2VxdWVudGx5LCB0aGUgbW9kaWZpZWQgY29kZSBpcyBzdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUgZm9yIGZ1enppbmcuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzExIDA2OjMyPC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5yZWFkLXBhdGNoLWRpZmY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtQYXRjaERpZmYmIzM0OzogJiMzNDtjb21taXQgNTg1ZjA5NmM0ODZmZmM4MDNmZDc2ODQwYjExZTg2MjVkODBjMjk0NlxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBGcmkgU2VwIDExIDA2OjMyOjAyIDIwMjYgJiM0MzswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21hYy5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbWFjLmNcbmluZGV4IDFjYmEzODFhNzhiODIuLmUyNGRkNTMwNDg2YzQgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tYWMuY1xuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbWFjLmNcbkBAIC0xMDU3LDcgJiM0MzsxMDU3LDcgQEAgaW50IG10Nzk5Nl90eF9wcmVwYXJlX3NrYihzdHJ1Y3QgbXQ3Nl9kZXYgKm1kZXYsIHZvaWQgKnR4d2lfcHRyLFxuIFx0aWYgKCF3Y2lkKVxuIFx0XHR3Y2lkID0gXHUwMDI2ZGV2LVx1MDAzZW10NzYuZ2xvYmFsX3djaWQ7XG4gXG4tXHRpZiAoKGlzXzgwMjMgfHwgaWVlZTgwMjExX2lzX2RhdGFfcW9zKGhkci1cdTAwM2VmcmFtZV9jb250cm9sKSkgXHUwMDI2XHUwMDI2IHN0YS1cdTAwM2VtbG8gXHUwMDI2XHUwMDI2XG4mIzQzO1x0aWYgKHN0YSBcdTAwMjZcdTAwMjYgKGlzXzgwMjMgfHwgaWVlZTgwMjExX2lzX2RhdGFfcW9zKGhkci1cdTAwM2VmcmFtZV9jb250cm9sKSkgXHUwMDI2XHUwMDI2IHN0YS1cdTAwM2VtbG8gXHUwMDI2XHUwMDI2XG4gXHQgICAgbGlrZWx5KHR4X2luZm8tXHUwMDNlc2tiLVx1MDAzZXByb3RvY29sICE9IGNwdV90b19iZTE2KEVUSF9QX1BBRSkpKSB7XG4gXHRcdHU4IHRpZCA9IHR4X2luZm8tXHUwMDNlc2tiLVx1MDAzZXByaW9yaXR5IFx1MDAyNiBJRUVFODAyMTFfUU9TX0NUTF9USURfTUFTSztcbiBcbkBAIC0xMDk3LDcgJiM0MzsxMDk3LDcgQEAgaW50IG10Nzk5Nl90eF9wcmVwYXJlX3NrYihzdHJ1Y3QgbXQ3Nl9kZXYgKm1kZXYsIHZvaWQgKnR4d2lfcHRyLFxuIFx0ICogY29tcGF0aWJsZSB3aXRoIDgwMi4xMSBFQVBPTCBmcmFtZSwgd2UgZG8gdGhlIHRyYW5zbGF0aW9uIGJ5XG4gXHQgKiBzb2Z0d2FyZVxuIFx0ICovXG4tXHRpZiAodHhfaW5mby1cdTAwM2Vza2ItXHUwMDNlcHJvdG9jb2wgPT0gY3B1X3RvX2JlMTYoRVRIX1BfUEFFKSBcdTAwMjZcdTAwMjYgc3RhLVx1MDAzZW1sbykge1xuJiM0MztcdGlmIChzdGEgXHUwMDI2XHUwMDI2IHR4X2luZm8tXHUwMDNlc2tiLVx1MDAzZXByb3RvY29sID09IGNwdV90b19iZTE2KEVUSF9QX1BBRSkgXHUwMDI2XHUwMDI2IHN0YS1cdTAwM2VtbG8pIHtcbiBcdFx0c3RydWN0IGllZWU4MDIxMV9oZHIgKmhkciA9ICh2b2lkICopdHhfaW5mby1cdTAwM2Vza2ItXHUwMDNlZGF0YTtcbiBcdFx0c3RydWN0IGllZWU4MDIxMV9ic3NfY29uZiAqbGlua19jb25mO1xuIFx0XHRzdHJ1Y3QgaWVlZTgwMjExX2xpbmtfc3RhICpsaW5rX3N0YTtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yLzE8L3RkPgoJCQk8dGQ+MjAyNi8wOS8xMSAwNjozMjwvdGQ+CgkJCTx0ZD5hZ2VudDwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5jb3JlPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogbnVsbCwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyBkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tYWMuYyBpbiB0aGUgTWVkaWFUZWsgTVQ3OTk2IHdpcmVsZXNzIGRyaXZlciAoQ09ORklHX01UNzk5NkUpLiBUaGlzIGRyaXZlciBpcyBleGNsdXNpdmVseSBhIFBDSWUgZGV2aWNlIGRyaXZlciBmb3IgcGh5c2ljYWwgTWVkaWFUZWsgTVQ3OTk2L01UNzk5Mi9NVDc5OTAgaGFyZHdhcmUsIHdoaWNoIGlzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBmdXp6aW5nIGVudmlyb25tZW50cyAoUUVNVS9HQ0UpLiBDb25zZXF1ZW50bHksIHRoZSBtb2RpZmllZCBjb2RlIGlzIHN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZSBmb3IgZnV6emluZy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyIGFuZCBzZWN1cml0eSBlbmdpbmVlci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBldmFsdWF0ZSB3aGV0aGVyIGl0IHdhcnJhbnRzIGZ1enppbmcgd2l0aCBzeXprYWxsZXIuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIGludGVybmFsIGFzc3VtcHRpb25zLiBZb3UgbXVzdCBhY3RpdmVseSB1c2UgeW91ciBjb2RlIGFjY2Vzcwp0b29scyB0byBpbnNwZWN0IHRoZSBhY3R1YWwgc291cmNlIGNvZGUsIGNhbGxlcnMsIGFuZCBzdXJyb3VuZGluZyBjb250ZXh0LgoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KMS4gQ09SRSBUUklBR0UgUEhJTE9TT1BIWQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpUaGUgZ29hbCBvZiBwYXRjaCBmdXp6aW5nIGlzIHRvIGRpc2NvdmVyIGNyYXNoZXMsIHJlZ3Jlc3Npb25zLCBleHBvc2VkIGxhdGVudCBidWdzLAphbmQgbmV3bHkgdHJpZ2dlcmVkIGFzc2VydGlvbnMgaW50cm9kdWNlZCBieSB0aGUgcGF0Y2ggc2VyaWVzLgoKLSBSRUFDSEFCSUxJVFkgSVMgVEhFIFBSSU1BUlkgR0FURToKICBGdXp6aW5nIGNhbiBvbmx5IGRpc2NvdmVyIGJ1Z3MgaW4gY29kZSB0aGF0IGNhbiBhY3R1YWxseSBleGVjdXRlIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkCiAgZW52aXJvbm1lbnRzIChHQ0Ugb3IgUUVNVSwgdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGRldmljZXMgbGlrZSBVU0IgZ2FkZ2V0cywgbmV0ZGV2LCB0dW4vdGFwKS4KICBJZiB0aGUgbW9kaWZpZWQgY29kZSBpcyBzdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUgKHNlZSBTZWN0aW9uIDIpLCBpdCBNVVNUIE5PVCBiZSBmdXp6ZWQsCiAgcmVnYXJkbGVzcyBvZiB3aGV0aGVyIGl0IGFkZHMgYXNzZXJ0aW9ucyBvciBjb21wbGV4IGxvZ2ljLgoKLSBETyBOT1QgQkxJTkRMWSBUUlVTVCAmIzM0O05PIEZVTkNUSU9OQUwgQ0hBTkdFJiMzNDsgKE5GQ0kpIE9SICYjMzQ7UkVGQUNUT1JJTkcmIzM0OyBDTEFJTVM6CiAgUGF0Y2ggYXV0aG9ycyByb3V0aW5lbHkgbGFiZWwgY2hhbmdlcyBhcyAmIzM0O2NsZWFudXBzJiMzNDssICYjMzQ7cmVmYWN0b3JpbmdzJiMzNDssIG9yIHN0YXRlCiAgJiMzNDtObyBmdW5jdGlvbmFsIGNoYW5nZSBpbnRlbmRlZCYjMzQ7LiBEbyBOT1QgdGFrZSB0aGVzZSBjbGFpbXMgYXQgZmFjZSB2YWx1ZS4KICBDb2RlIHJlZmFjdG9yaW5ncyB0aGF0IHJlYXJyYW5nZSBsb2dpYywgaW50cm9kdWNlIGhlbHBlciBmdW5jdGlvbnMsIG9yIGFsdGVyIHN0YXRlIG1hbmFnZW1lbnQKICBpbiBjb3JlIHN1YnN5c3RlbXMgZnJlcXVlbnRseSBpbnRyb2R1Y2Ugc3VidGxlIHNlbWFudGljIHNoaWZ0cyBvciB1bmNvdmVyIGxhdGVudCBrZXJuZWwgYnVncy4KICBJZiByZWFjaGFibGUgZXhlY3V0YWJsZSBjb2RlIGlzIG1vZGlmaWVkIG9yIHJlZmFjdG9yZWQsIGl0IE1VU1QgYmUgZnV6emVkLgoKLSBORVcgT1IgTU9ESUZJRUQgQVNTRVJUSU9OUyBJTiBSRUFDSEFCTEUgQ09ERSBNVVNUIEJFIEZVWlpFRDoKICBXaGVuIGEgcGF0Y2ggaW50cm9kdWNlcyBvciBtb2RpZmllcyBydW50aW1lIGNoZWNrcyBvciBhc3NlcnRpb25zIChlLmcuLCBXQVJOX09OKiwgVk1fV0FSTl9PTiosCiAgQlVHX09OKiwgbG9ja2RlcF9hc3NlcnQqKSBpbiByZWFjaGFibGUgY29kZSBwYXRocywgaXQgZW5mb3JjZXMgbmV3IG9yIHN0cmljdGVyIGludmFyaWFudHMuCiAgRXZlbiBpZiB0aGUgYXV0aG9yIGJlbGlldmVzIHRoZSBpbnZhcmlhbnQgYWx3YXlzIGhvbGRzLCBmdXp6aW5nIGlzIGVzc2VudGlhbCB0byB2ZXJpZnkgd2hldGhlcgogIGFuIHVudXN1YWwgc2VxdWVuY2Ugb2Ygb3BlcmF0aW9ucyBjYW4gdmlvbGF0ZSBpdC4KCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CjIuIFdIRU4gVE8gUkVUVVJOIFdvcnRoRnV6emluZz1mYWxzZSAoTkVHQVRJVkUgQ1JJVEVSSUEpCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgT05MWSBJRiBhbGwgbW9kaWZpZWQgY29kZSBmYWxscyBzdHJpY3RseSBpbnRvIG9uZSBvciBtb3JlIG9mIHRoZXNlIGNhdGVnb3JpZXM6CgotIE5vbi1rZXJuZWwgYW5kIG5vbi1leGVjdXRhYmxlIGNoYW5nZXM6CiAgKiBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBjb21tZW50cywgb3Igc3BlbGxpbmcgZml4ZXMuCiAgKiBVc2VyLXNwYWNlIGRpcmVjdG9yaWVzLCBzZWxmLXRlc3RzLCBzYW1wbGVzLCBvciBzY3JpcHRzIChlLmcuLCB0b29scy8sIHNhbXBsZXMvLCBzY3JpcHRzLywgdXNyLykKICAgIHRoYXQgZG8gbm90IGFmZmVjdCB0aGUgY29tcGlsZWQga2VybmVsIGltYWdlICh2bWxpbnV4KSBvciBrZXJuZWwgbW9kdWxlcy4KICAqIFB1cmVseSBkZWNvcmF0aXZlIGxvZ2dpbmcgKGUuZy4sIG1lc3NhZ2Ugc3RyaW5ncyBpbiBwcl9lcnIsIHByaW50aywgZGV2X2luZm8pIG9yIHRyYWNlcG9pbnRzCiAgICB0aGF0IGRvIG5vdCBhbHRlciBjb250cm9sIGZsb3cgb3IgZGF0YSBzdHJ1Y3R1cmVzLgogICogQnVpbGQgc3lzdGVtIG9yIEtjb25maWcgY2hhbmdlcyB0aGF0IGRvIG5vdCBhbHRlciBjb21waWxlZCBDIGxvZ2ljLgotIFN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZSBoYXJkd2FyZToKICAqIFZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaGVzLCBTbWFydE5JQ3MsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCwKICAgIGlvbmljLCBhbWRncHUpIHJlcXVpcmluZyBwaHlzaWNhbCBBU0lDL1BDSWUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuCi0gVW5yZWFjaGFibGUgZXhlY3V0aW9uIHBhdGhzOgogICogRHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoLnJlbW92ZSwgLnNodXRkb3duLCBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIpIGV4ZWN1dGVkIG9ubHkgZHVyaW5nCiAgICBwaHlzaWNhbCBQQ0kgaG90LXVucGx1ZyBvciBtYW51YWwgc3lzZnMgZHJpdmVyIHVuYmluZGluZy4KICAqIENvZGUgcGF0aHMgZXhjbHVzaXZlIHRvIGFyY2hpdGVjdHVyZXMgb3RoZXIgdGhhbiB0aGUgdGFyZ2V0IGFyY2hpdGVjdHVyZS4KCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CjMuIFdIRU4gVE8gUkVUVVJOIFdvcnRoRnV6emluZz10cnVlIChQT1NJVElWRSBDUklURVJJQSkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUmV0dXJuIFdvcnRoRnV6emluZz10cnVlIHdoZW5ldmVyIHRoZSBwYXRjaCB0b3VjaGVzIHJlYWNoYWJsZSBleGVjdXRhYmxlIGNvZGUsIGluY2x1ZGluZzoKLSBDb3JlIFN1YnN5c3RlbXM6CiAgKiBBbnkgbG9naWMgbW9kaWZpY2F0aW9ucyBpbiBtZW1vcnkgbWFuYWdlbWVudCAobW0vKSwgc3luY2hyb25pemF0aW9uL2xvY2tpbmcgKGtlcm5lbC9sb2NraW5nLyksCiAgICBCUEYsIHNjaGVkdWxlciwgY29yZSBuZXR3b3JraW5nLCBWRlMsIG9yIHN5c2NhbGwgaGFuZGxpbmcuCi0gUmVmYWN0b3JpbmdzIGFuZCBDb2RlIENsZWFudXBzOgogICogQW55IHJlc3RydWN0dXJpbmcgb2YgcmVhY2hhYmxlIGRhdGEgc3RydWN0dXJlcywgaGVscGVyIGFic3RyYWN0aW9ucywgb3IgYWxnb3JpdGhtIGZsb3dzLgotIFJ1bnRpbWUgQXNzZXJ0aW9ucyBhbmQgRGVmZW5zaXZlIENoZWNrczoKICAqIEFueSBpbnRyb2R1Y3Rpb24gb3IgYWx0ZXJhdGlvbiBvZiBhc3NlcnRpb25zIChXQVJOX09OKiwgVk1fV0FSTl9PTiosIEJVR19PTiosIGV0Yy4pIGluIHJlYWNoYWJsZSBwYXRocy4KLSBSZWFjaGFibGUgRHJpdmVycyBhbmQgUHJvdG9jb2xzOgogICogRHJpdmVycyBhY2Nlc3NpYmxlIHZpYSB2aXJ0dWFsIGJ1c2VzICh2aXJ0aW8sIFVTQiBnYWRnZXQsIGxvb3BiYWNrLCBuZXRsaW5rLCBiaW5kZXIsIHNvY2tldHMsIGV0Yy4pLgoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KNC4gRVhUUkFDVElORyBGb2N1c1N5bWJvbHMgKFBSRVZFTlRJTkcgRElMVVRJT04pCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CldoZW4gV29ydGhGdXp6aW5nPXRydWUsIHlvdSBtdXN0IGV4dHJhY3Qgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyBpbnRvIEZvY3VzU3ltYm9scyB0byBndWlkZSB0aGUgZnV6emVyOgoKLSBBVk9JRCBVQklRVUlUT1VTIExJRkVDWUNMRSBIT1QtUEFUSFM6CiAgRG8gTk9UIGxpc3QgZ2VuZXJpYywgdWJpcXVpdG91cyBmdW5jdGlvbnMgY2FsbGVkIGJ5IGFsbW9zdCBldmVyeSBwcm9ncmFtIGluIHRoZSBjb3JwdXMKICAoaW5jbHVkaW5nLCBidXQgbm90IGxpbWl0ZWQgdG86IGdlbmVyYWwgbWVtb3J5IGFsbG9jYXRvcnMgYW5kIGRlYWxsb2NhdG9ycywgcGFnZSBmYXVsdAogIGFuZCB0cmFwIGhhbmRsZXJzLCBvciBjb3JlIHN5bmNocm9uaXphdGlvbiBwcmltaXRpdmVzOyB0aGlzIGlzIG5vdCBhbiBleGhhdXN0aXZlIGxpc3QpLgogIExpc3RpbmcgdWJpcXVpdG91cyBmdW5jdGlvbnMgY2F1c2VzIHRoZSBmdXp6ZXIgdG8gY2xhc3NpZnkgdGhvdXNhbmRzIG9mIHVucmVsYXRlZCB0ZXN0cyBhcyAmIzM0O2ZvY3VzZWQmIzM0OywKICB3aGljaCBzZXZlcmVseSBkaWx1dGVzIGZ1enppbmcgZWZmb3J0IGF3YXkgZnJvbSB0aGUgYWN0dWFsIGNoYW5nZXMuCgotIFRBUkdFVCBTUEVDSUZJQyBGRUFUVVJFIExPR0lDIEFORCBFTlRSWVBPSU5UUzoKICBMaXN0IGZ1bmN0aW9ucyB0aGF0IHNwZWNpZmljYWxseSBpbXBsZW1lbnQgdGhlIGxvZ2ljIGJlaW5nIGFkZGVkIG9yIGFsdGVyZWQsIG9yIGRpcmVjdCBBUEkgZW50cnlwb2ludHMKICBmb3IgdGhlIHN1YnN5c3RlbSBmZWF0dXJlIHVuZGVyIHJldmlldy4KCi0gSEFORExJTkcgU1RBVElDIElOTElORSBGVU5DVElPTlMgSU4gSEVBREVSUyAoLmgpOgogIENvbXBpbGVyLWlubGluZWQgc3RhdGljIGZ1bmN0aW9ucyAoc3VjaCBhcyBzdGF0aWMgaW5saW5lcyBpbiBtbS8qLmggb3IgaW5jbHVkZS9saW51eC8qLmgpIGxhY2sKICBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzIGluIHZtbGludXggYW5kIGNhbm5vdCBiZSB0YXJnZXRlZCBkaXJlY3RseSBieSBzeW1ib2wgY292ZXJhZ2UgZmlsdGVycy4KICBJZiB0aGUgY2hhbmdlcyBhcmUgcHJpbWFyaWx5IGluIHN0YXRpYyBpbmxpbmUgaGVscGVycywgaWRlbnRpZnkgbm9uLXN0YXRpYywgZmVhdHVyZS1zcGVjaWZpYyBjYWxsZXIKICBmdW5jdGlvbnMgaW4gLmMgZmlsZXMgdGhhdCBleGVyY2lzZSB0aGVtIChhdm9pZGluZyB1YmlxdWl0b3VzIGxpZmVjeWNsZSB3cmFwcGVycykuCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQo1LiBJREVOVElGWUlORyBFbmFibGVDb25maWdzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CklkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgY29tcGlsZSBhbmQgcmVhY2ggdGhlIG1vZGlmaWVkIGNvZGU6Ci0gSW5zcGVjdCBLY29uZmlnIGZpbGVzIGFuZCAjaWZkZWYgZ3VhcmRzOyBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy4KLSBDaGVjayAmIzM0O2RlcGVuZHMgb24mIzM0OyBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3MgbmVlZGVkLgotIFN0cmlwIGFueSAmIzM5O0NPTkZJR18mIzM5OyBwcmVmaXggKGUuZy4sIHJldHVybiAmIzM0O05FVF9JUFY0JiMzNDsgaW5zdGVhZCBvZiAmIzM0O0NPTkZJR19ORVRfSVBWNCYjMzQ7KS4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5UYXJnZXQgYXJjaGl0ZWN0dXJlOiBhbWQ2NAoKRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCA1ODVmMDk2YzQ4NmZmYzgwM2ZkNzY4NDBiMTFlODYyNWQ4MGMyOTQ2CkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIEZyaSBTZXAgMTEgMDY6MzI6MDIgMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tYWMuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21hYy5jCmluZGV4IDFjYmEzODFhNzhiODIuLmUyNGRkNTMwNDg2YzQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21hYy5jCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21hYy5jCkBAIC0xMDU3LDcgJiM0MzsxMDU3LDcgQEAgaW50IG10Nzk5Nl90eF9wcmVwYXJlX3NrYihzdHJ1Y3QgbXQ3Nl9kZXYgKm1kZXYsIHZvaWQgKnR4d2lfcHRyLAogCWlmICghd2NpZCkKIAkJd2NpZCA9ICZhbXA7ZGV2LSZndDttdDc2Lmdsb2JhbF93Y2lkOwogCi0JaWYgKChpc184MDIzIHx8IGllZWU4MDIxMV9pc19kYXRhX3FvcyhoZHItJmd0O2ZyYW1lX2NvbnRyb2wpKSAmYW1wOyZhbXA7IHN0YS0mZ3Q7bWxvICZhbXA7JmFtcDsKJiM0MzsJaWYgKHN0YSAmYW1wOyZhbXA7IChpc184MDIzIHx8IGllZWU4MDIxMV9pc19kYXRhX3FvcyhoZHItJmd0O2ZyYW1lX2NvbnRyb2wpKSAmYW1wOyZhbXA7IHN0YS0mZ3Q7bWxvICZhbXA7JmFtcDsKIAkgICAgbGlrZWx5KHR4X2luZm8tJmd0O3NrYi0mZ3Q7cHJvdG9jb2wgIT0gY3B1X3RvX2JlMTYoRVRIX1BfUEFFKSkpIHsKIAkJdTggdGlkID0gdHhfaW5mby0mZ3Q7c2tiLSZndDtwcmlvcml0eSAmYW1wOyBJRUVFODAyMTFfUU9TX0NUTF9USURfTUFTSzsKIApAQCAtMTA5Nyw3ICYjNDM7MTA5Nyw3IEBAIGludCBtdDc5OTZfdHhfcHJlcGFyZV9za2Ioc3RydWN0IG10NzZfZGV2ICptZGV2LCB2b2lkICp0eHdpX3B0ciwKIAkgKiBjb21wYXRpYmxlIHdpdGggODAyLjExIEVBUE9MIGZyYW1lLCB3ZSBkbyB0aGUgdHJhbnNsYXRpb24gYnkKIAkgKiBzb2Z0d2FyZQogCSAqLwotCWlmICh0eF9pbmZvLSZndDtza2ItJmd0O3Byb3RvY29sID09IGNwdV90b19iZTE2KEVUSF9QX1BBRSkgJmFtcDsmYW1wOyBzdGEtJmd0O21sbykgewomIzQzOwlpZiAoc3RhICZhbXA7JmFtcDsgdHhfaW5mby0mZ3Q7c2tiLSZndDtwcm90b2NvbCA9PSBjcHVfdG9fYmUxNihFVEhfUF9QQUUpICZhbXA7JmFtcDsgc3RhLSZndDttbG8pIHsKIAkJc3RydWN0IGllZWU4MDIxMV9oZHIgKmhkciA9ICh2b2lkICopdHhfaW5mby0mZ3Q7c2tiLSZndDtkYXRhOwogCQlzdHJ1Y3QgaWVlZTgwMjExX2Jzc19jb25mICpsaW5rX2NvbmY7CiAJCXN0cnVjdCBpZWVlODAyMTFfbGlua19zdGEgKmxpbmtfc3RhOwo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8xMSAwNjozMjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuNy1mbGFzaDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzMjQ2CgkJCQkJCQlvdXRwdXQ6IDQ0CgkJCQkJCQl0aG91Z2h0czogMzExCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyBhIE5ldHdvcmsgRHJpdmVyIFBhdGNoKioKCkFscmlnaHQsIGxldCYjMzk7cyBkaXZlIGludG8gdGhpcyBwYXRjaC4gTXkgaW1tZWRpYXRlIHRob3VnaHQgaXMgdG8gdW5kZXJzdGFuZCB0aGUgY29udGV4dCwgc28gSSBzZWUgdGhlIGNoYW5nZXMgYXJlIHdpdGhpbiBgZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbWFjLmNgLiBPa2F5LCB0aGF0JiMzOTtzIE1lZGlhVGVrJiMzOTtzIE1UNzk5NiB3aXJlbGVzcyBkcml2ZXI7IGdvdCBpdC4gTm93LCB0aGUgZGlmZiBpdHNlbGYgc2hvd3MgdHdvIGluc3RhbmNlcyBvZiB3aGF0IGxvb2tzIGxpa2UgYWRkZWQgYHN0YWAgY2hlY2tzIGJlZm9yZSBhY2Nlc3NpbmcgYHN0YS0mZ3Q7bWxvYC4gU3BlY2lmaWNhbGx5IHRoZSBsaW5lcyBhcmUgd2l0aGluIHRoZSBmdW5jdGlvbiBgbXQ3OTk2X3R4X3ByZXBhcmVfc2tiYC4gSXQmIzM5O3MgYSBmYWlybHkgc3RyYWlnaHRmb3J3YXJkIGNoYW5nZTsgaXQgYWRkcyBhIG51bGwgcG9pbnRlciBjaGVjayBmb3IgYHN0YWAgYmVmb3JlIGRlcmVmZXJlbmNpbmcgaXQgaW4gdHdvIGBpZmAgc3RhdGVtZW50cy4KCk15IGltbWVkaWF0ZSByZWFjdGlvbiBpcyB0aGF0IHRoaXMgaXMgbGlrZWx5IGEgZ29vZCB0aGluZyAtIGRlZmVuc2l2ZSBwcm9ncmFtbWluZyBhZ2FpbnN0IGEgcG90ZW50aWFsIG51bGwgcG9pbnRlciBkZXJlZmVyZW5jZS4gVGhlIGBzdGFgIHZhcmlhYmxlIGlzIGxpa2VseSBhIHBvaW50ZXIgdG8gYSBzdGF0aW9uIGVudHJ5LCBhbmQgd2l0aG91dCB0aGlzIGNoZWNrLCB3ZSBjb3VsZCBoYXZlIGEgY3Jhc2ggaWYgaXQmIzM5O3Mgc29tZWhvdyBudWxsIGluIHRob3NlIGNvZGUgcGF0aHMuIFRoZSBhZGRpdGlvbiBvZiB0aGUgYHN0YWAgY2hlY2sgbWFrZXMgdGhpcyBjb2RlIG11Y2ggbW9yZSByb2J1c3QsIHJlZ2FyZGxlc3Mgb2YgdGhlIGBpc184MDIzYCBvciBgaWVlZTgwMjExX2lzX2RhdGFfcW9zYCBjb25kaXRpb25zLCBvciB0aGUgYEVUSF9QX1BBRWAgcHJvdG9jb2wgYmVpbmcgbWV0LgoKTm93LCB0byBiZSB0aG9yb3VnaCwgSSYjMzk7ZCB3YW50IHRvIHF1aWNrbHkgY29uZmlybSB3aGF0IHRoZSBtdDc5OTYgZHJpdmVyIGlzLiBJcyB0aGlzIGEgUENJZSBkZXZpY2UsIGEgc3lzdGVtLW9uLWEtY2hpcCAoU29DKSBpbnRlZ3JhdGlvbiwgVVNCLCBvciBzb21ldGhpbmcgZWxzZSBsaWtlIG1hYzgwMjExX2h3c2ltPyBJJiMzOTtsbCBwcm9iYWJseSBqdXN0IGdsYW5jZSBhdCB0aGUgc3Vycm91bmRpbmcgZmlsZXMgaW4gYGRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2AgYW5kIHRoZSBLY29uZmlnIHRvIGNvbmZpcm0gaXRzIGFyY2hpdGVjdHVyZSBhbmQgdW5kZXJzdGFuZCBhbnkgcmVsZXZhbnQgZGVwZW5kZW5jaWVzIG9yIG51YW5jZXMuIFRoZW4sIEkgY2FuIG1ha2UgYSBqdWRnZW1lbnQgb24gaG93IGNyaXRpY2FsIHRoaXMgaXMsIGJ1dCBpdCYjMzk7cyBwcm9iYWJseSBwcmV0dHkgaW1wb3J0YW50LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzExIDA2OjMyPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O210Nzk5NiYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2LyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtcbkZ1bGwgb3V0cHV0IGlzIHRvbyBsb25nLCBzaG93aW5nIDUwMCBvdXQgb2YgNjYxOCBsaW5lcy5cblVzZSBtb3JlIHByZWNpc2UgZXhwcmVzc2lvbiBpZiBwb3NzaWJsZS5cblxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvTWFrZWZpbGUtMi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L01ha2VmaWxlOjM6b2JqLSQoQ09ORklHX01UNzk5NkUpICYjNDM7PSBtdDc5OTZlLm9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L01ha2VmaWxlLTQtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9NYWtlZmlsZTo1Om10Nzk5NmUteSA6PSBwY2kubyBpbml0Lm8gZG1hLm8gZWVwcm9tLm8gbWFpbi5vIG1jdS5vIG1hYy5vIFxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9NYWtlZmlsZS02LVx0ICAgICBkZWJ1Z2ZzLm8gbW1pby5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9NYWtlZmlsZS03LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvTWFrZWZpbGU6ODptdDc5OTZlLSQoQ09ORklHX01UNzk5Nl9OUFUpICYjNDM7PSBucHUub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvTWFrZWZpbGU6OTptdDc5OTZlLSQoQ09ORklHX0RFVl9DT1JFRFVNUCkgJiM0Mzs9IGNvcmVkdW1wLm9cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jPTEyPU1PRFVMRV9QQVJNX0RFU0MoY29yZWR1bXBfbWVtZHVtcCwgXCYjMzQ7T3B0aW9uYWwgYWJpbGl0eSB0byBkdW1wIGZpcm13YXJlIG1lbW9yeVwmIzM0Oyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jLTEzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYzoxNDpzdGF0aWMgY29uc3Qgc3RydWN0IG10Nzk5Nl9tZW1fcmVnaW9uIG10Nzk5Nl9tZW1fcmVnaW9uc1tdID0ge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYy0xNS1cdHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jLTQ2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYzo0Nzpjb25zdCBzdHJ1Y3QgbXQ3OTk2X21lbV9yZWdpb24qXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jOjQ4Om10Nzk5Nl9jb3JlZHVtcF9nZXRfbWVtX2xheW91dChzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2LCB1MzIgKm51bSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmMtNDkte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmMtNTItXHRjYXNlIE1UNzk5Nl9ERVZJQ0VfSURfMjpcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmM6NTM6XHRcdCpudW0gPSBBUlJBWV9TSVpFKG10Nzk5Nl9tZW1fcmVnaW9ucyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jOjU0Olx0XHRyZXR1cm4gXHUwMDI2bXQ3OTk2X21lbV9yZWdpb25zWzBdO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYy01NS1cdGRlZmF1bHQ6XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYy01OS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmM6NjA6c3RhdGljIGludCBtdDc5OTZfY29yZWR1bXBfZ2V0X21lbV9zaXplKHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jLTYxLXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmM6NjI6XHRjb25zdCBzdHJ1Y3QgbXQ3OTk2X21lbV9yZWdpb24gKm1lbV9yZWdpb247XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jLTYzLVx0c2l6ZV90IHNpemUgPSAwO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmMtNjYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jOjY3Olx0bWVtX3JlZ2lvbiA9IG10Nzk5Nl9jb3JlZHVtcF9nZXRfbWVtX2xheW91dChkZXYsIFx1MDAyNm51bSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jLTY4LVx0aWYgKCFtZW1fcmVnaW9uKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmMtNzYtXHQvKiByZXNlcnZlIHNwYWNlIGZvciB0aGUgaGVhZGVycyAqL1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYzo3NzpcdHNpemUgJiM0Mzs9IG51bSAqIHNpemVvZihzdHJ1Y3QgbXQ3OTk2X21lbV9oZHIpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYy03OC1cdC8qIG1ha2Ugc3VyZSBpdCBpcyBhbGlnbmVkIDQgYnl0ZXMgZm9yIGRlYnVnIG1lc3NhZ2UgcHJpbnQgb3V0ICovXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYy04My1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmM6ODQ6c3RydWN0IG10Nzk5Nl9jcmFzaF9kYXRhICptdDc5OTZfY29yZWR1bXBfbmV3KHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jLTg1LXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmM6ODY6XHRzdHJ1Y3QgbXQ3OTk2X2NyYXNoX2RhdGEgKmNyYXNoX2RhdGEgPSBkZXYtXHUwMDNlY29yZWR1bXAuY3Jhc2hfZGF0YTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmMtODctXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYz0xMDA9c3RhdGljIHZvaWRcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmM6MTAxOm10Nzk5Nl9jb3JlZHVtcF9md19zdGF0ZShzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2LCBzdHJ1Y3QgbXQ3OTk2X2NvcmVkdW1wICpkdW1wLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYy0xMDItXHRcdFx0IGJvb2wgKmV4Y2VwdGlvbilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jPTExNz1zdGF0aWMgdm9pZFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYzoxMTg6bXQ3OTk2X2NvcmVkdW1wX2Z3X3N0YWNrKHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYsIHN0cnVjdCBtdDc5OTZfY29yZWR1bXAgKmR1bXAsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jLTExOS1cdFx0XHQgYm9vbCBleGNlcHRpb24pXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYy0xNjEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jOjE2MjpzdGF0aWMgc3RydWN0IG10Nzk5Nl9jb3JlZHVtcCAqbXQ3OTk2X2NvcmVkdW1wX2J1aWxkKHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jLTE2My17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jOjE2NDpcdHN0cnVjdCBtdDc5OTZfY3Jhc2hfZGF0YSAqY3Jhc2hfZGF0YSA9IGRldi1cdTAwM2Vjb3JlZHVtcC5jcmFzaF9kYXRhO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYzoxNjU6XHRzdHJ1Y3QgbXQ3OTk2X2NvcmVkdW1wICpkdW1wO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYzoxNjY6XHRzdHJ1Y3QgbXQ3OTk2X2NvcmVkdW1wX21lbSAqZHVtcF9tZW07XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jLTE2Ny1cdHNpemVfdCBsZW4sIHNvZmFyID0gMCwgaGRyX2xlbiA9IHNpemVvZigqZHVtcCk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYy0xODYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jOjE4NzpcdGR1bXAgPSAoc3RydWN0IG10Nzk5Nl9jb3JlZHVtcCAqKShidWYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYy0xODgtXHRkdW1wLVx1MDAzZWxlbiA9IGxlbjtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jLTIwMC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmM6MjAxOlx0bXQ3OTk2X2NvcmVkdW1wX2Z3X3N0YXRlKGRldiwgZHVtcCwgXHUwMDI2ZXhjZXB0aW9uKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmM6MjAyOlx0bXQ3OTk2X2NvcmVkdW1wX2Z3X3N0YWNrKGRldiwgZHVtcCwgZXhjZXB0aW9uKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmMtMjAzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYy0yMDQtXHQvKiBnYXRoZXIgbWVtb3J5IGNvbnRlbnQgKi9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmM6MjA1Olx0ZHVtcF9tZW0gPSAoc3RydWN0IG10Nzk5Nl9jb3JlZHVtcF9tZW0gKikoYnVmICYjNDM7IHNvZmFyKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmMtMjA2LVx0ZHVtcF9tZW0tXHUwMDNlbGVuID0gY3Jhc2hfZGF0YS1cdTAwM2VtZW1kdW1wX2J1Zl9sZW47XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYy0yMTUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jOjIxNjppbnQgbXQ3OTk2X2NvcmVkdW1wX3N1Ym1pdChzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYy0yMTcte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYzoyMTg6XHRzdHJ1Y3QgbXQ3OTk2X2NvcmVkdW1wICpkdW1wO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYy0yMTktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jOjIyMDpcdGR1bXAgPSBtdDc5OTZfY29yZWR1bXBfYnVpbGQoZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmMtMjIxLVx0aWYgKCFkdW1wKSB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYy0yMzAtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jOjIzMTppbnQgbXQ3OTk2X2NvcmVkdW1wX3JlZ2lzdGVyKHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jLTIzMi17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jOjIzMzpcdHN0cnVjdCBtdDc5OTZfY3Jhc2hfZGF0YSAqY3Jhc2hfZGF0YTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmMtMjM0LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmMtMjQxLVx0aWYgKGNvcmVkdW1wX21lbWR1bXApIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmM6MjQyOlx0XHRjcmFzaF9kYXRhLVx1MDAzZW1lbWR1bXBfYnVmX2xlbiA9IG10Nzk5Nl9jb3JlZHVtcF9nZXRfbWVtX3NpemUoZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmMtMjQzLVx0XHRpZiAoIWNyYXNoX2RhdGEtXHUwMDNlbWVtZHVtcF9idWZfbGVuKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmMtMjU2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYzoyNTc6dm9pZCBtdDc5OTZfY29yZWR1bXBfdW5yZWdpc3RlcihzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYy0yNTgte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmgtNi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmg6NzojaW5jbHVkZSBcJiMzNDttdDc5OTYuaFwmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuaC04LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuaDo5OnN0cnVjdCBtdDc5OTZfY29yZWR1bXAge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuaC0xMC1cdGNoYXIgbWFnaWNbMTZdO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmgtMzktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5oOjQwOnN0cnVjdCBtdDc5OTZfY29yZWR1bXBfbWVtIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmgtNDEtXHR1MzIgbGVuO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmgtNDQtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5oOjQ1OnN0cnVjdCBtdDc5OTZfbWVtX2hkciB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5oLTQ2LVx0dTMyIHN0YXJ0O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmgtNTAtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5oOjUxOnN0cnVjdCBtdDc5OTZfbWVtX3JlZ2lvbiB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5oLTUyLVx0dTMyIHN0YXJ0O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmgtNTktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5oOjYwOmNvbnN0IHN0cnVjdCBtdDc5OTZfbWVtX3JlZ2lvbiAqXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5oOjYxOm10Nzk5Nl9jb3JlZHVtcF9nZXRfbWVtX2xheW91dChzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2LCB1MzIgKm51bSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5oOjYyOnN0cnVjdCBtdDc5OTZfY3Jhc2hfZGF0YSAqbXQ3OTk2X2NvcmVkdW1wX25ldyhzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmg6NjM6aW50IG10Nzk5Nl9jb3JlZHVtcF9zdWJtaXQoc3RydWN0IG10Nzk5Nl9kZXYgKmRldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5oOjY0OmludCBtdDc5OTZfY29yZWR1bXBfcmVnaXN0ZXIoc3RydWN0IG10Nzk5Nl9kZXYgKmRldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5oOjY1OnZvaWQgbXQ3OTk2X2NvcmVkdW1wX3VucmVnaXN0ZXIoc3RydWN0IG10Nzk5Nl9kZXYgKmRldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5oLTY2LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmgtNjgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5oOjY5OnN0YXRpYyBpbmxpbmUgY29uc3Qgc3RydWN0IG10Nzk5Nl9tZW1fcmVnaW9uICpcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmg6NzA6bXQ3OTk2X2NvcmVkdW1wX2dldF9tZW1fbGF5b3V0KHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYsIHUzMiAqbnVtKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuaC03MS17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuaC03NC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmg6NzU6c3RhdGljIGlubGluZSBpbnQgbXQ3OTk2X2NvcmVkdW1wX3N1Ym1pdChzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuaC03Ni17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuaD04MD1zdGF0aWMgaW5saW5lIHN0cnVjdFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuaDo4MTptdDc5OTZfY3Jhc2hfZGF0YSAqbXQ3OTk2X2NvcmVkdW1wX25ldyhzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuaC04Mi17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuaC04NS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmg6ODY6c3RhdGljIGlubGluZSBpbnQgbXQ3OTk2X2NvcmVkdW1wX3JlZ2lzdGVyKHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5oLTg3LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5oLTkwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuaDo5MTpzdGF0aWMgaW5saW5lIHZvaWQgbXQ3OTk2X2NvcmVkdW1wX3VucmVnaXN0ZXIoc3RydWN0IG10Nzk5Nl9kZXYgKmRldilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmgtOTIte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy02LSNpbmNsdWRlIFx1MDAzY2xpbnV4L3JlbGF5LmhcdTAwM2VcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo3OiNpbmNsdWRlIFwmIzM0O210Nzk5Ni5oXCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtOC0jaW5jbHVkZSBcJiMzNDtlZXByb20uaFwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYz0yMz1zdGF0aWMgaW50XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6MjQ6bXQ3OTk2X2ltcGxpY2l0X3R4YmZfc2V0KHZvaWQgKmRhdGEsIHU2NCB2YWwpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtMjUte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjI2Olx0c3RydWN0IG10Nzk5Nl9kZXYgKmRldiA9IGRhdGE7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtMjctXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTMyLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjMzOlx0cmV0dXJuIG10Nzk5Nl9tY3Vfc2V0X3R4YmYoZGV2LCBCRl9IV19FTl9VUERBVEUpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTM0LX1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM9MzY9c3RhdGljIGludFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjM3Om10Nzk5Nl9pbXBsaWNpdF90eGJmX2dldCh2b2lkICpkYXRhLCB1NjQgKnZhbClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy0zOC17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6Mzk6XHRzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2ID0gZGF0YTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy00MC1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNDUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6NDY6REVGSU5FX0RFQlVHRlNfQVRUUklCVVRFKGZvcHNfaW1wbGljaXRfdHhiZiwgbXQ3OTk2X2ltcGxpY2l0X3R4YmZfZ2V0LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjQ3Olx0XHRcdCBtdDc5OTZfaW1wbGljaXRfdHhiZl9zZXQsIFwmIzM0OyVsbGRcXG5cJiMzNDspO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTQ4LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYz01MD1zdGF0aWMgc3NpemVfdFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjUxOm10Nzk5Nl9zeXNfcmVjb3Zlcnlfc2V0KHN0cnVjdCBmaWxlICpmaWxlLCBjb25zdCBjaGFyIF9fdXNlciAqdXNlcl9idWYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNTItXHRcdFx0c2l6ZV90IGNvdW50LCBsb2ZmX3QgKnBwb3MpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNTMte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjU0Olx0c3RydWN0IG10Nzk5Nl9kZXYgKmRldiA9IGZpbGUtXHUwMDNlcHJpdmF0ZV9kYXRhO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTU1LVx0Y2hhciBidWZbMTZdLCAqc2VwO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy05MS1cdGNhc2UgVU5JX0NNRF9TRVJfUVVFUlk6XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6OTI6XHRcdHJldCA9IG10Nzk5Nl9tY3Vfc2V0X3NlcihkZXYsIFVOSV9DTURfU0VSX1FVRVJZLCAwLCBiYW5kKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy05My1cdFx0YnJlYWs7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTEwMC1cdGNhc2UgVU5JX0NNRF9TRVJfU0VUX1JFQ09WRVJfTDRfTURQOlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjEwMTpcdFx0cmV0ID0gbXQ3OTk2X21jdV9zZXRfc2VyKGRldiwgVU5JX0NNRF9TRVJfU0VULCBCSVQodmFsKSwgYmFuZCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtMTAyLVx0XHRpZiAocmV0KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy0xMDQtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6MTA1Olx0XHRyZXQgPSBtdDc5OTZfbWN1X3NldF9zZXIoZGV2LCBVTklfQ01EX1NFUl9UUklHR0VSLCB2YWwsIGJhbmQpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTEwNi1cdFx0YnJlYWs7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTExMS1cdFx0ZGV2LVx1MDAzZXJlY292ZXJ5LnN0YXRlIHw9IE1UX01DVV9DTURfV0RUX01BU0s7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6MTEyOlx0XHRtdDc5OTZfcmVzZXQoZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy0xMTMtXHRcdGJyZWFrO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy0xMTYtXHRjYXNlIFVOSV9DTURfU0VSX1NFVF9TWVNURU1fQVNTRVJUOlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjExNzpcdFx0cmV0ID0gbXQ3OTk2X21jdV90cmlnZ2VyX2Fzc2VydChkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTExOC1cdFx0aWYgKHJldClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM9MTI4PXN0YXRpYyBzc2l6ZV90XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6MTI5Om10Nzk5Nl9zeXNfcmVjb3ZlcnlfZ2V0KHN0cnVjdCBmaWxlICpmaWxlLCBjaGFyIF9fdXNlciAqdXNlcl9idWYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtMTMwLVx0XHRcdHNpemVfdCBjb3VudCwgbG9mZl90ICpwcG9zKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTEzMS17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6MTMyOlx0c3RydWN0IG10Nzk5Nl9kZXYgKmRldiA9IGZpbGUtXHUwMDNlcHJpdmF0ZV9kYXRhO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTEzMy1cdGNoYXIgKmJ1ZmY7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTIxNC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzoyMTU6c3RhdGljIGNvbnN0IHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgbXQ3OTk2X3N5c19yZWNvdmVyeV9vcHMgPSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6MjE2Olx0LndyaXRlID0gbXQ3OTk2X3N5c19yZWNvdmVyeV9zZXQsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6MjE3Olx0LnJlYWQgPSBtdDc5OTZfc3lzX3JlY292ZXJ5X2dldCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy0yMTgtXHQub3BlbiA9IHNpbXBsZV9vcGVuLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYz0yMjI9c3RhdGljIGludFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjIyMzptdDc5OTZfcmFkYXJfdHJpZ2dlcih2b2lkICpkYXRhLCB1NjQgdmFsKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTIyNC17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTIyNi0jZGVmaW5lIFJBREFSX0JBQ0tHUk9VTkRcdDJcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzoyMjc6XHRzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2ID0gZGF0YTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzoyMjg6XHRzdHJ1Y3QgbXQ3OTk2X3BoeSAqcGh5ID0gbXQ3OTk2X2JhbmRfcGh5KGRldiwgTkw4MDIxMV9CQU5EXzVHSFopO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTIyOS1cdHN0cnVjdCBjZmc4MDIxMV9jaGFuX2RlZiAqY2hhbmRlZjtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtMjQ3LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjI0ODpcdHJkZF9pZHggPSBtdDc5OTZfZ2V0X3JkZF9pZHgocGh5LCB2YWwgPT0gUkFEQVJfQkFDS0dST1VORCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtMjQ5LVx0aWYgKHJkZF9pZHggXHUwMDNjIDApIHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtMjU4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjI1OTpcdHJldHVybiBtdDc5OTZfbWN1X3JkZF9jbWQoZGV2LCBSRERfUkFEQVJfRU1VTEFURSwgcmRkX2lkeCwgMCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtMjYwLX1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM9MjYyPURFRklORV9ERUJVR0ZTX0FUVFJJQlVURShmb3BzX3JhZGFyX3RyaWdnZXIsIE5VTEwsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6MjYzOlx0XHRcdCBtdDc5OTZfcmFkYXJfdHJpZ2dlciwgXCYjMzQ7JWxsZFxcblwmIzM0Oyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtMjY0LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jPTI2NT1zdGF0aWMgaW50XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6MjY2Om10Nzk5Nl9yZGRfbW9uaXRvcihzdHJ1Y3Qgc2VxX2ZpbGUgKnMsIHZvaWQgKmRhdGEpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtMjY3LXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzoyNjg6XHRzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2ID0gZGV2X2dldF9kcnZkYXRhKHMtXHUwMDNlcHJpdmF0ZSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtMjY5LVx0c3RydWN0IGNmZzgwMjExX2NoYW5fZGVmICpjaGFuZGVmID0gXHUwMDI2ZGV2LVx1MDAzZXJkZDJfY2hhbmRlZjtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM9MzEyPXN0YXRpYyBpbnRcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzozMTM6bXQ3OTk2X2Z3X2RlYnVnX3dtX3NldCh2b2lkICpkYXRhLCB1NjQgdmFsKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTMxNC17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6MzE1Olx0c3RydWN0IG10Nzk5Nl9kZXYgKmRldiA9IGRhdGE7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtMzE2LVx0ZW51bSB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTMzNy1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzozMzg6XHRyZXQgPSBtdDc5OTZfbWN1X2Z3X2xvZ18yX2hvc3QoZGV2LCBNQ1VfRldfTE9HX1dNLCB2YWwpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTMzOS1cdGlmIChyZXQpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTM1MC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzozNTE6XHRcdHJldCA9IG10Nzk5Nl9tY3VfZndfZGJnX2N0cmwoZGV2LCBkZWJ1ZywgdmFsKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy0zNTItXHRcdGlmIChyZXQpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jPTM1OT1zdGF0aWMgaW50XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6MzYwOm10Nzk5Nl9md19kZWJ1Z193bV9nZXQodm9pZCAqZGF0YSwgdTY0ICp2YWwpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtMzYxLXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzozNjI6XHRzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2ID0gZGF0YTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy0zNjMtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTM2OC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzozNjk6REVGSU5FX0RFQlVHRlNfQVRUUklCVVRFKGZvcHNfZndfZGVidWdfd20sIG10Nzk5Nl9md19kZWJ1Z193bV9nZXQsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6MzcwOlx0XHRcdCBtdDc5OTZfZndfZGVidWdfd21fc2V0LCBcJiMzNDslbGxkXFxuXCYjMzQ7KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy0zNzEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM9MzcyPXN0YXRpYyBpbnRcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzozNzM6bXQ3OTk2X2Z3X2RlYnVnX3dhX3NldCh2b2lkICpkYXRhLCB1NjQgdmFsKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTM3NC17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6Mzc1Olx0c3RydWN0IG10Nzk5Nl9kZXYgKmRldiA9IGRhdGE7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtMzc2LVx0aW50IHJldDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtMzc5LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjM4MDpcdHJldCA9IG10Nzk5Nl9tY3VfZndfbG9nXzJfaG9zdChkZXYsIE1DVV9GV19MT0dfV0EsIGRldi1cdTAwM2Vmd19kZWJ1Z193YSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtMzgxLVx0aWYgKHJldClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtMzgzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjM4NDpcdHJldHVybiBtdDc5OTZfbWN1X3dhX2NtZChkZXYsIE1DVV9XQV9QQVJBTV9DTUQoU0VUKSwgTUNVX1dBX1BBUkFNX1BETUFfUlgsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtMzg1LVx0XHRcdFx0ICEhZGV2LVx1MDAzZWZ3X2RlYnVnX3dhLCAwKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM9Mzg4PXN0YXRpYyBpbnRcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzozODk6bXQ3OTk2X2Z3X2RlYnVnX3dhX2dldCh2b2lkICpkYXRhLCB1NjQgKnZhbClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy0zOTAte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjM5MTpcdHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYgPSBkYXRhO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTM5Mi1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtMzk3LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjM5ODpERUZJTkVfREVCVUdGU19BVFRSSUJVVEUoZm9wc19md19kZWJ1Z193YSwgbXQ3OTk2X2Z3X2RlYnVnX3dhX2dldCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzozOTk6XHRcdFx0IG10Nzk5Nl9md19kZWJ1Z193YV9zZXQsIFwmIzM0OyVsbGRcXG5cJiMzNDspO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTQwMC1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM9NDI1PXN0YXRpYyBpbnRcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo0MjY6bXQ3OTk2X2Z3X2RlYnVnX2Jpbl9zZXQodm9pZCAqZGF0YSwgdTY0IHZhbClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy00Mjcte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy00MzEtXHR9O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjQzMjpcdHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYgPSBkYXRhO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTQzMy1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNDQzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjQ0NDpcdHJldHVybiBtdDc5OTZfZndfZGVidWdfd21fc2V0KGRldiwgZGV2LVx1MDAzZWZ3X2RlYnVnX3dtKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy00NDUtfVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYz00NDc9c3RhdGljIGludFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjQ0ODptdDc5OTZfZndfZGVidWdfYmluX2dldCh2b2lkICpkYXRhLCB1NjQgKnZhbClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy00NDkte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjQ1MDpcdHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYgPSBkYXRhO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTQ1MS1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNDU2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjQ1NzpERUZJTkVfREVCVUdGU19BVFRSSUJVVEUoZm9wc19md19kZWJ1Z19iaW4sIG10Nzk5Nl9md19kZWJ1Z19iaW5fZ2V0LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjQ1ODpcdFx0XHQgbXQ3OTk2X2Z3X2RlYnVnX2Jpbl9zZXQsIFwmIzM0OyVsbGRcXG5cJiMzNDspO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTQ1OS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYz00NjA9c3RhdGljIGludFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjQ2MTptdDc5OTZfZndfdXRpbF93YV9zaG93KHN0cnVjdCBzZXFfZmlsZSAqZmlsZSwgdm9pZCAqZGF0YSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy00NjIte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjQ2MzpcdHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYgPSBmaWxlLVx1MDAzZXByaXZhdGU7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNDY0LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTQ2NS1cdGlmIChkZXYtXHUwMDNlZndfZGVidWdfd2EpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6NDY2Olx0XHRyZXR1cm4gbXQ3OTk2X21jdV93YV9jbWQoZGV2LCBNQ1VfV0FfUEFSQU1fQ01EKFFVRVJZKSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy00NjctXHRcdFx0XHRcdCBNQ1VfV0FfUEFSQU1fQ1BVX1VUSUwsIDAsIDApO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy00NzEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6NDcyOkRFRklORV9TSE9XX0FUVFJJQlVURShtdDc5OTZfZndfdXRpbF93YSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNDczLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jPTQ3ND1zdGF0aWMgdm9pZFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjQ3NTptdDc5OTZfYW1wZHVfc3RhdF9yZWFkX3BoeShzdHJ1Y3QgbXQ3OTk2X3BoeSAqcGh5LCBzdHJ1Y3Qgc2VxX2ZpbGUgKmZpbGUpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNDc2LXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo0Nzc6XHRzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2ID0gcGh5LVx1MDAzZWRldjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy00NzgtXHRpbnQgYm91bmRbMTVdLCByYW5nZVs4XSwgaTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM9NTA0PXN0YXRpYyB2b2lkXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6NTA1Om10Nzk5Nl90eGJmX3N0YXRfcmVhZF9waHkoc3RydWN0IG10Nzk5Nl9waHkgKnBoeSwgc3RydWN0IHNlcV9maWxlICpzKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTUwNi17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jPTU1Mj1zdGF0aWMgdm9pZFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjU1MzptdDc5OTZfdHhfc3RhdHNfc2hvd19waHkoc3RydWN0IHNlcV9maWxlICpmaWxlLCBzdHJ1Y3QgbXQ3OTk2X3BoeSAqcGh5KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTU1NC17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTU1OC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo1NTk6XHRtdDc5OTZfbWFjX3VwZGF0ZV9zdGF0cyhwaHkpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjU2MDpcdG10Nzk5Nl9hbXBkdV9zdGF0X3JlYWRfcGh5KHBoeSwgZmlsZSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNTYxLVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy01NjgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6NTY5Olx0bXQ3OTk2X3R4YmZfc3RhdF9yZWFkX3BoeShwaHksIGZpbGUpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTU3MC1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM9NTg0PXN0YXRpYyBpbnRcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo1ODU6bXQ3OTk2X3R4X3N0YXRzX3Nob3coc3RydWN0IHNlcV9maWxlICpmaWxlLCB2b2lkICpkYXRhKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTU4Ni17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6NTg3Olx0c3RydWN0IG10Nzk5Nl9kZXYgKmRldiA9IGZpbGUtXHUwMDNlcHJpdmF0ZTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo1ODg6XHRzdHJ1Y3QgbXQ3OTk2X3BoeSAqcGh5ID0gXHUwMDI2ZGV2LVx1MDAzZXBoeTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy01ODktXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTU5MS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo1OTI6XHRtdDc5OTZfdHhfc3RhdHNfc2hvd19waHkoZmlsZSwgcGh5KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo1OTM6XHRwaHkgPSBtdDc5OTZfcGh5MihkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTU5NC1cdGlmIChwaHkpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6NTk1Olx0XHRtdDc5OTZfdHhfc3RhdHNfc2hvd19waHkoZmlsZSwgcGh5KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo1OTY6XHRwaHkgPSBtdDc5OTZfcGh5MyhkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTU5Ny1cdGlmIChwaHkpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6NTk4Olx0XHRtdDc5OTZfdHhfc3RhdHNfc2hvd19waHkoZmlsZSwgcGh5KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy01OTktXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTYwNC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo2MDU6REVGSU5FX1NIT1dfQVRUUklCVVRFKG10Nzk5Nl90eF9zdGF0cyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNjA2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jPTYwNz1zdGF0aWMgdm9pZFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjYwODptdDc5OTZfaHdfcXVldWVfcmVhZChzdHJ1Y3Qgc2VxX2ZpbGUgKnMsIHUzMiBzaXplLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTYwOS1cdFx0ICAgICBjb25zdCBzdHJ1Y3QgaHdfcXVldWVfbWFwICptYXApXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNjEwLXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo2MTE6XHRzdHJ1Y3QgbXQ3OTk2X3BoeSAqcGh5ID0gcy1cdTAwM2Vwcml2YXRlO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjYxMjpcdHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYgPSBwaHktXHUwMDNlZGV2O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTYxMy1cdHUzMiBpLCB2YWw7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jPTYzOD1zdGF0aWMgdm9pZFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjYzOTptdDc5OTZfc3RhX2h3X3F1ZXVlX3JlYWQodm9pZCAqZGF0YSwgc3RydWN0IGllZWU4MDIxMV9zdGEgKnN0YSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy02NDAte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjY0MTpcdHN0cnVjdCBtdDc5OTZfc3RhICptc3RhID0gKHN0cnVjdCBtdDc5OTZfc3RhICopc3RhLVx1MDAzZWRydl9wcml2O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjY0MjpcdHN0cnVjdCBtdDc5OTZfdmlmICptdmlmID0gbXN0YS1cdTAwM2V2aWY7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6NjQzOlx0c3RydWN0IG10Nzk5Nl9waHkgKnBoeSA9IG10Nzk5Nl92aWZfbGlua19waHkoXHUwMDI2bXZpZi1cdTAwM2VkZWZsaW5rKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy02NDQtXHRzdHJ1Y3QgaWVlZTgwMjExX2xpbmtfc3RhICpsaW5rX3N0YTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNjQ2LVx0c3RydWN0IGllZWU4MDIxMV92aWYgKnZpZjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo2NDc6XHRzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTY0OC1cdHVuc2lnbmVkIGludCBsaW5rX2lkO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy02NTgtXHRmb3JfZWFjaF9zdGFfYWN0aXZlX2xpbmsodmlmLCBzdGEsIGxpbmtfc3RhLCBsaW5rX2lkKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6NjU5Olx0XHRzdHJ1Y3QgbXQ3OTk2X3N0YV9saW5rICptc3RhX2xpbms7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNjYwLVx0XHRzdHJ1Y3QgbXQ3Nl92aWZfbGluayAqbWxpbms7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTY2Ni1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo2Njc6XHRcdG1zdGFfbGluayA9IG10Nzk5Nl9zdGFfbGluayhtc3RhLCBsaW5rX2lkKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy02NjgtXHRcdGlmICghbXN0YV9saW5rKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYz02OTQ9c3RhdGljIGludFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjY5NTptdDc5OTZfaHdfcXVldWVzX3Nob3coc3RydWN0IHNlcV9maWxlICpmaWxlLCB2b2lkICpkYXRhKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTY5Ni17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6Njk3Olx0c3RydWN0IG10Nzk5Nl9kZXYgKmRldiA9IGZpbGUtXHUwMDNlcHJpdmF0ZTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo2OTg6XHRzdHJ1Y3QgbXQ3OTk2X3BoeSAqcGh5ID0gXHUwMDI2ZGV2LVx1MDAzZXBoeTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy02OTktXHRzdGF0aWMgY29uc3Qgc3RydWN0IGh3X3F1ZXVlX21hcCBwbGVfcXVldWVfbWFwW10gPSB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTc0Ny1cdHNlcV9wdXRzKGZpbGUsIFwmIzM0O1BMRSBub24tZW1wdHkgcXVldWUgaW5mbzpcXG5cJiMzNDspO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjc0ODpcdG10Nzk5Nl9od19xdWV1ZV9yZWFkKGZpbGUsIEFSUkFZX1NJWkUocGxlX3F1ZXVlX21hcCksXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNzQ5LVx0XHRcdCAgICAgXHUwMDI2cGxlX3F1ZXVlX21hcFswXSk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTc1Mi1cdGllZWU4MDIxMV9pdGVyYXRlX3N0YXRpb25zX2F0b21pYyhwaHktXHUwMDNlbXQ3Ni1cdTAwM2VodyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo3NTM6XHRcdFx0XHRcdCAgbXQ3OTk2X3N0YV9od19xdWV1ZV9yZWFkLCBmaWxlKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo3NTQ6XHRwaHkgPSBtdDc5OTZfcGh5MihkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTc1NS1cdGlmIChwaHkpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNzU2LVx0XHRpZWVlODAyMTFfaXRlcmF0ZV9zdGF0aW9uc19hdG9taWMocGh5LVx1MDAzZW10NzYtXHUwMDNlaHcsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6NzU3Olx0XHRcdFx0XHRcdCAgbXQ3OTk2X3N0YV9od19xdWV1ZV9yZWFkLCBmaWxlKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo3NTg6XHRwaHkgPSBtdDc5OTZfcGh5MyhkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTc1OS1cdGlmIChwaHkpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNzYwLVx0XHRpZWVlODAyMTFfaXRlcmF0ZV9zdGF0aW9uc19hdG9taWMocGh5LVx1MDAzZW10NzYtXHUwMDNlaHcsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6NzYxOlx0XHRcdFx0XHRcdCAgbXQ3OTk2X3N0YV9od19xdWV1ZV9yZWFkLCBmaWxlKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy03NjItXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTc2NC1cdHNlcV9wdXRzKGZpbGUsIFwmIzM0O1BTRSBub24tZW1wdHkgcXVldWUgaW5mbzpcXG5cJiMzNDspO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjc2NTpcdG10Nzk5Nl9od19xdWV1ZV9yZWFkKGZpbGUsIEFSUkFZX1NJWkUocHNlX3F1ZXVlX21hcCksXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNzY2LVx0XHRcdCAgICAgXHUwMDI2cHNlX3F1ZXVlX21hcFswXSk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTc3MC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo3NzE6REVGSU5FX1NIT1dfQVRUUklCVVRFKG10Nzk5Nl9od19xdWV1ZXMpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTc3Mi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYz03NzM9c3RhdGljIGludFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjc3NDptdDc5OTZfeG1pdF9xdWV1ZXNfc2hvdyhzdHJ1Y3Qgc2VxX2ZpbGUgKmZpbGUsIHZvaWQgKmRhdGEpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNzc1LXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo3NzY6XHRzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2ID0gZmlsZS1cdTAwM2Vwcml2YXRlO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjc3NzpcdHN0cnVjdCBtdDc5OTZfcGh5ICpwaHk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNzc4LVx0c3RydWN0IHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNzkwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjc5MTpcdHBoeSA9IG10Nzk5Nl9waHkyKGRldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNzkyLVx0aWYgKHBoeSlcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNzk0LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjc5NTpcdHBoeSA9IG10Nzk5Nl9waHkzKGRldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNzk2LVx0aWYgKHBoeSlcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtODEzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjgxNDpERUZJTkVfU0hPV19BVFRSSUJVVEUobXQ3OTk2X3htaXRfcXVldWVzKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy04MTUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM9ODE2PXN0YXRpYyBpbnRcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo4MTc6bXQ3OTk2X3R3dF9zdGF0cyhzdHJ1Y3Qgc2VxX2ZpbGUgKnMsIHZvaWQgKmRhdGEpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtODE4LXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo4MTk6XHRzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2ID0gZGV2X2dldF9kcnZkYXRhKHMtXHUwMDNlcHJpdmF0ZSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6ODIwOlx0c3RydWN0IG10Nzk5Nl90d3RfZmxvdyAqaXRlcjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy04MjEtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jPTg0NT1zdGF0aWMgaW50XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6ODQ2Om10Nzk5Nl9yZl9yZWd2YWxfZ2V0KHZvaWQgKmRhdGEsIHU2NCAqdmFsKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTg0Ny17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6ODQ4Olx0c3RydWN0IG10Nzk5Nl9kZXYgKmRldiA9IGRhdGE7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtODQ5LVx0dTMyIHJlZ3ZhbDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtODUxLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjg1MjpcdHJldCA9IG10Nzk5Nl9tY3VfcmZfcmVndmFsKGRldiwgZGV2LVx1MDAzZW10NzYuZGVidWdmc19yZWcsIFx1MDAyNnJlZ3ZhbCwgZmFsc2UpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTg1My1cdGlmIChyZXQpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jPTg2MT1zdGF0aWMgaW50XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6ODYyOm10Nzk5Nl9yZl9yZWd2YWxfc2V0KHZvaWQgKmRhdGEsIHU2NCB2YWwpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtODYzLXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo4NjQ6XHRzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2ID0gZGF0YTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy04NjUtXHR1MzIgdmFsMzIgPSB2YWw7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtODY2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjg2NzpcdHJldHVybiBtdDc5OTZfbWN1X3JmX3JlZ3ZhbChkZXYsIGRldi1cdTAwM2VtdDc2LmRlYnVnZnNfcmVnLCBcdTAwMjZ2YWwzMiwgdHJ1ZSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtODY4LX1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy04NjktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6ODcwOkRFRklORV9ERUJVR0ZTX0FUVFJJQlVURShmb3BzX3JmX3JlZ3ZhbCwgbXQ3OTk2X3JmX3JlZ3ZhbF9nZXQsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6ODcxOlx0XHRcdCBtdDc5OTZfcmZfcmVndmFsX3NldCwgXCYjMzQ7MHglMDhsbHhcXG5cJiMzNDspO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTg3Mi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo4NzM6aW50IG10Nzk5Nl9pbml0X2RlYnVnZnMoc3RydWN0IG10Nzk5Nl9kZXYgKmRldilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy04NzQte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy04NzktXHRkZWJ1Z2ZzX2NyZWF0ZV9maWxlKFwmIzM0O2h3LXF1ZXVlc1wmIzM0OywgMDQwMCwgZGlyLCBkZXYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6ODgwOlx0XHRcdCAgICBcdTAwMjZtdDc5OTZfaHdfcXVldWVzX2ZvcHMpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTg4MS1cdGRlYnVnZnNfY3JlYXRlX2ZpbGUoXCYjMzQ7eG1pdC1xdWV1ZXNcJiMzNDssIDA0MDAsIGRpciwgZGV2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjg4MjpcdFx0XHQgICAgXHUwMDI2bXQ3OTk2X3htaXRfcXVldWVzX2ZvcHMpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjg4MzpcdGRlYnVnZnNfY3JlYXRlX2ZpbGUoXCYjMzQ7dHhfc3RhdHNcJiMzNDssIDA0MDAsIGRpciwgZGV2LCBcdTAwMjZtdDc5OTZfdHhfc3RhdHNfZm9wcyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtODg0LVx0ZGVidWdmc19jcmVhdGVfZmlsZShcJiMzNDtzeXNfcmVjb3ZlcnlcJiMzNDssIDA2MDAsIGRpciwgZGV2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjg4NTpcdFx0XHQgICAgXHUwMDI2bXQ3OTk2X3N5c19yZWNvdmVyeV9vcHMpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTg4Ni1cdGRlYnVnZnNfY3JlYXRlX2ZpbGUoXCYjMzQ7ZndfZGVidWdfd21cJiMzNDssIDA2MDAsIGRpciwgZGV2LCBcdTAwMjZmb3BzX2Z3X2RlYnVnX3dtKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtODkwLVx0ZGVidWdmc19jcmVhdGVfZmlsZShcJiMzNDtmd191dGlsX3dhXCYjMzQ7LCAwNDAwLCBkaXIsIGRldixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo4OTE6XHRcdFx0ICAgIFx1MDAyNm10Nzk5Nl9md191dGlsX3dhX2ZvcHMpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTg5Mi1cdGRlYnVnZnNfY3JlYXRlX2ZpbGUoXCYjMzQ7aW1wbGljaXRfdHhiZlwmIzM0OywgMDYwMCwgZGlyLCBkZXYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTg5NC1cdGRlYnVnZnNfY3JlYXRlX2Rldm1fc2VxZmlsZShkZXYtXHUwMDNlbXQ3Ni5kZXYsIFwmIzM0O3R3dF9zdGF0c1wmIzM0OywgZGlyLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjg5NTpcdFx0XHRcdCAgICBtdDc5OTZfdHd0X3N0YXRzKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy04OTYtXHRkZWJ1Z2ZzX2NyZWF0ZV9maWxlKFwmIzM0O3JmX3JlZ3ZhbFwmIzM0OywgMDYwMCwgZGlyLCBkZXYsIFx1MDAyNmZvcHNfcmZfcmVndmFsKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtOTAxLVx0ZGVidWdmc19jcmVhdGVfZGV2bV9zZXFmaWxlKGRldi1cdTAwM2VtdDc2LmRldiwgXCYjMzQ7cmRkX21vbml0b3JcJiMzNDssIGRpcixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo5MDI6XHRcdFx0XHQgICAgbXQ3OTk2X3JkZF9tb25pdG9yKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy05MDMtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jPTkwOT1zdGF0aWMgdm9pZFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjkxMDptdDc5OTZfZGVidWdmc193cml0ZV9md2xvZyhzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2LCBjb25zdCB2b2lkICpoZHIsIGludCBoZHJsZW4sXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtOTExLVx0XHRcdCAgIGNvbnN0IHZvaWQgKmRhdGEsIGludCBsZW4pXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTkzMy1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo5MzQ6dm9pZCBtdDc5OTZfZGVidWdmc19yeF9md19tb25pdG9yKHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYsIGNvbnN0IHZvaWQgKmRhdGEsIGludCBsZW4pXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtOTM1LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtOTU1LVx0aGRyLmxlbiA9ICooX19sZTE2ICopZGF0YTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo5NTY6XHRtdDc5OTZfZGVidWdmc193cml0ZV9md2xvZyhkZXYsIFx1MDAyNmhkciwgc2l6ZW9mKGhkciksIGRhdGEsIGxlbik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtOTU3LX1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy05NTgtXG5cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8xMSAwNjozMjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuNy1mbGFzaDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyMDgyNQoJCQkJCQkJb3V0cHV0OiAzNwoJCQkJCQkJdGhvdWdodHM6IDIxCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5IZXJlJiMzOTtzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHM6CgoqKk5hdmlnYXRpbmcgdGhlIE1lZGlhdGVrIFdpcmVsZXNzIExhbmRzY2FwZSoqCgpPa2F5LCBzbyBJIG5lZWQgdG8gZGl2ZSBpbnRvIHRoZSBNZWRpYXRlayB3aXJlbGVzcyBkcml2ZXIgY29kZSwgc3BlY2lmaWNhbGx5IHRoZSBgbXQ3NmAgZmFtaWx5LiBMZXQmIzM5O3Mgc2VlIHdoYXQgdGhlIEtjb25maWcgZmlsZSBoYXMgdG8gb2ZmZXIuIFRoaXMgZmlsZSBpcyB0aGUga2V5IHRvIHVuZGVyc3RhbmRpbmcgdGhlIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBhbmQgZGVwZW5kZW5jaWVzIGZvciB0aGVzZSBkcml2ZXJzLiBJdCYjMzk7cyB3aGVyZSB0aGUga25vYnMgYXJlIHRoYXQgSSBjYW4gdHVybiB0byBlbmFibGUgb3IgZGlzYWJsZSBmZWF0dXJlcywgbW9kdWxlcywgb3Igc3VwcG9ydCBmb3Igc3BlY2lmaWMgaGFyZHdhcmUuIEkgbmVlZCB0byBmaWd1cmUgb3V0IHdoaWNoIG9wdGlvbnMgYXJlIHJlbGV2YW50IHRvIHRoZSBjdXJyZW50IHByb2JsZW0uIFRoaXMgd2lsbCBoZWxwIHRvIGlkZW50aWZ5IHRoZSBzcGVjaWZpYyBjb25maWd1cmF0aW9uIHBhcmFtZXRlcnMgSSBtaWdodCBuZWVkIHRvIGFkanVzdCwgb3IgZXZlbiBkZWJ1ZywgdG8gZ2V0IHRoaXMgTWVkaWF0ZWsgd2lyZWxlc3Mgc2V0dXAgd29ya2luZyBhcyBleHBlY3RlZC4gVGhpcyB3aWxsIGJlIG15IHN0YXJ0aW5nIHBvaW50IGZvciBhIGRlZXBlciBkaXZlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzExIDA2OjMyPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O01UNzk5NiYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7XG5GdWxsIG91dHB1dCBpcyB0b28gbG9uZywgc2hvd2luZyA1MDAgb3V0IG9mIDE1ODIgbGluZXMuXG5Vc2UgbW9yZSBwcmVjaXNlIGV4cHJlc3Npb24gaWYgcG9zc2libGUuXG5cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvTWFrZWZpbGU9NTA9b2JqLSQoQ09ORklHX01UNzkyMV9DT01NT04pICYjNDM7PSBtdDc5MjEvXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L01ha2VmaWxlOjUxOm9iai0kKENPTkZJR19NVDc5OTZFKSAmIzQzOz0gbXQ3OTk2L1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9NYWtlZmlsZS01Mi1vYmotJChDT05GSUdfTVQ3OTI1X0NPTU1PTikgJiM0Mzs9IG10NzkyNS9cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9LY29uZmlnLTEtIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTMtQ2xhdXNlLUNsZWFyXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9LY29uZmlnOjI6Y29uZmlnIE1UNzk5NkVcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L0tjb25maWc6MzpcdHRyaXN0YXRlIFwmIzM0O01lZGlhVGVrIE1UNzk5NiAoUENJZSkgc3VwcG9ydFwmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvS2NvbmZpZy00LVx0c2VsZWN0IE1UNzZfQ09OTkFDX0xJQlxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L0tjb25maWctOS1cdGhlbHBcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L0tjb25maWc6MTA6XHQgIFRoaXMgYWRkcyBzdXBwb3J0IGZvciBNVDc5OTYtYmFzZWQgUENJZSB3aXJlbGVzcyBkZXZpY2VzLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvS2NvbmZpZy0xMS1cdCAgd2hpY2ggc3VwcG9ydCBjb25jdXJyZW50IHRyaS1iYW5kIG9wZXJhdGlvbiBhdCA2R0h6LCA1R0h6LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L0tjb25maWctMTUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9LY29uZmlnOjE2OmNvbmZpZyBNVDc5OTZfTlBVXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9LY29uZmlnOjE3Olx0Ym9vbCBcJiMzNDtNVDc5OTYgKFBDSWUpIE5QVSBzdXBwb3J0XCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9LY29uZmlnOjE4Olx0ZGVwZW5kcyBvbiBNVDc5OTZFXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9LY29uZmlnLTE5LVx0ZGVwZW5kcyBvbiBORVRfQUlST0hBX05QVT15IHx8IE1UNzZfQ09SRT1ORVRfQUlST0hBX05QVVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L01ha2VmaWxlLTItXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9NYWtlZmlsZTozOm9iai0kKENPTkZJR19NVDc5OTZFKSAmIzQzOz0gbXQ3OTk2ZS5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9NYWtlZmlsZS00LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvTWFrZWZpbGU9NT1tdDc5OTZlLXkgOj0gcGNpLm8gaW5pdC5vIGRtYS5vIGVlcHJvbS5vIG1haW4ubyBtY3UubyBtYWMubyBcXFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L01ha2VmaWxlLTctXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9NYWtlZmlsZTo4Om10Nzk5NmUtJChDT05GSUdfTVQ3OTk2X05QVSkgJiM0Mzs9IG5wdS5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9NYWtlZmlsZS05LW10Nzk5NmUtJChDT05GSUdfREVWX0NPUkVEVU1QKSAmIzQzOz0gY29yZWR1bXAub1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmM9NDg9bXQ3OTk2X2NvcmVkdW1wX2dldF9tZW1fbGF5b3V0KHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYsIHUzMiAqbnVtKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmMtNTAtXHRzd2l0Y2ggKG10NzZfY2hpcChcdTAwMjZkZXYtXHUwMDNlbXQ3NikpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmM6NTE6XHRjYXNlIE1UNzk5Nl9ERVZJQ0VfSUQ6XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jOjUyOlx0Y2FzZSBNVDc5OTZfREVWSUNFX0lEXzI6XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jLTUzLVx0XHQqbnVtID0gQVJSQVlfU0laRShtdDc5OTZfbWVtX3JlZ2lvbnMpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jPTQ2PXN0YXRpYyB2b2lkIG10Nzk5Nl9kbWFfY29uZmlnKHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtNTktXHQvKiByeCBxdWV1ZSAqL1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6NjA6XHRSWFFfQ09ORklHKE1UX1JYUV9NQ1UsIFdGRE1BMCwgTVRfSU5UX1JYX0RPTkVfV00sIE1UNzk5Nl9SWFFfTUNVX1dNKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTYxLVx0LyogZm9yIG10Nzk5MCwgUlggcmluZyAxIGlzIGZvciBTRE8gaW5zdGVhZCAqL1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6NjI6XHRSWFFfQ09ORklHKE1UX1JYUV9NQ1VfV0EsIFdGRE1BMCwgTVRfSU5UX1JYX0RPTkVfV0EsIE1UNzk5Nl9SWFFfTUNVX1dBKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjYzOlx0UlhRX0NPTkZJRyhNVF9SWFFfTUFJTiwgV0ZETUEwLCBNVF9JTlRfUlhfRE9ORV9CQU5EMCwgTVQ3OTk2X1JYUV9CQU5EMCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy02NC1cdGlmIChtdDc5OTZfaGFzX3dhKGRldikpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy02NS1cdFx0UlhRX0NPTkZJRyhNVF9SWFFfTUFJTl9XQSwgV0ZETUEwLCBNVF9JTlRfUlhfRE9ORV9XQV9NQUlOLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6NjY6XHRcdFx0ICAgTVQ3OTk2X1JYUV9NQ1VfV0FfTUFJTik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy02Ny1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy02OS1cdGNhc2UgTVQ3OTkyX0RFVklDRV9JRDpcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjcwOlx0XHRSWFFfQ09ORklHKE1UX1JYUV9CQU5EMV9XQSwgV0ZETUEwLCBNVF9JTlRfUlhfRE9ORV9XQV9FWFQsIE1UNzk5Nl9SWFFfTUNVX1dBX0VYVCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzo3MTpcdFx0UlhRX0NPTkZJRyhNVF9SWFFfQkFORDEsIFdGRE1BMCwgTVRfSU5UX1JYX0RPTkVfQkFORDEsIE1UNzk5Nl9SWFFfQkFORDEpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtNzItXHRcdGJyZWFrO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtNzMtXHRjYXNlIE1UNzk5MF9ERVZJQ0VfSUQ6XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzo3NDpcdFx0UlhRX0NPTkZJRyhNVF9SWFFfQkFORDEsIFdGRE1BMCwgTVRfSU5UX1JYX0RPTkVfQkFORDEsIE1UNzk5Nl9SWFFfQkFORDEpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtNzUtXHRcdFJYUV9DT05GSUcoTVRfUlhRX1RYRlJFRV9CQU5EMCwgV0ZETUEwLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTgwLVx0XHRicmVhaztcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjgxOlx0Y2FzZSBNVDc5OTZfREVWSUNFX0lEOlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtODItXHRkZWZhdWx0OlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtODMtXHRcdC8qIG10Nzk5NiBiYW5kMiAqL1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6ODQ6XHRcdFJYUV9DT05GSUcoTVRfUlhRX0JBTkQyX1dBLCBXRkRNQTAsIE1UX0lOVF9SWF9ET05FX1dBX1RSSSwgTVQ3OTk2X1JYUV9NQ1VfV0FfVFJJKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjg1Olx0XHRSWFFfQ09ORklHKE1UX1JYUV9CQU5EMiwgV0ZETUEwLCBNVF9JTlRfUlhfRE9ORV9CQU5EMiwgTVQ3OTk2X1JYUV9CQU5EMik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy04Ni1cdFx0YnJlYWs7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtOTEtXHRcdFJYUV9DT05GSUcoTVRfUlhRX1JST19CQU5EMCwgV0ZETUEwLCBNVF9JTlRfUlhfRE9ORV9SUk9fQkFORDAsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzo5MjpcdFx0XHQgICBNVDc5OTZfUlhRX1JST19CQU5EMCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy05My1cdFx0aWYgKGRldi1cdTAwM2VtdDc2Lmh3cnJvX21vZGUgPT0gTVQ3Nl9IV1JST19WMylcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy05NS1cdFx0XHRcdCAgIE1UX0lOVF9SWF9ET05FX01TRFVfUEdfQkFORDAsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzo5NjpcdFx0XHRcdCAgIE1UNzk5Nl9SWFFfTVNEVV9QR19CQU5EMCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy05Ny1cdFx0aWYgKGlzX210Nzk5NihcdTAwMjZkZXYtXHUwMDNlbXQ3NikpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTk4LVx0XHRcdFJYUV9DT05GSUcoTVRfUlhRX1RYRlJFRV9CQU5EMCwgV0ZETUEwLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6OTk6XHRcdFx0XHQgICBNVF9JTlRfUlhfVFhGUkVFX01BSU4sIE1UNzk5Nl9SWFFfVFhGUkVFMCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy0xMDAtXHRcdFx0LyogYmFuZDEgKi9cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy0xMDItXHRcdFx0XHQgICBNVF9JTlRfUlhfRE9ORV9NU0RVX1BHX0JBTkQxLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6MTAzOlx0XHRcdFx0ICAgTVQ3OTk2X1JYUV9NU0RVX1BHX0JBTkQxKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTEwNC1cdFx0XHQvKiBiYW5kMiAqL1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTEwNi1cdFx0XHRcdCAgIE1UX0lOVF9SWF9ET05FX1JST19CQU5EMixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjEwNzpcdFx0XHRcdCAgIE1UNzk5Nl9SWFFfUlJPX0JBTkQyKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTEwOC1cdFx0XHRSWFFfQ09ORklHKE1UX1JYUV9NU0RVX1BBR0VfQkFORDIsIFdGRE1BMCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTEwOS1cdFx0XHRcdCAgIE1UX0lOVF9SWF9ET05FX01TRFVfUEdfQkFORDIsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzoxMTA6XHRcdFx0XHQgICBNVDc5OTZfUlhRX01TRFVfUEdfQkFORDIpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtMTExLVx0XHRcdFJYUV9DT05GSUcoTVRfUlhRX1RYRlJFRV9CQU5EMiwgV0ZETUEwLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6MTEyOlx0XHRcdFx0ICAgTVRfSU5UX1JYX1RYRlJFRV9UUkksIE1UNzk5Nl9SWFFfVFhGUkVFMik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy0xMTMtXHRcdH0gZWxzZSB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtMTE1LVx0XHRcdFx0ICAgTVRfSU5UX1JYX0RPTkVfUlJPX0JBTkQxLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6MTE2Olx0XHRcdFx0ICAgTVQ3OTk2X1JYUV9SUk9fQkFORDEpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtMTE3LVx0XHR9XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtMTIxLVx0XHRcdFx0ICAgTVRfSU5UX1JYX0RPTkVfUlJPX0lORCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjEyMjpcdFx0XHRcdCAgIE1UNzk5Nl9SWFFfUlJPX0lORCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy0xMjMtXHRcdGVsc2Vcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy0xMjUtXHRcdFx0XHQgICBNVF9JTlRfUlhfRE9ORV9SUk9fUlhETUFEX0MsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzoxMjY6XHRcdFx0XHQgICBNVDc5OTZfUlhRX1JST19SWERNQURfQyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy0xMjctXHR9XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtMTMzLVx0XHRcdFx0VFhRX0NPTkZJRygwLCBXRkRNQTAsIE1UX0lOVF9UWF9ET05FX0JBTkQyLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6MTM0Olx0XHRcdFx0XHQgICBNVDc5OTZfVFhRX0JBTkQyKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTEzNS1cdFx0XHRcdFRYUV9DT05GSUcoMSwgV0ZETUEwLCBNVF9JTlRfVFhfRE9ORV9CQU5EMCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjEzNjpcdFx0XHRcdFx0ICAgTVQ3OTk2X1RYUV9CQU5EMCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy0xMzctXHRcdFx0XHRUWFFfQ09ORklHKDIsIFdGRE1BMCwgTVRfSU5UX1RYX0RPTkVfQkFORDEsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzoxMzg6XHRcdFx0XHRcdCAgIE1UNzk5Nl9UWFFfQkFORDEpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtMTM5LVx0XHRcdH0gZWxzZSB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtMTQxLVx0XHRcdFx0VFhRX0NPTkZJRygwLCBXRkRNQTAsIE1UX0lOVF9UWF9ET05FX0JBTkQwLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6MTQyOlx0XHRcdFx0XHQgICBNVDc5OTZfVFhRX0JBTkQwKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTE0My1cdFx0XHRcdFRYUV9DT05GSUcoMSwgV0ZETUEwLCBNVF9JTlRfVFhfRE9ORV9CQU5EMSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjE0NDpcdFx0XHRcdFx0ICAgTVQ3OTk2X1RYUV9CQU5EMSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy0xNDUtXHRcdFx0XHRUWFFfQ09ORklHKDIsIFdGRE1BMCwgTVRfSU5UX1RYX0RPTkVfQkFORDIsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzoxNDY6XHRcdFx0XHRcdCAgIE1UNzk5Nl9UWFFfQkFORDIpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtMTQ3LVx0XHRcdH1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy0xNTAtXHRcdFx0VFhRX0NPTkZJRygwLCBXRkRNQTAsIE1UX0lOVF9UWF9ET05FX0JBTkQwLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6MTUxOlx0XHRcdFx0ICAgTVQ3OTk2X1RYUV9CQU5EMCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy0xNTItXHRcdFx0VFhRX0NPTkZJRygyLCBXRkRNQTAsIE1UX0lOVF9UWF9ET05FX0JBTkQxLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6MTUzOlx0XHRcdFx0ICAgTVQ3OTk2X1RYUV9CQU5EMSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy0xNTQtXHRcdH1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy0xNTgtXHRcdFx0VFhRX0NPTkZJRygwLCBXRkRNQTAsIE1UX0lOVF9UWF9ET05FX0JBTkQwLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6MTU5Olx0XHRcdFx0ICAgTVQ3OTk2X1RYUV9CQU5EMCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy0xNjAtXHRcdFx0VFhRX0NPTkZJRygxLCBXRkRNQTAsIE1UX0lOVF9UWF9ET05FX0JBTkQyLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6MTYxOlx0XHRcdFx0ICAgTVQ3OTk2X1RYUV9CQU5EMik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy0xNjItXHRcdH0gZWxzZSB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtMTY0LVx0XHRcdFRYUV9DT05GSUcoMCwgV0ZETUEwLCBNVF9JTlRfVFhfRE9ORV9CQU5EMCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjE2NTpcdFx0XHRcdCAgIE1UNzk5Nl9UWFFfQkFORDApO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtMTY2LVx0XHRcdFRYUV9DT05GSUcoMSwgV0ZETUEwLCBNVF9JTlRfVFhfRE9ORV9CQU5EMSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjE2NzpcdFx0XHRcdCAgIE1UNzk5Nl9UWFFfQkFORDEpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtMTY4LVx0XHR9XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtMTcxLVx0LyogbWN1IHR4IHF1ZXVlICovXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzoxNzI6XHRNQ1VRX0NPTkZJRyhNVF9NQ1VRX0ZXREwsIFdGRE1BMCwgTVRfSU5UX1RYX0RPTkVfRldETCwgTVQ3OTk2X1RYUV9GV0RMKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjE3MzpcdE1DVVFfQ09ORklHKE1UX01DVVFfV00sIFdGRE1BMCwgTVRfSU5UX1RYX0RPTkVfTUNVX1dNLCBNVDc5OTZfVFhRX01DVV9XTSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy0xNzQtXHRpZiAobXQ3OTk2X2hhc193YShkZXYpKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtMTc1LVx0XHRNQ1VRX0NPTkZJRyhNVF9NQ1VRX1dBLCBXRkRNQTAsIE1UX0lOVF9UWF9ET05FX01DVV9XQSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjE3NjpcdFx0XHQgICAgTVQ3OTk2X1RYUV9NQ1VfV0EpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtMTc3LX1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYz01MjE9aW50IG10Nzk5Nl9kbWFfcnJvX2luaXQoc3RydWN0IG10Nzk5Nl9kZXYgKmRldilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy01MzUtXHRcdFx0XHQgICAgICAgTVRfUlhRX0lEKE1UX1JYUV9SUk9fUlhETUFEX0MpLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6NTM2Olx0XHRcdFx0ICAgICAgIE1UNzk5Nl9SWF9SSU5HX1NJWkUsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzo1Mzc6XHRcdFx0XHQgICAgICAgTVQ3OTk2X1JYX0JVRl9TSVpFLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtNTM4LVx0XHRcdFx0ICAgICAgIE1UX1JYUV9SUk9fQVBfUklOR19CQVNFKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy01NjEtXHRcdFx0ICAgICAgIE1UX1JYUV9JRChNVF9SWFFfUlJPX0lORCksXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzo1NjI6XHRcdFx0ICAgICAgIE1UNzk5Nl9SWF9SSU5HX1NJWkUsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy01NjMtXHRcdFx0ICAgICAgIDAsIE1UX1JYUV9SUk9fSU5EX1JJTkdfQkFTRSk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtNTc0LVx0c2l6ZSA9IGlzX210Nzk5NihtZGV2KSBcdTAwMjZcdTAwMjYgbXQ3Nl9ucHVfZGV2aWNlX2FjdGl2ZShtZGV2KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6NTc1Olx0ICAgICAgID8gTVQ3OTk2X05QVV9SWF9SSU5HX1NJWkUgLyA0IDogTVQ3OTk2X1JYX1JJTkdfU0laRTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTU3Ni1cdHJldCA9IG10NzZfcXVldWVfYWxsb2MoZGV2LCBcdTAwMjZtZGV2LVx1MDAzZXFfcnhbTVRfUlhRX01TRFVfUEFHRV9CQU5EMF0sXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy01NzctXHRcdFx0ICAgICAgIE1UX1JYUV9JRChNVF9SWFFfTVNEVV9QQUdFX0JBTkQwKSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjU3ODpcdFx0XHQgICAgICAgc2l6ZSwgTVQ3OTk2X1JYX01TRFVfUEFHRV9TSVpFLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtNTc5LVx0XHRcdCAgICAgICBNVF9SWFFfUklOR19CQVNFKE1UX1JYUV9NU0RVX1BBR0VfQkFORDApKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy01OTEtXHRcdHNpemUgPSBpc19tdDc5OTYobWRldikgXHUwMDI2XHUwMDI2IG10NzZfbnB1X2RldmljZV9hY3RpdmUobWRldilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjU5MjpcdFx0ICAgICAgID8gTVQ3OTk2X05QVV9SWF9SSU5HX1NJWkUgLyAyIDogTVQ3OTk2X1JYX1JJTkdfU0laRTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTU5My1cdFx0cmV0ID0gbXQ3Nl9xdWV1ZV9hbGxvYyhkZXYsIFx1MDAyNm1kZXYtXHUwMDNlcV9yeFtNVF9SWFFfTVNEVV9QQUdFX0JBTkQxXSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTU5NC1cdFx0XHRcdCAgICAgICBNVF9SWFFfSUQoTVRfUlhRX01TRFVfUEFHRV9CQU5EMSksXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzo1OTU6XHRcdFx0XHQgICAgICAgc2l6ZSwgTVQ3OTk2X1JYX01TRFVfUEFHRV9TSVpFLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtNTk2LVx0XHRcdFx0ICAgICAgIE1UX1JYUV9SSU5HX0JBU0UoTVRfUlhRX01TRFVfUEFHRV9CQU5EMSkpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTYwOS1cdFx0c2l6ZSA9IGlzX210Nzk5NihtZGV2KSBcdTAwMjZcdTAwMjYgbXQ3Nl9ucHVfZGV2aWNlX2FjdGl2ZShtZGV2KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6NjEwOlx0XHQgICAgICAgPyBNVDc5OTZfTlBVX1JYX1JJTkdfU0laRSA6IE1UNzk5Nl9SWF9SSU5HX1NJWkU7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy02MTEtXHRcdHJldCA9IG10NzZfcXVldWVfYWxsb2MoZGV2LCBcdTAwMjZtZGV2LVx1MDAzZXFfcnhbTVRfUlhRX01TRFVfUEFHRV9CQU5EMl0sXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy02MTItXHRcdFx0XHQgICAgICAgTVRfUlhRX0lEKE1UX1JYUV9NU0RVX1BBR0VfQkFORDIpLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6NjEzOlx0XHRcdFx0ICAgICAgIHNpemUsIE1UNzk5Nl9SWF9NU0RVX1BBR0VfU0laRSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTYxNC1cdFx0XHRcdCAgICAgICBNVF9SWFFfUklOR19CQVNFKE1UX1JYUV9NU0RVX1BBR0VfQkFORDIpKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYz02NjQ9aW50IG10Nzk5Nl9kbWFfaW5pdChzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTY4My1cdFx0cmV0ID0gbXQ3OTk2X2luaXRfdHhfcXVldWVzKFx1MDAyNmRldi1cdTAwM2VwaHksIE1UX1RYUV9JRCgwKSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjY4NDpcdFx0XHRcdFx0ICAgIE1UNzk5Nl9OUFVfVFhfUklOR19TSVpFLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtNjg1LVx0XHRcdFx0XHQgICAgTVRfVFhRX1JJTkdfQkFTRSgwKSAmIzQzOyBoaWYxX29mcyxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy02ODktXHRcdFx0XHRcdCAgICBNVF9UWFFfSUQoZGV2LVx1MDAzZW1waHkuYmFuZF9pZHgpLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6NjkwOlx0XHRcdFx0XHQgICAgTVQ3OTk2X1RYX1JJTkdfU0laRSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTY5MS1cdFx0XHRcdFx0ICAgIE1UX1RYUV9SSU5HX0JBU0UoMCksIHdlZCk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtNjk3LVx0XHRcdFx0ICBNVF9NQ1VRX0lEKE1UX01DVVFfV00pLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6Njk4Olx0XHRcdFx0ICBNVDc5OTZfVFhfTUNVX1JJTkdfU0laRSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTY5OS1cdFx0XHRcdCAgTVRfTUNVUV9SSU5HX0JBU0UoTVRfTUNVUV9XTSkpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTcwNi1cdFx0XHRcdFx0ICBNVF9NQ1VRX0lEKE1UX01DVVFfV0EpLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6NzA3Olx0XHRcdFx0XHQgIE1UNzk5Nl9UWF9NQ1VfUklOR19TSVpFLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtNzA4LVx0XHRcdFx0XHQgIE1UX01DVVFfUklOR19CQVNFKE1UX01DVVFfV0EpKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy03MTUtXHRcdFx0XHQgIE1UX01DVVFfSUQoTVRfTUNVUV9GV0RMKSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjcxNjpcdFx0XHRcdCAgTVQ3OTk2X1RYX0ZXRExfUklOR19TSVpFLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtNzE3LVx0XHRcdFx0ICBNVF9NQ1VRX1JJTkdfQkFTRShNVF9NQ1VRX0ZXREwpKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy03MjMtXHRcdFx0ICAgICAgIE1UX1JYUV9JRChNVF9SWFFfTUNVKSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjcyNDpcdFx0XHQgICAgICAgTVQ3OTk2X1JYX01DVV9SSU5HX1NJWkUsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzo3MjU6XHRcdFx0ICAgICAgIE1UNzk5Nl9SWF9NQ1VfQlVGX1NJWkUsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy03MjYtXHRcdFx0ICAgICAgIE1UX1JYUV9SSU5HX0JBU0UoTVRfUlhRX01DVSkpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTczMi1cdFx0XHQgICAgICAgTVRfUlhRX0lEKE1UX1JYUV9NQ1VfV0EpLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6NzMzOlx0XHRcdCAgICAgICBNVDc5OTZfUlhfTUNVX1JJTkdfU0laRV9XQSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjczNDpcdFx0XHQgICAgICAgTVQ3OTk2X1JYX01DVV9CVUZfU0laRSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTczNS1cdFx0XHQgICAgICAgTVRfUlhRX1JJTkdfQkFTRShNVF9SWFFfTUNVX1dBKSk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtNzQ2LVx0XHRcdCAgICAgICBNVF9SWFFfSUQoTVRfUlhRX01BSU4pLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6NzQ3Olx0XHRcdCAgICAgICBNVDc5OTZfUlhfUklOR19TSVpFLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtNzQ4LVx0XHRcdCAgICAgICBNVF9SWF9CVUZfU0laRSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy03NjYtXHRcdFx0XHQgICAgICAgTVRfUlhRX0lEKE1UX1JYUV9NQUlOX1dBKSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjc2NzpcdFx0XHRcdCAgICAgICBNVDc5OTZfUlhfTUNVX1JJTkdfU0laRSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTc2OC1cdFx0XHRcdCAgICAgICBNVF9SWF9CVUZfU0laRSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy03NzgtXHRcdFx0XHQgICAgICAgTVRfUlhRX0lEKE1UX1JYUV9UWEZSRUVfQkFORDApLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6Nzc5Olx0XHRcdFx0ICAgICAgIE1UNzk5Nl9SWF9NQ1VfUklOR19TSVpFLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6NzgwOlx0XHRcdFx0ICAgICAgIE1UNzk5Nl9SWF9CVUZfU0laRSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTc4MS1cdFx0XHRcdCAgICAgICBNVF9SWFFfUklOR19CQVNFKE1UX1JYUV9UWEZSRUVfQkFORDApKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy03OTItXHRcdFx0XHQgICAgICAgTVRfUlhRX0lEKE1UX1JYUV9UWEZSRUVfQkFORDEpLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6NzkzOlx0XHRcdFx0ICAgICAgIE1UNzk5Nl9SWF9NQ1VfUklOR19TSVpFLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6Nzk0Olx0XHRcdFx0ICAgICAgIE1UNzk5Nl9SWF9CVUZfU0laRSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTc5NS1cdFx0XHRcdCAgICAgICBNVF9SWFFfUklOR19CQVNFKE1UX1JYUV9UWEZSRUVfQkFORDEpKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy04MDQtXHRcdFx0XHQgICAgICAgTVRfUlhRX0lEKE1UX1JYUV9CQU5EMiksXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzo4MDU6XHRcdFx0XHQgICAgICAgTVQ3OTk2X1JYX1JJTkdfU0laRSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTgwNi1cdFx0XHRcdCAgICAgICBNVF9SWF9CVUZfU0laRSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy04MjAtXHRcdFx0XHQgICAgICAgTVRfUlhRX0lEKE1UX1JYUV9CQU5EMl9XQSksXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzo4MjE6XHRcdFx0XHQgICAgICAgTVQ3OTk2X1JYX01DVV9SSU5HX1NJWkUsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy04MjItXHRcdFx0XHQgICAgICAgTVRfUlhfQlVGX1NJWkUsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtODM1LVx0XHRcdFx0ICAgICAgIE1UX1JYUV9JRChNVF9SWFFfQkFORDEpLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6ODM2Olx0XHRcdFx0ICAgICAgIE1UNzk5Nl9SWF9SSU5HX1NJWkUsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy04MzctXHRcdFx0XHQgICAgICAgTVRfUlhfQlVGX1NJWkUsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtODUyLVx0XHRcdFx0XHQgICAgICAgTVRfUlhRX0lEKE1UX1JYUV9CQU5EMV9XQSksXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzo4NTM6XHRcdFx0XHRcdCAgICAgICBNVDc5OTZfUlhfTUNVX1JJTkdfU0laRSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTg1NC1cdFx0XHRcdFx0ICAgICAgIE1UX1JYX0JVRl9TSVpFLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTg2OC1cdFx0XHRcdCAgICAgICBNVF9SWFFfSUQoTVRfUlhRX1JST19CQU5EMCksXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzo4Njk6XHRcdFx0XHQgICAgICAgTVQ3OTk2X1JYX1JJTkdfU0laRSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjg3MDpcdFx0XHRcdCAgICAgICBNVDc5OTZfUlhfQlVGX1NJWkUsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy04NzEtXHRcdFx0XHQgICAgICAgTVRfUlhRX1JJTkdfQkFTRShNVF9SWFFfUlJPX0JBTkQwKSk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtODgzLVx0XHRcdFx0XHQgICAgICAgTVRfUlhRX0lEKE1UX1JYUV9SUk9fQkFORDEpLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6ODg0Olx0XHRcdFx0XHQgICAgICAgTVQ3OTk2X1JYX1JJTkdfU0laRSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjg4NTpcdFx0XHRcdFx0ICAgICAgIE1UNzk5Nl9SWF9CVUZfU0laRSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTg4Ni1cdFx0XHRcdFx0ICAgICAgIE1UX1JYUV9SSU5HX0JBU0UoTVRfUlhRX1JST19CQU5EMSkgJiM0MzsgaGlmMV9vZnMpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTkwMC1cdFx0XHRcdFx0ICAgICAgIE1UX1JYUV9JRChNVF9SWFFfVFhGUkVFX0JBTkQwKSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjkwMTpcdFx0XHRcdFx0ICAgICAgIE1UNzk5Nl9SWF9NQ1VfUklOR19TSVpFLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6OTAyOlx0XHRcdFx0XHQgICAgICAgTVQ3OTk2X1JYX0JVRl9TSVpFLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtOTAzLVx0XHRcdFx0XHQgICAgICAgTVRfUlhRX1JJTkdfQkFTRShNVF9SWFFfVFhGUkVFX0JBTkQwKSk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtOTE5LVx0XHRcdCAgICAgICBtdDc2X25wdV9kZXZpY2VfYWN0aXZlKFx1MDAyNmRldi1cdTAwM2VtdDc2KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6OTIwOlx0XHRcdCAgICAgICA/IE1UNzk5Nl9OUFVfUlhfUklOR19TSVpFIDogTVQ3OTk2X1JYX1JJTkdfU0laRTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTkyMS1cdFx0XHRyZXQgPSBtdDc2X3F1ZXVlX2FsbG9jKGRldiwgXHUwMDI2ZGV2LVx1MDAzZW10NzYucV9yeFtNVF9SWFFfUlJPX0JBTkQyXSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTkyMi1cdFx0XHRcdFx0ICAgICAgIE1UX1JYUV9JRChNVF9SWFFfUlJPX0JBTkQyKSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjkyMzpcdFx0XHRcdFx0ICAgICAgIHNpemUsIE1UNzk5Nl9SWF9CVUZfU0laRSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTkyNC1cdFx0XHRcdFx0ICAgICAgIE1UX1JYUV9SSU5HX0JBU0UoTVRfUlhRX1JST19CQU5EMikgJiM0MzsgaGlmMV9vZnMpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTkzNC1cdFx0XHRcdFx0ICAgICAgIE1UX1JYUV9JRChNVF9SWFFfVFhGUkVFX0JBTkQyKSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjkzNTpcdFx0XHRcdFx0ICAgICAgIE1UNzk5Nl9SWF9NQ1VfUklOR19TSVpFLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6OTM2Olx0XHRcdFx0XHQgICAgICAgTVQ3OTk2X1JYX0JVRl9TSVpFLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtOTM3LVx0XHRcdFx0XHQgICAgICAgTVRfUlhRX1JJTkdfQkFTRShNVF9SWFFfVFhGUkVFX0JBTkQyKSAmIzQzOyBoaWYxX29mcyk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmM9MTA9c3RhdGljIGludCBtdDc5OTZfY2hlY2tfZWVwcm9tKHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmMtMTUtXHRzd2l0Y2ggKHZhbCkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmM6MTY6XHRjYXNlIE1UNzk5Nl9ERVZJQ0VfSUQ6XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9lZXByb20uYy0xNy1cdFx0cmV0dXJuIGlzX210Nzk5NihcdTAwMjZkZXYtXHUwMDNlbXQ3NikgPyAwIDogLUVJTlZBTDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9lZXByb20uYz0yNz1zdGF0aWMgY2hhciAqbXQ3OTk2X2VlcHJvbV9uYW1lKHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmMtMzItXHRcdGNhc2UgTVQ3OTkyX1ZBUl9UWVBFXzIzOlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmM6MzM6XHRcdFx0aWYgKGRldi1cdTAwM2V2YXIuZmVtID09IE1UNzk5Nl9GRU1fSU5UKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmMtMzQtXHRcdFx0XHRyZXR1cm4gTVQ3OTkyX0VFUFJPTV9ERUZBVUxUXzIzX0lOVDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9lZXByb20uYy0zOS1cdFx0ZGVmYXVsdDpcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2VlcHJvbS5jOjQwOlx0XHRcdGlmIChkZXYtXHUwMDNldmFyLmZlbSA9PSBNVDc5OTZfRkVNX0lOVClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2VlcHJvbS5jLTQxLVx0XHRcdFx0cmV0dXJuIE1UNzk5Ml9FRVBST01fREVGQVVMVF9JTlQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9lZXByb20uYzo0MjpcdFx0XHRpZiAoZGV2LVx1MDAzZXZhci5mZW0gPT0gTVQ3OTk2X0ZFTV9NSVgpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9lZXByb20uYy00My1cdFx0XHRcdHJldHVybiBNVDc5OTJfRUVQUk9NX0RFRkFVTFRfTUlYO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2VlcHJvbS5jLTQ2LVx0Y2FzZSBNVDc5OTBfREVWSUNFX0lEOlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmM6NDc6XHRcdGlmIChkZXYtXHUwMDNldmFyLmZlbSA9PSBNVDc5OTZfRkVNX0lOVClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2VlcHJvbS5jLTQ4LVx0XHRcdHJldHVybiBNVDc5OTBfRUVQUk9NX0RFRkFVTFRfSU5UO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmMtNDktXHRcdHJldHVybiBNVDc5OTBfRUVQUk9NX0RFRkFVTFQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9lZXByb20uYzo1MDpcdGNhc2UgTVQ3OTk2X0RFVklDRV9JRDpcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2VlcHJvbS5jLTUxLVx0ZGVmYXVsdDpcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2VlcHJvbS5jLTUyLVx0XHRzd2l0Y2ggKGRldi1cdTAwM2V2YXIudHlwZSkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmM6NTM6XHRcdGNhc2UgTVQ3OTk2X1ZBUl9UWVBFXzIzMzpcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2VlcHJvbS5jOjU0Olx0XHRcdGlmIChkZXYtXHUwMDNldmFyLmZlbSA9PSBNVDc5OTZfRkVNX0lOVClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2VlcHJvbS5jOjU1Olx0XHRcdFx0cmV0dXJuIE1UNzk5Nl9FRVBST01fREVGQVVMVF8yMzNfSU5UO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmM6NTY6XHRcdFx0cmV0dXJuIE1UNzk5Nl9FRVBST01fREVGQVVMVF8yMzM7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9lZXByb20uYzo1NzpcdFx0Y2FzZSBNVDc5OTZfVkFSX1RZUEVfNDQ0OlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmMtNTgtXHRcdGRlZmF1bHQ6XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9lZXByb20uYzo1OTpcdFx0XHRpZiAoZGV2LVx1MDAzZXZhci5mZW0gPT0gTVQ3OTk2X0ZFTV9JTlQpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9lZXByb20uYzo2MDpcdFx0XHRcdHJldHVybiBNVDc5OTZfRUVQUk9NX0RFRkFVTFRfSU5UO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmM6NjE6XHRcdFx0cmV0dXJuIE1UNzk5Nl9FRVBST01fREVGQVVMVDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2VlcHJvbS5jLTYyLVx0XHR9XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmM9OTg9c3RhdGljIGJvb2wgbXQ3OTk2X2VlcHJvbV92YXJpYW50X3ZhbGlkKHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYsIGNvbnN0IHU4ICpkZWYpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmMtMTA4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmM6MTA5Olx0aWYgKGRldi1cdTAwM2V2YXIuZmVtID09IE1UNzk5Nl9GRU1fRVhUIFx1MDAyNlx1MDAyNlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmMtMTEwLVx0ICAgICEoZmVtWzBdID09IEZFTV9FWFQgXHUwMDI2XHUwMDI2IGZlbVsxXSA9PSBGRU1fRVhUKSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2VlcHJvbS5jLTExMS1cdFx0cmV0dXJuIGZhbHNlO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmM6MTEyOlx0ZWxzZSBpZiAoZGV2LVx1MDAzZXZhci5mZW0gPT0gTVQ3OTk2X0ZFTV9JTlQgXHUwMDI2XHUwMDI2XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9lZXByb20uYy0xMTMtXHRcdCAhKGZlbVswXSA9PSBGRU1fSU5UIFx1MDAyNlx1MDAyNiBmZW1bMV0gPT0gRkVNX0lOVCkpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9lZXByb20uYy0xMTQtXHRcdHJldHVybiBmYWxzZTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2VlcHJvbS5jOjExNTpcdGVsc2UgaWYgKGRldi1cdTAwM2V2YXIuZmVtID09IE1UNzk5Nl9GRU1fTUlYIFx1MDAyNlx1MDAyNlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmMtMTE2LVx0XHQgIShmZW1bMF0gPT0gRkVNX0lOVCBcdTAwMjZcdTAwMjYgZmVtWzFdID09IEZFTV9FWFQpKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2VlcHJvbS5jPTEzNz1tdDc5OTZfZWVwcm9tX2NoZWNrX29yX3VzZV9kZWZhdWx0KHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYsIGJvb2wgdXNlX2RlZmF1bHQpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmMtMTUyLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmM6MTUzOlx0aWYgKGZ3LVx1MDAzZXNpemUgXHUwMDNjIE1UNzk5Nl9FRVBST01fU0laRSkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmMtMTU0LVx0XHRkZXZfZXJyKGRldi1cdTAwM2VtdDc2LmRldiwgXCYjMzQ7SW52YWxpZCBkZWZhdWx0IGJpbiBzaXplXFxuXCYjMzQ7KTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9lZXByb20uYy0xNjItXHRkZXZfd2FybihkZXYtXHUwMDNlbXQ3Ni5kZXYsIFwmIzM0O2VlcHJvbSBsb2FkIGZhaWwsIHVzZSBkZWZhdWx0IGJpblxcblwmIzM0Oyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9lZXByb20uYzoxNjM6XHRtZW1jcHkoZWVwcm9tLCBmdy1cdTAwM2VkYXRhLCBNVDc5OTZfRUVQUk9NX1NJWkUpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmMtMTY0LVx0ZGV2LVx1MDAzZWVlcHJvbV9tb2RlID0gRUVQUk9NX01PREVfREVGQVVMVF9CSU47XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmM9MTcyPXN0YXRpYyBpbnQgbXQ3OTk2X2VlcHJvbV9sb2FkKHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmMtMTc3LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmM6MTc4Olx0cmV0ID0gbXQ3Nl9lZXByb21faW5pdChcdTAwMjZkZXYtXHUwMDNlbXQ3NiwgTVQ3OTk2X0VFUFJPTV9TSVpFKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2VlcHJvbS5jLTE3OS1cdGlmIChyZXQgXHUwMDNjIDApXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmMtMTg2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmM6MTg3Olx0bWVtc2V0KGRldi1cdTAwM2VtdDc2LmVlcHJvbS5kYXRhLCAwLCBNVDc5OTZfRUVQUk9NX1NJWkUpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmMtMTg4LVx0aWYgKG10Nzk5Nl9oYXNfZXh0X2VlcHJvbShkZXYpKSB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmMtMTkwLVx0XHRkZXYtXHUwMDNlZWVwcm9tX21vZGUgPSBFRVBST01fTU9ERV9FWFQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9lZXByb20uYzoxOTE6XHRcdGVlcHJvbV9ibGtfc2l6ZSA9IE1UNzk5Nl9FWFRfRUVQUk9NX0JMT0NLX1NJWkU7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9lZXByb20uYy0xOTItXHR9IGVsc2Uge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2VlcHJvbS5jLTE5Ni1cdFx0ZGV2LVx1MDAzZWVlcHJvbV9tb2RlID0gRUVQUk9NX01PREVfRUZVU0U7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9lZXByb20uYzoxOTc6XHRcdGVlcHJvbV9ibGtfc2l6ZSA9IE1UNzk5Nl9FRVBST01fQkxPQ0tfU0laRTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2VlcHJvbS5jLTE5OC1cdFx0cmV0ID0gbXQ3OTk2X21jdV9nZXRfZWZ1c2VfZnJlZV9ibG9jayhkZXYsIFx1MDAyNmZyZWVfYmxvY2tfbnVtKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9lZXByb20uYy0yMTctXHQvKiByZWFkIGVlcHJvbSBkYXRhIGZyb20gZncgKi9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2VlcHJvbS5jOjIxODpcdGJsb2NrX251bSA9IERJVl9ST1VORF9VUChNVDc5OTZfRUVQUk9NX1NJWkUsIGVlcHJvbV9ibGtfc2l6ZSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9lZXByb20uYy0yMTktXHRmb3IgKGkgPSAxOyBpIFx1MDAzYyBibG9ja19udW07IGkmIzQzOyYjNDM7KSB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmMtMjIyLVx0XHRpZiAoaSA9PSBibG9ja19udW0gLSAxKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmM6MjIzOlx0XHRcdGxlbiA9IE1UNzk5Nl9FRVBST01fU0laRSAlIGVlcHJvbV9ibGtfc2l6ZTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2VlcHJvbS5jLTIyNC1cdFx0cmV0ID0gbXQ3OTk2X21jdV9nZXRfZWVwcm9tKGRldiwgaSAqIGVlcHJvbV9ibGtfc2l6ZSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9lZXByb20uYz0zOTU9Ym9vbCBtdDc5OTZfZWVwcm9tX2hhc19iYWNrZ3JvdW5kX3JhZGFyKHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmMtMzk3LVx0c3dpdGNoIChtdDc2X2NoaXAoXHUwMDI2ZGV2LVx1MDAzZW10NzYpKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9lZXByb20uYzozOTg6XHRjYXNlIE1UNzk5Nl9ERVZJQ0VfSUQ6XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9lZXByb20uYzozOTk6XHRcdGlmIChkZXYtXHUwMDNldmFyLnR5cGUgPT0gTVQ3OTk2X1ZBUl9UWVBFXzIzMylcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2VlcHJvbS5jLTQwMC1cdFx0XHRyZXR1cm4gZmFsc2U7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmgtNS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2VlcHJvbS5oOjY6I2lmbmRlZiBfX01UNzk5Nl9FRVBST01fSFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmg6NzojZGVmaW5lIF9fTVQ3OTk2X0VFUFJPTV9IXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9lZXByb20uaC04LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYz0xNz1zdGF0aWMgY29uc3Qgc3RydWN0IGllZWU4MDIxMV9pZmFjZV9saW1pdCBpZl9saW1pdHNfZ2xvYmFsID0ge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jOjE4Olx0Lm1heCA9IE1UNzk5Nl9NQVhfSU5URVJGQUNFUyAqIE1UNzk5Nl9NQVhfUkFESU9TLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTE5LVx0LnR5cGVzID0gQklUKE5MODAyMTFfSUZUWVBFX1NUQVRJT04pXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jPTI3PXN0YXRpYyBjb25zdCBzdHJ1Y3QgaWVlZTgwMjExX2lmYWNlX2NvbWJpbmF0aW9uIGlmX2NvbWJfZ2xvYmFsID0ge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy0yOS1cdC5uX2xpbWl0cyA9IDEsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM6MzA6XHQubWF4X2ludGVyZmFjZXMgPSBNVDc5OTZfTUFYX0lOVEVSRkFDRVMgKiBNVDc5OTZfTUFYX1JBRElPUyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYzozMTpcdC5udW1fZGlmZmVyZW50X2NoYW5uZWxzID0gTVQ3OTk2X01BWF9SQURJT1MsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtMzItXHQucmFkYXJfZGV0ZWN0X3dpZHRocyA9IEJJVChOTDgwMjExX0NIQU5fV0lEVEhfMjBfTk9IVCkgfFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYz0zOT1zdGF0aWMgY29uc3Qgc3RydWN0IGllZWU4MDIxMV9pZmFjZV9jb21iaW5hdGlvbiBpZl9jb21iX2dsb2JhbF83OTkyID0ge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy00Mi1cdC5tYXhfaW50ZXJmYWNlcyA9IDMyLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jOjQzOlx0Lm51bV9kaWZmZXJlbnRfY2hhbm5lbHMgPSBNVDc5OTZfTUFYX1JBRElPUyAtIDEsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtNDQtXHQucmFkYXJfZGV0ZWN0X3dpZHRocyA9IEJJVChOTDgwMjExX0NIQU5fV0lEVEhfMjBfTk9IVCkgfFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYz01MT1zdGF0aWMgY29uc3Qgc3RydWN0IGllZWU4MDIxMV9pZmFjZV9saW1pdCBpZl9saW1pdHNbXSA9IHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtNTgtXHR9LCB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM6NTk6XHRcdC5tYXggPSBNVDc5OTZfTUFYX0lOVEVSRkFDRVMsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtNjAtXHRcdC50eXBlcyA9IEJJVChOTDgwMjExX0lGVFlQRV9TVEFUSU9OKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYz02ND1zdGF0aWMgY29uc3Qgc3RydWN0IGllZWU4MDIxMV9pZmFjZV9jb21iaW5hdGlvbiBpZl9jb21iID0ge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy02Ni1cdC5uX2xpbWl0cyA9IEFSUkFZX1NJWkUoaWZfbGltaXRzKSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYzo2NzpcdC5tYXhfaW50ZXJmYWNlcyA9IE1UNzk5Nl9NQVhfSU5URVJGQUNFUyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy02OC1cdC5udW1fZGlmZmVyZW50X2NoYW5uZWxzID0gMSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM9ODQ9c3RhdGljIGNvbnN0IHN0cnVjdCB3aXBoeV9pZnR5cGVfZXh0X2NhcGFiIGlmdHlwZXNfZXh0X2NhcGFbXSA9IHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtOTItXHRcdFx0RklFTERfUFJFUF9DT05TVChJRUVFODAyMTFfTUxEX0NBUF9PUF9NQVhfU0lNVUxfTElOS1MsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM6OTM6XHRcdFx0XHRcdCBNVDc5OTZfTUFYX1JBRElPUyAtIDEpLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTk0LVx0fSwge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy0xMDEtXHRcdFx0RklFTERfUFJFUF9DT05TVChJRUVFODAyMTFfTUxEX0NBUF9PUF9NQVhfU0lNVUxfTElOS1MsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM6MTAyOlx0XHRcdFx0XHQgTVQ3OTk2X01BWF9SQURJT1MgLSAxKSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy0xMDMtXHR9LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYz0xMzI9c3RhdGljIHNzaXplX3QgbXQ3OTk2X3RoZXJtYWxfdGVtcF9zdG9yZShzdHJ1Y3QgZGV2aWNlICpkZXYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTE0Ny1cdC8qIGFkZCBhIHNhZmV0eSBtYXJnaW4gfjEwICovXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM6MTQ4Olx0aWYgKChpIC0gMSA9PSBNVDc5OTZfQ1JJVF9URU1QX0lEWCBcdTAwMjZcdTAwMjZcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYzoxNDk6XHQgICAgIHZhbCBcdTAwM2UgcGh5LVx1MDAzZXRocm90dGxlX3RlbXBbTVQ3OTk2X01BWF9URU1QX0lEWF0gLSAxMCkgfHxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYzoxNTA6XHQgICAgKGkgLSAxID09IE1UNzk5Nl9NQVhfVEVNUF9JRFggXHUwMDI2XHUwMDI2XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM6MTUxOlx0ICAgICB2YWwgLSAxMCBcdTAwM2MgcGh5LVx1MDAzZXRocm90dGxlX3RlbXBbTVQ3OTk2X0NSSVRfVEVNUF9JRFhdKSkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTE1Mi1cdFx0ZGV2X2VycihwaHktXHUwMDNlZGV2LVx1MDAzZW10NzYuZGV2LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYz0xODM9bXQ3OTk2X3RoZXJtYWxfZ2V0X21heF90aHJvdHRsZV9zdGF0ZShzdHJ1Y3QgdGhlcm1hbF9jb29saW5nX2RldmljZSAqY2Rldixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtMTg1LXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYzoxODY6XHQqc3RhdGUgPSBNVDc5OTZfQ0RFVl9USFJPVFRMRV9NQVg7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtMTg3LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYz0yMDM9bXQ3OTk2X3RoZXJtYWxfc2V0X2N1cl90aHJvdHRsZV9zdGF0ZShzdHJ1Y3QgdGhlcm1hbF9jb29saW5nX2RldmljZSAqY2Rldixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtMjA2LVx0c3RydWN0IG10Nzk5Nl9waHkgKnBoeSA9IGNkZXYtXHUwMDNlZGV2ZGF0YTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYzoyMDc6XHR1OCB0aHJvdHRsaW5nID0gTVQ3OTk2X1RIRVJNQUxfVEhST1RUTEVfTUFYIC0gc3RhdGU7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtMjA4LVx0aW50IHJldDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy0yMDktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM6MjEwOlx0aWYgKHN0YXRlIFx1MDAzZSBNVDc5OTZfQ0RFVl9USFJPVFRMRV9NQVgpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy0yMTEtXHRcdGRldl9lcnIocGh5LVx1MDAzZWRldi1cdTAwM2VtdDc2LmRldixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM9MjUwPXN0YXRpYyBpbnQgbXQ3OTk2X3RoZXJtYWxfaW5pdChzdHJ1Y3QgbXQ3OTk2X3BoeSAqcGh5KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy0yNzQtXHQvKiBpbml0aWFsaXplIGNyaXRpY2FsL21heGltdW0gaGlnaCB0ZW1wZXJhdHVyZSAqL1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jOjI3NTpcdHBoeS1cdTAwM2V0aHJvdHRsZV90ZW1wW01UNzk5Nl9DUklUX1RFTVBfSURYXSA9IE1UNzk5Nl9DUklUX1RFTVA7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM6Mjc2Olx0cGh5LVx1MDAzZXRocm90dGxlX3RlbXBbTVQ3OTk2X01BWF9URU1QX0lEWF0gPSBNVDc5OTZfTUFYX1RFTVA7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtMjc3LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYz02MDM9c3RhdGljIHZvaWQgbXQ3OTk2X21hY19pbml0X2Jhc2ljX3JhdGVzKHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTYwOS1cdFx0Lyogb2RkIGluZGV4IGZvciBkcml2ZXIsIGV2ZW4gaW5kZXggZm9yIGZpcm13YXJlICovXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM6NjEwOlx0XHR1MTYgaWR4ID0gTVQ3OTk2X0JBU0lDX1JBVEVTX1RCTCAmIzQzOyAyICogaTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy02MTEtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jPTY5MD1zdGF0aWMgaW50IG10Nzk5Nl9yZWdpc3Rlcl9waHkoc3RydWN0IG10Nzk5Nl9kZXYgKmRldiwgZW51bSBtdDc2X2JhbmRfaWQgYmFuZClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtNzUzLVx0XHRcdCAgIG10NzZfbnB1X2RldmljZV9hY3RpdmUoXHUwMDI2ZGV2LVx1MDAzZW10NzYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM6NzU0Olx0XHRcdCAgID8gTVQ3OTk2X05QVV9UWF9SSU5HX1NJWkUgLyAyIDogTVQ3OTk2X1RYX1JJTkdfU0laRTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy03NTUtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jPTgzMz1zdGF0aWMgdm9pZCBtdDc5OTZfcnJvX2h3X2luaXRfdjMoc3RydWN0IG10Nzk5Nl9kZXYgKmRldilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtODQzLVx0XHR3ZWQtXHUwMDNld2xhbi5pbmRfY21kLndpbl9zaXplID1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYzo4NDQ6XHRcdFx0ZmZzKE1UNzk5Nl9SUk9fV0lORE9XX01BWF9MRU4pIC0gNjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy04NDUtXHRcdGlmIChpc19tdDc5OTYoXHUwMDI2ZGV2LVx1MDAzZW10NzYpKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTg0Ni1cdFx0XHR3ZWQtXHUwMDNld2xhbi5pbmRfY21kLnBhcnRpY3VsYXJfc2lkID1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYzo4NDc6XHRcdFx0XHRNVDc5OTZfUlJPX01BWF9TRVNTSU9OO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTg0OC1cdFx0ZWxzZVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy04NTEtXHRcdFx0ZGV2LVx1MDAzZXdlZF9ycm8uc2Vzc2lvbi5waHlfYWRkcjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYzo4NTI6XHRcdHdlZC1cdTAwM2V3bGFuLmluZF9jbWQuc2VfZ3JvdXBfbnVtcyA9IE1UNzk5Nl9SUk9fQUREUl9FTEVNX0xFTjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy04NTMtXHRcdHdlZC1cdTAwM2V3bGFuLmluZF9jbWQuYWNrX3NuX2FkZHIgPSBNVF9SUk9fQUNLX1NOX0NUUkw7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTg2OS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYzo4NzA6XHRzZXNzaW9uX2lkID0gaXNfbXQ3OTk2KFx1MDAyNmRldi1cdTAwM2VtdDc2KSA/IE1UNzk5Nl9SUk9fTUFYX1NFU1NJT04gOiAxO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTg3MS1cdG10NzZfd3IoZGV2LCBNVF9SUk9fUEFSVElDVUxBUl9DRkcxLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYz05NTc9c3RhdGljIGludCBtdDc5OTZfd2VkX3Jyb19pbml0KHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTk2OS1cdFx0XHRwdHIgPSBkbWFtX2FsbG9jX2NvaGVyZW50KGRldi1cdTAwM2VtdDc2LmRtYV9kZXYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM6OTcwOlx0XHRcdFx0XHRcdCAgTVQ3OTk2X1JST19CQV9CSVRNQVBfQ1JfU0laRSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy05NzEtXHRcdFx0XHRcdFx0ICBcdTAwMjZkZXYtXHUwMDNld2VkX3Jyby5iYV9iaXRtYXBbaV0ucGh5X2FkZHIsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTk4My1cdFx0cHRyID0gZG1hbV9hbGxvY19jb2hlcmVudChkZXYtXHUwMDNlbXQ3Ni5kbWFfZGV2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jOjk4NDpcdFx0XHRcdE1UNzk5Nl9SUk9fV0lORE9XX01BWF9TSVpFICogc2l6ZW9mKCphZGRyKSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy05ODUtXHRcdFx0XHRcdTAwMjZkZXYtXHUwMDNld2VkX3Jyby5hZGRyX2VsZW1baV0ucGh5X2FkZHIsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTk5MS1cdFx0bWVtc2V0KGRldi1cdTAwM2V3ZWRfcnJvLmFkZHJfZWxlbVtpXS5wdHIsIDAsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM6OTkyOlx0XHQgICAgICAgTVQ3OTk2X1JST19XSU5ET1dfTUFYX1NJWkUgKiBzaXplb2YoKmFkZHIpKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy05OTMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtOTk0LVx0XHRhZGRyID0gZGV2LVx1MDAzZXdlZF9ycm8uYWRkcl9lbGVtW2ldLnB0cjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYzo5OTU6XHRcdGZvciAoaiA9IDA7IGogXHUwMDNjIE1UNzk5Nl9SUk9fV0lORE9XX01BWF9TSVpFOyBqJiM0MzsmIzQzOykge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTk5Ni1cdFx0XHRhZGRyLVx1MDAzZWRhdGEgPSBjcHVfdG9fbGUzMih2YWwpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy0xMDE4LVx0XHRwdHIgPSBkbWFtX2FsbG9jX2NvaGVyZW50KGRldi1cdTAwM2VtdDc2LmRtYV9kZXYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM6MTAxOTpcdFx0XHRcdFx0ICBNVDc5OTZfUlJPX01TRFVfUEdfU0laRV9QRVJfQ1IsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtMTAyMC1cdFx0XHRcdFx0ICBcdTAwMjZkZXYtXHUwMDNld2VkX3Jyby5tc2R1X3BnW2ldLnBoeV9hZGRyLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy0xMDI3LVx0XHRtZW1zZXQoZGV2LVx1MDAzZXdlZF9ycm8ubXNkdV9wZ1tpXS5wdHIsIDAsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM6MTAyODpcdFx0ICAgICAgIE1UNzk5Nl9SUk9fTVNEVV9QR19TSVpFX1BFUl9DUik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtMTAyOS1cdH1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtMTA1Mi1cdHB0ciA9IGRtYW1fYWxsb2NfY29oZXJlbnQoZGV2LVx1MDAzZW10NzYuZG1hX2RldixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYzoxMDUzOlx0XHRcdFx0ICBNVDc5OTZfUlJPX1dJTkRPV19NQVhfTEVOICogc2l6ZW9mKCphZGRyKSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy0xMDU0LVx0XHRcdFx0ICBcdTAwMjZkZXYtXHUwMDNld2VkX3Jyby5zZXNzaW9uLnBoeV9hZGRyLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy0xMDYwLVx0YWRkciA9IGRldi1cdTAwM2V3ZWRfcnJvLnNlc3Npb24ucHRyO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jOjEwNjE6XHRmb3IgKGkgPSAwOyBpIFx1MDAzYyBNVDc5OTZfUlJPX1dJTkRPV19NQVhfTEVOOyBpJiM0MzsmIzQzOykge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTEwNjItXHRcdGFkZHItXHUwMDNlZGF0YSA9IGNwdV90b19sZTMyKHZhbCk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jPTEwNzU9c3RhdGljIHZvaWQgbXQ3OTk2X3dlZF9ycm9fZnJlZShzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy0xMDg2LVx0XHRkbWFtX2ZyZWVfY29oZXJlbnQoZGV2LVx1MDAzZW10NzYuZG1hX2RldixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYzoxMDg3Olx0XHRcdFx0ICAgTVQ3OTk2X1JST19CQV9CSVRNQVBfQ1JfU0laRSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy0xMDg4LVx0XHRcdFx0ICAgZGV2LVx1MDAzZXdlZF9ycm8uYmFfYml0bWFwW2ldLnB0cixcbi0tXG5cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD43LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8xMSAwNjozMjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuNy1mbGFzaDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzOTIyMAoJCQkJCQkJb3V0cHV0OiAzNgoJCQkJCQkJdGhvdWdodHM6IDg1CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkludmVzdGlnYXRpbmcgdGhlIE1UNzk5NiBEcml2ZXIqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGludG8gdGhlIGBkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9gIGRpcmVjdG9yeS4gUmlnaHQsIHRoaXMgcG9pbnRzIHRvIHRoZSBQQ0llIGRyaXZlciBmb3IgdGhlIE1UNzk5NkUgd2lyZWxlc3MgZGV2aWNlLiBOb3csIG15IGltbWVkaWF0ZSBxdWVzdGlvbiBpcywgYmV5b25kIHRoZSBQQ0llIGNvbm5lY3Rpb24sIGRvZXMgdGhpcyBkcml2ZXIgc3VwcG9ydCBhbnkgb3RoZXIgaW50ZXJmYWNlcz8gU3BlY2lmaWNhbGx5LCBJJiMzOTttIHdvbmRlcmluZyBpZiB0aGVyZSYjMzk7cyBhIFVTQiBpbXBsZW1lbnRhdGlvbiBvciBhbnkgdmlydHVhbCBpbnRlcmZhY2UgcG9zc2liaWxpdGllcyBiYWtlZCBpbi4gSXQmIzM5O3Mgbm90IGltbWVkaWF0ZWx5IG9idmlvdXMganVzdCBmcm9tIHRoZSBkcml2ZXImIzM5O3MgbG9jYXRpb24uCgpTbywgdGhlIG5leHQgbG9naWNhbCBzdGVwIGlzIHRvIGRpdmUgaW50byB0aGUgZmlsZSBzdHJ1Y3R1cmUgb2YgYGRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2AgaXRzZWxmLiBJIG5lZWQgdG8gcG9rZSBhcm91bmQgYW5kIHNlZSB3aGF0IHRoZSBjb2RlIHJldmVhbHMuIFRpbWUgdG8gc2VlIHdoYXQgd2UmIzM5O3JlIGFjdHVhbGx5IHdvcmtpbmcgd2l0aC4gTGV0JiMzOTtzIHNlZSB3aGF0IHdlIGNhbiBkaWcgdXAuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OC8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMTEgMDY6MzI8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5jb2Rlc2VhcmNoLWRpci1pbmRleDwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RGlyJiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RmlsZXMmIzM0OzogWwogICAgJiMzNDtjb3JlZHVtcC5jJiMzNDssCiAgICAmIzM0O2NvcmVkdW1wLmgmIzM0OywKICAgICYjMzQ7ZGVidWdmcy5jJiMzNDssCiAgICAmIzM0O2RtYS5jJiMzNDssCiAgICAmIzM0O2VlcHJvbS5jJiMzNDssCiAgICAmIzM0O2VlcHJvbS5oJiMzNDssCiAgICAmIzM0O2luaXQuYyYjMzQ7LAogICAgJiMzNDttYWMuYyYjMzQ7LAogICAgJiMzNDttYWMuaCYjMzQ7LAogICAgJiMzNDttYWluLmMmIzM0OywKICAgICYjMzQ7bWN1LmMmIzM0OywKICAgICYjMzQ7bWN1LmgmIzM0OywKICAgICYjMzQ7bW1pby5jJiMzNDssCiAgICAmIzM0O210Nzk5Ni5oJiMzNDssCiAgICAmIzM0O25wdS5jJiMzNDssCiAgICAmIzM0O3BjaS5jJiMzNDssCiAgICAmIzM0O3JlZ3MuaCYjMzQ7CiAgXSwKICAmIzM0O1N1YmRpcnMmIzM0OzogbnVsbAp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OS8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMTEgMDY6MzI8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjctZmxhc2g8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzk2NjEKCQkJCQkJCW91dHB1dDogNDcKCQkJCQkJCXRob3VnaHRzOiAyMAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+SGVyZSYjMzk7cyBteSB0YWtlIG9uIHRoZSBwcm9jZXNzLCBmcmFtZWQgYXMgYSB0aG91Z2h0IHByb2Nlc3M6CgoqKkRpdmluZyBpbnRvIFBDSSBTdXBwb3J0KioKCk9rYXksIHNvIEkgbmVlZCB0byBnZXQgYSBoYW5kbGUgb24gdGhlIFBDSSBzdXBwb3J0LCBzcGVjaWZpY2FsbHkgdGhlIGJ1cyB0eXBlcy4gTXkgaW5pdGlhbCBodW5jaCBpcyB0aGF0IGBwY2kuY2AgYW5kIGBLY29uZmlnYCBhcmUgdGhlIHBsYWNlcyB0byBzdGFydC4gYHBjaS5jYCBpcyB0aGUgb2J2aW91cyBsb2NhdGlvbiBmb3IgdGhlIGNvcmUgUENJIGRyaXZlciBjb2RlLCBzbyBpdCYjMzk7bGwgcHJvYmFibHkgZGVmaW5lIHRoZSBhY3R1YWwgYnVzIHR5cGUgZW51bWVyYXRpb24sIHN0cnVjdHVyZXMsIGFuZCBwb3RlbnRpYWxseSBoYXZlIHNvbWUgaW5pdGlhbGl6YXRpb24gbG9naWMgcmVsYXRlZCB0byBidXMgdHlwZSBkZXRlY3Rpb24uCgpUaGVuLCBgS2NvbmZpZ2DigKYgdGhhdCYjMzk7cyB3aGVyZSB0aGUgY29uZmlndXJhdGlvbiBvcHRpb25zIGxpdmUuIEkmIzM5O2xsIG5lZWQgdG8gc2VlIHdoYXQgY29uZmlndXJhdGlvbiBzeW1ib2xzIGNvbnRyb2wgd2hpY2ggYnVzIHR5cGVzIGFyZSBjb21waWxlZCBpbi4gQXJlIHRoZXJlIHNlcGFyYXRlIG9wdGlvbnMgZm9yIFBDSSwgUENJZSwgUENJLVgsIG9yIGFyZSB0aGV5IGhhbmRsZWQgbW9yZSBnZW5lcmFsbHk/IEFyZSB0aGVyZSBmaW5lLWdyYWluZWQgY2hvaWNlcywgb3IgaXMgaXQgYSBtb3JlIGJyb2FkLCBpbmNsdXNpdmUgYXBwcm9hY2g/IFRoaXMgYWxzbyBnaXZlcyBtZSBpbnNpZ2h0IGludG8gdGhlIGRlZmF1bHQgYmVoYXZpb3IgZm9yIGRpZmZlcmVudCBhcmNoaXRlY3R1cmVzIGFuZCBob3cgd2UgZW5hYmxlL2Rpc2FibGUgY2VydGFpbiBmZWF0dXJlcyByZWxhdGVkIHRvIGJ1cyBzdXBwb3J0LiBJJiMzOTtsbCBiZSBsb29raW5nIGZvciBkZXBlbmRlbmNpZXMsIGRlZmF1bHQgdmFsdWVzLCBhbmQgYW55IHJlbGF0aW9uc2hpcHMgYmV0d2VlbiB0aGUgYnVzIHR5cGUgb3B0aW9ucy4gVGltZSB0byBkaWcgaW4gYW5kIGNvbmZpcm0gbXkgYXNzdW1wdGlvbnMsIG9yIGRpc2NvdmVyIHdoZXJlIG15IGluaXRpYWwgdW5kZXJzdGFuZGluZyBpcyBpbmNvbXBsZXRlIQoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8xMSAwNjozMjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnJlYWQtZmlsZTwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RmlsZSYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L0tjb25maWcmIzM0OywKICAmIzM0O0ZpcnN0TGluZSYjMzQ7OiAxLAogICYjMzQ7TGluZUNvdW50JiMzNDs6IDMwCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtDb250ZW50cyYjMzQ7OiAmIzM0OyAgIDE6XHQjIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMy1DbGF1c2UtQ2xlYXJcbiAgIDI6XHRjb25maWcgTVQ3OTk2RVxuICAgMzpcdFx0dHJpc3RhdGUgXCYjMzQ7TWVkaWFUZWsgTVQ3OTk2IChQQ0llKSBzdXBwb3J0XCYjMzQ7XG4gICA0Olx0XHRzZWxlY3QgTVQ3Nl9DT05OQUNfTElCXG4gICA1Olx0XHRzZWxlY3QgV0FOVF9ERVZfQ09SRURVTVBcbiAgIDY6XHRcdHNlbGVjdCBSRUxBWVxuICAgNzpcdFx0ZGVwZW5kcyBvbiBNQUM4MDIxMVxuICAgODpcdFx0ZGVwZW5kcyBvbiBQQ0lcbiAgIDk6XHRcdGhlbHBcbiAgMTA6XHRcdCAgVGhpcyBhZGRzIHN1cHBvcnQgZm9yIE1UNzk5Ni1iYXNlZCBQQ0llIHdpcmVsZXNzIGRldmljZXMsXG4gIDExOlx0XHQgIHdoaWNoIHN1cHBvcnQgY29uY3VycmVudCB0cmktYmFuZCBvcGVyYXRpb24gYXQgNkdIeiwgNUdIeixcbiAgMTI6XHRcdCAgYW5kIDIuNEdIeiBJRUVFIDgwMi4xMWJlIDR4NDo0U1MgNDA5Ni1RQU0sIDMyME1IeiBjaGFubmVscy5cbiAgMTM6XHRcbiAgMTQ6XHRcdCAgVG8gY29tcGlsZSB0aGlzIGRyaXZlciBhcyBhIG1vZHVsZSwgY2hvb3NlIE0gaGVyZS5cbiAgMTU6XHRcbiAgMTY6XHRjb25maWcgTVQ3OTk2X05QVVxuICAxNzpcdFx0Ym9vbCBcJiMzNDtNVDc5OTYgKFBDSWUpIE5QVSBzdXBwb3J0XCYjMzQ7XG4gIDE4Olx0XHRkZXBlbmRzIG9uIE1UNzk5NkVcbiAgMTk6XHRcdGRlcGVuZHMgb24gTkVUX0FJUk9IQV9OUFU9eSB8fCBNVDc2X0NPUkU9TkVUX0FJUk9IQV9OUFVcbiAgMjA6XHRcdHNlbGVjdCBNVDc2X05QVVxuICAyMTpcdFx0ZGVmYXVsdCBuXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTEvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzExIDA2OjMyPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy43LWZsYXNoPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDQwMzI0CgkJCQkJCQlvdXRwdXQ6IDUwCgkJCQkJCQl0aG91Z2h0czogNjUKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqTXkgSW5pdGlhbCBBc3Nlc3NtZW50IG9mIE1UNzk5NkUqKgoKQWxyaWdodCwgbGV0JiMzOTtzIHRha2UgYSBsb29rIGF0IHRoaXMgYE1UNzk5NkVgLiBCYXNlZCBvbiB3aGF0IEkmIzM5O20gc2VlaW5nLCB0aGlzIGlzIGEgUENJZS1jZW50cmljIGJlYXN0LCBwdXJlbHkgZHJpdmVuIGJ5IHRoZSBgUENJYCBidXMuIFRoZSBjb3JlIG9mIHRoaXMgc2VlbXMgdG8gYmUgY2VudGVyZWQgYXJvdW5kIGRyaXZlcnMgbGlrZSBgcGNpLmNgIGFuZCBgbW1pby5jYCwgd2hpY2ggbWFrZXMgc2Vuc2UgZm9yIFBDSWUgaW50ZXJhY3Rpb25zLiAKCk5vdywgYmVmb3JlIEkgZGlnIHRvbyBkZWVwLCBteSBpbml0aWFsIHRob3VnaHQgaXMgdG8gcXVpY2tseSBydWxlIG91dCBhbnkgZXh0cmFuZW91cyBjb25uZWN0aW9ucy4gSSBuZWVkIHRvIGNvbmZpcm0gdGhpcyBpcyBzb2xlbHkgZm9jdXNlZCBvbiBQQ0llLiBTbywgbGV0JiMzOTtzIGp1c3QgZG8gYSBxdWljayBzY2FuIHRvIHNlZSBpZiB0aGVyZSBhcmUgYW55IFVTQiBvciB2aXJ0dWFsIGRldmljZSBob29rcyBhc3NvY2lhdGVkIHdpdGggYG10Nzk5NmAuIEkmIzM5O20gZXNwZWNpYWxseSBpbnRlcmVzdGVkIGluIGNvbmZpcm1pbmcgd2hldGhlciBpdHMgZGlyZWN0IGRlcGVuZGVuY2llcyBvbiBQQ0kgYXJlIGV4Y2x1c2l2ZSBvZiBhbnkgb3RoZXJzLgoKT2theSwgZmlyc3Qgc3RvcCwgSSYjMzk7bSBnb2luZyB0byBzdGFydCB3aXRoIGEgZGVlcCBkaXZlIGludG8gYHBjaS5jYC4gVGhhdCYjMzk7cyB3aGVyZSBJIG5lZWQgdG8gZm9jdXMgbXkgYXR0ZW50aW9uLiBJdCYjMzk7cyB0aGUgbHluY2hwaW4gaGVyZSwgc28gbGV0JiMzOTtzIHNlZSB3aGF0JiMzOTtzIHdoYXQuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTIvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzExIDA2OjMyPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+cmVhZC1maWxlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtGaWxlJiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvcGNpLmMmIzM0OywKICAmIzM0O0ZpcnN0TGluZSYjMzQ7OiAxLAogICYjMzQ7TGluZUNvdW50JiMzNDs6IDEwMAp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7Q29udGVudHMmIzM0OzogJiMzNDsgICAxOlx0Ly8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0zLUNsYXVzZS1DbGVhclxuICAgMjpcdC8qXG4gICAzOlx0ICogQ29weXJpZ2h0IChDKSAyMDIyIE1lZGlhVGVrIEluYy5cbiAgIDQ6XHQgKi9cbiAgIDU6XHRcbiAgIDY6XHQjaW5jbHVkZSBcdTAwM2NsaW51eC9rZXJuZWwuaFx1MDAzZVxuICAgNzpcdCNpbmNsdWRlIFx1MDAzY2xpbnV4L21vZHVsZS5oXHUwMDNlXG4gICA4Olx0I2luY2x1ZGUgXHUwMDNjbGludXgvcGNpLmhcdTAwM2VcbiAgIDk6XHRcbiAgMTA6XHQjaW5jbHVkZSBcJiMzNDttdDc5OTYuaFwmIzM0O1xuICAxMTpcdCNpbmNsdWRlIFwmIzM0O21hYy5oXCYjMzQ7XG4gIDEyOlx0I2luY2x1ZGUgXCYjMzQ7Li4vdHJhY2UuaFwmIzM0O1xuICAxMzpcdFxuICAxNDpcdHN0YXRpYyBMSVNUX0hFQUQoaGlmX2xpc3QpO1xuICAxNTpcdHN0YXRpYyBERUZJTkVfU1BJTkxPQ0soaGlmX2xvY2spO1xuICAxNjpcdHN0YXRpYyB1MzIgaGlmX2lkeDtcbiAgMTc6XHRcbiAgMTg6XHRzdGF0aWMgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgbXQ3OTk2X3BjaV9kZXZpY2VfdGFibGVbXSA9IHtcbiAgMTk6XHRcdHsgUENJX0RFVklDRShQQ0lfVkVORE9SX0lEX01FRElBVEVLLCBNVDc5OTZfREVWSUNFX0lEKSB9LFxuICAyMDpcdFx0eyBQQ0lfREVWSUNFKFBDSV9WRU5ET1JfSURfTUVESUFURUssIE1UNzk5Ml9ERVZJQ0VfSUQpIH0sXG4gIDIxOlx0XHR7IFBDSV9ERVZJQ0UoUENJX1ZFTkRPUl9JRF9NRURJQVRFSywgTVQ3OTkwX0RFVklDRV9JRCkgfSxcbiAgMjI6XHRcdHsgfSxcbiAgMjM6XHR9O1xuICAyNDpcdFxuICAyNTpcdHN0YXRpYyBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCBtdDc5OTZfaGlmX2RldmljZV90YWJsZVtdID0ge1xuICAyNjpcdFx0eyBQQ0lfREVWSUNFKFBDSV9WRU5ET1JfSURfTUVESUFURUssIE1UNzk5Nl9ERVZJQ0VfSURfMikgfSxcbiAgMjc6XHRcdHsgUENJX0RFVklDRShQQ0lfVkVORE9SX0lEX01FRElBVEVLLCBNVDc5OTJfREVWSUNFX0lEXzIpIH0sXG4gIDI4Olx0XHR7IFBDSV9ERVZJQ0UoUENJX1ZFTkRPUl9JRF9NRURJQVRFSywgTVQ3OTkwX0RFVklDRV9JRF8yKSB9LFxuICAyOTpcdFx0eyB9LFxuICAzMDpcdH07XG4gIDMxOlx0XG4gIDMyOlx0c3RhdGljIHN0cnVjdCBtdDc5OTZfaGlmICptdDc5OTZfcGNpX2dldF9oaWYyKHUzMiBpZHgpXG4gIDMzOlx0e1xuICAzNDpcdFx0c3RydWN0IG10Nzk5Nl9oaWYgKmhpZjtcbiAgMzU6XHRcdHUzMiB2YWw7XG4gIDM2Olx0XG4gIDM3Olx0XHRzcGluX2xvY2tfYmgoXHUwMDI2aGlmX2xvY2spO1xuICAzODpcdFxuICAzOTpcdFx0bGlzdF9mb3JfZWFjaF9lbnRyeShoaWYsIFx1MDAyNmhpZl9saXN0LCBsaXN0KSB7XG4gIDQwOlx0XHRcdHZhbCA9IHJlYWRsKGhpZi1cdTAwM2VyZWdzICYjNDM7IE1UX1BDSUVfUkVDT0dfSUQpO1xuICA0MTpcdFx0XHR2YWwgXHUwMDI2PSBNVF9QQ0lFX1JFQ09HX0lEX01BU0s7XG4gIDQyOlx0XHRcdGlmICh2YWwgIT0gaWR4KVxuICA0MzpcdFx0XHRcdGNvbnRpbnVlO1xuICA0NDpcdFxuICA0NTpcdFx0XHRnZXRfZGV2aWNlKGhpZi1cdTAwM2VkZXYpO1xuICA0NjpcdFx0XHRnb3RvIG91dDtcbiAgNDc6XHRcdH1cbiAgNDg6XHRcdGhpZiA9IE5VTEw7XG4gIDQ5Olx0XG4gIDUwOlx0b3V0OlxuICA1MTpcdFx0c3Bpbl91bmxvY2tfYmgoXHUwMDI2aGlmX2xvY2spO1xuICA1MjpcdFxuICA1MzpcdFx0cmV0dXJuIGhpZjtcbiAgNTQ6XHR9XG4gIDU1Olx0XG4gIDU2Olx0c3RhdGljIHZvaWQgbXQ3OTk2X3B1dF9oaWYyKHN0cnVjdCBtdDc5OTZfaGlmICpoaWYpXG4gIDU3Olx0e1xuICA1ODpcdFx0aWYgKCFoaWYpXG4gIDU5Olx0XHRcdHJldHVybjtcbiAgNjA6XHRcbiAgNjE6XHRcdHB1dF9kZXZpY2UoaGlmLVx1MDAzZWRldik7XG4gIDYyOlx0fVxuICA2MzpcdFxuICA2NDpcdHN0YXRpYyBzdHJ1Y3QgbXQ3OTk2X2hpZiAqbXQ3OTk2X3BjaV9pbml0X2hpZjIoc3RydWN0IHBjaV9kZXYgKnBkZXYpXG4gIDY1Olx0e1xuICA2NjpcdFx0aGlmX2lkeCYjNDM7JiM0Mzs7XG4gIDY3Olx0XG4gIDY4Olx0XHRpZiAoIXBjaV9nZXRfZGV2aWNlKFBDSV9WRU5ET1JfSURfTUVESUFURUssIE1UNzk5Nl9ERVZJQ0VfSURfMiwgTlVMTCkgXHUwMDI2XHUwMDI2XG4gIDY5Olx0XHQgICAgIXBjaV9nZXRfZGV2aWNlKFBDSV9WRU5ET1JfSURfTUVESUFURUssIE1UNzk5Ml9ERVZJQ0VfSURfMiwgTlVMTCkgXHUwMDI2XHUwMDI2XG4gIDcwOlx0XHQgICAgIXBjaV9nZXRfZGV2aWNlKFBDSV9WRU5ET1JfSURfTUVESUFURUssIE1UNzk5MF9ERVZJQ0VfSURfMiwgTlVMTCkpXG4gIDcxOlx0XHRcdHJldHVybiBOVUxMO1xuICA3MjpcdFxuICA3MzpcdFx0d3JpdGVsKGhpZl9pZHggfCBNVF9QQ0lFX1JFQ09HX0lEX1NFTSxcbiAgNzQ6XHRcdCAgICAgICBwY2ltX2lvbWFwX3RhYmxlKHBkZXYpWzBdICYjNDM7IE1UX1BDSUVfUkVDT0dfSUQpO1xuICA3NTpcdFxuICA3NjpcdFx0cmV0dXJuIG10Nzk5Nl9wY2lfZ2V0X2hpZjIoaGlmX2lkeCk7XG4gIDc3Olx0fVxuICA3ODpcdFxuICA3OTpcdHN0YXRpYyBpbnQgbXQ3OTk2X3BjaV9oaWYyX3Byb2JlKHN0cnVjdCBwY2lfZGV2ICpwZGV2KVxuICA4MDpcdHtcbiAgODE6XHRcdHN0cnVjdCBtdDc5OTZfaGlmICpoaWY7XG4gIDgyOlx0XG4gIDgzOlx0XHRoaWYgPSBkZXZtX2t6YWxsb2MoXHUwMDI2cGRldi1cdTAwM2VkZXYsIHNpemVvZigqaGlmKSwgR0ZQX0tFUk5FTCk7XG4gIDg0Olx0XHRpZiAoIWhpZilcbiAgODU6XHRcdFx0cmV0dXJuIC1FTk9NRU07XG4gIDg2Olx0XG4gIDg3Olx0XHRoaWYtXHUwMDNlZGV2ID0gXHUwMDI2cGRldi1cdTAwM2VkZXY7XG4gIDg4Olx0XHRoaWYtXHUwMDNlcmVncyA9IHBjaW1faW9tYXBfdGFibGUocGRldilbMF07XG4gIDg5Olx0XHRoaWYtXHUwMDNlaXJxID0gcGRldi1cdTAwM2VpcnE7XG4gIDkwOlx0XHRwY2llX2JhbmR3aWR0aF9hdmFpbGFibGUocGRldiwgTlVMTCwgXHUwMDI2aGlmLVx1MDAzZXNwZWVkLCBcdTAwMjZoaWYtXHUwMDNld2lkdGgpO1xuICA5MTpcdFx0c3Bpbl9sb2NrX2JoKFx1MDAyNmhpZl9sb2NrKTtcbiAgOTI6XHRcdGxpc3RfYWRkKFx1MDAyNmhpZi1cdTAwM2VsaXN0LCBcdTAwMjZoaWZfbGlzdCk7XG4gIDkzOlx0XHRzcGluX3VubG9ja19iaChcdTAwMjZoaWZfbG9jayk7XG4gIDk0Olx0XHRwY2lfc2V0X2RydmRhdGEocGRldiwgaGlmKTtcbiAgOTU6XHRcbiAgOTY6XHRcdHJldHVybiAwO1xuICA5NzpcdH1cbiAgOTg6XHRcbiAgOTk6XHRzdGF0aWMgaW50IG10Nzk5Nl9wY2lfcHJvYmUoc3RydWN0IHBjaV9kZXYgKnBkZXYsXG4gMTAwOlx0XHRcdFx0ICAgIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICppZClcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMy8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMTEgMDY6MzI8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjctZmxhc2g8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNDIyNDUKCQkJCQkJCW91dHB1dDogNDAKCQkJCQkJCXRob3VnaHRzOiAyMzUKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqTXkgQXNzZXNzbWVudCBvZiBNVDc5OTYgRW11bGF0aW9uIEZlYXNpYmlsaXR5KioKCk9rYXksIGxldCYjMzk7cyBicmVhayB0aGlzIGRvd24gc3lzdGVtYXRpY2FsbHkuIE15IGluaXRpYWwgdGhvdWdodCBpcyB0byBtYWtlIHN1cmUgSSB1bmRlcnN0YW5kIHRoZSBzY29wZSBvZiB0aGUgcHJvYmxlbS4gU2VjdGlvbiAyIG9mIHRoZSBpbnN0cnVjdGlvbnMgaGlnaGxpZ2h0cyB0aGUgcG90ZW50aWFsIGZvciAmIzM0O3N0cnVjdHVyYWxseSB1bnJlYWNoYWJsZSBoYXJkd2FyZSwmIzM0OyBzcGVjaWZpY2FsbHkgdmVuZG9yLXNwZWNpZmljIGNvbXBvbmVudHMgbGlrZSBQQ0llIHN3aXRjaGVzLCBTbWFydE5JQ3MsIG9yIEdQVSBkcml2ZXJzLiBJIG5lZWQgdG8ga2VlcCB0aGlzIGluIG1pbmQgYXMgSSBhc3Nlc3MgdGhlIE1UNzk5Ni4KCk5vdywgZm9jdXNpbmcgb24gdGhlIGNvcmUgcXVlc3Rpb246IGNhbiBJIHNpbXVsYXRlIG9yIHJlYWNoIHRoZSBNVDc5OTYsIGEgTWVkaWFUZWsgV2lGaSA3IFBDSWUgTklDICh3aGljaCBjb3VsZCBiZSBhbiBNVDc5OTYsIE1UNzk5Miwgb3IgTVQ3OTkwKSwgd2l0aGluIGEgUUVNVSBlbnZpcm9ubWVudCwgb3IgdGhyb3VnaCBhbHRlcm5hdGl2ZSBtZXRob2RzIGxpa2UgVVNCLCBtYWM4MDIxMV9od3NpbSwgb3Igc29tZXRoaW5nIHNpbWlsYXI/CgpGaXJzdCwgSSYjMzk7bGwgY29uZmlybSB0aGUgb2J2aW91czogUUVNVSBkb2VzbiYjMzk7dCBvZmZlciBuYXRpdmUgZW11bGF0aW9uIGZvciBNZWRpYVRlayYjMzk7cyBNVDc2IHNlcmllcyBQQ0llIGRldmljZXMuIFNvLCBzdGFuZGFyZCBRRU1VIGVtdWxhdGlvbiBpcyBvdXQuIFRoaXMgbWVhbnMgSSBuZWVkIHRvIGRpZyBkZWVwZXIuIE15IG5leHQgc3RlcCBpbnZvbHZlcyBjaGVja2luZyBpZiBhbnkgdmlydHVhbCBlbXVsYXRpb24sIG1vY2ssIG9yIFVTQiBwcm9iZSBleGlzdHMgZm9yIHRoZSBtdDc5OTYuIEkmIzM5O20gZ29pbmcgdG8gc2VhcmNoIGZvciBwcm9iZSBlbnRyeSBwb2ludHMuIFRoaXMgd2lsbCBiZSB0aGUga2V5IHRvIGFzc2Vzc2luZyB3aGV0aGVyIHRoZSBkZXZpY2UgY2FuIGJlIGxvYWRlZCBvciBwcm9iZWQgd2l0aG91dCBwaHlzaWNhbCBoYXJkd2FyZSBwcmVzZW50LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE0LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8xMSAwNjozMjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtfZHJpdmVyJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbWN1LmM9MzIyOD1pbnQgbXQ3OTk2X21jdV9iZWFjb25faW5iYW5kX2Rpc2NvdihzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21jdS5jLTMzMTQtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tY3UuYzozMzE1OnN0YXRpYyBpbnQgbXQ3OTk2X2RyaXZlcl9vd24oc3RydWN0IG10Nzk5Nl9kZXYgKmRldiwgdTggYmFuZClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21jdS5jLTMzMTYte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21jdS5jPTM3MTM9aW50IG10Nzk5Nl9tY3VfaW5pdF9maXJtd2FyZShzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21jdS5jLTM3MjEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tY3UuYzozNzIyOlx0cmV0ID0gbXQ3OTk2X2RyaXZlcl9vd24oZGV2LCAwKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21jdS5jLTM3MjMtXHRpZiAocmV0KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21jdS5jLTM3MjYtXHRpZiAoZGV2LVx1MDAzZWhpZjIpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21jdS5jOjM3Mjc6XHRcdHJldCA9IG10Nzk5Nl9kcml2ZXJfb3duKGRldiwgMSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tY3UuYy0zNzI4LVx0XHRpZiAocmV0KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21taW8uYz04MzI9c3RydWN0IG10Nzk5Nl9kZXYgKm10Nzk5Nl9tbWlvX3Byb2JlKHN0cnVjdCBkZXZpY2UgKnBkZXYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbW1pby5jLTgzNC17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tbWlvLmM6ODM1Olx0c3RhdGljIGNvbnN0IHN0cnVjdCBtdDc2X2RyaXZlcl9vcHMgZHJ2X29wcyA9IHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21taW8uYy04MzYtXHRcdC8qIHR4d2lfc2l6ZSA9IHR4ZCBzaXplICYjNDM7IHR4cCBzaXplICovXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbW1pby5jPTg4NT1zdGF0aWMgaW50IF9faW5pdCBtdDc5OTZfaW5pdCh2b2lkKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21taW8uYy04ODgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tbWlvLmM6ODg5Olx0cmV0ID0gcGNpX3JlZ2lzdGVyX2RyaXZlcihcdTAwMjZtdDc5OTZfaGlmX2RyaXZlcik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tbWlvLmMtODkwLVx0aWYgKHJldClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tbWlvLmMtODkyLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbW1pby5jOjg5MzpcdHJldCA9IHBjaV9yZWdpc3Rlcl9kcml2ZXIoXHUwMDI2bXQ3OTk2X3BjaV9kcml2ZXIpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbW1pby5jLTg5NC1cdGlmIChyZXQpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tbWlvLmM6ODk1Olx0XHRwY2lfdW5yZWdpc3Rlcl9kcml2ZXIoXHUwMDI2bXQ3OTk2X2hpZl9kcml2ZXIpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbW1pby5jLTg5Ni1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tbWlvLmM9OTAwPXN0YXRpYyB2b2lkIF9fZXhpdCBtdDc5OTZfZXhpdCh2b2lkKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbW1pby5jLTkwMS17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tbWlvLmM6OTAyOlx0cGNpX3VucmVnaXN0ZXJfZHJpdmVyKFx1MDAyNm10Nzk5Nl9wY2lfZHJpdmVyKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21taW8uYzo5MDM6XHRwY2lfdW5yZWdpc3Rlcl9kcml2ZXIoXHUwMDI2bXQ3OTk2X2hpZl9kcml2ZXIpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbW1pby5jLTkwNC19XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbXQ3OTk2Lmg9NjY5PWV4dGVybiBjb25zdCBzdHJ1Y3QgaWVlZTgwMjExX29wcyBtdDc5OTZfb3BzO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbXQ3OTk2Lmg6NjcwOmV4dGVybiBzdHJ1Y3QgcGNpX2RyaXZlciBtdDc5OTZfcGNpX2RyaXZlcjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L210Nzk5Ni5oOjY3MTpleHRlcm4gc3RydWN0IHBjaV9kcml2ZXIgbXQ3OTk2X2hpZl9kcml2ZXI7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tdDc5OTYuaC02NzItXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvcGNpLmM9MjMzPXN0YXRpYyB2b2lkIG10Nzk5Nl9wY2lfcmVtb3ZlKHN0cnVjdCBwY2lfZGV2ICpwZGV2KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L3BjaS5jLTI0My1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L3BjaS5jOjI0NDpzdHJ1Y3QgcGNpX2RyaXZlciBtdDc5OTZfaGlmX2RyaXZlciA9IHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L3BjaS5jLTI0NS1cdC5uYW1lXHRcdD0gS0JVSUxEX01PRE5BTUUgXCYjMzQ7X2hpZlwmIzM0Oyxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9wY2kuYy0yNTAtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9wY2kuYzoyNTE6c3RydWN0IHBjaV9kcml2ZXIgbXQ3OTk2X3BjaV9kcml2ZXIgPSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9wY2kuYy0yNTItXHQubmFtZVx0XHQ9IEtCVUlMRF9NT0ROQU1FLFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE1LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8xMSAwNjozMjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuNy1mbGFzaDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA0NDQ4NwoJCQkJCQkJb3V0cHV0OiAxNDAKCQkJCQkJCXRob3VnaHRzOiA0MzYKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqTXkgQXNzZXNzbWVudDogTVQ3OTk2IERyaXZlciAtIE5vdCBGdXp6YWJsZSoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhpcyBgbXQ3OTk2YCBkcml2ZXIsIGFuZCBpdCYjMzk7cyBjbGVhciB0aGlzIGlzIGEgUENJZS1zcGVjaWZpYyBkcml2ZXIgZm9yIE1lZGlhVGVrJiMzOTtzIE1UNzk5NiwgTVQ3OTkyLCBhbmQgTVQ3OTkwIGhhcmR3YXJlLiBJdCYjMzk7cyByZWdpc3RlcmVkIHZpYSBgcGNpX3JlZ2lzdGVyX2RyaXZlcmAgd2hpY2ggaXMgc3RhbmRhcmQgZm9yIFBDSWUgZGV2aWNlcy4gVGhlIGRyaXZlciBpdHNlbGYgaXMgbm90IGRlc2lnbmVkIHRvIGZ1bmN0aW9uIGluIGVtdWxhdGVkIGVudmlyb25tZW50cyBsaWtlIFFFTVUgb3IgR29vZ2xlIENvbXB1dGUgRW5naW5lOyBpdCAqcmVxdWlyZXMqIGFjdHVhbCBQQ0llIGhhcmR3YXJlLgoKQmFzZWQgb24gdGhlIGRvY3VtZW50YXRpb24sIHRoaXMgcHV0cyBpdCBmaXJtbHkgaW4gdGhlICYjMzQ7c3RydWN0dXJhbGx5IHVucmVhY2hhYmxlIGhhcmR3YXJlJiMzNDsgY2F0ZWdvcnkuIFNlY3Rpb24gMiBjbGVhcmx5IHN0YXRlcyB0aGF0IGZ1enppbmcgc2hvdWxkIG9ubHkgdGFyZ2V0IGNvZGUgdGhhdCYjMzk7cyAqcmVhY2hhYmxlKiBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMuIFRoaXMgaW5jbHVkZXMgdGhpbmdzIGxpa2UgdmVuZG9yLXNwZWNpZmljIHN3aXRjaGVzLCBTbWFydE5JQ3MsIEdQVSBkcml2ZXJzIOKAkyB0aGUgTVQ3OTk2IGZhbGxzIGludG8gdGhpcyBjYXRlZ29yeTogYSB3aXJlbGVzcyBQQ0llIGRyaXZlciB3aXRob3V0IGVtdWxhdGVkIGhhcmR3YXJlIHN1cHBvcnQuCgpUaGVyZWZvcmUsIHNpbmNlIHRoZSBNVDc5OTYgaXMgdW5yZWFjaGFibGUgZHVyaW5nIGZ1enppbmcsIHRoZSBtb2RpZmllZCBjb2RlLCBzcGVjaWZpY2FsbHkgd2l0aGluIGBtdDc5OTZfdHhfcHJlcGFyZV9za2JgIGluIHRoaXMgY2FzZSwgd291bGQgbmV2ZXIgYmUgZXhlcmNpc2VkLgoKU28sIGxldCYjMzk7cyBjb25maXJtIHRoZSByZWxldmFudCBwYXJhbWV0ZXJzLiBJIGFtIGNvbmZpZGVudCB0aGF0IGBXb3J0aEZ1enppbmdgIHNob3VsZCBiZSBzZXQgdG8gYGZhbHNlYCwgYEVuYWJsZUNvbmZpZ3NgIHJlbWFpbnMgZW1wdHksIGFuZCBgRm9jdXNTeW1ib2xzYCBhbHNvIHN0YXlzIGVtcHR5LiBUaGUgYFJlYXNvbmluZ2Agd2lsbCBiZSBhIGNsZWFyIGV4cGxhbmF0aW9uOiBUaGUgTVQ3OTk2IGRyaXZlciBkZXBlbmRzIG9uIGEgbm9uLWVtdWxhdGFibGUgTWVkaWFUZWsgUENJZSBoYXJkd2FyZSBjaGlwLiBUaGUgZnV6emluZyBjb2RlIGlzIHN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZSwgbWFraW5nIGZ1enppbmcgcG9pbnRsZXNzLgoKQWxyaWdodCwgcGFyYW1ldGVycyBjb25maXJtZWQuIEkmIzM5O2xsIGluaXRpYXRlIHRoZSBzZXQtcmVzdWx0cyBmdW5jdGlvbiBub3cuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzExIDA2OjMyPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+c2V0LXJlc3VsdHM8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogW10sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbWFjLmMgaW4gdGhlIE1lZGlhVGVrIE1UNzk5NiB3aXJlbGVzcyBkcml2ZXIgKENPTkZJR19NVDc5OTZFKS4gVGhpcyBkcml2ZXIgaXMgZXhjbHVzaXZlbHkgYSBQQ0llIGRldmljZSBkcml2ZXIgZm9yIHBoeXNpY2FsIE1lZGlhVGVrIE1UNzk5Ni9NVDc5OTIvTVQ3OTkwIGhhcmR3YXJlLCB3aGljaCBpcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQgZnV6emluZyBlbnZpcm9ubWVudHMgKFFFTVUvR0NFKS4gQ29uc2VxdWVudGx5LCB0aGUgbW9kaWZpZWQgY29kZSBpcyBzdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUgZm9yIGZ1enppbmcuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogbnVsbCwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyBkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tYWMuYyBpbiB0aGUgTWVkaWFUZWsgTVQ3OTk2IHdpcmVsZXNzIGRyaXZlciAoQ09ORklHX01UNzk5NkUpLiBUaGlzIGRyaXZlciBpcyBleGNsdXNpdmVseSBhIFBDSWUgZGV2aWNlIGRyaXZlciBmb3IgcGh5c2ljYWwgTWVkaWFUZWsgTVQ3OTk2L01UNzk5Mi9NVDc5OTAgaGFyZHdhcmUsIHdoaWNoIGlzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBmdXp6aW5nIGVudmlyb25tZW50cyAoUUVNVS9HQ0UpLiBDb25zZXF1ZW50bHksIHRoZSBtb2RpZmllZCBjb2RlIGlzIHN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZSBmb3IgZnV6emluZy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTcvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzExIDA2OjMyPC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5JZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPC90Ym9keT4KCTwvdGFibGU+CgoJPGRpdiBpZD0ibGxtX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5MTE0gQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBUb2tlbnM8L3RoPgoJCQkJCTx0aD5BdmcgVG9rZW5zPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9ImxsbV9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9InRvb2xfc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPlRvb2wgQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0idG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9ImR1cmF0aW9uX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCTxkaXYgaWQ9InRva2VuX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL2pzYXBpIj48L3NjcmlwdD4KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCQlnb29nbGUubG9hZCgidmlzdWFsaXphdGlvbiIsICIxIiwge3BhY2thZ2VzOlsiY29yZWNoYXJ0Il19KTsKCQlnb29nbGUuc2V0T25Mb2FkQ2FsbGJhY2soZHJhd0NoYXJ0cyk7CgoJCWZ1bmN0aW9uIGRyYXdDaGFydHMoKSB7CgkJCWNvbnN0IHJhd0RhdGEgPSBbeyJTdGFydGVkIjoiMjAyNi0wOS0xMVQwNjozMjowMy4zOTEyNjY4MjVaIiwiU2VxIjowLCJOZXN0aW5nIjowLCJUeXBlIjoiZmxvdyIsIk5hbWUiOiJwYXRjaC10cmlhZ2UiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjozMjU2MzU4MTMwMSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJLTVNBTlJlYXNvbmluZ1wiOiBcIlwiLFxuICBcIk5lZWRzS01TQU5cIjogZmFsc2UsXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIGRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21hYy5jIGluIHRoZSBNZWRpYVRlayBNVDc5OTYgd2lyZWxlc3MgZHJpdmVyIChDT05GSUdfTVQ3OTk2RSkuIFRoaXMgZHJpdmVyIGlzIGV4Y2x1c2l2ZWx5IGEgUENJZSBkZXZpY2UgZHJpdmVyIGZvciBwaHlzaWNhbCBNZWRpYVRlayBNVDc5OTYvTVQ3OTkyL01UNzk5MCBoYXJkd2FyZSwgd2hpY2ggaXMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGZ1enppbmcgZW52aXJvbm1lbnRzIChRRU1VL0dDRSkuIENvbnNlcXVlbnRseSwgdGhlIG1vZGlmaWVkIGNvZGUgaXMgc3RydWN0dXJhbGx5IHVucmVhY2hhYmxlIGZvciBmdXp6aW5nLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMTFUMDY6MzI6MDMuMzkxMjc4OTY1WiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0NzE0NTg5NzIsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIlBhdGNoRGlmZlwiOiBcImNvbW1pdCA1ODVmMDk2YzQ4NmZmYzgwM2ZkNzY4NDBiMTFlODYyNWQ4MGMyOTQ2XFxuQXV0aG9yOiBzeXotY2x1c3RlciBcXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cXHUwMDNlXFxuRGF0ZTogICBGcmkgU2VwIDExIDA2OjMyOjAyIDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21hYy5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbWFjLmNcXG5pbmRleCAxY2JhMzgxYTc4YjgyLi5lMjRkZDUzMDQ4NmM0IDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21hYy5jXFxuKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbWFjLmNcXG5AQCAtMTA1Nyw3ICsxMDU3LDcgQEAgaW50IG10Nzk5Nl90eF9wcmVwYXJlX3NrYihzdHJ1Y3QgbXQ3Nl9kZXYgKm1kZXYsIHZvaWQgKnR4d2lfcHRyLFxcbiBcXHRpZiAoIXdjaWQpXFxuIFxcdFxcdHdjaWQgPSBcXHUwMDI2ZGV2LVxcdTAwM2VtdDc2Lmdsb2JhbF93Y2lkO1xcbiBcXG4tXFx0aWYgKChpc184MDIzIHx8IGllZWU4MDIxMV9pc19kYXRhX3FvcyhoZHItXFx1MDAzZWZyYW1lX2NvbnRyb2wpKSBcXHUwMDI2XFx1MDAyNiBzdGEtXFx1MDAzZW1sbyBcXHUwMDI2XFx1MDAyNlxcbitcXHRpZiAoc3RhIFxcdTAwMjZcXHUwMDI2IChpc184MDIzIHx8IGllZWU4MDIxMV9pc19kYXRhX3FvcyhoZHItXFx1MDAzZWZyYW1lX2NvbnRyb2wpKSBcXHUwMDI2XFx1MDAyNiBzdGEtXFx1MDAzZW1sbyBcXHUwMDI2XFx1MDAyNlxcbiBcXHQgICAgbGlrZWx5KHR4X2luZm8tXFx1MDAzZXNrYi1cXHUwMDNlcHJvdG9jb2wgIT0gY3B1X3RvX2JlMTYoRVRIX1BfUEFFKSkpIHtcXG4gXFx0XFx0dTggdGlkID0gdHhfaW5mby1cXHUwMDNlc2tiLVxcdTAwM2Vwcmlvcml0eSBcXHUwMDI2IElFRUU4MDIxMV9RT1NfQ1RMX1RJRF9NQVNLO1xcbiBcXG5AQCAtMTA5Nyw3ICsxMDk3LDcgQEAgaW50IG10Nzk5Nl90eF9wcmVwYXJlX3NrYihzdHJ1Y3QgbXQ3Nl9kZXYgKm1kZXYsIHZvaWQgKnR4d2lfcHRyLFxcbiBcXHQgKiBjb21wYXRpYmxlIHdpdGggODAyLjExIEVBUE9MIGZyYW1lLCB3ZSBkbyB0aGUgdHJhbnNsYXRpb24gYnlcXG4gXFx0ICogc29mdHdhcmVcXG4gXFx0ICovXFxuLVxcdGlmICh0eF9pbmZvLVxcdTAwM2Vza2ItXFx1MDAzZXByb3RvY29sID09IGNwdV90b19iZTE2KEVUSF9QX1BBRSkgXFx1MDAyNlxcdTAwMjYgc3RhLVxcdTAwM2VtbG8pIHtcXG4rXFx0aWYgKHN0YSBcXHUwMDI2XFx1MDAyNiB0eF9pbmZvLVxcdTAwM2Vza2ItXFx1MDAzZXByb3RvY29sID09IGNwdV90b19iZTE2KEVUSF9QX1BBRSkgXFx1MDAyNlxcdTAwMjYgc3RhLVxcdTAwM2VtbG8pIHtcXG4gXFx0XFx0c3RydWN0IGllZWU4MDIxMV9oZHIgKmhkciA9ICh2b2lkICopdHhfaW5mby1cXHUwMDNlc2tiLVxcdTAwM2VkYXRhO1xcbiBcXHRcXHRzdHJ1Y3QgaWVlZTgwMjExX2Jzc19jb25mICpsaW5rX2NvbmY7XFxuIFxcdFxcdHN0cnVjdCBpZWVlODAyMTFfbGlua19zdGEgKmxpbmtfc3RhO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOS0xMVQwNjozMjowMy44NjM0MjMyMDdaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJjb3JlIiwiRHVyYXRpb24iOjMyMDkxNDEwNzU5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyBkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tYWMuYyBpbiB0aGUgTWVkaWFUZWsgTVQ3OTk2IHdpcmVsZXNzIGRyaXZlciAoQ09ORklHX01UNzk5NkUpLiBUaGlzIGRyaXZlciBpcyBleGNsdXNpdmVseSBhIFBDSWUgZGV2aWNlIGRyaXZlciBmb3IgcGh5c2ljYWwgTWVkaWFUZWsgTVQ3OTk2L01UNzk5Mi9NVDc5OTAgaGFyZHdhcmUsIHdoaWNoIGlzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBmdXp6aW5nIGVudmlyb25tZW50cyAoUUVNVS9HQ0UpLiBDb25zZXF1ZW50bHksIHRoZSBtb2RpZmllZCBjb2RlIGlzIHN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZSBmb3IgZnV6emluZy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyIGFuZCBzZWN1cml0eSBlbmdpbmVlci5cbllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZXZhbHVhdGUgd2hldGhlciBpdCB3YXJyYW50cyBmdXp6aW5nIHdpdGggc3l6a2FsbGVyLlxuXG5JTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW5cbnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiBpbnRlcm5hbCBhc3N1bXB0aW9ucy4gWW91IG11c3QgYWN0aXZlbHkgdXNlIHlvdXIgY29kZSBhY2Nlc3NcbnRvb2xzIHRvIGluc3BlY3QgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSwgY2FsbGVycywgYW5kIHN1cnJvdW5kaW5nIGNvbnRleHQuXG5cbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4xLiBDT1JFIFRSSUFHRSBQSElMT1NPUEhZXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuVGhlIGdvYWwgb2YgcGF0Y2ggZnV6emluZyBpcyB0byBkaXNjb3ZlciBjcmFzaGVzLCByZWdyZXNzaW9ucywgZXhwb3NlZCBsYXRlbnQgYnVncyxcbmFuZCBuZXdseSB0cmlnZ2VyZWQgYXNzZXJ0aW9ucyBpbnRyb2R1Y2VkIGJ5IHRoZSBwYXRjaCBzZXJpZXMuXG5cbi0gUkVBQ0hBQklMSVRZIElTIFRIRSBQUklNQVJZIEdBVEU6XG4gIEZ1enppbmcgY2FuIG9ubHkgZGlzY292ZXIgYnVncyBpbiBjb2RlIHRoYXQgY2FuIGFjdHVhbGx5IGV4ZWN1dGUgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWRcbiAgZW52aXJvbm1lbnRzIChHQ0Ugb3IgUUVNVSwgdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGRldmljZXMgbGlrZSBVU0IgZ2FkZ2V0cywgbmV0ZGV2LCB0dW4vdGFwKS5cbiAgSWYgdGhlIG1vZGlmaWVkIGNvZGUgaXMgc3RydWN0dXJhbGx5IHVucmVhY2hhYmxlIChzZWUgU2VjdGlvbiAyKSwgaXQgTVVTVCBOT1QgYmUgZnV6emVkLFxuICByZWdhcmRsZXNzIG9mIHdoZXRoZXIgaXQgYWRkcyBhc3NlcnRpb25zIG9yIGNvbXBsZXggbG9naWMuXG5cbi0gRE8gTk9UIEJMSU5ETFkgVFJVU1QgXCJOTyBGVU5DVElPTkFMIENIQU5HRVwiIChORkNJKSBPUiBcIlJFRkFDVE9SSU5HXCIgQ0xBSU1TOlxuICBQYXRjaCBhdXRob3JzIHJvdXRpbmVseSBsYWJlbCBjaGFuZ2VzIGFzIFwiY2xlYW51cHNcIiwgXCJyZWZhY3RvcmluZ3NcIiwgb3Igc3RhdGVcbiAgXCJObyBmdW5jdGlvbmFsIGNoYW5nZSBpbnRlbmRlZFwiLiBEbyBOT1QgdGFrZSB0aGVzZSBjbGFpbXMgYXQgZmFjZSB2YWx1ZS5cbiAgQ29kZSByZWZhY3RvcmluZ3MgdGhhdCByZWFycmFuZ2UgbG9naWMsIGludHJvZHVjZSBoZWxwZXIgZnVuY3Rpb25zLCBvciBhbHRlciBzdGF0ZSBtYW5hZ2VtZW50XG4gIGluIGNvcmUgc3Vic3lzdGVtcyBmcmVxdWVudGx5IGludHJvZHVjZSBzdWJ0bGUgc2VtYW50aWMgc2hpZnRzIG9yIHVuY292ZXIgbGF0ZW50IGtlcm5lbCBidWdzLlxuICBJZiByZWFjaGFibGUgZXhlY3V0YWJsZSBjb2RlIGlzIG1vZGlmaWVkIG9yIHJlZmFjdG9yZWQsIGl0IE1VU1QgYmUgZnV6emVkLlxuXG4tIE5FVyBPUiBNT0RJRklFRCBBU1NFUlRJT05TIElOIFJFQUNIQUJMRSBDT0RFIE1VU1QgQkUgRlVaWkVEOlxuICBXaGVuIGEgcGF0Y2ggaW50cm9kdWNlcyBvciBtb2RpZmllcyBydW50aW1lIGNoZWNrcyBvciBhc3NlcnRpb25zIChlLmcuLCBXQVJOX09OKiwgVk1fV0FSTl9PTiosXG4gIEJVR19PTiosIGxvY2tkZXBfYXNzZXJ0KikgaW4gcmVhY2hhYmxlIGNvZGUgcGF0aHMsIGl0IGVuZm9yY2VzIG5ldyBvciBzdHJpY3RlciBpbnZhcmlhbnRzLlxuICBFdmVuIGlmIHRoZSBhdXRob3IgYmVsaWV2ZXMgdGhlIGludmFyaWFudCBhbHdheXMgaG9sZHMsIGZ1enppbmcgaXMgZXNzZW50aWFsIHRvIHZlcmlmeSB3aGV0aGVyXG4gIGFuIHVudXN1YWwgc2VxdWVuY2Ugb2Ygb3BlcmF0aW9ucyBjYW4gdmlvbGF0ZSBpdC5cblxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbjIuIFdIRU4gVE8gUkVUVVJOIFdvcnRoRnV6emluZz1mYWxzZSAoTkVHQVRJVkUgQ1JJVEVSSUEpXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBPTkxZIElGIGFsbCBtb2RpZmllZCBjb2RlIGZhbGxzIHN0cmljdGx5IGludG8gb25lIG9yIG1vcmUgb2YgdGhlc2UgY2F0ZWdvcmllczpcblxuLSBOb24ta2VybmVsIGFuZCBub24tZXhlY3V0YWJsZSBjaGFuZ2VzOlxuICAqIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIGNvbW1lbnRzLCBvciBzcGVsbGluZyBmaXhlcy5cbiAgKiBVc2VyLXNwYWNlIGRpcmVjdG9yaWVzLCBzZWxmLXRlc3RzLCBzYW1wbGVzLCBvciBzY3JpcHRzIChlLmcuLCB0b29scy8sIHNhbXBsZXMvLCBzY3JpcHRzLywgdXNyLylcbiAgICB0aGF0IGRvIG5vdCBhZmZlY3QgdGhlIGNvbXBpbGVkIGtlcm5lbCBpbWFnZSAodm1saW51eCkgb3Iga2VybmVsIG1vZHVsZXMuXG4gICogUHVyZWx5IGRlY29yYXRpdmUgbG9nZ2luZyAoZS5nLiwgbWVzc2FnZSBzdHJpbmdzIGluIHByX2VyciwgcHJpbnRrLCBkZXZfaW5mbykgb3IgdHJhY2Vwb2ludHNcbiAgICB0aGF0IGRvIG5vdCBhbHRlciBjb250cm9sIGZsb3cgb3IgZGF0YSBzdHJ1Y3R1cmVzLlxuICAqIEJ1aWxkIHN5c3RlbSBvciBLY29uZmlnIGNoYW5nZXMgdGhhdCBkbyBub3QgYWx0ZXIgY29tcGlsZWQgQyBsb2dpYy5cbi0gU3RydWN0dXJhbGx5IHVucmVhY2hhYmxlIGhhcmR3YXJlOlxuICAqIFZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaGVzLCBTbWFydE5JQ3MsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCxcbiAgICBpb25pYywgYW1kZ3B1KSByZXF1aXJpbmcgcGh5c2ljYWwgQVNJQy9QQ0llIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLlxuLSBVbnJlYWNoYWJsZSBleGVjdXRpb24gcGF0aHM6XG4gICogRHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoLnJlbW92ZSwgLnNodXRkb3duLCBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIpIGV4ZWN1dGVkIG9ubHkgZHVyaW5nXG4gICAgcGh5c2ljYWwgUENJIGhvdC11bnBsdWcgb3IgbWFudWFsIHN5c2ZzIGRyaXZlciB1bmJpbmRpbmcuXG4gICogQ29kZSBwYXRocyBleGNsdXNpdmUgdG8gYXJjaGl0ZWN0dXJlcyBvdGhlciB0aGFuIHRoZSB0YXJnZXQgYXJjaGl0ZWN0dXJlLlxuXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuMy4gV0hFTiBUTyBSRVRVUk4gV29ydGhGdXp6aW5nPXRydWUgKFBPU0lUSVZFIENSSVRFUklBKVxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZSB3aGVuZXZlciB0aGUgcGF0Y2ggdG91Y2hlcyByZWFjaGFibGUgZXhlY3V0YWJsZSBjb2RlLCBpbmNsdWRpbmc6XG4tIENvcmUgU3Vic3lzdGVtczpcbiAgKiBBbnkgbG9naWMgbW9kaWZpY2F0aW9ucyBpbiBtZW1vcnkgbWFuYWdlbWVudCAobW0vKSwgc3luY2hyb25pemF0aW9uL2xvY2tpbmcgKGtlcm5lbC9sb2NraW5nLyksXG4gICAgQlBGLCBzY2hlZHVsZXIsIGNvcmUgbmV0d29ya2luZywgVkZTLCBvciBzeXNjYWxsIGhhbmRsaW5nLlxuLSBSZWZhY3RvcmluZ3MgYW5kIENvZGUgQ2xlYW51cHM6XG4gICogQW55IHJlc3RydWN0dXJpbmcgb2YgcmVhY2hhYmxlIGRhdGEgc3RydWN0dXJlcywgaGVscGVyIGFic3RyYWN0aW9ucywgb3IgYWxnb3JpdGhtIGZsb3dzLlxuLSBSdW50aW1lIEFzc2VydGlvbnMgYW5kIERlZmVuc2l2ZSBDaGVja3M6XG4gICogQW55IGludHJvZHVjdGlvbiBvciBhbHRlcmF0aW9uIG9mIGFzc2VydGlvbnMgKFdBUk5fT04qLCBWTV9XQVJOX09OKiwgQlVHX09OKiwgZXRjLikgaW4gcmVhY2hhYmxlIHBhdGhzLlxuLSBSZWFjaGFibGUgRHJpdmVycyBhbmQgUHJvdG9jb2xzOlxuICAqIERyaXZlcnMgYWNjZXNzaWJsZSB2aWEgdmlydHVhbCBidXNlcyAodmlydGlvLCBVU0IgZ2FkZ2V0LCBsb29wYmFjaywgbmV0bGluaywgYmluZGVyLCBzb2NrZXRzLCBldGMuKS5cblxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbjQuIEVYVFJBQ1RJTkcgRm9jdXNTeW1ib2xzIChQUkVWRU5USU5HIERJTFVUSU9OKVxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbldoZW4gV29ydGhGdXp6aW5nPXRydWUsIHlvdSBtdXN0IGV4dHJhY3Qgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyBpbnRvIEZvY3VzU3ltYm9scyB0byBndWlkZSB0aGUgZnV6emVyOlxuXG4tIEFWT0lEIFVCSVFVSVRPVVMgTElGRUNZQ0xFIEhPVC1QQVRIUzpcbiAgRG8gTk9UIGxpc3QgZ2VuZXJpYywgdWJpcXVpdG91cyBmdW5jdGlvbnMgY2FsbGVkIGJ5IGFsbW9zdCBldmVyeSBwcm9ncmFtIGluIHRoZSBjb3JwdXNcbiAgKGluY2x1ZGluZywgYnV0IG5vdCBsaW1pdGVkIHRvOiBnZW5lcmFsIG1lbW9yeSBhbGxvY2F0b3JzIGFuZCBkZWFsbG9jYXRvcnMsIHBhZ2UgZmF1bHRcbiAgYW5kIHRyYXAgaGFuZGxlcnMsIG9yIGNvcmUgc3luY2hyb25pemF0aW9uIHByaW1pdGl2ZXM7IHRoaXMgaXMgbm90IGFuIGV4aGF1c3RpdmUgbGlzdCkuXG4gIExpc3RpbmcgdWJpcXVpdG91cyBmdW5jdGlvbnMgY2F1c2VzIHRoZSBmdXp6ZXIgdG8gY2xhc3NpZnkgdGhvdXNhbmRzIG9mIHVucmVsYXRlZCB0ZXN0cyBhcyBcImZvY3VzZWRcIixcbiAgd2hpY2ggc2V2ZXJlbHkgZGlsdXRlcyBmdXp6aW5nIGVmZm9ydCBhd2F5IGZyb20gdGhlIGFjdHVhbCBjaGFuZ2VzLlxuXG4tIFRBUkdFVCBTUEVDSUZJQyBGRUFUVVJFIExPR0lDIEFORCBFTlRSWVBPSU5UUzpcbiAgTGlzdCBmdW5jdGlvbnMgdGhhdCBzcGVjaWZpY2FsbHkgaW1wbGVtZW50IHRoZSBsb2dpYyBiZWluZyBhZGRlZCBvciBhbHRlcmVkLCBvciBkaXJlY3QgQVBJIGVudHJ5cG9pbnRzXG4gIGZvciB0aGUgc3Vic3lzdGVtIGZlYXR1cmUgdW5kZXIgcmV2aWV3LlxuXG4tIEhBTkRMSU5HIFNUQVRJQyBJTkxJTkUgRlVOQ1RJT05TIElOIEhFQURFUlMgKC5oKTpcbiAgQ29tcGlsZXItaW5saW5lZCBzdGF0aWMgZnVuY3Rpb25zIChzdWNoIGFzIHN0YXRpYyBpbmxpbmVzIGluIG1tLyouaCBvciBpbmNsdWRlL2xpbnV4LyouaCkgbGFja1xuICBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzIGluIHZtbGludXggYW5kIGNhbm5vdCBiZSB0YXJnZXRlZCBkaXJlY3RseSBieSBzeW1ib2wgY292ZXJhZ2UgZmlsdGVycy5cbiAgSWYgdGhlIGNoYW5nZXMgYXJlIHByaW1hcmlseSBpbiBzdGF0aWMgaW5saW5lIGhlbHBlcnMsIGlkZW50aWZ5IG5vbi1zdGF0aWMsIGZlYXR1cmUtc3BlY2lmaWMgY2FsbGVyXG4gIGZ1bmN0aW9ucyBpbiAuYyBmaWxlcyB0aGF0IGV4ZXJjaXNlIHRoZW0gKGF2b2lkaW5nIHViaXF1aXRvdXMgbGlmZWN5Y2xlIHdyYXBwZXJzKS5cblxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbjUuIElERU5USUZZSU5HIEVuYWJsZUNvbmZpZ3Ncbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5JZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IGNvbXBpbGUgYW5kIHJlYWNoIHRoZSBtb2RpZmllZCBjb2RlOlxuLSBJbnNwZWN0IEtjb25maWcgZmlsZXMgYW5kICNpZmRlZiBndWFyZHM7IGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLlxuLSBDaGVjayBcImRlcGVuZHMgb25cIiBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3MgbmVlZGVkLlxuLSBTdHJpcCBhbnkgJ0NPTkZJR18nIHByZWZpeCAoZS5nLiwgcmV0dXJuIFwiTkVUX0lQVjRcIiBpbnN0ZWFkIG9mIFwiQ09ORklHX05FVF9JUFY0XCIpLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiVGFyZ2V0IGFyY2hpdGVjdHVyZTogYW1kNjRcblxuRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgNTg1ZjA5NmM0ODZmZmM4MDNmZDc2ODQwYjExZTg2MjVkODBjMjk0NlxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBGcmkgU2VwIDExIDA2OjMyOjAyIDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbWFjLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tYWMuY1xuaW5kZXggMWNiYTM4MWE3OGI4Mi4uZTI0ZGQ1MzA0ODZjNCAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21hYy5jXG4rKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tYWMuY1xuQEAgLTEwNTcsNyArMTA1Nyw3IEBAIGludCBtdDc5OTZfdHhfcHJlcGFyZV9za2Ioc3RydWN0IG10NzZfZGV2ICptZGV2LCB2b2lkICp0eHdpX3B0cixcbiBcdGlmICghd2NpZClcbiBcdFx0d2NpZCA9IFx1MDAyNmRldi1cdTAwM2VtdDc2Lmdsb2JhbF93Y2lkO1xuIFxuLVx0aWYgKChpc184MDIzIHx8IGllZWU4MDIxMV9pc19kYXRhX3FvcyhoZHItXHUwMDNlZnJhbWVfY29udHJvbCkpIFx1MDAyNlx1MDAyNiBzdGEtXHUwMDNlbWxvIFx1MDAyNlx1MDAyNlxuK1x0aWYgKHN0YSBcdTAwMjZcdTAwMjYgKGlzXzgwMjMgfHwgaWVlZTgwMjExX2lzX2RhdGFfcW9zKGhkci1cdTAwM2VmcmFtZV9jb250cm9sKSkgXHUwMDI2XHUwMDI2IHN0YS1cdTAwM2VtbG8gXHUwMDI2XHUwMDI2XG4gXHQgICAgbGlrZWx5KHR4X2luZm8tXHUwMDNlc2tiLVx1MDAzZXByb3RvY29sICE9IGNwdV90b19iZTE2KEVUSF9QX1BBRSkpKSB7XG4gXHRcdHU4IHRpZCA9IHR4X2luZm8tXHUwMDNlc2tiLVx1MDAzZXByaW9yaXR5IFx1MDAyNiBJRUVFODAyMTFfUU9TX0NUTF9USURfTUFTSztcbiBcbkBAIC0xMDk3LDcgKzEwOTcsNyBAQCBpbnQgbXQ3OTk2X3R4X3ByZXBhcmVfc2tiKHN0cnVjdCBtdDc2X2RldiAqbWRldiwgdm9pZCAqdHh3aV9wdHIsXG4gXHQgKiBjb21wYXRpYmxlIHdpdGggODAyLjExIEVBUE9MIGZyYW1lLCB3ZSBkbyB0aGUgdHJhbnNsYXRpb24gYnlcbiBcdCAqIHNvZnR3YXJlXG4gXHQgKi9cbi1cdGlmICh0eF9pbmZvLVx1MDAzZXNrYi1cdTAwM2Vwcm90b2NvbCA9PSBjcHVfdG9fYmUxNihFVEhfUF9QQUUpIFx1MDAyNlx1MDAyNiBzdGEtXHUwMDNlbWxvKSB7XG4rXHRpZiAoc3RhIFx1MDAyNlx1MDAyNiB0eF9pbmZvLVx1MDAzZXNrYi1cdTAwM2Vwcm90b2NvbCA9PSBjcHVfdG9fYmUxNihFVEhfUF9QQUUpIFx1MDAyNlx1MDAyNiBzdGEtXHUwMDNlbWxvKSB7XG4gXHRcdHN0cnVjdCBpZWVlODAyMTFfaGRyICpoZHIgPSAodm9pZCAqKXR4X2luZm8tXHUwMDNlc2tiLVx1MDAzZWRhdGE7XG4gXHRcdHN0cnVjdCBpZWVlODAyMTFfYnNzX2NvbmYgKmxpbmtfY29uZjtcbiBcdFx0c3RydWN0IGllZWU4MDIxMV9saW5rX3N0YSAqbGlua19zdGE7XG4iLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOS0xMVQwNjozMjowMy44NjM0MjQ0ODdaIiwiU2VxIjozLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuNy1mbGFzaCIsIkR1cmF0aW9uIjo3NzEwMDIwMDM1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyBhIE5ldHdvcmsgRHJpdmVyIFBhdGNoKipcblxuQWxyaWdodCwgbGV0J3MgZGl2ZSBpbnRvIHRoaXMgcGF0Y2guIE15IGltbWVkaWF0ZSB0aG91Z2h0IGlzIHRvIHVuZGVyc3RhbmQgdGhlIGNvbnRleHQsIHNvIEkgc2VlIHRoZSBjaGFuZ2VzIGFyZSB3aXRoaW4gYGRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21hYy5jYC4gT2theSwgdGhhdCdzIE1lZGlhVGVrJ3MgTVQ3OTk2IHdpcmVsZXNzIGRyaXZlcjsgZ290IGl0LiBOb3csIHRoZSBkaWZmIGl0c2VsZiBzaG93cyB0d28gaW5zdGFuY2VzIG9mIHdoYXQgbG9va3MgbGlrZSBhZGRlZCBgc3RhYCBjaGVja3MgYmVmb3JlIGFjY2Vzc2luZyBgc3RhLVx1MDAzZW1sb2AuIFNwZWNpZmljYWxseSB0aGUgbGluZXMgYXJlIHdpdGhpbiB0aGUgZnVuY3Rpb24gYG10Nzk5Nl90eF9wcmVwYXJlX3NrYmAuIEl0J3MgYSBmYWlybHkgc3RyYWlnaHRmb3J3YXJkIGNoYW5nZTsgaXQgYWRkcyBhIG51bGwgcG9pbnRlciBjaGVjayBmb3IgYHN0YWAgYmVmb3JlIGRlcmVmZXJlbmNpbmcgaXQgaW4gdHdvIGBpZmAgc3RhdGVtZW50cy5cblxuTXkgaW1tZWRpYXRlIHJlYWN0aW9uIGlzIHRoYXQgdGhpcyBpcyBsaWtlbHkgYSBnb29kIHRoaW5nIC0gZGVmZW5zaXZlIHByb2dyYW1taW5nIGFnYWluc3QgYSBwb3RlbnRpYWwgbnVsbCBwb2ludGVyIGRlcmVmZXJlbmNlLiBUaGUgYHN0YWAgdmFyaWFibGUgaXMgbGlrZWx5IGEgcG9pbnRlciB0byBhIHN0YXRpb24gZW50cnksIGFuZCB3aXRob3V0IHRoaXMgY2hlY2ssIHdlIGNvdWxkIGhhdmUgYSBjcmFzaCBpZiBpdCdzIHNvbWVob3cgbnVsbCBpbiB0aG9zZSBjb2RlIHBhdGhzLiBUaGUgYWRkaXRpb24gb2YgdGhlIGBzdGFgIGNoZWNrIG1ha2VzIHRoaXMgY29kZSBtdWNoIG1vcmUgcm9idXN0LCByZWdhcmRsZXNzIG9mIHRoZSBgaXNfODAyM2Agb3IgYGllZWU4MDIxMV9pc19kYXRhX3Fvc2AgY29uZGl0aW9ucywgb3IgdGhlIGBFVEhfUF9QQUVgIHByb3RvY29sIGJlaW5nIG1ldC5cblxuTm93LCB0byBiZSB0aG9yb3VnaCwgSSdkIHdhbnQgdG8gcXVpY2tseSBjb25maXJtIHdoYXQgdGhlIG10Nzk5NiBkcml2ZXIgaXMuIElzIHRoaXMgYSBQQ0llIGRldmljZSwgYSBzeXN0ZW0tb24tYS1jaGlwIChTb0MpIGludGVncmF0aW9uLCBVU0IsIG9yIHNvbWV0aGluZyBlbHNlIGxpa2UgbWFjODAyMTFfaHdzaW0/IEknbGwgcHJvYmFibHkganVzdCBnbGFuY2UgYXQgdGhlIHN1cnJvdW5kaW5nIGZpbGVzIGluIGBkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9gIGFuZCB0aGUgS2NvbmZpZyB0byBjb25maXJtIGl0cyBhcmNoaXRlY3R1cmUgYW5kIHVuZGVyc3RhbmQgYW55IHJlbGV2YW50IGRlcGVuZGVuY2llcyBvciBudWFuY2VzLiBUaGVuLCBJIGNhbiBtYWtlIGEganVkZ2VtZW50IG9uIGhvdyBjcml0aWNhbCB0aGlzIGlzLCBidXQgaXQncyBwcm9iYWJseSBwcmV0dHkgaW1wb3J0YW50LlxuXG5cbiIsIklucHV0VG9rZW5zIjozMjQ2LCJPdXRwdXRUb2tlbnMiOjQ0LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MzExLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMTFUMDY6MzI6MTEuNTczNDQ3ODgyWiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjUxNTU3NTQ5LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIm10Nzk5NlwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiXFxuRnVsbCBvdXRwdXQgaXMgdG9vIGxvbmcsIHNob3dpbmcgNTAwIG91dCBvZiA2NjE4IGxpbmVzLlxcblVzZSBtb3JlIHByZWNpc2UgZXhwcmVzc2lvbiBpZiBwb3NzaWJsZS5cXG5cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9NYWtlZmlsZS0yLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L01ha2VmaWxlOjM6b2JqLSQoQ09ORklHX01UNzk5NkUpICs9IG10Nzk5NmUub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L01ha2VmaWxlLTQtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvTWFrZWZpbGU6NTptdDc5OTZlLXkgOj0gcGNpLm8gaW5pdC5vIGRtYS5vIGVlcHJvbS5vIG1haW4ubyBtY3UubyBtYWMubyBcXFxcXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvTWFrZWZpbGUtNi1cXHQgICAgIGRlYnVnZnMubyBtbWlvLm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9NYWtlZmlsZS03LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L01ha2VmaWxlOjg6bXQ3OTk2ZS0kKENPTkZJR19NVDc5OTZfTlBVKSArPSBucHUub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L01ha2VmaWxlOjk6bXQ3OTk2ZS0kKENPTkZJR19ERVZfQ09SRURVTVApICs9IGNvcmVkdW1wLm9cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmM9MTI9TU9EVUxFX1BBUk1fREVTQyhjb3JlZHVtcF9tZW1kdW1wLCBcXFwiT3B0aW9uYWwgYWJpbGl0eSB0byBkdW1wIGZpcm13YXJlIG1lbW9yeVxcXCIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmMtMTMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYzoxNDpzdGF0aWMgY29uc3Qgc3RydWN0IG10Nzk5Nl9tZW1fcmVnaW9uIG10Nzk5Nl9tZW1fcmVnaW9uc1tdID0ge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmMtMTUtXFx0e1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYy00Ni1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jOjQ3OmNvbnN0IHN0cnVjdCBtdDc5OTZfbWVtX3JlZ2lvbipcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jOjQ4Om10Nzk5Nl9jb3JlZHVtcF9nZXRfbWVtX2xheW91dChzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2LCB1MzIgKm51bSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jLTQ5LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmMtNTItXFx0Y2FzZSBNVDc5OTZfREVWSUNFX0lEXzI6XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYzo1MzpcXHRcXHQqbnVtID0gQVJSQVlfU0laRShtdDc5OTZfbWVtX3JlZ2lvbnMpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmM6NTQ6XFx0XFx0cmV0dXJuIFxcdTAwMjZtdDc5OTZfbWVtX3JlZ2lvbnNbMF07XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYy01NS1cXHRkZWZhdWx0Olxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYy01OS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jOjYwOnN0YXRpYyBpbnQgbXQ3OTk2X2NvcmVkdW1wX2dldF9tZW1fc2l6ZShzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmMtNjEte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmM6NjI6XFx0Y29uc3Qgc3RydWN0IG10Nzk5Nl9tZW1fcmVnaW9uICptZW1fcmVnaW9uO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmMtNjMtXFx0c2l6ZV90IHNpemUgPSAwO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYy02Ni1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jOjY3OlxcdG1lbV9yZWdpb24gPSBtdDc5OTZfY29yZWR1bXBfZ2V0X21lbV9sYXlvdXQoZGV2LCBcXHUwMDI2bnVtKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jLTY4LVxcdGlmICghbWVtX3JlZ2lvbilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmMtNzYtXFx0LyogcmVzZXJ2ZSBzcGFjZSBmb3IgdGhlIGhlYWRlcnMgKi9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jOjc3OlxcdHNpemUgKz0gbnVtICogc2l6ZW9mKHN0cnVjdCBtdDc5OTZfbWVtX2hkcik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYy03OC1cXHQvKiBtYWtlIHN1cmUgaXQgaXMgYWxpZ25lZCA0IGJ5dGVzIGZvciBkZWJ1ZyBtZXNzYWdlIHByaW50IG91dCAqL1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYy04My1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jOjg0OnN0cnVjdCBtdDc5OTZfY3Jhc2hfZGF0YSAqbXQ3OTk2X2NvcmVkdW1wX25ldyhzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmMtODUte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmM6ODY6XFx0c3RydWN0IG10Nzk5Nl9jcmFzaF9kYXRhICpjcmFzaF9kYXRhID0gZGV2LVxcdTAwM2Vjb3JlZHVtcC5jcmFzaF9kYXRhO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmMtODctXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jPTEwMD1zdGF0aWMgdm9pZFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmM6MTAxOm10Nzk5Nl9jb3JlZHVtcF9md19zdGF0ZShzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2LCBzdHJ1Y3QgbXQ3OTk2X2NvcmVkdW1wICpkdW1wLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmMtMTAyLVxcdFxcdFxcdCBib29sICpleGNlcHRpb24pXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jPTExNz1zdGF0aWMgdm9pZFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmM6MTE4Om10Nzk5Nl9jb3JlZHVtcF9md19zdGFjayhzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2LCBzdHJ1Y3QgbXQ3OTk2X2NvcmVkdW1wICpkdW1wLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmMtMTE5LVxcdFxcdFxcdCBib29sIGV4Y2VwdGlvbilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmMtMTYxLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmM6MTYyOnN0YXRpYyBzdHJ1Y3QgbXQ3OTk2X2NvcmVkdW1wICptdDc5OTZfY29yZWR1bXBfYnVpbGQoc3RydWN0IG10Nzk5Nl9kZXYgKmRldilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jLTE2My17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYzoxNjQ6XFx0c3RydWN0IG10Nzk5Nl9jcmFzaF9kYXRhICpjcmFzaF9kYXRhID0gZGV2LVxcdTAwM2Vjb3JlZHVtcC5jcmFzaF9kYXRhO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmM6MTY1OlxcdHN0cnVjdCBtdDc5OTZfY29yZWR1bXAgKmR1bXA7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYzoxNjY6XFx0c3RydWN0IG10Nzk5Nl9jb3JlZHVtcF9tZW0gKmR1bXBfbWVtO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmMtMTY3LVxcdHNpemVfdCBsZW4sIHNvZmFyID0gMCwgaGRyX2xlbiA9IHNpemVvZigqZHVtcCk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jLTE4Ni1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jOjE4NzpcXHRkdW1wID0gKHN0cnVjdCBtdDc5OTZfY29yZWR1bXAgKikoYnVmKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jLTE4OC1cXHRkdW1wLVxcdTAwM2VsZW4gPSBsZW47XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jLTIwMC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jOjIwMTpcXHRtdDc5OTZfY29yZWR1bXBfZndfc3RhdGUoZGV2LCBkdW1wLCBcXHUwMDI2ZXhjZXB0aW9uKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jOjIwMjpcXHRtdDc5OTZfY29yZWR1bXBfZndfc3RhY2soZGV2LCBkdW1wLCBleGNlcHRpb24pO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmMtMjAzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmMtMjA0LVxcdC8qIGdhdGhlciBtZW1vcnkgY29udGVudCAqL1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmM6MjA1OlxcdGR1bXBfbWVtID0gKHN0cnVjdCBtdDc5OTZfY29yZWR1bXBfbWVtICopKGJ1ZiArIHNvZmFyKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jLTIwNi1cXHRkdW1wX21lbS1cXHUwMDNlbGVuID0gY3Jhc2hfZGF0YS1cXHUwMDNlbWVtZHVtcF9idWZfbGVuO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYy0yMTUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYzoyMTY6aW50IG10Nzk5Nl9jb3JlZHVtcF9zdWJtaXQoc3RydWN0IG10Nzk5Nl9kZXYgKmRldilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jLTIxNy17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYzoyMTg6XFx0c3RydWN0IG10Nzk5Nl9jb3JlZHVtcCAqZHVtcDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jLTIxOS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jOjIyMDpcXHRkdW1wID0gbXQ3OTk2X2NvcmVkdW1wX2J1aWxkKGRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYy0yMjEtXFx0aWYgKCFkdW1wKSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jLTIzMC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jOjIzMTppbnQgbXQ3OTk2X2NvcmVkdW1wX3JlZ2lzdGVyKHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYy0yMzIte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmM6MjMzOlxcdHN0cnVjdCBtdDc5OTZfY3Jhc2hfZGF0YSAqY3Jhc2hfZGF0YTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jLTIzNC1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmMtMjQxLVxcdGlmIChjb3JlZHVtcF9tZW1kdW1wKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYzoyNDI6XFx0XFx0Y3Jhc2hfZGF0YS1cXHUwMDNlbWVtZHVtcF9idWZfbGVuID0gbXQ3OTk2X2NvcmVkdW1wX2dldF9tZW1fc2l6ZShkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmMtMjQzLVxcdFxcdGlmICghY3Jhc2hfZGF0YS1cXHUwMDNlbWVtZHVtcF9idWZfbGVuKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYy0yNTYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYzoyNTc6dm9pZCBtdDc5OTZfY29yZWR1bXBfdW5yZWdpc3RlcihzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmMtMjU4LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmgtNi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5oOjc6I2luY2x1ZGUgXFxcIm10Nzk5Ni5oXFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmgtOC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5oOjk6c3RydWN0IG10Nzk5Nl9jb3JlZHVtcCB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuaC0xMC1cXHRjaGFyIG1hZ2ljWzE2XTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmgtMzktXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuaDo0MDpzdHJ1Y3QgbXQ3OTk2X2NvcmVkdW1wX21lbSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuaC00MS1cXHR1MzIgbGVuO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuaC00NC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5oOjQ1OnN0cnVjdCBtdDc5OTZfbWVtX2hkciB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuaC00Ni1cXHR1MzIgc3RhcnQ7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5oLTUwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmg6NTE6c3RydWN0IG10Nzk5Nl9tZW1fcmVnaW9uIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5oLTUyLVxcdHUzMiBzdGFydDtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmgtNTktXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuaDo2MDpjb25zdCBzdHJ1Y3QgbXQ3OTk2X21lbV9yZWdpb24gKlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmg6NjE6bXQ3OTk2X2NvcmVkdW1wX2dldF9tZW1fbGF5b3V0KHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYsIHUzMiAqbnVtKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5oOjYyOnN0cnVjdCBtdDc5OTZfY3Jhc2hfZGF0YSAqbXQ3OTk2X2NvcmVkdW1wX25ldyhzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5oOjYzOmludCBtdDc5OTZfY29yZWR1bXBfc3VibWl0KHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmg6NjQ6aW50IG10Nzk5Nl9jb3JlZHVtcF9yZWdpc3RlcihzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5oOjY1OnZvaWQgbXQ3OTk2X2NvcmVkdW1wX3VucmVnaXN0ZXIoc3RydWN0IG10Nzk5Nl9kZXYgKmRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuaC02Ni1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmgtNjgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuaDo2OTpzdGF0aWMgaW5saW5lIGNvbnN0IHN0cnVjdCBtdDc5OTZfbWVtX3JlZ2lvbiAqXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuaDo3MDptdDc5OTZfY29yZWR1bXBfZ2V0X21lbV9sYXlvdXQoc3RydWN0IG10Nzk5Nl9kZXYgKmRldiwgdTMyICpudW0pXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuaC03MS17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5oLTc0LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmg6NzU6c3RhdGljIGlubGluZSBpbnQgbXQ3OTk2X2NvcmVkdW1wX3N1Ym1pdChzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmgtNzYte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuaD04MD1zdGF0aWMgaW5saW5lIHN0cnVjdFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmg6ODE6bXQ3OTk2X2NyYXNoX2RhdGEgKm10Nzk5Nl9jb3JlZHVtcF9uZXcoc3RydWN0IG10Nzk5Nl9kZXYgKmRldilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5oLTgyLXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmgtODUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuaDo4NjpzdGF0aWMgaW5saW5lIGludCBtdDc5OTZfY29yZWR1bXBfcmVnaXN0ZXIoc3RydWN0IG10Nzk5Nl9kZXYgKmRldilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5oLTg3LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmgtOTAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuaDo5MTpzdGF0aWMgaW5saW5lIHZvaWQgbXQ3OTk2X2NvcmVkdW1wX3VucmVnaXN0ZXIoc3RydWN0IG10Nzk5Nl9kZXYgKmRldilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5oLTkyLXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy02LSNpbmNsdWRlIFxcdTAwM2NsaW51eC9yZWxheS5oXFx1MDAzZVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo3OiNpbmNsdWRlIFxcXCJtdDc5OTYuaFxcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtOC0jaW5jbHVkZSBcXFwiZWVwcm9tLmhcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM9MjM9c3RhdGljIGludFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzoyNDptdDc5OTZfaW1wbGljaXRfdHhiZl9zZXQodm9pZCAqZGF0YSwgdTY0IHZhbClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtMjUte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzoyNjpcXHRzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2ID0gZGF0YTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtMjctXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtMzItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjMzOlxcdHJldHVybiBtdDc5OTZfbWN1X3NldF90eGJmKGRldiwgQkZfSFdfRU5fVVBEQVRFKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtMzQtfVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jPTM2PXN0YXRpYyBpbnRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6Mzc6bXQ3OTk2X2ltcGxpY2l0X3R4YmZfZ2V0KHZvaWQgKmRhdGEsIHU2NCAqdmFsKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy0zOC17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjM5OlxcdHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYgPSBkYXRhO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy00MC1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy00NS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6NDY6REVGSU5FX0RFQlVHRlNfQVRUUklCVVRFKGZvcHNfaW1wbGljaXRfdHhiZiwgbXQ3OTk2X2ltcGxpY2l0X3R4YmZfZ2V0LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo0NzpcXHRcXHRcXHQgbXQ3OTk2X2ltcGxpY2l0X3R4YmZfc2V0LCBcXFwiJWxsZFxcXFxuXFxcIik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTQ4LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jPTUwPXN0YXRpYyBzc2l6ZV90XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjUxOm10Nzk5Nl9zeXNfcmVjb3Zlcnlfc2V0KHN0cnVjdCBmaWxlICpmaWxlLCBjb25zdCBjaGFyIF9fdXNlciAqdXNlcl9idWYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTUyLVxcdFxcdFxcdHNpemVfdCBjb3VudCwgbG9mZl90ICpwcG9zKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy01My17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjU0OlxcdHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYgPSBmaWxlLVxcdTAwM2Vwcml2YXRlX2RhdGE7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTU1LVxcdGNoYXIgYnVmWzE2XSwgKnNlcDtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy05MS1cXHRjYXNlIFVOSV9DTURfU0VSX1FVRVJZOlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo5MjpcXHRcXHRyZXQgPSBtdDc5OTZfbWN1X3NldF9zZXIoZGV2LCBVTklfQ01EX1NFUl9RVUVSWSwgMCwgYmFuZCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTkzLVxcdFxcdGJyZWFrO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTEwMC1cXHRjYXNlIFVOSV9DTURfU0VSX1NFVF9SRUNPVkVSX0w0X01EUDpcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6MTAxOlxcdFxcdHJldCA9IG10Nzk5Nl9tY3Vfc2V0X3NlcihkZXYsIFVOSV9DTURfU0VSX1NFVCwgQklUKHZhbCksIGJhbmQpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy0xMDItXFx0XFx0aWYgKHJldClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy0xMDQtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjEwNTpcXHRcXHRyZXQgPSBtdDc5OTZfbWN1X3NldF9zZXIoZGV2LCBVTklfQ01EX1NFUl9UUklHR0VSLCB2YWwsIGJhbmQpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy0xMDYtXFx0XFx0YnJlYWs7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtMTExLVxcdFxcdGRldi1cXHUwMDNlcmVjb3Zlcnkuc3RhdGUgfD0gTVRfTUNVX0NNRF9XRFRfTUFTSztcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6MTEyOlxcdFxcdG10Nzk5Nl9yZXNldChkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy0xMTMtXFx0XFx0YnJlYWs7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtMTE2LVxcdGNhc2UgVU5JX0NNRF9TRVJfU0VUX1NZU1RFTV9BU1NFUlQ6XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjExNzpcXHRcXHRyZXQgPSBtdDc5OTZfbWN1X3RyaWdnZXJfYXNzZXJ0KGRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTExOC1cXHRcXHRpZiAocmV0KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jPTEyOD1zdGF0aWMgc3NpemVfdFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzoxMjk6bXQ3OTk2X3N5c19yZWNvdmVyeV9nZXQoc3RydWN0IGZpbGUgKmZpbGUsIGNoYXIgX191c2VyICp1c2VyX2J1ZixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtMTMwLVxcdFxcdFxcdHNpemVfdCBjb3VudCwgbG9mZl90ICpwcG9zKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy0xMzEte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzoxMzI6XFx0c3RydWN0IG10Nzk5Nl9kZXYgKmRldiA9IGZpbGUtXFx1MDAzZXByaXZhdGVfZGF0YTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtMTMzLVxcdGNoYXIgKmJ1ZmY7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtMjE0LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzoyMTU6c3RhdGljIGNvbnN0IHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgbXQ3OTk2X3N5c19yZWNvdmVyeV9vcHMgPSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjIxNjpcXHQud3JpdGUgPSBtdDc5OTZfc3lzX3JlY292ZXJ5X3NldCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6MjE3OlxcdC5yZWFkID0gbXQ3OTk2X3N5c19yZWNvdmVyeV9nZXQsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTIxOC1cXHQub3BlbiA9IHNpbXBsZV9vcGVuLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jPTIyMj1zdGF0aWMgaW50XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjIyMzptdDc5OTZfcmFkYXJfdHJpZ2dlcih2b2lkICpkYXRhLCB1NjQgdmFsKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy0yMjQte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTIyNi0jZGVmaW5lIFJBREFSX0JBQ0tHUk9VTkRcXHQyXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjIyNzpcXHRzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2ID0gZGF0YTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6MjI4OlxcdHN0cnVjdCBtdDc5OTZfcGh5ICpwaHkgPSBtdDc5OTZfYmFuZF9waHkoZGV2LCBOTDgwMjExX0JBTkRfNUdIWik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTIyOS1cXHRzdHJ1Y3QgY2ZnODAyMTFfY2hhbl9kZWYgKmNoYW5kZWY7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtMjQ3LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzoyNDg6XFx0cmRkX2lkeCA9IG10Nzk5Nl9nZXRfcmRkX2lkeChwaHksIHZhbCA9PSBSQURBUl9CQUNLR1JPVU5EKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtMjQ5LVxcdGlmIChyZGRfaWR4IFxcdTAwM2MgMCkge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTI1OC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6MjU5OlxcdHJldHVybiBtdDc5OTZfbWN1X3JkZF9jbWQoZGV2LCBSRERfUkFEQVJfRU1VTEFURSwgcmRkX2lkeCwgMCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTI2MC19XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM9MjYyPURFRklORV9ERUJVR0ZTX0FUVFJJQlVURShmb3BzX3JhZGFyX3RyaWdnZXIsIE5VTEwsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjI2MzpcXHRcXHRcXHQgbXQ3OTk2X3JhZGFyX3RyaWdnZXIsIFxcXCIlbGxkXFxcXG5cXFwiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtMjY0LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYz0yNjU9c3RhdGljIGludFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzoyNjY6bXQ3OTk2X3JkZF9tb25pdG9yKHN0cnVjdCBzZXFfZmlsZSAqcywgdm9pZCAqZGF0YSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtMjY3LXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6MjY4OlxcdHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYgPSBkZXZfZ2V0X2RydmRhdGEocy1cXHUwMDNlcHJpdmF0ZSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTI2OS1cXHRzdHJ1Y3QgY2ZnODAyMTFfY2hhbl9kZWYgKmNoYW5kZWYgPSBcXHUwMDI2ZGV2LVxcdTAwM2VyZGQyX2NoYW5kZWY7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM9MzEyPXN0YXRpYyBpbnRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6MzEzOm10Nzk5Nl9md19kZWJ1Z193bV9zZXQodm9pZCAqZGF0YSwgdTY0IHZhbClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtMzE0LXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6MzE1OlxcdHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYgPSBkYXRhO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy0zMTYtXFx0ZW51bSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtMzM3LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzozMzg6XFx0cmV0ID0gbXQ3OTk2X21jdV9md19sb2dfMl9ob3N0KGRldiwgTUNVX0ZXX0xPR19XTSwgdmFsKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtMzM5LVxcdGlmIChyZXQpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtMzUwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzozNTE6XFx0XFx0cmV0ID0gbXQ3OTk2X21jdV9md19kYmdfY3RybChkZXYsIGRlYnVnLCB2YWwpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy0zNTItXFx0XFx0aWYgKHJldClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYz0zNTk9c3RhdGljIGludFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzozNjA6bXQ3OTk2X2Z3X2RlYnVnX3dtX2dldCh2b2lkICpkYXRhLCB1NjQgKnZhbClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtMzYxLXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6MzYyOlxcdHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYgPSBkYXRhO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy0zNjMtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtMzY4LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzozNjk6REVGSU5FX0RFQlVHRlNfQVRUUklCVVRFKGZvcHNfZndfZGVidWdfd20sIG10Nzk5Nl9md19kZWJ1Z193bV9nZXQsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjM3MDpcXHRcXHRcXHQgbXQ3OTk2X2Z3X2RlYnVnX3dtX3NldCwgXFxcIiVsbGRcXFxcblxcXCIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy0zNzEtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jPTM3Mj1zdGF0aWMgaW50XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjM3MzptdDc5OTZfZndfZGVidWdfd2Ffc2V0KHZvaWQgKmRhdGEsIHU2NCB2YWwpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTM3NC17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjM3NTpcXHRzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2ID0gZGF0YTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtMzc2LVxcdGludCByZXQ7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtMzc5LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzozODA6XFx0cmV0ID0gbXQ3OTk2X21jdV9md19sb2dfMl9ob3N0KGRldiwgTUNVX0ZXX0xPR19XQSwgZGV2LVxcdTAwM2Vmd19kZWJ1Z193YSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTM4MS1cXHRpZiAocmV0KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTM4My1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6Mzg0OlxcdHJldHVybiBtdDc5OTZfbWN1X3dhX2NtZChkZXYsIE1DVV9XQV9QQVJBTV9DTUQoU0VUKSwgTUNVX1dBX1BBUkFNX1BETUFfUlgsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTM4NS1cXHRcXHRcXHRcXHQgISFkZXYtXFx1MDAzZWZ3X2RlYnVnX3dhLCAwKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYz0zODg9c3RhdGljIGludFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzozODk6bXQ3OTk2X2Z3X2RlYnVnX3dhX2dldCh2b2lkICpkYXRhLCB1NjQgKnZhbClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtMzkwLXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6MzkxOlxcdHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYgPSBkYXRhO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy0zOTItXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtMzk3LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzozOTg6REVGSU5FX0RFQlVHRlNfQVRUUklCVVRFKGZvcHNfZndfZGVidWdfd2EsIG10Nzk5Nl9md19kZWJ1Z193YV9nZXQsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjM5OTpcXHRcXHRcXHQgbXQ3OTk2X2Z3X2RlYnVnX3dhX3NldCwgXFxcIiVsbGRcXFxcblxcXCIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy00MDAtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM9NDI1PXN0YXRpYyBpbnRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6NDI2Om10Nzk5Nl9md19kZWJ1Z19iaW5fc2V0KHZvaWQgKmRhdGEsIHU2NCB2YWwpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTQyNy17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNDMxLVxcdH07XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjQzMjpcXHRzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2ID0gZGF0YTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNDMzLVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTQ0My1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6NDQ0OlxcdHJldHVybiBtdDc5OTZfZndfZGVidWdfd21fc2V0KGRldiwgZGV2LVxcdTAwM2Vmd19kZWJ1Z193bSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTQ0NS19XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM9NDQ3PXN0YXRpYyBpbnRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6NDQ4Om10Nzk5Nl9md19kZWJ1Z19iaW5fZ2V0KHZvaWQgKmRhdGEsIHU2NCAqdmFsKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy00NDkte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo0NTA6XFx0c3RydWN0IG10Nzk5Nl9kZXYgKmRldiA9IGRhdGE7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTQ1MS1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy00NTYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjQ1NzpERUZJTkVfREVCVUdGU19BVFRSSUJVVEUoZm9wc19md19kZWJ1Z19iaW4sIG10Nzk5Nl9md19kZWJ1Z19iaW5fZ2V0LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo0NTg6XFx0XFx0XFx0IG10Nzk5Nl9md19kZWJ1Z19iaW5fc2V0LCBcXFwiJWxsZFxcXFxuXFxcIik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTQ1OS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM9NDYwPXN0YXRpYyBpbnRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6NDYxOm10Nzk5Nl9md191dGlsX3dhX3Nob3coc3RydWN0IHNlcV9maWxlICpmaWxlLCB2b2lkICpkYXRhKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy00NjIte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo0NjM6XFx0c3RydWN0IG10Nzk5Nl9kZXYgKmRldiA9IGZpbGUtXFx1MDAzZXByaXZhdGU7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTQ2NC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNDY1LVxcdGlmIChkZXYtXFx1MDAzZWZ3X2RlYnVnX3dhKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo0NjY6XFx0XFx0cmV0dXJuIG10Nzk5Nl9tY3Vfd2FfY21kKGRldiwgTUNVX1dBX1BBUkFNX0NNRChRVUVSWSksXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTQ2Ny1cXHRcXHRcXHRcXHRcXHQgTUNVX1dBX1BBUkFNX0NQVV9VVElMLCAwLCAwKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy00NzEtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjQ3MjpERUZJTkVfU0hPV19BVFRSSUJVVEUobXQ3OTk2X2Z3X3V0aWxfd2EpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy00NzMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jPTQ3ND1zdGF0aWMgdm9pZFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo0NzU6bXQ3OTk2X2FtcGR1X3N0YXRfcmVhZF9waHkoc3RydWN0IG10Nzk5Nl9waHkgKnBoeSwgc3RydWN0IHNlcV9maWxlICpmaWxlKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy00NzYte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo0Nzc6XFx0c3RydWN0IG10Nzk5Nl9kZXYgKmRldiA9IHBoeS1cXHUwMDNlZGV2O1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy00NzgtXFx0aW50IGJvdW5kWzE1XSwgcmFuZ2VbOF0sIGk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM9NTA0PXN0YXRpYyB2b2lkXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjUwNTptdDc5OTZfdHhiZl9zdGF0X3JlYWRfcGh5KHN0cnVjdCBtdDc5OTZfcGh5ICpwaHksIHN0cnVjdCBzZXFfZmlsZSAqcylcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNTA2LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYz01NTI9c3RhdGljIHZvaWRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6NTUzOm10Nzk5Nl90eF9zdGF0c19zaG93X3BoeShzdHJ1Y3Qgc2VxX2ZpbGUgKmZpbGUsIHN0cnVjdCBtdDc5OTZfcGh5ICpwaHkpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTU1NC17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNTU4LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo1NTk6XFx0bXQ3OTk2X21hY191cGRhdGVfc3RhdHMocGh5KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6NTYwOlxcdG10Nzk5Nl9hbXBkdV9zdGF0X3JlYWRfcGh5KHBoeSwgZmlsZSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTU2MS1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy01NjgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjU2OTpcXHRtdDc5OTZfdHhiZl9zdGF0X3JlYWRfcGh5KHBoeSwgZmlsZSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTU3MC1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYz01ODQ9c3RhdGljIGludFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo1ODU6bXQ3OTk2X3R4X3N0YXRzX3Nob3coc3RydWN0IHNlcV9maWxlICpmaWxlLCB2b2lkICpkYXRhKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy01ODYte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo1ODc6XFx0c3RydWN0IG10Nzk5Nl9kZXYgKmRldiA9IGZpbGUtXFx1MDAzZXByaXZhdGU7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjU4ODpcXHRzdHJ1Y3QgbXQ3OTk2X3BoeSAqcGh5ID0gXFx1MDAyNmRldi1cXHUwMDNlcGh5O1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy01ODktXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNTkxLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo1OTI6XFx0bXQ3OTk2X3R4X3N0YXRzX3Nob3dfcGh5KGZpbGUsIHBoeSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjU5MzpcXHRwaHkgPSBtdDc5OTZfcGh5MihkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy01OTQtXFx0aWYgKHBoeSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6NTk1OlxcdFxcdG10Nzk5Nl90eF9zdGF0c19zaG93X3BoeShmaWxlLCBwaHkpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo1OTY6XFx0cGh5ID0gbXQ3OTk2X3BoeTMoZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNTk3LVxcdGlmIChwaHkpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjU5ODpcXHRcXHRtdDc5OTZfdHhfc3RhdHNfc2hvd19waHkoZmlsZSwgcGh5KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNTk5LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTYwNC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6NjA1OkRFRklORV9TSE9XX0FUVFJJQlVURShtdDc5OTZfdHhfc3RhdHMpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy02MDYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jPTYwNz1zdGF0aWMgdm9pZFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo2MDg6bXQ3OTk2X2h3X3F1ZXVlX3JlYWQoc3RydWN0IHNlcV9maWxlICpzLCB1MzIgc2l6ZSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNjA5LVxcdFxcdCAgICAgY29uc3Qgc3RydWN0IGh3X3F1ZXVlX21hcCAqbWFwKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy02MTAte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo2MTE6XFx0c3RydWN0IG10Nzk5Nl9waHkgKnBoeSA9IHMtXFx1MDAzZXByaXZhdGU7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjYxMjpcXHRzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2ID0gcGh5LVxcdTAwM2VkZXY7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTYxMy1cXHR1MzIgaSwgdmFsO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jPTYzOD1zdGF0aWMgdm9pZFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo2Mzk6bXQ3OTk2X3N0YV9od19xdWV1ZV9yZWFkKHZvaWQgKmRhdGEsIHN0cnVjdCBpZWVlODAyMTFfc3RhICpzdGEpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTY0MC17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjY0MTpcXHRzdHJ1Y3QgbXQ3OTk2X3N0YSAqbXN0YSA9IChzdHJ1Y3QgbXQ3OTk2X3N0YSAqKXN0YS1cXHUwMDNlZHJ2X3ByaXY7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjY0MjpcXHRzdHJ1Y3QgbXQ3OTk2X3ZpZiAqbXZpZiA9IG1zdGEtXFx1MDAzZXZpZjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6NjQzOlxcdHN0cnVjdCBtdDc5OTZfcGh5ICpwaHkgPSBtdDc5OTZfdmlmX2xpbmtfcGh5KFxcdTAwMjZtdmlmLVxcdTAwM2VkZWZsaW5rKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNjQ0LVxcdHN0cnVjdCBpZWVlODAyMTFfbGlua19zdGEgKmxpbmtfc3RhO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTY0Ni1cXHRzdHJ1Y3QgaWVlZTgwMjExX3ZpZiAqdmlmO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo2NDc6XFx0c3RydWN0IG10Nzk5Nl9kZXYgKmRldjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNjQ4LVxcdHVuc2lnbmVkIGludCBsaW5rX2lkO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTY1OC1cXHRmb3JfZWFjaF9zdGFfYWN0aXZlX2xpbmsodmlmLCBzdGEsIGxpbmtfc3RhLCBsaW5rX2lkKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjY1OTpcXHRcXHRzdHJ1Y3QgbXQ3OTk2X3N0YV9saW5rICptc3RhX2xpbms7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTY2MC1cXHRcXHRzdHJ1Y3QgbXQ3Nl92aWZfbGluayAqbWxpbms7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNjY2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo2Njc6XFx0XFx0bXN0YV9saW5rID0gbXQ3OTk2X3N0YV9saW5rKG1zdGEsIGxpbmtfaWQpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy02NjgtXFx0XFx0aWYgKCFtc3RhX2xpbmspXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM9Njk0PXN0YXRpYyBpbnRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6Njk1Om10Nzk5Nl9od19xdWV1ZXNfc2hvdyhzdHJ1Y3Qgc2VxX2ZpbGUgKmZpbGUsIHZvaWQgKmRhdGEpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTY5Ni17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjY5NzpcXHRzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2ID0gZmlsZS1cXHUwMDNlcHJpdmF0ZTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6Njk4OlxcdHN0cnVjdCBtdDc5OTZfcGh5ICpwaHkgPSBcXHUwMDI2ZGV2LVxcdTAwM2VwaHk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTY5OS1cXHRzdGF0aWMgY29uc3Qgc3RydWN0IGh3X3F1ZXVlX21hcCBwbGVfcXVldWVfbWFwW10gPSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNzQ3LVxcdHNlcV9wdXRzKGZpbGUsIFxcXCJQTEUgbm9uLWVtcHR5IHF1ZXVlIGluZm86XFxcXG5cXFwiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6NzQ4OlxcdG10Nzk5Nl9od19xdWV1ZV9yZWFkKGZpbGUsIEFSUkFZX1NJWkUocGxlX3F1ZXVlX21hcCksXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTc0OS1cXHRcXHRcXHQgICAgIFxcdTAwMjZwbGVfcXVldWVfbWFwWzBdKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy03NTItXFx0aWVlZTgwMjExX2l0ZXJhdGVfc3RhdGlvbnNfYXRvbWljKHBoeS1cXHUwMDNlbXQ3Ni1cXHUwMDNlaHcsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjc1MzpcXHRcXHRcXHRcXHRcXHQgIG10Nzk5Nl9zdGFfaHdfcXVldWVfcmVhZCwgZmlsZSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjc1NDpcXHRwaHkgPSBtdDc5OTZfcGh5MihkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy03NTUtXFx0aWYgKHBoeSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNzU2LVxcdFxcdGllZWU4MDIxMV9pdGVyYXRlX3N0YXRpb25zX2F0b21pYyhwaHktXFx1MDAzZW10NzYtXFx1MDAzZWh3LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo3NTc6XFx0XFx0XFx0XFx0XFx0XFx0ICBtdDc5OTZfc3RhX2h3X3F1ZXVlX3JlYWQsIGZpbGUpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo3NTg6XFx0cGh5ID0gbXQ3OTk2X3BoeTMoZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNzU5LVxcdGlmIChwaHkpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTc2MC1cXHRcXHRpZWVlODAyMTFfaXRlcmF0ZV9zdGF0aW9uc19hdG9taWMocGh5LVxcdTAwM2VtdDc2LVxcdTAwM2VodyxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6NzYxOlxcdFxcdFxcdFxcdFxcdFxcdCAgbXQ3OTk2X3N0YV9od19xdWV1ZV9yZWFkLCBmaWxlKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNzYyLVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTc2NC1cXHRzZXFfcHV0cyhmaWxlLCBcXFwiUFNFIG5vbi1lbXB0eSBxdWV1ZSBpbmZvOlxcXFxuXFxcIik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjc2NTpcXHRtdDc5OTZfaHdfcXVldWVfcmVhZChmaWxlLCBBUlJBWV9TSVpFKHBzZV9xdWV1ZV9tYXApLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy03NjYtXFx0XFx0XFx0ICAgICBcXHUwMDI2cHNlX3F1ZXVlX21hcFswXSk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNzcwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo3NzE6REVGSU5FX1NIT1dfQVRUUklCVVRFKG10Nzk5Nl9od19xdWV1ZXMpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy03NzItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jPTc3Mz1zdGF0aWMgaW50XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjc3NDptdDc5OTZfeG1pdF9xdWV1ZXNfc2hvdyhzdHJ1Y3Qgc2VxX2ZpbGUgKmZpbGUsIHZvaWQgKmRhdGEpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTc3NS17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjc3NjpcXHRzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2ID0gZmlsZS1cXHUwMDNlcHJpdmF0ZTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6Nzc3OlxcdHN0cnVjdCBtdDc5OTZfcGh5ICpwaHk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTc3OC1cXHRzdHJ1Y3Qge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTc5MC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6NzkxOlxcdHBoeSA9IG10Nzk5Nl9waHkyKGRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTc5Mi1cXHRpZiAocGh5KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTc5NC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6Nzk1OlxcdHBoeSA9IG10Nzk5Nl9waHkzKGRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTc5Ni1cXHRpZiAocGh5KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTgxMy1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6ODE0OkRFRklORV9TSE9XX0FUVFJJQlVURShtdDc5OTZfeG1pdF9xdWV1ZXMpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy04MTUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jPTgxNj1zdGF0aWMgaW50XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjgxNzptdDc5OTZfdHd0X3N0YXRzKHN0cnVjdCBzZXFfZmlsZSAqcywgdm9pZCAqZGF0YSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtODE4LXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6ODE5OlxcdHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYgPSBkZXZfZ2V0X2RydmRhdGEocy1cXHUwMDNlcHJpdmF0ZSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjgyMDpcXHRzdHJ1Y3QgbXQ3OTk2X3R3dF9mbG93ICppdGVyO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy04MjEtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM9ODQ1PXN0YXRpYyBpbnRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6ODQ2Om10Nzk5Nl9yZl9yZWd2YWxfZ2V0KHZvaWQgKmRhdGEsIHU2NCAqdmFsKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy04NDcte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo4NDg6XFx0c3RydWN0IG10Nzk5Nl9kZXYgKmRldiA9IGRhdGE7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTg0OS1cXHR1MzIgcmVndmFsO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTg1MS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6ODUyOlxcdHJldCA9IG10Nzk5Nl9tY3VfcmZfcmVndmFsKGRldiwgZGV2LVxcdTAwM2VtdDc2LmRlYnVnZnNfcmVnLCBcXHUwMDI2cmVndmFsLCBmYWxzZSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTg1My1cXHRpZiAocmV0KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jPTg2MT1zdGF0aWMgaW50XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjg2MjptdDc5OTZfcmZfcmVndmFsX3NldCh2b2lkICpkYXRhLCB1NjQgdmFsKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy04NjMte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo4NjQ6XFx0c3RydWN0IG10Nzk5Nl9kZXYgKmRldiA9IGRhdGE7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTg2NS1cXHR1MzIgdmFsMzIgPSB2YWw7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTg2Ni1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6ODY3OlxcdHJldHVybiBtdDc5OTZfbWN1X3JmX3JlZ3ZhbChkZXYsIGRldi1cXHUwMDNlbXQ3Ni5kZWJ1Z2ZzX3JlZywgXFx1MDAyNnZhbDMyLCB0cnVlKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtODY4LX1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtODY5LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo4NzA6REVGSU5FX0RFQlVHRlNfQVRUUklCVVRFKGZvcHNfcmZfcmVndmFsLCBtdDc5OTZfcmZfcmVndmFsX2dldCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6ODcxOlxcdFxcdFxcdCBtdDc5OTZfcmZfcmVndmFsX3NldCwgXFxcIjB4JTA4bGx4XFxcXG5cXFwiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtODcyLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo4NzM6aW50IG10Nzk5Nl9pbml0X2RlYnVnZnMoc3RydWN0IG10Nzk5Nl9kZXYgKmRldilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtODc0LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy04NzktXFx0ZGVidWdmc19jcmVhdGVfZmlsZShcXFwiaHctcXVldWVzXFxcIiwgMDQwMCwgZGlyLCBkZXYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjg4MDpcXHRcXHRcXHQgICAgXFx1MDAyNm10Nzk5Nl9od19xdWV1ZXNfZm9wcyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTg4MS1cXHRkZWJ1Z2ZzX2NyZWF0ZV9maWxlKFxcXCJ4bWl0LXF1ZXVlc1xcXCIsIDA0MDAsIGRpciwgZGV2LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo4ODI6XFx0XFx0XFx0ICAgIFxcdTAwMjZtdDc5OTZfeG1pdF9xdWV1ZXNfZm9wcyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjg4MzpcXHRkZWJ1Z2ZzX2NyZWF0ZV9maWxlKFxcXCJ0eF9zdGF0c1xcXCIsIDA0MDAsIGRpciwgZGV2LCBcXHUwMDI2bXQ3OTk2X3R4X3N0YXRzX2ZvcHMpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy04ODQtXFx0ZGVidWdmc19jcmVhdGVfZmlsZShcXFwic3lzX3JlY292ZXJ5XFxcIiwgMDYwMCwgZGlyLCBkZXYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjg4NTpcXHRcXHRcXHQgICAgXFx1MDAyNm10Nzk5Nl9zeXNfcmVjb3Zlcnlfb3BzKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtODg2LVxcdGRlYnVnZnNfY3JlYXRlX2ZpbGUoXFxcImZ3X2RlYnVnX3dtXFxcIiwgMDYwMCwgZGlyLCBkZXYsIFxcdTAwMjZmb3BzX2Z3X2RlYnVnX3dtKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy04OTAtXFx0ZGVidWdmc19jcmVhdGVfZmlsZShcXFwiZndfdXRpbF93YVxcXCIsIDA0MDAsIGRpciwgZGV2LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo4OTE6XFx0XFx0XFx0ICAgIFxcdTAwMjZtdDc5OTZfZndfdXRpbF93YV9mb3BzKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtODkyLVxcdGRlYnVnZnNfY3JlYXRlX2ZpbGUoXFxcImltcGxpY2l0X3R4YmZcXFwiLCAwNjAwLCBkaXIsIGRldixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy04OTQtXFx0ZGVidWdmc19jcmVhdGVfZGV2bV9zZXFmaWxlKGRldi1cXHUwMDNlbXQ3Ni5kZXYsIFxcXCJ0d3Rfc3RhdHNcXFwiLCBkaXIsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjg5NTpcXHRcXHRcXHRcXHQgICAgbXQ3OTk2X3R3dF9zdGF0cyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTg5Ni1cXHRkZWJ1Z2ZzX2NyZWF0ZV9maWxlKFxcXCJyZl9yZWd2YWxcXFwiLCAwNjAwLCBkaXIsIGRldiwgXFx1MDAyNmZvcHNfcmZfcmVndmFsKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy05MDEtXFx0ZGVidWdmc19jcmVhdGVfZGV2bV9zZXFmaWxlKGRldi1cXHUwMDNlbXQ3Ni5kZXYsIFxcXCJyZGRfbW9uaXRvclxcXCIsIGRpcixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6OTAyOlxcdFxcdFxcdFxcdCAgICBtdDc5OTZfcmRkX21vbml0b3IpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy05MDMtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM9OTA5PXN0YXRpYyB2b2lkXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjkxMDptdDc5OTZfZGVidWdmc193cml0ZV9md2xvZyhzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2LCBjb25zdCB2b2lkICpoZHIsIGludCBoZHJsZW4sXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTkxMS1cXHRcXHRcXHQgICBjb25zdCB2b2lkICpkYXRhLCBpbnQgbGVuKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTkzMy1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6OTM0OnZvaWQgbXQ3OTk2X2RlYnVnZnNfcnhfZndfbW9uaXRvcihzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2LCBjb25zdCB2b2lkICpkYXRhLCBpbnQgbGVuKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy05MzUte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTk1NS1cXHRoZHIubGVuID0gKihfX2xlMTYgKilkYXRhO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo5NTY6XFx0bXQ3OTk2X2RlYnVnZnNfd3JpdGVfZndsb2coZGV2LCBcXHUwMDI2aGRyLCBzaXplb2YoaGRyKSwgZGF0YSwgbGVuKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtOTU3LX1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtOTU4LVxcblxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOS0xMVQwNjozMjoxMS42MjUwMTA3NjFaIiwiU2VxIjo1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuNy1mbGFzaCIsIkR1cmF0aW9uIjo3NTUzOTc4NzA2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0czpcblxuKipOYXZpZ2F0aW5nIHRoZSBNZWRpYXRlayBXaXJlbGVzcyBMYW5kc2NhcGUqKlxuXG5Pa2F5LCBzbyBJIG5lZWQgdG8gZGl2ZSBpbnRvIHRoZSBNZWRpYXRlayB3aXJlbGVzcyBkcml2ZXIgY29kZSwgc3BlY2lmaWNhbGx5IHRoZSBgbXQ3NmAgZmFtaWx5LiBMZXQncyBzZWUgd2hhdCB0aGUgS2NvbmZpZyBmaWxlIGhhcyB0byBvZmZlci4gVGhpcyBmaWxlIGlzIHRoZSBrZXkgdG8gdW5kZXJzdGFuZGluZyB0aGUgY29uZmlndXJhdGlvbiBvcHRpb25zIGFuZCBkZXBlbmRlbmNpZXMgZm9yIHRoZXNlIGRyaXZlcnMuIEl0J3Mgd2hlcmUgdGhlIGtub2JzIGFyZSB0aGF0IEkgY2FuIHR1cm4gdG8gZW5hYmxlIG9yIGRpc2FibGUgZmVhdHVyZXMsIG1vZHVsZXMsIG9yIHN1cHBvcnQgZm9yIHNwZWNpZmljIGhhcmR3YXJlLiBJIG5lZWQgdG8gZmlndXJlIG91dCB3aGljaCBvcHRpb25zIGFyZSByZWxldmFudCB0byB0aGUgY3VycmVudCBwcm9ibGVtLiBUaGlzIHdpbGwgaGVscCB0byBpZGVudGlmeSB0aGUgc3BlY2lmaWMgY29uZmlndXJhdGlvbiBwYXJhbWV0ZXJzIEkgbWlnaHQgbmVlZCB0byBhZGp1c3QsIG9yIGV2ZW4gZGVidWcsIHRvIGdldCB0aGlzIE1lZGlhdGVrIHdpcmVsZXNzIHNldHVwIHdvcmtpbmcgYXMgZXhwZWN0ZWQuIFRoaXMgd2lsbCBiZSBteSBzdGFydGluZyBwb2ludCBmb3IgYSBkZWVwZXIgZGl2ZS5cblxuXG4iLCJJbnB1dFRva2VucyI6MjA4MjUsIk91dHB1dFRva2VucyI6MzcsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyMSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOS0xMVQwNjozMjoxOS4xNzg5OTMyMzdaIiwiU2VxIjo2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6OTM3NDQxNDksIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiTVQ3OTk2XCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzZcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiXFxuRnVsbCBvdXRwdXQgaXMgdG9vIGxvbmcsIHNob3dpbmcgNTAwIG91dCBvZiAxNTgyIGxpbmVzLlxcblVzZSBtb3JlIHByZWNpc2UgZXhwcmVzc2lvbiBpZiBwb3NzaWJsZS5cXG5cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L01ha2VmaWxlPTUwPW9iai0kKENPTkZJR19NVDc5MjFfQ09NTU9OKSArPSBtdDc5MjEvXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9NYWtlZmlsZTo1MTpvYmotJChDT05GSUdfTVQ3OTk2RSkgKz0gbXQ3OTk2L1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvTWFrZWZpbGUtNTItb2JqLSQoQ09ORklHX01UNzkyNV9DT01NT04pICs9IG10NzkyNS9cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L0tjb25maWctMS0jIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMy1DbGF1c2UtQ2xlYXJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9LY29uZmlnOjI6Y29uZmlnIE1UNzk5NkVcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9LY29uZmlnOjM6XFx0dHJpc3RhdGUgXFxcIk1lZGlhVGVrIE1UNzk5NiAoUENJZSkgc3VwcG9ydFxcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9LY29uZmlnLTQtXFx0c2VsZWN0IE1UNzZfQ09OTkFDX0xJQlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvS2NvbmZpZy05LVxcdGhlbHBcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9LY29uZmlnOjEwOlxcdCAgVGhpcyBhZGRzIHN1cHBvcnQgZm9yIE1UNzk5Ni1iYXNlZCBQQ0llIHdpcmVsZXNzIGRldmljZXMsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvS2NvbmZpZy0xMS1cXHQgIHdoaWNoIHN1cHBvcnQgY29uY3VycmVudCB0cmktYmFuZCBvcGVyYXRpb24gYXQgNkdIeiwgNUdIeixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L0tjb25maWctMTUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvS2NvbmZpZzoxNjpjb25maWcgTVQ3OTk2X05QVVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L0tjb25maWc6MTc6XFx0Ym9vbCBcXFwiTVQ3OTk2IChQQ0llKSBOUFUgc3VwcG9ydFxcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9LY29uZmlnOjE4OlxcdGRlcGVuZHMgb24gTVQ3OTk2RVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L0tjb25maWctMTktXFx0ZGVwZW5kcyBvbiBORVRfQUlST0hBX05QVT15IHx8IE1UNzZfQ09SRT1ORVRfQUlST0hBX05QVVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvTWFrZWZpbGUtMi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9NYWtlZmlsZTozOm9iai0kKENPTkZJR19NVDc5OTZFKSArPSBtdDc5OTZlLm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9NYWtlZmlsZS00LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L01ha2VmaWxlPTU9bXQ3OTk2ZS15IDo9IHBjaS5vIGluaXQubyBkbWEubyBlZXByb20ubyBtYWluLm8gbWN1Lm8gbWFjLm8gXFxcXFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvTWFrZWZpbGUtNy1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9NYWtlZmlsZTo4Om10Nzk5NmUtJChDT05GSUdfTVQ3OTk2X05QVSkgKz0gbnB1Lm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9NYWtlZmlsZS05LW10Nzk5NmUtJChDT05GSUdfREVWX0NPUkVEVU1QKSArPSBjb3JlZHVtcC5vXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jPTQ4PW10Nzk5Nl9jb3JlZHVtcF9nZXRfbWVtX2xheW91dChzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2LCB1MzIgKm51bSlcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmMtNTAtXFx0c3dpdGNoIChtdDc2X2NoaXAoXFx1MDAyNmRldi1cXHUwMDNlbXQ3NikpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jOjUxOlxcdGNhc2UgTVQ3OTk2X0RFVklDRV9JRDpcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jOjUyOlxcdGNhc2UgTVQ3OTk2X0RFVklDRV9JRF8yOlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmMtNTMtXFx0XFx0Km51bSA9IEFSUkFZX1NJWkUobXQ3OTk2X21lbV9yZWdpb25zKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jPTQ2PXN0YXRpYyB2b2lkIG10Nzk5Nl9kbWFfY29uZmlnKHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy01OS1cXHQvKiByeCBxdWV1ZSAqL1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjYwOlxcdFJYUV9DT05GSUcoTVRfUlhRX01DVSwgV0ZETUEwLCBNVF9JTlRfUlhfRE9ORV9XTSwgTVQ3OTk2X1JYUV9NQ1VfV00pO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTYxLVxcdC8qIGZvciBtdDc5OTAsIFJYIHJpbmcgMSBpcyBmb3IgU0RPIGluc3RlYWQgKi9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzo2MjpcXHRSWFFfQ09ORklHKE1UX1JYUV9NQ1VfV0EsIFdGRE1BMCwgTVRfSU5UX1JYX0RPTkVfV0EsIE1UNzk5Nl9SWFFfTUNVX1dBKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzo2MzpcXHRSWFFfQ09ORklHKE1UX1JYUV9NQUlOLCBXRkRNQTAsIE1UX0lOVF9SWF9ET05FX0JBTkQwLCBNVDc5OTZfUlhRX0JBTkQwKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy02NC1cXHRpZiAobXQ3OTk2X2hhc193YShkZXYpKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTY1LVxcdFxcdFJYUV9DT05GSUcoTVRfUlhRX01BSU5fV0EsIFdGRE1BMCwgTVRfSU5UX1JYX0RPTkVfV0FfTUFJTixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzo2NjpcXHRcXHRcXHQgICBNVDc5OTZfUlhRX01DVV9XQV9NQUlOKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy02Ny1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTY5LVxcdGNhc2UgTVQ3OTkyX0RFVklDRV9JRDpcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzo3MDpcXHRcXHRSWFFfQ09ORklHKE1UX1JYUV9CQU5EMV9XQSwgV0ZETUEwLCBNVF9JTlRfUlhfRE9ORV9XQV9FWFQsIE1UNzk5Nl9SWFFfTUNVX1dBX0VYVCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6NzE6XFx0XFx0UlhRX0NPTkZJRyhNVF9SWFFfQkFORDEsIFdGRE1BMCwgTVRfSU5UX1JYX0RPTkVfQkFORDEsIE1UNzk5Nl9SWFFfQkFORDEpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTcyLVxcdFxcdGJyZWFrO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTczLVxcdGNhc2UgTVQ3OTkwX0RFVklDRV9JRDpcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzo3NDpcXHRcXHRSWFFfQ09ORklHKE1UX1JYUV9CQU5EMSwgV0ZETUEwLCBNVF9JTlRfUlhfRE9ORV9CQU5EMSwgTVQ3OTk2X1JYUV9CQU5EMSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtNzUtXFx0XFx0UlhRX0NPTkZJRyhNVF9SWFFfVFhGUkVFX0JBTkQwLCBXRkRNQTAsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy04MC1cXHRcXHRicmVhaztcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzo4MTpcXHRjYXNlIE1UNzk5Nl9ERVZJQ0VfSUQ6XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtODItXFx0ZGVmYXVsdDpcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy04My1cXHRcXHQvKiBtdDc5OTYgYmFuZDIgKi9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzo4NDpcXHRcXHRSWFFfQ09ORklHKE1UX1JYUV9CQU5EMl9XQSwgV0ZETUEwLCBNVF9JTlRfUlhfRE9ORV9XQV9UUkksIE1UNzk5Nl9SWFFfTUNVX1dBX1RSSSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6ODU6XFx0XFx0UlhRX0NPTkZJRyhNVF9SWFFfQkFORDIsIFdGRE1BMCwgTVRfSU5UX1JYX0RPTkVfQkFORDIsIE1UNzk5Nl9SWFFfQkFORDIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTg2LVxcdFxcdGJyZWFrO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtOTEtXFx0XFx0UlhRX0NPTkZJRyhNVF9SWFFfUlJPX0JBTkQwLCBXRkRNQTAsIE1UX0lOVF9SWF9ET05FX1JST19CQU5EMCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzo5MjpcXHRcXHRcXHQgICBNVDc5OTZfUlhRX1JST19CQU5EMCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtOTMtXFx0XFx0aWYgKGRldi1cXHUwMDNlbXQ3Ni5od3Jyb19tb2RlID09IE1UNzZfSFdSUk9fVjMpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy05NS1cXHRcXHRcXHRcXHQgICBNVF9JTlRfUlhfRE9ORV9NU0RVX1BHX0JBTkQwLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjk2OlxcdFxcdFxcdFxcdCAgIE1UNzk5Nl9SWFFfTVNEVV9QR19CQU5EMCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtOTctXFx0XFx0aWYgKGlzX210Nzk5NihcXHUwMDI2ZGV2LVxcdTAwM2VtdDc2KSkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTk4LVxcdFxcdFxcdFJYUV9DT05GSUcoTVRfUlhRX1RYRlJFRV9CQU5EMCwgV0ZETUEwLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjk5OlxcdFxcdFxcdFxcdCAgIE1UX0lOVF9SWF9UWEZSRUVfTUFJTiwgTVQ3OTk2X1JYUV9UWEZSRUUwKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy0xMDAtXFx0XFx0XFx0LyogYmFuZDEgKi9cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTEwMi1cXHRcXHRcXHRcXHQgICBNVF9JTlRfUlhfRE9ORV9NU0RVX1BHX0JBTkQxLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjEwMzpcXHRcXHRcXHRcXHQgICBNVDc5OTZfUlhRX01TRFVfUEdfQkFORDEpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTEwNC1cXHRcXHRcXHQvKiBiYW5kMiAqL1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtMTA2LVxcdFxcdFxcdFxcdCAgIE1UX0lOVF9SWF9ET05FX1JST19CQU5EMixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzoxMDc6XFx0XFx0XFx0XFx0ICAgTVQ3OTk2X1JYUV9SUk9fQkFORDIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTEwOC1cXHRcXHRcXHRSWFFfQ09ORklHKE1UX1JYUV9NU0RVX1BBR0VfQkFORDIsIFdGRE1BMCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy0xMDktXFx0XFx0XFx0XFx0ICAgTVRfSU5UX1JYX0RPTkVfTVNEVV9QR19CQU5EMixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzoxMTA6XFx0XFx0XFx0XFx0ICAgTVQ3OTk2X1JYUV9NU0RVX1BHX0JBTkQyKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy0xMTEtXFx0XFx0XFx0UlhRX0NPTkZJRyhNVF9SWFFfVFhGUkVFX0JBTkQyLCBXRkRNQTAsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6MTEyOlxcdFxcdFxcdFxcdCAgIE1UX0lOVF9SWF9UWEZSRUVfVFJJLCBNVDc5OTZfUlhRX1RYRlJFRTIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTExMy1cXHRcXHR9IGVsc2Uge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtMTE1LVxcdFxcdFxcdFxcdCAgIE1UX0lOVF9SWF9ET05FX1JST19CQU5EMSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzoxMTY6XFx0XFx0XFx0XFx0ICAgTVQ3OTk2X1JYUV9SUk9fQkFORDEpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTExNy1cXHRcXHR9XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy0xMjEtXFx0XFx0XFx0XFx0ICAgTVRfSU5UX1JYX0RPTkVfUlJPX0lORCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzoxMjI6XFx0XFx0XFx0XFx0ICAgTVQ3OTk2X1JYUV9SUk9fSU5EKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy0xMjMtXFx0XFx0ZWxzZVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtMTI1LVxcdFxcdFxcdFxcdCAgIE1UX0lOVF9SWF9ET05FX1JST19SWERNQURfQyxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzoxMjY6XFx0XFx0XFx0XFx0ICAgTVQ3OTk2X1JYUV9SUk9fUlhETUFEX0MpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTEyNy1cXHR9XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy0xMzMtXFx0XFx0XFx0XFx0VFhRX0NPTkZJRygwLCBXRkRNQTAsIE1UX0lOVF9UWF9ET05FX0JBTkQyLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjEzNDpcXHRcXHRcXHRcXHRcXHQgICBNVDc5OTZfVFhRX0JBTkQyKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy0xMzUtXFx0XFx0XFx0XFx0VFhRX0NPTkZJRygxLCBXRkRNQTAsIE1UX0lOVF9UWF9ET05FX0JBTkQwLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjEzNjpcXHRcXHRcXHRcXHRcXHQgICBNVDc5OTZfVFhRX0JBTkQwKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy0xMzctXFx0XFx0XFx0XFx0VFhRX0NPTkZJRygyLCBXRkRNQTAsIE1UX0lOVF9UWF9ET05FX0JBTkQxLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjEzODpcXHRcXHRcXHRcXHRcXHQgICBNVDc5OTZfVFhRX0JBTkQxKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy0xMzktXFx0XFx0XFx0fSBlbHNlIHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTE0MS1cXHRcXHRcXHRcXHRUWFFfQ09ORklHKDAsIFdGRE1BMCwgTVRfSU5UX1RYX0RPTkVfQkFORDAsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6MTQyOlxcdFxcdFxcdFxcdFxcdCAgIE1UNzk5Nl9UWFFfQkFORDApO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTE0My1cXHRcXHRcXHRcXHRUWFFfQ09ORklHKDEsIFdGRE1BMCwgTVRfSU5UX1RYX0RPTkVfQkFORDEsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6MTQ0OlxcdFxcdFxcdFxcdFxcdCAgIE1UNzk5Nl9UWFFfQkFORDEpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTE0NS1cXHRcXHRcXHRcXHRUWFFfQ09ORklHKDIsIFdGRE1BMCwgTVRfSU5UX1RYX0RPTkVfQkFORDIsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6MTQ2OlxcdFxcdFxcdFxcdFxcdCAgIE1UNzk5Nl9UWFFfQkFORDIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTE0Ny1cXHRcXHRcXHR9XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy0xNTAtXFx0XFx0XFx0VFhRX0NPTkZJRygwLCBXRkRNQTAsIE1UX0lOVF9UWF9ET05FX0JBTkQwLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjE1MTpcXHRcXHRcXHRcXHQgICBNVDc5OTZfVFhRX0JBTkQwKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy0xNTItXFx0XFx0XFx0VFhRX0NPTkZJRygyLCBXRkRNQTAsIE1UX0lOVF9UWF9ET05FX0JBTkQxLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjE1MzpcXHRcXHRcXHRcXHQgICBNVDc5OTZfVFhRX0JBTkQxKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy0xNTQtXFx0XFx0fVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtMTU4LVxcdFxcdFxcdFRYUV9DT05GSUcoMCwgV0ZETUEwLCBNVF9JTlRfVFhfRE9ORV9CQU5EMCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzoxNTk6XFx0XFx0XFx0XFx0ICAgTVQ3OTk2X1RYUV9CQU5EMCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtMTYwLVxcdFxcdFxcdFRYUV9DT05GSUcoMSwgV0ZETUEwLCBNVF9JTlRfVFhfRE9ORV9CQU5EMixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzoxNjE6XFx0XFx0XFx0XFx0ICAgTVQ3OTk2X1RYUV9CQU5EMik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtMTYyLVxcdFxcdH0gZWxzZSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy0xNjQtXFx0XFx0XFx0VFhRX0NPTkZJRygwLCBXRkRNQTAsIE1UX0lOVF9UWF9ET05FX0JBTkQwLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjE2NTpcXHRcXHRcXHRcXHQgICBNVDc5OTZfVFhRX0JBTkQwKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy0xNjYtXFx0XFx0XFx0VFhRX0NPTkZJRygxLCBXRkRNQTAsIE1UX0lOVF9UWF9ET05FX0JBTkQxLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjE2NzpcXHRcXHRcXHRcXHQgICBNVDc5OTZfVFhRX0JBTkQxKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy0xNjgtXFx0XFx0fVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtMTcxLVxcdC8qIG1jdSB0eCBxdWV1ZSAqL1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjE3MjpcXHRNQ1VRX0NPTkZJRyhNVF9NQ1VRX0ZXREwsIFdGRE1BMCwgTVRfSU5UX1RYX0RPTkVfRldETCwgTVQ3OTk2X1RYUV9GV0RMKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzoxNzM6XFx0TUNVUV9DT05GSUcoTVRfTUNVUV9XTSwgV0ZETUEwLCBNVF9JTlRfVFhfRE9ORV9NQ1VfV00sIE1UNzk5Nl9UWFFfTUNVX1dNKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy0xNzQtXFx0aWYgKG10Nzk5Nl9oYXNfd2EoZGV2KSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy0xNzUtXFx0XFx0TUNVUV9DT05GSUcoTVRfTUNVUV9XQSwgV0ZETUEwLCBNVF9JTlRfVFhfRE9ORV9NQ1VfV0EsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6MTc2OlxcdFxcdFxcdCAgICBNVDc5OTZfVFhRX01DVV9XQSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtMTc3LX1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jPTUyMT1pbnQgbXQ3OTk2X2RtYV9ycm9faW5pdChzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtNTM1LVxcdFxcdFxcdFxcdCAgICAgICBNVF9SWFFfSUQoTVRfUlhRX1JST19SWERNQURfQyksXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6NTM2OlxcdFxcdFxcdFxcdCAgICAgICBNVDc5OTZfUlhfUklOR19TSVpFLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjUzNzpcXHRcXHRcXHRcXHQgICAgICAgTVQ3OTk2X1JYX0JVRl9TSVpFLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTUzOC1cXHRcXHRcXHRcXHQgICAgICAgTVRfUlhRX1JST19BUF9SSU5HX0JBU0UpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtNTYxLVxcdFxcdFxcdCAgICAgICBNVF9SWFFfSUQoTVRfUlhRX1JST19JTkQpLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjU2MjpcXHRcXHRcXHQgICAgICAgTVQ3OTk2X1JYX1JJTkdfU0laRSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy01NjMtXFx0XFx0XFx0ICAgICAgIDAsIE1UX1JYUV9SUk9fSU5EX1JJTkdfQkFTRSk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy01NzQtXFx0c2l6ZSA9IGlzX210Nzk5NihtZGV2KSBcXHUwMDI2XFx1MDAyNiBtdDc2X25wdV9kZXZpY2VfYWN0aXZlKG1kZXYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6NTc1OlxcdCAgICAgICA/IE1UNzk5Nl9OUFVfUlhfUklOR19TSVpFIC8gNCA6IE1UNzk5Nl9SWF9SSU5HX1NJWkU7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtNTc2LVxcdHJldCA9IG10NzZfcXVldWVfYWxsb2MoZGV2LCBcXHUwMDI2bWRldi1cXHUwMDNlcV9yeFtNVF9SWFFfTVNEVV9QQUdFX0JBTkQwXSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy01NzctXFx0XFx0XFx0ICAgICAgIE1UX1JYUV9JRChNVF9SWFFfTVNEVV9QQUdFX0JBTkQwKSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzo1Nzg6XFx0XFx0XFx0ICAgICAgIHNpemUsIE1UNzk5Nl9SWF9NU0RVX1BBR0VfU0laRSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy01NzktXFx0XFx0XFx0ICAgICAgIE1UX1JYUV9SSU5HX0JBU0UoTVRfUlhRX01TRFVfUEFHRV9CQU5EMCkpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtNTkxLVxcdFxcdHNpemUgPSBpc19tdDc5OTYobWRldikgXFx1MDAyNlxcdTAwMjYgbXQ3Nl9ucHVfZGV2aWNlX2FjdGl2ZShtZGV2KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjU5MjpcXHRcXHQgICAgICAgPyBNVDc5OTZfTlBVX1JYX1JJTkdfU0laRSAvIDIgOiBNVDc5OTZfUlhfUklOR19TSVpFO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTU5My1cXHRcXHRyZXQgPSBtdDc2X3F1ZXVlX2FsbG9jKGRldiwgXFx1MDAyNm1kZXYtXFx1MDAzZXFfcnhbTVRfUlhRX01TRFVfUEFHRV9CQU5EMV0sXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtNTk0LVxcdFxcdFxcdFxcdCAgICAgICBNVF9SWFFfSUQoTVRfUlhRX01TRFVfUEFHRV9CQU5EMSksXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6NTk1OlxcdFxcdFxcdFxcdCAgICAgICBzaXplLCBNVDc5OTZfUlhfTVNEVV9QQUdFX1NJWkUsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtNTk2LVxcdFxcdFxcdFxcdCAgICAgICBNVF9SWFFfUklOR19CQVNFKE1UX1JYUV9NU0RVX1BBR0VfQkFORDEpKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTYwOS1cXHRcXHRzaXplID0gaXNfbXQ3OTk2KG1kZXYpIFxcdTAwMjZcXHUwMDI2IG10NzZfbnB1X2RldmljZV9hY3RpdmUobWRldilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzo2MTA6XFx0XFx0ICAgICAgID8gTVQ3OTk2X05QVV9SWF9SSU5HX1NJWkUgOiBNVDc5OTZfUlhfUklOR19TSVpFO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTYxMS1cXHRcXHRyZXQgPSBtdDc2X3F1ZXVlX2FsbG9jKGRldiwgXFx1MDAyNm1kZXYtXFx1MDAzZXFfcnhbTVRfUlhRX01TRFVfUEFHRV9CQU5EMl0sXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtNjEyLVxcdFxcdFxcdFxcdCAgICAgICBNVF9SWFFfSUQoTVRfUlhRX01TRFVfUEFHRV9CQU5EMiksXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6NjEzOlxcdFxcdFxcdFxcdCAgICAgICBzaXplLCBNVDc5OTZfUlhfTVNEVV9QQUdFX1NJWkUsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtNjE0LVxcdFxcdFxcdFxcdCAgICAgICBNVF9SWFFfUklOR19CQVNFKE1UX1JYUV9NU0RVX1BBR0VfQkFORDIpKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jPTY2ND1pbnQgbXQ3OTk2X2RtYV9pbml0KHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy02ODMtXFx0XFx0cmV0ID0gbXQ3OTk2X2luaXRfdHhfcXVldWVzKFxcdTAwMjZkZXYtXFx1MDAzZXBoeSwgTVRfVFhRX0lEKDApLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjY4NDpcXHRcXHRcXHRcXHRcXHQgICAgTVQ3OTk2X05QVV9UWF9SSU5HX1NJWkUsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtNjg1LVxcdFxcdFxcdFxcdFxcdCAgICBNVF9UWFFfUklOR19CQVNFKDApICsgaGlmMV9vZnMsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy02ODktXFx0XFx0XFx0XFx0XFx0ICAgIE1UX1RYUV9JRChkZXYtXFx1MDAzZW1waHkuYmFuZF9pZHgpLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjY5MDpcXHRcXHRcXHRcXHRcXHQgICAgTVQ3OTk2X1RYX1JJTkdfU0laRSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy02OTEtXFx0XFx0XFx0XFx0XFx0ICAgIE1UX1RYUV9SSU5HX0JBU0UoMCksIHdlZCk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy02OTctXFx0XFx0XFx0XFx0ICBNVF9NQ1VRX0lEKE1UX01DVVFfV00pLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjY5ODpcXHRcXHRcXHRcXHQgIE1UNzk5Nl9UWF9NQ1VfUklOR19TSVpFLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTY5OS1cXHRcXHRcXHRcXHQgIE1UX01DVVFfUklOR19CQVNFKE1UX01DVVFfV00pKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTcwNi1cXHRcXHRcXHRcXHRcXHQgIE1UX01DVVFfSUQoTVRfTUNVUV9XQSksXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6NzA3OlxcdFxcdFxcdFxcdFxcdCAgTVQ3OTk2X1RYX01DVV9SSU5HX1NJWkUsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtNzA4LVxcdFxcdFxcdFxcdFxcdCAgTVRfTUNVUV9SSU5HX0JBU0UoTVRfTUNVUV9XQSkpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtNzE1LVxcdFxcdFxcdFxcdCAgTVRfTUNVUV9JRChNVF9NQ1VRX0ZXREwpLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjcxNjpcXHRcXHRcXHRcXHQgIE1UNzk5Nl9UWF9GV0RMX1JJTkdfU0laRSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy03MTctXFx0XFx0XFx0XFx0ICBNVF9NQ1VRX1JJTkdfQkFTRShNVF9NQ1VRX0ZXREwpKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTcyMy1cXHRcXHRcXHQgICAgICAgTVRfUlhRX0lEKE1UX1JYUV9NQ1UpLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjcyNDpcXHRcXHRcXHQgICAgICAgTVQ3OTk2X1JYX01DVV9SSU5HX1NJWkUsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6NzI1OlxcdFxcdFxcdCAgICAgICBNVDc5OTZfUlhfTUNVX0JVRl9TSVpFLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTcyNi1cXHRcXHRcXHQgICAgICAgTVRfUlhRX1JJTkdfQkFTRShNVF9SWFFfTUNVKSk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy03MzItXFx0XFx0XFx0ICAgICAgIE1UX1JYUV9JRChNVF9SWFFfTUNVX1dBKSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzo3MzM6XFx0XFx0XFx0ICAgICAgIE1UNzk5Nl9SWF9NQ1VfUklOR19TSVpFX1dBLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjczNDpcXHRcXHRcXHQgICAgICAgTVQ3OTk2X1JYX01DVV9CVUZfU0laRSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy03MzUtXFx0XFx0XFx0ICAgICAgIE1UX1JYUV9SSU5HX0JBU0UoTVRfUlhRX01DVV9XQSkpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtNzQ2LVxcdFxcdFxcdCAgICAgICBNVF9SWFFfSUQoTVRfUlhRX01BSU4pLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjc0NzpcXHRcXHRcXHQgICAgICAgTVQ3OTk2X1JYX1JJTkdfU0laRSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy03NDgtXFx0XFx0XFx0ICAgICAgIE1UX1JYX0JVRl9TSVpFLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtNzY2LVxcdFxcdFxcdFxcdCAgICAgICBNVF9SWFFfSUQoTVRfUlhRX01BSU5fV0EpLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjc2NzpcXHRcXHRcXHRcXHQgICAgICAgTVQ3OTk2X1JYX01DVV9SSU5HX1NJWkUsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtNzY4LVxcdFxcdFxcdFxcdCAgICAgICBNVF9SWF9CVUZfU0laRSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTc3OC1cXHRcXHRcXHRcXHQgICAgICAgTVRfUlhRX0lEKE1UX1JYUV9UWEZSRUVfQkFORDApLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjc3OTpcXHRcXHRcXHRcXHQgICAgICAgTVQ3OTk2X1JYX01DVV9SSU5HX1NJWkUsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6NzgwOlxcdFxcdFxcdFxcdCAgICAgICBNVDc5OTZfUlhfQlVGX1NJWkUsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtNzgxLVxcdFxcdFxcdFxcdCAgICAgICBNVF9SWFFfUklOR19CQVNFKE1UX1JYUV9UWEZSRUVfQkFORDApKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTc5Mi1cXHRcXHRcXHRcXHQgICAgICAgTVRfUlhRX0lEKE1UX1JYUV9UWEZSRUVfQkFORDEpLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjc5MzpcXHRcXHRcXHRcXHQgICAgICAgTVQ3OTk2X1JYX01DVV9SSU5HX1NJWkUsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6Nzk0OlxcdFxcdFxcdFxcdCAgICAgICBNVDc5OTZfUlhfQlVGX1NJWkUsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtNzk1LVxcdFxcdFxcdFxcdCAgICAgICBNVF9SWFFfUklOR19CQVNFKE1UX1JYUV9UWEZSRUVfQkFORDEpKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTgwNC1cXHRcXHRcXHRcXHQgICAgICAgTVRfUlhRX0lEKE1UX1JYUV9CQU5EMiksXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6ODA1OlxcdFxcdFxcdFxcdCAgICAgICBNVDc5OTZfUlhfUklOR19TSVpFLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTgwNi1cXHRcXHRcXHRcXHQgICAgICAgTVRfUlhfQlVGX1NJWkUsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy04MjAtXFx0XFx0XFx0XFx0ICAgICAgIE1UX1JYUV9JRChNVF9SWFFfQkFORDJfV0EpLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjgyMTpcXHRcXHRcXHRcXHQgICAgICAgTVQ3OTk2X1JYX01DVV9SSU5HX1NJWkUsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtODIyLVxcdFxcdFxcdFxcdCAgICAgICBNVF9SWF9CVUZfU0laRSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTgzNS1cXHRcXHRcXHRcXHQgICAgICAgTVRfUlhRX0lEKE1UX1JYUV9CQU5EMSksXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6ODM2OlxcdFxcdFxcdFxcdCAgICAgICBNVDc5OTZfUlhfUklOR19TSVpFLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTgzNy1cXHRcXHRcXHRcXHQgICAgICAgTVRfUlhfQlVGX1NJWkUsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy04NTItXFx0XFx0XFx0XFx0XFx0ICAgICAgIE1UX1JYUV9JRChNVF9SWFFfQkFORDFfV0EpLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjg1MzpcXHRcXHRcXHRcXHRcXHQgICAgICAgTVQ3OTk2X1JYX01DVV9SSU5HX1NJWkUsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtODU0LVxcdFxcdFxcdFxcdFxcdCAgICAgICBNVF9SWF9CVUZfU0laRSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTg2OC1cXHRcXHRcXHRcXHQgICAgICAgTVRfUlhRX0lEKE1UX1JYUV9SUk9fQkFORDApLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjg2OTpcXHRcXHRcXHRcXHQgICAgICAgTVQ3OTk2X1JYX1JJTkdfU0laRSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzo4NzA6XFx0XFx0XFx0XFx0ICAgICAgIE1UNzk5Nl9SWF9CVUZfU0laRSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy04NzEtXFx0XFx0XFx0XFx0ICAgICAgIE1UX1JYUV9SSU5HX0JBU0UoTVRfUlhRX1JST19CQU5EMCkpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtODgzLVxcdFxcdFxcdFxcdFxcdCAgICAgICBNVF9SWFFfSUQoTVRfUlhRX1JST19CQU5EMSksXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6ODg0OlxcdFxcdFxcdFxcdFxcdCAgICAgICBNVDc5OTZfUlhfUklOR19TSVpFLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjg4NTpcXHRcXHRcXHRcXHRcXHQgICAgICAgTVQ3OTk2X1JYX0JVRl9TSVpFLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTg4Ni1cXHRcXHRcXHRcXHRcXHQgICAgICAgTVRfUlhRX1JJTkdfQkFTRShNVF9SWFFfUlJPX0JBTkQxKSArIGhpZjFfb2ZzKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTkwMC1cXHRcXHRcXHRcXHRcXHQgICAgICAgTVRfUlhRX0lEKE1UX1JYUV9UWEZSRUVfQkFORDApLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjkwMTpcXHRcXHRcXHRcXHRcXHQgICAgICAgTVQ3OTk2X1JYX01DVV9SSU5HX1NJWkUsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6OTAyOlxcdFxcdFxcdFxcdFxcdCAgICAgICBNVDc5OTZfUlhfQlVGX1NJWkUsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtOTAzLVxcdFxcdFxcdFxcdFxcdCAgICAgICBNVF9SWFFfUklOR19CQVNFKE1UX1JYUV9UWEZSRUVfQkFORDApKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTkxOS1cXHRcXHRcXHQgICAgICAgbXQ3Nl9ucHVfZGV2aWNlX2FjdGl2ZShcXHUwMDI2ZGV2LVxcdTAwM2VtdDc2KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjkyMDpcXHRcXHRcXHQgICAgICAgPyBNVDc5OTZfTlBVX1JYX1JJTkdfU0laRSA6IE1UNzk5Nl9SWF9SSU5HX1NJWkU7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtOTIxLVxcdFxcdFxcdHJldCA9IG10NzZfcXVldWVfYWxsb2MoZGV2LCBcXHUwMDI2ZGV2LVxcdTAwM2VtdDc2LnFfcnhbTVRfUlhRX1JST19CQU5EMl0sXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtOTIyLVxcdFxcdFxcdFxcdFxcdCAgICAgICBNVF9SWFFfSUQoTVRfUlhRX1JST19CQU5EMiksXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6OTIzOlxcdFxcdFxcdFxcdFxcdCAgICAgICBzaXplLCBNVDc5OTZfUlhfQlVGX1NJWkUsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtOTI0LVxcdFxcdFxcdFxcdFxcdCAgICAgICBNVF9SWFFfUklOR19CQVNFKE1UX1JYUV9SUk9fQkFORDIpICsgaGlmMV9vZnMpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtOTM0LVxcdFxcdFxcdFxcdFxcdCAgICAgICBNVF9SWFFfSUQoTVRfUlhRX1RYRlJFRV9CQU5EMiksXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6OTM1OlxcdFxcdFxcdFxcdFxcdCAgICAgICBNVDc5OTZfUlhfTUNVX1JJTkdfU0laRSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzo5MzY6XFx0XFx0XFx0XFx0XFx0ICAgICAgIE1UNzk5Nl9SWF9CVUZfU0laRSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy05MzctXFx0XFx0XFx0XFx0XFx0ICAgICAgIE1UX1JYUV9SSU5HX0JBU0UoTVRfUlhRX1RYRlJFRV9CQU5EMikgKyBoaWYxX29mcyk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9lZXByb20uYz0xMD1zdGF0aWMgaW50IG10Nzk5Nl9jaGVja19lZXByb20oc3RydWN0IG10Nzk5Nl9kZXYgKmRldilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2VlcHJvbS5jLTE1LVxcdHN3aXRjaCAodmFsKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmM6MTY6XFx0Y2FzZSBNVDc5OTZfREVWSUNFX0lEOlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2VlcHJvbS5jLTE3LVxcdFxcdHJldHVybiBpc19tdDc5OTYoXFx1MDAyNmRldi1cXHUwMDNlbXQ3NikgPyAwIDogLUVJTlZBTDtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2VlcHJvbS5jPTI3PXN0YXRpYyBjaGFyICptdDc5OTZfZWVwcm9tX25hbWUoc3RydWN0IG10Nzk5Nl9kZXYgKmRldilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2VlcHJvbS5jLTMyLVxcdFxcdGNhc2UgTVQ3OTkyX1ZBUl9UWVBFXzIzOlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2VlcHJvbS5jOjMzOlxcdFxcdFxcdGlmIChkZXYtXFx1MDAzZXZhci5mZW0gPT0gTVQ3OTk2X0ZFTV9JTlQpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmMtMzQtXFx0XFx0XFx0XFx0cmV0dXJuIE1UNzk5Ml9FRVBST01fREVGQVVMVF8yM19JTlQ7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9lZXByb20uYy0zOS1cXHRcXHRkZWZhdWx0OlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2VlcHJvbS5jOjQwOlxcdFxcdFxcdGlmIChkZXYtXFx1MDAzZXZhci5mZW0gPT0gTVQ3OTk2X0ZFTV9JTlQpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmMtNDEtXFx0XFx0XFx0XFx0cmV0dXJuIE1UNzk5Ml9FRVBST01fREVGQVVMVF9JTlQ7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmM6NDI6XFx0XFx0XFx0aWYgKGRldi1cXHUwMDNldmFyLmZlbSA9PSBNVDc5OTZfRkVNX01JWClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9lZXByb20uYy00My1cXHRcXHRcXHRcXHRyZXR1cm4gTVQ3OTkyX0VFUFJPTV9ERUZBVUxUX01JWDtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2VlcHJvbS5jLTQ2LVxcdGNhc2UgTVQ3OTkwX0RFVklDRV9JRDpcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9lZXByb20uYzo0NzpcXHRcXHRpZiAoZGV2LVxcdTAwM2V2YXIuZmVtID09IE1UNzk5Nl9GRU1fSU5UKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2VlcHJvbS5jLTQ4LVxcdFxcdFxcdHJldHVybiBNVDc5OTBfRUVQUk9NX0RFRkFVTFRfSU5UO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2VlcHJvbS5jLTQ5LVxcdFxcdHJldHVybiBNVDc5OTBfRUVQUk9NX0RFRkFVTFQ7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmM6NTA6XFx0Y2FzZSBNVDc5OTZfREVWSUNFX0lEOlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2VlcHJvbS5jLTUxLVxcdGRlZmF1bHQ6XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmMtNTItXFx0XFx0c3dpdGNoIChkZXYtXFx1MDAzZXZhci50eXBlKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmM6NTM6XFx0XFx0Y2FzZSBNVDc5OTZfVkFSX1RZUEVfMjMzOlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2VlcHJvbS5jOjU0OlxcdFxcdFxcdGlmIChkZXYtXFx1MDAzZXZhci5mZW0gPT0gTVQ3OTk2X0ZFTV9JTlQpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmM6NTU6XFx0XFx0XFx0XFx0cmV0dXJuIE1UNzk5Nl9FRVBST01fREVGQVVMVF8yMzNfSU5UO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2VlcHJvbS5jOjU2OlxcdFxcdFxcdHJldHVybiBNVDc5OTZfRUVQUk9NX0RFRkFVTFRfMjMzO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2VlcHJvbS5jOjU3OlxcdFxcdGNhc2UgTVQ3OTk2X1ZBUl9UWVBFXzQ0NDpcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9lZXByb20uYy01OC1cXHRcXHRkZWZhdWx0OlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2VlcHJvbS5jOjU5OlxcdFxcdFxcdGlmIChkZXYtXFx1MDAzZXZhci5mZW0gPT0gTVQ3OTk2X0ZFTV9JTlQpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmM6NjA6XFx0XFx0XFx0XFx0cmV0dXJuIE1UNzk5Nl9FRVBST01fREVGQVVMVF9JTlQ7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmM6NjE6XFx0XFx0XFx0cmV0dXJuIE1UNzk5Nl9FRVBST01fREVGQVVMVDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9lZXByb20uYy02Mi1cXHRcXHR9XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9lZXByb20uYz05OD1zdGF0aWMgYm9vbCBtdDc5OTZfZWVwcm9tX3ZhcmlhbnRfdmFsaWQoc3RydWN0IG10Nzk5Nl9kZXYgKmRldiwgY29uc3QgdTggKmRlZilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2VlcHJvbS5jLTEwOC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9lZXByb20uYzoxMDk6XFx0aWYgKGRldi1cXHUwMDNldmFyLmZlbSA9PSBNVDc5OTZfRkVNX0VYVCBcXHUwMDI2XFx1MDAyNlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2VlcHJvbS5jLTExMC1cXHQgICAgIShmZW1bMF0gPT0gRkVNX0VYVCBcXHUwMDI2XFx1MDAyNiBmZW1bMV0gPT0gRkVNX0VYVCkpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmMtMTExLVxcdFxcdHJldHVybiBmYWxzZTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9lZXByb20uYzoxMTI6XFx0ZWxzZSBpZiAoZGV2LVxcdTAwM2V2YXIuZmVtID09IE1UNzk5Nl9GRU1fSU5UIFxcdTAwMjZcXHUwMDI2XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmMtMTEzLVxcdFxcdCAhKGZlbVswXSA9PSBGRU1fSU5UIFxcdTAwMjZcXHUwMDI2IGZlbVsxXSA9PSBGRU1fSU5UKSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9lZXByb20uYy0xMTQtXFx0XFx0cmV0dXJuIGZhbHNlO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2VlcHJvbS5jOjExNTpcXHRlbHNlIGlmIChkZXYtXFx1MDAzZXZhci5mZW0gPT0gTVQ3OTk2X0ZFTV9NSVggXFx1MDAyNlxcdTAwMjZcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9lZXByb20uYy0xMTYtXFx0XFx0ICEoZmVtWzBdID09IEZFTV9JTlQgXFx1MDAyNlxcdTAwMjYgZmVtWzFdID09IEZFTV9FWFQpKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmM9MTM3PW10Nzk5Nl9lZXByb21fY2hlY2tfb3JfdXNlX2RlZmF1bHQoc3RydWN0IG10Nzk5Nl9kZXYgKmRldiwgYm9vbCB1c2VfZGVmYXVsdClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2VlcHJvbS5jLTE1Mi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9lZXByb20uYzoxNTM6XFx0aWYgKGZ3LVxcdTAwM2VzaXplIFxcdTAwM2MgTVQ3OTk2X0VFUFJPTV9TSVpFKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmMtMTU0LVxcdFxcdGRldl9lcnIoZGV2LVxcdTAwM2VtdDc2LmRldiwgXFxcIkludmFsaWQgZGVmYXVsdCBiaW4gc2l6ZVxcXFxuXFxcIik7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9lZXByb20uYy0xNjItXFx0ZGV2X3dhcm4oZGV2LVxcdTAwM2VtdDc2LmRldiwgXFxcImVlcHJvbSBsb2FkIGZhaWwsIHVzZSBkZWZhdWx0IGJpblxcXFxuXFxcIik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmM6MTYzOlxcdG1lbWNweShlZXByb20sIGZ3LVxcdTAwM2VkYXRhLCBNVDc5OTZfRUVQUk9NX1NJWkUpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2VlcHJvbS5jLTE2NC1cXHRkZXYtXFx1MDAzZWVlcHJvbV9tb2RlID0gRUVQUk9NX01PREVfREVGQVVMVF9CSU47XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9lZXByb20uYz0xNzI9c3RhdGljIGludCBtdDc5OTZfZWVwcm9tX2xvYWQoc3RydWN0IG10Nzk5Nl9kZXYgKmRldilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2VlcHJvbS5jLTE3Ny1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9lZXByb20uYzoxNzg6XFx0cmV0ID0gbXQ3Nl9lZXByb21faW5pdChcXHUwMDI2ZGV2LVxcdTAwM2VtdDc2LCBNVDc5OTZfRUVQUk9NX1NJWkUpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2VlcHJvbS5jLTE3OS1cXHRpZiAocmV0IFxcdTAwM2MgMClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2VlcHJvbS5jLTE4Ni1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9lZXByb20uYzoxODc6XFx0bWVtc2V0KGRldi1cXHUwMDNlbXQ3Ni5lZXByb20uZGF0YSwgMCwgTVQ3OTk2X0VFUFJPTV9TSVpFKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9lZXByb20uYy0xODgtXFx0aWYgKG10Nzk5Nl9oYXNfZXh0X2VlcHJvbShkZXYpKSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9lZXByb20uYy0xOTAtXFx0XFx0ZGV2LVxcdTAwM2VlZXByb21fbW9kZSA9IEVFUFJPTV9NT0RFX0VYVDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9lZXByb20uYzoxOTE6XFx0XFx0ZWVwcm9tX2Jsa19zaXplID0gTVQ3OTk2X0VYVF9FRVBST01fQkxPQ0tfU0laRTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9lZXByb20uYy0xOTItXFx0fSBlbHNlIHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2VlcHJvbS5jLTE5Ni1cXHRcXHRkZXYtXFx1MDAzZWVlcHJvbV9tb2RlID0gRUVQUk9NX01PREVfRUZVU0U7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmM6MTk3OlxcdFxcdGVlcHJvbV9ibGtfc2l6ZSA9IE1UNzk5Nl9FRVBST01fQkxPQ0tfU0laRTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9lZXByb20uYy0xOTgtXFx0XFx0cmV0ID0gbXQ3OTk2X21jdV9nZXRfZWZ1c2VfZnJlZV9ibG9jayhkZXYsIFxcdTAwMjZmcmVlX2Jsb2NrX251bSk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9lZXByb20uYy0yMTctXFx0LyogcmVhZCBlZXByb20gZGF0YSBmcm9tIGZ3ICovXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmM6MjE4OlxcdGJsb2NrX251bSA9IERJVl9ST1VORF9VUChNVDc5OTZfRUVQUk9NX1NJWkUsIGVlcHJvbV9ibGtfc2l6ZSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmMtMjE5LVxcdGZvciAoaSA9IDE7IGkgXFx1MDAzYyBibG9ja19udW07IGkrKykge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmMtMjIyLVxcdFxcdGlmIChpID09IGJsb2NrX251bSAtIDEpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmM6MjIzOlxcdFxcdFxcdGxlbiA9IE1UNzk5Nl9FRVBST01fU0laRSAlIGVlcHJvbV9ibGtfc2l6ZTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9lZXByb20uYy0yMjQtXFx0XFx0cmV0ID0gbXQ3OTk2X21jdV9nZXRfZWVwcm9tKGRldiwgaSAqIGVlcHJvbV9ibGtfc2l6ZSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2VlcHJvbS5jPTM5NT1ib29sIG10Nzk5Nl9lZXByb21faGFzX2JhY2tncm91bmRfcmFkYXIoc3RydWN0IG10Nzk5Nl9kZXYgKmRldilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2VlcHJvbS5jLTM5Ny1cXHRzd2l0Y2ggKG10NzZfY2hpcChcXHUwMDI2ZGV2LVxcdTAwM2VtdDc2KSkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2VlcHJvbS5jOjM5ODpcXHRjYXNlIE1UNzk5Nl9ERVZJQ0VfSUQ6XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmM6Mzk5OlxcdFxcdGlmIChkZXYtXFx1MDAzZXZhci50eXBlID09IE1UNzk5Nl9WQVJfVFlQRV8yMzMpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmMtNDAwLVxcdFxcdFxcdHJldHVybiBmYWxzZTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2VlcHJvbS5oLTUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmg6NjojaWZuZGVmIF9fTVQ3OTk2X0VFUFJPTV9IXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmg6NzojZGVmaW5lIF9fTVQ3OTk2X0VFUFJPTV9IXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmgtOC1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYz0xNz1zdGF0aWMgY29uc3Qgc3RydWN0IGllZWU4MDIxMV9pZmFjZV9saW1pdCBpZl9saW1pdHNfZ2xvYmFsID0ge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYzoxODpcXHQubWF4ID0gTVQ3OTk2X01BWF9JTlRFUkZBQ0VTICogTVQ3OTk2X01BWF9SQURJT1MsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTE5LVxcdC50eXBlcyA9IEJJVChOTDgwMjExX0lGVFlQRV9TVEFUSU9OKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jPTI3PXN0YXRpYyBjb25zdCBzdHJ1Y3QgaWVlZTgwMjExX2lmYWNlX2NvbWJpbmF0aW9uIGlmX2NvbWJfZ2xvYmFsID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTI5LVxcdC5uX2xpbWl0cyA9IDEsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jOjMwOlxcdC5tYXhfaW50ZXJmYWNlcyA9IE1UNzk5Nl9NQVhfSU5URVJGQUNFUyAqIE1UNzk5Nl9NQVhfUkFESU9TLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYzozMTpcXHQubnVtX2RpZmZlcmVudF9jaGFubmVscyA9IE1UNzk5Nl9NQVhfUkFESU9TLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy0zMi1cXHQucmFkYXJfZGV0ZWN0X3dpZHRocyA9IEJJVChOTDgwMjExX0NIQU5fV0lEVEhfMjBfTk9IVCkgfFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jPTM5PXN0YXRpYyBjb25zdCBzdHJ1Y3QgaWVlZTgwMjExX2lmYWNlX2NvbWJpbmF0aW9uIGlmX2NvbWJfZ2xvYmFsXzc5OTIgPSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtNDItXFx0Lm1heF9pbnRlcmZhY2VzID0gMzIsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jOjQzOlxcdC5udW1fZGlmZmVyZW50X2NoYW5uZWxzID0gTVQ3OTk2X01BWF9SQURJT1MgLSAxLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy00NC1cXHQucmFkYXJfZGV0ZWN0X3dpZHRocyA9IEJJVChOTDgwMjExX0NIQU5fV0lEVEhfMjBfTk9IVCkgfFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jPTUxPXN0YXRpYyBjb25zdCBzdHJ1Y3QgaWVlZTgwMjExX2lmYWNlX2xpbWl0IGlmX2xpbWl0c1tdID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTU4LVxcdH0sIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM6NTk6XFx0XFx0Lm1heCA9IE1UNzk5Nl9NQVhfSU5URVJGQUNFUyxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtNjAtXFx0XFx0LnR5cGVzID0gQklUKE5MODAyMTFfSUZUWVBFX1NUQVRJT04pXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM9NjQ9c3RhdGljIGNvbnN0IHN0cnVjdCBpZWVlODAyMTFfaWZhY2VfY29tYmluYXRpb24gaWZfY29tYiA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy02Ni1cXHQubl9saW1pdHMgPSBBUlJBWV9TSVpFKGlmX2xpbWl0cyksXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jOjY3OlxcdC5tYXhfaW50ZXJmYWNlcyA9IE1UNzk5Nl9NQVhfSU5URVJGQUNFUyxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtNjgtXFx0Lm51bV9kaWZmZXJlbnRfY2hhbm5lbHMgPSAxLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jPTg0PXN0YXRpYyBjb25zdCBzdHJ1Y3Qgd2lwaHlfaWZ0eXBlX2V4dF9jYXBhYiBpZnR5cGVzX2V4dF9jYXBhW10gPSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtOTItXFx0XFx0XFx0RklFTERfUFJFUF9DT05TVChJRUVFODAyMTFfTUxEX0NBUF9PUF9NQVhfU0lNVUxfTElOS1MsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jOjkzOlxcdFxcdFxcdFxcdFxcdCBNVDc5OTZfTUFYX1JBRElPUyAtIDEpLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy05NC1cXHR9LCB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtMTAxLVxcdFxcdFxcdEZJRUxEX1BSRVBfQ09OU1QoSUVFRTgwMjExX01MRF9DQVBfT1BfTUFYX1NJTVVMX0xJTktTLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYzoxMDI6XFx0XFx0XFx0XFx0XFx0IE1UNzk5Nl9NQVhfUkFESU9TIC0gMSksXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTEwMy1cXHR9LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jPTEzMj1zdGF0aWMgc3NpemVfdCBtdDc5OTZfdGhlcm1hbF90ZW1wX3N0b3JlKHN0cnVjdCBkZXZpY2UgKmRldixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy0xNDctXFx0LyogYWRkIGEgc2FmZXR5IG1hcmdpbiB+MTAgKi9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM6MTQ4OlxcdGlmICgoaSAtIDEgPT0gTVQ3OTk2X0NSSVRfVEVNUF9JRFggXFx1MDAyNlxcdTAwMjZcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM6MTQ5OlxcdCAgICAgdmFsIFxcdTAwM2UgcGh5LVxcdTAwM2V0aHJvdHRsZV90ZW1wW01UNzk5Nl9NQVhfVEVNUF9JRFhdIC0gMTApIHx8XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jOjE1MDpcXHQgICAgKGkgLSAxID09IE1UNzk5Nl9NQVhfVEVNUF9JRFggXFx1MDAyNlxcdTAwMjZcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM6MTUxOlxcdCAgICAgdmFsIC0gMTAgXFx1MDAzYyBwaHktXFx1MDAzZXRocm90dGxlX3RlbXBbTVQ3OTk2X0NSSVRfVEVNUF9JRFhdKSkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy0xNTItXFx0XFx0ZGV2X2VycihwaHktXFx1MDAzZWRldi1cXHUwMDNlbXQ3Ni5kZXYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM9MTgzPW10Nzk5Nl90aGVybWFsX2dldF9tYXhfdGhyb3R0bGVfc3RhdGUoc3RydWN0IHRoZXJtYWxfY29vbGluZ19kZXZpY2UgKmNkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtMTg1LXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM6MTg2OlxcdCpzdGF0ZSA9IE1UNzk5Nl9DREVWX1RIUk9UVExFX01BWDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtMTg3LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jPTIwMz1tdDc5OTZfdGhlcm1hbF9zZXRfY3VyX3Rocm90dGxlX3N0YXRlKHN0cnVjdCB0aGVybWFsX2Nvb2xpbmdfZGV2aWNlICpjZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTIwNi1cXHRzdHJ1Y3QgbXQ3OTk2X3BoeSAqcGh5ID0gY2Rldi1cXHUwMDNlZGV2ZGF0YTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM6MjA3OlxcdHU4IHRocm90dGxpbmcgPSBNVDc5OTZfVEhFUk1BTF9USFJPVFRMRV9NQVggLSBzdGF0ZTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtMjA4LVxcdGludCByZXQ7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTIwOS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM6MjEwOlxcdGlmIChzdGF0ZSBcXHUwMDNlIE1UNzk5Nl9DREVWX1RIUk9UVExFX01BWCkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy0yMTEtXFx0XFx0ZGV2X2VycihwaHktXFx1MDAzZWRldi1cXHUwMDNlbXQ3Ni5kZXYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM9MjUwPXN0YXRpYyBpbnQgbXQ3OTk2X3RoZXJtYWxfaW5pdChzdHJ1Y3QgbXQ3OTk2X3BoeSAqcGh5KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTI3NC1cXHQvKiBpbml0aWFsaXplIGNyaXRpY2FsL21heGltdW0gaGlnaCB0ZW1wZXJhdHVyZSAqL1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYzoyNzU6XFx0cGh5LVxcdTAwM2V0aHJvdHRsZV90ZW1wW01UNzk5Nl9DUklUX1RFTVBfSURYXSA9IE1UNzk5Nl9DUklUX1RFTVA7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jOjI3NjpcXHRwaHktXFx1MDAzZXRocm90dGxlX3RlbXBbTVQ3OTk2X01BWF9URU1QX0lEWF0gPSBNVDc5OTZfTUFYX1RFTVA7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTI3Ny1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYz02MDM9c3RhdGljIHZvaWQgbXQ3OTk2X21hY19pbml0X2Jhc2ljX3JhdGVzKHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtNjA5LVxcdFxcdC8qIG9kZCBpbmRleCBmb3IgZHJpdmVyLCBldmVuIGluZGV4IGZvciBmaXJtd2FyZSAqL1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYzo2MTA6XFx0XFx0dTE2IGlkeCA9IE1UNzk5Nl9CQVNJQ19SQVRFU19UQkwgKyAyICogaTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtNjExLVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jPTY5MD1zdGF0aWMgaW50IG10Nzk5Nl9yZWdpc3Rlcl9waHkoc3RydWN0IG10Nzk5Nl9kZXYgKmRldiwgZW51bSBtdDc2X2JhbmRfaWQgYmFuZClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy03NTMtXFx0XFx0XFx0ICAgbXQ3Nl9ucHVfZGV2aWNlX2FjdGl2ZShcXHUwMDI2ZGV2LVxcdTAwM2VtdDc2KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYzo3NTQ6XFx0XFx0XFx0ICAgPyBNVDc5OTZfTlBVX1RYX1JJTkdfU0laRSAvIDIgOiBNVDc5OTZfVFhfUklOR19TSVpFO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy03NTUtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM9ODMzPXN0YXRpYyB2b2lkIG10Nzk5Nl9ycm9faHdfaW5pdF92MyhzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTg0My1cXHRcXHR3ZWQtXFx1MDAzZXdsYW4uaW5kX2NtZC53aW5fc2l6ZSA9XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jOjg0NDpcXHRcXHRcXHRmZnMoTVQ3OTk2X1JST19XSU5ET1dfTUFYX0xFTikgLSA2O1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy04NDUtXFx0XFx0aWYgKGlzX210Nzk5NihcXHUwMDI2ZGV2LVxcdTAwM2VtdDc2KSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtODQ2LVxcdFxcdFxcdHdlZC1cXHUwMDNld2xhbi5pbmRfY21kLnBhcnRpY3VsYXJfc2lkID1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM6ODQ3OlxcdFxcdFxcdFxcdE1UNzk5Nl9SUk9fTUFYX1NFU1NJT047XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTg0OC1cXHRcXHRlbHNlXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtODUxLVxcdFxcdFxcdGRldi1cXHUwMDNld2VkX3Jyby5zZXNzaW9uLnBoeV9hZGRyO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYzo4NTI6XFx0XFx0d2VkLVxcdTAwM2V3bGFuLmluZF9jbWQuc2VfZ3JvdXBfbnVtcyA9IE1UNzk5Nl9SUk9fQUREUl9FTEVNX0xFTjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtODUzLVxcdFxcdHdlZC1cXHUwMDNld2xhbi5pbmRfY21kLmFja19zbl9hZGRyID0gTVRfUlJPX0FDS19TTl9DVFJMO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTg2OS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM6ODcwOlxcdHNlc3Npb25faWQgPSBpc19tdDc5OTYoXFx1MDAyNmRldi1cXHUwMDNlbXQ3NikgPyBNVDc5OTZfUlJPX01BWF9TRVNTSU9OIDogMTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtODcxLVxcdG10NzZfd3IoZGV2LCBNVF9SUk9fUEFSVElDVUxBUl9DRkcxLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jPTk1Nz1zdGF0aWMgaW50IG10Nzk5Nl93ZWRfcnJvX2luaXQoc3RydWN0IG10Nzk5Nl9kZXYgKmRldilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy05NjktXFx0XFx0XFx0cHRyID0gZG1hbV9hbGxvY19jb2hlcmVudChkZXYtXFx1MDAzZW10NzYuZG1hX2RldixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM6OTcwOlxcdFxcdFxcdFxcdFxcdFxcdCAgTVQ3OTk2X1JST19CQV9CSVRNQVBfQ1JfU0laRSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtOTcxLVxcdFxcdFxcdFxcdFxcdFxcdCAgXFx1MDAyNmRldi1cXHUwMDNld2VkX3Jyby5iYV9iaXRtYXBbaV0ucGh5X2FkZHIsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtOTgzLVxcdFxcdHB0ciA9IGRtYW1fYWxsb2NfY29oZXJlbnQoZGV2LVxcdTAwM2VtdDc2LmRtYV9kZXYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jOjk4NDpcXHRcXHRcXHRcXHRNVDc5OTZfUlJPX1dJTkRPV19NQVhfU0laRSAqIHNpemVvZigqYWRkciksXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTk4NS1cXHRcXHRcXHRcXHRcXHUwMDI2ZGV2LVxcdTAwM2V3ZWRfcnJvLmFkZHJfZWxlbVtpXS5waHlfYWRkcixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy05OTEtXFx0XFx0bWVtc2V0KGRldi1cXHUwMDNld2VkX3Jyby5hZGRyX2VsZW1baV0ucHRyLCAwLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYzo5OTI6XFx0XFx0ICAgICAgIE1UNzk5Nl9SUk9fV0lORE9XX01BWF9TSVpFICogc2l6ZW9mKCphZGRyKSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTk5My1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtOTk0LVxcdFxcdGFkZHIgPSBkZXYtXFx1MDAzZXdlZF9ycm8uYWRkcl9lbGVtW2ldLnB0cjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM6OTk1OlxcdFxcdGZvciAoaiA9IDA7IGogXFx1MDAzYyBNVDc5OTZfUlJPX1dJTkRPV19NQVhfU0laRTsgaisrKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTk5Ni1cXHRcXHRcXHRhZGRyLVxcdTAwM2VkYXRhID0gY3B1X3RvX2xlMzIodmFsKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy0xMDE4LVxcdFxcdHB0ciA9IGRtYW1fYWxsb2NfY29oZXJlbnQoZGV2LVxcdTAwM2VtdDc2LmRtYV9kZXYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jOjEwMTk6XFx0XFx0XFx0XFx0XFx0ICBNVDc5OTZfUlJPX01TRFVfUEdfU0laRV9QRVJfQ1IsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTEwMjAtXFx0XFx0XFx0XFx0XFx0ICBcXHUwMDI2ZGV2LVxcdTAwM2V3ZWRfcnJvLm1zZHVfcGdbaV0ucGh5X2FkZHIsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtMTAyNy1cXHRcXHRtZW1zZXQoZGV2LVxcdTAwM2V3ZWRfcnJvLm1zZHVfcGdbaV0ucHRyLCAwLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYzoxMDI4OlxcdFxcdCAgICAgICBNVDc5OTZfUlJPX01TRFVfUEdfU0laRV9QRVJfQ1IpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy0xMDI5LVxcdH1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy0xMDUyLVxcdHB0ciA9IGRtYW1fYWxsb2NfY29oZXJlbnQoZGV2LVxcdTAwM2VtdDc2LmRtYV9kZXYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jOjEwNTM6XFx0XFx0XFx0XFx0ICBNVDc5OTZfUlJPX1dJTkRPV19NQVhfTEVOICogc2l6ZW9mKCphZGRyKSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtMTA1NC1cXHRcXHRcXHRcXHQgIFxcdTAwMjZkZXYtXFx1MDAzZXdlZF9ycm8uc2Vzc2lvbi5waHlfYWRkcixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy0xMDYwLVxcdGFkZHIgPSBkZXYtXFx1MDAzZXdlZF9ycm8uc2Vzc2lvbi5wdHI7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jOjEwNjE6XFx0Zm9yIChpID0gMDsgaSBcXHUwMDNjIE1UNzk5Nl9SUk9fV0lORE9XX01BWF9MRU47IGkrKykge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy0xMDYyLVxcdFxcdGFkZHItXFx1MDAzZWRhdGEgPSBjcHVfdG9fbGUzMih2YWwpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jPTEwNzU9c3RhdGljIHZvaWQgbXQ3OTk2X3dlZF9ycm9fZnJlZShzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTEwODYtXFx0XFx0ZG1hbV9mcmVlX2NvaGVyZW50KGRldi1cXHUwMDNlbXQ3Ni5kbWFfZGV2LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYzoxMDg3OlxcdFxcdFxcdFxcdCAgIE1UNzk5Nl9SUk9fQkFfQklUTUFQX0NSX1NJWkUsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTEwODgtXFx0XFx0XFx0XFx0ICAgZGV2LVxcdTAwM2V3ZWRfcnJvLmJhX2JpdG1hcFtpXS5wdHIsXFxuLS1cXG5cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMTFUMDY6MzI6MTkuMjcyNzQzMDY2WiIsIlNlcSI6NywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjctZmxhc2giLCJEdXJhdGlvbiI6MjkxNTY5MjQzNCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipJbnZlc3RpZ2F0aW5nIHRoZSBNVDc5OTYgRHJpdmVyKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgaW50byB0aGUgYGRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2AgZGlyZWN0b3J5LiBSaWdodCwgdGhpcyBwb2ludHMgdG8gdGhlIFBDSWUgZHJpdmVyIGZvciB0aGUgTVQ3OTk2RSB3aXJlbGVzcyBkZXZpY2UuIE5vdywgbXkgaW1tZWRpYXRlIHF1ZXN0aW9uIGlzLCBiZXlvbmQgdGhlIFBDSWUgY29ubmVjdGlvbiwgZG9lcyB0aGlzIGRyaXZlciBzdXBwb3J0IGFueSBvdGhlciBpbnRlcmZhY2VzPyBTcGVjaWZpY2FsbHksIEknbSB3b25kZXJpbmcgaWYgdGhlcmUncyBhIFVTQiBpbXBsZW1lbnRhdGlvbiBvciBhbnkgdmlydHVhbCBpbnRlcmZhY2UgcG9zc2liaWxpdGllcyBiYWtlZCBpbi4gSXQncyBub3QgaW1tZWRpYXRlbHkgb2J2aW91cyBqdXN0IGZyb20gdGhlIGRyaXZlcidzIGxvY2F0aW9uLlxuXG5TbywgdGhlIG5leHQgbG9naWNhbCBzdGVwIGlzIHRvIGRpdmUgaW50byB0aGUgZmlsZSBzdHJ1Y3R1cmUgb2YgYGRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2AgaXRzZWxmLiBJIG5lZWQgdG8gcG9rZSBhcm91bmQgYW5kIHNlZSB3aGF0IHRoZSBjb2RlIHJldmVhbHMuIFRpbWUgdG8gc2VlIHdoYXQgd2UncmUgYWN0dWFsbHkgd29ya2luZyB3aXRoLiBMZXQncyBzZWUgd2hhdCB3ZSBjYW4gZGlnIHVwLlxuXG5cbiIsIklucHV0VG9rZW5zIjozOTIyMCwiT3V0cHV0VG9rZW5zIjozNiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjg1LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTExVDA2OjMyOjIyLjE4ODQzODg3WiIsIlNlcSI6OCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiY29kZXNlYXJjaC1kaXItaW5kZXgiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo3OTU1MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkRpclwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2XCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIkZpbGVzXCI6IFtcbiAgICBcImNvcmVkdW1wLmNcIixcbiAgICBcImNvcmVkdW1wLmhcIixcbiAgICBcImRlYnVnZnMuY1wiLFxuICAgIFwiZG1hLmNcIixcbiAgICBcImVlcHJvbS5jXCIsXG4gICAgXCJlZXByb20uaFwiLFxuICAgIFwiaW5pdC5jXCIsXG4gICAgXCJtYWMuY1wiLFxuICAgIFwibWFjLmhcIixcbiAgICBcIm1haW4uY1wiLFxuICAgIFwibWN1LmNcIixcbiAgICBcIm1jdS5oXCIsXG4gICAgXCJtbWlvLmNcIixcbiAgICBcIm10Nzk5Ni5oXCIsXG4gICAgXCJucHUuY1wiLFxuICAgIFwicGNpLmNcIixcbiAgICBcInJlZ3MuaFwiXG4gIF0sXG4gIFwiU3ViZGlyc1wiOiBudWxsXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOS0xMVQwNjozMjoyMi4xODg1MTk4M1oiLCJTZXEiOjksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy43LWZsYXNoIiwiRHVyYXRpb24iOjM3Mjg1NDUxOTAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBteSB0YWtlIG9uIHRoZSBwcm9jZXNzLCBmcmFtZWQgYXMgYSB0aG91Z2h0IHByb2Nlc3M6XG5cbioqRGl2aW5nIGludG8gUENJIFN1cHBvcnQqKlxuXG5Pa2F5LCBzbyBJIG5lZWQgdG8gZ2V0IGEgaGFuZGxlIG9uIHRoZSBQQ0kgc3VwcG9ydCwgc3BlY2lmaWNhbGx5IHRoZSBidXMgdHlwZXMuIE15IGluaXRpYWwgaHVuY2ggaXMgdGhhdCBgcGNpLmNgIGFuZCBgS2NvbmZpZ2AgYXJlIHRoZSBwbGFjZXMgdG8gc3RhcnQuIGBwY2kuY2AgaXMgdGhlIG9idmlvdXMgbG9jYXRpb24gZm9yIHRoZSBjb3JlIFBDSSBkcml2ZXIgY29kZSwgc28gaXQnbGwgcHJvYmFibHkgZGVmaW5lIHRoZSBhY3R1YWwgYnVzIHR5cGUgZW51bWVyYXRpb24sIHN0cnVjdHVyZXMsIGFuZCBwb3RlbnRpYWxseSBoYXZlIHNvbWUgaW5pdGlhbGl6YXRpb24gbG9naWMgcmVsYXRlZCB0byBidXMgdHlwZSBkZXRlY3Rpb24uXG5cblRoZW4sIGBLY29uZmlnYOKApiB0aGF0J3Mgd2hlcmUgdGhlIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBsaXZlLiBJJ2xsIG5lZWQgdG8gc2VlIHdoYXQgY29uZmlndXJhdGlvbiBzeW1ib2xzIGNvbnRyb2wgd2hpY2ggYnVzIHR5cGVzIGFyZSBjb21waWxlZCBpbi4gQXJlIHRoZXJlIHNlcGFyYXRlIG9wdGlvbnMgZm9yIFBDSSwgUENJZSwgUENJLVgsIG9yIGFyZSB0aGV5IGhhbmRsZWQgbW9yZSBnZW5lcmFsbHk/IEFyZSB0aGVyZSBmaW5lLWdyYWluZWQgY2hvaWNlcywgb3IgaXMgaXQgYSBtb3JlIGJyb2FkLCBpbmNsdXNpdmUgYXBwcm9hY2g/IFRoaXMgYWxzbyBnaXZlcyBtZSBpbnNpZ2h0IGludG8gdGhlIGRlZmF1bHQgYmVoYXZpb3IgZm9yIGRpZmZlcmVudCBhcmNoaXRlY3R1cmVzIGFuZCBob3cgd2UgZW5hYmxlL2Rpc2FibGUgY2VydGFpbiBmZWF0dXJlcyByZWxhdGVkIHRvIGJ1cyBzdXBwb3J0LiBJJ2xsIGJlIGxvb2tpbmcgZm9yIGRlcGVuZGVuY2llcywgZGVmYXVsdCB2YWx1ZXMsIGFuZCBhbnkgcmVsYXRpb25zaGlwcyBiZXR3ZWVuIHRoZSBidXMgdHlwZSBvcHRpb25zLiBUaW1lIHRvIGRpZyBpbiBhbmQgY29uZmlybSBteSBhc3N1bXB0aW9ucywgb3IgZGlzY292ZXIgd2hlcmUgbXkgaW5pdGlhbCB1bmRlcnN0YW5kaW5nIGlzIGluY29tcGxldGUhXG5cblxuIiwiSW5wdXRUb2tlbnMiOjM5NjYxLCJPdXRwdXRUb2tlbnMiOjQ3LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjAsIlRvb2xDYWxscyI6WyJjb2Rlc2VhcmNoLWRpci1pbmRleCJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTExVDA2OjMyOjI1LjkxNzA2ODI5WiIsIlNlcSI6MTAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InJlYWQtZmlsZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjU0MzgwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRmlsZVwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L0tjb25maWdcIixcbiAgXCJGaXJzdExpbmVcIjogMSxcbiAgXCJMaW5lQ291bnRcIjogMzBcbn0iLCJSZXN1bHRzIjoie1xuICBcIkNvbnRlbnRzXCI6IFwiICAgMTpcXHQjIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMy1DbGF1c2UtQ2xlYXJcXG4gICAyOlxcdGNvbmZpZyBNVDc5OTZFXFxuICAgMzpcXHRcXHR0cmlzdGF0ZSBcXFwiTWVkaWFUZWsgTVQ3OTk2IChQQ0llKSBzdXBwb3J0XFxcIlxcbiAgIDQ6XFx0XFx0c2VsZWN0IE1UNzZfQ09OTkFDX0xJQlxcbiAgIDU6XFx0XFx0c2VsZWN0IFdBTlRfREVWX0NPUkVEVU1QXFxuICAgNjpcXHRcXHRzZWxlY3QgUkVMQVlcXG4gICA3OlxcdFxcdGRlcGVuZHMgb24gTUFDODAyMTFcXG4gICA4OlxcdFxcdGRlcGVuZHMgb24gUENJXFxuICAgOTpcXHRcXHRoZWxwXFxuICAxMDpcXHRcXHQgIFRoaXMgYWRkcyBzdXBwb3J0IGZvciBNVDc5OTYtYmFzZWQgUENJZSB3aXJlbGVzcyBkZXZpY2VzLFxcbiAgMTE6XFx0XFx0ICB3aGljaCBzdXBwb3J0IGNvbmN1cnJlbnQgdHJpLWJhbmQgb3BlcmF0aW9uIGF0IDZHSHosIDVHSHosXFxuICAxMjpcXHRcXHQgIGFuZCAyLjRHSHogSUVFRSA4MDIuMTFiZSA0eDQ6NFNTIDQwOTYtUUFNLCAzMjBNSHogY2hhbm5lbHMuXFxuICAxMzpcXHRcXG4gIDE0OlxcdFxcdCAgVG8gY29tcGlsZSB0aGlzIGRyaXZlciBhcyBhIG1vZHVsZSwgY2hvb3NlIE0gaGVyZS5cXG4gIDE1OlxcdFxcbiAgMTY6XFx0Y29uZmlnIE1UNzk5Nl9OUFVcXG4gIDE3OlxcdFxcdGJvb2wgXFxcIk1UNzk5NiAoUENJZSkgTlBVIHN1cHBvcnRcXFwiXFxuICAxODpcXHRcXHRkZXBlbmRzIG9uIE1UNzk5NkVcXG4gIDE5OlxcdFxcdGRlcGVuZHMgb24gTkVUX0FJUk9IQV9OUFU9eSB8fCBNVDc2X0NPUkU9TkVUX0FJUk9IQV9OUFVcXG4gIDIwOlxcdFxcdHNlbGVjdCBNVDc2X05QVVxcbiAgMjE6XFx0XFx0ZGVmYXVsdCBuXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTExVDA2OjMyOjI1LjkxNzEyNDk2WiIsIlNlcSI6MTEsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy43LWZsYXNoIiwiRHVyYXRpb24iOjI4MDExNDM2NjQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqTXkgSW5pdGlhbCBBc3Nlc3NtZW50IG9mIE1UNzk5NkUqKlxuXG5BbHJpZ2h0LCBsZXQncyB0YWtlIGEgbG9vayBhdCB0aGlzIGBNVDc5OTZFYC4gQmFzZWQgb24gd2hhdCBJJ20gc2VlaW5nLCB0aGlzIGlzIGEgUENJZS1jZW50cmljIGJlYXN0LCBwdXJlbHkgZHJpdmVuIGJ5IHRoZSBgUENJYCBidXMuIFRoZSBjb3JlIG9mIHRoaXMgc2VlbXMgdG8gYmUgY2VudGVyZWQgYXJvdW5kIGRyaXZlcnMgbGlrZSBgcGNpLmNgIGFuZCBgbW1pby5jYCwgd2hpY2ggbWFrZXMgc2Vuc2UgZm9yIFBDSWUgaW50ZXJhY3Rpb25zLiBcblxuTm93LCBiZWZvcmUgSSBkaWcgdG9vIGRlZXAsIG15IGluaXRpYWwgdGhvdWdodCBpcyB0byBxdWlja2x5IHJ1bGUgb3V0IGFueSBleHRyYW5lb3VzIGNvbm5lY3Rpb25zLiBJIG5lZWQgdG8gY29uZmlybSB0aGlzIGlzIHNvbGVseSBmb2N1c2VkIG9uIFBDSWUuIFNvLCBsZXQncyBqdXN0IGRvIGEgcXVpY2sgc2NhbiB0byBzZWUgaWYgdGhlcmUgYXJlIGFueSBVU0Igb3IgdmlydHVhbCBkZXZpY2UgaG9va3MgYXNzb2NpYXRlZCB3aXRoIGBtdDc5OTZgLiBJJ20gZXNwZWNpYWxseSBpbnRlcmVzdGVkIGluIGNvbmZpcm1pbmcgd2hldGhlciBpdHMgZGlyZWN0IGRlcGVuZGVuY2llcyBvbiBQQ0kgYXJlIGV4Y2x1c2l2ZSBvZiBhbnkgb3RoZXJzLlxuXG5Pa2F5LCBmaXJzdCBzdG9wLCBJJ20gZ29pbmcgdG8gc3RhcnQgd2l0aCBhIGRlZXAgZGl2ZSBpbnRvIGBwY2kuY2AuIFRoYXQncyB3aGVyZSBJIG5lZWQgdG8gZm9jdXMgbXkgYXR0ZW50aW9uLiBJdCdzIHRoZSBseW5jaHBpbiBoZXJlLCBzbyBsZXQncyBzZWUgd2hhdCdzIHdoYXQuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjQwMzI0LCJPdXRwdXRUb2tlbnMiOjUwLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NjUsIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wOS0xMVQwNjozMjoyOC43MTgyNzA2MjRaIiwiU2VxIjoxMiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoicmVhZC1maWxlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NzY5MDAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJGaWxlXCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvcGNpLmNcIixcbiAgXCJGaXJzdExpbmVcIjogMSxcbiAgXCJMaW5lQ291bnRcIjogMTAwXG59IiwiUmVzdWx0cyI6IntcbiAgXCJDb250ZW50c1wiOiBcIiAgIDE6XFx0Ly8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0zLUNsYXVzZS1DbGVhclxcbiAgIDI6XFx0LypcXG4gICAzOlxcdCAqIENvcHlyaWdodCAoQykgMjAyMiBNZWRpYVRlayBJbmMuXFxuICAgNDpcXHQgKi9cXG4gICA1OlxcdFxcbiAgIDY6XFx0I2luY2x1ZGUgXFx1MDAzY2xpbnV4L2tlcm5lbC5oXFx1MDAzZVxcbiAgIDc6XFx0I2luY2x1ZGUgXFx1MDAzY2xpbnV4L21vZHVsZS5oXFx1MDAzZVxcbiAgIDg6XFx0I2luY2x1ZGUgXFx1MDAzY2xpbnV4L3BjaS5oXFx1MDAzZVxcbiAgIDk6XFx0XFxuICAxMDpcXHQjaW5jbHVkZSBcXFwibXQ3OTk2LmhcXFwiXFxuICAxMTpcXHQjaW5jbHVkZSBcXFwibWFjLmhcXFwiXFxuICAxMjpcXHQjaW5jbHVkZSBcXFwiLi4vdHJhY2UuaFxcXCJcXG4gIDEzOlxcdFxcbiAgMTQ6XFx0c3RhdGljIExJU1RfSEVBRChoaWZfbGlzdCk7XFxuICAxNTpcXHRzdGF0aWMgREVGSU5FX1NQSU5MT0NLKGhpZl9sb2NrKTtcXG4gIDE2OlxcdHN0YXRpYyB1MzIgaGlmX2lkeDtcXG4gIDE3OlxcdFxcbiAgMTg6XFx0c3RhdGljIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkIG10Nzk5Nl9wY2lfZGV2aWNlX3RhYmxlW10gPSB7XFxuICAxOTpcXHRcXHR7IFBDSV9ERVZJQ0UoUENJX1ZFTkRPUl9JRF9NRURJQVRFSywgTVQ3OTk2X0RFVklDRV9JRCkgfSxcXG4gIDIwOlxcdFxcdHsgUENJX0RFVklDRShQQ0lfVkVORE9SX0lEX01FRElBVEVLLCBNVDc5OTJfREVWSUNFX0lEKSB9LFxcbiAgMjE6XFx0XFx0eyBQQ0lfREVWSUNFKFBDSV9WRU5ET1JfSURfTUVESUFURUssIE1UNzk5MF9ERVZJQ0VfSUQpIH0sXFxuICAyMjpcXHRcXHR7IH0sXFxuICAyMzpcXHR9O1xcbiAgMjQ6XFx0XFxuICAyNTpcXHRzdGF0aWMgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgbXQ3OTk2X2hpZl9kZXZpY2VfdGFibGVbXSA9IHtcXG4gIDI2OlxcdFxcdHsgUENJX0RFVklDRShQQ0lfVkVORE9SX0lEX01FRElBVEVLLCBNVDc5OTZfREVWSUNFX0lEXzIpIH0sXFxuICAyNzpcXHRcXHR7IFBDSV9ERVZJQ0UoUENJX1ZFTkRPUl9JRF9NRURJQVRFSywgTVQ3OTkyX0RFVklDRV9JRF8yKSB9LFxcbiAgMjg6XFx0XFx0eyBQQ0lfREVWSUNFKFBDSV9WRU5ET1JfSURfTUVESUFURUssIE1UNzk5MF9ERVZJQ0VfSURfMikgfSxcXG4gIDI5OlxcdFxcdHsgfSxcXG4gIDMwOlxcdH07XFxuICAzMTpcXHRcXG4gIDMyOlxcdHN0YXRpYyBzdHJ1Y3QgbXQ3OTk2X2hpZiAqbXQ3OTk2X3BjaV9nZXRfaGlmMih1MzIgaWR4KVxcbiAgMzM6XFx0e1xcbiAgMzQ6XFx0XFx0c3RydWN0IG10Nzk5Nl9oaWYgKmhpZjtcXG4gIDM1OlxcdFxcdHUzMiB2YWw7XFxuICAzNjpcXHRcXG4gIDM3OlxcdFxcdHNwaW5fbG9ja19iaChcXHUwMDI2aGlmX2xvY2spO1xcbiAgMzg6XFx0XFxuICAzOTpcXHRcXHRsaXN0X2Zvcl9lYWNoX2VudHJ5KGhpZiwgXFx1MDAyNmhpZl9saXN0LCBsaXN0KSB7XFxuICA0MDpcXHRcXHRcXHR2YWwgPSByZWFkbChoaWYtXFx1MDAzZXJlZ3MgKyBNVF9QQ0lFX1JFQ09HX0lEKTtcXG4gIDQxOlxcdFxcdFxcdHZhbCBcXHUwMDI2PSBNVF9QQ0lFX1JFQ09HX0lEX01BU0s7XFxuICA0MjpcXHRcXHRcXHRpZiAodmFsICE9IGlkeClcXG4gIDQzOlxcdFxcdFxcdFxcdGNvbnRpbnVlO1xcbiAgNDQ6XFx0XFxuICA0NTpcXHRcXHRcXHRnZXRfZGV2aWNlKGhpZi1cXHUwMDNlZGV2KTtcXG4gIDQ2OlxcdFxcdFxcdGdvdG8gb3V0O1xcbiAgNDc6XFx0XFx0fVxcbiAgNDg6XFx0XFx0aGlmID0gTlVMTDtcXG4gIDQ5OlxcdFxcbiAgNTA6XFx0b3V0OlxcbiAgNTE6XFx0XFx0c3Bpbl91bmxvY2tfYmgoXFx1MDAyNmhpZl9sb2NrKTtcXG4gIDUyOlxcdFxcbiAgNTM6XFx0XFx0cmV0dXJuIGhpZjtcXG4gIDU0OlxcdH1cXG4gIDU1OlxcdFxcbiAgNTY6XFx0c3RhdGljIHZvaWQgbXQ3OTk2X3B1dF9oaWYyKHN0cnVjdCBtdDc5OTZfaGlmICpoaWYpXFxuICA1NzpcXHR7XFxuICA1ODpcXHRcXHRpZiAoIWhpZilcXG4gIDU5OlxcdFxcdFxcdHJldHVybjtcXG4gIDYwOlxcdFxcbiAgNjE6XFx0XFx0cHV0X2RldmljZShoaWYtXFx1MDAzZWRldik7XFxuICA2MjpcXHR9XFxuICA2MzpcXHRcXG4gIDY0OlxcdHN0YXRpYyBzdHJ1Y3QgbXQ3OTk2X2hpZiAqbXQ3OTk2X3BjaV9pbml0X2hpZjIoc3RydWN0IHBjaV9kZXYgKnBkZXYpXFxuICA2NTpcXHR7XFxuICA2NjpcXHRcXHRoaWZfaWR4Kys7XFxuICA2NzpcXHRcXG4gIDY4OlxcdFxcdGlmICghcGNpX2dldF9kZXZpY2UoUENJX1ZFTkRPUl9JRF9NRURJQVRFSywgTVQ3OTk2X0RFVklDRV9JRF8yLCBOVUxMKSBcXHUwMDI2XFx1MDAyNlxcbiAgNjk6XFx0XFx0ICAgICFwY2lfZ2V0X2RldmljZShQQ0lfVkVORE9SX0lEX01FRElBVEVLLCBNVDc5OTJfREVWSUNFX0lEXzIsIE5VTEwpIFxcdTAwMjZcXHUwMDI2XFxuICA3MDpcXHRcXHQgICAgIXBjaV9nZXRfZGV2aWNlKFBDSV9WRU5ET1JfSURfTUVESUFURUssIE1UNzk5MF9ERVZJQ0VfSURfMiwgTlVMTCkpXFxuICA3MTpcXHRcXHRcXHRyZXR1cm4gTlVMTDtcXG4gIDcyOlxcdFxcbiAgNzM6XFx0XFx0d3JpdGVsKGhpZl9pZHggfCBNVF9QQ0lFX1JFQ09HX0lEX1NFTSxcXG4gIDc0OlxcdFxcdCAgICAgICBwY2ltX2lvbWFwX3RhYmxlKHBkZXYpWzBdICsgTVRfUENJRV9SRUNPR19JRCk7XFxuICA3NTpcXHRcXG4gIDc2OlxcdFxcdHJldHVybiBtdDc5OTZfcGNpX2dldF9oaWYyKGhpZl9pZHgpO1xcbiAgNzc6XFx0fVxcbiAgNzg6XFx0XFxuICA3OTpcXHRzdGF0aWMgaW50IG10Nzk5Nl9wY2lfaGlmMl9wcm9iZShzdHJ1Y3QgcGNpX2RldiAqcGRldilcXG4gIDgwOlxcdHtcXG4gIDgxOlxcdFxcdHN0cnVjdCBtdDc5OTZfaGlmICpoaWY7XFxuICA4MjpcXHRcXG4gIDgzOlxcdFxcdGhpZiA9IGRldm1fa3phbGxvYyhcXHUwMDI2cGRldi1cXHUwMDNlZGV2LCBzaXplb2YoKmhpZiksIEdGUF9LRVJORUwpO1xcbiAgODQ6XFx0XFx0aWYgKCFoaWYpXFxuICA4NTpcXHRcXHRcXHRyZXR1cm4gLUVOT01FTTtcXG4gIDg2OlxcdFxcbiAgODc6XFx0XFx0aGlmLVxcdTAwM2VkZXYgPSBcXHUwMDI2cGRldi1cXHUwMDNlZGV2O1xcbiAgODg6XFx0XFx0aGlmLVxcdTAwM2VyZWdzID0gcGNpbV9pb21hcF90YWJsZShwZGV2KVswXTtcXG4gIDg5OlxcdFxcdGhpZi1cXHUwMDNlaXJxID0gcGRldi1cXHUwMDNlaXJxO1xcbiAgOTA6XFx0XFx0cGNpZV9iYW5kd2lkdGhfYXZhaWxhYmxlKHBkZXYsIE5VTEwsIFxcdTAwMjZoaWYtXFx1MDAzZXNwZWVkLCBcXHUwMDI2aGlmLVxcdTAwM2V3aWR0aCk7XFxuICA5MTpcXHRcXHRzcGluX2xvY2tfYmgoXFx1MDAyNmhpZl9sb2NrKTtcXG4gIDkyOlxcdFxcdGxpc3RfYWRkKFxcdTAwMjZoaWYtXFx1MDAzZWxpc3QsIFxcdTAwMjZoaWZfbGlzdCk7XFxuICA5MzpcXHRcXHRzcGluX3VubG9ja19iaChcXHUwMDI2aGlmX2xvY2spO1xcbiAgOTQ6XFx0XFx0cGNpX3NldF9kcnZkYXRhKHBkZXYsIGhpZik7XFxuICA5NTpcXHRcXG4gIDk2OlxcdFxcdHJldHVybiAwO1xcbiAgOTc6XFx0fVxcbiAgOTg6XFx0XFxuICA5OTpcXHRzdGF0aWMgaW50IG10Nzk5Nl9wY2lfcHJvYmUoc3RydWN0IHBjaV9kZXYgKnBkZXYsXFxuIDEwMDpcXHRcXHRcXHRcXHQgICAgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgKmlkKVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOS0xMVQwNjozMjoyOC43MTgzNDg5NDRaIiwiU2VxIjoxMywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjctZmxhc2giLCJEdXJhdGlvbiI6MzI0MDMxNTI2NiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipNeSBBc3Nlc3NtZW50IG9mIE1UNzk5NiBFbXVsYXRpb24gRmVhc2liaWxpdHkqKlxuXG5Pa2F5LCBsZXQncyBicmVhayB0aGlzIGRvd24gc3lzdGVtYXRpY2FsbHkuIE15IGluaXRpYWwgdGhvdWdodCBpcyB0byBtYWtlIHN1cmUgSSB1bmRlcnN0YW5kIHRoZSBzY29wZSBvZiB0aGUgcHJvYmxlbS4gU2VjdGlvbiAyIG9mIHRoZSBpbnN0cnVjdGlvbnMgaGlnaGxpZ2h0cyB0aGUgcG90ZW50aWFsIGZvciBcInN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZSBoYXJkd2FyZSxcIiBzcGVjaWZpY2FsbHkgdmVuZG9yLXNwZWNpZmljIGNvbXBvbmVudHMgbGlrZSBQQ0llIHN3aXRjaGVzLCBTbWFydE5JQ3MsIG9yIEdQVSBkcml2ZXJzLiBJIG5lZWQgdG8ga2VlcCB0aGlzIGluIG1pbmQgYXMgSSBhc3Nlc3MgdGhlIE1UNzk5Ni5cblxuTm93LCBmb2N1c2luZyBvbiB0aGUgY29yZSBxdWVzdGlvbjogY2FuIEkgc2ltdWxhdGUgb3IgcmVhY2ggdGhlIE1UNzk5NiwgYSBNZWRpYVRlayBXaUZpIDcgUENJZSBOSUMgKHdoaWNoIGNvdWxkIGJlIGFuIE1UNzk5NiwgTVQ3OTkyLCBvciBNVDc5OTApLCB3aXRoaW4gYSBRRU1VIGVudmlyb25tZW50LCBvciB0aHJvdWdoIGFsdGVybmF0aXZlIG1ldGhvZHMgbGlrZSBVU0IsIG1hYzgwMjExX2h3c2ltLCBvciBzb21ldGhpbmcgc2ltaWxhcj9cblxuRmlyc3QsIEknbGwgY29uZmlybSB0aGUgb2J2aW91czogUUVNVSBkb2Vzbid0IG9mZmVyIG5hdGl2ZSBlbXVsYXRpb24gZm9yIE1lZGlhVGVrJ3MgTVQ3NiBzZXJpZXMgUENJZSBkZXZpY2VzLiBTbywgc3RhbmRhcmQgUUVNVSBlbXVsYXRpb24gaXMgb3V0LiBUaGlzIG1lYW5zIEkgbmVlZCB0byBkaWcgZGVlcGVyLiBNeSBuZXh0IHN0ZXAgaW52b2x2ZXMgY2hlY2tpbmcgaWYgYW55IHZpcnR1YWwgZW11bGF0aW9uLCBtb2NrLCBvciBVU0IgcHJvYmUgZXhpc3RzIGZvciB0aGUgbXQ3OTk2LiBJJ20gZ29pbmcgdG8gc2VhcmNoIGZvciBwcm9iZSBlbnRyeSBwb2ludHMuIFRoaXMgd2lsbCBiZSB0aGUga2V5IHRvIGFzc2Vzc2luZyB3aGV0aGVyIHRoZSBkZXZpY2UgY2FuIGJlIGxvYWRlZCBvciBwcm9iZWQgd2l0aG91dCBwaHlzaWNhbCBoYXJkd2FyZSBwcmVzZW50LlxuXG5cbiIsIklucHV0VG9rZW5zIjo0MjI0NSwiT3V0cHV0VG9rZW5zIjo0MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjIzNSwiVG9vbENhbGxzIjpbInJlYWQtZmlsZSJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTExVDA2OjMyOjMxLjk1ODY2NzI3MVoiLCJTZXEiOjE0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTUzNzQwODU4LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIl9kcml2ZXJcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTZcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbWN1LmM9MzIyOD1pbnQgbXQ3OTk2X21jdV9iZWFjb25faW5iYW5kX2Rpc2NvdihzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbWN1LmMtMzMxNC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tY3UuYzozMzE1OnN0YXRpYyBpbnQgbXQ3OTk2X2RyaXZlcl9vd24oc3RydWN0IG10Nzk5Nl9kZXYgKmRldiwgdTggYmFuZClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tY3UuYy0zMzE2LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21jdS5jPTM3MTM9aW50IG10Nzk5Nl9tY3VfaW5pdF9maXJtd2FyZShzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbWN1LmMtMzcyMS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tY3UuYzozNzIyOlxcdHJldCA9IG10Nzk5Nl9kcml2ZXJfb3duKGRldiwgMCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbWN1LmMtMzcyMy1cXHRpZiAocmV0KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbWN1LmMtMzcyNi1cXHRpZiAoZGV2LVxcdTAwM2VoaWYyKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbWN1LmM6MzcyNzpcXHRcXHRyZXQgPSBtdDc5OTZfZHJpdmVyX293bihkZXYsIDEpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21jdS5jLTM3MjgtXFx0XFx0aWYgKHJldClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21taW8uYz04MzI9c3RydWN0IG10Nzk5Nl9kZXYgKm10Nzk5Nl9tbWlvX3Byb2JlKHN0cnVjdCBkZXZpY2UgKnBkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tbWlvLmMtODM0LXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tbWlvLmM6ODM1OlxcdHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXQ3Nl9kcml2ZXJfb3BzIGRydl9vcHMgPSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbW1pby5jLTgzNi1cXHRcXHQvKiB0eHdpX3NpemUgPSB0eGQgc2l6ZSArIHR4cCBzaXplICovXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tbWlvLmM9ODg1PXN0YXRpYyBpbnQgX19pbml0IG10Nzk5Nl9pbml0KHZvaWQpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tbWlvLmMtODg4LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21taW8uYzo4ODk6XFx0cmV0ID0gcGNpX3JlZ2lzdGVyX2RyaXZlcihcXHUwMDI2bXQ3OTk2X2hpZl9kcml2ZXIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21taW8uYy04OTAtXFx0aWYgKHJldClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21taW8uYy04OTItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbW1pby5jOjg5MzpcXHRyZXQgPSBwY2lfcmVnaXN0ZXJfZHJpdmVyKFxcdTAwMjZtdDc5OTZfcGNpX2RyaXZlcik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbW1pby5jLTg5NC1cXHRpZiAocmV0KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21taW8uYzo4OTU6XFx0XFx0cGNpX3VucmVnaXN0ZXJfZHJpdmVyKFxcdTAwMjZtdDc5OTZfaGlmX2RyaXZlcik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbW1pby5jLTg5Ni1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21taW8uYz05MDA9c3RhdGljIHZvaWQgX19leGl0IG10Nzk5Nl9leGl0KHZvaWQpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbW1pby5jLTkwMS17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbW1pby5jOjkwMjpcXHRwY2lfdW5yZWdpc3Rlcl9kcml2ZXIoXFx1MDAyNm10Nzk5Nl9wY2lfZHJpdmVyKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tbWlvLmM6OTAzOlxcdHBjaV91bnJlZ2lzdGVyX2RyaXZlcihcXHUwMDI2bXQ3OTk2X2hpZl9kcml2ZXIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21taW8uYy05MDQtfVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbXQ3OTk2Lmg9NjY5PWV4dGVybiBjb25zdCBzdHJ1Y3QgaWVlZTgwMjExX29wcyBtdDc5OTZfb3BzO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L210Nzk5Ni5oOjY3MDpleHRlcm4gc3RydWN0IHBjaV9kcml2ZXIgbXQ3OTk2X3BjaV9kcml2ZXI7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbXQ3OTk2Lmg6NjcxOmV4dGVybiBzdHJ1Y3QgcGNpX2RyaXZlciBtdDc5OTZfaGlmX2RyaXZlcjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tdDc5OTYuaC02NzItXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9wY2kuYz0yMzM9c3RhdGljIHZvaWQgbXQ3OTk2X3BjaV9yZW1vdmUoc3RydWN0IHBjaV9kZXYgKnBkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9wY2kuYy0yNDMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvcGNpLmM6MjQ0OnN0cnVjdCBwY2lfZHJpdmVyIG10Nzk5Nl9oaWZfZHJpdmVyID0ge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L3BjaS5jLTI0NS1cXHQubmFtZVxcdFxcdD0gS0JVSUxEX01PRE5BTUUgXFxcIl9oaWZcXFwiLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvcGNpLmMtMjUwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L3BjaS5jOjI1MTpzdHJ1Y3QgcGNpX2RyaXZlciBtdDc5OTZfcGNpX2RyaXZlciA9IHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9wY2kuYy0yNTItXFx0Lm5hbWVcXHRcXHQ9IEtCVUlMRF9NT0ROQU1FLFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOS0xMVQwNjozMjozMi4xMTI0MTY0NTlaIiwiU2VxIjoxNSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjctZmxhc2giLCJEdXJhdGlvbiI6Mzg0MjM5MTM5OCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipNeSBBc3Nlc3NtZW50OiBNVDc5OTYgRHJpdmVyIC0gTm90IEZ1enphYmxlKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgdGhpcyBgbXQ3OTk2YCBkcml2ZXIsIGFuZCBpdCdzIGNsZWFyIHRoaXMgaXMgYSBQQ0llLXNwZWNpZmljIGRyaXZlciBmb3IgTWVkaWFUZWsncyBNVDc5OTYsIE1UNzk5MiwgYW5kIE1UNzk5MCBoYXJkd2FyZS4gSXQncyByZWdpc3RlcmVkIHZpYSBgcGNpX3JlZ2lzdGVyX2RyaXZlcmAgd2hpY2ggaXMgc3RhbmRhcmQgZm9yIFBDSWUgZGV2aWNlcy4gVGhlIGRyaXZlciBpdHNlbGYgaXMgbm90IGRlc2lnbmVkIHRvIGZ1bmN0aW9uIGluIGVtdWxhdGVkIGVudmlyb25tZW50cyBsaWtlIFFFTVUgb3IgR29vZ2xlIENvbXB1dGUgRW5naW5lOyBpdCAqcmVxdWlyZXMqIGFjdHVhbCBQQ0llIGhhcmR3YXJlLlxuXG5CYXNlZCBvbiB0aGUgZG9jdW1lbnRhdGlvbiwgdGhpcyBwdXRzIGl0IGZpcm1seSBpbiB0aGUgXCJzdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUgaGFyZHdhcmVcIiBjYXRlZ29yeS4gU2VjdGlvbiAyIGNsZWFybHkgc3RhdGVzIHRoYXQgZnV6emluZyBzaG91bGQgb25seSB0YXJnZXQgY29kZSB0aGF0J3MgKnJlYWNoYWJsZSogaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzLiBUaGlzIGluY2x1ZGVzIHRoaW5ncyBsaWtlIHZlbmRvci1zcGVjaWZpYyBzd2l0Y2hlcywgU21hcnROSUNzLCBHUFUgZHJpdmVycyDigJMgdGhlIE1UNzk5NiBmYWxscyBpbnRvIHRoaXMgY2F0ZWdvcnk6IGEgd2lyZWxlc3MgUENJZSBkcml2ZXIgd2l0aG91dCBlbXVsYXRlZCBoYXJkd2FyZSBzdXBwb3J0LlxuXG5UaGVyZWZvcmUsIHNpbmNlIHRoZSBNVDc5OTYgaXMgdW5yZWFjaGFibGUgZHVyaW5nIGZ1enppbmcsIHRoZSBtb2RpZmllZCBjb2RlLCBzcGVjaWZpY2FsbHkgd2l0aGluIGBtdDc5OTZfdHhfcHJlcGFyZV9za2JgIGluIHRoaXMgY2FzZSwgd291bGQgbmV2ZXIgYmUgZXhlcmNpc2VkLlxuXG5TbywgbGV0J3MgY29uZmlybSB0aGUgcmVsZXZhbnQgcGFyYW1ldGVycy4gSSBhbSBjb25maWRlbnQgdGhhdCBgV29ydGhGdXp6aW5nYCBzaG91bGQgYmUgc2V0IHRvIGBmYWxzZWAsIGBFbmFibGVDb25maWdzYCByZW1haW5zIGVtcHR5LCBhbmQgYEZvY3VzU3ltYm9sc2AgYWxzbyBzdGF5cyBlbXB0eS4gVGhlIGBSZWFzb25pbmdgIHdpbGwgYmUgYSBjbGVhciBleHBsYW5hdGlvbjogVGhlIE1UNzk5NiBkcml2ZXIgZGVwZW5kcyBvbiBhIG5vbi1lbXVsYXRhYmxlIE1lZGlhVGVrIFBDSWUgaGFyZHdhcmUgY2hpcC4gVGhlIGZ1enppbmcgY29kZSBpcyBzdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUsIG1ha2luZyBmdXp6aW5nIHBvaW50bGVzcy5cblxuQWxyaWdodCwgcGFyYW1ldGVycyBjb25maXJtZWQuIEknbGwgaW5pdGlhdGUgdGhlIHNldC1yZXN1bHRzIGZ1bmN0aW9uIG5vdy5cblxuXG4iLCJJbnB1dFRva2VucyI6NDQ0ODcsIk91dHB1dFRva2VucyI6MTQwLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NDM2LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTExVDA2OjMyOjM1Ljk1NDgxMDk3NloiLCJTZXEiOjE2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjIxMjIwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIGRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21hYy5jIGluIHRoZSBNZWRpYVRlayBNVDc5OTYgd2lyZWxlc3MgZHJpdmVyIChDT05GSUdfTVQ3OTk2RSkuIFRoaXMgZHJpdmVyIGlzIGV4Y2x1c2l2ZWx5IGEgUENJZSBkZXZpY2UgZHJpdmVyIGZvciBwaHlzaWNhbCBNZWRpYVRlayBNVDc5OTYvTVQ3OTkyL01UNzk5MCBoYXJkd2FyZSwgd2hpY2ggaXMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGZ1enppbmcgZW52aXJvbm1lbnRzIChRRU1VL0dDRSkuIENvbnNlcXVlbnRseSwgdGhlIG1vZGlmaWVkIGNvZGUgaXMgc3RydWN0dXJhbGx5IHVucmVhY2hhYmxlIGZvciBmdXp6aW5nLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbWFjLmMgaW4gdGhlIE1lZGlhVGVrIE1UNzk5NiB3aXJlbGVzcyBkcml2ZXIgKENPTkZJR19NVDc5OTZFKS4gVGhpcyBkcml2ZXIgaXMgZXhjbHVzaXZlbHkgYSBQQ0llIGRldmljZSBkcml2ZXIgZm9yIHBoeXNpY2FsIE1lZGlhVGVrIE1UNzk5Ni9NVDc5OTIvTVQ3OTkwIGhhcmR3YXJlLCB3aGljaCBpcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQgZnV6emluZyBlbnZpcm9ubWVudHMgKFFFTVUvR0NFKS4gQ29uc2VxdWVudGx5LCB0aGUgbW9kaWZpZWQgY29kZSBpcyBzdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUgZm9yIGZ1enppbmcuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOS0xMVQwNjozMjozNS45NTQ4MzYxMTZaIiwiU2VxIjoxNywiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJJZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjI0NTAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9XTsKCQkJaWYgKCFyYXdEYXRhIHx8IHJhd0RhdGEubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQlkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKTsKCQkJZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSk7CgkJCWRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKSB7CgkJCWNvbnN0IHN0YXRzID0gewoJCQkJbGxtOiB7IGNvdW50OiAwLCB0b2tlbnM6IDAsIGR1cmF0aW9uOiAwIH0sCgkJCQl0b29sOiB7IGNvdW50OiAwLCBkdXJhdGlvbjogMCB9CgkJCX07CgoJCQlyYXdEYXRhLmZvckVhY2gocyA9PiB7CgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsgCgkJCQlpZiAocy5UeXBlID09PSAibGxtIikgewoJCQkJCXN0YXRzLmxsbS5jb3VudCsrOwoJCQkJCXN0YXRzLmxsbS50b2tlbnMgKz0gKHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnMpOwoJCQkJCXN0YXRzLmxsbS5kdXJhdGlvbiArPSBkdXI7CgkJCQl9IGVsc2UgaWYgKHMuVHlwZSA9PT0gInRvb2wiKSB7CgkJCQkJc3RhdHMudG9vbC5jb3VudCsrOwoJCQkJCXN0YXRzLnRvb2wuZHVyYXRpb24gKz0gZHVyOwoJCQkJfQoJCQl9KTsKCgkJCWNvbnN0IGF2Z0xsbUR1ciA9IHN0YXRzLmxsbS5jb3VudCA+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-workflow6ks7f[0].run-triage(0) Phase: Succeeded StartedAt: 2026-09-11 06:15:31 +0000 UTC FinishedAt: 2026-09-11 06:32:36 +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+CgkJCTx0ZD4yMDI2LzA5LzExIDA2OjMyPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7S01TQU5SZWFzb25pbmcmIzM0OzogJiMzNDsmIzM0OywKICAmIzM0O05lZWRzS01TQU4mIzM0OzogZmFsc2UsCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbWFjLmMgaW4gdGhlIE1lZGlhVGVrIE1UNzk5NiB3aXJlbGVzcyBkcml2ZXIgKENPTkZJR19NVDc5OTZFKS4gVGhpcyBkcml2ZXIgaXMgZXhjbHVzaXZlbHkgYSBQQ0llIGRldmljZSBkcml2ZXIgZm9yIHBoeXNpY2FsIE1lZGlhVGVrIE1UNzk5Ni9NVDc5OTIvTVQ3OTkwIGhhcmR3YXJlLCB3aGljaCBpcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQgZnV6emluZyBlbnZpcm9ubWVudHMgKFFFTVUvR0NFKS4gQ29uc2VxdWVudGx5LCB0aGUgbW9kaWZpZWQgY29kZSBpcyBzdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUgZm9yIGZ1enppbmcuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzExIDA2OjMyPC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5yZWFkLXBhdGNoLWRpZmY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtQYXRjaERpZmYmIzM0OzogJiMzNDtjb21taXQgNTg1ZjA5NmM0ODZmZmM4MDNmZDc2ODQwYjExZTg2MjVkODBjMjk0NlxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBGcmkgU2VwIDExIDA2OjMyOjAyIDIwMjYgJiM0MzswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21hYy5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbWFjLmNcbmluZGV4IDFjYmEzODFhNzhiODIuLmUyNGRkNTMwNDg2YzQgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tYWMuY1xuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbWFjLmNcbkBAIC0xMDU3LDcgJiM0MzsxMDU3LDcgQEAgaW50IG10Nzk5Nl90eF9wcmVwYXJlX3NrYihzdHJ1Y3QgbXQ3Nl9kZXYgKm1kZXYsIHZvaWQgKnR4d2lfcHRyLFxuIFx0aWYgKCF3Y2lkKVxuIFx0XHR3Y2lkID0gXHUwMDI2ZGV2LVx1MDAzZW10NzYuZ2xvYmFsX3djaWQ7XG4gXG4tXHRpZiAoKGlzXzgwMjMgfHwgaWVlZTgwMjExX2lzX2RhdGFfcW9zKGhkci1cdTAwM2VmcmFtZV9jb250cm9sKSkgXHUwMDI2XHUwMDI2IHN0YS1cdTAwM2VtbG8gXHUwMDI2XHUwMDI2XG4mIzQzO1x0aWYgKHN0YSBcdTAwMjZcdTAwMjYgKGlzXzgwMjMgfHwgaWVlZTgwMjExX2lzX2RhdGFfcW9zKGhkci1cdTAwM2VmcmFtZV9jb250cm9sKSkgXHUwMDI2XHUwMDI2IHN0YS1cdTAwM2VtbG8gXHUwMDI2XHUwMDI2XG4gXHQgICAgbGlrZWx5KHR4X2luZm8tXHUwMDNlc2tiLVx1MDAzZXByb3RvY29sICE9IGNwdV90b19iZTE2KEVUSF9QX1BBRSkpKSB7XG4gXHRcdHU4IHRpZCA9IHR4X2luZm8tXHUwMDNlc2tiLVx1MDAzZXByaW9yaXR5IFx1MDAyNiBJRUVFODAyMTFfUU9TX0NUTF9USURfTUFTSztcbiBcbkBAIC0xMDk3LDcgJiM0MzsxMDk3LDcgQEAgaW50IG10Nzk5Nl90eF9wcmVwYXJlX3NrYihzdHJ1Y3QgbXQ3Nl9kZXYgKm1kZXYsIHZvaWQgKnR4d2lfcHRyLFxuIFx0ICogY29tcGF0aWJsZSB3aXRoIDgwMi4xMSBFQVBPTCBmcmFtZSwgd2UgZG8gdGhlIHRyYW5zbGF0aW9uIGJ5XG4gXHQgKiBzb2Z0d2FyZVxuIFx0ICovXG4tXHRpZiAodHhfaW5mby1cdTAwM2Vza2ItXHUwMDNlcHJvdG9jb2wgPT0gY3B1X3RvX2JlMTYoRVRIX1BfUEFFKSBcdTAwMjZcdTAwMjYgc3RhLVx1MDAzZW1sbykge1xuJiM0MztcdGlmIChzdGEgXHUwMDI2XHUwMDI2IHR4X2luZm8tXHUwMDNlc2tiLVx1MDAzZXByb3RvY29sID09IGNwdV90b19iZTE2KEVUSF9QX1BBRSkgXHUwMDI2XHUwMDI2IHN0YS1cdTAwM2VtbG8pIHtcbiBcdFx0c3RydWN0IGllZWU4MDIxMV9oZHIgKmhkciA9ICh2b2lkICopdHhfaW5mby1cdTAwM2Vza2ItXHUwMDNlZGF0YTtcbiBcdFx0c3RydWN0IGllZWU4MDIxMV9ic3NfY29uZiAqbGlua19jb25mO1xuIFx0XHRzdHJ1Y3QgaWVlZTgwMjExX2xpbmtfc3RhICpsaW5rX3N0YTtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yLzE8L3RkPgoJCQk8dGQ+MjAyNi8wOS8xMSAwNjozMjwvdGQ+CgkJCTx0ZD5hZ2VudDwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5jb3JlPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogbnVsbCwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyBkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tYWMuYyBpbiB0aGUgTWVkaWFUZWsgTVQ3OTk2IHdpcmVsZXNzIGRyaXZlciAoQ09ORklHX01UNzk5NkUpLiBUaGlzIGRyaXZlciBpcyBleGNsdXNpdmVseSBhIFBDSWUgZGV2aWNlIGRyaXZlciBmb3IgcGh5c2ljYWwgTWVkaWFUZWsgTVQ3OTk2L01UNzk5Mi9NVDc5OTAgaGFyZHdhcmUsIHdoaWNoIGlzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBmdXp6aW5nIGVudmlyb25tZW50cyAoUUVNVS9HQ0UpLiBDb25zZXF1ZW50bHksIHRoZSBtb2RpZmllZCBjb2RlIGlzIHN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZSBmb3IgZnV6emluZy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyIGFuZCBzZWN1cml0eSBlbmdpbmVlci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBldmFsdWF0ZSB3aGV0aGVyIGl0IHdhcnJhbnRzIGZ1enppbmcgd2l0aCBzeXprYWxsZXIuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIGludGVybmFsIGFzc3VtcHRpb25zLiBZb3UgbXVzdCBhY3RpdmVseSB1c2UgeW91ciBjb2RlIGFjY2Vzcwp0b29scyB0byBpbnNwZWN0IHRoZSBhY3R1YWwgc291cmNlIGNvZGUsIGNhbGxlcnMsIGFuZCBzdXJyb3VuZGluZyBjb250ZXh0LgoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KMS4gQ09SRSBUUklBR0UgUEhJTE9TT1BIWQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpUaGUgZ29hbCBvZiBwYXRjaCBmdXp6aW5nIGlzIHRvIGRpc2NvdmVyIGNyYXNoZXMsIHJlZ3Jlc3Npb25zLCBleHBvc2VkIGxhdGVudCBidWdzLAphbmQgbmV3bHkgdHJpZ2dlcmVkIGFzc2VydGlvbnMgaW50cm9kdWNlZCBieSB0aGUgcGF0Y2ggc2VyaWVzLgoKLSBSRUFDSEFCSUxJVFkgSVMgVEhFIFBSSU1BUlkgR0FURToKICBGdXp6aW5nIGNhbiBvbmx5IGRpc2NvdmVyIGJ1Z3MgaW4gY29kZSB0aGF0IGNhbiBhY3R1YWxseSBleGVjdXRlIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkCiAgZW52aXJvbm1lbnRzIChHQ0Ugb3IgUUVNVSwgdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGRldmljZXMgbGlrZSBVU0IgZ2FkZ2V0cywgbmV0ZGV2LCB0dW4vdGFwKS4KICBJZiB0aGUgbW9kaWZpZWQgY29kZSBpcyBzdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUgKHNlZSBTZWN0aW9uIDIpLCBpdCBNVVNUIE5PVCBiZSBmdXp6ZWQsCiAgcmVnYXJkbGVzcyBvZiB3aGV0aGVyIGl0IGFkZHMgYXNzZXJ0aW9ucyBvciBjb21wbGV4IGxvZ2ljLgoKLSBETyBOT1QgQkxJTkRMWSBUUlVTVCAmIzM0O05PIEZVTkNUSU9OQUwgQ0hBTkdFJiMzNDsgKE5GQ0kpIE9SICYjMzQ7UkVGQUNUT1JJTkcmIzM0OyBDTEFJTVM6CiAgUGF0Y2ggYXV0aG9ycyByb3V0aW5lbHkgbGFiZWwgY2hhbmdlcyBhcyAmIzM0O2NsZWFudXBzJiMzNDssICYjMzQ7cmVmYWN0b3JpbmdzJiMzNDssIG9yIHN0YXRlCiAgJiMzNDtObyBmdW5jdGlvbmFsIGNoYW5nZSBpbnRlbmRlZCYjMzQ7LiBEbyBOT1QgdGFrZSB0aGVzZSBjbGFpbXMgYXQgZmFjZSB2YWx1ZS4KICBDb2RlIHJlZmFjdG9yaW5ncyB0aGF0IHJlYXJyYW5nZSBsb2dpYywgaW50cm9kdWNlIGhlbHBlciBmdW5jdGlvbnMsIG9yIGFsdGVyIHN0YXRlIG1hbmFnZW1lbnQKICBpbiBjb3JlIHN1YnN5c3RlbXMgZnJlcXVlbnRseSBpbnRyb2R1Y2Ugc3VidGxlIHNlbWFudGljIHNoaWZ0cyBvciB1bmNvdmVyIGxhdGVudCBrZXJuZWwgYnVncy4KICBJZiByZWFjaGFibGUgZXhlY3V0YWJsZSBjb2RlIGlzIG1vZGlmaWVkIG9yIHJlZmFjdG9yZWQsIGl0IE1VU1QgYmUgZnV6emVkLgoKLSBORVcgT1IgTU9ESUZJRUQgQVNTRVJUSU9OUyBJTiBSRUFDSEFCTEUgQ09ERSBNVVNUIEJFIEZVWlpFRDoKICBXaGVuIGEgcGF0Y2ggaW50cm9kdWNlcyBvciBtb2RpZmllcyBydW50aW1lIGNoZWNrcyBvciBhc3NlcnRpb25zIChlLmcuLCBXQVJOX09OKiwgVk1fV0FSTl9PTiosCiAgQlVHX09OKiwgbG9ja2RlcF9hc3NlcnQqKSBpbiByZWFjaGFibGUgY29kZSBwYXRocywgaXQgZW5mb3JjZXMgbmV3IG9yIHN0cmljdGVyIGludmFyaWFudHMuCiAgRXZlbiBpZiB0aGUgYXV0aG9yIGJlbGlldmVzIHRoZSBpbnZhcmlhbnQgYWx3YXlzIGhvbGRzLCBmdXp6aW5nIGlzIGVzc2VudGlhbCB0byB2ZXJpZnkgd2hldGhlcgogIGFuIHVudXN1YWwgc2VxdWVuY2Ugb2Ygb3BlcmF0aW9ucyBjYW4gdmlvbGF0ZSBpdC4KCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CjIuIFdIRU4gVE8gUkVUVVJOIFdvcnRoRnV6emluZz1mYWxzZSAoTkVHQVRJVkUgQ1JJVEVSSUEpCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgT05MWSBJRiBhbGwgbW9kaWZpZWQgY29kZSBmYWxscyBzdHJpY3RseSBpbnRvIG9uZSBvciBtb3JlIG9mIHRoZXNlIGNhdGVnb3JpZXM6CgotIE5vbi1rZXJuZWwgYW5kIG5vbi1leGVjdXRhYmxlIGNoYW5nZXM6CiAgKiBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBjb21tZW50cywgb3Igc3BlbGxpbmcgZml4ZXMuCiAgKiBVc2VyLXNwYWNlIGRpcmVjdG9yaWVzLCBzZWxmLXRlc3RzLCBzYW1wbGVzLCBvciBzY3JpcHRzIChlLmcuLCB0b29scy8sIHNhbXBsZXMvLCBzY3JpcHRzLywgdXNyLykKICAgIHRoYXQgZG8gbm90IGFmZmVjdCB0aGUgY29tcGlsZWQga2VybmVsIGltYWdlICh2bWxpbnV4KSBvciBrZXJuZWwgbW9kdWxlcy4KICAqIFB1cmVseSBkZWNvcmF0aXZlIGxvZ2dpbmcgKGUuZy4sIG1lc3NhZ2Ugc3RyaW5ncyBpbiBwcl9lcnIsIHByaW50aywgZGV2X2luZm8pIG9yIHRyYWNlcG9pbnRzCiAgICB0aGF0IGRvIG5vdCBhbHRlciBjb250cm9sIGZsb3cgb3IgZGF0YSBzdHJ1Y3R1cmVzLgogICogQnVpbGQgc3lzdGVtIG9yIEtjb25maWcgY2hhbmdlcyB0aGF0IGRvIG5vdCBhbHRlciBjb21waWxlZCBDIGxvZ2ljLgotIFN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZSBoYXJkd2FyZToKICAqIFZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaGVzLCBTbWFydE5JQ3MsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCwKICAgIGlvbmljLCBhbWRncHUpIHJlcXVpcmluZyBwaHlzaWNhbCBBU0lDL1BDSWUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuCi0gVW5yZWFjaGFibGUgZXhlY3V0aW9uIHBhdGhzOgogICogRHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoLnJlbW92ZSwgLnNodXRkb3duLCBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIpIGV4ZWN1dGVkIG9ubHkgZHVyaW5nCiAgICBwaHlzaWNhbCBQQ0kgaG90LXVucGx1ZyBvciBtYW51YWwgc3lzZnMgZHJpdmVyIHVuYmluZGluZy4KICAqIENvZGUgcGF0aHMgZXhjbHVzaXZlIHRvIGFyY2hpdGVjdHVyZXMgb3RoZXIgdGhhbiB0aGUgdGFyZ2V0IGFyY2hpdGVjdHVyZS4KCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CjMuIFdIRU4gVE8gUkVUVVJOIFdvcnRoRnV6emluZz10cnVlIChQT1NJVElWRSBDUklURVJJQSkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUmV0dXJuIFdvcnRoRnV6emluZz10cnVlIHdoZW5ldmVyIHRoZSBwYXRjaCB0b3VjaGVzIHJlYWNoYWJsZSBleGVjdXRhYmxlIGNvZGUsIGluY2x1ZGluZzoKLSBDb3JlIFN1YnN5c3RlbXM6CiAgKiBBbnkgbG9naWMgbW9kaWZpY2F0aW9ucyBpbiBtZW1vcnkgbWFuYWdlbWVudCAobW0vKSwgc3luY2hyb25pemF0aW9uL2xvY2tpbmcgKGtlcm5lbC9sb2NraW5nLyksCiAgICBCUEYsIHNjaGVkdWxlciwgY29yZSBuZXR3b3JraW5nLCBWRlMsIG9yIHN5c2NhbGwgaGFuZGxpbmcuCi0gUmVmYWN0b3JpbmdzIGFuZCBDb2RlIENsZWFudXBzOgogICogQW55IHJlc3RydWN0dXJpbmcgb2YgcmVhY2hhYmxlIGRhdGEgc3RydWN0dXJlcywgaGVscGVyIGFic3RyYWN0aW9ucywgb3IgYWxnb3JpdGhtIGZsb3dzLgotIFJ1bnRpbWUgQXNzZXJ0aW9ucyBhbmQgRGVmZW5zaXZlIENoZWNrczoKICAqIEFueSBpbnRyb2R1Y3Rpb24gb3IgYWx0ZXJhdGlvbiBvZiBhc3NlcnRpb25zIChXQVJOX09OKiwgVk1fV0FSTl9PTiosIEJVR19PTiosIGV0Yy4pIGluIHJlYWNoYWJsZSBwYXRocy4KLSBSZWFjaGFibGUgRHJpdmVycyBhbmQgUHJvdG9jb2xzOgogICogRHJpdmVycyBhY2Nlc3NpYmxlIHZpYSB2aXJ0dWFsIGJ1c2VzICh2aXJ0aW8sIFVTQiBnYWRnZXQsIGxvb3BiYWNrLCBuZXRsaW5rLCBiaW5kZXIsIHNvY2tldHMsIGV0Yy4pLgoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KNC4gRVhUUkFDVElORyBGb2N1c1N5bWJvbHMgKFBSRVZFTlRJTkcgRElMVVRJT04pCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CldoZW4gV29ydGhGdXp6aW5nPXRydWUsIHlvdSBtdXN0IGV4dHJhY3Qgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyBpbnRvIEZvY3VzU3ltYm9scyB0byBndWlkZSB0aGUgZnV6emVyOgoKLSBBVk9JRCBVQklRVUlUT1VTIExJRkVDWUNMRSBIT1QtUEFUSFM6CiAgRG8gTk9UIGxpc3QgZ2VuZXJpYywgdWJpcXVpdG91cyBmdW5jdGlvbnMgY2FsbGVkIGJ5IGFsbW9zdCBldmVyeSBwcm9ncmFtIGluIHRoZSBjb3JwdXMKICAoaW5jbHVkaW5nLCBidXQgbm90IGxpbWl0ZWQgdG86IGdlbmVyYWwgbWVtb3J5IGFsbG9jYXRvcnMgYW5kIGRlYWxsb2NhdG9ycywgcGFnZSBmYXVsdAogIGFuZCB0cmFwIGhhbmRsZXJzLCBvciBjb3JlIHN5bmNocm9uaXphdGlvbiBwcmltaXRpdmVzOyB0aGlzIGlzIG5vdCBhbiBleGhhdXN0aXZlIGxpc3QpLgogIExpc3RpbmcgdWJpcXVpdG91cyBmdW5jdGlvbnMgY2F1c2VzIHRoZSBmdXp6ZXIgdG8gY2xhc3NpZnkgdGhvdXNhbmRzIG9mIHVucmVsYXRlZCB0ZXN0cyBhcyAmIzM0O2ZvY3VzZWQmIzM0OywKICB3aGljaCBzZXZlcmVseSBkaWx1dGVzIGZ1enppbmcgZWZmb3J0IGF3YXkgZnJvbSB0aGUgYWN0dWFsIGNoYW5nZXMuCgotIFRBUkdFVCBTUEVDSUZJQyBGRUFUVVJFIExPR0lDIEFORCBFTlRSWVBPSU5UUzoKICBMaXN0IGZ1bmN0aW9ucyB0aGF0IHNwZWNpZmljYWxseSBpbXBsZW1lbnQgdGhlIGxvZ2ljIGJlaW5nIGFkZGVkIG9yIGFsdGVyZWQsIG9yIGRpcmVjdCBBUEkgZW50cnlwb2ludHMKICBmb3IgdGhlIHN1YnN5c3RlbSBmZWF0dXJlIHVuZGVyIHJldmlldy4KCi0gSEFORExJTkcgU1RBVElDIElOTElORSBGVU5DVElPTlMgSU4gSEVBREVSUyAoLmgpOgogIENvbXBpbGVyLWlubGluZWQgc3RhdGljIGZ1bmN0aW9ucyAoc3VjaCBhcyBzdGF0aWMgaW5saW5lcyBpbiBtbS8qLmggb3IgaW5jbHVkZS9saW51eC8qLmgpIGxhY2sKICBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzIGluIHZtbGludXggYW5kIGNhbm5vdCBiZSB0YXJnZXRlZCBkaXJlY3RseSBieSBzeW1ib2wgY292ZXJhZ2UgZmlsdGVycy4KICBJZiB0aGUgY2hhbmdlcyBhcmUgcHJpbWFyaWx5IGluIHN0YXRpYyBpbmxpbmUgaGVscGVycywgaWRlbnRpZnkgbm9uLXN0YXRpYywgZmVhdHVyZS1zcGVjaWZpYyBjYWxsZXIKICBmdW5jdGlvbnMgaW4gLmMgZmlsZXMgdGhhdCBleGVyY2lzZSB0aGVtIChhdm9pZGluZyB1YmlxdWl0b3VzIGxpZmVjeWNsZSB3cmFwcGVycykuCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQo1LiBJREVOVElGWUlORyBFbmFibGVDb25maWdzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CklkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgY29tcGlsZSBhbmQgcmVhY2ggdGhlIG1vZGlmaWVkIGNvZGU6Ci0gSW5zcGVjdCBLY29uZmlnIGZpbGVzIGFuZCAjaWZkZWYgZ3VhcmRzOyBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy4KLSBDaGVjayAmIzM0O2RlcGVuZHMgb24mIzM0OyBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3MgbmVlZGVkLgotIFN0cmlwIGFueSAmIzM5O0NPTkZJR18mIzM5OyBwcmVmaXggKGUuZy4sIHJldHVybiAmIzM0O05FVF9JUFY0JiMzNDsgaW5zdGVhZCBvZiAmIzM0O0NPTkZJR19ORVRfSVBWNCYjMzQ7KS4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5UYXJnZXQgYXJjaGl0ZWN0dXJlOiBhbWQ2NAoKRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCA1ODVmMDk2YzQ4NmZmYzgwM2ZkNzY4NDBiMTFlODYyNWQ4MGMyOTQ2CkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIEZyaSBTZXAgMTEgMDY6MzI6MDIgMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tYWMuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21hYy5jCmluZGV4IDFjYmEzODFhNzhiODIuLmUyNGRkNTMwNDg2YzQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21hYy5jCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21hYy5jCkBAIC0xMDU3LDcgJiM0MzsxMDU3LDcgQEAgaW50IG10Nzk5Nl90eF9wcmVwYXJlX3NrYihzdHJ1Y3QgbXQ3Nl9kZXYgKm1kZXYsIHZvaWQgKnR4d2lfcHRyLAogCWlmICghd2NpZCkKIAkJd2NpZCA9ICZhbXA7ZGV2LSZndDttdDc2Lmdsb2JhbF93Y2lkOwogCi0JaWYgKChpc184MDIzIHx8IGllZWU4MDIxMV9pc19kYXRhX3FvcyhoZHItJmd0O2ZyYW1lX2NvbnRyb2wpKSAmYW1wOyZhbXA7IHN0YS0mZ3Q7bWxvICZhbXA7JmFtcDsKJiM0MzsJaWYgKHN0YSAmYW1wOyZhbXA7IChpc184MDIzIHx8IGllZWU4MDIxMV9pc19kYXRhX3FvcyhoZHItJmd0O2ZyYW1lX2NvbnRyb2wpKSAmYW1wOyZhbXA7IHN0YS0mZ3Q7bWxvICZhbXA7JmFtcDsKIAkgICAgbGlrZWx5KHR4X2luZm8tJmd0O3NrYi0mZ3Q7cHJvdG9jb2wgIT0gY3B1X3RvX2JlMTYoRVRIX1BfUEFFKSkpIHsKIAkJdTggdGlkID0gdHhfaW5mby0mZ3Q7c2tiLSZndDtwcmlvcml0eSAmYW1wOyBJRUVFODAyMTFfUU9TX0NUTF9USURfTUFTSzsKIApAQCAtMTA5Nyw3ICYjNDM7MTA5Nyw3IEBAIGludCBtdDc5OTZfdHhfcHJlcGFyZV9za2Ioc3RydWN0IG10NzZfZGV2ICptZGV2LCB2b2lkICp0eHdpX3B0ciwKIAkgKiBjb21wYXRpYmxlIHdpdGggODAyLjExIEVBUE9MIGZyYW1lLCB3ZSBkbyB0aGUgdHJhbnNsYXRpb24gYnkKIAkgKiBzb2Z0d2FyZQogCSAqLwotCWlmICh0eF9pbmZvLSZndDtza2ItJmd0O3Byb3RvY29sID09IGNwdV90b19iZTE2KEVUSF9QX1BBRSkgJmFtcDsmYW1wOyBzdGEtJmd0O21sbykgewomIzQzOwlpZiAoc3RhICZhbXA7JmFtcDsgdHhfaW5mby0mZ3Q7c2tiLSZndDtwcm90b2NvbCA9PSBjcHVfdG9fYmUxNihFVEhfUF9QQUUpICZhbXA7JmFtcDsgc3RhLSZndDttbG8pIHsKIAkJc3RydWN0IGllZWU4MDIxMV9oZHIgKmhkciA9ICh2b2lkICopdHhfaW5mby0mZ3Q7c2tiLSZndDtkYXRhOwogCQlzdHJ1Y3QgaWVlZTgwMjExX2Jzc19jb25mICpsaW5rX2NvbmY7CiAJCXN0cnVjdCBpZWVlODAyMTFfbGlua19zdGEgKmxpbmtfc3RhOwo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8xMSAwNjozMjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuNy1mbGFzaDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzMjQ2CgkJCQkJCQlvdXRwdXQ6IDQ0CgkJCQkJCQl0aG91Z2h0czogMzExCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyBhIE5ldHdvcmsgRHJpdmVyIFBhdGNoKioKCkFscmlnaHQsIGxldCYjMzk7cyBkaXZlIGludG8gdGhpcyBwYXRjaC4gTXkgaW1tZWRpYXRlIHRob3VnaHQgaXMgdG8gdW5kZXJzdGFuZCB0aGUgY29udGV4dCwgc28gSSBzZWUgdGhlIGNoYW5nZXMgYXJlIHdpdGhpbiBgZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbWFjLmNgLiBPa2F5LCB0aGF0JiMzOTtzIE1lZGlhVGVrJiMzOTtzIE1UNzk5NiB3aXJlbGVzcyBkcml2ZXI7IGdvdCBpdC4gTm93LCB0aGUgZGlmZiBpdHNlbGYgc2hvd3MgdHdvIGluc3RhbmNlcyBvZiB3aGF0IGxvb2tzIGxpa2UgYWRkZWQgYHN0YWAgY2hlY2tzIGJlZm9yZSBhY2Nlc3NpbmcgYHN0YS0mZ3Q7bWxvYC4gU3BlY2lmaWNhbGx5IHRoZSBsaW5lcyBhcmUgd2l0aGluIHRoZSBmdW5jdGlvbiBgbXQ3OTk2X3R4X3ByZXBhcmVfc2tiYC4gSXQmIzM5O3MgYSBmYWlybHkgc3RyYWlnaHRmb3J3YXJkIGNoYW5nZTsgaXQgYWRkcyBhIG51bGwgcG9pbnRlciBjaGVjayBmb3IgYHN0YWAgYmVmb3JlIGRlcmVmZXJlbmNpbmcgaXQgaW4gdHdvIGBpZmAgc3RhdGVtZW50cy4KCk15IGltbWVkaWF0ZSByZWFjdGlvbiBpcyB0aGF0IHRoaXMgaXMgbGlrZWx5IGEgZ29vZCB0aGluZyAtIGRlZmVuc2l2ZSBwcm9ncmFtbWluZyBhZ2FpbnN0IGEgcG90ZW50aWFsIG51bGwgcG9pbnRlciBkZXJlZmVyZW5jZS4gVGhlIGBzdGFgIHZhcmlhYmxlIGlzIGxpa2VseSBhIHBvaW50ZXIgdG8gYSBzdGF0aW9uIGVudHJ5LCBhbmQgd2l0aG91dCB0aGlzIGNoZWNrLCB3ZSBjb3VsZCBoYXZlIGEgY3Jhc2ggaWYgaXQmIzM5O3Mgc29tZWhvdyBudWxsIGluIHRob3NlIGNvZGUgcGF0aHMuIFRoZSBhZGRpdGlvbiBvZiB0aGUgYHN0YWAgY2hlY2sgbWFrZXMgdGhpcyBjb2RlIG11Y2ggbW9yZSByb2J1c3QsIHJlZ2FyZGxlc3Mgb2YgdGhlIGBpc184MDIzYCBvciBgaWVlZTgwMjExX2lzX2RhdGFfcW9zYCBjb25kaXRpb25zLCBvciB0aGUgYEVUSF9QX1BBRWAgcHJvdG9jb2wgYmVpbmcgbWV0LgoKTm93LCB0byBiZSB0aG9yb3VnaCwgSSYjMzk7ZCB3YW50IHRvIHF1aWNrbHkgY29uZmlybSB3aGF0IHRoZSBtdDc5OTYgZHJpdmVyIGlzLiBJcyB0aGlzIGEgUENJZSBkZXZpY2UsIGEgc3lzdGVtLW9uLWEtY2hpcCAoU29DKSBpbnRlZ3JhdGlvbiwgVVNCLCBvciBzb21ldGhpbmcgZWxzZSBsaWtlIG1hYzgwMjExX2h3c2ltPyBJJiMzOTtsbCBwcm9iYWJseSBqdXN0IGdsYW5jZSBhdCB0aGUgc3Vycm91bmRpbmcgZmlsZXMgaW4gYGRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2AgYW5kIHRoZSBLY29uZmlnIHRvIGNvbmZpcm0gaXRzIGFyY2hpdGVjdHVyZSBhbmQgdW5kZXJzdGFuZCBhbnkgcmVsZXZhbnQgZGVwZW5kZW5jaWVzIG9yIG51YW5jZXMuIFRoZW4sIEkgY2FuIG1ha2UgYSBqdWRnZW1lbnQgb24gaG93IGNyaXRpY2FsIHRoaXMgaXMsIGJ1dCBpdCYjMzk7cyBwcm9iYWJseSBwcmV0dHkgaW1wb3J0YW50LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzExIDA2OjMyPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O210Nzk5NiYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2LyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtcbkZ1bGwgb3V0cHV0IGlzIHRvbyBsb25nLCBzaG93aW5nIDUwMCBvdXQgb2YgNjYxOCBsaW5lcy5cblVzZSBtb3JlIHByZWNpc2UgZXhwcmVzc2lvbiBpZiBwb3NzaWJsZS5cblxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvTWFrZWZpbGUtMi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L01ha2VmaWxlOjM6b2JqLSQoQ09ORklHX01UNzk5NkUpICYjNDM7PSBtdDc5OTZlLm9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L01ha2VmaWxlLTQtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9NYWtlZmlsZTo1Om10Nzk5NmUteSA6PSBwY2kubyBpbml0Lm8gZG1hLm8gZWVwcm9tLm8gbWFpbi5vIG1jdS5vIG1hYy5vIFxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9NYWtlZmlsZS02LVx0ICAgICBkZWJ1Z2ZzLm8gbW1pby5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9NYWtlZmlsZS03LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvTWFrZWZpbGU6ODptdDc5OTZlLSQoQ09ORklHX01UNzk5Nl9OUFUpICYjNDM7PSBucHUub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvTWFrZWZpbGU6OTptdDc5OTZlLSQoQ09ORklHX0RFVl9DT1JFRFVNUCkgJiM0Mzs9IGNvcmVkdW1wLm9cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jPTEyPU1PRFVMRV9QQVJNX0RFU0MoY29yZWR1bXBfbWVtZHVtcCwgXCYjMzQ7T3B0aW9uYWwgYWJpbGl0eSB0byBkdW1wIGZpcm13YXJlIG1lbW9yeVwmIzM0Oyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jLTEzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYzoxNDpzdGF0aWMgY29uc3Qgc3RydWN0IG10Nzk5Nl9tZW1fcmVnaW9uIG10Nzk5Nl9tZW1fcmVnaW9uc1tdID0ge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYy0xNS1cdHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jLTQ2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYzo0Nzpjb25zdCBzdHJ1Y3QgbXQ3OTk2X21lbV9yZWdpb24qXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jOjQ4Om10Nzk5Nl9jb3JlZHVtcF9nZXRfbWVtX2xheW91dChzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2LCB1MzIgKm51bSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmMtNDkte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmMtNTItXHRjYXNlIE1UNzk5Nl9ERVZJQ0VfSURfMjpcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmM6NTM6XHRcdCpudW0gPSBBUlJBWV9TSVpFKG10Nzk5Nl9tZW1fcmVnaW9ucyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jOjU0Olx0XHRyZXR1cm4gXHUwMDI2bXQ3OTk2X21lbV9yZWdpb25zWzBdO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYy01NS1cdGRlZmF1bHQ6XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYy01OS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmM6NjA6c3RhdGljIGludCBtdDc5OTZfY29yZWR1bXBfZ2V0X21lbV9zaXplKHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jLTYxLXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmM6NjI6XHRjb25zdCBzdHJ1Y3QgbXQ3OTk2X21lbV9yZWdpb24gKm1lbV9yZWdpb247XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jLTYzLVx0c2l6ZV90IHNpemUgPSAwO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmMtNjYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jOjY3Olx0bWVtX3JlZ2lvbiA9IG10Nzk5Nl9jb3JlZHVtcF9nZXRfbWVtX2xheW91dChkZXYsIFx1MDAyNm51bSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jLTY4LVx0aWYgKCFtZW1fcmVnaW9uKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmMtNzYtXHQvKiByZXNlcnZlIHNwYWNlIGZvciB0aGUgaGVhZGVycyAqL1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYzo3NzpcdHNpemUgJiM0Mzs9IG51bSAqIHNpemVvZihzdHJ1Y3QgbXQ3OTk2X21lbV9oZHIpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYy03OC1cdC8qIG1ha2Ugc3VyZSBpdCBpcyBhbGlnbmVkIDQgYnl0ZXMgZm9yIGRlYnVnIG1lc3NhZ2UgcHJpbnQgb3V0ICovXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYy04My1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmM6ODQ6c3RydWN0IG10Nzk5Nl9jcmFzaF9kYXRhICptdDc5OTZfY29yZWR1bXBfbmV3KHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jLTg1LXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmM6ODY6XHRzdHJ1Y3QgbXQ3OTk2X2NyYXNoX2RhdGEgKmNyYXNoX2RhdGEgPSBkZXYtXHUwMDNlY29yZWR1bXAuY3Jhc2hfZGF0YTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmMtODctXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYz0xMDA9c3RhdGljIHZvaWRcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmM6MTAxOm10Nzk5Nl9jb3JlZHVtcF9md19zdGF0ZShzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2LCBzdHJ1Y3QgbXQ3OTk2X2NvcmVkdW1wICpkdW1wLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYy0xMDItXHRcdFx0IGJvb2wgKmV4Y2VwdGlvbilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jPTExNz1zdGF0aWMgdm9pZFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYzoxMTg6bXQ3OTk2X2NvcmVkdW1wX2Z3X3N0YWNrKHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYsIHN0cnVjdCBtdDc5OTZfY29yZWR1bXAgKmR1bXAsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jLTExOS1cdFx0XHQgYm9vbCBleGNlcHRpb24pXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYy0xNjEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jOjE2MjpzdGF0aWMgc3RydWN0IG10Nzk5Nl9jb3JlZHVtcCAqbXQ3OTk2X2NvcmVkdW1wX2J1aWxkKHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jLTE2My17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jOjE2NDpcdHN0cnVjdCBtdDc5OTZfY3Jhc2hfZGF0YSAqY3Jhc2hfZGF0YSA9IGRldi1cdTAwM2Vjb3JlZHVtcC5jcmFzaF9kYXRhO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYzoxNjU6XHRzdHJ1Y3QgbXQ3OTk2X2NvcmVkdW1wICpkdW1wO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYzoxNjY6XHRzdHJ1Y3QgbXQ3OTk2X2NvcmVkdW1wX21lbSAqZHVtcF9tZW07XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jLTE2Ny1cdHNpemVfdCBsZW4sIHNvZmFyID0gMCwgaGRyX2xlbiA9IHNpemVvZigqZHVtcCk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYy0xODYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jOjE4NzpcdGR1bXAgPSAoc3RydWN0IG10Nzk5Nl9jb3JlZHVtcCAqKShidWYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYy0xODgtXHRkdW1wLVx1MDAzZWxlbiA9IGxlbjtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jLTIwMC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmM6MjAxOlx0bXQ3OTk2X2NvcmVkdW1wX2Z3X3N0YXRlKGRldiwgZHVtcCwgXHUwMDI2ZXhjZXB0aW9uKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmM6MjAyOlx0bXQ3OTk2X2NvcmVkdW1wX2Z3X3N0YWNrKGRldiwgZHVtcCwgZXhjZXB0aW9uKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmMtMjAzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYy0yMDQtXHQvKiBnYXRoZXIgbWVtb3J5IGNvbnRlbnQgKi9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmM6MjA1Olx0ZHVtcF9tZW0gPSAoc3RydWN0IG10Nzk5Nl9jb3JlZHVtcF9tZW0gKikoYnVmICYjNDM7IHNvZmFyKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmMtMjA2LVx0ZHVtcF9tZW0tXHUwMDNlbGVuID0gY3Jhc2hfZGF0YS1cdTAwM2VtZW1kdW1wX2J1Zl9sZW47XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYy0yMTUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jOjIxNjppbnQgbXQ3OTk2X2NvcmVkdW1wX3N1Ym1pdChzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYy0yMTcte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYzoyMTg6XHRzdHJ1Y3QgbXQ3OTk2X2NvcmVkdW1wICpkdW1wO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYy0yMTktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jOjIyMDpcdGR1bXAgPSBtdDc5OTZfY29yZWR1bXBfYnVpbGQoZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmMtMjIxLVx0aWYgKCFkdW1wKSB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYy0yMzAtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jOjIzMTppbnQgbXQ3OTk2X2NvcmVkdW1wX3JlZ2lzdGVyKHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jLTIzMi17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jOjIzMzpcdHN0cnVjdCBtdDc5OTZfY3Jhc2hfZGF0YSAqY3Jhc2hfZGF0YTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmMtMjM0LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmMtMjQxLVx0aWYgKGNvcmVkdW1wX21lbWR1bXApIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmM6MjQyOlx0XHRjcmFzaF9kYXRhLVx1MDAzZW1lbWR1bXBfYnVmX2xlbiA9IG10Nzk5Nl9jb3JlZHVtcF9nZXRfbWVtX3NpemUoZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmMtMjQzLVx0XHRpZiAoIWNyYXNoX2RhdGEtXHUwMDNlbWVtZHVtcF9idWZfbGVuKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmMtMjU2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYzoyNTc6dm9pZCBtdDc5OTZfY29yZWR1bXBfdW5yZWdpc3RlcihzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYy0yNTgte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmgtNi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmg6NzojaW5jbHVkZSBcJiMzNDttdDc5OTYuaFwmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuaC04LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuaDo5OnN0cnVjdCBtdDc5OTZfY29yZWR1bXAge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuaC0xMC1cdGNoYXIgbWFnaWNbMTZdO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmgtMzktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5oOjQwOnN0cnVjdCBtdDc5OTZfY29yZWR1bXBfbWVtIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmgtNDEtXHR1MzIgbGVuO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmgtNDQtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5oOjQ1OnN0cnVjdCBtdDc5OTZfbWVtX2hkciB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5oLTQ2LVx0dTMyIHN0YXJ0O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmgtNTAtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5oOjUxOnN0cnVjdCBtdDc5OTZfbWVtX3JlZ2lvbiB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5oLTUyLVx0dTMyIHN0YXJ0O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmgtNTktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5oOjYwOmNvbnN0IHN0cnVjdCBtdDc5OTZfbWVtX3JlZ2lvbiAqXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5oOjYxOm10Nzk5Nl9jb3JlZHVtcF9nZXRfbWVtX2xheW91dChzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2LCB1MzIgKm51bSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5oOjYyOnN0cnVjdCBtdDc5OTZfY3Jhc2hfZGF0YSAqbXQ3OTk2X2NvcmVkdW1wX25ldyhzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmg6NjM6aW50IG10Nzk5Nl9jb3JlZHVtcF9zdWJtaXQoc3RydWN0IG10Nzk5Nl9kZXYgKmRldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5oOjY0OmludCBtdDc5OTZfY29yZWR1bXBfcmVnaXN0ZXIoc3RydWN0IG10Nzk5Nl9kZXYgKmRldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5oOjY1OnZvaWQgbXQ3OTk2X2NvcmVkdW1wX3VucmVnaXN0ZXIoc3RydWN0IG10Nzk5Nl9kZXYgKmRldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5oLTY2LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmgtNjgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5oOjY5OnN0YXRpYyBpbmxpbmUgY29uc3Qgc3RydWN0IG10Nzk5Nl9tZW1fcmVnaW9uICpcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmg6NzA6bXQ3OTk2X2NvcmVkdW1wX2dldF9tZW1fbGF5b3V0KHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYsIHUzMiAqbnVtKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuaC03MS17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuaC03NC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmg6NzU6c3RhdGljIGlubGluZSBpbnQgbXQ3OTk2X2NvcmVkdW1wX3N1Ym1pdChzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuaC03Ni17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuaD04MD1zdGF0aWMgaW5saW5lIHN0cnVjdFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuaDo4MTptdDc5OTZfY3Jhc2hfZGF0YSAqbXQ3OTk2X2NvcmVkdW1wX25ldyhzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuaC04Mi17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuaC04NS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmg6ODY6c3RhdGljIGlubGluZSBpbnQgbXQ3OTk2X2NvcmVkdW1wX3JlZ2lzdGVyKHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5oLTg3LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5oLTkwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuaDo5MTpzdGF0aWMgaW5saW5lIHZvaWQgbXQ3OTk2X2NvcmVkdW1wX3VucmVnaXN0ZXIoc3RydWN0IG10Nzk5Nl9kZXYgKmRldilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmgtOTIte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy02LSNpbmNsdWRlIFx1MDAzY2xpbnV4L3JlbGF5LmhcdTAwM2VcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo3OiNpbmNsdWRlIFwmIzM0O210Nzk5Ni5oXCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtOC0jaW5jbHVkZSBcJiMzNDtlZXByb20uaFwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYz0yMz1zdGF0aWMgaW50XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6MjQ6bXQ3OTk2X2ltcGxpY2l0X3R4YmZfc2V0KHZvaWQgKmRhdGEsIHU2NCB2YWwpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtMjUte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjI2Olx0c3RydWN0IG10Nzk5Nl9kZXYgKmRldiA9IGRhdGE7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtMjctXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTMyLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjMzOlx0cmV0dXJuIG10Nzk5Nl9tY3Vfc2V0X3R4YmYoZGV2LCBCRl9IV19FTl9VUERBVEUpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTM0LX1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM9MzY9c3RhdGljIGludFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjM3Om10Nzk5Nl9pbXBsaWNpdF90eGJmX2dldCh2b2lkICpkYXRhLCB1NjQgKnZhbClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy0zOC17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6Mzk6XHRzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2ID0gZGF0YTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy00MC1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNDUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6NDY6REVGSU5FX0RFQlVHRlNfQVRUUklCVVRFKGZvcHNfaW1wbGljaXRfdHhiZiwgbXQ3OTk2X2ltcGxpY2l0X3R4YmZfZ2V0LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjQ3Olx0XHRcdCBtdDc5OTZfaW1wbGljaXRfdHhiZl9zZXQsIFwmIzM0OyVsbGRcXG5cJiMzNDspO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTQ4LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYz01MD1zdGF0aWMgc3NpemVfdFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjUxOm10Nzk5Nl9zeXNfcmVjb3Zlcnlfc2V0KHN0cnVjdCBmaWxlICpmaWxlLCBjb25zdCBjaGFyIF9fdXNlciAqdXNlcl9idWYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNTItXHRcdFx0c2l6ZV90IGNvdW50LCBsb2ZmX3QgKnBwb3MpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNTMte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjU0Olx0c3RydWN0IG10Nzk5Nl9kZXYgKmRldiA9IGZpbGUtXHUwMDNlcHJpdmF0ZV9kYXRhO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTU1LVx0Y2hhciBidWZbMTZdLCAqc2VwO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy05MS1cdGNhc2UgVU5JX0NNRF9TRVJfUVVFUlk6XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6OTI6XHRcdHJldCA9IG10Nzk5Nl9tY3Vfc2V0X3NlcihkZXYsIFVOSV9DTURfU0VSX1FVRVJZLCAwLCBiYW5kKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy05My1cdFx0YnJlYWs7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTEwMC1cdGNhc2UgVU5JX0NNRF9TRVJfU0VUX1JFQ09WRVJfTDRfTURQOlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjEwMTpcdFx0cmV0ID0gbXQ3OTk2X21jdV9zZXRfc2VyKGRldiwgVU5JX0NNRF9TRVJfU0VULCBCSVQodmFsKSwgYmFuZCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtMTAyLVx0XHRpZiAocmV0KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy0xMDQtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6MTA1Olx0XHRyZXQgPSBtdDc5OTZfbWN1X3NldF9zZXIoZGV2LCBVTklfQ01EX1NFUl9UUklHR0VSLCB2YWwsIGJhbmQpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTEwNi1cdFx0YnJlYWs7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTExMS1cdFx0ZGV2LVx1MDAzZXJlY292ZXJ5LnN0YXRlIHw9IE1UX01DVV9DTURfV0RUX01BU0s7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6MTEyOlx0XHRtdDc5OTZfcmVzZXQoZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy0xMTMtXHRcdGJyZWFrO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy0xMTYtXHRjYXNlIFVOSV9DTURfU0VSX1NFVF9TWVNURU1fQVNTRVJUOlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjExNzpcdFx0cmV0ID0gbXQ3OTk2X21jdV90cmlnZ2VyX2Fzc2VydChkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTExOC1cdFx0aWYgKHJldClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM9MTI4PXN0YXRpYyBzc2l6ZV90XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6MTI5Om10Nzk5Nl9zeXNfcmVjb3ZlcnlfZ2V0KHN0cnVjdCBmaWxlICpmaWxlLCBjaGFyIF9fdXNlciAqdXNlcl9idWYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtMTMwLVx0XHRcdHNpemVfdCBjb3VudCwgbG9mZl90ICpwcG9zKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTEzMS17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6MTMyOlx0c3RydWN0IG10Nzk5Nl9kZXYgKmRldiA9IGZpbGUtXHUwMDNlcHJpdmF0ZV9kYXRhO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTEzMy1cdGNoYXIgKmJ1ZmY7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTIxNC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzoyMTU6c3RhdGljIGNvbnN0IHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgbXQ3OTk2X3N5c19yZWNvdmVyeV9vcHMgPSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6MjE2Olx0LndyaXRlID0gbXQ3OTk2X3N5c19yZWNvdmVyeV9zZXQsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6MjE3Olx0LnJlYWQgPSBtdDc5OTZfc3lzX3JlY292ZXJ5X2dldCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy0yMTgtXHQub3BlbiA9IHNpbXBsZV9vcGVuLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYz0yMjI9c3RhdGljIGludFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjIyMzptdDc5OTZfcmFkYXJfdHJpZ2dlcih2b2lkICpkYXRhLCB1NjQgdmFsKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTIyNC17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTIyNi0jZGVmaW5lIFJBREFSX0JBQ0tHUk9VTkRcdDJcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzoyMjc6XHRzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2ID0gZGF0YTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzoyMjg6XHRzdHJ1Y3QgbXQ3OTk2X3BoeSAqcGh5ID0gbXQ3OTk2X2JhbmRfcGh5KGRldiwgTkw4MDIxMV9CQU5EXzVHSFopO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTIyOS1cdHN0cnVjdCBjZmc4MDIxMV9jaGFuX2RlZiAqY2hhbmRlZjtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtMjQ3LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjI0ODpcdHJkZF9pZHggPSBtdDc5OTZfZ2V0X3JkZF9pZHgocGh5LCB2YWwgPT0gUkFEQVJfQkFDS0dST1VORCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtMjQ5LVx0aWYgKHJkZF9pZHggXHUwMDNjIDApIHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtMjU4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjI1OTpcdHJldHVybiBtdDc5OTZfbWN1X3JkZF9jbWQoZGV2LCBSRERfUkFEQVJfRU1VTEFURSwgcmRkX2lkeCwgMCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtMjYwLX1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM9MjYyPURFRklORV9ERUJVR0ZTX0FUVFJJQlVURShmb3BzX3JhZGFyX3RyaWdnZXIsIE5VTEwsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6MjYzOlx0XHRcdCBtdDc5OTZfcmFkYXJfdHJpZ2dlciwgXCYjMzQ7JWxsZFxcblwmIzM0Oyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtMjY0LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jPTI2NT1zdGF0aWMgaW50XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6MjY2Om10Nzk5Nl9yZGRfbW9uaXRvcihzdHJ1Y3Qgc2VxX2ZpbGUgKnMsIHZvaWQgKmRhdGEpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtMjY3LXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzoyNjg6XHRzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2ID0gZGV2X2dldF9kcnZkYXRhKHMtXHUwMDNlcHJpdmF0ZSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtMjY5LVx0c3RydWN0IGNmZzgwMjExX2NoYW5fZGVmICpjaGFuZGVmID0gXHUwMDI2ZGV2LVx1MDAzZXJkZDJfY2hhbmRlZjtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM9MzEyPXN0YXRpYyBpbnRcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzozMTM6bXQ3OTk2X2Z3X2RlYnVnX3dtX3NldCh2b2lkICpkYXRhLCB1NjQgdmFsKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTMxNC17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6MzE1Olx0c3RydWN0IG10Nzk5Nl9kZXYgKmRldiA9IGRhdGE7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtMzE2LVx0ZW51bSB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTMzNy1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzozMzg6XHRyZXQgPSBtdDc5OTZfbWN1X2Z3X2xvZ18yX2hvc3QoZGV2LCBNQ1VfRldfTE9HX1dNLCB2YWwpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTMzOS1cdGlmIChyZXQpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTM1MC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzozNTE6XHRcdHJldCA9IG10Nzk5Nl9tY3VfZndfZGJnX2N0cmwoZGV2LCBkZWJ1ZywgdmFsKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy0zNTItXHRcdGlmIChyZXQpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jPTM1OT1zdGF0aWMgaW50XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6MzYwOm10Nzk5Nl9md19kZWJ1Z193bV9nZXQodm9pZCAqZGF0YSwgdTY0ICp2YWwpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtMzYxLXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzozNjI6XHRzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2ID0gZGF0YTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy0zNjMtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTM2OC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzozNjk6REVGSU5FX0RFQlVHRlNfQVRUUklCVVRFKGZvcHNfZndfZGVidWdfd20sIG10Nzk5Nl9md19kZWJ1Z193bV9nZXQsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6MzcwOlx0XHRcdCBtdDc5OTZfZndfZGVidWdfd21fc2V0LCBcJiMzNDslbGxkXFxuXCYjMzQ7KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy0zNzEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM9MzcyPXN0YXRpYyBpbnRcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzozNzM6bXQ3OTk2X2Z3X2RlYnVnX3dhX3NldCh2b2lkICpkYXRhLCB1NjQgdmFsKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTM3NC17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6Mzc1Olx0c3RydWN0IG10Nzk5Nl9kZXYgKmRldiA9IGRhdGE7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtMzc2LVx0aW50IHJldDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtMzc5LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjM4MDpcdHJldCA9IG10Nzk5Nl9tY3VfZndfbG9nXzJfaG9zdChkZXYsIE1DVV9GV19MT0dfV0EsIGRldi1cdTAwM2Vmd19kZWJ1Z193YSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtMzgxLVx0aWYgKHJldClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtMzgzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjM4NDpcdHJldHVybiBtdDc5OTZfbWN1X3dhX2NtZChkZXYsIE1DVV9XQV9QQVJBTV9DTUQoU0VUKSwgTUNVX1dBX1BBUkFNX1BETUFfUlgsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtMzg1LVx0XHRcdFx0ICEhZGV2LVx1MDAzZWZ3X2RlYnVnX3dhLCAwKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM9Mzg4PXN0YXRpYyBpbnRcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzozODk6bXQ3OTk2X2Z3X2RlYnVnX3dhX2dldCh2b2lkICpkYXRhLCB1NjQgKnZhbClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy0zOTAte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjM5MTpcdHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYgPSBkYXRhO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTM5Mi1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtMzk3LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjM5ODpERUZJTkVfREVCVUdGU19BVFRSSUJVVEUoZm9wc19md19kZWJ1Z193YSwgbXQ3OTk2X2Z3X2RlYnVnX3dhX2dldCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzozOTk6XHRcdFx0IG10Nzk5Nl9md19kZWJ1Z193YV9zZXQsIFwmIzM0OyVsbGRcXG5cJiMzNDspO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTQwMC1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM9NDI1PXN0YXRpYyBpbnRcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo0MjY6bXQ3OTk2X2Z3X2RlYnVnX2Jpbl9zZXQodm9pZCAqZGF0YSwgdTY0IHZhbClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy00Mjcte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy00MzEtXHR9O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjQzMjpcdHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYgPSBkYXRhO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTQzMy1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNDQzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjQ0NDpcdHJldHVybiBtdDc5OTZfZndfZGVidWdfd21fc2V0KGRldiwgZGV2LVx1MDAzZWZ3X2RlYnVnX3dtKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy00NDUtfVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYz00NDc9c3RhdGljIGludFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjQ0ODptdDc5OTZfZndfZGVidWdfYmluX2dldCh2b2lkICpkYXRhLCB1NjQgKnZhbClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy00NDkte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjQ1MDpcdHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYgPSBkYXRhO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTQ1MS1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNDU2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjQ1NzpERUZJTkVfREVCVUdGU19BVFRSSUJVVEUoZm9wc19md19kZWJ1Z19iaW4sIG10Nzk5Nl9md19kZWJ1Z19iaW5fZ2V0LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjQ1ODpcdFx0XHQgbXQ3OTk2X2Z3X2RlYnVnX2Jpbl9zZXQsIFwmIzM0OyVsbGRcXG5cJiMzNDspO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTQ1OS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYz00NjA9c3RhdGljIGludFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjQ2MTptdDc5OTZfZndfdXRpbF93YV9zaG93KHN0cnVjdCBzZXFfZmlsZSAqZmlsZSwgdm9pZCAqZGF0YSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy00NjIte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjQ2MzpcdHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYgPSBmaWxlLVx1MDAzZXByaXZhdGU7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNDY0LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTQ2NS1cdGlmIChkZXYtXHUwMDNlZndfZGVidWdfd2EpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6NDY2Olx0XHRyZXR1cm4gbXQ3OTk2X21jdV93YV9jbWQoZGV2LCBNQ1VfV0FfUEFSQU1fQ01EKFFVRVJZKSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy00NjctXHRcdFx0XHRcdCBNQ1VfV0FfUEFSQU1fQ1BVX1VUSUwsIDAsIDApO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy00NzEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6NDcyOkRFRklORV9TSE9XX0FUVFJJQlVURShtdDc5OTZfZndfdXRpbF93YSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNDczLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jPTQ3ND1zdGF0aWMgdm9pZFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjQ3NTptdDc5OTZfYW1wZHVfc3RhdF9yZWFkX3BoeShzdHJ1Y3QgbXQ3OTk2X3BoeSAqcGh5LCBzdHJ1Y3Qgc2VxX2ZpbGUgKmZpbGUpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNDc2LXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo0Nzc6XHRzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2ID0gcGh5LVx1MDAzZWRldjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy00NzgtXHRpbnQgYm91bmRbMTVdLCByYW5nZVs4XSwgaTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM9NTA0PXN0YXRpYyB2b2lkXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6NTA1Om10Nzk5Nl90eGJmX3N0YXRfcmVhZF9waHkoc3RydWN0IG10Nzk5Nl9waHkgKnBoeSwgc3RydWN0IHNlcV9maWxlICpzKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTUwNi17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jPTU1Mj1zdGF0aWMgdm9pZFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjU1MzptdDc5OTZfdHhfc3RhdHNfc2hvd19waHkoc3RydWN0IHNlcV9maWxlICpmaWxlLCBzdHJ1Y3QgbXQ3OTk2X3BoeSAqcGh5KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTU1NC17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTU1OC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo1NTk6XHRtdDc5OTZfbWFjX3VwZGF0ZV9zdGF0cyhwaHkpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjU2MDpcdG10Nzk5Nl9hbXBkdV9zdGF0X3JlYWRfcGh5KHBoeSwgZmlsZSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNTYxLVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy01NjgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6NTY5Olx0bXQ3OTk2X3R4YmZfc3RhdF9yZWFkX3BoeShwaHksIGZpbGUpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTU3MC1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM9NTg0PXN0YXRpYyBpbnRcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo1ODU6bXQ3OTk2X3R4X3N0YXRzX3Nob3coc3RydWN0IHNlcV9maWxlICpmaWxlLCB2b2lkICpkYXRhKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTU4Ni17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6NTg3Olx0c3RydWN0IG10Nzk5Nl9kZXYgKmRldiA9IGZpbGUtXHUwMDNlcHJpdmF0ZTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo1ODg6XHRzdHJ1Y3QgbXQ3OTk2X3BoeSAqcGh5ID0gXHUwMDI2ZGV2LVx1MDAzZXBoeTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy01ODktXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTU5MS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo1OTI6XHRtdDc5OTZfdHhfc3RhdHNfc2hvd19waHkoZmlsZSwgcGh5KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo1OTM6XHRwaHkgPSBtdDc5OTZfcGh5MihkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTU5NC1cdGlmIChwaHkpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6NTk1Olx0XHRtdDc5OTZfdHhfc3RhdHNfc2hvd19waHkoZmlsZSwgcGh5KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo1OTY6XHRwaHkgPSBtdDc5OTZfcGh5MyhkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTU5Ny1cdGlmIChwaHkpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6NTk4Olx0XHRtdDc5OTZfdHhfc3RhdHNfc2hvd19waHkoZmlsZSwgcGh5KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy01OTktXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTYwNC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo2MDU6REVGSU5FX1NIT1dfQVRUUklCVVRFKG10Nzk5Nl90eF9zdGF0cyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNjA2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jPTYwNz1zdGF0aWMgdm9pZFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjYwODptdDc5OTZfaHdfcXVldWVfcmVhZChzdHJ1Y3Qgc2VxX2ZpbGUgKnMsIHUzMiBzaXplLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTYwOS1cdFx0ICAgICBjb25zdCBzdHJ1Y3QgaHdfcXVldWVfbWFwICptYXApXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNjEwLXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo2MTE6XHRzdHJ1Y3QgbXQ3OTk2X3BoeSAqcGh5ID0gcy1cdTAwM2Vwcml2YXRlO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjYxMjpcdHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYgPSBwaHktXHUwMDNlZGV2O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTYxMy1cdHUzMiBpLCB2YWw7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jPTYzOD1zdGF0aWMgdm9pZFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjYzOTptdDc5OTZfc3RhX2h3X3F1ZXVlX3JlYWQodm9pZCAqZGF0YSwgc3RydWN0IGllZWU4MDIxMV9zdGEgKnN0YSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy02NDAte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjY0MTpcdHN0cnVjdCBtdDc5OTZfc3RhICptc3RhID0gKHN0cnVjdCBtdDc5OTZfc3RhICopc3RhLVx1MDAzZWRydl9wcml2O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjY0MjpcdHN0cnVjdCBtdDc5OTZfdmlmICptdmlmID0gbXN0YS1cdTAwM2V2aWY7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6NjQzOlx0c3RydWN0IG10Nzk5Nl9waHkgKnBoeSA9IG10Nzk5Nl92aWZfbGlua19waHkoXHUwMDI2bXZpZi1cdTAwM2VkZWZsaW5rKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy02NDQtXHRzdHJ1Y3QgaWVlZTgwMjExX2xpbmtfc3RhICpsaW5rX3N0YTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNjQ2LVx0c3RydWN0IGllZWU4MDIxMV92aWYgKnZpZjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo2NDc6XHRzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTY0OC1cdHVuc2lnbmVkIGludCBsaW5rX2lkO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy02NTgtXHRmb3JfZWFjaF9zdGFfYWN0aXZlX2xpbmsodmlmLCBzdGEsIGxpbmtfc3RhLCBsaW5rX2lkKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6NjU5Olx0XHRzdHJ1Y3QgbXQ3OTk2X3N0YV9saW5rICptc3RhX2xpbms7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNjYwLVx0XHRzdHJ1Y3QgbXQ3Nl92aWZfbGluayAqbWxpbms7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTY2Ni1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo2Njc6XHRcdG1zdGFfbGluayA9IG10Nzk5Nl9zdGFfbGluayhtc3RhLCBsaW5rX2lkKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy02NjgtXHRcdGlmICghbXN0YV9saW5rKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYz02OTQ9c3RhdGljIGludFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjY5NTptdDc5OTZfaHdfcXVldWVzX3Nob3coc3RydWN0IHNlcV9maWxlICpmaWxlLCB2b2lkICpkYXRhKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTY5Ni17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6Njk3Olx0c3RydWN0IG10Nzk5Nl9kZXYgKmRldiA9IGZpbGUtXHUwMDNlcHJpdmF0ZTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo2OTg6XHRzdHJ1Y3QgbXQ3OTk2X3BoeSAqcGh5ID0gXHUwMDI2ZGV2LVx1MDAzZXBoeTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy02OTktXHRzdGF0aWMgY29uc3Qgc3RydWN0IGh3X3F1ZXVlX21hcCBwbGVfcXVldWVfbWFwW10gPSB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTc0Ny1cdHNlcV9wdXRzKGZpbGUsIFwmIzM0O1BMRSBub24tZW1wdHkgcXVldWUgaW5mbzpcXG5cJiMzNDspO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjc0ODpcdG10Nzk5Nl9od19xdWV1ZV9yZWFkKGZpbGUsIEFSUkFZX1NJWkUocGxlX3F1ZXVlX21hcCksXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNzQ5LVx0XHRcdCAgICAgXHUwMDI2cGxlX3F1ZXVlX21hcFswXSk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTc1Mi1cdGllZWU4MDIxMV9pdGVyYXRlX3N0YXRpb25zX2F0b21pYyhwaHktXHUwMDNlbXQ3Ni1cdTAwM2VodyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo3NTM6XHRcdFx0XHRcdCAgbXQ3OTk2X3N0YV9od19xdWV1ZV9yZWFkLCBmaWxlKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo3NTQ6XHRwaHkgPSBtdDc5OTZfcGh5MihkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTc1NS1cdGlmIChwaHkpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNzU2LVx0XHRpZWVlODAyMTFfaXRlcmF0ZV9zdGF0aW9uc19hdG9taWMocGh5LVx1MDAzZW10NzYtXHUwMDNlaHcsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6NzU3Olx0XHRcdFx0XHRcdCAgbXQ3OTk2X3N0YV9od19xdWV1ZV9yZWFkLCBmaWxlKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo3NTg6XHRwaHkgPSBtdDc5OTZfcGh5MyhkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTc1OS1cdGlmIChwaHkpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNzYwLVx0XHRpZWVlODAyMTFfaXRlcmF0ZV9zdGF0aW9uc19hdG9taWMocGh5LVx1MDAzZW10NzYtXHUwMDNlaHcsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6NzYxOlx0XHRcdFx0XHRcdCAgbXQ3OTk2X3N0YV9od19xdWV1ZV9yZWFkLCBmaWxlKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy03NjItXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTc2NC1cdHNlcV9wdXRzKGZpbGUsIFwmIzM0O1BTRSBub24tZW1wdHkgcXVldWUgaW5mbzpcXG5cJiMzNDspO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjc2NTpcdG10Nzk5Nl9od19xdWV1ZV9yZWFkKGZpbGUsIEFSUkFZX1NJWkUocHNlX3F1ZXVlX21hcCksXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNzY2LVx0XHRcdCAgICAgXHUwMDI2cHNlX3F1ZXVlX21hcFswXSk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTc3MC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo3NzE6REVGSU5FX1NIT1dfQVRUUklCVVRFKG10Nzk5Nl9od19xdWV1ZXMpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTc3Mi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYz03NzM9c3RhdGljIGludFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjc3NDptdDc5OTZfeG1pdF9xdWV1ZXNfc2hvdyhzdHJ1Y3Qgc2VxX2ZpbGUgKmZpbGUsIHZvaWQgKmRhdGEpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNzc1LXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo3NzY6XHRzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2ID0gZmlsZS1cdTAwM2Vwcml2YXRlO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjc3NzpcdHN0cnVjdCBtdDc5OTZfcGh5ICpwaHk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNzc4LVx0c3RydWN0IHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNzkwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjc5MTpcdHBoeSA9IG10Nzk5Nl9waHkyKGRldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNzkyLVx0aWYgKHBoeSlcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNzk0LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjc5NTpcdHBoeSA9IG10Nzk5Nl9waHkzKGRldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNzk2LVx0aWYgKHBoeSlcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtODEzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjgxNDpERUZJTkVfU0hPV19BVFRSSUJVVEUobXQ3OTk2X3htaXRfcXVldWVzKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy04MTUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM9ODE2PXN0YXRpYyBpbnRcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo4MTc6bXQ3OTk2X3R3dF9zdGF0cyhzdHJ1Y3Qgc2VxX2ZpbGUgKnMsIHZvaWQgKmRhdGEpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtODE4LXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo4MTk6XHRzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2ID0gZGV2X2dldF9kcnZkYXRhKHMtXHUwMDNlcHJpdmF0ZSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6ODIwOlx0c3RydWN0IG10Nzk5Nl90d3RfZmxvdyAqaXRlcjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy04MjEtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jPTg0NT1zdGF0aWMgaW50XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6ODQ2Om10Nzk5Nl9yZl9yZWd2YWxfZ2V0KHZvaWQgKmRhdGEsIHU2NCAqdmFsKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTg0Ny17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6ODQ4Olx0c3RydWN0IG10Nzk5Nl9kZXYgKmRldiA9IGRhdGE7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtODQ5LVx0dTMyIHJlZ3ZhbDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtODUxLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjg1MjpcdHJldCA9IG10Nzk5Nl9tY3VfcmZfcmVndmFsKGRldiwgZGV2LVx1MDAzZW10NzYuZGVidWdmc19yZWcsIFx1MDAyNnJlZ3ZhbCwgZmFsc2UpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTg1My1cdGlmIChyZXQpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jPTg2MT1zdGF0aWMgaW50XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6ODYyOm10Nzk5Nl9yZl9yZWd2YWxfc2V0KHZvaWQgKmRhdGEsIHU2NCB2YWwpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtODYzLXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo4NjQ6XHRzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2ID0gZGF0YTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy04NjUtXHR1MzIgdmFsMzIgPSB2YWw7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtODY2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjg2NzpcdHJldHVybiBtdDc5OTZfbWN1X3JmX3JlZ3ZhbChkZXYsIGRldi1cdTAwM2VtdDc2LmRlYnVnZnNfcmVnLCBcdTAwMjZ2YWwzMiwgdHJ1ZSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtODY4LX1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy04NjktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6ODcwOkRFRklORV9ERUJVR0ZTX0FUVFJJQlVURShmb3BzX3JmX3JlZ3ZhbCwgbXQ3OTk2X3JmX3JlZ3ZhbF9nZXQsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6ODcxOlx0XHRcdCBtdDc5OTZfcmZfcmVndmFsX3NldCwgXCYjMzQ7MHglMDhsbHhcXG5cJiMzNDspO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTg3Mi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo4NzM6aW50IG10Nzk5Nl9pbml0X2RlYnVnZnMoc3RydWN0IG10Nzk5Nl9kZXYgKmRldilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy04NzQte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy04NzktXHRkZWJ1Z2ZzX2NyZWF0ZV9maWxlKFwmIzM0O2h3LXF1ZXVlc1wmIzM0OywgMDQwMCwgZGlyLCBkZXYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6ODgwOlx0XHRcdCAgICBcdTAwMjZtdDc5OTZfaHdfcXVldWVzX2ZvcHMpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTg4MS1cdGRlYnVnZnNfY3JlYXRlX2ZpbGUoXCYjMzQ7eG1pdC1xdWV1ZXNcJiMzNDssIDA0MDAsIGRpciwgZGV2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjg4MjpcdFx0XHQgICAgXHUwMDI2bXQ3OTk2X3htaXRfcXVldWVzX2ZvcHMpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjg4MzpcdGRlYnVnZnNfY3JlYXRlX2ZpbGUoXCYjMzQ7dHhfc3RhdHNcJiMzNDssIDA0MDAsIGRpciwgZGV2LCBcdTAwMjZtdDc5OTZfdHhfc3RhdHNfZm9wcyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtODg0LVx0ZGVidWdmc19jcmVhdGVfZmlsZShcJiMzNDtzeXNfcmVjb3ZlcnlcJiMzNDssIDA2MDAsIGRpciwgZGV2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjg4NTpcdFx0XHQgICAgXHUwMDI2bXQ3OTk2X3N5c19yZWNvdmVyeV9vcHMpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTg4Ni1cdGRlYnVnZnNfY3JlYXRlX2ZpbGUoXCYjMzQ7ZndfZGVidWdfd21cJiMzNDssIDA2MDAsIGRpciwgZGV2LCBcdTAwMjZmb3BzX2Z3X2RlYnVnX3dtKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtODkwLVx0ZGVidWdmc19jcmVhdGVfZmlsZShcJiMzNDtmd191dGlsX3dhXCYjMzQ7LCAwNDAwLCBkaXIsIGRldixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo4OTE6XHRcdFx0ICAgIFx1MDAyNm10Nzk5Nl9md191dGlsX3dhX2ZvcHMpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTg5Mi1cdGRlYnVnZnNfY3JlYXRlX2ZpbGUoXCYjMzQ7aW1wbGljaXRfdHhiZlwmIzM0OywgMDYwMCwgZGlyLCBkZXYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTg5NC1cdGRlYnVnZnNfY3JlYXRlX2Rldm1fc2VxZmlsZShkZXYtXHUwMDNlbXQ3Ni5kZXYsIFwmIzM0O3R3dF9zdGF0c1wmIzM0OywgZGlyLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjg5NTpcdFx0XHRcdCAgICBtdDc5OTZfdHd0X3N0YXRzKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy04OTYtXHRkZWJ1Z2ZzX2NyZWF0ZV9maWxlKFwmIzM0O3JmX3JlZ3ZhbFwmIzM0OywgMDYwMCwgZGlyLCBkZXYsIFx1MDAyNmZvcHNfcmZfcmVndmFsKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtOTAxLVx0ZGVidWdmc19jcmVhdGVfZGV2bV9zZXFmaWxlKGRldi1cdTAwM2VtdDc2LmRldiwgXCYjMzQ7cmRkX21vbml0b3JcJiMzNDssIGRpcixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo5MDI6XHRcdFx0XHQgICAgbXQ3OTk2X3JkZF9tb25pdG9yKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy05MDMtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jPTkwOT1zdGF0aWMgdm9pZFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjkxMDptdDc5OTZfZGVidWdmc193cml0ZV9md2xvZyhzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2LCBjb25zdCB2b2lkICpoZHIsIGludCBoZHJsZW4sXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtOTExLVx0XHRcdCAgIGNvbnN0IHZvaWQgKmRhdGEsIGludCBsZW4pXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTkzMy1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo5MzQ6dm9pZCBtdDc5OTZfZGVidWdmc19yeF9md19tb25pdG9yKHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYsIGNvbnN0IHZvaWQgKmRhdGEsIGludCBsZW4pXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtOTM1LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtOTU1LVx0aGRyLmxlbiA9ICooX19sZTE2ICopZGF0YTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo5NTY6XHRtdDc5OTZfZGVidWdmc193cml0ZV9md2xvZyhkZXYsIFx1MDAyNmhkciwgc2l6ZW9mKGhkciksIGRhdGEsIGxlbik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtOTU3LX1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy05NTgtXG5cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8xMSAwNjozMjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuNy1mbGFzaDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyMDgyNQoJCQkJCQkJb3V0cHV0OiAzNwoJCQkJCQkJdGhvdWdodHM6IDIxCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5IZXJlJiMzOTtzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHM6CgoqKk5hdmlnYXRpbmcgdGhlIE1lZGlhdGVrIFdpcmVsZXNzIExhbmRzY2FwZSoqCgpPa2F5LCBzbyBJIG5lZWQgdG8gZGl2ZSBpbnRvIHRoZSBNZWRpYXRlayB3aXJlbGVzcyBkcml2ZXIgY29kZSwgc3BlY2lmaWNhbGx5IHRoZSBgbXQ3NmAgZmFtaWx5LiBMZXQmIzM5O3Mgc2VlIHdoYXQgdGhlIEtjb25maWcgZmlsZSBoYXMgdG8gb2ZmZXIuIFRoaXMgZmlsZSBpcyB0aGUga2V5IHRvIHVuZGVyc3RhbmRpbmcgdGhlIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBhbmQgZGVwZW5kZW5jaWVzIGZvciB0aGVzZSBkcml2ZXJzLiBJdCYjMzk7cyB3aGVyZSB0aGUga25vYnMgYXJlIHRoYXQgSSBjYW4gdHVybiB0byBlbmFibGUgb3IgZGlzYWJsZSBmZWF0dXJlcywgbW9kdWxlcywgb3Igc3VwcG9ydCBmb3Igc3BlY2lmaWMgaGFyZHdhcmUuIEkgbmVlZCB0byBmaWd1cmUgb3V0IHdoaWNoIG9wdGlvbnMgYXJlIHJlbGV2YW50IHRvIHRoZSBjdXJyZW50IHByb2JsZW0uIFRoaXMgd2lsbCBoZWxwIHRvIGlkZW50aWZ5IHRoZSBzcGVjaWZpYyBjb25maWd1cmF0aW9uIHBhcmFtZXRlcnMgSSBtaWdodCBuZWVkIHRvIGFkanVzdCwgb3IgZXZlbiBkZWJ1ZywgdG8gZ2V0IHRoaXMgTWVkaWF0ZWsgd2lyZWxlc3Mgc2V0dXAgd29ya2luZyBhcyBleHBlY3RlZC4gVGhpcyB3aWxsIGJlIG15IHN0YXJ0aW5nIHBvaW50IGZvciBhIGRlZXBlciBkaXZlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzExIDA2OjMyPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O01UNzk5NiYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7XG5GdWxsIG91dHB1dCBpcyB0b28gbG9uZywgc2hvd2luZyA1MDAgb3V0IG9mIDE1ODIgbGluZXMuXG5Vc2UgbW9yZSBwcmVjaXNlIGV4cHJlc3Npb24gaWYgcG9zc2libGUuXG5cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvTWFrZWZpbGU9NTA9b2JqLSQoQ09ORklHX01UNzkyMV9DT01NT04pICYjNDM7PSBtdDc5MjEvXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L01ha2VmaWxlOjUxOm9iai0kKENPTkZJR19NVDc5OTZFKSAmIzQzOz0gbXQ3OTk2L1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9NYWtlZmlsZS01Mi1vYmotJChDT05GSUdfTVQ3OTI1X0NPTU1PTikgJiM0Mzs9IG10NzkyNS9cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9LY29uZmlnLTEtIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTMtQ2xhdXNlLUNsZWFyXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9LY29uZmlnOjI6Y29uZmlnIE1UNzk5NkVcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L0tjb25maWc6MzpcdHRyaXN0YXRlIFwmIzM0O01lZGlhVGVrIE1UNzk5NiAoUENJZSkgc3VwcG9ydFwmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvS2NvbmZpZy00LVx0c2VsZWN0IE1UNzZfQ09OTkFDX0xJQlxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L0tjb25maWctOS1cdGhlbHBcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L0tjb25maWc6MTA6XHQgIFRoaXMgYWRkcyBzdXBwb3J0IGZvciBNVDc5OTYtYmFzZWQgUENJZSB3aXJlbGVzcyBkZXZpY2VzLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvS2NvbmZpZy0xMS1cdCAgd2hpY2ggc3VwcG9ydCBjb25jdXJyZW50IHRyaS1iYW5kIG9wZXJhdGlvbiBhdCA2R0h6LCA1R0h6LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L0tjb25maWctMTUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9LY29uZmlnOjE2OmNvbmZpZyBNVDc5OTZfTlBVXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9LY29uZmlnOjE3Olx0Ym9vbCBcJiMzNDtNVDc5OTYgKFBDSWUpIE5QVSBzdXBwb3J0XCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9LY29uZmlnOjE4Olx0ZGVwZW5kcyBvbiBNVDc5OTZFXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9LY29uZmlnLTE5LVx0ZGVwZW5kcyBvbiBORVRfQUlST0hBX05QVT15IHx8IE1UNzZfQ09SRT1ORVRfQUlST0hBX05QVVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L01ha2VmaWxlLTItXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9NYWtlZmlsZTozOm9iai0kKENPTkZJR19NVDc5OTZFKSAmIzQzOz0gbXQ3OTk2ZS5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9NYWtlZmlsZS00LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvTWFrZWZpbGU9NT1tdDc5OTZlLXkgOj0gcGNpLm8gaW5pdC5vIGRtYS5vIGVlcHJvbS5vIG1haW4ubyBtY3UubyBtYWMubyBcXFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L01ha2VmaWxlLTctXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9NYWtlZmlsZTo4Om10Nzk5NmUtJChDT05GSUdfTVQ3OTk2X05QVSkgJiM0Mzs9IG5wdS5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9NYWtlZmlsZS05LW10Nzk5NmUtJChDT05GSUdfREVWX0NPUkVEVU1QKSAmIzQzOz0gY29yZWR1bXAub1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmM9NDg9bXQ3OTk2X2NvcmVkdW1wX2dldF9tZW1fbGF5b3V0KHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYsIHUzMiAqbnVtKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmMtNTAtXHRzd2l0Y2ggKG10NzZfY2hpcChcdTAwMjZkZXYtXHUwMDNlbXQ3NikpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmM6NTE6XHRjYXNlIE1UNzk5Nl9ERVZJQ0VfSUQ6XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jOjUyOlx0Y2FzZSBNVDc5OTZfREVWSUNFX0lEXzI6XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jLTUzLVx0XHQqbnVtID0gQVJSQVlfU0laRShtdDc5OTZfbWVtX3JlZ2lvbnMpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jPTQ2PXN0YXRpYyB2b2lkIG10Nzk5Nl9kbWFfY29uZmlnKHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtNTktXHQvKiByeCBxdWV1ZSAqL1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6NjA6XHRSWFFfQ09ORklHKE1UX1JYUV9NQ1UsIFdGRE1BMCwgTVRfSU5UX1JYX0RPTkVfV00sIE1UNzk5Nl9SWFFfTUNVX1dNKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTYxLVx0LyogZm9yIG10Nzk5MCwgUlggcmluZyAxIGlzIGZvciBTRE8gaW5zdGVhZCAqL1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6NjI6XHRSWFFfQ09ORklHKE1UX1JYUV9NQ1VfV0EsIFdGRE1BMCwgTVRfSU5UX1JYX0RPTkVfV0EsIE1UNzk5Nl9SWFFfTUNVX1dBKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjYzOlx0UlhRX0NPTkZJRyhNVF9SWFFfTUFJTiwgV0ZETUEwLCBNVF9JTlRfUlhfRE9ORV9CQU5EMCwgTVQ3OTk2X1JYUV9CQU5EMCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy02NC1cdGlmIChtdDc5OTZfaGFzX3dhKGRldikpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy02NS1cdFx0UlhRX0NPTkZJRyhNVF9SWFFfTUFJTl9XQSwgV0ZETUEwLCBNVF9JTlRfUlhfRE9ORV9XQV9NQUlOLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6NjY6XHRcdFx0ICAgTVQ3OTk2X1JYUV9NQ1VfV0FfTUFJTik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy02Ny1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy02OS1cdGNhc2UgTVQ3OTkyX0RFVklDRV9JRDpcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjcwOlx0XHRSWFFfQ09ORklHKE1UX1JYUV9CQU5EMV9XQSwgV0ZETUEwLCBNVF9JTlRfUlhfRE9ORV9XQV9FWFQsIE1UNzk5Nl9SWFFfTUNVX1dBX0VYVCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzo3MTpcdFx0UlhRX0NPTkZJRyhNVF9SWFFfQkFORDEsIFdGRE1BMCwgTVRfSU5UX1JYX0RPTkVfQkFORDEsIE1UNzk5Nl9SWFFfQkFORDEpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtNzItXHRcdGJyZWFrO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtNzMtXHRjYXNlIE1UNzk5MF9ERVZJQ0VfSUQ6XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzo3NDpcdFx0UlhRX0NPTkZJRyhNVF9SWFFfQkFORDEsIFdGRE1BMCwgTVRfSU5UX1JYX0RPTkVfQkFORDEsIE1UNzk5Nl9SWFFfQkFORDEpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtNzUtXHRcdFJYUV9DT05GSUcoTVRfUlhRX1RYRlJFRV9CQU5EMCwgV0ZETUEwLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTgwLVx0XHRicmVhaztcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjgxOlx0Y2FzZSBNVDc5OTZfREVWSUNFX0lEOlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtODItXHRkZWZhdWx0OlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtODMtXHRcdC8qIG10Nzk5NiBiYW5kMiAqL1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6ODQ6XHRcdFJYUV9DT05GSUcoTVRfUlhRX0JBTkQyX1dBLCBXRkRNQTAsIE1UX0lOVF9SWF9ET05FX1dBX1RSSSwgTVQ3OTk2X1JYUV9NQ1VfV0FfVFJJKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjg1Olx0XHRSWFFfQ09ORklHKE1UX1JYUV9CQU5EMiwgV0ZETUEwLCBNVF9JTlRfUlhfRE9ORV9CQU5EMiwgTVQ3OTk2X1JYUV9CQU5EMik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy04Ni1cdFx0YnJlYWs7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtOTEtXHRcdFJYUV9DT05GSUcoTVRfUlhRX1JST19CQU5EMCwgV0ZETUEwLCBNVF9JTlRfUlhfRE9ORV9SUk9fQkFORDAsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzo5MjpcdFx0XHQgICBNVDc5OTZfUlhRX1JST19CQU5EMCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy05My1cdFx0aWYgKGRldi1cdTAwM2VtdDc2Lmh3cnJvX21vZGUgPT0gTVQ3Nl9IV1JST19WMylcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy05NS1cdFx0XHRcdCAgIE1UX0lOVF9SWF9ET05FX01TRFVfUEdfQkFORDAsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzo5NjpcdFx0XHRcdCAgIE1UNzk5Nl9SWFFfTVNEVV9QR19CQU5EMCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy05Ny1cdFx0aWYgKGlzX210Nzk5NihcdTAwMjZkZXYtXHUwMDNlbXQ3NikpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTk4LVx0XHRcdFJYUV9DT05GSUcoTVRfUlhRX1RYRlJFRV9CQU5EMCwgV0ZETUEwLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6OTk6XHRcdFx0XHQgICBNVF9JTlRfUlhfVFhGUkVFX01BSU4sIE1UNzk5Nl9SWFFfVFhGUkVFMCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy0xMDAtXHRcdFx0LyogYmFuZDEgKi9cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy0xMDItXHRcdFx0XHQgICBNVF9JTlRfUlhfRE9ORV9NU0RVX1BHX0JBTkQxLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6MTAzOlx0XHRcdFx0ICAgTVQ3OTk2X1JYUV9NU0RVX1BHX0JBTkQxKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTEwNC1cdFx0XHQvKiBiYW5kMiAqL1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTEwNi1cdFx0XHRcdCAgIE1UX0lOVF9SWF9ET05FX1JST19CQU5EMixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjEwNzpcdFx0XHRcdCAgIE1UNzk5Nl9SWFFfUlJPX0JBTkQyKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTEwOC1cdFx0XHRSWFFfQ09ORklHKE1UX1JYUV9NU0RVX1BBR0VfQkFORDIsIFdGRE1BMCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTEwOS1cdFx0XHRcdCAgIE1UX0lOVF9SWF9ET05FX01TRFVfUEdfQkFORDIsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzoxMTA6XHRcdFx0XHQgICBNVDc5OTZfUlhRX01TRFVfUEdfQkFORDIpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtMTExLVx0XHRcdFJYUV9DT05GSUcoTVRfUlhRX1RYRlJFRV9CQU5EMiwgV0ZETUEwLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6MTEyOlx0XHRcdFx0ICAgTVRfSU5UX1JYX1RYRlJFRV9UUkksIE1UNzk5Nl9SWFFfVFhGUkVFMik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy0xMTMtXHRcdH0gZWxzZSB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtMTE1LVx0XHRcdFx0ICAgTVRfSU5UX1JYX0RPTkVfUlJPX0JBTkQxLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6MTE2Olx0XHRcdFx0ICAgTVQ3OTk2X1JYUV9SUk9fQkFORDEpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtMTE3LVx0XHR9XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtMTIxLVx0XHRcdFx0ICAgTVRfSU5UX1JYX0RPTkVfUlJPX0lORCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjEyMjpcdFx0XHRcdCAgIE1UNzk5Nl9SWFFfUlJPX0lORCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy0xMjMtXHRcdGVsc2Vcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy0xMjUtXHRcdFx0XHQgICBNVF9JTlRfUlhfRE9ORV9SUk9fUlhETUFEX0MsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzoxMjY6XHRcdFx0XHQgICBNVDc5OTZfUlhRX1JST19SWERNQURfQyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy0xMjctXHR9XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtMTMzLVx0XHRcdFx0VFhRX0NPTkZJRygwLCBXRkRNQTAsIE1UX0lOVF9UWF9ET05FX0JBTkQyLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6MTM0Olx0XHRcdFx0XHQgICBNVDc5OTZfVFhRX0JBTkQyKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTEzNS1cdFx0XHRcdFRYUV9DT05GSUcoMSwgV0ZETUEwLCBNVF9JTlRfVFhfRE9ORV9CQU5EMCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjEzNjpcdFx0XHRcdFx0ICAgTVQ3OTk2X1RYUV9CQU5EMCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy0xMzctXHRcdFx0XHRUWFFfQ09ORklHKDIsIFdGRE1BMCwgTVRfSU5UX1RYX0RPTkVfQkFORDEsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzoxMzg6XHRcdFx0XHRcdCAgIE1UNzk5Nl9UWFFfQkFORDEpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtMTM5LVx0XHRcdH0gZWxzZSB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtMTQxLVx0XHRcdFx0VFhRX0NPTkZJRygwLCBXRkRNQTAsIE1UX0lOVF9UWF9ET05FX0JBTkQwLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6MTQyOlx0XHRcdFx0XHQgICBNVDc5OTZfVFhRX0JBTkQwKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTE0My1cdFx0XHRcdFRYUV9DT05GSUcoMSwgV0ZETUEwLCBNVF9JTlRfVFhfRE9ORV9CQU5EMSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjE0NDpcdFx0XHRcdFx0ICAgTVQ3OTk2X1RYUV9CQU5EMSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy0xNDUtXHRcdFx0XHRUWFFfQ09ORklHKDIsIFdGRE1BMCwgTVRfSU5UX1RYX0RPTkVfQkFORDIsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzoxNDY6XHRcdFx0XHRcdCAgIE1UNzk5Nl9UWFFfQkFORDIpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtMTQ3LVx0XHRcdH1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy0xNTAtXHRcdFx0VFhRX0NPTkZJRygwLCBXRkRNQTAsIE1UX0lOVF9UWF9ET05FX0JBTkQwLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6MTUxOlx0XHRcdFx0ICAgTVQ3OTk2X1RYUV9CQU5EMCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy0xNTItXHRcdFx0VFhRX0NPTkZJRygyLCBXRkRNQTAsIE1UX0lOVF9UWF9ET05FX0JBTkQxLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6MTUzOlx0XHRcdFx0ICAgTVQ3OTk2X1RYUV9CQU5EMSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy0xNTQtXHRcdH1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy0xNTgtXHRcdFx0VFhRX0NPTkZJRygwLCBXRkRNQTAsIE1UX0lOVF9UWF9ET05FX0JBTkQwLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6MTU5Olx0XHRcdFx0ICAgTVQ3OTk2X1RYUV9CQU5EMCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy0xNjAtXHRcdFx0VFhRX0NPTkZJRygxLCBXRkRNQTAsIE1UX0lOVF9UWF9ET05FX0JBTkQyLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6MTYxOlx0XHRcdFx0ICAgTVQ3OTk2X1RYUV9CQU5EMik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy0xNjItXHRcdH0gZWxzZSB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtMTY0LVx0XHRcdFRYUV9DT05GSUcoMCwgV0ZETUEwLCBNVF9JTlRfVFhfRE9ORV9CQU5EMCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjE2NTpcdFx0XHRcdCAgIE1UNzk5Nl9UWFFfQkFORDApO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtMTY2LVx0XHRcdFRYUV9DT05GSUcoMSwgV0ZETUEwLCBNVF9JTlRfVFhfRE9ORV9CQU5EMSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjE2NzpcdFx0XHRcdCAgIE1UNzk5Nl9UWFFfQkFORDEpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtMTY4LVx0XHR9XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtMTcxLVx0LyogbWN1IHR4IHF1ZXVlICovXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzoxNzI6XHRNQ1VRX0NPTkZJRyhNVF9NQ1VRX0ZXREwsIFdGRE1BMCwgTVRfSU5UX1RYX0RPTkVfRldETCwgTVQ3OTk2X1RYUV9GV0RMKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjE3MzpcdE1DVVFfQ09ORklHKE1UX01DVVFfV00sIFdGRE1BMCwgTVRfSU5UX1RYX0RPTkVfTUNVX1dNLCBNVDc5OTZfVFhRX01DVV9XTSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy0xNzQtXHRpZiAobXQ3OTk2X2hhc193YShkZXYpKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtMTc1LVx0XHRNQ1VRX0NPTkZJRyhNVF9NQ1VRX1dBLCBXRkRNQTAsIE1UX0lOVF9UWF9ET05FX01DVV9XQSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjE3NjpcdFx0XHQgICAgTVQ3OTk2X1RYUV9NQ1VfV0EpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtMTc3LX1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYz01MjE9aW50IG10Nzk5Nl9kbWFfcnJvX2luaXQoc3RydWN0IG10Nzk5Nl9kZXYgKmRldilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy01MzUtXHRcdFx0XHQgICAgICAgTVRfUlhRX0lEKE1UX1JYUV9SUk9fUlhETUFEX0MpLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6NTM2Olx0XHRcdFx0ICAgICAgIE1UNzk5Nl9SWF9SSU5HX1NJWkUsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzo1Mzc6XHRcdFx0XHQgICAgICAgTVQ3OTk2X1JYX0JVRl9TSVpFLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtNTM4LVx0XHRcdFx0ICAgICAgIE1UX1JYUV9SUk9fQVBfUklOR19CQVNFKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy01NjEtXHRcdFx0ICAgICAgIE1UX1JYUV9JRChNVF9SWFFfUlJPX0lORCksXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzo1NjI6XHRcdFx0ICAgICAgIE1UNzk5Nl9SWF9SSU5HX1NJWkUsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy01NjMtXHRcdFx0ICAgICAgIDAsIE1UX1JYUV9SUk9fSU5EX1JJTkdfQkFTRSk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtNTc0LVx0c2l6ZSA9IGlzX210Nzk5NihtZGV2KSBcdTAwMjZcdTAwMjYgbXQ3Nl9ucHVfZGV2aWNlX2FjdGl2ZShtZGV2KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6NTc1Olx0ICAgICAgID8gTVQ3OTk2X05QVV9SWF9SSU5HX1NJWkUgLyA0IDogTVQ3OTk2X1JYX1JJTkdfU0laRTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTU3Ni1cdHJldCA9IG10NzZfcXVldWVfYWxsb2MoZGV2LCBcdTAwMjZtZGV2LVx1MDAzZXFfcnhbTVRfUlhRX01TRFVfUEFHRV9CQU5EMF0sXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy01NzctXHRcdFx0ICAgICAgIE1UX1JYUV9JRChNVF9SWFFfTVNEVV9QQUdFX0JBTkQwKSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjU3ODpcdFx0XHQgICAgICAgc2l6ZSwgTVQ3OTk2X1JYX01TRFVfUEFHRV9TSVpFLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtNTc5LVx0XHRcdCAgICAgICBNVF9SWFFfUklOR19CQVNFKE1UX1JYUV9NU0RVX1BBR0VfQkFORDApKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy01OTEtXHRcdHNpemUgPSBpc19tdDc5OTYobWRldikgXHUwMDI2XHUwMDI2IG10NzZfbnB1X2RldmljZV9hY3RpdmUobWRldilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjU5MjpcdFx0ICAgICAgID8gTVQ3OTk2X05QVV9SWF9SSU5HX1NJWkUgLyAyIDogTVQ3OTk2X1JYX1JJTkdfU0laRTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTU5My1cdFx0cmV0ID0gbXQ3Nl9xdWV1ZV9hbGxvYyhkZXYsIFx1MDAyNm1kZXYtXHUwMDNlcV9yeFtNVF9SWFFfTVNEVV9QQUdFX0JBTkQxXSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTU5NC1cdFx0XHRcdCAgICAgICBNVF9SWFFfSUQoTVRfUlhRX01TRFVfUEFHRV9CQU5EMSksXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzo1OTU6XHRcdFx0XHQgICAgICAgc2l6ZSwgTVQ3OTk2X1JYX01TRFVfUEFHRV9TSVpFLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtNTk2LVx0XHRcdFx0ICAgICAgIE1UX1JYUV9SSU5HX0JBU0UoTVRfUlhRX01TRFVfUEFHRV9CQU5EMSkpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTYwOS1cdFx0c2l6ZSA9IGlzX210Nzk5NihtZGV2KSBcdTAwMjZcdTAwMjYgbXQ3Nl9ucHVfZGV2aWNlX2FjdGl2ZShtZGV2KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6NjEwOlx0XHQgICAgICAgPyBNVDc5OTZfTlBVX1JYX1JJTkdfU0laRSA6IE1UNzk5Nl9SWF9SSU5HX1NJWkU7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy02MTEtXHRcdHJldCA9IG10NzZfcXVldWVfYWxsb2MoZGV2LCBcdTAwMjZtZGV2LVx1MDAzZXFfcnhbTVRfUlhRX01TRFVfUEFHRV9CQU5EMl0sXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy02MTItXHRcdFx0XHQgICAgICAgTVRfUlhRX0lEKE1UX1JYUV9NU0RVX1BBR0VfQkFORDIpLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6NjEzOlx0XHRcdFx0ICAgICAgIHNpemUsIE1UNzk5Nl9SWF9NU0RVX1BBR0VfU0laRSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTYxNC1cdFx0XHRcdCAgICAgICBNVF9SWFFfUklOR19CQVNFKE1UX1JYUV9NU0RVX1BBR0VfQkFORDIpKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYz02NjQ9aW50IG10Nzk5Nl9kbWFfaW5pdChzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTY4My1cdFx0cmV0ID0gbXQ3OTk2X2luaXRfdHhfcXVldWVzKFx1MDAyNmRldi1cdTAwM2VwaHksIE1UX1RYUV9JRCgwKSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjY4NDpcdFx0XHRcdFx0ICAgIE1UNzk5Nl9OUFVfVFhfUklOR19TSVpFLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtNjg1LVx0XHRcdFx0XHQgICAgTVRfVFhRX1JJTkdfQkFTRSgwKSAmIzQzOyBoaWYxX29mcyxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy02ODktXHRcdFx0XHRcdCAgICBNVF9UWFFfSUQoZGV2LVx1MDAzZW1waHkuYmFuZF9pZHgpLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6NjkwOlx0XHRcdFx0XHQgICAgTVQ3OTk2X1RYX1JJTkdfU0laRSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTY5MS1cdFx0XHRcdFx0ICAgIE1UX1RYUV9SSU5HX0JBU0UoMCksIHdlZCk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtNjk3LVx0XHRcdFx0ICBNVF9NQ1VRX0lEKE1UX01DVVFfV00pLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6Njk4Olx0XHRcdFx0ICBNVDc5OTZfVFhfTUNVX1JJTkdfU0laRSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTY5OS1cdFx0XHRcdCAgTVRfTUNVUV9SSU5HX0JBU0UoTVRfTUNVUV9XTSkpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTcwNi1cdFx0XHRcdFx0ICBNVF9NQ1VRX0lEKE1UX01DVVFfV0EpLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6NzA3Olx0XHRcdFx0XHQgIE1UNzk5Nl9UWF9NQ1VfUklOR19TSVpFLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtNzA4LVx0XHRcdFx0XHQgIE1UX01DVVFfUklOR19CQVNFKE1UX01DVVFfV0EpKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy03MTUtXHRcdFx0XHQgIE1UX01DVVFfSUQoTVRfTUNVUV9GV0RMKSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjcxNjpcdFx0XHRcdCAgTVQ3OTk2X1RYX0ZXRExfUklOR19TSVpFLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtNzE3LVx0XHRcdFx0ICBNVF9NQ1VRX1JJTkdfQkFTRShNVF9NQ1VRX0ZXREwpKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy03MjMtXHRcdFx0ICAgICAgIE1UX1JYUV9JRChNVF9SWFFfTUNVKSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjcyNDpcdFx0XHQgICAgICAgTVQ3OTk2X1JYX01DVV9SSU5HX1NJWkUsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzo3MjU6XHRcdFx0ICAgICAgIE1UNzk5Nl9SWF9NQ1VfQlVGX1NJWkUsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy03MjYtXHRcdFx0ICAgICAgIE1UX1JYUV9SSU5HX0JBU0UoTVRfUlhRX01DVSkpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTczMi1cdFx0XHQgICAgICAgTVRfUlhRX0lEKE1UX1JYUV9NQ1VfV0EpLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6NzMzOlx0XHRcdCAgICAgICBNVDc5OTZfUlhfTUNVX1JJTkdfU0laRV9XQSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjczNDpcdFx0XHQgICAgICAgTVQ3OTk2X1JYX01DVV9CVUZfU0laRSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTczNS1cdFx0XHQgICAgICAgTVRfUlhRX1JJTkdfQkFTRShNVF9SWFFfTUNVX1dBKSk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtNzQ2LVx0XHRcdCAgICAgICBNVF9SWFFfSUQoTVRfUlhRX01BSU4pLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6NzQ3Olx0XHRcdCAgICAgICBNVDc5OTZfUlhfUklOR19TSVpFLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtNzQ4LVx0XHRcdCAgICAgICBNVF9SWF9CVUZfU0laRSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy03NjYtXHRcdFx0XHQgICAgICAgTVRfUlhRX0lEKE1UX1JYUV9NQUlOX1dBKSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjc2NzpcdFx0XHRcdCAgICAgICBNVDc5OTZfUlhfTUNVX1JJTkdfU0laRSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTc2OC1cdFx0XHRcdCAgICAgICBNVF9SWF9CVUZfU0laRSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy03NzgtXHRcdFx0XHQgICAgICAgTVRfUlhRX0lEKE1UX1JYUV9UWEZSRUVfQkFORDApLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6Nzc5Olx0XHRcdFx0ICAgICAgIE1UNzk5Nl9SWF9NQ1VfUklOR19TSVpFLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6NzgwOlx0XHRcdFx0ICAgICAgIE1UNzk5Nl9SWF9CVUZfU0laRSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTc4MS1cdFx0XHRcdCAgICAgICBNVF9SWFFfUklOR19CQVNFKE1UX1JYUV9UWEZSRUVfQkFORDApKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy03OTItXHRcdFx0XHQgICAgICAgTVRfUlhRX0lEKE1UX1JYUV9UWEZSRUVfQkFORDEpLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6NzkzOlx0XHRcdFx0ICAgICAgIE1UNzk5Nl9SWF9NQ1VfUklOR19TSVpFLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6Nzk0Olx0XHRcdFx0ICAgICAgIE1UNzk5Nl9SWF9CVUZfU0laRSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTc5NS1cdFx0XHRcdCAgICAgICBNVF9SWFFfUklOR19CQVNFKE1UX1JYUV9UWEZSRUVfQkFORDEpKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy04MDQtXHRcdFx0XHQgICAgICAgTVRfUlhRX0lEKE1UX1JYUV9CQU5EMiksXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzo4MDU6XHRcdFx0XHQgICAgICAgTVQ3OTk2X1JYX1JJTkdfU0laRSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTgwNi1cdFx0XHRcdCAgICAgICBNVF9SWF9CVUZfU0laRSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy04MjAtXHRcdFx0XHQgICAgICAgTVRfUlhRX0lEKE1UX1JYUV9CQU5EMl9XQSksXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzo4MjE6XHRcdFx0XHQgICAgICAgTVQ3OTk2X1JYX01DVV9SSU5HX1NJWkUsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy04MjItXHRcdFx0XHQgICAgICAgTVRfUlhfQlVGX1NJWkUsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtODM1LVx0XHRcdFx0ICAgICAgIE1UX1JYUV9JRChNVF9SWFFfQkFORDEpLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6ODM2Olx0XHRcdFx0ICAgICAgIE1UNzk5Nl9SWF9SSU5HX1NJWkUsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy04MzctXHRcdFx0XHQgICAgICAgTVRfUlhfQlVGX1NJWkUsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtODUyLVx0XHRcdFx0XHQgICAgICAgTVRfUlhRX0lEKE1UX1JYUV9CQU5EMV9XQSksXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzo4NTM6XHRcdFx0XHRcdCAgICAgICBNVDc5OTZfUlhfTUNVX1JJTkdfU0laRSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTg1NC1cdFx0XHRcdFx0ICAgICAgIE1UX1JYX0JVRl9TSVpFLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTg2OC1cdFx0XHRcdCAgICAgICBNVF9SWFFfSUQoTVRfUlhRX1JST19CQU5EMCksXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzo4Njk6XHRcdFx0XHQgICAgICAgTVQ3OTk2X1JYX1JJTkdfU0laRSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjg3MDpcdFx0XHRcdCAgICAgICBNVDc5OTZfUlhfQlVGX1NJWkUsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy04NzEtXHRcdFx0XHQgICAgICAgTVRfUlhRX1JJTkdfQkFTRShNVF9SWFFfUlJPX0JBTkQwKSk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtODgzLVx0XHRcdFx0XHQgICAgICAgTVRfUlhRX0lEKE1UX1JYUV9SUk9fQkFORDEpLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6ODg0Olx0XHRcdFx0XHQgICAgICAgTVQ3OTk2X1JYX1JJTkdfU0laRSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjg4NTpcdFx0XHRcdFx0ICAgICAgIE1UNzk5Nl9SWF9CVUZfU0laRSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTg4Ni1cdFx0XHRcdFx0ICAgICAgIE1UX1JYUV9SSU5HX0JBU0UoTVRfUlhRX1JST19CQU5EMSkgJiM0MzsgaGlmMV9vZnMpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTkwMC1cdFx0XHRcdFx0ICAgICAgIE1UX1JYUV9JRChNVF9SWFFfVFhGUkVFX0JBTkQwKSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjkwMTpcdFx0XHRcdFx0ICAgICAgIE1UNzk5Nl9SWF9NQ1VfUklOR19TSVpFLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6OTAyOlx0XHRcdFx0XHQgICAgICAgTVQ3OTk2X1JYX0JVRl9TSVpFLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtOTAzLVx0XHRcdFx0XHQgICAgICAgTVRfUlhRX1JJTkdfQkFTRShNVF9SWFFfVFhGUkVFX0JBTkQwKSk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtOTE5LVx0XHRcdCAgICAgICBtdDc2X25wdV9kZXZpY2VfYWN0aXZlKFx1MDAyNmRldi1cdTAwM2VtdDc2KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6OTIwOlx0XHRcdCAgICAgICA/IE1UNzk5Nl9OUFVfUlhfUklOR19TSVpFIDogTVQ3OTk2X1JYX1JJTkdfU0laRTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTkyMS1cdFx0XHRyZXQgPSBtdDc2X3F1ZXVlX2FsbG9jKGRldiwgXHUwMDI2ZGV2LVx1MDAzZW10NzYucV9yeFtNVF9SWFFfUlJPX0JBTkQyXSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTkyMi1cdFx0XHRcdFx0ICAgICAgIE1UX1JYUV9JRChNVF9SWFFfUlJPX0JBTkQyKSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjkyMzpcdFx0XHRcdFx0ICAgICAgIHNpemUsIE1UNzk5Nl9SWF9CVUZfU0laRSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTkyNC1cdFx0XHRcdFx0ICAgICAgIE1UX1JYUV9SSU5HX0JBU0UoTVRfUlhRX1JST19CQU5EMikgJiM0MzsgaGlmMV9vZnMpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTkzNC1cdFx0XHRcdFx0ICAgICAgIE1UX1JYUV9JRChNVF9SWFFfVFhGUkVFX0JBTkQyKSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjkzNTpcdFx0XHRcdFx0ICAgICAgIE1UNzk5Nl9SWF9NQ1VfUklOR19TSVpFLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6OTM2Olx0XHRcdFx0XHQgICAgICAgTVQ3OTk2X1JYX0JVRl9TSVpFLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtOTM3LVx0XHRcdFx0XHQgICAgICAgTVRfUlhRX1JJTkdfQkFTRShNVF9SWFFfVFhGUkVFX0JBTkQyKSAmIzQzOyBoaWYxX29mcyk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmM9MTA9c3RhdGljIGludCBtdDc5OTZfY2hlY2tfZWVwcm9tKHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmMtMTUtXHRzd2l0Y2ggKHZhbCkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmM6MTY6XHRjYXNlIE1UNzk5Nl9ERVZJQ0VfSUQ6XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9lZXByb20uYy0xNy1cdFx0cmV0dXJuIGlzX210Nzk5NihcdTAwMjZkZXYtXHUwMDNlbXQ3NikgPyAwIDogLUVJTlZBTDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9lZXByb20uYz0yNz1zdGF0aWMgY2hhciAqbXQ3OTk2X2VlcHJvbV9uYW1lKHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmMtMzItXHRcdGNhc2UgTVQ3OTkyX1ZBUl9UWVBFXzIzOlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmM6MzM6XHRcdFx0aWYgKGRldi1cdTAwM2V2YXIuZmVtID09IE1UNzk5Nl9GRU1fSU5UKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmMtMzQtXHRcdFx0XHRyZXR1cm4gTVQ3OTkyX0VFUFJPTV9ERUZBVUxUXzIzX0lOVDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9lZXByb20uYy0zOS1cdFx0ZGVmYXVsdDpcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2VlcHJvbS5jOjQwOlx0XHRcdGlmIChkZXYtXHUwMDNldmFyLmZlbSA9PSBNVDc5OTZfRkVNX0lOVClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2VlcHJvbS5jLTQxLVx0XHRcdFx0cmV0dXJuIE1UNzk5Ml9FRVBST01fREVGQVVMVF9JTlQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9lZXByb20uYzo0MjpcdFx0XHRpZiAoZGV2LVx1MDAzZXZhci5mZW0gPT0gTVQ3OTk2X0ZFTV9NSVgpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9lZXByb20uYy00My1cdFx0XHRcdHJldHVybiBNVDc5OTJfRUVQUk9NX0RFRkFVTFRfTUlYO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2VlcHJvbS5jLTQ2LVx0Y2FzZSBNVDc5OTBfREVWSUNFX0lEOlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmM6NDc6XHRcdGlmIChkZXYtXHUwMDNldmFyLmZlbSA9PSBNVDc5OTZfRkVNX0lOVClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2VlcHJvbS5jLTQ4LVx0XHRcdHJldHVybiBNVDc5OTBfRUVQUk9NX0RFRkFVTFRfSU5UO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmMtNDktXHRcdHJldHVybiBNVDc5OTBfRUVQUk9NX0RFRkFVTFQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9lZXByb20uYzo1MDpcdGNhc2UgTVQ3OTk2X0RFVklDRV9JRDpcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2VlcHJvbS5jLTUxLVx0ZGVmYXVsdDpcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2VlcHJvbS5jLTUyLVx0XHRzd2l0Y2ggKGRldi1cdTAwM2V2YXIudHlwZSkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmM6NTM6XHRcdGNhc2UgTVQ3OTk2X1ZBUl9UWVBFXzIzMzpcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2VlcHJvbS5jOjU0Olx0XHRcdGlmIChkZXYtXHUwMDNldmFyLmZlbSA9PSBNVDc5OTZfRkVNX0lOVClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2VlcHJvbS5jOjU1Olx0XHRcdFx0cmV0dXJuIE1UNzk5Nl9FRVBST01fREVGQVVMVF8yMzNfSU5UO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmM6NTY6XHRcdFx0cmV0dXJuIE1UNzk5Nl9FRVBST01fREVGQVVMVF8yMzM7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9lZXByb20uYzo1NzpcdFx0Y2FzZSBNVDc5OTZfVkFSX1RZUEVfNDQ0OlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmMtNTgtXHRcdGRlZmF1bHQ6XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9lZXByb20uYzo1OTpcdFx0XHRpZiAoZGV2LVx1MDAzZXZhci5mZW0gPT0gTVQ3OTk2X0ZFTV9JTlQpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9lZXByb20uYzo2MDpcdFx0XHRcdHJldHVybiBNVDc5OTZfRUVQUk9NX0RFRkFVTFRfSU5UO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmM6NjE6XHRcdFx0cmV0dXJuIE1UNzk5Nl9FRVBST01fREVGQVVMVDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2VlcHJvbS5jLTYyLVx0XHR9XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmM9OTg9c3RhdGljIGJvb2wgbXQ3OTk2X2VlcHJvbV92YXJpYW50X3ZhbGlkKHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYsIGNvbnN0IHU4ICpkZWYpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmMtMTA4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmM6MTA5Olx0aWYgKGRldi1cdTAwM2V2YXIuZmVtID09IE1UNzk5Nl9GRU1fRVhUIFx1MDAyNlx1MDAyNlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmMtMTEwLVx0ICAgICEoZmVtWzBdID09IEZFTV9FWFQgXHUwMDI2XHUwMDI2IGZlbVsxXSA9PSBGRU1fRVhUKSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2VlcHJvbS5jLTExMS1cdFx0cmV0dXJuIGZhbHNlO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmM6MTEyOlx0ZWxzZSBpZiAoZGV2LVx1MDAzZXZhci5mZW0gPT0gTVQ3OTk2X0ZFTV9JTlQgXHUwMDI2XHUwMDI2XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9lZXByb20uYy0xMTMtXHRcdCAhKGZlbVswXSA9PSBGRU1fSU5UIFx1MDAyNlx1MDAyNiBmZW1bMV0gPT0gRkVNX0lOVCkpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9lZXByb20uYy0xMTQtXHRcdHJldHVybiBmYWxzZTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2VlcHJvbS5jOjExNTpcdGVsc2UgaWYgKGRldi1cdTAwM2V2YXIuZmVtID09IE1UNzk5Nl9GRU1fTUlYIFx1MDAyNlx1MDAyNlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmMtMTE2LVx0XHQgIShmZW1bMF0gPT0gRkVNX0lOVCBcdTAwMjZcdTAwMjYgZmVtWzFdID09IEZFTV9FWFQpKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2VlcHJvbS5jPTEzNz1tdDc5OTZfZWVwcm9tX2NoZWNrX29yX3VzZV9kZWZhdWx0KHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYsIGJvb2wgdXNlX2RlZmF1bHQpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmMtMTUyLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmM6MTUzOlx0aWYgKGZ3LVx1MDAzZXNpemUgXHUwMDNjIE1UNzk5Nl9FRVBST01fU0laRSkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmMtMTU0LVx0XHRkZXZfZXJyKGRldi1cdTAwM2VtdDc2LmRldiwgXCYjMzQ7SW52YWxpZCBkZWZhdWx0IGJpbiBzaXplXFxuXCYjMzQ7KTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9lZXByb20uYy0xNjItXHRkZXZfd2FybihkZXYtXHUwMDNlbXQ3Ni5kZXYsIFwmIzM0O2VlcHJvbSBsb2FkIGZhaWwsIHVzZSBkZWZhdWx0IGJpblxcblwmIzM0Oyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9lZXByb20uYzoxNjM6XHRtZW1jcHkoZWVwcm9tLCBmdy1cdTAwM2VkYXRhLCBNVDc5OTZfRUVQUk9NX1NJWkUpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmMtMTY0LVx0ZGV2LVx1MDAzZWVlcHJvbV9tb2RlID0gRUVQUk9NX01PREVfREVGQVVMVF9CSU47XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmM9MTcyPXN0YXRpYyBpbnQgbXQ3OTk2X2VlcHJvbV9sb2FkKHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmMtMTc3LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmM6MTc4Olx0cmV0ID0gbXQ3Nl9lZXByb21faW5pdChcdTAwMjZkZXYtXHUwMDNlbXQ3NiwgTVQ3OTk2X0VFUFJPTV9TSVpFKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2VlcHJvbS5jLTE3OS1cdGlmIChyZXQgXHUwMDNjIDApXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmMtMTg2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmM6MTg3Olx0bWVtc2V0KGRldi1cdTAwM2VtdDc2LmVlcHJvbS5kYXRhLCAwLCBNVDc5OTZfRUVQUk9NX1NJWkUpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmMtMTg4LVx0aWYgKG10Nzk5Nl9oYXNfZXh0X2VlcHJvbShkZXYpKSB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmMtMTkwLVx0XHRkZXYtXHUwMDNlZWVwcm9tX21vZGUgPSBFRVBST01fTU9ERV9FWFQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9lZXByb20uYzoxOTE6XHRcdGVlcHJvbV9ibGtfc2l6ZSA9IE1UNzk5Nl9FWFRfRUVQUk9NX0JMT0NLX1NJWkU7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9lZXByb20uYy0xOTItXHR9IGVsc2Uge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2VlcHJvbS5jLTE5Ni1cdFx0ZGV2LVx1MDAzZWVlcHJvbV9tb2RlID0gRUVQUk9NX01PREVfRUZVU0U7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9lZXByb20uYzoxOTc6XHRcdGVlcHJvbV9ibGtfc2l6ZSA9IE1UNzk5Nl9FRVBST01fQkxPQ0tfU0laRTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2VlcHJvbS5jLTE5OC1cdFx0cmV0ID0gbXQ3OTk2X21jdV9nZXRfZWZ1c2VfZnJlZV9ibG9jayhkZXYsIFx1MDAyNmZyZWVfYmxvY2tfbnVtKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9lZXByb20uYy0yMTctXHQvKiByZWFkIGVlcHJvbSBkYXRhIGZyb20gZncgKi9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2VlcHJvbS5jOjIxODpcdGJsb2NrX251bSA9IERJVl9ST1VORF9VUChNVDc5OTZfRUVQUk9NX1NJWkUsIGVlcHJvbV9ibGtfc2l6ZSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9lZXByb20uYy0yMTktXHRmb3IgKGkgPSAxOyBpIFx1MDAzYyBibG9ja19udW07IGkmIzQzOyYjNDM7KSB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmMtMjIyLVx0XHRpZiAoaSA9PSBibG9ja19udW0gLSAxKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmM6MjIzOlx0XHRcdGxlbiA9IE1UNzk5Nl9FRVBST01fU0laRSAlIGVlcHJvbV9ibGtfc2l6ZTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2VlcHJvbS5jLTIyNC1cdFx0cmV0ID0gbXQ3OTk2X21jdV9nZXRfZWVwcm9tKGRldiwgaSAqIGVlcHJvbV9ibGtfc2l6ZSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9lZXByb20uYz0zOTU9Ym9vbCBtdDc5OTZfZWVwcm9tX2hhc19iYWNrZ3JvdW5kX3JhZGFyKHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmMtMzk3LVx0c3dpdGNoIChtdDc2X2NoaXAoXHUwMDI2ZGV2LVx1MDAzZW10NzYpKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9lZXByb20uYzozOTg6XHRjYXNlIE1UNzk5Nl9ERVZJQ0VfSUQ6XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9lZXByb20uYzozOTk6XHRcdGlmIChkZXYtXHUwMDNldmFyLnR5cGUgPT0gTVQ3OTk2X1ZBUl9UWVBFXzIzMylcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2VlcHJvbS5jLTQwMC1cdFx0XHRyZXR1cm4gZmFsc2U7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmgtNS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2VlcHJvbS5oOjY6I2lmbmRlZiBfX01UNzk5Nl9FRVBST01fSFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmg6NzojZGVmaW5lIF9fTVQ3OTk2X0VFUFJPTV9IXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9lZXByb20uaC04LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYz0xNz1zdGF0aWMgY29uc3Qgc3RydWN0IGllZWU4MDIxMV9pZmFjZV9saW1pdCBpZl9saW1pdHNfZ2xvYmFsID0ge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jOjE4Olx0Lm1heCA9IE1UNzk5Nl9NQVhfSU5URVJGQUNFUyAqIE1UNzk5Nl9NQVhfUkFESU9TLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTE5LVx0LnR5cGVzID0gQklUKE5MODAyMTFfSUZUWVBFX1NUQVRJT04pXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jPTI3PXN0YXRpYyBjb25zdCBzdHJ1Y3QgaWVlZTgwMjExX2lmYWNlX2NvbWJpbmF0aW9uIGlmX2NvbWJfZ2xvYmFsID0ge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy0yOS1cdC5uX2xpbWl0cyA9IDEsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM6MzA6XHQubWF4X2ludGVyZmFjZXMgPSBNVDc5OTZfTUFYX0lOVEVSRkFDRVMgKiBNVDc5OTZfTUFYX1JBRElPUyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYzozMTpcdC5udW1fZGlmZmVyZW50X2NoYW5uZWxzID0gTVQ3OTk2X01BWF9SQURJT1MsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtMzItXHQucmFkYXJfZGV0ZWN0X3dpZHRocyA9IEJJVChOTDgwMjExX0NIQU5fV0lEVEhfMjBfTk9IVCkgfFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYz0zOT1zdGF0aWMgY29uc3Qgc3RydWN0IGllZWU4MDIxMV9pZmFjZV9jb21iaW5hdGlvbiBpZl9jb21iX2dsb2JhbF83OTkyID0ge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy00Mi1cdC5tYXhfaW50ZXJmYWNlcyA9IDMyLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jOjQzOlx0Lm51bV9kaWZmZXJlbnRfY2hhbm5lbHMgPSBNVDc5OTZfTUFYX1JBRElPUyAtIDEsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtNDQtXHQucmFkYXJfZGV0ZWN0X3dpZHRocyA9IEJJVChOTDgwMjExX0NIQU5fV0lEVEhfMjBfTk9IVCkgfFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYz01MT1zdGF0aWMgY29uc3Qgc3RydWN0IGllZWU4MDIxMV9pZmFjZV9saW1pdCBpZl9saW1pdHNbXSA9IHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtNTgtXHR9LCB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM6NTk6XHRcdC5tYXggPSBNVDc5OTZfTUFYX0lOVEVSRkFDRVMsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtNjAtXHRcdC50eXBlcyA9IEJJVChOTDgwMjExX0lGVFlQRV9TVEFUSU9OKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYz02ND1zdGF0aWMgY29uc3Qgc3RydWN0IGllZWU4MDIxMV9pZmFjZV9jb21iaW5hdGlvbiBpZl9jb21iID0ge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy02Ni1cdC5uX2xpbWl0cyA9IEFSUkFZX1NJWkUoaWZfbGltaXRzKSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYzo2NzpcdC5tYXhfaW50ZXJmYWNlcyA9IE1UNzk5Nl9NQVhfSU5URVJGQUNFUyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy02OC1cdC5udW1fZGlmZmVyZW50X2NoYW5uZWxzID0gMSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM9ODQ9c3RhdGljIGNvbnN0IHN0cnVjdCB3aXBoeV9pZnR5cGVfZXh0X2NhcGFiIGlmdHlwZXNfZXh0X2NhcGFbXSA9IHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtOTItXHRcdFx0RklFTERfUFJFUF9DT05TVChJRUVFODAyMTFfTUxEX0NBUF9PUF9NQVhfU0lNVUxfTElOS1MsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM6OTM6XHRcdFx0XHRcdCBNVDc5OTZfTUFYX1JBRElPUyAtIDEpLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTk0LVx0fSwge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy0xMDEtXHRcdFx0RklFTERfUFJFUF9DT05TVChJRUVFODAyMTFfTUxEX0NBUF9PUF9NQVhfU0lNVUxfTElOS1MsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM6MTAyOlx0XHRcdFx0XHQgTVQ3OTk2X01BWF9SQURJT1MgLSAxKSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy0xMDMtXHR9LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYz0xMzI9c3RhdGljIHNzaXplX3QgbXQ3OTk2X3RoZXJtYWxfdGVtcF9zdG9yZShzdHJ1Y3QgZGV2aWNlICpkZXYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTE0Ny1cdC8qIGFkZCBhIHNhZmV0eSBtYXJnaW4gfjEwICovXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM6MTQ4Olx0aWYgKChpIC0gMSA9PSBNVDc5OTZfQ1JJVF9URU1QX0lEWCBcdTAwMjZcdTAwMjZcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYzoxNDk6XHQgICAgIHZhbCBcdTAwM2UgcGh5LVx1MDAzZXRocm90dGxlX3RlbXBbTVQ3OTk2X01BWF9URU1QX0lEWF0gLSAxMCkgfHxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYzoxNTA6XHQgICAgKGkgLSAxID09IE1UNzk5Nl9NQVhfVEVNUF9JRFggXHUwMDI2XHUwMDI2XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM6MTUxOlx0ICAgICB2YWwgLSAxMCBcdTAwM2MgcGh5LVx1MDAzZXRocm90dGxlX3RlbXBbTVQ3OTk2X0NSSVRfVEVNUF9JRFhdKSkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTE1Mi1cdFx0ZGV2X2VycihwaHktXHUwMDNlZGV2LVx1MDAzZW10NzYuZGV2LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYz0xODM9bXQ3OTk2X3RoZXJtYWxfZ2V0X21heF90aHJvdHRsZV9zdGF0ZShzdHJ1Y3QgdGhlcm1hbF9jb29saW5nX2RldmljZSAqY2Rldixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtMTg1LXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYzoxODY6XHQqc3RhdGUgPSBNVDc5OTZfQ0RFVl9USFJPVFRMRV9NQVg7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtMTg3LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYz0yMDM9bXQ3OTk2X3RoZXJtYWxfc2V0X2N1cl90aHJvdHRsZV9zdGF0ZShzdHJ1Y3QgdGhlcm1hbF9jb29saW5nX2RldmljZSAqY2Rldixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtMjA2LVx0c3RydWN0IG10Nzk5Nl9waHkgKnBoeSA9IGNkZXYtXHUwMDNlZGV2ZGF0YTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYzoyMDc6XHR1OCB0aHJvdHRsaW5nID0gTVQ3OTk2X1RIRVJNQUxfVEhST1RUTEVfTUFYIC0gc3RhdGU7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtMjA4LVx0aW50IHJldDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy0yMDktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM6MjEwOlx0aWYgKHN0YXRlIFx1MDAzZSBNVDc5OTZfQ0RFVl9USFJPVFRMRV9NQVgpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy0yMTEtXHRcdGRldl9lcnIocGh5LVx1MDAzZWRldi1cdTAwM2VtdDc2LmRldixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM9MjUwPXN0YXRpYyBpbnQgbXQ3OTk2X3RoZXJtYWxfaW5pdChzdHJ1Y3QgbXQ3OTk2X3BoeSAqcGh5KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy0yNzQtXHQvKiBpbml0aWFsaXplIGNyaXRpY2FsL21heGltdW0gaGlnaCB0ZW1wZXJhdHVyZSAqL1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jOjI3NTpcdHBoeS1cdTAwM2V0aHJvdHRsZV90ZW1wW01UNzk5Nl9DUklUX1RFTVBfSURYXSA9IE1UNzk5Nl9DUklUX1RFTVA7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM6Mjc2Olx0cGh5LVx1MDAzZXRocm90dGxlX3RlbXBbTVQ3OTk2X01BWF9URU1QX0lEWF0gPSBNVDc5OTZfTUFYX1RFTVA7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtMjc3LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYz02MDM9c3RhdGljIHZvaWQgbXQ3OTk2X21hY19pbml0X2Jhc2ljX3JhdGVzKHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTYwOS1cdFx0Lyogb2RkIGluZGV4IGZvciBkcml2ZXIsIGV2ZW4gaW5kZXggZm9yIGZpcm13YXJlICovXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM6NjEwOlx0XHR1MTYgaWR4ID0gTVQ3OTk2X0JBU0lDX1JBVEVTX1RCTCAmIzQzOyAyICogaTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy02MTEtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jPTY5MD1zdGF0aWMgaW50IG10Nzk5Nl9yZWdpc3Rlcl9waHkoc3RydWN0IG10Nzk5Nl9kZXYgKmRldiwgZW51bSBtdDc2X2JhbmRfaWQgYmFuZClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtNzUzLVx0XHRcdCAgIG10NzZfbnB1X2RldmljZV9hY3RpdmUoXHUwMDI2ZGV2LVx1MDAzZW10NzYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM6NzU0Olx0XHRcdCAgID8gTVQ3OTk2X05QVV9UWF9SSU5HX1NJWkUgLyAyIDogTVQ3OTk2X1RYX1JJTkdfU0laRTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy03NTUtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jPTgzMz1zdGF0aWMgdm9pZCBtdDc5OTZfcnJvX2h3X2luaXRfdjMoc3RydWN0IG10Nzk5Nl9kZXYgKmRldilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtODQzLVx0XHR3ZWQtXHUwMDNld2xhbi5pbmRfY21kLndpbl9zaXplID1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYzo4NDQ6XHRcdFx0ZmZzKE1UNzk5Nl9SUk9fV0lORE9XX01BWF9MRU4pIC0gNjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy04NDUtXHRcdGlmIChpc19tdDc5OTYoXHUwMDI2ZGV2LVx1MDAzZW10NzYpKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTg0Ni1cdFx0XHR3ZWQtXHUwMDNld2xhbi5pbmRfY21kLnBhcnRpY3VsYXJfc2lkID1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYzo4NDc6XHRcdFx0XHRNVDc5OTZfUlJPX01BWF9TRVNTSU9OO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTg0OC1cdFx0ZWxzZVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy04NTEtXHRcdFx0ZGV2LVx1MDAzZXdlZF9ycm8uc2Vzc2lvbi5waHlfYWRkcjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYzo4NTI6XHRcdHdlZC1cdTAwM2V3bGFuLmluZF9jbWQuc2VfZ3JvdXBfbnVtcyA9IE1UNzk5Nl9SUk9fQUREUl9FTEVNX0xFTjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy04NTMtXHRcdHdlZC1cdTAwM2V3bGFuLmluZF9jbWQuYWNrX3NuX2FkZHIgPSBNVF9SUk9fQUNLX1NOX0NUUkw7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTg2OS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYzo4NzA6XHRzZXNzaW9uX2lkID0gaXNfbXQ3OTk2KFx1MDAyNmRldi1cdTAwM2VtdDc2KSA/IE1UNzk5Nl9SUk9fTUFYX1NFU1NJT04gOiAxO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTg3MS1cdG10NzZfd3IoZGV2LCBNVF9SUk9fUEFSVElDVUxBUl9DRkcxLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYz05NTc9c3RhdGljIGludCBtdDc5OTZfd2VkX3Jyb19pbml0KHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTk2OS1cdFx0XHRwdHIgPSBkbWFtX2FsbG9jX2NvaGVyZW50KGRldi1cdTAwM2VtdDc2LmRtYV9kZXYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM6OTcwOlx0XHRcdFx0XHRcdCAgTVQ3OTk2X1JST19CQV9CSVRNQVBfQ1JfU0laRSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy05NzEtXHRcdFx0XHRcdFx0ICBcdTAwMjZkZXYtXHUwMDNld2VkX3Jyby5iYV9iaXRtYXBbaV0ucGh5X2FkZHIsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTk4My1cdFx0cHRyID0gZG1hbV9hbGxvY19jb2hlcmVudChkZXYtXHUwMDNlbXQ3Ni5kbWFfZGV2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jOjk4NDpcdFx0XHRcdE1UNzk5Nl9SUk9fV0lORE9XX01BWF9TSVpFICogc2l6ZW9mKCphZGRyKSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy05ODUtXHRcdFx0XHRcdTAwMjZkZXYtXHUwMDNld2VkX3Jyby5hZGRyX2VsZW1baV0ucGh5X2FkZHIsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTk5MS1cdFx0bWVtc2V0KGRldi1cdTAwM2V3ZWRfcnJvLmFkZHJfZWxlbVtpXS5wdHIsIDAsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM6OTkyOlx0XHQgICAgICAgTVQ3OTk2X1JST19XSU5ET1dfTUFYX1NJWkUgKiBzaXplb2YoKmFkZHIpKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy05OTMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtOTk0LVx0XHRhZGRyID0gZGV2LVx1MDAzZXdlZF9ycm8uYWRkcl9lbGVtW2ldLnB0cjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYzo5OTU6XHRcdGZvciAoaiA9IDA7IGogXHUwMDNjIE1UNzk5Nl9SUk9fV0lORE9XX01BWF9TSVpFOyBqJiM0MzsmIzQzOykge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTk5Ni1cdFx0XHRhZGRyLVx1MDAzZWRhdGEgPSBjcHVfdG9fbGUzMih2YWwpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy0xMDE4LVx0XHRwdHIgPSBkbWFtX2FsbG9jX2NvaGVyZW50KGRldi1cdTAwM2VtdDc2LmRtYV9kZXYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM6MTAxOTpcdFx0XHRcdFx0ICBNVDc5OTZfUlJPX01TRFVfUEdfU0laRV9QRVJfQ1IsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtMTAyMC1cdFx0XHRcdFx0ICBcdTAwMjZkZXYtXHUwMDNld2VkX3Jyby5tc2R1X3BnW2ldLnBoeV9hZGRyLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy0xMDI3LVx0XHRtZW1zZXQoZGV2LVx1MDAzZXdlZF9ycm8ubXNkdV9wZ1tpXS5wdHIsIDAsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM6MTAyODpcdFx0ICAgICAgIE1UNzk5Nl9SUk9fTVNEVV9QR19TSVpFX1BFUl9DUik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtMTAyOS1cdH1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtMTA1Mi1cdHB0ciA9IGRtYW1fYWxsb2NfY29oZXJlbnQoZGV2LVx1MDAzZW10NzYuZG1hX2RldixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYzoxMDUzOlx0XHRcdFx0ICBNVDc5OTZfUlJPX1dJTkRPV19NQVhfTEVOICogc2l6ZW9mKCphZGRyKSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy0xMDU0LVx0XHRcdFx0ICBcdTAwMjZkZXYtXHUwMDNld2VkX3Jyby5zZXNzaW9uLnBoeV9hZGRyLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy0xMDYwLVx0YWRkciA9IGRldi1cdTAwM2V3ZWRfcnJvLnNlc3Npb24ucHRyO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jOjEwNjE6XHRmb3IgKGkgPSAwOyBpIFx1MDAzYyBNVDc5OTZfUlJPX1dJTkRPV19NQVhfTEVOOyBpJiM0MzsmIzQzOykge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTEwNjItXHRcdGFkZHItXHUwMDNlZGF0YSA9IGNwdV90b19sZTMyKHZhbCk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jPTEwNzU9c3RhdGljIHZvaWQgbXQ3OTk2X3dlZF9ycm9fZnJlZShzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy0xMDg2LVx0XHRkbWFtX2ZyZWVfY29oZXJlbnQoZGV2LVx1MDAzZW10NzYuZG1hX2RldixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYzoxMDg3Olx0XHRcdFx0ICAgTVQ3OTk2X1JST19CQV9CSVRNQVBfQ1JfU0laRSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy0xMDg4LVx0XHRcdFx0ICAgZGV2LVx1MDAzZXdlZF9ycm8uYmFfYml0bWFwW2ldLnB0cixcbi0tXG5cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD43LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8xMSAwNjozMjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuNy1mbGFzaDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzOTIyMAoJCQkJCQkJb3V0cHV0OiAzNgoJCQkJCQkJdGhvdWdodHM6IDg1CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkludmVzdGlnYXRpbmcgdGhlIE1UNzk5NiBEcml2ZXIqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGludG8gdGhlIGBkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9gIGRpcmVjdG9yeS4gUmlnaHQsIHRoaXMgcG9pbnRzIHRvIHRoZSBQQ0llIGRyaXZlciBmb3IgdGhlIE1UNzk5NkUgd2lyZWxlc3MgZGV2aWNlLiBOb3csIG15IGltbWVkaWF0ZSBxdWVzdGlvbiBpcywgYmV5b25kIHRoZSBQQ0llIGNvbm5lY3Rpb24sIGRvZXMgdGhpcyBkcml2ZXIgc3VwcG9ydCBhbnkgb3RoZXIgaW50ZXJmYWNlcz8gU3BlY2lmaWNhbGx5LCBJJiMzOTttIHdvbmRlcmluZyBpZiB0aGVyZSYjMzk7cyBhIFVTQiBpbXBsZW1lbnRhdGlvbiBvciBhbnkgdmlydHVhbCBpbnRlcmZhY2UgcG9zc2liaWxpdGllcyBiYWtlZCBpbi4gSXQmIzM5O3Mgbm90IGltbWVkaWF0ZWx5IG9idmlvdXMganVzdCBmcm9tIHRoZSBkcml2ZXImIzM5O3MgbG9jYXRpb24uCgpTbywgdGhlIG5leHQgbG9naWNhbCBzdGVwIGlzIHRvIGRpdmUgaW50byB0aGUgZmlsZSBzdHJ1Y3R1cmUgb2YgYGRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2AgaXRzZWxmLiBJIG5lZWQgdG8gcG9rZSBhcm91bmQgYW5kIHNlZSB3aGF0IHRoZSBjb2RlIHJldmVhbHMuIFRpbWUgdG8gc2VlIHdoYXQgd2UmIzM5O3JlIGFjdHVhbGx5IHdvcmtpbmcgd2l0aC4gTGV0JiMzOTtzIHNlZSB3aGF0IHdlIGNhbiBkaWcgdXAuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OC8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMTEgMDY6MzI8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5jb2Rlc2VhcmNoLWRpci1pbmRleDwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RGlyJiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RmlsZXMmIzM0OzogWwogICAgJiMzNDtjb3JlZHVtcC5jJiMzNDssCiAgICAmIzM0O2NvcmVkdW1wLmgmIzM0OywKICAgICYjMzQ7ZGVidWdmcy5jJiMzNDssCiAgICAmIzM0O2RtYS5jJiMzNDssCiAgICAmIzM0O2VlcHJvbS5jJiMzNDssCiAgICAmIzM0O2VlcHJvbS5oJiMzNDssCiAgICAmIzM0O2luaXQuYyYjMzQ7LAogICAgJiMzNDttYWMuYyYjMzQ7LAogICAgJiMzNDttYWMuaCYjMzQ7LAogICAgJiMzNDttYWluLmMmIzM0OywKICAgICYjMzQ7bWN1LmMmIzM0OywKICAgICYjMzQ7bWN1LmgmIzM0OywKICAgICYjMzQ7bW1pby5jJiMzNDssCiAgICAmIzM0O210Nzk5Ni5oJiMzNDssCiAgICAmIzM0O25wdS5jJiMzNDssCiAgICAmIzM0O3BjaS5jJiMzNDssCiAgICAmIzM0O3JlZ3MuaCYjMzQ7CiAgXSwKICAmIzM0O1N1YmRpcnMmIzM0OzogbnVsbAp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OS8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMTEgMDY6MzI8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjctZmxhc2g8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzk2NjEKCQkJCQkJCW91dHB1dDogNDcKCQkJCQkJCXRob3VnaHRzOiAyMAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+SGVyZSYjMzk7cyBteSB0YWtlIG9uIHRoZSBwcm9jZXNzLCBmcmFtZWQgYXMgYSB0aG91Z2h0IHByb2Nlc3M6CgoqKkRpdmluZyBpbnRvIFBDSSBTdXBwb3J0KioKCk9rYXksIHNvIEkgbmVlZCB0byBnZXQgYSBoYW5kbGUgb24gdGhlIFBDSSBzdXBwb3J0LCBzcGVjaWZpY2FsbHkgdGhlIGJ1cyB0eXBlcy4gTXkgaW5pdGlhbCBodW5jaCBpcyB0aGF0IGBwY2kuY2AgYW5kIGBLY29uZmlnYCBhcmUgdGhlIHBsYWNlcyB0byBzdGFydC4gYHBjaS5jYCBpcyB0aGUgb2J2aW91cyBsb2NhdGlvbiBmb3IgdGhlIGNvcmUgUENJIGRyaXZlciBjb2RlLCBzbyBpdCYjMzk7bGwgcHJvYmFibHkgZGVmaW5lIHRoZSBhY3R1YWwgYnVzIHR5cGUgZW51bWVyYXRpb24sIHN0cnVjdHVyZXMsIGFuZCBwb3RlbnRpYWxseSBoYXZlIHNvbWUgaW5pdGlhbGl6YXRpb24gbG9naWMgcmVsYXRlZCB0byBidXMgdHlwZSBkZXRlY3Rpb24uCgpUaGVuLCBgS2NvbmZpZ2DigKYgdGhhdCYjMzk7cyB3aGVyZSB0aGUgY29uZmlndXJhdGlvbiBvcHRpb25zIGxpdmUuIEkmIzM5O2xsIG5lZWQgdG8gc2VlIHdoYXQgY29uZmlndXJhdGlvbiBzeW1ib2xzIGNvbnRyb2wgd2hpY2ggYnVzIHR5cGVzIGFyZSBjb21waWxlZCBpbi4gQXJlIHRoZXJlIHNlcGFyYXRlIG9wdGlvbnMgZm9yIFBDSSwgUENJZSwgUENJLVgsIG9yIGFyZSB0aGV5IGhhbmRsZWQgbW9yZSBnZW5lcmFsbHk/IEFyZSB0aGVyZSBmaW5lLWdyYWluZWQgY2hvaWNlcywgb3IgaXMgaXQgYSBtb3JlIGJyb2FkLCBpbmNsdXNpdmUgYXBwcm9hY2g/IFRoaXMgYWxzbyBnaXZlcyBtZSBpbnNpZ2h0IGludG8gdGhlIGRlZmF1bHQgYmVoYXZpb3IgZm9yIGRpZmZlcmVudCBhcmNoaXRlY3R1cmVzIGFuZCBob3cgd2UgZW5hYmxlL2Rpc2FibGUgY2VydGFpbiBmZWF0dXJlcyByZWxhdGVkIHRvIGJ1cyBzdXBwb3J0LiBJJiMzOTtsbCBiZSBsb29raW5nIGZvciBkZXBlbmRlbmNpZXMsIGRlZmF1bHQgdmFsdWVzLCBhbmQgYW55IHJlbGF0aW9uc2hpcHMgYmV0d2VlbiB0aGUgYnVzIHR5cGUgb3B0aW9ucy4gVGltZSB0byBkaWcgaW4gYW5kIGNvbmZpcm0gbXkgYXNzdW1wdGlvbnMsIG9yIGRpc2NvdmVyIHdoZXJlIG15IGluaXRpYWwgdW5kZXJzdGFuZGluZyBpcyBpbmNvbXBsZXRlIQoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8xMSAwNjozMjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnJlYWQtZmlsZTwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RmlsZSYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L0tjb25maWcmIzM0OywKICAmIzM0O0ZpcnN0TGluZSYjMzQ7OiAxLAogICYjMzQ7TGluZUNvdW50JiMzNDs6IDMwCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtDb250ZW50cyYjMzQ7OiAmIzM0OyAgIDE6XHQjIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMy1DbGF1c2UtQ2xlYXJcbiAgIDI6XHRjb25maWcgTVQ3OTk2RVxuICAgMzpcdFx0dHJpc3RhdGUgXCYjMzQ7TWVkaWFUZWsgTVQ3OTk2IChQQ0llKSBzdXBwb3J0XCYjMzQ7XG4gICA0Olx0XHRzZWxlY3QgTVQ3Nl9DT05OQUNfTElCXG4gICA1Olx0XHRzZWxlY3QgV0FOVF9ERVZfQ09SRURVTVBcbiAgIDY6XHRcdHNlbGVjdCBSRUxBWVxuICAgNzpcdFx0ZGVwZW5kcyBvbiBNQUM4MDIxMVxuICAgODpcdFx0ZGVwZW5kcyBvbiBQQ0lcbiAgIDk6XHRcdGhlbHBcbiAgMTA6XHRcdCAgVGhpcyBhZGRzIHN1cHBvcnQgZm9yIE1UNzk5Ni1iYXNlZCBQQ0llIHdpcmVsZXNzIGRldmljZXMsXG4gIDExOlx0XHQgIHdoaWNoIHN1cHBvcnQgY29uY3VycmVudCB0cmktYmFuZCBvcGVyYXRpb24gYXQgNkdIeiwgNUdIeixcbiAgMTI6XHRcdCAgYW5kIDIuNEdIeiBJRUVFIDgwMi4xMWJlIDR4NDo0U1MgNDA5Ni1RQU0sIDMyME1IeiBjaGFubmVscy5cbiAgMTM6XHRcbiAgMTQ6XHRcdCAgVG8gY29tcGlsZSB0aGlzIGRyaXZlciBhcyBhIG1vZHVsZSwgY2hvb3NlIE0gaGVyZS5cbiAgMTU6XHRcbiAgMTY6XHRjb25maWcgTVQ3OTk2X05QVVxuICAxNzpcdFx0Ym9vbCBcJiMzNDtNVDc5OTYgKFBDSWUpIE5QVSBzdXBwb3J0XCYjMzQ7XG4gIDE4Olx0XHRkZXBlbmRzIG9uIE1UNzk5NkVcbiAgMTk6XHRcdGRlcGVuZHMgb24gTkVUX0FJUk9IQV9OUFU9eSB8fCBNVDc2X0NPUkU9TkVUX0FJUk9IQV9OUFVcbiAgMjA6XHRcdHNlbGVjdCBNVDc2X05QVVxuICAyMTpcdFx0ZGVmYXVsdCBuXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTEvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzExIDA2OjMyPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy43LWZsYXNoPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDQwMzI0CgkJCQkJCQlvdXRwdXQ6IDUwCgkJCQkJCQl0aG91Z2h0czogNjUKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqTXkgSW5pdGlhbCBBc3Nlc3NtZW50IG9mIE1UNzk5NkUqKgoKQWxyaWdodCwgbGV0JiMzOTtzIHRha2UgYSBsb29rIGF0IHRoaXMgYE1UNzk5NkVgLiBCYXNlZCBvbiB3aGF0IEkmIzM5O20gc2VlaW5nLCB0aGlzIGlzIGEgUENJZS1jZW50cmljIGJlYXN0LCBwdXJlbHkgZHJpdmVuIGJ5IHRoZSBgUENJYCBidXMuIFRoZSBjb3JlIG9mIHRoaXMgc2VlbXMgdG8gYmUgY2VudGVyZWQgYXJvdW5kIGRyaXZlcnMgbGlrZSBgcGNpLmNgIGFuZCBgbW1pby5jYCwgd2hpY2ggbWFrZXMgc2Vuc2UgZm9yIFBDSWUgaW50ZXJhY3Rpb25zLiAKCk5vdywgYmVmb3JlIEkgZGlnIHRvbyBkZWVwLCBteSBpbml0aWFsIHRob3VnaHQgaXMgdG8gcXVpY2tseSBydWxlIG91dCBhbnkgZXh0cmFuZW91cyBjb25uZWN0aW9ucy4gSSBuZWVkIHRvIGNvbmZpcm0gdGhpcyBpcyBzb2xlbHkgZm9jdXNlZCBvbiBQQ0llLiBTbywgbGV0JiMzOTtzIGp1c3QgZG8gYSBxdWljayBzY2FuIHRvIHNlZSBpZiB0aGVyZSBhcmUgYW55IFVTQiBvciB2aXJ0dWFsIGRldmljZSBob29rcyBhc3NvY2lhdGVkIHdpdGggYG10Nzk5NmAuIEkmIzM5O20gZXNwZWNpYWxseSBpbnRlcmVzdGVkIGluIGNvbmZpcm1pbmcgd2hldGhlciBpdHMgZGlyZWN0IGRlcGVuZGVuY2llcyBvbiBQQ0kgYXJlIGV4Y2x1c2l2ZSBvZiBhbnkgb3RoZXJzLgoKT2theSwgZmlyc3Qgc3RvcCwgSSYjMzk7bSBnb2luZyB0byBzdGFydCB3aXRoIGEgZGVlcCBkaXZlIGludG8gYHBjaS5jYC4gVGhhdCYjMzk7cyB3aGVyZSBJIG5lZWQgdG8gZm9jdXMgbXkgYXR0ZW50aW9uLiBJdCYjMzk7cyB0aGUgbHluY2hwaW4gaGVyZSwgc28gbGV0JiMzOTtzIHNlZSB3aGF0JiMzOTtzIHdoYXQuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTIvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzExIDA2OjMyPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+cmVhZC1maWxlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtGaWxlJiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvcGNpLmMmIzM0OywKICAmIzM0O0ZpcnN0TGluZSYjMzQ7OiAxLAogICYjMzQ7TGluZUNvdW50JiMzNDs6IDEwMAp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7Q29udGVudHMmIzM0OzogJiMzNDsgICAxOlx0Ly8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0zLUNsYXVzZS1DbGVhclxuICAgMjpcdC8qXG4gICAzOlx0ICogQ29weXJpZ2h0IChDKSAyMDIyIE1lZGlhVGVrIEluYy5cbiAgIDQ6XHQgKi9cbiAgIDU6XHRcbiAgIDY6XHQjaW5jbHVkZSBcdTAwM2NsaW51eC9rZXJuZWwuaFx1MDAzZVxuICAgNzpcdCNpbmNsdWRlIFx1MDAzY2xpbnV4L21vZHVsZS5oXHUwMDNlXG4gICA4Olx0I2luY2x1ZGUgXHUwMDNjbGludXgvcGNpLmhcdTAwM2VcbiAgIDk6XHRcbiAgMTA6XHQjaW5jbHVkZSBcJiMzNDttdDc5OTYuaFwmIzM0O1xuICAxMTpcdCNpbmNsdWRlIFwmIzM0O21hYy5oXCYjMzQ7XG4gIDEyOlx0I2luY2x1ZGUgXCYjMzQ7Li4vdHJhY2UuaFwmIzM0O1xuICAxMzpcdFxuICAxNDpcdHN0YXRpYyBMSVNUX0hFQUQoaGlmX2xpc3QpO1xuICAxNTpcdHN0YXRpYyBERUZJTkVfU1BJTkxPQ0soaGlmX2xvY2spO1xuICAxNjpcdHN0YXRpYyB1MzIgaGlmX2lkeDtcbiAgMTc6XHRcbiAgMTg6XHRzdGF0aWMgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgbXQ3OTk2X3BjaV9kZXZpY2VfdGFibGVbXSA9IHtcbiAgMTk6XHRcdHsgUENJX0RFVklDRShQQ0lfVkVORE9SX0lEX01FRElBVEVLLCBNVDc5OTZfREVWSUNFX0lEKSB9LFxuICAyMDpcdFx0eyBQQ0lfREVWSUNFKFBDSV9WRU5ET1JfSURfTUVESUFURUssIE1UNzk5Ml9ERVZJQ0VfSUQpIH0sXG4gIDIxOlx0XHR7IFBDSV9ERVZJQ0UoUENJX1ZFTkRPUl9JRF9NRURJQVRFSywgTVQ3OTkwX0RFVklDRV9JRCkgfSxcbiAgMjI6XHRcdHsgfSxcbiAgMjM6XHR9O1xuICAyNDpcdFxuICAyNTpcdHN0YXRpYyBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCBtdDc5OTZfaGlmX2RldmljZV90YWJsZVtdID0ge1xuICAyNjpcdFx0eyBQQ0lfREVWSUNFKFBDSV9WRU5ET1JfSURfTUVESUFURUssIE1UNzk5Nl9ERVZJQ0VfSURfMikgfSxcbiAgMjc6XHRcdHsgUENJX0RFVklDRShQQ0lfVkVORE9SX0lEX01FRElBVEVLLCBNVDc5OTJfREVWSUNFX0lEXzIpIH0sXG4gIDI4Olx0XHR7IFBDSV9ERVZJQ0UoUENJX1ZFTkRPUl9JRF9NRURJQVRFSywgTVQ3OTkwX0RFVklDRV9JRF8yKSB9LFxuICAyOTpcdFx0eyB9LFxuICAzMDpcdH07XG4gIDMxOlx0XG4gIDMyOlx0c3RhdGljIHN0cnVjdCBtdDc5OTZfaGlmICptdDc5OTZfcGNpX2dldF9oaWYyKHUzMiBpZHgpXG4gIDMzOlx0e1xuICAzNDpcdFx0c3RydWN0IG10Nzk5Nl9oaWYgKmhpZjtcbiAgMzU6XHRcdHUzMiB2YWw7XG4gIDM2Olx0XG4gIDM3Olx0XHRzcGluX2xvY2tfYmgoXHUwMDI2aGlmX2xvY2spO1xuICAzODpcdFxuICAzOTpcdFx0bGlzdF9mb3JfZWFjaF9lbnRyeShoaWYsIFx1MDAyNmhpZl9saXN0LCBsaXN0KSB7XG4gIDQwOlx0XHRcdHZhbCA9IHJlYWRsKGhpZi1cdTAwM2VyZWdzICYjNDM7IE1UX1BDSUVfUkVDT0dfSUQpO1xuICA0MTpcdFx0XHR2YWwgXHUwMDI2PSBNVF9QQ0lFX1JFQ09HX0lEX01BU0s7XG4gIDQyOlx0XHRcdGlmICh2YWwgIT0gaWR4KVxuICA0MzpcdFx0XHRcdGNvbnRpbnVlO1xuICA0NDpcdFxuICA0NTpcdFx0XHRnZXRfZGV2aWNlKGhpZi1cdTAwM2VkZXYpO1xuICA0NjpcdFx0XHRnb3RvIG91dDtcbiAgNDc6XHRcdH1cbiAgNDg6XHRcdGhpZiA9IE5VTEw7XG4gIDQ5Olx0XG4gIDUwOlx0b3V0OlxuICA1MTpcdFx0c3Bpbl91bmxvY2tfYmgoXHUwMDI2aGlmX2xvY2spO1xuICA1MjpcdFxuICA1MzpcdFx0cmV0dXJuIGhpZjtcbiAgNTQ6XHR9XG4gIDU1Olx0XG4gIDU2Olx0c3RhdGljIHZvaWQgbXQ3OTk2X3B1dF9oaWYyKHN0cnVjdCBtdDc5OTZfaGlmICpoaWYpXG4gIDU3Olx0e1xuICA1ODpcdFx0aWYgKCFoaWYpXG4gIDU5Olx0XHRcdHJldHVybjtcbiAgNjA6XHRcbiAgNjE6XHRcdHB1dF9kZXZpY2UoaGlmLVx1MDAzZWRldik7XG4gIDYyOlx0fVxuICA2MzpcdFxuICA2NDpcdHN0YXRpYyBzdHJ1Y3QgbXQ3OTk2X2hpZiAqbXQ3OTk2X3BjaV9pbml0X2hpZjIoc3RydWN0IHBjaV9kZXYgKnBkZXYpXG4gIDY1Olx0e1xuICA2NjpcdFx0aGlmX2lkeCYjNDM7JiM0Mzs7XG4gIDY3Olx0XG4gIDY4Olx0XHRpZiAoIXBjaV9nZXRfZGV2aWNlKFBDSV9WRU5ET1JfSURfTUVESUFURUssIE1UNzk5Nl9ERVZJQ0VfSURfMiwgTlVMTCkgXHUwMDI2XHUwMDI2XG4gIDY5Olx0XHQgICAgIXBjaV9nZXRfZGV2aWNlKFBDSV9WRU5ET1JfSURfTUVESUFURUssIE1UNzk5Ml9ERVZJQ0VfSURfMiwgTlVMTCkgXHUwMDI2XHUwMDI2XG4gIDcwOlx0XHQgICAgIXBjaV9nZXRfZGV2aWNlKFBDSV9WRU5ET1JfSURfTUVESUFURUssIE1UNzk5MF9ERVZJQ0VfSURfMiwgTlVMTCkpXG4gIDcxOlx0XHRcdHJldHVybiBOVUxMO1xuICA3MjpcdFxuICA3MzpcdFx0d3JpdGVsKGhpZl9pZHggfCBNVF9QQ0lFX1JFQ09HX0lEX1NFTSxcbiAgNzQ6XHRcdCAgICAgICBwY2ltX2lvbWFwX3RhYmxlKHBkZXYpWzBdICYjNDM7IE1UX1BDSUVfUkVDT0dfSUQpO1xuICA3NTpcdFxuICA3NjpcdFx0cmV0dXJuIG10Nzk5Nl9wY2lfZ2V0X2hpZjIoaGlmX2lkeCk7XG4gIDc3Olx0fVxuICA3ODpcdFxuICA3OTpcdHN0YXRpYyBpbnQgbXQ3OTk2X3BjaV9oaWYyX3Byb2JlKHN0cnVjdCBwY2lfZGV2ICpwZGV2KVxuICA4MDpcdHtcbiAgODE6XHRcdHN0cnVjdCBtdDc5OTZfaGlmICpoaWY7XG4gIDgyOlx0XG4gIDgzOlx0XHRoaWYgPSBkZXZtX2t6YWxsb2MoXHUwMDI2cGRldi1cdTAwM2VkZXYsIHNpemVvZigqaGlmKSwgR0ZQX0tFUk5FTCk7XG4gIDg0Olx0XHRpZiAoIWhpZilcbiAgODU6XHRcdFx0cmV0dXJuIC1FTk9NRU07XG4gIDg2Olx0XG4gIDg3Olx0XHRoaWYtXHUwMDNlZGV2ID0gXHUwMDI2cGRldi1cdTAwM2VkZXY7XG4gIDg4Olx0XHRoaWYtXHUwMDNlcmVncyA9IHBjaW1faW9tYXBfdGFibGUocGRldilbMF07XG4gIDg5Olx0XHRoaWYtXHUwMDNlaXJxID0gcGRldi1cdTAwM2VpcnE7XG4gIDkwOlx0XHRwY2llX2JhbmR3aWR0aF9hdmFpbGFibGUocGRldiwgTlVMTCwgXHUwMDI2aGlmLVx1MDAzZXNwZWVkLCBcdTAwMjZoaWYtXHUwMDNld2lkdGgpO1xuICA5MTpcdFx0c3Bpbl9sb2NrX2JoKFx1MDAyNmhpZl9sb2NrKTtcbiAgOTI6XHRcdGxpc3RfYWRkKFx1MDAyNmhpZi1cdTAwM2VsaXN0LCBcdTAwMjZoaWZfbGlzdCk7XG4gIDkzOlx0XHRzcGluX3VubG9ja19iaChcdTAwMjZoaWZfbG9jayk7XG4gIDk0Olx0XHRwY2lfc2V0X2RydmRhdGEocGRldiwgaGlmKTtcbiAgOTU6XHRcbiAgOTY6XHRcdHJldHVybiAwO1xuICA5NzpcdH1cbiAgOTg6XHRcbiAgOTk6XHRzdGF0aWMgaW50IG10Nzk5Nl9wY2lfcHJvYmUoc3RydWN0IHBjaV9kZXYgKnBkZXYsXG4gMTAwOlx0XHRcdFx0ICAgIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICppZClcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMy8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMTEgMDY6MzI8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjctZmxhc2g8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNDIyNDUKCQkJCQkJCW91dHB1dDogNDAKCQkJCQkJCXRob3VnaHRzOiAyMzUKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqTXkgQXNzZXNzbWVudCBvZiBNVDc5OTYgRW11bGF0aW9uIEZlYXNpYmlsaXR5KioKCk9rYXksIGxldCYjMzk7cyBicmVhayB0aGlzIGRvd24gc3lzdGVtYXRpY2FsbHkuIE15IGluaXRpYWwgdGhvdWdodCBpcyB0byBtYWtlIHN1cmUgSSB1bmRlcnN0YW5kIHRoZSBzY29wZSBvZiB0aGUgcHJvYmxlbS4gU2VjdGlvbiAyIG9mIHRoZSBpbnN0cnVjdGlvbnMgaGlnaGxpZ2h0cyB0aGUgcG90ZW50aWFsIGZvciAmIzM0O3N0cnVjdHVyYWxseSB1bnJlYWNoYWJsZSBoYXJkd2FyZSwmIzM0OyBzcGVjaWZpY2FsbHkgdmVuZG9yLXNwZWNpZmljIGNvbXBvbmVudHMgbGlrZSBQQ0llIHN3aXRjaGVzLCBTbWFydE5JQ3MsIG9yIEdQVSBkcml2ZXJzLiBJIG5lZWQgdG8ga2VlcCB0aGlzIGluIG1pbmQgYXMgSSBhc3Nlc3MgdGhlIE1UNzk5Ni4KCk5vdywgZm9jdXNpbmcgb24gdGhlIGNvcmUgcXVlc3Rpb246IGNhbiBJIHNpbXVsYXRlIG9yIHJlYWNoIHRoZSBNVDc5OTYsIGEgTWVkaWFUZWsgV2lGaSA3IFBDSWUgTklDICh3aGljaCBjb3VsZCBiZSBhbiBNVDc5OTYsIE1UNzk5Miwgb3IgTVQ3OTkwKSwgd2l0aGluIGEgUUVNVSBlbnZpcm9ubWVudCwgb3IgdGhyb3VnaCBhbHRlcm5hdGl2ZSBtZXRob2RzIGxpa2UgVVNCLCBtYWM4MDIxMV9od3NpbSwgb3Igc29tZXRoaW5nIHNpbWlsYXI/CgpGaXJzdCwgSSYjMzk7bGwgY29uZmlybSB0aGUgb2J2aW91czogUUVNVSBkb2VzbiYjMzk7dCBvZmZlciBuYXRpdmUgZW11bGF0aW9uIGZvciBNZWRpYVRlayYjMzk7cyBNVDc2IHNlcmllcyBQQ0llIGRldmljZXMuIFNvLCBzdGFuZGFyZCBRRU1VIGVtdWxhdGlvbiBpcyBvdXQuIFRoaXMgbWVhbnMgSSBuZWVkIHRvIGRpZyBkZWVwZXIuIE15IG5leHQgc3RlcCBpbnZvbHZlcyBjaGVja2luZyBpZiBhbnkgdmlydHVhbCBlbXVsYXRpb24sIG1vY2ssIG9yIFVTQiBwcm9iZSBleGlzdHMgZm9yIHRoZSBtdDc5OTYuIEkmIzM5O20gZ29pbmcgdG8gc2VhcmNoIGZvciBwcm9iZSBlbnRyeSBwb2ludHMuIFRoaXMgd2lsbCBiZSB0aGUga2V5IHRvIGFzc2Vzc2luZyB3aGV0aGVyIHRoZSBkZXZpY2UgY2FuIGJlIGxvYWRlZCBvciBwcm9iZWQgd2l0aG91dCBwaHlzaWNhbCBoYXJkd2FyZSBwcmVzZW50LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE0LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8xMSAwNjozMjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtfZHJpdmVyJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbWN1LmM9MzIyOD1pbnQgbXQ3OTk2X21jdV9iZWFjb25faW5iYW5kX2Rpc2NvdihzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21jdS5jLTMzMTQtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tY3UuYzozMzE1OnN0YXRpYyBpbnQgbXQ3OTk2X2RyaXZlcl9vd24oc3RydWN0IG10Nzk5Nl9kZXYgKmRldiwgdTggYmFuZClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21jdS5jLTMzMTYte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21jdS5jPTM3MTM9aW50IG10Nzk5Nl9tY3VfaW5pdF9maXJtd2FyZShzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21jdS5jLTM3MjEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tY3UuYzozNzIyOlx0cmV0ID0gbXQ3OTk2X2RyaXZlcl9vd24oZGV2LCAwKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21jdS5jLTM3MjMtXHRpZiAocmV0KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21jdS5jLTM3MjYtXHRpZiAoZGV2LVx1MDAzZWhpZjIpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21jdS5jOjM3Mjc6XHRcdHJldCA9IG10Nzk5Nl9kcml2ZXJfb3duKGRldiwgMSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tY3UuYy0zNzI4LVx0XHRpZiAocmV0KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21taW8uYz04MzI9c3RydWN0IG10Nzk5Nl9kZXYgKm10Nzk5Nl9tbWlvX3Byb2JlKHN0cnVjdCBkZXZpY2UgKnBkZXYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbW1pby5jLTgzNC17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tbWlvLmM6ODM1Olx0c3RhdGljIGNvbnN0IHN0cnVjdCBtdDc2X2RyaXZlcl9vcHMgZHJ2X29wcyA9IHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21taW8uYy04MzYtXHRcdC8qIHR4d2lfc2l6ZSA9IHR4ZCBzaXplICYjNDM7IHR4cCBzaXplICovXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbW1pby5jPTg4NT1zdGF0aWMgaW50IF9faW5pdCBtdDc5OTZfaW5pdCh2b2lkKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21taW8uYy04ODgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tbWlvLmM6ODg5Olx0cmV0ID0gcGNpX3JlZ2lzdGVyX2RyaXZlcihcdTAwMjZtdDc5OTZfaGlmX2RyaXZlcik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tbWlvLmMtODkwLVx0aWYgKHJldClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tbWlvLmMtODkyLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbW1pby5jOjg5MzpcdHJldCA9IHBjaV9yZWdpc3Rlcl9kcml2ZXIoXHUwMDI2bXQ3OTk2X3BjaV9kcml2ZXIpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbW1pby5jLTg5NC1cdGlmIChyZXQpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tbWlvLmM6ODk1Olx0XHRwY2lfdW5yZWdpc3Rlcl9kcml2ZXIoXHUwMDI2bXQ3OTk2X2hpZl9kcml2ZXIpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbW1pby5jLTg5Ni1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tbWlvLmM9OTAwPXN0YXRpYyB2b2lkIF9fZXhpdCBtdDc5OTZfZXhpdCh2b2lkKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbW1pby5jLTkwMS17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tbWlvLmM6OTAyOlx0cGNpX3VucmVnaXN0ZXJfZHJpdmVyKFx1MDAyNm10Nzk5Nl9wY2lfZHJpdmVyKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21taW8uYzo5MDM6XHRwY2lfdW5yZWdpc3Rlcl9kcml2ZXIoXHUwMDI2bXQ3OTk2X2hpZl9kcml2ZXIpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbW1pby5jLTkwNC19XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbXQ3OTk2Lmg9NjY5PWV4dGVybiBjb25zdCBzdHJ1Y3QgaWVlZTgwMjExX29wcyBtdDc5OTZfb3BzO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbXQ3OTk2Lmg6NjcwOmV4dGVybiBzdHJ1Y3QgcGNpX2RyaXZlciBtdDc5OTZfcGNpX2RyaXZlcjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L210Nzk5Ni5oOjY3MTpleHRlcm4gc3RydWN0IHBjaV9kcml2ZXIgbXQ3OTk2X2hpZl9kcml2ZXI7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tdDc5OTYuaC02NzItXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvcGNpLmM9MjMzPXN0YXRpYyB2b2lkIG10Nzk5Nl9wY2lfcmVtb3ZlKHN0cnVjdCBwY2lfZGV2ICpwZGV2KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L3BjaS5jLTI0My1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L3BjaS5jOjI0NDpzdHJ1Y3QgcGNpX2RyaXZlciBtdDc5OTZfaGlmX2RyaXZlciA9IHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L3BjaS5jLTI0NS1cdC5uYW1lXHRcdD0gS0JVSUxEX01PRE5BTUUgXCYjMzQ7X2hpZlwmIzM0Oyxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9wY2kuYy0yNTAtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9wY2kuYzoyNTE6c3RydWN0IHBjaV9kcml2ZXIgbXQ3OTk2X3BjaV9kcml2ZXIgPSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9wY2kuYy0yNTItXHQubmFtZVx0XHQ9IEtCVUlMRF9NT0ROQU1FLFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE1LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8xMSAwNjozMjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuNy1mbGFzaDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA0NDQ4NwoJCQkJCQkJb3V0cHV0OiAxNDAKCQkJCQkJCXRob3VnaHRzOiA0MzYKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqTXkgQXNzZXNzbWVudDogTVQ3OTk2IERyaXZlciAtIE5vdCBGdXp6YWJsZSoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhpcyBgbXQ3OTk2YCBkcml2ZXIsIGFuZCBpdCYjMzk7cyBjbGVhciB0aGlzIGlzIGEgUENJZS1zcGVjaWZpYyBkcml2ZXIgZm9yIE1lZGlhVGVrJiMzOTtzIE1UNzk5NiwgTVQ3OTkyLCBhbmQgTVQ3OTkwIGhhcmR3YXJlLiBJdCYjMzk7cyByZWdpc3RlcmVkIHZpYSBgcGNpX3JlZ2lzdGVyX2RyaXZlcmAgd2hpY2ggaXMgc3RhbmRhcmQgZm9yIFBDSWUgZGV2aWNlcy4gVGhlIGRyaXZlciBpdHNlbGYgaXMgbm90IGRlc2lnbmVkIHRvIGZ1bmN0aW9uIGluIGVtdWxhdGVkIGVudmlyb25tZW50cyBsaWtlIFFFTVUgb3IgR29vZ2xlIENvbXB1dGUgRW5naW5lOyBpdCAqcmVxdWlyZXMqIGFjdHVhbCBQQ0llIGhhcmR3YXJlLgoKQmFzZWQgb24gdGhlIGRvY3VtZW50YXRpb24sIHRoaXMgcHV0cyBpdCBmaXJtbHkgaW4gdGhlICYjMzQ7c3RydWN0dXJhbGx5IHVucmVhY2hhYmxlIGhhcmR3YXJlJiMzNDsgY2F0ZWdvcnkuIFNlY3Rpb24gMiBjbGVhcmx5IHN0YXRlcyB0aGF0IGZ1enppbmcgc2hvdWxkIG9ubHkgdGFyZ2V0IGNvZGUgdGhhdCYjMzk7cyAqcmVhY2hhYmxlKiBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMuIFRoaXMgaW5jbHVkZXMgdGhpbmdzIGxpa2UgdmVuZG9yLXNwZWNpZmljIHN3aXRjaGVzLCBTbWFydE5JQ3MsIEdQVSBkcml2ZXJzIOKAkyB0aGUgTVQ3OTk2IGZhbGxzIGludG8gdGhpcyBjYXRlZ29yeTogYSB3aXJlbGVzcyBQQ0llIGRyaXZlciB3aXRob3V0IGVtdWxhdGVkIGhhcmR3YXJlIHN1cHBvcnQuCgpUaGVyZWZvcmUsIHNpbmNlIHRoZSBNVDc5OTYgaXMgdW5yZWFjaGFibGUgZHVyaW5nIGZ1enppbmcsIHRoZSBtb2RpZmllZCBjb2RlLCBzcGVjaWZpY2FsbHkgd2l0aGluIGBtdDc5OTZfdHhfcHJlcGFyZV9za2JgIGluIHRoaXMgY2FzZSwgd291bGQgbmV2ZXIgYmUgZXhlcmNpc2VkLgoKU28sIGxldCYjMzk7cyBjb25maXJtIHRoZSByZWxldmFudCBwYXJhbWV0ZXJzLiBJIGFtIGNvbmZpZGVudCB0aGF0IGBXb3J0aEZ1enppbmdgIHNob3VsZCBiZSBzZXQgdG8gYGZhbHNlYCwgYEVuYWJsZUNvbmZpZ3NgIHJlbWFpbnMgZW1wdHksIGFuZCBgRm9jdXNTeW1ib2xzYCBhbHNvIHN0YXlzIGVtcHR5LiBUaGUgYFJlYXNvbmluZ2Agd2lsbCBiZSBhIGNsZWFyIGV4cGxhbmF0aW9uOiBUaGUgTVQ3OTk2IGRyaXZlciBkZXBlbmRzIG9uIGEgbm9uLWVtdWxhdGFibGUgTWVkaWFUZWsgUENJZSBoYXJkd2FyZSBjaGlwLiBUaGUgZnV6emluZyBjb2RlIGlzIHN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZSwgbWFraW5nIGZ1enppbmcgcG9pbnRsZXNzLgoKQWxyaWdodCwgcGFyYW1ldGVycyBjb25maXJtZWQuIEkmIzM5O2xsIGluaXRpYXRlIHRoZSBzZXQtcmVzdWx0cyBmdW5jdGlvbiBub3cuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzExIDA2OjMyPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+c2V0LXJlc3VsdHM8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogW10sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbWFjLmMgaW4gdGhlIE1lZGlhVGVrIE1UNzk5NiB3aXJlbGVzcyBkcml2ZXIgKENPTkZJR19NVDc5OTZFKS4gVGhpcyBkcml2ZXIgaXMgZXhjbHVzaXZlbHkgYSBQQ0llIGRldmljZSBkcml2ZXIgZm9yIHBoeXNpY2FsIE1lZGlhVGVrIE1UNzk5Ni9NVDc5OTIvTVQ3OTkwIGhhcmR3YXJlLCB3aGljaCBpcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQgZnV6emluZyBlbnZpcm9ubWVudHMgKFFFTVUvR0NFKS4gQ29uc2VxdWVudGx5LCB0aGUgbW9kaWZpZWQgY29kZSBpcyBzdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUgZm9yIGZ1enppbmcuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogbnVsbCwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyBkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tYWMuYyBpbiB0aGUgTWVkaWFUZWsgTVQ3OTk2IHdpcmVsZXNzIGRyaXZlciAoQ09ORklHX01UNzk5NkUpLiBUaGlzIGRyaXZlciBpcyBleGNsdXNpdmVseSBhIFBDSWUgZGV2aWNlIGRyaXZlciBmb3IgcGh5c2ljYWwgTWVkaWFUZWsgTVQ3OTk2L01UNzk5Mi9NVDc5OTAgaGFyZHdhcmUsIHdoaWNoIGlzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBmdXp6aW5nIGVudmlyb25tZW50cyAoUUVNVS9HQ0UpLiBDb25zZXF1ZW50bHksIHRoZSBtb2RpZmllZCBjb2RlIGlzIHN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZSBmb3IgZnV6emluZy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTcvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzExIDA2OjMyPC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5JZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPC90Ym9keT4KCTwvdGFibGU+CgoJPGRpdiBpZD0ibGxtX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5MTE0gQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBUb2tlbnM8L3RoPgoJCQkJCTx0aD5BdmcgVG9rZW5zPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9ImxsbV9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9InRvb2xfc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPlRvb2wgQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0idG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9ImR1cmF0aW9uX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCTxkaXYgaWQ9InRva2VuX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL2pzYXBpIj48L3NjcmlwdD4KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCQlnb29nbGUubG9hZCgidmlzdWFsaXphdGlvbiIsICIxIiwge3BhY2thZ2VzOlsiY29yZWNoYXJ0Il19KTsKCQlnb29nbGUuc2V0T25Mb2FkQ2FsbGJhY2soZHJhd0NoYXJ0cyk7CgoJCWZ1bmN0aW9uIGRyYXdDaGFydHMoKSB7CgkJCWNvbnN0IHJhd0RhdGEgPSBbeyJTdGFydGVkIjoiMjAyNi0wOS0xMVQwNjozMjowMy4zOTEyNjY4MjVaIiwiU2VxIjowLCJOZXN0aW5nIjowLCJUeXBlIjoiZmxvdyIsIk5hbWUiOiJwYXRjaC10cmlhZ2UiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjozMjU2MzU4MTMwMSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJLTVNBTlJlYXNvbmluZ1wiOiBcIlwiLFxuICBcIk5lZWRzS01TQU5cIjogZmFsc2UsXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIGRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21hYy5jIGluIHRoZSBNZWRpYVRlayBNVDc5OTYgd2lyZWxlc3MgZHJpdmVyIChDT05GSUdfTVQ3OTk2RSkuIFRoaXMgZHJpdmVyIGlzIGV4Y2x1c2l2ZWx5IGEgUENJZSBkZXZpY2UgZHJpdmVyIGZvciBwaHlzaWNhbCBNZWRpYVRlayBNVDc5OTYvTVQ3OTkyL01UNzk5MCBoYXJkd2FyZSwgd2hpY2ggaXMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGZ1enppbmcgZW52aXJvbm1lbnRzIChRRU1VL0dDRSkuIENvbnNlcXVlbnRseSwgdGhlIG1vZGlmaWVkIGNvZGUgaXMgc3RydWN0dXJhbGx5IHVucmVhY2hhYmxlIGZvciBmdXp6aW5nLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMTFUMDY6MzI6MDMuMzkxMjc4OTY1WiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0NzE0NTg5NzIsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIlBhdGNoRGlmZlwiOiBcImNvbW1pdCA1ODVmMDk2YzQ4NmZmYzgwM2ZkNzY4NDBiMTFlODYyNWQ4MGMyOTQ2XFxuQXV0aG9yOiBzeXotY2x1c3RlciBcXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cXHUwMDNlXFxuRGF0ZTogICBGcmkgU2VwIDExIDA2OjMyOjAyIDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21hYy5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbWFjLmNcXG5pbmRleCAxY2JhMzgxYTc4YjgyLi5lMjRkZDUzMDQ4NmM0IDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21hYy5jXFxuKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbWFjLmNcXG5AQCAtMTA1Nyw3ICsxMDU3LDcgQEAgaW50IG10Nzk5Nl90eF9wcmVwYXJlX3NrYihzdHJ1Y3QgbXQ3Nl9kZXYgKm1kZXYsIHZvaWQgKnR4d2lfcHRyLFxcbiBcXHRpZiAoIXdjaWQpXFxuIFxcdFxcdHdjaWQgPSBcXHUwMDI2ZGV2LVxcdTAwM2VtdDc2Lmdsb2JhbF93Y2lkO1xcbiBcXG4tXFx0aWYgKChpc184MDIzIHx8IGllZWU4MDIxMV9pc19kYXRhX3FvcyhoZHItXFx1MDAzZWZyYW1lX2NvbnRyb2wpKSBcXHUwMDI2XFx1MDAyNiBzdGEtXFx1MDAzZW1sbyBcXHUwMDI2XFx1MDAyNlxcbitcXHRpZiAoc3RhIFxcdTAwMjZcXHUwMDI2IChpc184MDIzIHx8IGllZWU4MDIxMV9pc19kYXRhX3FvcyhoZHItXFx1MDAzZWZyYW1lX2NvbnRyb2wpKSBcXHUwMDI2XFx1MDAyNiBzdGEtXFx1MDAzZW1sbyBcXHUwMDI2XFx1MDAyNlxcbiBcXHQgICAgbGlrZWx5KHR4X2luZm8tXFx1MDAzZXNrYi1cXHUwMDNlcHJvdG9jb2wgIT0gY3B1X3RvX2JlMTYoRVRIX1BfUEFFKSkpIHtcXG4gXFx0XFx0dTggdGlkID0gdHhfaW5mby1cXHUwMDNlc2tiLVxcdTAwM2Vwcmlvcml0eSBcXHUwMDI2IElFRUU4MDIxMV9RT1NfQ1RMX1RJRF9NQVNLO1xcbiBcXG5AQCAtMTA5Nyw3ICsxMDk3LDcgQEAgaW50IG10Nzk5Nl90eF9wcmVwYXJlX3NrYihzdHJ1Y3QgbXQ3Nl9kZXYgKm1kZXYsIHZvaWQgKnR4d2lfcHRyLFxcbiBcXHQgKiBjb21wYXRpYmxlIHdpdGggODAyLjExIEVBUE9MIGZyYW1lLCB3ZSBkbyB0aGUgdHJhbnNsYXRpb24gYnlcXG4gXFx0ICogc29mdHdhcmVcXG4gXFx0ICovXFxuLVxcdGlmICh0eF9pbmZvLVxcdTAwM2Vza2ItXFx1MDAzZXByb3RvY29sID09IGNwdV90b19iZTE2KEVUSF9QX1BBRSkgXFx1MDAyNlxcdTAwMjYgc3RhLVxcdTAwM2VtbG8pIHtcXG4rXFx0aWYgKHN0YSBcXHUwMDI2XFx1MDAyNiB0eF9pbmZvLVxcdTAwM2Vza2ItXFx1MDAzZXByb3RvY29sID09IGNwdV90b19iZTE2KEVUSF9QX1BBRSkgXFx1MDAyNlxcdTAwMjYgc3RhLVxcdTAwM2VtbG8pIHtcXG4gXFx0XFx0c3RydWN0IGllZWU4MDIxMV9oZHIgKmhkciA9ICh2b2lkICopdHhfaW5mby1cXHUwMDNlc2tiLVxcdTAwM2VkYXRhO1xcbiBcXHRcXHRzdHJ1Y3QgaWVlZTgwMjExX2Jzc19jb25mICpsaW5rX2NvbmY7XFxuIFxcdFxcdHN0cnVjdCBpZWVlODAyMTFfbGlua19zdGEgKmxpbmtfc3RhO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOS0xMVQwNjozMjowMy44NjM0MjMyMDdaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJjb3JlIiwiRHVyYXRpb24iOjMyMDkxNDEwNzU5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyBkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tYWMuYyBpbiB0aGUgTWVkaWFUZWsgTVQ3OTk2IHdpcmVsZXNzIGRyaXZlciAoQ09ORklHX01UNzk5NkUpLiBUaGlzIGRyaXZlciBpcyBleGNsdXNpdmVseSBhIFBDSWUgZGV2aWNlIGRyaXZlciBmb3IgcGh5c2ljYWwgTWVkaWFUZWsgTVQ3OTk2L01UNzk5Mi9NVDc5OTAgaGFyZHdhcmUsIHdoaWNoIGlzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBmdXp6aW5nIGVudmlyb25tZW50cyAoUUVNVS9HQ0UpLiBDb25zZXF1ZW50bHksIHRoZSBtb2RpZmllZCBjb2RlIGlzIHN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZSBmb3IgZnV6emluZy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyIGFuZCBzZWN1cml0eSBlbmdpbmVlci5cbllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZXZhbHVhdGUgd2hldGhlciBpdCB3YXJyYW50cyBmdXp6aW5nIHdpdGggc3l6a2FsbGVyLlxuXG5JTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW5cbnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiBpbnRlcm5hbCBhc3N1bXB0aW9ucy4gWW91IG11c3QgYWN0aXZlbHkgdXNlIHlvdXIgY29kZSBhY2Nlc3NcbnRvb2xzIHRvIGluc3BlY3QgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSwgY2FsbGVycywgYW5kIHN1cnJvdW5kaW5nIGNvbnRleHQuXG5cbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4xLiBDT1JFIFRSSUFHRSBQSElMT1NPUEhZXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuVGhlIGdvYWwgb2YgcGF0Y2ggZnV6emluZyBpcyB0byBkaXNjb3ZlciBjcmFzaGVzLCByZWdyZXNzaW9ucywgZXhwb3NlZCBsYXRlbnQgYnVncyxcbmFuZCBuZXdseSB0cmlnZ2VyZWQgYXNzZXJ0aW9ucyBpbnRyb2R1Y2VkIGJ5IHRoZSBwYXRjaCBzZXJpZXMuXG5cbi0gUkVBQ0hBQklMSVRZIElTIFRIRSBQUklNQVJZIEdBVEU6XG4gIEZ1enppbmcgY2FuIG9ubHkgZGlzY292ZXIgYnVncyBpbiBjb2RlIHRoYXQgY2FuIGFjdHVhbGx5IGV4ZWN1dGUgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWRcbiAgZW52aXJvbm1lbnRzIChHQ0Ugb3IgUUVNVSwgdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGRldmljZXMgbGlrZSBVU0IgZ2FkZ2V0cywgbmV0ZGV2LCB0dW4vdGFwKS5cbiAgSWYgdGhlIG1vZGlmaWVkIGNvZGUgaXMgc3RydWN0dXJhbGx5IHVucmVhY2hhYmxlIChzZWUgU2VjdGlvbiAyKSwgaXQgTVVTVCBOT1QgYmUgZnV6emVkLFxuICByZWdhcmRsZXNzIG9mIHdoZXRoZXIgaXQgYWRkcyBhc3NlcnRpb25zIG9yIGNvbXBsZXggbG9naWMuXG5cbi0gRE8gTk9UIEJMSU5ETFkgVFJVU1QgXCJOTyBGVU5DVElPTkFMIENIQU5HRVwiIChORkNJKSBPUiBcIlJFRkFDVE9SSU5HXCIgQ0xBSU1TOlxuICBQYXRjaCBhdXRob3JzIHJvdXRpbmVseSBsYWJlbCBjaGFuZ2VzIGFzIFwiY2xlYW51cHNcIiwgXCJyZWZhY3RvcmluZ3NcIiwgb3Igc3RhdGVcbiAgXCJObyBmdW5jdGlvbmFsIGNoYW5nZSBpbnRlbmRlZFwiLiBEbyBOT1QgdGFrZSB0aGVzZSBjbGFpbXMgYXQgZmFjZSB2YWx1ZS5cbiAgQ29kZSByZWZhY3RvcmluZ3MgdGhhdCByZWFycmFuZ2UgbG9naWMsIGludHJvZHVjZSBoZWxwZXIgZnVuY3Rpb25zLCBvciBhbHRlciBzdGF0ZSBtYW5hZ2VtZW50XG4gIGluIGNvcmUgc3Vic3lzdGVtcyBmcmVxdWVudGx5IGludHJvZHVjZSBzdWJ0bGUgc2VtYW50aWMgc2hpZnRzIG9yIHVuY292ZXIgbGF0ZW50IGtlcm5lbCBidWdzLlxuICBJZiByZWFjaGFibGUgZXhlY3V0YWJsZSBjb2RlIGlzIG1vZGlmaWVkIG9yIHJlZmFjdG9yZWQsIGl0IE1VU1QgYmUgZnV6emVkLlxuXG4tIE5FVyBPUiBNT0RJRklFRCBBU1NFUlRJT05TIElOIFJFQUNIQUJMRSBDT0RFIE1VU1QgQkUgRlVaWkVEOlxuICBXaGVuIGEgcGF0Y2ggaW50cm9kdWNlcyBvciBtb2RpZmllcyBydW50aW1lIGNoZWNrcyBvciBhc3NlcnRpb25zIChlLmcuLCBXQVJOX09OKiwgVk1fV0FSTl9PTiosXG4gIEJVR19PTiosIGxvY2tkZXBfYXNzZXJ0KikgaW4gcmVhY2hhYmxlIGNvZGUgcGF0aHMsIGl0IGVuZm9yY2VzIG5ldyBvciBzdHJpY3RlciBpbnZhcmlhbnRzLlxuICBFdmVuIGlmIHRoZSBhdXRob3IgYmVsaWV2ZXMgdGhlIGludmFyaWFudCBhbHdheXMgaG9sZHMsIGZ1enppbmcgaXMgZXNzZW50aWFsIHRvIHZlcmlmeSB3aGV0aGVyXG4gIGFuIHVudXN1YWwgc2VxdWVuY2Ugb2Ygb3BlcmF0aW9ucyBjYW4gdmlvbGF0ZSBpdC5cblxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbjIuIFdIRU4gVE8gUkVUVVJOIFdvcnRoRnV6emluZz1mYWxzZSAoTkVHQVRJVkUgQ1JJVEVSSUEpXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBPTkxZIElGIGFsbCBtb2RpZmllZCBjb2RlIGZhbGxzIHN0cmljdGx5IGludG8gb25lIG9yIG1vcmUgb2YgdGhlc2UgY2F0ZWdvcmllczpcblxuLSBOb24ta2VybmVsIGFuZCBub24tZXhlY3V0YWJsZSBjaGFuZ2VzOlxuICAqIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIGNvbW1lbnRzLCBvciBzcGVsbGluZyBmaXhlcy5cbiAgKiBVc2VyLXNwYWNlIGRpcmVjdG9yaWVzLCBzZWxmLXRlc3RzLCBzYW1wbGVzLCBvciBzY3JpcHRzIChlLmcuLCB0b29scy8sIHNhbXBsZXMvLCBzY3JpcHRzLywgdXNyLylcbiAgICB0aGF0IGRvIG5vdCBhZmZlY3QgdGhlIGNvbXBpbGVkIGtlcm5lbCBpbWFnZSAodm1saW51eCkgb3Iga2VybmVsIG1vZHVsZXMuXG4gICogUHVyZWx5IGRlY29yYXRpdmUgbG9nZ2luZyAoZS5nLiwgbWVzc2FnZSBzdHJpbmdzIGluIHByX2VyciwgcHJpbnRrLCBkZXZfaW5mbykgb3IgdHJhY2Vwb2ludHNcbiAgICB0aGF0IGRvIG5vdCBhbHRlciBjb250cm9sIGZsb3cgb3IgZGF0YSBzdHJ1Y3R1cmVzLlxuICAqIEJ1aWxkIHN5c3RlbSBvciBLY29uZmlnIGNoYW5nZXMgdGhhdCBkbyBub3QgYWx0ZXIgY29tcGlsZWQgQyBsb2dpYy5cbi0gU3RydWN0dXJhbGx5IHVucmVhY2hhYmxlIGhhcmR3YXJlOlxuICAqIFZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaGVzLCBTbWFydE5JQ3MsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCxcbiAgICBpb25pYywgYW1kZ3B1KSByZXF1aXJpbmcgcGh5c2ljYWwgQVNJQy9QQ0llIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLlxuLSBVbnJlYWNoYWJsZSBleGVjdXRpb24gcGF0aHM6XG4gICogRHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoLnJlbW92ZSwgLnNodXRkb3duLCBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIpIGV4ZWN1dGVkIG9ubHkgZHVyaW5nXG4gICAgcGh5c2ljYWwgUENJIGhvdC11bnBsdWcgb3IgbWFudWFsIHN5c2ZzIGRyaXZlciB1bmJpbmRpbmcuXG4gICogQ29kZSBwYXRocyBleGNsdXNpdmUgdG8gYXJjaGl0ZWN0dXJlcyBvdGhlciB0aGFuIHRoZSB0YXJnZXQgYXJjaGl0ZWN0dXJlLlxuXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuMy4gV0hFTiBUTyBSRVRVUk4gV29ydGhGdXp6aW5nPXRydWUgKFBPU0lUSVZFIENSSVRFUklBKVxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZSB3aGVuZXZlciB0aGUgcGF0Y2ggdG91Y2hlcyByZWFjaGFibGUgZXhlY3V0YWJsZSBjb2RlLCBpbmNsdWRpbmc6XG4tIENvcmUgU3Vic3lzdGVtczpcbiAgKiBBbnkgbG9naWMgbW9kaWZpY2F0aW9ucyBpbiBtZW1vcnkgbWFuYWdlbWVudCAobW0vKSwgc3luY2hyb25pemF0aW9uL2xvY2tpbmcgKGtlcm5lbC9sb2NraW5nLyksXG4gICAgQlBGLCBzY2hlZHVsZXIsIGNvcmUgbmV0d29ya2luZywgVkZTLCBvciBzeXNjYWxsIGhhbmRsaW5nLlxuLSBSZWZhY3RvcmluZ3MgYW5kIENvZGUgQ2xlYW51cHM6XG4gICogQW55IHJlc3RydWN0dXJpbmcgb2YgcmVhY2hhYmxlIGRhdGEgc3RydWN0dXJlcywgaGVscGVyIGFic3RyYWN0aW9ucywgb3IgYWxnb3JpdGhtIGZsb3dzLlxuLSBSdW50aW1lIEFzc2VydGlvbnMgYW5kIERlZmVuc2l2ZSBDaGVja3M6XG4gICogQW55IGludHJvZHVjdGlvbiBvciBhbHRlcmF0aW9uIG9mIGFzc2VydGlvbnMgKFdBUk5fT04qLCBWTV9XQVJOX09OKiwgQlVHX09OKiwgZXRjLikgaW4gcmVhY2hhYmxlIHBhdGhzLlxuLSBSZWFjaGFibGUgRHJpdmVycyBhbmQgUHJvdG9jb2xzOlxuICAqIERyaXZlcnMgYWNjZXNzaWJsZSB2aWEgdmlydHVhbCBidXNlcyAodmlydGlvLCBVU0IgZ2FkZ2V0LCBsb29wYmFjaywgbmV0bGluaywgYmluZGVyLCBzb2NrZXRzLCBldGMuKS5cblxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbjQuIEVYVFJBQ1RJTkcgRm9jdXNTeW1ib2xzIChQUkVWRU5USU5HIERJTFVUSU9OKVxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbldoZW4gV29ydGhGdXp6aW5nPXRydWUsIHlvdSBtdXN0IGV4dHJhY3Qgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyBpbnRvIEZvY3VzU3ltYm9scyB0byBndWlkZSB0aGUgZnV6emVyOlxuXG4tIEFWT0lEIFVCSVFVSVRPVVMgTElGRUNZQ0xFIEhPVC1QQVRIUzpcbiAgRG8gTk9UIGxpc3QgZ2VuZXJpYywgdWJpcXVpdG91cyBmdW5jdGlvbnMgY2FsbGVkIGJ5IGFsbW9zdCBldmVyeSBwcm9ncmFtIGluIHRoZSBjb3JwdXNcbiAgKGluY2x1ZGluZywgYnV0IG5vdCBsaW1pdGVkIHRvOiBnZW5lcmFsIG1lbW9yeSBhbGxvY2F0b3JzIGFuZCBkZWFsbG9jYXRvcnMsIHBhZ2UgZmF1bHRcbiAgYW5kIHRyYXAgaGFuZGxlcnMsIG9yIGNvcmUgc3luY2hyb25pemF0aW9uIHByaW1pdGl2ZXM7IHRoaXMgaXMgbm90IGFuIGV4aGF1c3RpdmUgbGlzdCkuXG4gIExpc3RpbmcgdWJpcXVpdG91cyBmdW5jdGlvbnMgY2F1c2VzIHRoZSBmdXp6ZXIgdG8gY2xhc3NpZnkgdGhvdXNhbmRzIG9mIHVucmVsYXRlZCB0ZXN0cyBhcyBcImZvY3VzZWRcIixcbiAgd2hpY2ggc2V2ZXJlbHkgZGlsdXRlcyBmdXp6aW5nIGVmZm9ydCBhd2F5IGZyb20gdGhlIGFjdHVhbCBjaGFuZ2VzLlxuXG4tIFRBUkdFVCBTUEVDSUZJQyBGRUFUVVJFIExPR0lDIEFORCBFTlRSWVBPSU5UUzpcbiAgTGlzdCBmdW5jdGlvbnMgdGhhdCBzcGVjaWZpY2FsbHkgaW1wbGVtZW50IHRoZSBsb2dpYyBiZWluZyBhZGRlZCBvciBhbHRlcmVkLCBvciBkaXJlY3QgQVBJIGVudHJ5cG9pbnRzXG4gIGZvciB0aGUgc3Vic3lzdGVtIGZlYXR1cmUgdW5kZXIgcmV2aWV3LlxuXG4tIEhBTkRMSU5HIFNUQVRJQyBJTkxJTkUgRlVOQ1RJT05TIElOIEhFQURFUlMgKC5oKTpcbiAgQ29tcGlsZXItaW5saW5lZCBzdGF0aWMgZnVuY3Rpb25zIChzdWNoIGFzIHN0YXRpYyBpbmxpbmVzIGluIG1tLyouaCBvciBpbmNsdWRlL2xpbnV4LyouaCkgbGFja1xuICBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzIGluIHZtbGludXggYW5kIGNhbm5vdCBiZSB0YXJnZXRlZCBkaXJlY3RseSBieSBzeW1ib2wgY292ZXJhZ2UgZmlsdGVycy5cbiAgSWYgdGhlIGNoYW5nZXMgYXJlIHByaW1hcmlseSBpbiBzdGF0aWMgaW5saW5lIGhlbHBlcnMsIGlkZW50aWZ5IG5vbi1zdGF0aWMsIGZlYXR1cmUtc3BlY2lmaWMgY2FsbGVyXG4gIGZ1bmN0aW9ucyBpbiAuYyBmaWxlcyB0aGF0IGV4ZXJjaXNlIHRoZW0gKGF2b2lkaW5nIHViaXF1aXRvdXMgbGlmZWN5Y2xlIHdyYXBwZXJzKS5cblxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbjUuIElERU5USUZZSU5HIEVuYWJsZUNvbmZpZ3Ncbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5JZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IGNvbXBpbGUgYW5kIHJlYWNoIHRoZSBtb2RpZmllZCBjb2RlOlxuLSBJbnNwZWN0IEtjb25maWcgZmlsZXMgYW5kICNpZmRlZiBndWFyZHM7IGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLlxuLSBDaGVjayBcImRlcGVuZHMgb25cIiBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3MgbmVlZGVkLlxuLSBTdHJpcCBhbnkgJ0NPTkZJR18nIHByZWZpeCAoZS5nLiwgcmV0dXJuIFwiTkVUX0lQVjRcIiBpbnN0ZWFkIG9mIFwiQ09ORklHX05FVF9JUFY0XCIpLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiVGFyZ2V0IGFyY2hpdGVjdHVyZTogYW1kNjRcblxuRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgNTg1ZjA5NmM0ODZmZmM4MDNmZDc2ODQwYjExZTg2MjVkODBjMjk0NlxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBGcmkgU2VwIDExIDA2OjMyOjAyIDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbWFjLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tYWMuY1xuaW5kZXggMWNiYTM4MWE3OGI4Mi4uZTI0ZGQ1MzA0ODZjNCAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21hYy5jXG4rKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tYWMuY1xuQEAgLTEwNTcsNyArMTA1Nyw3IEBAIGludCBtdDc5OTZfdHhfcHJlcGFyZV9za2Ioc3RydWN0IG10NzZfZGV2ICptZGV2LCB2b2lkICp0eHdpX3B0cixcbiBcdGlmICghd2NpZClcbiBcdFx0d2NpZCA9IFx1MDAyNmRldi1cdTAwM2VtdDc2Lmdsb2JhbF93Y2lkO1xuIFxuLVx0aWYgKChpc184MDIzIHx8IGllZWU4MDIxMV9pc19kYXRhX3FvcyhoZHItXHUwMDNlZnJhbWVfY29udHJvbCkpIFx1MDAyNlx1MDAyNiBzdGEtXHUwMDNlbWxvIFx1MDAyNlx1MDAyNlxuK1x0aWYgKHN0YSBcdTAwMjZcdTAwMjYgKGlzXzgwMjMgfHwgaWVlZTgwMjExX2lzX2RhdGFfcW9zKGhkci1cdTAwM2VmcmFtZV9jb250cm9sKSkgXHUwMDI2XHUwMDI2IHN0YS1cdTAwM2VtbG8gXHUwMDI2XHUwMDI2XG4gXHQgICAgbGlrZWx5KHR4X2luZm8tXHUwMDNlc2tiLVx1MDAzZXByb3RvY29sICE9IGNwdV90b19iZTE2KEVUSF9QX1BBRSkpKSB7XG4gXHRcdHU4IHRpZCA9IHR4X2luZm8tXHUwMDNlc2tiLVx1MDAzZXByaW9yaXR5IFx1MDAyNiBJRUVFODAyMTFfUU9TX0NUTF9USURfTUFTSztcbiBcbkBAIC0xMDk3LDcgKzEwOTcsNyBAQCBpbnQgbXQ3OTk2X3R4X3ByZXBhcmVfc2tiKHN0cnVjdCBtdDc2X2RldiAqbWRldiwgdm9pZCAqdHh3aV9wdHIsXG4gXHQgKiBjb21wYXRpYmxlIHdpdGggODAyLjExIEVBUE9MIGZyYW1lLCB3ZSBkbyB0aGUgdHJhbnNsYXRpb24gYnlcbiBcdCAqIHNvZnR3YXJlXG4gXHQgKi9cbi1cdGlmICh0eF9pbmZvLVx1MDAzZXNrYi1cdTAwM2Vwcm90b2NvbCA9PSBjcHVfdG9fYmUxNihFVEhfUF9QQUUpIFx1MDAyNlx1MDAyNiBzdGEtXHUwMDNlbWxvKSB7XG4rXHRpZiAoc3RhIFx1MDAyNlx1MDAyNiB0eF9pbmZvLVx1MDAzZXNrYi1cdTAwM2Vwcm90b2NvbCA9PSBjcHVfdG9fYmUxNihFVEhfUF9QQUUpIFx1MDAyNlx1MDAyNiBzdGEtXHUwMDNlbWxvKSB7XG4gXHRcdHN0cnVjdCBpZWVlODAyMTFfaGRyICpoZHIgPSAodm9pZCAqKXR4X2luZm8tXHUwMDNlc2tiLVx1MDAzZWRhdGE7XG4gXHRcdHN0cnVjdCBpZWVlODAyMTFfYnNzX2NvbmYgKmxpbmtfY29uZjtcbiBcdFx0c3RydWN0IGllZWU4MDIxMV9saW5rX3N0YSAqbGlua19zdGE7XG4iLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOS0xMVQwNjozMjowMy44NjM0MjQ0ODdaIiwiU2VxIjozLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuNy1mbGFzaCIsIkR1cmF0aW9uIjo3NzEwMDIwMDM1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyBhIE5ldHdvcmsgRHJpdmVyIFBhdGNoKipcblxuQWxyaWdodCwgbGV0J3MgZGl2ZSBpbnRvIHRoaXMgcGF0Y2guIE15IGltbWVkaWF0ZSB0aG91Z2h0IGlzIHRvIHVuZGVyc3RhbmQgdGhlIGNvbnRleHQsIHNvIEkgc2VlIHRoZSBjaGFuZ2VzIGFyZSB3aXRoaW4gYGRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21hYy5jYC4gT2theSwgdGhhdCdzIE1lZGlhVGVrJ3MgTVQ3OTk2IHdpcmVsZXNzIGRyaXZlcjsgZ290IGl0LiBOb3csIHRoZSBkaWZmIGl0c2VsZiBzaG93cyB0d28gaW5zdGFuY2VzIG9mIHdoYXQgbG9va3MgbGlrZSBhZGRlZCBgc3RhYCBjaGVja3MgYmVmb3JlIGFjY2Vzc2luZyBgc3RhLVx1MDAzZW1sb2AuIFNwZWNpZmljYWxseSB0aGUgbGluZXMgYXJlIHdpdGhpbiB0aGUgZnVuY3Rpb24gYG10Nzk5Nl90eF9wcmVwYXJlX3NrYmAuIEl0J3MgYSBmYWlybHkgc3RyYWlnaHRmb3J3YXJkIGNoYW5nZTsgaXQgYWRkcyBhIG51bGwgcG9pbnRlciBjaGVjayBmb3IgYHN0YWAgYmVmb3JlIGRlcmVmZXJlbmNpbmcgaXQgaW4gdHdvIGBpZmAgc3RhdGVtZW50cy5cblxuTXkgaW1tZWRpYXRlIHJlYWN0aW9uIGlzIHRoYXQgdGhpcyBpcyBsaWtlbHkgYSBnb29kIHRoaW5nIC0gZGVmZW5zaXZlIHByb2dyYW1taW5nIGFnYWluc3QgYSBwb3RlbnRpYWwgbnVsbCBwb2ludGVyIGRlcmVmZXJlbmNlLiBUaGUgYHN0YWAgdmFyaWFibGUgaXMgbGlrZWx5IGEgcG9pbnRlciB0byBhIHN0YXRpb24gZW50cnksIGFuZCB3aXRob3V0IHRoaXMgY2hlY2ssIHdlIGNvdWxkIGhhdmUgYSBjcmFzaCBpZiBpdCdzIHNvbWVob3cgbnVsbCBpbiB0aG9zZSBjb2RlIHBhdGhzLiBUaGUgYWRkaXRpb24gb2YgdGhlIGBzdGFgIGNoZWNrIG1ha2VzIHRoaXMgY29kZSBtdWNoIG1vcmUgcm9idXN0LCByZWdhcmRsZXNzIG9mIHRoZSBgaXNfODAyM2Agb3IgYGllZWU4MDIxMV9pc19kYXRhX3Fvc2AgY29uZGl0aW9ucywgb3IgdGhlIGBFVEhfUF9QQUVgIHByb3RvY29sIGJlaW5nIG1ldC5cblxuTm93LCB0byBiZSB0aG9yb3VnaCwgSSdkIHdhbnQgdG8gcXVpY2tseSBjb25maXJtIHdoYXQgdGhlIG10Nzk5NiBkcml2ZXIgaXMuIElzIHRoaXMgYSBQQ0llIGRldmljZSwgYSBzeXN0ZW0tb24tYS1jaGlwIChTb0MpIGludGVncmF0aW9uLCBVU0IsIG9yIHNvbWV0aGluZyBlbHNlIGxpa2UgbWFjODAyMTFfaHdzaW0/IEknbGwgcHJvYmFibHkganVzdCBnbGFuY2UgYXQgdGhlIHN1cnJvdW5kaW5nIGZpbGVzIGluIGBkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9gIGFuZCB0aGUgS2NvbmZpZyB0byBjb25maXJtIGl0cyBhcmNoaXRlY3R1cmUgYW5kIHVuZGVyc3RhbmQgYW55IHJlbGV2YW50IGRlcGVuZGVuY2llcyBvciBudWFuY2VzLiBUaGVuLCBJIGNhbiBtYWtlIGEganVkZ2VtZW50IG9uIGhvdyBjcml0aWNhbCB0aGlzIGlzLCBidXQgaXQncyBwcm9iYWJseSBwcmV0dHkgaW1wb3J0YW50LlxuXG5cbiIsIklucHV0VG9rZW5zIjozMjQ2LCJPdXRwdXRUb2tlbnMiOjQ0LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MzExLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMTFUMDY6MzI6MTEuNTczNDQ3ODgyWiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjUxNTU3NTQ5LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIm10Nzk5NlwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiXFxuRnVsbCBvdXRwdXQgaXMgdG9vIGxvbmcsIHNob3dpbmcgNTAwIG91dCBvZiA2NjE4IGxpbmVzLlxcblVzZSBtb3JlIHByZWNpc2UgZXhwcmVzc2lvbiBpZiBwb3NzaWJsZS5cXG5cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9NYWtlZmlsZS0yLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L01ha2VmaWxlOjM6b2JqLSQoQ09ORklHX01UNzk5NkUpICs9IG10Nzk5NmUub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L01ha2VmaWxlLTQtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvTWFrZWZpbGU6NTptdDc5OTZlLXkgOj0gcGNpLm8gaW5pdC5vIGRtYS5vIGVlcHJvbS5vIG1haW4ubyBtY3UubyBtYWMubyBcXFxcXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvTWFrZWZpbGUtNi1cXHQgICAgIGRlYnVnZnMubyBtbWlvLm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9NYWtlZmlsZS03LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L01ha2VmaWxlOjg6bXQ3OTk2ZS0kKENPTkZJR19NVDc5OTZfTlBVKSArPSBucHUub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L01ha2VmaWxlOjk6bXQ3OTk2ZS0kKENPTkZJR19ERVZfQ09SRURVTVApICs9IGNvcmVkdW1wLm9cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmM9MTI9TU9EVUxFX1BBUk1fREVTQyhjb3JlZHVtcF9tZW1kdW1wLCBcXFwiT3B0aW9uYWwgYWJpbGl0eSB0byBkdW1wIGZpcm13YXJlIG1lbW9yeVxcXCIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmMtMTMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYzoxNDpzdGF0aWMgY29uc3Qgc3RydWN0IG10Nzk5Nl9tZW1fcmVnaW9uIG10Nzk5Nl9tZW1fcmVnaW9uc1tdID0ge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmMtMTUtXFx0e1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYy00Ni1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jOjQ3OmNvbnN0IHN0cnVjdCBtdDc5OTZfbWVtX3JlZ2lvbipcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jOjQ4Om10Nzk5Nl9jb3JlZHVtcF9nZXRfbWVtX2xheW91dChzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2LCB1MzIgKm51bSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jLTQ5LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmMtNTItXFx0Y2FzZSBNVDc5OTZfREVWSUNFX0lEXzI6XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYzo1MzpcXHRcXHQqbnVtID0gQVJSQVlfU0laRShtdDc5OTZfbWVtX3JlZ2lvbnMpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmM6NTQ6XFx0XFx0cmV0dXJuIFxcdTAwMjZtdDc5OTZfbWVtX3JlZ2lvbnNbMF07XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYy01NS1cXHRkZWZhdWx0Olxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYy01OS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jOjYwOnN0YXRpYyBpbnQgbXQ3OTk2X2NvcmVkdW1wX2dldF9tZW1fc2l6ZShzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmMtNjEte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmM6NjI6XFx0Y29uc3Qgc3RydWN0IG10Nzk5Nl9tZW1fcmVnaW9uICptZW1fcmVnaW9uO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmMtNjMtXFx0c2l6ZV90IHNpemUgPSAwO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYy02Ni1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jOjY3OlxcdG1lbV9yZWdpb24gPSBtdDc5OTZfY29yZWR1bXBfZ2V0X21lbV9sYXlvdXQoZGV2LCBcXHUwMDI2bnVtKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jLTY4LVxcdGlmICghbWVtX3JlZ2lvbilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmMtNzYtXFx0LyogcmVzZXJ2ZSBzcGFjZSBmb3IgdGhlIGhlYWRlcnMgKi9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jOjc3OlxcdHNpemUgKz0gbnVtICogc2l6ZW9mKHN0cnVjdCBtdDc5OTZfbWVtX2hkcik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYy03OC1cXHQvKiBtYWtlIHN1cmUgaXQgaXMgYWxpZ25lZCA0IGJ5dGVzIGZvciBkZWJ1ZyBtZXNzYWdlIHByaW50IG91dCAqL1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYy04My1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jOjg0OnN0cnVjdCBtdDc5OTZfY3Jhc2hfZGF0YSAqbXQ3OTk2X2NvcmVkdW1wX25ldyhzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmMtODUte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmM6ODY6XFx0c3RydWN0IG10Nzk5Nl9jcmFzaF9kYXRhICpjcmFzaF9kYXRhID0gZGV2LVxcdTAwM2Vjb3JlZHVtcC5jcmFzaF9kYXRhO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmMtODctXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jPTEwMD1zdGF0aWMgdm9pZFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmM6MTAxOm10Nzk5Nl9jb3JlZHVtcF9md19zdGF0ZShzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2LCBzdHJ1Y3QgbXQ3OTk2X2NvcmVkdW1wICpkdW1wLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmMtMTAyLVxcdFxcdFxcdCBib29sICpleGNlcHRpb24pXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jPTExNz1zdGF0aWMgdm9pZFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmM6MTE4Om10Nzk5Nl9jb3JlZHVtcF9md19zdGFjayhzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2LCBzdHJ1Y3QgbXQ3OTk2X2NvcmVkdW1wICpkdW1wLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmMtMTE5LVxcdFxcdFxcdCBib29sIGV4Y2VwdGlvbilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmMtMTYxLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmM6MTYyOnN0YXRpYyBzdHJ1Y3QgbXQ3OTk2X2NvcmVkdW1wICptdDc5OTZfY29yZWR1bXBfYnVpbGQoc3RydWN0IG10Nzk5Nl9kZXYgKmRldilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jLTE2My17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYzoxNjQ6XFx0c3RydWN0IG10Nzk5Nl9jcmFzaF9kYXRhICpjcmFzaF9kYXRhID0gZGV2LVxcdTAwM2Vjb3JlZHVtcC5jcmFzaF9kYXRhO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmM6MTY1OlxcdHN0cnVjdCBtdDc5OTZfY29yZWR1bXAgKmR1bXA7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYzoxNjY6XFx0c3RydWN0IG10Nzk5Nl9jb3JlZHVtcF9tZW0gKmR1bXBfbWVtO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmMtMTY3LVxcdHNpemVfdCBsZW4sIHNvZmFyID0gMCwgaGRyX2xlbiA9IHNpemVvZigqZHVtcCk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jLTE4Ni1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jOjE4NzpcXHRkdW1wID0gKHN0cnVjdCBtdDc5OTZfY29yZWR1bXAgKikoYnVmKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jLTE4OC1cXHRkdW1wLVxcdTAwM2VsZW4gPSBsZW47XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jLTIwMC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jOjIwMTpcXHRtdDc5OTZfY29yZWR1bXBfZndfc3RhdGUoZGV2LCBkdW1wLCBcXHUwMDI2ZXhjZXB0aW9uKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jOjIwMjpcXHRtdDc5OTZfY29yZWR1bXBfZndfc3RhY2soZGV2LCBkdW1wLCBleGNlcHRpb24pO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmMtMjAzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmMtMjA0LVxcdC8qIGdhdGhlciBtZW1vcnkgY29udGVudCAqL1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmM6MjA1OlxcdGR1bXBfbWVtID0gKHN0cnVjdCBtdDc5OTZfY29yZWR1bXBfbWVtICopKGJ1ZiArIHNvZmFyKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jLTIwNi1cXHRkdW1wX21lbS1cXHUwMDNlbGVuID0gY3Jhc2hfZGF0YS1cXHUwMDNlbWVtZHVtcF9idWZfbGVuO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYy0yMTUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYzoyMTY6aW50IG10Nzk5Nl9jb3JlZHVtcF9zdWJtaXQoc3RydWN0IG10Nzk5Nl9kZXYgKmRldilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jLTIxNy17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYzoyMTg6XFx0c3RydWN0IG10Nzk5Nl9jb3JlZHVtcCAqZHVtcDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jLTIxOS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jOjIyMDpcXHRkdW1wID0gbXQ3OTk2X2NvcmVkdW1wX2J1aWxkKGRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYy0yMjEtXFx0aWYgKCFkdW1wKSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jLTIzMC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jOjIzMTppbnQgbXQ3OTk2X2NvcmVkdW1wX3JlZ2lzdGVyKHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYy0yMzIte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmM6MjMzOlxcdHN0cnVjdCBtdDc5OTZfY3Jhc2hfZGF0YSAqY3Jhc2hfZGF0YTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jLTIzNC1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmMtMjQxLVxcdGlmIChjb3JlZHVtcF9tZW1kdW1wKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYzoyNDI6XFx0XFx0Y3Jhc2hfZGF0YS1cXHUwMDNlbWVtZHVtcF9idWZfbGVuID0gbXQ3OTk2X2NvcmVkdW1wX2dldF9tZW1fc2l6ZShkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmMtMjQzLVxcdFxcdGlmICghY3Jhc2hfZGF0YS1cXHUwMDNlbWVtZHVtcF9idWZfbGVuKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYy0yNTYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuYzoyNTc6dm9pZCBtdDc5OTZfY29yZWR1bXBfdW5yZWdpc3RlcihzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmMtMjU4LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmgtNi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5oOjc6I2luY2x1ZGUgXFxcIm10Nzk5Ni5oXFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmgtOC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5oOjk6c3RydWN0IG10Nzk5Nl9jb3JlZHVtcCB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuaC0xMC1cXHRjaGFyIG1hZ2ljWzE2XTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmgtMzktXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuaDo0MDpzdHJ1Y3QgbXQ3OTk2X2NvcmVkdW1wX21lbSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuaC00MS1cXHR1MzIgbGVuO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuaC00NC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5oOjQ1OnN0cnVjdCBtdDc5OTZfbWVtX2hkciB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuaC00Ni1cXHR1MzIgc3RhcnQ7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5oLTUwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmg6NTE6c3RydWN0IG10Nzk5Nl9tZW1fcmVnaW9uIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5oLTUyLVxcdHUzMiBzdGFydDtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmgtNTktXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuaDo2MDpjb25zdCBzdHJ1Y3QgbXQ3OTk2X21lbV9yZWdpb24gKlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmg6NjE6bXQ3OTk2X2NvcmVkdW1wX2dldF9tZW1fbGF5b3V0KHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYsIHUzMiAqbnVtKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5oOjYyOnN0cnVjdCBtdDc5OTZfY3Jhc2hfZGF0YSAqbXQ3OTk2X2NvcmVkdW1wX25ldyhzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5oOjYzOmludCBtdDc5OTZfY29yZWR1bXBfc3VibWl0KHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmg6NjQ6aW50IG10Nzk5Nl9jb3JlZHVtcF9yZWdpc3RlcihzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5oOjY1OnZvaWQgbXQ3OTk2X2NvcmVkdW1wX3VucmVnaXN0ZXIoc3RydWN0IG10Nzk5Nl9kZXYgKmRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuaC02Ni1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmgtNjgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuaDo2OTpzdGF0aWMgaW5saW5lIGNvbnN0IHN0cnVjdCBtdDc5OTZfbWVtX3JlZ2lvbiAqXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuaDo3MDptdDc5OTZfY29yZWR1bXBfZ2V0X21lbV9sYXlvdXQoc3RydWN0IG10Nzk5Nl9kZXYgKmRldiwgdTMyICpudW0pXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuaC03MS17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5oLTc0LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmg6NzU6c3RhdGljIGlubGluZSBpbnQgbXQ3OTk2X2NvcmVkdW1wX3N1Ym1pdChzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmgtNzYte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuaD04MD1zdGF0aWMgaW5saW5lIHN0cnVjdFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmg6ODE6bXQ3OTk2X2NyYXNoX2RhdGEgKm10Nzk5Nl9jb3JlZHVtcF9uZXcoc3RydWN0IG10Nzk5Nl9kZXYgKmRldilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5oLTgyLXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmgtODUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuaDo4NjpzdGF0aWMgaW5saW5lIGludCBtdDc5OTZfY29yZWR1bXBfcmVnaXN0ZXIoc3RydWN0IG10Nzk5Nl9kZXYgKmRldilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5oLTg3LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmgtOTAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvY29yZWR1bXAuaDo5MTpzdGF0aWMgaW5saW5lIHZvaWQgbXQ3OTk2X2NvcmVkdW1wX3VucmVnaXN0ZXIoc3RydWN0IG10Nzk5Nl9kZXYgKmRldilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5oLTkyLXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy02LSNpbmNsdWRlIFxcdTAwM2NsaW51eC9yZWxheS5oXFx1MDAzZVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo3OiNpbmNsdWRlIFxcXCJtdDc5OTYuaFxcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtOC0jaW5jbHVkZSBcXFwiZWVwcm9tLmhcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM9MjM9c3RhdGljIGludFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzoyNDptdDc5OTZfaW1wbGljaXRfdHhiZl9zZXQodm9pZCAqZGF0YSwgdTY0IHZhbClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtMjUte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzoyNjpcXHRzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2ID0gZGF0YTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtMjctXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtMzItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjMzOlxcdHJldHVybiBtdDc5OTZfbWN1X3NldF90eGJmKGRldiwgQkZfSFdfRU5fVVBEQVRFKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtMzQtfVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jPTM2PXN0YXRpYyBpbnRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6Mzc6bXQ3OTk2X2ltcGxpY2l0X3R4YmZfZ2V0KHZvaWQgKmRhdGEsIHU2NCAqdmFsKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy0zOC17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjM5OlxcdHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYgPSBkYXRhO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy00MC1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy00NS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6NDY6REVGSU5FX0RFQlVHRlNfQVRUUklCVVRFKGZvcHNfaW1wbGljaXRfdHhiZiwgbXQ3OTk2X2ltcGxpY2l0X3R4YmZfZ2V0LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo0NzpcXHRcXHRcXHQgbXQ3OTk2X2ltcGxpY2l0X3R4YmZfc2V0LCBcXFwiJWxsZFxcXFxuXFxcIik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTQ4LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jPTUwPXN0YXRpYyBzc2l6ZV90XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjUxOm10Nzk5Nl9zeXNfcmVjb3Zlcnlfc2V0KHN0cnVjdCBmaWxlICpmaWxlLCBjb25zdCBjaGFyIF9fdXNlciAqdXNlcl9idWYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTUyLVxcdFxcdFxcdHNpemVfdCBjb3VudCwgbG9mZl90ICpwcG9zKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy01My17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjU0OlxcdHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYgPSBmaWxlLVxcdTAwM2Vwcml2YXRlX2RhdGE7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTU1LVxcdGNoYXIgYnVmWzE2XSwgKnNlcDtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy05MS1cXHRjYXNlIFVOSV9DTURfU0VSX1FVRVJZOlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo5MjpcXHRcXHRyZXQgPSBtdDc5OTZfbWN1X3NldF9zZXIoZGV2LCBVTklfQ01EX1NFUl9RVUVSWSwgMCwgYmFuZCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTkzLVxcdFxcdGJyZWFrO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTEwMC1cXHRjYXNlIFVOSV9DTURfU0VSX1NFVF9SRUNPVkVSX0w0X01EUDpcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6MTAxOlxcdFxcdHJldCA9IG10Nzk5Nl9tY3Vfc2V0X3NlcihkZXYsIFVOSV9DTURfU0VSX1NFVCwgQklUKHZhbCksIGJhbmQpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy0xMDItXFx0XFx0aWYgKHJldClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy0xMDQtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjEwNTpcXHRcXHRyZXQgPSBtdDc5OTZfbWN1X3NldF9zZXIoZGV2LCBVTklfQ01EX1NFUl9UUklHR0VSLCB2YWwsIGJhbmQpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy0xMDYtXFx0XFx0YnJlYWs7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtMTExLVxcdFxcdGRldi1cXHUwMDNlcmVjb3Zlcnkuc3RhdGUgfD0gTVRfTUNVX0NNRF9XRFRfTUFTSztcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6MTEyOlxcdFxcdG10Nzk5Nl9yZXNldChkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy0xMTMtXFx0XFx0YnJlYWs7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtMTE2LVxcdGNhc2UgVU5JX0NNRF9TRVJfU0VUX1NZU1RFTV9BU1NFUlQ6XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjExNzpcXHRcXHRyZXQgPSBtdDc5OTZfbWN1X3RyaWdnZXJfYXNzZXJ0KGRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTExOC1cXHRcXHRpZiAocmV0KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jPTEyOD1zdGF0aWMgc3NpemVfdFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzoxMjk6bXQ3OTk2X3N5c19yZWNvdmVyeV9nZXQoc3RydWN0IGZpbGUgKmZpbGUsIGNoYXIgX191c2VyICp1c2VyX2J1ZixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtMTMwLVxcdFxcdFxcdHNpemVfdCBjb3VudCwgbG9mZl90ICpwcG9zKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy0xMzEte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzoxMzI6XFx0c3RydWN0IG10Nzk5Nl9kZXYgKmRldiA9IGZpbGUtXFx1MDAzZXByaXZhdGVfZGF0YTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtMTMzLVxcdGNoYXIgKmJ1ZmY7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtMjE0LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzoyMTU6c3RhdGljIGNvbnN0IHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgbXQ3OTk2X3N5c19yZWNvdmVyeV9vcHMgPSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjIxNjpcXHQud3JpdGUgPSBtdDc5OTZfc3lzX3JlY292ZXJ5X3NldCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6MjE3OlxcdC5yZWFkID0gbXQ3OTk2X3N5c19yZWNvdmVyeV9nZXQsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTIxOC1cXHQub3BlbiA9IHNpbXBsZV9vcGVuLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jPTIyMj1zdGF0aWMgaW50XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjIyMzptdDc5OTZfcmFkYXJfdHJpZ2dlcih2b2lkICpkYXRhLCB1NjQgdmFsKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy0yMjQte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTIyNi0jZGVmaW5lIFJBREFSX0JBQ0tHUk9VTkRcXHQyXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjIyNzpcXHRzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2ID0gZGF0YTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6MjI4OlxcdHN0cnVjdCBtdDc5OTZfcGh5ICpwaHkgPSBtdDc5OTZfYmFuZF9waHkoZGV2LCBOTDgwMjExX0JBTkRfNUdIWik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTIyOS1cXHRzdHJ1Y3QgY2ZnODAyMTFfY2hhbl9kZWYgKmNoYW5kZWY7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtMjQ3LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzoyNDg6XFx0cmRkX2lkeCA9IG10Nzk5Nl9nZXRfcmRkX2lkeChwaHksIHZhbCA9PSBSQURBUl9CQUNLR1JPVU5EKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtMjQ5LVxcdGlmIChyZGRfaWR4IFxcdTAwM2MgMCkge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTI1OC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6MjU5OlxcdHJldHVybiBtdDc5OTZfbWN1X3JkZF9jbWQoZGV2LCBSRERfUkFEQVJfRU1VTEFURSwgcmRkX2lkeCwgMCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTI2MC19XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM9MjYyPURFRklORV9ERUJVR0ZTX0FUVFJJQlVURShmb3BzX3JhZGFyX3RyaWdnZXIsIE5VTEwsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjI2MzpcXHRcXHRcXHQgbXQ3OTk2X3JhZGFyX3RyaWdnZXIsIFxcXCIlbGxkXFxcXG5cXFwiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtMjY0LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYz0yNjU9c3RhdGljIGludFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzoyNjY6bXQ3OTk2X3JkZF9tb25pdG9yKHN0cnVjdCBzZXFfZmlsZSAqcywgdm9pZCAqZGF0YSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtMjY3LXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6MjY4OlxcdHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYgPSBkZXZfZ2V0X2RydmRhdGEocy1cXHUwMDNlcHJpdmF0ZSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTI2OS1cXHRzdHJ1Y3QgY2ZnODAyMTFfY2hhbl9kZWYgKmNoYW5kZWYgPSBcXHUwMDI2ZGV2LVxcdTAwM2VyZGQyX2NoYW5kZWY7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM9MzEyPXN0YXRpYyBpbnRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6MzEzOm10Nzk5Nl9md19kZWJ1Z193bV9zZXQodm9pZCAqZGF0YSwgdTY0IHZhbClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtMzE0LXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6MzE1OlxcdHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYgPSBkYXRhO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy0zMTYtXFx0ZW51bSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtMzM3LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzozMzg6XFx0cmV0ID0gbXQ3OTk2X21jdV9md19sb2dfMl9ob3N0KGRldiwgTUNVX0ZXX0xPR19XTSwgdmFsKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtMzM5LVxcdGlmIChyZXQpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtMzUwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzozNTE6XFx0XFx0cmV0ID0gbXQ3OTk2X21jdV9md19kYmdfY3RybChkZXYsIGRlYnVnLCB2YWwpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy0zNTItXFx0XFx0aWYgKHJldClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYz0zNTk9c3RhdGljIGludFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzozNjA6bXQ3OTk2X2Z3X2RlYnVnX3dtX2dldCh2b2lkICpkYXRhLCB1NjQgKnZhbClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtMzYxLXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6MzYyOlxcdHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYgPSBkYXRhO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy0zNjMtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtMzY4LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzozNjk6REVGSU5FX0RFQlVHRlNfQVRUUklCVVRFKGZvcHNfZndfZGVidWdfd20sIG10Nzk5Nl9md19kZWJ1Z193bV9nZXQsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjM3MDpcXHRcXHRcXHQgbXQ3OTk2X2Z3X2RlYnVnX3dtX3NldCwgXFxcIiVsbGRcXFxcblxcXCIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy0zNzEtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jPTM3Mj1zdGF0aWMgaW50XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjM3MzptdDc5OTZfZndfZGVidWdfd2Ffc2V0KHZvaWQgKmRhdGEsIHU2NCB2YWwpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTM3NC17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjM3NTpcXHRzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2ID0gZGF0YTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtMzc2LVxcdGludCByZXQ7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtMzc5LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzozODA6XFx0cmV0ID0gbXQ3OTk2X21jdV9md19sb2dfMl9ob3N0KGRldiwgTUNVX0ZXX0xPR19XQSwgZGV2LVxcdTAwM2Vmd19kZWJ1Z193YSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTM4MS1cXHRpZiAocmV0KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTM4My1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6Mzg0OlxcdHJldHVybiBtdDc5OTZfbWN1X3dhX2NtZChkZXYsIE1DVV9XQV9QQVJBTV9DTUQoU0VUKSwgTUNVX1dBX1BBUkFNX1BETUFfUlgsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTM4NS1cXHRcXHRcXHRcXHQgISFkZXYtXFx1MDAzZWZ3X2RlYnVnX3dhLCAwKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYz0zODg9c3RhdGljIGludFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzozODk6bXQ3OTk2X2Z3X2RlYnVnX3dhX2dldCh2b2lkICpkYXRhLCB1NjQgKnZhbClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtMzkwLXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6MzkxOlxcdHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYgPSBkYXRhO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy0zOTItXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtMzk3LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzozOTg6REVGSU5FX0RFQlVHRlNfQVRUUklCVVRFKGZvcHNfZndfZGVidWdfd2EsIG10Nzk5Nl9md19kZWJ1Z193YV9nZXQsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjM5OTpcXHRcXHRcXHQgbXQ3OTk2X2Z3X2RlYnVnX3dhX3NldCwgXFxcIiVsbGRcXFxcblxcXCIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy00MDAtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM9NDI1PXN0YXRpYyBpbnRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6NDI2Om10Nzk5Nl9md19kZWJ1Z19iaW5fc2V0KHZvaWQgKmRhdGEsIHU2NCB2YWwpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTQyNy17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNDMxLVxcdH07XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjQzMjpcXHRzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2ID0gZGF0YTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNDMzLVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTQ0My1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6NDQ0OlxcdHJldHVybiBtdDc5OTZfZndfZGVidWdfd21fc2V0KGRldiwgZGV2LVxcdTAwM2Vmd19kZWJ1Z193bSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTQ0NS19XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM9NDQ3PXN0YXRpYyBpbnRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6NDQ4Om10Nzk5Nl9md19kZWJ1Z19iaW5fZ2V0KHZvaWQgKmRhdGEsIHU2NCAqdmFsKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy00NDkte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo0NTA6XFx0c3RydWN0IG10Nzk5Nl9kZXYgKmRldiA9IGRhdGE7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTQ1MS1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy00NTYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjQ1NzpERUZJTkVfREVCVUdGU19BVFRSSUJVVEUoZm9wc19md19kZWJ1Z19iaW4sIG10Nzk5Nl9md19kZWJ1Z19iaW5fZ2V0LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo0NTg6XFx0XFx0XFx0IG10Nzk5Nl9md19kZWJ1Z19iaW5fc2V0LCBcXFwiJWxsZFxcXFxuXFxcIik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTQ1OS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM9NDYwPXN0YXRpYyBpbnRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6NDYxOm10Nzk5Nl9md191dGlsX3dhX3Nob3coc3RydWN0IHNlcV9maWxlICpmaWxlLCB2b2lkICpkYXRhKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy00NjIte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo0NjM6XFx0c3RydWN0IG10Nzk5Nl9kZXYgKmRldiA9IGZpbGUtXFx1MDAzZXByaXZhdGU7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTQ2NC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNDY1LVxcdGlmIChkZXYtXFx1MDAzZWZ3X2RlYnVnX3dhKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo0NjY6XFx0XFx0cmV0dXJuIG10Nzk5Nl9tY3Vfd2FfY21kKGRldiwgTUNVX1dBX1BBUkFNX0NNRChRVUVSWSksXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTQ2Ny1cXHRcXHRcXHRcXHRcXHQgTUNVX1dBX1BBUkFNX0NQVV9VVElMLCAwLCAwKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy00NzEtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjQ3MjpERUZJTkVfU0hPV19BVFRSSUJVVEUobXQ3OTk2X2Z3X3V0aWxfd2EpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy00NzMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jPTQ3ND1zdGF0aWMgdm9pZFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo0NzU6bXQ3OTk2X2FtcGR1X3N0YXRfcmVhZF9waHkoc3RydWN0IG10Nzk5Nl9waHkgKnBoeSwgc3RydWN0IHNlcV9maWxlICpmaWxlKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy00NzYte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo0Nzc6XFx0c3RydWN0IG10Nzk5Nl9kZXYgKmRldiA9IHBoeS1cXHUwMDNlZGV2O1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy00NzgtXFx0aW50IGJvdW5kWzE1XSwgcmFuZ2VbOF0sIGk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM9NTA0PXN0YXRpYyB2b2lkXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjUwNTptdDc5OTZfdHhiZl9zdGF0X3JlYWRfcGh5KHN0cnVjdCBtdDc5OTZfcGh5ICpwaHksIHN0cnVjdCBzZXFfZmlsZSAqcylcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNTA2LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYz01NTI9c3RhdGljIHZvaWRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6NTUzOm10Nzk5Nl90eF9zdGF0c19zaG93X3BoeShzdHJ1Y3Qgc2VxX2ZpbGUgKmZpbGUsIHN0cnVjdCBtdDc5OTZfcGh5ICpwaHkpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTU1NC17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNTU4LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo1NTk6XFx0bXQ3OTk2X21hY191cGRhdGVfc3RhdHMocGh5KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6NTYwOlxcdG10Nzk5Nl9hbXBkdV9zdGF0X3JlYWRfcGh5KHBoeSwgZmlsZSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTU2MS1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy01NjgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjU2OTpcXHRtdDc5OTZfdHhiZl9zdGF0X3JlYWRfcGh5KHBoeSwgZmlsZSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTU3MC1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYz01ODQ9c3RhdGljIGludFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo1ODU6bXQ3OTk2X3R4X3N0YXRzX3Nob3coc3RydWN0IHNlcV9maWxlICpmaWxlLCB2b2lkICpkYXRhKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy01ODYte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo1ODc6XFx0c3RydWN0IG10Nzk5Nl9kZXYgKmRldiA9IGZpbGUtXFx1MDAzZXByaXZhdGU7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjU4ODpcXHRzdHJ1Y3QgbXQ3OTk2X3BoeSAqcGh5ID0gXFx1MDAyNmRldi1cXHUwMDNlcGh5O1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy01ODktXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNTkxLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo1OTI6XFx0bXQ3OTk2X3R4X3N0YXRzX3Nob3dfcGh5KGZpbGUsIHBoeSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjU5MzpcXHRwaHkgPSBtdDc5OTZfcGh5MihkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy01OTQtXFx0aWYgKHBoeSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6NTk1OlxcdFxcdG10Nzk5Nl90eF9zdGF0c19zaG93X3BoeShmaWxlLCBwaHkpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo1OTY6XFx0cGh5ID0gbXQ3OTk2X3BoeTMoZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNTk3LVxcdGlmIChwaHkpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjU5ODpcXHRcXHRtdDc5OTZfdHhfc3RhdHNfc2hvd19waHkoZmlsZSwgcGh5KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNTk5LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTYwNC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6NjA1OkRFRklORV9TSE9XX0FUVFJJQlVURShtdDc5OTZfdHhfc3RhdHMpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy02MDYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jPTYwNz1zdGF0aWMgdm9pZFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo2MDg6bXQ3OTk2X2h3X3F1ZXVlX3JlYWQoc3RydWN0IHNlcV9maWxlICpzLCB1MzIgc2l6ZSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNjA5LVxcdFxcdCAgICAgY29uc3Qgc3RydWN0IGh3X3F1ZXVlX21hcCAqbWFwKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy02MTAte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo2MTE6XFx0c3RydWN0IG10Nzk5Nl9waHkgKnBoeSA9IHMtXFx1MDAzZXByaXZhdGU7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjYxMjpcXHRzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2ID0gcGh5LVxcdTAwM2VkZXY7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTYxMy1cXHR1MzIgaSwgdmFsO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jPTYzOD1zdGF0aWMgdm9pZFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo2Mzk6bXQ3OTk2X3N0YV9od19xdWV1ZV9yZWFkKHZvaWQgKmRhdGEsIHN0cnVjdCBpZWVlODAyMTFfc3RhICpzdGEpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTY0MC17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjY0MTpcXHRzdHJ1Y3QgbXQ3OTk2X3N0YSAqbXN0YSA9IChzdHJ1Y3QgbXQ3OTk2X3N0YSAqKXN0YS1cXHUwMDNlZHJ2X3ByaXY7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjY0MjpcXHRzdHJ1Y3QgbXQ3OTk2X3ZpZiAqbXZpZiA9IG1zdGEtXFx1MDAzZXZpZjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6NjQzOlxcdHN0cnVjdCBtdDc5OTZfcGh5ICpwaHkgPSBtdDc5OTZfdmlmX2xpbmtfcGh5KFxcdTAwMjZtdmlmLVxcdTAwM2VkZWZsaW5rKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNjQ0LVxcdHN0cnVjdCBpZWVlODAyMTFfbGlua19zdGEgKmxpbmtfc3RhO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTY0Ni1cXHRzdHJ1Y3QgaWVlZTgwMjExX3ZpZiAqdmlmO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo2NDc6XFx0c3RydWN0IG10Nzk5Nl9kZXYgKmRldjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNjQ4LVxcdHVuc2lnbmVkIGludCBsaW5rX2lkO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTY1OC1cXHRmb3JfZWFjaF9zdGFfYWN0aXZlX2xpbmsodmlmLCBzdGEsIGxpbmtfc3RhLCBsaW5rX2lkKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjY1OTpcXHRcXHRzdHJ1Y3QgbXQ3OTk2X3N0YV9saW5rICptc3RhX2xpbms7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTY2MC1cXHRcXHRzdHJ1Y3QgbXQ3Nl92aWZfbGluayAqbWxpbms7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNjY2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo2Njc6XFx0XFx0bXN0YV9saW5rID0gbXQ3OTk2X3N0YV9saW5rKG1zdGEsIGxpbmtfaWQpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy02NjgtXFx0XFx0aWYgKCFtc3RhX2xpbmspXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM9Njk0PXN0YXRpYyBpbnRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6Njk1Om10Nzk5Nl9od19xdWV1ZXNfc2hvdyhzdHJ1Y3Qgc2VxX2ZpbGUgKmZpbGUsIHZvaWQgKmRhdGEpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTY5Ni17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjY5NzpcXHRzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2ID0gZmlsZS1cXHUwMDNlcHJpdmF0ZTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6Njk4OlxcdHN0cnVjdCBtdDc5OTZfcGh5ICpwaHkgPSBcXHUwMDI2ZGV2LVxcdTAwM2VwaHk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTY5OS1cXHRzdGF0aWMgY29uc3Qgc3RydWN0IGh3X3F1ZXVlX21hcCBwbGVfcXVldWVfbWFwW10gPSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNzQ3LVxcdHNlcV9wdXRzKGZpbGUsIFxcXCJQTEUgbm9uLWVtcHR5IHF1ZXVlIGluZm86XFxcXG5cXFwiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6NzQ4OlxcdG10Nzk5Nl9od19xdWV1ZV9yZWFkKGZpbGUsIEFSUkFZX1NJWkUocGxlX3F1ZXVlX21hcCksXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTc0OS1cXHRcXHRcXHQgICAgIFxcdTAwMjZwbGVfcXVldWVfbWFwWzBdKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy03NTItXFx0aWVlZTgwMjExX2l0ZXJhdGVfc3RhdGlvbnNfYXRvbWljKHBoeS1cXHUwMDNlbXQ3Ni1cXHUwMDNlaHcsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjc1MzpcXHRcXHRcXHRcXHRcXHQgIG10Nzk5Nl9zdGFfaHdfcXVldWVfcmVhZCwgZmlsZSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjc1NDpcXHRwaHkgPSBtdDc5OTZfcGh5MihkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy03NTUtXFx0aWYgKHBoeSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNzU2LVxcdFxcdGllZWU4MDIxMV9pdGVyYXRlX3N0YXRpb25zX2F0b21pYyhwaHktXFx1MDAzZW10NzYtXFx1MDAzZWh3LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo3NTc6XFx0XFx0XFx0XFx0XFx0XFx0ICBtdDc5OTZfc3RhX2h3X3F1ZXVlX3JlYWQsIGZpbGUpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo3NTg6XFx0cGh5ID0gbXQ3OTk2X3BoeTMoZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNzU5LVxcdGlmIChwaHkpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTc2MC1cXHRcXHRpZWVlODAyMTFfaXRlcmF0ZV9zdGF0aW9uc19hdG9taWMocGh5LVxcdTAwM2VtdDc2LVxcdTAwM2VodyxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6NzYxOlxcdFxcdFxcdFxcdFxcdFxcdCAgbXQ3OTk2X3N0YV9od19xdWV1ZV9yZWFkLCBmaWxlKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNzYyLVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTc2NC1cXHRzZXFfcHV0cyhmaWxlLCBcXFwiUFNFIG5vbi1lbXB0eSBxdWV1ZSBpbmZvOlxcXFxuXFxcIik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjc2NTpcXHRtdDc5OTZfaHdfcXVldWVfcmVhZChmaWxlLCBBUlJBWV9TSVpFKHBzZV9xdWV1ZV9tYXApLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy03NjYtXFx0XFx0XFx0ICAgICBcXHUwMDI2cHNlX3F1ZXVlX21hcFswXSk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtNzcwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo3NzE6REVGSU5FX1NIT1dfQVRUUklCVVRFKG10Nzk5Nl9od19xdWV1ZXMpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy03NzItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jPTc3Mz1zdGF0aWMgaW50XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjc3NDptdDc5OTZfeG1pdF9xdWV1ZXNfc2hvdyhzdHJ1Y3Qgc2VxX2ZpbGUgKmZpbGUsIHZvaWQgKmRhdGEpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTc3NS17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjc3NjpcXHRzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2ID0gZmlsZS1cXHUwMDNlcHJpdmF0ZTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6Nzc3OlxcdHN0cnVjdCBtdDc5OTZfcGh5ICpwaHk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTc3OC1cXHRzdHJ1Y3Qge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTc5MC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6NzkxOlxcdHBoeSA9IG10Nzk5Nl9waHkyKGRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTc5Mi1cXHRpZiAocGh5KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTc5NC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6Nzk1OlxcdHBoeSA9IG10Nzk5Nl9waHkzKGRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTc5Ni1cXHRpZiAocGh5KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTgxMy1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6ODE0OkRFRklORV9TSE9XX0FUVFJJQlVURShtdDc5OTZfeG1pdF9xdWV1ZXMpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy04MTUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jPTgxNj1zdGF0aWMgaW50XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjgxNzptdDc5OTZfdHd0X3N0YXRzKHN0cnVjdCBzZXFfZmlsZSAqcywgdm9pZCAqZGF0YSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtODE4LXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6ODE5OlxcdHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYgPSBkZXZfZ2V0X2RydmRhdGEocy1cXHUwMDNlcHJpdmF0ZSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjgyMDpcXHRzdHJ1Y3QgbXQ3OTk2X3R3dF9mbG93ICppdGVyO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy04MjEtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM9ODQ1PXN0YXRpYyBpbnRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6ODQ2Om10Nzk5Nl9yZl9yZWd2YWxfZ2V0KHZvaWQgKmRhdGEsIHU2NCAqdmFsKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy04NDcte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo4NDg6XFx0c3RydWN0IG10Nzk5Nl9kZXYgKmRldiA9IGRhdGE7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTg0OS1cXHR1MzIgcmVndmFsO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTg1MS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6ODUyOlxcdHJldCA9IG10Nzk5Nl9tY3VfcmZfcmVndmFsKGRldiwgZGV2LVxcdTAwM2VtdDc2LmRlYnVnZnNfcmVnLCBcXHUwMDI2cmVndmFsLCBmYWxzZSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTg1My1cXHRpZiAocmV0KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jPTg2MT1zdGF0aWMgaW50XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjg2MjptdDc5OTZfcmZfcmVndmFsX3NldCh2b2lkICpkYXRhLCB1NjQgdmFsKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy04NjMte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo4NjQ6XFx0c3RydWN0IG10Nzk5Nl9kZXYgKmRldiA9IGRhdGE7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTg2NS1cXHR1MzIgdmFsMzIgPSB2YWw7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTg2Ni1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6ODY3OlxcdHJldHVybiBtdDc5OTZfbWN1X3JmX3JlZ3ZhbChkZXYsIGRldi1cXHUwMDNlbXQ3Ni5kZWJ1Z2ZzX3JlZywgXFx1MDAyNnZhbDMyLCB0cnVlKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtODY4LX1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtODY5LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo4NzA6REVGSU5FX0RFQlVHRlNfQVRUUklCVVRFKGZvcHNfcmZfcmVndmFsLCBtdDc5OTZfcmZfcmVndmFsX2dldCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6ODcxOlxcdFxcdFxcdCBtdDc5OTZfcmZfcmVndmFsX3NldCwgXFxcIjB4JTA4bGx4XFxcXG5cXFwiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtODcyLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo4NzM6aW50IG10Nzk5Nl9pbml0X2RlYnVnZnMoc3RydWN0IG10Nzk5Nl9kZXYgKmRldilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtODc0LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy04NzktXFx0ZGVidWdmc19jcmVhdGVfZmlsZShcXFwiaHctcXVldWVzXFxcIiwgMDQwMCwgZGlyLCBkZXYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjg4MDpcXHRcXHRcXHQgICAgXFx1MDAyNm10Nzk5Nl9od19xdWV1ZXNfZm9wcyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTg4MS1cXHRkZWJ1Z2ZzX2NyZWF0ZV9maWxlKFxcXCJ4bWl0LXF1ZXVlc1xcXCIsIDA0MDAsIGRpciwgZGV2LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo4ODI6XFx0XFx0XFx0ICAgIFxcdTAwMjZtdDc5OTZfeG1pdF9xdWV1ZXNfZm9wcyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjg4MzpcXHRkZWJ1Z2ZzX2NyZWF0ZV9maWxlKFxcXCJ0eF9zdGF0c1xcXCIsIDA0MDAsIGRpciwgZGV2LCBcXHUwMDI2bXQ3OTk2X3R4X3N0YXRzX2ZvcHMpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy04ODQtXFx0ZGVidWdmc19jcmVhdGVfZmlsZShcXFwic3lzX3JlY292ZXJ5XFxcIiwgMDYwMCwgZGlyLCBkZXYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjg4NTpcXHRcXHRcXHQgICAgXFx1MDAyNm10Nzk5Nl9zeXNfcmVjb3Zlcnlfb3BzKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtODg2LVxcdGRlYnVnZnNfY3JlYXRlX2ZpbGUoXFxcImZ3X2RlYnVnX3dtXFxcIiwgMDYwMCwgZGlyLCBkZXYsIFxcdTAwMjZmb3BzX2Z3X2RlYnVnX3dtKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy04OTAtXFx0ZGVidWdmc19jcmVhdGVfZmlsZShcXFwiZndfdXRpbF93YVxcXCIsIDA0MDAsIGRpciwgZGV2LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo4OTE6XFx0XFx0XFx0ICAgIFxcdTAwMjZtdDc5OTZfZndfdXRpbF93YV9mb3BzKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtODkyLVxcdGRlYnVnZnNfY3JlYXRlX2ZpbGUoXFxcImltcGxpY2l0X3R4YmZcXFwiLCAwNjAwLCBkaXIsIGRldixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy04OTQtXFx0ZGVidWdmc19jcmVhdGVfZGV2bV9zZXFmaWxlKGRldi1cXHUwMDNlbXQ3Ni5kZXYsIFxcXCJ0d3Rfc3RhdHNcXFwiLCBkaXIsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjg5NTpcXHRcXHRcXHRcXHQgICAgbXQ3OTk2X3R3dF9zdGF0cyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTg5Ni1cXHRkZWJ1Z2ZzX2NyZWF0ZV9maWxlKFxcXCJyZl9yZWd2YWxcXFwiLCAwNjAwLCBkaXIsIGRldiwgXFx1MDAyNmZvcHNfcmZfcmVndmFsKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy05MDEtXFx0ZGVidWdmc19jcmVhdGVfZGV2bV9zZXFmaWxlKGRldi1cXHUwMDNlbXQ3Ni5kZXYsIFxcXCJyZGRfbW9uaXRvclxcXCIsIGRpcixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6OTAyOlxcdFxcdFxcdFxcdCAgICBtdDc5OTZfcmRkX21vbml0b3IpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy05MDMtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM9OTA5PXN0YXRpYyB2b2lkXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjkxMDptdDc5OTZfZGVidWdmc193cml0ZV9md2xvZyhzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2LCBjb25zdCB2b2lkICpoZHIsIGludCBoZHJsZW4sXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTkxMS1cXHRcXHRcXHQgICBjb25zdCB2b2lkICpkYXRhLCBpbnQgbGVuKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTkzMy1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6OTM0OnZvaWQgbXQ3OTk2X2RlYnVnZnNfcnhfZndfbW9uaXRvcihzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2LCBjb25zdCB2b2lkICpkYXRhLCBpbnQgbGVuKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy05MzUte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTk1NS1cXHRoZHIubGVuID0gKihfX2xlMTYgKilkYXRhO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo5NTY6XFx0bXQ3OTk2X2RlYnVnZnNfd3JpdGVfZndsb2coZGV2LCBcXHUwMDI2aGRyLCBzaXplb2YoaGRyKSwgZGF0YSwgbGVuKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtOTU3LX1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtOTU4LVxcblxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOS0xMVQwNjozMjoxMS42MjUwMTA3NjFaIiwiU2VxIjo1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuNy1mbGFzaCIsIkR1cmF0aW9uIjo3NTUzOTc4NzA2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0czpcblxuKipOYXZpZ2F0aW5nIHRoZSBNZWRpYXRlayBXaXJlbGVzcyBMYW5kc2NhcGUqKlxuXG5Pa2F5LCBzbyBJIG5lZWQgdG8gZGl2ZSBpbnRvIHRoZSBNZWRpYXRlayB3aXJlbGVzcyBkcml2ZXIgY29kZSwgc3BlY2lmaWNhbGx5IHRoZSBgbXQ3NmAgZmFtaWx5LiBMZXQncyBzZWUgd2hhdCB0aGUgS2NvbmZpZyBmaWxlIGhhcyB0byBvZmZlci4gVGhpcyBmaWxlIGlzIHRoZSBrZXkgdG8gdW5kZXJzdGFuZGluZyB0aGUgY29uZmlndXJhdGlvbiBvcHRpb25zIGFuZCBkZXBlbmRlbmNpZXMgZm9yIHRoZXNlIGRyaXZlcnMuIEl0J3Mgd2hlcmUgdGhlIGtub2JzIGFyZSB0aGF0IEkgY2FuIHR1cm4gdG8gZW5hYmxlIG9yIGRpc2FibGUgZmVhdHVyZXMsIG1vZHVsZXMsIG9yIHN1cHBvcnQgZm9yIHNwZWNpZmljIGhhcmR3YXJlLiBJIG5lZWQgdG8gZmlndXJlIG91dCB3aGljaCBvcHRpb25zIGFyZSByZWxldmFudCB0byB0aGUgY3VycmVudCBwcm9ibGVtLiBUaGlzIHdpbGwgaGVscCB0byBpZGVudGlmeSB0aGUgc3BlY2lmaWMgY29uZmlndXJhdGlvbiBwYXJhbWV0ZXJzIEkgbWlnaHQgbmVlZCB0byBhZGp1c3QsIG9yIGV2ZW4gZGVidWcsIHRvIGdldCB0aGlzIE1lZGlhdGVrIHdpcmVsZXNzIHNldHVwIHdvcmtpbmcgYXMgZXhwZWN0ZWQuIFRoaXMgd2lsbCBiZSBteSBzdGFydGluZyBwb2ludCBmb3IgYSBkZWVwZXIgZGl2ZS5cblxuXG4iLCJJbnB1dFRva2VucyI6MjA4MjUsIk91dHB1dFRva2VucyI6MzcsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyMSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOS0xMVQwNjozMjoxOS4xNzg5OTMyMzdaIiwiU2VxIjo2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6OTM3NDQxNDksIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiTVQ3OTk2XCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzZcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiXFxuRnVsbCBvdXRwdXQgaXMgdG9vIGxvbmcsIHNob3dpbmcgNTAwIG91dCBvZiAxNTgyIGxpbmVzLlxcblVzZSBtb3JlIHByZWNpc2UgZXhwcmVzc2lvbiBpZiBwb3NzaWJsZS5cXG5cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L01ha2VmaWxlPTUwPW9iai0kKENPTkZJR19NVDc5MjFfQ09NTU9OKSArPSBtdDc5MjEvXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9NYWtlZmlsZTo1MTpvYmotJChDT05GSUdfTVQ3OTk2RSkgKz0gbXQ3OTk2L1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvTWFrZWZpbGUtNTItb2JqLSQoQ09ORklHX01UNzkyNV9DT01NT04pICs9IG10NzkyNS9cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L0tjb25maWctMS0jIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMy1DbGF1c2UtQ2xlYXJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9LY29uZmlnOjI6Y29uZmlnIE1UNzk5NkVcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9LY29uZmlnOjM6XFx0dHJpc3RhdGUgXFxcIk1lZGlhVGVrIE1UNzk5NiAoUENJZSkgc3VwcG9ydFxcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9LY29uZmlnLTQtXFx0c2VsZWN0IE1UNzZfQ09OTkFDX0xJQlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvS2NvbmZpZy05LVxcdGhlbHBcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9LY29uZmlnOjEwOlxcdCAgVGhpcyBhZGRzIHN1cHBvcnQgZm9yIE1UNzk5Ni1iYXNlZCBQQ0llIHdpcmVsZXNzIGRldmljZXMsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvS2NvbmZpZy0xMS1cXHQgIHdoaWNoIHN1cHBvcnQgY29uY3VycmVudCB0cmktYmFuZCBvcGVyYXRpb24gYXQgNkdIeiwgNUdIeixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L0tjb25maWctMTUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvS2NvbmZpZzoxNjpjb25maWcgTVQ3OTk2X05QVVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L0tjb25maWc6MTc6XFx0Ym9vbCBcXFwiTVQ3OTk2IChQQ0llKSBOUFUgc3VwcG9ydFxcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9LY29uZmlnOjE4OlxcdGRlcGVuZHMgb24gTVQ3OTk2RVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L0tjb25maWctMTktXFx0ZGVwZW5kcyBvbiBORVRfQUlST0hBX05QVT15IHx8IE1UNzZfQ09SRT1ORVRfQUlST0hBX05QVVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvTWFrZWZpbGUtMi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9NYWtlZmlsZTozOm9iai0kKENPTkZJR19NVDc5OTZFKSArPSBtdDc5OTZlLm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9NYWtlZmlsZS00LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L01ha2VmaWxlPTU9bXQ3OTk2ZS15IDo9IHBjaS5vIGluaXQubyBkbWEubyBlZXByb20ubyBtYWluLm8gbWN1Lm8gbWFjLm8gXFxcXFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvTWFrZWZpbGUtNy1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9NYWtlZmlsZTo4Om10Nzk5NmUtJChDT05GSUdfTVQ3OTk2X05QVSkgKz0gbnB1Lm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9NYWtlZmlsZS05LW10Nzk5NmUtJChDT05GSUdfREVWX0NPUkVEVU1QKSArPSBjb3JlZHVtcC5vXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jPTQ4PW10Nzk5Nl9jb3JlZHVtcF9nZXRfbWVtX2xheW91dChzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2LCB1MzIgKm51bSlcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmMtNTAtXFx0c3dpdGNoIChtdDc2X2NoaXAoXFx1MDAyNmRldi1cXHUwMDNlbXQ3NikpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jOjUxOlxcdGNhc2UgTVQ3OTk2X0RFVklDRV9JRDpcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9jb3JlZHVtcC5jOjUyOlxcdGNhc2UgTVQ3OTk2X0RFVklDRV9JRF8yOlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2NvcmVkdW1wLmMtNTMtXFx0XFx0Km51bSA9IEFSUkFZX1NJWkUobXQ3OTk2X21lbV9yZWdpb25zKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jPTQ2PXN0YXRpYyB2b2lkIG10Nzk5Nl9kbWFfY29uZmlnKHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy01OS1cXHQvKiByeCBxdWV1ZSAqL1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjYwOlxcdFJYUV9DT05GSUcoTVRfUlhRX01DVSwgV0ZETUEwLCBNVF9JTlRfUlhfRE9ORV9XTSwgTVQ3OTk2X1JYUV9NQ1VfV00pO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTYxLVxcdC8qIGZvciBtdDc5OTAsIFJYIHJpbmcgMSBpcyBmb3IgU0RPIGluc3RlYWQgKi9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzo2MjpcXHRSWFFfQ09ORklHKE1UX1JYUV9NQ1VfV0EsIFdGRE1BMCwgTVRfSU5UX1JYX0RPTkVfV0EsIE1UNzk5Nl9SWFFfTUNVX1dBKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzo2MzpcXHRSWFFfQ09ORklHKE1UX1JYUV9NQUlOLCBXRkRNQTAsIE1UX0lOVF9SWF9ET05FX0JBTkQwLCBNVDc5OTZfUlhRX0JBTkQwKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy02NC1cXHRpZiAobXQ3OTk2X2hhc193YShkZXYpKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTY1LVxcdFxcdFJYUV9DT05GSUcoTVRfUlhRX01BSU5fV0EsIFdGRE1BMCwgTVRfSU5UX1JYX0RPTkVfV0FfTUFJTixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzo2NjpcXHRcXHRcXHQgICBNVDc5OTZfUlhRX01DVV9XQV9NQUlOKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy02Ny1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTY5LVxcdGNhc2UgTVQ3OTkyX0RFVklDRV9JRDpcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzo3MDpcXHRcXHRSWFFfQ09ORklHKE1UX1JYUV9CQU5EMV9XQSwgV0ZETUEwLCBNVF9JTlRfUlhfRE9ORV9XQV9FWFQsIE1UNzk5Nl9SWFFfTUNVX1dBX0VYVCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6NzE6XFx0XFx0UlhRX0NPTkZJRyhNVF9SWFFfQkFORDEsIFdGRE1BMCwgTVRfSU5UX1JYX0RPTkVfQkFORDEsIE1UNzk5Nl9SWFFfQkFORDEpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTcyLVxcdFxcdGJyZWFrO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTczLVxcdGNhc2UgTVQ3OTkwX0RFVklDRV9JRDpcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzo3NDpcXHRcXHRSWFFfQ09ORklHKE1UX1JYUV9CQU5EMSwgV0ZETUEwLCBNVF9JTlRfUlhfRE9ORV9CQU5EMSwgTVQ3OTk2X1JYUV9CQU5EMSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtNzUtXFx0XFx0UlhRX0NPTkZJRyhNVF9SWFFfVFhGUkVFX0JBTkQwLCBXRkRNQTAsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy04MC1cXHRcXHRicmVhaztcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzo4MTpcXHRjYXNlIE1UNzk5Nl9ERVZJQ0VfSUQ6XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtODItXFx0ZGVmYXVsdDpcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy04My1cXHRcXHQvKiBtdDc5OTYgYmFuZDIgKi9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzo4NDpcXHRcXHRSWFFfQ09ORklHKE1UX1JYUV9CQU5EMl9XQSwgV0ZETUEwLCBNVF9JTlRfUlhfRE9ORV9XQV9UUkksIE1UNzk5Nl9SWFFfTUNVX1dBX1RSSSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6ODU6XFx0XFx0UlhRX0NPTkZJRyhNVF9SWFFfQkFORDIsIFdGRE1BMCwgTVRfSU5UX1JYX0RPTkVfQkFORDIsIE1UNzk5Nl9SWFFfQkFORDIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTg2LVxcdFxcdGJyZWFrO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtOTEtXFx0XFx0UlhRX0NPTkZJRyhNVF9SWFFfUlJPX0JBTkQwLCBXRkRNQTAsIE1UX0lOVF9SWF9ET05FX1JST19CQU5EMCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzo5MjpcXHRcXHRcXHQgICBNVDc5OTZfUlhRX1JST19CQU5EMCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtOTMtXFx0XFx0aWYgKGRldi1cXHUwMDNlbXQ3Ni5od3Jyb19tb2RlID09IE1UNzZfSFdSUk9fVjMpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy05NS1cXHRcXHRcXHRcXHQgICBNVF9JTlRfUlhfRE9ORV9NU0RVX1BHX0JBTkQwLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjk2OlxcdFxcdFxcdFxcdCAgIE1UNzk5Nl9SWFFfTVNEVV9QR19CQU5EMCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtOTctXFx0XFx0aWYgKGlzX210Nzk5NihcXHUwMDI2ZGV2LVxcdTAwM2VtdDc2KSkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTk4LVxcdFxcdFxcdFJYUV9DT05GSUcoTVRfUlhRX1RYRlJFRV9CQU5EMCwgV0ZETUEwLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjk5OlxcdFxcdFxcdFxcdCAgIE1UX0lOVF9SWF9UWEZSRUVfTUFJTiwgTVQ3OTk2X1JYUV9UWEZSRUUwKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy0xMDAtXFx0XFx0XFx0LyogYmFuZDEgKi9cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTEwMi1cXHRcXHRcXHRcXHQgICBNVF9JTlRfUlhfRE9ORV9NU0RVX1BHX0JBTkQxLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjEwMzpcXHRcXHRcXHRcXHQgICBNVDc5OTZfUlhRX01TRFVfUEdfQkFORDEpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTEwNC1cXHRcXHRcXHQvKiBiYW5kMiAqL1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtMTA2LVxcdFxcdFxcdFxcdCAgIE1UX0lOVF9SWF9ET05FX1JST19CQU5EMixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzoxMDc6XFx0XFx0XFx0XFx0ICAgTVQ3OTk2X1JYUV9SUk9fQkFORDIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTEwOC1cXHRcXHRcXHRSWFFfQ09ORklHKE1UX1JYUV9NU0RVX1BBR0VfQkFORDIsIFdGRE1BMCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy0xMDktXFx0XFx0XFx0XFx0ICAgTVRfSU5UX1JYX0RPTkVfTVNEVV9QR19CQU5EMixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzoxMTA6XFx0XFx0XFx0XFx0ICAgTVQ3OTk2X1JYUV9NU0RVX1BHX0JBTkQyKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy0xMTEtXFx0XFx0XFx0UlhRX0NPTkZJRyhNVF9SWFFfVFhGUkVFX0JBTkQyLCBXRkRNQTAsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6MTEyOlxcdFxcdFxcdFxcdCAgIE1UX0lOVF9SWF9UWEZSRUVfVFJJLCBNVDc5OTZfUlhRX1RYRlJFRTIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTExMy1cXHRcXHR9IGVsc2Uge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtMTE1LVxcdFxcdFxcdFxcdCAgIE1UX0lOVF9SWF9ET05FX1JST19CQU5EMSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzoxMTY6XFx0XFx0XFx0XFx0ICAgTVQ3OTk2X1JYUV9SUk9fQkFORDEpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTExNy1cXHRcXHR9XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy0xMjEtXFx0XFx0XFx0XFx0ICAgTVRfSU5UX1JYX0RPTkVfUlJPX0lORCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzoxMjI6XFx0XFx0XFx0XFx0ICAgTVQ3OTk2X1JYUV9SUk9fSU5EKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy0xMjMtXFx0XFx0ZWxzZVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtMTI1LVxcdFxcdFxcdFxcdCAgIE1UX0lOVF9SWF9ET05FX1JST19SWERNQURfQyxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzoxMjY6XFx0XFx0XFx0XFx0ICAgTVQ3OTk2X1JYUV9SUk9fUlhETUFEX0MpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTEyNy1cXHR9XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy0xMzMtXFx0XFx0XFx0XFx0VFhRX0NPTkZJRygwLCBXRkRNQTAsIE1UX0lOVF9UWF9ET05FX0JBTkQyLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjEzNDpcXHRcXHRcXHRcXHRcXHQgICBNVDc5OTZfVFhRX0JBTkQyKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy0xMzUtXFx0XFx0XFx0XFx0VFhRX0NPTkZJRygxLCBXRkRNQTAsIE1UX0lOVF9UWF9ET05FX0JBTkQwLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjEzNjpcXHRcXHRcXHRcXHRcXHQgICBNVDc5OTZfVFhRX0JBTkQwKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy0xMzctXFx0XFx0XFx0XFx0VFhRX0NPTkZJRygyLCBXRkRNQTAsIE1UX0lOVF9UWF9ET05FX0JBTkQxLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjEzODpcXHRcXHRcXHRcXHRcXHQgICBNVDc5OTZfVFhRX0JBTkQxKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy0xMzktXFx0XFx0XFx0fSBlbHNlIHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTE0MS1cXHRcXHRcXHRcXHRUWFFfQ09ORklHKDAsIFdGRE1BMCwgTVRfSU5UX1RYX0RPTkVfQkFORDAsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6MTQyOlxcdFxcdFxcdFxcdFxcdCAgIE1UNzk5Nl9UWFFfQkFORDApO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTE0My1cXHRcXHRcXHRcXHRUWFFfQ09ORklHKDEsIFdGRE1BMCwgTVRfSU5UX1RYX0RPTkVfQkFORDEsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6MTQ0OlxcdFxcdFxcdFxcdFxcdCAgIE1UNzk5Nl9UWFFfQkFORDEpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTE0NS1cXHRcXHRcXHRcXHRUWFFfQ09ORklHKDIsIFdGRE1BMCwgTVRfSU5UX1RYX0RPTkVfQkFORDIsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6MTQ2OlxcdFxcdFxcdFxcdFxcdCAgIE1UNzk5Nl9UWFFfQkFORDIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTE0Ny1cXHRcXHRcXHR9XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy0xNTAtXFx0XFx0XFx0VFhRX0NPTkZJRygwLCBXRkRNQTAsIE1UX0lOVF9UWF9ET05FX0JBTkQwLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjE1MTpcXHRcXHRcXHRcXHQgICBNVDc5OTZfVFhRX0JBTkQwKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy0xNTItXFx0XFx0XFx0VFhRX0NPTkZJRygyLCBXRkRNQTAsIE1UX0lOVF9UWF9ET05FX0JBTkQxLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjE1MzpcXHRcXHRcXHRcXHQgICBNVDc5OTZfVFhRX0JBTkQxKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy0xNTQtXFx0XFx0fVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtMTU4LVxcdFxcdFxcdFRYUV9DT05GSUcoMCwgV0ZETUEwLCBNVF9JTlRfVFhfRE9ORV9CQU5EMCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzoxNTk6XFx0XFx0XFx0XFx0ICAgTVQ3OTk2X1RYUV9CQU5EMCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtMTYwLVxcdFxcdFxcdFRYUV9DT05GSUcoMSwgV0ZETUEwLCBNVF9JTlRfVFhfRE9ORV9CQU5EMixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzoxNjE6XFx0XFx0XFx0XFx0ICAgTVQ3OTk2X1RYUV9CQU5EMik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtMTYyLVxcdFxcdH0gZWxzZSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy0xNjQtXFx0XFx0XFx0VFhRX0NPTkZJRygwLCBXRkRNQTAsIE1UX0lOVF9UWF9ET05FX0JBTkQwLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjE2NTpcXHRcXHRcXHRcXHQgICBNVDc5OTZfVFhRX0JBTkQwKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy0xNjYtXFx0XFx0XFx0VFhRX0NPTkZJRygxLCBXRkRNQTAsIE1UX0lOVF9UWF9ET05FX0JBTkQxLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjE2NzpcXHRcXHRcXHRcXHQgICBNVDc5OTZfVFhRX0JBTkQxKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy0xNjgtXFx0XFx0fVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtMTcxLVxcdC8qIG1jdSB0eCBxdWV1ZSAqL1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjE3MjpcXHRNQ1VRX0NPTkZJRyhNVF9NQ1VRX0ZXREwsIFdGRE1BMCwgTVRfSU5UX1RYX0RPTkVfRldETCwgTVQ3OTk2X1RYUV9GV0RMKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzoxNzM6XFx0TUNVUV9DT05GSUcoTVRfTUNVUV9XTSwgV0ZETUEwLCBNVF9JTlRfVFhfRE9ORV9NQ1VfV00sIE1UNzk5Nl9UWFFfTUNVX1dNKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy0xNzQtXFx0aWYgKG10Nzk5Nl9oYXNfd2EoZGV2KSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy0xNzUtXFx0XFx0TUNVUV9DT05GSUcoTVRfTUNVUV9XQSwgV0ZETUEwLCBNVF9JTlRfVFhfRE9ORV9NQ1VfV0EsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6MTc2OlxcdFxcdFxcdCAgICBNVDc5OTZfVFhRX01DVV9XQSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtMTc3LX1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jPTUyMT1pbnQgbXQ3OTk2X2RtYV9ycm9faW5pdChzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtNTM1LVxcdFxcdFxcdFxcdCAgICAgICBNVF9SWFFfSUQoTVRfUlhRX1JST19SWERNQURfQyksXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6NTM2OlxcdFxcdFxcdFxcdCAgICAgICBNVDc5OTZfUlhfUklOR19TSVpFLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjUzNzpcXHRcXHRcXHRcXHQgICAgICAgTVQ3OTk2X1JYX0JVRl9TSVpFLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTUzOC1cXHRcXHRcXHRcXHQgICAgICAgTVRfUlhRX1JST19BUF9SSU5HX0JBU0UpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtNTYxLVxcdFxcdFxcdCAgICAgICBNVF9SWFFfSUQoTVRfUlhRX1JST19JTkQpLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjU2MjpcXHRcXHRcXHQgICAgICAgTVQ3OTk2X1JYX1JJTkdfU0laRSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy01NjMtXFx0XFx0XFx0ICAgICAgIDAsIE1UX1JYUV9SUk9fSU5EX1JJTkdfQkFTRSk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy01NzQtXFx0c2l6ZSA9IGlzX210Nzk5NihtZGV2KSBcXHUwMDI2XFx1MDAyNiBtdDc2X25wdV9kZXZpY2VfYWN0aXZlKG1kZXYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6NTc1OlxcdCAgICAgICA/IE1UNzk5Nl9OUFVfUlhfUklOR19TSVpFIC8gNCA6IE1UNzk5Nl9SWF9SSU5HX1NJWkU7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtNTc2LVxcdHJldCA9IG10NzZfcXVldWVfYWxsb2MoZGV2LCBcXHUwMDI2bWRldi1cXHUwMDNlcV9yeFtNVF9SWFFfTVNEVV9QQUdFX0JBTkQwXSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy01NzctXFx0XFx0XFx0ICAgICAgIE1UX1JYUV9JRChNVF9SWFFfTVNEVV9QQUdFX0JBTkQwKSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzo1Nzg6XFx0XFx0XFx0ICAgICAgIHNpemUsIE1UNzk5Nl9SWF9NU0RVX1BBR0VfU0laRSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy01NzktXFx0XFx0XFx0ICAgICAgIE1UX1JYUV9SSU5HX0JBU0UoTVRfUlhRX01TRFVfUEFHRV9CQU5EMCkpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtNTkxLVxcdFxcdHNpemUgPSBpc19tdDc5OTYobWRldikgXFx1MDAyNlxcdTAwMjYgbXQ3Nl9ucHVfZGV2aWNlX2FjdGl2ZShtZGV2KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjU5MjpcXHRcXHQgICAgICAgPyBNVDc5OTZfTlBVX1JYX1JJTkdfU0laRSAvIDIgOiBNVDc5OTZfUlhfUklOR19TSVpFO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTU5My1cXHRcXHRyZXQgPSBtdDc2X3F1ZXVlX2FsbG9jKGRldiwgXFx1MDAyNm1kZXYtXFx1MDAzZXFfcnhbTVRfUlhRX01TRFVfUEFHRV9CQU5EMV0sXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtNTk0LVxcdFxcdFxcdFxcdCAgICAgICBNVF9SWFFfSUQoTVRfUlhRX01TRFVfUEFHRV9CQU5EMSksXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6NTk1OlxcdFxcdFxcdFxcdCAgICAgICBzaXplLCBNVDc5OTZfUlhfTVNEVV9QQUdFX1NJWkUsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtNTk2LVxcdFxcdFxcdFxcdCAgICAgICBNVF9SWFFfUklOR19CQVNFKE1UX1JYUV9NU0RVX1BBR0VfQkFORDEpKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTYwOS1cXHRcXHRzaXplID0gaXNfbXQ3OTk2KG1kZXYpIFxcdTAwMjZcXHUwMDI2IG10NzZfbnB1X2RldmljZV9hY3RpdmUobWRldilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzo2MTA6XFx0XFx0ICAgICAgID8gTVQ3OTk2X05QVV9SWF9SSU5HX1NJWkUgOiBNVDc5OTZfUlhfUklOR19TSVpFO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTYxMS1cXHRcXHRyZXQgPSBtdDc2X3F1ZXVlX2FsbG9jKGRldiwgXFx1MDAyNm1kZXYtXFx1MDAzZXFfcnhbTVRfUlhRX01TRFVfUEFHRV9CQU5EMl0sXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtNjEyLVxcdFxcdFxcdFxcdCAgICAgICBNVF9SWFFfSUQoTVRfUlhRX01TRFVfUEFHRV9CQU5EMiksXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6NjEzOlxcdFxcdFxcdFxcdCAgICAgICBzaXplLCBNVDc5OTZfUlhfTVNEVV9QQUdFX1NJWkUsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtNjE0LVxcdFxcdFxcdFxcdCAgICAgICBNVF9SWFFfUklOR19CQVNFKE1UX1JYUV9NU0RVX1BBR0VfQkFORDIpKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jPTY2ND1pbnQgbXQ3OTk2X2RtYV9pbml0KHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy02ODMtXFx0XFx0cmV0ID0gbXQ3OTk2X2luaXRfdHhfcXVldWVzKFxcdTAwMjZkZXYtXFx1MDAzZXBoeSwgTVRfVFhRX0lEKDApLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjY4NDpcXHRcXHRcXHRcXHRcXHQgICAgTVQ3OTk2X05QVV9UWF9SSU5HX1NJWkUsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtNjg1LVxcdFxcdFxcdFxcdFxcdCAgICBNVF9UWFFfUklOR19CQVNFKDApICsgaGlmMV9vZnMsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy02ODktXFx0XFx0XFx0XFx0XFx0ICAgIE1UX1RYUV9JRChkZXYtXFx1MDAzZW1waHkuYmFuZF9pZHgpLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjY5MDpcXHRcXHRcXHRcXHRcXHQgICAgTVQ3OTk2X1RYX1JJTkdfU0laRSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy02OTEtXFx0XFx0XFx0XFx0XFx0ICAgIE1UX1RYUV9SSU5HX0JBU0UoMCksIHdlZCk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy02OTctXFx0XFx0XFx0XFx0ICBNVF9NQ1VRX0lEKE1UX01DVVFfV00pLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjY5ODpcXHRcXHRcXHRcXHQgIE1UNzk5Nl9UWF9NQ1VfUklOR19TSVpFLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTY5OS1cXHRcXHRcXHRcXHQgIE1UX01DVVFfUklOR19CQVNFKE1UX01DVVFfV00pKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTcwNi1cXHRcXHRcXHRcXHRcXHQgIE1UX01DVVFfSUQoTVRfTUNVUV9XQSksXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6NzA3OlxcdFxcdFxcdFxcdFxcdCAgTVQ3OTk2X1RYX01DVV9SSU5HX1NJWkUsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtNzA4LVxcdFxcdFxcdFxcdFxcdCAgTVRfTUNVUV9SSU5HX0JBU0UoTVRfTUNVUV9XQSkpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtNzE1LVxcdFxcdFxcdFxcdCAgTVRfTUNVUV9JRChNVF9NQ1VRX0ZXREwpLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjcxNjpcXHRcXHRcXHRcXHQgIE1UNzk5Nl9UWF9GV0RMX1JJTkdfU0laRSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy03MTctXFx0XFx0XFx0XFx0ICBNVF9NQ1VRX1JJTkdfQkFTRShNVF9NQ1VRX0ZXREwpKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTcyMy1cXHRcXHRcXHQgICAgICAgTVRfUlhRX0lEKE1UX1JYUV9NQ1UpLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjcyNDpcXHRcXHRcXHQgICAgICAgTVQ3OTk2X1JYX01DVV9SSU5HX1NJWkUsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6NzI1OlxcdFxcdFxcdCAgICAgICBNVDc5OTZfUlhfTUNVX0JVRl9TSVpFLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTcyNi1cXHRcXHRcXHQgICAgICAgTVRfUlhRX1JJTkdfQkFTRShNVF9SWFFfTUNVKSk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy03MzItXFx0XFx0XFx0ICAgICAgIE1UX1JYUV9JRChNVF9SWFFfTUNVX1dBKSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzo3MzM6XFx0XFx0XFx0ICAgICAgIE1UNzk5Nl9SWF9NQ1VfUklOR19TSVpFX1dBLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjczNDpcXHRcXHRcXHQgICAgICAgTVQ3OTk2X1JYX01DVV9CVUZfU0laRSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy03MzUtXFx0XFx0XFx0ICAgICAgIE1UX1JYUV9SSU5HX0JBU0UoTVRfUlhRX01DVV9XQSkpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtNzQ2LVxcdFxcdFxcdCAgICAgICBNVF9SWFFfSUQoTVRfUlhRX01BSU4pLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjc0NzpcXHRcXHRcXHQgICAgICAgTVQ3OTk2X1JYX1JJTkdfU0laRSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy03NDgtXFx0XFx0XFx0ICAgICAgIE1UX1JYX0JVRl9TSVpFLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtNzY2LVxcdFxcdFxcdFxcdCAgICAgICBNVF9SWFFfSUQoTVRfUlhRX01BSU5fV0EpLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjc2NzpcXHRcXHRcXHRcXHQgICAgICAgTVQ3OTk2X1JYX01DVV9SSU5HX1NJWkUsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtNzY4LVxcdFxcdFxcdFxcdCAgICAgICBNVF9SWF9CVUZfU0laRSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTc3OC1cXHRcXHRcXHRcXHQgICAgICAgTVRfUlhRX0lEKE1UX1JYUV9UWEZSRUVfQkFORDApLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjc3OTpcXHRcXHRcXHRcXHQgICAgICAgTVQ3OTk2X1JYX01DVV9SSU5HX1NJWkUsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6NzgwOlxcdFxcdFxcdFxcdCAgICAgICBNVDc5OTZfUlhfQlVGX1NJWkUsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtNzgxLVxcdFxcdFxcdFxcdCAgICAgICBNVF9SWFFfUklOR19CQVNFKE1UX1JYUV9UWEZSRUVfQkFORDApKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTc5Mi1cXHRcXHRcXHRcXHQgICAgICAgTVRfUlhRX0lEKE1UX1JYUV9UWEZSRUVfQkFORDEpLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjc5MzpcXHRcXHRcXHRcXHQgICAgICAgTVQ3OTk2X1JYX01DVV9SSU5HX1NJWkUsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6Nzk0OlxcdFxcdFxcdFxcdCAgICAgICBNVDc5OTZfUlhfQlVGX1NJWkUsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtNzk1LVxcdFxcdFxcdFxcdCAgICAgICBNVF9SWFFfUklOR19CQVNFKE1UX1JYUV9UWEZSRUVfQkFORDEpKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTgwNC1cXHRcXHRcXHRcXHQgICAgICAgTVRfUlhRX0lEKE1UX1JYUV9CQU5EMiksXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6ODA1OlxcdFxcdFxcdFxcdCAgICAgICBNVDc5OTZfUlhfUklOR19TSVpFLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTgwNi1cXHRcXHRcXHRcXHQgICAgICAgTVRfUlhfQlVGX1NJWkUsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy04MjAtXFx0XFx0XFx0XFx0ICAgICAgIE1UX1JYUV9JRChNVF9SWFFfQkFORDJfV0EpLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjgyMTpcXHRcXHRcXHRcXHQgICAgICAgTVQ3OTk2X1JYX01DVV9SSU5HX1NJWkUsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtODIyLVxcdFxcdFxcdFxcdCAgICAgICBNVF9SWF9CVUZfU0laRSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTgzNS1cXHRcXHRcXHRcXHQgICAgICAgTVRfUlhRX0lEKE1UX1JYUV9CQU5EMSksXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6ODM2OlxcdFxcdFxcdFxcdCAgICAgICBNVDc5OTZfUlhfUklOR19TSVpFLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTgzNy1cXHRcXHRcXHRcXHQgICAgICAgTVRfUlhfQlVGX1NJWkUsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy04NTItXFx0XFx0XFx0XFx0XFx0ICAgICAgIE1UX1JYUV9JRChNVF9SWFFfQkFORDFfV0EpLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjg1MzpcXHRcXHRcXHRcXHRcXHQgICAgICAgTVQ3OTk2X1JYX01DVV9SSU5HX1NJWkUsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtODU0LVxcdFxcdFxcdFxcdFxcdCAgICAgICBNVF9SWF9CVUZfU0laRSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTg2OC1cXHRcXHRcXHRcXHQgICAgICAgTVRfUlhRX0lEKE1UX1JYUV9SUk9fQkFORDApLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjg2OTpcXHRcXHRcXHRcXHQgICAgICAgTVQ3OTk2X1JYX1JJTkdfU0laRSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzo4NzA6XFx0XFx0XFx0XFx0ICAgICAgIE1UNzk5Nl9SWF9CVUZfU0laRSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy04NzEtXFx0XFx0XFx0XFx0ICAgICAgIE1UX1JYUV9SSU5HX0JBU0UoTVRfUlhRX1JST19CQU5EMCkpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtODgzLVxcdFxcdFxcdFxcdFxcdCAgICAgICBNVF9SWFFfSUQoTVRfUlhRX1JST19CQU5EMSksXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6ODg0OlxcdFxcdFxcdFxcdFxcdCAgICAgICBNVDc5OTZfUlhfUklOR19TSVpFLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjg4NTpcXHRcXHRcXHRcXHRcXHQgICAgICAgTVQ3OTk2X1JYX0JVRl9TSVpFLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTg4Ni1cXHRcXHRcXHRcXHRcXHQgICAgICAgTVRfUlhRX1JJTkdfQkFTRShNVF9SWFFfUlJPX0JBTkQxKSArIGhpZjFfb2ZzKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTkwMC1cXHRcXHRcXHRcXHRcXHQgICAgICAgTVRfUlhRX0lEKE1UX1JYUV9UWEZSRUVfQkFORDApLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjkwMTpcXHRcXHRcXHRcXHRcXHQgICAgICAgTVQ3OTk2X1JYX01DVV9SSU5HX1NJWkUsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6OTAyOlxcdFxcdFxcdFxcdFxcdCAgICAgICBNVDc5OTZfUlhfQlVGX1NJWkUsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtOTAzLVxcdFxcdFxcdFxcdFxcdCAgICAgICBNVF9SWFFfUklOR19CQVNFKE1UX1JYUV9UWEZSRUVfQkFORDApKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTkxOS1cXHRcXHRcXHQgICAgICAgbXQ3Nl9ucHVfZGV2aWNlX2FjdGl2ZShcXHUwMDI2ZGV2LVxcdTAwM2VtdDc2KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjkyMDpcXHRcXHRcXHQgICAgICAgPyBNVDc5OTZfTlBVX1JYX1JJTkdfU0laRSA6IE1UNzk5Nl9SWF9SSU5HX1NJWkU7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtOTIxLVxcdFxcdFxcdHJldCA9IG10NzZfcXVldWVfYWxsb2MoZGV2LCBcXHUwMDI2ZGV2LVxcdTAwM2VtdDc2LnFfcnhbTVRfUlhRX1JST19CQU5EMl0sXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtOTIyLVxcdFxcdFxcdFxcdFxcdCAgICAgICBNVF9SWFFfSUQoTVRfUlhRX1JST19CQU5EMiksXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6OTIzOlxcdFxcdFxcdFxcdFxcdCAgICAgICBzaXplLCBNVDc5OTZfUlhfQlVGX1NJWkUsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtOTI0LVxcdFxcdFxcdFxcdFxcdCAgICAgICBNVF9SWFFfUklOR19CQVNFKE1UX1JYUV9SUk9fQkFORDIpICsgaGlmMV9vZnMpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtOTM0LVxcdFxcdFxcdFxcdFxcdCAgICAgICBNVF9SWFFfSUQoTVRfUlhRX1RYRlJFRV9CQU5EMiksXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6OTM1OlxcdFxcdFxcdFxcdFxcdCAgICAgICBNVDc5OTZfUlhfTUNVX1JJTkdfU0laRSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzo5MzY6XFx0XFx0XFx0XFx0XFx0ICAgICAgIE1UNzk5Nl9SWF9CVUZfU0laRSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy05MzctXFx0XFx0XFx0XFx0XFx0ICAgICAgIE1UX1JYUV9SSU5HX0JBU0UoTVRfUlhRX1RYRlJFRV9CQU5EMikgKyBoaWYxX29mcyk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9lZXByb20uYz0xMD1zdGF0aWMgaW50IG10Nzk5Nl9jaGVja19lZXByb20oc3RydWN0IG10Nzk5Nl9kZXYgKmRldilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2VlcHJvbS5jLTE1LVxcdHN3aXRjaCAodmFsKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmM6MTY6XFx0Y2FzZSBNVDc5OTZfREVWSUNFX0lEOlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2VlcHJvbS5jLTE3LVxcdFxcdHJldHVybiBpc19tdDc5OTYoXFx1MDAyNmRldi1cXHUwMDNlbXQ3NikgPyAwIDogLUVJTlZBTDtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2VlcHJvbS5jPTI3PXN0YXRpYyBjaGFyICptdDc5OTZfZWVwcm9tX25hbWUoc3RydWN0IG10Nzk5Nl9kZXYgKmRldilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2VlcHJvbS5jLTMyLVxcdFxcdGNhc2UgTVQ3OTkyX1ZBUl9UWVBFXzIzOlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2VlcHJvbS5jOjMzOlxcdFxcdFxcdGlmIChkZXYtXFx1MDAzZXZhci5mZW0gPT0gTVQ3OTk2X0ZFTV9JTlQpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmMtMzQtXFx0XFx0XFx0XFx0cmV0dXJuIE1UNzk5Ml9FRVBST01fREVGQVVMVF8yM19JTlQ7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9lZXByb20uYy0zOS1cXHRcXHRkZWZhdWx0OlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2VlcHJvbS5jOjQwOlxcdFxcdFxcdGlmIChkZXYtXFx1MDAzZXZhci5mZW0gPT0gTVQ3OTk2X0ZFTV9JTlQpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmMtNDEtXFx0XFx0XFx0XFx0cmV0dXJuIE1UNzk5Ml9FRVBST01fREVGQVVMVF9JTlQ7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmM6NDI6XFx0XFx0XFx0aWYgKGRldi1cXHUwMDNldmFyLmZlbSA9PSBNVDc5OTZfRkVNX01JWClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9lZXByb20uYy00My1cXHRcXHRcXHRcXHRyZXR1cm4gTVQ3OTkyX0VFUFJPTV9ERUZBVUxUX01JWDtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2VlcHJvbS5jLTQ2LVxcdGNhc2UgTVQ3OTkwX0RFVklDRV9JRDpcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9lZXByb20uYzo0NzpcXHRcXHRpZiAoZGV2LVxcdTAwM2V2YXIuZmVtID09IE1UNzk5Nl9GRU1fSU5UKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2VlcHJvbS5jLTQ4LVxcdFxcdFxcdHJldHVybiBNVDc5OTBfRUVQUk9NX0RFRkFVTFRfSU5UO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2VlcHJvbS5jLTQ5LVxcdFxcdHJldHVybiBNVDc5OTBfRUVQUk9NX0RFRkFVTFQ7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmM6NTA6XFx0Y2FzZSBNVDc5OTZfREVWSUNFX0lEOlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2VlcHJvbS5jLTUxLVxcdGRlZmF1bHQ6XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmMtNTItXFx0XFx0c3dpdGNoIChkZXYtXFx1MDAzZXZhci50eXBlKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmM6NTM6XFx0XFx0Y2FzZSBNVDc5OTZfVkFSX1RZUEVfMjMzOlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2VlcHJvbS5jOjU0OlxcdFxcdFxcdGlmIChkZXYtXFx1MDAzZXZhci5mZW0gPT0gTVQ3OTk2X0ZFTV9JTlQpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmM6NTU6XFx0XFx0XFx0XFx0cmV0dXJuIE1UNzk5Nl9FRVBST01fREVGQVVMVF8yMzNfSU5UO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2VlcHJvbS5jOjU2OlxcdFxcdFxcdHJldHVybiBNVDc5OTZfRUVQUk9NX0RFRkFVTFRfMjMzO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2VlcHJvbS5jOjU3OlxcdFxcdGNhc2UgTVQ3OTk2X1ZBUl9UWVBFXzQ0NDpcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9lZXByb20uYy01OC1cXHRcXHRkZWZhdWx0OlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2VlcHJvbS5jOjU5OlxcdFxcdFxcdGlmIChkZXYtXFx1MDAzZXZhci5mZW0gPT0gTVQ3OTk2X0ZFTV9JTlQpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmM6NjA6XFx0XFx0XFx0XFx0cmV0dXJuIE1UNzk5Nl9FRVBST01fREVGQVVMVF9JTlQ7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmM6NjE6XFx0XFx0XFx0cmV0dXJuIE1UNzk5Nl9FRVBST01fREVGQVVMVDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9lZXByb20uYy02Mi1cXHRcXHR9XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9lZXByb20uYz05OD1zdGF0aWMgYm9vbCBtdDc5OTZfZWVwcm9tX3ZhcmlhbnRfdmFsaWQoc3RydWN0IG10Nzk5Nl9kZXYgKmRldiwgY29uc3QgdTggKmRlZilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2VlcHJvbS5jLTEwOC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9lZXByb20uYzoxMDk6XFx0aWYgKGRldi1cXHUwMDNldmFyLmZlbSA9PSBNVDc5OTZfRkVNX0VYVCBcXHUwMDI2XFx1MDAyNlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2VlcHJvbS5jLTExMC1cXHQgICAgIShmZW1bMF0gPT0gRkVNX0VYVCBcXHUwMDI2XFx1MDAyNiBmZW1bMV0gPT0gRkVNX0VYVCkpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmMtMTExLVxcdFxcdHJldHVybiBmYWxzZTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9lZXByb20uYzoxMTI6XFx0ZWxzZSBpZiAoZGV2LVxcdTAwM2V2YXIuZmVtID09IE1UNzk5Nl9GRU1fSU5UIFxcdTAwMjZcXHUwMDI2XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmMtMTEzLVxcdFxcdCAhKGZlbVswXSA9PSBGRU1fSU5UIFxcdTAwMjZcXHUwMDI2IGZlbVsxXSA9PSBGRU1fSU5UKSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9lZXByb20uYy0xMTQtXFx0XFx0cmV0dXJuIGZhbHNlO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2VlcHJvbS5jOjExNTpcXHRlbHNlIGlmIChkZXYtXFx1MDAzZXZhci5mZW0gPT0gTVQ3OTk2X0ZFTV9NSVggXFx1MDAyNlxcdTAwMjZcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9lZXByb20uYy0xMTYtXFx0XFx0ICEoZmVtWzBdID09IEZFTV9JTlQgXFx1MDAyNlxcdTAwMjYgZmVtWzFdID09IEZFTV9FWFQpKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmM9MTM3PW10Nzk5Nl9lZXByb21fY2hlY2tfb3JfdXNlX2RlZmF1bHQoc3RydWN0IG10Nzk5Nl9kZXYgKmRldiwgYm9vbCB1c2VfZGVmYXVsdClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2VlcHJvbS5jLTE1Mi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9lZXByb20uYzoxNTM6XFx0aWYgKGZ3LVxcdTAwM2VzaXplIFxcdTAwM2MgTVQ3OTk2X0VFUFJPTV9TSVpFKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmMtMTU0LVxcdFxcdGRldl9lcnIoZGV2LVxcdTAwM2VtdDc2LmRldiwgXFxcIkludmFsaWQgZGVmYXVsdCBiaW4gc2l6ZVxcXFxuXFxcIik7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9lZXByb20uYy0xNjItXFx0ZGV2X3dhcm4oZGV2LVxcdTAwM2VtdDc2LmRldiwgXFxcImVlcHJvbSBsb2FkIGZhaWwsIHVzZSBkZWZhdWx0IGJpblxcXFxuXFxcIik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmM6MTYzOlxcdG1lbWNweShlZXByb20sIGZ3LVxcdTAwM2VkYXRhLCBNVDc5OTZfRUVQUk9NX1NJWkUpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2VlcHJvbS5jLTE2NC1cXHRkZXYtXFx1MDAzZWVlcHJvbV9tb2RlID0gRUVQUk9NX01PREVfREVGQVVMVF9CSU47XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9lZXByb20uYz0xNzI9c3RhdGljIGludCBtdDc5OTZfZWVwcm9tX2xvYWQoc3RydWN0IG10Nzk5Nl9kZXYgKmRldilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2VlcHJvbS5jLTE3Ny1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9lZXByb20uYzoxNzg6XFx0cmV0ID0gbXQ3Nl9lZXByb21faW5pdChcXHUwMDI2ZGV2LVxcdTAwM2VtdDc2LCBNVDc5OTZfRUVQUk9NX1NJWkUpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2VlcHJvbS5jLTE3OS1cXHRpZiAocmV0IFxcdTAwM2MgMClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2VlcHJvbS5jLTE4Ni1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9lZXByb20uYzoxODc6XFx0bWVtc2V0KGRldi1cXHUwMDNlbXQ3Ni5lZXByb20uZGF0YSwgMCwgTVQ3OTk2X0VFUFJPTV9TSVpFKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9lZXByb20uYy0xODgtXFx0aWYgKG10Nzk5Nl9oYXNfZXh0X2VlcHJvbShkZXYpKSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9lZXByb20uYy0xOTAtXFx0XFx0ZGV2LVxcdTAwM2VlZXByb21fbW9kZSA9IEVFUFJPTV9NT0RFX0VYVDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9lZXByb20uYzoxOTE6XFx0XFx0ZWVwcm9tX2Jsa19zaXplID0gTVQ3OTk2X0VYVF9FRVBST01fQkxPQ0tfU0laRTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9lZXByb20uYy0xOTItXFx0fSBlbHNlIHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2VlcHJvbS5jLTE5Ni1cXHRcXHRkZXYtXFx1MDAzZWVlcHJvbV9tb2RlID0gRUVQUk9NX01PREVfRUZVU0U7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmM6MTk3OlxcdFxcdGVlcHJvbV9ibGtfc2l6ZSA9IE1UNzk5Nl9FRVBST01fQkxPQ0tfU0laRTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9lZXByb20uYy0xOTgtXFx0XFx0cmV0ID0gbXQ3OTk2X21jdV9nZXRfZWZ1c2VfZnJlZV9ibG9jayhkZXYsIFxcdTAwMjZmcmVlX2Jsb2NrX251bSk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9lZXByb20uYy0yMTctXFx0LyogcmVhZCBlZXByb20gZGF0YSBmcm9tIGZ3ICovXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmM6MjE4OlxcdGJsb2NrX251bSA9IERJVl9ST1VORF9VUChNVDc5OTZfRUVQUk9NX1NJWkUsIGVlcHJvbV9ibGtfc2l6ZSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmMtMjE5LVxcdGZvciAoaSA9IDE7IGkgXFx1MDAzYyBibG9ja19udW07IGkrKykge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmMtMjIyLVxcdFxcdGlmIChpID09IGJsb2NrX251bSAtIDEpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmM6MjIzOlxcdFxcdFxcdGxlbiA9IE1UNzk5Nl9FRVBST01fU0laRSAlIGVlcHJvbV9ibGtfc2l6ZTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9lZXByb20uYy0yMjQtXFx0XFx0cmV0ID0gbXQ3OTk2X21jdV9nZXRfZWVwcm9tKGRldiwgaSAqIGVlcHJvbV9ibGtfc2l6ZSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2VlcHJvbS5jPTM5NT1ib29sIG10Nzk5Nl9lZXByb21faGFzX2JhY2tncm91bmRfcmFkYXIoc3RydWN0IG10Nzk5Nl9kZXYgKmRldilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2VlcHJvbS5jLTM5Ny1cXHRzd2l0Y2ggKG10NzZfY2hpcChcXHUwMDI2ZGV2LVxcdTAwM2VtdDc2KSkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2VlcHJvbS5jOjM5ODpcXHRjYXNlIE1UNzk5Nl9ERVZJQ0VfSUQ6XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmM6Mzk5OlxcdFxcdGlmIChkZXYtXFx1MDAzZXZhci50eXBlID09IE1UNzk5Nl9WQVJfVFlQRV8yMzMpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmMtNDAwLVxcdFxcdFxcdHJldHVybiBmYWxzZTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2VlcHJvbS5oLTUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmg6NjojaWZuZGVmIF9fTVQ3OTk2X0VFUFJPTV9IXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmg6NzojZGVmaW5lIF9fTVQ3OTk2X0VFUFJPTV9IXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZWVwcm9tLmgtOC1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYz0xNz1zdGF0aWMgY29uc3Qgc3RydWN0IGllZWU4MDIxMV9pZmFjZV9saW1pdCBpZl9saW1pdHNfZ2xvYmFsID0ge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYzoxODpcXHQubWF4ID0gTVQ3OTk2X01BWF9JTlRFUkZBQ0VTICogTVQ3OTk2X01BWF9SQURJT1MsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTE5LVxcdC50eXBlcyA9IEJJVChOTDgwMjExX0lGVFlQRV9TVEFUSU9OKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jPTI3PXN0YXRpYyBjb25zdCBzdHJ1Y3QgaWVlZTgwMjExX2lmYWNlX2NvbWJpbmF0aW9uIGlmX2NvbWJfZ2xvYmFsID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTI5LVxcdC5uX2xpbWl0cyA9IDEsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jOjMwOlxcdC5tYXhfaW50ZXJmYWNlcyA9IE1UNzk5Nl9NQVhfSU5URVJGQUNFUyAqIE1UNzk5Nl9NQVhfUkFESU9TLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYzozMTpcXHQubnVtX2RpZmZlcmVudF9jaGFubmVscyA9IE1UNzk5Nl9NQVhfUkFESU9TLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy0zMi1cXHQucmFkYXJfZGV0ZWN0X3dpZHRocyA9IEJJVChOTDgwMjExX0NIQU5fV0lEVEhfMjBfTk9IVCkgfFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jPTM5PXN0YXRpYyBjb25zdCBzdHJ1Y3QgaWVlZTgwMjExX2lmYWNlX2NvbWJpbmF0aW9uIGlmX2NvbWJfZ2xvYmFsXzc5OTIgPSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtNDItXFx0Lm1heF9pbnRlcmZhY2VzID0gMzIsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jOjQzOlxcdC5udW1fZGlmZmVyZW50X2NoYW5uZWxzID0gTVQ3OTk2X01BWF9SQURJT1MgLSAxLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy00NC1cXHQucmFkYXJfZGV0ZWN0X3dpZHRocyA9IEJJVChOTDgwMjExX0NIQU5fV0lEVEhfMjBfTk9IVCkgfFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jPTUxPXN0YXRpYyBjb25zdCBzdHJ1Y3QgaWVlZTgwMjExX2lmYWNlX2xpbWl0IGlmX2xpbWl0c1tdID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTU4LVxcdH0sIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM6NTk6XFx0XFx0Lm1heCA9IE1UNzk5Nl9NQVhfSU5URVJGQUNFUyxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtNjAtXFx0XFx0LnR5cGVzID0gQklUKE5MODAyMTFfSUZUWVBFX1NUQVRJT04pXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM9NjQ9c3RhdGljIGNvbnN0IHN0cnVjdCBpZWVlODAyMTFfaWZhY2VfY29tYmluYXRpb24gaWZfY29tYiA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy02Ni1cXHQubl9saW1pdHMgPSBBUlJBWV9TSVpFKGlmX2xpbWl0cyksXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jOjY3OlxcdC5tYXhfaW50ZXJmYWNlcyA9IE1UNzk5Nl9NQVhfSU5URVJGQUNFUyxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtNjgtXFx0Lm51bV9kaWZmZXJlbnRfY2hhbm5lbHMgPSAxLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jPTg0PXN0YXRpYyBjb25zdCBzdHJ1Y3Qgd2lwaHlfaWZ0eXBlX2V4dF9jYXBhYiBpZnR5cGVzX2V4dF9jYXBhW10gPSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtOTItXFx0XFx0XFx0RklFTERfUFJFUF9DT05TVChJRUVFODAyMTFfTUxEX0NBUF9PUF9NQVhfU0lNVUxfTElOS1MsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jOjkzOlxcdFxcdFxcdFxcdFxcdCBNVDc5OTZfTUFYX1JBRElPUyAtIDEpLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy05NC1cXHR9LCB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtMTAxLVxcdFxcdFxcdEZJRUxEX1BSRVBfQ09OU1QoSUVFRTgwMjExX01MRF9DQVBfT1BfTUFYX1NJTVVMX0xJTktTLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYzoxMDI6XFx0XFx0XFx0XFx0XFx0IE1UNzk5Nl9NQVhfUkFESU9TIC0gMSksXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTEwMy1cXHR9LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jPTEzMj1zdGF0aWMgc3NpemVfdCBtdDc5OTZfdGhlcm1hbF90ZW1wX3N0b3JlKHN0cnVjdCBkZXZpY2UgKmRldixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy0xNDctXFx0LyogYWRkIGEgc2FmZXR5IG1hcmdpbiB+MTAgKi9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM6MTQ4OlxcdGlmICgoaSAtIDEgPT0gTVQ3OTk2X0NSSVRfVEVNUF9JRFggXFx1MDAyNlxcdTAwMjZcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM6MTQ5OlxcdCAgICAgdmFsIFxcdTAwM2UgcGh5LVxcdTAwM2V0aHJvdHRsZV90ZW1wW01UNzk5Nl9NQVhfVEVNUF9JRFhdIC0gMTApIHx8XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jOjE1MDpcXHQgICAgKGkgLSAxID09IE1UNzk5Nl9NQVhfVEVNUF9JRFggXFx1MDAyNlxcdTAwMjZcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM6MTUxOlxcdCAgICAgdmFsIC0gMTAgXFx1MDAzYyBwaHktXFx1MDAzZXRocm90dGxlX3RlbXBbTVQ3OTk2X0NSSVRfVEVNUF9JRFhdKSkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy0xNTItXFx0XFx0ZGV2X2VycihwaHktXFx1MDAzZWRldi1cXHUwMDNlbXQ3Ni5kZXYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM9MTgzPW10Nzk5Nl90aGVybWFsX2dldF9tYXhfdGhyb3R0bGVfc3RhdGUoc3RydWN0IHRoZXJtYWxfY29vbGluZ19kZXZpY2UgKmNkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtMTg1LXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM6MTg2OlxcdCpzdGF0ZSA9IE1UNzk5Nl9DREVWX1RIUk9UVExFX01BWDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtMTg3LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jPTIwMz1tdDc5OTZfdGhlcm1hbF9zZXRfY3VyX3Rocm90dGxlX3N0YXRlKHN0cnVjdCB0aGVybWFsX2Nvb2xpbmdfZGV2aWNlICpjZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTIwNi1cXHRzdHJ1Y3QgbXQ3OTk2X3BoeSAqcGh5ID0gY2Rldi1cXHUwMDNlZGV2ZGF0YTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM6MjA3OlxcdHU4IHRocm90dGxpbmcgPSBNVDc5OTZfVEhFUk1BTF9USFJPVFRMRV9NQVggLSBzdGF0ZTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtMjA4LVxcdGludCByZXQ7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTIwOS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM6MjEwOlxcdGlmIChzdGF0ZSBcXHUwMDNlIE1UNzk5Nl9DREVWX1RIUk9UVExFX01BWCkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy0yMTEtXFx0XFx0ZGV2X2VycihwaHktXFx1MDAzZWRldi1cXHUwMDNlbXQ3Ni5kZXYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM9MjUwPXN0YXRpYyBpbnQgbXQ3OTk2X3RoZXJtYWxfaW5pdChzdHJ1Y3QgbXQ3OTk2X3BoeSAqcGh5KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTI3NC1cXHQvKiBpbml0aWFsaXplIGNyaXRpY2FsL21heGltdW0gaGlnaCB0ZW1wZXJhdHVyZSAqL1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYzoyNzU6XFx0cGh5LVxcdTAwM2V0aHJvdHRsZV90ZW1wW01UNzk5Nl9DUklUX1RFTVBfSURYXSA9IE1UNzk5Nl9DUklUX1RFTVA7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jOjI3NjpcXHRwaHktXFx1MDAzZXRocm90dGxlX3RlbXBbTVQ3OTk2X01BWF9URU1QX0lEWF0gPSBNVDc5OTZfTUFYX1RFTVA7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTI3Ny1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYz02MDM9c3RhdGljIHZvaWQgbXQ3OTk2X21hY19pbml0X2Jhc2ljX3JhdGVzKHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtNjA5LVxcdFxcdC8qIG9kZCBpbmRleCBmb3IgZHJpdmVyLCBldmVuIGluZGV4IGZvciBmaXJtd2FyZSAqL1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYzo2MTA6XFx0XFx0dTE2IGlkeCA9IE1UNzk5Nl9CQVNJQ19SQVRFU19UQkwgKyAyICogaTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtNjExLVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jPTY5MD1zdGF0aWMgaW50IG10Nzk5Nl9yZWdpc3Rlcl9waHkoc3RydWN0IG10Nzk5Nl9kZXYgKmRldiwgZW51bSBtdDc2X2JhbmRfaWQgYmFuZClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy03NTMtXFx0XFx0XFx0ICAgbXQ3Nl9ucHVfZGV2aWNlX2FjdGl2ZShcXHUwMDI2ZGV2LVxcdTAwM2VtdDc2KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYzo3NTQ6XFx0XFx0XFx0ICAgPyBNVDc5OTZfTlBVX1RYX1JJTkdfU0laRSAvIDIgOiBNVDc5OTZfVFhfUklOR19TSVpFO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy03NTUtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM9ODMzPXN0YXRpYyB2b2lkIG10Nzk5Nl9ycm9faHdfaW5pdF92MyhzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTg0My1cXHRcXHR3ZWQtXFx1MDAzZXdsYW4uaW5kX2NtZC53aW5fc2l6ZSA9XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jOjg0NDpcXHRcXHRcXHRmZnMoTVQ3OTk2X1JST19XSU5ET1dfTUFYX0xFTikgLSA2O1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy04NDUtXFx0XFx0aWYgKGlzX210Nzk5NihcXHUwMDI2ZGV2LVxcdTAwM2VtdDc2KSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtODQ2LVxcdFxcdFxcdHdlZC1cXHUwMDNld2xhbi5pbmRfY21kLnBhcnRpY3VsYXJfc2lkID1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM6ODQ3OlxcdFxcdFxcdFxcdE1UNzk5Nl9SUk9fTUFYX1NFU1NJT047XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTg0OC1cXHRcXHRlbHNlXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtODUxLVxcdFxcdFxcdGRldi1cXHUwMDNld2VkX3Jyby5zZXNzaW9uLnBoeV9hZGRyO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYzo4NTI6XFx0XFx0d2VkLVxcdTAwM2V3bGFuLmluZF9jbWQuc2VfZ3JvdXBfbnVtcyA9IE1UNzk5Nl9SUk9fQUREUl9FTEVNX0xFTjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtODUzLVxcdFxcdHdlZC1cXHUwMDNld2xhbi5pbmRfY21kLmFja19zbl9hZGRyID0gTVRfUlJPX0FDS19TTl9DVFJMO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTg2OS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM6ODcwOlxcdHNlc3Npb25faWQgPSBpc19tdDc5OTYoXFx1MDAyNmRldi1cXHUwMDNlbXQ3NikgPyBNVDc5OTZfUlJPX01BWF9TRVNTSU9OIDogMTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtODcxLVxcdG10NzZfd3IoZGV2LCBNVF9SUk9fUEFSVElDVUxBUl9DRkcxLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jPTk1Nz1zdGF0aWMgaW50IG10Nzk5Nl93ZWRfcnJvX2luaXQoc3RydWN0IG10Nzk5Nl9kZXYgKmRldilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy05NjktXFx0XFx0XFx0cHRyID0gZG1hbV9hbGxvY19jb2hlcmVudChkZXYtXFx1MDAzZW10NzYuZG1hX2RldixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM6OTcwOlxcdFxcdFxcdFxcdFxcdFxcdCAgTVQ3OTk2X1JST19CQV9CSVRNQVBfQ1JfU0laRSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtOTcxLVxcdFxcdFxcdFxcdFxcdFxcdCAgXFx1MDAyNmRldi1cXHUwMDNld2VkX3Jyby5iYV9iaXRtYXBbaV0ucGh5X2FkZHIsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtOTgzLVxcdFxcdHB0ciA9IGRtYW1fYWxsb2NfY29oZXJlbnQoZGV2LVxcdTAwM2VtdDc2LmRtYV9kZXYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jOjk4NDpcXHRcXHRcXHRcXHRNVDc5OTZfUlJPX1dJTkRPV19NQVhfU0laRSAqIHNpemVvZigqYWRkciksXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTk4NS1cXHRcXHRcXHRcXHRcXHUwMDI2ZGV2LVxcdTAwM2V3ZWRfcnJvLmFkZHJfZWxlbVtpXS5waHlfYWRkcixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy05OTEtXFx0XFx0bWVtc2V0KGRldi1cXHUwMDNld2VkX3Jyby5hZGRyX2VsZW1baV0ucHRyLCAwLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYzo5OTI6XFx0XFx0ICAgICAgIE1UNzk5Nl9SUk9fV0lORE9XX01BWF9TSVpFICogc2l6ZW9mKCphZGRyKSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTk5My1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtOTk0LVxcdFxcdGFkZHIgPSBkZXYtXFx1MDAzZXdlZF9ycm8uYWRkcl9lbGVtW2ldLnB0cjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM6OTk1OlxcdFxcdGZvciAoaiA9IDA7IGogXFx1MDAzYyBNVDc5OTZfUlJPX1dJTkRPV19NQVhfU0laRTsgaisrKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTk5Ni1cXHRcXHRcXHRhZGRyLVxcdTAwM2VkYXRhID0gY3B1X3RvX2xlMzIodmFsKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy0xMDE4LVxcdFxcdHB0ciA9IGRtYW1fYWxsb2NfY29oZXJlbnQoZGV2LVxcdTAwM2VtdDc2LmRtYV9kZXYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jOjEwMTk6XFx0XFx0XFx0XFx0XFx0ICBNVDc5OTZfUlJPX01TRFVfUEdfU0laRV9QRVJfQ1IsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTEwMjAtXFx0XFx0XFx0XFx0XFx0ICBcXHUwMDI2ZGV2LVxcdTAwM2V3ZWRfcnJvLm1zZHVfcGdbaV0ucGh5X2FkZHIsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtMTAyNy1cXHRcXHRtZW1zZXQoZGV2LVxcdTAwM2V3ZWRfcnJvLm1zZHVfcGdbaV0ucHRyLCAwLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYzoxMDI4OlxcdFxcdCAgICAgICBNVDc5OTZfUlJPX01TRFVfUEdfU0laRV9QRVJfQ1IpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy0xMDI5LVxcdH1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy0xMDUyLVxcdHB0ciA9IGRtYW1fYWxsb2NfY29oZXJlbnQoZGV2LVxcdTAwM2VtdDc2LmRtYV9kZXYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jOjEwNTM6XFx0XFx0XFx0XFx0ICBNVDc5OTZfUlJPX1dJTkRPV19NQVhfTEVOICogc2l6ZW9mKCphZGRyKSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtMTA1NC1cXHRcXHRcXHRcXHQgIFxcdTAwMjZkZXYtXFx1MDAzZXdlZF9ycm8uc2Vzc2lvbi5waHlfYWRkcixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy0xMDYwLVxcdGFkZHIgPSBkZXYtXFx1MDAzZXdlZF9ycm8uc2Vzc2lvbi5wdHI7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jOjEwNjE6XFx0Zm9yIChpID0gMDsgaSBcXHUwMDNjIE1UNzk5Nl9SUk9fV0lORE9XX01BWF9MRU47IGkrKykge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy0xMDYyLVxcdFxcdGFkZHItXFx1MDAzZWRhdGEgPSBjcHVfdG9fbGUzMih2YWwpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jPTEwNzU9c3RhdGljIHZvaWQgbXQ3OTk2X3dlZF9ycm9fZnJlZShzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTEwODYtXFx0XFx0ZG1hbV9mcmVlX2NvaGVyZW50KGRldi1cXHUwMDNlbXQ3Ni5kbWFfZGV2LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYzoxMDg3OlxcdFxcdFxcdFxcdCAgIE1UNzk5Nl9SUk9fQkFfQklUTUFQX0NSX1NJWkUsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTEwODgtXFx0XFx0XFx0XFx0ICAgZGV2LVxcdTAwM2V3ZWRfcnJvLmJhX2JpdG1hcFtpXS5wdHIsXFxuLS1cXG5cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMTFUMDY6MzI6MTkuMjcyNzQzMDY2WiIsIlNlcSI6NywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjctZmxhc2giLCJEdXJhdGlvbiI6MjkxNTY5MjQzNCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipJbnZlc3RpZ2F0aW5nIHRoZSBNVDc5OTYgRHJpdmVyKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgaW50byB0aGUgYGRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2AgZGlyZWN0b3J5LiBSaWdodCwgdGhpcyBwb2ludHMgdG8gdGhlIFBDSWUgZHJpdmVyIGZvciB0aGUgTVQ3OTk2RSB3aXJlbGVzcyBkZXZpY2UuIE5vdywgbXkgaW1tZWRpYXRlIHF1ZXN0aW9uIGlzLCBiZXlvbmQgdGhlIFBDSWUgY29ubmVjdGlvbiwgZG9lcyB0aGlzIGRyaXZlciBzdXBwb3J0IGFueSBvdGhlciBpbnRlcmZhY2VzPyBTcGVjaWZpY2FsbHksIEknbSB3b25kZXJpbmcgaWYgdGhlcmUncyBhIFVTQiBpbXBsZW1lbnRhdGlvbiBvciBhbnkgdmlydHVhbCBpbnRlcmZhY2UgcG9zc2liaWxpdGllcyBiYWtlZCBpbi4gSXQncyBub3QgaW1tZWRpYXRlbHkgb2J2aW91cyBqdXN0IGZyb20gdGhlIGRyaXZlcidzIGxvY2F0aW9uLlxuXG5TbywgdGhlIG5leHQgbG9naWNhbCBzdGVwIGlzIHRvIGRpdmUgaW50byB0aGUgZmlsZSBzdHJ1Y3R1cmUgb2YgYGRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2AgaXRzZWxmLiBJIG5lZWQgdG8gcG9rZSBhcm91bmQgYW5kIHNlZSB3aGF0IHRoZSBjb2RlIHJldmVhbHMuIFRpbWUgdG8gc2VlIHdoYXQgd2UncmUgYWN0dWFsbHkgd29ya2luZyB3aXRoLiBMZXQncyBzZWUgd2hhdCB3ZSBjYW4gZGlnIHVwLlxuXG5cbiIsIklucHV0VG9rZW5zIjozOTIyMCwiT3V0cHV0VG9rZW5zIjozNiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjg1LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTExVDA2OjMyOjIyLjE4ODQzODg3WiIsIlNlcSI6OCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiY29kZXNlYXJjaC1kaXItaW5kZXgiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo3OTU1MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkRpclwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2XCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIkZpbGVzXCI6IFtcbiAgICBcImNvcmVkdW1wLmNcIixcbiAgICBcImNvcmVkdW1wLmhcIixcbiAgICBcImRlYnVnZnMuY1wiLFxuICAgIFwiZG1hLmNcIixcbiAgICBcImVlcHJvbS5jXCIsXG4gICAgXCJlZXByb20uaFwiLFxuICAgIFwiaW5pdC5jXCIsXG4gICAgXCJtYWMuY1wiLFxuICAgIFwibWFjLmhcIixcbiAgICBcIm1haW4uY1wiLFxuICAgIFwibWN1LmNcIixcbiAgICBcIm1jdS5oXCIsXG4gICAgXCJtbWlvLmNcIixcbiAgICBcIm10Nzk5Ni5oXCIsXG4gICAgXCJucHUuY1wiLFxuICAgIFwicGNpLmNcIixcbiAgICBcInJlZ3MuaFwiXG4gIF0sXG4gIFwiU3ViZGlyc1wiOiBudWxsXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOS0xMVQwNjozMjoyMi4xODg1MTk4M1oiLCJTZXEiOjksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy43LWZsYXNoIiwiRHVyYXRpb24iOjM3Mjg1NDUxOTAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBteSB0YWtlIG9uIHRoZSBwcm9jZXNzLCBmcmFtZWQgYXMgYSB0aG91Z2h0IHByb2Nlc3M6XG5cbioqRGl2aW5nIGludG8gUENJIFN1cHBvcnQqKlxuXG5Pa2F5LCBzbyBJIG5lZWQgdG8gZ2V0IGEgaGFuZGxlIG9uIHRoZSBQQ0kgc3VwcG9ydCwgc3BlY2lmaWNhbGx5IHRoZSBidXMgdHlwZXMuIE15IGluaXRpYWwgaHVuY2ggaXMgdGhhdCBgcGNpLmNgIGFuZCBgS2NvbmZpZ2AgYXJlIHRoZSBwbGFjZXMgdG8gc3RhcnQuIGBwY2kuY2AgaXMgdGhlIG9idmlvdXMgbG9jYXRpb24gZm9yIHRoZSBjb3JlIFBDSSBkcml2ZXIgY29kZSwgc28gaXQnbGwgcHJvYmFibHkgZGVmaW5lIHRoZSBhY3R1YWwgYnVzIHR5cGUgZW51bWVyYXRpb24sIHN0cnVjdHVyZXMsIGFuZCBwb3RlbnRpYWxseSBoYXZlIHNvbWUgaW5pdGlhbGl6YXRpb24gbG9naWMgcmVsYXRlZCB0byBidXMgdHlwZSBkZXRlY3Rpb24uXG5cblRoZW4sIGBLY29uZmlnYOKApiB0aGF0J3Mgd2hlcmUgdGhlIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBsaXZlLiBJJ2xsIG5lZWQgdG8gc2VlIHdoYXQgY29uZmlndXJhdGlvbiBzeW1ib2xzIGNvbnRyb2wgd2hpY2ggYnVzIHR5cGVzIGFyZSBjb21waWxlZCBpbi4gQXJlIHRoZXJlIHNlcGFyYXRlIG9wdGlvbnMgZm9yIFBDSSwgUENJZSwgUENJLVgsIG9yIGFyZSB0aGV5IGhhbmRsZWQgbW9yZSBnZW5lcmFsbHk/IEFyZSB0aGVyZSBmaW5lLWdyYWluZWQgY2hvaWNlcywgb3IgaXMgaXQgYSBtb3JlIGJyb2FkLCBpbmNsdXNpdmUgYXBwcm9hY2g/IFRoaXMgYWxzbyBnaXZlcyBtZSBpbnNpZ2h0IGludG8gdGhlIGRlZmF1bHQgYmVoYXZpb3IgZm9yIGRpZmZlcmVudCBhcmNoaXRlY3R1cmVzIGFuZCBob3cgd2UgZW5hYmxlL2Rpc2FibGUgY2VydGFpbiBmZWF0dXJlcyByZWxhdGVkIHRvIGJ1cyBzdXBwb3J0LiBJJ2xsIGJlIGxvb2tpbmcgZm9yIGRlcGVuZGVuY2llcywgZGVmYXVsdCB2YWx1ZXMsIGFuZCBhbnkgcmVsYXRpb25zaGlwcyBiZXR3ZWVuIHRoZSBidXMgdHlwZSBvcHRpb25zLiBUaW1lIHRvIGRpZyBpbiBhbmQgY29uZmlybSBteSBhc3N1bXB0aW9ucywgb3IgZGlzY292ZXIgd2hlcmUgbXkgaW5pdGlhbCB1bmRlcnN0YW5kaW5nIGlzIGluY29tcGxldGUhXG5cblxuIiwiSW5wdXRUb2tlbnMiOjM5NjYxLCJPdXRwdXRUb2tlbnMiOjQ3LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjAsIlRvb2xDYWxscyI6WyJjb2Rlc2VhcmNoLWRpci1pbmRleCJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTExVDA2OjMyOjI1LjkxNzA2ODI5WiIsIlNlcSI6MTAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InJlYWQtZmlsZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjU0MzgwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRmlsZVwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L0tjb25maWdcIixcbiAgXCJGaXJzdExpbmVcIjogMSxcbiAgXCJMaW5lQ291bnRcIjogMzBcbn0iLCJSZXN1bHRzIjoie1xuICBcIkNvbnRlbnRzXCI6IFwiICAgMTpcXHQjIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMy1DbGF1c2UtQ2xlYXJcXG4gICAyOlxcdGNvbmZpZyBNVDc5OTZFXFxuICAgMzpcXHRcXHR0cmlzdGF0ZSBcXFwiTWVkaWFUZWsgTVQ3OTk2IChQQ0llKSBzdXBwb3J0XFxcIlxcbiAgIDQ6XFx0XFx0c2VsZWN0IE1UNzZfQ09OTkFDX0xJQlxcbiAgIDU6XFx0XFx0c2VsZWN0IFdBTlRfREVWX0NPUkVEVU1QXFxuICAgNjpcXHRcXHRzZWxlY3QgUkVMQVlcXG4gICA3OlxcdFxcdGRlcGVuZHMgb24gTUFDODAyMTFcXG4gICA4OlxcdFxcdGRlcGVuZHMgb24gUENJXFxuICAgOTpcXHRcXHRoZWxwXFxuICAxMDpcXHRcXHQgIFRoaXMgYWRkcyBzdXBwb3J0IGZvciBNVDc5OTYtYmFzZWQgUENJZSB3aXJlbGVzcyBkZXZpY2VzLFxcbiAgMTE6XFx0XFx0ICB3aGljaCBzdXBwb3J0IGNvbmN1cnJlbnQgdHJpLWJhbmQgb3BlcmF0aW9uIGF0IDZHSHosIDVHSHosXFxuICAxMjpcXHRcXHQgIGFuZCAyLjRHSHogSUVFRSA4MDIuMTFiZSA0eDQ6NFNTIDQwOTYtUUFNLCAzMjBNSHogY2hhbm5lbHMuXFxuICAxMzpcXHRcXG4gIDE0OlxcdFxcdCAgVG8gY29tcGlsZSB0aGlzIGRyaXZlciBhcyBhIG1vZHVsZSwgY2hvb3NlIE0gaGVyZS5cXG4gIDE1OlxcdFxcbiAgMTY6XFx0Y29uZmlnIE1UNzk5Nl9OUFVcXG4gIDE3OlxcdFxcdGJvb2wgXFxcIk1UNzk5NiAoUENJZSkgTlBVIHN1cHBvcnRcXFwiXFxuICAxODpcXHRcXHRkZXBlbmRzIG9uIE1UNzk5NkVcXG4gIDE5OlxcdFxcdGRlcGVuZHMgb24gTkVUX0FJUk9IQV9OUFU9eSB8fCBNVDc2X0NPUkU9TkVUX0FJUk9IQV9OUFVcXG4gIDIwOlxcdFxcdHNlbGVjdCBNVDc2X05QVVxcbiAgMjE6XFx0XFx0ZGVmYXVsdCBuXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTExVDA2OjMyOjI1LjkxNzEyNDk2WiIsIlNlcSI6MTEsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy43LWZsYXNoIiwiRHVyYXRpb24iOjI4MDExNDM2NjQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqTXkgSW5pdGlhbCBBc3Nlc3NtZW50IG9mIE1UNzk5NkUqKlxuXG5BbHJpZ2h0LCBsZXQncyB0YWtlIGEgbG9vayBhdCB0aGlzIGBNVDc5OTZFYC4gQmFzZWQgb24gd2hhdCBJJ20gc2VlaW5nLCB0aGlzIGlzIGEgUENJZS1jZW50cmljIGJlYXN0LCBwdXJlbHkgZHJpdmVuIGJ5IHRoZSBgUENJYCBidXMuIFRoZSBjb3JlIG9mIHRoaXMgc2VlbXMgdG8gYmUgY2VudGVyZWQgYXJvdW5kIGRyaXZlcnMgbGlrZSBgcGNpLmNgIGFuZCBgbW1pby5jYCwgd2hpY2ggbWFrZXMgc2Vuc2UgZm9yIFBDSWUgaW50ZXJhY3Rpb25zLiBcblxuTm93LCBiZWZvcmUgSSBkaWcgdG9vIGRlZXAsIG15IGluaXRpYWwgdGhvdWdodCBpcyB0byBxdWlja2x5IHJ1bGUgb3V0IGFueSBleHRyYW5lb3VzIGNvbm5lY3Rpb25zLiBJIG5lZWQgdG8gY29uZmlybSB0aGlzIGlzIHNvbGVseSBmb2N1c2VkIG9uIFBDSWUuIFNvLCBsZXQncyBqdXN0IGRvIGEgcXVpY2sgc2NhbiB0byBzZWUgaWYgdGhlcmUgYXJlIGFueSBVU0Igb3IgdmlydHVhbCBkZXZpY2UgaG9va3MgYXNzb2NpYXRlZCB3aXRoIGBtdDc5OTZgLiBJJ20gZXNwZWNpYWxseSBpbnRlcmVzdGVkIGluIGNvbmZpcm1pbmcgd2hldGhlciBpdHMgZGlyZWN0IGRlcGVuZGVuY2llcyBvbiBQQ0kgYXJlIGV4Y2x1c2l2ZSBvZiBhbnkgb3RoZXJzLlxuXG5Pa2F5LCBmaXJzdCBzdG9wLCBJJ20gZ29pbmcgdG8gc3RhcnQgd2l0aCBhIGRlZXAgZGl2ZSBpbnRvIGBwY2kuY2AuIFRoYXQncyB3aGVyZSBJIG5lZWQgdG8gZm9jdXMgbXkgYXR0ZW50aW9uLiBJdCdzIHRoZSBseW5jaHBpbiBoZXJlLCBzbyBsZXQncyBzZWUgd2hhdCdzIHdoYXQuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjQwMzI0LCJPdXRwdXRUb2tlbnMiOjUwLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NjUsIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wOS0xMVQwNjozMjoyOC43MTgyNzA2MjRaIiwiU2VxIjoxMiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoicmVhZC1maWxlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NzY5MDAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJGaWxlXCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvcGNpLmNcIixcbiAgXCJGaXJzdExpbmVcIjogMSxcbiAgXCJMaW5lQ291bnRcIjogMTAwXG59IiwiUmVzdWx0cyI6IntcbiAgXCJDb250ZW50c1wiOiBcIiAgIDE6XFx0Ly8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0zLUNsYXVzZS1DbGVhclxcbiAgIDI6XFx0LypcXG4gICAzOlxcdCAqIENvcHlyaWdodCAoQykgMjAyMiBNZWRpYVRlayBJbmMuXFxuICAgNDpcXHQgKi9cXG4gICA1OlxcdFxcbiAgIDY6XFx0I2luY2x1ZGUgXFx1MDAzY2xpbnV4L2tlcm5lbC5oXFx1MDAzZVxcbiAgIDc6XFx0I2luY2x1ZGUgXFx1MDAzY2xpbnV4L21vZHVsZS5oXFx1MDAzZVxcbiAgIDg6XFx0I2luY2x1ZGUgXFx1MDAzY2xpbnV4L3BjaS5oXFx1MDAzZVxcbiAgIDk6XFx0XFxuICAxMDpcXHQjaW5jbHVkZSBcXFwibXQ3OTk2LmhcXFwiXFxuICAxMTpcXHQjaW5jbHVkZSBcXFwibWFjLmhcXFwiXFxuICAxMjpcXHQjaW5jbHVkZSBcXFwiLi4vdHJhY2UuaFxcXCJcXG4gIDEzOlxcdFxcbiAgMTQ6XFx0c3RhdGljIExJU1RfSEVBRChoaWZfbGlzdCk7XFxuICAxNTpcXHRzdGF0aWMgREVGSU5FX1NQSU5MT0NLKGhpZl9sb2NrKTtcXG4gIDE2OlxcdHN0YXRpYyB1MzIgaGlmX2lkeDtcXG4gIDE3OlxcdFxcbiAgMTg6XFx0c3RhdGljIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkIG10Nzk5Nl9wY2lfZGV2aWNlX3RhYmxlW10gPSB7XFxuICAxOTpcXHRcXHR7IFBDSV9ERVZJQ0UoUENJX1ZFTkRPUl9JRF9NRURJQVRFSywgTVQ3OTk2X0RFVklDRV9JRCkgfSxcXG4gIDIwOlxcdFxcdHsgUENJX0RFVklDRShQQ0lfVkVORE9SX0lEX01FRElBVEVLLCBNVDc5OTJfREVWSUNFX0lEKSB9LFxcbiAgMjE6XFx0XFx0eyBQQ0lfREVWSUNFKFBDSV9WRU5ET1JfSURfTUVESUFURUssIE1UNzk5MF9ERVZJQ0VfSUQpIH0sXFxuICAyMjpcXHRcXHR7IH0sXFxuICAyMzpcXHR9O1xcbiAgMjQ6XFx0XFxuICAyNTpcXHRzdGF0aWMgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgbXQ3OTk2X2hpZl9kZXZpY2VfdGFibGVbXSA9IHtcXG4gIDI2OlxcdFxcdHsgUENJX0RFVklDRShQQ0lfVkVORE9SX0lEX01FRElBVEVLLCBNVDc5OTZfREVWSUNFX0lEXzIpIH0sXFxuICAyNzpcXHRcXHR7IFBDSV9ERVZJQ0UoUENJX1ZFTkRPUl9JRF9NRURJQVRFSywgTVQ3OTkyX0RFVklDRV9JRF8yKSB9LFxcbiAgMjg6XFx0XFx0eyBQQ0lfREVWSUNFKFBDSV9WRU5ET1JfSURfTUVESUFURUssIE1UNzk5MF9ERVZJQ0VfSURfMikgfSxcXG4gIDI5OlxcdFxcdHsgfSxcXG4gIDMwOlxcdH07XFxuICAzMTpcXHRcXG4gIDMyOlxcdHN0YXRpYyBzdHJ1Y3QgbXQ3OTk2X2hpZiAqbXQ3OTk2X3BjaV9nZXRfaGlmMih1MzIgaWR4KVxcbiAgMzM6XFx0e1xcbiAgMzQ6XFx0XFx0c3RydWN0IG10Nzk5Nl9oaWYgKmhpZjtcXG4gIDM1OlxcdFxcdHUzMiB2YWw7XFxuICAzNjpcXHRcXG4gIDM3OlxcdFxcdHNwaW5fbG9ja19iaChcXHUwMDI2aGlmX2xvY2spO1xcbiAgMzg6XFx0XFxuICAzOTpcXHRcXHRsaXN0X2Zvcl9lYWNoX2VudHJ5KGhpZiwgXFx1MDAyNmhpZl9saXN0LCBsaXN0KSB7XFxuICA0MDpcXHRcXHRcXHR2YWwgPSByZWFkbChoaWYtXFx1MDAzZXJlZ3MgKyBNVF9QQ0lFX1JFQ09HX0lEKTtcXG4gIDQxOlxcdFxcdFxcdHZhbCBcXHUwMDI2PSBNVF9QQ0lFX1JFQ09HX0lEX01BU0s7XFxuICA0MjpcXHRcXHRcXHRpZiAodmFsICE9IGlkeClcXG4gIDQzOlxcdFxcdFxcdFxcdGNvbnRpbnVlO1xcbiAgNDQ6XFx0XFxuICA0NTpcXHRcXHRcXHRnZXRfZGV2aWNlKGhpZi1cXHUwMDNlZGV2KTtcXG4gIDQ2OlxcdFxcdFxcdGdvdG8gb3V0O1xcbiAgNDc6XFx0XFx0fVxcbiAgNDg6XFx0XFx0aGlmID0gTlVMTDtcXG4gIDQ5OlxcdFxcbiAgNTA6XFx0b3V0OlxcbiAgNTE6XFx0XFx0c3Bpbl91bmxvY2tfYmgoXFx1MDAyNmhpZl9sb2NrKTtcXG4gIDUyOlxcdFxcbiAgNTM6XFx0XFx0cmV0dXJuIGhpZjtcXG4gIDU0OlxcdH1cXG4gIDU1OlxcdFxcbiAgNTY6XFx0c3RhdGljIHZvaWQgbXQ3OTk2X3B1dF9oaWYyKHN0cnVjdCBtdDc5OTZfaGlmICpoaWYpXFxuICA1NzpcXHR7XFxuICA1ODpcXHRcXHRpZiAoIWhpZilcXG4gIDU5OlxcdFxcdFxcdHJldHVybjtcXG4gIDYwOlxcdFxcbiAgNjE6XFx0XFx0cHV0X2RldmljZShoaWYtXFx1MDAzZWRldik7XFxuICA2MjpcXHR9XFxuICA2MzpcXHRcXG4gIDY0OlxcdHN0YXRpYyBzdHJ1Y3QgbXQ3OTk2X2hpZiAqbXQ3OTk2X3BjaV9pbml0X2hpZjIoc3RydWN0IHBjaV9kZXYgKnBkZXYpXFxuICA2NTpcXHR7XFxuICA2NjpcXHRcXHRoaWZfaWR4Kys7XFxuICA2NzpcXHRcXG4gIDY4OlxcdFxcdGlmICghcGNpX2dldF9kZXZpY2UoUENJX1ZFTkRPUl9JRF9NRURJQVRFSywgTVQ3OTk2X0RFVklDRV9JRF8yLCBOVUxMKSBcXHUwMDI2XFx1MDAyNlxcbiAgNjk6XFx0XFx0ICAgICFwY2lfZ2V0X2RldmljZShQQ0lfVkVORE9SX0lEX01FRElBVEVLLCBNVDc5OTJfREVWSUNFX0lEXzIsIE5VTEwpIFxcdTAwMjZcXHUwMDI2XFxuICA3MDpcXHRcXHQgICAgIXBjaV9nZXRfZGV2aWNlKFBDSV9WRU5ET1JfSURfTUVESUFURUssIE1UNzk5MF9ERVZJQ0VfSURfMiwgTlVMTCkpXFxuICA3MTpcXHRcXHRcXHRyZXR1cm4gTlVMTDtcXG4gIDcyOlxcdFxcbiAgNzM6XFx0XFx0d3JpdGVsKGhpZl9pZHggfCBNVF9QQ0lFX1JFQ09HX0lEX1NFTSxcXG4gIDc0OlxcdFxcdCAgICAgICBwY2ltX2lvbWFwX3RhYmxlKHBkZXYpWzBdICsgTVRfUENJRV9SRUNPR19JRCk7XFxuICA3NTpcXHRcXG4gIDc2OlxcdFxcdHJldHVybiBtdDc5OTZfcGNpX2dldF9oaWYyKGhpZl9pZHgpO1xcbiAgNzc6XFx0fVxcbiAgNzg6XFx0XFxuICA3OTpcXHRzdGF0aWMgaW50IG10Nzk5Nl9wY2lfaGlmMl9wcm9iZShzdHJ1Y3QgcGNpX2RldiAqcGRldilcXG4gIDgwOlxcdHtcXG4gIDgxOlxcdFxcdHN0cnVjdCBtdDc5OTZfaGlmICpoaWY7XFxuICA4MjpcXHRcXG4gIDgzOlxcdFxcdGhpZiA9IGRldm1fa3phbGxvYyhcXHUwMDI2cGRldi1cXHUwMDNlZGV2LCBzaXplb2YoKmhpZiksIEdGUF9LRVJORUwpO1xcbiAgODQ6XFx0XFx0aWYgKCFoaWYpXFxuICA4NTpcXHRcXHRcXHRyZXR1cm4gLUVOT01FTTtcXG4gIDg2OlxcdFxcbiAgODc6XFx0XFx0aGlmLVxcdTAwM2VkZXYgPSBcXHUwMDI2cGRldi1cXHUwMDNlZGV2O1xcbiAgODg6XFx0XFx0aGlmLVxcdTAwM2VyZWdzID0gcGNpbV9pb21hcF90YWJsZShwZGV2KVswXTtcXG4gIDg5OlxcdFxcdGhpZi1cXHUwMDNlaXJxID0gcGRldi1cXHUwMDNlaXJxO1xcbiAgOTA6XFx0XFx0cGNpZV9iYW5kd2lkdGhfYXZhaWxhYmxlKHBkZXYsIE5VTEwsIFxcdTAwMjZoaWYtXFx1MDAzZXNwZWVkLCBcXHUwMDI2aGlmLVxcdTAwM2V3aWR0aCk7XFxuICA5MTpcXHRcXHRzcGluX2xvY2tfYmgoXFx1MDAyNmhpZl9sb2NrKTtcXG4gIDkyOlxcdFxcdGxpc3RfYWRkKFxcdTAwMjZoaWYtXFx1MDAzZWxpc3QsIFxcdTAwMjZoaWZfbGlzdCk7XFxuICA5MzpcXHRcXHRzcGluX3VubG9ja19iaChcXHUwMDI2aGlmX2xvY2spO1xcbiAgOTQ6XFx0XFx0cGNpX3NldF9kcnZkYXRhKHBkZXYsIGhpZik7XFxuICA5NTpcXHRcXG4gIDk2OlxcdFxcdHJldHVybiAwO1xcbiAgOTc6XFx0fVxcbiAgOTg6XFx0XFxuICA5OTpcXHRzdGF0aWMgaW50IG10Nzk5Nl9wY2lfcHJvYmUoc3RydWN0IHBjaV9kZXYgKnBkZXYsXFxuIDEwMDpcXHRcXHRcXHRcXHQgICAgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgKmlkKVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOS0xMVQwNjozMjoyOC43MTgzNDg5NDRaIiwiU2VxIjoxMywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjctZmxhc2giLCJEdXJhdGlvbiI6MzI0MDMxNTI2NiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipNeSBBc3Nlc3NtZW50IG9mIE1UNzk5NiBFbXVsYXRpb24gRmVhc2liaWxpdHkqKlxuXG5Pa2F5LCBsZXQncyBicmVhayB0aGlzIGRvd24gc3lzdGVtYXRpY2FsbHkuIE15IGluaXRpYWwgdGhvdWdodCBpcyB0byBtYWtlIHN1cmUgSSB1bmRlcnN0YW5kIHRoZSBzY29wZSBvZiB0aGUgcHJvYmxlbS4gU2VjdGlvbiAyIG9mIHRoZSBpbnN0cnVjdGlvbnMgaGlnaGxpZ2h0cyB0aGUgcG90ZW50aWFsIGZvciBcInN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZSBoYXJkd2FyZSxcIiBzcGVjaWZpY2FsbHkgdmVuZG9yLXNwZWNpZmljIGNvbXBvbmVudHMgbGlrZSBQQ0llIHN3aXRjaGVzLCBTbWFydE5JQ3MsIG9yIEdQVSBkcml2ZXJzLiBJIG5lZWQgdG8ga2VlcCB0aGlzIGluIG1pbmQgYXMgSSBhc3Nlc3MgdGhlIE1UNzk5Ni5cblxuTm93LCBmb2N1c2luZyBvbiB0aGUgY29yZSBxdWVzdGlvbjogY2FuIEkgc2ltdWxhdGUgb3IgcmVhY2ggdGhlIE1UNzk5NiwgYSBNZWRpYVRlayBXaUZpIDcgUENJZSBOSUMgKHdoaWNoIGNvdWxkIGJlIGFuIE1UNzk5NiwgTVQ3OTkyLCBvciBNVDc5OTApLCB3aXRoaW4gYSBRRU1VIGVudmlyb25tZW50LCBvciB0aHJvdWdoIGFsdGVybmF0aXZlIG1ldGhvZHMgbGlrZSBVU0IsIG1hYzgwMjExX2h3c2ltLCBvciBzb21ldGhpbmcgc2ltaWxhcj9cblxuRmlyc3QsIEknbGwgY29uZmlybSB0aGUgb2J2aW91czogUUVNVSBkb2Vzbid0IG9mZmVyIG5hdGl2ZSBlbXVsYXRpb24gZm9yIE1lZGlhVGVrJ3MgTVQ3NiBzZXJpZXMgUENJZSBkZXZpY2VzLiBTbywgc3RhbmRhcmQgUUVNVSBlbXVsYXRpb24gaXMgb3V0LiBUaGlzIG1lYW5zIEkgbmVlZCB0byBkaWcgZGVlcGVyLiBNeSBuZXh0IHN0ZXAgaW52b2x2ZXMgY2hlY2tpbmcgaWYgYW55IHZpcnR1YWwgZW11bGF0aW9uLCBtb2NrLCBvciBVU0IgcHJvYmUgZXhpc3RzIGZvciB0aGUgbXQ3OTk2LiBJJ20gZ29pbmcgdG8gc2VhcmNoIGZvciBwcm9iZSBlbnRyeSBwb2ludHMuIFRoaXMgd2lsbCBiZSB0aGUga2V5IHRvIGFzc2Vzc2luZyB3aGV0aGVyIHRoZSBkZXZpY2UgY2FuIGJlIGxvYWRlZCBvciBwcm9iZWQgd2l0aG91dCBwaHlzaWNhbCBoYXJkd2FyZSBwcmVzZW50LlxuXG5cbiIsIklucHV0VG9rZW5zIjo0MjI0NSwiT3V0cHV0VG9rZW5zIjo0MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjIzNSwiVG9vbENhbGxzIjpbInJlYWQtZmlsZSJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTExVDA2OjMyOjMxLjk1ODY2NzI3MVoiLCJTZXEiOjE0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTUzNzQwODU4LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIl9kcml2ZXJcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTZcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbWN1LmM9MzIyOD1pbnQgbXQ3OTk2X21jdV9iZWFjb25faW5iYW5kX2Rpc2NvdihzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbWN1LmMtMzMxNC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tY3UuYzozMzE1OnN0YXRpYyBpbnQgbXQ3OTk2X2RyaXZlcl9vd24oc3RydWN0IG10Nzk5Nl9kZXYgKmRldiwgdTggYmFuZClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tY3UuYy0zMzE2LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21jdS5jPTM3MTM9aW50IG10Nzk5Nl9tY3VfaW5pdF9maXJtd2FyZShzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbWN1LmMtMzcyMS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tY3UuYzozNzIyOlxcdHJldCA9IG10Nzk5Nl9kcml2ZXJfb3duKGRldiwgMCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbWN1LmMtMzcyMy1cXHRpZiAocmV0KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbWN1LmMtMzcyNi1cXHRpZiAoZGV2LVxcdTAwM2VoaWYyKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbWN1LmM6MzcyNzpcXHRcXHRyZXQgPSBtdDc5OTZfZHJpdmVyX293bihkZXYsIDEpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21jdS5jLTM3MjgtXFx0XFx0aWYgKHJldClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21taW8uYz04MzI9c3RydWN0IG10Nzk5Nl9kZXYgKm10Nzk5Nl9tbWlvX3Byb2JlKHN0cnVjdCBkZXZpY2UgKnBkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tbWlvLmMtODM0LXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tbWlvLmM6ODM1OlxcdHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXQ3Nl9kcml2ZXJfb3BzIGRydl9vcHMgPSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbW1pby5jLTgzNi1cXHRcXHQvKiB0eHdpX3NpemUgPSB0eGQgc2l6ZSArIHR4cCBzaXplICovXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tbWlvLmM9ODg1PXN0YXRpYyBpbnQgX19pbml0IG10Nzk5Nl9pbml0KHZvaWQpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tbWlvLmMtODg4LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21taW8uYzo4ODk6XFx0cmV0ID0gcGNpX3JlZ2lzdGVyX2RyaXZlcihcXHUwMDI2bXQ3OTk2X2hpZl9kcml2ZXIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21taW8uYy04OTAtXFx0aWYgKHJldClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21taW8uYy04OTItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbW1pby5jOjg5MzpcXHRyZXQgPSBwY2lfcmVnaXN0ZXJfZHJpdmVyKFxcdTAwMjZtdDc5OTZfcGNpX2RyaXZlcik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbW1pby5jLTg5NC1cXHRpZiAocmV0KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21taW8uYzo4OTU6XFx0XFx0cGNpX3VucmVnaXN0ZXJfZHJpdmVyKFxcdTAwMjZtdDc5OTZfaGlmX2RyaXZlcik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbW1pby5jLTg5Ni1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21taW8uYz05MDA9c3RhdGljIHZvaWQgX19leGl0IG10Nzk5Nl9leGl0KHZvaWQpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbW1pby5jLTkwMS17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbW1pby5jOjkwMjpcXHRwY2lfdW5yZWdpc3Rlcl9kcml2ZXIoXFx1MDAyNm10Nzk5Nl9wY2lfZHJpdmVyKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tbWlvLmM6OTAzOlxcdHBjaV91bnJlZ2lzdGVyX2RyaXZlcihcXHUwMDI2bXQ3OTk2X2hpZl9kcml2ZXIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21taW8uYy05MDQtfVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbXQ3OTk2Lmg9NjY5PWV4dGVybiBjb25zdCBzdHJ1Y3QgaWVlZTgwMjExX29wcyBtdDc5OTZfb3BzO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L210Nzk5Ni5oOjY3MDpleHRlcm4gc3RydWN0IHBjaV9kcml2ZXIgbXQ3OTk2X3BjaV9kcml2ZXI7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbXQ3OTk2Lmg6NjcxOmV4dGVybiBzdHJ1Y3QgcGNpX2RyaXZlciBtdDc5OTZfaGlmX2RyaXZlcjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tdDc5OTYuaC02NzItXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9wY2kuYz0yMzM9c3RhdGljIHZvaWQgbXQ3OTk2X3BjaV9yZW1vdmUoc3RydWN0IHBjaV9kZXYgKnBkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9wY2kuYy0yNDMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvcGNpLmM6MjQ0OnN0cnVjdCBwY2lfZHJpdmVyIG10Nzk5Nl9oaWZfZHJpdmVyID0ge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L3BjaS5jLTI0NS1cXHQubmFtZVxcdFxcdD0gS0JVSUxEX01PRE5BTUUgXFxcIl9oaWZcXFwiLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvcGNpLmMtMjUwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L3BjaS5jOjI1MTpzdHJ1Y3QgcGNpX2RyaXZlciBtdDc5OTZfcGNpX2RyaXZlciA9IHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9wY2kuYy0yNTItXFx0Lm5hbWVcXHRcXHQ9IEtCVUlMRF9NT0ROQU1FLFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOS0xMVQwNjozMjozMi4xMTI0MTY0NTlaIiwiU2VxIjoxNSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjctZmxhc2giLCJEdXJhdGlvbiI6Mzg0MjM5MTM5OCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipNeSBBc3Nlc3NtZW50OiBNVDc5OTYgRHJpdmVyIC0gTm90IEZ1enphYmxlKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgdGhpcyBgbXQ3OTk2YCBkcml2ZXIsIGFuZCBpdCdzIGNsZWFyIHRoaXMgaXMgYSBQQ0llLXNwZWNpZmljIGRyaXZlciBmb3IgTWVkaWFUZWsncyBNVDc5OTYsIE1UNzk5MiwgYW5kIE1UNzk5MCBoYXJkd2FyZS4gSXQncyByZWdpc3RlcmVkIHZpYSBgcGNpX3JlZ2lzdGVyX2RyaXZlcmAgd2hpY2ggaXMgc3RhbmRhcmQgZm9yIFBDSWUgZGV2aWNlcy4gVGhlIGRyaXZlciBpdHNlbGYgaXMgbm90IGRlc2lnbmVkIHRvIGZ1bmN0aW9uIGluIGVtdWxhdGVkIGVudmlyb25tZW50cyBsaWtlIFFFTVUgb3IgR29vZ2xlIENvbXB1dGUgRW5naW5lOyBpdCAqcmVxdWlyZXMqIGFjdHVhbCBQQ0llIGhhcmR3YXJlLlxuXG5CYXNlZCBvbiB0aGUgZG9jdW1lbnRhdGlvbiwgdGhpcyBwdXRzIGl0IGZpcm1seSBpbiB0aGUgXCJzdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUgaGFyZHdhcmVcIiBjYXRlZ29yeS4gU2VjdGlvbiAyIGNsZWFybHkgc3RhdGVzIHRoYXQgZnV6emluZyBzaG91bGQgb25seSB0YXJnZXQgY29kZSB0aGF0J3MgKnJlYWNoYWJsZSogaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzLiBUaGlzIGluY2x1ZGVzIHRoaW5ncyBsaWtlIHZlbmRvci1zcGVjaWZpYyBzd2l0Y2hlcywgU21hcnROSUNzLCBHUFUgZHJpdmVycyDigJMgdGhlIE1UNzk5NiBmYWxscyBpbnRvIHRoaXMgY2F0ZWdvcnk6IGEgd2lyZWxlc3MgUENJZSBkcml2ZXIgd2l0aG91dCBlbXVsYXRlZCBoYXJkd2FyZSBzdXBwb3J0LlxuXG5UaGVyZWZvcmUsIHNpbmNlIHRoZSBNVDc5OTYgaXMgdW5yZWFjaGFibGUgZHVyaW5nIGZ1enppbmcsIHRoZSBtb2RpZmllZCBjb2RlLCBzcGVjaWZpY2FsbHkgd2l0aGluIGBtdDc5OTZfdHhfcHJlcGFyZV9za2JgIGluIHRoaXMgY2FzZSwgd291bGQgbmV2ZXIgYmUgZXhlcmNpc2VkLlxuXG5TbywgbGV0J3MgY29uZmlybSB0aGUgcmVsZXZhbnQgcGFyYW1ldGVycy4gSSBhbSBjb25maWRlbnQgdGhhdCBgV29ydGhGdXp6aW5nYCBzaG91bGQgYmUgc2V0IHRvIGBmYWxzZWAsIGBFbmFibGVDb25maWdzYCByZW1haW5zIGVtcHR5LCBhbmQgYEZvY3VzU3ltYm9sc2AgYWxzbyBzdGF5cyBlbXB0eS4gVGhlIGBSZWFzb25pbmdgIHdpbGwgYmUgYSBjbGVhciBleHBsYW5hdGlvbjogVGhlIE1UNzk5NiBkcml2ZXIgZGVwZW5kcyBvbiBhIG5vbi1lbXVsYXRhYmxlIE1lZGlhVGVrIFBDSWUgaGFyZHdhcmUgY2hpcC4gVGhlIGZ1enppbmcgY29kZSBpcyBzdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUsIG1ha2luZyBmdXp6aW5nIHBvaW50bGVzcy5cblxuQWxyaWdodCwgcGFyYW1ldGVycyBjb25maXJtZWQuIEknbGwgaW5pdGlhdGUgdGhlIHNldC1yZXN1bHRzIGZ1bmN0aW9uIG5vdy5cblxuXG4iLCJJbnB1dFRva2VucyI6NDQ0ODcsIk91dHB1dFRva2VucyI6MTQwLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NDM2LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTExVDA2OjMyOjM1Ljk1NDgxMDk3NloiLCJTZXEiOjE2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjIxMjIwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIGRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21hYy5jIGluIHRoZSBNZWRpYVRlayBNVDc5OTYgd2lyZWxlc3MgZHJpdmVyIChDT05GSUdfTVQ3OTk2RSkuIFRoaXMgZHJpdmVyIGlzIGV4Y2x1c2l2ZWx5IGEgUENJZSBkZXZpY2UgZHJpdmVyIGZvciBwaHlzaWNhbCBNZWRpYVRlayBNVDc5OTYvTVQ3OTkyL01UNzk5MCBoYXJkd2FyZSwgd2hpY2ggaXMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGZ1enppbmcgZW52aXJvbm1lbnRzIChRRU1VL0dDRSkuIENvbnNlcXVlbnRseSwgdGhlIG1vZGlmaWVkIGNvZGUgaXMgc3RydWN0dXJhbGx5IHVucmVhY2hhYmxlIGZvciBmdXp6aW5nLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbWFjLmMgaW4gdGhlIE1lZGlhVGVrIE1UNzk5NiB3aXJlbGVzcyBkcml2ZXIgKENPTkZJR19NVDc5OTZFKS4gVGhpcyBkcml2ZXIgaXMgZXhjbHVzaXZlbHkgYSBQQ0llIGRldmljZSBkcml2ZXIgZm9yIHBoeXNpY2FsIE1lZGlhVGVrIE1UNzk5Ni9NVDc5OTIvTVQ3OTkwIGhhcmR3YXJlLCB3aGljaCBpcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQgZnV6emluZyBlbnZpcm9ubWVudHMgKFFFTVUvR0NFKS4gQ29uc2VxdWVudGx5LCB0aGUgbW9kaWZpZWQgY29kZSBpcyBzdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUgZm9yIGZ1enppbmcuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOS0xMVQwNjozMjozNS45NTQ4MzYxMTZaIiwiU2VxIjoxNywiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJJZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjI0NTAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9XTsKCQkJaWYgKCFyYXdEYXRhIHx8IHJhd0RhdGEubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQlkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKTsKCQkJZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSk7CgkJCWRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKSB7CgkJCWNvbnN0IHN0YXRzID0gewoJCQkJbGxtOiB7IGNvdW50OiAwLCB0b2tlbnM6IDAsIGR1cmF0aW9uOiAwIH0sCgkJCQl0b29sOiB7IGNvdW50OiAwLCBkdXJhdGlvbjogMCB9CgkJCX07CgoJCQlyYXdEYXRhLmZvckVhY2gocyA9PiB7CgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsgCgkJCQlpZiAocy5UeXBlID09PSAibGxtIikgewoJCQkJCXN0YXRzLmxsbS5jb3VudCsrOwoJCQkJCXN0YXRzLmxsbS50b2tlbnMgKz0gKHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnMpOwoJCQkJCXN0YXRzLmxsbS5kdXJhdGlvbiArPSBkdXI7CgkJCQl9IGVsc2UgaWYgKHMuVHlwZSA9PT0gInRvb2wiKSB7CgkJCQkJc3RhdHMudG9vbC5jb3VudCsrOwoJCQkJCXN0YXRzLnRvb2wuZHVyYXRpb24gKz0gZHVyOwoJCQkJfQoJCQl9KTsKCgkJCWNvbnN0IGF2Z0xsbUR1ciA9IHN0YXRzLmxsbS5jb3VudCA+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-workflow6ks7f[1] Phase: Running StartedAt: 2026-09-11 06:32:46 +0000 UTC FinishedAt: 0001-01-01 00:00:00 +0000 UTC Input: nil Output: nil --------- Name: series-workflow6ks7f[1].abort-on-skip-outcome Phase: Failed StartedAt: 2026-09-11 06:32:46 +0000 UTC FinishedAt: 2026-09-11 06:32:51 +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,}