Name: series-workflowfl64l Phase: Failed StartedAt: 2026-06-20 09:57:55 +0000 UTC FinishedAt: 2026-06-20 10:19:58 +0000 UTC Input: nil Output: nil --------- Name: series-workflowfl64l[0] Phase: Succeeded StartedAt: 2026-06-20 09:57:55 +0000 UTC FinishedAt: 2026-06-20 10:19:48 +0000 UTC Input: nil Output: nil --------- Name: series-workflowfl64l[0].run-triage Phase: Succeeded StartedAt: 2026-06-20 09:57:55 +0000 UTC FinishedAt: 2026-06-20 10:19:48 +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+CgkJCTx0ZD4yMDI2LzA2LzIwIDEwOjE4PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MW08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBNYXJ2ZWxsIFByZXN0ZXJhIFN3aXRjaCBBU0lDIGRyaXZlciAocHJlc3RlcmEpLiBUaGlzIGRyaXZlciByZXF1aXJlcyBzcGVjaWZpYyBoYXJkd2FyZSAoUENJX1ZFTkRPUl9JRF9NQVJWRUxMLCBQUkVTVEVSQV9ERVZfSURfQUMzWF85OERYXzU1KSB3aGljaCBpcyBub3QgZW11bGF0ZWQgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgUUVNVSBvciBHQ0UuIFRoZXJlZm9yZSwgdGhlIG1vZGlmaWVkIGNvZGUgcGF0aHMgYXJlIHVucmVhY2hhYmxlIGR1cmluZyBmdXp6aW5nLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yMCAxMDoxODwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IDM5YzZlYTI2ZjFiYjYxM2EzODc2Yjg5ZWIxODBjZGZhNGYxNDNlNjdcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgU2F0IEp1biAyMCAxMDoxODozMyAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RzYS5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kc2EuY1xuaW5kZXggYjdlODljMGNhNWMwZDkuLjI3NmY5OGNiZDUwZWE3IDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kc2EuY1xuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kc2EuY1xuQEAgLTQsNiAmIzQzOzQsNyBAQFxuICNpbmNsdWRlIFx1MDAzY2xpbnV4L2JpdGZpZWxkLmhcdTAwM2VcbiAjaW5jbHVkZSBcdTAwM2NsaW51eC9iaXRvcHMuaFx1MDAzZVxuICNpbmNsdWRlIFx1MDAzY2xpbnV4L2Vycm5vLmhcdTAwM2VcbiYjNDM7I2luY2x1ZGUgXHUwMDNjbGludXgvdW5hbGlnbmVkLmhcdTAwM2VcbiAjaW5jbHVkZSBcdTAwM2NsaW51eC9zdHJpbmcuaFx1MDAzZVxuIFxuICNpbmNsdWRlIFwmIzM0O3ByZXN0ZXJhX2RzYS5oXCYjMzQ7XG5AQCAtMzMsMTUgJiM0MzszNCwxNCBAQFxuIFxuIGludCBwcmVzdGVyYV9kc2FfcGFyc2Uoc3RydWN0IHByZXN0ZXJhX2RzYSAqZHNhLCBjb25zdCB1OCAqZHNhX2J1ZilcbiB7XG4tXHRfX2JlMzIgKmRzYV93b3JkcyA9IChfX2JlMzIgKilkc2FfYnVmO1xuIFx0ZW51bSBwcmVzdGVyYV9kc2FfY21kIGNtZDtcbiBcdHUzMiB3b3Jkc1s0XTtcbiBcdHUzMiBmaWVsZDtcbiBcbi1cdHdvcmRzWzBdID0gbnRvaGwoZHNhX3dvcmRzWzBdKTtcbi1cdHdvcmRzWzFdID0gbnRvaGwoZHNhX3dvcmRzWzFdKTtcbi1cdHdvcmRzWzJdID0gbnRvaGwoZHNhX3dvcmRzWzJdKTtcbi1cdHdvcmRzWzNdID0gbnRvaGwoZHNhX3dvcmRzWzNdKTtcbiYjNDM7XHR3b3Jkc1swXSA9IGdldF91bmFsaWduZWRfYmUzMihkc2FfYnVmKTtcbiYjNDM7XHR3b3Jkc1sxXSA9IGdldF91bmFsaWduZWRfYmUzMihkc2FfYnVmICYjNDM7IDQpO1xuJiM0MztcdHdvcmRzWzJdID0gZ2V0X3VuYWxpZ25lZF9iZTMyKGRzYV9idWYgJiM0MzsgOCk7XG4mIzQzO1x0d29yZHNbM10gPSBnZXRfdW5hbGlnbmVkX2JlMzIoZHNhX2J1ZiAmIzQzOyAxMik7XG4gXG4gXHQvKiBzZXQgdGhlIGNvbW1vbiBwYXJhbWV0ZXJzICovXG4gXHRjbWQgPSAoZW51bSBwcmVzdGVyYV9kc2FfY21kKUZJRUxEX0dFVChQUkVTVEVSQV9EU0FfVzBfQ01ELCB3b3Jkc1swXSk7XG5AQCAtODIsNyAmIzQzOzgyLDYgQEAgaW50IHByZXN0ZXJhX2RzYV9wYXJzZShzdHJ1Y3QgcHJlc3RlcmFfZHNhICpkc2EsIGNvbnN0IHU4ICpkc2FfYnVmKVxuIFxuIGludCBwcmVzdGVyYV9kc2FfYnVpbGQoY29uc3Qgc3RydWN0IHByZXN0ZXJhX2RzYSAqZHNhLCB1OCAqZHNhX2J1ZilcbiB7XG4tXHRfX2JlMzIgKmRzYV93b3JkcyA9IChfX2JlMzIgKilkc2FfYnVmO1xuIFx0dTMyIGRldl9udW0gPSBkc2EtXHUwMDNlaHdfZGV2X251bTtcbiBcdHUzMiB3b3Jkc1s0XSA9IHsgMCB9O1xuIFxuQEAgLTk4LDEwICYjNDM7OTcsMTAgQEAgaW50IHByZXN0ZXJhX2RzYV9idWlsZChjb25zdCBzdHJ1Y3QgcHJlc3RlcmFfZHNhICpkc2EsIHU4ICpkc2FfYnVmKVxuIFx0d29yZHNbMV0gfD0gRklFTERfUFJFUChQUkVTVEVSQV9EU0FfVzFfRVhUX0JJVCwgMSk7XG4gXHR3b3Jkc1syXSB8PSBGSUVMRF9QUkVQKFBSRVNURVJBX0RTQV9XMl9FWFRfQklULCAxKTtcbiBcbi1cdGRzYV93b3Jkc1swXSA9IGh0b25sKHdvcmRzWzBdKTtcbi1cdGRzYV93b3Jkc1sxXSA9IGh0b25sKHdvcmRzWzFdKTtcbi1cdGRzYV93b3Jkc1syXSA9IGh0b25sKHdvcmRzWzJdKTtcbi1cdGRzYV93b3Jkc1szXSA9IGh0b25sKHdvcmRzWzNdKTtcbiYjNDM7XHRwdXRfdW5hbGlnbmVkX2JlMzIod29yZHNbMF0sIGRzYV9idWYpO1xuJiM0MztcdHB1dF91bmFsaWduZWRfYmUzMih3b3Jkc1sxXSwgZHNhX2J1ZiAmIzQzOyA0KTtcbiYjNDM7XHRwdXRfdW5hbGlnbmVkX2JlMzIod29yZHNbMl0sIGRzYV9idWYgJiM0MzsgOCk7XG4mIzQzO1x0cHV0X3VuYWxpZ25lZF9iZTMyKHdvcmRzWzNdLCBkc2FfYnVmICYjNDM7IDEyKTtcbiBcbiBcdHJldHVybiAwO1xuIH1cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yMCAxMDoxODwvdGQ+CgkJCTx0ZD5hZ2VudDwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4xbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogbnVsbCwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgTWFydmVsbCBQcmVzdGVyYSBTd2l0Y2ggQVNJQyBkcml2ZXIgKHByZXN0ZXJhKS4gVGhpcyBkcml2ZXIgcmVxdWlyZXMgc3BlY2lmaWMgaGFyZHdhcmUgKFBDSV9WRU5ET1JfSURfTUFSVkVMTCwgUFJFU1RFUkFfREVWX0lEX0FDM1hfOThEWF81NSkgd2hpY2ggaXMgbm90IGVtdWxhdGVkIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIFFFTVUgb3IgR0NFLiBUaGVyZWZvcmUsIHRoZSBtb2RpZmllZCBjb2RlIHBhdGhzIGFyZSB1bnJlYWNoYWJsZSBkdXJpbmcgZnV6emluZy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZQppZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5CnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuCgpSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOgotIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuCi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuCi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LgotIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwKZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLgoKSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaAp0b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS4KCldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOgoxLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLgogICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy4KMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuCiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy4KICAgRG8gbm90IGxpc3QgdG9vIGdlbmVyaWMgY29uZmlncyAod2UgYWxyZWFkeSBoYXZlIHRoZW0gZW5hYmxlZCkuIE9ubHkgbGlzdCB0aG9zZSB0aGF0CiAgIHNwZWNpZmljYWxseSBjb3ZlciB0aGUgbW9kaWZpZWQgY29kZS4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzIG91dHB1dCBhcnJheSwKICAgYW5kIERPIE5PVCBhZGQgYSAmIzM5O0NPTkZJR18mIzM5OyBwcmVmaXggKGUuZy4sIHJldHVybiAmIzM0O05FVF9JUFY0JiMzNDsgaW5zdGVhZCBvZiAmIzM0O0NPTkZJR19ORVRfSVBWNCYjMzQ7KS4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IDM5YzZlYTI2ZjFiYjYxM2EzODc2Yjg5ZWIxODBjZGZhNGYxNDNlNjcKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgU2F0IEp1biAyMCAxMDoxODozMyAyMDI2ICYjNDM7MDAwMAoKICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldwoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZHNhLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RzYS5jCmluZGV4IGI3ZTg5YzBjYTVjMGQ5Li4yNzZmOThjYmQ1MGVhNyAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kc2EuYwomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RzYS5jCkBAIC00LDYgJiM0Mzs0LDcgQEAKICNpbmNsdWRlICZsdDtsaW51eC9iaXRmaWVsZC5oJmd0OwogI2luY2x1ZGUgJmx0O2xpbnV4L2JpdG9wcy5oJmd0OwogI2luY2x1ZGUgJmx0O2xpbnV4L2Vycm5vLmgmZ3Q7CiYjNDM7I2luY2x1ZGUgJmx0O2xpbnV4L3VuYWxpZ25lZC5oJmd0OwogI2luY2x1ZGUgJmx0O2xpbnV4L3N0cmluZy5oJmd0OwogCiAjaW5jbHVkZSAmIzM0O3ByZXN0ZXJhX2RzYS5oJiMzNDsKQEAgLTMzLDE1ICYjNDM7MzQsMTQgQEAKIAogaW50IHByZXN0ZXJhX2RzYV9wYXJzZShzdHJ1Y3QgcHJlc3RlcmFfZHNhICpkc2EsIGNvbnN0IHU4ICpkc2FfYnVmKQogewotCV9fYmUzMiAqZHNhX3dvcmRzID0gKF9fYmUzMiAqKWRzYV9idWY7CiAJZW51bSBwcmVzdGVyYV9kc2FfY21kIGNtZDsKIAl1MzIgd29yZHNbNF07CiAJdTMyIGZpZWxkOwogCi0Jd29yZHNbMF0gPSBudG9obChkc2Ffd29yZHNbMF0pOwotCXdvcmRzWzFdID0gbnRvaGwoZHNhX3dvcmRzWzFdKTsKLQl3b3Jkc1syXSA9IG50b2hsKGRzYV93b3Jkc1syXSk7Ci0Jd29yZHNbM10gPSBudG9obChkc2Ffd29yZHNbM10pOwomIzQzOwl3b3Jkc1swXSA9IGdldF91bmFsaWduZWRfYmUzMihkc2FfYnVmKTsKJiM0MzsJd29yZHNbMV0gPSBnZXRfdW5hbGlnbmVkX2JlMzIoZHNhX2J1ZiAmIzQzOyA0KTsKJiM0MzsJd29yZHNbMl0gPSBnZXRfdW5hbGlnbmVkX2JlMzIoZHNhX2J1ZiAmIzQzOyA4KTsKJiM0MzsJd29yZHNbM10gPSBnZXRfdW5hbGlnbmVkX2JlMzIoZHNhX2J1ZiAmIzQzOyAxMik7CiAKIAkvKiBzZXQgdGhlIGNvbW1vbiBwYXJhbWV0ZXJzICovCiAJY21kID0gKGVudW0gcHJlc3RlcmFfZHNhX2NtZClGSUVMRF9HRVQoUFJFU1RFUkFfRFNBX1cwX0NNRCwgd29yZHNbMF0pOwpAQCAtODIsNyAmIzQzOzgyLDYgQEAgaW50IHByZXN0ZXJhX2RzYV9wYXJzZShzdHJ1Y3QgcHJlc3RlcmFfZHNhICpkc2EsIGNvbnN0IHU4ICpkc2FfYnVmKQogCiBpbnQgcHJlc3RlcmFfZHNhX2J1aWxkKGNvbnN0IHN0cnVjdCBwcmVzdGVyYV9kc2EgKmRzYSwgdTggKmRzYV9idWYpCiB7Ci0JX19iZTMyICpkc2Ffd29yZHMgPSAoX19iZTMyICopZHNhX2J1ZjsKIAl1MzIgZGV2X251bSA9IGRzYS0mZ3Q7aHdfZGV2X251bTsKIAl1MzIgd29yZHNbNF0gPSB7IDAgfTsKIApAQCAtOTgsMTAgJiM0Mzs5NywxMCBAQCBpbnQgcHJlc3RlcmFfZHNhX2J1aWxkKGNvbnN0IHN0cnVjdCBwcmVzdGVyYV9kc2EgKmRzYSwgdTggKmRzYV9idWYpCiAJd29yZHNbMV0gfD0gRklFTERfUFJFUChQUkVTVEVSQV9EU0FfVzFfRVhUX0JJVCwgMSk7CiAJd29yZHNbMl0gfD0gRklFTERfUFJFUChQUkVTVEVSQV9EU0FfVzJfRVhUX0JJVCwgMSk7CiAKLQlkc2Ffd29yZHNbMF0gPSBodG9ubCh3b3Jkc1swXSk7Ci0JZHNhX3dvcmRzWzFdID0gaHRvbmwod29yZHNbMV0pOwotCWRzYV93b3Jkc1syXSA9IGh0b25sKHdvcmRzWzJdKTsKLQlkc2Ffd29yZHNbM10gPSBodG9ubCh3b3Jkc1szXSk7CiYjNDM7CXB1dF91bmFsaWduZWRfYmUzMih3b3Jkc1swXSwgZHNhX2J1Zik7CiYjNDM7CXB1dF91bmFsaWduZWRfYmUzMih3b3Jkc1sxXSwgZHNhX2J1ZiAmIzQzOyA0KTsKJiM0MzsJcHV0X3VuYWxpZ25lZF9iZTMyKHdvcmRzWzJdLCBkc2FfYnVmICYjNDM7IDgpOwomIzQzOwlwdXRfdW5hbGlnbmVkX2JlMzIod29yZHNbM10sIGRzYV9idWYgJiM0MzsgMTIpOwogCiAJcmV0dXJuIDA7CiB9CjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzIwIDEwOjE4PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDI1NTkKCQkJCQkJCW91dHB1dDogMzUKCQkJCQkJCXRob3VnaHRzOiAxODEKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIGEgUHJlc3RlcmEgRHJpdmVyIFBhdGNoKioKCk9rYXksIHNvIEkmIzM5O3ZlIGdvdCB0aGlzIHBhdGNoIHRoYXQgdG91Y2hlcyBgZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kc2EuY2AuIFNlZW1zIHN0cmFpZ2h0Zm9yd2FyZCBlbm91Z2g7IGl0JiMzOTtzIHJlcGxhY2luZyBzb21lIGRpcmVjdCBwb2ludGVyIGNhc3RpbmcgYW5kIGBudG9obGAvYGh0b25sYCB3aXRoIGBnZXRfdW5hbGlnbmVkX2JlMzJgIGFuZCBgcHV0X3VuYWxpZ25lZF9iZTMyYC4gU291bmRzIGxpa2UgYSBmaXggZm9yIGFuIHVuYWxpZ25lZCBtZW1vcnkgYWNjZXNzIGlzc3VlLCB3aGljaCBpcyBnb29kLiBQcmV2ZW50cyBwb3RlbnRpYWwgY3Jhc2hlcyBvciBkYXRhIGNvcnJ1cHRpb24uCgpUaGUgZHJpdmVyIGluIHF1ZXN0aW9uIGlzIGBwcmVzdGVyYWAsIHdoaWNoIEkga25vdyBpcyB0aGUgTWFydmVsbCBQcmVzdGVyYSBTd2l0Y2ggQVNJQ3MgTGludXggTmV0d29yayBEcml2ZXIuIE5vdyBjb21lcyB0aGUgcmVhbCBxdWVzdGlvbjogY2FuIEkgZWZmZWN0aXZlbHkgdGVzdCB0aGlzIHRoaW5nIGluIGEgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnQ/IFN3aXRjaCBBU0lDIGRyaXZlcnMgYXJlIHVzdWFsbHkgYSBwYWluIHRvIGZ1enosIGFzIHRoZXkgb2Z0ZW4gcmVxdWlyZSBzcGVjaWZpYyBoYXJkd2FyZS4gUUVNVSBnZW5lcmFsbHkgaXNu4oCZdCBnb2luZyB0byBjdXQgaXQgdW5sZXNzIHRoZXJlJiMzOTtzIGEgaGFyZHdhcmUgZW11bGF0b3Igb3IgaXTigJlzIGFjdGluZyBvbiBhIG1vcmUgZ2VuZXJpYyBzdWJzeXN0ZW0uIEkgbmVlZCB0byBmaWd1cmUgb3V0IGlmIGBwcmVzdGVyYWAgaXMgYW4gZXhjZXB0aW9uLiBDYW4gaXQgYmUgZnV6emVkIGluIGEgdmlydHVhbCBzZXR0aW5nPwoKTGV0JiMzOTtzIHNlZeKApiBkbyBJIGhhdmUgYW55IG9wdGlvbnMgaGVyZT8gSXMgdGhlcmUgc29tZSB2aXJ0dWFsIGRldmljZSB0aGF0IGVtdWxhdGVzIHRoZSBQcmVzdGVyYSBoYXJkd2FyZT8gSSBuZWVkIHRvIHNlYXJjaCB0aGUga2VybmVsIHRyZWUsIGFuZCBzZWUgaWYgdGhlcmUgYXJlIGFueSB2aXJ0dWFsIGltcGxlbWVudGF0aW9ucyBvciBjb25maWd1cmF0aW9uIG9wdGlvbnMgdGhhdCBjb3VsZCBmYWNpbGl0YXRlIHRoaXMuIExldOKAmXMgc2VlIHdoYXQgc2hvd3MgdXAuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NC8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjAgMTA6MTg8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7cHJlc3RlcmEmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtcbkZ1bGwgb3V0cHV0IGlzIHRvbyBsb25nLCBzaG93aW5nIDUwMCBvdXQgb2YgODgzOCBsaW5lcy5cblVzZSBtb3JlIHByZWNpc2UgZXhwcmVzc2lvbiBpZiBwb3NzaWJsZS5cblxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9LY29uZmlnPTY9Y29uZmlnIFBSRVNURVJBXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9LY29uZmlnLTE1LVx0ICBUbyBjb21waWxlIHRoaXMgZHJpdmVyIGFzIGEgbW9kdWxlLCBjaG9vc2UgTSBoZXJlOiB0aGVcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvS2NvbmZpZzoxNjpcdCAgbW9kdWxlIHdpbGwgYmUgY2FsbGVkIHByZXN0ZXJhLlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9LY29uZmlnLTE3LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9LY29uZmlnPTE4PWNvbmZpZyBQUkVTVEVSQV9QQ0lcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL0tjb25maWctMjYtXHQgIFRvIGNvbXBpbGUgdGhpcyBkcml2ZXIgYXMgYSBtb2R1bGUsIGNob29zZSBNIGhlcmU6IHRoZVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9LY29uZmlnOjI3Olx0ICBtb2R1bGUgd2lsbCBiZSBjYWxsZWQgcHJlc3RlcmFfcGNpLlxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvTWFrZWZpbGUtMS0jIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL01ha2VmaWxlOjI6b2JqLSQoQ09ORklHX1BSRVNURVJBKVx0JiM0Mzs9IHByZXN0ZXJhLm9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvTWFrZWZpbGU6MzpwcmVzdGVyYS1vYmpzXHRcdDo9IHByZXN0ZXJhX21haW4ubyBwcmVzdGVyYV9ody5vIHByZXN0ZXJhX2RzYS5vIFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL01ha2VmaWxlOjQ6XHRcdFx0ICAgcHJlc3RlcmFfcnh0eC5vIHByZXN0ZXJhX2RldmxpbmsubyBwcmVzdGVyYV9ldGh0b29sLm8gXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvTWFrZWZpbGU6NTpcdFx0XHQgICBwcmVzdGVyYV9zd2l0Y2hkZXYubyBwcmVzdGVyYV9hY2wubyBwcmVzdGVyYV9mbG93Lm8gXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvTWFrZWZpbGU6NjpcdFx0XHQgICBwcmVzdGVyYV9mbG93ZXIubyBwcmVzdGVyYV9zcGFuLm8gcHJlc3RlcmFfY291bnRlci5vIFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL01ha2VmaWxlOjc6XHRcdFx0ICAgcHJlc3RlcmFfcm91dGVyLm8gcHJlc3RlcmFfcm91dGVyX2h3Lm8gcHJlc3RlcmFfbWF0Y2hhbGwub1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9NYWtlZmlsZS04LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9NYWtlZmlsZTo5Om9iai0kKENPTkZJR19QUkVTVEVSQV9QQ0kpXHQmIzQzOz0gcHJlc3RlcmFfcGNpLm9cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmgtMTMtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmg6MTQ6I2RlZmluZSBQUkVTVEVSQV9EUlZfTkFNRVx0XCYjMzQ7cHJlc3RlcmFcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaC0xNS1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmgtMTctXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmg6MTg6c3RydWN0IHByZXN0ZXJhX2Z3X3JldiB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmgtMTktXHR1MTYgbWFqO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaC0yMy1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaDoyNDpzdHJ1Y3QgcHJlc3RlcmFfZmxvb2RfZG9tYWluIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaDoyNTpcdHN0cnVjdCBwcmVzdGVyYV9zd2l0Y2ggKnN3O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oLTI2LVx0c3RydWN0IGxpc3RfaGVhZCBmbG9vZF9kb21haW5fcG9ydF9saXN0O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaC0yOS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaDozMDpzdHJ1Y3QgcHJlc3RlcmFfbWRiX2VudHJ5IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaDozMTpcdHN0cnVjdCBwcmVzdGVyYV9zd2l0Y2ggKnN3O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oOjMyOlx0c3RydWN0IHByZXN0ZXJhX2Zsb29kX2RvbWFpbiAqZmxvb2RfZG9tYWluO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oLTMzLVx0dW5zaWduZWQgY2hhciBhZGRyW0VUSF9BTEVOXTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmgtMzYtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmg6Mzc6c3RydWN0IHByZXN0ZXJhX2Zsb29kX2RvbWFpbl9wb3J0IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaDozODpcdHN0cnVjdCBwcmVzdGVyYV9mbG9vZF9kb21haW4gKmZsb29kX2RvbWFpbjtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaC0zOS1cdHN0cnVjdCBuZXRfZGV2aWNlICpkZXY7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oLTQzLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oOjQ0OnN0cnVjdCBwcmVzdGVyYV9wb3J0X3N0YXRzIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaC00NS1cdHU2NCBnb29kX29jdGV0c19yZWNlaXZlZDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmgtNzgtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmg6Nzk6c3RydWN0IHByZXN0ZXJhX3BvcnRfY2FwcyB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmgtODAtXHR1NjQgc3VwcF9saW5rX21vZGVzO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaC04NS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaDo4NjpzdHJ1Y3QgcHJlc3RlcmFfbGFnIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaC04Ny1cdHN0cnVjdCBuZXRfZGV2aWNlICpkZXY7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oLTkyLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oOjkzOnN0cnVjdCBwcmVzdGVyYV9mbG93X2Jsb2NrO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oLTk0LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oOjk1OnN0cnVjdCBwcmVzdGVyYV9wb3J0X21hY19zdGF0ZSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmgtOTYtXHRib29sIHZhbGlkO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaC0xMDQtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmg6MTA1OnN0cnVjdCBwcmVzdGVyYV9wb3J0X3BoeV9zdGF0ZSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmgtMTA2LVx0dTY0IGxtb2RlX2JtYXA7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oLTExMy1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaDoxMTQ6c3RydWN0IHByZXN0ZXJhX3BvcnRfbWFjX2NvbmZpZyB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmgtMTE1LVx0dTMyIG1vZGU7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oLTEyMi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaDoxMjM6c3RydWN0IHByZXN0ZXJhX3BvcnRfcGh5X2NvbmZpZyB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmgtMTI0LVx0dTMyIG1vZGU7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oLTEyOC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaDoxMjk6c3RydWN0IHByZXN0ZXJhX3BvcnQge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oLTEzMC1cdHN0cnVjdCBuZXRfZGV2aWNlICpkZXY7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmg6MTMxOlx0c3RydWN0IHByZXN0ZXJhX3N3aXRjaCAqc3c7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmg6MTMyOlx0c3RydWN0IHByZXN0ZXJhX2Zsb3dfYmxvY2sgKmluZ3Jlc3NfZmxvd19ibG9jaztcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaDoxMzM6XHRzdHJ1Y3QgcHJlc3RlcmFfZmxvd19ibG9jayAqZWdyZXNzX2Zsb3dfYmxvY2s7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmgtMTM0LVx0c3RydWN0IGRldmxpbmtfcG9ydCBkbF9wb3J0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oLTEzNS1cdHN0cnVjdCBsaXN0X2hlYWQgbGFnX21lbWJlcjtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaDoxMzY6XHRzdHJ1Y3QgcHJlc3RlcmFfbGFnICpsYWc7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmgtMTM3LVx0dTMyIGlkO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaC0xNDQtXHR1OCBhZHZlcl9mZWM7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmg6MTQ1Olx0c3RydWN0IHByZXN0ZXJhX3BvcnRfY2FwcyBjYXBzO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oLTE0Ni1cdHN0cnVjdCBsaXN0X2hlYWQgbGlzdDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmgtMTQ4LVx0c3RydWN0IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaDoxNDk6XHRcdHN0cnVjdCBwcmVzdGVyYV9wb3J0X3N0YXRzIHN0YXRzO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oLTE1MC1cdFx0c3RydWN0IGRlbGF5ZWRfd29yayBjYWNoaW5nX2R3O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oLTE1MS1cdH0gY2FjaGVkX2h3X3N0YXRzO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oOjE1MjpcdHN0cnVjdCBwcmVzdGVyYV9wb3J0X21hY19jb25maWcgY2ZnX21hYztcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaDoxNTM6XHRzdHJ1Y3QgcHJlc3RlcmFfcG9ydF9waHlfY29uZmlnIGNmZ19waHk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmg6MTU0Olx0c3RydWN0IHByZXN0ZXJhX3BvcnRfbWFjX3N0YXRlIHN0YXRlX21hYztcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaDoxNTU6XHRzdHJ1Y3QgcHJlc3RlcmFfcG9ydF9waHlfc3RhdGUgc3RhdGVfcGh5O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oLTE1Ni1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmgtMTY0LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oOjE2NTpzdHJ1Y3QgcHJlc3RlcmFfZGV2aWNlIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaC0xNjYtXHRzdHJ1Y3QgZGV2aWNlICpkZXY7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oLTE2OC1cdHU4IF9faW9tZW0gKnBwX3JlZ3M7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmg6MTY5Olx0c3RydWN0IHByZXN0ZXJhX2Z3X3JldiBmd19yZXY7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmgtMTcwLVx0dm9pZCAqcHJpdjtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmgtMTcyLVx0LyogY2FsbGVkIGJ5IGRldmljZSBkcml2ZXIgdG8gaGFuZGxlIHJlY2VpdmVkIHBhY2tldHMgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaDoxNzM6XHR2b2lkICgqcmVjdl9wa3QpKHN0cnVjdCBwcmVzdGVyYV9kZXZpY2UgKmRldik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmgtMTc0LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oLTE3NS1cdC8qIGNhbGxlZCBieSBkZXZpY2UgZHJpdmVyIHRvIHBhc3MgZXZlbnQgdXAgdG8gdGhlIGhpZ2hlciBsYXllciAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oOjE3NjpcdGludCAoKnJlY3ZfbXNnKShzdHJ1Y3QgcHJlc3RlcmFfZGV2aWNlICpkZXYsIHZvaWQgKm1zZywgc2l6ZV90IHNpemUpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oLTE3Ny1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaC0xNzgtXHQvKiBjYWxsZWQgYnkgaGlnaGVyIGxheWVyIHRvIHNlbmQgcmVxdWVzdCB0byB0aGUgZmlybXdhcmUgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaDoxNzk6XHRpbnQgKCpzZW5kX3JlcSkoc3RydWN0IHByZXN0ZXJhX2RldmljZSAqZGV2LCBpbnQgcWlkLCB2b2lkICppbl9tc2csXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmgtMTgwLVx0XHRcdHNpemVfdCBpbl9zaXplLCB2b2lkICpvdXRfbXNnLCBzaXplX3Qgb3V0X3NpemUsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oLTE4My1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaDoxODQ6ZW51bSBwcmVzdGVyYV9ldmVudF90eXBlIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaC0xODUtXHRQUkVTVEVSQV9FVkVOVF9UWVBFX1VOU1BFQyxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmgtMTkzLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oOjE5NDplbnVtIHByZXN0ZXJhX3J4dHhfZXZlbnRfaWQge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oLTE5NS1cdFBSRVNURVJBX1JYVFhfRVZFTlRfVU5TUEVDLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaC0xOTgtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmg6MTk5OmVudW0gcHJlc3RlcmFfcG9ydF9ldmVudF9pZCB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmgtMjAwLVx0UFJFU1RFUkFfUE9SVF9FVkVOVF9VTlNQRUMsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oLTIwMy1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaDoyMDQ6c3RydWN0IHByZXN0ZXJhX3BvcnRfZXZlbnQge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oLTIwNS1cdHUzMiBwb3J0X2lkO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaC0yMjUtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmg6MjI2OmVudW0gcHJlc3RlcmFfZmRiX2VudHJ5X3R5cGUge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oLTIyNy1cdFBSRVNURVJBX0ZEQl9FTlRSWV9UWVBFX1JFR19QT1JULFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaC0yMzEtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmg6MjMyOmVudW0gcHJlc3RlcmFfZmRiX2V2ZW50X2lkIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaC0yMzMtXHRQUkVTVEVSQV9GREJfRVZFTlRfVU5TUEVDLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaC0yMzctXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmg6MjM4OnN0cnVjdCBwcmVzdGVyYV9mZGJfZXZlbnQge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oOjIzOTpcdGVudW0gcHJlc3RlcmFfZmRiX2VudHJ5X3R5cGUgdHlwZTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaC0yNDAtXHR1bmlvbiB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oLTI0OS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaDoyNTA6c3RydWN0IHByZXN0ZXJhX2V2ZW50IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaC0yNTEtXHR1MTYgaWQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmgtMjUyLVx0dW5pb24ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oOjI1MzpcdFx0c3RydWN0IHByZXN0ZXJhX3BvcnRfZXZlbnQgcG9ydF9ldnQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmg6MjU0Olx0XHRzdHJ1Y3QgcHJlc3RlcmFfZmRiX2V2ZW50IGZkYl9ldnQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmgtMjU1LVx0fTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmgtMjU3LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oOjI1ODplbnVtIHByZXN0ZXJhX2lmX3R5cGUge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oLTI1OS1cdC8qIHRoZSBpbnRlcmZhY2UgaXMgb2YgcG9ydCB0eXBlIChkZXYscG9ydCkgKi9cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmgtMjY4LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oOjI2OTpzdHJ1Y3QgcHJlc3RlcmFfaWZhY2Uge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oOjI3MDpcdGVudW0gcHJlc3RlcmFfaWZfdHlwZSB0eXBlO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oLTI3MS1cdHN0cnVjdCB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oLTI4MC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaDoyODE6c3RydWN0IHByZXN0ZXJhX3N3aXRjaGRldjtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaDoyODI6c3RydWN0IHByZXN0ZXJhX3NwYW47XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmg6MjgzOnN0cnVjdCBwcmVzdGVyYV9yeHR4O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oOjI4NDpzdHJ1Y3QgcHJlc3RlcmFfdHJhcF9kYXRhO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oOjI4NTpzdHJ1Y3QgcHJlc3RlcmFfYWNsO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oLTI4Ni1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaDoyODc6c3RydWN0IHByZXN0ZXJhX3N3aXRjaCB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmg6Mjg4Olx0c3RydWN0IHByZXN0ZXJhX2RldmljZSAqZGV2O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oOjI4OTpcdHN0cnVjdCBwcmVzdGVyYV9zd2l0Y2hkZXYgKnN3ZGV2O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oOjI5MDpcdHN0cnVjdCBwcmVzdGVyYV9yeHR4ICpyeHR4O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oOjI5MTpcdHN0cnVjdCBwcmVzdGVyYV9hY2wgKmFjbDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaDoyOTI6XHRzdHJ1Y3QgcHJlc3RlcmFfc3BhbiAqc3BhbjtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaC0yOTMtXHRzdHJ1Y3QgbGlzdF9oZWFkIGV2ZW50X2hhbmRsZXJzO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oLTI5NC1cdHN0cnVjdCBub3RpZmllcl9ibG9jayBuZXRkZXZfbmI7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmg6Mjk1Olx0c3RydWN0IHByZXN0ZXJhX3RyYXBfZGF0YSAqdHJhcF9kYXRhO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oLTI5Ni1cdGNoYXIgYmFzZV9tYWNbRVRIX0FMRU5dO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaC0zMDMtXHRzdHJ1Y3QgZGV2aWNlX25vZGUgKm5wO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oOjMwNDpcdHN0cnVjdCBwcmVzdGVyYV9yb3V0ZXIgKnJvdXRlcjtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaDozMDU6XHRzdHJ1Y3QgcHJlc3RlcmFfbGFnICpsYWdzO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oOjMwNjpcdHN0cnVjdCBwcmVzdGVyYV9jb3VudGVyICpjb3VudGVyO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oLTMwNy1cdHU4IGxhZ19tZW1iZXJfbWF4O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaC0zMTEtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmg6MzEyOnN0cnVjdCBwcmVzdGVyYV9yb3V0ZXIge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oOjMxMzpcdHN0cnVjdCBwcmVzdGVyYV9zd2l0Y2ggKnN3O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oLTMxNC1cdHN0cnVjdCBsaXN0X2hlYWQgdnJfbGlzdDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmgtMzMxLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oOjMzMjpzdHJ1Y3QgcHJlc3RlcmFfcnh0eF9wYXJhbXMge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oLTMzMy1cdGJvb2wgdXNlX3NkbWE7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oLTMzNi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaDozMzc6I2RlZmluZSBwcmVzdGVyYV9kZXYoc3cpXHRcdCgoc3cpLVx1MDAzZWRldi1cdTAwM2VkZXYpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmgtMzM4LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oOjMzOTpzdGF0aWMgaW5saW5lIHZvaWQgcHJlc3RlcmFfd3JpdGUoY29uc3Qgc3RydWN0IHByZXN0ZXJhX3N3aXRjaCAqc3csXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmgtMzQwLVx0XHRcdFx0ICB1bnNpZ25lZCBpbnQgcmVnLCB1MzIgdmFsKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaC0zNDQtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmg6MzQ1OnN0YXRpYyBpbmxpbmUgdTMyIHByZXN0ZXJhX3JlYWQoY29uc3Qgc3RydWN0IHByZXN0ZXJhX3N3aXRjaCAqc3csXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmgtMzQ2LVx0XHRcdFx0dW5zaWduZWQgaW50IHJlZylcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmgtMzUwLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oOjM1MTppbnQgcHJlc3RlcmFfZGV2aWNlX3JlZ2lzdGVyKHN0cnVjdCBwcmVzdGVyYV9kZXZpY2UgKmRldik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmg6MzUyOnZvaWQgcHJlc3RlcmFfZGV2aWNlX3VucmVnaXN0ZXIoc3RydWN0IHByZXN0ZXJhX2RldmljZSAqZGV2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaC0zNTMtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmg6MzU0OnN0cnVjdCBwcmVzdGVyYV9wb3J0ICpwcmVzdGVyYV9wb3J0X2ZpbmRfYnlfaHdpZChzdHJ1Y3QgcHJlc3RlcmFfc3dpdGNoICpzdyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaC0zNTUtXHRcdFx0XHRcdFx0IHUzMiBkZXZfaWQsIHUzMiBod19pZCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmgtMzU2LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oOjM1NzppbnQgcHJlc3RlcmFfcG9ydF9hdXRvbmVnX3NldChzdHJ1Y3QgcHJlc3RlcmFfcG9ydCAqcG9ydCwgdTY0IGxpbmtfbW9kZXMpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oLTM1OC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaDozNTk6aW50IHByZXN0ZXJhX3JvdXRlcl9pbml0KHN0cnVjdCBwcmVzdGVyYV9zd2l0Y2ggKnN3KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaDozNjA6dm9pZCBwcmVzdGVyYV9yb3V0ZXJfZmluaShzdHJ1Y3QgcHJlc3RlcmFfc3dpdGNoICpzdyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmgtMzYxLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oOjM2MjpzdHJ1Y3QgcHJlc3RlcmFfcG9ydCAqcHJlc3RlcmFfZmluZF9wb3J0KHN0cnVjdCBwcmVzdGVyYV9zd2l0Y2ggKnN3LCB1MzIgaWQpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oLTM2My1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaDozNjQ6c3RydWN0IHByZXN0ZXJhX3N3aXRjaCAqcHJlc3RlcmFfc3dpdGNoX2dldChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaC0zNjUtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmg6MzY2OmludCBwcmVzdGVyYV9wb3J0X2NmZ19tYWNfcmVhZChzdHJ1Y3QgcHJlc3RlcmFfcG9ydCAqcG9ydCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaDozNjc6XHRcdFx0ICAgICAgIHN0cnVjdCBwcmVzdGVyYV9wb3J0X21hY19jb25maWcgKmNmZyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmgtMzY4LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oOjM2OTppbnQgcHJlc3RlcmFfcG9ydF9jZmdfbWFjX3dyaXRlKHN0cnVjdCBwcmVzdGVyYV9wb3J0ICpwb3J0LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oOjM3MDpcdFx0XHRcdHN0cnVjdCBwcmVzdGVyYV9wb3J0X21hY19jb25maWcgKmNmZyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmgtMzcxLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oOjM3MjpzdHJ1Y3QgcHJlc3RlcmFfcG9ydCAqcHJlc3RlcmFfcG9ydF9kZXZfbG93ZXJfZmluZChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaC0zNzMtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmg6Mzc0OnZvaWQgcHJlc3RlcmFfcXVldWVfd29yayhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oOjM3NTp2b2lkIHByZXN0ZXJhX3F1ZXVlX2RlbGF5ZWRfd29yayhzdHJ1Y3QgZGVsYXllZF93b3JrICp3b3JrLCB1bnNpZ25lZCBsb25nIGRlbGF5KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaDozNzY6dm9pZCBwcmVzdGVyYV9xdWV1ZV9kcmFpbih2b2lkKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaC0zNzctXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmg6Mzc4OmludCBwcmVzdGVyYV9wb3J0X2xlYXJuaW5nX3NldChzdHJ1Y3QgcHJlc3RlcmFfcG9ydCAqcG9ydCwgYm9vbCBsZWFybl9lbmFibGUpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oOjM3OTppbnQgcHJlc3RlcmFfcG9ydF91Y19mbG9vZF9zZXQoc3RydWN0IHByZXN0ZXJhX3BvcnQgKnBvcnQsIGJvb2wgZmxvb2QpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oOjM4MDppbnQgcHJlc3RlcmFfcG9ydF9tY19mbG9vZF9zZXQoc3RydWN0IHByZXN0ZXJhX3BvcnQgKnBvcnQsIGJvb2wgZmxvb2QpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oLTM4MS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaDozODI6aW50IHByZXN0ZXJhX3BvcnRfYnJfbG9ja2VkX3NldChzdHJ1Y3QgcHJlc3RlcmFfcG9ydCAqcG9ydCwgYm9vbCBicl9sb2NrZWQpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oLTM4My1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaDozODQ6aW50IHByZXN0ZXJhX3BvcnRfcHZpZF9zZXQoc3RydWN0IHByZXN0ZXJhX3BvcnQgKnBvcnQsIHUxNiB2aWQpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oLTM4NS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaDozODY6Ym9vbCBwcmVzdGVyYV9uZXRkZXZfY2hlY2soY29uc3Qgc3RydWN0IG5ldF9kZXZpY2UgKmRldik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmgtMzg3LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oOjM4ODppbnQgcHJlc3RlcmFfaXNfdmFsaWRfbWFjX2FkZHIoc3RydWN0IHByZXN0ZXJhX3BvcnQgKnBvcnQsIGNvbnN0IHU4ICphZGRyKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaC0zODktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmg6MzkwOmJvb2wgcHJlc3RlcmFfcG9ydF9pc19sYWdfbWVtYmVyKGNvbnN0IHN0cnVjdCBwcmVzdGVyYV9wb3J0ICpwb3J0KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaDozOTE6aW50IHByZXN0ZXJhX2xhZ19pZChzdHJ1Y3QgcHJlc3RlcmFfc3dpdGNoICpzdyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaC0zOTItXHRcdCAgICBzdHJ1Y3QgbmV0X2RldmljZSAqbGFnX2RldiwgdTE2ICpsYWdfaWQpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oLTM5My1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaDozOTQ6c3RydWN0IHByZXN0ZXJhX2xhZyAqcHJlc3RlcmFfbGFnX2J5X2lkKHN0cnVjdCBwcmVzdGVyYV9zd2l0Y2ggKnN3LCB1MTYgaWQpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oLTM5NS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaDozOTY6dTE2IHByZXN0ZXJhX3BvcnRfbGFnX2lkKGNvbnN0IHN0cnVjdCBwcmVzdGVyYV9wb3J0ICpwb3J0KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaC0zOTctXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmg6Mzk4OnN0cnVjdCBwcmVzdGVyYV9tZGJfZW50cnkgKlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oOjM5OTpwcmVzdGVyYV9tZGJfZW50cnlfY3JlYXRlKHN0cnVjdCBwcmVzdGVyYV9zd2l0Y2ggKnN3LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oLTQwMC1cdFx0XHQgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmFkZHIsIHUxNiB2aWQpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oOjQwMTp2b2lkIHByZXN0ZXJhX21kYl9lbnRyeV9kZXN0cm95KHN0cnVjdCBwcmVzdGVyYV9tZGJfZW50cnkgKm1kYl9lbnRyeSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmgtNDAyLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oOjQwMzpzdHJ1Y3QgcHJlc3RlcmFfZmxvb2RfZG9tYWluICpcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaDo0MDQ6cHJlc3RlcmFfZmxvb2RfZG9tYWluX2NyZWF0ZShzdHJ1Y3QgcHJlc3RlcmFfc3dpdGNoICpzdyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmg6NDA1OnZvaWQgcHJlc3RlcmFfZmxvb2RfZG9tYWluX2Rlc3Ryb3koc3RydWN0IHByZXN0ZXJhX2Zsb29kX2RvbWFpbiAqZmxvb2RfZG9tYWluKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaC00MDYtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmg9NDA3PWludFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oOjQwODpwcmVzdGVyYV9mbG9vZF9kb21haW5fcG9ydF9jcmVhdGUoc3RydWN0IHByZXN0ZXJhX2Zsb29kX2RvbWFpbiAqZmxvb2RfZG9tYWluLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oLTQwOS1cdFx0XHRcdCAgc3RydWN0IG5ldF9kZXZpY2UgKmRldixcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmg9NDExPXZvaWRcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaDo0MTI6cHJlc3RlcmFfZmxvb2RfZG9tYWluX3BvcnRfZGVzdHJveShzdHJ1Y3QgcHJlc3RlcmFfZmxvb2RfZG9tYWluX3BvcnQgKnBvcnQpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oOjQxMzpzdHJ1Y3QgcHJlc3RlcmFfZmxvb2RfZG9tYWluX3BvcnQgKlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oOjQxNDpwcmVzdGVyYV9mbG9vZF9kb21haW5fcG9ydF9maW5kKHN0cnVjdCBwcmVzdGVyYV9mbG9vZF9kb21haW4gKmZsb29kX2RvbWFpbixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaC00MTUtXHRcdFx0XHRzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCB1MTYgdmlkKTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jLTUtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jOjY6I2luY2x1ZGUgXCYjMzQ7cHJlc3RlcmFfYWNsLmhcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmM6NzojaW5jbHVkZSBcJiMzNDtwcmVzdGVyYV9mbG93LmhcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmM6ODojaW5jbHVkZSBcJiMzNDtwcmVzdGVyYV9ody5oXCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jOjk6I2luY2x1ZGUgXCYjMzQ7cHJlc3RlcmEuaFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYy0xMC1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jLTEzLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYzoxNDpzdHJ1Y3QgcHJlc3RlcmFfYWNsIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmM6MTU6XHRzdHJ1Y3QgcHJlc3RlcmFfc3dpdGNoICpzdztcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtMTYtXHRzdHJ1Y3QgbGlzdF9oZWFkIHZ0Y2FtX2xpc3Q7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYy0yMi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmM6MjM6c3RydWN0IHByZXN0ZXJhX2FjbF9ydWxlc2V0X2h0X2tleSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jOjI0Olx0c3RydWN0IHByZXN0ZXJhX2Zsb3dfYmxvY2sgKmJsb2NrO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYy0yNS1cdHUzMiBjaGFpbl9pbmRleDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jLTI3LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYzoyODpzdHJ1Y3QgcHJlc3RlcmFfYWNsX3J1bGVfZW50cnkge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYy0yOS1cdHN0cnVjdCByaGFzaF9oZWFkIGh0X25vZGU7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jOjMwOlx0c3RydWN0IHByZXN0ZXJhX2FjbF9ydWxlX2VudHJ5X2tleSBrZXk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jLTMxLVx0dTMyIGh3X2lkO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtMzgtXHRcdFx0dTggdmFsaWQ6MTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmM6Mzk6XHRcdFx0c3RydWN0IHByZXN0ZXJhX2FjbF9hY3Rpb25fcG9saWNlIGk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jLTQwLVx0XHR9IHBvbGljZTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtNDEtXHRcdHN0cnVjdCB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jOjQyOlx0XHRcdHN0cnVjdCBwcmVzdGVyYV9hY2xfYWN0aW9uX2p1bXAgaTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtNDMtXHRcdFx0dTggdmFsaWQ6MTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jLTQ2LVx0XHRcdHUzMiBpZDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmM6NDc6XHRcdFx0c3RydWN0IHByZXN0ZXJhX2NvdW50ZXJfYmxvY2sgKmJsb2NrO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYy00OC1cdFx0fSBjb3VudGVyO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtNTEtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jOjUyOnN0cnVjdCBwcmVzdGVyYV9hY2xfcnVsZXNldCB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jLTUzLVx0c3RydWN0IHJoYXNoX2hlYWQgaHRfbm9kZTsgLyogTWVtYmVyIG9mIGFjbCBIVCAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYzo1NDpcdHN0cnVjdCBwcmVzdGVyYV9hY2xfcnVsZXNldF9odF9rZXkgaHRfa2V5O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYy01NS1cdHN0cnVjdCByaGFzaHRhYmxlIHJ1bGVfaHQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jOjU2Olx0c3RydWN0IHByZXN0ZXJhX2FjbCAqYWNsO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYy01Ny1cdHN0cnVjdCB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYy03MC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmM6NzE6c3RydWN0IHByZXN0ZXJhX2FjbF92dGNhbSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jLTcyLVx0c3RydWN0IGxpc3RfaGVhZCBsaXN0O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtODAtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jOjgxOnN0YXRpYyBjb25zdCBzdHJ1Y3Qgcmhhc2h0YWJsZV9wYXJhbXMgcHJlc3RlcmFfYWNsX3J1bGVzZXRfaHRfcGFyYW1zID0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYzo4MjpcdC5rZXlfbGVuID0gc2l6ZW9mKHN0cnVjdCBwcmVzdGVyYV9hY2xfcnVsZXNldF9odF9rZXkpLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYzo4MzpcdC5rZXlfb2Zmc2V0ID0gb2Zmc2V0b2Yoc3RydWN0IHByZXN0ZXJhX2FjbF9ydWxlc2V0LCBodF9rZXkpLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYzo4NDpcdC5oZWFkX29mZnNldCA9IG9mZnNldG9mKHN0cnVjdCBwcmVzdGVyYV9hY2xfcnVsZXNldCwgaHRfbm9kZSksXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jLTg1LVx0LmF1dG9tYXRpY19zaHJpbmtpbmcgPSB0cnVlLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtODctXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jOjg4OnN0YXRpYyBjb25zdCBzdHJ1Y3Qgcmhhc2h0YWJsZV9wYXJhbXMgcHJlc3RlcmFfYWNsX3J1bGVfaHRfcGFyYW1zID0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYy04OS1cdC5rZXlfbGVuID0gc2l6ZW9mKHVuc2lnbmVkIGxvbmcpLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYzo5MDpcdC5rZXlfb2Zmc2V0ID0gb2Zmc2V0b2Yoc3RydWN0IHByZXN0ZXJhX2FjbF9ydWxlLCBjb29raWUpLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYzo5MTpcdC5oZWFkX29mZnNldCA9IG9mZnNldG9mKHN0cnVjdCBwcmVzdGVyYV9hY2xfcnVsZSwgaHRfbm9kZSksXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jLTkyLVx0LmF1dG9tYXRpY19zaHJpbmtpbmcgPSB0cnVlLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtOTQtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jOjk1OnN0YXRpYyBjb25zdCBzdHJ1Y3Qgcmhhc2h0YWJsZV9wYXJhbXMgX19wcmVzdGVyYV9hY2xfcnVsZV9lbnRyeV9odF9wYXJhbXMgPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jOjk2Olx0LmtleV9vZmZzZXQgID0gb2Zmc2V0b2Yoc3RydWN0IHByZXN0ZXJhX2FjbF9ydWxlX2VudHJ5LCBrZXkpLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYzo5NzpcdC5oZWFkX29mZnNldCA9IG9mZnNldG9mKHN0cnVjdCBwcmVzdGVyYV9hY2xfcnVsZV9lbnRyeSwgaHRfbm9kZSksXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jOjk4Olx0LmtleV9sZW4gICAgID0gc2l6ZW9mKHN0cnVjdCBwcmVzdGVyYV9hY2xfcnVsZV9lbnRyeV9rZXkpLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYy05OS1cdC5hdXRvbWF0aWNfc2hyaW5raW5nID0gdHJ1ZSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jLTEwMS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmM6MTAyOmludCBwcmVzdGVyYV9hY2xfY2hhaW5fdG9fY2xpZW50KHUzMiBjaGFpbl9pbmRleCwgYm9vbCBpbmdyZXNzLCB1MzIgKmNsaWVudClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtMTAzLXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jLTExMC1cdGlmICghaW5ncmVzcykge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYzoxMTE6XHRcdC8qIHByZXN0ZXJhIHN1cHBvcnRzIG9ubHkgb25lIGNoYWluIG9uIGVncmVzcyAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYy0xMTItXHRcdGlmIChjaGFpbl9pbmRleCBcdTAwM2UgMClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jLTEyNS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmM6MTI2OnN0YXRpYyBib29sIHByZXN0ZXJhX2FjbF9jaGFpbl9pc19zdXBwb3J0ZWQodTMyIGNoYWluX2luZGV4LCBib29sIGluZ3Jlc3MpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jLTEyNy17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jLTEyOC1cdGlmICghaW5ncmVzcylcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmM6MTI5Olx0XHQvKiBwcmVzdGVyYSBzdXBwb3J0cyBvbmx5IG9uZSBjaGFpbiBvbiBlZ3Jlc3MgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtMTMwLVx0XHRyZXR1cm4gY2hhaW5faW5kZXggPT0gMDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jLTEzNC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmM6MTM1OnN0YXRpYyBzdHJ1Y3QgcHJlc3RlcmFfYWNsX3J1bGVzZXQgKlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYzoxMzY6cHJlc3RlcmFfYWNsX3J1bGVzZXRfY3JlYXRlKHN0cnVjdCBwcmVzdGVyYV9hY2wgKmFjbCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmM6MTM3Olx0XHRcdCAgICBzdHJ1Y3QgcHJlc3RlcmFfZmxvd19ibG9jayAqYmxvY2ssXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jLTEzOC1cdFx0XHQgICAgdTMyIGNoYWluX2luZGV4KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYy0xMzkte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYzoxNDA6XHRzdHJ1Y3QgcHJlc3RlcmFfYWNsX3J1bGVzZXQgKnJ1bGVzZXQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jLTE0MS1cdHUzMiB1aWQgPSAwO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtMTQzLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYzoxNDQ6XHRpZiAoIXByZXN0ZXJhX2FjbF9jaGFpbl9pc19zdXBwb3J0ZWQoY2hhaW5faW5kZXgsIGJsb2NrLVx1MDAzZWluZ3Jlc3MpKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYy0xNDUtXHRcdHJldHVybiBFUlJfUFRSKC1FSU5WQUwpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtMTU2LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYzoxNTc6XHRlcnIgPSByaGFzaHRhYmxlX2luaXQoXHUwMDI2cnVsZXNldC1cdTAwM2VydWxlX2h0LCBcdTAwMjZwcmVzdGVyYV9hY2xfcnVsZV9odF9wYXJhbXMpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYy0xNTgtXHRpZiAoZXJyKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtMTcyLVx0ZXJyID0gcmhhc2h0YWJsZV9pbnNlcnRfZmFzdChcdTAwMjZhY2wtXHUwMDNlcnVsZXNldF9odCwgXHUwMDI2cnVsZXNldC1cdTAwM2VodF9ub2RlLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYzoxNzM6XHRcdFx0XHQgICAgIHByZXN0ZXJhX2FjbF9ydWxlc2V0X2h0X3BhcmFtcyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jLTE3NC1cdGlmIChlcnIpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYy0xODctXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jOjE4ODppbnQgcHJlc3RlcmFfYWNsX3J1bGVzZXRfa2V5bWFza19zZXQoc3RydWN0IHByZXN0ZXJhX2FjbF9ydWxlc2V0ICpydWxlc2V0LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYy0xODktXHRcdFx0XHQgICAgIHZvaWQgKmtleW1hc2spXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYy0xOTctXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jOjE5ODppbnQgcHJlc3RlcmFfYWNsX3J1bGVzZXRfb2ZmbG9hZChzdHJ1Y3QgcHJlc3RlcmFfYWNsX3J1bGVzZXQgKnJ1bGVzZXQpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jLTE5OS17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jOjIwMDpcdHN0cnVjdCBwcmVzdGVyYV9hY2xfaWZhY2UgaWZhY2U7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jLTIwMS1cdHUzMiB2dGNhbV9pZDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jLTIxMC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmM6MjExOlx0ZXJyID0gcHJlc3RlcmFfYWNsX3Z0Y2FtX2lkX2dldChydWxlc2V0LVx1MDAzZWFjbCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtMjEyLVx0XHRcdFx0XHRydWxlc2V0LVx1MDAzZWh0X2tleS5jaGFpbl9pbmRleCxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jLTIyMy1cdFx0aWZhY2UudHlwZSA9IFBSRVNURVJBX0FDTF9JRkFDRV9UWVBFX0lOREVYO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYzoyMjQ6XHRcdGVyciA9IHByZXN0ZXJhX2h3X3Z0Y2FtX2lmYWNlX2JpbmQocnVsZXNldC1cdTAwM2VhY2wtXHUwMDNlc3csIFx1MDAyNmlmYWNlLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYy0yMjUtXHRcdFx0XHRcdFx0ICAgdnRjYW1faWQsIHJ1bGVzZXQtXHUwMDNlcGNsX2lkKTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jLTIzNC1lcnJfcnVsZXNldF9iaW5kOlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYzoyMzU6XHRwcmVzdGVyYV9hY2xfdnRjYW1faWRfcHV0KHJ1bGVzZXQtXHUwMDNlYWNsLCBydWxlc2V0LVx1MDAzZXZ0Y2FtX2lkKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtMjM2LWVycl92dGNhbV9jcmVhdGU6XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYy0yMzktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jOjI0MDpzdGF0aWMgdm9pZCBwcmVzdGVyYV9hY2xfcnVsZXNldF9kZXN0cm95KHN0cnVjdCBwcmVzdGVyYV9hY2xfcnVsZXNldCAqcnVsZXNldClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtMjQxLXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmM6MjQyOlx0c3RydWN0IHByZXN0ZXJhX2FjbCAqYWNsID0gcnVsZXNldC1cdTAwM2VhY2w7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jLTI0My1cdHU4IHVpZCA9IHJ1bGVzZXQtXHUwMDNlcGNsX2lkIFx1MDAyNiBQUkVTVEVSQV9BQ0xfS0VZTUFTS19QQ0xfSURfVVNFUjtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jLTI0Ni1cdHJoYXNodGFibGVfcmVtb3ZlX2Zhc3QoXHUwMDI2YWNsLVx1MDAzZXJ1bGVzZXRfaHQsIFx1MDAyNnJ1bGVzZXQtXHUwMDNlaHRfbm9kZSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmM6MjQ3Olx0XHRcdCAgICAgICBwcmVzdGVyYV9hY2xfcnVsZXNldF9odF9wYXJhbXMpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYy0yNDgtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYy0yNTAtXHRcdGlmIChydWxlc2V0LVx1MDAzZWh0X2tleS5jaGFpbl9pbmRleCkge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYzoyNTE6XHRcdFx0c3RydWN0IHByZXN0ZXJhX2FjbF9pZmFjZSBpZmFjZSA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtMjUyLVx0XHRcdFx0LnR5cGUgPSBQUkVTVEVSQV9BQ0xfSUZBQ0VfVFlQRV9JTkRFWCxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jLTI1NC1cdFx0XHR9O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYzoyNTU6XHRcdFx0ZXJyID0gcHJlc3RlcmFfaHdfdnRjYW1faWZhY2VfdW5iaW5kKGFjbC1cdTAwM2VzdywgXHUwMDI2aWZhY2UsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jLTI1Ni1cdFx0XHRcdFx0XHRcdCAgICAgcnVsZXNldC1cdTAwM2V2dGNhbV9pZCk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYy0yNTgtXHRcdH1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmM6MjU5Olx0XHRXQVJOX09OKHByZXN0ZXJhX2FjbF92dGNhbV9pZF9wdXQoYWNsLCBydWxlc2V0LVx1MDAzZXZ0Y2FtX2lkKSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jLTI2MC1cdH1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jLTI2Ny1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmM6MjY4OnN0YXRpYyBzdHJ1Y3QgcHJlc3RlcmFfYWNsX3J1bGVzZXQgKlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYzoyNjk6X19wcmVzdGVyYV9hY2xfcnVsZXNldF9sb29rdXAoc3RydWN0IHByZXN0ZXJhX2FjbCAqYWNsLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYzoyNzA6XHRcdFx0ICAgICAgc3RydWN0IHByZXN0ZXJhX2Zsb3dfYmxvY2sgKmJsb2NrLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYy0yNzEtXHRcdFx0ICAgICAgdTMyIGNoYWluX2luZGV4KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYy0yNzIte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYzoyNzM6XHRzdHJ1Y3QgcHJlc3RlcmFfYWNsX3J1bGVzZXRfaHRfa2V5IGh0X2tleTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtMjc0LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtMjc4LVx0cmV0dXJuIHJoYXNodGFibGVfbG9va3VwX2Zhc3QoXHUwMDI2YWNsLVx1MDAzZXJ1bGVzZXRfaHQsIFx1MDAyNmh0X2tleSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmM6Mjc5Olx0XHRcdFx0ICAgICAgcHJlc3RlcmFfYWNsX3J1bGVzZXRfaHRfcGFyYW1zKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtMjgwLX1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtMjgxLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYzoyODI6c3RydWN0IHByZXN0ZXJhX2FjbF9ydWxlc2V0ICpcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmM6MjgzOnByZXN0ZXJhX2FjbF9ydWxlc2V0X2xvb2t1cChzdHJ1Y3QgcHJlc3RlcmFfYWNsICphY2wsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jOjI4NDpcdFx0XHQgICAgc3RydWN0IHByZXN0ZXJhX2Zsb3dfYmxvY2sgKmJsb2NrLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYy0yODUtXHRcdFx0ICAgIHUzMiBjaGFpbl9pbmRleClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtMjg2LXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmM6Mjg3Olx0c3RydWN0IHByZXN0ZXJhX2FjbF9ydWxlc2V0ICpydWxlc2V0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYy0yODgtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jOjI4OTpcdHJ1bGVzZXQgPSBfX3ByZXN0ZXJhX2FjbF9ydWxlc2V0X2xvb2t1cChhY2wsIGJsb2NrLCBjaGFpbl9pbmRleCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jLTI5MC1cdGlmICghcnVsZXNldClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jLTI5Ni1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmM6Mjk3OnN0cnVjdCBwcmVzdGVyYV9hY2xfcnVsZXNldCAqXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jOjI5ODpwcmVzdGVyYV9hY2xfcnVsZXNldF9nZXQoc3RydWN0IHByZXN0ZXJhX2FjbCAqYWNsLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYzoyOTk6XHRcdFx0IHN0cnVjdCBwcmVzdGVyYV9mbG93X2Jsb2NrICpibG9jayxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtMzAwLVx0XHRcdCB1MzIgY2hhaW5faW5kZXgpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jLTMwMS17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jOjMwMjpcdHN0cnVjdCBwcmVzdGVyYV9hY2xfcnVsZXNldCAqcnVsZXNldDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtMzAzLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYzozMDQ6XHRydWxlc2V0ID0gX19wcmVzdGVyYV9hY2xfcnVsZXNldF9sb29rdXAoYWNsLCBibG9jaywgY2hhaW5faW5kZXgpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYy0zMDUtXHRpZiAocnVsZXNldCkge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtMzA5LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYzozMTA6XHRyZXR1cm4gcHJlc3RlcmFfYWNsX3J1bGVzZXRfY3JlYXRlKGFjbCwgYmxvY2ssIGNoYWluX2luZGV4KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtMzExLX1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtMzEyLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYzozMTM6dm9pZCBwcmVzdGVyYV9hY2xfcnVsZXNldF9wdXQoc3RydWN0IHByZXN0ZXJhX2FjbF9ydWxlc2V0ICpydWxlc2V0KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYy0zMTQte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtMzE3LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYzozMTg6XHRwcmVzdGVyYV9hY2xfcnVsZXNldF9kZXN0cm95KHJ1bGVzZXQpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYy0zMTktfVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYy0zMjAtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jOjMyMTppbnQgcHJlc3RlcmFfYWNsX3J1bGVzZXRfYmluZChzdHJ1Y3QgcHJlc3RlcmFfYWNsX3J1bGVzZXQgKnJ1bGVzZXQsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jOjMyMjpcdFx0XHQgICAgICBzdHJ1Y3QgcHJlc3RlcmFfcG9ydCAqcG9ydClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtMzIzLXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmM6MzI0Olx0c3RydWN0IHByZXN0ZXJhX2FjbF9pZmFjZSBpZmFjZSA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtMzI1LVx0XHQudHlwZSA9IFBSRVNURVJBX0FDTF9JRkFDRV9UWVBFX1BPUlQsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYy0zMjgtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jOjMyOTpcdHJldHVybiBwcmVzdGVyYV9od192dGNhbV9pZmFjZV9iaW5kKHBvcnQtXHUwMDNlc3csIFx1MDAyNmlmYWNlLCBydWxlc2V0LVx1MDAzZXZ0Y2FtX2lkLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYy0zMzAtXHRcdFx0XHRcdCAgICBydWxlc2V0LVx1MDAzZXBjbF9pZCk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYy0zMzItXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jOjMzMzppbnQgcHJlc3RlcmFfYWNsX3J1bGVzZXRfdW5iaW5kKHN0cnVjdCBwcmVzdGVyYV9hY2xfcnVsZXNldCAqcnVsZXNldCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmM6MzM0Olx0XHRcdFx0c3RydWN0IHByZXN0ZXJhX3BvcnQgKnBvcnQpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jLTMzNS17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jOjMzNjpcdHN0cnVjdCBwcmVzdGVyYV9hY2xfaWZhY2UgaWZhY2UgPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jLTMzNy1cdFx0LnR5cGUgPSBQUkVTVEVSQV9BQ0xfSUZBQ0VfVFlQRV9QT1JULFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtMzQwLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYzozNDE6XHRyZXR1cm4gcHJlc3RlcmFfaHdfdnRjYW1faWZhY2VfdW5iaW5kKHBvcnQtXHUwMDNlc3csIFx1MDAyNmlmYWNlLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYy0zNDItXHRcdFx0XHRcdCAgICAgIHJ1bGVzZXQtXHUwMDNldnRjYW1faWQpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtMzQ0LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYzozNDU6c3RhdGljIGludCBwcmVzdGVyYV9hY2xfcnVsZXNldF9ibG9ja19iaW5kKHN0cnVjdCBwcmVzdGVyYV9hY2xfcnVsZXNldCAqcnVsZXNldCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmM6MzQ2Olx0XHRcdFx0XHQgICBzdHJ1Y3QgcHJlc3RlcmFfZmxvd19ibG9jayAqYmxvY2spXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jLTM0Ny17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jOjM0ODpcdHN0cnVjdCBwcmVzdGVyYV9mbG93X2Jsb2NrX2JpbmRpbmcgKmJpbmRpbmc7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jLTM0OS1cdGludCBlcnI7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYy0zNTItXHRsaXN0X2Zvcl9lYWNoX2VudHJ5KGJpbmRpbmcsIFx1MDAyNmJsb2NrLVx1MDAzZWJpbmRpbmdfbGlzdCwgbGlzdCkge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYzozNTM6XHRcdGVyciA9IHByZXN0ZXJhX2FjbF9ydWxlc2V0X2JpbmQocnVsZXNldCwgYmluZGluZy1cdTAwM2Vwb3J0KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtMzU0LVx0XHRpZiAoZXJyKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtMzYxLVx0XHRcdFx0XHQgICAgIGxpc3QpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jOjM2MjpcdFx0ZXJyID0gcHJlc3RlcmFfYWNsX3J1bGVzZXRfdW5iaW5kKHJ1bGVzZXQsIGJpbmRpbmctXHUwMDNlcG9ydCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jLTM2My1cdGJsb2NrLVx1MDAzZXJ1bGVzZXRfemVybyA9IE5VTEw7XG5cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yMCAxMDoxODwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxNzI3NwoJCQkJCQkJb3V0cHV0OiA0MgoJCQkJCQkJdGhvdWdodHM6IDExNwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipJbnZlc3RpZ2F0aW5nIHRoZSBUZXN0YWJpbGl0eSBvZiB0aGUgYHByZXN0ZXJhYCBEcml2ZXIqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgYHByZXN0ZXJhYCBkcml2ZXIsIGFuZCBpdCYjMzk7cyBhIFBDSSBkcml2ZXIg4oCTIHRoYXQmIzM5O3Mgd2hhdCB0aGUgYENPTkZJR19QUkVTVEVSQV9QQ0lgIHNldHRpbmcgaW5kaWNhdGVzLiBNeSBpbml0aWFsIHRob3VnaHQgaXMsIGNhbiBJIGV2ZW4gKnJlYXNvbmFibHkqIHRlc3QgdGhpcyB0aGluZyBpbiBRRU1VPyBUeXBpY2FsbHksIHdoZW4gd2UmIzM5O3JlIGRlYWxpbmcgd2l0aCBQQ0kgZHJpdmVycyBmb3Igc3BlY2lhbGl6ZWQgQVNJQ3MsIHRoZSBhbnN3ZXIgaXMgYSByZXNvdW5kaW5nIG5vLiBUaGluayBNZWxsYW5veCwgTWFydmVsbCwgQnJvYWRjb20g4oCTIHRob3NlIGNoaXBzIGFyZW4mIzM5O3QgZW11bGF0ZWQgaW4gYSB0eXBpY2FsIFFFTVUgZW52aXJvbm1lbnQsIG1ha2luZyBkaXJlY3QgZHJpdmVyIHRlc3RpbmcgYSBub24tc3RhcnRlci4gQnV0LCBob2xkIG9uIGEgc2Vjb25kLi4uIHRoZSBgcHJlc3RlcmFgIGRyaXZlciAqZG9lcyogaGF2ZSBhIFBDSSBpbnRlcmZhY2U7IGl0JiMzOTtzIGdvdCB0aGF0IGBwcmVzdGVyYV9wY2kuY2AgZmlsZS4gQW5kIGl0IHRhbGtzIHRvIGZpcm13YXJlLCB3aGljaCBpcyBrZXkuIFRoZSBmaXJtd2FyZSBpbnRlcmFjdGlvbiBpcyBwb3RlbnRpYWxseSB0aGUgaW1wb3J0YW50IGFzcGVjdCBmb3IgdGVzdGFiaWxpdHkuCgpOb3csIHRoZSBpbXBvcnRhbnQgcXVlc3Rpb24gaXM6IGRvZXMgdGhlIGRyaXZlciBoYXZlIGhhcmRjb2RlZCBkZXBlbmRlbmNpZXMgb24gc3BlY2lmaWMgUENJIElEcz8gVGhhdOKAmXMgbXkgbmV4dCBzdGVwLiBJJiMzOTtsbCBuZWVkIHRvIGRpZyBpbnRvIGBwcmVzdGVyYV9wY2kuY2AgYW5kIHNlZSBpZiBpdCYjMzk7cyB0aWdodGx5IGNvdXBsZWQgdG8gY2VydGFpbiBoYXJkd2FyZSBjb25maWd1cmF0aW9ucy4gSWYgaXQmIzM5O3MgKnRvbyogc3BlY2lmaWMsIHRoZW4gUUVNVSB0ZXN0aW5nIHdpbGwgYmUgdHJpY2t5LCBhbmQgSSYjMzk7bGwgbmVlZCB0byBleHBsb3JlIG90aGVyIG9wdGlvbnMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjAgMTA6MTg8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkVycm9yOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bm8gbWF0Y2hlczwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtwcmVzdGVyYV9wY2lfaWRfdGFibGUmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtlcnJvciYjMzQ7OiAmIzM0O25vIG1hdGNoZXMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ny8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjAgMTA6MTg8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTc3MjUKCQkJCQkJCW91dHB1dDogMzkKCQkJCQkJCXRob3VnaHRzOiAyMgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+SGVyZSYjMzk7cyBhIHN1bW1hcnkgb2YgbXkgdGhvdWdodCBwcm9jZXNzLCBhcyByZXF1ZXN0ZWQ6CgoqKkRpdmluZyBpbnRvIGBwcmVzdGVyYV9wY2kuY2AgZm9yIFBDSSBEZXZpY2UgSUQgSW5mbyoqCgpPa2F5LCBzbyBJIG5lZWQgdG8gZmluZCB0aGUgcmVsZXZhbnQgUENJIGRldmljZSBpZGVudGlmaWNhdGlvbiBpbmZvcm1hdGlvbi4gTXkgZmlyc3QgaW5zdGluY3QgaXMgdG8gemVybyBpbiBvbiB0aGUgYHByZXN0ZXJhX3BjaS5jYCBmaWxlLiBHaXZlbiB0aGUgY29udGV4dCwgaXQmIzM5O3MgYSB2ZXJ5IGxvZ2ljYWwgcGxhY2UgdG8gc3RhcnQuIFRoaXMgZmlsZSBsaWtlbHkgaGFuZGxlcyB0aGUgUHJlc3RlcmEmIzM5O3MgaW50ZXJhY3Rpb24gd2l0aCB0aGUgUENJIGJ1cywgc28gdGhlIGBwY2lfZGV2aWNlX2lkYCBzdHJ1Y3R1cmUgb3IgbWFjcm8gc2hvdWxkIGJlIGRlZmluZWQgb3IgdXNlZCB3aXRoaW4gaXQgdG8gaWRlbnRpZnkgY29tcGF0aWJsZSBoYXJkd2FyZS4gSSYjMzk7bGwgbmVlZCB0byBjb25maXJtIHRoYXQgdGhpcyBpcyB0aGUgYmVzdCBwbGFjZSB0byBmaW5kIHRoZSBpbmZvLiBJJiMzOTttIG1lbnRhbGx5IHByZXBhcmluZyB0byBuYXZpZ2F0ZSB0aGUgY29kZSB3aXRoaW4gdGhhdCBmaWxlIGFuZCBleGFtaW5lIGFueSByZWZlcmVuY2VzIHRvIGBwY2lfZGV2aWNlX2lkYCBhcyB0aGUgcHJpbWFyeSBrZXkuIElmIHRoYXQmIzM5O3MgdGhlIGNhc2UsIEkgc2hvdWxkIGJlIGFibGUgdG8gcXVpY2tseSB6ZXJvIGluIG9uIHZlbmRvciBhbmQgZGV2aWNlIElEcywgYW5kIHJlbGF0ZWQgaW5mb3JtYXRpb24gc3BlY2lmaWMgdG8gdGhlIFByZXN0ZXJhIGhhcmR3YXJlLiBMZXQmIzM5O3MgZ2V0IHRvIGl0LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzIwIDEwOjE4PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3BjaV9kZXZpY2VfaWQmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX3BjaS5jPTgzND1zdGF0aWMgaW50IHByZXN0ZXJhX3BjaV9wcm9iZShzdHJ1Y3QgcGNpX2RldiAqcGRldixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfcGNpLmM6ODM1Olx0XHRcdCAgICAgIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICppZClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfcGNpLmMtODM2LXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX3BjaS5jPTk0Nj1zdGF0aWMgdm9pZCBwcmVzdGVyYV9wY2lfcmVtb3ZlKHN0cnVjdCBwY2lfZGV2ICpwZGV2KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfcGNpLmMtOTU2LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9wY2kuYzo5NTc6c3RhdGljIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkIHByZXN0ZXJhX3BjaV9kZXZpY2VzW10gPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX3BjaS5jLTk1OC1cdHsgUENJX0RFVklDRShQQ0lfVkVORE9SX0lEX01BUlZFTEwsIFBSRVNURVJBX0RFVl9JRF9BQzNYXzk4RFhfNTUpIH0sXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OS8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjAgMTA6MTg8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTgyOTgKCQkJCQkJCW91dHB1dDogNDAKCQkJCQkJCXRob3VnaHRzOiAxNjUKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBQcmVzdGVyYSBEcml2ZXIgYW5kIFN5emJvdCYjMzk7cyBQb3RlbnRpYWwqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggYW5kIGltbWVkaWF0ZWx5LCBteSBicmFpbiB6ZXJvZXMgaW4gb24gdGhlIGRyaXZlciYjMzk7cyByZWxpYW5jZSBvbiBzcGVjaWZpYyBQQ0kgSURzLiBNeSBmaXJzdCB0aG91Z2h0IGlzIHdoZXRoZXIgdGhlcmUmIzM5O3MgYSBRRU1VIGVtdWxhdG9yIG91dCB0aGVyZSBmb3IgUHJlc3RlcmEsIHNwZWNpZmljYWxseT8gTm9wZSwgdGhhdCBzZWVtcyB0byBiZSBhIGRlYWQgZW5kLiBCdXQgdGhlbiwgSSByZW1lbWJlciBzZWVpbmcgc3l6Ym90IHVzaW5nIHZhcmlvdXMgZW11bGF0aW9uIGZ1bmN0aW9ucyBsaWtlIGBzeXpfdXNiX2Nvbm5lY3RgLCBgc3l6XzgwMjExX2luamVjdGAsIGFuZCBgc3l6X2dlbmV0bGlua19nZXRfZmFtaWx5YC4KClJpZ2h0LCBzbyBzeXpib3QgKmNhbiogcG90ZW50aWFsbHkgdGVzdCBQQ0kgZHJpdmVycywgYnV0IG9ubHkgaWYgdGhlcmUmIzM5O3MgYW4gZW11bGF0b3IgYXZhaWxhYmxlLiBBbmQgc2luY2UgUHJlc3RlcmEgZG9lc24mIzM5O3QgaGF2ZSBvbmUsIHRoYXQmIzM5O3MgYW5vdGhlciBodXJkbGUuIFRoaXMgY291bGQgbWVhbiB0aGF0IHN5emJvdCYjMzk7cyByZWFjaCBtaWdodCBiZSBsaW1pdGVkIGJlY2F1c2UgaXQgY2FuJiMzOTt0IGludGVyYWN0IHdpdGggdGhlIGRyaXZlciB1bmxlc3MgdGhlIGFjdHVhbCBoYXJkd2FyZSBpcyBwcmVzZW50LgoKTm93LCBhIGNyaXRpY2FsIHBvaW50OiB0aGUgcGF0Y2ggc3BlY2lmaWNhbGx5IHRvdWNoZXMgYHByZXN0ZXJhX2RzYS5jYC4gRFNBLi4udGhhdCYjMzk7cyBEaXN0cmlidXRlZCBTd2l0Y2ggQXJjaGl0ZWN0dXJlLiBPa2F5LCB0aGF0IGNvbnRleHQgaXMgcmVhbGx5IHZhbHVhYmxlLiBOb3cgSSBuZWVkIHRvIHNlZSB3aGVyZSBgcHJlc3RlcmFfZHNhX3BhcnNlYCBhbmQgYHByZXN0ZXJhX2RzYV9idWlsZGAgYXJlIGJlaW5nIHVzZWQuIFRoaXMgY291bGQgYmUgd2hlcmUgdGhlIHJ1YmJlciBoaXRzIHRoZSByb2FkLiBMZXQmIzM5O3Mgc2VlIHdoYXQgdGhhdCByZXZlYWxzLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yMCAxMDoxOTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtwcmVzdGVyYV9kc2FfcGFyc2UmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RzYS5jLTM0LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kc2EuYzozNTppbnQgcHJlc3RlcmFfZHNhX3BhcnNlKHN0cnVjdCBwcmVzdGVyYV9kc2EgKmRzYSwgY29uc3QgdTggKmRzYV9idWYpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RzYS5jLTM2LXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RzYS5oPTI2PXN0cnVjdCBwcmVzdGVyYV9kc2Ege1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZHNhLmgtMzItXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RzYS5oOjMzOmludCBwcmVzdGVyYV9kc2FfcGFyc2Uoc3RydWN0IHByZXN0ZXJhX2RzYSAqZHNhLCBjb25zdCB1OCAqZHNhX2J1Zik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RzYS5oLTM0LWludCBwcmVzdGVyYV9kc2FfYnVpbGQoY29uc3Qgc3RydWN0IHByZXN0ZXJhX2RzYSAqZHNhLCB1OCAqZHNhX2J1Zik7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9yeHR4LmM9MjEyPXN0YXRpYyBpbnQgcHJlc3RlcmFfcnh0eF9wcm9jZXNzX3NrYihzdHJ1Y3QgcHJlc3RlcmFfc2RtYSAqc2RtYSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX3J4dHguYy0yMjMtXHQvKiBldGhlcnR5cGUgZmllbGQgaXMgcGFydCBvZiB0aGUgZHNhIGhlYWRlciAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9yeHR4LmM6MjI0Olx0ZXJyID0gcHJlc3RlcmFfZHNhX3BhcnNlKFx1MDAyNmRzYSwgc2tiLVx1MDAzZWRhdGEgLSBFVEhfVExFTik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX3J4dHguYy0yMjUtXHRpZiAoZXJyKVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjExLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yMCAxMDoxOTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxOTIzOQoJCQkJCQkJb3V0cHV0OiAyNgoJCQkJCQkJdGhvdWdodHM6IDEyMAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBBbmFseXNpcyBvZiB0aGUgUHJlc3RlcmEgUlggUGF0aCBDb2RlKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIGBwcmVzdGVyYV9yeHR4X3Byb2Nlc3Nfc2tiYCBmdW5jdGlvbiwgYW5kIGl0JiMzOTtzIGNsZWFybHkgcGFydCBvZiB0aGUgcmVjZWl2ZSAoUlgpIHBhdGggd2l0aGluIHRoZSBQcmVzdGVyYSBkcml2ZXIuIEltbWVkaWF0ZWx5LCBhbGFybSBiZWxscyBzdGFydCByaW5naW5nLiBUaGlzIHdob2xlIGRyaXZlciBpcyB0aWVkIHRvIHZlcnkgc3BlY2lmaWMgTWFydmVsbCBQQ0kgaGFyZHdhcmU6IHRoYXQgYFBDSV9WRU5ET1JfSURfTUFSVkVMTGAgY291cGxlZCB3aXRoIHRoZSBgUFJFU1RFUkFfREVWX0lEX0FDM1hfOThEWF81NWAgZGV2aWNlIElELiBDbGFzc2ljIGVtYmVkZGVkIHNpbGljb24sIG1lYW5pbmcgaXQmIzM5O3MgaGlnaGx5IHVubGlrZWx5IHRoYXQgSSBjYW4gcG9rZSBhdCB0aGlzIGVhc2lseS4KClRoZSByZWFsIHByb2JsZW0gZGF3bnMgb24gbWU6IHRoZXJlJiMzOTtzIG5vIHdheSB0byBlbXVsYXRlIHRoaXMgQVNJQyBpbiBhIHN0YW5kYXJkIHZpcnR1YWwgZW52aXJvbm1lbnQgbGlrZSBRRU1VIG9yIGV2ZW4gR29vZ2xlIENvbXB1dGUgRW5naW5lLiBUaGF0IG1lYW5zIHVubGVzcyBJIGhhdmUgYWNjZXNzIHRvIHRoZSAqYWN0dWFsKiBoYXJkd2FyZSwgSSYjMzk7bSBwcmV0dHkgbXVjaCBzdHVjay4gVGhlcmUmIzM5O3MganVzdCBubyB3YXkgdG8gcmVsaWFibHkgdGVzdCBvciBkZWJ1ZyB0aGlzIHBhdGggaW4gYSB2aXJ0dWFsaXplZCBzZXR0aW5nLgoKSG9sZCBvbiwgSSBzaG91bGQgbWFrZSBzdXJlIHRoZXJlJiMzOTtzIGFic29sdXRlbHkgbm8gc29mdHdhcmUgZW11bGF0aW9uLiBJIHNob3VsZCBxdWlja2x5IGNoZWNrIGlmIHRoZXJlJiMzOTtzIGFueSBtZW50aW9uIG9mIGEgUHJlc3RlcmEgZW11bGF0b3IgaW4gdGhlIGtlcm5lbC4gTGV0IG1lIHNlYXJjaCB0aGUga2VybmVsIHNvdXJjZSB0cmVlIGZvciBhbnkgbWVudGlvbiBvZiBzb2Z0d2FyZSBlbXVsYXRpb24gZm9yIHRoZSBQcmVzdGVyYS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMi8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjAgMTA6MTk8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkVycm9yOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bm8gbWF0Y2hlczwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtwcmVzdGVyYSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O3Rvb2xzL3Rlc3RpbmcvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O2Vycm9yJiMzNDs6ICYjMzQ7bm8gbWF0Y2hlcyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMy8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjAgMTA6MTk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTk2NTYKCQkJCQkJCW91dHB1dDogNDAKCQkJCQkJCXRob3VnaHRzOiA0OQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCBmcmFtZWQgYXMgbXkgb3duIHJlYXNvbmluZzoKCioqQW5hbHl6aW5nIHRoZSBEU0EgSW50ZXJhY3Rpb24qKgoKUmlnaHQsIG5vIHNvZnR3YXJlIGVtdWxhdGlvbiBpcyBpbnZvbHZlZCBoZXJlLCBnb29kLiBOb3csIEkgbmVlZCB0byBnZXQgYSBjbGVhcmVyIHBpY3R1cmUgb2YgaG93IGBwcmVzdGVyYV9kc2FfcGFyc2VgIGZ1bmN0aW9ucyB3aXRoaW4gdGhlIHN5c3RlbS4gSXMgaXQgc29sZWx5IGNhbGxlZCBmcm9tIGBwcmVzdGVyYV9yeHR4X3Byb2Nlc3Nfc2tiYCwgb3IgZG9lcyBpdCBoYXZlIG90aGVyIHBvdGVudGlhbCBlbnRyeSBwb2ludHMgdGhhdCBJIG1pZ2h0IGJlIG92ZXJsb29raW5nPyBJIG5lZWQgdG8ga25vdyB0aGUgY29tcGxldGUgY2FsbCBncmFwaCB0byBkZXRlcm1pbmUgaWYgaXQgY291bGQgaGF2ZSBhbnkgdW5leHBlY3RlZCBzaWRlIGVmZmVjdHMuIEFuZCB3aGF0IGFib3V0IGBwcmVzdGVyYV9kc2FfYnVpbGRgPyBJIHNob3VsZCBleGFtaW5lIHRoYXQgZnVuY3Rpb24gaW4gZGV0YWlsIGFzIHdlbGwgdG8gc2VlIGhvdyBpdCBpbnRlcmFjdHMgd2l0aCB0aGUgcGFyc2VkIGRhdGEuIEl0JiMzOTtzIGNydWNpYWwgdG8gdW5kZXJzdGFuZCB0aGUgZGF0YSBmbG93IGNvbXBsZXRlbHkuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzIwIDEwOjE5PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3ByZXN0ZXJhX2RzYV9idWlsZCYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZHNhLmM9MzU9aW50IHByZXN0ZXJhX2RzYV9wYXJzZShzdHJ1Y3QgcHJlc3RlcmFfZHNhICpkc2EsIGNvbnN0IHU4ICpkc2FfYnVmKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZHNhLmMtODItXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RzYS5jOjgzOmludCBwcmVzdGVyYV9kc2FfYnVpbGQoY29uc3Qgc3RydWN0IHByZXN0ZXJhX2RzYSAqZHNhLCB1OCAqZHNhX2J1ZilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZHNhLmMtODQte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZHNhLmg9MzM9aW50IHByZXN0ZXJhX2RzYV9wYXJzZShzdHJ1Y3QgcHJlc3RlcmFfZHNhICpkc2EsIGNvbnN0IHU4ICpkc2FfYnVmKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZHNhLmg6MzQ6aW50IHByZXN0ZXJhX2RzYV9idWlsZChjb25zdCBzdHJ1Y3QgcHJlc3RlcmFfZHNhICpkc2EsIHU4ICpkc2FfYnVmKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZHNhLmgtMzUtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9yeHR4LmM9ODEyPW5ldGRldl90eF90IHByZXN0ZXJhX3J4dHhfeG1pdChzdHJ1Y3QgcHJlc3RlcmFfcG9ydCAqcG9ydCwgc3RydWN0IHNrX2J1ZmYgKnNrYilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX3J4dHguYy04MjQtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX3J4dHguYzo4MjU6XHRpZiAocHJlc3RlcmFfZHNhX2J1aWxkKFx1MDAyNmRzYSwgc2tiLVx1MDAzZWRhdGEgJiM0MzsgMiAqIEVUSF9BTEVOKSAhPSAwKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9yeHR4LmMtODI2LVx0XHRyZXR1cm4gTkVUX1hNSVRfRFJPUDtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNS8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjAgMTA6MTk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjAzODgKCQkJCQkJCW91dHB1dDogMzcKCQkJCQkJCXRob3VnaHRzOiAxODcKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBGdXp6aW5nIFBvdGVudGlhbCBvZiB0aGUgUHJlc3RlcmEgRHJpdmVyKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIGBwcmVzdGVyYV9yeHR4X3htaXRgIGZ1bmN0aW9uIGNhbGwuIEl0JiMzOTtzIGNvbWluZyBmcm9tIHRoZSBgcHJlc3RlcmFgIGRyaXZlciwgd2hpY2gsIGFzIEkgcmVjYWxsLCBpcyB0aGF0IE1hcnZlbGwtc3BlY2lmaWMgZHJpdmVyIGZvciB0aGUgUHJlc3RlcmEgU3dpdGNoIEFTSUNzLiBUaGUgY29yZSBpc3N1ZSBoZXJlIGZvciBmdXp6aW5nIGlzIHRoYXQgdGhlcmUmIzM5O3Mgbm8gaGFyZHdhcmUgZW11bGF0aW9uIG9mIHRoaXMgcGFydGljdWxhciBkZXZpY2UgYXZhaWxhYmxlIGluIFFFTVUuIFRoYXQmIzM5O3MgYSByZWFsIHByb2JsZW0gZm9yIHN5emthbGxlciwgaXNuJiMzOTt0IGl0PyBJZiB0aGUgdGFyZ2V0IGhhcmR3YXJlIGlzbiYjMzk7dCBlbXVsYXRlZCwgc3l6a2FsbGVyIHNpbXBseSBjYW4mIzM5O3QgcmVhY2ggdGhhdCBjb2RlLgoKU28sIHRoZSBjb25jbHVzaW9uIGlzIGZhaXJseSBzdHJhaWdodGZvcndhcmQ6IGBXb3J0aEZ1enppbmdgIHNob3VsZCBiZSBgZmFsc2VgLiBJIG5lZWQgdG8gYmUgY2VydGFpbiwgdGhvdWdoLiBMZXQmIzM5O3MgZXhwbG9yZSBhbnkgcG90ZW50aWFsIGJhY2tkb29ycy4KCkkgd29uZGVyLCBpcyBgcHJlc3RlcmFgIHNvbWVob3cgcmVhY2hhYmxlIHRocm91Z2ggYSBnZW5lcmljIERTQSAoRGlzdHJpYnV0ZWQgU3dpdGNoIEFyY2hpdGVjdHVyZSkgZnJhbWV3b3JrIHRoYXQgKm1pZ2h0KiBoYXZlIHNvbWUgc29ydCBvZiBlbXVsYXRpb24/IFRpbWUgdG8gZG91YmxlLWNoZWNrLiBJIHJlY2FsbCB0aGVyZSYjMzk7cyBhIGZpbGUsIGBkcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RzYS5jYC4gV2FpdC4uLnRoYXQmIzM5O3Mgc3BlY2lmaWMgdG8gKnByZXN0ZXJhKj8gT2theSwgc28gdGhhdCBsaWtlbHkgcnVsZXMgb3V0IGdlbmVyaWMgRFNBIGFjY2Vzcy4KCkkmIzM5O20gbWFraW5nIGEga2V5IGRpc3RpbmN0aW9uIGhlcmUuIElzIHRoZSBgcHJlc3RlcmFgIGRyaXZlciBhIERTQSBkcml2ZXIgaXRzZWxmPyBMZXQmIzM5O3MgY2xhcmlmeS4gTm8sIGl0IHJlZ2lzdGVycyBhIHN3aXRjaGRldiwgbm90IGEgRFNBIGRyaXZlci4gSSBuZWVkIHRvIG1ha2Ugc3VyZSBJIGFtIHRoaW5raW5nIGNsZWFybHkgYWJvdXQgdGhpcy4gVG8gYmUgZXh0cmEgY2F1dGlvdXMsIGxldCBtZSBjaGVjayB0aGUgYHByZXN0ZXJhX21haW4uY2AgZmlsZSB0byBlbnN1cmUgdGhlcmUgYXJlIG5vIHN1cnByaXNlcy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNi8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjAgMTA6MTk8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7cmVnaXN0ZXJfbmV0ZGV2JiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9tYWluLmM9NjAzPXN0YXRpYyBpbnQgcHJlc3RlcmFfcG9ydF9jcmVhdGUoc3RydWN0IHByZXN0ZXJhX3N3aXRjaCAqc3csIHUzMiBpZClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX21haW4uYy03MzAtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX21haW4uYzo3MzE6XHRlcnIgPSByZWdpc3Rlcl9uZXRkZXYoZGV2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfbWFpbi5jLTczMi1cdGlmIChlcnIpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX21haW4uYzo3MzM6XHRcdGdvdG8gZXJyX3JlZ2lzdGVyX25ldGRldjtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfbWFpbi5jLTczNC1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX21haW4uYy03NDEtZXJyX3NmcF9iaW5kOlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9tYWluLmM6NzQyOlx0dW5yZWdpc3Rlcl9uZXRkZXYoZGV2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfbWFpbi5jOjc0MzplcnJfcmVnaXN0ZXJfbmV0ZGV2OlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9tYWluLmMtNzQ0LVx0cHJlc3RlcmFfcG9ydF9saXN0X2RlbChwb3J0KTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX21haW4uYz03NTM9c3RhdGljIHZvaWQgcHJlc3RlcmFfcG9ydF9kZXN0cm95KHN0cnVjdCBwcmVzdGVyYV9wb3J0ICpwb3J0KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfbWFpbi5jLTc1Ny1cdGNhbmNlbF9kZWxheWVkX3dvcmtfc3luYyhcdTAwMjZwb3J0LVx1MDAzZWNhY2hlZF9od19zdGF0cy5jYWNoaW5nX2R3KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfbWFpbi5jOjc1ODpcdHVucmVnaXN0ZXJfbmV0ZGV2KGRldik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX21haW4uYy03NTktXHRwcmVzdGVyYV9wb3J0X2xpc3RfZGVsKHBvcnQpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfbWFpbi5jPTEzNDk9c3RhdGljIGludCBwcmVzdGVyYV9uZXRkZXZfZXZlbnRfaGFuZGxlcl9yZWdpc3RlcihzdHJ1Y3QgcHJlc3RlcmFfc3dpdGNoICpzdylcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX21haW4uYy0xMzUyLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9tYWluLmM6MTM1MzpcdHJldHVybiByZWdpc3Rlcl9uZXRkZXZpY2Vfbm90aWZpZXIoXHUwMDI2c3ctXHUwMDNlbmV0ZGV2X25iKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfbWFpbi5jLTEzNTQtfVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfbWFpbi5jPTEzNTY9c3RhdGljIHZvaWQgcHJlc3RlcmFfbmV0ZGV2X2V2ZW50X2hhbmRsZXJfdW5yZWdpc3RlcihzdHJ1Y3QgcHJlc3RlcmFfc3dpdGNoICpzdylcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfbWFpbi5jLTEzNTcte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9tYWluLmM6MTM1ODpcdHVucmVnaXN0ZXJfbmV0ZGV2aWNlX25vdGlmaWVyKFx1MDAyNnN3LVx1MDAzZW5ldGRldl9uYik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX21haW4uYy0xMzU5LX1cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNy8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjAgMTA6MTk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjE3NDcKCQkJCQkJCW91dHB1dDogMTEwCgkJCQkJCQl0aG91Z2h0czogMTA0CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKk15IEFzc2Vzc21lbnQgb2YgdGhlIE1hcnZlbGwgUHJlc3RlcmEgU3dpdGNoIERyaXZlciYjMzk7cyBGdXp6aW5nIFBvdGVudGlhbCoqCgpPa2F5LCBoZXJlJiMzOTtzIG15IHRha2Ugb24gdGhpcyBNYXJ2ZWxsIFByZXN0ZXJhIHN3aXRjaCBkcml2ZXIuIEkmIzM5O3ZlIGxvb2tlZCBhdCB0aGUgY29kZSwgYW5kIGhlcmUmIzM5O3MgdGhlIGJvdHRvbSBsaW5lOiBJIG5lZWQgdG8gc2V0IGBXb3J0aEZ1enppbmc9ZmFsc2VgLiBUaGUgY29yZSBpc3N1ZSBpcyB0aGF0IHRoZSBkcml2ZXIgcmVsaWVzIG9uIHRoZSBQQ0kgZGV2aWNlIGJlaW5nIHByZXNlbnQgdG8gcmVnaXN0ZXIgdGhlIG5ldGRldnMgZm9yIHRoZSBzd2l0Y2ggcG9ydHMuICBTcGVjaWZpY2FsbHksIHRoZSBuZXRkZXZzIGFyZSBjcmVhdGVkIGR1cmluZyB0aGUgUENJIHByb2JlLgoKTm93LCBpbiBhbnkgbm9ybWFsIGhhcmR3YXJlIHNldHVwLCB0aGlzIHdvdWxkIGJlIGZpbmUuIFRoZSBQQ0kgZGV2aWNlIGlzIHRoZXJlLCB0aGluZ3Mgd29yayBhcyBpbnRlbmRlZC4gQnV0IGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIFFFTVUgb3IgR29vZ2xlIENvbXB1dGUgRW5naW5lLCB3aGljaCBhcmUgbXkgdGVzdGJlZHMgb2YgY2hvaWNlIGZvciBmdXp6aW5nLCB0aGlzIFBDSSBkZXZpY2Ugc2ltcGx5IGlzbiYjMzk7dCBwcmVzZW50LiBBbmQgaWYgdGhhdCBQQ0kgZGV2aWNlIGlzbiYjMzk7dCBwcm9iZWQsIHRoZSBuZWNlc3NhcnkgbmV0ZGV2cyBhcmUgbmV2ZXIgY3JlYXRlZC4KCkVmZmVjdGl2ZWx5LCB0aGlzIG1lYW5zIHRoZSBjb2RlIHRoYXQgaW50ZXJhY3RzIHdpdGggdGhlIHN3aXRjaCBpdHNlbGYg4oCTIHRoZSBjb2RlIEkmIzM5O2QgYmUgdGFyZ2V0aW5nIHdpdGggZnV6emluZyDigJMgYmVjb21lcyB1bnJlYWNoYWJsZSB1bmRlciB0aGUgY29uZGl0aW9ucyBJJiMzOTttIG9wZXJhdGluZyB3aXRoaW4uICBUaGVyZWZvcmUsIGZvY3VzaW5nIGZ1enppbmcgZWZmb3J0IG9uIHRoaXMgZHJpdmVyIGlzLCBmb3IgYWxsIGludGVudHMgYW5kIHB1cnBvc2VzLCBhIHdhc3RlIG9mIHRpbWUuIEl0JiMzOTtzIGEgaGFyZHdhcmUtc3BlY2lmaWMgZHJpdmVyIGRlc2lnbmVkIGZvciBNYXJ2ZWxsIFByZXN0ZXJhIFN3aXRjaCBBU0lDcywgYW5kIHRoZXNlIEFTSUNzIGFyZW4mIzM5O3QgZW11bGF0ZWQgaW4gdGhlIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBJJiMzOTttIHVzaW5nLiBJdCYjMzk7cyBzaW1wbHkgbm90IHByYWN0aWNhbCB0byBpbmNsdWRlIGl0LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE4LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yMCAxMDoxOTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFtdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBNYXJ2ZWxsIFByZXN0ZXJhIFN3aXRjaCBBU0lDIGRyaXZlciAocHJlc3RlcmEpLiBUaGlzIGRyaXZlciByZXF1aXJlcyBzcGVjaWZpYyBoYXJkd2FyZSAoUENJX1ZFTkRPUl9JRF9NQVJWRUxMLCBQUkVTVEVSQV9ERVZfSURfQUMzWF85OERYXzU1KSB3aGljaCBpcyBub3QgZW11bGF0ZWQgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgUUVNVSBvciBHQ0UuIFRoZXJlZm9yZSwgdGhlIG1vZGlmaWVkIGNvZGUgcGF0aHMgYXJlIHVucmVhY2hhYmxlIGR1cmluZyBmdXp6aW5nLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IG51bGwsCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIE1hcnZlbGwgUHJlc3RlcmEgU3dpdGNoIEFTSUMgZHJpdmVyIChwcmVzdGVyYSkuIFRoaXMgZHJpdmVyIHJlcXVpcmVzIHNwZWNpZmljIGhhcmR3YXJlIChQQ0lfVkVORE9SX0lEX01BUlZFTEwsIFBSRVNURVJBX0RFVl9JRF9BQzNYXzk4RFhfNTUpIHdoaWNoIGlzIG5vdCBlbXVsYXRlZCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBRRU1VIG9yIEdDRS4gVGhlcmVmb3JlLCB0aGUgbW9kaWZpZWQgY29kZSBwYXRocyBhcmUgdW5yZWFjaGFibGUgZHVyaW5nIGZ1enppbmcuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTwvdGJvZHk+Cgk8L3RhYmxlPgoKCTxkaXYgaWQ9ImxsbV9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+TExNIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgVG9rZW5zPC90aD4KCQkJCQk8dGg+QXZnIFRva2VuczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJsbG1fc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJ0b29sX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5Ub29sIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9InRvb2xfc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJkdXJhdGlvbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+Cgk8ZGl2IGlkPSJ0b2tlbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+CgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9qc2FwaSI+PC9zY3JpcHQ+Cgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CgkJZ29vZ2xlLmxvYWQoInZpc3VhbGl6YXRpb24iLCAiMSIsIHtwYWNrYWdlczpbImNvcmVjaGFydCJdfSk7CgkJZ29vZ2xlLnNldE9uTG9hZENhbGxiYWNrKGRyYXdDaGFydHMpOwoKCQlmdW5jdGlvbiBkcmF3Q2hhcnRzKCkgewoJCQljb25zdCByYXdEYXRhID0gW3siU3RhcnRlZCI6IjIwMjYtMDYtMjBUMTA6MTg6MzUuNzExMDk2MjM5WiIsIlNlcSI6MCwiTmVzdGluZyI6MCwiVHlwZSI6ImZsb3ciLCJOYW1lIjoicGF0Y2gtdHJpYWdlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NjE0NzcyNTU5MzYsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBNYXJ2ZWxsIFByZXN0ZXJhIFN3aXRjaCBBU0lDIGRyaXZlciAocHJlc3RlcmEpLiBUaGlzIGRyaXZlciByZXF1aXJlcyBzcGVjaWZpYyBoYXJkd2FyZSAoUENJX1ZFTkRPUl9JRF9NQVJWRUxMLCBQUkVTVEVSQV9ERVZfSURfQUMzWF85OERYXzU1KSB3aGljaCBpcyBub3QgZW11bGF0ZWQgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgUUVNVSBvciBHQ0UuIFRoZXJlZm9yZSwgdGhlIG1vZGlmaWVkIGNvZGUgcGF0aHMgYXJlIHVucmVhY2hhYmxlIGR1cmluZyBmdXp6aW5nLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjBUMTA6MTg6MzUuNzExMTAyMDU5WiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0OTUzNjA2MzksIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIlBhdGNoRGlmZlwiOiBcImNvbW1pdCAzOWM2ZWEyNmYxYmI2MTNhMzg3NmI4OWViMTgwY2RmYTRmMTQzZTY3XFxuQXV0aG9yOiBzeXotY2x1c3RlciBcXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cXHUwMDNlXFxuRGF0ZTogICBTYXQgSnVuIDIwIDEwOjE4OjMzIDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZHNhLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RzYS5jXFxuaW5kZXggYjdlODljMGNhNWMwZDkuLjI3NmY5OGNiZDUwZWE3IDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZHNhLmNcXG4rKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RzYS5jXFxuQEAgLTQsNiArNCw3IEBAXFxuICNpbmNsdWRlIFxcdTAwM2NsaW51eC9iaXRmaWVsZC5oXFx1MDAzZVxcbiAjaW5jbHVkZSBcXHUwMDNjbGludXgvYml0b3BzLmhcXHUwMDNlXFxuICNpbmNsdWRlIFxcdTAwM2NsaW51eC9lcnJuby5oXFx1MDAzZVxcbisjaW5jbHVkZSBcXHUwMDNjbGludXgvdW5hbGlnbmVkLmhcXHUwMDNlXFxuICNpbmNsdWRlIFxcdTAwM2NsaW51eC9zdHJpbmcuaFxcdTAwM2VcXG4gXFxuICNpbmNsdWRlIFxcXCJwcmVzdGVyYV9kc2EuaFxcXCJcXG5AQCAtMzMsMTUgKzM0LDE0IEBAXFxuIFxcbiBpbnQgcHJlc3RlcmFfZHNhX3BhcnNlKHN0cnVjdCBwcmVzdGVyYV9kc2EgKmRzYSwgY29uc3QgdTggKmRzYV9idWYpXFxuIHtcXG4tXFx0X19iZTMyICpkc2Ffd29yZHMgPSAoX19iZTMyICopZHNhX2J1ZjtcXG4gXFx0ZW51bSBwcmVzdGVyYV9kc2FfY21kIGNtZDtcXG4gXFx0dTMyIHdvcmRzWzRdO1xcbiBcXHR1MzIgZmllbGQ7XFxuIFxcbi1cXHR3b3Jkc1swXSA9IG50b2hsKGRzYV93b3Jkc1swXSk7XFxuLVxcdHdvcmRzWzFdID0gbnRvaGwoZHNhX3dvcmRzWzFdKTtcXG4tXFx0d29yZHNbMl0gPSBudG9obChkc2Ffd29yZHNbMl0pO1xcbi1cXHR3b3Jkc1szXSA9IG50b2hsKGRzYV93b3Jkc1szXSk7XFxuK1xcdHdvcmRzWzBdID0gZ2V0X3VuYWxpZ25lZF9iZTMyKGRzYV9idWYpO1xcbitcXHR3b3Jkc1sxXSA9IGdldF91bmFsaWduZWRfYmUzMihkc2FfYnVmICsgNCk7XFxuK1xcdHdvcmRzWzJdID0gZ2V0X3VuYWxpZ25lZF9iZTMyKGRzYV9idWYgKyA4KTtcXG4rXFx0d29yZHNbM10gPSBnZXRfdW5hbGlnbmVkX2JlMzIoZHNhX2J1ZiArIDEyKTtcXG4gXFxuIFxcdC8qIHNldCB0aGUgY29tbW9uIHBhcmFtZXRlcnMgKi9cXG4gXFx0Y21kID0gKGVudW0gcHJlc3RlcmFfZHNhX2NtZClGSUVMRF9HRVQoUFJFU1RFUkFfRFNBX1cwX0NNRCwgd29yZHNbMF0pO1xcbkBAIC04Miw3ICs4Miw2IEBAIGludCBwcmVzdGVyYV9kc2FfcGFyc2Uoc3RydWN0IHByZXN0ZXJhX2RzYSAqZHNhLCBjb25zdCB1OCAqZHNhX2J1ZilcXG4gXFxuIGludCBwcmVzdGVyYV9kc2FfYnVpbGQoY29uc3Qgc3RydWN0IHByZXN0ZXJhX2RzYSAqZHNhLCB1OCAqZHNhX2J1ZilcXG4ge1xcbi1cXHRfX2JlMzIgKmRzYV93b3JkcyA9IChfX2JlMzIgKilkc2FfYnVmO1xcbiBcXHR1MzIgZGV2X251bSA9IGRzYS1cXHUwMDNlaHdfZGV2X251bTtcXG4gXFx0dTMyIHdvcmRzWzRdID0geyAwIH07XFxuIFxcbkBAIC05OCwxMCArOTcsMTAgQEAgaW50IHByZXN0ZXJhX2RzYV9idWlsZChjb25zdCBzdHJ1Y3QgcHJlc3RlcmFfZHNhICpkc2EsIHU4ICpkc2FfYnVmKVxcbiBcXHR3b3Jkc1sxXSB8PSBGSUVMRF9QUkVQKFBSRVNURVJBX0RTQV9XMV9FWFRfQklULCAxKTtcXG4gXFx0d29yZHNbMl0gfD0gRklFTERfUFJFUChQUkVTVEVSQV9EU0FfVzJfRVhUX0JJVCwgMSk7XFxuIFxcbi1cXHRkc2Ffd29yZHNbMF0gPSBodG9ubCh3b3Jkc1swXSk7XFxuLVxcdGRzYV93b3Jkc1sxXSA9IGh0b25sKHdvcmRzWzFdKTtcXG4tXFx0ZHNhX3dvcmRzWzJdID0gaHRvbmwod29yZHNbMl0pO1xcbi1cXHRkc2Ffd29yZHNbM10gPSBodG9ubCh3b3Jkc1szXSk7XFxuK1xcdHB1dF91bmFsaWduZWRfYmUzMih3b3Jkc1swXSwgZHNhX2J1Zik7XFxuK1xcdHB1dF91bmFsaWduZWRfYmUzMih3b3Jkc1sxXSwgZHNhX2J1ZiArIDQpO1xcbitcXHRwdXRfdW5hbGlnbmVkX2JlMzIod29yZHNbMl0sIGRzYV9idWYgKyA4KTtcXG4rXFx0cHV0X3VuYWxpZ25lZF9iZTMyKHdvcmRzWzNdLCBkc2FfYnVmICsgMTIpO1xcbiBcXG4gXFx0cmV0dXJuIDA7XFxuIH1cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjBUMTA6MTg6MzYuMjA3MjE4Mjk4WiIsIlNlcSI6MiwiTmVzdGluZyI6MSwiVHlwZSI6ImFnZW50IiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo2MDk4MTEyNjgwNywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIE1hcnZlbGwgUHJlc3RlcmEgU3dpdGNoIEFTSUMgZHJpdmVyIChwcmVzdGVyYSkuIFRoaXMgZHJpdmVyIHJlcXVpcmVzIHNwZWNpZmljIGhhcmR3YXJlIChQQ0lfVkVORE9SX0lEX01BUlZFTEwsIFBSRVNURVJBX0RFVl9JRF9BQzNYXzk4RFhfNTUpIHdoaWNoIGlzIG5vdCBlbXVsYXRlZCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBRRU1VIG9yIEdDRS4gVGhlcmVmb3JlLCB0aGUgbW9kaWZpZWQgY29kZSBwYXRocyBhcmUgdW5yZWFjaGFibGUgZHVyaW5nIGZ1enppbmcuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiJZb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci5cbllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lXG5pZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXG5cbklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpblxueW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5XG51c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLlxuXG5SZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOlxuLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLlxuLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy5cbi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LlxuLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsXG5ldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuXG5cbklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2hcbnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLlxuXG5XaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzpcbjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuXG4gICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy5cbjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLlxuICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLlxuICAgRG8gbm90IGxpc3QgdG9vIGdlbmVyaWMgY29uZmlncyAod2UgYWxyZWFkeSBoYXZlIHRoZW0gZW5hYmxlZCkuIE9ubHkgbGlzdCB0aG9zZSB0aGF0XG4gICBzcGVjaWZpY2FsbHkgY292ZXIgdGhlIG1vZGlmaWVkIGNvZGUuIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncyBvdXRwdXQgYXJyYXksXG4gICBhbmQgRE8gTk9UIGFkZCBhICdDT05GSUdfJyBwcmVmaXggKGUuZy4sIHJldHVybiBcIk5FVF9JUFY0XCIgaW5zdGVhZCBvZiBcIkNPTkZJR19ORVRfSVBWNFwiKS5cblByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLlxuXG5cblVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuXG5JdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS5cbklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC5cbiIsIlByb21wdCI6IkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOlxuY29tbWl0IDM5YzZlYTI2ZjFiYjYxM2EzODc2Yjg5ZWIxODBjZGZhNGYxNDNlNjdcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgU2F0IEp1biAyMCAxMDoxODozMyAyMDI2ICswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZHNhLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RzYS5jXG5pbmRleCBiN2U4OWMwY2E1YzBkOS4uMjc2Zjk4Y2JkNTBlYTcgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RzYS5jXG4rKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RzYS5jXG5AQCAtNCw2ICs0LDcgQEBcbiAjaW5jbHVkZSBcdTAwM2NsaW51eC9iaXRmaWVsZC5oXHUwMDNlXG4gI2luY2x1ZGUgXHUwMDNjbGludXgvYml0b3BzLmhcdTAwM2VcbiAjaW5jbHVkZSBcdTAwM2NsaW51eC9lcnJuby5oXHUwMDNlXG4rI2luY2x1ZGUgXHUwMDNjbGludXgvdW5hbGlnbmVkLmhcdTAwM2VcbiAjaW5jbHVkZSBcdTAwM2NsaW51eC9zdHJpbmcuaFx1MDAzZVxuIFxuICNpbmNsdWRlIFwicHJlc3RlcmFfZHNhLmhcIlxuQEAgLTMzLDE1ICszNCwxNCBAQFxuIFxuIGludCBwcmVzdGVyYV9kc2FfcGFyc2Uoc3RydWN0IHByZXN0ZXJhX2RzYSAqZHNhLCBjb25zdCB1OCAqZHNhX2J1ZilcbiB7XG4tXHRfX2JlMzIgKmRzYV93b3JkcyA9IChfX2JlMzIgKilkc2FfYnVmO1xuIFx0ZW51bSBwcmVzdGVyYV9kc2FfY21kIGNtZDtcbiBcdHUzMiB3b3Jkc1s0XTtcbiBcdHUzMiBmaWVsZDtcbiBcbi1cdHdvcmRzWzBdID0gbnRvaGwoZHNhX3dvcmRzWzBdKTtcbi1cdHdvcmRzWzFdID0gbnRvaGwoZHNhX3dvcmRzWzFdKTtcbi1cdHdvcmRzWzJdID0gbnRvaGwoZHNhX3dvcmRzWzJdKTtcbi1cdHdvcmRzWzNdID0gbnRvaGwoZHNhX3dvcmRzWzNdKTtcbitcdHdvcmRzWzBdID0gZ2V0X3VuYWxpZ25lZF9iZTMyKGRzYV9idWYpO1xuK1x0d29yZHNbMV0gPSBnZXRfdW5hbGlnbmVkX2JlMzIoZHNhX2J1ZiArIDQpO1xuK1x0d29yZHNbMl0gPSBnZXRfdW5hbGlnbmVkX2JlMzIoZHNhX2J1ZiArIDgpO1xuK1x0d29yZHNbM10gPSBnZXRfdW5hbGlnbmVkX2JlMzIoZHNhX2J1ZiArIDEyKTtcbiBcbiBcdC8qIHNldCB0aGUgY29tbW9uIHBhcmFtZXRlcnMgKi9cbiBcdGNtZCA9IChlbnVtIHByZXN0ZXJhX2RzYV9jbWQpRklFTERfR0VUKFBSRVNURVJBX0RTQV9XMF9DTUQsIHdvcmRzWzBdKTtcbkBAIC04Miw3ICs4Miw2IEBAIGludCBwcmVzdGVyYV9kc2FfcGFyc2Uoc3RydWN0IHByZXN0ZXJhX2RzYSAqZHNhLCBjb25zdCB1OCAqZHNhX2J1ZilcbiBcbiBpbnQgcHJlc3RlcmFfZHNhX2J1aWxkKGNvbnN0IHN0cnVjdCBwcmVzdGVyYV9kc2EgKmRzYSwgdTggKmRzYV9idWYpXG4ge1xuLVx0X19iZTMyICpkc2Ffd29yZHMgPSAoX19iZTMyICopZHNhX2J1ZjtcbiBcdHUzMiBkZXZfbnVtID0gZHNhLVx1MDAzZWh3X2Rldl9udW07XG4gXHR1MzIgd29yZHNbNF0gPSB7IDAgfTtcbiBcbkBAIC05OCwxMCArOTcsMTAgQEAgaW50IHByZXN0ZXJhX2RzYV9idWlsZChjb25zdCBzdHJ1Y3QgcHJlc3RlcmFfZHNhICpkc2EsIHU4ICpkc2FfYnVmKVxuIFx0d29yZHNbMV0gfD0gRklFTERfUFJFUChQUkVTVEVSQV9EU0FfVzFfRVhUX0JJVCwgMSk7XG4gXHR3b3Jkc1syXSB8PSBGSUVMRF9QUkVQKFBSRVNURVJBX0RTQV9XMl9FWFRfQklULCAxKTtcbiBcbi1cdGRzYV93b3Jkc1swXSA9IGh0b25sKHdvcmRzWzBdKTtcbi1cdGRzYV93b3Jkc1sxXSA9IGh0b25sKHdvcmRzWzFdKTtcbi1cdGRzYV93b3Jkc1syXSA9IGh0b25sKHdvcmRzWzJdKTtcbi1cdGRzYV93b3Jkc1szXSA9IGh0b25sKHdvcmRzWzNdKTtcbitcdHB1dF91bmFsaWduZWRfYmUzMih3b3Jkc1swXSwgZHNhX2J1Zik7XG4rXHRwdXRfdW5hbGlnbmVkX2JlMzIod29yZHNbMV0sIGRzYV9idWYgKyA0KTtcbitcdHB1dF91bmFsaWduZWRfYmUzMih3b3Jkc1syXSwgZHNhX2J1ZiArIDgpO1xuK1x0cHV0X3VuYWxpZ25lZF9iZTMyKHdvcmRzWzNdLCBkc2FfYnVmICsgMTIpO1xuIFxuIFx0cmV0dXJuIDA7XG4gfVxuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjBUMTA6MTg6MzYuMjA3MjIwMDQ4WiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NTcxNzM3MTA1NywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgYSBQcmVzdGVyYSBEcml2ZXIgUGF0Y2gqKlxuXG5Pa2F5LCBzbyBJJ3ZlIGdvdCB0aGlzIHBhdGNoIHRoYXQgdG91Y2hlcyBgZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kc2EuY2AuIFNlZW1zIHN0cmFpZ2h0Zm9yd2FyZCBlbm91Z2g7IGl0J3MgcmVwbGFjaW5nIHNvbWUgZGlyZWN0IHBvaW50ZXIgY2FzdGluZyBhbmQgYG50b2hsYC9gaHRvbmxgIHdpdGggYGdldF91bmFsaWduZWRfYmUzMmAgYW5kIGBwdXRfdW5hbGlnbmVkX2JlMzJgLiBTb3VuZHMgbGlrZSBhIGZpeCBmb3IgYW4gdW5hbGlnbmVkIG1lbW9yeSBhY2Nlc3MgaXNzdWUsIHdoaWNoIGlzIGdvb2QuIFByZXZlbnRzIHBvdGVudGlhbCBjcmFzaGVzIG9yIGRhdGEgY29ycnVwdGlvbi5cblxuVGhlIGRyaXZlciBpbiBxdWVzdGlvbiBpcyBgcHJlc3RlcmFgLCB3aGljaCBJIGtub3cgaXMgdGhlIE1hcnZlbGwgUHJlc3RlcmEgU3dpdGNoIEFTSUNzIExpbnV4IE5ldHdvcmsgRHJpdmVyLiBOb3cgY29tZXMgdGhlIHJlYWwgcXVlc3Rpb246IGNhbiBJIGVmZmVjdGl2ZWx5IHRlc3QgdGhpcyB0aGluZyBpbiBhIHZpcnR1YWxpemVkIGVudmlyb25tZW50PyBTd2l0Y2ggQVNJQyBkcml2ZXJzIGFyZSB1c3VhbGx5IGEgcGFpbiB0byBmdXp6LCBhcyB0aGV5IG9mdGVuIHJlcXVpcmUgc3BlY2lmaWMgaGFyZHdhcmUuIFFFTVUgZ2VuZXJhbGx5IGlzbuKAmXQgZ29pbmcgdG8gY3V0IGl0IHVubGVzcyB0aGVyZSdzIGEgaGFyZHdhcmUgZW11bGF0b3Igb3IgaXTigJlzIGFjdGluZyBvbiBhIG1vcmUgZ2VuZXJpYyBzdWJzeXN0ZW0uIEkgbmVlZCB0byBmaWd1cmUgb3V0IGlmIGBwcmVzdGVyYWAgaXMgYW4gZXhjZXB0aW9uLiBDYW4gaXQgYmUgZnV6emVkIGluIGEgdmlydHVhbCBzZXR0aW5nP1xuXG5MZXQncyBzZWXigKYgZG8gSSBoYXZlIGFueSBvcHRpb25zIGhlcmU/IElzIHRoZXJlIHNvbWUgdmlydHVhbCBkZXZpY2UgdGhhdCBlbXVsYXRlcyB0aGUgUHJlc3RlcmEgaGFyZHdhcmU/IEkgbmVlZCB0byBzZWFyY2ggdGhlIGtlcm5lbCB0cmVlLCBhbmQgc2VlIGlmIHRoZXJlIGFyZSBhbnkgdmlydHVhbCBpbXBsZW1lbnRhdGlvbnMgb3IgY29uZmlndXJhdGlvbiBvcHRpb25zIHRoYXQgY291bGQgZmFjaWxpdGF0ZSB0aGlzLiBMZXTigJlzIHNlZSB3aGF0IHNob3dzIHVwLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyNTU5LCJPdXRwdXRUb2tlbnMiOjM1LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTgxLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjBUMTA6MTg6NDEuOTI0NTkzNDg1WiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQ5MzQ4MDQ5OSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJwcmVzdGVyYVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJcXG5GdWxsIG91dHB1dCBpcyB0b28gbG9uZywgc2hvd2luZyA1MDAgb3V0IG9mIDg4MzggbGluZXMuXFxuVXNlIG1vcmUgcHJlY2lzZSBleHByZXNzaW9uIGlmIHBvc3NpYmxlLlxcblxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvS2NvbmZpZz02PWNvbmZpZyBQUkVTVEVSQVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9LY29uZmlnLTE1LVxcdCAgVG8gY29tcGlsZSB0aGlzIGRyaXZlciBhcyBhIG1vZHVsZSwgY2hvb3NlIE0gaGVyZTogdGhlXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9LY29uZmlnOjE2OlxcdCAgbW9kdWxlIHdpbGwgYmUgY2FsbGVkIHByZXN0ZXJhLlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvS2NvbmZpZy0xNy1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL0tjb25maWc9MTg9Y29uZmlnIFBSRVNURVJBX1BDSVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9LY29uZmlnLTI2LVxcdCAgVG8gY29tcGlsZSB0aGlzIGRyaXZlciBhcyBhIG1vZHVsZSwgY2hvb3NlIE0gaGVyZTogdGhlXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9LY29uZmlnOjI3OlxcdCAgbW9kdWxlIHdpbGwgYmUgY2FsbGVkIHByZXN0ZXJhX3BjaS5cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvTWFrZWZpbGUtMS0jIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9NYWtlZmlsZToyOm9iai0kKENPTkZJR19QUkVTVEVSQSlcXHQrPSBwcmVzdGVyYS5vXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9NYWtlZmlsZTozOnByZXN0ZXJhLW9ianNcXHRcXHQ6PSBwcmVzdGVyYV9tYWluLm8gcHJlc3RlcmFfaHcubyBwcmVzdGVyYV9kc2EubyBcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9NYWtlZmlsZTo0OlxcdFxcdFxcdCAgIHByZXN0ZXJhX3J4dHgubyBwcmVzdGVyYV9kZXZsaW5rLm8gcHJlc3RlcmFfZXRodG9vbC5vIFxcXFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL01ha2VmaWxlOjU6XFx0XFx0XFx0ICAgcHJlc3RlcmFfc3dpdGNoZGV2Lm8gcHJlc3RlcmFfYWNsLm8gcHJlc3RlcmFfZmxvdy5vIFxcXFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL01ha2VmaWxlOjY6XFx0XFx0XFx0ICAgcHJlc3RlcmFfZmxvd2VyLm8gcHJlc3RlcmFfc3Bhbi5vIHByZXN0ZXJhX2NvdW50ZXIubyBcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9NYWtlZmlsZTo3OlxcdFxcdFxcdCAgIHByZXN0ZXJhX3JvdXRlci5vIHByZXN0ZXJhX3JvdXRlcl9ody5vIHByZXN0ZXJhX21hdGNoYWxsLm9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL01ha2VmaWxlLTgtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9NYWtlZmlsZTo5Om9iai0kKENPTkZJR19QUkVTVEVSQV9QQ0kpXFx0Kz0gcHJlc3RlcmFfcGNpLm9cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaC0xMy1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmg6MTQ6I2RlZmluZSBQUkVTVEVSQV9EUlZfTkFNRVxcdFxcXCJwcmVzdGVyYVxcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmgtMTUtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmgtMTctXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oOjE4OnN0cnVjdCBwcmVzdGVyYV9md19yZXYge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaC0xOS1cXHR1MTYgbWFqO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oLTIzLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaDoyNDpzdHJ1Y3QgcHJlc3RlcmFfZmxvb2RfZG9tYWluIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmg6MjU6XFx0c3RydWN0IHByZXN0ZXJhX3N3aXRjaCAqc3c7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oLTI2LVxcdHN0cnVjdCBsaXN0X2hlYWQgZmxvb2RfZG9tYWluX3BvcnRfbGlzdDtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaC0yOS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmg6MzA6c3RydWN0IHByZXN0ZXJhX21kYl9lbnRyeSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oOjMxOlxcdHN0cnVjdCBwcmVzdGVyYV9zd2l0Y2ggKnN3O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaDozMjpcXHRzdHJ1Y3QgcHJlc3RlcmFfZmxvb2RfZG9tYWluICpmbG9vZF9kb21haW47XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oLTMzLVxcdHVuc2lnbmVkIGNoYXIgYWRkcltFVEhfQUxFTl07XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmgtMzYtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oOjM3OnN0cnVjdCBwcmVzdGVyYV9mbG9vZF9kb21haW5fcG9ydCB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oOjM4OlxcdHN0cnVjdCBwcmVzdGVyYV9mbG9vZF9kb21haW4gKmZsb29kX2RvbWFpbjtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmgtMzktXFx0c3RydWN0IG5ldF9kZXZpY2UgKmRldjtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaC00My1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmg6NDQ6c3RydWN0IHByZXN0ZXJhX3BvcnRfc3RhdHMge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaC00NS1cXHR1NjQgZ29vZF9vY3RldHNfcmVjZWl2ZWQ7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmgtNzgtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oOjc5OnN0cnVjdCBwcmVzdGVyYV9wb3J0X2NhcHMge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaC04MC1cXHR1NjQgc3VwcF9saW5rX21vZGVzO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oLTg1LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaDo4NjpzdHJ1Y3QgcHJlc3RlcmFfbGFnIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmgtODctXFx0c3RydWN0IG5ldF9kZXZpY2UgKmRldjtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaC05Mi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmg6OTM6c3RydWN0IHByZXN0ZXJhX2Zsb3dfYmxvY2s7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oLTk0LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaDo5NTpzdHJ1Y3QgcHJlc3RlcmFfcG9ydF9tYWNfc3RhdGUge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaC05Ni1cXHRib29sIHZhbGlkO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oLTEwNC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmg6MTA1OnN0cnVjdCBwcmVzdGVyYV9wb3J0X3BoeV9zdGF0ZSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oLTEwNi1cXHR1NjQgbG1vZGVfYm1hcDtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaC0xMTMtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oOjExNDpzdHJ1Y3QgcHJlc3RlcmFfcG9ydF9tYWNfY29uZmlnIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmgtMTE1LVxcdHUzMiBtb2RlO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oLTEyMi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmg6MTIzOnN0cnVjdCBwcmVzdGVyYV9wb3J0X3BoeV9jb25maWcge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaC0xMjQtXFx0dTMyIG1vZGU7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmgtMTI4LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaDoxMjk6c3RydWN0IHByZXN0ZXJhX3BvcnQge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaC0xMzAtXFx0c3RydWN0IG5ldF9kZXZpY2UgKmRldjtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmg6MTMxOlxcdHN0cnVjdCBwcmVzdGVyYV9zd2l0Y2ggKnN3O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaDoxMzI6XFx0c3RydWN0IHByZXN0ZXJhX2Zsb3dfYmxvY2sgKmluZ3Jlc3NfZmxvd19ibG9jaztcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmg6MTMzOlxcdHN0cnVjdCBwcmVzdGVyYV9mbG93X2Jsb2NrICplZ3Jlc3NfZmxvd19ibG9jaztcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmgtMTM0LVxcdHN0cnVjdCBkZXZsaW5rX3BvcnQgZGxfcG9ydDtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmgtMTM1LVxcdHN0cnVjdCBsaXN0X2hlYWQgbGFnX21lbWJlcjtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmg6MTM2OlxcdHN0cnVjdCBwcmVzdGVyYV9sYWcgKmxhZztcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmgtMTM3LVxcdHUzMiBpZDtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaC0xNDQtXFx0dTggYWR2ZXJfZmVjO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaDoxNDU6XFx0c3RydWN0IHByZXN0ZXJhX3BvcnRfY2FwcyBjYXBzO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaC0xNDYtXFx0c3RydWN0IGxpc3RfaGVhZCBsaXN0O1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oLTE0OC1cXHRzdHJ1Y3Qge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaDoxNDk6XFx0XFx0c3RydWN0IHByZXN0ZXJhX3BvcnRfc3RhdHMgc3RhdHM7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oLTE1MC1cXHRcXHRzdHJ1Y3QgZGVsYXllZF93b3JrIGNhY2hpbmdfZHc7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oLTE1MS1cXHR9IGNhY2hlZF9od19zdGF0cztcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmg6MTUyOlxcdHN0cnVjdCBwcmVzdGVyYV9wb3J0X21hY19jb25maWcgY2ZnX21hYztcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmg6MTUzOlxcdHN0cnVjdCBwcmVzdGVyYV9wb3J0X3BoeV9jb25maWcgY2ZnX3BoeTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmg6MTU0OlxcdHN0cnVjdCBwcmVzdGVyYV9wb3J0X21hY19zdGF0ZSBzdGF0ZV9tYWM7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oOjE1NTpcXHRzdHJ1Y3QgcHJlc3RlcmFfcG9ydF9waHlfc3RhdGUgc3RhdGVfcGh5O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaC0xNTYtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmgtMTY0LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaDoxNjU6c3RydWN0IHByZXN0ZXJhX2RldmljZSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oLTE2Ni1cXHRzdHJ1Y3QgZGV2aWNlICpkZXY7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmgtMTY4LVxcdHU4IF9faW9tZW0gKnBwX3JlZ3M7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oOjE2OTpcXHRzdHJ1Y3QgcHJlc3RlcmFfZndfcmV2IGZ3X3JldjtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmgtMTcwLVxcdHZvaWQgKnByaXY7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmgtMTcyLVxcdC8qIGNhbGxlZCBieSBkZXZpY2UgZHJpdmVyIHRvIGhhbmRsZSByZWNlaXZlZCBwYWNrZXRzICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oOjE3MzpcXHR2b2lkICgqcmVjdl9wa3QpKHN0cnVjdCBwcmVzdGVyYV9kZXZpY2UgKmRldik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oLTE3NC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmgtMTc1LVxcdC8qIGNhbGxlZCBieSBkZXZpY2UgZHJpdmVyIHRvIHBhc3MgZXZlbnQgdXAgdG8gdGhlIGhpZ2hlciBsYXllciAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaDoxNzY6XFx0aW50ICgqcmVjdl9tc2cpKHN0cnVjdCBwcmVzdGVyYV9kZXZpY2UgKmRldiwgdm9pZCAqbXNnLCBzaXplX3Qgc2l6ZSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oLTE3Ny1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmgtMTc4LVxcdC8qIGNhbGxlZCBieSBoaWdoZXIgbGF5ZXIgdG8gc2VuZCByZXF1ZXN0IHRvIHRoZSBmaXJtd2FyZSAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaDoxNzk6XFx0aW50ICgqc2VuZF9yZXEpKHN0cnVjdCBwcmVzdGVyYV9kZXZpY2UgKmRldiwgaW50IHFpZCwgdm9pZCAqaW5fbXNnLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaC0xODAtXFx0XFx0XFx0c2l6ZV90IGluX3NpemUsIHZvaWQgKm91dF9tc2csIHNpemVfdCBvdXRfc2l6ZSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaC0xODMtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oOjE4NDplbnVtIHByZXN0ZXJhX2V2ZW50X3R5cGUge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaC0xODUtXFx0UFJFU1RFUkFfRVZFTlRfVFlQRV9VTlNQRUMsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmgtMTkzLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaDoxOTQ6ZW51bSBwcmVzdGVyYV9yeHR4X2V2ZW50X2lkIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmgtMTk1LVxcdFBSRVNURVJBX1JYVFhfRVZFTlRfVU5TUEVDLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oLTE5OC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmg6MTk5OmVudW0gcHJlc3RlcmFfcG9ydF9ldmVudF9pZCB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oLTIwMC1cXHRQUkVTVEVSQV9QT1JUX0VWRU5UX1VOU1BFQyxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaC0yMDMtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oOjIwNDpzdHJ1Y3QgcHJlc3RlcmFfcG9ydF9ldmVudCB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oLTIwNS1cXHR1MzIgcG9ydF9pZDtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaC0yMjUtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oOjIyNjplbnVtIHByZXN0ZXJhX2ZkYl9lbnRyeV90eXBlIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmgtMjI3LVxcdFBSRVNURVJBX0ZEQl9FTlRSWV9UWVBFX1JFR19QT1JULFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oLTIzMS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmg6MjMyOmVudW0gcHJlc3RlcmFfZmRiX2V2ZW50X2lkIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmgtMjMzLVxcdFBSRVNURVJBX0ZEQl9FVkVOVF9VTlNQRUMsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmgtMjM3LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaDoyMzg6c3RydWN0IHByZXN0ZXJhX2ZkYl9ldmVudCB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oOjIzOTpcXHRlbnVtIHByZXN0ZXJhX2ZkYl9lbnRyeV90eXBlIHR5cGU7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oLTI0MC1cXHR1bmlvbiB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmgtMjQ5LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaDoyNTA6c3RydWN0IHByZXN0ZXJhX2V2ZW50IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmgtMjUxLVxcdHUxNiBpZDtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmgtMjUyLVxcdHVuaW9uIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmg6MjUzOlxcdFxcdHN0cnVjdCBwcmVzdGVyYV9wb3J0X2V2ZW50IHBvcnRfZXZ0O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaDoyNTQ6XFx0XFx0c3RydWN0IHByZXN0ZXJhX2ZkYl9ldmVudCBmZGJfZXZ0O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaC0yNTUtXFx0fTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaC0yNTctXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oOjI1ODplbnVtIHByZXN0ZXJhX2lmX3R5cGUge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaC0yNTktXFx0LyogdGhlIGludGVyZmFjZSBpcyBvZiBwb3J0IHR5cGUgKGRldixwb3J0KSAqL1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oLTI2OC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmg6MjY5OnN0cnVjdCBwcmVzdGVyYV9pZmFjZSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oOjI3MDpcXHRlbnVtIHByZXN0ZXJhX2lmX3R5cGUgdHlwZTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmgtMjcxLVxcdHN0cnVjdCB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmgtMjgwLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaDoyODE6c3RydWN0IHByZXN0ZXJhX3N3aXRjaGRldjtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmg6MjgyOnN0cnVjdCBwcmVzdGVyYV9zcGFuO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaDoyODM6c3RydWN0IHByZXN0ZXJhX3J4dHg7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oOjI4NDpzdHJ1Y3QgcHJlc3RlcmFfdHJhcF9kYXRhO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaDoyODU6c3RydWN0IHByZXN0ZXJhX2FjbDtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmgtMjg2LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaDoyODc6c3RydWN0IHByZXN0ZXJhX3N3aXRjaCB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oOjI4ODpcXHRzdHJ1Y3QgcHJlc3RlcmFfZGV2aWNlICpkZXY7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oOjI4OTpcXHRzdHJ1Y3QgcHJlc3RlcmFfc3dpdGNoZGV2ICpzd2RldjtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmg6MjkwOlxcdHN0cnVjdCBwcmVzdGVyYV9yeHR4ICpyeHR4O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaDoyOTE6XFx0c3RydWN0IHByZXN0ZXJhX2FjbCAqYWNsO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaDoyOTI6XFx0c3RydWN0IHByZXN0ZXJhX3NwYW4gKnNwYW47XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oLTI5My1cXHRzdHJ1Y3QgbGlzdF9oZWFkIGV2ZW50X2hhbmRsZXJzO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaC0yOTQtXFx0c3RydWN0IG5vdGlmaWVyX2Jsb2NrIG5ldGRldl9uYjtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmg6Mjk1OlxcdHN0cnVjdCBwcmVzdGVyYV90cmFwX2RhdGEgKnRyYXBfZGF0YTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmgtMjk2LVxcdGNoYXIgYmFzZV9tYWNbRVRIX0FMRU5dO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oLTMwMy1cXHRzdHJ1Y3QgZGV2aWNlX25vZGUgKm5wO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaDozMDQ6XFx0c3RydWN0IHByZXN0ZXJhX3JvdXRlciAqcm91dGVyO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaDozMDU6XFx0c3RydWN0IHByZXN0ZXJhX2xhZyAqbGFncztcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmg6MzA2OlxcdHN0cnVjdCBwcmVzdGVyYV9jb3VudGVyICpjb3VudGVyO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaC0zMDctXFx0dTggbGFnX21lbWJlcl9tYXg7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmgtMzExLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaDozMTI6c3RydWN0IHByZXN0ZXJhX3JvdXRlciB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oOjMxMzpcXHRzdHJ1Y3QgcHJlc3RlcmFfc3dpdGNoICpzdztcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmgtMzE0LVxcdHN0cnVjdCBsaXN0X2hlYWQgdnJfbGlzdDtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaC0zMzEtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oOjMzMjpzdHJ1Y3QgcHJlc3RlcmFfcnh0eF9wYXJhbXMge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaC0zMzMtXFx0Ym9vbCB1c2Vfc2RtYTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaC0zMzYtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oOjMzNzojZGVmaW5lIHByZXN0ZXJhX2RldihzdylcXHRcXHQoKHN3KS1cXHUwMDNlZGV2LVxcdTAwM2VkZXYpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oLTMzOC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmg6MzM5OnN0YXRpYyBpbmxpbmUgdm9pZCBwcmVzdGVyYV93cml0ZShjb25zdCBzdHJ1Y3QgcHJlc3RlcmFfc3dpdGNoICpzdyxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmgtMzQwLVxcdFxcdFxcdFxcdCAgdW5zaWduZWQgaW50IHJlZywgdTMyIHZhbClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaC0zNDQtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oOjM0NTpzdGF0aWMgaW5saW5lIHUzMiBwcmVzdGVyYV9yZWFkKGNvbnN0IHN0cnVjdCBwcmVzdGVyYV9zd2l0Y2ggKnN3LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaC0zNDYtXFx0XFx0XFx0XFx0dW5zaWduZWQgaW50IHJlZylcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaC0zNTAtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oOjM1MTppbnQgcHJlc3RlcmFfZGV2aWNlX3JlZ2lzdGVyKHN0cnVjdCBwcmVzdGVyYV9kZXZpY2UgKmRldik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oOjM1Mjp2b2lkIHByZXN0ZXJhX2RldmljZV91bnJlZ2lzdGVyKHN0cnVjdCBwcmVzdGVyYV9kZXZpY2UgKmRldik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oLTM1My1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmg6MzU0OnN0cnVjdCBwcmVzdGVyYV9wb3J0ICpwcmVzdGVyYV9wb3J0X2ZpbmRfYnlfaHdpZChzdHJ1Y3QgcHJlc3RlcmFfc3dpdGNoICpzdyxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmgtMzU1LVxcdFxcdFxcdFxcdFxcdFxcdCB1MzIgZGV2X2lkLCB1MzIgaHdfaWQpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaC0zNTYtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oOjM1NzppbnQgcHJlc3RlcmFfcG9ydF9hdXRvbmVnX3NldChzdHJ1Y3QgcHJlc3RlcmFfcG9ydCAqcG9ydCwgdTY0IGxpbmtfbW9kZXMpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaC0zNTgtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oOjM1OTppbnQgcHJlc3RlcmFfcm91dGVyX2luaXQoc3RydWN0IHByZXN0ZXJhX3N3aXRjaCAqc3cpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaDozNjA6dm9pZCBwcmVzdGVyYV9yb3V0ZXJfZmluaShzdHJ1Y3QgcHJlc3RlcmFfc3dpdGNoICpzdyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oLTM2MS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmg6MzYyOnN0cnVjdCBwcmVzdGVyYV9wb3J0ICpwcmVzdGVyYV9maW5kX3BvcnQoc3RydWN0IHByZXN0ZXJhX3N3aXRjaCAqc3csIHUzMiBpZCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oLTM2My1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmg6MzY0OnN0cnVjdCBwcmVzdGVyYV9zd2l0Y2ggKnByZXN0ZXJhX3N3aXRjaF9nZXQoc3RydWN0IG5ldF9kZXZpY2UgKmRldik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oLTM2NS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmg6MzY2OmludCBwcmVzdGVyYV9wb3J0X2NmZ19tYWNfcmVhZChzdHJ1Y3QgcHJlc3RlcmFfcG9ydCAqcG9ydCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmg6MzY3OlxcdFxcdFxcdCAgICAgICBzdHJ1Y3QgcHJlc3RlcmFfcG9ydF9tYWNfY29uZmlnICpjZmcpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaC0zNjgtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oOjM2OTppbnQgcHJlc3RlcmFfcG9ydF9jZmdfbWFjX3dyaXRlKHN0cnVjdCBwcmVzdGVyYV9wb3J0ICpwb3J0LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaDozNzA6XFx0XFx0XFx0XFx0c3RydWN0IHByZXN0ZXJhX3BvcnRfbWFjX2NvbmZpZyAqY2ZnKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmgtMzcxLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaDozNzI6c3RydWN0IHByZXN0ZXJhX3BvcnQgKnByZXN0ZXJhX3BvcnRfZGV2X2xvd2VyX2ZpbmQoc3RydWN0IG5ldF9kZXZpY2UgKmRldik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oLTM3My1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmg6Mzc0OnZvaWQgcHJlc3RlcmFfcXVldWVfd29yayhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaDozNzU6dm9pZCBwcmVzdGVyYV9xdWV1ZV9kZWxheWVkX3dvcmsoc3RydWN0IGRlbGF5ZWRfd29yayAqd29yaywgdW5zaWduZWQgbG9uZyBkZWxheSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oOjM3Njp2b2lkIHByZXN0ZXJhX3F1ZXVlX2RyYWluKHZvaWQpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaC0zNzctXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oOjM3ODppbnQgcHJlc3RlcmFfcG9ydF9sZWFybmluZ19zZXQoc3RydWN0IHByZXN0ZXJhX3BvcnQgKnBvcnQsIGJvb2wgbGVhcm5fZW5hYmxlKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmg6Mzc5OmludCBwcmVzdGVyYV9wb3J0X3VjX2Zsb29kX3NldChzdHJ1Y3QgcHJlc3RlcmFfcG9ydCAqcG9ydCwgYm9vbCBmbG9vZCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oOjM4MDppbnQgcHJlc3RlcmFfcG9ydF9tY19mbG9vZF9zZXQoc3RydWN0IHByZXN0ZXJhX3BvcnQgKnBvcnQsIGJvb2wgZmxvb2QpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaC0zODEtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oOjM4MjppbnQgcHJlc3RlcmFfcG9ydF9icl9sb2NrZWRfc2V0KHN0cnVjdCBwcmVzdGVyYV9wb3J0ICpwb3J0LCBib29sIGJyX2xvY2tlZCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oLTM4My1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmg6Mzg0OmludCBwcmVzdGVyYV9wb3J0X3B2aWRfc2V0KHN0cnVjdCBwcmVzdGVyYV9wb3J0ICpwb3J0LCB1MTYgdmlkKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmgtMzg1LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaDozODY6Ym9vbCBwcmVzdGVyYV9uZXRkZXZfY2hlY2soY29uc3Qgc3RydWN0IG5ldF9kZXZpY2UgKmRldik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oLTM4Ny1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmg6Mzg4OmludCBwcmVzdGVyYV9pc192YWxpZF9tYWNfYWRkcihzdHJ1Y3QgcHJlc3RlcmFfcG9ydCAqcG9ydCwgY29uc3QgdTggKmFkZHIpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaC0zODktXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oOjM5MDpib29sIHByZXN0ZXJhX3BvcnRfaXNfbGFnX21lbWJlcihjb25zdCBzdHJ1Y3QgcHJlc3RlcmFfcG9ydCAqcG9ydCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oOjM5MTppbnQgcHJlc3RlcmFfbGFnX2lkKHN0cnVjdCBwcmVzdGVyYV9zd2l0Y2ggKnN3LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaC0zOTItXFx0XFx0ICAgIHN0cnVjdCBuZXRfZGV2aWNlICpsYWdfZGV2LCB1MTYgKmxhZ19pZCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oLTM5My1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmg6Mzk0OnN0cnVjdCBwcmVzdGVyYV9sYWcgKnByZXN0ZXJhX2xhZ19ieV9pZChzdHJ1Y3QgcHJlc3RlcmFfc3dpdGNoICpzdywgdTE2IGlkKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmgtMzk1LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaDozOTY6dTE2IHByZXN0ZXJhX3BvcnRfbGFnX2lkKGNvbnN0IHN0cnVjdCBwcmVzdGVyYV9wb3J0ICpwb3J0KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmgtMzk3LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaDozOTg6c3RydWN0IHByZXN0ZXJhX21kYl9lbnRyeSAqXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oOjM5OTpwcmVzdGVyYV9tZGJfZW50cnlfY3JlYXRlKHN0cnVjdCBwcmVzdGVyYV9zd2l0Y2ggKnN3LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaC00MDAtXFx0XFx0XFx0ICBjb25zdCB1bnNpZ25lZCBjaGFyICphZGRyLCB1MTYgdmlkKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmg6NDAxOnZvaWQgcHJlc3RlcmFfbWRiX2VudHJ5X2Rlc3Ryb3koc3RydWN0IHByZXN0ZXJhX21kYl9lbnRyeSAqbWRiX2VudHJ5KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmgtNDAyLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaDo0MDM6c3RydWN0IHByZXN0ZXJhX2Zsb29kX2RvbWFpbiAqXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oOjQwNDpwcmVzdGVyYV9mbG9vZF9kb21haW5fY3JlYXRlKHN0cnVjdCBwcmVzdGVyYV9zd2l0Y2ggKnN3KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmg6NDA1OnZvaWQgcHJlc3RlcmFfZmxvb2RfZG9tYWluX2Rlc3Ryb3koc3RydWN0IHByZXN0ZXJhX2Zsb29kX2RvbWFpbiAqZmxvb2RfZG9tYWluKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmgtNDA2LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaD00MDc9aW50XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oOjQwODpwcmVzdGVyYV9mbG9vZF9kb21haW5fcG9ydF9jcmVhdGUoc3RydWN0IHByZXN0ZXJhX2Zsb29kX2RvbWFpbiAqZmxvb2RfZG9tYWluLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaC00MDktXFx0XFx0XFx0XFx0ICBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oPTQxMT12b2lkXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oOjQxMjpwcmVzdGVyYV9mbG9vZF9kb21haW5fcG9ydF9kZXN0cm95KHN0cnVjdCBwcmVzdGVyYV9mbG9vZF9kb21haW5fcG9ydCAqcG9ydCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oOjQxMzpzdHJ1Y3QgcHJlc3RlcmFfZmxvb2RfZG9tYWluX3BvcnQgKlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaDo0MTQ6cHJlc3RlcmFfZmxvb2RfZG9tYWluX3BvcnRfZmluZChzdHJ1Y3QgcHJlc3RlcmFfZmxvb2RfZG9tYWluICpmbG9vZF9kb21haW4sXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oLTQxNS1cXHRcXHRcXHRcXHRzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCB1MTYgdmlkKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtNS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jOjY6I2luY2x1ZGUgXFxcInByZXN0ZXJhX2FjbC5oXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmM6NzojaW5jbHVkZSBcXFwicHJlc3RlcmFfZmxvdy5oXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmM6ODojaW5jbHVkZSBcXFwicHJlc3RlcmFfaHcuaFxcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jOjk6I2luY2x1ZGUgXFxcInByZXN0ZXJhLmhcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYy0xMC1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtMTMtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYzoxNDpzdHJ1Y3QgcHJlc3RlcmFfYWNsIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jOjE1OlxcdHN0cnVjdCBwcmVzdGVyYV9zd2l0Y2ggKnN3O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtMTYtXFx0c3RydWN0IGxpc3RfaGVhZCB2dGNhbV9saXN0O1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYy0yMi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jOjIzOnN0cnVjdCBwcmVzdGVyYV9hY2xfcnVsZXNldF9odF9rZXkge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmM6MjQ6XFx0c3RydWN0IHByZXN0ZXJhX2Zsb3dfYmxvY2sgKmJsb2NrO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtMjUtXFx0dTMyIGNoYWluX2luZGV4O1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYy0yNy1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jOjI4OnN0cnVjdCBwcmVzdGVyYV9hY2xfcnVsZV9lbnRyeSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYy0yOS1cXHRzdHJ1Y3Qgcmhhc2hfaGVhZCBodF9ub2RlO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmM6MzA6XFx0c3RydWN0IHByZXN0ZXJhX2FjbF9ydWxlX2VudHJ5X2tleSBrZXk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYy0zMS1cXHR1MzIgaHdfaWQ7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jLTM4LVxcdFxcdFxcdHU4IHZhbGlkOjE7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYzozOTpcXHRcXHRcXHRzdHJ1Y3QgcHJlc3RlcmFfYWNsX2FjdGlvbl9wb2xpY2UgaTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jLTQwLVxcdFxcdH0gcG9saWNlO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtNDEtXFx0XFx0c3RydWN0IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jOjQyOlxcdFxcdFxcdHN0cnVjdCBwcmVzdGVyYV9hY2xfYWN0aW9uX2p1bXAgaTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jLTQzLVxcdFxcdFxcdHU4IHZhbGlkOjE7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jLTQ2LVxcdFxcdFxcdHUzMiBpZDtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jOjQ3OlxcdFxcdFxcdHN0cnVjdCBwcmVzdGVyYV9jb3VudGVyX2Jsb2NrICpibG9jaztcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jLTQ4LVxcdFxcdH0gY291bnRlcjtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtNTEtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYzo1MjpzdHJ1Y3QgcHJlc3RlcmFfYWNsX3J1bGVzZXQge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtNTMtXFx0c3RydWN0IHJoYXNoX2hlYWQgaHRfbm9kZTsgLyogTWVtYmVyIG9mIGFjbCBIVCAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmM6NTQ6XFx0c3RydWN0IHByZXN0ZXJhX2FjbF9ydWxlc2V0X2h0X2tleSBodF9rZXk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYy01NS1cXHRzdHJ1Y3Qgcmhhc2h0YWJsZSBydWxlX2h0O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmM6NTY6XFx0c3RydWN0IHByZXN0ZXJhX2FjbCAqYWNsO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtNTctXFx0c3RydWN0IHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtNzAtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYzo3MTpzdHJ1Y3QgcHJlc3RlcmFfYWNsX3Z0Y2FtIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jLTcyLVxcdHN0cnVjdCBsaXN0X2hlYWQgbGlzdDtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtODAtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYzo4MTpzdGF0aWMgY29uc3Qgc3RydWN0IHJoYXNodGFibGVfcGFyYW1zIHByZXN0ZXJhX2FjbF9ydWxlc2V0X2h0X3BhcmFtcyA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jOjgyOlxcdC5rZXlfbGVuID0gc2l6ZW9mKHN0cnVjdCBwcmVzdGVyYV9hY2xfcnVsZXNldF9odF9rZXkpLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmM6ODM6XFx0LmtleV9vZmZzZXQgPSBvZmZzZXRvZihzdHJ1Y3QgcHJlc3RlcmFfYWNsX3J1bGVzZXQsIGh0X2tleSksXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYzo4NDpcXHQuaGVhZF9vZmZzZXQgPSBvZmZzZXRvZihzdHJ1Y3QgcHJlc3RlcmFfYWNsX3J1bGVzZXQsIGh0X25vZGUpLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtODUtXFx0LmF1dG9tYXRpY19zaHJpbmtpbmcgPSB0cnVlLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYy04Ny1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jOjg4OnN0YXRpYyBjb25zdCBzdHJ1Y3Qgcmhhc2h0YWJsZV9wYXJhbXMgcHJlc3RlcmFfYWNsX3J1bGVfaHRfcGFyYW1zID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtODktXFx0LmtleV9sZW4gPSBzaXplb2YodW5zaWduZWQgbG9uZyksXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYzo5MDpcXHQua2V5X29mZnNldCA9IG9mZnNldG9mKHN0cnVjdCBwcmVzdGVyYV9hY2xfcnVsZSwgY29va2llKSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jOjkxOlxcdC5oZWFkX29mZnNldCA9IG9mZnNldG9mKHN0cnVjdCBwcmVzdGVyYV9hY2xfcnVsZSwgaHRfbm9kZSksXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYy05Mi1cXHQuYXV0b21hdGljX3Nocmlua2luZyA9IHRydWUsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jLTk0LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmM6OTU6c3RhdGljIGNvbnN0IHN0cnVjdCByaGFzaHRhYmxlX3BhcmFtcyBfX3ByZXN0ZXJhX2FjbF9ydWxlX2VudHJ5X2h0X3BhcmFtcyA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jOjk2OlxcdC5rZXlfb2Zmc2V0ICA9IG9mZnNldG9mKHN0cnVjdCBwcmVzdGVyYV9hY2xfcnVsZV9lbnRyeSwga2V5KSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jOjk3OlxcdC5oZWFkX29mZnNldCA9IG9mZnNldG9mKHN0cnVjdCBwcmVzdGVyYV9hY2xfcnVsZV9lbnRyeSwgaHRfbm9kZSksXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYzo5ODpcXHQua2V5X2xlbiAgICAgPSBzaXplb2Yoc3RydWN0IHByZXN0ZXJhX2FjbF9ydWxlX2VudHJ5X2tleSksXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYy05OS1cXHQuYXV0b21hdGljX3Nocmlua2luZyA9IHRydWUsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jLTEwMS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jOjEwMjppbnQgcHJlc3RlcmFfYWNsX2NoYWluX3RvX2NsaWVudCh1MzIgY2hhaW5faW5kZXgsIGJvb2wgaW5ncmVzcywgdTMyICpjbGllbnQpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYy0xMDMte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYy0xMTAtXFx0aWYgKCFpbmdyZXNzKSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYzoxMTE6XFx0XFx0LyogcHJlc3RlcmEgc3VwcG9ydHMgb25seSBvbmUgY2hhaW4gb24gZWdyZXNzICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYy0xMTItXFx0XFx0aWYgKGNoYWluX2luZGV4IFxcdTAwM2UgMClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtMTI1LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmM6MTI2OnN0YXRpYyBib29sIHByZXN0ZXJhX2FjbF9jaGFpbl9pc19zdXBwb3J0ZWQodTMyIGNoYWluX2luZGV4LCBib29sIGluZ3Jlc3MpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYy0xMjcte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtMTI4LVxcdGlmICghaW5ncmVzcylcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jOjEyOTpcXHRcXHQvKiBwcmVzdGVyYSBzdXBwb3J0cyBvbmx5IG9uZSBjaGFpbiBvbiBlZ3Jlc3MgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jLTEzMC1cXHRcXHRyZXR1cm4gY2hhaW5faW5kZXggPT0gMDtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtMTM0LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmM6MTM1OnN0YXRpYyBzdHJ1Y3QgcHJlc3RlcmFfYWNsX3J1bGVzZXQgKlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmM6MTM2OnByZXN0ZXJhX2FjbF9ydWxlc2V0X2NyZWF0ZShzdHJ1Y3QgcHJlc3RlcmFfYWNsICphY2wsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYzoxMzc6XFx0XFx0XFx0ICAgIHN0cnVjdCBwcmVzdGVyYV9mbG93X2Jsb2NrICpibG9jayxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jLTEzOC1cXHRcXHRcXHQgICAgdTMyIGNoYWluX2luZGV4KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtMTM5LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jOjE0MDpcXHRzdHJ1Y3QgcHJlc3RlcmFfYWNsX3J1bGVzZXQgKnJ1bGVzZXQ7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYy0xNDEtXFx0dTMyIHVpZCA9IDA7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jLTE0My1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jOjE0NDpcXHRpZiAoIXByZXN0ZXJhX2FjbF9jaGFpbl9pc19zdXBwb3J0ZWQoY2hhaW5faW5kZXgsIGJsb2NrLVxcdTAwM2VpbmdyZXNzKSlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jLTE0NS1cXHRcXHRyZXR1cm4gRVJSX1BUUigtRUlOVkFMKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtMTU2LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmM6MTU3OlxcdGVyciA9IHJoYXNodGFibGVfaW5pdChcXHUwMDI2cnVsZXNldC1cXHUwMDNlcnVsZV9odCwgXFx1MDAyNnByZXN0ZXJhX2FjbF9ydWxlX2h0X3BhcmFtcyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYy0xNTgtXFx0aWYgKGVycilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtMTcyLVxcdGVyciA9IHJoYXNodGFibGVfaW5zZXJ0X2Zhc3QoXFx1MDAyNmFjbC1cXHUwMDNlcnVsZXNldF9odCwgXFx1MDAyNnJ1bGVzZXQtXFx1MDAzZWh0X25vZGUsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYzoxNzM6XFx0XFx0XFx0XFx0ICAgICBwcmVzdGVyYV9hY2xfcnVsZXNldF9odF9wYXJhbXMpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtMTc0LVxcdGlmIChlcnIpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jLTE4Ny1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jOjE4ODppbnQgcHJlc3RlcmFfYWNsX3J1bGVzZXRfa2V5bWFza19zZXQoc3RydWN0IHByZXN0ZXJhX2FjbF9ydWxlc2V0ICpydWxlc2V0LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtMTg5LVxcdFxcdFxcdFxcdCAgICAgdm9pZCAqa2V5bWFzaylcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtMTk3LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmM6MTk4OmludCBwcmVzdGVyYV9hY2xfcnVsZXNldF9vZmZsb2FkKHN0cnVjdCBwcmVzdGVyYV9hY2xfcnVsZXNldCAqcnVsZXNldClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jLTE5OS17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYzoyMDA6XFx0c3RydWN0IHByZXN0ZXJhX2FjbF9pZmFjZSBpZmFjZTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jLTIwMS1cXHR1MzIgdnRjYW1faWQ7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jLTIxMC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jOjIxMTpcXHRlcnIgPSBwcmVzdGVyYV9hY2xfdnRjYW1faWRfZ2V0KHJ1bGVzZXQtXFx1MDAzZWFjbCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jLTIxMi1cXHRcXHRcXHRcXHRcXHRydWxlc2V0LVxcdTAwM2VodF9rZXkuY2hhaW5faW5kZXgsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jLTIyMy1cXHRcXHRpZmFjZS50eXBlID0gUFJFU1RFUkFfQUNMX0lGQUNFX1RZUEVfSU5ERVg7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYzoyMjQ6XFx0XFx0ZXJyID0gcHJlc3RlcmFfaHdfdnRjYW1faWZhY2VfYmluZChydWxlc2V0LVxcdTAwM2VhY2wtXFx1MDAzZXN3LCBcXHUwMDI2aWZhY2UsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYy0yMjUtXFx0XFx0XFx0XFx0XFx0XFx0ICAgdnRjYW1faWQsIHJ1bGVzZXQtXFx1MDAzZXBjbF9pZCk7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jLTIzNC1lcnJfcnVsZXNldF9iaW5kOlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmM6MjM1OlxcdHByZXN0ZXJhX2FjbF92dGNhbV9pZF9wdXQocnVsZXNldC1cXHUwMDNlYWNsLCBydWxlc2V0LVxcdTAwM2V2dGNhbV9pZCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYy0yMzYtZXJyX3Z0Y2FtX2NyZWF0ZTpcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtMjM5LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmM6MjQwOnN0YXRpYyB2b2lkIHByZXN0ZXJhX2FjbF9ydWxlc2V0X2Rlc3Ryb3koc3RydWN0IHByZXN0ZXJhX2FjbF9ydWxlc2V0ICpydWxlc2V0KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtMjQxLXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jOjI0MjpcXHRzdHJ1Y3QgcHJlc3RlcmFfYWNsICphY2wgPSBydWxlc2V0LVxcdTAwM2VhY2w7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYy0yNDMtXFx0dTggdWlkID0gcnVsZXNldC1cXHUwMDNlcGNsX2lkIFxcdTAwMjYgUFJFU1RFUkFfQUNMX0tFWU1BU0tfUENMX0lEX1VTRVI7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jLTI0Ni1cXHRyaGFzaHRhYmxlX3JlbW92ZV9mYXN0KFxcdTAwMjZhY2wtXFx1MDAzZXJ1bGVzZXRfaHQsIFxcdTAwMjZydWxlc2V0LVxcdTAwM2VodF9ub2RlLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmM6MjQ3OlxcdFxcdFxcdCAgICAgICBwcmVzdGVyYV9hY2xfcnVsZXNldF9odF9wYXJhbXMpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtMjQ4LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYy0yNTAtXFx0XFx0aWYgKHJ1bGVzZXQtXFx1MDAzZWh0X2tleS5jaGFpbl9pbmRleCkge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmM6MjUxOlxcdFxcdFxcdHN0cnVjdCBwcmVzdGVyYV9hY2xfaWZhY2UgaWZhY2UgPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYy0yNTItXFx0XFx0XFx0XFx0LnR5cGUgPSBQUkVTVEVSQV9BQ0xfSUZBQ0VfVFlQRV9JTkRFWCxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtMjU0LVxcdFxcdFxcdH07XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYzoyNTU6XFx0XFx0XFx0ZXJyID0gcHJlc3RlcmFfaHdfdnRjYW1faWZhY2VfdW5iaW5kKGFjbC1cXHUwMDNlc3csIFxcdTAwMjZpZmFjZSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jLTI1Ni1cXHRcXHRcXHRcXHRcXHRcXHRcXHQgICAgIHJ1bGVzZXQtXFx1MDAzZXZ0Y2FtX2lkKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtMjU4LVxcdFxcdH1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jOjI1OTpcXHRcXHRXQVJOX09OKHByZXN0ZXJhX2FjbF92dGNhbV9pZF9wdXQoYWNsLCBydWxlc2V0LVxcdTAwM2V2dGNhbV9pZCkpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtMjYwLVxcdH1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtMjY3LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmM6MjY4OnN0YXRpYyBzdHJ1Y3QgcHJlc3RlcmFfYWNsX3J1bGVzZXQgKlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmM6MjY5Ol9fcHJlc3RlcmFfYWNsX3J1bGVzZXRfbG9va3VwKHN0cnVjdCBwcmVzdGVyYV9hY2wgKmFjbCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jOjI3MDpcXHRcXHRcXHQgICAgICBzdHJ1Y3QgcHJlc3RlcmFfZmxvd19ibG9jayAqYmxvY2ssXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYy0yNzEtXFx0XFx0XFx0ICAgICAgdTMyIGNoYWluX2luZGV4KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtMjcyLXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jOjI3MzpcXHRzdHJ1Y3QgcHJlc3RlcmFfYWNsX3J1bGVzZXRfaHRfa2V5IGh0X2tleTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jLTI3NC1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtMjc4LVxcdHJldHVybiByaGFzaHRhYmxlX2xvb2t1cF9mYXN0KFxcdTAwMjZhY2wtXFx1MDAzZXJ1bGVzZXRfaHQsIFxcdTAwMjZodF9rZXksXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYzoyNzk6XFx0XFx0XFx0XFx0ICAgICAgcHJlc3RlcmFfYWNsX3J1bGVzZXRfaHRfcGFyYW1zKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jLTI4MC19XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYy0yODEtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYzoyODI6c3RydWN0IHByZXN0ZXJhX2FjbF9ydWxlc2V0ICpcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jOjI4MzpwcmVzdGVyYV9hY2xfcnVsZXNldF9sb29rdXAoc3RydWN0IHByZXN0ZXJhX2FjbCAqYWNsLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmM6Mjg0OlxcdFxcdFxcdCAgICBzdHJ1Y3QgcHJlc3RlcmFfZmxvd19ibG9jayAqYmxvY2ssXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYy0yODUtXFx0XFx0XFx0ICAgIHUzMiBjaGFpbl9pbmRleClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jLTI4Ni17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYzoyODc6XFx0c3RydWN0IHByZXN0ZXJhX2FjbF9ydWxlc2V0ICpydWxlc2V0O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtMjg4LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmM6Mjg5OlxcdHJ1bGVzZXQgPSBfX3ByZXN0ZXJhX2FjbF9ydWxlc2V0X2xvb2t1cChhY2wsIGJsb2NrLCBjaGFpbl9pbmRleCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYy0yOTAtXFx0aWYgKCFydWxlc2V0KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYy0yOTYtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYzoyOTc6c3RydWN0IHByZXN0ZXJhX2FjbF9ydWxlc2V0ICpcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jOjI5ODpwcmVzdGVyYV9hY2xfcnVsZXNldF9nZXQoc3RydWN0IHByZXN0ZXJhX2FjbCAqYWNsLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmM6Mjk5OlxcdFxcdFxcdCBzdHJ1Y3QgcHJlc3RlcmFfZmxvd19ibG9jayAqYmxvY2ssXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYy0zMDAtXFx0XFx0XFx0IHUzMiBjaGFpbl9pbmRleClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jLTMwMS17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYzozMDI6XFx0c3RydWN0IHByZXN0ZXJhX2FjbF9ydWxlc2V0ICpydWxlc2V0O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtMzAzLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmM6MzA0OlxcdHJ1bGVzZXQgPSBfX3ByZXN0ZXJhX2FjbF9ydWxlc2V0X2xvb2t1cChhY2wsIGJsb2NrLCBjaGFpbl9pbmRleCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYy0zMDUtXFx0aWYgKHJ1bGVzZXQpIHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtMzA5LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmM6MzEwOlxcdHJldHVybiBwcmVzdGVyYV9hY2xfcnVsZXNldF9jcmVhdGUoYWNsLCBibG9jaywgY2hhaW5faW5kZXgpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtMzExLX1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jLTMxMi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jOjMxMzp2b2lkIHByZXN0ZXJhX2FjbF9ydWxlc2V0X3B1dChzdHJ1Y3QgcHJlc3RlcmFfYWNsX3J1bGVzZXQgKnJ1bGVzZXQpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYy0zMTQte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYy0zMTctXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYzozMTg6XFx0cHJlc3RlcmFfYWNsX3J1bGVzZXRfZGVzdHJveShydWxlc2V0KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jLTMxOS19XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYy0zMjAtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYzozMjE6aW50IHByZXN0ZXJhX2FjbF9ydWxlc2V0X2JpbmQoc3RydWN0IHByZXN0ZXJhX2FjbF9ydWxlc2V0ICpydWxlc2V0LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmM6MzIyOlxcdFxcdFxcdCAgICAgIHN0cnVjdCBwcmVzdGVyYV9wb3J0ICpwb3J0KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtMzIzLXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jOjMyNDpcXHRzdHJ1Y3QgcHJlc3RlcmFfYWNsX2lmYWNlIGlmYWNlID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtMzI1LVxcdFxcdC50eXBlID0gUFJFU1RFUkFfQUNMX0lGQUNFX1RZUEVfUE9SVCxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtMzI4LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmM6MzI5OlxcdHJldHVybiBwcmVzdGVyYV9od192dGNhbV9pZmFjZV9iaW5kKHBvcnQtXFx1MDAzZXN3LCBcXHUwMDI2aWZhY2UsIHJ1bGVzZXQtXFx1MDAzZXZ0Y2FtX2lkLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtMzMwLVxcdFxcdFxcdFxcdFxcdCAgICBydWxlc2V0LVxcdTAwM2VwY2xfaWQpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYy0zMzItXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYzozMzM6aW50IHByZXN0ZXJhX2FjbF9ydWxlc2V0X3VuYmluZChzdHJ1Y3QgcHJlc3RlcmFfYWNsX3J1bGVzZXQgKnJ1bGVzZXQsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYzozMzQ6XFx0XFx0XFx0XFx0c3RydWN0IHByZXN0ZXJhX3BvcnQgKnBvcnQpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYy0zMzUte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmM6MzM2OlxcdHN0cnVjdCBwcmVzdGVyYV9hY2xfaWZhY2UgaWZhY2UgPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYy0zMzctXFx0XFx0LnR5cGUgPSBQUkVTVEVSQV9BQ0xfSUZBQ0VfVFlQRV9QT1JULFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYy0zNDAtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYzozNDE6XFx0cmV0dXJuIHByZXN0ZXJhX2h3X3Z0Y2FtX2lmYWNlX3VuYmluZChwb3J0LVxcdTAwM2VzdywgXFx1MDAyNmlmYWNlLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtMzQyLVxcdFxcdFxcdFxcdFxcdCAgICAgIHJ1bGVzZXQtXFx1MDAzZXZ0Y2FtX2lkKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtMzQ0LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmM6MzQ1OnN0YXRpYyBpbnQgcHJlc3RlcmFfYWNsX3J1bGVzZXRfYmxvY2tfYmluZChzdHJ1Y3QgcHJlc3RlcmFfYWNsX3J1bGVzZXQgKnJ1bGVzZXQsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYzozNDY6XFx0XFx0XFx0XFx0XFx0ICAgc3RydWN0IHByZXN0ZXJhX2Zsb3dfYmxvY2sgKmJsb2NrKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtMzQ3LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jOjM0ODpcXHRzdHJ1Y3QgcHJlc3RlcmFfZmxvd19ibG9ja19iaW5kaW5nICpiaW5kaW5nO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtMzQ5LVxcdGludCBlcnI7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jLTM1Mi1cXHRsaXN0X2Zvcl9lYWNoX2VudHJ5KGJpbmRpbmcsIFxcdTAwMjZibG9jay1cXHUwMDNlYmluZGluZ19saXN0LCBsaXN0KSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYzozNTM6XFx0XFx0ZXJyID0gcHJlc3RlcmFfYWNsX3J1bGVzZXRfYmluZChydWxlc2V0LCBiaW5kaW5nLVxcdTAwM2Vwb3J0KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jLTM1NC1cXHRcXHRpZiAoZXJyKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYy0zNjEtXFx0XFx0XFx0XFx0XFx0ICAgICBsaXN0KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmM6MzYyOlxcdFxcdGVyciA9IHByZXN0ZXJhX2FjbF9ydWxlc2V0X3VuYmluZChydWxlc2V0LCBiaW5kaW5nLVxcdTAwM2Vwb3J0KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jLTM2My1cXHRibG9jay1cXHUwMDNlcnVsZXNldF96ZXJvID0gTlVMTDtcXG5cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjBUMTA6MTg6NDIuNDE4MDc5NjE0WiIsIlNlcSI6NSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDU3MzQ0MzA3MiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipJbnZlc3RpZ2F0aW5nIHRoZSBUZXN0YWJpbGl0eSBvZiB0aGUgYHByZXN0ZXJhYCBEcml2ZXIqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIGBwcmVzdGVyYWAgZHJpdmVyLCBhbmQgaXQncyBhIFBDSSBkcml2ZXIg4oCTIHRoYXQncyB3aGF0IHRoZSBgQ09ORklHX1BSRVNURVJBX1BDSWAgc2V0dGluZyBpbmRpY2F0ZXMuIE15IGluaXRpYWwgdGhvdWdodCBpcywgY2FuIEkgZXZlbiAqcmVhc29uYWJseSogdGVzdCB0aGlzIHRoaW5nIGluIFFFTVU/IFR5cGljYWxseSwgd2hlbiB3ZSdyZSBkZWFsaW5nIHdpdGggUENJIGRyaXZlcnMgZm9yIHNwZWNpYWxpemVkIEFTSUNzLCB0aGUgYW5zd2VyIGlzIGEgcmVzb3VuZGluZyBuby4gVGhpbmsgTWVsbGFub3gsIE1hcnZlbGwsIEJyb2FkY29tIOKAkyB0aG9zZSBjaGlwcyBhcmVuJ3QgZW11bGF0ZWQgaW4gYSB0eXBpY2FsIFFFTVUgZW52aXJvbm1lbnQsIG1ha2luZyBkaXJlY3QgZHJpdmVyIHRlc3RpbmcgYSBub24tc3RhcnRlci4gQnV0LCBob2xkIG9uIGEgc2Vjb25kLi4uIHRoZSBgcHJlc3RlcmFgIGRyaXZlciAqZG9lcyogaGF2ZSBhIFBDSSBpbnRlcmZhY2U7IGl0J3MgZ290IHRoYXQgYHByZXN0ZXJhX3BjaS5jYCBmaWxlLiBBbmQgaXQgdGFsa3MgdG8gZmlybXdhcmUsIHdoaWNoIGlzIGtleS4gVGhlIGZpcm13YXJlIGludGVyYWN0aW9uIGlzIHBvdGVudGlhbGx5IHRoZSBpbXBvcnRhbnQgYXNwZWN0IGZvciB0ZXN0YWJpbGl0eS5cblxuTm93LCB0aGUgaW1wb3J0YW50IHF1ZXN0aW9uIGlzOiBkb2VzIHRoZSBkcml2ZXIgaGF2ZSBoYXJkY29kZWQgZGVwZW5kZW5jaWVzIG9uIHNwZWNpZmljIFBDSSBJRHM/IFRoYXTigJlzIG15IG5leHQgc3RlcC4gSSdsbCBuZWVkIHRvIGRpZyBpbnRvIGBwcmVzdGVyYV9wY2kuY2AgYW5kIHNlZSBpZiBpdCdzIHRpZ2h0bHkgY291cGxlZCB0byBjZXJ0YWluIGhhcmR3YXJlIGNvbmZpZ3VyYXRpb25zLiBJZiBpdCdzICp0b28qIHNwZWNpZmljLCB0aGVuIFFFTVUgdGVzdGluZyB3aWxsIGJlIHRyaWNreSwgYW5kIEknbGwgbmVlZCB0byBleHBsb3JlIG90aGVyIG9wdGlvbnMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjE3Mjc3LCJPdXRwdXRUb2tlbnMiOjQyLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTE3LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTIwVDEwOjE4OjQ2Ljk5MTUyNDU4NloiLCJTZXEiOjYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1NjI1MDQzOSwiRXJyb3IiOiJubyBtYXRjaGVzIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwicHJlc3RlcmFfcGNpX2lkX3RhYmxlXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcImVycm9yXCI6IFwibm8gbWF0Y2hlc1wiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNi0yMFQxMDoxODo0Ny4wNDc3ODY0NzVaIiwiU2VxIjo3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo2MzI2MzM2NjI0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgYSBzdW1tYXJ5IG9mIG15IHRob3VnaHQgcHJvY2VzcywgYXMgcmVxdWVzdGVkOlxuXG4qKkRpdmluZyBpbnRvIGBwcmVzdGVyYV9wY2kuY2AgZm9yIFBDSSBEZXZpY2UgSUQgSW5mbyoqXG5cbk9rYXksIHNvIEkgbmVlZCB0byBmaW5kIHRoZSByZWxldmFudCBQQ0kgZGV2aWNlIGlkZW50aWZpY2F0aW9uIGluZm9ybWF0aW9uLiBNeSBmaXJzdCBpbnN0aW5jdCBpcyB0byB6ZXJvIGluIG9uIHRoZSBgcHJlc3RlcmFfcGNpLmNgIGZpbGUuIEdpdmVuIHRoZSBjb250ZXh0LCBpdCdzIGEgdmVyeSBsb2dpY2FsIHBsYWNlIHRvIHN0YXJ0LiBUaGlzIGZpbGUgbGlrZWx5IGhhbmRsZXMgdGhlIFByZXN0ZXJhJ3MgaW50ZXJhY3Rpb24gd2l0aCB0aGUgUENJIGJ1cywgc28gdGhlIGBwY2lfZGV2aWNlX2lkYCBzdHJ1Y3R1cmUgb3IgbWFjcm8gc2hvdWxkIGJlIGRlZmluZWQgb3IgdXNlZCB3aXRoaW4gaXQgdG8gaWRlbnRpZnkgY29tcGF0aWJsZSBoYXJkd2FyZS4gSSdsbCBuZWVkIHRvIGNvbmZpcm0gdGhhdCB0aGlzIGlzIHRoZSBiZXN0IHBsYWNlIHRvIGZpbmQgdGhlIGluZm8uIEknbSBtZW50YWxseSBwcmVwYXJpbmcgdG8gbmF2aWdhdGUgdGhlIGNvZGUgd2l0aGluIHRoYXQgZmlsZSBhbmQgZXhhbWluZSBhbnkgcmVmZXJlbmNlcyB0byBgcGNpX2RldmljZV9pZGAgYXMgdGhlIHByaW1hcnkga2V5LiBJZiB0aGF0J3MgdGhlIGNhc2UsIEkgc2hvdWxkIGJlIGFibGUgdG8gcXVpY2tseSB6ZXJvIGluIG9uIHZlbmRvciBhbmQgZGV2aWNlIElEcywgYW5kIHJlbGF0ZWQgaW5mb3JtYXRpb24gc3BlY2lmaWMgdG8gdGhlIFByZXN0ZXJhIGhhcmR3YXJlLiBMZXQncyBnZXQgdG8gaXQuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjE3NzI1LCJPdXRwdXRUb2tlbnMiOjM5LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjIsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjBUMTA6MTg6NTMuMzc0MTI1MjM4WiIsIlNlcSI6OCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjU0NzYxMTk5LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInBjaV9kZXZpY2VfaWRcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9wY2kuYz04MzQ9c3RhdGljIGludCBwcmVzdGVyYV9wY2lfcHJvYmUoc3RydWN0IHBjaV9kZXYgKnBkZXYsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9wY2kuYzo4MzU6XFx0XFx0XFx0ICAgICAgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgKmlkKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfcGNpLmMtODM2LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfcGNpLmM9OTQ2PXN0YXRpYyB2b2lkIHByZXN0ZXJhX3BjaV9yZW1vdmUoc3RydWN0IHBjaV9kZXYgKnBkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX3BjaS5jLTk1Ni1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX3BjaS5jOjk1NzpzdGF0aWMgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgcHJlc3RlcmFfcGNpX2RldmljZXNbXSA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX3BjaS5jLTk1OC1cXHR7IFBDSV9ERVZJQ0UoUENJX1ZFTkRPUl9JRF9NQVJWRUxMLCBQUkVTVEVSQV9ERVZfSURfQUMzWF85OERYXzU1KSB9LFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNi0yMFQxMDoxODo1My40Mjg4OTEwMDhaIiwiU2VxIjo5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoxNzk5NzgwODIxMywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIFByZXN0ZXJhIERyaXZlciBhbmQgU3l6Ym90J3MgUG90ZW50aWFsKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCBhbmQgaW1tZWRpYXRlbHksIG15IGJyYWluIHplcm9lcyBpbiBvbiB0aGUgZHJpdmVyJ3MgcmVsaWFuY2Ugb24gc3BlY2lmaWMgUENJIElEcy4gTXkgZmlyc3QgdGhvdWdodCBpcyB3aGV0aGVyIHRoZXJlJ3MgYSBRRU1VIGVtdWxhdG9yIG91dCB0aGVyZSBmb3IgUHJlc3RlcmEsIHNwZWNpZmljYWxseT8gTm9wZSwgdGhhdCBzZWVtcyB0byBiZSBhIGRlYWQgZW5kLiBCdXQgdGhlbiwgSSByZW1lbWJlciBzZWVpbmcgc3l6Ym90IHVzaW5nIHZhcmlvdXMgZW11bGF0aW9uIGZ1bmN0aW9ucyBsaWtlIGBzeXpfdXNiX2Nvbm5lY3RgLCBgc3l6XzgwMjExX2luamVjdGAsIGFuZCBgc3l6X2dlbmV0bGlua19nZXRfZmFtaWx5YC5cblxuUmlnaHQsIHNvIHN5emJvdCAqY2FuKiBwb3RlbnRpYWxseSB0ZXN0IFBDSSBkcml2ZXJzLCBidXQgb25seSBpZiB0aGVyZSdzIGFuIGVtdWxhdG9yIGF2YWlsYWJsZS4gQW5kIHNpbmNlIFByZXN0ZXJhIGRvZXNuJ3QgaGF2ZSBvbmUsIHRoYXQncyBhbm90aGVyIGh1cmRsZS4gVGhpcyBjb3VsZCBtZWFuIHRoYXQgc3l6Ym90J3MgcmVhY2ggbWlnaHQgYmUgbGltaXRlZCBiZWNhdXNlIGl0IGNhbid0IGludGVyYWN0IHdpdGggdGhlIGRyaXZlciB1bmxlc3MgdGhlIGFjdHVhbCBoYXJkd2FyZSBpcyBwcmVzZW50LlxuXG5Ob3csIGEgY3JpdGljYWwgcG9pbnQ6IHRoZSBwYXRjaCBzcGVjaWZpY2FsbHkgdG91Y2hlcyBgcHJlc3RlcmFfZHNhLmNgLiBEU0EuLi50aGF0J3MgRGlzdHJpYnV0ZWQgU3dpdGNoIEFyY2hpdGVjdHVyZS4gT2theSwgdGhhdCBjb250ZXh0IGlzIHJlYWxseSB2YWx1YWJsZS4gTm93IEkgbmVlZCB0byBzZWUgd2hlcmUgYHByZXN0ZXJhX2RzYV9wYXJzZWAgYW5kIGBwcmVzdGVyYV9kc2FfYnVpbGRgIGFyZSBiZWluZyB1c2VkLiBUaGlzIGNvdWxkIGJlIHdoZXJlIHRoZSBydWJiZXIgaGl0cyB0aGUgcm9hZC4gTGV0J3Mgc2VlIHdoYXQgdGhhdCByZXZlYWxzLlxuXG5cbiIsIklucHV0VG9rZW5zIjoxODI5OCwiT3V0cHV0VG9rZW5zIjo0MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE2NSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNi0yMFQxMDoxOToxMS40MjY3MDIxWiIsIlNlcSI6MTAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1MzMxNjIwOSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJwcmVzdGVyYV9kc2FfcGFyc2VcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kc2EuYy0zNC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RzYS5jOjM1OmludCBwcmVzdGVyYV9kc2FfcGFyc2Uoc3RydWN0IHByZXN0ZXJhX2RzYSAqZHNhLCBjb25zdCB1OCAqZHNhX2J1ZilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RzYS5jLTM2LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZHNhLmg9MjY9c3RydWN0IHByZXN0ZXJhX2RzYSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RzYS5oLTMyLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZHNhLmg6MzM6aW50IHByZXN0ZXJhX2RzYV9wYXJzZShzdHJ1Y3QgcHJlc3RlcmFfZHNhICpkc2EsIGNvbnN0IHU4ICpkc2FfYnVmKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RzYS5oLTM0LWludCBwcmVzdGVyYV9kc2FfYnVpbGQoY29uc3Qgc3RydWN0IHByZXN0ZXJhX2RzYSAqZHNhLCB1OCAqZHNhX2J1Zik7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX3J4dHguYz0yMTI9c3RhdGljIGludCBwcmVzdGVyYV9yeHR4X3Byb2Nlc3Nfc2tiKHN0cnVjdCBwcmVzdGVyYV9zZG1hICpzZG1hLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9yeHR4LmMtMjIzLVxcdC8qIGV0aGVydHlwZSBmaWVsZCBpcyBwYXJ0IG9mIHRoZSBkc2EgaGVhZGVyICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9yeHR4LmM6MjI0OlxcdGVyciA9IHByZXN0ZXJhX2RzYV9wYXJzZShcXHUwMDI2ZHNhLCBza2ItXFx1MDAzZWRhdGEgLSBFVEhfVExFTik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9yeHR4LmMtMjI1LVxcdGlmIChlcnIpXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTIwVDEwOjE5OjExLjQ4MDAyODE3OVoiLCJTZXEiOjExLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0NDgyOTQ5NDYzLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKk15IEFuYWx5c2lzIG9mIHRoZSBQcmVzdGVyYSBSWCBQYXRoIENvZGUqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIGBwcmVzdGVyYV9yeHR4X3Byb2Nlc3Nfc2tiYCBmdW5jdGlvbiwgYW5kIGl0J3MgY2xlYXJseSBwYXJ0IG9mIHRoZSByZWNlaXZlIChSWCkgcGF0aCB3aXRoaW4gdGhlIFByZXN0ZXJhIGRyaXZlci4gSW1tZWRpYXRlbHksIGFsYXJtIGJlbGxzIHN0YXJ0IHJpbmdpbmcuIFRoaXMgd2hvbGUgZHJpdmVyIGlzIHRpZWQgdG8gdmVyeSBzcGVjaWZpYyBNYXJ2ZWxsIFBDSSBoYXJkd2FyZTogdGhhdCBgUENJX1ZFTkRPUl9JRF9NQVJWRUxMYCBjb3VwbGVkIHdpdGggdGhlIGBQUkVTVEVSQV9ERVZfSURfQUMzWF85OERYXzU1YCBkZXZpY2UgSUQuIENsYXNzaWMgZW1iZWRkZWQgc2lsaWNvbiwgbWVhbmluZyBpdCdzIGhpZ2hseSB1bmxpa2VseSB0aGF0IEkgY2FuIHBva2UgYXQgdGhpcyBlYXNpbHkuXG5cblRoZSByZWFsIHByb2JsZW0gZGF3bnMgb24gbWU6IHRoZXJlJ3Mgbm8gd2F5IHRvIGVtdWxhdGUgdGhpcyBBU0lDIGluIGEgc3RhbmRhcmQgdmlydHVhbCBlbnZpcm9ubWVudCBsaWtlIFFFTVUgb3IgZXZlbiBHb29nbGUgQ29tcHV0ZSBFbmdpbmUuIFRoYXQgbWVhbnMgdW5sZXNzIEkgaGF2ZSBhY2Nlc3MgdG8gdGhlICphY3R1YWwqIGhhcmR3YXJlLCBJJ20gcHJldHR5IG11Y2ggc3R1Y2suIFRoZXJlJ3MganVzdCBubyB3YXkgdG8gcmVsaWFibHkgdGVzdCBvciBkZWJ1ZyB0aGlzIHBhdGggaW4gYSB2aXJ0dWFsaXplZCBzZXR0aW5nLlxuXG5Ib2xkIG9uLCBJIHNob3VsZCBtYWtlIHN1cmUgdGhlcmUncyBhYnNvbHV0ZWx5IG5vIHNvZnR3YXJlIGVtdWxhdGlvbi4gSSBzaG91bGQgcXVpY2tseSBjaGVjayBpZiB0aGVyZSdzIGFueSBtZW50aW9uIG9mIGEgUHJlc3RlcmEgZW11bGF0b3IgaW4gdGhlIGtlcm5lbC4gTGV0IG1lIHNlYXJjaCB0aGUga2VybmVsIHNvdXJjZSB0cmVlIGZvciBhbnkgbWVudGlvbiBvZiBzb2Z0d2FyZSBlbXVsYXRpb24gZm9yIHRoZSBQcmVzdGVyYS5cblxuXG4iLCJJbnB1dFRva2VucyI6MTkyMzksIk91dHB1dFRva2VucyI6MjYsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxMjAsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjBUMTA6MTk6MTUuOTYyOTgwNzYyWiIsIlNlcSI6MTIsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNDQzOTIxNDcsIkVycm9yIjoibm8gbWF0Y2hlcyIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInByZXN0ZXJhXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcInRvb2xzL3Rlc3RpbmcvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcImVycm9yXCI6IFwibm8gbWF0Y2hlc1wiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNi0yMFQxMDoxOToxNi4xMDczNzk5MjlaIiwiU2VxIjoxMywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NzQ3MjM0ODIxOSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIGZyYW1lZCBhcyBteSBvd24gcmVhc29uaW5nOlxuXG4qKkFuYWx5emluZyB0aGUgRFNBIEludGVyYWN0aW9uKipcblxuUmlnaHQsIG5vIHNvZnR3YXJlIGVtdWxhdGlvbiBpcyBpbnZvbHZlZCBoZXJlLCBnb29kLiBOb3csIEkgbmVlZCB0byBnZXQgYSBjbGVhcmVyIHBpY3R1cmUgb2YgaG93IGBwcmVzdGVyYV9kc2FfcGFyc2VgIGZ1bmN0aW9ucyB3aXRoaW4gdGhlIHN5c3RlbS4gSXMgaXQgc29sZWx5IGNhbGxlZCBmcm9tIGBwcmVzdGVyYV9yeHR4X3Byb2Nlc3Nfc2tiYCwgb3IgZG9lcyBpdCBoYXZlIG90aGVyIHBvdGVudGlhbCBlbnRyeSBwb2ludHMgdGhhdCBJIG1pZ2h0IGJlIG92ZXJsb29raW5nPyBJIG5lZWQgdG8ga25vdyB0aGUgY29tcGxldGUgY2FsbCBncmFwaCB0byBkZXRlcm1pbmUgaWYgaXQgY291bGQgaGF2ZSBhbnkgdW5leHBlY3RlZCBzaWRlIGVmZmVjdHMuIEFuZCB3aGF0IGFib3V0IGBwcmVzdGVyYV9kc2FfYnVpbGRgPyBJIHNob3VsZCBleGFtaW5lIHRoYXQgZnVuY3Rpb24gaW4gZGV0YWlsIGFzIHdlbGwgdG8gc2VlIGhvdyBpdCBpbnRlcmFjdHMgd2l0aCB0aGUgcGFyc2VkIGRhdGEuIEl0J3MgY3J1Y2lhbCB0byB1bmRlcnN0YW5kIHRoZSBkYXRhIGZsb3cgY29tcGxldGVseS5cblxuXG4iLCJJbnB1dFRva2VucyI6MTk2NTYsIk91dHB1dFRva2VucyI6NDAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo0OSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNi0yMFQxMDoxOToyMy41Nzk3MzI1NDhaIiwiU2VxIjoxNCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjU1MjUzMTc5LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInByZXN0ZXJhX2RzYV9idWlsZFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RzYS5jPTM1PWludCBwcmVzdGVyYV9kc2FfcGFyc2Uoc3RydWN0IHByZXN0ZXJhX2RzYSAqZHNhLCBjb25zdCB1OCAqZHNhX2J1ZilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZHNhLmMtODItXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kc2EuYzo4MzppbnQgcHJlc3RlcmFfZHNhX2J1aWxkKGNvbnN0IHN0cnVjdCBwcmVzdGVyYV9kc2EgKmRzYSwgdTggKmRzYV9idWYpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kc2EuYy04NC17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RzYS5oPTMzPWludCBwcmVzdGVyYV9kc2FfcGFyc2Uoc3RydWN0IHByZXN0ZXJhX2RzYSAqZHNhLCBjb25zdCB1OCAqZHNhX2J1Zik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kc2EuaDozNDppbnQgcHJlc3RlcmFfZHNhX2J1aWxkKGNvbnN0IHN0cnVjdCBwcmVzdGVyYV9kc2EgKmRzYSwgdTggKmRzYV9idWYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZHNhLmgtMzUtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX3J4dHguYz04MTI9bmV0ZGV2X3R4X3QgcHJlc3RlcmFfcnh0eF94bWl0KHN0cnVjdCBwcmVzdGVyYV9wb3J0ICpwb3J0LCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9yeHR4LmMtODI0LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfcnh0eC5jOjgyNTpcXHRpZiAocHJlc3RlcmFfZHNhX2J1aWxkKFxcdTAwMjZkc2EsIHNrYi1cXHUwMDNlZGF0YSArIDIgKiBFVEhfQUxFTikgIT0gMClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX3J4dHguYy04MjYtXFx0XFx0cmV0dXJuIE5FVF9YTUlUX0RST1A7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTIwVDEwOjE5OjIzLjYzNDk5NjgzN1oiLCJTZXEiOjE1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo1NTY5NTI2NjkwLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgRnV6emluZyBQb3RlbnRpYWwgb2YgdGhlIFByZXN0ZXJhIERyaXZlcioqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgYHByZXN0ZXJhX3J4dHhfeG1pdGAgZnVuY3Rpb24gY2FsbC4gSXQncyBjb21pbmcgZnJvbSB0aGUgYHByZXN0ZXJhYCBkcml2ZXIsIHdoaWNoLCBhcyBJIHJlY2FsbCwgaXMgdGhhdCBNYXJ2ZWxsLXNwZWNpZmljIGRyaXZlciBmb3IgdGhlIFByZXN0ZXJhIFN3aXRjaCBBU0lDcy4gVGhlIGNvcmUgaXNzdWUgaGVyZSBmb3IgZnV6emluZyBpcyB0aGF0IHRoZXJlJ3Mgbm8gaGFyZHdhcmUgZW11bGF0aW9uIG9mIHRoaXMgcGFydGljdWxhciBkZXZpY2UgYXZhaWxhYmxlIGluIFFFTVUuIFRoYXQncyBhIHJlYWwgcHJvYmxlbSBmb3Igc3l6a2FsbGVyLCBpc24ndCBpdD8gSWYgdGhlIHRhcmdldCBoYXJkd2FyZSBpc24ndCBlbXVsYXRlZCwgc3l6a2FsbGVyIHNpbXBseSBjYW4ndCByZWFjaCB0aGF0IGNvZGUuXG5cblNvLCB0aGUgY29uY2x1c2lvbiBpcyBmYWlybHkgc3RyYWlnaHRmb3J3YXJkOiBgV29ydGhGdXp6aW5nYCBzaG91bGQgYmUgYGZhbHNlYC4gSSBuZWVkIHRvIGJlIGNlcnRhaW4sIHRob3VnaC4gTGV0J3MgZXhwbG9yZSBhbnkgcG90ZW50aWFsIGJhY2tkb29ycy5cblxuSSB3b25kZXIsIGlzIGBwcmVzdGVyYWAgc29tZWhvdyByZWFjaGFibGUgdGhyb3VnaCBhIGdlbmVyaWMgRFNBIChEaXN0cmlidXRlZCBTd2l0Y2ggQXJjaGl0ZWN0dXJlKSBmcmFtZXdvcmsgdGhhdCAqbWlnaHQqIGhhdmUgc29tZSBzb3J0IG9mIGVtdWxhdGlvbj8gVGltZSB0byBkb3VibGUtY2hlY2suIEkgcmVjYWxsIHRoZXJlJ3MgYSBmaWxlLCBgZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kc2EuY2AuIFdhaXQuLi50aGF0J3Mgc3BlY2lmaWMgdG8gKnByZXN0ZXJhKj8gT2theSwgc28gdGhhdCBsaWtlbHkgcnVsZXMgb3V0IGdlbmVyaWMgRFNBIGFjY2Vzcy5cblxuSSdtIG1ha2luZyBhIGtleSBkaXN0aW5jdGlvbiBoZXJlLiBJcyB0aGUgYHByZXN0ZXJhYCBkcml2ZXIgYSBEU0EgZHJpdmVyIGl0c2VsZj8gTGV0J3MgY2xhcmlmeS4gTm8sIGl0IHJlZ2lzdGVycyBhIHN3aXRjaGRldiwgbm90IGEgRFNBIGRyaXZlci4gSSBuZWVkIHRvIG1ha2Ugc3VyZSBJIGFtIHRoaW5raW5nIGNsZWFybHkgYWJvdXQgdGhpcy4gVG8gYmUgZXh0cmEgY2F1dGlvdXMsIGxldCBtZSBjaGVjayB0aGUgYHByZXN0ZXJhX21haW4uY2AgZmlsZSB0byBlbnN1cmUgdGhlcmUgYXJlIG5vIHN1cnByaXNlcy5cblxuXG4iLCJJbnB1dFRva2VucyI6MjAzODgsIk91dHB1dFRva2VucyI6MzcsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxODcsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjBUMTA6MTk6MjkuMjA0NTI1Njc3WiIsIlNlcSI6MTYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1NDcyNjI2OSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJyZWdpc3Rlcl9uZXRkZXZcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9tYWluLmM9NjAzPXN0YXRpYyBpbnQgcHJlc3RlcmFfcG9ydF9jcmVhdGUoc3RydWN0IHByZXN0ZXJhX3N3aXRjaCAqc3csIHUzMiBpZClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfbWFpbi5jLTczMC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX21haW4uYzo3MzE6XFx0ZXJyID0gcmVnaXN0ZXJfbmV0ZGV2KGRldik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9tYWluLmMtNzMyLVxcdGlmIChlcnIpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9tYWluLmM6NzMzOlxcdFxcdGdvdG8gZXJyX3JlZ2lzdGVyX25ldGRldjtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX21haW4uYy03MzQtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX21haW4uYy03NDEtZXJyX3NmcF9iaW5kOlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfbWFpbi5jOjc0MjpcXHR1bnJlZ2lzdGVyX25ldGRldihkZXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfbWFpbi5jOjc0MzplcnJfcmVnaXN0ZXJfbmV0ZGV2OlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfbWFpbi5jLTc0NC1cXHRwcmVzdGVyYV9wb3J0X2xpc3RfZGVsKHBvcnQpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9tYWluLmM9NzUzPXN0YXRpYyB2b2lkIHByZXN0ZXJhX3BvcnRfZGVzdHJveShzdHJ1Y3QgcHJlc3RlcmFfcG9ydCAqcG9ydClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfbWFpbi5jLTc1Ny1cXHRjYW5jZWxfZGVsYXllZF93b3JrX3N5bmMoXFx1MDAyNnBvcnQtXFx1MDAzZWNhY2hlZF9od19zdGF0cy5jYWNoaW5nX2R3KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX21haW4uYzo3NTg6XFx0dW5yZWdpc3Rlcl9uZXRkZXYoZGV2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX21haW4uYy03NTktXFx0cHJlc3RlcmFfcG9ydF9saXN0X2RlbChwb3J0KTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfbWFpbi5jPTEzNDk9c3RhdGljIGludCBwcmVzdGVyYV9uZXRkZXZfZXZlbnRfaGFuZGxlcl9yZWdpc3RlcihzdHJ1Y3QgcHJlc3RlcmFfc3dpdGNoICpzdylcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfbWFpbi5jLTEzNTItXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9tYWluLmM6MTM1MzpcXHRyZXR1cm4gcmVnaXN0ZXJfbmV0ZGV2aWNlX25vdGlmaWVyKFxcdTAwMjZzdy1cXHUwMDNlbmV0ZGV2X25iKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX21haW4uYy0xMzU0LX1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfbWFpbi5jPTEzNTY9c3RhdGljIHZvaWQgcHJlc3RlcmFfbmV0ZGV2X2V2ZW50X2hhbmRsZXJfdW5yZWdpc3RlcihzdHJ1Y3QgcHJlc3RlcmFfc3dpdGNoICpzdylcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX21haW4uYy0xMzU3LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX21haW4uYzoxMzU4OlxcdHVucmVnaXN0ZXJfbmV0ZGV2aWNlX25vdGlmaWVyKFxcdTAwMjZzdy1cXHUwMDNlbmV0ZGV2X25iKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX21haW4uYy0xMzU5LX1cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjBUMTA6MTk6MjkuMjU5MjU4OTc2WiIsIlNlcSI6MTcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjc5MjkwNTg0NDksIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqTXkgQXNzZXNzbWVudCBvZiB0aGUgTWFydmVsbCBQcmVzdGVyYSBTd2l0Y2ggRHJpdmVyJ3MgRnV6emluZyBQb3RlbnRpYWwqKlxuXG5Pa2F5LCBoZXJlJ3MgbXkgdGFrZSBvbiB0aGlzIE1hcnZlbGwgUHJlc3RlcmEgc3dpdGNoIGRyaXZlci4gSSd2ZSBsb29rZWQgYXQgdGhlIGNvZGUsIGFuZCBoZXJlJ3MgdGhlIGJvdHRvbSBsaW5lOiBJIG5lZWQgdG8gc2V0IGBXb3J0aEZ1enppbmc9ZmFsc2VgLiBUaGUgY29yZSBpc3N1ZSBpcyB0aGF0IHRoZSBkcml2ZXIgcmVsaWVzIG9uIHRoZSBQQ0kgZGV2aWNlIGJlaW5nIHByZXNlbnQgdG8gcmVnaXN0ZXIgdGhlIG5ldGRldnMgZm9yIHRoZSBzd2l0Y2ggcG9ydHMuICBTcGVjaWZpY2FsbHksIHRoZSBuZXRkZXZzIGFyZSBjcmVhdGVkIGR1cmluZyB0aGUgUENJIHByb2JlLlxuXG5Ob3csIGluIGFueSBub3JtYWwgaGFyZHdhcmUgc2V0dXAsIHRoaXMgd291bGQgYmUgZmluZS4gVGhlIFBDSSBkZXZpY2UgaXMgdGhlcmUsIHRoaW5ncyB3b3JrIGFzIGludGVuZGVkLiBCdXQgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgUUVNVSBvciBHb29nbGUgQ29tcHV0ZSBFbmdpbmUsIHdoaWNoIGFyZSBteSB0ZXN0YmVkcyBvZiBjaG9pY2UgZm9yIGZ1enppbmcsIHRoaXMgUENJIGRldmljZSBzaW1wbHkgaXNuJ3QgcHJlc2VudC4gQW5kIGlmIHRoYXQgUENJIGRldmljZSBpc24ndCBwcm9iZWQsIHRoZSBuZWNlc3NhcnkgbmV0ZGV2cyBhcmUgbmV2ZXIgY3JlYXRlZC5cblxuRWZmZWN0aXZlbHksIHRoaXMgbWVhbnMgdGhlIGNvZGUgdGhhdCBpbnRlcmFjdHMgd2l0aCB0aGUgc3dpdGNoIGl0c2VsZiDigJMgdGhlIGNvZGUgSSdkIGJlIHRhcmdldGluZyB3aXRoIGZ1enppbmcg4oCTIGJlY29tZXMgdW5yZWFjaGFibGUgdW5kZXIgdGhlIGNvbmRpdGlvbnMgSSdtIG9wZXJhdGluZyB3aXRoaW4uICBUaGVyZWZvcmUsIGZvY3VzaW5nIGZ1enppbmcgZWZmb3J0IG9uIHRoaXMgZHJpdmVyIGlzLCBmb3IgYWxsIGludGVudHMgYW5kIHB1cnBvc2VzLCBhIHdhc3RlIG9mIHRpbWUuIEl0J3MgYSBoYXJkd2FyZS1zcGVjaWZpYyBkcml2ZXIgZGVzaWduZWQgZm9yIE1hcnZlbGwgUHJlc3RlcmEgU3dpdGNoIEFTSUNzLCBhbmQgdGhlc2UgQVNJQ3MgYXJlbid0IGVtdWxhdGVkIGluIHRoZSB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgSSdtIHVzaW5nLiBJdCdzIHNpbXBseSBub3QgcHJhY3RpY2FsIHRvIGluY2x1ZGUgaXQuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjIxNzQ3LCJPdXRwdXRUb2tlbnMiOjExMCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjEwNCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNi0yMFQxMDoxOTozNy4xODgzMTk0MzVaIiwiU2VxIjoxOCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyMzkwMCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW10sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgTWFydmVsbCBQcmVzdGVyYSBTd2l0Y2ggQVNJQyBkcml2ZXIgKHByZXN0ZXJhKS4gVGhpcyBkcml2ZXIgcmVxdWlyZXMgc3BlY2lmaWMgaGFyZHdhcmUgKFBDSV9WRU5ET1JfSURfTUFSVkVMTCwgUFJFU1RFUkFfREVWX0lEX0FDM1hfOThEWF81NSkgd2hpY2ggaXMgbm90IGVtdWxhdGVkIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIFFFTVUgb3IgR0NFLiBUaGVyZWZvcmUsIHRoZSBtb2RpZmllZCBjb2RlIHBhdGhzIGFyZSB1bnJlYWNoYWJsZSBkdXJpbmcgZnV6emluZy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBNYXJ2ZWxsIFByZXN0ZXJhIFN3aXRjaCBBU0lDIGRyaXZlciAocHJlc3RlcmEpLiBUaGlzIGRyaXZlciByZXF1aXJlcyBzcGVjaWZpYyBoYXJkd2FyZSAoUENJX1ZFTkRPUl9JRF9NQVJWRUxMLCBQUkVTVEVSQV9ERVZfSURfQUMzWF85OERYXzU1KSB3aGljaCBpcyBub3QgZW11bGF0ZWQgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgUUVNVSBvciBHQ0UuIFRoZXJlZm9yZSwgdGhlIG1vZGlmaWVkIGNvZGUgcGF0aHMgYXJlIHVucmVhY2hhYmxlIGR1cmluZyBmdXp6aW5nLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9XTsKCQkJaWYgKCFyYXdEYXRhIHx8IHJhd0RhdGEubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQlkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKTsKCQkJZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSk7CgkJCWRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKSB7CgkJCWNvbnN0IHN0YXRzID0gewoJCQkJbGxtOiB7IGNvdW50OiAwLCB0b2tlbnM6IDAsIGR1cmF0aW9uOiAwIH0sCgkJCQl0b29sOiB7IGNvdW50OiAwLCBkdXJhdGlvbjogMCB9CgkJCX07CgoJCQlyYXdEYXRhLmZvckVhY2gocyA9PiB7CgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsgCgkJCQlpZiAocy5UeXBlID09PSAibGxtIikgewoJCQkJCXN0YXRzLmxsbS5jb3VudCsrOwoJCQkJCXN0YXRzLmxsbS50b2tlbnMgKz0gKHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnMpOwoJCQkJCXN0YXRzLmxsbS5kdXJhdGlvbiArPSBkdXI7CgkJCQl9IGVsc2UgaWYgKHMuVHlwZSA9PT0gInRvb2wiKSB7CgkJCQkJc3RhdHMudG9vbC5jb3VudCsrOwoJCQkJCXN0YXRzLnRvb2wuZHVyYXRpb24gKz0gZHVyOwoJCQkJfQoJCQl9KTsKCgkJCWNvbnN0IGF2Z0xsbUR1ciA9IHN0YXRzLmxsbS5jb3VudCA+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-workflowfl64l[0].run-triage(0) Phase: Succeeded StartedAt: 2026-06-20 09:57:55 +0000 UTC FinishedAt: 2026-06-20 10:19:38 +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+CgkJCTx0ZD4yMDI2LzA2LzIwIDEwOjE4PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MW08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBNYXJ2ZWxsIFByZXN0ZXJhIFN3aXRjaCBBU0lDIGRyaXZlciAocHJlc3RlcmEpLiBUaGlzIGRyaXZlciByZXF1aXJlcyBzcGVjaWZpYyBoYXJkd2FyZSAoUENJX1ZFTkRPUl9JRF9NQVJWRUxMLCBQUkVTVEVSQV9ERVZfSURfQUMzWF85OERYXzU1KSB3aGljaCBpcyBub3QgZW11bGF0ZWQgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgUUVNVSBvciBHQ0UuIFRoZXJlZm9yZSwgdGhlIG1vZGlmaWVkIGNvZGUgcGF0aHMgYXJlIHVucmVhY2hhYmxlIGR1cmluZyBmdXp6aW5nLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yMCAxMDoxODwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IDM5YzZlYTI2ZjFiYjYxM2EzODc2Yjg5ZWIxODBjZGZhNGYxNDNlNjdcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgU2F0IEp1biAyMCAxMDoxODozMyAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RzYS5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kc2EuY1xuaW5kZXggYjdlODljMGNhNWMwZDkuLjI3NmY5OGNiZDUwZWE3IDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kc2EuY1xuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kc2EuY1xuQEAgLTQsNiAmIzQzOzQsNyBAQFxuICNpbmNsdWRlIFx1MDAzY2xpbnV4L2JpdGZpZWxkLmhcdTAwM2VcbiAjaW5jbHVkZSBcdTAwM2NsaW51eC9iaXRvcHMuaFx1MDAzZVxuICNpbmNsdWRlIFx1MDAzY2xpbnV4L2Vycm5vLmhcdTAwM2VcbiYjNDM7I2luY2x1ZGUgXHUwMDNjbGludXgvdW5hbGlnbmVkLmhcdTAwM2VcbiAjaW5jbHVkZSBcdTAwM2NsaW51eC9zdHJpbmcuaFx1MDAzZVxuIFxuICNpbmNsdWRlIFwmIzM0O3ByZXN0ZXJhX2RzYS5oXCYjMzQ7XG5AQCAtMzMsMTUgJiM0MzszNCwxNCBAQFxuIFxuIGludCBwcmVzdGVyYV9kc2FfcGFyc2Uoc3RydWN0IHByZXN0ZXJhX2RzYSAqZHNhLCBjb25zdCB1OCAqZHNhX2J1ZilcbiB7XG4tXHRfX2JlMzIgKmRzYV93b3JkcyA9IChfX2JlMzIgKilkc2FfYnVmO1xuIFx0ZW51bSBwcmVzdGVyYV9kc2FfY21kIGNtZDtcbiBcdHUzMiB3b3Jkc1s0XTtcbiBcdHUzMiBmaWVsZDtcbiBcbi1cdHdvcmRzWzBdID0gbnRvaGwoZHNhX3dvcmRzWzBdKTtcbi1cdHdvcmRzWzFdID0gbnRvaGwoZHNhX3dvcmRzWzFdKTtcbi1cdHdvcmRzWzJdID0gbnRvaGwoZHNhX3dvcmRzWzJdKTtcbi1cdHdvcmRzWzNdID0gbnRvaGwoZHNhX3dvcmRzWzNdKTtcbiYjNDM7XHR3b3Jkc1swXSA9IGdldF91bmFsaWduZWRfYmUzMihkc2FfYnVmKTtcbiYjNDM7XHR3b3Jkc1sxXSA9IGdldF91bmFsaWduZWRfYmUzMihkc2FfYnVmICYjNDM7IDQpO1xuJiM0MztcdHdvcmRzWzJdID0gZ2V0X3VuYWxpZ25lZF9iZTMyKGRzYV9idWYgJiM0MzsgOCk7XG4mIzQzO1x0d29yZHNbM10gPSBnZXRfdW5hbGlnbmVkX2JlMzIoZHNhX2J1ZiAmIzQzOyAxMik7XG4gXG4gXHQvKiBzZXQgdGhlIGNvbW1vbiBwYXJhbWV0ZXJzICovXG4gXHRjbWQgPSAoZW51bSBwcmVzdGVyYV9kc2FfY21kKUZJRUxEX0dFVChQUkVTVEVSQV9EU0FfVzBfQ01ELCB3b3Jkc1swXSk7XG5AQCAtODIsNyAmIzQzOzgyLDYgQEAgaW50IHByZXN0ZXJhX2RzYV9wYXJzZShzdHJ1Y3QgcHJlc3RlcmFfZHNhICpkc2EsIGNvbnN0IHU4ICpkc2FfYnVmKVxuIFxuIGludCBwcmVzdGVyYV9kc2FfYnVpbGQoY29uc3Qgc3RydWN0IHByZXN0ZXJhX2RzYSAqZHNhLCB1OCAqZHNhX2J1ZilcbiB7XG4tXHRfX2JlMzIgKmRzYV93b3JkcyA9IChfX2JlMzIgKilkc2FfYnVmO1xuIFx0dTMyIGRldl9udW0gPSBkc2EtXHUwMDNlaHdfZGV2X251bTtcbiBcdHUzMiB3b3Jkc1s0XSA9IHsgMCB9O1xuIFxuQEAgLTk4LDEwICYjNDM7OTcsMTAgQEAgaW50IHByZXN0ZXJhX2RzYV9idWlsZChjb25zdCBzdHJ1Y3QgcHJlc3RlcmFfZHNhICpkc2EsIHU4ICpkc2FfYnVmKVxuIFx0d29yZHNbMV0gfD0gRklFTERfUFJFUChQUkVTVEVSQV9EU0FfVzFfRVhUX0JJVCwgMSk7XG4gXHR3b3Jkc1syXSB8PSBGSUVMRF9QUkVQKFBSRVNURVJBX0RTQV9XMl9FWFRfQklULCAxKTtcbiBcbi1cdGRzYV93b3Jkc1swXSA9IGh0b25sKHdvcmRzWzBdKTtcbi1cdGRzYV93b3Jkc1sxXSA9IGh0b25sKHdvcmRzWzFdKTtcbi1cdGRzYV93b3Jkc1syXSA9IGh0b25sKHdvcmRzWzJdKTtcbi1cdGRzYV93b3Jkc1szXSA9IGh0b25sKHdvcmRzWzNdKTtcbiYjNDM7XHRwdXRfdW5hbGlnbmVkX2JlMzIod29yZHNbMF0sIGRzYV9idWYpO1xuJiM0MztcdHB1dF91bmFsaWduZWRfYmUzMih3b3Jkc1sxXSwgZHNhX2J1ZiAmIzQzOyA0KTtcbiYjNDM7XHRwdXRfdW5hbGlnbmVkX2JlMzIod29yZHNbMl0sIGRzYV9idWYgJiM0MzsgOCk7XG4mIzQzO1x0cHV0X3VuYWxpZ25lZF9iZTMyKHdvcmRzWzNdLCBkc2FfYnVmICYjNDM7IDEyKTtcbiBcbiBcdHJldHVybiAwO1xuIH1cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yMCAxMDoxODwvdGQ+CgkJCTx0ZD5hZ2VudDwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4xbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogbnVsbCwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgTWFydmVsbCBQcmVzdGVyYSBTd2l0Y2ggQVNJQyBkcml2ZXIgKHByZXN0ZXJhKS4gVGhpcyBkcml2ZXIgcmVxdWlyZXMgc3BlY2lmaWMgaGFyZHdhcmUgKFBDSV9WRU5ET1JfSURfTUFSVkVMTCwgUFJFU1RFUkFfREVWX0lEX0FDM1hfOThEWF81NSkgd2hpY2ggaXMgbm90IGVtdWxhdGVkIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIFFFTVUgb3IgR0NFLiBUaGVyZWZvcmUsIHRoZSBtb2RpZmllZCBjb2RlIHBhdGhzIGFyZSB1bnJlYWNoYWJsZSBkdXJpbmcgZnV6emluZy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZQppZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5CnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuCgpSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOgotIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuCi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuCi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LgotIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwKZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLgoKSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaAp0b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS4KCldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOgoxLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLgogICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy4KMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuCiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy4KICAgRG8gbm90IGxpc3QgdG9vIGdlbmVyaWMgY29uZmlncyAod2UgYWxyZWFkeSBoYXZlIHRoZW0gZW5hYmxlZCkuIE9ubHkgbGlzdCB0aG9zZSB0aGF0CiAgIHNwZWNpZmljYWxseSBjb3ZlciB0aGUgbW9kaWZpZWQgY29kZS4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzIG91dHB1dCBhcnJheSwKICAgYW5kIERPIE5PVCBhZGQgYSAmIzM5O0NPTkZJR18mIzM5OyBwcmVmaXggKGUuZy4sIHJldHVybiAmIzM0O05FVF9JUFY0JiMzNDsgaW5zdGVhZCBvZiAmIzM0O0NPTkZJR19ORVRfSVBWNCYjMzQ7KS4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IDM5YzZlYTI2ZjFiYjYxM2EzODc2Yjg5ZWIxODBjZGZhNGYxNDNlNjcKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgU2F0IEp1biAyMCAxMDoxODozMyAyMDI2ICYjNDM7MDAwMAoKICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldwoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZHNhLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RzYS5jCmluZGV4IGI3ZTg5YzBjYTVjMGQ5Li4yNzZmOThjYmQ1MGVhNyAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kc2EuYwomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RzYS5jCkBAIC00LDYgJiM0Mzs0LDcgQEAKICNpbmNsdWRlICZsdDtsaW51eC9iaXRmaWVsZC5oJmd0OwogI2luY2x1ZGUgJmx0O2xpbnV4L2JpdG9wcy5oJmd0OwogI2luY2x1ZGUgJmx0O2xpbnV4L2Vycm5vLmgmZ3Q7CiYjNDM7I2luY2x1ZGUgJmx0O2xpbnV4L3VuYWxpZ25lZC5oJmd0OwogI2luY2x1ZGUgJmx0O2xpbnV4L3N0cmluZy5oJmd0OwogCiAjaW5jbHVkZSAmIzM0O3ByZXN0ZXJhX2RzYS5oJiMzNDsKQEAgLTMzLDE1ICYjNDM7MzQsMTQgQEAKIAogaW50IHByZXN0ZXJhX2RzYV9wYXJzZShzdHJ1Y3QgcHJlc3RlcmFfZHNhICpkc2EsIGNvbnN0IHU4ICpkc2FfYnVmKQogewotCV9fYmUzMiAqZHNhX3dvcmRzID0gKF9fYmUzMiAqKWRzYV9idWY7CiAJZW51bSBwcmVzdGVyYV9kc2FfY21kIGNtZDsKIAl1MzIgd29yZHNbNF07CiAJdTMyIGZpZWxkOwogCi0Jd29yZHNbMF0gPSBudG9obChkc2Ffd29yZHNbMF0pOwotCXdvcmRzWzFdID0gbnRvaGwoZHNhX3dvcmRzWzFdKTsKLQl3b3Jkc1syXSA9IG50b2hsKGRzYV93b3Jkc1syXSk7Ci0Jd29yZHNbM10gPSBudG9obChkc2Ffd29yZHNbM10pOwomIzQzOwl3b3Jkc1swXSA9IGdldF91bmFsaWduZWRfYmUzMihkc2FfYnVmKTsKJiM0MzsJd29yZHNbMV0gPSBnZXRfdW5hbGlnbmVkX2JlMzIoZHNhX2J1ZiAmIzQzOyA0KTsKJiM0MzsJd29yZHNbMl0gPSBnZXRfdW5hbGlnbmVkX2JlMzIoZHNhX2J1ZiAmIzQzOyA4KTsKJiM0MzsJd29yZHNbM10gPSBnZXRfdW5hbGlnbmVkX2JlMzIoZHNhX2J1ZiAmIzQzOyAxMik7CiAKIAkvKiBzZXQgdGhlIGNvbW1vbiBwYXJhbWV0ZXJzICovCiAJY21kID0gKGVudW0gcHJlc3RlcmFfZHNhX2NtZClGSUVMRF9HRVQoUFJFU1RFUkFfRFNBX1cwX0NNRCwgd29yZHNbMF0pOwpAQCAtODIsNyAmIzQzOzgyLDYgQEAgaW50IHByZXN0ZXJhX2RzYV9wYXJzZShzdHJ1Y3QgcHJlc3RlcmFfZHNhICpkc2EsIGNvbnN0IHU4ICpkc2FfYnVmKQogCiBpbnQgcHJlc3RlcmFfZHNhX2J1aWxkKGNvbnN0IHN0cnVjdCBwcmVzdGVyYV9kc2EgKmRzYSwgdTggKmRzYV9idWYpCiB7Ci0JX19iZTMyICpkc2Ffd29yZHMgPSAoX19iZTMyICopZHNhX2J1ZjsKIAl1MzIgZGV2X251bSA9IGRzYS0mZ3Q7aHdfZGV2X251bTsKIAl1MzIgd29yZHNbNF0gPSB7IDAgfTsKIApAQCAtOTgsMTAgJiM0Mzs5NywxMCBAQCBpbnQgcHJlc3RlcmFfZHNhX2J1aWxkKGNvbnN0IHN0cnVjdCBwcmVzdGVyYV9kc2EgKmRzYSwgdTggKmRzYV9idWYpCiAJd29yZHNbMV0gfD0gRklFTERfUFJFUChQUkVTVEVSQV9EU0FfVzFfRVhUX0JJVCwgMSk7CiAJd29yZHNbMl0gfD0gRklFTERfUFJFUChQUkVTVEVSQV9EU0FfVzJfRVhUX0JJVCwgMSk7CiAKLQlkc2Ffd29yZHNbMF0gPSBodG9ubCh3b3Jkc1swXSk7Ci0JZHNhX3dvcmRzWzFdID0gaHRvbmwod29yZHNbMV0pOwotCWRzYV93b3Jkc1syXSA9IGh0b25sKHdvcmRzWzJdKTsKLQlkc2Ffd29yZHNbM10gPSBodG9ubCh3b3Jkc1szXSk7CiYjNDM7CXB1dF91bmFsaWduZWRfYmUzMih3b3Jkc1swXSwgZHNhX2J1Zik7CiYjNDM7CXB1dF91bmFsaWduZWRfYmUzMih3b3Jkc1sxXSwgZHNhX2J1ZiAmIzQzOyA0KTsKJiM0MzsJcHV0X3VuYWxpZ25lZF9iZTMyKHdvcmRzWzJdLCBkc2FfYnVmICYjNDM7IDgpOwomIzQzOwlwdXRfdW5hbGlnbmVkX2JlMzIod29yZHNbM10sIGRzYV9idWYgJiM0MzsgMTIpOwogCiAJcmV0dXJuIDA7CiB9CjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzIwIDEwOjE4PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDI1NTkKCQkJCQkJCW91dHB1dDogMzUKCQkJCQkJCXRob3VnaHRzOiAxODEKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIGEgUHJlc3RlcmEgRHJpdmVyIFBhdGNoKioKCk9rYXksIHNvIEkmIzM5O3ZlIGdvdCB0aGlzIHBhdGNoIHRoYXQgdG91Y2hlcyBgZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kc2EuY2AuIFNlZW1zIHN0cmFpZ2h0Zm9yd2FyZCBlbm91Z2g7IGl0JiMzOTtzIHJlcGxhY2luZyBzb21lIGRpcmVjdCBwb2ludGVyIGNhc3RpbmcgYW5kIGBudG9obGAvYGh0b25sYCB3aXRoIGBnZXRfdW5hbGlnbmVkX2JlMzJgIGFuZCBgcHV0X3VuYWxpZ25lZF9iZTMyYC4gU291bmRzIGxpa2UgYSBmaXggZm9yIGFuIHVuYWxpZ25lZCBtZW1vcnkgYWNjZXNzIGlzc3VlLCB3aGljaCBpcyBnb29kLiBQcmV2ZW50cyBwb3RlbnRpYWwgY3Jhc2hlcyBvciBkYXRhIGNvcnJ1cHRpb24uCgpUaGUgZHJpdmVyIGluIHF1ZXN0aW9uIGlzIGBwcmVzdGVyYWAsIHdoaWNoIEkga25vdyBpcyB0aGUgTWFydmVsbCBQcmVzdGVyYSBTd2l0Y2ggQVNJQ3MgTGludXggTmV0d29yayBEcml2ZXIuIE5vdyBjb21lcyB0aGUgcmVhbCBxdWVzdGlvbjogY2FuIEkgZWZmZWN0aXZlbHkgdGVzdCB0aGlzIHRoaW5nIGluIGEgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnQ/IFN3aXRjaCBBU0lDIGRyaXZlcnMgYXJlIHVzdWFsbHkgYSBwYWluIHRvIGZ1enosIGFzIHRoZXkgb2Z0ZW4gcmVxdWlyZSBzcGVjaWZpYyBoYXJkd2FyZS4gUUVNVSBnZW5lcmFsbHkgaXNu4oCZdCBnb2luZyB0byBjdXQgaXQgdW5sZXNzIHRoZXJlJiMzOTtzIGEgaGFyZHdhcmUgZW11bGF0b3Igb3IgaXTigJlzIGFjdGluZyBvbiBhIG1vcmUgZ2VuZXJpYyBzdWJzeXN0ZW0uIEkgbmVlZCB0byBmaWd1cmUgb3V0IGlmIGBwcmVzdGVyYWAgaXMgYW4gZXhjZXB0aW9uLiBDYW4gaXQgYmUgZnV6emVkIGluIGEgdmlydHVhbCBzZXR0aW5nPwoKTGV0JiMzOTtzIHNlZeKApiBkbyBJIGhhdmUgYW55IG9wdGlvbnMgaGVyZT8gSXMgdGhlcmUgc29tZSB2aXJ0dWFsIGRldmljZSB0aGF0IGVtdWxhdGVzIHRoZSBQcmVzdGVyYSBoYXJkd2FyZT8gSSBuZWVkIHRvIHNlYXJjaCB0aGUga2VybmVsIHRyZWUsIGFuZCBzZWUgaWYgdGhlcmUgYXJlIGFueSB2aXJ0dWFsIGltcGxlbWVudGF0aW9ucyBvciBjb25maWd1cmF0aW9uIG9wdGlvbnMgdGhhdCBjb3VsZCBmYWNpbGl0YXRlIHRoaXMuIExldOKAmXMgc2VlIHdoYXQgc2hvd3MgdXAuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NC8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjAgMTA6MTg8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7cHJlc3RlcmEmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtcbkZ1bGwgb3V0cHV0IGlzIHRvbyBsb25nLCBzaG93aW5nIDUwMCBvdXQgb2YgODgzOCBsaW5lcy5cblVzZSBtb3JlIHByZWNpc2UgZXhwcmVzc2lvbiBpZiBwb3NzaWJsZS5cblxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9LY29uZmlnPTY9Y29uZmlnIFBSRVNURVJBXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9LY29uZmlnLTE1LVx0ICBUbyBjb21waWxlIHRoaXMgZHJpdmVyIGFzIGEgbW9kdWxlLCBjaG9vc2UgTSBoZXJlOiB0aGVcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvS2NvbmZpZzoxNjpcdCAgbW9kdWxlIHdpbGwgYmUgY2FsbGVkIHByZXN0ZXJhLlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9LY29uZmlnLTE3LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9LY29uZmlnPTE4PWNvbmZpZyBQUkVTVEVSQV9QQ0lcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL0tjb25maWctMjYtXHQgIFRvIGNvbXBpbGUgdGhpcyBkcml2ZXIgYXMgYSBtb2R1bGUsIGNob29zZSBNIGhlcmU6IHRoZVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9LY29uZmlnOjI3Olx0ICBtb2R1bGUgd2lsbCBiZSBjYWxsZWQgcHJlc3RlcmFfcGNpLlxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvTWFrZWZpbGUtMS0jIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL01ha2VmaWxlOjI6b2JqLSQoQ09ORklHX1BSRVNURVJBKVx0JiM0Mzs9IHByZXN0ZXJhLm9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvTWFrZWZpbGU6MzpwcmVzdGVyYS1vYmpzXHRcdDo9IHByZXN0ZXJhX21haW4ubyBwcmVzdGVyYV9ody5vIHByZXN0ZXJhX2RzYS5vIFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL01ha2VmaWxlOjQ6XHRcdFx0ICAgcHJlc3RlcmFfcnh0eC5vIHByZXN0ZXJhX2RldmxpbmsubyBwcmVzdGVyYV9ldGh0b29sLm8gXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvTWFrZWZpbGU6NTpcdFx0XHQgICBwcmVzdGVyYV9zd2l0Y2hkZXYubyBwcmVzdGVyYV9hY2wubyBwcmVzdGVyYV9mbG93Lm8gXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvTWFrZWZpbGU6NjpcdFx0XHQgICBwcmVzdGVyYV9mbG93ZXIubyBwcmVzdGVyYV9zcGFuLm8gcHJlc3RlcmFfY291bnRlci5vIFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL01ha2VmaWxlOjc6XHRcdFx0ICAgcHJlc3RlcmFfcm91dGVyLm8gcHJlc3RlcmFfcm91dGVyX2h3Lm8gcHJlc3RlcmFfbWF0Y2hhbGwub1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9NYWtlZmlsZS04LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9NYWtlZmlsZTo5Om9iai0kKENPTkZJR19QUkVTVEVSQV9QQ0kpXHQmIzQzOz0gcHJlc3RlcmFfcGNpLm9cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmgtMTMtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmg6MTQ6I2RlZmluZSBQUkVTVEVSQV9EUlZfTkFNRVx0XCYjMzQ7cHJlc3RlcmFcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaC0xNS1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmgtMTctXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmg6MTg6c3RydWN0IHByZXN0ZXJhX2Z3X3JldiB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmgtMTktXHR1MTYgbWFqO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaC0yMy1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaDoyNDpzdHJ1Y3QgcHJlc3RlcmFfZmxvb2RfZG9tYWluIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaDoyNTpcdHN0cnVjdCBwcmVzdGVyYV9zd2l0Y2ggKnN3O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oLTI2LVx0c3RydWN0IGxpc3RfaGVhZCBmbG9vZF9kb21haW5fcG9ydF9saXN0O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaC0yOS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaDozMDpzdHJ1Y3QgcHJlc3RlcmFfbWRiX2VudHJ5IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaDozMTpcdHN0cnVjdCBwcmVzdGVyYV9zd2l0Y2ggKnN3O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oOjMyOlx0c3RydWN0IHByZXN0ZXJhX2Zsb29kX2RvbWFpbiAqZmxvb2RfZG9tYWluO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oLTMzLVx0dW5zaWduZWQgY2hhciBhZGRyW0VUSF9BTEVOXTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmgtMzYtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmg6Mzc6c3RydWN0IHByZXN0ZXJhX2Zsb29kX2RvbWFpbl9wb3J0IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaDozODpcdHN0cnVjdCBwcmVzdGVyYV9mbG9vZF9kb21haW4gKmZsb29kX2RvbWFpbjtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaC0zOS1cdHN0cnVjdCBuZXRfZGV2aWNlICpkZXY7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oLTQzLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oOjQ0OnN0cnVjdCBwcmVzdGVyYV9wb3J0X3N0YXRzIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaC00NS1cdHU2NCBnb29kX29jdGV0c19yZWNlaXZlZDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmgtNzgtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmg6Nzk6c3RydWN0IHByZXN0ZXJhX3BvcnRfY2FwcyB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmgtODAtXHR1NjQgc3VwcF9saW5rX21vZGVzO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaC04NS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaDo4NjpzdHJ1Y3QgcHJlc3RlcmFfbGFnIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaC04Ny1cdHN0cnVjdCBuZXRfZGV2aWNlICpkZXY7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oLTkyLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oOjkzOnN0cnVjdCBwcmVzdGVyYV9mbG93X2Jsb2NrO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oLTk0LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oOjk1OnN0cnVjdCBwcmVzdGVyYV9wb3J0X21hY19zdGF0ZSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmgtOTYtXHRib29sIHZhbGlkO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaC0xMDQtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmg6MTA1OnN0cnVjdCBwcmVzdGVyYV9wb3J0X3BoeV9zdGF0ZSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmgtMTA2LVx0dTY0IGxtb2RlX2JtYXA7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oLTExMy1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaDoxMTQ6c3RydWN0IHByZXN0ZXJhX3BvcnRfbWFjX2NvbmZpZyB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmgtMTE1LVx0dTMyIG1vZGU7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oLTEyMi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaDoxMjM6c3RydWN0IHByZXN0ZXJhX3BvcnRfcGh5X2NvbmZpZyB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmgtMTI0LVx0dTMyIG1vZGU7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oLTEyOC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaDoxMjk6c3RydWN0IHByZXN0ZXJhX3BvcnQge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oLTEzMC1cdHN0cnVjdCBuZXRfZGV2aWNlICpkZXY7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmg6MTMxOlx0c3RydWN0IHByZXN0ZXJhX3N3aXRjaCAqc3c7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmg6MTMyOlx0c3RydWN0IHByZXN0ZXJhX2Zsb3dfYmxvY2sgKmluZ3Jlc3NfZmxvd19ibG9jaztcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaDoxMzM6XHRzdHJ1Y3QgcHJlc3RlcmFfZmxvd19ibG9jayAqZWdyZXNzX2Zsb3dfYmxvY2s7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmgtMTM0LVx0c3RydWN0IGRldmxpbmtfcG9ydCBkbF9wb3J0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oLTEzNS1cdHN0cnVjdCBsaXN0X2hlYWQgbGFnX21lbWJlcjtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaDoxMzY6XHRzdHJ1Y3QgcHJlc3RlcmFfbGFnICpsYWc7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmgtMTM3LVx0dTMyIGlkO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaC0xNDQtXHR1OCBhZHZlcl9mZWM7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmg6MTQ1Olx0c3RydWN0IHByZXN0ZXJhX3BvcnRfY2FwcyBjYXBzO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oLTE0Ni1cdHN0cnVjdCBsaXN0X2hlYWQgbGlzdDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmgtMTQ4LVx0c3RydWN0IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaDoxNDk6XHRcdHN0cnVjdCBwcmVzdGVyYV9wb3J0X3N0YXRzIHN0YXRzO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oLTE1MC1cdFx0c3RydWN0IGRlbGF5ZWRfd29yayBjYWNoaW5nX2R3O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oLTE1MS1cdH0gY2FjaGVkX2h3X3N0YXRzO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oOjE1MjpcdHN0cnVjdCBwcmVzdGVyYV9wb3J0X21hY19jb25maWcgY2ZnX21hYztcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaDoxNTM6XHRzdHJ1Y3QgcHJlc3RlcmFfcG9ydF9waHlfY29uZmlnIGNmZ19waHk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmg6MTU0Olx0c3RydWN0IHByZXN0ZXJhX3BvcnRfbWFjX3N0YXRlIHN0YXRlX21hYztcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaDoxNTU6XHRzdHJ1Y3QgcHJlc3RlcmFfcG9ydF9waHlfc3RhdGUgc3RhdGVfcGh5O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oLTE1Ni1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmgtMTY0LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oOjE2NTpzdHJ1Y3QgcHJlc3RlcmFfZGV2aWNlIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaC0xNjYtXHRzdHJ1Y3QgZGV2aWNlICpkZXY7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oLTE2OC1cdHU4IF9faW9tZW0gKnBwX3JlZ3M7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmg6MTY5Olx0c3RydWN0IHByZXN0ZXJhX2Z3X3JldiBmd19yZXY7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmgtMTcwLVx0dm9pZCAqcHJpdjtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmgtMTcyLVx0LyogY2FsbGVkIGJ5IGRldmljZSBkcml2ZXIgdG8gaGFuZGxlIHJlY2VpdmVkIHBhY2tldHMgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaDoxNzM6XHR2b2lkICgqcmVjdl9wa3QpKHN0cnVjdCBwcmVzdGVyYV9kZXZpY2UgKmRldik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmgtMTc0LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oLTE3NS1cdC8qIGNhbGxlZCBieSBkZXZpY2UgZHJpdmVyIHRvIHBhc3MgZXZlbnQgdXAgdG8gdGhlIGhpZ2hlciBsYXllciAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oOjE3NjpcdGludCAoKnJlY3ZfbXNnKShzdHJ1Y3QgcHJlc3RlcmFfZGV2aWNlICpkZXYsIHZvaWQgKm1zZywgc2l6ZV90IHNpemUpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oLTE3Ny1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaC0xNzgtXHQvKiBjYWxsZWQgYnkgaGlnaGVyIGxheWVyIHRvIHNlbmQgcmVxdWVzdCB0byB0aGUgZmlybXdhcmUgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaDoxNzk6XHRpbnQgKCpzZW5kX3JlcSkoc3RydWN0IHByZXN0ZXJhX2RldmljZSAqZGV2LCBpbnQgcWlkLCB2b2lkICppbl9tc2csXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmgtMTgwLVx0XHRcdHNpemVfdCBpbl9zaXplLCB2b2lkICpvdXRfbXNnLCBzaXplX3Qgb3V0X3NpemUsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oLTE4My1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaDoxODQ6ZW51bSBwcmVzdGVyYV9ldmVudF90eXBlIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaC0xODUtXHRQUkVTVEVSQV9FVkVOVF9UWVBFX1VOU1BFQyxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmgtMTkzLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oOjE5NDplbnVtIHByZXN0ZXJhX3J4dHhfZXZlbnRfaWQge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oLTE5NS1cdFBSRVNURVJBX1JYVFhfRVZFTlRfVU5TUEVDLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaC0xOTgtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmg6MTk5OmVudW0gcHJlc3RlcmFfcG9ydF9ldmVudF9pZCB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmgtMjAwLVx0UFJFU1RFUkFfUE9SVF9FVkVOVF9VTlNQRUMsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oLTIwMy1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaDoyMDQ6c3RydWN0IHByZXN0ZXJhX3BvcnRfZXZlbnQge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oLTIwNS1cdHUzMiBwb3J0X2lkO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaC0yMjUtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmg6MjI2OmVudW0gcHJlc3RlcmFfZmRiX2VudHJ5X3R5cGUge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oLTIyNy1cdFBSRVNURVJBX0ZEQl9FTlRSWV9UWVBFX1JFR19QT1JULFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaC0yMzEtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmg6MjMyOmVudW0gcHJlc3RlcmFfZmRiX2V2ZW50X2lkIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaC0yMzMtXHRQUkVTVEVSQV9GREJfRVZFTlRfVU5TUEVDLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaC0yMzctXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmg6MjM4OnN0cnVjdCBwcmVzdGVyYV9mZGJfZXZlbnQge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oOjIzOTpcdGVudW0gcHJlc3RlcmFfZmRiX2VudHJ5X3R5cGUgdHlwZTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaC0yNDAtXHR1bmlvbiB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oLTI0OS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaDoyNTA6c3RydWN0IHByZXN0ZXJhX2V2ZW50IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaC0yNTEtXHR1MTYgaWQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmgtMjUyLVx0dW5pb24ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oOjI1MzpcdFx0c3RydWN0IHByZXN0ZXJhX3BvcnRfZXZlbnQgcG9ydF9ldnQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmg6MjU0Olx0XHRzdHJ1Y3QgcHJlc3RlcmFfZmRiX2V2ZW50IGZkYl9ldnQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmgtMjU1LVx0fTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmgtMjU3LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oOjI1ODplbnVtIHByZXN0ZXJhX2lmX3R5cGUge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oLTI1OS1cdC8qIHRoZSBpbnRlcmZhY2UgaXMgb2YgcG9ydCB0eXBlIChkZXYscG9ydCkgKi9cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmgtMjY4LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oOjI2OTpzdHJ1Y3QgcHJlc3RlcmFfaWZhY2Uge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oOjI3MDpcdGVudW0gcHJlc3RlcmFfaWZfdHlwZSB0eXBlO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oLTI3MS1cdHN0cnVjdCB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oLTI4MC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaDoyODE6c3RydWN0IHByZXN0ZXJhX3N3aXRjaGRldjtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaDoyODI6c3RydWN0IHByZXN0ZXJhX3NwYW47XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmg6MjgzOnN0cnVjdCBwcmVzdGVyYV9yeHR4O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oOjI4NDpzdHJ1Y3QgcHJlc3RlcmFfdHJhcF9kYXRhO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oOjI4NTpzdHJ1Y3QgcHJlc3RlcmFfYWNsO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oLTI4Ni1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaDoyODc6c3RydWN0IHByZXN0ZXJhX3N3aXRjaCB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmg6Mjg4Olx0c3RydWN0IHByZXN0ZXJhX2RldmljZSAqZGV2O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oOjI4OTpcdHN0cnVjdCBwcmVzdGVyYV9zd2l0Y2hkZXYgKnN3ZGV2O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oOjI5MDpcdHN0cnVjdCBwcmVzdGVyYV9yeHR4ICpyeHR4O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oOjI5MTpcdHN0cnVjdCBwcmVzdGVyYV9hY2wgKmFjbDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaDoyOTI6XHRzdHJ1Y3QgcHJlc3RlcmFfc3BhbiAqc3BhbjtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaC0yOTMtXHRzdHJ1Y3QgbGlzdF9oZWFkIGV2ZW50X2hhbmRsZXJzO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oLTI5NC1cdHN0cnVjdCBub3RpZmllcl9ibG9jayBuZXRkZXZfbmI7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmg6Mjk1Olx0c3RydWN0IHByZXN0ZXJhX3RyYXBfZGF0YSAqdHJhcF9kYXRhO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oLTI5Ni1cdGNoYXIgYmFzZV9tYWNbRVRIX0FMRU5dO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaC0zMDMtXHRzdHJ1Y3QgZGV2aWNlX25vZGUgKm5wO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oOjMwNDpcdHN0cnVjdCBwcmVzdGVyYV9yb3V0ZXIgKnJvdXRlcjtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaDozMDU6XHRzdHJ1Y3QgcHJlc3RlcmFfbGFnICpsYWdzO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oOjMwNjpcdHN0cnVjdCBwcmVzdGVyYV9jb3VudGVyICpjb3VudGVyO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oLTMwNy1cdHU4IGxhZ19tZW1iZXJfbWF4O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaC0zMTEtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmg6MzEyOnN0cnVjdCBwcmVzdGVyYV9yb3V0ZXIge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oOjMxMzpcdHN0cnVjdCBwcmVzdGVyYV9zd2l0Y2ggKnN3O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oLTMxNC1cdHN0cnVjdCBsaXN0X2hlYWQgdnJfbGlzdDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmgtMzMxLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oOjMzMjpzdHJ1Y3QgcHJlc3RlcmFfcnh0eF9wYXJhbXMge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oLTMzMy1cdGJvb2wgdXNlX3NkbWE7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oLTMzNi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaDozMzc6I2RlZmluZSBwcmVzdGVyYV9kZXYoc3cpXHRcdCgoc3cpLVx1MDAzZWRldi1cdTAwM2VkZXYpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmgtMzM4LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oOjMzOTpzdGF0aWMgaW5saW5lIHZvaWQgcHJlc3RlcmFfd3JpdGUoY29uc3Qgc3RydWN0IHByZXN0ZXJhX3N3aXRjaCAqc3csXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmgtMzQwLVx0XHRcdFx0ICB1bnNpZ25lZCBpbnQgcmVnLCB1MzIgdmFsKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaC0zNDQtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmg6MzQ1OnN0YXRpYyBpbmxpbmUgdTMyIHByZXN0ZXJhX3JlYWQoY29uc3Qgc3RydWN0IHByZXN0ZXJhX3N3aXRjaCAqc3csXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmgtMzQ2LVx0XHRcdFx0dW5zaWduZWQgaW50IHJlZylcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmgtMzUwLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oOjM1MTppbnQgcHJlc3RlcmFfZGV2aWNlX3JlZ2lzdGVyKHN0cnVjdCBwcmVzdGVyYV9kZXZpY2UgKmRldik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmg6MzUyOnZvaWQgcHJlc3RlcmFfZGV2aWNlX3VucmVnaXN0ZXIoc3RydWN0IHByZXN0ZXJhX2RldmljZSAqZGV2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaC0zNTMtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmg6MzU0OnN0cnVjdCBwcmVzdGVyYV9wb3J0ICpwcmVzdGVyYV9wb3J0X2ZpbmRfYnlfaHdpZChzdHJ1Y3QgcHJlc3RlcmFfc3dpdGNoICpzdyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaC0zNTUtXHRcdFx0XHRcdFx0IHUzMiBkZXZfaWQsIHUzMiBod19pZCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmgtMzU2LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oOjM1NzppbnQgcHJlc3RlcmFfcG9ydF9hdXRvbmVnX3NldChzdHJ1Y3QgcHJlc3RlcmFfcG9ydCAqcG9ydCwgdTY0IGxpbmtfbW9kZXMpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oLTM1OC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaDozNTk6aW50IHByZXN0ZXJhX3JvdXRlcl9pbml0KHN0cnVjdCBwcmVzdGVyYV9zd2l0Y2ggKnN3KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaDozNjA6dm9pZCBwcmVzdGVyYV9yb3V0ZXJfZmluaShzdHJ1Y3QgcHJlc3RlcmFfc3dpdGNoICpzdyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmgtMzYxLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oOjM2MjpzdHJ1Y3QgcHJlc3RlcmFfcG9ydCAqcHJlc3RlcmFfZmluZF9wb3J0KHN0cnVjdCBwcmVzdGVyYV9zd2l0Y2ggKnN3LCB1MzIgaWQpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oLTM2My1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaDozNjQ6c3RydWN0IHByZXN0ZXJhX3N3aXRjaCAqcHJlc3RlcmFfc3dpdGNoX2dldChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaC0zNjUtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmg6MzY2OmludCBwcmVzdGVyYV9wb3J0X2NmZ19tYWNfcmVhZChzdHJ1Y3QgcHJlc3RlcmFfcG9ydCAqcG9ydCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaDozNjc6XHRcdFx0ICAgICAgIHN0cnVjdCBwcmVzdGVyYV9wb3J0X21hY19jb25maWcgKmNmZyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmgtMzY4LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oOjM2OTppbnQgcHJlc3RlcmFfcG9ydF9jZmdfbWFjX3dyaXRlKHN0cnVjdCBwcmVzdGVyYV9wb3J0ICpwb3J0LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oOjM3MDpcdFx0XHRcdHN0cnVjdCBwcmVzdGVyYV9wb3J0X21hY19jb25maWcgKmNmZyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmgtMzcxLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oOjM3MjpzdHJ1Y3QgcHJlc3RlcmFfcG9ydCAqcHJlc3RlcmFfcG9ydF9kZXZfbG93ZXJfZmluZChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaC0zNzMtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmg6Mzc0OnZvaWQgcHJlc3RlcmFfcXVldWVfd29yayhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oOjM3NTp2b2lkIHByZXN0ZXJhX3F1ZXVlX2RlbGF5ZWRfd29yayhzdHJ1Y3QgZGVsYXllZF93b3JrICp3b3JrLCB1bnNpZ25lZCBsb25nIGRlbGF5KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaDozNzY6dm9pZCBwcmVzdGVyYV9xdWV1ZV9kcmFpbih2b2lkKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaC0zNzctXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmg6Mzc4OmludCBwcmVzdGVyYV9wb3J0X2xlYXJuaW5nX3NldChzdHJ1Y3QgcHJlc3RlcmFfcG9ydCAqcG9ydCwgYm9vbCBsZWFybl9lbmFibGUpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oOjM3OTppbnQgcHJlc3RlcmFfcG9ydF91Y19mbG9vZF9zZXQoc3RydWN0IHByZXN0ZXJhX3BvcnQgKnBvcnQsIGJvb2wgZmxvb2QpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oOjM4MDppbnQgcHJlc3RlcmFfcG9ydF9tY19mbG9vZF9zZXQoc3RydWN0IHByZXN0ZXJhX3BvcnQgKnBvcnQsIGJvb2wgZmxvb2QpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oLTM4MS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaDozODI6aW50IHByZXN0ZXJhX3BvcnRfYnJfbG9ja2VkX3NldChzdHJ1Y3QgcHJlc3RlcmFfcG9ydCAqcG9ydCwgYm9vbCBicl9sb2NrZWQpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oLTM4My1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaDozODQ6aW50IHByZXN0ZXJhX3BvcnRfcHZpZF9zZXQoc3RydWN0IHByZXN0ZXJhX3BvcnQgKnBvcnQsIHUxNiB2aWQpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oLTM4NS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaDozODY6Ym9vbCBwcmVzdGVyYV9uZXRkZXZfY2hlY2soY29uc3Qgc3RydWN0IG5ldF9kZXZpY2UgKmRldik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmgtMzg3LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oOjM4ODppbnQgcHJlc3RlcmFfaXNfdmFsaWRfbWFjX2FkZHIoc3RydWN0IHByZXN0ZXJhX3BvcnQgKnBvcnQsIGNvbnN0IHU4ICphZGRyKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaC0zODktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmg6MzkwOmJvb2wgcHJlc3RlcmFfcG9ydF9pc19sYWdfbWVtYmVyKGNvbnN0IHN0cnVjdCBwcmVzdGVyYV9wb3J0ICpwb3J0KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaDozOTE6aW50IHByZXN0ZXJhX2xhZ19pZChzdHJ1Y3QgcHJlc3RlcmFfc3dpdGNoICpzdyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaC0zOTItXHRcdCAgICBzdHJ1Y3QgbmV0X2RldmljZSAqbGFnX2RldiwgdTE2ICpsYWdfaWQpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oLTM5My1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaDozOTQ6c3RydWN0IHByZXN0ZXJhX2xhZyAqcHJlc3RlcmFfbGFnX2J5X2lkKHN0cnVjdCBwcmVzdGVyYV9zd2l0Y2ggKnN3LCB1MTYgaWQpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oLTM5NS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaDozOTY6dTE2IHByZXN0ZXJhX3BvcnRfbGFnX2lkKGNvbnN0IHN0cnVjdCBwcmVzdGVyYV9wb3J0ICpwb3J0KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaC0zOTctXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmg6Mzk4OnN0cnVjdCBwcmVzdGVyYV9tZGJfZW50cnkgKlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oOjM5OTpwcmVzdGVyYV9tZGJfZW50cnlfY3JlYXRlKHN0cnVjdCBwcmVzdGVyYV9zd2l0Y2ggKnN3LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oLTQwMC1cdFx0XHQgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmFkZHIsIHUxNiB2aWQpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oOjQwMTp2b2lkIHByZXN0ZXJhX21kYl9lbnRyeV9kZXN0cm95KHN0cnVjdCBwcmVzdGVyYV9tZGJfZW50cnkgKm1kYl9lbnRyeSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmgtNDAyLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oOjQwMzpzdHJ1Y3QgcHJlc3RlcmFfZmxvb2RfZG9tYWluICpcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaDo0MDQ6cHJlc3RlcmFfZmxvb2RfZG9tYWluX2NyZWF0ZShzdHJ1Y3QgcHJlc3RlcmFfc3dpdGNoICpzdyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmg6NDA1OnZvaWQgcHJlc3RlcmFfZmxvb2RfZG9tYWluX2Rlc3Ryb3koc3RydWN0IHByZXN0ZXJhX2Zsb29kX2RvbWFpbiAqZmxvb2RfZG9tYWluKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaC00MDYtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmg9NDA3PWludFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oOjQwODpwcmVzdGVyYV9mbG9vZF9kb21haW5fcG9ydF9jcmVhdGUoc3RydWN0IHByZXN0ZXJhX2Zsb29kX2RvbWFpbiAqZmxvb2RfZG9tYWluLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oLTQwOS1cdFx0XHRcdCAgc3RydWN0IG5ldF9kZXZpY2UgKmRldixcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmg9NDExPXZvaWRcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaDo0MTI6cHJlc3RlcmFfZmxvb2RfZG9tYWluX3BvcnRfZGVzdHJveShzdHJ1Y3QgcHJlc3RlcmFfZmxvb2RfZG9tYWluX3BvcnQgKnBvcnQpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oOjQxMzpzdHJ1Y3QgcHJlc3RlcmFfZmxvb2RfZG9tYWluX3BvcnQgKlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oOjQxNDpwcmVzdGVyYV9mbG9vZF9kb21haW5fcG9ydF9maW5kKHN0cnVjdCBwcmVzdGVyYV9mbG9vZF9kb21haW4gKmZsb29kX2RvbWFpbixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaC00MTUtXHRcdFx0XHRzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCB1MTYgdmlkKTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jLTUtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jOjY6I2luY2x1ZGUgXCYjMzQ7cHJlc3RlcmFfYWNsLmhcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmM6NzojaW5jbHVkZSBcJiMzNDtwcmVzdGVyYV9mbG93LmhcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmM6ODojaW5jbHVkZSBcJiMzNDtwcmVzdGVyYV9ody5oXCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jOjk6I2luY2x1ZGUgXCYjMzQ7cHJlc3RlcmEuaFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYy0xMC1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jLTEzLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYzoxNDpzdHJ1Y3QgcHJlc3RlcmFfYWNsIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmM6MTU6XHRzdHJ1Y3QgcHJlc3RlcmFfc3dpdGNoICpzdztcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtMTYtXHRzdHJ1Y3QgbGlzdF9oZWFkIHZ0Y2FtX2xpc3Q7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYy0yMi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmM6MjM6c3RydWN0IHByZXN0ZXJhX2FjbF9ydWxlc2V0X2h0X2tleSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jOjI0Olx0c3RydWN0IHByZXN0ZXJhX2Zsb3dfYmxvY2sgKmJsb2NrO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYy0yNS1cdHUzMiBjaGFpbl9pbmRleDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jLTI3LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYzoyODpzdHJ1Y3QgcHJlc3RlcmFfYWNsX3J1bGVfZW50cnkge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYy0yOS1cdHN0cnVjdCByaGFzaF9oZWFkIGh0X25vZGU7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jOjMwOlx0c3RydWN0IHByZXN0ZXJhX2FjbF9ydWxlX2VudHJ5X2tleSBrZXk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jLTMxLVx0dTMyIGh3X2lkO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtMzgtXHRcdFx0dTggdmFsaWQ6MTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmM6Mzk6XHRcdFx0c3RydWN0IHByZXN0ZXJhX2FjbF9hY3Rpb25fcG9saWNlIGk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jLTQwLVx0XHR9IHBvbGljZTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtNDEtXHRcdHN0cnVjdCB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jOjQyOlx0XHRcdHN0cnVjdCBwcmVzdGVyYV9hY2xfYWN0aW9uX2p1bXAgaTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtNDMtXHRcdFx0dTggdmFsaWQ6MTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jLTQ2LVx0XHRcdHUzMiBpZDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmM6NDc6XHRcdFx0c3RydWN0IHByZXN0ZXJhX2NvdW50ZXJfYmxvY2sgKmJsb2NrO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYy00OC1cdFx0fSBjb3VudGVyO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtNTEtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jOjUyOnN0cnVjdCBwcmVzdGVyYV9hY2xfcnVsZXNldCB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jLTUzLVx0c3RydWN0IHJoYXNoX2hlYWQgaHRfbm9kZTsgLyogTWVtYmVyIG9mIGFjbCBIVCAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYzo1NDpcdHN0cnVjdCBwcmVzdGVyYV9hY2xfcnVsZXNldF9odF9rZXkgaHRfa2V5O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYy01NS1cdHN0cnVjdCByaGFzaHRhYmxlIHJ1bGVfaHQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jOjU2Olx0c3RydWN0IHByZXN0ZXJhX2FjbCAqYWNsO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYy01Ny1cdHN0cnVjdCB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYy03MC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmM6NzE6c3RydWN0IHByZXN0ZXJhX2FjbF92dGNhbSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jLTcyLVx0c3RydWN0IGxpc3RfaGVhZCBsaXN0O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtODAtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jOjgxOnN0YXRpYyBjb25zdCBzdHJ1Y3Qgcmhhc2h0YWJsZV9wYXJhbXMgcHJlc3RlcmFfYWNsX3J1bGVzZXRfaHRfcGFyYW1zID0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYzo4MjpcdC5rZXlfbGVuID0gc2l6ZW9mKHN0cnVjdCBwcmVzdGVyYV9hY2xfcnVsZXNldF9odF9rZXkpLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYzo4MzpcdC5rZXlfb2Zmc2V0ID0gb2Zmc2V0b2Yoc3RydWN0IHByZXN0ZXJhX2FjbF9ydWxlc2V0LCBodF9rZXkpLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYzo4NDpcdC5oZWFkX29mZnNldCA9IG9mZnNldG9mKHN0cnVjdCBwcmVzdGVyYV9hY2xfcnVsZXNldCwgaHRfbm9kZSksXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jLTg1LVx0LmF1dG9tYXRpY19zaHJpbmtpbmcgPSB0cnVlLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtODctXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jOjg4OnN0YXRpYyBjb25zdCBzdHJ1Y3Qgcmhhc2h0YWJsZV9wYXJhbXMgcHJlc3RlcmFfYWNsX3J1bGVfaHRfcGFyYW1zID0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYy04OS1cdC5rZXlfbGVuID0gc2l6ZW9mKHVuc2lnbmVkIGxvbmcpLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYzo5MDpcdC5rZXlfb2Zmc2V0ID0gb2Zmc2V0b2Yoc3RydWN0IHByZXN0ZXJhX2FjbF9ydWxlLCBjb29raWUpLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYzo5MTpcdC5oZWFkX29mZnNldCA9IG9mZnNldG9mKHN0cnVjdCBwcmVzdGVyYV9hY2xfcnVsZSwgaHRfbm9kZSksXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jLTkyLVx0LmF1dG9tYXRpY19zaHJpbmtpbmcgPSB0cnVlLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtOTQtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jOjk1OnN0YXRpYyBjb25zdCBzdHJ1Y3Qgcmhhc2h0YWJsZV9wYXJhbXMgX19wcmVzdGVyYV9hY2xfcnVsZV9lbnRyeV9odF9wYXJhbXMgPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jOjk2Olx0LmtleV9vZmZzZXQgID0gb2Zmc2V0b2Yoc3RydWN0IHByZXN0ZXJhX2FjbF9ydWxlX2VudHJ5LCBrZXkpLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYzo5NzpcdC5oZWFkX29mZnNldCA9IG9mZnNldG9mKHN0cnVjdCBwcmVzdGVyYV9hY2xfcnVsZV9lbnRyeSwgaHRfbm9kZSksXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jOjk4Olx0LmtleV9sZW4gICAgID0gc2l6ZW9mKHN0cnVjdCBwcmVzdGVyYV9hY2xfcnVsZV9lbnRyeV9rZXkpLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYy05OS1cdC5hdXRvbWF0aWNfc2hyaW5raW5nID0gdHJ1ZSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jLTEwMS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmM6MTAyOmludCBwcmVzdGVyYV9hY2xfY2hhaW5fdG9fY2xpZW50KHUzMiBjaGFpbl9pbmRleCwgYm9vbCBpbmdyZXNzLCB1MzIgKmNsaWVudClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtMTAzLXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jLTExMC1cdGlmICghaW5ncmVzcykge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYzoxMTE6XHRcdC8qIHByZXN0ZXJhIHN1cHBvcnRzIG9ubHkgb25lIGNoYWluIG9uIGVncmVzcyAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYy0xMTItXHRcdGlmIChjaGFpbl9pbmRleCBcdTAwM2UgMClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jLTEyNS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmM6MTI2OnN0YXRpYyBib29sIHByZXN0ZXJhX2FjbF9jaGFpbl9pc19zdXBwb3J0ZWQodTMyIGNoYWluX2luZGV4LCBib29sIGluZ3Jlc3MpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jLTEyNy17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jLTEyOC1cdGlmICghaW5ncmVzcylcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmM6MTI5Olx0XHQvKiBwcmVzdGVyYSBzdXBwb3J0cyBvbmx5IG9uZSBjaGFpbiBvbiBlZ3Jlc3MgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtMTMwLVx0XHRyZXR1cm4gY2hhaW5faW5kZXggPT0gMDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jLTEzNC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmM6MTM1OnN0YXRpYyBzdHJ1Y3QgcHJlc3RlcmFfYWNsX3J1bGVzZXQgKlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYzoxMzY6cHJlc3RlcmFfYWNsX3J1bGVzZXRfY3JlYXRlKHN0cnVjdCBwcmVzdGVyYV9hY2wgKmFjbCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmM6MTM3Olx0XHRcdCAgICBzdHJ1Y3QgcHJlc3RlcmFfZmxvd19ibG9jayAqYmxvY2ssXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jLTEzOC1cdFx0XHQgICAgdTMyIGNoYWluX2luZGV4KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYy0xMzkte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYzoxNDA6XHRzdHJ1Y3QgcHJlc3RlcmFfYWNsX3J1bGVzZXQgKnJ1bGVzZXQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jLTE0MS1cdHUzMiB1aWQgPSAwO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtMTQzLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYzoxNDQ6XHRpZiAoIXByZXN0ZXJhX2FjbF9jaGFpbl9pc19zdXBwb3J0ZWQoY2hhaW5faW5kZXgsIGJsb2NrLVx1MDAzZWluZ3Jlc3MpKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYy0xNDUtXHRcdHJldHVybiBFUlJfUFRSKC1FSU5WQUwpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtMTU2LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYzoxNTc6XHRlcnIgPSByaGFzaHRhYmxlX2luaXQoXHUwMDI2cnVsZXNldC1cdTAwM2VydWxlX2h0LCBcdTAwMjZwcmVzdGVyYV9hY2xfcnVsZV9odF9wYXJhbXMpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYy0xNTgtXHRpZiAoZXJyKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtMTcyLVx0ZXJyID0gcmhhc2h0YWJsZV9pbnNlcnRfZmFzdChcdTAwMjZhY2wtXHUwMDNlcnVsZXNldF9odCwgXHUwMDI2cnVsZXNldC1cdTAwM2VodF9ub2RlLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYzoxNzM6XHRcdFx0XHQgICAgIHByZXN0ZXJhX2FjbF9ydWxlc2V0X2h0X3BhcmFtcyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jLTE3NC1cdGlmIChlcnIpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYy0xODctXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jOjE4ODppbnQgcHJlc3RlcmFfYWNsX3J1bGVzZXRfa2V5bWFza19zZXQoc3RydWN0IHByZXN0ZXJhX2FjbF9ydWxlc2V0ICpydWxlc2V0LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYy0xODktXHRcdFx0XHQgICAgIHZvaWQgKmtleW1hc2spXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYy0xOTctXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jOjE5ODppbnQgcHJlc3RlcmFfYWNsX3J1bGVzZXRfb2ZmbG9hZChzdHJ1Y3QgcHJlc3RlcmFfYWNsX3J1bGVzZXQgKnJ1bGVzZXQpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jLTE5OS17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jOjIwMDpcdHN0cnVjdCBwcmVzdGVyYV9hY2xfaWZhY2UgaWZhY2U7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jLTIwMS1cdHUzMiB2dGNhbV9pZDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jLTIxMC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmM6MjExOlx0ZXJyID0gcHJlc3RlcmFfYWNsX3Z0Y2FtX2lkX2dldChydWxlc2V0LVx1MDAzZWFjbCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtMjEyLVx0XHRcdFx0XHRydWxlc2V0LVx1MDAzZWh0X2tleS5jaGFpbl9pbmRleCxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jLTIyMy1cdFx0aWZhY2UudHlwZSA9IFBSRVNURVJBX0FDTF9JRkFDRV9UWVBFX0lOREVYO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYzoyMjQ6XHRcdGVyciA9IHByZXN0ZXJhX2h3X3Z0Y2FtX2lmYWNlX2JpbmQocnVsZXNldC1cdTAwM2VhY2wtXHUwMDNlc3csIFx1MDAyNmlmYWNlLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYy0yMjUtXHRcdFx0XHRcdFx0ICAgdnRjYW1faWQsIHJ1bGVzZXQtXHUwMDNlcGNsX2lkKTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jLTIzNC1lcnJfcnVsZXNldF9iaW5kOlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYzoyMzU6XHRwcmVzdGVyYV9hY2xfdnRjYW1faWRfcHV0KHJ1bGVzZXQtXHUwMDNlYWNsLCBydWxlc2V0LVx1MDAzZXZ0Y2FtX2lkKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtMjM2LWVycl92dGNhbV9jcmVhdGU6XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYy0yMzktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jOjI0MDpzdGF0aWMgdm9pZCBwcmVzdGVyYV9hY2xfcnVsZXNldF9kZXN0cm95KHN0cnVjdCBwcmVzdGVyYV9hY2xfcnVsZXNldCAqcnVsZXNldClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtMjQxLXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmM6MjQyOlx0c3RydWN0IHByZXN0ZXJhX2FjbCAqYWNsID0gcnVsZXNldC1cdTAwM2VhY2w7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jLTI0My1cdHU4IHVpZCA9IHJ1bGVzZXQtXHUwMDNlcGNsX2lkIFx1MDAyNiBQUkVTVEVSQV9BQ0xfS0VZTUFTS19QQ0xfSURfVVNFUjtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jLTI0Ni1cdHJoYXNodGFibGVfcmVtb3ZlX2Zhc3QoXHUwMDI2YWNsLVx1MDAzZXJ1bGVzZXRfaHQsIFx1MDAyNnJ1bGVzZXQtXHUwMDNlaHRfbm9kZSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmM6MjQ3Olx0XHRcdCAgICAgICBwcmVzdGVyYV9hY2xfcnVsZXNldF9odF9wYXJhbXMpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYy0yNDgtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYy0yNTAtXHRcdGlmIChydWxlc2V0LVx1MDAzZWh0X2tleS5jaGFpbl9pbmRleCkge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYzoyNTE6XHRcdFx0c3RydWN0IHByZXN0ZXJhX2FjbF9pZmFjZSBpZmFjZSA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtMjUyLVx0XHRcdFx0LnR5cGUgPSBQUkVTVEVSQV9BQ0xfSUZBQ0VfVFlQRV9JTkRFWCxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jLTI1NC1cdFx0XHR9O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYzoyNTU6XHRcdFx0ZXJyID0gcHJlc3RlcmFfaHdfdnRjYW1faWZhY2VfdW5iaW5kKGFjbC1cdTAwM2VzdywgXHUwMDI2aWZhY2UsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jLTI1Ni1cdFx0XHRcdFx0XHRcdCAgICAgcnVsZXNldC1cdTAwM2V2dGNhbV9pZCk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYy0yNTgtXHRcdH1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmM6MjU5Olx0XHRXQVJOX09OKHByZXN0ZXJhX2FjbF92dGNhbV9pZF9wdXQoYWNsLCBydWxlc2V0LVx1MDAzZXZ0Y2FtX2lkKSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jLTI2MC1cdH1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jLTI2Ny1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmM6MjY4OnN0YXRpYyBzdHJ1Y3QgcHJlc3RlcmFfYWNsX3J1bGVzZXQgKlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYzoyNjk6X19wcmVzdGVyYV9hY2xfcnVsZXNldF9sb29rdXAoc3RydWN0IHByZXN0ZXJhX2FjbCAqYWNsLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYzoyNzA6XHRcdFx0ICAgICAgc3RydWN0IHByZXN0ZXJhX2Zsb3dfYmxvY2sgKmJsb2NrLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYy0yNzEtXHRcdFx0ICAgICAgdTMyIGNoYWluX2luZGV4KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYy0yNzIte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYzoyNzM6XHRzdHJ1Y3QgcHJlc3RlcmFfYWNsX3J1bGVzZXRfaHRfa2V5IGh0X2tleTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtMjc0LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtMjc4LVx0cmV0dXJuIHJoYXNodGFibGVfbG9va3VwX2Zhc3QoXHUwMDI2YWNsLVx1MDAzZXJ1bGVzZXRfaHQsIFx1MDAyNmh0X2tleSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmM6Mjc5Olx0XHRcdFx0ICAgICAgcHJlc3RlcmFfYWNsX3J1bGVzZXRfaHRfcGFyYW1zKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtMjgwLX1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtMjgxLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYzoyODI6c3RydWN0IHByZXN0ZXJhX2FjbF9ydWxlc2V0ICpcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmM6MjgzOnByZXN0ZXJhX2FjbF9ydWxlc2V0X2xvb2t1cChzdHJ1Y3QgcHJlc3RlcmFfYWNsICphY2wsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jOjI4NDpcdFx0XHQgICAgc3RydWN0IHByZXN0ZXJhX2Zsb3dfYmxvY2sgKmJsb2NrLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYy0yODUtXHRcdFx0ICAgIHUzMiBjaGFpbl9pbmRleClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtMjg2LXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmM6Mjg3Olx0c3RydWN0IHByZXN0ZXJhX2FjbF9ydWxlc2V0ICpydWxlc2V0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYy0yODgtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jOjI4OTpcdHJ1bGVzZXQgPSBfX3ByZXN0ZXJhX2FjbF9ydWxlc2V0X2xvb2t1cChhY2wsIGJsb2NrLCBjaGFpbl9pbmRleCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jLTI5MC1cdGlmICghcnVsZXNldClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jLTI5Ni1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmM6Mjk3OnN0cnVjdCBwcmVzdGVyYV9hY2xfcnVsZXNldCAqXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jOjI5ODpwcmVzdGVyYV9hY2xfcnVsZXNldF9nZXQoc3RydWN0IHByZXN0ZXJhX2FjbCAqYWNsLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYzoyOTk6XHRcdFx0IHN0cnVjdCBwcmVzdGVyYV9mbG93X2Jsb2NrICpibG9jayxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtMzAwLVx0XHRcdCB1MzIgY2hhaW5faW5kZXgpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jLTMwMS17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jOjMwMjpcdHN0cnVjdCBwcmVzdGVyYV9hY2xfcnVsZXNldCAqcnVsZXNldDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtMzAzLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYzozMDQ6XHRydWxlc2V0ID0gX19wcmVzdGVyYV9hY2xfcnVsZXNldF9sb29rdXAoYWNsLCBibG9jaywgY2hhaW5faW5kZXgpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYy0zMDUtXHRpZiAocnVsZXNldCkge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtMzA5LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYzozMTA6XHRyZXR1cm4gcHJlc3RlcmFfYWNsX3J1bGVzZXRfY3JlYXRlKGFjbCwgYmxvY2ssIGNoYWluX2luZGV4KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtMzExLX1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtMzEyLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYzozMTM6dm9pZCBwcmVzdGVyYV9hY2xfcnVsZXNldF9wdXQoc3RydWN0IHByZXN0ZXJhX2FjbF9ydWxlc2V0ICpydWxlc2V0KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYy0zMTQte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtMzE3LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYzozMTg6XHRwcmVzdGVyYV9hY2xfcnVsZXNldF9kZXN0cm95KHJ1bGVzZXQpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYy0zMTktfVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYy0zMjAtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jOjMyMTppbnQgcHJlc3RlcmFfYWNsX3J1bGVzZXRfYmluZChzdHJ1Y3QgcHJlc3RlcmFfYWNsX3J1bGVzZXQgKnJ1bGVzZXQsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jOjMyMjpcdFx0XHQgICAgICBzdHJ1Y3QgcHJlc3RlcmFfcG9ydCAqcG9ydClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtMzIzLXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmM6MzI0Olx0c3RydWN0IHByZXN0ZXJhX2FjbF9pZmFjZSBpZmFjZSA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtMzI1LVx0XHQudHlwZSA9IFBSRVNURVJBX0FDTF9JRkFDRV9UWVBFX1BPUlQsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYy0zMjgtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jOjMyOTpcdHJldHVybiBwcmVzdGVyYV9od192dGNhbV9pZmFjZV9iaW5kKHBvcnQtXHUwMDNlc3csIFx1MDAyNmlmYWNlLCBydWxlc2V0LVx1MDAzZXZ0Y2FtX2lkLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYy0zMzAtXHRcdFx0XHRcdCAgICBydWxlc2V0LVx1MDAzZXBjbF9pZCk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYy0zMzItXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jOjMzMzppbnQgcHJlc3RlcmFfYWNsX3J1bGVzZXRfdW5iaW5kKHN0cnVjdCBwcmVzdGVyYV9hY2xfcnVsZXNldCAqcnVsZXNldCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmM6MzM0Olx0XHRcdFx0c3RydWN0IHByZXN0ZXJhX3BvcnQgKnBvcnQpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jLTMzNS17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jOjMzNjpcdHN0cnVjdCBwcmVzdGVyYV9hY2xfaWZhY2UgaWZhY2UgPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jLTMzNy1cdFx0LnR5cGUgPSBQUkVTVEVSQV9BQ0xfSUZBQ0VfVFlQRV9QT1JULFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtMzQwLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYzozNDE6XHRyZXR1cm4gcHJlc3RlcmFfaHdfdnRjYW1faWZhY2VfdW5iaW5kKHBvcnQtXHUwMDNlc3csIFx1MDAyNmlmYWNlLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYy0zNDItXHRcdFx0XHRcdCAgICAgIHJ1bGVzZXQtXHUwMDNldnRjYW1faWQpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtMzQ0LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYzozNDU6c3RhdGljIGludCBwcmVzdGVyYV9hY2xfcnVsZXNldF9ibG9ja19iaW5kKHN0cnVjdCBwcmVzdGVyYV9hY2xfcnVsZXNldCAqcnVsZXNldCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmM6MzQ2Olx0XHRcdFx0XHQgICBzdHJ1Y3QgcHJlc3RlcmFfZmxvd19ibG9jayAqYmxvY2spXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jLTM0Ny17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jOjM0ODpcdHN0cnVjdCBwcmVzdGVyYV9mbG93X2Jsb2NrX2JpbmRpbmcgKmJpbmRpbmc7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jLTM0OS1cdGludCBlcnI7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYy0zNTItXHRsaXN0X2Zvcl9lYWNoX2VudHJ5KGJpbmRpbmcsIFx1MDAyNmJsb2NrLVx1MDAzZWJpbmRpbmdfbGlzdCwgbGlzdCkge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYzozNTM6XHRcdGVyciA9IHByZXN0ZXJhX2FjbF9ydWxlc2V0X2JpbmQocnVsZXNldCwgYmluZGluZy1cdTAwM2Vwb3J0KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtMzU0LVx0XHRpZiAoZXJyKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtMzYxLVx0XHRcdFx0XHQgICAgIGxpc3QpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jOjM2MjpcdFx0ZXJyID0gcHJlc3RlcmFfYWNsX3J1bGVzZXRfdW5iaW5kKHJ1bGVzZXQsIGJpbmRpbmctXHUwMDNlcG9ydCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jLTM2My1cdGJsb2NrLVx1MDAzZXJ1bGVzZXRfemVybyA9IE5VTEw7XG5cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yMCAxMDoxODwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxNzI3NwoJCQkJCQkJb3V0cHV0OiA0MgoJCQkJCQkJdGhvdWdodHM6IDExNwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipJbnZlc3RpZ2F0aW5nIHRoZSBUZXN0YWJpbGl0eSBvZiB0aGUgYHByZXN0ZXJhYCBEcml2ZXIqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgYHByZXN0ZXJhYCBkcml2ZXIsIGFuZCBpdCYjMzk7cyBhIFBDSSBkcml2ZXIg4oCTIHRoYXQmIzM5O3Mgd2hhdCB0aGUgYENPTkZJR19QUkVTVEVSQV9QQ0lgIHNldHRpbmcgaW5kaWNhdGVzLiBNeSBpbml0aWFsIHRob3VnaHQgaXMsIGNhbiBJIGV2ZW4gKnJlYXNvbmFibHkqIHRlc3QgdGhpcyB0aGluZyBpbiBRRU1VPyBUeXBpY2FsbHksIHdoZW4gd2UmIzM5O3JlIGRlYWxpbmcgd2l0aCBQQ0kgZHJpdmVycyBmb3Igc3BlY2lhbGl6ZWQgQVNJQ3MsIHRoZSBhbnN3ZXIgaXMgYSByZXNvdW5kaW5nIG5vLiBUaGluayBNZWxsYW5veCwgTWFydmVsbCwgQnJvYWRjb20g4oCTIHRob3NlIGNoaXBzIGFyZW4mIzM5O3QgZW11bGF0ZWQgaW4gYSB0eXBpY2FsIFFFTVUgZW52aXJvbm1lbnQsIG1ha2luZyBkaXJlY3QgZHJpdmVyIHRlc3RpbmcgYSBub24tc3RhcnRlci4gQnV0LCBob2xkIG9uIGEgc2Vjb25kLi4uIHRoZSBgcHJlc3RlcmFgIGRyaXZlciAqZG9lcyogaGF2ZSBhIFBDSSBpbnRlcmZhY2U7IGl0JiMzOTtzIGdvdCB0aGF0IGBwcmVzdGVyYV9wY2kuY2AgZmlsZS4gQW5kIGl0IHRhbGtzIHRvIGZpcm13YXJlLCB3aGljaCBpcyBrZXkuIFRoZSBmaXJtd2FyZSBpbnRlcmFjdGlvbiBpcyBwb3RlbnRpYWxseSB0aGUgaW1wb3J0YW50IGFzcGVjdCBmb3IgdGVzdGFiaWxpdHkuCgpOb3csIHRoZSBpbXBvcnRhbnQgcXVlc3Rpb24gaXM6IGRvZXMgdGhlIGRyaXZlciBoYXZlIGhhcmRjb2RlZCBkZXBlbmRlbmNpZXMgb24gc3BlY2lmaWMgUENJIElEcz8gVGhhdOKAmXMgbXkgbmV4dCBzdGVwLiBJJiMzOTtsbCBuZWVkIHRvIGRpZyBpbnRvIGBwcmVzdGVyYV9wY2kuY2AgYW5kIHNlZSBpZiBpdCYjMzk7cyB0aWdodGx5IGNvdXBsZWQgdG8gY2VydGFpbiBoYXJkd2FyZSBjb25maWd1cmF0aW9ucy4gSWYgaXQmIzM5O3MgKnRvbyogc3BlY2lmaWMsIHRoZW4gUUVNVSB0ZXN0aW5nIHdpbGwgYmUgdHJpY2t5LCBhbmQgSSYjMzk7bGwgbmVlZCB0byBleHBsb3JlIG90aGVyIG9wdGlvbnMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjAgMTA6MTg8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkVycm9yOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bm8gbWF0Y2hlczwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtwcmVzdGVyYV9wY2lfaWRfdGFibGUmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtlcnJvciYjMzQ7OiAmIzM0O25vIG1hdGNoZXMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ny8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjAgMTA6MTg8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTc3MjUKCQkJCQkJCW91dHB1dDogMzkKCQkJCQkJCXRob3VnaHRzOiAyMgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+SGVyZSYjMzk7cyBhIHN1bW1hcnkgb2YgbXkgdGhvdWdodCBwcm9jZXNzLCBhcyByZXF1ZXN0ZWQ6CgoqKkRpdmluZyBpbnRvIGBwcmVzdGVyYV9wY2kuY2AgZm9yIFBDSSBEZXZpY2UgSUQgSW5mbyoqCgpPa2F5LCBzbyBJIG5lZWQgdG8gZmluZCB0aGUgcmVsZXZhbnQgUENJIGRldmljZSBpZGVudGlmaWNhdGlvbiBpbmZvcm1hdGlvbi4gTXkgZmlyc3QgaW5zdGluY3QgaXMgdG8gemVybyBpbiBvbiB0aGUgYHByZXN0ZXJhX3BjaS5jYCBmaWxlLiBHaXZlbiB0aGUgY29udGV4dCwgaXQmIzM5O3MgYSB2ZXJ5IGxvZ2ljYWwgcGxhY2UgdG8gc3RhcnQuIFRoaXMgZmlsZSBsaWtlbHkgaGFuZGxlcyB0aGUgUHJlc3RlcmEmIzM5O3MgaW50ZXJhY3Rpb24gd2l0aCB0aGUgUENJIGJ1cywgc28gdGhlIGBwY2lfZGV2aWNlX2lkYCBzdHJ1Y3R1cmUgb3IgbWFjcm8gc2hvdWxkIGJlIGRlZmluZWQgb3IgdXNlZCB3aXRoaW4gaXQgdG8gaWRlbnRpZnkgY29tcGF0aWJsZSBoYXJkd2FyZS4gSSYjMzk7bGwgbmVlZCB0byBjb25maXJtIHRoYXQgdGhpcyBpcyB0aGUgYmVzdCBwbGFjZSB0byBmaW5kIHRoZSBpbmZvLiBJJiMzOTttIG1lbnRhbGx5IHByZXBhcmluZyB0byBuYXZpZ2F0ZSB0aGUgY29kZSB3aXRoaW4gdGhhdCBmaWxlIGFuZCBleGFtaW5lIGFueSByZWZlcmVuY2VzIHRvIGBwY2lfZGV2aWNlX2lkYCBhcyB0aGUgcHJpbWFyeSBrZXkuIElmIHRoYXQmIzM5O3MgdGhlIGNhc2UsIEkgc2hvdWxkIGJlIGFibGUgdG8gcXVpY2tseSB6ZXJvIGluIG9uIHZlbmRvciBhbmQgZGV2aWNlIElEcywgYW5kIHJlbGF0ZWQgaW5mb3JtYXRpb24gc3BlY2lmaWMgdG8gdGhlIFByZXN0ZXJhIGhhcmR3YXJlLiBMZXQmIzM5O3MgZ2V0IHRvIGl0LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzIwIDEwOjE4PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3BjaV9kZXZpY2VfaWQmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX3BjaS5jPTgzND1zdGF0aWMgaW50IHByZXN0ZXJhX3BjaV9wcm9iZShzdHJ1Y3QgcGNpX2RldiAqcGRldixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfcGNpLmM6ODM1Olx0XHRcdCAgICAgIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICppZClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfcGNpLmMtODM2LXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX3BjaS5jPTk0Nj1zdGF0aWMgdm9pZCBwcmVzdGVyYV9wY2lfcmVtb3ZlKHN0cnVjdCBwY2lfZGV2ICpwZGV2KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfcGNpLmMtOTU2LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9wY2kuYzo5NTc6c3RhdGljIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkIHByZXN0ZXJhX3BjaV9kZXZpY2VzW10gPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX3BjaS5jLTk1OC1cdHsgUENJX0RFVklDRShQQ0lfVkVORE9SX0lEX01BUlZFTEwsIFBSRVNURVJBX0RFVl9JRF9BQzNYXzk4RFhfNTUpIH0sXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OS8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjAgMTA6MTg8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTgyOTgKCQkJCQkJCW91dHB1dDogNDAKCQkJCQkJCXRob3VnaHRzOiAxNjUKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBQcmVzdGVyYSBEcml2ZXIgYW5kIFN5emJvdCYjMzk7cyBQb3RlbnRpYWwqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggYW5kIGltbWVkaWF0ZWx5LCBteSBicmFpbiB6ZXJvZXMgaW4gb24gdGhlIGRyaXZlciYjMzk7cyByZWxpYW5jZSBvbiBzcGVjaWZpYyBQQ0kgSURzLiBNeSBmaXJzdCB0aG91Z2h0IGlzIHdoZXRoZXIgdGhlcmUmIzM5O3MgYSBRRU1VIGVtdWxhdG9yIG91dCB0aGVyZSBmb3IgUHJlc3RlcmEsIHNwZWNpZmljYWxseT8gTm9wZSwgdGhhdCBzZWVtcyB0byBiZSBhIGRlYWQgZW5kLiBCdXQgdGhlbiwgSSByZW1lbWJlciBzZWVpbmcgc3l6Ym90IHVzaW5nIHZhcmlvdXMgZW11bGF0aW9uIGZ1bmN0aW9ucyBsaWtlIGBzeXpfdXNiX2Nvbm5lY3RgLCBgc3l6XzgwMjExX2luamVjdGAsIGFuZCBgc3l6X2dlbmV0bGlua19nZXRfZmFtaWx5YC4KClJpZ2h0LCBzbyBzeXpib3QgKmNhbiogcG90ZW50aWFsbHkgdGVzdCBQQ0kgZHJpdmVycywgYnV0IG9ubHkgaWYgdGhlcmUmIzM5O3MgYW4gZW11bGF0b3IgYXZhaWxhYmxlLiBBbmQgc2luY2UgUHJlc3RlcmEgZG9lc24mIzM5O3QgaGF2ZSBvbmUsIHRoYXQmIzM5O3MgYW5vdGhlciBodXJkbGUuIFRoaXMgY291bGQgbWVhbiB0aGF0IHN5emJvdCYjMzk7cyByZWFjaCBtaWdodCBiZSBsaW1pdGVkIGJlY2F1c2UgaXQgY2FuJiMzOTt0IGludGVyYWN0IHdpdGggdGhlIGRyaXZlciB1bmxlc3MgdGhlIGFjdHVhbCBoYXJkd2FyZSBpcyBwcmVzZW50LgoKTm93LCBhIGNyaXRpY2FsIHBvaW50OiB0aGUgcGF0Y2ggc3BlY2lmaWNhbGx5IHRvdWNoZXMgYHByZXN0ZXJhX2RzYS5jYC4gRFNBLi4udGhhdCYjMzk7cyBEaXN0cmlidXRlZCBTd2l0Y2ggQXJjaGl0ZWN0dXJlLiBPa2F5LCB0aGF0IGNvbnRleHQgaXMgcmVhbGx5IHZhbHVhYmxlLiBOb3cgSSBuZWVkIHRvIHNlZSB3aGVyZSBgcHJlc3RlcmFfZHNhX3BhcnNlYCBhbmQgYHByZXN0ZXJhX2RzYV9idWlsZGAgYXJlIGJlaW5nIHVzZWQuIFRoaXMgY291bGQgYmUgd2hlcmUgdGhlIHJ1YmJlciBoaXRzIHRoZSByb2FkLiBMZXQmIzM5O3Mgc2VlIHdoYXQgdGhhdCByZXZlYWxzLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yMCAxMDoxOTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtwcmVzdGVyYV9kc2FfcGFyc2UmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RzYS5jLTM0LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kc2EuYzozNTppbnQgcHJlc3RlcmFfZHNhX3BhcnNlKHN0cnVjdCBwcmVzdGVyYV9kc2EgKmRzYSwgY29uc3QgdTggKmRzYV9idWYpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RzYS5jLTM2LXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RzYS5oPTI2PXN0cnVjdCBwcmVzdGVyYV9kc2Ege1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZHNhLmgtMzItXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RzYS5oOjMzOmludCBwcmVzdGVyYV9kc2FfcGFyc2Uoc3RydWN0IHByZXN0ZXJhX2RzYSAqZHNhLCBjb25zdCB1OCAqZHNhX2J1Zik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RzYS5oLTM0LWludCBwcmVzdGVyYV9kc2FfYnVpbGQoY29uc3Qgc3RydWN0IHByZXN0ZXJhX2RzYSAqZHNhLCB1OCAqZHNhX2J1Zik7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9yeHR4LmM9MjEyPXN0YXRpYyBpbnQgcHJlc3RlcmFfcnh0eF9wcm9jZXNzX3NrYihzdHJ1Y3QgcHJlc3RlcmFfc2RtYSAqc2RtYSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX3J4dHguYy0yMjMtXHQvKiBldGhlcnR5cGUgZmllbGQgaXMgcGFydCBvZiB0aGUgZHNhIGhlYWRlciAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9yeHR4LmM6MjI0Olx0ZXJyID0gcHJlc3RlcmFfZHNhX3BhcnNlKFx1MDAyNmRzYSwgc2tiLVx1MDAzZWRhdGEgLSBFVEhfVExFTik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX3J4dHguYy0yMjUtXHRpZiAoZXJyKVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjExLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yMCAxMDoxOTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxOTIzOQoJCQkJCQkJb3V0cHV0OiAyNgoJCQkJCQkJdGhvdWdodHM6IDEyMAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBBbmFseXNpcyBvZiB0aGUgUHJlc3RlcmEgUlggUGF0aCBDb2RlKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIGBwcmVzdGVyYV9yeHR4X3Byb2Nlc3Nfc2tiYCBmdW5jdGlvbiwgYW5kIGl0JiMzOTtzIGNsZWFybHkgcGFydCBvZiB0aGUgcmVjZWl2ZSAoUlgpIHBhdGggd2l0aGluIHRoZSBQcmVzdGVyYSBkcml2ZXIuIEltbWVkaWF0ZWx5LCBhbGFybSBiZWxscyBzdGFydCByaW5naW5nLiBUaGlzIHdob2xlIGRyaXZlciBpcyB0aWVkIHRvIHZlcnkgc3BlY2lmaWMgTWFydmVsbCBQQ0kgaGFyZHdhcmU6IHRoYXQgYFBDSV9WRU5ET1JfSURfTUFSVkVMTGAgY291cGxlZCB3aXRoIHRoZSBgUFJFU1RFUkFfREVWX0lEX0FDM1hfOThEWF81NWAgZGV2aWNlIElELiBDbGFzc2ljIGVtYmVkZGVkIHNpbGljb24sIG1lYW5pbmcgaXQmIzM5O3MgaGlnaGx5IHVubGlrZWx5IHRoYXQgSSBjYW4gcG9rZSBhdCB0aGlzIGVhc2lseS4KClRoZSByZWFsIHByb2JsZW0gZGF3bnMgb24gbWU6IHRoZXJlJiMzOTtzIG5vIHdheSB0byBlbXVsYXRlIHRoaXMgQVNJQyBpbiBhIHN0YW5kYXJkIHZpcnR1YWwgZW52aXJvbm1lbnQgbGlrZSBRRU1VIG9yIGV2ZW4gR29vZ2xlIENvbXB1dGUgRW5naW5lLiBUaGF0IG1lYW5zIHVubGVzcyBJIGhhdmUgYWNjZXNzIHRvIHRoZSAqYWN0dWFsKiBoYXJkd2FyZSwgSSYjMzk7bSBwcmV0dHkgbXVjaCBzdHVjay4gVGhlcmUmIzM5O3MganVzdCBubyB3YXkgdG8gcmVsaWFibHkgdGVzdCBvciBkZWJ1ZyB0aGlzIHBhdGggaW4gYSB2aXJ0dWFsaXplZCBzZXR0aW5nLgoKSG9sZCBvbiwgSSBzaG91bGQgbWFrZSBzdXJlIHRoZXJlJiMzOTtzIGFic29sdXRlbHkgbm8gc29mdHdhcmUgZW11bGF0aW9uLiBJIHNob3VsZCBxdWlja2x5IGNoZWNrIGlmIHRoZXJlJiMzOTtzIGFueSBtZW50aW9uIG9mIGEgUHJlc3RlcmEgZW11bGF0b3IgaW4gdGhlIGtlcm5lbC4gTGV0IG1lIHNlYXJjaCB0aGUga2VybmVsIHNvdXJjZSB0cmVlIGZvciBhbnkgbWVudGlvbiBvZiBzb2Z0d2FyZSBlbXVsYXRpb24gZm9yIHRoZSBQcmVzdGVyYS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMi8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjAgMTA6MTk8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkVycm9yOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bm8gbWF0Y2hlczwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtwcmVzdGVyYSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O3Rvb2xzL3Rlc3RpbmcvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O2Vycm9yJiMzNDs6ICYjMzQ7bm8gbWF0Y2hlcyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMy8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjAgMTA6MTk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTk2NTYKCQkJCQkJCW91dHB1dDogNDAKCQkJCQkJCXRob3VnaHRzOiA0OQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCBmcmFtZWQgYXMgbXkgb3duIHJlYXNvbmluZzoKCioqQW5hbHl6aW5nIHRoZSBEU0EgSW50ZXJhY3Rpb24qKgoKUmlnaHQsIG5vIHNvZnR3YXJlIGVtdWxhdGlvbiBpcyBpbnZvbHZlZCBoZXJlLCBnb29kLiBOb3csIEkgbmVlZCB0byBnZXQgYSBjbGVhcmVyIHBpY3R1cmUgb2YgaG93IGBwcmVzdGVyYV9kc2FfcGFyc2VgIGZ1bmN0aW9ucyB3aXRoaW4gdGhlIHN5c3RlbS4gSXMgaXQgc29sZWx5IGNhbGxlZCBmcm9tIGBwcmVzdGVyYV9yeHR4X3Byb2Nlc3Nfc2tiYCwgb3IgZG9lcyBpdCBoYXZlIG90aGVyIHBvdGVudGlhbCBlbnRyeSBwb2ludHMgdGhhdCBJIG1pZ2h0IGJlIG92ZXJsb29raW5nPyBJIG5lZWQgdG8ga25vdyB0aGUgY29tcGxldGUgY2FsbCBncmFwaCB0byBkZXRlcm1pbmUgaWYgaXQgY291bGQgaGF2ZSBhbnkgdW5leHBlY3RlZCBzaWRlIGVmZmVjdHMuIEFuZCB3aGF0IGFib3V0IGBwcmVzdGVyYV9kc2FfYnVpbGRgPyBJIHNob3VsZCBleGFtaW5lIHRoYXQgZnVuY3Rpb24gaW4gZGV0YWlsIGFzIHdlbGwgdG8gc2VlIGhvdyBpdCBpbnRlcmFjdHMgd2l0aCB0aGUgcGFyc2VkIGRhdGEuIEl0JiMzOTtzIGNydWNpYWwgdG8gdW5kZXJzdGFuZCB0aGUgZGF0YSBmbG93IGNvbXBsZXRlbHkuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzIwIDEwOjE5PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3ByZXN0ZXJhX2RzYV9idWlsZCYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZHNhLmM9MzU9aW50IHByZXN0ZXJhX2RzYV9wYXJzZShzdHJ1Y3QgcHJlc3RlcmFfZHNhICpkc2EsIGNvbnN0IHU4ICpkc2FfYnVmKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZHNhLmMtODItXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RzYS5jOjgzOmludCBwcmVzdGVyYV9kc2FfYnVpbGQoY29uc3Qgc3RydWN0IHByZXN0ZXJhX2RzYSAqZHNhLCB1OCAqZHNhX2J1ZilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZHNhLmMtODQte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZHNhLmg9MzM9aW50IHByZXN0ZXJhX2RzYV9wYXJzZShzdHJ1Y3QgcHJlc3RlcmFfZHNhICpkc2EsIGNvbnN0IHU4ICpkc2FfYnVmKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZHNhLmg6MzQ6aW50IHByZXN0ZXJhX2RzYV9idWlsZChjb25zdCBzdHJ1Y3QgcHJlc3RlcmFfZHNhICpkc2EsIHU4ICpkc2FfYnVmKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZHNhLmgtMzUtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9yeHR4LmM9ODEyPW5ldGRldl90eF90IHByZXN0ZXJhX3J4dHhfeG1pdChzdHJ1Y3QgcHJlc3RlcmFfcG9ydCAqcG9ydCwgc3RydWN0IHNrX2J1ZmYgKnNrYilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX3J4dHguYy04MjQtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX3J4dHguYzo4MjU6XHRpZiAocHJlc3RlcmFfZHNhX2J1aWxkKFx1MDAyNmRzYSwgc2tiLVx1MDAzZWRhdGEgJiM0MzsgMiAqIEVUSF9BTEVOKSAhPSAwKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9yeHR4LmMtODI2LVx0XHRyZXR1cm4gTkVUX1hNSVRfRFJPUDtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNS8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjAgMTA6MTk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjAzODgKCQkJCQkJCW91dHB1dDogMzcKCQkJCQkJCXRob3VnaHRzOiAxODcKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBGdXp6aW5nIFBvdGVudGlhbCBvZiB0aGUgUHJlc3RlcmEgRHJpdmVyKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIGBwcmVzdGVyYV9yeHR4X3htaXRgIGZ1bmN0aW9uIGNhbGwuIEl0JiMzOTtzIGNvbWluZyBmcm9tIHRoZSBgcHJlc3RlcmFgIGRyaXZlciwgd2hpY2gsIGFzIEkgcmVjYWxsLCBpcyB0aGF0IE1hcnZlbGwtc3BlY2lmaWMgZHJpdmVyIGZvciB0aGUgUHJlc3RlcmEgU3dpdGNoIEFTSUNzLiBUaGUgY29yZSBpc3N1ZSBoZXJlIGZvciBmdXp6aW5nIGlzIHRoYXQgdGhlcmUmIzM5O3Mgbm8gaGFyZHdhcmUgZW11bGF0aW9uIG9mIHRoaXMgcGFydGljdWxhciBkZXZpY2UgYXZhaWxhYmxlIGluIFFFTVUuIFRoYXQmIzM5O3MgYSByZWFsIHByb2JsZW0gZm9yIHN5emthbGxlciwgaXNuJiMzOTt0IGl0PyBJZiB0aGUgdGFyZ2V0IGhhcmR3YXJlIGlzbiYjMzk7dCBlbXVsYXRlZCwgc3l6a2FsbGVyIHNpbXBseSBjYW4mIzM5O3QgcmVhY2ggdGhhdCBjb2RlLgoKU28sIHRoZSBjb25jbHVzaW9uIGlzIGZhaXJseSBzdHJhaWdodGZvcndhcmQ6IGBXb3J0aEZ1enppbmdgIHNob3VsZCBiZSBgZmFsc2VgLiBJIG5lZWQgdG8gYmUgY2VydGFpbiwgdGhvdWdoLiBMZXQmIzM5O3MgZXhwbG9yZSBhbnkgcG90ZW50aWFsIGJhY2tkb29ycy4KCkkgd29uZGVyLCBpcyBgcHJlc3RlcmFgIHNvbWVob3cgcmVhY2hhYmxlIHRocm91Z2ggYSBnZW5lcmljIERTQSAoRGlzdHJpYnV0ZWQgU3dpdGNoIEFyY2hpdGVjdHVyZSkgZnJhbWV3b3JrIHRoYXQgKm1pZ2h0KiBoYXZlIHNvbWUgc29ydCBvZiBlbXVsYXRpb24/IFRpbWUgdG8gZG91YmxlLWNoZWNrLiBJIHJlY2FsbCB0aGVyZSYjMzk7cyBhIGZpbGUsIGBkcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RzYS5jYC4gV2FpdC4uLnRoYXQmIzM5O3Mgc3BlY2lmaWMgdG8gKnByZXN0ZXJhKj8gT2theSwgc28gdGhhdCBsaWtlbHkgcnVsZXMgb3V0IGdlbmVyaWMgRFNBIGFjY2Vzcy4KCkkmIzM5O20gbWFraW5nIGEga2V5IGRpc3RpbmN0aW9uIGhlcmUuIElzIHRoZSBgcHJlc3RlcmFgIGRyaXZlciBhIERTQSBkcml2ZXIgaXRzZWxmPyBMZXQmIzM5O3MgY2xhcmlmeS4gTm8sIGl0IHJlZ2lzdGVycyBhIHN3aXRjaGRldiwgbm90IGEgRFNBIGRyaXZlci4gSSBuZWVkIHRvIG1ha2Ugc3VyZSBJIGFtIHRoaW5raW5nIGNsZWFybHkgYWJvdXQgdGhpcy4gVG8gYmUgZXh0cmEgY2F1dGlvdXMsIGxldCBtZSBjaGVjayB0aGUgYHByZXN0ZXJhX21haW4uY2AgZmlsZSB0byBlbnN1cmUgdGhlcmUgYXJlIG5vIHN1cnByaXNlcy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNi8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjAgMTA6MTk8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7cmVnaXN0ZXJfbmV0ZGV2JiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9tYWluLmM9NjAzPXN0YXRpYyBpbnQgcHJlc3RlcmFfcG9ydF9jcmVhdGUoc3RydWN0IHByZXN0ZXJhX3N3aXRjaCAqc3csIHUzMiBpZClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX21haW4uYy03MzAtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX21haW4uYzo3MzE6XHRlcnIgPSByZWdpc3Rlcl9uZXRkZXYoZGV2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfbWFpbi5jLTczMi1cdGlmIChlcnIpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX21haW4uYzo3MzM6XHRcdGdvdG8gZXJyX3JlZ2lzdGVyX25ldGRldjtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfbWFpbi5jLTczNC1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX21haW4uYy03NDEtZXJyX3NmcF9iaW5kOlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9tYWluLmM6NzQyOlx0dW5yZWdpc3Rlcl9uZXRkZXYoZGV2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfbWFpbi5jOjc0MzplcnJfcmVnaXN0ZXJfbmV0ZGV2OlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9tYWluLmMtNzQ0LVx0cHJlc3RlcmFfcG9ydF9saXN0X2RlbChwb3J0KTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX21haW4uYz03NTM9c3RhdGljIHZvaWQgcHJlc3RlcmFfcG9ydF9kZXN0cm95KHN0cnVjdCBwcmVzdGVyYV9wb3J0ICpwb3J0KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfbWFpbi5jLTc1Ny1cdGNhbmNlbF9kZWxheWVkX3dvcmtfc3luYyhcdTAwMjZwb3J0LVx1MDAzZWNhY2hlZF9od19zdGF0cy5jYWNoaW5nX2R3KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfbWFpbi5jOjc1ODpcdHVucmVnaXN0ZXJfbmV0ZGV2KGRldik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX21haW4uYy03NTktXHRwcmVzdGVyYV9wb3J0X2xpc3RfZGVsKHBvcnQpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfbWFpbi5jPTEzNDk9c3RhdGljIGludCBwcmVzdGVyYV9uZXRkZXZfZXZlbnRfaGFuZGxlcl9yZWdpc3RlcihzdHJ1Y3QgcHJlc3RlcmFfc3dpdGNoICpzdylcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX21haW4uYy0xMzUyLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9tYWluLmM6MTM1MzpcdHJldHVybiByZWdpc3Rlcl9uZXRkZXZpY2Vfbm90aWZpZXIoXHUwMDI2c3ctXHUwMDNlbmV0ZGV2X25iKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfbWFpbi5jLTEzNTQtfVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfbWFpbi5jPTEzNTY9c3RhdGljIHZvaWQgcHJlc3RlcmFfbmV0ZGV2X2V2ZW50X2hhbmRsZXJfdW5yZWdpc3RlcihzdHJ1Y3QgcHJlc3RlcmFfc3dpdGNoICpzdylcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfbWFpbi5jLTEzNTcte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9tYWluLmM6MTM1ODpcdHVucmVnaXN0ZXJfbmV0ZGV2aWNlX25vdGlmaWVyKFx1MDAyNnN3LVx1MDAzZW5ldGRldl9uYik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX21haW4uYy0xMzU5LX1cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNy8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjAgMTA6MTk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjE3NDcKCQkJCQkJCW91dHB1dDogMTEwCgkJCQkJCQl0aG91Z2h0czogMTA0CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKk15IEFzc2Vzc21lbnQgb2YgdGhlIE1hcnZlbGwgUHJlc3RlcmEgU3dpdGNoIERyaXZlciYjMzk7cyBGdXp6aW5nIFBvdGVudGlhbCoqCgpPa2F5LCBoZXJlJiMzOTtzIG15IHRha2Ugb24gdGhpcyBNYXJ2ZWxsIFByZXN0ZXJhIHN3aXRjaCBkcml2ZXIuIEkmIzM5O3ZlIGxvb2tlZCBhdCB0aGUgY29kZSwgYW5kIGhlcmUmIzM5O3MgdGhlIGJvdHRvbSBsaW5lOiBJIG5lZWQgdG8gc2V0IGBXb3J0aEZ1enppbmc9ZmFsc2VgLiBUaGUgY29yZSBpc3N1ZSBpcyB0aGF0IHRoZSBkcml2ZXIgcmVsaWVzIG9uIHRoZSBQQ0kgZGV2aWNlIGJlaW5nIHByZXNlbnQgdG8gcmVnaXN0ZXIgdGhlIG5ldGRldnMgZm9yIHRoZSBzd2l0Y2ggcG9ydHMuICBTcGVjaWZpY2FsbHksIHRoZSBuZXRkZXZzIGFyZSBjcmVhdGVkIGR1cmluZyB0aGUgUENJIHByb2JlLgoKTm93LCBpbiBhbnkgbm9ybWFsIGhhcmR3YXJlIHNldHVwLCB0aGlzIHdvdWxkIGJlIGZpbmUuIFRoZSBQQ0kgZGV2aWNlIGlzIHRoZXJlLCB0aGluZ3Mgd29yayBhcyBpbnRlbmRlZC4gQnV0IGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIFFFTVUgb3IgR29vZ2xlIENvbXB1dGUgRW5naW5lLCB3aGljaCBhcmUgbXkgdGVzdGJlZHMgb2YgY2hvaWNlIGZvciBmdXp6aW5nLCB0aGlzIFBDSSBkZXZpY2Ugc2ltcGx5IGlzbiYjMzk7dCBwcmVzZW50LiBBbmQgaWYgdGhhdCBQQ0kgZGV2aWNlIGlzbiYjMzk7dCBwcm9iZWQsIHRoZSBuZWNlc3NhcnkgbmV0ZGV2cyBhcmUgbmV2ZXIgY3JlYXRlZC4KCkVmZmVjdGl2ZWx5LCB0aGlzIG1lYW5zIHRoZSBjb2RlIHRoYXQgaW50ZXJhY3RzIHdpdGggdGhlIHN3aXRjaCBpdHNlbGYg4oCTIHRoZSBjb2RlIEkmIzM5O2QgYmUgdGFyZ2V0aW5nIHdpdGggZnV6emluZyDigJMgYmVjb21lcyB1bnJlYWNoYWJsZSB1bmRlciB0aGUgY29uZGl0aW9ucyBJJiMzOTttIG9wZXJhdGluZyB3aXRoaW4uICBUaGVyZWZvcmUsIGZvY3VzaW5nIGZ1enppbmcgZWZmb3J0IG9uIHRoaXMgZHJpdmVyIGlzLCBmb3IgYWxsIGludGVudHMgYW5kIHB1cnBvc2VzLCBhIHdhc3RlIG9mIHRpbWUuIEl0JiMzOTtzIGEgaGFyZHdhcmUtc3BlY2lmaWMgZHJpdmVyIGRlc2lnbmVkIGZvciBNYXJ2ZWxsIFByZXN0ZXJhIFN3aXRjaCBBU0lDcywgYW5kIHRoZXNlIEFTSUNzIGFyZW4mIzM5O3QgZW11bGF0ZWQgaW4gdGhlIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBJJiMzOTttIHVzaW5nLiBJdCYjMzk7cyBzaW1wbHkgbm90IHByYWN0aWNhbCB0byBpbmNsdWRlIGl0LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE4LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yMCAxMDoxOTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFtdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBNYXJ2ZWxsIFByZXN0ZXJhIFN3aXRjaCBBU0lDIGRyaXZlciAocHJlc3RlcmEpLiBUaGlzIGRyaXZlciByZXF1aXJlcyBzcGVjaWZpYyBoYXJkd2FyZSAoUENJX1ZFTkRPUl9JRF9NQVJWRUxMLCBQUkVTVEVSQV9ERVZfSURfQUMzWF85OERYXzU1KSB3aGljaCBpcyBub3QgZW11bGF0ZWQgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgUUVNVSBvciBHQ0UuIFRoZXJlZm9yZSwgdGhlIG1vZGlmaWVkIGNvZGUgcGF0aHMgYXJlIHVucmVhY2hhYmxlIGR1cmluZyBmdXp6aW5nLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IG51bGwsCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIE1hcnZlbGwgUHJlc3RlcmEgU3dpdGNoIEFTSUMgZHJpdmVyIChwcmVzdGVyYSkuIFRoaXMgZHJpdmVyIHJlcXVpcmVzIHNwZWNpZmljIGhhcmR3YXJlIChQQ0lfVkVORE9SX0lEX01BUlZFTEwsIFBSRVNURVJBX0RFVl9JRF9BQzNYXzk4RFhfNTUpIHdoaWNoIGlzIG5vdCBlbXVsYXRlZCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBRRU1VIG9yIEdDRS4gVGhlcmVmb3JlLCB0aGUgbW9kaWZpZWQgY29kZSBwYXRocyBhcmUgdW5yZWFjaGFibGUgZHVyaW5nIGZ1enppbmcuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTwvdGJvZHk+Cgk8L3RhYmxlPgoKCTxkaXYgaWQ9ImxsbV9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+TExNIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgVG9rZW5zPC90aD4KCQkJCQk8dGg+QXZnIFRva2VuczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJsbG1fc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJ0b29sX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5Ub29sIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9InRvb2xfc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJkdXJhdGlvbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+Cgk8ZGl2IGlkPSJ0b2tlbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+CgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9qc2FwaSI+PC9zY3JpcHQ+Cgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CgkJZ29vZ2xlLmxvYWQoInZpc3VhbGl6YXRpb24iLCAiMSIsIHtwYWNrYWdlczpbImNvcmVjaGFydCJdfSk7CgkJZ29vZ2xlLnNldE9uTG9hZENhbGxiYWNrKGRyYXdDaGFydHMpOwoKCQlmdW5jdGlvbiBkcmF3Q2hhcnRzKCkgewoJCQljb25zdCByYXdEYXRhID0gW3siU3RhcnRlZCI6IjIwMjYtMDYtMjBUMTA6MTg6MzUuNzExMDk2MjM5WiIsIlNlcSI6MCwiTmVzdGluZyI6MCwiVHlwZSI6ImZsb3ciLCJOYW1lIjoicGF0Y2gtdHJpYWdlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NjE0NzcyNTU5MzYsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBNYXJ2ZWxsIFByZXN0ZXJhIFN3aXRjaCBBU0lDIGRyaXZlciAocHJlc3RlcmEpLiBUaGlzIGRyaXZlciByZXF1aXJlcyBzcGVjaWZpYyBoYXJkd2FyZSAoUENJX1ZFTkRPUl9JRF9NQVJWRUxMLCBQUkVTVEVSQV9ERVZfSURfQUMzWF85OERYXzU1KSB3aGljaCBpcyBub3QgZW11bGF0ZWQgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgUUVNVSBvciBHQ0UuIFRoZXJlZm9yZSwgdGhlIG1vZGlmaWVkIGNvZGUgcGF0aHMgYXJlIHVucmVhY2hhYmxlIGR1cmluZyBmdXp6aW5nLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjBUMTA6MTg6MzUuNzExMTAyMDU5WiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0OTUzNjA2MzksIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIlBhdGNoRGlmZlwiOiBcImNvbW1pdCAzOWM2ZWEyNmYxYmI2MTNhMzg3NmI4OWViMTgwY2RmYTRmMTQzZTY3XFxuQXV0aG9yOiBzeXotY2x1c3RlciBcXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cXHUwMDNlXFxuRGF0ZTogICBTYXQgSnVuIDIwIDEwOjE4OjMzIDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZHNhLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RzYS5jXFxuaW5kZXggYjdlODljMGNhNWMwZDkuLjI3NmY5OGNiZDUwZWE3IDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZHNhLmNcXG4rKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RzYS5jXFxuQEAgLTQsNiArNCw3IEBAXFxuICNpbmNsdWRlIFxcdTAwM2NsaW51eC9iaXRmaWVsZC5oXFx1MDAzZVxcbiAjaW5jbHVkZSBcXHUwMDNjbGludXgvYml0b3BzLmhcXHUwMDNlXFxuICNpbmNsdWRlIFxcdTAwM2NsaW51eC9lcnJuby5oXFx1MDAzZVxcbisjaW5jbHVkZSBcXHUwMDNjbGludXgvdW5hbGlnbmVkLmhcXHUwMDNlXFxuICNpbmNsdWRlIFxcdTAwM2NsaW51eC9zdHJpbmcuaFxcdTAwM2VcXG4gXFxuICNpbmNsdWRlIFxcXCJwcmVzdGVyYV9kc2EuaFxcXCJcXG5AQCAtMzMsMTUgKzM0LDE0IEBAXFxuIFxcbiBpbnQgcHJlc3RlcmFfZHNhX3BhcnNlKHN0cnVjdCBwcmVzdGVyYV9kc2EgKmRzYSwgY29uc3QgdTggKmRzYV9idWYpXFxuIHtcXG4tXFx0X19iZTMyICpkc2Ffd29yZHMgPSAoX19iZTMyICopZHNhX2J1ZjtcXG4gXFx0ZW51bSBwcmVzdGVyYV9kc2FfY21kIGNtZDtcXG4gXFx0dTMyIHdvcmRzWzRdO1xcbiBcXHR1MzIgZmllbGQ7XFxuIFxcbi1cXHR3b3Jkc1swXSA9IG50b2hsKGRzYV93b3Jkc1swXSk7XFxuLVxcdHdvcmRzWzFdID0gbnRvaGwoZHNhX3dvcmRzWzFdKTtcXG4tXFx0d29yZHNbMl0gPSBudG9obChkc2Ffd29yZHNbMl0pO1xcbi1cXHR3b3Jkc1szXSA9IG50b2hsKGRzYV93b3Jkc1szXSk7XFxuK1xcdHdvcmRzWzBdID0gZ2V0X3VuYWxpZ25lZF9iZTMyKGRzYV9idWYpO1xcbitcXHR3b3Jkc1sxXSA9IGdldF91bmFsaWduZWRfYmUzMihkc2FfYnVmICsgNCk7XFxuK1xcdHdvcmRzWzJdID0gZ2V0X3VuYWxpZ25lZF9iZTMyKGRzYV9idWYgKyA4KTtcXG4rXFx0d29yZHNbM10gPSBnZXRfdW5hbGlnbmVkX2JlMzIoZHNhX2J1ZiArIDEyKTtcXG4gXFxuIFxcdC8qIHNldCB0aGUgY29tbW9uIHBhcmFtZXRlcnMgKi9cXG4gXFx0Y21kID0gKGVudW0gcHJlc3RlcmFfZHNhX2NtZClGSUVMRF9HRVQoUFJFU1RFUkFfRFNBX1cwX0NNRCwgd29yZHNbMF0pO1xcbkBAIC04Miw3ICs4Miw2IEBAIGludCBwcmVzdGVyYV9kc2FfcGFyc2Uoc3RydWN0IHByZXN0ZXJhX2RzYSAqZHNhLCBjb25zdCB1OCAqZHNhX2J1ZilcXG4gXFxuIGludCBwcmVzdGVyYV9kc2FfYnVpbGQoY29uc3Qgc3RydWN0IHByZXN0ZXJhX2RzYSAqZHNhLCB1OCAqZHNhX2J1ZilcXG4ge1xcbi1cXHRfX2JlMzIgKmRzYV93b3JkcyA9IChfX2JlMzIgKilkc2FfYnVmO1xcbiBcXHR1MzIgZGV2X251bSA9IGRzYS1cXHUwMDNlaHdfZGV2X251bTtcXG4gXFx0dTMyIHdvcmRzWzRdID0geyAwIH07XFxuIFxcbkBAIC05OCwxMCArOTcsMTAgQEAgaW50IHByZXN0ZXJhX2RzYV9idWlsZChjb25zdCBzdHJ1Y3QgcHJlc3RlcmFfZHNhICpkc2EsIHU4ICpkc2FfYnVmKVxcbiBcXHR3b3Jkc1sxXSB8PSBGSUVMRF9QUkVQKFBSRVNURVJBX0RTQV9XMV9FWFRfQklULCAxKTtcXG4gXFx0d29yZHNbMl0gfD0gRklFTERfUFJFUChQUkVTVEVSQV9EU0FfVzJfRVhUX0JJVCwgMSk7XFxuIFxcbi1cXHRkc2Ffd29yZHNbMF0gPSBodG9ubCh3b3Jkc1swXSk7XFxuLVxcdGRzYV93b3Jkc1sxXSA9IGh0b25sKHdvcmRzWzFdKTtcXG4tXFx0ZHNhX3dvcmRzWzJdID0gaHRvbmwod29yZHNbMl0pO1xcbi1cXHRkc2Ffd29yZHNbM10gPSBodG9ubCh3b3Jkc1szXSk7XFxuK1xcdHB1dF91bmFsaWduZWRfYmUzMih3b3Jkc1swXSwgZHNhX2J1Zik7XFxuK1xcdHB1dF91bmFsaWduZWRfYmUzMih3b3Jkc1sxXSwgZHNhX2J1ZiArIDQpO1xcbitcXHRwdXRfdW5hbGlnbmVkX2JlMzIod29yZHNbMl0sIGRzYV9idWYgKyA4KTtcXG4rXFx0cHV0X3VuYWxpZ25lZF9iZTMyKHdvcmRzWzNdLCBkc2FfYnVmICsgMTIpO1xcbiBcXG4gXFx0cmV0dXJuIDA7XFxuIH1cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjBUMTA6MTg6MzYuMjA3MjE4Mjk4WiIsIlNlcSI6MiwiTmVzdGluZyI6MSwiVHlwZSI6ImFnZW50IiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo2MDk4MTEyNjgwNywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIE1hcnZlbGwgUHJlc3RlcmEgU3dpdGNoIEFTSUMgZHJpdmVyIChwcmVzdGVyYSkuIFRoaXMgZHJpdmVyIHJlcXVpcmVzIHNwZWNpZmljIGhhcmR3YXJlIChQQ0lfVkVORE9SX0lEX01BUlZFTEwsIFBSRVNURVJBX0RFVl9JRF9BQzNYXzk4RFhfNTUpIHdoaWNoIGlzIG5vdCBlbXVsYXRlZCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBRRU1VIG9yIEdDRS4gVGhlcmVmb3JlLCB0aGUgbW9kaWZpZWQgY29kZSBwYXRocyBhcmUgdW5yZWFjaGFibGUgZHVyaW5nIGZ1enppbmcuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiJZb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci5cbllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lXG5pZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXG5cbklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpblxueW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5XG51c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLlxuXG5SZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOlxuLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLlxuLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy5cbi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LlxuLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsXG5ldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuXG5cbklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2hcbnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLlxuXG5XaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzpcbjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuXG4gICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy5cbjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLlxuICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLlxuICAgRG8gbm90IGxpc3QgdG9vIGdlbmVyaWMgY29uZmlncyAod2UgYWxyZWFkeSBoYXZlIHRoZW0gZW5hYmxlZCkuIE9ubHkgbGlzdCB0aG9zZSB0aGF0XG4gICBzcGVjaWZpY2FsbHkgY292ZXIgdGhlIG1vZGlmaWVkIGNvZGUuIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncyBvdXRwdXQgYXJyYXksXG4gICBhbmQgRE8gTk9UIGFkZCBhICdDT05GSUdfJyBwcmVmaXggKGUuZy4sIHJldHVybiBcIk5FVF9JUFY0XCIgaW5zdGVhZCBvZiBcIkNPTkZJR19ORVRfSVBWNFwiKS5cblByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLlxuXG5cblVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuXG5JdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS5cbklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC5cbiIsIlByb21wdCI6IkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOlxuY29tbWl0IDM5YzZlYTI2ZjFiYjYxM2EzODc2Yjg5ZWIxODBjZGZhNGYxNDNlNjdcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgU2F0IEp1biAyMCAxMDoxODozMyAyMDI2ICswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZHNhLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RzYS5jXG5pbmRleCBiN2U4OWMwY2E1YzBkOS4uMjc2Zjk4Y2JkNTBlYTcgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RzYS5jXG4rKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RzYS5jXG5AQCAtNCw2ICs0LDcgQEBcbiAjaW5jbHVkZSBcdTAwM2NsaW51eC9iaXRmaWVsZC5oXHUwMDNlXG4gI2luY2x1ZGUgXHUwMDNjbGludXgvYml0b3BzLmhcdTAwM2VcbiAjaW5jbHVkZSBcdTAwM2NsaW51eC9lcnJuby5oXHUwMDNlXG4rI2luY2x1ZGUgXHUwMDNjbGludXgvdW5hbGlnbmVkLmhcdTAwM2VcbiAjaW5jbHVkZSBcdTAwM2NsaW51eC9zdHJpbmcuaFx1MDAzZVxuIFxuICNpbmNsdWRlIFwicHJlc3RlcmFfZHNhLmhcIlxuQEAgLTMzLDE1ICszNCwxNCBAQFxuIFxuIGludCBwcmVzdGVyYV9kc2FfcGFyc2Uoc3RydWN0IHByZXN0ZXJhX2RzYSAqZHNhLCBjb25zdCB1OCAqZHNhX2J1ZilcbiB7XG4tXHRfX2JlMzIgKmRzYV93b3JkcyA9IChfX2JlMzIgKilkc2FfYnVmO1xuIFx0ZW51bSBwcmVzdGVyYV9kc2FfY21kIGNtZDtcbiBcdHUzMiB3b3Jkc1s0XTtcbiBcdHUzMiBmaWVsZDtcbiBcbi1cdHdvcmRzWzBdID0gbnRvaGwoZHNhX3dvcmRzWzBdKTtcbi1cdHdvcmRzWzFdID0gbnRvaGwoZHNhX3dvcmRzWzFdKTtcbi1cdHdvcmRzWzJdID0gbnRvaGwoZHNhX3dvcmRzWzJdKTtcbi1cdHdvcmRzWzNdID0gbnRvaGwoZHNhX3dvcmRzWzNdKTtcbitcdHdvcmRzWzBdID0gZ2V0X3VuYWxpZ25lZF9iZTMyKGRzYV9idWYpO1xuK1x0d29yZHNbMV0gPSBnZXRfdW5hbGlnbmVkX2JlMzIoZHNhX2J1ZiArIDQpO1xuK1x0d29yZHNbMl0gPSBnZXRfdW5hbGlnbmVkX2JlMzIoZHNhX2J1ZiArIDgpO1xuK1x0d29yZHNbM10gPSBnZXRfdW5hbGlnbmVkX2JlMzIoZHNhX2J1ZiArIDEyKTtcbiBcbiBcdC8qIHNldCB0aGUgY29tbW9uIHBhcmFtZXRlcnMgKi9cbiBcdGNtZCA9IChlbnVtIHByZXN0ZXJhX2RzYV9jbWQpRklFTERfR0VUKFBSRVNURVJBX0RTQV9XMF9DTUQsIHdvcmRzWzBdKTtcbkBAIC04Miw3ICs4Miw2IEBAIGludCBwcmVzdGVyYV9kc2FfcGFyc2Uoc3RydWN0IHByZXN0ZXJhX2RzYSAqZHNhLCBjb25zdCB1OCAqZHNhX2J1ZilcbiBcbiBpbnQgcHJlc3RlcmFfZHNhX2J1aWxkKGNvbnN0IHN0cnVjdCBwcmVzdGVyYV9kc2EgKmRzYSwgdTggKmRzYV9idWYpXG4ge1xuLVx0X19iZTMyICpkc2Ffd29yZHMgPSAoX19iZTMyICopZHNhX2J1ZjtcbiBcdHUzMiBkZXZfbnVtID0gZHNhLVx1MDAzZWh3X2Rldl9udW07XG4gXHR1MzIgd29yZHNbNF0gPSB7IDAgfTtcbiBcbkBAIC05OCwxMCArOTcsMTAgQEAgaW50IHByZXN0ZXJhX2RzYV9idWlsZChjb25zdCBzdHJ1Y3QgcHJlc3RlcmFfZHNhICpkc2EsIHU4ICpkc2FfYnVmKVxuIFx0d29yZHNbMV0gfD0gRklFTERfUFJFUChQUkVTVEVSQV9EU0FfVzFfRVhUX0JJVCwgMSk7XG4gXHR3b3Jkc1syXSB8PSBGSUVMRF9QUkVQKFBSRVNURVJBX0RTQV9XMl9FWFRfQklULCAxKTtcbiBcbi1cdGRzYV93b3Jkc1swXSA9IGh0b25sKHdvcmRzWzBdKTtcbi1cdGRzYV93b3Jkc1sxXSA9IGh0b25sKHdvcmRzWzFdKTtcbi1cdGRzYV93b3Jkc1syXSA9IGh0b25sKHdvcmRzWzJdKTtcbi1cdGRzYV93b3Jkc1szXSA9IGh0b25sKHdvcmRzWzNdKTtcbitcdHB1dF91bmFsaWduZWRfYmUzMih3b3Jkc1swXSwgZHNhX2J1Zik7XG4rXHRwdXRfdW5hbGlnbmVkX2JlMzIod29yZHNbMV0sIGRzYV9idWYgKyA0KTtcbitcdHB1dF91bmFsaWduZWRfYmUzMih3b3Jkc1syXSwgZHNhX2J1ZiArIDgpO1xuK1x0cHV0X3VuYWxpZ25lZF9iZTMyKHdvcmRzWzNdLCBkc2FfYnVmICsgMTIpO1xuIFxuIFx0cmV0dXJuIDA7XG4gfVxuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjBUMTA6MTg6MzYuMjA3MjIwMDQ4WiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NTcxNzM3MTA1NywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgYSBQcmVzdGVyYSBEcml2ZXIgUGF0Y2gqKlxuXG5Pa2F5LCBzbyBJJ3ZlIGdvdCB0aGlzIHBhdGNoIHRoYXQgdG91Y2hlcyBgZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kc2EuY2AuIFNlZW1zIHN0cmFpZ2h0Zm9yd2FyZCBlbm91Z2g7IGl0J3MgcmVwbGFjaW5nIHNvbWUgZGlyZWN0IHBvaW50ZXIgY2FzdGluZyBhbmQgYG50b2hsYC9gaHRvbmxgIHdpdGggYGdldF91bmFsaWduZWRfYmUzMmAgYW5kIGBwdXRfdW5hbGlnbmVkX2JlMzJgLiBTb3VuZHMgbGlrZSBhIGZpeCBmb3IgYW4gdW5hbGlnbmVkIG1lbW9yeSBhY2Nlc3MgaXNzdWUsIHdoaWNoIGlzIGdvb2QuIFByZXZlbnRzIHBvdGVudGlhbCBjcmFzaGVzIG9yIGRhdGEgY29ycnVwdGlvbi5cblxuVGhlIGRyaXZlciBpbiBxdWVzdGlvbiBpcyBgcHJlc3RlcmFgLCB3aGljaCBJIGtub3cgaXMgdGhlIE1hcnZlbGwgUHJlc3RlcmEgU3dpdGNoIEFTSUNzIExpbnV4IE5ldHdvcmsgRHJpdmVyLiBOb3cgY29tZXMgdGhlIHJlYWwgcXVlc3Rpb246IGNhbiBJIGVmZmVjdGl2ZWx5IHRlc3QgdGhpcyB0aGluZyBpbiBhIHZpcnR1YWxpemVkIGVudmlyb25tZW50PyBTd2l0Y2ggQVNJQyBkcml2ZXJzIGFyZSB1c3VhbGx5IGEgcGFpbiB0byBmdXp6LCBhcyB0aGV5IG9mdGVuIHJlcXVpcmUgc3BlY2lmaWMgaGFyZHdhcmUuIFFFTVUgZ2VuZXJhbGx5IGlzbuKAmXQgZ29pbmcgdG8gY3V0IGl0IHVubGVzcyB0aGVyZSdzIGEgaGFyZHdhcmUgZW11bGF0b3Igb3IgaXTigJlzIGFjdGluZyBvbiBhIG1vcmUgZ2VuZXJpYyBzdWJzeXN0ZW0uIEkgbmVlZCB0byBmaWd1cmUgb3V0IGlmIGBwcmVzdGVyYWAgaXMgYW4gZXhjZXB0aW9uLiBDYW4gaXQgYmUgZnV6emVkIGluIGEgdmlydHVhbCBzZXR0aW5nP1xuXG5MZXQncyBzZWXigKYgZG8gSSBoYXZlIGFueSBvcHRpb25zIGhlcmU/IElzIHRoZXJlIHNvbWUgdmlydHVhbCBkZXZpY2UgdGhhdCBlbXVsYXRlcyB0aGUgUHJlc3RlcmEgaGFyZHdhcmU/IEkgbmVlZCB0byBzZWFyY2ggdGhlIGtlcm5lbCB0cmVlLCBhbmQgc2VlIGlmIHRoZXJlIGFyZSBhbnkgdmlydHVhbCBpbXBsZW1lbnRhdGlvbnMgb3IgY29uZmlndXJhdGlvbiBvcHRpb25zIHRoYXQgY291bGQgZmFjaWxpdGF0ZSB0aGlzLiBMZXTigJlzIHNlZSB3aGF0IHNob3dzIHVwLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyNTU5LCJPdXRwdXRUb2tlbnMiOjM1LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTgxLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjBUMTA6MTg6NDEuOTI0NTkzNDg1WiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQ5MzQ4MDQ5OSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJwcmVzdGVyYVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJcXG5GdWxsIG91dHB1dCBpcyB0b28gbG9uZywgc2hvd2luZyA1MDAgb3V0IG9mIDg4MzggbGluZXMuXFxuVXNlIG1vcmUgcHJlY2lzZSBleHByZXNzaW9uIGlmIHBvc3NpYmxlLlxcblxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvS2NvbmZpZz02PWNvbmZpZyBQUkVTVEVSQVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9LY29uZmlnLTE1LVxcdCAgVG8gY29tcGlsZSB0aGlzIGRyaXZlciBhcyBhIG1vZHVsZSwgY2hvb3NlIE0gaGVyZTogdGhlXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9LY29uZmlnOjE2OlxcdCAgbW9kdWxlIHdpbGwgYmUgY2FsbGVkIHByZXN0ZXJhLlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvS2NvbmZpZy0xNy1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL0tjb25maWc9MTg9Y29uZmlnIFBSRVNURVJBX1BDSVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9LY29uZmlnLTI2LVxcdCAgVG8gY29tcGlsZSB0aGlzIGRyaXZlciBhcyBhIG1vZHVsZSwgY2hvb3NlIE0gaGVyZTogdGhlXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9LY29uZmlnOjI3OlxcdCAgbW9kdWxlIHdpbGwgYmUgY2FsbGVkIHByZXN0ZXJhX3BjaS5cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvTWFrZWZpbGUtMS0jIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9NYWtlZmlsZToyOm9iai0kKENPTkZJR19QUkVTVEVSQSlcXHQrPSBwcmVzdGVyYS5vXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9NYWtlZmlsZTozOnByZXN0ZXJhLW9ianNcXHRcXHQ6PSBwcmVzdGVyYV9tYWluLm8gcHJlc3RlcmFfaHcubyBwcmVzdGVyYV9kc2EubyBcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9NYWtlZmlsZTo0OlxcdFxcdFxcdCAgIHByZXN0ZXJhX3J4dHgubyBwcmVzdGVyYV9kZXZsaW5rLm8gcHJlc3RlcmFfZXRodG9vbC5vIFxcXFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL01ha2VmaWxlOjU6XFx0XFx0XFx0ICAgcHJlc3RlcmFfc3dpdGNoZGV2Lm8gcHJlc3RlcmFfYWNsLm8gcHJlc3RlcmFfZmxvdy5vIFxcXFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL01ha2VmaWxlOjY6XFx0XFx0XFx0ICAgcHJlc3RlcmFfZmxvd2VyLm8gcHJlc3RlcmFfc3Bhbi5vIHByZXN0ZXJhX2NvdW50ZXIubyBcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9NYWtlZmlsZTo3OlxcdFxcdFxcdCAgIHByZXN0ZXJhX3JvdXRlci5vIHByZXN0ZXJhX3JvdXRlcl9ody5vIHByZXN0ZXJhX21hdGNoYWxsLm9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL01ha2VmaWxlLTgtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9NYWtlZmlsZTo5Om9iai0kKENPTkZJR19QUkVTVEVSQV9QQ0kpXFx0Kz0gcHJlc3RlcmFfcGNpLm9cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaC0xMy1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmg6MTQ6I2RlZmluZSBQUkVTVEVSQV9EUlZfTkFNRVxcdFxcXCJwcmVzdGVyYVxcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmgtMTUtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmgtMTctXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oOjE4OnN0cnVjdCBwcmVzdGVyYV9md19yZXYge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaC0xOS1cXHR1MTYgbWFqO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oLTIzLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaDoyNDpzdHJ1Y3QgcHJlc3RlcmFfZmxvb2RfZG9tYWluIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmg6MjU6XFx0c3RydWN0IHByZXN0ZXJhX3N3aXRjaCAqc3c7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oLTI2LVxcdHN0cnVjdCBsaXN0X2hlYWQgZmxvb2RfZG9tYWluX3BvcnRfbGlzdDtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaC0yOS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmg6MzA6c3RydWN0IHByZXN0ZXJhX21kYl9lbnRyeSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oOjMxOlxcdHN0cnVjdCBwcmVzdGVyYV9zd2l0Y2ggKnN3O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaDozMjpcXHRzdHJ1Y3QgcHJlc3RlcmFfZmxvb2RfZG9tYWluICpmbG9vZF9kb21haW47XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oLTMzLVxcdHVuc2lnbmVkIGNoYXIgYWRkcltFVEhfQUxFTl07XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmgtMzYtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oOjM3OnN0cnVjdCBwcmVzdGVyYV9mbG9vZF9kb21haW5fcG9ydCB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oOjM4OlxcdHN0cnVjdCBwcmVzdGVyYV9mbG9vZF9kb21haW4gKmZsb29kX2RvbWFpbjtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmgtMzktXFx0c3RydWN0IG5ldF9kZXZpY2UgKmRldjtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaC00My1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmg6NDQ6c3RydWN0IHByZXN0ZXJhX3BvcnRfc3RhdHMge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaC00NS1cXHR1NjQgZ29vZF9vY3RldHNfcmVjZWl2ZWQ7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmgtNzgtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oOjc5OnN0cnVjdCBwcmVzdGVyYV9wb3J0X2NhcHMge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaC04MC1cXHR1NjQgc3VwcF9saW5rX21vZGVzO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oLTg1LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaDo4NjpzdHJ1Y3QgcHJlc3RlcmFfbGFnIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmgtODctXFx0c3RydWN0IG5ldF9kZXZpY2UgKmRldjtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaC05Mi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmg6OTM6c3RydWN0IHByZXN0ZXJhX2Zsb3dfYmxvY2s7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oLTk0LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaDo5NTpzdHJ1Y3QgcHJlc3RlcmFfcG9ydF9tYWNfc3RhdGUge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaC05Ni1cXHRib29sIHZhbGlkO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oLTEwNC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmg6MTA1OnN0cnVjdCBwcmVzdGVyYV9wb3J0X3BoeV9zdGF0ZSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oLTEwNi1cXHR1NjQgbG1vZGVfYm1hcDtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaC0xMTMtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oOjExNDpzdHJ1Y3QgcHJlc3RlcmFfcG9ydF9tYWNfY29uZmlnIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmgtMTE1LVxcdHUzMiBtb2RlO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oLTEyMi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmg6MTIzOnN0cnVjdCBwcmVzdGVyYV9wb3J0X3BoeV9jb25maWcge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaC0xMjQtXFx0dTMyIG1vZGU7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmgtMTI4LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaDoxMjk6c3RydWN0IHByZXN0ZXJhX3BvcnQge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaC0xMzAtXFx0c3RydWN0IG5ldF9kZXZpY2UgKmRldjtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmg6MTMxOlxcdHN0cnVjdCBwcmVzdGVyYV9zd2l0Y2ggKnN3O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaDoxMzI6XFx0c3RydWN0IHByZXN0ZXJhX2Zsb3dfYmxvY2sgKmluZ3Jlc3NfZmxvd19ibG9jaztcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmg6MTMzOlxcdHN0cnVjdCBwcmVzdGVyYV9mbG93X2Jsb2NrICplZ3Jlc3NfZmxvd19ibG9jaztcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmgtMTM0LVxcdHN0cnVjdCBkZXZsaW5rX3BvcnQgZGxfcG9ydDtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmgtMTM1LVxcdHN0cnVjdCBsaXN0X2hlYWQgbGFnX21lbWJlcjtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmg6MTM2OlxcdHN0cnVjdCBwcmVzdGVyYV9sYWcgKmxhZztcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmgtMTM3LVxcdHUzMiBpZDtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaC0xNDQtXFx0dTggYWR2ZXJfZmVjO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaDoxNDU6XFx0c3RydWN0IHByZXN0ZXJhX3BvcnRfY2FwcyBjYXBzO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaC0xNDYtXFx0c3RydWN0IGxpc3RfaGVhZCBsaXN0O1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oLTE0OC1cXHRzdHJ1Y3Qge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaDoxNDk6XFx0XFx0c3RydWN0IHByZXN0ZXJhX3BvcnRfc3RhdHMgc3RhdHM7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oLTE1MC1cXHRcXHRzdHJ1Y3QgZGVsYXllZF93b3JrIGNhY2hpbmdfZHc7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oLTE1MS1cXHR9IGNhY2hlZF9od19zdGF0cztcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmg6MTUyOlxcdHN0cnVjdCBwcmVzdGVyYV9wb3J0X21hY19jb25maWcgY2ZnX21hYztcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmg6MTUzOlxcdHN0cnVjdCBwcmVzdGVyYV9wb3J0X3BoeV9jb25maWcgY2ZnX3BoeTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmg6MTU0OlxcdHN0cnVjdCBwcmVzdGVyYV9wb3J0X21hY19zdGF0ZSBzdGF0ZV9tYWM7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oOjE1NTpcXHRzdHJ1Y3QgcHJlc3RlcmFfcG9ydF9waHlfc3RhdGUgc3RhdGVfcGh5O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaC0xNTYtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmgtMTY0LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaDoxNjU6c3RydWN0IHByZXN0ZXJhX2RldmljZSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oLTE2Ni1cXHRzdHJ1Y3QgZGV2aWNlICpkZXY7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmgtMTY4LVxcdHU4IF9faW9tZW0gKnBwX3JlZ3M7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oOjE2OTpcXHRzdHJ1Y3QgcHJlc3RlcmFfZndfcmV2IGZ3X3JldjtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmgtMTcwLVxcdHZvaWQgKnByaXY7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmgtMTcyLVxcdC8qIGNhbGxlZCBieSBkZXZpY2UgZHJpdmVyIHRvIGhhbmRsZSByZWNlaXZlZCBwYWNrZXRzICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oOjE3MzpcXHR2b2lkICgqcmVjdl9wa3QpKHN0cnVjdCBwcmVzdGVyYV9kZXZpY2UgKmRldik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oLTE3NC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmgtMTc1LVxcdC8qIGNhbGxlZCBieSBkZXZpY2UgZHJpdmVyIHRvIHBhc3MgZXZlbnQgdXAgdG8gdGhlIGhpZ2hlciBsYXllciAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaDoxNzY6XFx0aW50ICgqcmVjdl9tc2cpKHN0cnVjdCBwcmVzdGVyYV9kZXZpY2UgKmRldiwgdm9pZCAqbXNnLCBzaXplX3Qgc2l6ZSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oLTE3Ny1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmgtMTc4LVxcdC8qIGNhbGxlZCBieSBoaWdoZXIgbGF5ZXIgdG8gc2VuZCByZXF1ZXN0IHRvIHRoZSBmaXJtd2FyZSAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaDoxNzk6XFx0aW50ICgqc2VuZF9yZXEpKHN0cnVjdCBwcmVzdGVyYV9kZXZpY2UgKmRldiwgaW50IHFpZCwgdm9pZCAqaW5fbXNnLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaC0xODAtXFx0XFx0XFx0c2l6ZV90IGluX3NpemUsIHZvaWQgKm91dF9tc2csIHNpemVfdCBvdXRfc2l6ZSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaC0xODMtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oOjE4NDplbnVtIHByZXN0ZXJhX2V2ZW50X3R5cGUge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaC0xODUtXFx0UFJFU1RFUkFfRVZFTlRfVFlQRV9VTlNQRUMsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmgtMTkzLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaDoxOTQ6ZW51bSBwcmVzdGVyYV9yeHR4X2V2ZW50X2lkIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmgtMTk1LVxcdFBSRVNURVJBX1JYVFhfRVZFTlRfVU5TUEVDLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oLTE5OC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmg6MTk5OmVudW0gcHJlc3RlcmFfcG9ydF9ldmVudF9pZCB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oLTIwMC1cXHRQUkVTVEVSQV9QT1JUX0VWRU5UX1VOU1BFQyxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaC0yMDMtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oOjIwNDpzdHJ1Y3QgcHJlc3RlcmFfcG9ydF9ldmVudCB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oLTIwNS1cXHR1MzIgcG9ydF9pZDtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaC0yMjUtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oOjIyNjplbnVtIHByZXN0ZXJhX2ZkYl9lbnRyeV90eXBlIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmgtMjI3LVxcdFBSRVNURVJBX0ZEQl9FTlRSWV9UWVBFX1JFR19QT1JULFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oLTIzMS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmg6MjMyOmVudW0gcHJlc3RlcmFfZmRiX2V2ZW50X2lkIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmgtMjMzLVxcdFBSRVNURVJBX0ZEQl9FVkVOVF9VTlNQRUMsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmgtMjM3LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaDoyMzg6c3RydWN0IHByZXN0ZXJhX2ZkYl9ldmVudCB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oOjIzOTpcXHRlbnVtIHByZXN0ZXJhX2ZkYl9lbnRyeV90eXBlIHR5cGU7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oLTI0MC1cXHR1bmlvbiB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmgtMjQ5LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaDoyNTA6c3RydWN0IHByZXN0ZXJhX2V2ZW50IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmgtMjUxLVxcdHUxNiBpZDtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmgtMjUyLVxcdHVuaW9uIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmg6MjUzOlxcdFxcdHN0cnVjdCBwcmVzdGVyYV9wb3J0X2V2ZW50IHBvcnRfZXZ0O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaDoyNTQ6XFx0XFx0c3RydWN0IHByZXN0ZXJhX2ZkYl9ldmVudCBmZGJfZXZ0O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaC0yNTUtXFx0fTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaC0yNTctXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oOjI1ODplbnVtIHByZXN0ZXJhX2lmX3R5cGUge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaC0yNTktXFx0LyogdGhlIGludGVyZmFjZSBpcyBvZiBwb3J0IHR5cGUgKGRldixwb3J0KSAqL1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oLTI2OC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmg6MjY5OnN0cnVjdCBwcmVzdGVyYV9pZmFjZSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oOjI3MDpcXHRlbnVtIHByZXN0ZXJhX2lmX3R5cGUgdHlwZTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmgtMjcxLVxcdHN0cnVjdCB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmgtMjgwLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaDoyODE6c3RydWN0IHByZXN0ZXJhX3N3aXRjaGRldjtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmg6MjgyOnN0cnVjdCBwcmVzdGVyYV9zcGFuO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaDoyODM6c3RydWN0IHByZXN0ZXJhX3J4dHg7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oOjI4NDpzdHJ1Y3QgcHJlc3RlcmFfdHJhcF9kYXRhO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaDoyODU6c3RydWN0IHByZXN0ZXJhX2FjbDtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmgtMjg2LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaDoyODc6c3RydWN0IHByZXN0ZXJhX3N3aXRjaCB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oOjI4ODpcXHRzdHJ1Y3QgcHJlc3RlcmFfZGV2aWNlICpkZXY7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oOjI4OTpcXHRzdHJ1Y3QgcHJlc3RlcmFfc3dpdGNoZGV2ICpzd2RldjtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmg6MjkwOlxcdHN0cnVjdCBwcmVzdGVyYV9yeHR4ICpyeHR4O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaDoyOTE6XFx0c3RydWN0IHByZXN0ZXJhX2FjbCAqYWNsO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaDoyOTI6XFx0c3RydWN0IHByZXN0ZXJhX3NwYW4gKnNwYW47XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oLTI5My1cXHRzdHJ1Y3QgbGlzdF9oZWFkIGV2ZW50X2hhbmRsZXJzO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaC0yOTQtXFx0c3RydWN0IG5vdGlmaWVyX2Jsb2NrIG5ldGRldl9uYjtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmg6Mjk1OlxcdHN0cnVjdCBwcmVzdGVyYV90cmFwX2RhdGEgKnRyYXBfZGF0YTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmgtMjk2LVxcdGNoYXIgYmFzZV9tYWNbRVRIX0FMRU5dO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oLTMwMy1cXHRzdHJ1Y3QgZGV2aWNlX25vZGUgKm5wO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaDozMDQ6XFx0c3RydWN0IHByZXN0ZXJhX3JvdXRlciAqcm91dGVyO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaDozMDU6XFx0c3RydWN0IHByZXN0ZXJhX2xhZyAqbGFncztcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmg6MzA2OlxcdHN0cnVjdCBwcmVzdGVyYV9jb3VudGVyICpjb3VudGVyO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaC0zMDctXFx0dTggbGFnX21lbWJlcl9tYXg7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmgtMzExLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaDozMTI6c3RydWN0IHByZXN0ZXJhX3JvdXRlciB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oOjMxMzpcXHRzdHJ1Y3QgcHJlc3RlcmFfc3dpdGNoICpzdztcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmgtMzE0LVxcdHN0cnVjdCBsaXN0X2hlYWQgdnJfbGlzdDtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaC0zMzEtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oOjMzMjpzdHJ1Y3QgcHJlc3RlcmFfcnh0eF9wYXJhbXMge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaC0zMzMtXFx0Ym9vbCB1c2Vfc2RtYTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaC0zMzYtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oOjMzNzojZGVmaW5lIHByZXN0ZXJhX2RldihzdylcXHRcXHQoKHN3KS1cXHUwMDNlZGV2LVxcdTAwM2VkZXYpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oLTMzOC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmg6MzM5OnN0YXRpYyBpbmxpbmUgdm9pZCBwcmVzdGVyYV93cml0ZShjb25zdCBzdHJ1Y3QgcHJlc3RlcmFfc3dpdGNoICpzdyxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmgtMzQwLVxcdFxcdFxcdFxcdCAgdW5zaWduZWQgaW50IHJlZywgdTMyIHZhbClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaC0zNDQtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oOjM0NTpzdGF0aWMgaW5saW5lIHUzMiBwcmVzdGVyYV9yZWFkKGNvbnN0IHN0cnVjdCBwcmVzdGVyYV9zd2l0Y2ggKnN3LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaC0zNDYtXFx0XFx0XFx0XFx0dW5zaWduZWQgaW50IHJlZylcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaC0zNTAtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oOjM1MTppbnQgcHJlc3RlcmFfZGV2aWNlX3JlZ2lzdGVyKHN0cnVjdCBwcmVzdGVyYV9kZXZpY2UgKmRldik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oOjM1Mjp2b2lkIHByZXN0ZXJhX2RldmljZV91bnJlZ2lzdGVyKHN0cnVjdCBwcmVzdGVyYV9kZXZpY2UgKmRldik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oLTM1My1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmg6MzU0OnN0cnVjdCBwcmVzdGVyYV9wb3J0ICpwcmVzdGVyYV9wb3J0X2ZpbmRfYnlfaHdpZChzdHJ1Y3QgcHJlc3RlcmFfc3dpdGNoICpzdyxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmgtMzU1LVxcdFxcdFxcdFxcdFxcdFxcdCB1MzIgZGV2X2lkLCB1MzIgaHdfaWQpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaC0zNTYtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oOjM1NzppbnQgcHJlc3RlcmFfcG9ydF9hdXRvbmVnX3NldChzdHJ1Y3QgcHJlc3RlcmFfcG9ydCAqcG9ydCwgdTY0IGxpbmtfbW9kZXMpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaC0zNTgtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oOjM1OTppbnQgcHJlc3RlcmFfcm91dGVyX2luaXQoc3RydWN0IHByZXN0ZXJhX3N3aXRjaCAqc3cpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaDozNjA6dm9pZCBwcmVzdGVyYV9yb3V0ZXJfZmluaShzdHJ1Y3QgcHJlc3RlcmFfc3dpdGNoICpzdyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oLTM2MS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmg6MzYyOnN0cnVjdCBwcmVzdGVyYV9wb3J0ICpwcmVzdGVyYV9maW5kX3BvcnQoc3RydWN0IHByZXN0ZXJhX3N3aXRjaCAqc3csIHUzMiBpZCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oLTM2My1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmg6MzY0OnN0cnVjdCBwcmVzdGVyYV9zd2l0Y2ggKnByZXN0ZXJhX3N3aXRjaF9nZXQoc3RydWN0IG5ldF9kZXZpY2UgKmRldik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oLTM2NS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmg6MzY2OmludCBwcmVzdGVyYV9wb3J0X2NmZ19tYWNfcmVhZChzdHJ1Y3QgcHJlc3RlcmFfcG9ydCAqcG9ydCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmg6MzY3OlxcdFxcdFxcdCAgICAgICBzdHJ1Y3QgcHJlc3RlcmFfcG9ydF9tYWNfY29uZmlnICpjZmcpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaC0zNjgtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oOjM2OTppbnQgcHJlc3RlcmFfcG9ydF9jZmdfbWFjX3dyaXRlKHN0cnVjdCBwcmVzdGVyYV9wb3J0ICpwb3J0LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaDozNzA6XFx0XFx0XFx0XFx0c3RydWN0IHByZXN0ZXJhX3BvcnRfbWFjX2NvbmZpZyAqY2ZnKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmgtMzcxLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaDozNzI6c3RydWN0IHByZXN0ZXJhX3BvcnQgKnByZXN0ZXJhX3BvcnRfZGV2X2xvd2VyX2ZpbmQoc3RydWN0IG5ldF9kZXZpY2UgKmRldik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oLTM3My1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmg6Mzc0OnZvaWQgcHJlc3RlcmFfcXVldWVfd29yayhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaDozNzU6dm9pZCBwcmVzdGVyYV9xdWV1ZV9kZWxheWVkX3dvcmsoc3RydWN0IGRlbGF5ZWRfd29yayAqd29yaywgdW5zaWduZWQgbG9uZyBkZWxheSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oOjM3Njp2b2lkIHByZXN0ZXJhX3F1ZXVlX2RyYWluKHZvaWQpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaC0zNzctXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oOjM3ODppbnQgcHJlc3RlcmFfcG9ydF9sZWFybmluZ19zZXQoc3RydWN0IHByZXN0ZXJhX3BvcnQgKnBvcnQsIGJvb2wgbGVhcm5fZW5hYmxlKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmg6Mzc5OmludCBwcmVzdGVyYV9wb3J0X3VjX2Zsb29kX3NldChzdHJ1Y3QgcHJlc3RlcmFfcG9ydCAqcG9ydCwgYm9vbCBmbG9vZCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oOjM4MDppbnQgcHJlc3RlcmFfcG9ydF9tY19mbG9vZF9zZXQoc3RydWN0IHByZXN0ZXJhX3BvcnQgKnBvcnQsIGJvb2wgZmxvb2QpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaC0zODEtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oOjM4MjppbnQgcHJlc3RlcmFfcG9ydF9icl9sb2NrZWRfc2V0KHN0cnVjdCBwcmVzdGVyYV9wb3J0ICpwb3J0LCBib29sIGJyX2xvY2tlZCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oLTM4My1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmg6Mzg0OmludCBwcmVzdGVyYV9wb3J0X3B2aWRfc2V0KHN0cnVjdCBwcmVzdGVyYV9wb3J0ICpwb3J0LCB1MTYgdmlkKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmgtMzg1LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaDozODY6Ym9vbCBwcmVzdGVyYV9uZXRkZXZfY2hlY2soY29uc3Qgc3RydWN0IG5ldF9kZXZpY2UgKmRldik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oLTM4Ny1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmg6Mzg4OmludCBwcmVzdGVyYV9pc192YWxpZF9tYWNfYWRkcihzdHJ1Y3QgcHJlc3RlcmFfcG9ydCAqcG9ydCwgY29uc3QgdTggKmFkZHIpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaC0zODktXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oOjM5MDpib29sIHByZXN0ZXJhX3BvcnRfaXNfbGFnX21lbWJlcihjb25zdCBzdHJ1Y3QgcHJlc3RlcmFfcG9ydCAqcG9ydCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oOjM5MTppbnQgcHJlc3RlcmFfbGFnX2lkKHN0cnVjdCBwcmVzdGVyYV9zd2l0Y2ggKnN3LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaC0zOTItXFx0XFx0ICAgIHN0cnVjdCBuZXRfZGV2aWNlICpsYWdfZGV2LCB1MTYgKmxhZ19pZCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oLTM5My1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmg6Mzk0OnN0cnVjdCBwcmVzdGVyYV9sYWcgKnByZXN0ZXJhX2xhZ19ieV9pZChzdHJ1Y3QgcHJlc3RlcmFfc3dpdGNoICpzdywgdTE2IGlkKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmgtMzk1LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaDozOTY6dTE2IHByZXN0ZXJhX3BvcnRfbGFnX2lkKGNvbnN0IHN0cnVjdCBwcmVzdGVyYV9wb3J0ICpwb3J0KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmgtMzk3LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaDozOTg6c3RydWN0IHByZXN0ZXJhX21kYl9lbnRyeSAqXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oOjM5OTpwcmVzdGVyYV9tZGJfZW50cnlfY3JlYXRlKHN0cnVjdCBwcmVzdGVyYV9zd2l0Y2ggKnN3LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaC00MDAtXFx0XFx0XFx0ICBjb25zdCB1bnNpZ25lZCBjaGFyICphZGRyLCB1MTYgdmlkKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmg6NDAxOnZvaWQgcHJlc3RlcmFfbWRiX2VudHJ5X2Rlc3Ryb3koc3RydWN0IHByZXN0ZXJhX21kYl9lbnRyeSAqbWRiX2VudHJ5KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmgtNDAyLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaDo0MDM6c3RydWN0IHByZXN0ZXJhX2Zsb29kX2RvbWFpbiAqXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oOjQwNDpwcmVzdGVyYV9mbG9vZF9kb21haW5fY3JlYXRlKHN0cnVjdCBwcmVzdGVyYV9zd2l0Y2ggKnN3KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmg6NDA1OnZvaWQgcHJlc3RlcmFfZmxvb2RfZG9tYWluX2Rlc3Ryb3koc3RydWN0IHByZXN0ZXJhX2Zsb29kX2RvbWFpbiAqZmxvb2RfZG9tYWluKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhLmgtNDA2LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaD00MDc9aW50XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oOjQwODpwcmVzdGVyYV9mbG9vZF9kb21haW5fcG9ydF9jcmVhdGUoc3RydWN0IHByZXN0ZXJhX2Zsb29kX2RvbWFpbiAqZmxvb2RfZG9tYWluLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaC00MDktXFx0XFx0XFx0XFx0ICBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oPTQxMT12b2lkXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oOjQxMjpwcmVzdGVyYV9mbG9vZF9kb21haW5fcG9ydF9kZXN0cm95KHN0cnVjdCBwcmVzdGVyYV9mbG9vZF9kb21haW5fcG9ydCAqcG9ydCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oOjQxMzpzdHJ1Y3QgcHJlc3RlcmFfZmxvb2RfZG9tYWluX3BvcnQgKlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmEuaDo0MTQ6cHJlc3RlcmFfZmxvb2RfZG9tYWluX3BvcnRfZmluZChzdHJ1Y3QgcHJlc3RlcmFfZmxvb2RfZG9tYWluICpmbG9vZF9kb21haW4sXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYS5oLTQxNS1cXHRcXHRcXHRcXHRzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCB1MTYgdmlkKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtNS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jOjY6I2luY2x1ZGUgXFxcInByZXN0ZXJhX2FjbC5oXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmM6NzojaW5jbHVkZSBcXFwicHJlc3RlcmFfZmxvdy5oXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmM6ODojaW5jbHVkZSBcXFwicHJlc3RlcmFfaHcuaFxcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jOjk6I2luY2x1ZGUgXFxcInByZXN0ZXJhLmhcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYy0xMC1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtMTMtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYzoxNDpzdHJ1Y3QgcHJlc3RlcmFfYWNsIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jOjE1OlxcdHN0cnVjdCBwcmVzdGVyYV9zd2l0Y2ggKnN3O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtMTYtXFx0c3RydWN0IGxpc3RfaGVhZCB2dGNhbV9saXN0O1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYy0yMi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jOjIzOnN0cnVjdCBwcmVzdGVyYV9hY2xfcnVsZXNldF9odF9rZXkge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmM6MjQ6XFx0c3RydWN0IHByZXN0ZXJhX2Zsb3dfYmxvY2sgKmJsb2NrO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtMjUtXFx0dTMyIGNoYWluX2luZGV4O1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYy0yNy1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jOjI4OnN0cnVjdCBwcmVzdGVyYV9hY2xfcnVsZV9lbnRyeSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYy0yOS1cXHRzdHJ1Y3Qgcmhhc2hfaGVhZCBodF9ub2RlO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmM6MzA6XFx0c3RydWN0IHByZXN0ZXJhX2FjbF9ydWxlX2VudHJ5X2tleSBrZXk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYy0zMS1cXHR1MzIgaHdfaWQ7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jLTM4LVxcdFxcdFxcdHU4IHZhbGlkOjE7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYzozOTpcXHRcXHRcXHRzdHJ1Y3QgcHJlc3RlcmFfYWNsX2FjdGlvbl9wb2xpY2UgaTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jLTQwLVxcdFxcdH0gcG9saWNlO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtNDEtXFx0XFx0c3RydWN0IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jOjQyOlxcdFxcdFxcdHN0cnVjdCBwcmVzdGVyYV9hY2xfYWN0aW9uX2p1bXAgaTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jLTQzLVxcdFxcdFxcdHU4IHZhbGlkOjE7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jLTQ2LVxcdFxcdFxcdHUzMiBpZDtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jOjQ3OlxcdFxcdFxcdHN0cnVjdCBwcmVzdGVyYV9jb3VudGVyX2Jsb2NrICpibG9jaztcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jLTQ4LVxcdFxcdH0gY291bnRlcjtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtNTEtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYzo1MjpzdHJ1Y3QgcHJlc3RlcmFfYWNsX3J1bGVzZXQge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtNTMtXFx0c3RydWN0IHJoYXNoX2hlYWQgaHRfbm9kZTsgLyogTWVtYmVyIG9mIGFjbCBIVCAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmM6NTQ6XFx0c3RydWN0IHByZXN0ZXJhX2FjbF9ydWxlc2V0X2h0X2tleSBodF9rZXk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYy01NS1cXHRzdHJ1Y3Qgcmhhc2h0YWJsZSBydWxlX2h0O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmM6NTY6XFx0c3RydWN0IHByZXN0ZXJhX2FjbCAqYWNsO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtNTctXFx0c3RydWN0IHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtNzAtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYzo3MTpzdHJ1Y3QgcHJlc3RlcmFfYWNsX3Z0Y2FtIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jLTcyLVxcdHN0cnVjdCBsaXN0X2hlYWQgbGlzdDtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtODAtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYzo4MTpzdGF0aWMgY29uc3Qgc3RydWN0IHJoYXNodGFibGVfcGFyYW1zIHByZXN0ZXJhX2FjbF9ydWxlc2V0X2h0X3BhcmFtcyA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jOjgyOlxcdC5rZXlfbGVuID0gc2l6ZW9mKHN0cnVjdCBwcmVzdGVyYV9hY2xfcnVsZXNldF9odF9rZXkpLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmM6ODM6XFx0LmtleV9vZmZzZXQgPSBvZmZzZXRvZihzdHJ1Y3QgcHJlc3RlcmFfYWNsX3J1bGVzZXQsIGh0X2tleSksXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYzo4NDpcXHQuaGVhZF9vZmZzZXQgPSBvZmZzZXRvZihzdHJ1Y3QgcHJlc3RlcmFfYWNsX3J1bGVzZXQsIGh0X25vZGUpLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtODUtXFx0LmF1dG9tYXRpY19zaHJpbmtpbmcgPSB0cnVlLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYy04Ny1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jOjg4OnN0YXRpYyBjb25zdCBzdHJ1Y3Qgcmhhc2h0YWJsZV9wYXJhbXMgcHJlc3RlcmFfYWNsX3J1bGVfaHRfcGFyYW1zID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtODktXFx0LmtleV9sZW4gPSBzaXplb2YodW5zaWduZWQgbG9uZyksXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYzo5MDpcXHQua2V5X29mZnNldCA9IG9mZnNldG9mKHN0cnVjdCBwcmVzdGVyYV9hY2xfcnVsZSwgY29va2llKSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jOjkxOlxcdC5oZWFkX29mZnNldCA9IG9mZnNldG9mKHN0cnVjdCBwcmVzdGVyYV9hY2xfcnVsZSwgaHRfbm9kZSksXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYy05Mi1cXHQuYXV0b21hdGljX3Nocmlua2luZyA9IHRydWUsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jLTk0LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmM6OTU6c3RhdGljIGNvbnN0IHN0cnVjdCByaGFzaHRhYmxlX3BhcmFtcyBfX3ByZXN0ZXJhX2FjbF9ydWxlX2VudHJ5X2h0X3BhcmFtcyA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jOjk2OlxcdC5rZXlfb2Zmc2V0ICA9IG9mZnNldG9mKHN0cnVjdCBwcmVzdGVyYV9hY2xfcnVsZV9lbnRyeSwga2V5KSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jOjk3OlxcdC5oZWFkX29mZnNldCA9IG9mZnNldG9mKHN0cnVjdCBwcmVzdGVyYV9hY2xfcnVsZV9lbnRyeSwgaHRfbm9kZSksXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYzo5ODpcXHQua2V5X2xlbiAgICAgPSBzaXplb2Yoc3RydWN0IHByZXN0ZXJhX2FjbF9ydWxlX2VudHJ5X2tleSksXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYy05OS1cXHQuYXV0b21hdGljX3Nocmlua2luZyA9IHRydWUsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jLTEwMS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jOjEwMjppbnQgcHJlc3RlcmFfYWNsX2NoYWluX3RvX2NsaWVudCh1MzIgY2hhaW5faW5kZXgsIGJvb2wgaW5ncmVzcywgdTMyICpjbGllbnQpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYy0xMDMte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYy0xMTAtXFx0aWYgKCFpbmdyZXNzKSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYzoxMTE6XFx0XFx0LyogcHJlc3RlcmEgc3VwcG9ydHMgb25seSBvbmUgY2hhaW4gb24gZWdyZXNzICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYy0xMTItXFx0XFx0aWYgKGNoYWluX2luZGV4IFxcdTAwM2UgMClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtMTI1LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmM6MTI2OnN0YXRpYyBib29sIHByZXN0ZXJhX2FjbF9jaGFpbl9pc19zdXBwb3J0ZWQodTMyIGNoYWluX2luZGV4LCBib29sIGluZ3Jlc3MpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYy0xMjcte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtMTI4LVxcdGlmICghaW5ncmVzcylcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jOjEyOTpcXHRcXHQvKiBwcmVzdGVyYSBzdXBwb3J0cyBvbmx5IG9uZSBjaGFpbiBvbiBlZ3Jlc3MgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jLTEzMC1cXHRcXHRyZXR1cm4gY2hhaW5faW5kZXggPT0gMDtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtMTM0LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmM6MTM1OnN0YXRpYyBzdHJ1Y3QgcHJlc3RlcmFfYWNsX3J1bGVzZXQgKlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmM6MTM2OnByZXN0ZXJhX2FjbF9ydWxlc2V0X2NyZWF0ZShzdHJ1Y3QgcHJlc3RlcmFfYWNsICphY2wsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYzoxMzc6XFx0XFx0XFx0ICAgIHN0cnVjdCBwcmVzdGVyYV9mbG93X2Jsb2NrICpibG9jayxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jLTEzOC1cXHRcXHRcXHQgICAgdTMyIGNoYWluX2luZGV4KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtMTM5LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jOjE0MDpcXHRzdHJ1Y3QgcHJlc3RlcmFfYWNsX3J1bGVzZXQgKnJ1bGVzZXQ7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYy0xNDEtXFx0dTMyIHVpZCA9IDA7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jLTE0My1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jOjE0NDpcXHRpZiAoIXByZXN0ZXJhX2FjbF9jaGFpbl9pc19zdXBwb3J0ZWQoY2hhaW5faW5kZXgsIGJsb2NrLVxcdTAwM2VpbmdyZXNzKSlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jLTE0NS1cXHRcXHRyZXR1cm4gRVJSX1BUUigtRUlOVkFMKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtMTU2LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmM6MTU3OlxcdGVyciA9IHJoYXNodGFibGVfaW5pdChcXHUwMDI2cnVsZXNldC1cXHUwMDNlcnVsZV9odCwgXFx1MDAyNnByZXN0ZXJhX2FjbF9ydWxlX2h0X3BhcmFtcyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYy0xNTgtXFx0aWYgKGVycilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtMTcyLVxcdGVyciA9IHJoYXNodGFibGVfaW5zZXJ0X2Zhc3QoXFx1MDAyNmFjbC1cXHUwMDNlcnVsZXNldF9odCwgXFx1MDAyNnJ1bGVzZXQtXFx1MDAzZWh0X25vZGUsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYzoxNzM6XFx0XFx0XFx0XFx0ICAgICBwcmVzdGVyYV9hY2xfcnVsZXNldF9odF9wYXJhbXMpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtMTc0LVxcdGlmIChlcnIpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jLTE4Ny1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jOjE4ODppbnQgcHJlc3RlcmFfYWNsX3J1bGVzZXRfa2V5bWFza19zZXQoc3RydWN0IHByZXN0ZXJhX2FjbF9ydWxlc2V0ICpydWxlc2V0LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtMTg5LVxcdFxcdFxcdFxcdCAgICAgdm9pZCAqa2V5bWFzaylcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtMTk3LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmM6MTk4OmludCBwcmVzdGVyYV9hY2xfcnVsZXNldF9vZmZsb2FkKHN0cnVjdCBwcmVzdGVyYV9hY2xfcnVsZXNldCAqcnVsZXNldClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jLTE5OS17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYzoyMDA6XFx0c3RydWN0IHByZXN0ZXJhX2FjbF9pZmFjZSBpZmFjZTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jLTIwMS1cXHR1MzIgdnRjYW1faWQ7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jLTIxMC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jOjIxMTpcXHRlcnIgPSBwcmVzdGVyYV9hY2xfdnRjYW1faWRfZ2V0KHJ1bGVzZXQtXFx1MDAzZWFjbCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jLTIxMi1cXHRcXHRcXHRcXHRcXHRydWxlc2V0LVxcdTAwM2VodF9rZXkuY2hhaW5faW5kZXgsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jLTIyMy1cXHRcXHRpZmFjZS50eXBlID0gUFJFU1RFUkFfQUNMX0lGQUNFX1RZUEVfSU5ERVg7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYzoyMjQ6XFx0XFx0ZXJyID0gcHJlc3RlcmFfaHdfdnRjYW1faWZhY2VfYmluZChydWxlc2V0LVxcdTAwM2VhY2wtXFx1MDAzZXN3LCBcXHUwMDI2aWZhY2UsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYy0yMjUtXFx0XFx0XFx0XFx0XFx0XFx0ICAgdnRjYW1faWQsIHJ1bGVzZXQtXFx1MDAzZXBjbF9pZCk7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jLTIzNC1lcnJfcnVsZXNldF9iaW5kOlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmM6MjM1OlxcdHByZXN0ZXJhX2FjbF92dGNhbV9pZF9wdXQocnVsZXNldC1cXHUwMDNlYWNsLCBydWxlc2V0LVxcdTAwM2V2dGNhbV9pZCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYy0yMzYtZXJyX3Z0Y2FtX2NyZWF0ZTpcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtMjM5LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmM6MjQwOnN0YXRpYyB2b2lkIHByZXN0ZXJhX2FjbF9ydWxlc2V0X2Rlc3Ryb3koc3RydWN0IHByZXN0ZXJhX2FjbF9ydWxlc2V0ICpydWxlc2V0KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtMjQxLXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jOjI0MjpcXHRzdHJ1Y3QgcHJlc3RlcmFfYWNsICphY2wgPSBydWxlc2V0LVxcdTAwM2VhY2w7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYy0yNDMtXFx0dTggdWlkID0gcnVsZXNldC1cXHUwMDNlcGNsX2lkIFxcdTAwMjYgUFJFU1RFUkFfQUNMX0tFWU1BU0tfUENMX0lEX1VTRVI7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jLTI0Ni1cXHRyaGFzaHRhYmxlX3JlbW92ZV9mYXN0KFxcdTAwMjZhY2wtXFx1MDAzZXJ1bGVzZXRfaHQsIFxcdTAwMjZydWxlc2V0LVxcdTAwM2VodF9ub2RlLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmM6MjQ3OlxcdFxcdFxcdCAgICAgICBwcmVzdGVyYV9hY2xfcnVsZXNldF9odF9wYXJhbXMpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtMjQ4LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYy0yNTAtXFx0XFx0aWYgKHJ1bGVzZXQtXFx1MDAzZWh0X2tleS5jaGFpbl9pbmRleCkge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmM6MjUxOlxcdFxcdFxcdHN0cnVjdCBwcmVzdGVyYV9hY2xfaWZhY2UgaWZhY2UgPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYy0yNTItXFx0XFx0XFx0XFx0LnR5cGUgPSBQUkVTVEVSQV9BQ0xfSUZBQ0VfVFlQRV9JTkRFWCxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtMjU0LVxcdFxcdFxcdH07XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYzoyNTU6XFx0XFx0XFx0ZXJyID0gcHJlc3RlcmFfaHdfdnRjYW1faWZhY2VfdW5iaW5kKGFjbC1cXHUwMDNlc3csIFxcdTAwMjZpZmFjZSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jLTI1Ni1cXHRcXHRcXHRcXHRcXHRcXHRcXHQgICAgIHJ1bGVzZXQtXFx1MDAzZXZ0Y2FtX2lkKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtMjU4LVxcdFxcdH1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jOjI1OTpcXHRcXHRXQVJOX09OKHByZXN0ZXJhX2FjbF92dGNhbV9pZF9wdXQoYWNsLCBydWxlc2V0LVxcdTAwM2V2dGNhbV9pZCkpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtMjYwLVxcdH1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtMjY3LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmM6MjY4OnN0YXRpYyBzdHJ1Y3QgcHJlc3RlcmFfYWNsX3J1bGVzZXQgKlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmM6MjY5Ol9fcHJlc3RlcmFfYWNsX3J1bGVzZXRfbG9va3VwKHN0cnVjdCBwcmVzdGVyYV9hY2wgKmFjbCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jOjI3MDpcXHRcXHRcXHQgICAgICBzdHJ1Y3QgcHJlc3RlcmFfZmxvd19ibG9jayAqYmxvY2ssXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYy0yNzEtXFx0XFx0XFx0ICAgICAgdTMyIGNoYWluX2luZGV4KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtMjcyLXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jOjI3MzpcXHRzdHJ1Y3QgcHJlc3RlcmFfYWNsX3J1bGVzZXRfaHRfa2V5IGh0X2tleTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jLTI3NC1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtMjc4LVxcdHJldHVybiByaGFzaHRhYmxlX2xvb2t1cF9mYXN0KFxcdTAwMjZhY2wtXFx1MDAzZXJ1bGVzZXRfaHQsIFxcdTAwMjZodF9rZXksXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYzoyNzk6XFx0XFx0XFx0XFx0ICAgICAgcHJlc3RlcmFfYWNsX3J1bGVzZXRfaHRfcGFyYW1zKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jLTI4MC19XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYy0yODEtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYzoyODI6c3RydWN0IHByZXN0ZXJhX2FjbF9ydWxlc2V0ICpcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jOjI4MzpwcmVzdGVyYV9hY2xfcnVsZXNldF9sb29rdXAoc3RydWN0IHByZXN0ZXJhX2FjbCAqYWNsLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmM6Mjg0OlxcdFxcdFxcdCAgICBzdHJ1Y3QgcHJlc3RlcmFfZmxvd19ibG9jayAqYmxvY2ssXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYy0yODUtXFx0XFx0XFx0ICAgIHUzMiBjaGFpbl9pbmRleClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jLTI4Ni17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYzoyODc6XFx0c3RydWN0IHByZXN0ZXJhX2FjbF9ydWxlc2V0ICpydWxlc2V0O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtMjg4LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmM6Mjg5OlxcdHJ1bGVzZXQgPSBfX3ByZXN0ZXJhX2FjbF9ydWxlc2V0X2xvb2t1cChhY2wsIGJsb2NrLCBjaGFpbl9pbmRleCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYy0yOTAtXFx0aWYgKCFydWxlc2V0KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYy0yOTYtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYzoyOTc6c3RydWN0IHByZXN0ZXJhX2FjbF9ydWxlc2V0ICpcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jOjI5ODpwcmVzdGVyYV9hY2xfcnVsZXNldF9nZXQoc3RydWN0IHByZXN0ZXJhX2FjbCAqYWNsLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmM6Mjk5OlxcdFxcdFxcdCBzdHJ1Y3QgcHJlc3RlcmFfZmxvd19ibG9jayAqYmxvY2ssXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYy0zMDAtXFx0XFx0XFx0IHUzMiBjaGFpbl9pbmRleClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jLTMwMS17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYzozMDI6XFx0c3RydWN0IHByZXN0ZXJhX2FjbF9ydWxlc2V0ICpydWxlc2V0O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtMzAzLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmM6MzA0OlxcdHJ1bGVzZXQgPSBfX3ByZXN0ZXJhX2FjbF9ydWxlc2V0X2xvb2t1cChhY2wsIGJsb2NrLCBjaGFpbl9pbmRleCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYy0zMDUtXFx0aWYgKHJ1bGVzZXQpIHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtMzA5LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmM6MzEwOlxcdHJldHVybiBwcmVzdGVyYV9hY2xfcnVsZXNldF9jcmVhdGUoYWNsLCBibG9jaywgY2hhaW5faW5kZXgpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtMzExLX1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jLTMxMi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jOjMxMzp2b2lkIHByZXN0ZXJhX2FjbF9ydWxlc2V0X3B1dChzdHJ1Y3QgcHJlc3RlcmFfYWNsX3J1bGVzZXQgKnJ1bGVzZXQpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYy0zMTQte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYy0zMTctXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYzozMTg6XFx0cHJlc3RlcmFfYWNsX3J1bGVzZXRfZGVzdHJveShydWxlc2V0KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jLTMxOS19XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYy0zMjAtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYzozMjE6aW50IHByZXN0ZXJhX2FjbF9ydWxlc2V0X2JpbmQoc3RydWN0IHByZXN0ZXJhX2FjbF9ydWxlc2V0ICpydWxlc2V0LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmM6MzIyOlxcdFxcdFxcdCAgICAgIHN0cnVjdCBwcmVzdGVyYV9wb3J0ICpwb3J0KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtMzIzLXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jOjMyNDpcXHRzdHJ1Y3QgcHJlc3RlcmFfYWNsX2lmYWNlIGlmYWNlID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtMzI1LVxcdFxcdC50eXBlID0gUFJFU1RFUkFfQUNMX0lGQUNFX1RZUEVfUE9SVCxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtMzI4LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmM6MzI5OlxcdHJldHVybiBwcmVzdGVyYV9od192dGNhbV9pZmFjZV9iaW5kKHBvcnQtXFx1MDAzZXN3LCBcXHUwMDI2aWZhY2UsIHJ1bGVzZXQtXFx1MDAzZXZ0Y2FtX2lkLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtMzMwLVxcdFxcdFxcdFxcdFxcdCAgICBydWxlc2V0LVxcdTAwM2VwY2xfaWQpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYy0zMzItXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYzozMzM6aW50IHByZXN0ZXJhX2FjbF9ydWxlc2V0X3VuYmluZChzdHJ1Y3QgcHJlc3RlcmFfYWNsX3J1bGVzZXQgKnJ1bGVzZXQsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYzozMzQ6XFx0XFx0XFx0XFx0c3RydWN0IHByZXN0ZXJhX3BvcnQgKnBvcnQpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYy0zMzUte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmM6MzM2OlxcdHN0cnVjdCBwcmVzdGVyYV9hY2xfaWZhY2UgaWZhY2UgPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYy0zMzctXFx0XFx0LnR5cGUgPSBQUkVTVEVSQV9BQ0xfSUZBQ0VfVFlQRV9QT1JULFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYy0zNDAtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYzozNDE6XFx0cmV0dXJuIHByZXN0ZXJhX2h3X3Z0Y2FtX2lmYWNlX3VuYmluZChwb3J0LVxcdTAwM2VzdywgXFx1MDAyNmlmYWNlLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtMzQyLVxcdFxcdFxcdFxcdFxcdCAgICAgIHJ1bGVzZXQtXFx1MDAzZXZ0Y2FtX2lkKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtMzQ0LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmM6MzQ1OnN0YXRpYyBpbnQgcHJlc3RlcmFfYWNsX3J1bGVzZXRfYmxvY2tfYmluZChzdHJ1Y3QgcHJlc3RlcmFfYWNsX3J1bGVzZXQgKnJ1bGVzZXQsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYzozNDY6XFx0XFx0XFx0XFx0XFx0ICAgc3RydWN0IHByZXN0ZXJhX2Zsb3dfYmxvY2sgKmJsb2NrKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtMzQ3LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jOjM0ODpcXHRzdHJ1Y3QgcHJlc3RlcmFfZmxvd19ibG9ja19iaW5kaW5nICpiaW5kaW5nO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmMtMzQ5LVxcdGludCBlcnI7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jLTM1Mi1cXHRsaXN0X2Zvcl9lYWNoX2VudHJ5KGJpbmRpbmcsIFxcdTAwMjZibG9jay1cXHUwMDNlYmluZGluZ19saXN0LCBsaXN0KSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYzozNTM6XFx0XFx0ZXJyID0gcHJlc3RlcmFfYWNsX3J1bGVzZXRfYmluZChydWxlc2V0LCBiaW5kaW5nLVxcdTAwM2Vwb3J0KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jLTM1NC1cXHRcXHRpZiAoZXJyKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9hY2wuYy0zNjEtXFx0XFx0XFx0XFx0XFx0ICAgICBsaXN0KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfYWNsLmM6MzYyOlxcdFxcdGVyciA9IHByZXN0ZXJhX2FjbF9ydWxlc2V0X3VuYmluZChydWxlc2V0LCBiaW5kaW5nLVxcdTAwM2Vwb3J0KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2FjbC5jLTM2My1cXHRibG9jay1cXHUwMDNlcnVsZXNldF96ZXJvID0gTlVMTDtcXG5cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjBUMTA6MTg6NDIuNDE4MDc5NjE0WiIsIlNlcSI6NSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDU3MzQ0MzA3MiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipJbnZlc3RpZ2F0aW5nIHRoZSBUZXN0YWJpbGl0eSBvZiB0aGUgYHByZXN0ZXJhYCBEcml2ZXIqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIGBwcmVzdGVyYWAgZHJpdmVyLCBhbmQgaXQncyBhIFBDSSBkcml2ZXIg4oCTIHRoYXQncyB3aGF0IHRoZSBgQ09ORklHX1BSRVNURVJBX1BDSWAgc2V0dGluZyBpbmRpY2F0ZXMuIE15IGluaXRpYWwgdGhvdWdodCBpcywgY2FuIEkgZXZlbiAqcmVhc29uYWJseSogdGVzdCB0aGlzIHRoaW5nIGluIFFFTVU/IFR5cGljYWxseSwgd2hlbiB3ZSdyZSBkZWFsaW5nIHdpdGggUENJIGRyaXZlcnMgZm9yIHNwZWNpYWxpemVkIEFTSUNzLCB0aGUgYW5zd2VyIGlzIGEgcmVzb3VuZGluZyBuby4gVGhpbmsgTWVsbGFub3gsIE1hcnZlbGwsIEJyb2FkY29tIOKAkyB0aG9zZSBjaGlwcyBhcmVuJ3QgZW11bGF0ZWQgaW4gYSB0eXBpY2FsIFFFTVUgZW52aXJvbm1lbnQsIG1ha2luZyBkaXJlY3QgZHJpdmVyIHRlc3RpbmcgYSBub24tc3RhcnRlci4gQnV0LCBob2xkIG9uIGEgc2Vjb25kLi4uIHRoZSBgcHJlc3RlcmFgIGRyaXZlciAqZG9lcyogaGF2ZSBhIFBDSSBpbnRlcmZhY2U7IGl0J3MgZ290IHRoYXQgYHByZXN0ZXJhX3BjaS5jYCBmaWxlLiBBbmQgaXQgdGFsa3MgdG8gZmlybXdhcmUsIHdoaWNoIGlzIGtleS4gVGhlIGZpcm13YXJlIGludGVyYWN0aW9uIGlzIHBvdGVudGlhbGx5IHRoZSBpbXBvcnRhbnQgYXNwZWN0IGZvciB0ZXN0YWJpbGl0eS5cblxuTm93LCB0aGUgaW1wb3J0YW50IHF1ZXN0aW9uIGlzOiBkb2VzIHRoZSBkcml2ZXIgaGF2ZSBoYXJkY29kZWQgZGVwZW5kZW5jaWVzIG9uIHNwZWNpZmljIFBDSSBJRHM/IFRoYXTigJlzIG15IG5leHQgc3RlcC4gSSdsbCBuZWVkIHRvIGRpZyBpbnRvIGBwcmVzdGVyYV9wY2kuY2AgYW5kIHNlZSBpZiBpdCdzIHRpZ2h0bHkgY291cGxlZCB0byBjZXJ0YWluIGhhcmR3YXJlIGNvbmZpZ3VyYXRpb25zLiBJZiBpdCdzICp0b28qIHNwZWNpZmljLCB0aGVuIFFFTVUgdGVzdGluZyB3aWxsIGJlIHRyaWNreSwgYW5kIEknbGwgbmVlZCB0byBleHBsb3JlIG90aGVyIG9wdGlvbnMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjE3Mjc3LCJPdXRwdXRUb2tlbnMiOjQyLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTE3LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTIwVDEwOjE4OjQ2Ljk5MTUyNDU4NloiLCJTZXEiOjYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1NjI1MDQzOSwiRXJyb3IiOiJubyBtYXRjaGVzIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwicHJlc3RlcmFfcGNpX2lkX3RhYmxlXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcImVycm9yXCI6IFwibm8gbWF0Y2hlc1wiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNi0yMFQxMDoxODo0Ny4wNDc3ODY0NzVaIiwiU2VxIjo3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo2MzI2MzM2NjI0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgYSBzdW1tYXJ5IG9mIG15IHRob3VnaHQgcHJvY2VzcywgYXMgcmVxdWVzdGVkOlxuXG4qKkRpdmluZyBpbnRvIGBwcmVzdGVyYV9wY2kuY2AgZm9yIFBDSSBEZXZpY2UgSUQgSW5mbyoqXG5cbk9rYXksIHNvIEkgbmVlZCB0byBmaW5kIHRoZSByZWxldmFudCBQQ0kgZGV2aWNlIGlkZW50aWZpY2F0aW9uIGluZm9ybWF0aW9uLiBNeSBmaXJzdCBpbnN0aW5jdCBpcyB0byB6ZXJvIGluIG9uIHRoZSBgcHJlc3RlcmFfcGNpLmNgIGZpbGUuIEdpdmVuIHRoZSBjb250ZXh0LCBpdCdzIGEgdmVyeSBsb2dpY2FsIHBsYWNlIHRvIHN0YXJ0LiBUaGlzIGZpbGUgbGlrZWx5IGhhbmRsZXMgdGhlIFByZXN0ZXJhJ3MgaW50ZXJhY3Rpb24gd2l0aCB0aGUgUENJIGJ1cywgc28gdGhlIGBwY2lfZGV2aWNlX2lkYCBzdHJ1Y3R1cmUgb3IgbWFjcm8gc2hvdWxkIGJlIGRlZmluZWQgb3IgdXNlZCB3aXRoaW4gaXQgdG8gaWRlbnRpZnkgY29tcGF0aWJsZSBoYXJkd2FyZS4gSSdsbCBuZWVkIHRvIGNvbmZpcm0gdGhhdCB0aGlzIGlzIHRoZSBiZXN0IHBsYWNlIHRvIGZpbmQgdGhlIGluZm8uIEknbSBtZW50YWxseSBwcmVwYXJpbmcgdG8gbmF2aWdhdGUgdGhlIGNvZGUgd2l0aGluIHRoYXQgZmlsZSBhbmQgZXhhbWluZSBhbnkgcmVmZXJlbmNlcyB0byBgcGNpX2RldmljZV9pZGAgYXMgdGhlIHByaW1hcnkga2V5LiBJZiB0aGF0J3MgdGhlIGNhc2UsIEkgc2hvdWxkIGJlIGFibGUgdG8gcXVpY2tseSB6ZXJvIGluIG9uIHZlbmRvciBhbmQgZGV2aWNlIElEcywgYW5kIHJlbGF0ZWQgaW5mb3JtYXRpb24gc3BlY2lmaWMgdG8gdGhlIFByZXN0ZXJhIGhhcmR3YXJlLiBMZXQncyBnZXQgdG8gaXQuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjE3NzI1LCJPdXRwdXRUb2tlbnMiOjM5LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjIsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjBUMTA6MTg6NTMuMzc0MTI1MjM4WiIsIlNlcSI6OCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjU0NzYxMTk5LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInBjaV9kZXZpY2VfaWRcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9wY2kuYz04MzQ9c3RhdGljIGludCBwcmVzdGVyYV9wY2lfcHJvYmUoc3RydWN0IHBjaV9kZXYgKnBkZXYsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9wY2kuYzo4MzU6XFx0XFx0XFx0ICAgICAgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgKmlkKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfcGNpLmMtODM2LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfcGNpLmM9OTQ2PXN0YXRpYyB2b2lkIHByZXN0ZXJhX3BjaV9yZW1vdmUoc3RydWN0IHBjaV9kZXYgKnBkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX3BjaS5jLTk1Ni1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX3BjaS5jOjk1NzpzdGF0aWMgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgcHJlc3RlcmFfcGNpX2RldmljZXNbXSA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX3BjaS5jLTk1OC1cXHR7IFBDSV9ERVZJQ0UoUENJX1ZFTkRPUl9JRF9NQVJWRUxMLCBQUkVTVEVSQV9ERVZfSURfQUMzWF85OERYXzU1KSB9LFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNi0yMFQxMDoxODo1My40Mjg4OTEwMDhaIiwiU2VxIjo5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoxNzk5NzgwODIxMywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIFByZXN0ZXJhIERyaXZlciBhbmQgU3l6Ym90J3MgUG90ZW50aWFsKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCBhbmQgaW1tZWRpYXRlbHksIG15IGJyYWluIHplcm9lcyBpbiBvbiB0aGUgZHJpdmVyJ3MgcmVsaWFuY2Ugb24gc3BlY2lmaWMgUENJIElEcy4gTXkgZmlyc3QgdGhvdWdodCBpcyB3aGV0aGVyIHRoZXJlJ3MgYSBRRU1VIGVtdWxhdG9yIG91dCB0aGVyZSBmb3IgUHJlc3RlcmEsIHNwZWNpZmljYWxseT8gTm9wZSwgdGhhdCBzZWVtcyB0byBiZSBhIGRlYWQgZW5kLiBCdXQgdGhlbiwgSSByZW1lbWJlciBzZWVpbmcgc3l6Ym90IHVzaW5nIHZhcmlvdXMgZW11bGF0aW9uIGZ1bmN0aW9ucyBsaWtlIGBzeXpfdXNiX2Nvbm5lY3RgLCBgc3l6XzgwMjExX2luamVjdGAsIGFuZCBgc3l6X2dlbmV0bGlua19nZXRfZmFtaWx5YC5cblxuUmlnaHQsIHNvIHN5emJvdCAqY2FuKiBwb3RlbnRpYWxseSB0ZXN0IFBDSSBkcml2ZXJzLCBidXQgb25seSBpZiB0aGVyZSdzIGFuIGVtdWxhdG9yIGF2YWlsYWJsZS4gQW5kIHNpbmNlIFByZXN0ZXJhIGRvZXNuJ3QgaGF2ZSBvbmUsIHRoYXQncyBhbm90aGVyIGh1cmRsZS4gVGhpcyBjb3VsZCBtZWFuIHRoYXQgc3l6Ym90J3MgcmVhY2ggbWlnaHQgYmUgbGltaXRlZCBiZWNhdXNlIGl0IGNhbid0IGludGVyYWN0IHdpdGggdGhlIGRyaXZlciB1bmxlc3MgdGhlIGFjdHVhbCBoYXJkd2FyZSBpcyBwcmVzZW50LlxuXG5Ob3csIGEgY3JpdGljYWwgcG9pbnQ6IHRoZSBwYXRjaCBzcGVjaWZpY2FsbHkgdG91Y2hlcyBgcHJlc3RlcmFfZHNhLmNgLiBEU0EuLi50aGF0J3MgRGlzdHJpYnV0ZWQgU3dpdGNoIEFyY2hpdGVjdHVyZS4gT2theSwgdGhhdCBjb250ZXh0IGlzIHJlYWxseSB2YWx1YWJsZS4gTm93IEkgbmVlZCB0byBzZWUgd2hlcmUgYHByZXN0ZXJhX2RzYV9wYXJzZWAgYW5kIGBwcmVzdGVyYV9kc2FfYnVpbGRgIGFyZSBiZWluZyB1c2VkLiBUaGlzIGNvdWxkIGJlIHdoZXJlIHRoZSBydWJiZXIgaGl0cyB0aGUgcm9hZC4gTGV0J3Mgc2VlIHdoYXQgdGhhdCByZXZlYWxzLlxuXG5cbiIsIklucHV0VG9rZW5zIjoxODI5OCwiT3V0cHV0VG9rZW5zIjo0MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE2NSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNi0yMFQxMDoxOToxMS40MjY3MDIxWiIsIlNlcSI6MTAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1MzMxNjIwOSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJwcmVzdGVyYV9kc2FfcGFyc2VcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kc2EuYy0zNC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RzYS5jOjM1OmludCBwcmVzdGVyYV9kc2FfcGFyc2Uoc3RydWN0IHByZXN0ZXJhX2RzYSAqZHNhLCBjb25zdCB1OCAqZHNhX2J1ZilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RzYS5jLTM2LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZHNhLmg9MjY9c3RydWN0IHByZXN0ZXJhX2RzYSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RzYS5oLTMyLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZHNhLmg6MzM6aW50IHByZXN0ZXJhX2RzYV9wYXJzZShzdHJ1Y3QgcHJlc3RlcmFfZHNhICpkc2EsIGNvbnN0IHU4ICpkc2FfYnVmKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RzYS5oLTM0LWludCBwcmVzdGVyYV9kc2FfYnVpbGQoY29uc3Qgc3RydWN0IHByZXN0ZXJhX2RzYSAqZHNhLCB1OCAqZHNhX2J1Zik7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX3J4dHguYz0yMTI9c3RhdGljIGludCBwcmVzdGVyYV9yeHR4X3Byb2Nlc3Nfc2tiKHN0cnVjdCBwcmVzdGVyYV9zZG1hICpzZG1hLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9yeHR4LmMtMjIzLVxcdC8qIGV0aGVydHlwZSBmaWVsZCBpcyBwYXJ0IG9mIHRoZSBkc2EgaGVhZGVyICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9yeHR4LmM6MjI0OlxcdGVyciA9IHByZXN0ZXJhX2RzYV9wYXJzZShcXHUwMDI2ZHNhLCBza2ItXFx1MDAzZWRhdGEgLSBFVEhfVExFTik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9yeHR4LmMtMjI1LVxcdGlmIChlcnIpXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTIwVDEwOjE5OjExLjQ4MDAyODE3OVoiLCJTZXEiOjExLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0NDgyOTQ5NDYzLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKk15IEFuYWx5c2lzIG9mIHRoZSBQcmVzdGVyYSBSWCBQYXRoIENvZGUqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIGBwcmVzdGVyYV9yeHR4X3Byb2Nlc3Nfc2tiYCBmdW5jdGlvbiwgYW5kIGl0J3MgY2xlYXJseSBwYXJ0IG9mIHRoZSByZWNlaXZlIChSWCkgcGF0aCB3aXRoaW4gdGhlIFByZXN0ZXJhIGRyaXZlci4gSW1tZWRpYXRlbHksIGFsYXJtIGJlbGxzIHN0YXJ0IHJpbmdpbmcuIFRoaXMgd2hvbGUgZHJpdmVyIGlzIHRpZWQgdG8gdmVyeSBzcGVjaWZpYyBNYXJ2ZWxsIFBDSSBoYXJkd2FyZTogdGhhdCBgUENJX1ZFTkRPUl9JRF9NQVJWRUxMYCBjb3VwbGVkIHdpdGggdGhlIGBQUkVTVEVSQV9ERVZfSURfQUMzWF85OERYXzU1YCBkZXZpY2UgSUQuIENsYXNzaWMgZW1iZWRkZWQgc2lsaWNvbiwgbWVhbmluZyBpdCdzIGhpZ2hseSB1bmxpa2VseSB0aGF0IEkgY2FuIHBva2UgYXQgdGhpcyBlYXNpbHkuXG5cblRoZSByZWFsIHByb2JsZW0gZGF3bnMgb24gbWU6IHRoZXJlJ3Mgbm8gd2F5IHRvIGVtdWxhdGUgdGhpcyBBU0lDIGluIGEgc3RhbmRhcmQgdmlydHVhbCBlbnZpcm9ubWVudCBsaWtlIFFFTVUgb3IgZXZlbiBHb29nbGUgQ29tcHV0ZSBFbmdpbmUuIFRoYXQgbWVhbnMgdW5sZXNzIEkgaGF2ZSBhY2Nlc3MgdG8gdGhlICphY3R1YWwqIGhhcmR3YXJlLCBJJ20gcHJldHR5IG11Y2ggc3R1Y2suIFRoZXJlJ3MganVzdCBubyB3YXkgdG8gcmVsaWFibHkgdGVzdCBvciBkZWJ1ZyB0aGlzIHBhdGggaW4gYSB2aXJ0dWFsaXplZCBzZXR0aW5nLlxuXG5Ib2xkIG9uLCBJIHNob3VsZCBtYWtlIHN1cmUgdGhlcmUncyBhYnNvbHV0ZWx5IG5vIHNvZnR3YXJlIGVtdWxhdGlvbi4gSSBzaG91bGQgcXVpY2tseSBjaGVjayBpZiB0aGVyZSdzIGFueSBtZW50aW9uIG9mIGEgUHJlc3RlcmEgZW11bGF0b3IgaW4gdGhlIGtlcm5lbC4gTGV0IG1lIHNlYXJjaCB0aGUga2VybmVsIHNvdXJjZSB0cmVlIGZvciBhbnkgbWVudGlvbiBvZiBzb2Z0d2FyZSBlbXVsYXRpb24gZm9yIHRoZSBQcmVzdGVyYS5cblxuXG4iLCJJbnB1dFRva2VucyI6MTkyMzksIk91dHB1dFRva2VucyI6MjYsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxMjAsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjBUMTA6MTk6MTUuOTYyOTgwNzYyWiIsIlNlcSI6MTIsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNDQzOTIxNDcsIkVycm9yIjoibm8gbWF0Y2hlcyIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInByZXN0ZXJhXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcInRvb2xzL3Rlc3RpbmcvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcImVycm9yXCI6IFwibm8gbWF0Y2hlc1wiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNi0yMFQxMDoxOToxNi4xMDczNzk5MjlaIiwiU2VxIjoxMywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NzQ3MjM0ODIxOSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIGZyYW1lZCBhcyBteSBvd24gcmVhc29uaW5nOlxuXG4qKkFuYWx5emluZyB0aGUgRFNBIEludGVyYWN0aW9uKipcblxuUmlnaHQsIG5vIHNvZnR3YXJlIGVtdWxhdGlvbiBpcyBpbnZvbHZlZCBoZXJlLCBnb29kLiBOb3csIEkgbmVlZCB0byBnZXQgYSBjbGVhcmVyIHBpY3R1cmUgb2YgaG93IGBwcmVzdGVyYV9kc2FfcGFyc2VgIGZ1bmN0aW9ucyB3aXRoaW4gdGhlIHN5c3RlbS4gSXMgaXQgc29sZWx5IGNhbGxlZCBmcm9tIGBwcmVzdGVyYV9yeHR4X3Byb2Nlc3Nfc2tiYCwgb3IgZG9lcyBpdCBoYXZlIG90aGVyIHBvdGVudGlhbCBlbnRyeSBwb2ludHMgdGhhdCBJIG1pZ2h0IGJlIG92ZXJsb29raW5nPyBJIG5lZWQgdG8ga25vdyB0aGUgY29tcGxldGUgY2FsbCBncmFwaCB0byBkZXRlcm1pbmUgaWYgaXQgY291bGQgaGF2ZSBhbnkgdW5leHBlY3RlZCBzaWRlIGVmZmVjdHMuIEFuZCB3aGF0IGFib3V0IGBwcmVzdGVyYV9kc2FfYnVpbGRgPyBJIHNob3VsZCBleGFtaW5lIHRoYXQgZnVuY3Rpb24gaW4gZGV0YWlsIGFzIHdlbGwgdG8gc2VlIGhvdyBpdCBpbnRlcmFjdHMgd2l0aCB0aGUgcGFyc2VkIGRhdGEuIEl0J3MgY3J1Y2lhbCB0byB1bmRlcnN0YW5kIHRoZSBkYXRhIGZsb3cgY29tcGxldGVseS5cblxuXG4iLCJJbnB1dFRva2VucyI6MTk2NTYsIk91dHB1dFRva2VucyI6NDAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo0OSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNi0yMFQxMDoxOToyMy41Nzk3MzI1NDhaIiwiU2VxIjoxNCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjU1MjUzMTc5LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInByZXN0ZXJhX2RzYV9idWlsZFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RzYS5jPTM1PWludCBwcmVzdGVyYV9kc2FfcGFyc2Uoc3RydWN0IHByZXN0ZXJhX2RzYSAqZHNhLCBjb25zdCB1OCAqZHNhX2J1ZilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZHNhLmMtODItXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kc2EuYzo4MzppbnQgcHJlc3RlcmFfZHNhX2J1aWxkKGNvbnN0IHN0cnVjdCBwcmVzdGVyYV9kc2EgKmRzYSwgdTggKmRzYV9idWYpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kc2EuYy04NC17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX2RzYS5oPTMzPWludCBwcmVzdGVyYV9kc2FfcGFyc2Uoc3RydWN0IHByZXN0ZXJhX2RzYSAqZHNhLCBjb25zdCB1OCAqZHNhX2J1Zik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kc2EuaDozNDppbnQgcHJlc3RlcmFfZHNhX2J1aWxkKGNvbnN0IHN0cnVjdCBwcmVzdGVyYV9kc2EgKmRzYSwgdTggKmRzYV9idWYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZHNhLmgtMzUtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX3J4dHguYz04MTI9bmV0ZGV2X3R4X3QgcHJlc3RlcmFfcnh0eF94bWl0KHN0cnVjdCBwcmVzdGVyYV9wb3J0ICpwb3J0LCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9yeHR4LmMtODI0LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfcnh0eC5jOjgyNTpcXHRpZiAocHJlc3RlcmFfZHNhX2J1aWxkKFxcdTAwMjZkc2EsIHNrYi1cXHUwMDNlZGF0YSArIDIgKiBFVEhfQUxFTikgIT0gMClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX3J4dHguYy04MjYtXFx0XFx0cmV0dXJuIE5FVF9YTUlUX0RST1A7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTIwVDEwOjE5OjIzLjYzNDk5NjgzN1oiLCJTZXEiOjE1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo1NTY5NTI2NjkwLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgRnV6emluZyBQb3RlbnRpYWwgb2YgdGhlIFByZXN0ZXJhIERyaXZlcioqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgYHByZXN0ZXJhX3J4dHhfeG1pdGAgZnVuY3Rpb24gY2FsbC4gSXQncyBjb21pbmcgZnJvbSB0aGUgYHByZXN0ZXJhYCBkcml2ZXIsIHdoaWNoLCBhcyBJIHJlY2FsbCwgaXMgdGhhdCBNYXJ2ZWxsLXNwZWNpZmljIGRyaXZlciBmb3IgdGhlIFByZXN0ZXJhIFN3aXRjaCBBU0lDcy4gVGhlIGNvcmUgaXNzdWUgaGVyZSBmb3IgZnV6emluZyBpcyB0aGF0IHRoZXJlJ3Mgbm8gaGFyZHdhcmUgZW11bGF0aW9uIG9mIHRoaXMgcGFydGljdWxhciBkZXZpY2UgYXZhaWxhYmxlIGluIFFFTVUuIFRoYXQncyBhIHJlYWwgcHJvYmxlbSBmb3Igc3l6a2FsbGVyLCBpc24ndCBpdD8gSWYgdGhlIHRhcmdldCBoYXJkd2FyZSBpc24ndCBlbXVsYXRlZCwgc3l6a2FsbGVyIHNpbXBseSBjYW4ndCByZWFjaCB0aGF0IGNvZGUuXG5cblNvLCB0aGUgY29uY2x1c2lvbiBpcyBmYWlybHkgc3RyYWlnaHRmb3J3YXJkOiBgV29ydGhGdXp6aW5nYCBzaG91bGQgYmUgYGZhbHNlYC4gSSBuZWVkIHRvIGJlIGNlcnRhaW4sIHRob3VnaC4gTGV0J3MgZXhwbG9yZSBhbnkgcG90ZW50aWFsIGJhY2tkb29ycy5cblxuSSB3b25kZXIsIGlzIGBwcmVzdGVyYWAgc29tZWhvdyByZWFjaGFibGUgdGhyb3VnaCBhIGdlbmVyaWMgRFNBIChEaXN0cmlidXRlZCBTd2l0Y2ggQXJjaGl0ZWN0dXJlKSBmcmFtZXdvcmsgdGhhdCAqbWlnaHQqIGhhdmUgc29tZSBzb3J0IG9mIGVtdWxhdGlvbj8gVGltZSB0byBkb3VibGUtY2hlY2suIEkgcmVjYWxsIHRoZXJlJ3MgYSBmaWxlLCBgZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9kc2EuY2AuIFdhaXQuLi50aGF0J3Mgc3BlY2lmaWMgdG8gKnByZXN0ZXJhKj8gT2theSwgc28gdGhhdCBsaWtlbHkgcnVsZXMgb3V0IGdlbmVyaWMgRFNBIGFjY2Vzcy5cblxuSSdtIG1ha2luZyBhIGtleSBkaXN0aW5jdGlvbiBoZXJlLiBJcyB0aGUgYHByZXN0ZXJhYCBkcml2ZXIgYSBEU0EgZHJpdmVyIGl0c2VsZj8gTGV0J3MgY2xhcmlmeS4gTm8sIGl0IHJlZ2lzdGVycyBhIHN3aXRjaGRldiwgbm90IGEgRFNBIGRyaXZlci4gSSBuZWVkIHRvIG1ha2Ugc3VyZSBJIGFtIHRoaW5raW5nIGNsZWFybHkgYWJvdXQgdGhpcy4gVG8gYmUgZXh0cmEgY2F1dGlvdXMsIGxldCBtZSBjaGVjayB0aGUgYHByZXN0ZXJhX21haW4uY2AgZmlsZSB0byBlbnN1cmUgdGhlcmUgYXJlIG5vIHN1cnByaXNlcy5cblxuXG4iLCJJbnB1dFRva2VucyI6MjAzODgsIk91dHB1dFRva2VucyI6MzcsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxODcsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjBUMTA6MTk6MjkuMjA0NTI1Njc3WiIsIlNlcSI6MTYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1NDcyNjI2OSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJyZWdpc3Rlcl9uZXRkZXZcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9tYWluLmM9NjAzPXN0YXRpYyBpbnQgcHJlc3RlcmFfcG9ydF9jcmVhdGUoc3RydWN0IHByZXN0ZXJhX3N3aXRjaCAqc3csIHUzMiBpZClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfbWFpbi5jLTczMC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX21haW4uYzo3MzE6XFx0ZXJyID0gcmVnaXN0ZXJfbmV0ZGV2KGRldik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9tYWluLmMtNzMyLVxcdGlmIChlcnIpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9tYWluLmM6NzMzOlxcdFxcdGdvdG8gZXJyX3JlZ2lzdGVyX25ldGRldjtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX21haW4uYy03MzQtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX21haW4uYy03NDEtZXJyX3NmcF9iaW5kOlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfbWFpbi5jOjc0MjpcXHR1bnJlZ2lzdGVyX25ldGRldihkZXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfbWFpbi5jOjc0MzplcnJfcmVnaXN0ZXJfbmV0ZGV2OlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfbWFpbi5jLTc0NC1cXHRwcmVzdGVyYV9wb3J0X2xpc3RfZGVsKHBvcnQpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9tYWluLmM9NzUzPXN0YXRpYyB2b2lkIHByZXN0ZXJhX3BvcnRfZGVzdHJveShzdHJ1Y3QgcHJlc3RlcmFfcG9ydCAqcG9ydClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfbWFpbi5jLTc1Ny1cXHRjYW5jZWxfZGVsYXllZF93b3JrX3N5bmMoXFx1MDAyNnBvcnQtXFx1MDAzZWNhY2hlZF9od19zdGF0cy5jYWNoaW5nX2R3KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX21haW4uYzo3NTg6XFx0dW5yZWdpc3Rlcl9uZXRkZXYoZGV2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX21haW4uYy03NTktXFx0cHJlc3RlcmFfcG9ydF9saXN0X2RlbChwb3J0KTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfbWFpbi5jPTEzNDk9c3RhdGljIGludCBwcmVzdGVyYV9uZXRkZXZfZXZlbnRfaGFuZGxlcl9yZWdpc3RlcihzdHJ1Y3QgcHJlc3RlcmFfc3dpdGNoICpzdylcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfbWFpbi5jLTEzNTItXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9tYWluLmM6MTM1MzpcXHRyZXR1cm4gcmVnaXN0ZXJfbmV0ZGV2aWNlX25vdGlmaWVyKFxcdTAwMjZzdy1cXHUwMDNlbmV0ZGV2X25iKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX21haW4uYy0xMzU0LX1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfbWFpbi5jPTEzNTY9c3RhdGljIHZvaWQgcHJlc3RlcmFfbmV0ZGV2X2V2ZW50X2hhbmRsZXJfdW5yZWdpc3RlcihzdHJ1Y3QgcHJlc3RlcmFfc3dpdGNoICpzdylcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX21haW4uYy0xMzU3LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX21haW4uYzoxMzU4OlxcdHVucmVnaXN0ZXJfbmV0ZGV2aWNlX25vdGlmaWVyKFxcdTAwMjZzdy1cXHUwMDNlbmV0ZGV2X25iKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL3ByZXN0ZXJhX21haW4uYy0xMzU5LX1cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjBUMTA6MTk6MjkuMjU5MjU4OTc2WiIsIlNlcSI6MTcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjc5MjkwNTg0NDksIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqTXkgQXNzZXNzbWVudCBvZiB0aGUgTWFydmVsbCBQcmVzdGVyYSBTd2l0Y2ggRHJpdmVyJ3MgRnV6emluZyBQb3RlbnRpYWwqKlxuXG5Pa2F5LCBoZXJlJ3MgbXkgdGFrZSBvbiB0aGlzIE1hcnZlbGwgUHJlc3RlcmEgc3dpdGNoIGRyaXZlci4gSSd2ZSBsb29rZWQgYXQgdGhlIGNvZGUsIGFuZCBoZXJlJ3MgdGhlIGJvdHRvbSBsaW5lOiBJIG5lZWQgdG8gc2V0IGBXb3J0aEZ1enppbmc9ZmFsc2VgLiBUaGUgY29yZSBpc3N1ZSBpcyB0aGF0IHRoZSBkcml2ZXIgcmVsaWVzIG9uIHRoZSBQQ0kgZGV2aWNlIGJlaW5nIHByZXNlbnQgdG8gcmVnaXN0ZXIgdGhlIG5ldGRldnMgZm9yIHRoZSBzd2l0Y2ggcG9ydHMuICBTcGVjaWZpY2FsbHksIHRoZSBuZXRkZXZzIGFyZSBjcmVhdGVkIGR1cmluZyB0aGUgUENJIHByb2JlLlxuXG5Ob3csIGluIGFueSBub3JtYWwgaGFyZHdhcmUgc2V0dXAsIHRoaXMgd291bGQgYmUgZmluZS4gVGhlIFBDSSBkZXZpY2UgaXMgdGhlcmUsIHRoaW5ncyB3b3JrIGFzIGludGVuZGVkLiBCdXQgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgUUVNVSBvciBHb29nbGUgQ29tcHV0ZSBFbmdpbmUsIHdoaWNoIGFyZSBteSB0ZXN0YmVkcyBvZiBjaG9pY2UgZm9yIGZ1enppbmcsIHRoaXMgUENJIGRldmljZSBzaW1wbHkgaXNuJ3QgcHJlc2VudC4gQW5kIGlmIHRoYXQgUENJIGRldmljZSBpc24ndCBwcm9iZWQsIHRoZSBuZWNlc3NhcnkgbmV0ZGV2cyBhcmUgbmV2ZXIgY3JlYXRlZC5cblxuRWZmZWN0aXZlbHksIHRoaXMgbWVhbnMgdGhlIGNvZGUgdGhhdCBpbnRlcmFjdHMgd2l0aCB0aGUgc3dpdGNoIGl0c2VsZiDigJMgdGhlIGNvZGUgSSdkIGJlIHRhcmdldGluZyB3aXRoIGZ1enppbmcg4oCTIGJlY29tZXMgdW5yZWFjaGFibGUgdW5kZXIgdGhlIGNvbmRpdGlvbnMgSSdtIG9wZXJhdGluZyB3aXRoaW4uICBUaGVyZWZvcmUsIGZvY3VzaW5nIGZ1enppbmcgZWZmb3J0IG9uIHRoaXMgZHJpdmVyIGlzLCBmb3IgYWxsIGludGVudHMgYW5kIHB1cnBvc2VzLCBhIHdhc3RlIG9mIHRpbWUuIEl0J3MgYSBoYXJkd2FyZS1zcGVjaWZpYyBkcml2ZXIgZGVzaWduZWQgZm9yIE1hcnZlbGwgUHJlc3RlcmEgU3dpdGNoIEFTSUNzLCBhbmQgdGhlc2UgQVNJQ3MgYXJlbid0IGVtdWxhdGVkIGluIHRoZSB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgSSdtIHVzaW5nLiBJdCdzIHNpbXBseSBub3QgcHJhY3RpY2FsIHRvIGluY2x1ZGUgaXQuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjIxNzQ3LCJPdXRwdXRUb2tlbnMiOjExMCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjEwNCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNi0yMFQxMDoxOTozNy4xODgzMTk0MzVaIiwiU2VxIjoxOCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyMzkwMCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW10sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgTWFydmVsbCBQcmVzdGVyYSBTd2l0Y2ggQVNJQyBkcml2ZXIgKHByZXN0ZXJhKS4gVGhpcyBkcml2ZXIgcmVxdWlyZXMgc3BlY2lmaWMgaGFyZHdhcmUgKFBDSV9WRU5ET1JfSURfTUFSVkVMTCwgUFJFU1RFUkFfREVWX0lEX0FDM1hfOThEWF81NSkgd2hpY2ggaXMgbm90IGVtdWxhdGVkIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIFFFTVUgb3IgR0NFLiBUaGVyZWZvcmUsIHRoZSBtb2RpZmllZCBjb2RlIHBhdGhzIGFyZSB1bnJlYWNoYWJsZSBkdXJpbmcgZnV6emluZy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBNYXJ2ZWxsIFByZXN0ZXJhIFN3aXRjaCBBU0lDIGRyaXZlciAocHJlc3RlcmEpLiBUaGlzIGRyaXZlciByZXF1aXJlcyBzcGVjaWZpYyBoYXJkd2FyZSAoUENJX1ZFTkRPUl9JRF9NQVJWRUxMLCBQUkVTVEVSQV9ERVZfSURfQUMzWF85OERYXzU1KSB3aGljaCBpcyBub3QgZW11bGF0ZWQgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgUUVNVSBvciBHQ0UuIFRoZXJlZm9yZSwgdGhlIG1vZGlmaWVkIGNvZGUgcGF0aHMgYXJlIHVucmVhY2hhYmxlIGR1cmluZyBmdXp6aW5nLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9XTsKCQkJaWYgKCFyYXdEYXRhIHx8IHJhd0RhdGEubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQlkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKTsKCQkJZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSk7CgkJCWRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKSB7CgkJCWNvbnN0IHN0YXRzID0gewoJCQkJbGxtOiB7IGNvdW50OiAwLCB0b2tlbnM6IDAsIGR1cmF0aW9uOiAwIH0sCgkJCQl0b29sOiB7IGNvdW50OiAwLCBkdXJhdGlvbjogMCB9CgkJCX07CgoJCQlyYXdEYXRhLmZvckVhY2gocyA9PiB7CgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsgCgkJCQlpZiAocy5UeXBlID09PSAibGxtIikgewoJCQkJCXN0YXRzLmxsbS5jb3VudCsrOwoJCQkJCXN0YXRzLmxsbS50b2tlbnMgKz0gKHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnMpOwoJCQkJCXN0YXRzLmxsbS5kdXJhdGlvbiArPSBkdXI7CgkJCQl9IGVsc2UgaWYgKHMuVHlwZSA9PT0gInRvb2wiKSB7CgkJCQkJc3RhdHMudG9vbC5jb3VudCsrOwoJCQkJCXN0YXRzLnRvb2wuZHVyYXRpb24gKz0gZHVyOwoJCQkJfQoJCQl9KTsKCgkJCWNvbnN0IGF2Z0xsbUR1ciA9IHN0YXRzLmxsbS5jb3VudCA+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-workflowfl64l[1] Phase: Running StartedAt: 2026-06-20 10:19:48 +0000 UTC FinishedAt: 0001-01-01 00:00:00 +0000 UTC Input: nil Output: nil --------- Name: series-workflowfl64l[1].abort-on-skip-outcome Phase: Failed StartedAt: 2026-06-20 10:19:48 +0000 UTC FinishedAt: 2026-06-20 10:19:53 +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,}