Name: series-workflowcmqhq Phase: Failed StartedAt: 2026-08-20 20:45:06 +0000 UTC FinishedAt: 2026-08-20 20:48:53 +0000 UTC Input: nil Output: nil --------- Name: series-workflowcmqhq[0] Phase: Succeeded StartedAt: 2026-08-20 20:45:06 +0000 UTC FinishedAt: 2026-08-20 20:48:43 +0000 UTC Input: nil Output: nil --------- Name: series-workflowcmqhq[0].run-triage Phase: Succeeded StartedAt: 2026-08-20 20:45:06 +0000 UTC FinishedAt: 2026-08-20 20:48:43 +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+CgkJCTx0ZD4yMDI2LzA4LzIwIDIwOjQ3PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MW08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7S01TQU5SZWFzb25pbmcmIzM0OzogJiMzNDsmIzM0OywKICAmIzM0O05lZWRzS01TQU4mIzM0OzogZmFsc2UsCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIE1lZGlhVGVrIE1UNzUzMC9NVDc2MjEgRFNBIHN3aXRjaCBkcml2ZXIgdG8gZGlzYWJsZSBFRUUgYWR2ZXJ0aXNlbWVudCBvbiB0aGUgc3dpdGNoIFBIWXMgZHVlIHRvIGhhcmR3YXJlIGlzc3Vlcy4gVGhpcyBpcyBhIGhhcmR3YXJlLXNwZWNpZmljIGRyaXZlciBmb3IgcGh5c2ljYWwgTWVkaWFUZWsgc3dpdGNoZXMgdGhhdCBhcmUgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUgb3IgR0NFIGVudmlyb25tZW50cy4gVGhlIGNvZGUgY2Fubm90IGJlIHJlYWNoZWQgZHVyaW5nIGdlbmVyaWMga2VybmVsIGZ1enppbmcgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yMCAyMDo0NzwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IDg3OWFmMTQ3ZDYyNDdjY2FiOWRkNjBkNDFhODI2ZDFmN2UyMGQ2NmFcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgVGh1IEF1ZyAyMCAyMDo0NzowMSAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9kc2EvbXQ3NTMwLmMgYi9kcml2ZXJzL25ldC9kc2EvbXQ3NTMwLmNcbmluZGV4IGFhMzNkOTRlMTFiNWYuLmJiMjJjMTljZjMxNGEgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9kc2EvbXQ3NTMwLmNcbiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L2RzYS9tdDc1MzAuY1xuQEAgLTI1MTgsNiAmIzQzOzI1MTgsMTUgQEAgbXQ3NTMwX3NldHVwKHN0cnVjdCBkc2Ffc3dpdGNoICpkcylcbiBcdGlmICgodmFsIFx1MDAyNiBNVDc1MzBfWFRBTF9NQVNLKSA9PSBNVDc1MzBfWFRBTF80ME1IWilcbiBcdFx0bXQ3NTMwX3BsbF9zZXR1cChwcml2KTtcbiBcbiYjNDM7XHRpZiAocHJpdi1cdTAwM2VpbmZvLVx1MDAzZWJyb2tlbl9lZWUpIHtcbiYjNDM7XHRcdC8qIERpc2FibGUgRUVFIGFkdmVydGlzZW1lbnQgb24gdGhlIHN3aXRjaCBQSFlzLiAqL1xuJiM0MztcdFx0Zm9yIChpID0gTVQ3NTNYX0NUUkxfUEhZX0FERFIocHJpdi1cdTAwM2VtZGlvZGV2LVx1MDAzZWFkZHIpO1xuJiM0MztcdFx0ICAgICBpIFx1MDAzYyBNVDc1M1hfQ1RSTF9QSFlfQUREUihwcml2LVx1MDAzZW1kaW9kZXYtXHUwMDNlYWRkcikgJiM0MzsgTVQ3NTMwX05VTV9QSFlTO1xuJiM0MztcdFx0ICAgICBpJiM0MzsmIzQzOykge1xuJiM0MztcdFx0XHRtdDc1MzBfcGh5X3dyaXRlX2M0NShwcml2LCBpLCBNRElPX01NRF9BTiwgTURJT19BTl9FRUVfQURWLCAwKTtcbiYjNDM7XHRcdH1cbiYjNDM7XHR9XG4mIzQzO1xuIFx0bXQ3NTN4X3RyYXBfZnJhbWVzKHByaXYpO1xuIFxuIFx0LyogRW5hYmxlIGFuZCByZXNldCBNSUIgY291bnRlcnMgKi9cbkBAIC0zMzg4LDYgJiM0MzszMzk3LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBwaHlsaW5rX21hY19vcHMgbXQ3NTN4X3BoeWxpbmtfbWFjX29wcyA9IHtcbiBjb25zdCBzdHJ1Y3QgbXQ3NTN4X2luZm8gbXQ3NTN4X3RhYmxlW10gPSB7XG4gXHRbSURfTVQ3NjIxXSA9IHtcbiBcdFx0LmlkID0gSURfTVQ3NjIxLFxuJiM0MztcdFx0LmJyb2tlbl9lZWUgPSB0cnVlLFxuIFx0XHQucGNzX29wcyA9IFx1MDAyNm10NzUzMF9wY3Nfb3BzLFxuIFx0XHQuc3dfc2V0dXAgPSBtdDc1MzBfc2V0dXAsXG4gXHRcdC5waHlfcmVhZF9jMjIgPSBtdDc1MzBfcGh5X3JlYWRfYzIyLFxuQEAgLTMzOTksNiAmIzQzOzM0MDksNyBAQCBjb25zdCBzdHJ1Y3QgbXQ3NTN4X2luZm8gbXQ3NTN4X3RhYmxlW10gPSB7XG4gXHR9LFxuIFx0W0lEX01UNzUzMF0gPSB7XG4gXHRcdC5pZCA9IElEX01UNzUzMCxcbiYjNDM7XHRcdC5icm9rZW5fZWVlID0gdHJ1ZSxcbiBcdFx0LnBjc19vcHMgPSBcdTAwMjZtdDc1MzBfcGNzX29wcyxcbiBcdFx0LnN3X3NldHVwID0gbXQ3NTMwX3NldHVwLFxuIFx0XHQucGh5X3JlYWRfYzIyID0gbXQ3NTMwX3BoeV9yZWFkX2MyMixcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9kc2EvbXQ3NTMwLmggYi9kcml2ZXJzL25ldC9kc2EvbXQ3NTMwLmhcbmluZGV4IGRkMzNiMGRmMzQxOWUuLjBjYTMzYjlkNDIxMDUgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9kc2EvbXQ3NTMwLmhcbiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L2RzYS9tdDc1MzAuaFxuQEAgLTg1Myw2ICYjNDM7ODUzLDcgQEAgc3RydWN0IG10NzUzeF9pbmZvIHtcbiBcdHZvaWQgKCptYWNfcG9ydF9jb25maWcpKHN0cnVjdCBkc2Ffc3dpdGNoICpkcywgaW50IHBvcnQsXG4gXHRcdFx0XHR1bnNpZ25lZCBpbnQgbW9kZSxcbiBcdFx0XHRcdHBoeV9pbnRlcmZhY2VfdCBpbnRlcmZhY2UpO1xuJiM0MztcdGJvb2wgYnJva2VuX2VlZTtcbiB9O1xuIFxuIC8qIHN0cnVjdCBtdDc1MzBfcHJpdiAtXHRUaGlzIGlzIHRoZSBtYWluIGRhdGEgc3RydWN0dXJlIGZvciBob2xkaW5nIHRoZSBzdGF0ZVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzIwIDIwOjQ3PC90ZD4KCQkJPHRkPmFnZW50PC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjFtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmJlc3QtZXhwZW5zaXZlPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogbnVsbCwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgTWVkaWFUZWsgTVQ3NTMwL01UNzYyMSBEU0Egc3dpdGNoIGRyaXZlciB0byBkaXNhYmxlIEVFRSBhZHZlcnRpc2VtZW50IG9uIHRoZSBzd2l0Y2ggUEhZcyBkdWUgdG8gaGFyZHdhcmUgaXNzdWVzLiBUaGlzIGlzIGEgaGFyZHdhcmUtc3BlY2lmaWMgZHJpdmVyIGZvciBwaHlzaWNhbCBNZWRpYVRlayBzd2l0Y2hlcyB0aGF0IGFyZSBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVSBvciBHQ0UgZW52aXJvbm1lbnRzLiBUaGUgY29kZSBjYW5ub3QgYmUgcmVhY2hlZCBkdXJpbmcgZ2VuZXJpYyBrZXJuZWwgZnV6emluZyBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmUKaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseQp1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLgoKUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczoKLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLgotIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLgotIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy4KLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsCiAgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLgotIENvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLAogIGlvbmljLCBhbWRncHUpIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLgotIERyaXZlciAucmVtb3ZlLCAuc2h1dGRvd24sIG9yIHBjaV91bnJlZ2lzdGVyX2RyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKGUuZy4sIGlnYl9yZW1vdmUpCiAgdGhhdCBhcmUgZXhlY3V0ZWQgb25seSBkdXJpbmcgUENJIGhvdC11bnBsdWcgb3Igc3lzZnMgZHJpdmVyIHVuYmluZCBvcGVyYXRpb25zLgoKSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaAp0b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS4KCldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOgoxLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLgogICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy4KICAgUHJlZmVyIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIEFQSSBlbnRyeXBvaW50IGZ1bmN0aW9ucyBvdmVyIGludGVybmFsIHN0YXRpYyBoZWxwZXIgZnVuY3Rpb25zCiAgICh3aGljaCBhcmUgaW5saW5lZCBieSB0aGUgY29tcGlsZXIgYW5kIGRvIG5vdCBoYXZlIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMpLgoyLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS4KICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLgogICBBbHNvIGNoZWNrICYjMzQ7ZGVwZW5kcyBvbiYjMzQ7IGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlncwogICBuZWVkZWQgZm9yIEtidWlsZCB0byBjb21waWxlIHRoZSBjb2RlIHN0YXRpY2FsbHkgaW50byB2bWxpbnV4LiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3MKICAgb3V0cHV0IGFycmF5LCBhbmQgRE8gTk9UIGFkZCBhICYjMzk7Q09ORklHXyYjMzk7IHByZWZpeCAoZS5nLiwgcmV0dXJuICYjMzQ7TkVUX0lQVjQmIzM0OyBpbnN0ZWFkIG9mICYjMzQ7Q09ORklHX05FVF9JUFY0JiMzNDspLgpQcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy4KCgpVc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLgpJdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS4KSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlByb21wdDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOgpjb21taXQgODc5YWYxNDdkNjI0N2NjYWI5ZGQ2MGQ0MWE4MjZkMWY3ZTIwZDY2YQpBdXRob3I6IHN5ei1jbHVzdGVyICZsdDt0cmlhZ2VAc3l6a2FsbGVyLmNvbSZndDsKRGF0ZTogICBUaHUgQXVnIDIwIDIwOjQ3OjAxIDIwMjYgJiM0MzswMDAwCgogICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3CgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZHNhL210NzUzMC5jIGIvZHJpdmVycy9uZXQvZHNhL210NzUzMC5jCmluZGV4IGFhMzNkOTRlMTFiNWYuLmJiMjJjMTljZjMxNGEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2RzYS9tdDc1MzAuYwomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC9kc2EvbXQ3NTMwLmMKQEAgLTI1MTgsNiAmIzQzOzI1MTgsMTUgQEAgbXQ3NTMwX3NldHVwKHN0cnVjdCBkc2Ffc3dpdGNoICpkcykKIAlpZiAoKHZhbCAmYW1wOyBNVDc1MzBfWFRBTF9NQVNLKSA9PSBNVDc1MzBfWFRBTF80ME1IWikKIAkJbXQ3NTMwX3BsbF9zZXR1cChwcml2KTsKIAomIzQzOwlpZiAocHJpdi0mZ3Q7aW5mby0mZ3Q7YnJva2VuX2VlZSkgewomIzQzOwkJLyogRGlzYWJsZSBFRUUgYWR2ZXJ0aXNlbWVudCBvbiB0aGUgc3dpdGNoIFBIWXMuICovCiYjNDM7CQlmb3IgKGkgPSBNVDc1M1hfQ1RSTF9QSFlfQUREUihwcml2LSZndDttZGlvZGV2LSZndDthZGRyKTsKJiM0MzsJCSAgICAgaSAmbHQ7IE1UNzUzWF9DVFJMX1BIWV9BRERSKHByaXYtJmd0O21kaW9kZXYtJmd0O2FkZHIpICYjNDM7IE1UNzUzMF9OVU1fUEhZUzsKJiM0MzsJCSAgICAgaSYjNDM7JiM0MzspIHsKJiM0MzsJCQltdDc1MzBfcGh5X3dyaXRlX2M0NShwcml2LCBpLCBNRElPX01NRF9BTiwgTURJT19BTl9FRUVfQURWLCAwKTsKJiM0MzsJCX0KJiM0MzsJfQomIzQzOwogCW10NzUzeF90cmFwX2ZyYW1lcyhwcml2KTsKIAogCS8qIEVuYWJsZSBhbmQgcmVzZXQgTUlCIGNvdW50ZXJzICovCkBAIC0zMzg4LDYgJiM0MzszMzk3LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBwaHlsaW5rX21hY19vcHMgbXQ3NTN4X3BoeWxpbmtfbWFjX29wcyA9IHsKIGNvbnN0IHN0cnVjdCBtdDc1M3hfaW5mbyBtdDc1M3hfdGFibGVbXSA9IHsKIAlbSURfTVQ3NjIxXSA9IHsKIAkJLmlkID0gSURfTVQ3NjIxLAomIzQzOwkJLmJyb2tlbl9lZWUgPSB0cnVlLAogCQkucGNzX29wcyA9ICZhbXA7bXQ3NTMwX3Bjc19vcHMsCiAJCS5zd19zZXR1cCA9IG10NzUzMF9zZXR1cCwKIAkJLnBoeV9yZWFkX2MyMiA9IG10NzUzMF9waHlfcmVhZF9jMjIsCkBAIC0zMzk5LDYgJiM0MzszNDA5LDcgQEAgY29uc3Qgc3RydWN0IG10NzUzeF9pbmZvIG10NzUzeF90YWJsZVtdID0gewogCX0sCiAJW0lEX01UNzUzMF0gPSB7CiAJCS5pZCA9IElEX01UNzUzMCwKJiM0MzsJCS5icm9rZW5fZWVlID0gdHJ1ZSwKIAkJLnBjc19vcHMgPSAmYW1wO210NzUzMF9wY3Nfb3BzLAogCQkuc3dfc2V0dXAgPSBtdDc1MzBfc2V0dXAsCiAJCS5waHlfcmVhZF9jMjIgPSBtdDc1MzBfcGh5X3JlYWRfYzIyLApkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZHNhL210NzUzMC5oIGIvZHJpdmVycy9uZXQvZHNhL210NzUzMC5oCmluZGV4IGRkMzNiMGRmMzQxOWUuLjBjYTMzYjlkNDIxMDUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2RzYS9tdDc1MzAuaAomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC9kc2EvbXQ3NTMwLmgKQEAgLTg1Myw2ICYjNDM7ODUzLDcgQEAgc3RydWN0IG10NzUzeF9pbmZvIHsKIAl2b2lkICgqbWFjX3BvcnRfY29uZmlnKShzdHJ1Y3QgZHNhX3N3aXRjaCAqZHMsIGludCBwb3J0LAogCQkJCXVuc2lnbmVkIGludCBtb2RlLAogCQkJCXBoeV9pbnRlcmZhY2VfdCBpbnRlcmZhY2UpOwomIzQzOwlib29sIGJyb2tlbl9lZWU7CiB9OwogCiAvKiBzdHJ1Y3QgbXQ3NTMwX3ByaXYgLQlUaGlzIGlzIHRoZSBtYWluIGRhdGEgc3RydWN0dXJlIGZvciBob2xkaW5nIHRoZSBzdGF0ZQo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yMCAyMDo0NzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyNjQ5CgkJCQkJCQlvdXRwdXQ6IDQxCgkJCQkJCQl0aG91Z2h0czogMjY1CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKk15IEFzc2Vzc21lbnQgb2YgdGhlIE1UNzUzMCBEcml2ZXIgUGF0Y2gqKgoKT2theSwgc28gSSYjMzk7dmUgZ290IHRoaXMgcGF0Y2ggaGVyZSB0aGF0IHNlZW1zIHRvIGJlIHR3ZWFraW5nIHRoZSBNZWRpYVRlayBNVDc1MzAgRFNBIHN3aXRjaCBkcml2ZXIsIHNwZWNpZmljYWxseSBpbiBgZHJpdmVycy9uZXQvZHNhL210NzUzMC5jYCBhbmQgYC5oYC4gVGhleSYjMzk7cmUgYWRkaW5nIGEgYGJyb2tlbl9lZWVgIGZsYWcgdG8gdGhlIGBtdDc1M3hfaW5mb2Agc3RydWN0IGFuZCBoYXJkY29kaW5nIGl0IHRvIGB0cnVlYCBmb3IgYElEX01UNzYyMWAgYW5kIGBJRF9NVDc1MzBgIC0gaW50ZXJlc3RpbmcuIFRoZSBtZWF0IG9mIGl0IGFwcGVhcnMgdG8gYmUgaW4gYG10NzUzMF9zZXR1cCgpYCwgd2hlcmUgdGhpcyBgYnJva2VuX2VlZWAgZmxhZyBpcyB1c2VkIHRvIGRpc2FibGUgRUVFIGFkdmVydGlzZW1lbnQgdGhyb3VnaCBgbXQ3NTMwX3BoeV93cml0ZV9jNDUoKWAuIFNlZW1zIGxpa2UgaXQmIzM5O3MgYWRkcmVzc2luZyBhbiBpc3N1ZSB3aGVyZSBFRUUgaXNuJiMzOTt0IHdvcmtpbmcgY29ycmVjdGx5IG9uIHRob3NlIHNwZWNpZmljIHN3aXRjaCB2YXJpYW50cy4KCk15IGluaXRpYWwgdGhvdWdodCBpcywgaG93IGRvIEkgYWN0dWFsbHkgKnRlc3QqIHRoaXM/IFRoaXMgaXMgYSBEU0Egc3dpdGNoIGRyaXZlciwgd2hpY2ggbWVhbnMgaXQmIzM5O3MgZGVzaWduZWQgdG8gaW50ZXJhY3Qgd2l0aCBwaHlzaWNhbCBoYXJkd2FyZS4gRFNBIHN3aXRjaGVzIGFyZSBnZW5lcmFsbHkgbm90IHNvbWV0aGluZyB5b3UgY2FuIGp1c3QgY29uanVyZSB1cCBpbiBhIHN0YW5kYXJkIHZpcnR1YWwgZW52aXJvbm1lbnQgbGlrZSBRRU1VLiBUaGV54oCZcmUgaGFyZHdpcmVkIGludG8gdGhlIHN5c3RlbS4gSXQmIzM5O3MgbGlrZWx5IHRoYXQgYSBRRU1VIHNldHVwIHdvdWxkbiYjMzk7dCB0cmlnZ2VyIGFueSBvZiB0aGlzIGNvZGUuCgpJIG5lZWQgdG8gY29uZmlybSBpZiB0aGVyZSBpcyBzb21lIHdheSB0byBlbXVsYXRlIG9yIHRyaWdnZXIgdGhlIGNvZGUuIEkmIzM5O2xsIG5lZWQgdG8gZGlnIGludG8gYGRyaXZlcnMvbmV0L2RzYS9tdDc1MzAuY2AgdG8gbG9vayBmb3IgaG9va3MgaW50byB0aGUgbmV0d29yayBzdGFjaywgb3Igd2F5cyB0aGUgTURJTyBjb3VsZCBiZSB1c2VkIHRvIHdyaXRlIHRoZSB0aGUgUEhZIHJlZ2lzdGVycy4gSSYjMzk7bGwgYWxzbyBjaGVjayBpZiBpdCYjMzk7cyBhIHBsYXRmb3JtIGRyaXZlciBvciBNRElPIGRyaXZlci4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yMCAyMDo0NzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDttdDc1MzBfc2V0dXAmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9kc2EvbXQ3NTMwLmMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZHNhL210NzUzMC5jPTM3Mz1zdGF0aWMgdm9pZFxuZHJpdmVycy9uZXQvZHNhL210NzUzMC5jOjM3NDptdDc1MzBfc2V0dXBfcG9ydDYoc3RydWN0IGRzYV9zd2l0Y2ggKmRzLCBwaHlfaW50ZXJmYWNlX3QgaW50ZXJmYWNlKVxuZHJpdmVycy9uZXQvZHNhL210NzUzMC5jLTM3NS17XG4tLVxuZHJpdmVycy9uZXQvZHNhL210NzUzMC5jPTEwNDY9c3RhdGljIGNvbnN0IGNoYXIgKm10NzUzMF9wNV9tb2RlX3N0cih1bnNpZ25lZCBpbnQgbW9kZSlcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXQ3NTMwLmMtMTA1Ny1cbmRyaXZlcnMvbmV0L2RzYS9tdDc1MzAuYzoxMDU4OnN0YXRpYyB2b2lkIG10NzUzMF9zZXR1cF9wb3J0NShzdHJ1Y3QgZHNhX3N3aXRjaCAqZHMsIHBoeV9pbnRlcmZhY2VfdCBpbnRlcmZhY2UpXG5kcml2ZXJzL25ldC9kc2EvbXQ3NTMwLmMtMTA1OS17XG4tLVxuZHJpdmVycy9uZXQvZHNhL210NzUzMC5jPTE2NDM9c3RhdGljIGludFxuZHJpdmVycy9uZXQvZHNhL210NzUzMC5jOjE2NDQ6bXQ3NTMwX3NldHVwX3ZsYW4wKHN0cnVjdCBtdDc1MzBfcHJpdiAqcHJpdilcbmRyaXZlcnMvbmV0L2RzYS9tdDc1MzAuYy0xNjQ1LXtcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXQ3NTMwLmM9MTY2MD1tdDc1MzBfcG9ydF9zZXRfdmxhbl91bmF3YXJlKHN0cnVjdCBkc2Ffc3dpdGNoICpkcywgaW50IHBvcnQpXG4tLVxuZHJpdmVycy9uZXQvZHNhL210NzUzMC5jLTE2OTctXHRcdG11dGV4X2xvY2soXHUwMDI2cHJpdi1cdTAwM2VyZWdfbXV0ZXgpO1xuZHJpdmVycy9uZXQvZHNhL210NzUzMC5jOjE2OTg6XHRcdG10NzUzMF9zZXR1cF92bGFuMChwcml2KTtcbmRyaXZlcnMvbmV0L2RzYS9tdDc1MzAuYy0xNjk5LVx0XHRtdXRleF91bmxvY2soXHUwMDI2cHJpdi1cdTAwM2VyZWdfbXV0ZXgpO1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9tdDc1MzAuYz0xOTkyPW10NzUzMF9wb3J0X3ZsYW5fYWRkKHN0cnVjdCBkc2Ffc3dpdGNoICpkcywgaW50IHBvcnQsXG4tLVxuZHJpdmVycy9uZXQvZHNhL210NzUzMC5jLTIwMDItXG5kcml2ZXJzL25ldC9kc2EvbXQ3NTMwLmM6MjAwMzpcdC8qIFZJRCAwIGlzIG1hbmFnZWQgZXhjbHVzaXZlbHkgYnkgbXQ3NTMwX3NldHVwX3ZsYW4wKCkgZm9yXG5kcml2ZXJzL25ldC9kc2EvbXQ3NTMwLmMtMjAwNC1cdCAqIFZMQU4tdW5hd2FyZSBicmlkZ2Ugb3BlcmF0aW9uLiBEb24mIzM5O3QgbGV0IHRoZSBicmlkZ2Ugb3ZlcndyaXRlXG4tLVxuZHJpdmVycy9uZXQvZHNhL210NzUzMC5jPTIwNDY9bXQ3NTMwX3BvcnRfdmxhbl9kZWwoc3RydWN0IGRzYV9zd2l0Y2ggKmRzLCBpbnQgcG9ydCxcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXQ3NTMwLmMtMjA1My1cbmRyaXZlcnMvbmV0L2RzYS9tdDc1MzAuYzoyMDU0Olx0LyogVklEIDAgaXMgbWFuYWdlZCBleGNsdXNpdmVseSBieSBtdDc1MzBfc2V0dXBfdmxhbjAoKS4gKi9cbmRyaXZlcnMvbmV0L2RzYS9tdDc1MzAuYy0yMDU1LVx0aWYgKHZsYW4tXHUwMDNldmlkID09IDApXG4tLVxuZHJpdmVycy9uZXQvZHNhL210NzUzMC5jPTIyMjk9c3RhdGljIGludFxuZHJpdmVycy9uZXQvZHNhL210NzUzMC5jOjIyMzA6bXQ3NTMwX3NldHVwX2dwaW8oc3RydWN0IG10NzUzMF9wcml2ICpwcml2KVxuZHJpdmVycy9uZXQvZHNhL210NzUzMC5jLTIyMzEte1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9tdDc1MzAuYz0yMjU5PXN0YXRpYyB2b2lkXG5kcml2ZXJzL25ldC9kc2EvbXQ3NTMwLmM6MjI2MDptdDc1MzBfc2V0dXBfbWRpb19pcnEoc3RydWN0IG10NzUzMF9wcml2ICpwcml2KVxuZHJpdmVycy9uZXQvZHNhL210NzUzMC5jLTIyNjEte1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9tdDc1MzAuYz0yMzA5PXN0YXRpYyBpbnRcbmRyaXZlcnMvbmV0L2RzYS9tdDc1MzAuYzoyMzEwOm10NzUzMF9zZXR1cF9pcnEoc3RydWN0IG10NzUzMF9wcml2ICpwcml2KVxuZHJpdmVycy9uZXQvZHNhL210NzUzMC5jLTIzMTEte1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9tdDc1MzAuYz0yMzYwPXN0YXRpYyBpbnRcbmRyaXZlcnMvbmV0L2RzYS9tdDc1MzAuYzoyMzYxOm10NzUzMF9zZXR1cF9tZGlvKHN0cnVjdCBtdDc1MzBfcHJpdiAqcHJpdilcbmRyaXZlcnMvbmV0L2RzYS9tdDc1MzAuYy0yMzYyLXtcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXQ3NTMwLmMtMjM5NC1cdGlmIChwcml2LVx1MDAzZWlycV9kb21haW4gXHUwMDI2XHUwMDI2ICFtbnApXG5kcml2ZXJzL25ldC9kc2EvbXQ3NTMwLmM6MjM5NTpcdFx0bXQ3NTMwX3NldHVwX21kaW9faXJxKHByaXYpO1xuZHJpdmVycy9uZXQvZHNhL210NzUzMC5jLTIzOTYtXG4tLVxuZHJpdmVycy9uZXQvZHNhL210NzUzMC5jPTI0MDk9c3RhdGljIGludFxuZHJpdmVycy9uZXQvZHNhL210NzUzMC5jOjI0MTA6bXQ3NTMwX3NldHVwKHN0cnVjdCBkc2Ffc3dpdGNoICpkcylcbmRyaXZlcnMvbmV0L2RzYS9tdDc1MzAuYy0yNDExLXtcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXQ3NTMwLmMtMjU2OC1cdC8qIFNldHVwIFZMQU4gSUQgMCBmb3IgVkxBTi11bmF3YXJlIGJyaWRnZXMgKi9cbmRyaXZlcnMvbmV0L2RzYS9tdDc1MzAuYzoyNTY5Olx0cmV0ID0gbXQ3NTMwX3NldHVwX3ZsYW4wKHByaXYpO1xuZHJpdmVycy9uZXQvZHNhL210NzUzMC5jLTI1NzAtXHRpZiAocmV0KVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9tdDc1MzAuYy0yNjEzLVx0XHRcdG10NzUzMF9jbGVhcihwcml2LCBNVDc1M1hfTVRSQVAsIE1UNzUzMF9QNV9ESVMpO1xuZHJpdmVycy9uZXQvZHNhL210NzUzMC5jOjI2MTQ6XHRcdFx0bXQ3NTMwX3NldHVwX3BvcnQ1KGRzLCBpbnRlcmZhY2UpO1xuZHJpdmVycy9uZXQvZHNhL210NzUzMC5jLTI2MTUtXHRcdH1cbi0tXG5kcml2ZXJzL25ldC9kc2EvbXQ3NTMwLmMtMjYxOS1cdGlmIChvZl9wcm9wZXJ0eV9yZWFkX2Jvb2wocHJpdi1cdTAwM2VkZXYtXHUwMDNlb2Zfbm9kZSwgXCYjMzQ7Z3Bpby1jb250cm9sbGVyXCYjMzQ7KSkge1xuZHJpdmVycy9uZXQvZHNhL210NzUzMC5jOjI2MjA6XHRcdHJldCA9IG10NzUzMF9zZXR1cF9ncGlvKHByaXYpO1xuZHJpdmVycy9uZXQvZHNhL210NzUzMC5jLTI2MjEtXHRcdGlmIChyZXQpXG4tLVxuZHJpdmVycy9uZXQvZHNhL210NzUzMC5jPTI2MzU9bXQ3NTMxX3NldHVwX2NvbW1vbihzdHJ1Y3QgZHNhX3N3aXRjaCAqZHMpXG4tLVxuZHJpdmVycy9uZXQvZHNhL210NzUzMC5jLTI3MDEtXHQvKiBTZXR1cCBWTEFOIElEIDAgZm9yIFZMQU4tdW5hd2FyZSBicmlkZ2VzICovXG5kcml2ZXJzL25ldC9kc2EvbXQ3NTMwLmM6MjcwMjpcdHJldHVybiBtdDc1MzBfc2V0dXBfdmxhbjAocHJpdik7XG5kcml2ZXJzL25ldC9kc2EvbXQ3NTMwLmMtMjcwMy19XG4tLVxuZHJpdmVycy9uZXQvZHNhL210NzUzMC5jPTI5MTU9bXQ3NTMwX21hY19jb25maWcoc3RydWN0IGRzYV9zd2l0Y2ggKmRzLCBpbnQgcG9ydCwgdW5zaWduZWQgaW50IG1vZGUsXG4tLVxuZHJpdmVycy9uZXQvZHNhL210NzUzMC5jLTI5MjAtXHRpZiAocG9ydCA9PSA1KVxuZHJpdmVycy9uZXQvZHNhL210NzUzMC5jOjI5MjE6XHRcdG10NzUzMF9zZXR1cF9wb3J0NShwcml2LVx1MDAzZWRzLCBpbnRlcmZhY2UpO1xuZHJpdmVycy9uZXQvZHNhL210NzUzMC5jLTI5MjItXHRlbHNlIGlmIChwb3J0ID09IDYpXG5kcml2ZXJzL25ldC9kc2EvbXQ3NTMwLmM6MjkyMzpcdFx0bXQ3NTMwX3NldHVwX3BvcnQ2KHByaXYtXHUwMDNlZHMsIGludGVyZmFjZSk7XG5kcml2ZXJzL25ldC9kc2EvbXQ3NTMwLmMtMjkyNC19XG4tLVxuZHJpdmVycy9uZXQvZHNhL210NzUzMC5jPTMxODU9bXQ3NTN4X3NldHVwKHN0cnVjdCBkc2Ffc3dpdGNoICpkcylcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXQ3NTMwLmMtMzE5My1cbmRyaXZlcnMvbmV0L2RzYS9tdDc1MzAuYzozMTk0Olx0cmV0ID0gbXQ3NTMwX3NldHVwX2lycShwcml2KTtcbmRyaXZlcnMvbmV0L2RzYS9tdDc1MzAuYy0zMTk1LVx0aWYgKHJldClcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXQ3NTMwLmMtMzE5Ny1cbmRyaXZlcnMvbmV0L2RzYS9tdDc1MzAuYzozMTk4Olx0cmV0ID0gbXQ3NTMwX3NldHVwX21kaW8ocHJpdik7XG5kcml2ZXJzL25ldC9kc2EvbXQ3NTMwLmMtMzE5OS1cdGlmIChyZXQpXG4tLVxuZHJpdmVycy9uZXQvZHNhL210NzUzMC5jPTMzOTc9Y29uc3Qgc3RydWN0IG10NzUzeF9pbmZvIG10NzUzeF90YWJsZVtdID0ge1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9tdDc1MzAuYy0zNDAxLVx0XHQucGNzX29wcyA9IFx1MDAyNm10NzUzMF9wY3Nfb3BzLFxuZHJpdmVycy9uZXQvZHNhL210NzUzMC5jOjM0MDI6XHRcdC5zd19zZXR1cCA9IG10NzUzMF9zZXR1cCxcbmRyaXZlcnMvbmV0L2RzYS9tdDc1MzAuYy0zNDAzLVx0XHQucGh5X3JlYWRfYzIyID0gbXQ3NTMwX3BoeV9yZWFkX2MyMixcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXQ3NTMwLmMtMzQxMy1cdFx0LnBjc19vcHMgPSBcdTAwMjZtdDc1MzBfcGNzX29wcyxcbmRyaXZlcnMvbmV0L2RzYS9tdDc1MzAuYzozNDE0Olx0XHQuc3dfc2V0dXAgPSBtdDc1MzBfc2V0dXAsXG5kcml2ZXJzL25ldC9kc2EvbXQ3NTMwLmMtMzQxNS1cdFx0LnBoeV9yZWFkX2MyMiA9IG10NzUzMF9waHlfcmVhZF9jMjIsXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjAgMjA6NDc8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNTc4MwoJCQkJCQkJb3V0cHV0OiAzOQoJCQkJCQkJdGhvdWdodHM6IDExNgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipJbnZlc3RpZ2F0aW5nIHRoZSBSZWFjaGFiaWxpdHkgb2YgdGhlIE1UNzUzMC9NVDc1MzEvTVQ3NjIxIE1ESU8gRHJpdmVyIGluIFFFTVUqKgoKT2theSwgc28gSSYjMzk7bSB0cnlpbmcgdG8gZmlndXJlIG91dCBpZiBJIGNhbiBnZXQgdGhpcyBNVDc1MzAvTVQ3NTMxL01UNzYyMSBNRElPIGRyaXZlciB0byBmaXJlIHVwIHdpdGhpbiBhIFFFTVUgZW52aXJvbm1lbnQuIEl0JiMzOTtzIGFuIE1ESU8gZHJpdmVyLCB3aGljaCBtZWFucyBpdCYjMzk7cyByZXNwb25zaWJsZSBmb3IgbWFuYWdpbmcgZGV2aWNlcyBjb25uZWN0ZWQgdmlhIHRoZSBNRElPIGludGVyZmFjZS4gTm93LCB0aGUgY3JpdGljYWwgcXVlc3Rpb24gaXMgd2hldGhlciBRRU1VJiMzOTtzIHNldHVwIHdpbGwgYWxsb3cgbWUgdG8gZXZlbiBoaXQgdGhpcyBjb2RlLiBNeSBleHBlcmllbmNlIHN1Z2dlc3RzIHRoYXQgTURJTyBkZXZpY2VzIGFyZSB0eXBpY2FsbHkgYnJvdWdodCBvbmxpbmUgdGhyb3VnaCB0aGUgZGV2aWNlIHRyZWUuIElmIHRoZSBkZXZpY2UgdHJlZSBjb25maWd1cmF0aW9uIGRvZXNuJiMzOTt0IGV4cGxpY2l0bHkgZGVmaW5lIGEgbm9kZSBmb3IgdGhpcyBwYXJ0aWN1bGFyIGhhcmR3YXJlLCB0aGUgZHJpdmVyIHdpbGwgbGlrZWx5IHJlbWFpbiBkb3JtYW50IOKAkyBub3QgZ2V0dGluZyBwcm9iZWQgYXQgYWxsLgoKU28sIHRoZSBuZXh0IGxvZ2ljYWwgc3RlcCBpcyB0byBkaXZlIGludG8gdGhlIGRyaXZlciYjMzk7cyBjb2RlLCBzcGVjaWZpY2FsbHkgYGRyaXZlcnMvbmV0L2RzYS9tdDc1MzAuY2AsIGFuZCBodW50IGZvciBjbHVlcy4gSSYjMzk7bSBsb29raW5nIGZvciBhIGBNT0RVTEVfREVWSUNFX1RBQkxFYCBvciBhbiBgb2ZfbWF0Y2hfdGFibGVgIHdpdGhpbiB0aGF0IGZpbGUuIFRoZXNlIHRhYmxlcyBhcmUgdGhlIGtleS4gVGhleSBkZWZpbmUgdGhlIGhhcmR3YXJlIGlkZW50aWZpZXJzIHRoYXQgdGhlIGRyaXZlciBpcyBkZXNpZ25lZCB0byByZWNvZ25pemUuIElmIEkgY2FuIGZpbmQgb25lIHRoYXQgYWxpZ25zIHdpdGggd2hhdCBRRU1VIHByb3ZpZGVzIG9yIGNhbiBiZSBjb25maWd1cmVkIHRvIGVtdWxhdGUsIEkmIzM5O20gaW4gYnVzaW5lc3MuIElmIG5vdCwgSSYjMzk7bGwgbmVlZCB0byBsb29rIGF0IGVpdGhlciBtb2RpZnlpbmcgdGhlIGRldmljZSB0cmVlIHdpdGhpbiBRRU1VLCBvciBwb3RlbnRpYWxseSBjcmVhdGluZyBhIG1pbmltYWwgZGV2aWNlIHRyZWUgb3ZlcnJpZGUuIEkmIzM5O2xsIG5lZWQgdG8gYXNzZXNzIHRoZSBwb3NzaWJpbGl0aWVzIQoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzIwIDIwOjQ3PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5FcnJvcjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm5vIG1hdGNoZXM8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7b2ZfbWF0Y2hfdGFibGUmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9kc2EvbXQ3NTMwLmMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7ZXJyb3ImIzM0OzogJiMzNDtubyBtYXRjaGVzJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzIwIDIwOjQ3PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDYyNzIKCQkJCQkJCW91dHB1dDogNDEKCQkJCQkJCXRob3VnaHRzOiAyMwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+SGVyZSYjMzk7cyBteSBhdHRlbXB0IGF0IHN1bW1hcml6aW5nIHRoZSB0aG91Z2h0IHByb2Nlc3MsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2UgYW5kIHdyaXR0ZW4gaW4gdGhlIGZpcnN0IHBlcnNvbjoKCioqTURJTyBEcml2ZXIgSW52ZXN0aWdhdGlvbjogSW5pdGlhbCBTdGVwcyoqCgpPa2F5LCBzbyB3ZSYjMzk7cmUgZGVhbGluZyB3aXRoIGFuIE1ESU8gZHJpdmVyLiBNeSBpbml0aWFsIGluc3RpbmN0IGlzIHRvIGp1bXAgc3RyYWlnaHQgdG8gdGhlIHByb2JlIGZ1bmN0aW9uLCBwYXJ0aWN1bGFybHkgYG10NzUzMF9wcm9iZWAuIFRoYXQmIzM5O3Mgd2hlcmUgdGhlIGNyaXRpY2FsIGluaXRpYWxpemF0aW9uIGFuZCBkZXZpY2Ugc2V0dXAgdHlwaWNhbGx5IGhhcHBlbnMsIGFuZCB3aGVyZSB0aGUgZHJpdmVyIHNob3VsZCBiZSBpZGVudGlmeWluZyBhbmQgY29uZmlndXJpbmcgdGhlIHNwZWNpZmljIGhhcmR3YXJlLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCB3aGF0JiMzOTtzIGhhcHBlbmluZyBhdCB0aGUgcG9pbnQgb2YgZGV0ZWN0aW9uLiBMZXQmIzM5O3Mgc2VlIHdoYXQmIzM5O3MgZ29pbmcgb24gdGhlcmUuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjAgMjA6NDc8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7bXQ3NTMwX3Byb2JlJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZHNhL210NzUzMC5jJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2RzYS9tdDc1MzAuYz0zNDY2PWludFxuZHJpdmVycy9uZXQvZHNhL210NzUzMC5jOjM0Njc6bXQ3NTMwX3Byb2JlX2NvbW1vbihzdHJ1Y3QgbXQ3NTMwX3ByaXYgKnByaXYpXG5kcml2ZXJzL25ldC9kc2EvbXQ3NTMwLmMtMzQ2OC17XG4tLVxuZHJpdmVycy9uZXQvZHNhL210NzUzMC5jLTM0OTctfVxuZHJpdmVycy9uZXQvZHNhL210NzUzMC5jOjM0OTg6RVhQT1JUX1NZTUJPTF9HUEwobXQ3NTMwX3Byb2JlX2NvbW1vbik7XG5kcml2ZXJzL25ldC9kc2EvbXQ3NTMwLmMtMzQ5OS1cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD45LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yMCAyMDo0NzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA2NjM2CgkJCQkJCQlvdXRwdXQ6IDM2CgkJCQkJCQl0aG91Z2h0czogMjcKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgYSBzdW1tYXJ5IG9mIG15IHRob3VnaHQgcHJvY2VzczoKCioqRGl2aW5nIGludG8gdGhlIGBtdDc1MzBfcHJvYmVfY29tbW9uYCBGdW5jdGlvbioqCgpPa2F5LCBzbyBgbXQ3NTMwX3Byb2JlX2NvbW1vbmAgaXMgYW4gZXhwb3J0ZWQgZnVuY3Rpb24sIHdoaWNoIG1lYW5zIGl0JiMzOTtzIGF2YWlsYWJsZSBmb3Igb3RoZXIgcGFydHMgb2YgdGhlIGtlcm5lbCB0byB1c2UuIFRoYXQgaW1tZWRpYXRlbHkgcGlxdWVzIG15IGludGVyZXN0LiBJIG5lZWQgdG8gdW5kZXJzdGFuZCBpdHMgY29udGV4dCBhbmQgaG93IGl0JiMzOTtzIGJlaW5nIGxldmVyYWdlZCB3aXRoaW4gdGhlIHN5c3RlbS4gTXkgbmV4dCBzdGVwLCBuYXR1cmFsbHksIGlzIHRvIGZpZ3VyZSBvdXQgdGhlIGNhbGwgc2l0ZXMuIEkgbmVlZCB0byB0cmFjayBkb3duIGV2ZXJ5d2hlcmUgdGhpcyBwYXJ0aWN1bGFyIGZ1bmN0aW9uIGlzIGJlaW5nIGludm9rZWQgdG8gZ2V0IGEgZ3Jhc3Agb2YgaXRzIHJvbGUgYW5kIHNpZ25pZmljYW5jZS4gVW5kZXJzdGFuZGluZyB3aGVyZSBpdCYjMzk7cyB1c2VkIGlzIGtleSB0byB1bmRlcnN0YW5kaW5nIHdoYXQgaXQgZG9lcy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjAgMjA6NDc8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7bXQ3NTMwX3Byb2JlX2NvbW1vbiYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2RzYS8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZHNhL210NzUzMC1tZGlvLmM9MTU1PW10NzUzMF9wcm9iZShzdHJ1Y3QgbWRpb19kZXZpY2UgKm1kaW9kZXYpXG4tLVxuZHJpdmVycy9uZXQvZHNhL210NzUzMC1tZGlvLmMtMTcwLVxuZHJpdmVycy9uZXQvZHNhL210NzUzMC1tZGlvLmM6MTcxOlx0cmV0ID0gbXQ3NTMwX3Byb2JlX2NvbW1vbihwcml2KTtcbmRyaXZlcnMvbmV0L2RzYS9tdDc1MzAtbWRpby5jLTE3Mi1cdGlmIChyZXQpXG4tLVxuZHJpdmVycy9uZXQvZHNhL210NzUzMC1tbWlvLmM9Mjk9bXQ3OTg4X3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpXG4tLVxuZHJpdmVycy9uZXQvZHNhL210NzUzMC1tbWlvLmMtNDEtXG5kcml2ZXJzL25ldC9kc2EvbXQ3NTMwLW1taW8uYzo0MjpcdHJldCA9IG10NzUzMF9wcm9iZV9jb21tb24ocHJpdik7XG5kcml2ZXJzL25ldC9kc2EvbXQ3NTMwLW1taW8uYy00My1cdGlmIChyZXQpXG4tLVxuZHJpdmVycy9uZXQvZHNhL210NzUzMC5jPTM0NjY9aW50XG5kcml2ZXJzL25ldC9kc2EvbXQ3NTMwLmM6MzQ2NzptdDc1MzBfcHJvYmVfY29tbW9uKHN0cnVjdCBtdDc1MzBfcHJpdiAqcHJpdilcbmRyaXZlcnMvbmV0L2RzYS9tdDc1MzAuYy0zNDY4LXtcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXQ3NTMwLmMtMzQ5Ny19XG5kcml2ZXJzL25ldC9kc2EvbXQ3NTMwLmM6MzQ5ODpFWFBPUlRfU1lNQk9MX0dQTChtdDc1MzBfcHJvYmVfY29tbW9uKTtcbmRyaXZlcnMvbmV0L2RzYS9tdDc1MzAuYy0zNDk5LVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9tdDc1MzAuaD05NDE9c3RhdGljIGlubGluZSB2b2lkIElOSVRfTVQ3NTMwX0RVTU1ZX1BPTEwoc3RydWN0IG10NzUzMF9kdW1teV9wb2xsICpwLFxuLS1cbmRyaXZlcnMvbmV0L2RzYS9tdDc1MzAuaC05NDctXG5kcml2ZXJzL25ldC9kc2EvbXQ3NTMwLmg6OTQ4OmludCBtdDc1MzBfcHJvYmVfY29tbW9uKHN0cnVjdCBtdDc1MzBfcHJpdiAqcHJpdik7XG5kcml2ZXJzL25ldC9kc2EvbXQ3NTMwLmgtOTQ5LXZvaWQgbXQ3NTMwX3JlbW92ZV9jb21tb24oc3RydWN0IG10NzUzMF9wcml2ICpwcml2KTtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjAgMjA6NDc8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNzQzOAoJCQkJCQkJb3V0cHV0OiA0MgoJCQkJCQkJdGhvdWdodHM6IDUxCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBsZXQmIzM5O3MgZGl2ZSBpbnRvIHRoaXMuIEhlcmUmIzM5O3MgaG93IEkmIzM5O2QgYXBwcm9hY2ggdGhpcyB0YXNrLCBhcyBpZiB0aGVzZSB3ZXJlIG15IGludGVybmFsIHRob3VnaHRzOgoKKipDaGVja2luZyBEZXZpY2UgVHJlZSBCaW5kaW5nIGluIE1UNzUzMCBEcml2ZXIgQ29kZSoqCgpSaWdodCwgc28gSSBuZWVkIHRvIHVuZGVyc3RhbmQgaG93IHRoZSBNVDc1MzAgc3dpdGNoIGRyaXZlciBpbnRlcmFjdHMgd2l0aCB0aGUgZGV2aWNlIHRyZWUuIE15IGZpcnN0IGluc3RpbmN0LCBnaXZlbiB0aGUgY29udGV4dCwgaXMgdG8gY2hlY2sgdGhlIGBvZl9tYXRjaF90YWJsZWAgaW1wbGVtZW50YXRpb24gaW4gdGhlIE1UNzUzMCBkcml2ZXIgY29kZS4gU3BlY2lmaWNhbGx5LCBJJiMzOTtsbCBiZSBsb29raW5nIGluIHRoZSBgZHJpdmVycy9uZXQvZHNhL210NzUzMC1tZGlvLmNgIGFuZCBgZHJpdmVycy9uZXQvZHNhL210NzUzMC1tbWlvLmNgIGZpbGVzLiBJJiMzOTttIGZvY3VzaW5nIG9uIHRob3NlIHR3byBiZWNhdXNlIHRoZXkgbGlrZWx5IGhhbmRsZSB0aGUgZGlmZmVyZW50IGNvbW11bmljYXRpb24gaW50ZXJmYWNlcyBmb3IgdGhlIHN3aXRjaDogTURJTyAobWFuYWdlbWVudCBkYXRhIEkvTykgYW5kIE1NSU8gKG1lbW9yeS1tYXBwZWQgSS9PKS4gVGhlIGBvZl9tYXRjaF90YWJsZWAgaXMsIG9mIGNvdXJzZSwgdGhlIGtleSBkYXRhIHN0cnVjdHVyZS4gSSBuZWVkIHRvIHNlZSBob3cgdGhlIGRyaXZlciBpZGVudGlmaWVzIGFuZCBiaW5kcyB0byB0aGUgY29ycmVjdCBkZXZpY2Ugbm9kZXMgaW4gdGhlIGRldmljZSB0cmVlLiBJJiMzOTttIGV4cGVjdGluZyB0byBmaW5kIGVudHJpZXMgdGhhdCBtYXRjaCBzcGVjaWZpYyAmIzM0O2NvbXBhdGlibGUmIzM0OyBzdHJpbmdzIG9yIG90aGVyIHByb3BlcnRpZXMgZGVmaW5lZCBmb3IgdGhlIE1UNzUzMCwgYWxsb3dpbmcgdGhlIGRyaXZlciB0byBpbml0aWFsaXplIGNvcnJlY3RseS4gSXQmIzM5O3MgYSBmdW5kYW1lbnRhbCBwYXJ0IG9mIHRoZSBkZXZpY2UgZHJpdmVyJiMzOTtzIGJvb3RzdHJhcCBzZXF1ZW5jZS4gSSYjMzk7bGwgbmVlZCB0byByZXZpZXcgaG93IHRoZXNlIGBvZl9tYXRjaF90YWJsZWAgZW50cmllcyBhcmUgc3RydWN0dXJlZCwgYW55IGNvcnJlc3BvbmRpbmcgaW5pdGlhbGl6YXRpb24gb3IgcHJvYmUgZnVuY3Rpb25zIHRoYXQgcmVseSBvbiB0aGVtLCBhbmQgaG93IHRoZSBkcml2ZXIgdWx0aW1hdGVseSBoYW5kbGVzIHJlc291cmNlIGFsbG9jYXRpb24gYmFzZWQgb24gdGhlIERUIGJpbmRpbmcuIEkgd2lsbCBlbnN1cmUgdGhhdCB0aGUgZHJpdmVyIHdpbGwgYmUgYm91bmQgY29ycmVjdGx5IGFuZCB0aGF0IHJlc291cmNlcyBhcmUgaW5pdGlhbGl6ZWQuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTIvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzIwIDIwOjQ3PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O29mX21hdGNoX3RhYmxlJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZHNhL210NzUzMC1tZGlvLmMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZHNhL210NzUzMC1tZGlvLmM9MjU4PXN0YXRpYyBzdHJ1Y3QgbWRpb19kcml2ZXIgbXQ3NTMwX21kaW9fZHJpdmVyID0ge1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9tdDc1MzAtbWRpby5jLTI2My1cdFx0Lm5hbWUgPSBcJiMzNDttdDc1MzAtbWRpb1wmIzM0OyxcbmRyaXZlcnMvbmV0L2RzYS9tdDc1MzAtbWRpby5jOjI2NDpcdFx0Lm9mX21hdGNoX3RhYmxlID0gbXQ3NTMwX29mX21hdGNoLFxuZHJpdmVycy9uZXQvZHNhL210NzUzMC1tZGlvLmMtMjY1LVx0fSxcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMy8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjAgMjA6NDc8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogODAyMQoJCQkJCQkJb3V0cHV0OiA0NgoJCQkJCQkJdGhvdWdodHM6IDEyCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIHRoZSBzdW1tYXJ5LCByZW5kZXJlZCBhcyBpZiBJJiMzOTttIHRoZSBvbmUgdGhpbmtpbmcgaXQ6CgoqKkNvbnNpZGVyaW5nIHRoZSBtdDc1MzBfb2ZfbWF0Y2ggRnVuY3Rpb24qKgoKQWxyaWdodCwgbGV0JiMzOTtzIGJyZWFrIGRvd24gdGhpcyBgbXQ3NTMwX29mX21hdGNoYCBmdW5jdGlvbi4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzLCB0aGlzIGlzIHByb2JhYmx5IGEgY3J1Y2lhbCBwaWVjZSBvZiBkZXZpY2UgdHJlZSBoYW5kbGluZyBmb3IgYW4gTVQ3NTMwLWJhc2VkIHN5c3RlbS4gR2l2ZW4gbXkgYmFja2dyb3VuZCwgSSYjMzk7bSBleHBlY3RpbmcgdGhpcyBmdW5jdGlvbiB0byBiZSBpbnZvbHZlZCBpbiBwcm9iaW5nLCBhbmQgbWF0Y2hpbmcgYSBkZXZpY2Ugbm9kZSBpbiB0aGUgZGV2aWNlIHRyZWUgdG8gYSBkcml2ZXIgaW5zdGFuY2UuIFNwZWNpZmljYWxseSwgaXQmIzM5O3MgdmVyeSBsaWtlbHkgYWN0aW5nIGFzIHRoZSBjYWxsYmFjayBmdW5jdGlvbiB3aXRoaW4gdGhlICYjMzQ7b2ZfbWF0Y2hfdGFibGUmIzM0OyBzdHJ1Y3R1cmUsIGxpa2VseSBjb21wYXJpbmcgc29tZSBwcm9wZXJ0aWVzIHdpdGhpbiB0aGUgZGV2aWNlIHRyZWUgbm9kZSAocGVyaGFwcyBjb21wYXRpYmxlIHN0cmluZ3MsIG9yIHNvbWUgY3VzdG9tIHBsYXRmb3JtIGRhdGEpIGFnYWluc3QgYSBwcmVkZWZpbmVkIHRhYmxlIG9mIHN1cHBvcnRlZCBjb25maWd1cmF0aW9ucy4KCkkmIzM5O20gbWVudGFsbHkgcnVubmluZyB0aHJvdWdoIHRoZSB0eXBpY2FsIHNlcXVlbmNlOiB0aGUga2VybmVsIGlkZW50aWZpZXMgYSBkZXZpY2UsIHRyaWVzIHRvIGZpbmQgYSBzdWl0YWJsZSBkcml2ZXIuIEl0IGNoZWNrcyB0aGUgZGV2aWNlJiMzOTtzIHByb3BlcnRpZXMgYWdhaW5zdCB0aGUgY29tcGF0aWJsZSBzdHJpbmdzIGRlZmluZWQgaW4gYSBtYXRjaCB0YWJsZS4gV2hlbiB0aGVyZSBpcyBhIG1hdGNoLCB0aGVuIHRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkLCB0byBjb25maXJtIHRoZSBkcml2ZXIgc2hvdWxkIGF0dGFjaCB0byB0aGlzIGRldmljZS4gTXkgZXhwZXJpZW5jZSB0ZWxscyBtZSB0aGF0IHRoaXMgZnVuY3Rpb24gZG9lcyBub3QgYWN0dWFsbHkgcHJvYmUgdGhlIGhhcmR3YXJlLiBJdCBpcyBmb3IgZGV2aWNlIHRyZWUgbWF0Y2hpbmcuCgpJIG5lZWQgdG8gY29uZmlybSB3aGV0aGVyIHRoZSBmdW5jdGlvbiBpcyBtZWFudCB0byBqdXN0IGJlIGEgc2ltcGxlICYjMzQ7Y29tcGF0aWJsZSYjMzQ7IHN0cmluZyBtYXRjaCBvciBpZiBpdCYjMzk7cyBkZXNpZ25lZCB0byBkbyBhIHNsaWdodGx5IG1vcmUgY29tcGxleCBjaGVjaywgcGVyaGFwcyB2YWxpZGF0aW5nIG90aGVyIGFzcGVjdHMgb2YgdGhlIGRldmljZSB0cmVlIG5vZGUgYmV5b25kIGp1c3QgdGhlICYjMzQ7Y29tcGF0aWJsZSYjMzQ7IHByb3BlcnR5LiBUaGlzIGNvdWxkIGludm9sdmUgY2hlY2tpbmcgZm9yIHRoZSBwcmVzZW5jZS9hYnNlbmNlIG9mIHNwZWNpZmljIHByb3BlcnRpZXMsIHZlcmlmeWluZyB0aGVpciB2YWx1ZXMsIG9yIGV2ZW4gcG90ZW50aWFsbHkgcmV0cmlldmluZyBzb21lIGluaXRpYWwgY29uZmlndXJhdGlvbiBwYXJhbWV0ZXJzLiBJIHdhbnQgdG8gbG9vayBtb3JlIGRlZXBseSBpbnRvIHRoZSBzb3VyY2UgY29kZSB0byBnZXQgYSBjb21wcmVoZW5zaXZlIHVuZGVyc3RhbmRpbmcgb2YgdGhlIGxvZ2ljLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE0LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yMCAyMDo0NzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDttdDc1MzBfb2ZfbWF0Y2gmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9kc2EvbXQ3NTMwLW1kaW8uYyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9kc2EvbXQ3NTMwLW1kaW8uYz05MT1tdDc1MzFfY3JlYXRlX3NnbWlpKHN0cnVjdCBtdDc1MzBfcHJpdiAqcHJpdilcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXQ3NTMwLW1kaW8uYy0xMzctXG5kcml2ZXJzL25ldC9kc2EvbXQ3NTMwLW1kaW8uYzoxMzg6c3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgbXQ3NTMwX29mX21hdGNoW10gPSB7XG5kcml2ZXJzL25ldC9kc2EvbXQ3NTMwLW1kaW8uYy0xMzktXHR7IC5jb21wYXRpYmxlID0gXCYjMzQ7bWVkaWF0ZWssbXQ3NjIxXCYjMzQ7LCAuZGF0YSA9IFx1MDAyNm10NzUzeF90YWJsZVtJRF9NVDc2MjFdLCB9LFxuLS1cbmRyaXZlcnMvbmV0L2RzYS9tdDc1MzAtbWRpby5jLTE0My19O1xuZHJpdmVycy9uZXQvZHNhL210NzUzMC1tZGlvLmM6MTQ0Ok1PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIG10NzUzMF9vZl9tYXRjaCk7XG5kcml2ZXJzL25ldC9kc2EvbXQ3NTMwLW1kaW8uYy0xNDUtXG4tLVxuZHJpdmVycy9uZXQvZHNhL210NzUzMC1tZGlvLmM9MjU4PXN0YXRpYyBzdHJ1Y3QgbWRpb19kcml2ZXIgbXQ3NTMwX21kaW9fZHJpdmVyID0ge1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9tdDc1MzAtbWRpby5jLTI2My1cdFx0Lm5hbWUgPSBcJiMzNDttdDc1MzAtbWRpb1wmIzM0OyxcbmRyaXZlcnMvbmV0L2RzYS9tdDc1MzAtbWRpby5jOjI2NDpcdFx0Lm9mX21hdGNoX3RhYmxlID0gbXQ3NTMwX29mX21hdGNoLFxuZHJpdmVycy9uZXQvZHNhL210NzUzMC1tZGlvLmMtMjY1LVx0fSxcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjAgMjA6NDc8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogODg0NAoJCQkJCQkJb3V0cHV0OiA0MwoJCQkJCQkJdGhvdWdodHM6IDIwOQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIEZlYXNpYmlsaXR5IG9mIEZ1enppbmcgYSBIYXJkd2FyZSBTd2l0Y2ggRHJpdmVyKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGUgZHJpdmVyIGZvciB0aGlzIE1lZGlhVGVrIHN3aXRjaCDigJMgc3BlY2lmaWNhbGx5IHRoZSBNVDc2MjEsIE1UNzUzMCwgYW5kIE1UNzUzMSB2YXJpYW50cy4gTXkgaW1tZWRpYXRlIGNvbmNlcm4gaXMsIGNhbiBJIGV2ZW4gKnJlYWNoKiB0aGlzIGNvZGUgaW4gYSBzdGFuZGFyZCBmdXp6aW5nIHNldHVwPyBJdCByZWxpZXMgb24gYSBzcGVjaWZpYyBkZXZpY2UgdHJlZSBub2RlLCBhbmQgbW9yZSBpbXBvcnRhbnRseSwgaXQmIzM5O3MgaW50ZXJhY3Rpbmcgd2l0aCBwaHlzaWNhbCBNRElPIG9yIE1NSU8gcmVnaXN0ZXJzLiBNeSBpbml0aWFsIGd1dCBmZWVsaW5nIGlzIGEgZmlybSAmIzM0O25vJiMzNDsuIFFFTVUsIGFzIGZhciBhcyBJIGtub3csIGRvZXNuJiMzOTt0IGVtdWxhdGUgdGhlc2Ugc3BlY2lmaWMgTWVkaWFUZWsgc3dpdGNoZXMsIHNvIHN0cmFpZ2h0IGF3YXksIEkmIzM5O20gdGhpbmtpbmcgYSBnZW5lcmljIGZ1enppbmcgZW52aXJvbm1lbnQgbGlrZSBzeXprYWxsZXIgaXMgYSBkZWFkIGVuZC4KCkkmIzM5O20gcHJldHR5IHN1cmUgdGhhdCB1bmxlc3Mgd2UmIzM5O3JlIGZ1enppbmcgZGlyZWN0bHkgb24gYWN0dWFsIE1lZGlhVGVrIGhhcmR3YXJlLCBvciBRRU1VICpzb21laG93KiBhZGRzIHN1cHBvcnQgZm9yIHRoZXNlICpzcGVjaWZpYyogYm9hcmRzL3N3aXRjaGVzICh3aGljaCBpcyBpbmNyZWRpYmx5IHVubGlrZWx5IGZvciBnZW5lcmljIGZ1enppbmcgcHVycG9zZXMpLCB0aGlzIGNvZGUgcGF0aCBpcyB1bnJlYWNoYWJsZS4KCldhaXQgYSBzZWNvbmQsIHN5emthbGxlciBkb2VzIGhhdmUgZGV2aWNlIHRyZWUgaW5qZWN0aW9uIGNhcGFiaWxpdGllcyEgTWF5YmUgdGhlcmUmIzM5O3MgYSBnbGltbWVyIG9mIGhvcGUuIEJ1dCBldmVuIHdpdGggdGhhdCwgaXQgdXN1YWxseSAqZG9lc24mIzM5O3QqIGVtdWxhdGUgdGhlIGhhcmR3YXJlIHJlZ2lzdGVycy4gU28gaWYgdGhlIGRyaXZlciB0cmllcyB0byByZWFkIGEgaGFyZHdhcmUgSUQgb3IgaW50ZXJhY3Qgd2l0aCB0aGUgaGFyZHdhcmUgcmVnaXN0ZXJzLCB3ZSYjMzk7cmUgbGlrZWx5IGdvaW5nIHRvIGdldCBhIGZhaWx1cmUgb3IgYSBjcmFzaCBiZWNhdXNlIHRoZSBoYXJkd2FyZSB3b24mIzM5O3QgYmUgdGhlcmUuCgpBbHJpZ2h0LCBsZXQmIzM5O3MgYmFjayB1cCBhIGJpdC4gRmlyc3QgdGhpbmcmIzM5O3MgZmlyc3Q6IEkgbmVlZCB0byBjaGVjayBpZiB0aGlzIGRyaXZlciAqYWN0dWFsbHkqIHJlYWRzIGhhcmR3YXJlIHJlZ2lzdGVycyBkdXJpbmcgdGhlIHByb2JlIHByb2Nlc3MuIFRoYXQmIzM5O3MgdGhlIG1ha2Utb3ItYnJlYWsgcXVlc3Rpb24gcmlnaHQgbm93LiBJZiBpdCBkb2VzbiYjMzk7dCBuZWVkIHRvIHJlYWQgYW55IHJlZ2lzdGVycyBmb3IgYmFzaWMgc2V0dXAsIGl0IG1pZ2h0IGp1c3QgKndvcmsqLiBCdXQgSSBoYXZlIHRvIHZlcmlmeSB0aGF0LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE2LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yMCAyMDo0NzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDttdDc1MzBfcHJvYmVfY29tbW9uJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZHNhL210NzUzMC5jJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2RzYS9tdDc1MzAuYz0zNDY2PWludFxuZHJpdmVycy9uZXQvZHNhL210NzUzMC5jOjM0Njc6bXQ3NTMwX3Byb2JlX2NvbW1vbihzdHJ1Y3QgbXQ3NTMwX3ByaXYgKnByaXYpXG5kcml2ZXJzL25ldC9kc2EvbXQ3NTMwLmMtMzQ2OC17XG4tLVxuZHJpdmVycy9uZXQvZHNhL210NzUzMC5jLTM0OTctfVxuZHJpdmVycy9uZXQvZHNhL210NzUzMC5jOjM0OTg6RVhQT1JUX1NZTUJPTF9HUEwobXQ3NTMwX3Byb2JlX2NvbW1vbik7XG5kcml2ZXJzL25ldC9kc2EvbXQ3NTMwLmMtMzQ5OS1cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNy8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjAgMjA6NDc8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogOTYzNwoJCQkJCQkJb3V0cHV0OiA0MwoJCQkJCQkJdGhvdWdodHM6IDE4CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5IZXJlJiMzOTtzIG15IGF0dGVtcHQgYXQgc3VtbWFyaXppbmcgdGhlIHRob3VnaHQgcHJvY2VzcywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZToKCioqRGl2aW5nIGludG8gdGhlIGBtdDc1MzBfcHJvYmVfY29tbW9uYCBGdW5jdGlvbioqCgpPa2F5LCBzbyBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGlzIGBtdDc1MzBfcHJvYmVfY29tbW9uYCBmdW5jdGlvbi4gR2l2ZW4gdGhlIG5hbWluZyBjb252ZW50aW9uLCBJJiMzOTttIGd1ZXNzaW5nIGl0JiMzOTtzIGEgY29tbW9uIHByb2JlIGZ1bmN0aW9uIHNwZWNpZmljYWxseSBmb3IgdGhlIE1lZGlhVGVrIE1UNzUzMCBzd2l0Y2ggY2hpcC4gVGhhdCBsaWtlbHkgbWVhbnMgaXQgaGFuZGxlcyB0aGUgaW5pdGlhbCBzZXR1cCBhbmQgY29uZmlndXJhdGlvbiB0YXNrcyBzaGFyZWQgYWNyb3NzIHZhcmlvdXMgZHJpdmVyIGltcGxlbWVudGF0aW9ucyBmb3IgdGhpcyBoYXJkd2FyZS4gSSB3YW50IHRvIHNlZSB3aGF0IGluaXRpYWxpemF0aW9uIHRoZSBwcm9iZSBmdW5jdGlvbiBoYW5kbGVzLgoKSSYjMzk7bSBwcm9iYWJseSBnb2luZyB0byBiZSBsb29raW5nIGZvciB0aGluZ3MgbGlrZToKCiogICAqKlJlc291cmNlIGFsbG9jYXRpb24qKjogQ2hlY2tpbmcgaG93IGl0IGhhbmRsZXMgSVJRcywgbWVtb3J5IHJlZ2lvbnMsIGFuZCBhbnkgb3RoZXIgcmVxdWlyZWQgcmVzb3VyY2VzIHVzaW5nIHBsYXRmb3JtIGRhdGEuCiogICAqKkhhcmR3YXJlIHJlc2V0Kio6IERvZXMgaXQgcGVyZm9ybSBhbnkgaGFyZHdhcmUgcmVzZXQgc2VxdWVuY2U/IFRoaXMgaXMgYSBwcmV0dHkgc3RhbmRhcmQgcGFydCBvZiBwcm9iaW5nLgoqICAgKipSZWdpc3RlciBhY2Nlc3MqKjogSSBuZWVkIHRvIHNlZSBob3cgaXQgc2V0cyB1cCBhbnkgYmFzZSBhZGRyZXNzIHJlZ2lzdGVycyB0byB0YWxrIHRvIHRoZSBjaGlwLiBJcyBpdCB1c2luZyBNTUlPIG9yIEkyQy9TUEk/CiogICAqKkNsb2NrIHNldHVwKio6IFRoaXMgaXMgdmVyeSBpbXBvcnRhbnQuIEkgZXhwZWN0IHRoZXJlIHRvIGJlIHNvbWUgY2xvY2sgaW5pdGlhbGl6YXRpb24gdG8gbWFrZSBzdXJlIHRoZSBzd2l0Y2ggaGFzIGEgc3RhYmxlIGNsb2NrIGJlZm9yZSBwcm9jZWVkaW5nIHdpdGggYW55dGhpbmcgZWxzZS4KKiAgICoqRHJpdmVyIGRhdGEgc3RydWN0dXJlcyoqOiBMaWtlbHksIHRoZXJlJiMzOTtsbCBiZSBpbml0aWFsIGFsbG9jYXRpb24gYW5kIHNldHVwIG9mIGRhdGEgc3RydWN0dXJlcyBzcGVjaWZpYyB0byB0aGUgbXQ3NTMwLgoqICAgKipJbnRlcnJ1cHQgSGFuZGxpbmcqKjogU2V0dGluZyB1cCBpbnRlcnJ1cHQgaGFuZGxlcnMsIGVuYWJsaW5nIGludGVycnVwdHMgb24gdGhlIHN3aXRjaC4KKiAgICoqUGh5IGNvbmZpZ3VyYXRpb24qKjogUG9zc2libHkgcmVsYXRlZCB0byB0aGUgaW50ZXJuYWwgUEhZLgoKSSYjMzk7bSBhbHNvIGN1cmlvdXMgYWJvdXQgZXJyb3IgaGFuZGxpbmcuIEkgaG9wZSB0byBzZWUgcm9idXN0IGVycm9yIGNoZWNrcyBhbmQgcmVwb3J0aW5nLCBlc3BlY2lhbGx5IGFyb3VuZCByZXNvdXJjZSBhbGxvY2F0aW9uLiBJZGVhbGx5LCBpdCBoYW5kbGVzIHBvdGVudGlhbCBoYXJkd2FyZSBmYWlsdXJlcyBncmFjZWZ1bGx5LCBwZXJoYXBzIGJ5IGZhbGxpbmcgYmFjayB0byBhIHNhZmUgbW9kZSBvciByZXR1cm5pbmcgYW4gYXBwcm9wcmlhdGUgZXJyb3IgY29kZS4gRmluYWxseSwgSSYjMzk7bGwgYmUgbG9va2luZyBmb3IgcmVmZXJlbmNlcyB0byBhbnkgb3RoZXIgZnVuY3Rpb25zIHRoYXQgYXJlIGNhbGxlZCwgdG8gc2VlIGhvdyB0aGUgb3ZlcmFsbCBwcm9iZSBwcm9jZXNzIGlzIHN0cnVjdHVyZWQuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzIwIDIwOjQ3PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+cmVhZC1maWxlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtGaWxlJiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZHNhL210NzUzMC5jJiMzNDssCiAgJiMzNDtGaXJzdExpbmUmIzM0OzogMzQ2NiwKICAmIzM0O0xpbmVDb3VudCYjMzQ7OiA1MAp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7Q29udGVudHMmIzM0OzogJiMzNDszNDY2Olx0aW50XG4zNDY3Olx0bXQ3NTMwX3Byb2JlX2NvbW1vbihzdHJ1Y3QgbXQ3NTMwX3ByaXYgKnByaXYpXG4zNDY4Olx0e1xuMzQ2OTpcdFx0c3RydWN0IGRldmljZSAqZGV2ID0gcHJpdi1cdTAwM2VkZXY7XG4zNDcwOlx0XG4zNDcxOlx0XHRwcml2LVx1MDAzZWRzID0gZGV2bV9remFsbG9jKGRldiwgc2l6ZW9mKCpwcml2LVx1MDAzZWRzKSwgR0ZQX0tFUk5FTCk7XG4zNDcyOlx0XHRpZiAoIXByaXYtXHUwMDNlZHMpXG4zNDczOlx0XHRcdHJldHVybiAtRU5PTUVNO1xuMzQ3NDpcdFxuMzQ3NTpcdFx0cHJpdi1cdTAwM2Vkcy1cdTAwM2VkZXYgPSBkZXY7XG4zNDc2Olx0XHRwcml2LVx1MDAzZWRzLVx1MDAzZW51bV9wb3J0cyA9IE1UNzUzMF9OVU1fUE9SVFM7XG4zNDc3Olx0XG4zNDc4Olx0XHQvKiBHZXQgdGhlIGhhcmR3YXJlIGlkZW50aWZpZXIgZnJvbSB0aGUgZGV2aWNldHJlZSBub2RlLlxuMzQ3OTpcdFx0ICogV2Ugd2lsbCBuZWVkIGl0IGZvciBzb21lIG9mIHRoZSBjbG9jayBhbmQgcmVndWxhdG9yIHNldHVwLlxuMzQ4MDpcdFx0ICovXG4zNDgxOlx0XHRwcml2LVx1MDAzZWluZm8gPSBvZl9kZXZpY2VfZ2V0X21hdGNoX2RhdGEoZGV2KTtcbjM0ODI6XHRcdGlmICghcHJpdi1cdTAwM2VpbmZvKVxuMzQ4MzpcdFx0XHRyZXR1cm4gLUVJTlZBTDtcbjM0ODQ6XHRcbjM0ODU6XHRcdHByaXYtXHUwMDNlaWQgPSBwcml2LVx1MDAzZWluZm8tXHUwMDNlaWQ7XG4zNDg2Olx0XHRwcml2LVx1MDAzZWRldiA9IGRldjtcbjM0ODc6XHRcdHByaXYtXHUwMDNlZHMtXHUwMDNlcHJpdiA9IHByaXY7XG4zNDg4Olx0XHRwcml2LVx1MDAzZWRzLVx1MDAzZW9wcyA9IFx1MDAyNm10NzUzMF9zd2l0Y2hfb3BzO1xuMzQ4OTpcdFx0cHJpdi1cdTAwM2Vkcy1cdTAwM2VwaHlsaW5rX21hY19vcHMgPSBcdTAwMjZtdDc1M3hfcGh5bGlua19tYWNfb3BzO1xuMzQ5MDpcdFx0bXV0ZXhfaW5pdChcdTAwMjZwcml2LVx1MDAzZXJlZ19tdXRleCk7XG4zNDkxOlx0XHRzcGluX2xvY2tfaW5pdChcdTAwMjZwcml2LVx1MDAzZXN0YXRzX2xvY2spO1xuMzQ5MjpcdFx0SU5JVF9ERUxBWUVEX1dPUksoXHUwMDI2cHJpdi1cdTAwM2VzdGF0c193b3JrLCBtdDc1MzBfc3RhdHNfcG9sbCk7XG4zNDkzOlx0XG4zNDk0Olx0XHRkZXZfc2V0X2RydmRhdGEoZGV2LCBwcml2KTtcbjM0OTU6XHRcbjM0OTY6XHRcdHJldHVybiAwO1xuMzQ5NzpcdH1cbjM0OTg6XHRFWFBPUlRfU1lNQk9MX0dQTChtdDc1MzBfcHJvYmVfY29tbW9uKTtcbjM0OTk6XHRcbjM1MDA6XHR2b2lkXG4zNTAxOlx0bXQ3NTMwX3JlbW92ZV9jb21tb24oc3RydWN0IG10NzUzMF9wcml2ICpwcml2KVxuMzUwMjpcdHtcbjM1MDM6XHRcdGlmIChwcml2LVx1MDAzZWlycV9kb21haW4pXG4zNTA0Olx0XHRcdG10NzUzMF9mcmVlX21kaW9faXJxKHByaXYpO1xuMzUwNTpcdFxuMzUwNjpcdFx0ZHNhX3VucmVnaXN0ZXJfc3dpdGNoKHByaXYtXHUwMDNlZHMpO1xuMzUwNzpcdFxuMzUwODpcdFx0bXV0ZXhfZGVzdHJveShcdTAwMjZwcml2LVx1MDAzZXJlZ19tdXRleCk7XG4zNTA5Olx0fVxuMzUxMDpcdEVYUE9SVF9TWU1CT0xfR1BMKG10NzUzMF9yZW1vdmVfY29tbW9uKTtcbjM1MTE6XHRcbjM1MTI6XHRNT0RVTEVfQVVUSE9SKFwmIzM0O1NlYW4gV2FuZyBcdTAwM2NzZWFuLndhbmdAbWVkaWF0ZWsuY29tXHUwMDNlXCYjMzQ7KTtcbjM1MTM6XHRNT0RVTEVfREVTQ1JJUFRJT04oXCYjMzQ7RHJpdmVyIGZvciBNZWRpYXRlayBNVDc1MzAgU3dpdGNoXCYjMzQ7KTtcbjM1MTQ6XHRNT0RVTEVfTElDRU5TRShcJiMzNDtHUExcJiMzNDspO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE5LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yMCAyMDo0NzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxMDg2NAoJCQkJCQkJb3V0cHV0OiAzOAoJCQkJCQkJdGhvdWdodHM6IDM5CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBsZXQgbWUgdGhpbmsgdGhpcyB0aHJvdWdoLi4uCgoqKkFuYWx5emluZyB0aGUgbXQ3NTMwIERyaXZlciBJbml0aWFsaXphdGlvbioqCgpIb2xkIG9uIGEgc2Vjb25kLCB0aGF0IGBtdDc1MzBfcHJvYmVfY29tbW9uYCBmdW5jdGlvbiBkb2VzbiYjMzk7dCBhY3R1YWxseSAqcmVnaXN0ZXIqIHRoZSBzd2l0Y2ggd2l0aCB0aGUgRFNBIHN1YnN5c3RlbS4gSXQganVzdCBzZXRzIHVwIHRoZSBpbnRlcm5hbCBzdHJ1Y3R1cmVzLCBpbml0aWFsaXNpbmcgZXZlcnl0aGluZy4gSXQmIzM5O3MgdGhlIGJ1aWxkaW5nIGJsb2Nrcywgbm90IHRoZSBmaW5pc2hlZCBwcm9kdWN0LiBPa2F5Li4uc28gd2hlcmUgaXMgdGhlIHJlZ2lzdHJhdGlvbiBoYXBwZW5pbmc/IEkgbmVlZCB0byBmaW5kIHRoZSBjYWxsIHRvIGBkc2FfcmVnaXN0ZXJfc3dpdGNoYC4gVGhhdCYjMzk7cyB0aGUgY3J1Y2lhbCBzdGVwLiBJIGNhbiYjMzk7dCBiZSBvdmVybG9va2luZyBhIG1pc2ludGVycHJldGF0aW9uIG9mIGEgZnVuY3Rpb24gY2FsbC4gTmVlZCB0byB0cmFjZSB0aGlzIHRocm91Z2gsIHVuZGVyc3RhbmQgdGhlIGNvbnRyb2wgZmxvdywgZmluZCB3aGVyZSB0aGUgc3dpdGNoIG9mZmljaWFsbHkgYmVjb21lcyBrbm93biB0byB0aGUgc3lzdGVtLiBXaGVyZSBpcyB0aGF0IGNydWNpYWwgcmVnaXN0cmF0aW9uIG9jY3VycmluZz8gR290dGEgdHJhY2UgdGhlIGNhbGwgc3RhY2sgbm93Li4uCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzIwIDIwOjQ3PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5FcnJvcjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm5vIG1hdGNoZXM8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7ZHNhX3JlZ2lzdGVyX3N3aXRjaCYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2RzYS9tdDc1MzAmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7ZXJyb3ImIzM0OzogJiMzNDtubyBtYXRjaGVzJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIxLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yMCAyMDo0NzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxMTExNAoJCQkJCQkJb3V0cHV0OiA0MwoJCQkJCQkJdGhvdWdodHM6IDM4CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IGludGVycHJldGF0aW9uIG9mIHRob3NlIHRob3VnaHRzLCBzdW1tYXJpemVkIGZyb20gYSBmaXJzdC1wZXJzb24gZXhwZXJ0IHBlcnNwZWN0aXZlOgoKKipJbnZlc3RpZ2F0aW5nIFN3aXRjaCBEcml2ZXIgUmVnaXN0cmF0aW9uKioKClJpZ2h0LCBzbyBJIG5lZWQgdG8gZGlnIGludG8gaG93IHRoaXMgc3dpdGNoIGRyaXZlciBpcyBiZWluZyByZWdpc3RlcmVkLiBTaW5jZSB3ZSYjMzk7cmUgZGVhbGluZyB3aXRoIGEgTWVkaWFUZWsgTVQ3NTMwLWJhc2VkIHN3aXRjaCwgSSYjMzk7bSBnb2luZyB0byBzdGFydCBieSBleGFtaW5pbmcgdGhlIGNvcmUgZHJpdmVyIGZpbGVzLiBTcGVjaWZpY2FsbHksIEkgbmVlZCB0byBjaGVjayBgbXQ3NTMwLW1kaW8uY2AgYW5kIGBtdDc1MzAtbW1pby5jYC4gVGhlIGNyaXRpY2FsIGZ1bmN0aW9uIEkmIzM5O20gbG9va2luZyBmb3IgaW4gZWl0aGVyIG9yIGJvdGggb2YgdGhlc2UgZmlsZXMgd2lsbCBiZSBgZHNhX3JlZ2lzdGVyX3N3aXRjaGAuIFRoYXQmIzM5O3MgdGhlIGtleSB0byB1bmRlcnN0YW5kaW5nIGhvdyB0aGUgc3dpdGNoIGl0c2VsZiBpcyBpbnRlZ3JhdGVkIGludG8gdGhlIERTQSBmcmFtZXdvcmsgYW5kIGluaXRpYWxpemVkIHdpdGhpbiB0aGUga2VybmVsLiBJJiMzOTtsbCBiZSBsb29raW5nIGF0IHRoZSBhcmd1bWVudHMgaXQgdGFrZXMsIHRoZSBzZXF1ZW5jZSBvZiBvcGVyYXRpb25zIGJlZm9yZSBhbmQgYWZ0ZXIgaXQmIzM5O3MgY2FsbGVkLCBhbmQgaG93IGl0IGhhbmRsZXMgcG90ZW50aWFsIGVycm9ycy4gVGhpcyB3aWxsIGhlbHAgbWUgdW5kZXJzdGFuZCB0aGUgZHJpdmVyJiMzOTtzIG92ZXJhbGwgaW5pdGlhbGl6YXRpb24gcHJvY2Vzcy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yMi8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjAgMjA6NDc8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7ZHNhX3JlZ2lzdGVyX3N3aXRjaCYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2RzYS9tdDc1MzAtbWRpby5jJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2RzYS9tdDc1MzAtbWRpby5jPTE1NT1tdDc1MzBfcHJvYmUoc3RydWN0IG1kaW9fZGV2aWNlICptZGlvZGV2KVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9tdDc1MzAtbWRpby5jLTIxNy1cbmRyaXZlcnMvbmV0L2RzYS9tdDc1MzAtbWRpby5jOjIxODpcdHJldHVybiBkc2FfcmVnaXN0ZXJfc3dpdGNoKHByaXYtXHUwMDNlZHMpO1xuZHJpdmVycy9uZXQvZHNhL210NzUzMC1tZGlvLmMtMjE5LX1cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yMy8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjAgMjA6NDc8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTE1MzEKCQkJCQkJCW91dHB1dDogNDUKCQkJCQkJCXRob3VnaHRzOiAyNgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+SGVyZSYjMzk7cyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlOgoKKipEaXZpbmcgaW50byB0aGUgTVQ3NTMwIFByb2JlIEZ1bmN0aW9uKioKCk9rYXksIHRpbWUgdG8gZ2V0IG15IGhhbmRzIGRpcnR5LiBJIG5lZWQgdG8gdGFrZSBhIGxvb2sgYXQgdGhlIGBtdDc1MzBfcHJvYmVgIGZ1bmN0aW9uLiBTcGVjaWZpY2FsbHksIEkmIzM5O20gaGVhZGluZyBvdmVyIHRvIGBtdDc1MzAtbWRpby5jYC4gVGhpcyBpcyB3aGVyZSB0aGUgaW5pdGlhbCBicmluZy11cCBsb2dpYyByZXNpZGVzLCBzbyBJJiMzOTttIGV4cGVjdGluZyB0byBmaW5kIHRoZSBzdGFuZGFyZCBkZXZpY2UgcmVnaXN0cmF0aW9uLCByZXNvdXJjZSBhbGxvY2F0aW9uLCBhbmQgbGlrZWx5IHNvbWUgYmFzaWMgaGFyZHdhcmUgaW5pdGlhbGl6YXRpb24gc2VxdWVuY2VzLiBJJiMzOTttIGtlZW4gdG8gc2VlIGhvdyB0aGUgTURJTyBidXMgaXMgYmVpbmcgaGFuZGxlZCDigJMgaG93IHRoZXkmIzM5O3JlIGFjY2Vzc2luZyB0aGUgUEhZIHJlZ2lzdGVycyBhbmQgc2V0dGluZyB1cCBjb21tdW5pY2F0aW9uLiBHaXZlbiB0aGUgY29tcGxleGl0eSBvZiB0aGVzZSBzd2l0Y2ggY2hpcHMsIEkmIzM5O2xsIGJlIGtlZXBpbmcgYW4gZXllIG91dCBmb3IgcG90ZW50aWFsIHBpdGZhbGxzIHJlbGF0ZWQgdG8gY2xvY2sgY29uZmlndXJhdGlvbiwgaW50ZXJydXB0IGhhbmRsaW5nLCBhbmQgYW55IHF1aXJreSBNZWRpYVRlay1zcGVjaWZpYyByZWdpc3RlciBzZXR0aW5ncyB0aGF0IG1pZ2h0IG5lZWQgY2FyZWZ1bCBhdHRlbnRpb24uIEkgd2FudCB0byBzZWUgaG93IHRoZSBwcm9iZSBoYW5kbGVzIGRpZmZlcmVudCByZXZpc2lvbnMgb2YgdGhlIE1UNzUzMCBhcyB3ZWxsLCBpZiB0aGV5IGFyZSBtYWtpbmcgdGhhdCBraW5kIG9mIGRpc3RpbmN0aW9uIHdpdGhpbiB0aGUgY29kZS4gTGV0JiMzOTtzIGRpZyBpbiBhbmQgc2VlIHdoYXQmIzM5O3Mgd2hhdC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yNC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjAgMjA6NDc8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5yZWFkLWZpbGU8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGUmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9kc2EvbXQ3NTMwLW1kaW8uYyYjMzQ7LAogICYjMzQ7Rmlyc3RMaW5lJiMzNDs6IDE1NSwKICAmIzM0O0xpbmVDb3VudCYjMzQ7OiA2NQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7Q29udGVudHMmIzM0OzogJiMzNDsgMTU1Olx0bXQ3NTMwX3Byb2JlKHN0cnVjdCBtZGlvX2RldmljZSAqbWRpb2RldilcbiAxNTY6XHR7XG4gMTU3Olx0XHRzdHJ1Y3QgbXQ3NTMwX3ByaXYgKnByaXY7XG4gMTU4Olx0XHRzdHJ1Y3QgZGV2aWNlX25vZGUgKmRuO1xuIDE1OTpcdFx0aW50IHJldDtcbiAxNjA6XHRcbiAxNjE6XHRcdGRuID0gbWRpb2Rldi1cdTAwM2VkZXYub2Zfbm9kZTtcbiAxNjI6XHRcbiAxNjM6XHRcdHByaXYgPSBkZXZtX2t6YWxsb2MoXHUwMDI2bWRpb2Rldi1cdTAwM2VkZXYsIHNpemVvZigqcHJpdiksIEdGUF9LRVJORUwpO1xuIDE2NDpcdFx0aWYgKCFwcml2KVxuIDE2NTpcdFx0XHRyZXR1cm4gLUVOT01FTTtcbiAxNjY6XHRcbiAxNjc6XHRcdHByaXYtXHUwMDNlYnVzID0gbWRpb2Rldi1cdTAwM2VidXM7XG4gMTY4Olx0XHRwcml2LVx1MDAzZWRldiA9IFx1MDAyNm1kaW9kZXYtXHUwMDNlZGV2O1xuIDE2OTpcdFx0cHJpdi1cdTAwM2VtZGlvZGV2ID0gbWRpb2RldjtcbiAxNzA6XHRcbiAxNzE6XHRcdHJldCA9IG10NzUzMF9wcm9iZV9jb21tb24ocHJpdik7XG4gMTcyOlx0XHRpZiAocmV0KVxuIDE3MzpcdFx0XHRyZXR1cm4gcmV0O1xuIDE3NDpcdFxuIDE3NTpcdFx0LyogVXNlIG1lZGF0ZWssbWNtIHByb3BlcnR5IHRvIGRpc3Rpbmd1aXNoIGhhcmR3YXJlIHR5cGUgdGhhdCB3b3VsZFxuIDE3NjpcdFx0ICogY2F1c2UgYSBsaXR0bGUgYml0IGRpZmZlcmVuY2VzIG9uIHBvd2VyLW9uIHNlcXVlbmNlLlxuIDE3NzpcdFx0ICogTm90IE1DTSB0aGF0IGluZGljYXRlcyBzd2l0Y2ggd29ya3MgYXMgdGhlIHJlbW90ZSBzdGFuZGFsb25lXG4gMTc4Olx0XHQgKiBpbnRlZ3JhdGVkIGNpcmN1aXQgc28gdGhlIEdQSU8gcGluIHdvdWxkIGJlIHVzZWQgdG8gY29tcGxldGVcbiAxNzk6XHRcdCAqIHRoZSByZXNldCwgb3RoZXJ3aXNlIG1lbW9yeS1tYXBwZWQgcmVnaXN0ZXIgYWNjZXNzaW5nIHVzZWRcbiAxODA6XHRcdCAqIHRocm91Z2ggc3lzY29uIHByb3ZpZGVzIGluIHRoZSBjYXNlIG9mIE1DTS5cbiAxODE6XHRcdCAqL1xuIDE4MjpcdFx0cHJpdi1cdTAwM2VtY20gPSBvZl9wcm9wZXJ0eV9yZWFkX2Jvb2woZG4sIFwmIzM0O21lZGlhdGVrLG1jbVwmIzM0Oyk7XG4gMTgzOlx0XHRpZiAocHJpdi1cdTAwM2VtY20pIHtcbiAxODQ6XHRcdFx0ZGV2X2luZm8oXHUwMDI2bWRpb2Rldi1cdTAwM2VkZXYsIFwmIzM0O01UNzUzMCBhZGFwdHMgYXMgbXVsdGktY2hpcCBtb2R1bGVcXG5cJiMzNDspO1xuIDE4NTpcdFxuIDE4NjpcdFx0XHRwcml2LVx1MDAzZXJzdGMgPSBkZXZtX3Jlc2V0X2NvbnRyb2xfZ2V0KFx1MDAyNm1kaW9kZXYtXHUwMDNlZGV2LCBcJiMzNDttY21cJiMzNDspO1xuIDE4NzpcdFx0XHRpZiAoSVNfRVJSKHByaXYtXHUwMDNlcnN0YykpIHtcbiAxODg6XHRcdFx0XHRkZXZfZXJyKFx1MDAyNm1kaW9kZXYtXHUwMDNlZGV2LCBcJiMzNDtDb3VsZG4mIzM5O3QgZ2V0IG91ciByZXNldCBsaW5lXFxuXCYjMzQ7KTtcbiAxODk6XHRcdFx0XHRyZXR1cm4gUFRSX0VSUihwcml2LVx1MDAzZXJzdGMpO1xuIDE5MDpcdFx0XHR9XG4gMTkxOlx0XHR9IGVsc2Uge1xuIDE5MjpcdFx0XHRwcml2LVx1MDAzZXJlc2V0ID0gZGV2bV9ncGlvZF9nZXRfb3B0aW9uYWwoXHUwMDI2bWRpb2Rldi1cdTAwM2VkZXYsIFwmIzM0O3Jlc2V0XCYjMzQ7LFxuIDE5MzpcdFx0XHRcdFx0XHRcdCAgICAgIEdQSU9EX09VVF9MT1cpO1xuIDE5NDpcdFx0XHRpZiAoSVNfRVJSKHByaXYtXHUwMDNlcmVzZXQpKSB7XG4gMTk1Olx0XHRcdFx0ZGV2X2VycihcdTAwMjZtZGlvZGV2LVx1MDAzZWRldiwgXCYjMzQ7Q291bGRuJiMzOTt0IGdldCBvdXIgcmVzZXQgbGluZVxcblwmIzM0Oyk7XG4gMTk2Olx0XHRcdFx0cmV0dXJuIFBUUl9FUlIocHJpdi1cdTAwM2VyZXNldCk7XG4gMTk3Olx0XHRcdH1cbiAxOTg6XHRcdH1cbiAxOTk6XHRcbiAyMDA6XHRcdGlmIChwcml2LVx1MDAzZWlkID09IElEX01UNzUzMCkge1xuIDIwMTpcdFx0XHRwcml2LVx1MDAzZWNvcmVfcHdyID0gZGV2bV9yZWd1bGF0b3JfZ2V0KFx1MDAyNm1kaW9kZXYtXHUwMDNlZGV2LCBcJiMzNDtjb3JlXCYjMzQ7KTtcbiAyMDI6XHRcdFx0aWYgKElTX0VSUihwcml2LVx1MDAzZWNvcmVfcHdyKSlcbiAyMDM6XHRcdFx0XHRyZXR1cm4gUFRSX0VSUihwcml2LVx1MDAzZWNvcmVfcHdyKTtcbiAyMDQ6XHRcbiAyMDU6XHRcdFx0cHJpdi1cdTAwM2Vpb19wd3IgPSBkZXZtX3JlZ3VsYXRvcl9nZXQoXHUwMDI2bWRpb2Rldi1cdTAwM2VkZXYsIFwmIzM0O2lvXCYjMzQ7KTtcbiAyMDY6XHRcdFx0aWYgKElTX0VSUihwcml2LVx1MDAzZWlvX3B3cikpXG4gMjA3Olx0XHRcdFx0cmV0dXJuIFBUUl9FUlIocHJpdi1cdTAwM2Vpb19wd3IpO1xuIDIwODpcdFx0fVxuIDIwOTpcdFxuIDIxMDpcdFx0cHJpdi1cdTAwM2VyZWdtYXAgPSBkZXZtX3JlZ21hcF9pbml0KHByaXYtXHUwMDNlZGV2LCBcdTAwMjZtdDc1MzBfcmVnbWFwX2J1cywgcHJpdixcbiAyMTE6XHRcdFx0XHRcdFx0XHUwMDI2cmVnbWFwX2NvbmZpZyk7XG4gMjEyOlx0XHRpZiAoSVNfRVJSKHByaXYtXHUwMDNlcmVnbWFwKSlcbiAyMTM6XHRcdFx0cmV0dXJuIFBUUl9FUlIocHJpdi1cdTAwM2VyZWdtYXApO1xuIDIxNDpcdFxuIDIxNTpcdFx0aWYgKHByaXYtXHUwMDNlaWQgPT0gSURfTVQ3NTMxKVxuIDIxNjpcdFx0XHRwcml2LVx1MDAzZWNyZWF0ZV9zZ21paSA9IG10NzUzMV9jcmVhdGVfc2dtaWk7XG4gMjE3Olx0XG4gMjE4Olx0XHRyZXR1cm4gZHNhX3JlZ2lzdGVyX3N3aXRjaChwcml2LVx1MDAzZWRzKTtcbiAyMTk6XHR9XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzIwIDIwOjQ3PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDEyOTI2CgkJCQkJCQlvdXRwdXQ6IDI5CgkJCQkJCQl0aG91Z2h0czogMjU4CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKk15IEFzc2Vzc21lbnQgb2YgdGhlIE1UNzUzMCBEcml2ZXIgYW5kIFN5emthbGxlciYjMzk7cyBQb3RlbnRpYWwqKgoKT2theSwgc28gSSYjMzk7bSB0aGlua2luZyBhYm91dCBob3cgdGhlIGBtdDc1MzBgIHN3aXRjaCBnZXRzIGluaXRpYWxpemVkIHdpdGhpbiB0aGUgRFNBIGZyYW1ld29yay4gSXQgc2VlbXMgbGlrZSBgbXQ3NTMwX3Byb2JlYCBpcyB0aGUgc3RhcnRpbmcgcG9pbnQsIHJlZ2lzdGVyaW5nIHRoZSBzd2l0Y2guIFRoZW4sIERTQSwgYXMgZXhwZWN0ZWQsIGNhbGxzIGBtdDc1MzBfc2V0dXBgIHRocm91Z2ggYHByaXYtJmd0O2luZm8tJmd0O3N3X3NldHVwKGRzKWAuIFRoYXQgbWFrZXMgc2Vuc2UuIE5vdywgYG10NzUzMF9zZXR1cGAgcmVsaWVzIG9uIGBtdDc1MzBfcmVhZGAgYW5kIGBtdDc1MzBfd3JpdGVgIHRvIGludGVyYWN0IHdpdGggdGhlIGhhcmR3YXJlLCB1c2luZyB0aGUgTURJTyBidXMuCgpNeSBpbW1lZGlhdGUgY29uY2VybiBpcyBoYXJkd2FyZSBwcmVzZW5jZS4gSWYgdGhlIE1ESU8gYnVzIGlzbiYjMzk7dCBjb25uZWN0ZWQgdG8gYSByZWFsIGRldmljZSwgdGhvc2UgcmVhZC93cml0ZSBvcGVyYXRpb25zIHdpbGwgZWl0aGVyIGZhaWwgb3IsIHdvcnNlLCByZXR1cm4gcmFuZG9tIGdhcmJhZ2UuIFRoYXQgaW1tZWRpYXRlbHkgbWFrZXMgbWUgY29uc2lkZXIgc3l6a2FsbGVyLiBEb2VzIGl0IGhhdmUgYSBtZWNoYW5pc20gdG8gaW5qZWN0IG9yIGVtdWxhdGUgTURJTyBkZXZpY2VzPyBJIGtub3cgc3l6a2FsbGVyIGlzIGZhbnRhc3RpYyBmb3IgZnV6emluZyBhbmQgaGFzIGRlZXAga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwsIGJ1dCBJIGRvbiYjMzk7dCByZWNhbGwgc2VlaW5nIGdlbmVyYWwgTURJTyBkZXZpY2UgaW5qZWN0aW9uIGNhcGFiaWxpdGllcy4gSXQgY2FuIGluamVjdCBVU0IsIFBDSSwgYW5kIHNvbWUgdmlydHVhbCBuZXQgZGV2aWNlcywgYnV0IE1ESU8gc2VlbXMgZGlmZmVyZW50LiBJIHRob3VnaHQgSSByZW1lbWJlcmVkIHNvbWV0aGluZyBhYm91dCBsb2FkaW5nIGRldmljZSB0cmVlcyB3aXRoIGBzeXpfbW91bnRfaW1hZ2VgIG9yIGEgc2ltaWxhciBmdW5jdGlvbi4gQnV0IG5vLCBzeXprYWxsZXIgZG9lc24mIzM5O3QgZ2VuZXJhbGx5IGxvYWQgYXJiaXRyYXJ5IGRldmljZSB0cmVlcyBvbiB0aGUgZmx5IHRvIHByb2JlIHBsYXRmb3JtL01ESU8gZHJpdmVycyB1bmxlc3MgaXQmIzM5O3MgYSB2ZXJ5IHNwZWNpZmljIHRlc3QgY2FzZS4KClRoZW4sIHRoZXJlIGFyZSB0aGUgc3l6a2FsbGVyIGNhbGxzIGxpa2UgYHN5el9nZW5ldGxpbmtfZ2V0X2ZhbWlseV9pZGAuIEkgd29uZGVyIGlmIHRoZXJlIGFyZSBhbnkgc3l6a2FsbGVyIGRlc2NyaXB0aW9ucyBmb3IgTURJTyBvciBEU0EgdGhhdCBtaWdodCBzaGVkIHNvbWUgbGlnaHQgb24gdGhlIHN1YmplY3QuIEkgbmVlZCB0byBkZXRlcm1pbmUgaWYgdGhlIGBtdDc1MzBgIGRyaXZlciBvciB0aGUgTURJTyBidXMgaXRzZWxmIGlzIHJlYWNoYWJsZSB0aHJvdWdoIHN5emthbGxlci4gSSBzaG91bGQgY2hlY2sgaWYgdGhlcmUgYXJlIGFueSBzeXprYWxsZXIgZGVmaW5pdGlvbnMgcmVsYXRlZCB0byB0aG9zZSBhcmVhcy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yNi8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjAgMjA6NDg8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkVycm9yOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bm8gbWF0Y2hlczwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDttdDc1MzAmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtuZXQvZHNhJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O2Vycm9yJiMzNDs6ICYjMzQ7bm8gbWF0Y2hlcyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yNy8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjAgMjA6NDg8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTM2MzIKCQkJCQkJCW91dHB1dDogMjYKCQkJCQkJCXRob3VnaHRzOiAxNQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+SGVyZSYjMzk7cyBteSBhdHRlbXB0IGF0IHN1bW1hcml6aW5nIHRoZSB0aG91Z2h0IHByb2Nlc3MsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2U6CgoqKkNoZWNraW5nIGZvciBFeGlzdGluZyBTeXprYWxsZXIgQ292ZXJhZ2Ugb2YgRFNBKioKCk9rYXksIGZpcnN0IHRoaW5ncyBmaXJzdCwgYmVmb3JlIEkgZGl2ZSBpbnRvIGFueSBuZXcgRFNBIGZ1enppbmcgYWR2ZW50dXJlcywgSSBuZWVkIHRvIHNlZSB3aGVyZSB3ZSBzdGFuZCB3aXRoIGV4aXN0aW5nIHN5emthbGxlciBjb3ZlcmFnZS4gSSYjMzk7bSBhc3N1bWluZyB0aGVyZSAqc2hvdWxkKiBiZSBzb21lIGV4aXN0aW5nIGRlc2NyaXB0aW9ucywgZ2l2ZW4gdGhlIHViaXF1aXR5IG9mIERTQSBpbXBsZW1lbnRhdGlvbnMuIEJ1dCBJIG5lZWQgdG8gYmUgc3VyZSBiZWZvcmUgSSBzdGFydCBmcm9tIHNjcmF0Y2guCgpTbywgSSYjMzk7bSB0aGlua2luZywgJiMzNDtMZXQmIzM5O3MgY2hlY2sgdGhlIHN5emthbGxlciByZXBvc2l0b3J5IGFuZCBhbnkgcmVsYXRlZCBmdXp6aW5nIGluZnJhc3RydWN0dXJlLiBMZXQmIzM5O3Mgc3RhcnQgd2l0aCBhIGZvY3VzZWQga2V5d29yZCBzZWFyY2ggb24gJiMzNDtEU0EmIzM0OyB0byBzZWUgaWYgYW55IHJlbGV2YW50IHN5c2NhbGwgZGVmaW5pdGlvbnMsIHJlc291cmNlIGRlZmluaXRpb25zLCBvciBldmVuIGV4aXN0aW5nIHRlc3QgY2FzZXMganVtcCBvdXQuIEkgYWxzbyBuZWVkIHRvIGNvbnNpZGVyIG90aGVyIHJlbGF0ZWQga2V5d29yZHMgb3IgYWJicmV2aWF0aW9ucyBsaWtlICYjMzQ7Y3J5cHRvJiMzNDssICYjMzQ7c2VjdXJpdHkmIzM0Oywgb3Igc3BlY2lmaWMgRFNBLXJlbGF0ZWQgZnVuY3Rpb25zLCBiZWNhdXNlIHN5emthbGxlciYjMzk7cyBjb3ZlcmFnZSBjYW4gc29tZXRpbWVzIGJlIGEgYml0IGZyYWdtZW50ZWQuIE1heWJlIHRoZXJlJiMzOTtzIERTQSBpbXBsZW1lbnRlZCBhcyBhIHBhcnQgb2YgYSBsYXJnZXIgY3J5cHRvLW1vZHVsZTsgSSBuZWVkIHRvIGtlZXAgdGhhdCBpbiBtaW5kLiBVbHRpbWF0ZWx5LCB0aGlzIHdpbGwgZ2l2ZSBtZSBhIGJhc2VsaW5lIGZvcjogMSkgV2hhdCBoYXMgYWxyZWFkeSBiZWVuIGRvbmUsIDIpIFdoaWNoIERTQS1yZWxhdGVkIHByaW1pdGl2ZXMgYXJlIHRhcmdldGVkLCBhbmQgMykgV2hldGhlciB0aGUgZXhpc3RpbmcgY292ZXJhZ2UgaXMgYnJvYWQgZW5vdWdoIHRvIGJlIGEgc29saWQgc3RhcnRpbmcgcG9pbnQgZm9yIGEgbW9yZSBmb2N1c2VkIGZ1enppbmcgY2FtcGFpZ24uIERlcGVuZGluZyBvbiBob3cgbXVjaCBJIGZpbmQsIHRoaXMgcHJlbGltaW5hcnkgY2hlY2sgaXMgZ29pbmcgdG8gaGVhdmlseSBpbmZsdWVuY2UgdGhlIGRpcmVjdGlvbiBJIHRha2UuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzIwIDIwOjQ4PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2RzYSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O25ldC9kc2EmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7XG5GdWxsIG91dHB1dCBpcyB0b28gbG9uZywgc2hvd2luZyA1MDAgb3V0IG9mIDgxMDQgbGluZXMuXG5Vc2UgbW9yZSBwcmVjaXNlIGV4cHJlc3Npb24gaWYgcG9zc2libGUuXG5cbm5ldC9kc2EvTWFrZWZpbGU9Nj1lbmRpZlxuLS1cbm5ldC9kc2EvTWFrZWZpbGUtOC0jIHRoZSBjb3JlXG5uZXQvZHNhL01ha2VmaWxlOjk6b2JqLSQoQ09ORklHX05FVF9EU0EpICYjNDM7PSBkc2FfY29yZS5vXG5uZXQvZHNhL01ha2VmaWxlOjEwOmRzYV9jb3JlLXkgJiM0Mzs9IFxcXG5uZXQvZHNhL01ha2VmaWxlLTExLVx0Y29uZHVpdC5vIFxcXG5uZXQvZHNhL01ha2VmaWxlLTEyLVx0ZGV2bGluay5vIFxcXG5uZXQvZHNhL01ha2VmaWxlOjEzOlx0ZHNhLm8gXFxcbm5ldC9kc2EvTWFrZWZpbGUtMTQtXHRuZXRsaW5rLm8gXFxcbi0tXG5uZXQvZHNhL01ha2VmaWxlPTI0PW9iai0kKENPTkZJR19ORVRfRFNBX1RBR19CUkNNX0NPTU1PTikgJiM0Mzs9IHRhZ19icmNtLm9cbm5ldC9kc2EvTWFrZWZpbGU6MjU6b2JqLSQoQ09ORklHX05FVF9EU0FfVEFHX0RTQV9DT01NT04pICYjNDM7PSB0YWdfZHNhLm9cbm5ldC9kc2EvTWFrZWZpbGUtMjYtb2JqLSQoQ09ORklHX05FVF9EU0FfVEFHX0dTV0lQKSAmIzQzOz0gdGFnX2dzd2lwLm9cbi0tXG5uZXQvZHNhL2NvbmR1aXQuYy0xMS0jaW5jbHVkZSBcdTAwM2NsaW51eC9uZXRsaW5rLmhcdTAwM2Vcbm5ldC9kc2EvY29uZHVpdC5jOjEyOiNpbmNsdWRlIFx1MDAzY25ldC9kc2EuaFx1MDAzZVxubmV0L2RzYS9jb25kdWl0LmMtMTMtI2luY2x1ZGUgXHUwMDNjbmV0L25ldGRldl9sb2NrLmhcdTAwM2Vcbi0tXG5uZXQvZHNhL2NvbmR1aXQuYy0xNS0jaW5jbHVkZSBcJiMzNDtjb25kdWl0LmhcJiMzNDtcbm5ldC9kc2EvY29uZHVpdC5jOjE2OiNpbmNsdWRlIFwmIzM0O2RzYS5oXCYjMzQ7XG5uZXQvZHNhL2NvbmR1aXQuYy0xNy0jaW5jbHVkZSBcJiMzNDtwb3J0LmhcJiMzNDtcbi0tXG5uZXQvZHNhL2NvbmR1aXQuYy0xOS1cbm5ldC9kc2EvY29uZHVpdC5jOjIwOnN0YXRpYyBpbnQgZHNhX2NvbmR1aXRfZ2V0X3JlZ3NfbGVuKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpXG5uZXQvZHNhL2NvbmR1aXQuYy0yMS17XG5uZXQvZHNhL2NvbmR1aXQuYzoyMjpcdHN0cnVjdCBkc2FfcG9ydCAqY3B1X2RwID0gZGV2LVx1MDAzZWRzYV9wdHI7XG5uZXQvZHNhL2NvbmR1aXQuYy0yMy1cdGNvbnN0IHN0cnVjdCBldGh0b29sX29wcyAqb3BzID0gY3B1X2RwLVx1MDAzZW9yaWdfZXRodG9vbF9vcHM7XG5uZXQvZHNhL2NvbmR1aXQuYzoyNDpcdHN0cnVjdCBkc2Ffc3dpdGNoICpkcyA9IGNwdV9kcC1cdTAwM2Vkcztcbm5ldC9kc2EvY29uZHVpdC5jLTI1LVx0aW50IHBvcnQgPSBjcHVfZHAtXHUwMDNlaW5kZXg7XG4tLVxubmV0L2RzYS9jb25kdWl0LmMtNDgtXG5uZXQvZHNhL2NvbmR1aXQuYzo0OTpzdGF0aWMgdm9pZCBkc2FfY29uZHVpdF9nZXRfcmVncyhzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LFxubmV0L2RzYS9jb25kdWl0LmMtNTAtXHRcdFx0XHQgc3RydWN0IGV0aHRvb2xfcmVncyAqcmVncywgdm9pZCAqZGF0YSlcbm5ldC9kc2EvY29uZHVpdC5jLTUxLXtcbm5ldC9kc2EvY29uZHVpdC5jOjUyOlx0c3RydWN0IGRzYV9wb3J0ICpjcHVfZHAgPSBkZXYtXHUwMDNlZHNhX3B0cjtcbm5ldC9kc2EvY29uZHVpdC5jLTUzLVx0Y29uc3Qgc3RydWN0IGV0aHRvb2xfb3BzICpvcHMgPSBjcHVfZHAtXHUwMDNlb3JpZ19ldGh0b29sX29wcztcbm5ldC9kc2EvY29uZHVpdC5jOjU0Olx0c3RydWN0IGRzYV9zd2l0Y2ggKmRzID0gY3B1X2RwLVx1MDAzZWRzO1xubmV0L2RzYS9jb25kdWl0LmMtNTUtXHRzdHJ1Y3QgZXRodG9vbF9kcnZpbmZvICpjcHVfaW5mbztcbi0tXG5uZXQvZHNhL2NvbmR1aXQuYy02OS1cdGNwdV9pbmZvID0gKHN0cnVjdCBldGh0b29sX2RydmluZm8gKilkYXRhO1xubmV0L2RzYS9jb25kdWl0LmM6NzA6XHRzdHJzY3B5KGNwdV9pbmZvLVx1MDAzZWRyaXZlciwgXCYjMzQ7ZHNhXCYjMzQ7LCBzaXplb2YoY3B1X2luZm8tXHUwMDNlZHJpdmVyKSk7XG5uZXQvZHNhL2NvbmR1aXQuYy03MS1cdGRhdGEgJiM0Mzs9IHNpemVvZigqY3B1X2luZm8pO1xuLS1cbm5ldC9kc2EvY29uZHVpdC5jLTgzLVxubmV0L2RzYS9jb25kdWl0LmM6ODQ6c3RhdGljIHNzaXplX3QgZHNhX2NvbmR1aXRfYXBwZW5kX3BvcnRfc3RhdHMoc3RydWN0IGRzYV9zd2l0Y2ggKmRzLCBpbnQgcG9ydCxcbm5ldC9kc2EvY29uZHVpdC5jLTg1LVx0XHRcdFx0XHQgICAgIHU2NCAqZGF0YSwgc2l6ZV90IHN0YXJ0KVxuLS1cbm5ldC9kc2EvY29uZHVpdC5jLTEwMS1cbm5ldC9kc2EvY29uZHVpdC5jOjEwMjpzdGF0aWMgdm9pZCBkc2FfY29uZHVpdF9nZXRfZXRodG9vbF9zdGF0cyhzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LFxubmV0L2RzYS9jb25kdWl0LmMtMTAzLVx0XHRcdFx0XHQgIHN0cnVjdCBldGh0b29sX3N0YXRzICpzdGF0cyxcbi0tXG5uZXQvZHNhL2NvbmR1aXQuYy0xMDUte1xubmV0L2RzYS9jb25kdWl0LmM6MTA2Olx0c3RydWN0IGRzYV9wb3J0ICpkcCwgKmNwdV9kcCA9IGRldi1cdTAwM2Vkc2FfcHRyO1xubmV0L2RzYS9jb25kdWl0LmMtMTA3LVx0Y29uc3Qgc3RydWN0IGV0aHRvb2xfb3BzICpvcHMgPSBjcHVfZHAtXHUwMDNlb3JpZ19ldGh0b29sX29wcztcbm5ldC9kc2EvY29uZHVpdC5jOjEwODpcdHN0cnVjdCBkc2Ffc3dpdGNoX3RyZWUgKmRzdCA9IGNwdV9kcC1cdTAwM2Vkc3Q7XG5uZXQvZHNhL2NvbmR1aXQuYy0xMDktXHRpbnQgY291bnQsIG1jb3VudCA9IDA7XG4tLVxubmV0L2RzYS9jb25kdWl0LmMtMTE2LVx0bGlzdF9mb3JfZWFjaF9lbnRyeShkcCwgXHUwMDI2ZHN0LVx1MDAzZXBvcnRzLCBsaXN0KSB7XG5uZXQvZHNhL2NvbmR1aXQuYzoxMTc6XHRcdGlmICghZHNhX3BvcnRfaXNfZHNhKGRwKSBcdTAwMjZcdTAwMjYgIWRzYV9wb3J0X2lzX2NwdShkcCkpXG5uZXQvZHNhL2NvbmR1aXQuYy0xMTgtXHRcdFx0Y29udGludWU7XG5uZXQvZHNhL2NvbmR1aXQuYy0xMTktXG5uZXQvZHNhL2NvbmR1aXQuYzoxMjA6XHRcdGNvdW50ID0gZHNhX2NvbmR1aXRfYXBwZW5kX3BvcnRfc3RhdHMoZHAtXHUwMDNlZHMsIGRwLVx1MDAzZWluZGV4LFxubmV0L2RzYS9jb25kdWl0LmMtMTIxLVx0XHRcdFx0XHRcdCAgICAgIGRhdGEsIG1jb3VudCk7XG4tLVxubmV0L2RzYS9jb25kdWl0LmMtMTI4LVxubmV0L2RzYS9jb25kdWl0LmM6MTI5OnN0YXRpYyB2b2lkIGRzYV9jb25kdWl0X2dldF9ldGh0b29sX3BoeV9zdGF0cyhzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LFxubmV0L2RzYS9jb25kdWl0LmMtMTMwLVx0XHRcdFx0XHQgICAgICBzdHJ1Y3QgZXRodG9vbF9zdGF0cyAqc3RhdHMsXG4tLVxubmV0L2RzYS9jb25kdWl0LmMtMTMyLXtcbm5ldC9kc2EvY29uZHVpdC5jOjEzMzpcdHN0cnVjdCBkc2FfcG9ydCAqY3B1X2RwID0gZGV2LVx1MDAzZWRzYV9wdHI7XG5uZXQvZHNhL2NvbmR1aXQuYy0xMzQtXHRjb25zdCBzdHJ1Y3QgZXRodG9vbF9vcHMgKm9wcyA9IGNwdV9kcC1cdTAwM2VvcmlnX2V0aHRvb2xfb3BzO1xubmV0L2RzYS9jb25kdWl0LmM6MTM1Olx0c3RydWN0IGRzYV9zd2l0Y2ggKmRzID0gY3B1X2RwLVx1MDAzZWRzO1xubmV0L2RzYS9jb25kdWl0LmMtMTM2LVx0aW50IHBvcnQgPSBjcHVfZHAtXHUwMDNlaW5kZXg7XG4tLVxubmV0L2RzYS9jb25kdWl0LmMtMTU0LVxubmV0L2RzYS9jb25kdWl0LmM6MTU1OnN0YXRpYyB2b2lkIGRzYV9jb25kdWl0X2FwcGVuZF9wb3J0X3NzZXRfY291bnQoc3RydWN0IGRzYV9zd2l0Y2ggKmRzLCBpbnQgcG9ydCxcbm5ldC9kc2EvY29uZHVpdC5jLTE1Ni1cdFx0XHRcdFx0ICAgICAgIGludCBzc2V0LCBpbnQgKmNvdW50KVxuLS1cbm5ldC9kc2EvY29uZHVpdC5jLTE2MS1cbm5ldC9kc2EvY29uZHVpdC5jOjE2MjpzdGF0aWMgaW50IGRzYV9jb25kdWl0X2dldF9zc2V0X2NvdW50KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIGludCBzc2V0KVxubmV0L2RzYS9jb25kdWl0LmMtMTYzLXtcbm5ldC9kc2EvY29uZHVpdC5jOjE2NDpcdHN0cnVjdCBkc2FfcG9ydCAqZHAsICpjcHVfZHAgPSBkZXYtXHUwMDNlZHNhX3B0cjtcbm5ldC9kc2EvY29uZHVpdC5jLTE2NS1cdGNvbnN0IHN0cnVjdCBldGh0b29sX29wcyAqb3BzID0gY3B1X2RwLVx1MDAzZW9yaWdfZXRodG9vbF9vcHM7XG5uZXQvZHNhL2NvbmR1aXQuYzoxNjY6XHRzdHJ1Y3QgZHNhX3N3aXRjaF90cmVlICpkc3QgPSBjcHVfZHAtXHUwMDNlZHN0O1xubmV0L2RzYS9jb25kdWl0LmMtMTY3LVx0aW50IGNvdW50ID0gMDtcbi0tXG5uZXQvZHNhL2NvbmR1aXQuYy0xNzgtXHRsaXN0X2Zvcl9lYWNoX2VudHJ5KGRwLCBcdTAwMjZkc3QtXHUwMDNlcG9ydHMsIGxpc3QpIHtcbm5ldC9kc2EvY29uZHVpdC5jOjE3OTpcdFx0aWYgKCFkc2FfcG9ydF9pc19kc2EoZHApIFx1MDAyNlx1MDAyNiAhZHNhX3BvcnRfaXNfY3B1KGRwKSlcbm5ldC9kc2EvY29uZHVpdC5jLTE4MC1cdFx0XHRjb250aW51ZTtcbm5ldC9kc2EvY29uZHVpdC5jLTE4MS1cbm5ldC9kc2EvY29uZHVpdC5jOjE4MjpcdFx0ZHNhX2NvbmR1aXRfYXBwZW5kX3BvcnRfc3NldF9jb3VudChkcC1cdTAwM2VkcywgZHAtXHUwMDNlaW5kZXgsIHNzZXQsXG5uZXQvZHNhL2NvbmR1aXQuYy0xODMtXHRcdFx0XHRcdFx0ICAgXHUwMDI2Y291bnQpO1xuLS1cbm5ldC9kc2EvY29uZHVpdC5jLTE4OC1cbm5ldC9kc2EvY29uZHVpdC5jOjE4OTpzdGF0aWMgc3NpemVfdCBkc2FfY29uZHVpdF9hcHBlbmRfcG9ydF9zdHJpbmdzKHN0cnVjdCBkc2Ffc3dpdGNoICpkcywgaW50IHBvcnQsXG5uZXQvZHNhL2NvbmR1aXQuYy0xOTAtXHRcdFx0XHRcdCAgICAgICB1MzIgc3RyaW5nc2V0LCB1OCAqZGF0YSxcbi0tXG5uZXQvZHNhL2NvbmR1aXQuYy0yMjEtXG5uZXQvZHNhL2NvbmR1aXQuYzoyMjI6c3RhdGljIHZvaWQgZHNhX2NvbmR1aXRfZ2V0X3N0cmluZ3Moc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgdTMyIHN0cmluZ3NldCxcbm5ldC9kc2EvY29uZHVpdC5jLTIyMy1cdFx0XHRcdCAgICB1OCAqZGF0YSlcbm5ldC9kc2EvY29uZHVpdC5jLTIyNC17XG5uZXQvZHNhL2NvbmR1aXQuYzoyMjU6XHRzdHJ1Y3QgZHNhX3BvcnQgKmRwLCAqY3B1X2RwID0gZGV2LVx1MDAzZWRzYV9wdHI7XG5uZXQvZHNhL2NvbmR1aXQuYy0yMjYtXHRjb25zdCBzdHJ1Y3QgZXRodG9vbF9vcHMgKm9wcyA9IGNwdV9kcC1cdTAwM2VvcmlnX2V0aHRvb2xfb3BzO1xubmV0L2RzYS9jb25kdWl0LmM6MjI3Olx0c3RydWN0IGRzYV9zd2l0Y2hfdHJlZSAqZHN0ID0gY3B1X2RwLVx1MDAzZWRzdDtcbm5ldC9kc2EvY29uZHVpdC5jLTIyOC1cdGludCBjb3VudCwgbWNvdW50ID0gMDtcbi0tXG5uZXQvZHNhL2NvbmR1aXQuYy0yNDQtXHRsaXN0X2Zvcl9lYWNoX2VudHJ5KGRwLCBcdTAwMjZkc3QtXHUwMDNlcG9ydHMsIGxpc3QpIHtcbm5ldC9kc2EvY29uZHVpdC5jOjI0NTpcdFx0aWYgKCFkc2FfcG9ydF9pc19kc2EoZHApIFx1MDAyNlx1MDAyNiAhZHNhX3BvcnRfaXNfY3B1KGRwKSlcbm5ldC9kc2EvY29uZHVpdC5jLTI0Ni1cdFx0XHRjb250aW51ZTtcbm5ldC9kc2EvY29uZHVpdC5jLTI0Ny1cbm5ldC9kc2EvY29uZHVpdC5jOjI0ODpcdFx0Y291bnQgPSBkc2FfY29uZHVpdF9hcHBlbmRfcG9ydF9zdHJpbmdzKGRwLVx1MDAzZWRzLCBkcC1cdTAwM2VpbmRleCxcbm5ldC9kc2EvY29uZHVpdC5jLTI0OS1cdFx0XHRcdFx0XHRcdHN0cmluZ3NldCwgZGF0YSxcbi0tXG5uZXQvZHNhL2NvbmR1aXQuYy0yNjAtICovXG5uZXQvZHNhL2NvbmR1aXQuYzoyNjE6aW50IF9fZHNhX2NvbmR1aXRfaHd0c3RhbXBfdmFsaWRhdGUoc3RydWN0IG5ldF9kZXZpY2UgKmRldixcbm5ldC9kc2EvY29uZHVpdC5jLTI2Mi1cdFx0XHRcdCAgICBjb25zdCBzdHJ1Y3Qga2VybmVsX2h3dHN0YW1wX2NvbmZpZyAqY29uZmlnLFxuLS1cbm5ldC9kc2EvY29uZHVpdC5jLTI2NC17XG5uZXQvZHNhL2NvbmR1aXQuYzoyNjU6XHRzdHJ1Y3QgZHNhX3BvcnQgKmNwdV9kcCA9IGRldi1cdTAwM2Vkc2FfcHRyO1xubmV0L2RzYS9jb25kdWl0LmM6MjY2Olx0c3RydWN0IGRzYV9zd2l0Y2ggKmRzID0gY3B1X2RwLVx1MDAzZWRzO1xubmV0L2RzYS9jb25kdWl0LmM6MjY3Olx0c3RydWN0IGRzYV9zd2l0Y2hfdHJlZSAqZHN0O1xubmV0L2RzYS9jb25kdWl0LmM6MjY4Olx0c3RydWN0IGRzYV9wb3J0ICpkcDtcbm5ldC9kc2EvY29uZHVpdC5jLTI2OS1cbi0tXG5uZXQvZHNhL2NvbmR1aXQuYy0yNzItXHRsaXN0X2Zvcl9lYWNoX2VudHJ5KGRwLCBcdTAwMjZkc3QtXHUwMDNlcG9ydHMsIGxpc3QpIHtcbm5ldC9kc2EvY29uZHVpdC5jOjI3MzpcdFx0aWYgKGRzYV9wb3J0X3N1cHBvcnRzX2h3dHN0YW1wKGRwKSkge1xubmV0L2RzYS9jb25kdWl0LmMtMjc0LVx0XHRcdE5MX1NFVF9FUlJfTVNHKGV4dGFjayxcbi0tXG5uZXQvZHNhL2NvbmR1aXQuYy0yODItXG5uZXQvZHNhL2NvbmR1aXQuYzoyODM6c3RhdGljIGludCBkc2FfY29uZHVpdF9ldGh0b29sX3NldHVwKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpXG5uZXQvZHNhL2NvbmR1aXQuYy0yODQte1xubmV0L2RzYS9jb25kdWl0LmM6Mjg1Olx0c3RydWN0IGRzYV9wb3J0ICpjcHVfZHAgPSBkZXYtXHUwMDNlZHNhX3B0cjtcbm5ldC9kc2EvY29uZHVpdC5jOjI4NjpcdHN0cnVjdCBkc2Ffc3dpdGNoICpkcyA9IGNwdV9kcC1cdTAwM2Vkcztcbm5ldC9kc2EvY29uZHVpdC5jLTI4Ny1cdHN0cnVjdCBldGh0b29sX29wcyAqb3BzO1xuLS1cbm5ldC9kc2EvY29uZHVpdC5jLTI5OS1cbm5ldC9kc2EvY29uZHVpdC5jOjMwMDpcdG9wcy1cdTAwM2VnZXRfcmVnc19sZW4gPSBkc2FfY29uZHVpdF9nZXRfcmVnc19sZW47XG5uZXQvZHNhL2NvbmR1aXQuYzozMDE6XHRvcHMtXHUwMDNlZ2V0X3JlZ3MgPSBkc2FfY29uZHVpdF9nZXRfcmVncztcbm5ldC9kc2EvY29uZHVpdC5jOjMwMjpcdG9wcy1cdTAwM2VnZXRfc3NldF9jb3VudCA9IGRzYV9jb25kdWl0X2dldF9zc2V0X2NvdW50O1xubmV0L2RzYS9jb25kdWl0LmM6MzAzOlx0b3BzLVx1MDAzZWdldF9ldGh0b29sX3N0YXRzID0gZHNhX2NvbmR1aXRfZ2V0X2V0aHRvb2xfc3RhdHM7XG5uZXQvZHNhL2NvbmR1aXQuYzozMDQ6XHRvcHMtXHUwMDNlZ2V0X3N0cmluZ3MgPSBkc2FfY29uZHVpdF9nZXRfc3RyaW5ncztcbm5ldC9kc2EvY29uZHVpdC5jOjMwNTpcdG9wcy1cdTAwM2VnZXRfZXRodG9vbF9waHlfc3RhdHMgPSBkc2FfY29uZHVpdF9nZXRfZXRodG9vbF9waHlfc3RhdHM7XG5uZXQvZHNhL2NvbmR1aXQuYy0zMDYtXG4tLVxubmV0L2RzYS9jb25kdWl0LmMtMzExLVxubmV0L2RzYS9jb25kdWl0LmM6MzEyOnN0YXRpYyB2b2lkIGRzYV9jb25kdWl0X2V0aHRvb2xfdGVhcmRvd24oc3RydWN0IG5ldF9kZXZpY2UgKmRldilcbm5ldC9kc2EvY29uZHVpdC5jLTMxMy17XG5uZXQvZHNhL2NvbmR1aXQuYzozMTQ6XHRzdHJ1Y3QgZHNhX3BvcnQgKmNwdV9kcCA9IGRldi1cdTAwM2Vkc2FfcHRyO1xubmV0L2RzYS9jb25kdWl0LmMtMzE1LVxuLS1cbm5ldC9kc2EvY29uZHVpdC5jLTMyNy0gKi9cbm5ldC9kc2EvY29uZHVpdC5jOjMyODpzdGF0aWMgdm9pZCBkc2FfY29uZHVpdF9zZXRfcHJvbWlzY3VpdHkoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgaW50IGluYylcbm5ldC9kc2EvY29uZHVpdC5jLTMyOS17XG5uZXQvZHNhL2NvbmR1aXQuYzozMzA6XHRjb25zdCBzdHJ1Y3QgZHNhX2RldmljZV9vcHMgKm9wcyA9IGRldi1cdTAwM2Vkc2FfcHRyLVx1MDAzZXRhZ19vcHM7XG5uZXQvZHNhL2NvbmR1aXQuYy0zMzEtXG4tLVxubmV0L2RzYS9jb25kdWl0LmM9MzQwPXN0YXRpYyBzc2l6ZV90IHRhZ2dpbmdfc2hvdyhzdHJ1Y3QgZGV2aWNlICpkLCBzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSAqYXR0cixcbi0tXG5uZXQvZHNhL2NvbmR1aXQuYy0zNDMtXHRzdHJ1Y3QgbmV0X2RldmljZSAqZGV2ID0gdG9fbmV0X2RldihkKTtcbm5ldC9kc2EvY29uZHVpdC5jOjM0NDpcdHN0cnVjdCBkc2FfcG9ydCAqY3B1X2RwID0gZGV2LVx1MDAzZWRzYV9wdHI7XG5uZXQvZHNhL2NvbmR1aXQuYy0zNDUtXG5uZXQvZHNhL2NvbmR1aXQuYy0zNDYtXHRyZXR1cm4gc3lzZnNfZW1pdChidWYsIFwmIzM0OyVzXFxuXCYjMzQ7LFxubmV0L2RzYS9jb25kdWl0LmM6MzQ3Olx0XHQgICAgICAgZHNhX3RhZ19wcm90b2NvbF90b19zdHIoY3B1X2RwLVx1MDAzZXRhZ19vcHMpKTtcbm5ldC9kc2EvY29uZHVpdC5jLTM0OC19XG4tLVxubmV0L2RzYS9jb25kdWl0LmM9MzUwPXN0YXRpYyBzc2l6ZV90IHRhZ2dpbmdfc3RvcmUoc3RydWN0IGRldmljZSAqZCwgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKmF0dHIsXG4tLVxubmV0L2RzYS9jb25kdWl0LmMtMzUyLXtcbm5ldC9kc2EvY29uZHVpdC5jOjM1MzpcdGNvbnN0IHN0cnVjdCBkc2FfZGV2aWNlX29wcyAqbmV3X3RhZ19vcHMsICpvbGRfdGFnX29wcztcbm5ldC9kc2EvY29uZHVpdC5jLTM1NC1cdGNvbnN0IGNoYXIgKmVuZCA9IHN0cmNocm51bChidWYsICYjMzk7XFxuJiMzOTspLCAqbmFtZTtcbm5ldC9kc2EvY29uZHVpdC5jLTM1NS1cdHN0cnVjdCBuZXRfZGV2aWNlICpkZXYgPSB0b19uZXRfZGV2KGQpO1xubmV0L2RzYS9jb25kdWl0LmM6MzU2Olx0c3RydWN0IGRzYV9wb3J0ICpjcHVfZHAgPSBkZXYtXHUwMDNlZHNhX3B0cjtcbm5ldC9kc2EvY29uZHVpdC5jLTM1Ny1cdHNpemVfdCBsZW4gPSBlbmQgLSBidWY7XG4tLVxubmV0L2RzYS9jb25kdWl0LmMtMzY4LVx0b2xkX3RhZ19vcHMgPSBjcHVfZHAtXHUwMDNldGFnX29wcztcbm5ldC9kc2EvY29uZHVpdC5jOjM2OTpcdG5ld190YWdfb3BzID0gZHNhX3RhZ19kcml2ZXJfZ2V0X2J5X25hbWUobmFtZSk7XG5uZXQvZHNhL2NvbmR1aXQuYy0zNzAtXHRrZnJlZShuYW1lKTtcbi0tXG5uZXQvZHNhL2NvbmR1aXQuYy0zODAtXG5uZXQvZHNhL2NvbmR1aXQuYzozODE6XHRlcnIgPSBkc2FfdHJlZV9jaGFuZ2VfdGFnX3Byb3RvKGNwdV9kcC1cdTAwM2Vkcy1cdTAwM2Vkc3QsIG5ld190YWdfb3BzLFxubmV0L2RzYS9jb25kdWl0LmMtMzgyLVx0XHRcdFx0XHRvbGRfdGFnX29wcyk7XG4tLVxubmV0L2RzYS9jb25kdWl0LmMtMzg2LVx0XHQgKi9cbm5ldC9kc2EvY29uZHVpdC5jOjM4NzpcdFx0ZHNhX3RhZ19kcml2ZXJfcHV0KG5ld190YWdfb3BzKTtcbm5ldC9kc2EvY29uZHVpdC5jLTM4OC1cdFx0cmV0dXJuIGVycjtcbi0tXG5uZXQvZHNhL2NvbmR1aXQuYy0zOTMtb3V0OlxubmV0L2RzYS9jb25kdWl0LmM6Mzk0Olx0ZHNhX3RhZ19kcml2ZXJfcHV0KG9sZF90YWdfb3BzKTtcbm5ldC9kc2EvY29uZHVpdC5jLTM5NS1cdHJldHVybiBjb3VudDtcbi0tXG5uZXQvZHNhL2NvbmR1aXQuYz0zOTc9c3RhdGljIERFVklDRV9BVFRSX1JXKHRhZ2dpbmcpO1xubmV0L2RzYS9jb25kdWl0LmMtMzk4LVxubmV0L2RzYS9jb25kdWl0LmM6Mzk5OnN0YXRpYyBzdHJ1Y3QgYXR0cmlidXRlICpkc2FfdXNlcl9hdHRyc1tdID0ge1xubmV0L2RzYS9jb25kdWl0LmMtNDAwLVx0XHUwMDI2ZGV2X2F0dHJfdGFnZ2luZy5hdHRyLFxuLS1cbm5ldC9kc2EvY29uZHVpdC5jLTQwMy1cbm5ldC9kc2EvY29uZHVpdC5jOjQwNDpzdGF0aWMgY29uc3Qgc3RydWN0IGF0dHJpYnV0ZV9ncm91cCBkc2FfZ3JvdXAgPSB7XG5uZXQvZHNhL2NvbmR1aXQuYzo0MDU6XHQubmFtZVx0PSBcJiMzNDtkc2FcJiMzNDssXG5uZXQvZHNhL2NvbmR1aXQuYzo0MDY6XHQuYXR0cnNcdD0gZHNhX3VzZXJfYXR0cnMsXG5uZXQvZHNhL2NvbmR1aXQuYy00MDctfTtcbm5ldC9kc2EvY29uZHVpdC5jLTQwOC1cbm5ldC9kc2EvY29uZHVpdC5jOjQwOTpzdGF0aWMgdm9pZCBkc2FfY29uZHVpdF9yZXNldF9tdHUoc3RydWN0IG5ldF9kZXZpY2UgKmRldilcbm5ldC9kc2EvY29uZHVpdC5jLTQxMC17XG4tLVxubmV0L2RzYS9jb25kdWl0LmMtNDE4LVxubmV0L2RzYS9jb25kdWl0LmM6NDE5OmludCBkc2FfY29uZHVpdF9zZXR1cChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBzdHJ1Y3QgZHNhX3BvcnQgKmNwdV9kcClcbm5ldC9kc2EvY29uZHVpdC5jLTQyMC17XG5uZXQvZHNhL2NvbmR1aXQuYzo0MjE6XHRjb25zdCBzdHJ1Y3QgZHNhX2RldmljZV9vcHMgKnRhZ19vcHMgPSBjcHVfZHAtXHUwMDNldGFnX29wcztcbm5ldC9kc2EvY29uZHVpdC5jOjQyMjpcdHN0cnVjdCBkc2Ffc3dpdGNoICpkcyA9IGNwdV9kcC1cdTAwM2Vkcztcbm5ldC9kc2EvY29uZHVpdC5jLTQyMy1cdHN0cnVjdCBkZXZpY2VfbGluayAqY29uc3VtZXJfbGluaztcbi0tXG5uZXQvZHNhL2NvbmR1aXQuYy00MjUtXG5uZXQvZHNhL2NvbmR1aXQuYzo0MjY6XHRtdHUgPSBFVEhfREFUQV9MRU4gJiM0MzsgZHNhX3RhZ19wcm90b2NvbF9vdmVyaGVhZCh0YWdfb3BzKTtcbm5ldC9kc2EvY29uZHVpdC5jLTQyNy1cbi0tXG5uZXQvZHNhL2NvbmR1aXQuYy00MzgtXHQvKiBUaGUgc3dpdGNoIGRyaXZlciBtYXkgbm90IGltcGxlbWVudCAtXHUwMDNlcG9ydF9jaGFuZ2VfbXR1KCksIGNhc2UgaW5cbm5ldC9kc2EvY29uZHVpdC5jOjQzOTpcdCAqIHdoaWNoIGRzYV91c2VyX2NoYW5nZV9tdHUoKSB3aWxsIG5vdCB1cGRhdGUgdGhlIGNvbmR1aXQgTVRVIGVpdGhlcixcbm5ldC9kc2EvY29uZHVpdC5jLTQ0MC1cdCAqIHNvIHdlIG5lZWQgdG8gZG8gdGhhdCBoZXJlLlxuLS1cbm5ldC9kc2EvY29uZHVpdC5jLTQ1Mi1cbm5ldC9kc2EvY29uZHVpdC5jOjQ1MzpcdGRldi1cdTAwM2Vkc2FfcHRyID0gY3B1X2RwO1xubmV0L2RzYS9jb25kdWl0LmMtNDU0LVxubmV0L2RzYS9jb25kdWl0LmM6NDU1Olx0ZHNhX2NvbmR1aXRfc2V0X3Byb21pc2N1aXR5KGRldiwgMSk7XG5uZXQvZHNhL2NvbmR1aXQuYy00NTYtXG5uZXQvZHNhL2NvbmR1aXQuYzo0NTc6XHRyZXQgPSBkc2FfY29uZHVpdF9ldGh0b29sX3NldHVwKGRldik7XG5uZXQvZHNhL2NvbmR1aXQuYy00NTgtXHRpZiAocmV0KVxuLS1cbm5ldC9kc2EvY29uZHVpdC5jLTQ2MC1cbm5ldC9kc2EvY29uZHVpdC5jOjQ2MTpcdHJldCA9IHN5c2ZzX2NyZWF0ZV9ncm91cChcdTAwMjZkZXYtXHUwMDNlZGV2LmtvYmosIFx1MDAyNmRzYV9ncm91cCk7XG5uZXQvZHNhL2NvbmR1aXQuYy00NjItXHRpZiAocmV0KVxuLS1cbm5ldC9kc2EvY29uZHVpdC5jLTQ2Ny1vdXRfZXJyX2V0aHRvb2xfdGVhcmRvd246XG5uZXQvZHNhL2NvbmR1aXQuYzo0Njg6XHRkc2FfY29uZHVpdF9ldGh0b29sX3RlYXJkb3duKGRldik7XG5uZXQvZHNhL2NvbmR1aXQuYy00Njktb3V0X2Vycl9yZXNldF9wcm9taXNjOlxubmV0L2RzYS9jb25kdWl0LmM6NDcwOlx0ZHNhX2NvbmR1aXRfc2V0X3Byb21pc2N1aXR5KGRldiwgLTEpO1xubmV0L2RzYS9jb25kdWl0LmMtNDcxLVx0cmV0dXJuIHJldDtcbi0tXG5uZXQvZHNhL2NvbmR1aXQuYy00NzMtXG5uZXQvZHNhL2NvbmR1aXQuYzo0NzQ6dm9pZCBkc2FfY29uZHVpdF90ZWFyZG93bihzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KVxubmV0L2RzYS9jb25kdWl0LmMtNDc1LXtcbm5ldC9kc2EvY29uZHVpdC5jOjQ3NjpcdHN5c2ZzX3JlbW92ZV9ncm91cChcdTAwMjZkZXYtXHUwMDNlZGV2LmtvYmosIFx1MDAyNmRzYV9ncm91cCk7XG5uZXQvZHNhL2NvbmR1aXQuYzo0Nzc6XHRkc2FfY29uZHVpdF9ldGh0b29sX3RlYXJkb3duKGRldik7XG5uZXQvZHNhL2NvbmR1aXQuYzo0Nzg6XHRkc2FfY29uZHVpdF9yZXNldF9tdHUoZGV2KTtcbm5ldC9kc2EvY29uZHVpdC5jOjQ3OTpcdGRzYV9jb25kdWl0X3NldF9wcm9taXNjdWl0eShkZXYsIC0xKTtcbm5ldC9kc2EvY29uZHVpdC5jLTQ4MC1cbm5ldC9kc2EvY29uZHVpdC5jOjQ4MTpcdGRldi1cdTAwM2Vkc2FfcHRyID0gTlVMTDtcbm5ldC9kc2EvY29uZHVpdC5jLTQ4Mi1cbi0tXG5uZXQvZHNhL2NvbmR1aXQuYy00ODktXG5uZXQvZHNhL2NvbmR1aXQuYzo0OTA6aW50IGRzYV9jb25kdWl0X2xhZ19zZXR1cChzdHJ1Y3QgbmV0X2RldmljZSAqbGFnX2Rldiwgc3RydWN0IGRzYV9wb3J0ICpjcHVfZHAsXG5uZXQvZHNhL2NvbmR1aXQuYy00OTEtXHRcdFx0ICBzdHJ1Y3QgbmV0ZGV2X2xhZ191cHBlcl9pbmZvICp1aW5mbyxcbi0tXG5uZXQvZHNhL2NvbmR1aXQuYy00OTYtXG5uZXQvZHNhL2NvbmR1aXQuYzo0OTc6XHRpZiAoIW5ldGRldl91c2VzX2RzYShsYWdfZGV2KSkge1xubmV0L2RzYS9jb25kdWl0LmM6NDk4Olx0XHRlcnIgPSBkc2FfY29uZHVpdF9zZXR1cChsYWdfZGV2LCBjcHVfZHApO1xubmV0L2RzYS9jb25kdWl0LmMtNDk5LVx0XHRpZiAoZXJyKVxuLS1cbm5ldC9kc2EvY29uZHVpdC5jLTUwNC1cbm5ldC9kc2EvY29uZHVpdC5jOjUwNTpcdGVyciA9IGRzYV9wb3J0X2xhZ19qb2luKGNwdV9kcCwgbGFnX2RldiwgdWluZm8sIGV4dGFjayk7XG5uZXQvZHNhL2NvbmR1aXQuYy01MDYtXHRpZiAoZXJyKSB7XG4tLVxubmV0L2RzYS9jb25kdWl0LmMtNTE0LVx0aWYgKGNvbmR1aXRfc2V0dXApXG5uZXQvZHNhL2NvbmR1aXQuYzo1MTU6XHRcdGRzYV9jb25kdWl0X3RlYXJkb3duKGxhZ19kZXYpO1xubmV0L2RzYS9jb25kdWl0LmMtNTE2LVx0cmV0dXJuIGVycjtcbi0tXG5uZXQvZHNhL2NvbmR1aXQuYy01MjEtICovXG5uZXQvZHNhL2NvbmR1aXQuYzo1MjI6dm9pZCBkc2FfY29uZHVpdF9sYWdfdGVhcmRvd24oc3RydWN0IG5ldF9kZXZpY2UgKmxhZ19kZXYsXG5uZXQvZHNhL2NvbmR1aXQuYzo1MjM6XHRcdFx0ICAgICAgc3RydWN0IGRzYV9wb3J0ICpjcHVfZHApXG5uZXQvZHNhL2NvbmR1aXQuYy01MjQte1xuLS1cbm5ldC9kc2EvY29uZHVpdC5jLTUyNy1cbm5ldC9kc2EvY29uZHVpdC5jOjUyODpcdGRzYV9wb3J0X2xhZ19sZWF2ZShjcHVfZHAsIGxhZ19kZXYpO1xubmV0L2RzYS9jb25kdWl0LmMtNTI5LVxubmV0L2RzYS9jb25kdWl0LmMtNTMwLVx0bmV0ZGV2X2Zvcl9lYWNoX3VwcGVyX2Rldl9yY3UobGFnX2RldiwgdXBwZXIsIGl0ZXIpXG5uZXQvZHNhL2NvbmR1aXQuYzo1MzE6XHRcdGlmIChkc2FfdXNlcl9kZXZfY2hlY2sodXBwZXIpKVxubmV0L2RzYS9jb25kdWl0LmMtNTMyLVx0XHRcdHJldHVybjtcbm5ldC9kc2EvY29uZHVpdC5jLTUzMy1cbm5ldC9kc2EvY29uZHVpdC5jOjUzNDpcdGRzYV9jb25kdWl0X3RlYXJkb3duKGxhZ19kZXYpO1xubmV0L2RzYS9jb25kdWl0LmMtNTM1LX1cbi0tXG5uZXQvZHNhL2NvbmR1aXQuaC01LVxubmV0L2RzYS9jb25kdWl0Lmg6NjpzdHJ1Y3QgZHNhX3BvcnQ7XG5uZXQvZHNhL2NvbmR1aXQuaC03LXN0cnVjdCBuZXRfZGV2aWNlO1xuLS1cbm5ldC9kc2EvY29uZHVpdC5oPTk9c3RydWN0IG5ldGxpbmtfZXh0X2Fjaztcbm5ldC9kc2EvY29uZHVpdC5oLTEwLVxubmV0L2RzYS9jb25kdWl0Lmg6MTE6aW50IGRzYV9jb25kdWl0X3NldHVwKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIHN0cnVjdCBkc2FfcG9ydCAqY3B1X2RwKTtcbm5ldC9kc2EvY29uZHVpdC5oOjEyOnZvaWQgZHNhX2NvbmR1aXRfdGVhcmRvd24oc3RydWN0IG5ldF9kZXZpY2UgKmRldik7XG5uZXQvZHNhL2NvbmR1aXQuaDoxMzppbnQgZHNhX2NvbmR1aXRfbGFnX3NldHVwKHN0cnVjdCBuZXRfZGV2aWNlICpsYWdfZGV2LCBzdHJ1Y3QgZHNhX3BvcnQgKmNwdV9kcCxcbm5ldC9kc2EvY29uZHVpdC5oLTE0LVx0XHRcdCAgc3RydWN0IG5ldGRldl9sYWdfdXBwZXJfaW5mbyAqdWluZm8sXG5uZXQvZHNhL2NvbmR1aXQuaC0xNS1cdFx0XHQgIHN0cnVjdCBuZXRsaW5rX2V4dF9hY2sgKmV4dGFjayk7XG5uZXQvZHNhL2NvbmR1aXQuaDoxNjp2b2lkIGRzYV9jb25kdWl0X2xhZ190ZWFyZG93bihzdHJ1Y3QgbmV0X2RldmljZSAqbGFnX2Rldixcbm5ldC9kc2EvY29uZHVpdC5oOjE3Olx0XHRcdCAgICAgIHN0cnVjdCBkc2FfcG9ydCAqY3B1X2RwKTtcbm5ldC9kc2EvY29uZHVpdC5oOjE4OmludCBfX2RzYV9jb25kdWl0X2h3dHN0YW1wX3ZhbGlkYXRlKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsXG5uZXQvZHNhL2NvbmR1aXQuaC0xOS1cdFx0XHRcdCAgICBjb25zdCBzdHJ1Y3Qga2VybmVsX2h3dHN0YW1wX2NvbmZpZyAqY29uZmlnLFxuLS1cbm5ldC9kc2EvZGV2bGluay5jLTUtXG5uZXQvZHNhL2RldmxpbmsuYzo2OiNpbmNsdWRlIFx1MDAzY25ldC9kc2EuaFx1MDAzZVxubmV0L2RzYS9kZXZsaW5rLmMtNy0jaW5jbHVkZSBcdTAwM2NuZXQvZGV2bGluay5oXHUwMDNlXG4tLVxubmV0L2RzYS9kZXZsaW5rLmMtMTAtXG5uZXQvZHNhL2RldmxpbmsuYzoxMTpzdGF0aWMgaW50IGRzYV9kZXZsaW5rX2luZm9fZ2V0KHN0cnVjdCBkZXZsaW5rICpkbCxcbm5ldC9kc2EvZGV2bGluay5jLTEyLVx0XHRcdFx0c3RydWN0IGRldmxpbmtfaW5mb19yZXEgKnJlcSxcbi0tXG5uZXQvZHNhL2RldmxpbmsuYy0xNC17XG5uZXQvZHNhL2RldmxpbmsuYzoxNTpcdHN0cnVjdCBkc2Ffc3dpdGNoICpkcyA9IGRzYV9kZXZsaW5rX3RvX2RzKGRsKTtcbm5ldC9kc2EvZGV2bGluay5jLTE2LVxuLS1cbm5ldC9kc2EvZGV2bGluay5jLTIyLVxubmV0L2RzYS9kZXZsaW5rLmM6MjM6c3RhdGljIGludCBkc2FfZGV2bGlua19zYl9wb29sX2dldChzdHJ1Y3QgZGV2bGluayAqZGwsXG5uZXQvZHNhL2RldmxpbmsuYy0yNC1cdFx0XHRcdCAgIHVuc2lnbmVkIGludCBzYl9pbmRleCwgdTE2IHBvb2xfaW5kZXgsXG4tLVxubmV0L2RzYS9kZXZsaW5rLmMtMjYte1xubmV0L2RzYS9kZXZsaW5rLmM6Mjc6XHRzdHJ1Y3QgZHNhX3N3aXRjaCAqZHMgPSBkc2FfZGV2bGlua190b19kcyhkbCk7XG5uZXQvZHNhL2RldmxpbmsuYy0yOC1cbi0tXG5uZXQvZHNhL2RldmxpbmsuYy0zNS1cbm5ldC9kc2EvZGV2bGluay5jOjM2OnN0YXRpYyBpbnQgZHNhX2Rldmxpbmtfc2JfcG9vbF9zZXQoc3RydWN0IGRldmxpbmsgKmRsLCB1bnNpZ25lZCBpbnQgc2JfaW5kZXgsXG5uZXQvZHNhL2RldmxpbmsuYy0zNy1cdFx0XHRcdCAgIHUxNiBwb29sX2luZGV4LCB1MzIgc2l6ZSxcbi0tXG5uZXQvZHNhL2RldmxpbmsuYy00MC17XG5uZXQvZHNhL2RldmxpbmsuYzo0MTpcdHN0cnVjdCBkc2Ffc3dpdGNoICpkcyA9IGRzYV9kZXZsaW5rX3RvX2RzKGRsKTtcbm5ldC9kc2EvZGV2bGluay5jLTQyLVxuLS1cbm5ldC9kc2EvZGV2bGluay5jLTQ5LVxubmV0L2RzYS9kZXZsaW5rLmM6NTA6c3RhdGljIGludCBkc2FfZGV2bGlua19zYl9wb3J0X3Bvb2xfZ2V0KHN0cnVjdCBkZXZsaW5rX3BvcnQgKmRscCxcbm5ldC9kc2EvZGV2bGluay5jLTUxLVx0XHRcdFx0XHR1bnNpZ25lZCBpbnQgc2JfaW5kZXgsIHUxNiBwb29sX2luZGV4LFxuLS1cbm5ldC9kc2EvZGV2bGluay5jLTUzLXtcbm5ldC9kc2EvZGV2bGluay5jOjU0Olx0c3RydWN0IGRzYV9zd2l0Y2ggKmRzID0gZHNhX2RldmxpbmtfcG9ydF90b19kcyhkbHApO1xubmV0L2RzYS9kZXZsaW5rLmM6NTU6XHRpbnQgcG9ydCA9IGRzYV9kZXZsaW5rX3BvcnRfdG9fcG9ydChkbHApO1xubmV0L2RzYS9kZXZsaW5rLmMtNTYtXG4tLVxubmV0L2RzYS9kZXZsaW5rLmMtNjMtXG5uZXQvZHNhL2RldmxpbmsuYzo2NDpzdGF0aWMgaW50IGRzYV9kZXZsaW5rX3NiX3BvcnRfcG9vbF9zZXQoc3RydWN0IGRldmxpbmtfcG9ydCAqZGxwLFxubmV0L2RzYS9kZXZsaW5rLmMtNjUtXHRcdFx0XHRcdHVuc2lnbmVkIGludCBzYl9pbmRleCwgdTE2IHBvb2xfaW5kZXgsXG4tLVxubmV0L2RzYS9kZXZsaW5rLmMtNjgte1xubmV0L2RzYS9kZXZsaW5rLmM6Njk6XHRzdHJ1Y3QgZHNhX3N3aXRjaCAqZHMgPSBkc2FfZGV2bGlua19wb3J0X3RvX2RzKGRscCk7XG5uZXQvZHNhL2RldmxpbmsuYzo3MDpcdGludCBwb3J0ID0gZHNhX2RldmxpbmtfcG9ydF90b19wb3J0KGRscCk7XG5uZXQvZHNhL2RldmxpbmsuYy03MS1cbi0tXG5uZXQvZHNhL2RldmxpbmsuYz03OT1zdGF0aWMgaW50XG5uZXQvZHNhL2RldmxpbmsuYzo4MDpkc2FfZGV2bGlua19zYl90Y19wb29sX2JpbmRfZ2V0KHN0cnVjdCBkZXZsaW5rX3BvcnQgKmRscCxcbm5ldC9kc2EvZGV2bGluay5jLTgxLVx0XHRcdFx0dW5zaWduZWQgaW50IHNiX2luZGV4LCB1MTYgdGNfaW5kZXgsXG4tLVxubmV0L2RzYS9kZXZsaW5rLmMtODQte1xubmV0L2RzYS9kZXZsaW5rLmM6ODU6XHRzdHJ1Y3QgZHNhX3N3aXRjaCAqZHMgPSBkc2FfZGV2bGlua19wb3J0X3RvX2RzKGRscCk7XG5uZXQvZHNhL2RldmxpbmsuYzo4NjpcdGludCBwb3J0ID0gZHNhX2RldmxpbmtfcG9ydF90b19wb3J0KGRscCk7XG5uZXQvZHNhL2RldmxpbmsuYy04Ny1cbi0tXG5uZXQvZHNhL2RldmxpbmsuYz05Nj1zdGF0aWMgaW50XG5uZXQvZHNhL2RldmxpbmsuYzo5Nzpkc2FfZGV2bGlua19zYl90Y19wb29sX2JpbmRfc2V0KHN0cnVjdCBkZXZsaW5rX3BvcnQgKmRscCxcbm5ldC9kc2EvZGV2bGluay5jLTk4LVx0XHRcdFx0dW5zaWduZWQgaW50IHNiX2luZGV4LCB1MTYgdGNfaW5kZXgsXG4tLVxubmV0L2RzYS9kZXZsaW5rLmMtMTAyLXtcbm5ldC9kc2EvZGV2bGluay5jOjEwMzpcdHN0cnVjdCBkc2Ffc3dpdGNoICpkcyA9IGRzYV9kZXZsaW5rX3BvcnRfdG9fZHMoZGxwKTtcbm5ldC9kc2EvZGV2bGluay5jOjEwNDpcdGludCBwb3J0ID0gZHNhX2RldmxpbmtfcG9ydF90b19wb3J0KGRscCk7XG5uZXQvZHNhL2RldmxpbmsuYy0xMDUtXG4tLVxubmV0L2RzYS9kZXZsaW5rLmMtMTE0LVxubmV0L2RzYS9kZXZsaW5rLmM6MTE1OnN0YXRpYyBpbnQgZHNhX2Rldmxpbmtfc2Jfb2NjX3NuYXBzaG90KHN0cnVjdCBkZXZsaW5rICpkbCxcbm5ldC9kc2EvZGV2bGluay5jLTExNi1cdFx0XHRcdCAgICAgICB1bnNpZ25lZCBpbnQgc2JfaW5kZXgpXG5uZXQvZHNhL2RldmxpbmsuYy0xMTcte1xubmV0L2RzYS9kZXZsaW5rLmM6MTE4Olx0c3RydWN0IGRzYV9zd2l0Y2ggKmRzID0gZHNhX2RldmxpbmtfdG9fZHMoZGwpO1xubmV0L2RzYS9kZXZsaW5rLmMtMTE5LVxuLS1cbm5ldC9kc2EvZGV2bGluay5jLTEyNS1cbm5ldC9kc2EvZGV2bGluay5jOjEyNjpzdGF0aWMgaW50IGRzYV9kZXZsaW5rX3NiX29jY19tYXhfY2xlYXIoc3RydWN0IGRldmxpbmsgKmRsLFxubmV0L2RzYS9kZXZsaW5rLmMtMTI3LVx0XHRcdFx0XHR1bnNpZ25lZCBpbnQgc2JfaW5kZXgpXG5uZXQvZHNhL2RldmxpbmsuYy0xMjgte1xubmV0L2RzYS9kZXZsaW5rLmM6MTI5Olx0c3RydWN0IGRzYV9zd2l0Y2ggKmRzID0gZHNhX2RldmxpbmtfdG9fZHMoZGwpO1xubmV0L2RzYS9kZXZsaW5rLmMtMTMwLVxuLS1cbm5ldC9kc2EvZGV2bGluay5jLTEzNi1cbm5ldC9kc2EvZGV2bGluay5jOjEzNzpzdGF0aWMgaW50IGRzYV9kZXZsaW5rX3NiX29jY19wb3J0X3Bvb2xfZ2V0KHN0cnVjdCBkZXZsaW5rX3BvcnQgKmRscCxcbm5ldC9kc2EvZGV2bGluay5jLTEzOC1cdFx0XHRcdFx0ICAgIHVuc2lnbmVkIGludCBzYl9pbmRleCxcbi0tXG5uZXQvZHNhL2RldmxpbmsuYy0xNDEte1xubmV0L2RzYS9kZXZsaW5rLmM6MTQyOlx0c3RydWN0IGRzYV9zd2l0Y2ggKmRzID0gZHNhX2RldmxpbmtfcG9ydF90b19kcyhkbHApO1xubmV0L2RzYS9kZXZsaW5rLmM6MTQzOlx0aW50IHBvcnQgPSBkc2FfZGV2bGlua19wb3J0X3RvX3BvcnQoZGxwKTtcbm5ldC9kc2EvZGV2bGluay5jLTE0NC1cbi0tXG5uZXQvZHNhL2RldmxpbmsuYz0xNTI9c3RhdGljIGludFxubmV0L2RzYS9kZXZsaW5rLmM6MTUzOmRzYV9kZXZsaW5rX3NiX29jY190Y19wb3J0X2JpbmRfZ2V0KHN0cnVjdCBkZXZsaW5rX3BvcnQgKmRscCxcbm5ldC9kc2EvZGV2bGluay5jLTE1NC1cdFx0XHRcdCAgICB1bnNpZ25lZCBpbnQgc2JfaW5kZXgsIHUxNiB0Y19pbmRleCxcbi0tXG5uZXQvZHNhL2RldmxpbmsuYy0xNTcte1xubmV0L2RzYS9kZXZsaW5rLmM6MTU4Olx0c3RydWN0IGRzYV9zd2l0Y2ggKmRzID0gZHNhX2RldmxpbmtfcG9ydF90b19kcyhkbHApO1xubmV0L2RzYS9kZXZsaW5rLmM6MTU5Olx0aW50IHBvcnQgPSBkc2FfZGV2bGlua19wb3J0X3RvX3BvcnQoZGxwKTtcbm5ldC9kc2EvZGV2bGluay5jLTE2MC1cbi0tXG5uZXQvZHNhL2RldmxpbmsuYy0xNjktXG5uZXQvZHNhL2RldmxpbmsuYzoxNzA6c3RhdGljIGNvbnN0IHN0cnVjdCBkZXZsaW5rX29wcyBkc2FfZGV2bGlua19vcHMgPSB7XG5uZXQvZHNhL2RldmxpbmsuYzoxNzE6XHQuaW5mb19nZXRcdFx0XHQ9IGRzYV9kZXZsaW5rX2luZm9fZ2V0LFxubmV0L2RzYS9kZXZsaW5rLmM6MTcyOlx0LnNiX3Bvb2xfZ2V0XHRcdFx0PSBkc2FfZGV2bGlua19zYl9wb29sX2dldCxcbm5ldC9kc2EvZGV2bGluay5jOjE3MzpcdC5zYl9wb29sX3NldFx0XHRcdD0gZHNhX2Rldmxpbmtfc2JfcG9vbF9zZXQsXG5uZXQvZHNhL2RldmxpbmsuYzoxNzQ6XHQuc2JfcG9ydF9wb29sX2dldFx0XHQ9IGRzYV9kZXZsaW5rX3NiX3BvcnRfcG9vbF9nZXQsXG5uZXQvZHNhL2RldmxpbmsuYzoxNzU6XHQuc2JfcG9ydF9wb29sX3NldFx0XHQ9IGRzYV9kZXZsaW5rX3NiX3BvcnRfcG9vbF9zZXQsXG5uZXQvZHNhL2RldmxpbmsuYzoxNzY6XHQuc2JfdGNfcG9vbF9iaW5kX2dldFx0XHQ9IGRzYV9kZXZsaW5rX3NiX3RjX3Bvb2xfYmluZF9nZXQsXG5uZXQvZHNhL2RldmxpbmsuYzoxNzc6XHQuc2JfdGNfcG9vbF9iaW5kX3NldFx0XHQ9IGRzYV9kZXZsaW5rX3NiX3RjX3Bvb2xfYmluZF9zZXQsXG5uZXQvZHNhL2RldmxpbmsuYzoxNzg6XHQuc2Jfb2NjX3NuYXBzaG90XHRcdD0gZHNhX2Rldmxpbmtfc2Jfb2NjX3NuYXBzaG90LFxubmV0L2RzYS9kZXZsaW5rLmM6MTc5Olx0LnNiX29jY19tYXhfY2xlYXJcdFx0PSBkc2FfZGV2bGlua19zYl9vY2NfbWF4X2NsZWFyLFxubmV0L2RzYS9kZXZsaW5rLmM6MTgwOlx0LnNiX29jY19wb3J0X3Bvb2xfZ2V0XHRcdD0gZHNhX2Rldmxpbmtfc2Jfb2NjX3BvcnRfcG9vbF9nZXQsXG5uZXQvZHNhL2RldmxpbmsuYzoxODE6XHQuc2Jfb2NjX3RjX3BvcnRfYmluZF9nZXRcdD0gZHNhX2Rldmxpbmtfc2Jfb2NjX3RjX3BvcnRfYmluZF9nZXQsXG5uZXQvZHNhL2RldmxpbmsuYy0xODItfTtcbm5ldC9kc2EvZGV2bGluay5jLTE4My1cbm5ldC9kc2EvZGV2bGluay5jOjE4NDppbnQgZHNhX2RldmxpbmtfcGFyYW1fZ2V0KHN0cnVjdCBkZXZsaW5rICpkbCwgdTMyIGlkLFxubmV0L2RzYS9kZXZsaW5rLmMtMTg1LVx0XHRcdCAgc3RydWN0IGRldmxpbmtfcGFyYW1fZ3NldF9jdHggKmN0eCxcbi0tXG5uZXQvZHNhL2RldmxpbmsuYy0xODcte1xubmV0L2RzYS9kZXZsaW5rLmM6MTg4Olx0c3RydWN0IGRzYV9zd2l0Y2ggKmRzID0gZHNhX2RldmxpbmtfdG9fZHMoZGwpO1xubmV0L2RzYS9kZXZsaW5rLmMtMTg5LVxuLS1cbm5ldC9kc2EvZGV2bGluay5jLTE5NC19XG5uZXQvZHNhL2RldmxpbmsuYzoxOTU6RVhQT1JUX1NZTUJPTF9HUEwoZHNhX2RldmxpbmtfcGFyYW1fZ2V0KTtcbm5ldC9kc2EvZGV2bGluay5jLTE5Ni1cbm5ldC9kc2EvZGV2bGluay5jOjE5NzppbnQgZHNhX2RldmxpbmtfcGFyYW1fc2V0KHN0cnVjdCBkZXZsaW5rICpkbCwgdTMyIGlkLFxubmV0L2RzYS9kZXZsaW5rLmMtMTk4LVx0XHRcdCAgc3RydWN0IGRldmxpbmtfcGFyYW1fZ3NldF9jdHggKmN0eCxcbi0tXG5uZXQvZHNhL2RldmxpbmsuYy0yMDAte1xubmV0L2RzYS9kZXZsaW5rLmM6MjAxOlx0c3RydWN0IGRzYV9zd2l0Y2ggKmRzID0gZHNhX2RldmxpbmtfdG9fZHMoZGwpO1xubmV0L2RzYS9kZXZsaW5rLmMtMjAyLVxuLS1cbm5ldC9kc2EvZGV2bGluay5jLTIwNy19XG5uZXQvZHNhL2RldmxpbmsuYzoyMDg6RVhQT1JUX1NZTUJPTF9HUEwoZHNhX2RldmxpbmtfcGFyYW1fc2V0KTtcbm5ldC9kc2EvZGV2bGluay5jLTIwOS1cbm5ldC9kc2EvZGV2bGluay5jOjIxMDppbnQgZHNhX2RldmxpbmtfcGFyYW1zX3JlZ2lzdGVyKHN0cnVjdCBkc2Ffc3dpdGNoICpkcyxcbm5ldC9kc2EvZGV2bGluay5jLTIxMS1cdFx0XHRcdGNvbnN0IHN0cnVjdCBkZXZsaW5rX3BhcmFtICpwYXJhbXMsXG4tLVxubmV0L2RzYS9kZXZsaW5rLmMtMjE1LX1cbm5ldC9kc2EvZGV2bGluay5jOjIxNjpFWFBPUlRfU1lNQk9MX0dQTChkc2FfZGV2bGlua19wYXJhbXNfcmVnaXN0ZXIpO1xubmV0L2RzYS9kZXZsaW5rLmMtMjE3LVxubmV0L2RzYS9kZXZsaW5rLmM6MjE4OnZvaWQgZHNhX2RldmxpbmtfcGFyYW1zX3VucmVnaXN0ZXIoc3RydWN0IGRzYV9zd2l0Y2ggKmRzLFxubmV0L2RzYS9kZXZsaW5rLmMtMjE5LVx0XHRcdFx0ICAgY29uc3Qgc3RydWN0IGRldmxpbmtfcGFyYW0gKnBhcmFtcyxcbi0tXG5uZXQvZHNhL2RldmxpbmsuYy0yMjMtfVxubmV0L2RzYS9kZXZsaW5rLmM6MjI0OkVYUE9SVF9TWU1CT0xfR1BMKGRzYV9kZXZsaW5rX3BhcmFtc191bnJlZ2lzdGVyKTtcbm5ldC9kc2EvZGV2bGluay5jLTIyNS1cbm5ldC9kc2EvZGV2bGluay5jOjIyNjppbnQgZHNhX2RldmxpbmtfcmVzb3VyY2VfcmVnaXN0ZXIoc3RydWN0IGRzYV9zd2l0Y2ggKmRzLFxubmV0L2RzYS9kZXZsaW5rLmMtMjI3LVx0XHRcdFx0ICBjb25zdCBjaGFyICpyZXNvdXJjZV9uYW1lLFxuLS1cbm5ldC9kc2EvZGV2bGluay5jLTI0Mi19XG5uZXQvZHNhL2RldmxpbmsuYzoyNDM6RVhQT1JUX1NZTUJPTF9HUEwoZHNhX2RldmxpbmtfcmVzb3VyY2VfcmVnaXN0ZXIpO1xubmV0L2RzYS9kZXZsaW5rLmMtMjQ0LVxubmV0L2RzYS9kZXZsaW5rLmM6MjQ1OnZvaWQgZHNhX2RldmxpbmtfcmVzb3VyY2VzX3VucmVnaXN0ZXIoc3RydWN0IGRzYV9zd2l0Y2ggKmRzKVxubmV0L2RzYS9kZXZsaW5rLmMtMjQ2LXtcbi0tXG5uZXQvZHNhL2RldmxpbmsuYy0yNDgtfVxubmV0L2RzYS9kZXZsaW5rLmM6MjQ5OkVYUE9SVF9TWU1CT0xfR1BMKGRzYV9kZXZsaW5rX3Jlc291cmNlc191bnJlZ2lzdGVyKTtcbm5ldC9kc2EvZGV2bGluay5jLTI1MC1cbm5ldC9kc2EvZGV2bGluay5jOjI1MTp2b2lkIGRzYV9kZXZsaW5rX3Jlc291cmNlX29jY19nZXRfcmVnaXN0ZXIoc3RydWN0IGRzYV9zd2l0Y2ggKmRzLFxubmV0L2RzYS9kZXZsaW5rLmMtMjUyLVx0XHRcdFx0XHQgICB1NjQgcmVzb3VyY2VfaWQsXG4tLVxubmV0L2RzYS9kZXZsaW5rLmMtMjYwLX1cbm5ldC9kc2EvZGV2bGluay5jOjI2MTpFWFBPUlRfU1lNQk9MX0dQTChkc2FfZGV2bGlua19yZXNvdXJjZV9vY2NfZ2V0X3JlZ2lzdGVyKTtcbm5ldC9kc2EvZGV2bGluay5jLTI2Mi1cbm5ldC9kc2EvZGV2bGluay5jOjI2Mzp2b2lkIGRzYV9kZXZsaW5rX3Jlc291cmNlX29jY19nZXRfdW5yZWdpc3RlcihzdHJ1Y3QgZHNhX3N3aXRjaCAqZHMsXG5uZXQvZHNhL2RldmxpbmsuYy0yNjQtXHRcdFx0XHRcdCAgICAgdTY0IHJlc291cmNlX2lkKVxuLS1cbm5ldC9kc2EvZGV2bGluay5jLTI2OS19XG5uZXQvZHNhL2RldmxpbmsuYzoyNzA6RVhQT1JUX1NZTUJPTF9HUEwoZHNhX2RldmxpbmtfcmVzb3VyY2Vfb2NjX2dldF91bnJlZ2lzdGVyKTtcbm5ldC9kc2EvZGV2bGluay5jLTI3MS1cbm5ldC9kc2EvZGV2bGluay5jPTI3Mj1zdHJ1Y3QgZGV2bGlua19yZWdpb24gKlxubmV0L2RzYS9kZXZsaW5rLmM6MjczOmRzYV9kZXZsaW5rX3JlZ2lvbl9jcmVhdGUoc3RydWN0IGRzYV9zd2l0Y2ggKmRzLFxubmV0L2RzYS9kZXZsaW5rLmMtMjc0LVx0XHRcdCAgY29uc3Qgc3RydWN0IGRldmxpbmtfcmVnaW9uX29wcyAqb3BzLFxuLS1cbm5ldC9kc2EvZGV2bGluay5jLTI3OS19XG5uZXQvZHNhL2RldmxpbmsuYzoyODA6RVhQT1JUX1NZTUJPTF9HUEwoZHNhX2RldmxpbmtfcmVnaW9uX2NyZWF0ZSk7XG5uZXQvZHNhL2RldmxpbmsuYy0yODEtXG5uZXQvZHNhL2RldmxpbmsuYz0yODI9c3RydWN0IGRldmxpbmtfcmVnaW9uICpcbm5ldC9kc2EvZGV2bGluay5jOjI4Mzpkc2FfZGV2bGlua19wb3J0X3JlZ2lvbl9jcmVhdGUoc3RydWN0IGRzYV9zd2l0Y2ggKmRzLFxubmV0L2RzYS9kZXZsaW5rLmMtMjg0LVx0XHRcdCAgICAgICBpbnQgcG9ydCxcbi0tXG5uZXQvZHNhL2RldmxpbmsuYy0yODcte1xubmV0L2RzYS9kZXZsaW5rLmM6Mjg4Olx0c3RydWN0IGRzYV9wb3J0ICpkcCA9IGRzYV90b19wb3J0KGRzLCBwb3J0KTtcbm5ldC9kc2EvZGV2bGluay5jLTI4OS1cbi0tXG5uZXQvZHNhL2RldmxpbmsuYy0yOTMtfVxubmV0L2RzYS9kZXZsaW5rLmM6Mjk0OkVYUE9SVF9TWU1CT0xfR1BMKGRzYV9kZXZsaW5rX3BvcnRfcmVnaW9uX2NyZWF0ZSk7XG5uZXQvZHNhL2RldmxpbmsuYy0yOTUtXG5uZXQvZHNhL2RldmxpbmsuYzoyOTY6dm9pZCBkc2FfZGV2bGlua19yZWdpb25fZGVzdHJveShzdHJ1Y3QgZGV2bGlua19yZWdpb24gKnJlZ2lvbilcbm5ldC9kc2EvZGV2bGluay5jLTI5Ny17XG4tLVxubmV0L2RzYS9kZXZsaW5rLmMtMjk5LX1cbm5ldC9kc2EvZGV2bGluay5jOjMwMDpFWFBPUlRfU1lNQk9MX0dQTChkc2FfZGV2bGlua19yZWdpb25fZGVzdHJveSk7XG5uZXQvZHNhL2RldmxpbmsuYy0zMDEtXG5uZXQvZHNhL2RldmxpbmsuYzozMDI6aW50IGRzYV9wb3J0X2Rldmxpbmtfc2V0dXAoc3RydWN0IGRzYV9wb3J0ICpkcClcbm5ldC9kc2EvZGV2bGluay5jLTMwMy17XG5uZXQvZHNhL2RldmxpbmsuYy0zMDQtXHRzdHJ1Y3QgZGV2bGlua19wb3J0ICpkbHAgPSBcdTAwMjZkcC1cdTAwM2VkZXZsaW5rX3BvcnQ7XG5uZXQvZHNhL2RldmxpbmsuYzozMDU6XHRzdHJ1Y3QgZHNhX3N3aXRjaF90cmVlICpkc3QgPSBkcC1cdTAwM2Vkcy1cdTAwM2Vkc3Q7XG5uZXQvZHNhL2RldmxpbmsuYy0zMDYtXHRzdHJ1Y3QgZGV2bGlua19wb3J0X2F0dHJzIGF0dHJzID0ge307XG5uZXQvZHNhL2RldmxpbmsuYy0zMDctXHRzdHJ1Y3QgZGV2bGluayAqZGwgPSBkcC1cdTAwM2Vkcy1cdTAwM2VkZXZsaW5rO1xubmV0L2RzYS9kZXZsaW5rLmM6MzA4Olx0c3RydWN0IGRzYV9zd2l0Y2ggKmRzID0gZHAtXHUwMDNlZHM7XG5uZXQvZHNhL2RldmxpbmsuYy0zMDktXHRjb25zdCB1bnNpZ25lZCBjaGFyICppZDtcbi0tXG5uZXQvZHNhL2RldmxpbmsuYy0zNTQtXG5uZXQvZHNhL2RldmxpbmsuYzozNTU6dm9pZCBkc2FfcG9ydF9kZXZsaW5rX3RlYXJkb3duKHN0cnVjdCBkc2FfcG9ydCAqZHApXG5uZXQvZHNhL2RldmxpbmsuYy0zNTYte1xubmV0L2RzYS9kZXZsaW5rLmMtMzU3LVx0c3RydWN0IGRldmxpbmtfcG9ydCAqZGxwID0gXHUwMDI2ZHAtXHUwMDNlZGV2bGlua19wb3J0O1xuXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjkvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzIwIDIwOjQ4PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDI0ODQwCgkJCQkJCQlvdXRwdXQ6IDI4CgkJCQkJCQl0aG91Z2h0czogMTQ2CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKk15IExpbmUgb2YgUmVhc29uaW5nKioKCk9rYXksIGRlZXAgYnJlYXRoLiBMZXQmIzM5O3MgYnJlYWsgdGhpcyBkb3duLiBEU0Eg4oCTIHRoYXQmIzM5O3MgYSAqY29yZSogc3Vic3lzdGVtLiBJbXBvcnRhbnQgc3R1ZmYuIEJ1dCBzcGVjaWZpY2FsbHksIHdlJiMzOTtyZSB0YWxraW5nIGFib3V0IHRoZSBgbXQ3NTMwYCBkcml2ZXIsIHdoaWNoLCBpZiBtZW1vcnkgc2VydmVzLCBpcyBNZWRpYVRlayBzcGVjaWZpYy4gQSBxdWljayBtZW50YWwgY2hlY2suLi4geWVhaCwgdGhhdCByaW5ncyB0cnVlLiBOb3csIHRoZSBwcm9ibGVtLiBJIGNhbiYjMzk7dCBmdXp6IGl0IHVubGVzcyBJIGNhbiBnZXQgaXQgcHJvYmVkIGluIGEgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnQuIFRoYXQmIzM5O3MgdGhlIGZpcnN0IGh1cmRsZS4gQ2FuIEkgZXZlbiBnZXQgdGhpcyB0aGluZyBydW5uaW5nIGluIFFFTVU/CgouLi5Obywgbm90IGRpcmVjdGx5LiBRRU1VIGRvZXNuJiMzOTt0IHNlZW0gdG8gaGF2ZSBvdXQtb2YtdGhlLWJveCBzdXBwb3J0IGZvciB0aGUgTWVkaWFUZWsgTVQ3NTMwIG9yIE1UNzYyMSBzd2l0Y2hlcy4gRGFtbi4gUmlnaHQsIHNvIHRoYXQgbWVhbnMgSSYjMzk7bSBnb2luZyB0byBoYXZlIHRvIGRvIHNvbWV0aGluZyBlbHNlLgoKT2theSwgbGV0JiMzOTtzIHN0ZXAgYmFjay4gU3l6a2FsbGVyLi4uIGl0JiMzOTtzIHBvd2VyZnVsLCBidXQgaXQmIzM5O3Mgbm90IGEgbWFnaWMgYnVsbGV0LiBJdCBkb2VzbiYjMzk7dCBhbGxvdyBhcmJpdHJhcnkgaGFyZHdhcmUgaW5qZWN0aW9uIHZpYSBkZXZpY2UgdHJlZSBub2RlcyB1bmxlc3MgdGhlcmUmIzM5O3MgZXhwbGljaXQgc3VwcG9ydC4gU28sIG15IG5leHQgbG9naWNhbCBzdGVwIGlzIHRvIHNlZSBpZiBJIGNhbiBldmVuIGJlZ2luIHRvIGluamVjdCB0aGlzIGRldmljZS4gVGhlIGZpcnN0IHRoaW5nIEkmIzM5O2xsIGNoZWNrIGlzIHRoZSBzeXprYWxsZXIgZGVzY3JpcHRpb25zLiBEbyB0aGV5IGhhdmUgYW55dGhpbmcgZm9yIGBtZWRpYXRlayxtdDc2MjFgIG9yIGBtZWRpYXRlayxtdDc1MzBgPyBJJiMzOTtsbCBjaGVjayBhbmQgc2VlLiBNYXliZSB0aGVyZSBpcyBzb21ldGhpbmcgYWxyZWFkeSBzZXQgdXAhCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MzAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzIwIDIwOjQ4PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O21lZGlhdGVrLG10NzYyMSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0OyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtEb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvYnVzL3BhbG1idXMueWFtbD01Nj1leGFtcGxlczpcbi0tXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvYnVzL3BhbG1idXMueWFtbC02OS0gICAgICAgICAgICAjaW50ZXJydXB0LWNlbGxzID0gXHUwMDNjMlx1MDAzZTtcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9idXMvcGFsbWJ1cy55YW1sOjcwOiAgICAgICAgICAgIGNvbXBhdGlibGUgPSBcJiMzNDttZWRpYXRlayxtdDc2MjEtZ3Bpb1wmIzM0OztcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9idXMvcGFsbWJ1cy55YW1sLTcxLSAgICAgICAgICAgIGdwaW8tY29udHJvbGxlcjtcbi0tXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvY2xvY2svbWVkaWF0ZWssbXQ3NjIxLXN5c2MueWFtbC0zLS0tLVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2Nsb2NrL21lZGlhdGVrLG10NzYyMS1zeXNjLnlhbWw6NDokaWQ6IGh0dHA6Ly9kZXZpY2V0cmVlLm9yZy9zY2hlbWFzL2Nsb2NrL21lZGlhdGVrLG10NzYyMS1zeXNjLnlhbWwjXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvY2xvY2svbWVkaWF0ZWssbXQ3NjIxLXN5c2MueWFtbC01LSRzY2hlbWE6IGh0dHA6Ly9kZXZpY2V0cmVlLm9yZy9tZXRhLXNjaGVtYXMvY29yZS55YW1sI1xuLS1cbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9jbG9jay9tZWRpYXRlayxtdDc2MjEtc3lzYy55YW1sPTMwPXByb3BlcnRpZXM6XG4tLVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2Nsb2NrL21lZGlhdGVrLG10NzYyMS1zeXNjLnlhbWwtMzItICAgIGl0ZW1zOlxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2Nsb2NrL21lZGlhdGVrLG10NzYyMS1zeXNjLnlhbWw6MzM6ICAgICAgLSBjb25zdDogbWVkaWF0ZWssbXQ3NjIxLXN5c2NcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9jbG9jay9tZWRpYXRlayxtdDc2MjEtc3lzYy55YW1sLTM0LSAgICAgIC0gY29uc3Q6IHN5c2NvblxuLS1cbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9jbG9jay9tZWRpYXRlayxtdDc2MjEtc3lzYy55YW1sPTY3PWV4YW1wbGVzOlxuLS1cbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9jbG9jay9tZWRpYXRlayxtdDc2MjEtc3lzYy55YW1sLTcxLSAgICBzeXNjOiBzeXNjQDAge1xuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2Nsb2NrL21lZGlhdGVrLG10NzYyMS1zeXNjLnlhbWw6NzI6ICAgICAgY29tcGF0aWJsZSA9IFwmIzM0O21lZGlhdGVrLG10NzYyMS1zeXNjXCYjMzQ7LCBcJiMzNDtzeXNjb25cJiMzNDs7XG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvY2xvY2svbWVkaWF0ZWssbXQ3NjIxLXN5c2MueWFtbC03My0gICAgICByZWcgPSBcdTAwM2MweDAgMHgxMDBcdTAwM2U7XG4tLVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2dwaW8vbWVkaWF0ZWssbXQ3NjIxLWdwaW8ueWFtbC0zLS0tLVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2dwaW8vbWVkaWF0ZWssbXQ3NjIxLWdwaW8ueWFtbDo0OiRpZDogaHR0cDovL2RldmljZXRyZWUub3JnL3NjaGVtYXMvZ3Bpby9tZWRpYXRlayxtdDc2MjEtZ3Bpby55YW1sI1xuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2dwaW8vbWVkaWF0ZWssbXQ3NjIxLWdwaW8ueWFtbC01LSRzY2hlbWE6IGh0dHA6Ly9kZXZpY2V0cmVlLm9yZy9tZXRhLXNjaGVtYXMvY29yZS55YW1sI1xuLS1cbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9ncGlvL21lZGlhdGVrLG10NzYyMS1ncGlvLnlhbWw9MTk9cHJvcGVydGllczpcbi0tXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvZ3Bpby9tZWRpYXRlayxtdDc2MjEtZ3Bpby55YW1sLTIzLSAgY29tcGF0aWJsZTpcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9ncGlvL21lZGlhdGVrLG10NzYyMS1ncGlvLnlhbWw6MjQ6ICAgIGNvbnN0OiBtZWRpYXRlayxtdDc2MjEtZ3Bpb1xuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2dwaW8vbWVkaWF0ZWssbXQ3NjIxLWdwaW8ueWFtbC0yNS1cbi0tXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvZ3Bpby9tZWRpYXRlayxtdDc2MjEtZ3Bpby55YW1sPTU1PWV4YW1wbGVzOlxuLS1cbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9ncGlvL21lZGlhdGVrLG10NzYyMS1ncGlvLnlhbWwtNjAtICAgIGdwaW9ANjAwIHtcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9ncGlvL21lZGlhdGVrLG10NzYyMS1ncGlvLnlhbWw6NjE6ICAgICAgY29tcGF0aWJsZSA9IFwmIzM0O21lZGlhdGVrLG10NzYyMS1ncGlvXCYjMzQ7O1xuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2dwaW8vbWVkaWF0ZWssbXQ3NjIxLWdwaW8ueWFtbC02Mi0gICAgICByZWcgPSBcdTAwM2MweDYwMCAweDEwMFx1MDAzZTtcbi0tXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvaTJjL21lZGlhdGVrLG10NzYyMS1pMmMueWFtbC0zLS0tLVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2kyYy9tZWRpYXRlayxtdDc2MjEtaTJjLnlhbWw6NDokaWQ6IGh0dHA6Ly9kZXZpY2V0cmVlLm9yZy9zY2hlbWFzL2kyYy9tZWRpYXRlayxtdDc2MjEtaTJjLnlhbWwjXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvaTJjL21lZGlhdGVrLG10NzYyMS1pMmMueWFtbC01LSRzY2hlbWE6IGh0dHA6Ly9kZXZpY2V0cmVlLm9yZy9tZXRhLXNjaGVtYXMvY29yZS55YW1sI1xuLS1cbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9pMmMvbWVkaWF0ZWssbXQ3NjIxLWkyYy55YW1sPTE1PXByb3BlcnRpZXM6XG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvaTJjL21lZGlhdGVrLG10NzYyMS1pMmMueWFtbC0xNi0gIGNvbXBhdGlibGU6XG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvaTJjL21lZGlhdGVrLG10NzYyMS1pMmMueWFtbDoxNzogICAgY29uc3Q6IG1lZGlhdGVrLG10NzYyMS1pMmNcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9pMmMvbWVkaWF0ZWssbXQ3NjIxLWkyYy55YW1sLTE4LVxuLS1cbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9pMmMvbWVkaWF0ZWssbXQ3NjIxLWkyYy55YW1sPTQzPWV4YW1wbGVzOlxuLS1cbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9pMmMvbWVkaWF0ZWssbXQ3NjIxLWkyYy55YW1sLTQ4LSAgICBpMmM6IGkyY0A5MDAge1xuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2kyYy9tZWRpYXRlayxtdDc2MjEtaTJjLnlhbWw6NDk6ICAgICAgY29tcGF0aWJsZSA9IFwmIzM0O21lZGlhdGVrLG10NzYyMS1pMmNcJiMzNDs7XG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvaTJjL21lZGlhdGVrLG10NzYyMS1pMmMueWFtbC01MC0gICAgICByZWcgPSBcdTAwM2MweDkwMCAweDEwMFx1MDAzZTtcbi0tXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbWVtb3J5LWNvbnRyb2xsZXJzL21lZGlhdGVrLG10NzYyMS1tZW1jLnlhbWwtMy0tLS1cbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9tZW1vcnktY29udHJvbGxlcnMvbWVkaWF0ZWssbXQ3NjIxLW1lbWMueWFtbDo0OiRpZDogaHR0cDovL2RldmljZXRyZWUub3JnL3NjaGVtYXMvbWVtb3J5LWNvbnRyb2xsZXJzL21lZGlhdGVrLG10NzYyMS1tZW1jLnlhbWwjXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbWVtb3J5LWNvbnRyb2xsZXJzL21lZGlhdGVrLG10NzYyMS1tZW1jLnlhbWwtNS0kc2NoZW1hOiBodHRwOi8vZGV2aWNldHJlZS5vcmcvbWV0YS1zY2hlbWFzL2NvcmUueWFtbCNcbi0tXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbWVtb3J5LWNvbnRyb2xsZXJzL21lZGlhdGVrLG10NzYyMS1tZW1jLnlhbWw9MTI9cHJvcGVydGllczpcbi0tXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbWVtb3J5LWNvbnRyb2xsZXJzL21lZGlhdGVrLG10NzYyMS1tZW1jLnlhbWwtMTQtICAgIGl0ZW1zOlxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL21lbW9yeS1jb250cm9sbGVycy9tZWRpYXRlayxtdDc2MjEtbWVtYy55YW1sOjE1OiAgICAgIC0gY29uc3Q6IG1lZGlhdGVrLG10NzYyMS1tZW1jXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbWVtb3J5LWNvbnRyb2xsZXJzL21lZGlhdGVrLG10NzYyMS1tZW1jLnlhbWwtMTYtICAgICAgLSBjb25zdDogc3lzY29uXG4tLVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL21lbW9yeS1jb250cm9sbGVycy9tZWRpYXRlayxtdDc2MjEtbWVtYy55YW1sPTI3PWV4YW1wbGVzOlxuLS1cbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9tZW1vcnktY29udHJvbGxlcnMvbWVkaWF0ZWssbXQ3NjIxLW1lbWMueWFtbC0yOS0gICAgbWVtb3J5LWNvbnRyb2xsZXJANTAwMCB7XG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbWVtb3J5LWNvbnRyb2xsZXJzL21lZGlhdGVrLG10NzYyMS1tZW1jLnlhbWw6MzA6ICAgICAgICBjb21wYXRpYmxlID0gXCYjMzQ7bWVkaWF0ZWssbXQ3NjIxLW1lbWNcJiMzNDssIFwmIzM0O3N5c2NvblwmIzM0OztcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9tZW1vcnktY29udHJvbGxlcnMvbWVkaWF0ZWssbXQ3NjIxLW1lbWMueWFtbC0zMS0gICAgICAgIHJlZyA9IFx1MDAzYzB4NTAwMCAweDEwMDBcdTAwM2U7XG4tLVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL21pcHMvcmFsaW5rLnlhbWw9MTU9cHJvcGVydGllczpcbi0tXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbWlwcy9yYWxpbmsueWFtbC04My0gICAgICAgICAgICAgIC0gdHBsaW5rLGhjMjIwLWc1LXYxXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbWlwcy9yYWxpbmsueWFtbDo4NDogICAgICAgICAgLSBjb25zdDogbWVkaWF0ZWssbXQ3NjIxLXNvY1xuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL21pcHMvcmFsaW5rLnlhbWwtODUtXG4tLVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9kc2EvbWVkaWF0ZWssbXQ3NTMwLnlhbWw9NzY9cHJvcGVydGllczpcbi0tXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2RzYS9tZWRpYXRlayxtdDc1MzAueWFtbC04OC0gICAgICAgICAgTXVsdGktY2hpcCBtb2R1bGUgTVQ3NTMwIGluIE1UNzYyMUFULCBNVDc2MjFEQVQgYW5kIE1UNzYyMVNUIFNvQ3NcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvZHNhL21lZGlhdGVrLG10NzUzMC55YW1sOjg5OiAgICAgICAgY29uc3Q6IG1lZGlhdGVrLG10NzYyMVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9kc2EvbWVkaWF0ZWssbXQ3NTMwLnlhbWwtOTAtXG4tLVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9kc2EvbWVkaWF0ZWssbXQ3NTMwLnlhbWw9MjY5PWFsbE9mOlxuLS1cbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvZHNhL21lZGlhdGVrLG10NzUzMC55YW1sLTMwNy0gICAgICAgIGNvbXBhdGlibGU6XG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2RzYS9tZWRpYXRlayxtdDc1MzAueWFtbDozMDg6ICAgICAgICAgIGNvbnN0OiBtZWRpYXRlayxtdDc2MjFcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvZHNhL21lZGlhdGVrLG10NzUzMC55YW1sLTMwOS0gICAgdGhlbjpcbi0tXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2RzYS9tZWRpYXRlayxtdDc1MzAueWFtbD0zMzA9ZXhhbXBsZXM6XG4tLVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9kc2EvbWVkaWF0ZWssbXQ3NTMwLnlhbWwtNTI4LSAgICAgICAgc3dpdGNoQDFmIHtcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvZHNhL21lZGlhdGVrLG10NzUzMC55YW1sOjUyOTogICAgICAgICAgICBjb21wYXRpYmxlID0gXCYjMzQ7bWVkaWF0ZWssbXQ3NjIxXCYjMzQ7O1xuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9kc2EvbWVkaWF0ZWssbXQ3NTMwLnlhbWwtNTMwLSAgICAgICAgICAgIHJlZyA9IFx1MDAzYzB4MWZcdTAwM2U7XG4tLVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9kc2EvbWVkaWF0ZWssbXQ3NTMwLnlhbWwtNjE0LSAgICAgICAgICAgIHN3aXRjaEAxZiB7XG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2RzYS9tZWRpYXRlayxtdDc1MzAueWFtbDo2MTU6ICAgICAgICAgICAgICAgIGNvbXBhdGlibGUgPSBcJiMzNDttZWRpYXRlayxtdDc2MjFcJiMzNDs7XG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2RzYS9tZWRpYXRlayxtdDc1MzAueWFtbC02MTYtICAgICAgICAgICAgICAgIHJlZyA9IFx1MDAzYzB4MWZcdTAwM2U7XG4tLVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9kc2EvbWVkaWF0ZWssbXQ3NTMwLnlhbWwtNzA0LSAgICAgICAgICAgIHN3aXRjaEAxZiB7XG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2RzYS9tZWRpYXRlayxtdDc1MzAueWFtbDo3MDU6ICAgICAgICAgICAgICAgIGNvbXBhdGlibGUgPSBcJiMzNDttZWRpYXRlayxtdDc2MjFcJiMzNDs7XG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2RzYS9tZWRpYXRlayxtdDc1MzAueWFtbC03MDYtICAgICAgICAgICAgICAgIHJlZyA9IFx1MDAzYzB4MWZcdTAwM2U7XG4tLVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9kc2EvbWVkaWF0ZWssbXQ3NTMwLnlhbWwtNzg0LSAgICAgICAgICAgIHN3aXRjaEAxZiB7XG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2RzYS9tZWRpYXRlayxtdDc1MzAueWFtbDo3ODU6ICAgICAgICAgICAgICAgIGNvbXBhdGlibGUgPSBcJiMzNDttZWRpYXRlayxtdDc2MjFcJiMzNDs7XG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2RzYS9tZWRpYXRlayxtdDc1MzAueWFtbC03ODYtICAgICAgICAgICAgICAgIHJlZyA9IFx1MDAzYzB4MWZcdTAwM2U7XG4tLVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9tZWRpYXRlayxuZXQueWFtbD0xNz1wcm9wZXJ0aWVzOlxuLS1cbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvbWVkaWF0ZWssbmV0LnlhbWwtMjEtICAgICAgLSBtZWRpYXRlayxtdDc2MjMtZXRoXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L21lZGlhdGVrLG5ldC55YW1sOjIyOiAgICAgIC0gbWVkaWF0ZWssbXQ3NjIxLWV0aFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9tZWRpYXRlayxuZXQueWFtbC0yMy0gICAgICAtIG1lZGlhdGVrLG10NzYyMi1ldGhcbi0tXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L21lZGlhdGVrLG5ldC55YW1sPTEzOD1hbGxPZjpcbi0tXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L21lZGlhdGVrLG5ldC55YW1sLTE4My0gICAgICAgICAgICBlbnVtOlxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9tZWRpYXRlayxuZXQueWFtbDoxODQ6ICAgICAgICAgICAgICAtIG1lZGlhdGVrLG10NzYyMS1ldGhcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvbWVkaWF0ZWssbmV0LnlhbWwtMTg1LSAgICB0aGVuOlxuLS1cbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9wY2kvbWVkaWF0ZWssbXQ3NjIxLXBjaWUueWFtbC0zLS0tLVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3BjaS9tZWRpYXRlayxtdDc2MjEtcGNpZS55YW1sOjQ6JGlkOiBodHRwOi8vZGV2aWNldHJlZS5vcmcvc2NoZW1hcy9wY2kvbWVkaWF0ZWssbXQ3NjIxLXBjaWUueWFtbCNcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9wY2kvbWVkaWF0ZWssbXQ3NjIxLXBjaWUueWFtbC01LSRzY2hlbWE6IGh0dHA6Ly9kZXZpY2V0cmVlLm9yZy9tZXRhLXNjaGVtYXMvY29yZS55YW1sI1xuLS1cbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9wY2kvbWVkaWF0ZWssbXQ3NjIxLXBjaWUueWFtbD00OD1wcm9wZXJ0aWVzOlxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3BjaS9tZWRpYXRlayxtdDc2MjEtcGNpZS55YW1sLTQ5LSAgY29tcGF0aWJsZTpcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9wY2kvbWVkaWF0ZWssbXQ3NjIxLXBjaWUueWFtbDo1MDogICAgY29uc3Q6IG1lZGlhdGVrLG10NzYyMS1wY2lcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9wY2kvbWVkaWF0ZWssbXQ3NjIxLXBjaWUueWFtbC01MS1cbi0tXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvcGNpL21lZGlhdGVrLG10NzYyMS1wY2llLnlhbWw9MTA2PWV4YW1wbGVzOlxuLS1cbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9wY2kvbWVkaWF0ZWssbXQ3NjIxLXBjaWUueWFtbC0xMTEtICAgIHBjaWU6IHBjaWVAMWUxNDAwMDAge1xuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3BjaS9tZWRpYXRlayxtdDc2MjEtcGNpZS55YW1sOjExMjogICAgICAgIGNvbXBhdGlibGUgPSBcJiMzNDttZWRpYXRlayxtdDc2MjEtcGNpXCYjMzQ7O1xuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3BjaS9tZWRpYXRlayxtdDc2MjEtcGNpZS55YW1sLTExMy0gICAgICAgIHJlZyA9IFx1MDAzYzB4MWUxNDAwMDAgMHgxMDBcdTAwM2UsXG4tLVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3BoeS9tZWRpYXRlayxtdDc2MjEtcGNpLXBoeS55YW1sLTMtLS0tXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvcGh5L21lZGlhdGVrLG10NzYyMS1wY2ktcGh5LnlhbWw6NDokaWQ6IGh0dHA6Ly9kZXZpY2V0cmVlLm9yZy9zY2hlbWFzL3BoeS9tZWRpYXRlayxtdDc2MjEtcGNpLXBoeS55YW1sI1xuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3BoeS9tZWRpYXRlayxtdDc2MjEtcGNpLXBoeS55YW1sLTUtJHNjaGVtYTogaHR0cDovL2RldmljZXRyZWUub3JnL21ldGEtc2NoZW1hcy9jb3JlLnlhbWwjXG4tLVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3BoeS9tZWRpYXRlayxtdDc2MjEtcGNpLXBoeS55YW1sPTEyPXByb3BlcnRpZXM6XG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvcGh5L21lZGlhdGVrLG10NzYyMS1wY2ktcGh5LnlhbWwtMTMtICBjb21wYXRpYmxlOlxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3BoeS9tZWRpYXRlayxtdDc2MjEtcGNpLXBoeS55YW1sOjE0OiAgICBjb25zdDogbWVkaWF0ZWssbXQ3NjIxLXBjaS1waHlcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9waHkvbWVkaWF0ZWssbXQ3NjIxLXBjaS1waHkueWFtbC0xNS1cbi0tXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvcGh5L21lZGlhdGVrLG10NzYyMS1wY2ktcGh5LnlhbWw9MzQ9ZXhhbXBsZXM6XG4tLVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3BoeS9tZWRpYXRlayxtdDc2MjEtcGNpLXBoeS55YW1sLTM2LSAgICBwY2llMF9waHk6IHBjaWUtcGh5QDFlMTQ5MDAwIHtcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9waHkvbWVkaWF0ZWssbXQ3NjIxLXBjaS1waHkueWFtbDozNzogICAgICBjb21wYXRpYmxlID0gXCYjMzQ7bWVkaWF0ZWssbXQ3NjIxLXBjaS1waHlcJiMzNDs7XG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvcGh5L21lZGlhdGVrLG10NzYyMS1wY2ktcGh5LnlhbWwtMzgtICAgICAgcmVnID0gXHUwMDNjMHgxZTE0OTAwMCAweDA3MDBcdTAwM2U7XG4tLVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3BpbmN0cmwvbWVkaWF0ZWssbXQ3NjIxLXBpbmN0cmwueWFtbC0zLS0tLVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3BpbmN0cmwvbWVkaWF0ZWssbXQ3NjIxLXBpbmN0cmwueWFtbDo0OiRpZDogaHR0cDovL2RldmljZXRyZWUub3JnL3NjaGVtYXMvcGluY3RybC9tZWRpYXRlayxtdDc2MjEtcGluY3RybC55YW1sI1xuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3BpbmN0cmwvbWVkaWF0ZWssbXQ3NjIxLXBpbmN0cmwueWFtbC01LSRzY2hlbWE6IGh0dHA6Ly9kZXZpY2V0cmVlLm9yZy9tZXRhLXNjaGVtYXMvY29yZS55YW1sI1xuLS1cbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy93YXRjaGRvZy9tZWRpYXRlayxtdDc2MjEtd2R0LnlhbWwtMy0tLS1cbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy93YXRjaGRvZy9tZWRpYXRlayxtdDc2MjEtd2R0LnlhbWw6NDokaWQ6IGh0dHA6Ly9kZXZpY2V0cmVlLm9yZy9zY2hlbWFzL3dhdGNoZG9nL21lZGlhdGVrLG10NzYyMS13ZHQueWFtbCNcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy93YXRjaGRvZy9tZWRpYXRlayxtdDc2MjEtd2R0LnlhbWwtNS0kc2NoZW1hOiBodHRwOi8vZGV2aWNldHJlZS5vcmcvbWV0YS1zY2hlbWFzL2NvcmUueWFtbCNcbi0tXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3Mvd2F0Y2hkb2cvbWVkaWF0ZWssbXQ3NjIxLXdkdC55YW1sPTE1PXByb3BlcnRpZXM6XG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3Mvd2F0Y2hkb2cvbWVkaWF0ZWssbXQ3NjIxLXdkdC55YW1sLTE2LSAgY29tcGF0aWJsZTpcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy93YXRjaGRvZy9tZWRpYXRlayxtdDc2MjEtd2R0LnlhbWw6MTc6ICAgIGNvbnN0OiBtZWRpYXRlayxtdDc2MjEtd2R0XG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3Mvd2F0Y2hkb2cvbWVkaWF0ZWssbXQ3NjIxLXdkdC55YW1sLTE4LVxuLS1cbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy93YXRjaGRvZy9tZWRpYXRlayxtdDc2MjEtd2R0LnlhbWw9MzQ9ZXhhbXBsZXM6XG4tLVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3dhdGNoZG9nL21lZGlhdGVrLG10NzYyMS13ZHQueWFtbC0zNi0gICAgd2F0Y2hkb2dAMTAwIHtcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy93YXRjaGRvZy9tZWRpYXRlayxtdDc2MjEtd2R0LnlhbWw6Mzc6ICAgICAgICBjb21wYXRpYmxlID0gXCYjMzQ7bWVkaWF0ZWssbXQ3NjIxLXdkdFwmIzM0OztcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy93YXRjaGRvZy9tZWRpYXRlayxtdDc2MjEtd2R0LnlhbWwtMzgtICAgICAgICByZWcgPSBcdTAwM2MweDEwMCAweDEwMFx1MDAzZTtcbi0tXG5NQUlOVEFJTkVSUz0xNjYwMz1TOlx0TWFpbnRhaW5lZFxuTUFJTlRBSU5FUlM6MTY2MDQ6RjpcdERvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9jbG9jay9tZWRpYXRlayxtdDc2MjEtc3lzYy55YW1sXG5NQUlOVEFJTkVSUy0xNjYwNS1GOlx0ZHJpdmVycy9jbGsvcmFsaW5rL2Nsay1tdDc2MjEuY1xuLS1cbk1BSU5UQUlORVJTPTE2NjA5PVM6XHRNYWludGFpbmVkXG5NQUlOVEFJTkVSUzoxNjYxMDpGOlx0RG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3BjaS9tZWRpYXRlayxtdDc2MjEtcGNpZS55YW1sXG5NQUlOVEFJTkVSUy0xNjYxMS1GOlx0ZHJpdmVycy9wY2kvY29udHJvbGxlci9wY2llLW10NzYyMS5jXG4tLVxuTUFJTlRBSU5FUlM9MTY2MTU9UzpcdE1haW50YWluZWRcbk1BSU5UQUlORVJTOjE2NjE2OkY6XHREb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvcGh5L21lZGlhdGVrLG10NzYyMS1wY2ktcGh5LnlhbWxcbk1BSU5UQUlORVJTLTE2NjE3LUY6XHRkcml2ZXJzL3BoeS9yYWxpbmsvcGh5LW10NzYyMS1wY2kuY1xuLS1cbk1BSU5UQUlORVJTPTE2NjIyPVM6XHRNYWludGFpbmVkXG5NQUlOVEFJTkVSUzoxNjYyMzpGOlx0RG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2kyYy9tZWRpYXRlayxtdDc2MjEtaTJjLnlhbWxcbk1BSU5UQUlORVJTLTE2NjI0LUY6XHRkcml2ZXJzL2kyYy9idXNzZXMvaTJjLW10NzYyMS5jXG4tLVxuTUFJTlRBSU5FUlM9MjEzMjM9RjpcdERvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9waW5jdHJsL21lZGlhdGVrLG10NzYyMC1waW5jdHJsLnlhbWxcbk1BSU5UQUlORVJTOjIxMzI0OkY6XHREb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvcGluY3RybC9tZWRpYXRlayxtdDc2MjEtcGluY3RybC55YW1sXG5NQUlOVEFJTkVSUy0yMTMyNS1GOlx0RG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3BpbmN0cmwvbWVkaWF0ZWssbXQ3Nng4LXBpbmN0cmwueWFtbFxuLS1cbmFyY2gvYXJtNjQvYm9vdC9kdHMvYWlyb2hhL2VuNzU4MS5kdHNpPTMyMj1cdFx0aTJjMDogaTJjQDFmYmY4MDAwIHtcbmFyY2gvYXJtNjQvYm9vdC9kdHMvYWlyb2hhL2VuNzU4MS5kdHNpOjMyMzpcdFx0XHRjb21wYXRpYmxlID0gXCYjMzQ7bWVkaWF0ZWssbXQ3NjIxLWkyY1wmIzM0OztcbmFyY2gvYXJtNjQvYm9vdC9kdHMvYWlyb2hhL2VuNzU4MS5kdHNpLTMyNC1cdFx0XHRyZWcgPSBcdTAwM2MweDAgMHgxZmJmODAwMCAweDAgMHgxMDBcdTAwM2U7XG4tLVxuYXJjaC9hcm02NC9ib290L2R0cy9haXJvaGEvZW43NTgxLmR0c2k9MzM2PVx0XHRpMmMxOiBpMmNAMWZiZjgxMDAge1xuYXJjaC9hcm02NC9ib290L2R0cy9haXJvaGEvZW43NTgxLmR0c2k6MzM3Olx0XHRcdGNvbXBhdGlibGUgPSBcJiMzNDttZWRpYXRlayxtdDc2MjEtaTJjXCYjMzQ7O1xuYXJjaC9hcm02NC9ib290L2R0cy9haXJvaGEvZW43NTgxLmR0c2ktMzM4LVx0XHRcdHJlZyA9IFx1MDAzYzB4MCAweDFmYmY4MTAwIDB4MCAweDEwMFx1MDAzZTtcbi0tXG5hcmNoL21pcHMvYm9vdC9kdHMvcmFsaW5rL210NzYyMS1nbnViZWUtZ2ItcGMxLmR0cz05PS8ge1xuYXJjaC9taXBzL2Jvb3QvZHRzL3JhbGluay9tdDc2MjEtZ251YmVlLWdiLXBjMS5kdHM6MTA6XHRjb21wYXRpYmxlID0gXCYjMzQ7Z251YmVlLGdiLXBjMVwmIzM0OywgXCYjMzQ7bWVkaWF0ZWssbXQ3NjIxLXNvY1wmIzM0OztcbmFyY2gvbWlwcy9ib290L2R0cy9yYWxpbmsvbXQ3NjIxLWdudWJlZS1nYi1wYzEuZHRzLTExLVx0bW9kZWwgPSBcJiMzNDtHbnVCZWUgR0ItUEMxXCYjMzQ7O1xuLS1cbmFyY2gvbWlwcy9ib290L2R0cy9yYWxpbmsvbXQ3NjIxLWdudWJlZS1nYi1wYzIuZHRzPTk9LyB7XG5hcmNoL21pcHMvYm9vdC9kdHMvcmFsaW5rL210NzYyMS1nbnViZWUtZ2ItcGMyLmR0czoxMDpcdGNvbXBhdGlibGUgPSBcJiMzNDtnbnViZWUsZ2ItcGMyXCYjMzQ7LCBcJiMzNDttZWRpYXRlayxtdDc2MjEtc29jXCYjMzQ7O1xuYXJjaC9taXBzL2Jvb3QvZHRzL3JhbGluay9tdDc2MjEtZ251YmVlLWdiLXBjMi5kdHMtMTEtXHRtb2RlbCA9IFwmIzM0O0dudUJlZSBHQi1QQzJcJiMzNDs7XG4tLVxuYXJjaC9taXBzL2Jvb3QvZHRzL3JhbGluay9tdDc2MjEtdHBsaW5rLWhjMjIwLWc1LXYxLmR0cz0xMD0vIHtcbmFyY2gvbWlwcy9ib290L2R0cy9yYWxpbmsvbXQ3NjIxLXRwbGluay1oYzIyMC1nNS12MS5kdHM6MTE6XHRjb21wYXRpYmxlID0gXCYjMzQ7dHBsaW5rLGhjMjIwLWc1LXYxXCYjMzQ7LCBcJiMzNDttZWRpYXRlayxtdDc2MjEtc29jXCYjMzQ7O1xuYXJjaC9taXBzL2Jvb3QvZHRzL3JhbGluay9tdDc2MjEtdHBsaW5rLWhjMjIwLWc1LXYxLmR0cy0xMi1cdG1vZGVsID0gXCYjMzQ7VFAtTGluayBIQzIyMCBHNSB2MVwmIzM0Oztcbi0tXG5hcmNoL21pcHMvYm9vdC9kdHMvcmFsaW5rL210NzYyMS5kdHNpPTc9LyB7XG5hcmNoL21pcHMvYm9vdC9kdHMvcmFsaW5rL210NzYyMS5kdHNpOjg6XHRjb21wYXRpYmxlID0gXCYjMzQ7bWVkaWF0ZWssbXQ3NjIxLXNvY1wmIzM0OztcbmFyY2gvbWlwcy9ib290L2R0cy9yYWxpbmsvbXQ3NjIxLmR0c2ktOS1cbi0tXG5hcmNoL21pcHMvYm9vdC9kdHMvcmFsaW5rL210NzYyMS5kdHNpPTE1NT1cdFx0c3lzYzogc3lzY29uQDAge1xuYXJjaC9taXBzL2Jvb3QvZHRzL3JhbGluay9tdDc2MjEuZHRzaToxNTY6XHRcdFx0Y29tcGF0aWJsZSA9IFwmIzM0O21lZGlhdGVrLG10NzYyMS1zeXNjXCYjMzQ7LCBcJiMzNDtzeXNjb25cJiMzNDs7XG5hcmNoL21pcHMvYm9vdC9kdHMvcmFsaW5rL210NzYyMS5kdHNpLTE1Ny1cdFx0XHRyZWcgPSBcdTAwM2MweDAgMHgxMDBcdTAwM2U7XG4tLVxuYXJjaC9taXBzL2Jvb3QvZHRzL3JhbGluay9tdDc2MjEuZHRzaT0xNjk9XHRcdHdkdDogd2F0Y2hkb2dAMTAwIHtcbmFyY2gvbWlwcy9ib290L2R0cy9yYWxpbmsvbXQ3NjIxLmR0c2k6MTcwOlx0XHRcdGNvbXBhdGlibGUgPSBcJiMzNDttZWRpYXRlayxtdDc2MjEtd2R0XCYjMzQ7O1xuYXJjaC9taXBzL2Jvb3QvZHRzL3JhbGluay9tdDc2MjEuZHRzaS0xNzEtXHRcdFx0cmVnID0gXHUwMDNjMHgxMDAgMHgxMDBcdTAwM2U7XG4tLVxuYXJjaC9taXBzL2Jvb3QvZHRzL3JhbGluay9tdDc2MjEuZHRzaT0xNzU9XHRcdGdwaW86IGdwaW9ANjAwIHtcbmFyY2gvbWlwcy9ib290L2R0cy9yYWxpbmsvbXQ3NjIxLmR0c2k6MTc2Olx0XHRcdGNvbXBhdGlibGUgPSBcJiMzNDttZWRpYXRlayxtdDc2MjEtZ3Bpb1wmIzM0OztcbmFyY2gvbWlwcy9ib290L2R0cy9yYWxpbmsvbXQ3NjIxLmR0c2ktMTc3LVx0XHRcdHJlZyA9IFx1MDAzYzB4NjAwIDB4MTAwXHUwMDNlO1xuLS1cbmFyY2gvbWlwcy9ib290L2R0cy9yYWxpbmsvbXQ3NjIxLmR0c2k9MTkwPVx0XHRpMmM6IGkyY0A5MDAge1xuYXJjaC9taXBzL2Jvb3QvZHRzL3JhbGluay9tdDc2MjEuZHRzaToxOTE6XHRcdFx0Y29tcGF0aWJsZSA9IFwmIzM0O21lZGlhdGVrLG10NzYyMS1pMmNcJiMzNDs7XG5hcmNoL21pcHMvYm9vdC9kdHMvcmFsaW5rL210NzYyMS5kdHNpLTE5Mi1cdFx0XHRyZWcgPSBcdTAwM2MweDkwMCAweDEwMFx1MDAzZTtcbi0tXG5hcmNoL21pcHMvYm9vdC9kdHMvcmFsaW5rL210NzYyMS5kdHNpPTIwOT1cdFx0bWVtYzogbWVtb3J5LWNvbnRyb2xsZXJANTAwMCB7XG5hcmNoL21pcHMvYm9vdC9kdHMvcmFsaW5rL210NzYyMS5kdHNpOjIxMDpcdFx0XHRjb21wYXRpYmxlID0gXCYjMzQ7bWVkaWF0ZWssbXQ3NjIxLW1lbWNcJiMzNDssIFwmIzM0O3N5c2NvblwmIzM0OztcbmFyY2gvbWlwcy9ib290L2R0cy9yYWxpbmsvbXQ3NjIxLmR0c2ktMjExLVx0XHRcdHJlZyA9IFx1MDAzYzB4NTAwMCAweDEwMDBcdTAwM2U7XG4tLVxuYXJjaC9taXBzL2Jvb3QvZHRzL3JhbGluay9tdDc2MjEuZHRzaT0zNjQ9XHRldGhlcm5ldDogZXRoZXJuZXRAMWUxMDAwMDAge1xuYXJjaC9taXBzL2Jvb3QvZHRzL3JhbGluay9tdDc2MjEuZHRzaTozNjU6XHRcdGNvbXBhdGlibGUgPSBcJiMzNDttZWRpYXRlayxtdDc2MjEtZXRoXCYjMzQ7O1xuYXJjaC9taXBzL2Jvb3QvZHRzL3JhbGluay9tdDc2MjEuZHRzaS0zNjYtXHRcdHJlZyA9IFx1MDAzYzB4MWUxMDAwMDAgMHgxMDAwMFx1MDAzZTtcbi0tXG5hcmNoL21pcHMvYm9vdC9kdHMvcmFsaW5rL210NzYyMS5kdHNpPTM4OT1cdFx0XHRzd2l0Y2gwOiBzd2l0Y2hAMWYge1xuYXJjaC9taXBzL2Jvb3QvZHRzL3JhbGluay9tdDc2MjEuZHRzaTozOTA6XHRcdFx0XHRjb21wYXRpYmxlID0gXCYjMzQ7bWVkaWF0ZWssbXQ3NjIxXCYjMzQ7O1xuYXJjaC9taXBzL2Jvb3QvZHRzL3JhbGluay9tdDc2MjEuZHRzaS0zOTEtXHRcdFx0XHRyZWcgPSBcdTAwM2MweDFmXHUwMDNlO1xuLS1cbmFyY2gvbWlwcy9ib290L2R0cy9yYWxpbmsvbXQ3NjIxLmR0c2k9NDkzPVx0cGNpZTogcGNpZUAxZTE0MDAwMCB7XG5hcmNoL21pcHMvYm9vdC9kdHMvcmFsaW5rL210NzYyMS5kdHNpOjQ5NDpcdFx0Y29tcGF0aWJsZSA9IFwmIzM0O21lZGlhdGVrLG10NzYyMS1wY2lcJiMzNDs7XG5hcmNoL21pcHMvYm9vdC9kdHMvcmFsaW5rL210NzYyMS5kdHNpLTQ5NS1cdFx0cmVnID0gXHUwMDNjMHgxZTE0MDAwMCAweDEwMFx1MDAzZSwgLyogaG9zdC1wY2kgYnJpZGdlIHJlZ2lzdGVycyAqL1xuLS1cbmFyY2gvbWlwcy9ib290L2R0cy9yYWxpbmsvbXQ3NjIxLmR0c2k9NTg0PVx0cGNpZTBfcGh5OiBwY2llLXBoeUAxZTE0OTAwMCB7XG5hcmNoL21pcHMvYm9vdC9kdHMvcmFsaW5rL210NzYyMS5kdHNpOjU4NTpcdFx0Y29tcGF0aWJsZSA9IFwmIzM0O21lZGlhdGVrLG10NzYyMS1wY2ktcGh5XCYjMzQ7O1xuYXJjaC9taXBzL2Jvb3QvZHRzL3JhbGluay9tdDc2MjEuZHRzaS01ODYtXHRcdHJlZyA9IFx1MDAzYzB4MWUxNDkwMDAgMHgwNzAwXHUwMDNlO1xuLS1cbmFyY2gvbWlwcy9ib290L2R0cy9yYWxpbmsvbXQ3NjIxLmR0c2k9NTkzPVx0cGNpZTJfcGh5OiBwY2llLXBoeUAxZTE0YTAwMCB7XG5hcmNoL21pcHMvYm9vdC9kdHMvcmFsaW5rL210NzYyMS5kdHNpOjU5NDpcdFx0Y29tcGF0aWJsZSA9IFwmIzM0O21lZGlhdGVrLG10NzYyMS1wY2ktcGh5XCYjMzQ7O1xuYXJjaC9taXBzL2Jvb3QvZHRzL3JhbGluay9tdDc2MjEuZHRzaS01OTUtXHRcdHJlZyA9IFx1MDAzYzB4MWUxNGEwMDAgMHgwNzAwXHUwMDNlO1xuLS1cbmFyY2gvbWlwcy9ib290L2R0cy9yYWxpbmsvbXQ3NjI4YS5kdHNpPTEzNT1cdFx0d2F0Y2hkb2c6IHdhdGNoZG9nQDEwMCB7XG5hcmNoL21pcHMvYm9vdC9kdHMvcmFsaW5rL210NzYyOGEuZHRzaToxMzY6XHRcdFx0Y29tcGF0aWJsZSA9IFwmIzM0O21lZGlhdGVrLG10NzYyMS13ZHRcJiMzNDs7XG5hcmNoL21pcHMvYm9vdC9kdHMvcmFsaW5rL210NzYyOGEuZHRzaS0xMzctXHRcdFx0cmVnID0gXHUwMDNjMHgxMDAgMHgxMDBcdTAwM2U7XG4tLVxuYXJjaC9taXBzL2Jvb3QvZHRzL3JhbGluay9tdDc2MjhhLmR0c2k9MTY2PVx0XHRncGlvOiBncGlvQDYwMCB7XG5hcmNoL21pcHMvYm9vdC9kdHMvcmFsaW5rL210NzYyOGEuZHRzaToxNjc6XHRcdFx0Y29tcGF0aWJsZSA9IFwmIzM0O21lZGlhdGVrLG10NzYyMS1ncGlvXCYjMzQ7O1xuYXJjaC9taXBzL2Jvb3QvZHRzL3JhbGluay9tdDc2MjhhLmR0c2ktMTY4LVx0XHRcdHJlZyA9IFx1MDAzYzB4NjAwIDB4MTAwXHUwMDNlO1xuLS1cbmFyY2gvbWlwcy9ib290L2R0cy9yYWxpbmsvbXQ3NjI4YS5kdHNpPTE5Nz1cdFx0aTJjOiBpMmNAOTAwIHtcbmFyY2gvbWlwcy9ib290L2R0cy9yYWxpbmsvbXQ3NjI4YS5kdHNpOjE5ODpcdFx0XHRjb21wYXRpYmxlID0gXCYjMzQ7bWVkaWF0ZWssbXQ3NjIxLWkyY1wmIzM0OztcbmFyY2gvbWlwcy9ib290L2R0cy9yYWxpbmsvbXQ3NjI4YS5kdHNpLTE5OS1cdFx0XHRyZWcgPSBcdTAwM2MweDkwMCAweDEwMFx1MDAzZTtcbi0tXG5hcmNoL21pcHMvcmFsaW5rL210NzYyMS5jPTE2Nz12b2lkIF9faW5pdCBwcm9tX3NvY19pbml0KHN0cnVjdCByYWxpbmtfc29jX2luZm8gKnNvY19pbmZvKVxuLS1cbmFyY2gvbWlwcy9yYWxpbmsvbXQ3NjIxLmMtMTkxLVx0aWYgKG10NzYyMV9zb2NfdmFsaWQoKSlcbmFyY2gvbWlwcy9yYWxpbmsvbXQ3NjIxLmM6MTkyOlx0XHRzb2NfaW5mby1cdTAwM2Vjb21wYXRpYmxlID0gXCYjMzQ7bWVkaWF0ZWssbXQ3NjIxLXNvY1wmIzM0OztcbmFyY2gvbWlwcy9yYWxpbmsvbXQ3NjIxLmMtMTkzLVx0ZWxzZVxuLS1cbmFyY2gvbWlwcy9yYWxpbmsvb2YuYz0zMj1zdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBtdG1pcHNfbWVtY19tYXRjaFtdID0ge1xuYXJjaC9taXBzL3JhbGluay9vZi5jOjMzOlx0eyAuY29tcGF0aWJsZSA9IFwmIzM0O21lZGlhdGVrLG10NzYyMS1tZW1jXCYjMzQ7IH0sXG5hcmNoL21pcHMvcmFsaW5rL29mLmMtMzQtXHR7IC5jb21wYXRpYmxlID0gXCYjMzQ7cmFsaW5rLG10NzYyMGEtbWVtY1wmIzM0OyB9LFxuLS1cbmFyY2gvbWlwcy9yYWxpbmsvb2YuYz00MT1zdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBtdG1pcHNfc3lzY19tYXRjaFtdID0ge1xuYXJjaC9taXBzL3JhbGluay9vZi5jOjQyOlx0eyAuY29tcGF0aWJsZSA9IFwmIzM0O21lZGlhdGVrLG10NzYyMS1zeXNjXCYjMzQ7IH0sXG5hcmNoL21pcHMvcmFsaW5rL29mLmMtNDMtXHR7IC5jb21wYXRpYmxlID0gXCYjMzQ7cmFsaW5rLG10NzYyMC1zeXNjXCYjMzQ7IH0sXG4tLVxuZHJpdmVycy9jbGsvcmFsaW5rL2Nsay1tdDc2MjEuYz0zNTE9c3RhdGljIHZvaWQgX19pbml0IG10NzYyMV9jbGtfaW5pdChzdHJ1Y3QgZGV2aWNlX25vZGUgKm5vZGUpXG4tLVxuZHJpdmVycy9jbGsvcmFsaW5rL2Nsay1tdDc2MjEuYy00MDctfVxuZHJpdmVycy9jbGsvcmFsaW5rL2Nsay1tdDc2MjEuYzo0MDg6Q0xLX09GX0RFQ0xBUkVfRFJJVkVSKG10NzYyMV9jbGssIFwmIzM0O21lZGlhdGVrLG10NzYyMS1zeXNjXCYjMzQ7LCBtdDc2MjFfY2xrX2luaXQpO1xuZHJpdmVycy9jbGsvcmFsaW5rL2Nsay1tdDc2MjEuYy00MDktXG4tLVxuZHJpdmVycy9jbGsvcmFsaW5rL2Nsay1tdDc2MjEuYz01NjY9c3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgbXQ3NjIxX2Nsa19vZl9tYXRjaFtdID0ge1xuZHJpdmVycy9jbGsvcmFsaW5rL2Nsay1tdDc2MjEuYzo1Njc6XHR7IC5jb21wYXRpYmxlID0gXCYjMzQ7bWVkaWF0ZWssbXQ3NjIxLXN5c2NcJiMzNDsgfSxcbmRyaXZlcnMvY2xrL3JhbGluay9jbGstbXQ3NjIxLmMtNTY4LVx0e31cbi0tXG5kcml2ZXJzL2dwaW8vZ3Bpby1tdDc2MjEuYz00ODg9c3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgbWVkaWF0ZWtfZ3Bpb19tYXRjaFtdID0ge1xuZHJpdmVycy9ncGlvL2dwaW8tbXQ3NjIxLmM6NDg5Olx0eyAuY29tcGF0aWJsZSA9IFwmIzM0O21lZGlhdGVrLG10NzYyMS1ncGlvXCYjMzQ7IH0sXG5kcml2ZXJzL2dwaW8vZ3Bpby1tdDc2MjEuYy00OTAtXHR7fSxcbi0tXG5kcml2ZXJzL2kyYy9idXNzZXMvaTJjLW10NzYyMS5jPTI1MD1zdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBpMmNfbXRrX2R0X2lkc1tdID0ge1xuZHJpdmVycy9pMmMvYnVzc2VzL2kyYy1tdDc2MjEuYzoyNTE6XHR7IC5jb21wYXRpYmxlID0gXCYjMzQ7bWVkaWF0ZWssbXQ3NjIxLWkyY1wmIzM0OyB9LFxuZHJpdmVycy9pMmMvYnVzc2VzL2kyYy1tdDc2MjEuYy0yNTItXHR7IC8qIHNlbnRpbmVsICovIH1cbi0tXG5kcml2ZXJzL25ldC9kc2EvbXQ3NTMwLW1kaW8uYz0xMzg9c3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgbXQ3NTMwX29mX21hdGNoW10gPSB7XG5kcml2ZXJzL25ldC9kc2EvbXQ3NTMwLW1kaW8uYzoxMzk6XHR7IC5jb21wYXRpYmxlID0gXCYjMzQ7bWVkaWF0ZWssbXQ3NjIxXCYjMzQ7LCAuZGF0YSA9IFx1MDAyNm10NzUzeF90YWJsZVtJRF9NVDc2MjFdLCB9LFxuZHJpdmVycy9uZXQvZHNhL210NzUzMC1tZGlvLmMtMTQwLVx0eyAuY29tcGF0aWJsZSA9IFwmIzM0O21lZGlhdGVrLG10NzUzMFwmIzM0OywgLmRhdGEgPSBcdTAwMjZtdDc1M3hfdGFibGVbSURfTVQ3NTMwXSwgfSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfZXRoX3NvYy5jPTU2NDc9Y29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBvZl9tdGtfbWF0Y2hbXSA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a19ldGhfc29jLmMtNTY0OC1cdHsgLmNvbXBhdGlibGUgPSBcJiMzNDttZWRpYXRlayxtdDI3MDEtZXRoXCYjMzQ7LCAuZGF0YSA9IFx1MDAyNm10MjcwMV9kYXRhIH0sXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfZXRoX3NvYy5jOjU2NDk6XHR7IC5jb21wYXRpYmxlID0gXCYjMzQ7bWVkaWF0ZWssbXQ3NjIxLWV0aFwmIzM0OywgLmRhdGEgPSBcdTAwMjZtdDc2MjFfZGF0YSB9LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX2V0aF9zb2MuYy01NjUwLVx0eyAuY29tcGF0aWJsZSA9IFwmIzM0O21lZGlhdGVrLG10NzYyMi1ldGhcJiMzNDssIC5kYXRhID0gXHUwMDI2bXQ3NjIyX2RhdGEgfSxcbi0tXG5kcml2ZXJzL3BjaS9jb250cm9sbGVyL3BjaWUtbXQ3NjIxLmM9NTMxPXN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIG10NzYyMV9wY2llX2lkc1tdID0ge1xuZHJpdmVycy9wY2kvY29udHJvbGxlci9wY2llLW10NzYyMS5jOjUzMjpcdHsgLmNvbXBhdGlibGUgPSBcJiMzNDttZWRpYXRlayxtdDc2MjEtcGNpXCYjMzQ7IH0sXG5kcml2ZXJzL3BjaS9jb250cm9sbGVyL3BjaWUtbXQ3NjIxLmMtNTMzLVx0e30sXG4tLVxuZHJpdmVycy9waHkvcmFsaW5rL3BoeS1tdDc2MjEtcGNpLmM9MzQxPXN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIG10NzYyMV9wY2lfcGh5X2lkc1tdID0ge1xuZHJpdmVycy9waHkvcmFsaW5rL3BoeS1tdDc2MjEtcGNpLmM6MzQyOlx0eyAuY29tcGF0aWJsZSA9IFwmIzM0O21lZGlhdGVrLG10NzYyMS1wY2ktcGh5XCYjMzQ7IH0sXG5kcml2ZXJzL3BoeS9yYWxpbmsvcGh5LW10NzYyMS1wY2kuYy0zNDMtXHR7fSxcbi0tXG5kcml2ZXJzL3dhdGNoZG9nL210NzYyMV93ZHQuYz0xMzg9c3RhdGljIGludCBtdDc2MjFfd2R0X3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpXG4tLVxuZHJpdmVycy93YXRjaGRvZy9tdDc2MjFfd2R0LmMtMTUxLVx0aWYgKElTX0VSUihkcnZkYXRhLVx1MDAzZXN5c2MpKSB7XG5kcml2ZXJzL3dhdGNoZG9nL210NzYyMV93ZHQuYzoxNTI6XHRcdGRydmRhdGEtXHUwMDNlc3lzYyA9IHN5c2Nvbl9yZWdtYXBfbG9va3VwX2J5X2NvbXBhdGlibGUoXCYjMzQ7bWVkaWF0ZWssbXQ3NjIxLXN5c2NcJiMzNDspO1xuZHJpdmVycy93YXRjaGRvZy9tdDc2MjFfd2R0LmMtMTUzLVx0XHRpZiAoSVNfRVJSKGRydmRhdGEtXHUwMDNlc3lzYykpXG4tLVxuZHJpdmVycy93YXRjaGRvZy9tdDc2MjFfd2R0LmM9MjA5PXN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIG10NzYyMV93ZHRfbWF0Y2hbXSA9IHtcbmRyaXZlcnMvd2F0Y2hkb2cvbXQ3NjIxX3dkdC5jOjIxMDpcdHsgLmNvbXBhdGlibGUgPSBcJiMzNDttZWRpYXRlayxtdDc2MjEtd2R0XCYjMzQ7IH0sXG5kcml2ZXJzL3dhdGNoZG9nL210NzYyMV93ZHQuYy0yMTEtXHR7fSxcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zMS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjAgMjA6NDg8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzQ3NDkKCQkJCQkJCW91dHB1dDogMTA4CgkJCQkJCQl0aG91Z2h0czogMzg0CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKk15IEFzc2Vzc21lbnQ6IFRoaXMgQ29kZSBpcyBVbmZ1enphYmxlIGluIFR5cGljYWwgRW52aXJvbm1lbnRzKioKCk9rYXksIHNvIEkmIzM5O3ZlIGxvb2tlZCBpbnRvIHRoaXMuIFRoZXJlJiMzOTtzIG5vIFN5emthbGxlciBkZXNjcmlwdGlvbiBmb3IgdGhlIGBtZWRpYXRlayxtdDc2MjFgIG9yIGBtZWRpYXRlayxtdDc1MzBgIGhhcmR3YXJlLCB3aGljaCBpbW1lZGlhdGVseSBmbGFncyBpdC4gVGhlIGRyaXZlciBpbiBxdWVzdGlvbiBpcyBzcGVjaWZpY2FsbHkgZm9yIGEgTWVkaWFUZWsgTVQ3NTMwL01UNzYyMSBzd2l0Y2guIEl0JiMzOTtzIGFuIE1ESU8gZHJpdmVyLCB3aGljaCBtZWFucyBpdCByZXF1aXJlcyBhIHZlcnkgc3BlY2lmaWMgZGV2aWNlIHRyZWUgbm9kZSBhbmQgYWNjZXNzIHRvIHRoZSAqYWN0dWFsKiBwaHlzaWNhbCBoYXJkd2FyZSB0byBldmVuICpiZWdpbiogdG8gcHJvYmUuCgpNeSBpbnR1aXRpb24gc2F5cyB0aGlzIGlzIGEgbm9uLXN0YXJ0ZXIgZm9yIGZ1enppbmcsIGJlY2F1c2UgaW4gZW52aXJvbm1lbnRzIGxpa2UgUUVNVSwgdGhlIGhhcmR3YXJlIGlzbiYjMzk7dCBlbXVsYXRlZC4gRXZlbiAqaWYqIFN5emthbGxlciBzb21laG93IG1hbmFnZWQgdG8gaW5qZWN0IGEgcmVsZXZhbnQgZGV2aWNlIHRyZWUgbm9kZSAod2hpY2ggaXMgYWxyZWFkeSB1bmxpa2VseSksIHRoZSBkcml2ZXIgd291bGQgZmFpbCB0byBpbml0aWFsaXplIGJlY2F1c2UgdGhlIHJlZ2lzdGVycyBpdCBhY2Nlc3NlcyB0aHJvdWdoIE1ESU8gb3IgTU1JTyBzaW1wbHkgd291bGRuJiMzOTt0IHJlc3BvbmQuIFRoZSBoYXJkd2FyZSYjMzk7cyBqdXN0IG5vdCAqdGhlcmUqLiBUaGUgcGF0Y2ggaXRzZWxmIHNlZW1zIHRvIGNvbmZpcm0gdGhpczsgaXQgbW9kaWZpZXMgb25seSB0aGUgYG10NzUzMGAgZHJpdmVyLCBzZXR0aW5nIGEgYGJyb2tlbl9lZWVgIGZsYWcgYW5kIGRpc2FibGluZyBFRUUgYWR2ZXJ0aXNlbWVudCB3aXRoaW4gYG10NzUzMF9zZXR1cGAuIFRoaXMgaXMgY2xlYXJseSBhIGhhcmR3YXJlLXNwZWNpZmljIGZpeCBmb3IgcGh5c2ljYWwgc3dpdGNoZXMsIG5vdCBzb21ldGhpbmcgeW91JiMzOTtkIHNlZSBpbiBhIHZpcnR1YWxpemVkIHNldHRpbmcuCgpJIG5lZWQgdG8gY29uZmlybSBteSBpbml0aWFsIGFzc3VtcHRpb24sIGp1c3QgdG8gYmUgdGhvcm91Z2guIFRoZSBkcml2ZXIgaXMgbG9jYXRlZCBhdCBgZHJpdmVycy9uZXQvZHNhL210NzUzMC5jYC4gQWgsIHllcywgaXQmIzM5O3MgYSBEU0Egc3dpdGNoIGRyaXZlci4gRFNBIHN3aXRjaGVzIGFyZSBhbG1vc3QgYWx3YXlzIHBoeXNpY2FsIGhhcmR3YXJlLCB0aGF0JiMzOTtzIHRoZWlyIHdob2xlIHJlYXNvbiBmb3IgZXhpc3RpbmcuIEFzIGZhciBhcyBJIGtub3csIHRoZXJlJiMzOTtzIG5vIHNvZnR3YXJlIGVtdWxhdGlvbiBvZiB0aGUgTVQ3NTMwIGluIFFFTVUuIFNvLCB0aGUgdmVyZGljdCBpcyBgV29ydGhGdXp6aW5nPWZhbHNlYC4gVGhpcyBjb2RlIGlzIHVucmVhY2hhYmxlIGluIGEgZ2VuZXJpYyBmdXp6aW5nIHNldHVwLiBJJiMzOTttIGNvbmZpZGVudCBpbiB0aGF0IGFzc2Vzc21lbnQuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MzIvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzIwIDIwOjQ4PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+c2V0LXJlc3VsdHM8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogW10sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIE1lZGlhVGVrIE1UNzUzMC9NVDc2MjEgRFNBIHN3aXRjaCBkcml2ZXIgdG8gZGlzYWJsZSBFRUUgYWR2ZXJ0aXNlbWVudCBvbiB0aGUgc3dpdGNoIFBIWXMgZHVlIHRvIGhhcmR3YXJlIGlzc3Vlcy4gVGhpcyBpcyBhIGhhcmR3YXJlLXNwZWNpZmljIGRyaXZlciBmb3IgcGh5c2ljYWwgTWVkaWFUZWsgc3dpdGNoZXMgdGhhdCBhcmUgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUgb3IgR0NFIGVudmlyb25tZW50cy4gVGhlIGNvZGUgY2Fubm90IGJlIHJlYWNoZWQgZHVyaW5nIGdlbmVyaWMga2VybmVsIGZ1enppbmcgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IG51bGwsCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIE1lZGlhVGVrIE1UNzUzMC9NVDc2MjEgRFNBIHN3aXRjaCBkcml2ZXIgdG8gZGlzYWJsZSBFRUUgYWR2ZXJ0aXNlbWVudCBvbiB0aGUgc3dpdGNoIFBIWXMgZHVlIHRvIGhhcmR3YXJlIGlzc3Vlcy4gVGhpcyBpcyBhIGhhcmR3YXJlLXNwZWNpZmljIGRyaXZlciBmb3IgcGh5c2ljYWwgTWVkaWFUZWsgc3dpdGNoZXMgdGhhdCBhcmUgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUgb3IgR0NFIGVudmlyb25tZW50cy4gVGhlIGNvZGUgY2Fubm90IGJlIHJlYWNoZWQgZHVyaW5nIGdlbmVyaWMga2VybmVsIGZ1enppbmcgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zMy8xPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjAgMjA6NDg8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPklmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA4LTIwVDIwOjQ3OjAzLjIzNDE2MTY3NVoiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjg4ODYxMTM3MTM4LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIktNU0FOUmVhc29uaW5nXCI6IFwiXCIsXG4gIFwiTmVlZHNLTVNBTlwiOiBmYWxzZSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIE1lZGlhVGVrIE1UNzUzMC9NVDc2MjEgRFNBIHN3aXRjaCBkcml2ZXIgdG8gZGlzYWJsZSBFRUUgYWR2ZXJ0aXNlbWVudCBvbiB0aGUgc3dpdGNoIFBIWXMgZHVlIHRvIGhhcmR3YXJlIGlzc3Vlcy4gVGhpcyBpcyBhIGhhcmR3YXJlLXNwZWNpZmljIGRyaXZlciBmb3IgcGh5c2ljYWwgTWVkaWFUZWsgc3dpdGNoZXMgdGhhdCBhcmUgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUgb3IgR0NFIGVudmlyb25tZW50cy4gVGhlIGNvZGUgY2Fubm90IGJlIHJlYWNoZWQgZHVyaW5nIGdlbmVyaWMga2VybmVsIGZ1enppbmcgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjBUMjA6NDc6MDMuMjM0MTY1Nzc1WiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMzcyMTc4NTgyLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJQYXRjaERpZmZcIjogXCJjb21taXQgODc5YWYxNDdkNjI0N2NjYWI5ZGQ2MGQ0MWE4MjZkMWY3ZTIwZDY2YVxcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXFx1MDAzZVxcbkRhdGU6ICAgVGh1IEF1ZyAyMCAyMDo0NzowMSAyMDI2ICswMDAwXFxuXFxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xcblxcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9kc2EvbXQ3NTMwLmMgYi9kcml2ZXJzL25ldC9kc2EvbXQ3NTMwLmNcXG5pbmRleCBhYTMzZDk0ZTExYjVmLi5iYjIyYzE5Y2YzMTRhIDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvbmV0L2RzYS9tdDc1MzAuY1xcbisrKyBiL2RyaXZlcnMvbmV0L2RzYS9tdDc1MzAuY1xcbkBAIC0yNTE4LDYgKzI1MTgsMTUgQEAgbXQ3NTMwX3NldHVwKHN0cnVjdCBkc2Ffc3dpdGNoICpkcylcXG4gXFx0aWYgKCh2YWwgXFx1MDAyNiBNVDc1MzBfWFRBTF9NQVNLKSA9PSBNVDc1MzBfWFRBTF80ME1IWilcXG4gXFx0XFx0bXQ3NTMwX3BsbF9zZXR1cChwcml2KTtcXG4gXFxuK1xcdGlmIChwcml2LVxcdTAwM2VpbmZvLVxcdTAwM2Vicm9rZW5fZWVlKSB7XFxuK1xcdFxcdC8qIERpc2FibGUgRUVFIGFkdmVydGlzZW1lbnQgb24gdGhlIHN3aXRjaCBQSFlzLiAqL1xcbitcXHRcXHRmb3IgKGkgPSBNVDc1M1hfQ1RSTF9QSFlfQUREUihwcml2LVxcdTAwM2VtZGlvZGV2LVxcdTAwM2VhZGRyKTtcXG4rXFx0XFx0ICAgICBpIFxcdTAwM2MgTVQ3NTNYX0NUUkxfUEhZX0FERFIocHJpdi1cXHUwMDNlbWRpb2Rldi1cXHUwMDNlYWRkcikgKyBNVDc1MzBfTlVNX1BIWVM7XFxuK1xcdFxcdCAgICAgaSsrKSB7XFxuK1xcdFxcdFxcdG10NzUzMF9waHlfd3JpdGVfYzQ1KHByaXYsIGksIE1ESU9fTU1EX0FOLCBNRElPX0FOX0VFRV9BRFYsIDApO1xcbitcXHRcXHR9XFxuK1xcdH1cXG4rXFxuIFxcdG10NzUzeF90cmFwX2ZyYW1lcyhwcml2KTtcXG4gXFxuIFxcdC8qIEVuYWJsZSBhbmQgcmVzZXQgTUlCIGNvdW50ZXJzICovXFxuQEAgLTMzODgsNiArMzM5Nyw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgcGh5bGlua19tYWNfb3BzIG10NzUzeF9waHlsaW5rX21hY19vcHMgPSB7XFxuIGNvbnN0IHN0cnVjdCBtdDc1M3hfaW5mbyBtdDc1M3hfdGFibGVbXSA9IHtcXG4gXFx0W0lEX01UNzYyMV0gPSB7XFxuIFxcdFxcdC5pZCA9IElEX01UNzYyMSxcXG4rXFx0XFx0LmJyb2tlbl9lZWUgPSB0cnVlLFxcbiBcXHRcXHQucGNzX29wcyA9IFxcdTAwMjZtdDc1MzBfcGNzX29wcyxcXG4gXFx0XFx0LnN3X3NldHVwID0gbXQ3NTMwX3NldHVwLFxcbiBcXHRcXHQucGh5X3JlYWRfYzIyID0gbXQ3NTMwX3BoeV9yZWFkX2MyMixcXG5AQCAtMzM5OSw2ICszNDA5LDcgQEAgY29uc3Qgc3RydWN0IG10NzUzeF9pbmZvIG10NzUzeF90YWJsZVtdID0ge1xcbiBcXHR9LFxcbiBcXHRbSURfTVQ3NTMwXSA9IHtcXG4gXFx0XFx0LmlkID0gSURfTVQ3NTMwLFxcbitcXHRcXHQuYnJva2VuX2VlZSA9IHRydWUsXFxuIFxcdFxcdC5wY3Nfb3BzID0gXFx1MDAyNm10NzUzMF9wY3Nfb3BzLFxcbiBcXHRcXHQuc3dfc2V0dXAgPSBtdDc1MzBfc2V0dXAsXFxuIFxcdFxcdC5waHlfcmVhZF9jMjIgPSBtdDc1MzBfcGh5X3JlYWRfYzIyLFxcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9kc2EvbXQ3NTMwLmggYi9kcml2ZXJzL25ldC9kc2EvbXQ3NTMwLmhcXG5pbmRleCBkZDMzYjBkZjM0MTllLi4wY2EzM2I5ZDQyMTA1IDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvbmV0L2RzYS9tdDc1MzAuaFxcbisrKyBiL2RyaXZlcnMvbmV0L2RzYS9tdDc1MzAuaFxcbkBAIC04NTMsNiArODUzLDcgQEAgc3RydWN0IG10NzUzeF9pbmZvIHtcXG4gXFx0dm9pZCAoKm1hY19wb3J0X2NvbmZpZykoc3RydWN0IGRzYV9zd2l0Y2ggKmRzLCBpbnQgcG9ydCxcXG4gXFx0XFx0XFx0XFx0dW5zaWduZWQgaW50IG1vZGUsXFxuIFxcdFxcdFxcdFxcdHBoeV9pbnRlcmZhY2VfdCBpbnRlcmZhY2UpO1xcbitcXHRib29sIGJyb2tlbl9lZWU7XFxuIH07XFxuIFxcbiAvKiBzdHJ1Y3QgbXQ3NTMwX3ByaXYgLVxcdFRoaXMgaXMgdGhlIG1haW4gZGF0YSBzdHJ1Y3R1cmUgZm9yIGhvbGRpbmcgdGhlIHN0YXRlXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTIwVDIwOjQ3OjA0LjYwNzE0MjU4N1oiLCJTZXEiOjIsIk5lc3RpbmciOjEsIlR5cGUiOiJhZ2VudCIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImJlc3QtZXhwZW5zaXZlIiwiRHVyYXRpb24iOjg3NDg4MTQ0OTc2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgTWVkaWFUZWsgTVQ3NTMwL01UNzYyMSBEU0Egc3dpdGNoIGRyaXZlciB0byBkaXNhYmxlIEVFRSBhZHZlcnRpc2VtZW50IG9uIHRoZSBzd2l0Y2ggUEhZcyBkdWUgdG8gaGFyZHdhcmUgaXNzdWVzLiBUaGlzIGlzIGEgaGFyZHdhcmUtc3BlY2lmaWMgZHJpdmVyIGZvciBwaHlzaWNhbCBNZWRpYVRlayBzd2l0Y2hlcyB0aGF0IGFyZSBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVSBvciBHQ0UgZW52aXJvbm1lbnRzLiBUaGUgY29kZSBjYW5ub3QgYmUgcmVhY2hlZCBkdXJpbmcgZ2VuZXJpYyBrZXJuZWwgZnV6emluZyBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiJZb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci5cbllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lXG5pZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXG5cbklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpblxueW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5XG51c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLlxuXG5SZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOlxuLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLlxuLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy5cbi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LlxuLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsXG4gIGV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS5cbi0gQ29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsXG4gIGlvbmljLCBhbWRncHUpIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLlxuLSBEcml2ZXIgLnJlbW92ZSwgLnNodXRkb3duLCBvciBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzIChlLmcuLCBpZ2JfcmVtb3ZlKVxuICB0aGF0IGFyZSBleGVjdXRlZCBvbmx5IGR1cmluZyBQQ0kgaG90LXVucGx1ZyBvciBzeXNmcyBkcml2ZXIgdW5iaW5kIG9wZXJhdGlvbnMuXG5cbklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2hcbnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLlxuXG5XaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzpcbjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuXG4gICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy5cbiAgIFByZWZlciBub24tc3RhdGljLCBub24taW5saW5lZCBBUEkgZW50cnlwb2ludCBmdW5jdGlvbnMgb3ZlciBpbnRlcm5hbCBzdGF0aWMgaGVscGVyIGZ1bmN0aW9uc1xuICAgKHdoaWNoIGFyZSBpbmxpbmVkIGJ5IHRoZSBjb21waWxlciBhbmQgZG8gbm90IGhhdmUgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcykuXG4yLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS5cbiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy5cbiAgIEFsc28gY2hlY2sgXCJkZXBlbmRzIG9uXCIgbGluZXMgaW4gS2NvbmZpZyB0byBpbmNsdWRlIGFueSBub24tc3RhbmRhcmQgcGFyZW50IHN1YnN5c3RlbSBjb25maWdzXG4gICBuZWVkZWQgZm9yIEtidWlsZCB0byBjb21waWxlIHRoZSBjb2RlIHN0YXRpY2FsbHkgaW50byB2bWxpbnV4LiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3NcbiAgIG91dHB1dCBhcnJheSwgYW5kIERPIE5PVCBhZGQgYSAnQ09ORklHXycgcHJlZml4IChlLmcuLCByZXR1cm4gXCJORVRfSVBWNFwiIGluc3RlYWQgb2YgXCJDT05GSUdfTkVUX0lQVjRcIikuXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCA4NzlhZjE0N2Q2MjQ3Y2NhYjlkZDYwZDQxYTgyNmQxZjdlMjBkNjZhXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFRodSBBdWcgMjAgMjA6NDc6MDEgMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9kc2EvbXQ3NTMwLmMgYi9kcml2ZXJzL25ldC9kc2EvbXQ3NTMwLmNcbmluZGV4IGFhMzNkOTRlMTFiNWYuLmJiMjJjMTljZjMxNGEgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9kc2EvbXQ3NTMwLmNcbisrKyBiL2RyaXZlcnMvbmV0L2RzYS9tdDc1MzAuY1xuQEAgLTI1MTgsNiArMjUxOCwxNSBAQCBtdDc1MzBfc2V0dXAoc3RydWN0IGRzYV9zd2l0Y2ggKmRzKVxuIFx0aWYgKCh2YWwgXHUwMDI2IE1UNzUzMF9YVEFMX01BU0spID09IE1UNzUzMF9YVEFMXzQwTUhaKVxuIFx0XHRtdDc1MzBfcGxsX3NldHVwKHByaXYpO1xuIFxuK1x0aWYgKHByaXYtXHUwMDNlaW5mby1cdTAwM2Vicm9rZW5fZWVlKSB7XG4rXHRcdC8qIERpc2FibGUgRUVFIGFkdmVydGlzZW1lbnQgb24gdGhlIHN3aXRjaCBQSFlzLiAqL1xuK1x0XHRmb3IgKGkgPSBNVDc1M1hfQ1RSTF9QSFlfQUREUihwcml2LVx1MDAzZW1kaW9kZXYtXHUwMDNlYWRkcik7XG4rXHRcdCAgICAgaSBcdTAwM2MgTVQ3NTNYX0NUUkxfUEhZX0FERFIocHJpdi1cdTAwM2VtZGlvZGV2LVx1MDAzZWFkZHIpICsgTVQ3NTMwX05VTV9QSFlTO1xuK1x0XHQgICAgIGkrKykge1xuK1x0XHRcdG10NzUzMF9waHlfd3JpdGVfYzQ1KHByaXYsIGksIE1ESU9fTU1EX0FOLCBNRElPX0FOX0VFRV9BRFYsIDApO1xuK1x0XHR9XG4rXHR9XG4rXG4gXHRtdDc1M3hfdHJhcF9mcmFtZXMocHJpdik7XG4gXG4gXHQvKiBFbmFibGUgYW5kIHJlc2V0IE1JQiBjb3VudGVycyAqL1xuQEAgLTMzODgsNiArMzM5Nyw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgcGh5bGlua19tYWNfb3BzIG10NzUzeF9waHlsaW5rX21hY19vcHMgPSB7XG4gY29uc3Qgc3RydWN0IG10NzUzeF9pbmZvIG10NzUzeF90YWJsZVtdID0ge1xuIFx0W0lEX01UNzYyMV0gPSB7XG4gXHRcdC5pZCA9IElEX01UNzYyMSxcbitcdFx0LmJyb2tlbl9lZWUgPSB0cnVlLFxuIFx0XHQucGNzX29wcyA9IFx1MDAyNm10NzUzMF9wY3Nfb3BzLFxuIFx0XHQuc3dfc2V0dXAgPSBtdDc1MzBfc2V0dXAsXG4gXHRcdC5waHlfcmVhZF9jMjIgPSBtdDc1MzBfcGh5X3JlYWRfYzIyLFxuQEAgLTMzOTksNiArMzQwOSw3IEBAIGNvbnN0IHN0cnVjdCBtdDc1M3hfaW5mbyBtdDc1M3hfdGFibGVbXSA9IHtcbiBcdH0sXG4gXHRbSURfTVQ3NTMwXSA9IHtcbiBcdFx0LmlkID0gSURfTVQ3NTMwLFxuK1x0XHQuYnJva2VuX2VlZSA9IHRydWUsXG4gXHRcdC5wY3Nfb3BzID0gXHUwMDI2bXQ3NTMwX3Bjc19vcHMsXG4gXHRcdC5zd19zZXR1cCA9IG10NzUzMF9zZXR1cCxcbiBcdFx0LnBoeV9yZWFkX2MyMiA9IG10NzUzMF9waHlfcmVhZF9jMjIsXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZHNhL210NzUzMC5oIGIvZHJpdmVycy9uZXQvZHNhL210NzUzMC5oXG5pbmRleCBkZDMzYjBkZjM0MTllLi4wY2EzM2I5ZDQyMTA1IDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvZHNhL210NzUzMC5oXG4rKysgYi9kcml2ZXJzL25ldC9kc2EvbXQ3NTMwLmhcbkBAIC04NTMsNiArODUzLDcgQEAgc3RydWN0IG10NzUzeF9pbmZvIHtcbiBcdHZvaWQgKCptYWNfcG9ydF9jb25maWcpKHN0cnVjdCBkc2Ffc3dpdGNoICpkcywgaW50IHBvcnQsXG4gXHRcdFx0XHR1bnNpZ25lZCBpbnQgbW9kZSxcbiBcdFx0XHRcdHBoeV9pbnRlcmZhY2VfdCBpbnRlcmZhY2UpO1xuK1x0Ym9vbCBicm9rZW5fZWVlO1xuIH07XG4gXG4gLyogc3RydWN0IG10NzUzMF9wcml2IC1cdFRoaXMgaXMgdGhlIG1haW4gZGF0YSBzdHJ1Y3R1cmUgZm9yIGhvbGRpbmcgdGhlIHN0YXRlXG4iLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yMFQyMDo0NzowNC42MDcxNDQwMDdaIiwiU2VxIjozLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo2OTMwNzM3Nzk3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKk15IEFzc2Vzc21lbnQgb2YgdGhlIE1UNzUzMCBEcml2ZXIgUGF0Y2gqKlxuXG5Pa2F5LCBzbyBJJ3ZlIGdvdCB0aGlzIHBhdGNoIGhlcmUgdGhhdCBzZWVtcyB0byBiZSB0d2Vha2luZyB0aGUgTWVkaWFUZWsgTVQ3NTMwIERTQSBzd2l0Y2ggZHJpdmVyLCBzcGVjaWZpY2FsbHkgaW4gYGRyaXZlcnMvbmV0L2RzYS9tdDc1MzAuY2AgYW5kIGAuaGAuIFRoZXkncmUgYWRkaW5nIGEgYGJyb2tlbl9lZWVgIGZsYWcgdG8gdGhlIGBtdDc1M3hfaW5mb2Agc3RydWN0IGFuZCBoYXJkY29kaW5nIGl0IHRvIGB0cnVlYCBmb3IgYElEX01UNzYyMWAgYW5kIGBJRF9NVDc1MzBgIC0gaW50ZXJlc3RpbmcuIFRoZSBtZWF0IG9mIGl0IGFwcGVhcnMgdG8gYmUgaW4gYG10NzUzMF9zZXR1cCgpYCwgd2hlcmUgdGhpcyBgYnJva2VuX2VlZWAgZmxhZyBpcyB1c2VkIHRvIGRpc2FibGUgRUVFIGFkdmVydGlzZW1lbnQgdGhyb3VnaCBgbXQ3NTMwX3BoeV93cml0ZV9jNDUoKWAuIFNlZW1zIGxpa2UgaXQncyBhZGRyZXNzaW5nIGFuIGlzc3VlIHdoZXJlIEVFRSBpc24ndCB3b3JraW5nIGNvcnJlY3RseSBvbiB0aG9zZSBzcGVjaWZpYyBzd2l0Y2ggdmFyaWFudHMuXG5cbk15IGluaXRpYWwgdGhvdWdodCBpcywgaG93IGRvIEkgYWN0dWFsbHkgKnRlc3QqIHRoaXM/IFRoaXMgaXMgYSBEU0Egc3dpdGNoIGRyaXZlciwgd2hpY2ggbWVhbnMgaXQncyBkZXNpZ25lZCB0byBpbnRlcmFjdCB3aXRoIHBoeXNpY2FsIGhhcmR3YXJlLiBEU0Egc3dpdGNoZXMgYXJlIGdlbmVyYWxseSBub3Qgc29tZXRoaW5nIHlvdSBjYW4ganVzdCBjb25qdXJlIHVwIGluIGEgc3RhbmRhcmQgdmlydHVhbCBlbnZpcm9ubWVudCBsaWtlIFFFTVUuIFRoZXnigJlyZSBoYXJkd2lyZWQgaW50byB0aGUgc3lzdGVtLiBJdCdzIGxpa2VseSB0aGF0IGEgUUVNVSBzZXR1cCB3b3VsZG4ndCB0cmlnZ2VyIGFueSBvZiB0aGlzIGNvZGUuXG5cbkkgbmVlZCB0byBjb25maXJtIGlmIHRoZXJlIGlzIHNvbWUgd2F5IHRvIGVtdWxhdGUgb3IgdHJpZ2dlciB0aGUgY29kZS4gSSdsbCBuZWVkIHRvIGRpZyBpbnRvIGBkcml2ZXJzL25ldC9kc2EvbXQ3NTMwLmNgIHRvIGxvb2sgZm9yIGhvb2tzIGludG8gdGhlIG5ldHdvcmsgc3RhY2ssIG9yIHdheXMgdGhlIE1ESU8gY291bGQgYmUgdXNlZCB0byB3cml0ZSB0aGUgdGhlIFBIWSByZWdpc3RlcnMuIEknbGwgYWxzbyBjaGVjayBpZiBpdCdzIGEgcGxhdGZvcm0gZHJpdmVyIG9yIE1ESU8gZHJpdmVyLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyNjQ5LCJPdXRwdXRUb2tlbnMiOjQxLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjY1LCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjBUMjA6NDc6MTEuNTM3ODg1ODA0WiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQ0NTM1NTE1LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIm10NzUzMF9zZXR1cFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC9kc2EvbXQ3NTMwLmNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvZHNhL210NzUzMC5jPTM3Mz1zdGF0aWMgdm9pZFxcbmRyaXZlcnMvbmV0L2RzYS9tdDc1MzAuYzozNzQ6bXQ3NTMwX3NldHVwX3BvcnQ2KHN0cnVjdCBkc2Ffc3dpdGNoICpkcywgcGh5X2ludGVyZmFjZV90IGludGVyZmFjZSlcXG5kcml2ZXJzL25ldC9kc2EvbXQ3NTMwLmMtMzc1LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdDc1MzAuYz0xMDQ2PXN0YXRpYyBjb25zdCBjaGFyICptdDc1MzBfcDVfbW9kZV9zdHIodW5zaWduZWQgaW50IG1vZGUpXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXQ3NTMwLmMtMTA1Ny1cXG5kcml2ZXJzL25ldC9kc2EvbXQ3NTMwLmM6MTA1ODpzdGF0aWMgdm9pZCBtdDc1MzBfc2V0dXBfcG9ydDUoc3RydWN0IGRzYV9zd2l0Y2ggKmRzLCBwaHlfaW50ZXJmYWNlX3QgaW50ZXJmYWNlKVxcbmRyaXZlcnMvbmV0L2RzYS9tdDc1MzAuYy0xMDU5LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdDc1MzAuYz0xNjQzPXN0YXRpYyBpbnRcXG5kcml2ZXJzL25ldC9kc2EvbXQ3NTMwLmM6MTY0NDptdDc1MzBfc2V0dXBfdmxhbjAoc3RydWN0IG10NzUzMF9wcml2ICpwcml2KVxcbmRyaXZlcnMvbmV0L2RzYS9tdDc1MzAuYy0xNjQ1LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdDc1MzAuYz0xNjYwPW10NzUzMF9wb3J0X3NldF92bGFuX3VuYXdhcmUoc3RydWN0IGRzYV9zd2l0Y2ggKmRzLCBpbnQgcG9ydClcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdDc1MzAuYy0xNjk3LVxcdFxcdG11dGV4X2xvY2soXFx1MDAyNnByaXYtXFx1MDAzZXJlZ19tdXRleCk7XFxuZHJpdmVycy9uZXQvZHNhL210NzUzMC5jOjE2OTg6XFx0XFx0bXQ3NTMwX3NldHVwX3ZsYW4wKHByaXYpO1xcbmRyaXZlcnMvbmV0L2RzYS9tdDc1MzAuYy0xNjk5LVxcdFxcdG11dGV4X3VubG9jayhcXHUwMDI2cHJpdi1cXHUwMDNlcmVnX211dGV4KTtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdDc1MzAuYz0xOTkyPW10NzUzMF9wb3J0X3ZsYW5fYWRkKHN0cnVjdCBkc2Ffc3dpdGNoICpkcywgaW50IHBvcnQsXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXQ3NTMwLmMtMjAwMi1cXG5kcml2ZXJzL25ldC9kc2EvbXQ3NTMwLmM6MjAwMzpcXHQvKiBWSUQgMCBpcyBtYW5hZ2VkIGV4Y2x1c2l2ZWx5IGJ5IG10NzUzMF9zZXR1cF92bGFuMCgpIGZvclxcbmRyaXZlcnMvbmV0L2RzYS9tdDc1MzAuYy0yMDA0LVxcdCAqIFZMQU4tdW5hd2FyZSBicmlkZ2Ugb3BlcmF0aW9uLiBEb24ndCBsZXQgdGhlIGJyaWRnZSBvdmVyd3JpdGVcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdDc1MzAuYz0yMDQ2PW10NzUzMF9wb3J0X3ZsYW5fZGVsKHN0cnVjdCBkc2Ffc3dpdGNoICpkcywgaW50IHBvcnQsXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXQ3NTMwLmMtMjA1My1cXG5kcml2ZXJzL25ldC9kc2EvbXQ3NTMwLmM6MjA1NDpcXHQvKiBWSUQgMCBpcyBtYW5hZ2VkIGV4Y2x1c2l2ZWx5IGJ5IG10NzUzMF9zZXR1cF92bGFuMCgpLiAqL1xcbmRyaXZlcnMvbmV0L2RzYS9tdDc1MzAuYy0yMDU1LVxcdGlmICh2bGFuLVxcdTAwM2V2aWQgPT0gMClcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdDc1MzAuYz0yMjI5PXN0YXRpYyBpbnRcXG5kcml2ZXJzL25ldC9kc2EvbXQ3NTMwLmM6MjIzMDptdDc1MzBfc2V0dXBfZ3BpbyhzdHJ1Y3QgbXQ3NTMwX3ByaXYgKnByaXYpXFxuZHJpdmVycy9uZXQvZHNhL210NzUzMC5jLTIyMzEte1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL210NzUzMC5jPTIyNTk9c3RhdGljIHZvaWRcXG5kcml2ZXJzL25ldC9kc2EvbXQ3NTMwLmM6MjI2MDptdDc1MzBfc2V0dXBfbWRpb19pcnEoc3RydWN0IG10NzUzMF9wcml2ICpwcml2KVxcbmRyaXZlcnMvbmV0L2RzYS9tdDc1MzAuYy0yMjYxLXtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdDc1MzAuYz0yMzA5PXN0YXRpYyBpbnRcXG5kcml2ZXJzL25ldC9kc2EvbXQ3NTMwLmM6MjMxMDptdDc1MzBfc2V0dXBfaXJxKHN0cnVjdCBtdDc1MzBfcHJpdiAqcHJpdilcXG5kcml2ZXJzL25ldC9kc2EvbXQ3NTMwLmMtMjMxMS17XFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXQ3NTMwLmM9MjM2MD1zdGF0aWMgaW50XFxuZHJpdmVycy9uZXQvZHNhL210NzUzMC5jOjIzNjE6bXQ3NTMwX3NldHVwX21kaW8oc3RydWN0IG10NzUzMF9wcml2ICpwcml2KVxcbmRyaXZlcnMvbmV0L2RzYS9tdDc1MzAuYy0yMzYyLXtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdDc1MzAuYy0yMzk0LVxcdGlmIChwcml2LVxcdTAwM2VpcnFfZG9tYWluIFxcdTAwMjZcXHUwMDI2ICFtbnApXFxuZHJpdmVycy9uZXQvZHNhL210NzUzMC5jOjIzOTU6XFx0XFx0bXQ3NTMwX3NldHVwX21kaW9faXJxKHByaXYpO1xcbmRyaXZlcnMvbmV0L2RzYS9tdDc1MzAuYy0yMzk2LVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL210NzUzMC5jPTI0MDk9c3RhdGljIGludFxcbmRyaXZlcnMvbmV0L2RzYS9tdDc1MzAuYzoyNDEwOm10NzUzMF9zZXR1cChzdHJ1Y3QgZHNhX3N3aXRjaCAqZHMpXFxuZHJpdmVycy9uZXQvZHNhL210NzUzMC5jLTI0MTEte1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL210NzUzMC5jLTI1NjgtXFx0LyogU2V0dXAgVkxBTiBJRCAwIGZvciBWTEFOLXVuYXdhcmUgYnJpZGdlcyAqL1xcbmRyaXZlcnMvbmV0L2RzYS9tdDc1MzAuYzoyNTY5OlxcdHJldCA9IG10NzUzMF9zZXR1cF92bGFuMChwcml2KTtcXG5kcml2ZXJzL25ldC9kc2EvbXQ3NTMwLmMtMjU3MC1cXHRpZiAocmV0KVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL210NzUzMC5jLTI2MTMtXFx0XFx0XFx0bXQ3NTMwX2NsZWFyKHByaXYsIE1UNzUzWF9NVFJBUCwgTVQ3NTMwX1A1X0RJUyk7XFxuZHJpdmVycy9uZXQvZHNhL210NzUzMC5jOjI2MTQ6XFx0XFx0XFx0bXQ3NTMwX3NldHVwX3BvcnQ1KGRzLCBpbnRlcmZhY2UpO1xcbmRyaXZlcnMvbmV0L2RzYS9tdDc1MzAuYy0yNjE1LVxcdFxcdH1cXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdDc1MzAuYy0yNjE5LVxcdGlmIChvZl9wcm9wZXJ0eV9yZWFkX2Jvb2wocHJpdi1cXHUwMDNlZGV2LVxcdTAwM2VvZl9ub2RlLCBcXFwiZ3Bpby1jb250cm9sbGVyXFxcIikpIHtcXG5kcml2ZXJzL25ldC9kc2EvbXQ3NTMwLmM6MjYyMDpcXHRcXHRyZXQgPSBtdDc1MzBfc2V0dXBfZ3Bpbyhwcml2KTtcXG5kcml2ZXJzL25ldC9kc2EvbXQ3NTMwLmMtMjYyMS1cXHRcXHRpZiAocmV0KVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL210NzUzMC5jPTI2MzU9bXQ3NTMxX3NldHVwX2NvbW1vbihzdHJ1Y3QgZHNhX3N3aXRjaCAqZHMpXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXQ3NTMwLmMtMjcwMS1cXHQvKiBTZXR1cCBWTEFOIElEIDAgZm9yIFZMQU4tdW5hd2FyZSBicmlkZ2VzICovXFxuZHJpdmVycy9uZXQvZHNhL210NzUzMC5jOjI3MDI6XFx0cmV0dXJuIG10NzUzMF9zZXR1cF92bGFuMChwcml2KTtcXG5kcml2ZXJzL25ldC9kc2EvbXQ3NTMwLmMtMjcwMy19XFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXQ3NTMwLmM9MjkxNT1tdDc1MzBfbWFjX2NvbmZpZyhzdHJ1Y3QgZHNhX3N3aXRjaCAqZHMsIGludCBwb3J0LCB1bnNpZ25lZCBpbnQgbW9kZSxcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdDc1MzAuYy0yOTIwLVxcdGlmIChwb3J0ID09IDUpXFxuZHJpdmVycy9uZXQvZHNhL210NzUzMC5jOjI5MjE6XFx0XFx0bXQ3NTMwX3NldHVwX3BvcnQ1KHByaXYtXFx1MDAzZWRzLCBpbnRlcmZhY2UpO1xcbmRyaXZlcnMvbmV0L2RzYS9tdDc1MzAuYy0yOTIyLVxcdGVsc2UgaWYgKHBvcnQgPT0gNilcXG5kcml2ZXJzL25ldC9kc2EvbXQ3NTMwLmM6MjkyMzpcXHRcXHRtdDc1MzBfc2V0dXBfcG9ydDYocHJpdi1cXHUwMDNlZHMsIGludGVyZmFjZSk7XFxuZHJpdmVycy9uZXQvZHNhL210NzUzMC5jLTI5MjQtfVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL210NzUzMC5jPTMxODU9bXQ3NTN4X3NldHVwKHN0cnVjdCBkc2Ffc3dpdGNoICpkcylcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdDc1MzAuYy0zMTkzLVxcbmRyaXZlcnMvbmV0L2RzYS9tdDc1MzAuYzozMTk0OlxcdHJldCA9IG10NzUzMF9zZXR1cF9pcnEocHJpdik7XFxuZHJpdmVycy9uZXQvZHNhL210NzUzMC5jLTMxOTUtXFx0aWYgKHJldClcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdDc1MzAuYy0zMTk3LVxcbmRyaXZlcnMvbmV0L2RzYS9tdDc1MzAuYzozMTk4OlxcdHJldCA9IG10NzUzMF9zZXR1cF9tZGlvKHByaXYpO1xcbmRyaXZlcnMvbmV0L2RzYS9tdDc1MzAuYy0zMTk5LVxcdGlmIChyZXQpXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXQ3NTMwLmM9MzM5Nz1jb25zdCBzdHJ1Y3QgbXQ3NTN4X2luZm8gbXQ3NTN4X3RhYmxlW10gPSB7XFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXQ3NTMwLmMtMzQwMS1cXHRcXHQucGNzX29wcyA9IFxcdTAwMjZtdDc1MzBfcGNzX29wcyxcXG5kcml2ZXJzL25ldC9kc2EvbXQ3NTMwLmM6MzQwMjpcXHRcXHQuc3dfc2V0dXAgPSBtdDc1MzBfc2V0dXAsXFxuZHJpdmVycy9uZXQvZHNhL210NzUzMC5jLTM0MDMtXFx0XFx0LnBoeV9yZWFkX2MyMiA9IG10NzUzMF9waHlfcmVhZF9jMjIsXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXQ3NTMwLmMtMzQxMy1cXHRcXHQucGNzX29wcyA9IFxcdTAwMjZtdDc1MzBfcGNzX29wcyxcXG5kcml2ZXJzL25ldC9kc2EvbXQ3NTMwLmM6MzQxNDpcXHRcXHQuc3dfc2V0dXAgPSBtdDc1MzBfc2V0dXAsXFxuZHJpdmVycy9uZXQvZHNhL210NzUzMC5jLTM0MTUtXFx0XFx0LnBoeV9yZWFkX2MyMiA9IG10NzUzMF9waHlfcmVhZF9jMjIsXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTIwVDIwOjQ3OjExLjU4MjQyNDkxOVoiLCJTZXEiOjUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQ1Nzk3NzEyMzQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqSW52ZXN0aWdhdGluZyB0aGUgUmVhY2hhYmlsaXR5IG9mIHRoZSBNVDc1MzAvTVQ3NTMxL01UNzYyMSBNRElPIERyaXZlciBpbiBRRU1VKipcblxuT2theSwgc28gSSdtIHRyeWluZyB0byBmaWd1cmUgb3V0IGlmIEkgY2FuIGdldCB0aGlzIE1UNzUzMC9NVDc1MzEvTVQ3NjIxIE1ESU8gZHJpdmVyIHRvIGZpcmUgdXAgd2l0aGluIGEgUUVNVSBlbnZpcm9ubWVudC4gSXQncyBhbiBNRElPIGRyaXZlciwgd2hpY2ggbWVhbnMgaXQncyByZXNwb25zaWJsZSBmb3IgbWFuYWdpbmcgZGV2aWNlcyBjb25uZWN0ZWQgdmlhIHRoZSBNRElPIGludGVyZmFjZS4gTm93LCB0aGUgY3JpdGljYWwgcXVlc3Rpb24gaXMgd2hldGhlciBRRU1VJ3Mgc2V0dXAgd2lsbCBhbGxvdyBtZSB0byBldmVuIGhpdCB0aGlzIGNvZGUuIE15IGV4cGVyaWVuY2Ugc3VnZ2VzdHMgdGhhdCBNRElPIGRldmljZXMgYXJlIHR5cGljYWxseSBicm91Z2h0IG9ubGluZSB0aHJvdWdoIHRoZSBkZXZpY2UgdHJlZS4gSWYgdGhlIGRldmljZSB0cmVlIGNvbmZpZ3VyYXRpb24gZG9lc24ndCBleHBsaWNpdGx5IGRlZmluZSBhIG5vZGUgZm9yIHRoaXMgcGFydGljdWxhciBoYXJkd2FyZSwgdGhlIGRyaXZlciB3aWxsIGxpa2VseSByZW1haW4gZG9ybWFudCDigJMgbm90IGdldHRpbmcgcHJvYmVkIGF0IGFsbC5cblxuU28sIHRoZSBuZXh0IGxvZ2ljYWwgc3RlcCBpcyB0byBkaXZlIGludG8gdGhlIGRyaXZlcidzIGNvZGUsIHNwZWNpZmljYWxseSBgZHJpdmVycy9uZXQvZHNhL210NzUzMC5jYCwgYW5kIGh1bnQgZm9yIGNsdWVzLiBJJ20gbG9va2luZyBmb3IgYSBgTU9EVUxFX0RFVklDRV9UQUJMRWAgb3IgYW4gYG9mX21hdGNoX3RhYmxlYCB3aXRoaW4gdGhhdCBmaWxlLiBUaGVzZSB0YWJsZXMgYXJlIHRoZSBrZXkuIFRoZXkgZGVmaW5lIHRoZSBoYXJkd2FyZSBpZGVudGlmaWVycyB0aGF0IHRoZSBkcml2ZXIgaXMgZGVzaWduZWQgdG8gcmVjb2duaXplLiBJZiBJIGNhbiBmaW5kIG9uZSB0aGF0IGFsaWducyB3aXRoIHdoYXQgUUVNVSBwcm92aWRlcyBvciBjYW4gYmUgY29uZmlndXJlZCB0byBlbXVsYXRlLCBJJ20gaW4gYnVzaW5lc3MuIElmIG5vdCwgSSdsbCBuZWVkIHRvIGxvb2sgYXQgZWl0aGVyIG1vZGlmeWluZyB0aGUgZGV2aWNlIHRyZWUgd2l0aGluIFFFTVUsIG9yIHBvdGVudGlhbGx5IGNyZWF0aW5nIGEgbWluaW1hbCBkZXZpY2UgdHJlZSBvdmVycmlkZS4gSSdsbCBuZWVkIHRvIGFzc2VzcyB0aGUgcG9zc2liaWxpdGllcyFcblxuXG4iLCJJbnB1dFRva2VucyI6NTc4MywiT3V0cHV0VG9rZW5zIjozOSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjExNiwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0yMFQyMDo0NzoxNi4xNjIxOTkyMDNaIiwiU2VxIjo2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDQ0Mjk2NzUsIkVycm9yIjoibm8gbWF0Y2hlcyIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIm9mX21hdGNoX3RhYmxlXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L2RzYS9tdDc1MzAuY1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJlcnJvclwiOiBcIm5vIG1hdGNoZXNcIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjBUMjA6NDc6MTYuMjA2NjQwNjE3WiIsIlNlcSI6NywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzI2NzA1OTE4NywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiSGVyZSdzIG15IGF0dGVtcHQgYXQgc3VtbWFyaXppbmcgdGhlIHRob3VnaHQgcHJvY2VzcywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZSBhbmQgd3JpdHRlbiBpbiB0aGUgZmlyc3QgcGVyc29uOlxuXG4qKk1ESU8gRHJpdmVyIEludmVzdGlnYXRpb246IEluaXRpYWwgU3RlcHMqKlxuXG5Pa2F5LCBzbyB3ZSdyZSBkZWFsaW5nIHdpdGggYW4gTURJTyBkcml2ZXIuIE15IGluaXRpYWwgaW5zdGluY3QgaXMgdG8ganVtcCBzdHJhaWdodCB0byB0aGUgcHJvYmUgZnVuY3Rpb24sIHBhcnRpY3VsYXJseSBgbXQ3NTMwX3Byb2JlYC4gVGhhdCdzIHdoZXJlIHRoZSBjcml0aWNhbCBpbml0aWFsaXphdGlvbiBhbmQgZGV2aWNlIHNldHVwIHR5cGljYWxseSBoYXBwZW5zLCBhbmQgd2hlcmUgdGhlIGRyaXZlciBzaG91bGQgYmUgaWRlbnRpZnlpbmcgYW5kIGNvbmZpZ3VyaW5nIHRoZSBzcGVjaWZpYyBoYXJkd2FyZS4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgd2hhdCdzIGhhcHBlbmluZyBhdCB0aGUgcG9pbnQgb2YgZGV0ZWN0aW9uLiBMZXQncyBzZWUgd2hhdCdzIGdvaW5nIG9uIHRoZXJlLlxuXG5cbiIsIklucHV0VG9rZW5zIjo2MjcyLCJPdXRwdXRUb2tlbnMiOjQxLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjMsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjBUMjA6NDc6MTkuNDczNzAxODc1WiIsIlNlcSI6OCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQ1Mjc0NTg0LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIm10NzUzMF9wcm9iZVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC9kc2EvbXQ3NTMwLmNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvZHNhL210NzUzMC5jPTM0NjY9aW50XFxuZHJpdmVycy9uZXQvZHNhL210NzUzMC5jOjM0Njc6bXQ3NTMwX3Byb2JlX2NvbW1vbihzdHJ1Y3QgbXQ3NTMwX3ByaXYgKnByaXYpXFxuZHJpdmVycy9uZXQvZHNhL210NzUzMC5jLTM0Njgte1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL210NzUzMC5jLTM0OTctfVxcbmRyaXZlcnMvbmV0L2RzYS9tdDc1MzAuYzozNDk4OkVYUE9SVF9TWU1CT0xfR1BMKG10NzUzMF9wcm9iZV9jb21tb24pO1xcbmRyaXZlcnMvbmV0L2RzYS9tdDc1MzAuYy0zNDk5LVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yMFQyMDo0NzoxOS41MTg5Nzk2NVoiLCJTZXEiOjksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjM3NjU4NzMzNjAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBhIHN1bW1hcnkgb2YgbXkgdGhvdWdodCBwcm9jZXNzOlxuXG4qKkRpdmluZyBpbnRvIHRoZSBgbXQ3NTMwX3Byb2JlX2NvbW1vbmAgRnVuY3Rpb24qKlxuXG5Pa2F5LCBzbyBgbXQ3NTMwX3Byb2JlX2NvbW1vbmAgaXMgYW4gZXhwb3J0ZWQgZnVuY3Rpb24sIHdoaWNoIG1lYW5zIGl0J3MgYXZhaWxhYmxlIGZvciBvdGhlciBwYXJ0cyBvZiB0aGUga2VybmVsIHRvIHVzZS4gVGhhdCBpbW1lZGlhdGVseSBwaXF1ZXMgbXkgaW50ZXJlc3QuIEkgbmVlZCB0byB1bmRlcnN0YW5kIGl0cyBjb250ZXh0IGFuZCBob3cgaXQncyBiZWluZyBsZXZlcmFnZWQgd2l0aGluIHRoZSBzeXN0ZW0uIE15IG5leHQgc3RlcCwgbmF0dXJhbGx5LCBpcyB0byBmaWd1cmUgb3V0IHRoZSBjYWxsIHNpdGVzLiBJIG5lZWQgdG8gdHJhY2sgZG93biBldmVyeXdoZXJlIHRoaXMgcGFydGljdWxhciBmdW5jdGlvbiBpcyBiZWluZyBpbnZva2VkIHRvIGdldCBhIGdyYXNwIG9mIGl0cyByb2xlIGFuZCBzaWduaWZpY2FuY2UuIFVuZGVyc3RhbmRpbmcgd2hlcmUgaXQncyB1c2VkIGlzIGtleSB0byB1bmRlcnN0YW5kaW5nIHdoYXQgaXQgZG9lcy5cblxuXG4iLCJJbnB1dFRva2VucyI6NjYzNiwiT3V0cHV0VG9rZW5zIjozNiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjI3LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTIwVDIwOjQ3OjIzLjI4NDg1NTExWiIsIlNlcSI6MTAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0NzQ1MjA5NSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJtdDc1MzBfcHJvYmVfY29tbW9uXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L2RzYS9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvZHNhL210NzUzMC1tZGlvLmM9MTU1PW10NzUzMF9wcm9iZShzdHJ1Y3QgbWRpb19kZXZpY2UgKm1kaW9kZXYpXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXQ3NTMwLW1kaW8uYy0xNzAtXFxuZHJpdmVycy9uZXQvZHNhL210NzUzMC1tZGlvLmM6MTcxOlxcdHJldCA9IG10NzUzMF9wcm9iZV9jb21tb24ocHJpdik7XFxuZHJpdmVycy9uZXQvZHNhL210NzUzMC1tZGlvLmMtMTcyLVxcdGlmIChyZXQpXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXQ3NTMwLW1taW8uYz0yOT1tdDc5ODhfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldilcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdDc1MzAtbW1pby5jLTQxLVxcbmRyaXZlcnMvbmV0L2RzYS9tdDc1MzAtbW1pby5jOjQyOlxcdHJldCA9IG10NzUzMF9wcm9iZV9jb21tb24ocHJpdik7XFxuZHJpdmVycy9uZXQvZHNhL210NzUzMC1tbWlvLmMtNDMtXFx0aWYgKHJldClcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdDc1MzAuYz0zNDY2PWludFxcbmRyaXZlcnMvbmV0L2RzYS9tdDc1MzAuYzozNDY3Om10NzUzMF9wcm9iZV9jb21tb24oc3RydWN0IG10NzUzMF9wcml2ICpwcml2KVxcbmRyaXZlcnMvbmV0L2RzYS9tdDc1MzAuYy0zNDY4LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdDc1MzAuYy0zNDk3LX1cXG5kcml2ZXJzL25ldC9kc2EvbXQ3NTMwLmM6MzQ5ODpFWFBPUlRfU1lNQk9MX0dQTChtdDc1MzBfcHJvYmVfY29tbW9uKTtcXG5kcml2ZXJzL25ldC9kc2EvbXQ3NTMwLmMtMzQ5OS1cXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdDc1MzAuaD05NDE9c3RhdGljIGlubGluZSB2b2lkIElOSVRfTVQ3NTMwX0RVTU1ZX1BPTEwoc3RydWN0IG10NzUzMF9kdW1teV9wb2xsICpwLFxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL210NzUzMC5oLTk0Ny1cXG5kcml2ZXJzL25ldC9kc2EvbXQ3NTMwLmg6OTQ4OmludCBtdDc1MzBfcHJvYmVfY29tbW9uKHN0cnVjdCBtdDc1MzBfcHJpdiAqcHJpdik7XFxuZHJpdmVycy9uZXQvZHNhL210NzUzMC5oLTk0OS12b2lkIG10NzUzMF9yZW1vdmVfY29tbW9uKHN0cnVjdCBtdDc1MzBfcHJpdiAqcHJpdik7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTIwVDIwOjQ3OjIzLjMzMjMxMDc2NVoiLCJTZXEiOjExLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0NTUwMTQ5NDExLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBsZXQncyBkaXZlIGludG8gdGhpcy4gSGVyZSdzIGhvdyBJJ2QgYXBwcm9hY2ggdGhpcyB0YXNrLCBhcyBpZiB0aGVzZSB3ZXJlIG15IGludGVybmFsIHRob3VnaHRzOlxuXG4qKkNoZWNraW5nIERldmljZSBUcmVlIEJpbmRpbmcgaW4gTVQ3NTMwIERyaXZlciBDb2RlKipcblxuUmlnaHQsIHNvIEkgbmVlZCB0byB1bmRlcnN0YW5kIGhvdyB0aGUgTVQ3NTMwIHN3aXRjaCBkcml2ZXIgaW50ZXJhY3RzIHdpdGggdGhlIGRldmljZSB0cmVlLiBNeSBmaXJzdCBpbnN0aW5jdCwgZ2l2ZW4gdGhlIGNvbnRleHQsIGlzIHRvIGNoZWNrIHRoZSBgb2ZfbWF0Y2hfdGFibGVgIGltcGxlbWVudGF0aW9uIGluIHRoZSBNVDc1MzAgZHJpdmVyIGNvZGUuIFNwZWNpZmljYWxseSwgSSdsbCBiZSBsb29raW5nIGluIHRoZSBgZHJpdmVycy9uZXQvZHNhL210NzUzMC1tZGlvLmNgIGFuZCBgZHJpdmVycy9uZXQvZHNhL210NzUzMC1tbWlvLmNgIGZpbGVzLiBJJ20gZm9jdXNpbmcgb24gdGhvc2UgdHdvIGJlY2F1c2UgdGhleSBsaWtlbHkgaGFuZGxlIHRoZSBkaWZmZXJlbnQgY29tbXVuaWNhdGlvbiBpbnRlcmZhY2VzIGZvciB0aGUgc3dpdGNoOiBNRElPIChtYW5hZ2VtZW50IGRhdGEgSS9PKSBhbmQgTU1JTyAobWVtb3J5LW1hcHBlZCBJL08pLiBUaGUgYG9mX21hdGNoX3RhYmxlYCBpcywgb2YgY291cnNlLCB0aGUga2V5IGRhdGEgc3RydWN0dXJlLiBJIG5lZWQgdG8gc2VlIGhvdyB0aGUgZHJpdmVyIGlkZW50aWZpZXMgYW5kIGJpbmRzIHRvIHRoZSBjb3JyZWN0IGRldmljZSBub2RlcyBpbiB0aGUgZGV2aWNlIHRyZWUuIEknbSBleHBlY3RpbmcgdG8gZmluZCBlbnRyaWVzIHRoYXQgbWF0Y2ggc3BlY2lmaWMgXCJjb21wYXRpYmxlXCIgc3RyaW5ncyBvciBvdGhlciBwcm9wZXJ0aWVzIGRlZmluZWQgZm9yIHRoZSBNVDc1MzAsIGFsbG93aW5nIHRoZSBkcml2ZXIgdG8gaW5pdGlhbGl6ZSBjb3JyZWN0bHkuIEl0J3MgYSBmdW5kYW1lbnRhbCBwYXJ0IG9mIHRoZSBkZXZpY2UgZHJpdmVyJ3MgYm9vdHN0cmFwIHNlcXVlbmNlLiBJJ2xsIG5lZWQgdG8gcmV2aWV3IGhvdyB0aGVzZSBgb2ZfbWF0Y2hfdGFibGVgIGVudHJpZXMgYXJlIHN0cnVjdHVyZWQsIGFueSBjb3JyZXNwb25kaW5nIGluaXRpYWxpemF0aW9uIG9yIHByb2JlIGZ1bmN0aW9ucyB0aGF0IHJlbHkgb24gdGhlbSwgYW5kIGhvdyB0aGUgZHJpdmVyIHVsdGltYXRlbHkgaGFuZGxlcyByZXNvdXJjZSBhbGxvY2F0aW9uIGJhc2VkIG9uIHRoZSBEVCBiaW5kaW5nLiBJIHdpbGwgZW5zdXJlIHRoYXQgdGhlIGRyaXZlciB3aWxsIGJlIGJvdW5kIGNvcnJlY3RseSBhbmQgdGhhdCByZXNvdXJjZXMgYXJlIGluaXRpYWxpemVkLlxuXG5cbiIsIklucHV0VG9rZW5zIjo3NDM4LCJPdXRwdXRUb2tlbnMiOjQyLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NTEsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjBUMjA6NDc6MjcuODgyNDY2Mjc2WiIsIlNlcSI6MTIsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0NTE0NDQ2NSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJvZl9tYXRjaF90YWJsZVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC9kc2EvbXQ3NTMwLW1kaW8uY1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC9kc2EvbXQ3NTMwLW1kaW8uYz0yNTg9c3RhdGljIHN0cnVjdCBtZGlvX2RyaXZlciBtdDc1MzBfbWRpb19kcml2ZXIgPSB7XFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXQ3NTMwLW1kaW8uYy0yNjMtXFx0XFx0Lm5hbWUgPSBcXFwibXQ3NTMwLW1kaW9cXFwiLFxcbmRyaXZlcnMvbmV0L2RzYS9tdDc1MzAtbWRpby5jOjI2NDpcXHRcXHQub2ZfbWF0Y2hfdGFibGUgPSBtdDc1MzBfb2ZfbWF0Y2gsXFxuZHJpdmVycy9uZXQvZHNhL210NzUzMC1tZGlvLmMtMjY1LVxcdH0sXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTIwVDIwOjQ3OjI3LjkyNzYxNDk3MVoiLCJTZXEiOjEzLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0NTQxNTY3MTQwLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgdGhlIHN1bW1hcnksIHJlbmRlcmVkIGFzIGlmIEknbSB0aGUgb25lIHRoaW5raW5nIGl0OlxuXG4qKkNvbnNpZGVyaW5nIHRoZSBtdDc1MzBfb2ZfbWF0Y2ggRnVuY3Rpb24qKlxuXG5BbHJpZ2h0LCBsZXQncyBicmVhayBkb3duIHRoaXMgYG10NzUzMF9vZl9tYXRjaGAgZnVuY3Rpb24uIE15IGluaXRpYWwgdGhvdWdodCBpcywgdGhpcyBpcyBwcm9iYWJseSBhIGNydWNpYWwgcGllY2Ugb2YgZGV2aWNlIHRyZWUgaGFuZGxpbmcgZm9yIGFuIE1UNzUzMC1iYXNlZCBzeXN0ZW0uIEdpdmVuIG15IGJhY2tncm91bmQsIEknbSBleHBlY3RpbmcgdGhpcyBmdW5jdGlvbiB0byBiZSBpbnZvbHZlZCBpbiBwcm9iaW5nLCBhbmQgbWF0Y2hpbmcgYSBkZXZpY2Ugbm9kZSBpbiB0aGUgZGV2aWNlIHRyZWUgdG8gYSBkcml2ZXIgaW5zdGFuY2UuIFNwZWNpZmljYWxseSwgaXQncyB2ZXJ5IGxpa2VseSBhY3RpbmcgYXMgdGhlIGNhbGxiYWNrIGZ1bmN0aW9uIHdpdGhpbiB0aGUgXCJvZl9tYXRjaF90YWJsZVwiIHN0cnVjdHVyZSwgbGlrZWx5IGNvbXBhcmluZyBzb21lIHByb3BlcnRpZXMgd2l0aGluIHRoZSBkZXZpY2UgdHJlZSBub2RlIChwZXJoYXBzIGNvbXBhdGlibGUgc3RyaW5ncywgb3Igc29tZSBjdXN0b20gcGxhdGZvcm0gZGF0YSkgYWdhaW5zdCBhIHByZWRlZmluZWQgdGFibGUgb2Ygc3VwcG9ydGVkIGNvbmZpZ3VyYXRpb25zLlxuXG5JJ20gbWVudGFsbHkgcnVubmluZyB0aHJvdWdoIHRoZSB0eXBpY2FsIHNlcXVlbmNlOiB0aGUga2VybmVsIGlkZW50aWZpZXMgYSBkZXZpY2UsIHRyaWVzIHRvIGZpbmQgYSBzdWl0YWJsZSBkcml2ZXIuIEl0IGNoZWNrcyB0aGUgZGV2aWNlJ3MgcHJvcGVydGllcyBhZ2FpbnN0IHRoZSBjb21wYXRpYmxlIHN0cmluZ3MgZGVmaW5lZCBpbiBhIG1hdGNoIHRhYmxlLiBXaGVuIHRoZXJlIGlzIGEgbWF0Y2gsIHRoZW4gdGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQsIHRvIGNvbmZpcm0gdGhlIGRyaXZlciBzaG91bGQgYXR0YWNoIHRvIHRoaXMgZGV2aWNlLiBNeSBleHBlcmllbmNlIHRlbGxzIG1lIHRoYXQgdGhpcyBmdW5jdGlvbiBkb2VzIG5vdCBhY3R1YWxseSBwcm9iZSB0aGUgaGFyZHdhcmUuIEl0IGlzIGZvciBkZXZpY2UgdHJlZSBtYXRjaGluZy5cblxuSSBuZWVkIHRvIGNvbmZpcm0gd2hldGhlciB0aGUgZnVuY3Rpb24gaXMgbWVhbnQgdG8ganVzdCBiZSBhIHNpbXBsZSBcImNvbXBhdGlibGVcIiBzdHJpbmcgbWF0Y2ggb3IgaWYgaXQncyBkZXNpZ25lZCB0byBkbyBhIHNsaWdodGx5IG1vcmUgY29tcGxleCBjaGVjaywgcGVyaGFwcyB2YWxpZGF0aW5nIG90aGVyIGFzcGVjdHMgb2YgdGhlIGRldmljZSB0cmVlIG5vZGUgYmV5b25kIGp1c3QgdGhlIFwiY29tcGF0aWJsZVwiIHByb3BlcnR5LiBUaGlzIGNvdWxkIGludm9sdmUgY2hlY2tpbmcgZm9yIHRoZSBwcmVzZW5jZS9hYnNlbmNlIG9mIHNwZWNpZmljIHByb3BlcnRpZXMsIHZlcmlmeWluZyB0aGVpciB2YWx1ZXMsIG9yIGV2ZW4gcG90ZW50aWFsbHkgcmV0cmlldmluZyBzb21lIGluaXRpYWwgY29uZmlndXJhdGlvbiBwYXJhbWV0ZXJzLiBJIHdhbnQgdG8gbG9vayBtb3JlIGRlZXBseSBpbnRvIHRoZSBzb3VyY2UgY29kZSB0byBnZXQgYSBjb21wcmVoZW5zaXZlIHVuZGVyc3RhbmRpbmcgb2YgdGhlIGxvZ2ljLlxuXG5cbiIsIklucHV0VG9rZW5zIjo4MDIxLCJPdXRwdXRUb2tlbnMiOjQ2LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTIsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjBUMjA6NDc6MzIuNDY5MTg0NDcxWiIsIlNlcSI6MTQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMjIyODcxOTIsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwibXQ3NTMwX29mX21hdGNoXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L2RzYS9tdDc1MzAtbWRpby5jXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L2RzYS9tdDc1MzAtbWRpby5jPTkxPW10NzUzMV9jcmVhdGVfc2dtaWkoc3RydWN0IG10NzUzMF9wcml2ICpwcml2KVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL210NzUzMC1tZGlvLmMtMTM3LVxcbmRyaXZlcnMvbmV0L2RzYS9tdDc1MzAtbWRpby5jOjEzODpzdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBtdDc1MzBfb2ZfbWF0Y2hbXSA9IHtcXG5kcml2ZXJzL25ldC9kc2EvbXQ3NTMwLW1kaW8uYy0xMzktXFx0eyAuY29tcGF0aWJsZSA9IFxcXCJtZWRpYXRlayxtdDc2MjFcXFwiLCAuZGF0YSA9IFxcdTAwMjZtdDc1M3hfdGFibGVbSURfTVQ3NjIxXSwgfSxcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdDc1MzAtbWRpby5jLTE0My19O1xcbmRyaXZlcnMvbmV0L2RzYS9tdDc1MzAtbWRpby5jOjE0NDpNT0RVTEVfREVWSUNFX1RBQkxFKG9mLCBtdDc1MzBfb2ZfbWF0Y2gpO1xcbmRyaXZlcnMvbmV0L2RzYS9tdDc1MzAtbWRpby5jLTE0NS1cXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdDc1MzAtbWRpby5jPTI1OD1zdGF0aWMgc3RydWN0IG1kaW9fZHJpdmVyIG10NzUzMF9tZGlvX2RyaXZlciA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdDc1MzAtbWRpby5jLTI2My1cXHRcXHQubmFtZSA9IFxcXCJtdDc1MzAtbWRpb1xcXCIsXFxuZHJpdmVycy9uZXQvZHNhL210NzUzMC1tZGlvLmM6MjY0OlxcdFxcdC5vZl9tYXRjaF90YWJsZSA9IG10NzUzMF9vZl9tYXRjaCxcXG5kcml2ZXJzL25ldC9kc2EvbXQ3NTMwLW1kaW8uYy0yNjUtXFx0fSxcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjBUMjA6NDc6MzIuNTkxNDc1MDUzWiIsIlNlcSI6MTUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjg3ODQ5NDA1MTksIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBGZWFzaWJpbGl0eSBvZiBGdXp6aW5nIGEgSGFyZHdhcmUgU3dpdGNoIERyaXZlcioqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoZSBkcml2ZXIgZm9yIHRoaXMgTWVkaWFUZWsgc3dpdGNoIOKAkyBzcGVjaWZpY2FsbHkgdGhlIE1UNzYyMSwgTVQ3NTMwLCBhbmQgTVQ3NTMxIHZhcmlhbnRzLiBNeSBpbW1lZGlhdGUgY29uY2VybiBpcywgY2FuIEkgZXZlbiAqcmVhY2gqIHRoaXMgY29kZSBpbiBhIHN0YW5kYXJkIGZ1enppbmcgc2V0dXA/IEl0IHJlbGllcyBvbiBhIHNwZWNpZmljIGRldmljZSB0cmVlIG5vZGUsIGFuZCBtb3JlIGltcG9ydGFudGx5LCBpdCdzIGludGVyYWN0aW5nIHdpdGggcGh5c2ljYWwgTURJTyBvciBNTUlPIHJlZ2lzdGVycy4gTXkgaW5pdGlhbCBndXQgZmVlbGluZyBpcyBhIGZpcm0gXCJub1wiLiBRRU1VLCBhcyBmYXIgYXMgSSBrbm93LCBkb2Vzbid0IGVtdWxhdGUgdGhlc2Ugc3BlY2lmaWMgTWVkaWFUZWsgc3dpdGNoZXMsIHNvIHN0cmFpZ2h0IGF3YXksIEknbSB0aGlua2luZyBhIGdlbmVyaWMgZnV6emluZyBlbnZpcm9ubWVudCBsaWtlIHN5emthbGxlciBpcyBhIGRlYWQgZW5kLlxuXG5JJ20gcHJldHR5IHN1cmUgdGhhdCB1bmxlc3Mgd2UncmUgZnV6emluZyBkaXJlY3RseSBvbiBhY3R1YWwgTWVkaWFUZWsgaGFyZHdhcmUsIG9yIFFFTVUgKnNvbWVob3cqIGFkZHMgc3VwcG9ydCBmb3IgdGhlc2UgKnNwZWNpZmljKiBib2FyZHMvc3dpdGNoZXMgKHdoaWNoIGlzIGluY3JlZGlibHkgdW5saWtlbHkgZm9yIGdlbmVyaWMgZnV6emluZyBwdXJwb3NlcyksIHRoaXMgY29kZSBwYXRoIGlzIHVucmVhY2hhYmxlLlxuXG5XYWl0IGEgc2Vjb25kLCBzeXprYWxsZXIgZG9lcyBoYXZlIGRldmljZSB0cmVlIGluamVjdGlvbiBjYXBhYmlsaXRpZXMhIE1heWJlIHRoZXJlJ3MgYSBnbGltbWVyIG9mIGhvcGUuIEJ1dCBldmVuIHdpdGggdGhhdCwgaXQgdXN1YWxseSAqZG9lc24ndCogZW11bGF0ZSB0aGUgaGFyZHdhcmUgcmVnaXN0ZXJzLiBTbyBpZiB0aGUgZHJpdmVyIHRyaWVzIHRvIHJlYWQgYSBoYXJkd2FyZSBJRCBvciBpbnRlcmFjdCB3aXRoIHRoZSBoYXJkd2FyZSByZWdpc3RlcnMsIHdlJ3JlIGxpa2VseSBnb2luZyB0byBnZXQgYSBmYWlsdXJlIG9yIGEgY3Jhc2ggYmVjYXVzZSB0aGUgaGFyZHdhcmUgd29uJ3QgYmUgdGhlcmUuXG5cbkFscmlnaHQsIGxldCdzIGJhY2sgdXAgYSBiaXQuIEZpcnN0IHRoaW5nJ3MgZmlyc3Q6IEkgbmVlZCB0byBjaGVjayBpZiB0aGlzIGRyaXZlciAqYWN0dWFsbHkqIHJlYWRzIGhhcmR3YXJlIHJlZ2lzdGVycyBkdXJpbmcgdGhlIHByb2JlIHByb2Nlc3MuIFRoYXQncyB0aGUgbWFrZS1vci1icmVhayBxdWVzdGlvbiByaWdodCBub3cuIElmIGl0IGRvZXNuJ3QgbmVlZCB0byByZWFkIGFueSByZWdpc3RlcnMgZm9yIGJhc2ljIHNldHVwLCBpdCBtaWdodCBqdXN0ICp3b3JrKi4gQnV0IEkgaGF2ZSB0byB2ZXJpZnkgdGhhdC5cblxuXG4iLCJJbnB1dFRva2VucyI6ODg0NCwiT3V0cHV0VG9rZW5zIjo0MywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjIwOSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0yMFQyMDo0Nzo0MS4zNzY0MTgyNDNaIiwiU2VxIjoxNiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjUxMDQ2ODM1LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIm10NzUzMF9wcm9iZV9jb21tb25cIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvZHNhL210NzUzMC5jXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L2RzYS9tdDc1MzAuYz0zNDY2PWludFxcbmRyaXZlcnMvbmV0L2RzYS9tdDc1MzAuYzozNDY3Om10NzUzMF9wcm9iZV9jb21tb24oc3RydWN0IG10NzUzMF9wcml2ICpwcml2KVxcbmRyaXZlcnMvbmV0L2RzYS9tdDc1MzAuYy0zNDY4LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdDc1MzAuYy0zNDk3LX1cXG5kcml2ZXJzL25ldC9kc2EvbXQ3NTMwLmM6MzQ5ODpFWFBPUlRfU1lNQk9MX0dQTChtdDc1MzBfcHJvYmVfY29tbW9uKTtcXG5kcml2ZXJzL25ldC9kc2EvbXQ3NTMwLmMtMzQ5OS1cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjBUMjA6NDc6NDEuNDI3NDY4OTY4WiIsIlNlcSI6MTcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQ5NTI5NzU5MTMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBteSBhdHRlbXB0IGF0IHN1bW1hcml6aW5nIHRoZSB0aG91Z2h0IHByb2Nlc3MsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2U6XG5cbioqRGl2aW5nIGludG8gdGhlIGBtdDc1MzBfcHJvYmVfY29tbW9uYCBGdW5jdGlvbioqXG5cbk9rYXksIHNvIEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoaXMgYG10NzUzMF9wcm9iZV9jb21tb25gIGZ1bmN0aW9uLiBHaXZlbiB0aGUgbmFtaW5nIGNvbnZlbnRpb24sIEknbSBndWVzc2luZyBpdCdzIGEgY29tbW9uIHByb2JlIGZ1bmN0aW9uIHNwZWNpZmljYWxseSBmb3IgdGhlIE1lZGlhVGVrIE1UNzUzMCBzd2l0Y2ggY2hpcC4gVGhhdCBsaWtlbHkgbWVhbnMgaXQgaGFuZGxlcyB0aGUgaW5pdGlhbCBzZXR1cCBhbmQgY29uZmlndXJhdGlvbiB0YXNrcyBzaGFyZWQgYWNyb3NzIHZhcmlvdXMgZHJpdmVyIGltcGxlbWVudGF0aW9ucyBmb3IgdGhpcyBoYXJkd2FyZS4gSSB3YW50IHRvIHNlZSB3aGF0IGluaXRpYWxpemF0aW9uIHRoZSBwcm9iZSBmdW5jdGlvbiBoYW5kbGVzLlxuXG5JJ20gcHJvYmFibHkgZ29pbmcgdG8gYmUgbG9va2luZyBmb3IgdGhpbmdzIGxpa2U6XG5cbiogICAqKlJlc291cmNlIGFsbG9jYXRpb24qKjogQ2hlY2tpbmcgaG93IGl0IGhhbmRsZXMgSVJRcywgbWVtb3J5IHJlZ2lvbnMsIGFuZCBhbnkgb3RoZXIgcmVxdWlyZWQgcmVzb3VyY2VzIHVzaW5nIHBsYXRmb3JtIGRhdGEuXG4qICAgKipIYXJkd2FyZSByZXNldCoqOiBEb2VzIGl0IHBlcmZvcm0gYW55IGhhcmR3YXJlIHJlc2V0IHNlcXVlbmNlPyBUaGlzIGlzIGEgcHJldHR5IHN0YW5kYXJkIHBhcnQgb2YgcHJvYmluZy5cbiogICAqKlJlZ2lzdGVyIGFjY2VzcyoqOiBJIG5lZWQgdG8gc2VlIGhvdyBpdCBzZXRzIHVwIGFueSBiYXNlIGFkZHJlc3MgcmVnaXN0ZXJzIHRvIHRhbGsgdG8gdGhlIGNoaXAuIElzIGl0IHVzaW5nIE1NSU8gb3IgSTJDL1NQST9cbiogICAqKkNsb2NrIHNldHVwKio6IFRoaXMgaXMgdmVyeSBpbXBvcnRhbnQuIEkgZXhwZWN0IHRoZXJlIHRvIGJlIHNvbWUgY2xvY2sgaW5pdGlhbGl6YXRpb24gdG8gbWFrZSBzdXJlIHRoZSBzd2l0Y2ggaGFzIGEgc3RhYmxlIGNsb2NrIGJlZm9yZSBwcm9jZWVkaW5nIHdpdGggYW55dGhpbmcgZWxzZS5cbiogICAqKkRyaXZlciBkYXRhIHN0cnVjdHVyZXMqKjogTGlrZWx5LCB0aGVyZSdsbCBiZSBpbml0aWFsIGFsbG9jYXRpb24gYW5kIHNldHVwIG9mIGRhdGEgc3RydWN0dXJlcyBzcGVjaWZpYyB0byB0aGUgbXQ3NTMwLlxuKiAgICoqSW50ZXJydXB0IEhhbmRsaW5nKio6IFNldHRpbmcgdXAgaW50ZXJydXB0IGhhbmRsZXJzLCBlbmFibGluZyBpbnRlcnJ1cHRzIG9uIHRoZSBzd2l0Y2guXG4qICAgKipQaHkgY29uZmlndXJhdGlvbioqOiBQb3NzaWJseSByZWxhdGVkIHRvIHRoZSBpbnRlcm5hbCBQSFkuXG5cbkknbSBhbHNvIGN1cmlvdXMgYWJvdXQgZXJyb3IgaGFuZGxpbmcuIEkgaG9wZSB0byBzZWUgcm9idXN0IGVycm9yIGNoZWNrcyBhbmQgcmVwb3J0aW5nLCBlc3BlY2lhbGx5IGFyb3VuZCByZXNvdXJjZSBhbGxvY2F0aW9uLiBJZGVhbGx5LCBpdCBoYW5kbGVzIHBvdGVudGlhbCBoYXJkd2FyZSBmYWlsdXJlcyBncmFjZWZ1bGx5LCBwZXJoYXBzIGJ5IGZhbGxpbmcgYmFjayB0byBhIHNhZmUgbW9kZSBvciByZXR1cm5pbmcgYW4gYXBwcm9wcmlhdGUgZXJyb3IgY29kZS4gRmluYWxseSwgSSdsbCBiZSBsb29raW5nIGZvciByZWZlcmVuY2VzIHRvIGFueSBvdGhlciBmdW5jdGlvbnMgdGhhdCBhcmUgY2FsbGVkLCB0byBzZWUgaG93IHRoZSBvdmVyYWxsIHByb2JlIHByb2Nlc3MgaXMgc3RydWN0dXJlZC5cblxuXG4iLCJJbnB1dFRva2VucyI6OTYzNywiT3V0cHV0VG9rZW5zIjo0MywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE4LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTIwVDIwOjQ3OjQ2LjM4MDQ0NzQwMVoiLCJTZXEiOjE4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJyZWFkLWZpbGUiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNDYxMjAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJGaWxlXCI6IFwiZHJpdmVycy9uZXQvZHNhL210NzUzMC5jXCIsXG4gIFwiRmlyc3RMaW5lXCI6IDM0NjYsXG4gIFwiTGluZUNvdW50XCI6IDUwXG59IiwiUmVzdWx0cyI6IntcbiAgXCJDb250ZW50c1wiOiBcIjM0NjY6XFx0aW50XFxuMzQ2NzpcXHRtdDc1MzBfcHJvYmVfY29tbW9uKHN0cnVjdCBtdDc1MzBfcHJpdiAqcHJpdilcXG4zNDY4OlxcdHtcXG4zNDY5OlxcdFxcdHN0cnVjdCBkZXZpY2UgKmRldiA9IHByaXYtXFx1MDAzZWRldjtcXG4zNDcwOlxcdFxcbjM0NzE6XFx0XFx0cHJpdi1cXHUwMDNlZHMgPSBkZXZtX2t6YWxsb2MoZGV2LCBzaXplb2YoKnByaXYtXFx1MDAzZWRzKSwgR0ZQX0tFUk5FTCk7XFxuMzQ3MjpcXHRcXHRpZiAoIXByaXYtXFx1MDAzZWRzKVxcbjM0NzM6XFx0XFx0XFx0cmV0dXJuIC1FTk9NRU07XFxuMzQ3NDpcXHRcXG4zNDc1OlxcdFxcdHByaXYtXFx1MDAzZWRzLVxcdTAwM2VkZXYgPSBkZXY7XFxuMzQ3NjpcXHRcXHRwcml2LVxcdTAwM2Vkcy1cXHUwMDNlbnVtX3BvcnRzID0gTVQ3NTMwX05VTV9QT1JUUztcXG4zNDc3OlxcdFxcbjM0Nzg6XFx0XFx0LyogR2V0IHRoZSBoYXJkd2FyZSBpZGVudGlmaWVyIGZyb20gdGhlIGRldmljZXRyZWUgbm9kZS5cXG4zNDc5OlxcdFxcdCAqIFdlIHdpbGwgbmVlZCBpdCBmb3Igc29tZSBvZiB0aGUgY2xvY2sgYW5kIHJlZ3VsYXRvciBzZXR1cC5cXG4zNDgwOlxcdFxcdCAqL1xcbjM0ODE6XFx0XFx0cHJpdi1cXHUwMDNlaW5mbyA9IG9mX2RldmljZV9nZXRfbWF0Y2hfZGF0YShkZXYpO1xcbjM0ODI6XFx0XFx0aWYgKCFwcml2LVxcdTAwM2VpbmZvKVxcbjM0ODM6XFx0XFx0XFx0cmV0dXJuIC1FSU5WQUw7XFxuMzQ4NDpcXHRcXG4zNDg1OlxcdFxcdHByaXYtXFx1MDAzZWlkID0gcHJpdi1cXHUwMDNlaW5mby1cXHUwMDNlaWQ7XFxuMzQ4NjpcXHRcXHRwcml2LVxcdTAwM2VkZXYgPSBkZXY7XFxuMzQ4NzpcXHRcXHRwcml2LVxcdTAwM2Vkcy1cXHUwMDNlcHJpdiA9IHByaXY7XFxuMzQ4ODpcXHRcXHRwcml2LVxcdTAwM2Vkcy1cXHUwMDNlb3BzID0gXFx1MDAyNm10NzUzMF9zd2l0Y2hfb3BzO1xcbjM0ODk6XFx0XFx0cHJpdi1cXHUwMDNlZHMtXFx1MDAzZXBoeWxpbmtfbWFjX29wcyA9IFxcdTAwMjZtdDc1M3hfcGh5bGlua19tYWNfb3BzO1xcbjM0OTA6XFx0XFx0bXV0ZXhfaW5pdChcXHUwMDI2cHJpdi1cXHUwMDNlcmVnX211dGV4KTtcXG4zNDkxOlxcdFxcdHNwaW5fbG9ja19pbml0KFxcdTAwMjZwcml2LVxcdTAwM2VzdGF0c19sb2NrKTtcXG4zNDkyOlxcdFxcdElOSVRfREVMQVlFRF9XT1JLKFxcdTAwMjZwcml2LVxcdTAwM2VzdGF0c193b3JrLCBtdDc1MzBfc3RhdHNfcG9sbCk7XFxuMzQ5MzpcXHRcXG4zNDk0OlxcdFxcdGRldl9zZXRfZHJ2ZGF0YShkZXYsIHByaXYpO1xcbjM0OTU6XFx0XFxuMzQ5NjpcXHRcXHRyZXR1cm4gMDtcXG4zNDk3OlxcdH1cXG4zNDk4OlxcdEVYUE9SVF9TWU1CT0xfR1BMKG10NzUzMF9wcm9iZV9jb21tb24pO1xcbjM0OTk6XFx0XFxuMzUwMDpcXHR2b2lkXFxuMzUwMTpcXHRtdDc1MzBfcmVtb3ZlX2NvbW1vbihzdHJ1Y3QgbXQ3NTMwX3ByaXYgKnByaXYpXFxuMzUwMjpcXHR7XFxuMzUwMzpcXHRcXHRpZiAocHJpdi1cXHUwMDNlaXJxX2RvbWFpbilcXG4zNTA0OlxcdFxcdFxcdG10NzUzMF9mcmVlX21kaW9faXJxKHByaXYpO1xcbjM1MDU6XFx0XFxuMzUwNjpcXHRcXHRkc2FfdW5yZWdpc3Rlcl9zd2l0Y2gocHJpdi1cXHUwMDNlZHMpO1xcbjM1MDc6XFx0XFxuMzUwODpcXHRcXHRtdXRleF9kZXN0cm95KFxcdTAwMjZwcml2LVxcdTAwM2VyZWdfbXV0ZXgpO1xcbjM1MDk6XFx0fVxcbjM1MTA6XFx0RVhQT1JUX1NZTUJPTF9HUEwobXQ3NTMwX3JlbW92ZV9jb21tb24pO1xcbjM1MTE6XFx0XFxuMzUxMjpcXHRNT0RVTEVfQVVUSE9SKFxcXCJTZWFuIFdhbmcgXFx1MDAzY3NlYW4ud2FuZ0BtZWRpYXRlay5jb21cXHUwMDNlXFxcIik7XFxuMzUxMzpcXHRNT0RVTEVfREVTQ1JJUFRJT04oXFxcIkRyaXZlciBmb3IgTWVkaWF0ZWsgTVQ3NTMwIFN3aXRjaFxcXCIpO1xcbjM1MTQ6XFx0TU9EVUxFX0xJQ0VOU0UoXFxcIkdQTFxcXCIpO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yMFQyMDo0Nzo0Ni4zODA1OTUzODFaIiwiU2VxIjoxOSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NTI0NDgyMjI1MywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgbGV0IG1lIHRoaW5rIHRoaXMgdGhyb3VnaC4uLlxuXG4qKkFuYWx5emluZyB0aGUgbXQ3NTMwIERyaXZlciBJbml0aWFsaXphdGlvbioqXG5cbkhvbGQgb24gYSBzZWNvbmQsIHRoYXQgYG10NzUzMF9wcm9iZV9jb21tb25gIGZ1bmN0aW9uIGRvZXNuJ3QgYWN0dWFsbHkgKnJlZ2lzdGVyKiB0aGUgc3dpdGNoIHdpdGggdGhlIERTQSBzdWJzeXN0ZW0uIEl0IGp1c3Qgc2V0cyB1cCB0aGUgaW50ZXJuYWwgc3RydWN0dXJlcywgaW5pdGlhbGlzaW5nIGV2ZXJ5dGhpbmcuIEl0J3MgdGhlIGJ1aWxkaW5nIGJsb2Nrcywgbm90IHRoZSBmaW5pc2hlZCBwcm9kdWN0LiBPa2F5Li4uc28gd2hlcmUgaXMgdGhlIHJlZ2lzdHJhdGlvbiBoYXBwZW5pbmc/IEkgbmVlZCB0byBmaW5kIHRoZSBjYWxsIHRvIGBkc2FfcmVnaXN0ZXJfc3dpdGNoYC4gVGhhdCdzIHRoZSBjcnVjaWFsIHN0ZXAuIEkgY2FuJ3QgYmUgb3Zlcmxvb2tpbmcgYSBtaXNpbnRlcnByZXRhdGlvbiBvZiBhIGZ1bmN0aW9uIGNhbGwuIE5lZWQgdG8gdHJhY2UgdGhpcyB0aHJvdWdoLCB1bmRlcnN0YW5kIHRoZSBjb250cm9sIGZsb3csIGZpbmQgd2hlcmUgdGhlIHN3aXRjaCBvZmZpY2lhbGx5IGJlY29tZXMga25vd24gdG8gdGhlIHN5c3RlbS4gV2hlcmUgaXMgdGhhdCBjcnVjaWFsIHJlZ2lzdHJhdGlvbiBvY2N1cnJpbmc/IEdvdHRhIHRyYWNlIHRoZSBjYWxsIHN0YWNrIG5vdy4uLlxuXG5cbiIsIklucHV0VG9rZW5zIjoxMDg2NCwiT3V0cHV0VG9rZW5zIjozOCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjM5LCJUb29sQ2FsbHMiOlsicmVhZC1maWxlIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjBUMjA6NDc6NTEuNjI1NDIwNzU0WiIsIlNlcSI6MjAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1NDIwNTU3NSwiRXJyb3IiOiJubyBtYXRjaGVzIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiZHNhX3JlZ2lzdGVyX3N3aXRjaFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC9kc2EvbXQ3NTMwXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcImVycm9yXCI6IFwibm8gbWF0Y2hlc1wiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yMFQyMDo0Nzo1MS42Nzk2MzE0MDlaIiwiU2VxIjoyMSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6Mzg1MjgzMTU5OSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IGludGVycHJldGF0aW9uIG9mIHRob3NlIHRob3VnaHRzLCBzdW1tYXJpemVkIGZyb20gYSBmaXJzdC1wZXJzb24gZXhwZXJ0IHBlcnNwZWN0aXZlOlxuXG4qKkludmVzdGlnYXRpbmcgU3dpdGNoIERyaXZlciBSZWdpc3RyYXRpb24qKlxuXG5SaWdodCwgc28gSSBuZWVkIHRvIGRpZyBpbnRvIGhvdyB0aGlzIHN3aXRjaCBkcml2ZXIgaXMgYmVpbmcgcmVnaXN0ZXJlZC4gU2luY2Ugd2UncmUgZGVhbGluZyB3aXRoIGEgTWVkaWFUZWsgTVQ3NTMwLWJhc2VkIHN3aXRjaCwgSSdtIGdvaW5nIHRvIHN0YXJ0IGJ5IGV4YW1pbmluZyB0aGUgY29yZSBkcml2ZXIgZmlsZXMuIFNwZWNpZmljYWxseSwgSSBuZWVkIHRvIGNoZWNrIGBtdDc1MzAtbWRpby5jYCBhbmQgYG10NzUzMC1tbWlvLmNgLiBUaGUgY3JpdGljYWwgZnVuY3Rpb24gSSdtIGxvb2tpbmcgZm9yIGluIGVpdGhlciBvciBib3RoIG9mIHRoZXNlIGZpbGVzIHdpbGwgYmUgYGRzYV9yZWdpc3Rlcl9zd2l0Y2hgLiBUaGF0J3MgdGhlIGtleSB0byB1bmRlcnN0YW5kaW5nIGhvdyB0aGUgc3dpdGNoIGl0c2VsZiBpcyBpbnRlZ3JhdGVkIGludG8gdGhlIERTQSBmcmFtZXdvcmsgYW5kIGluaXRpYWxpemVkIHdpdGhpbiB0aGUga2VybmVsLiBJJ2xsIGJlIGxvb2tpbmcgYXQgdGhlIGFyZ3VtZW50cyBpdCB0YWtlcywgdGhlIHNlcXVlbmNlIG9mIG9wZXJhdGlvbnMgYmVmb3JlIGFuZCBhZnRlciBpdCdzIGNhbGxlZCwgYW5kIGhvdyBpdCBoYW5kbGVzIHBvdGVudGlhbCBlcnJvcnMuIFRoaXMgd2lsbCBoZWxwIG1lIHVuZGVyc3RhbmQgdGhlIGRyaXZlcidzIG92ZXJhbGwgaW5pdGlhbGl6YXRpb24gcHJvY2Vzcy5cblxuXG4iLCJJbnB1dFRva2VucyI6MTExMTQsIk91dHB1dFRva2VucyI6NDMsIk91dHB1dFRob3VnaHRzVG9rZW5zIjozOCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0yMFQyMDo0Nzo1NS41MzI0NjUzNjhaIiwiU2VxIjoyMiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQ0OTg1MTM1LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImRzYV9yZWdpc3Rlcl9zd2l0Y2hcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvZHNhL210NzUzMC1tZGlvLmNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvZHNhL210NzUzMC1tZGlvLmM9MTU1PW10NzUzMF9wcm9iZShzdHJ1Y3QgbWRpb19kZXZpY2UgKm1kaW9kZXYpXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXQ3NTMwLW1kaW8uYy0yMTctXFxuZHJpdmVycy9uZXQvZHNhL210NzUzMC1tZGlvLmM6MjE4OlxcdHJldHVybiBkc2FfcmVnaXN0ZXJfc3dpdGNoKHByaXYtXFx1MDAzZWRzKTtcXG5kcml2ZXJzL25ldC9kc2EvbXQ3NTMwLW1kaW8uYy0yMTktfVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yMFQyMDo0Nzo1NS41Nzc0NTQzODNaIiwiU2VxIjoyMywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDEyOTQzNDg3NywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiSGVyZSdzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2U6XG5cbioqRGl2aW5nIGludG8gdGhlIE1UNzUzMCBQcm9iZSBGdW5jdGlvbioqXG5cbk9rYXksIHRpbWUgdG8gZ2V0IG15IGhhbmRzIGRpcnR5LiBJIG5lZWQgdG8gdGFrZSBhIGxvb2sgYXQgdGhlIGBtdDc1MzBfcHJvYmVgIGZ1bmN0aW9uLiBTcGVjaWZpY2FsbHksIEknbSBoZWFkaW5nIG92ZXIgdG8gYG10NzUzMC1tZGlvLmNgLiBUaGlzIGlzIHdoZXJlIHRoZSBpbml0aWFsIGJyaW5nLXVwIGxvZ2ljIHJlc2lkZXMsIHNvIEknbSBleHBlY3RpbmcgdG8gZmluZCB0aGUgc3RhbmRhcmQgZGV2aWNlIHJlZ2lzdHJhdGlvbiwgcmVzb3VyY2UgYWxsb2NhdGlvbiwgYW5kIGxpa2VseSBzb21lIGJhc2ljIGhhcmR3YXJlIGluaXRpYWxpemF0aW9uIHNlcXVlbmNlcy4gSSdtIGtlZW4gdG8gc2VlIGhvdyB0aGUgTURJTyBidXMgaXMgYmVpbmcgaGFuZGxlZCDigJMgaG93IHRoZXkncmUgYWNjZXNzaW5nIHRoZSBQSFkgcmVnaXN0ZXJzIGFuZCBzZXR0aW5nIHVwIGNvbW11bmljYXRpb24uIEdpdmVuIHRoZSBjb21wbGV4aXR5IG9mIHRoZXNlIHN3aXRjaCBjaGlwcywgSSdsbCBiZSBrZWVwaW5nIGFuIGV5ZSBvdXQgZm9yIHBvdGVudGlhbCBwaXRmYWxscyByZWxhdGVkIHRvIGNsb2NrIGNvbmZpZ3VyYXRpb24sIGludGVycnVwdCBoYW5kbGluZywgYW5kIGFueSBxdWlya3kgTWVkaWFUZWstc3BlY2lmaWMgcmVnaXN0ZXIgc2V0dGluZ3MgdGhhdCBtaWdodCBuZWVkIGNhcmVmdWwgYXR0ZW50aW9uLiBJIHdhbnQgdG8gc2VlIGhvdyB0aGUgcHJvYmUgaGFuZGxlcyBkaWZmZXJlbnQgcmV2aXNpb25zIG9mIHRoZSBNVDc1MzAgYXMgd2VsbCwgaWYgdGhleSBhcmUgbWFraW5nIHRoYXQga2luZCBvZiBkaXN0aW5jdGlvbiB3aXRoaW4gdGhlIGNvZGUuIExldCdzIGRpZyBpbiBhbmQgc2VlIHdoYXQncyB3aGF0LlxuXG5cbiIsIklucHV0VG9rZW5zIjoxMTUzMSwiT3V0cHV0VG9rZW5zIjo0NSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjI2LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTIwVDIwOjQ3OjU5LjcwNjg5MTI1WiIsIlNlcSI6MjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InJlYWQtZmlsZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjgxNzUwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRmlsZVwiOiBcImRyaXZlcnMvbmV0L2RzYS9tdDc1MzAtbWRpby5jXCIsXG4gIFwiRmlyc3RMaW5lXCI6IDE1NSxcbiAgXCJMaW5lQ291bnRcIjogNjVcbn0iLCJSZXN1bHRzIjoie1xuICBcIkNvbnRlbnRzXCI6IFwiIDE1NTpcXHRtdDc1MzBfcHJvYmUoc3RydWN0IG1kaW9fZGV2aWNlICptZGlvZGV2KVxcbiAxNTY6XFx0e1xcbiAxNTc6XFx0XFx0c3RydWN0IG10NzUzMF9wcml2ICpwcml2O1xcbiAxNTg6XFx0XFx0c3RydWN0IGRldmljZV9ub2RlICpkbjtcXG4gMTU5OlxcdFxcdGludCByZXQ7XFxuIDE2MDpcXHRcXG4gMTYxOlxcdFxcdGRuID0gbWRpb2Rldi1cXHUwMDNlZGV2Lm9mX25vZGU7XFxuIDE2MjpcXHRcXG4gMTYzOlxcdFxcdHByaXYgPSBkZXZtX2t6YWxsb2MoXFx1MDAyNm1kaW9kZXYtXFx1MDAzZWRldiwgc2l6ZW9mKCpwcml2KSwgR0ZQX0tFUk5FTCk7XFxuIDE2NDpcXHRcXHRpZiAoIXByaXYpXFxuIDE2NTpcXHRcXHRcXHRyZXR1cm4gLUVOT01FTTtcXG4gMTY2OlxcdFxcbiAxNjc6XFx0XFx0cHJpdi1cXHUwMDNlYnVzID0gbWRpb2Rldi1cXHUwMDNlYnVzO1xcbiAxNjg6XFx0XFx0cHJpdi1cXHUwMDNlZGV2ID0gXFx1MDAyNm1kaW9kZXYtXFx1MDAzZWRldjtcXG4gMTY5OlxcdFxcdHByaXYtXFx1MDAzZW1kaW9kZXYgPSBtZGlvZGV2O1xcbiAxNzA6XFx0XFxuIDE3MTpcXHRcXHRyZXQgPSBtdDc1MzBfcHJvYmVfY29tbW9uKHByaXYpO1xcbiAxNzI6XFx0XFx0aWYgKHJldClcXG4gMTczOlxcdFxcdFxcdHJldHVybiByZXQ7XFxuIDE3NDpcXHRcXG4gMTc1OlxcdFxcdC8qIFVzZSBtZWRhdGVrLG1jbSBwcm9wZXJ0eSB0byBkaXN0aW5ndWlzaCBoYXJkd2FyZSB0eXBlIHRoYXQgd291bGRcXG4gMTc2OlxcdFxcdCAqIGNhdXNlIGEgbGl0dGxlIGJpdCBkaWZmZXJlbmNlcyBvbiBwb3dlci1vbiBzZXF1ZW5jZS5cXG4gMTc3OlxcdFxcdCAqIE5vdCBNQ00gdGhhdCBpbmRpY2F0ZXMgc3dpdGNoIHdvcmtzIGFzIHRoZSByZW1vdGUgc3RhbmRhbG9uZVxcbiAxNzg6XFx0XFx0ICogaW50ZWdyYXRlZCBjaXJjdWl0IHNvIHRoZSBHUElPIHBpbiB3b3VsZCBiZSB1c2VkIHRvIGNvbXBsZXRlXFxuIDE3OTpcXHRcXHQgKiB0aGUgcmVzZXQsIG90aGVyd2lzZSBtZW1vcnktbWFwcGVkIHJlZ2lzdGVyIGFjY2Vzc2luZyB1c2VkXFxuIDE4MDpcXHRcXHQgKiB0aHJvdWdoIHN5c2NvbiBwcm92aWRlcyBpbiB0aGUgY2FzZSBvZiBNQ00uXFxuIDE4MTpcXHRcXHQgKi9cXG4gMTgyOlxcdFxcdHByaXYtXFx1MDAzZW1jbSA9IG9mX3Byb3BlcnR5X3JlYWRfYm9vbChkbiwgXFxcIm1lZGlhdGVrLG1jbVxcXCIpO1xcbiAxODM6XFx0XFx0aWYgKHByaXYtXFx1MDAzZW1jbSkge1xcbiAxODQ6XFx0XFx0XFx0ZGV2X2luZm8oXFx1MDAyNm1kaW9kZXYtXFx1MDAzZWRldiwgXFxcIk1UNzUzMCBhZGFwdHMgYXMgbXVsdGktY2hpcCBtb2R1bGVcXFxcblxcXCIpO1xcbiAxODU6XFx0XFxuIDE4NjpcXHRcXHRcXHRwcml2LVxcdTAwM2Vyc3RjID0gZGV2bV9yZXNldF9jb250cm9sX2dldChcXHUwMDI2bWRpb2Rldi1cXHUwMDNlZGV2LCBcXFwibWNtXFxcIik7XFxuIDE4NzpcXHRcXHRcXHRpZiAoSVNfRVJSKHByaXYtXFx1MDAzZXJzdGMpKSB7XFxuIDE4ODpcXHRcXHRcXHRcXHRkZXZfZXJyKFxcdTAwMjZtZGlvZGV2LVxcdTAwM2VkZXYsIFxcXCJDb3VsZG4ndCBnZXQgb3VyIHJlc2V0IGxpbmVcXFxcblxcXCIpO1xcbiAxODk6XFx0XFx0XFx0XFx0cmV0dXJuIFBUUl9FUlIocHJpdi1cXHUwMDNlcnN0Yyk7XFxuIDE5MDpcXHRcXHRcXHR9XFxuIDE5MTpcXHRcXHR9IGVsc2Uge1xcbiAxOTI6XFx0XFx0XFx0cHJpdi1cXHUwMDNlcmVzZXQgPSBkZXZtX2dwaW9kX2dldF9vcHRpb25hbChcXHUwMDI2bWRpb2Rldi1cXHUwMDNlZGV2LCBcXFwicmVzZXRcXFwiLFxcbiAxOTM6XFx0XFx0XFx0XFx0XFx0XFx0XFx0ICAgICAgR1BJT0RfT1VUX0xPVyk7XFxuIDE5NDpcXHRcXHRcXHRpZiAoSVNfRVJSKHByaXYtXFx1MDAzZXJlc2V0KSkge1xcbiAxOTU6XFx0XFx0XFx0XFx0ZGV2X2VycihcXHUwMDI2bWRpb2Rldi1cXHUwMDNlZGV2LCBcXFwiQ291bGRuJ3QgZ2V0IG91ciByZXNldCBsaW5lXFxcXG5cXFwiKTtcXG4gMTk2OlxcdFxcdFxcdFxcdHJldHVybiBQVFJfRVJSKHByaXYtXFx1MDAzZXJlc2V0KTtcXG4gMTk3OlxcdFxcdFxcdH1cXG4gMTk4OlxcdFxcdH1cXG4gMTk5OlxcdFxcbiAyMDA6XFx0XFx0aWYgKHByaXYtXFx1MDAzZWlkID09IElEX01UNzUzMCkge1xcbiAyMDE6XFx0XFx0XFx0cHJpdi1cXHUwMDNlY29yZV9wd3IgPSBkZXZtX3JlZ3VsYXRvcl9nZXQoXFx1MDAyNm1kaW9kZXYtXFx1MDAzZWRldiwgXFxcImNvcmVcXFwiKTtcXG4gMjAyOlxcdFxcdFxcdGlmIChJU19FUlIocHJpdi1cXHUwMDNlY29yZV9wd3IpKVxcbiAyMDM6XFx0XFx0XFx0XFx0cmV0dXJuIFBUUl9FUlIocHJpdi1cXHUwMDNlY29yZV9wd3IpO1xcbiAyMDQ6XFx0XFxuIDIwNTpcXHRcXHRcXHRwcml2LVxcdTAwM2Vpb19wd3IgPSBkZXZtX3JlZ3VsYXRvcl9nZXQoXFx1MDAyNm1kaW9kZXYtXFx1MDAzZWRldiwgXFxcImlvXFxcIik7XFxuIDIwNjpcXHRcXHRcXHRpZiAoSVNfRVJSKHByaXYtXFx1MDAzZWlvX3B3cikpXFxuIDIwNzpcXHRcXHRcXHRcXHRyZXR1cm4gUFRSX0VSUihwcml2LVxcdTAwM2Vpb19wd3IpO1xcbiAyMDg6XFx0XFx0fVxcbiAyMDk6XFx0XFxuIDIxMDpcXHRcXHRwcml2LVxcdTAwM2VyZWdtYXAgPSBkZXZtX3JlZ21hcF9pbml0KHByaXYtXFx1MDAzZWRldiwgXFx1MDAyNm10NzUzMF9yZWdtYXBfYnVzLCBwcml2LFxcbiAyMTE6XFx0XFx0XFx0XFx0XFx0XFx0XFx1MDAyNnJlZ21hcF9jb25maWcpO1xcbiAyMTI6XFx0XFx0aWYgKElTX0VSUihwcml2LVxcdTAwM2VyZWdtYXApKVxcbiAyMTM6XFx0XFx0XFx0cmV0dXJuIFBUUl9FUlIocHJpdi1cXHUwMDNlcmVnbWFwKTtcXG4gMjE0OlxcdFxcbiAyMTU6XFx0XFx0aWYgKHByaXYtXFx1MDAzZWlkID09IElEX01UNzUzMSlcXG4gMjE2OlxcdFxcdFxcdHByaXYtXFx1MDAzZWNyZWF0ZV9zZ21paSA9IG10NzUzMV9jcmVhdGVfc2dtaWk7XFxuIDIxNzpcXHRcXG4gMjE4OlxcdFxcdHJldHVybiBkc2FfcmVnaXN0ZXJfc3dpdGNoKHByaXYtXFx1MDAzZWRzKTtcXG4gMjE5OlxcdH1cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjBUMjA6NDc6NTkuNzA2OTc0MzVaIiwiU2VxIjoyNSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6ODQxNTczOTMwMSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipNeSBBc3Nlc3NtZW50IG9mIHRoZSBNVDc1MzAgRHJpdmVyIGFuZCBTeXprYWxsZXIncyBQb3RlbnRpYWwqKlxuXG5Pa2F5LCBzbyBJJ20gdGhpbmtpbmcgYWJvdXQgaG93IHRoZSBgbXQ3NTMwYCBzd2l0Y2ggZ2V0cyBpbml0aWFsaXplZCB3aXRoaW4gdGhlIERTQSBmcmFtZXdvcmsuIEl0IHNlZW1zIGxpa2UgYG10NzUzMF9wcm9iZWAgaXMgdGhlIHN0YXJ0aW5nIHBvaW50LCByZWdpc3RlcmluZyB0aGUgc3dpdGNoLiBUaGVuLCBEU0EsIGFzIGV4cGVjdGVkLCBjYWxscyBgbXQ3NTMwX3NldHVwYCB0aHJvdWdoIGBwcml2LVx1MDAzZWluZm8tXHUwMDNlc3dfc2V0dXAoZHMpYC4gVGhhdCBtYWtlcyBzZW5zZS4gTm93LCBgbXQ3NTMwX3NldHVwYCByZWxpZXMgb24gYG10NzUzMF9yZWFkYCBhbmQgYG10NzUzMF93cml0ZWAgdG8gaW50ZXJhY3Qgd2l0aCB0aGUgaGFyZHdhcmUsIHVzaW5nIHRoZSBNRElPIGJ1cy5cblxuTXkgaW1tZWRpYXRlIGNvbmNlcm4gaXMgaGFyZHdhcmUgcHJlc2VuY2UuIElmIHRoZSBNRElPIGJ1cyBpc24ndCBjb25uZWN0ZWQgdG8gYSByZWFsIGRldmljZSwgdGhvc2UgcmVhZC93cml0ZSBvcGVyYXRpb25zIHdpbGwgZWl0aGVyIGZhaWwgb3IsIHdvcnNlLCByZXR1cm4gcmFuZG9tIGdhcmJhZ2UuIFRoYXQgaW1tZWRpYXRlbHkgbWFrZXMgbWUgY29uc2lkZXIgc3l6a2FsbGVyLiBEb2VzIGl0IGhhdmUgYSBtZWNoYW5pc20gdG8gaW5qZWN0IG9yIGVtdWxhdGUgTURJTyBkZXZpY2VzPyBJIGtub3cgc3l6a2FsbGVyIGlzIGZhbnRhc3RpYyBmb3IgZnV6emluZyBhbmQgaGFzIGRlZXAga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwsIGJ1dCBJIGRvbid0IHJlY2FsbCBzZWVpbmcgZ2VuZXJhbCBNRElPIGRldmljZSBpbmplY3Rpb24gY2FwYWJpbGl0aWVzLiBJdCBjYW4gaW5qZWN0IFVTQiwgUENJLCBhbmQgc29tZSB2aXJ0dWFsIG5ldCBkZXZpY2VzLCBidXQgTURJTyBzZWVtcyBkaWZmZXJlbnQuIEkgdGhvdWdodCBJIHJlbWVtYmVyZWQgc29tZXRoaW5nIGFib3V0IGxvYWRpbmcgZGV2aWNlIHRyZWVzIHdpdGggYHN5el9tb3VudF9pbWFnZWAgb3IgYSBzaW1pbGFyIGZ1bmN0aW9uLiBCdXQgbm8sIHN5emthbGxlciBkb2Vzbid0IGdlbmVyYWxseSBsb2FkIGFyYml0cmFyeSBkZXZpY2UgdHJlZXMgb24gdGhlIGZseSB0byBwcm9iZSBwbGF0Zm9ybS9NRElPIGRyaXZlcnMgdW5sZXNzIGl0J3MgYSB2ZXJ5IHNwZWNpZmljIHRlc3QgY2FzZS5cblxuVGhlbiwgdGhlcmUgYXJlIHRoZSBzeXprYWxsZXIgY2FsbHMgbGlrZSBgc3l6X2dlbmV0bGlua19nZXRfZmFtaWx5X2lkYC4gSSB3b25kZXIgaWYgdGhlcmUgYXJlIGFueSBzeXprYWxsZXIgZGVzY3JpcHRpb25zIGZvciBNRElPIG9yIERTQSB0aGF0IG1pZ2h0IHNoZWQgc29tZSBsaWdodCBvbiB0aGUgc3ViamVjdC4gSSBuZWVkIHRvIGRldGVybWluZSBpZiB0aGUgYG10NzUzMGAgZHJpdmVyIG9yIHRoZSBNRElPIGJ1cyBpdHNlbGYgaXMgcmVhY2hhYmxlIHRocm91Z2ggc3l6a2FsbGVyLiBJIHNob3VsZCBjaGVjayBpZiB0aGVyZSBhcmUgYW55IHN5emthbGxlciBkZWZpbml0aW9ucyByZWxhdGVkIHRvIHRob3NlIGFyZWFzLlxuXG5cbiIsIklucHV0VG9rZW5zIjoxMjkyNiwiT3V0cHV0VG9rZW5zIjoyOSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjI1OCwiVG9vbENhbGxzIjpbInJlYWQtZmlsZSJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTIwVDIwOjQ4OjA4LjEyMjcxNTgyMVoiLCJTZXEiOjI2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NTEyMTMzNjYsIkVycm9yIjoibm8gbWF0Y2hlcyIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIm10NzUzMFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJuZXQvZHNhXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcImVycm9yXCI6IFwibm8gbWF0Y2hlc1wiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yMFQyMDo0ODowOC4xNzM5MzQ5MDdaIiwiU2VxIjoyNywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NjUxMTExNzQ0NCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiSGVyZSdzIG15IGF0dGVtcHQgYXQgc3VtbWFyaXppbmcgdGhlIHRob3VnaHQgcHJvY2VzcywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZTpcblxuKipDaGVja2luZyBmb3IgRXhpc3RpbmcgU3l6a2FsbGVyIENvdmVyYWdlIG9mIERTQSoqXG5cbk9rYXksIGZpcnN0IHRoaW5ncyBmaXJzdCwgYmVmb3JlIEkgZGl2ZSBpbnRvIGFueSBuZXcgRFNBIGZ1enppbmcgYWR2ZW50dXJlcywgSSBuZWVkIHRvIHNlZSB3aGVyZSB3ZSBzdGFuZCB3aXRoIGV4aXN0aW5nIHN5emthbGxlciBjb3ZlcmFnZS4gSSdtIGFzc3VtaW5nIHRoZXJlICpzaG91bGQqIGJlIHNvbWUgZXhpc3RpbmcgZGVzY3JpcHRpb25zLCBnaXZlbiB0aGUgdWJpcXVpdHkgb2YgRFNBIGltcGxlbWVudGF0aW9ucy4gQnV0IEkgbmVlZCB0byBiZSBzdXJlIGJlZm9yZSBJIHN0YXJ0IGZyb20gc2NyYXRjaC5cblxuU28sIEknbSB0aGlua2luZywgXCJMZXQncyBjaGVjayB0aGUgc3l6a2FsbGVyIHJlcG9zaXRvcnkgYW5kIGFueSByZWxhdGVkIGZ1enppbmcgaW5mcmFzdHJ1Y3R1cmUuIExldCdzIHN0YXJ0IHdpdGggYSBmb2N1c2VkIGtleXdvcmQgc2VhcmNoIG9uIFwiRFNBXCIgdG8gc2VlIGlmIGFueSByZWxldmFudCBzeXNjYWxsIGRlZmluaXRpb25zLCByZXNvdXJjZSBkZWZpbml0aW9ucywgb3IgZXZlbiBleGlzdGluZyB0ZXN0IGNhc2VzIGp1bXAgb3V0LiBJIGFsc28gbmVlZCB0byBjb25zaWRlciBvdGhlciByZWxhdGVkIGtleXdvcmRzIG9yIGFiYnJldmlhdGlvbnMgbGlrZSBcImNyeXB0b1wiLCBcInNlY3VyaXR5XCIsIG9yIHNwZWNpZmljIERTQS1yZWxhdGVkIGZ1bmN0aW9ucywgYmVjYXVzZSBzeXprYWxsZXIncyBjb3ZlcmFnZSBjYW4gc29tZXRpbWVzIGJlIGEgYml0IGZyYWdtZW50ZWQuIE1heWJlIHRoZXJlJ3MgRFNBIGltcGxlbWVudGVkIGFzIGEgcGFydCBvZiBhIGxhcmdlciBjcnlwdG8tbW9kdWxlOyBJIG5lZWQgdG8ga2VlcCB0aGF0IGluIG1pbmQuIFVsdGltYXRlbHksIHRoaXMgd2lsbCBnaXZlIG1lIGEgYmFzZWxpbmUgZm9yOiAxKSBXaGF0IGhhcyBhbHJlYWR5IGJlZW4gZG9uZSwgMikgV2hpY2ggRFNBLXJlbGF0ZWQgcHJpbWl0aXZlcyBhcmUgdGFyZ2V0ZWQsIGFuZCAzKSBXaGV0aGVyIHRoZSBleGlzdGluZyBjb3ZlcmFnZSBpcyBicm9hZCBlbm91Z2ggdG8gYmUgYSBzb2xpZCBzdGFydGluZyBwb2ludCBmb3IgYSBtb3JlIGZvY3VzZWQgZnV6emluZyBjYW1wYWlnbi4gRGVwZW5kaW5nIG9uIGhvdyBtdWNoIEkgZmluZCwgdGhpcyBwcmVsaW1pbmFyeSBjaGVjayBpcyBnb2luZyB0byBoZWF2aWx5IGluZmx1ZW5jZSB0aGUgZGlyZWN0aW9uIEkgdGFrZS5cblxuXG4iLCJJbnB1dFRva2VucyI6MTM2MzIsIk91dHB1dFRva2VucyI6MjYsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxNSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0yMFQyMDo0ODoxNC42ODUwNTUwMjFaIiwiU2VxIjoyOCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQ3OTAyMjA0LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImRzYVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJuZXQvZHNhXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIlxcbkZ1bGwgb3V0cHV0IGlzIHRvbyBsb25nLCBzaG93aW5nIDUwMCBvdXQgb2YgODEwNCBsaW5lcy5cXG5Vc2UgbW9yZSBwcmVjaXNlIGV4cHJlc3Npb24gaWYgcG9zc2libGUuXFxuXFxubmV0L2RzYS9NYWtlZmlsZT02PWVuZGlmXFxuLS1cXG5uZXQvZHNhL01ha2VmaWxlLTgtIyB0aGUgY29yZVxcbm5ldC9kc2EvTWFrZWZpbGU6OTpvYmotJChDT05GSUdfTkVUX0RTQSkgKz0gZHNhX2NvcmUub1xcbm5ldC9kc2EvTWFrZWZpbGU6MTA6ZHNhX2NvcmUteSArPSBcXFxcXFxubmV0L2RzYS9NYWtlZmlsZS0xMS1cXHRjb25kdWl0Lm8gXFxcXFxcbm5ldC9kc2EvTWFrZWZpbGUtMTItXFx0ZGV2bGluay5vIFxcXFxcXG5uZXQvZHNhL01ha2VmaWxlOjEzOlxcdGRzYS5vIFxcXFxcXG5uZXQvZHNhL01ha2VmaWxlLTE0LVxcdG5ldGxpbmsubyBcXFxcXFxuLS1cXG5uZXQvZHNhL01ha2VmaWxlPTI0PW9iai0kKENPTkZJR19ORVRfRFNBX1RBR19CUkNNX0NPTU1PTikgKz0gdGFnX2JyY20ub1xcbm5ldC9kc2EvTWFrZWZpbGU6MjU6b2JqLSQoQ09ORklHX05FVF9EU0FfVEFHX0RTQV9DT01NT04pICs9IHRhZ19kc2Eub1xcbm5ldC9kc2EvTWFrZWZpbGUtMjYtb2JqLSQoQ09ORklHX05FVF9EU0FfVEFHX0dTV0lQKSArPSB0YWdfZ3N3aXAub1xcbi0tXFxubmV0L2RzYS9jb25kdWl0LmMtMTEtI2luY2x1ZGUgXFx1MDAzY2xpbnV4L25ldGxpbmsuaFxcdTAwM2VcXG5uZXQvZHNhL2NvbmR1aXQuYzoxMjojaW5jbHVkZSBcXHUwMDNjbmV0L2RzYS5oXFx1MDAzZVxcbm5ldC9kc2EvY29uZHVpdC5jLTEzLSNpbmNsdWRlIFxcdTAwM2NuZXQvbmV0ZGV2X2xvY2suaFxcdTAwM2VcXG4tLVxcbm5ldC9kc2EvY29uZHVpdC5jLTE1LSNpbmNsdWRlIFxcXCJjb25kdWl0LmhcXFwiXFxubmV0L2RzYS9jb25kdWl0LmM6MTY6I2luY2x1ZGUgXFxcImRzYS5oXFxcIlxcbm5ldC9kc2EvY29uZHVpdC5jLTE3LSNpbmNsdWRlIFxcXCJwb3J0LmhcXFwiXFxuLS1cXG5uZXQvZHNhL2NvbmR1aXQuYy0xOS1cXG5uZXQvZHNhL2NvbmR1aXQuYzoyMDpzdGF0aWMgaW50IGRzYV9jb25kdWl0X2dldF9yZWdzX2xlbihzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KVxcbm5ldC9kc2EvY29uZHVpdC5jLTIxLXtcXG5uZXQvZHNhL2NvbmR1aXQuYzoyMjpcXHRzdHJ1Y3QgZHNhX3BvcnQgKmNwdV9kcCA9IGRldi1cXHUwMDNlZHNhX3B0cjtcXG5uZXQvZHNhL2NvbmR1aXQuYy0yMy1cXHRjb25zdCBzdHJ1Y3QgZXRodG9vbF9vcHMgKm9wcyA9IGNwdV9kcC1cXHUwMDNlb3JpZ19ldGh0b29sX29wcztcXG5uZXQvZHNhL2NvbmR1aXQuYzoyNDpcXHRzdHJ1Y3QgZHNhX3N3aXRjaCAqZHMgPSBjcHVfZHAtXFx1MDAzZWRzO1xcbm5ldC9kc2EvY29uZHVpdC5jLTI1LVxcdGludCBwb3J0ID0gY3B1X2RwLVxcdTAwM2VpbmRleDtcXG4tLVxcbm5ldC9kc2EvY29uZHVpdC5jLTQ4LVxcbm5ldC9kc2EvY29uZHVpdC5jOjQ5OnN0YXRpYyB2b2lkIGRzYV9jb25kdWl0X2dldF9yZWdzKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsXFxubmV0L2RzYS9jb25kdWl0LmMtNTAtXFx0XFx0XFx0XFx0IHN0cnVjdCBldGh0b29sX3JlZ3MgKnJlZ3MsIHZvaWQgKmRhdGEpXFxubmV0L2RzYS9jb25kdWl0LmMtNTEte1xcbm5ldC9kc2EvY29uZHVpdC5jOjUyOlxcdHN0cnVjdCBkc2FfcG9ydCAqY3B1X2RwID0gZGV2LVxcdTAwM2Vkc2FfcHRyO1xcbm5ldC9kc2EvY29uZHVpdC5jLTUzLVxcdGNvbnN0IHN0cnVjdCBldGh0b29sX29wcyAqb3BzID0gY3B1X2RwLVxcdTAwM2VvcmlnX2V0aHRvb2xfb3BzO1xcbm5ldC9kc2EvY29uZHVpdC5jOjU0OlxcdHN0cnVjdCBkc2Ffc3dpdGNoICpkcyA9IGNwdV9kcC1cXHUwMDNlZHM7XFxubmV0L2RzYS9jb25kdWl0LmMtNTUtXFx0c3RydWN0IGV0aHRvb2xfZHJ2aW5mbyAqY3B1X2luZm87XFxuLS1cXG5uZXQvZHNhL2NvbmR1aXQuYy02OS1cXHRjcHVfaW5mbyA9IChzdHJ1Y3QgZXRodG9vbF9kcnZpbmZvICopZGF0YTtcXG5uZXQvZHNhL2NvbmR1aXQuYzo3MDpcXHRzdHJzY3B5KGNwdV9pbmZvLVxcdTAwM2Vkcml2ZXIsIFxcXCJkc2FcXFwiLCBzaXplb2YoY3B1X2luZm8tXFx1MDAzZWRyaXZlcikpO1xcbm5ldC9kc2EvY29uZHVpdC5jLTcxLVxcdGRhdGEgKz0gc2l6ZW9mKCpjcHVfaW5mbyk7XFxuLS1cXG5uZXQvZHNhL2NvbmR1aXQuYy04My1cXG5uZXQvZHNhL2NvbmR1aXQuYzo4NDpzdGF0aWMgc3NpemVfdCBkc2FfY29uZHVpdF9hcHBlbmRfcG9ydF9zdGF0cyhzdHJ1Y3QgZHNhX3N3aXRjaCAqZHMsIGludCBwb3J0LFxcbm5ldC9kc2EvY29uZHVpdC5jLTg1LVxcdFxcdFxcdFxcdFxcdCAgICAgdTY0ICpkYXRhLCBzaXplX3Qgc3RhcnQpXFxuLS1cXG5uZXQvZHNhL2NvbmR1aXQuYy0xMDEtXFxubmV0L2RzYS9jb25kdWl0LmM6MTAyOnN0YXRpYyB2b2lkIGRzYV9jb25kdWl0X2dldF9ldGh0b29sX3N0YXRzKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsXFxubmV0L2RzYS9jb25kdWl0LmMtMTAzLVxcdFxcdFxcdFxcdFxcdCAgc3RydWN0IGV0aHRvb2xfc3RhdHMgKnN0YXRzLFxcbi0tXFxubmV0L2RzYS9jb25kdWl0LmMtMTA1LXtcXG5uZXQvZHNhL2NvbmR1aXQuYzoxMDY6XFx0c3RydWN0IGRzYV9wb3J0ICpkcCwgKmNwdV9kcCA9IGRldi1cXHUwMDNlZHNhX3B0cjtcXG5uZXQvZHNhL2NvbmR1aXQuYy0xMDctXFx0Y29uc3Qgc3RydWN0IGV0aHRvb2xfb3BzICpvcHMgPSBjcHVfZHAtXFx1MDAzZW9yaWdfZXRodG9vbF9vcHM7XFxubmV0L2RzYS9jb25kdWl0LmM6MTA4OlxcdHN0cnVjdCBkc2Ffc3dpdGNoX3RyZWUgKmRzdCA9IGNwdV9kcC1cXHUwMDNlZHN0O1xcbm5ldC9kc2EvY29uZHVpdC5jLTEwOS1cXHRpbnQgY291bnQsIG1jb3VudCA9IDA7XFxuLS1cXG5uZXQvZHNhL2NvbmR1aXQuYy0xMTYtXFx0bGlzdF9mb3JfZWFjaF9lbnRyeShkcCwgXFx1MDAyNmRzdC1cXHUwMDNlcG9ydHMsIGxpc3QpIHtcXG5uZXQvZHNhL2NvbmR1aXQuYzoxMTc6XFx0XFx0aWYgKCFkc2FfcG9ydF9pc19kc2EoZHApIFxcdTAwMjZcXHUwMDI2ICFkc2FfcG9ydF9pc19jcHUoZHApKVxcbm5ldC9kc2EvY29uZHVpdC5jLTExOC1cXHRcXHRcXHRjb250aW51ZTtcXG5uZXQvZHNhL2NvbmR1aXQuYy0xMTktXFxubmV0L2RzYS9jb25kdWl0LmM6MTIwOlxcdFxcdGNvdW50ID0gZHNhX2NvbmR1aXRfYXBwZW5kX3BvcnRfc3RhdHMoZHAtXFx1MDAzZWRzLCBkcC1cXHUwMDNlaW5kZXgsXFxubmV0L2RzYS9jb25kdWl0LmMtMTIxLVxcdFxcdFxcdFxcdFxcdFxcdCAgICAgIGRhdGEsIG1jb3VudCk7XFxuLS1cXG5uZXQvZHNhL2NvbmR1aXQuYy0xMjgtXFxubmV0L2RzYS9jb25kdWl0LmM6MTI5OnN0YXRpYyB2b2lkIGRzYV9jb25kdWl0X2dldF9ldGh0b29sX3BoeV9zdGF0cyhzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LFxcbm5ldC9kc2EvY29uZHVpdC5jLTEzMC1cXHRcXHRcXHRcXHRcXHQgICAgICBzdHJ1Y3QgZXRodG9vbF9zdGF0cyAqc3RhdHMsXFxuLS1cXG5uZXQvZHNhL2NvbmR1aXQuYy0xMzIte1xcbm5ldC9kc2EvY29uZHVpdC5jOjEzMzpcXHRzdHJ1Y3QgZHNhX3BvcnQgKmNwdV9kcCA9IGRldi1cXHUwMDNlZHNhX3B0cjtcXG5uZXQvZHNhL2NvbmR1aXQuYy0xMzQtXFx0Y29uc3Qgc3RydWN0IGV0aHRvb2xfb3BzICpvcHMgPSBjcHVfZHAtXFx1MDAzZW9yaWdfZXRodG9vbF9vcHM7XFxubmV0L2RzYS9jb25kdWl0LmM6MTM1OlxcdHN0cnVjdCBkc2Ffc3dpdGNoICpkcyA9IGNwdV9kcC1cXHUwMDNlZHM7XFxubmV0L2RzYS9jb25kdWl0LmMtMTM2LVxcdGludCBwb3J0ID0gY3B1X2RwLVxcdTAwM2VpbmRleDtcXG4tLVxcbm5ldC9kc2EvY29uZHVpdC5jLTE1NC1cXG5uZXQvZHNhL2NvbmR1aXQuYzoxNTU6c3RhdGljIHZvaWQgZHNhX2NvbmR1aXRfYXBwZW5kX3BvcnRfc3NldF9jb3VudChzdHJ1Y3QgZHNhX3N3aXRjaCAqZHMsIGludCBwb3J0LFxcbm5ldC9kc2EvY29uZHVpdC5jLTE1Ni1cXHRcXHRcXHRcXHRcXHQgICAgICAgaW50IHNzZXQsIGludCAqY291bnQpXFxuLS1cXG5uZXQvZHNhL2NvbmR1aXQuYy0xNjEtXFxubmV0L2RzYS9jb25kdWl0LmM6MTYyOnN0YXRpYyBpbnQgZHNhX2NvbmR1aXRfZ2V0X3NzZXRfY291bnQoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgaW50IHNzZXQpXFxubmV0L2RzYS9jb25kdWl0LmMtMTYzLXtcXG5uZXQvZHNhL2NvbmR1aXQuYzoxNjQ6XFx0c3RydWN0IGRzYV9wb3J0ICpkcCwgKmNwdV9kcCA9IGRldi1cXHUwMDNlZHNhX3B0cjtcXG5uZXQvZHNhL2NvbmR1aXQuYy0xNjUtXFx0Y29uc3Qgc3RydWN0IGV0aHRvb2xfb3BzICpvcHMgPSBjcHVfZHAtXFx1MDAzZW9yaWdfZXRodG9vbF9vcHM7XFxubmV0L2RzYS9jb25kdWl0LmM6MTY2OlxcdHN0cnVjdCBkc2Ffc3dpdGNoX3RyZWUgKmRzdCA9IGNwdV9kcC1cXHUwMDNlZHN0O1xcbm5ldC9kc2EvY29uZHVpdC5jLTE2Ny1cXHRpbnQgY291bnQgPSAwO1xcbi0tXFxubmV0L2RzYS9jb25kdWl0LmMtMTc4LVxcdGxpc3RfZm9yX2VhY2hfZW50cnkoZHAsIFxcdTAwMjZkc3QtXFx1MDAzZXBvcnRzLCBsaXN0KSB7XFxubmV0L2RzYS9jb25kdWl0LmM6MTc5OlxcdFxcdGlmICghZHNhX3BvcnRfaXNfZHNhKGRwKSBcXHUwMDI2XFx1MDAyNiAhZHNhX3BvcnRfaXNfY3B1KGRwKSlcXG5uZXQvZHNhL2NvbmR1aXQuYy0xODAtXFx0XFx0XFx0Y29udGludWU7XFxubmV0L2RzYS9jb25kdWl0LmMtMTgxLVxcbm5ldC9kc2EvY29uZHVpdC5jOjE4MjpcXHRcXHRkc2FfY29uZHVpdF9hcHBlbmRfcG9ydF9zc2V0X2NvdW50KGRwLVxcdTAwM2VkcywgZHAtXFx1MDAzZWluZGV4LCBzc2V0LFxcbm5ldC9kc2EvY29uZHVpdC5jLTE4My1cXHRcXHRcXHRcXHRcXHRcXHQgICBcXHUwMDI2Y291bnQpO1xcbi0tXFxubmV0L2RzYS9jb25kdWl0LmMtMTg4LVxcbm5ldC9kc2EvY29uZHVpdC5jOjE4OTpzdGF0aWMgc3NpemVfdCBkc2FfY29uZHVpdF9hcHBlbmRfcG9ydF9zdHJpbmdzKHN0cnVjdCBkc2Ffc3dpdGNoICpkcywgaW50IHBvcnQsXFxubmV0L2RzYS9jb25kdWl0LmMtMTkwLVxcdFxcdFxcdFxcdFxcdCAgICAgICB1MzIgc3RyaW5nc2V0LCB1OCAqZGF0YSxcXG4tLVxcbm5ldC9kc2EvY29uZHVpdC5jLTIyMS1cXG5uZXQvZHNhL2NvbmR1aXQuYzoyMjI6c3RhdGljIHZvaWQgZHNhX2NvbmR1aXRfZ2V0X3N0cmluZ3Moc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgdTMyIHN0cmluZ3NldCxcXG5uZXQvZHNhL2NvbmR1aXQuYy0yMjMtXFx0XFx0XFx0XFx0ICAgIHU4ICpkYXRhKVxcbm5ldC9kc2EvY29uZHVpdC5jLTIyNC17XFxubmV0L2RzYS9jb25kdWl0LmM6MjI1OlxcdHN0cnVjdCBkc2FfcG9ydCAqZHAsICpjcHVfZHAgPSBkZXYtXFx1MDAzZWRzYV9wdHI7XFxubmV0L2RzYS9jb25kdWl0LmMtMjI2LVxcdGNvbnN0IHN0cnVjdCBldGh0b29sX29wcyAqb3BzID0gY3B1X2RwLVxcdTAwM2VvcmlnX2V0aHRvb2xfb3BzO1xcbm5ldC9kc2EvY29uZHVpdC5jOjIyNzpcXHRzdHJ1Y3QgZHNhX3N3aXRjaF90cmVlICpkc3QgPSBjcHVfZHAtXFx1MDAzZWRzdDtcXG5uZXQvZHNhL2NvbmR1aXQuYy0yMjgtXFx0aW50IGNvdW50LCBtY291bnQgPSAwO1xcbi0tXFxubmV0L2RzYS9jb25kdWl0LmMtMjQ0LVxcdGxpc3RfZm9yX2VhY2hfZW50cnkoZHAsIFxcdTAwMjZkc3QtXFx1MDAzZXBvcnRzLCBsaXN0KSB7XFxubmV0L2RzYS9jb25kdWl0LmM6MjQ1OlxcdFxcdGlmICghZHNhX3BvcnRfaXNfZHNhKGRwKSBcXHUwMDI2XFx1MDAyNiAhZHNhX3BvcnRfaXNfY3B1KGRwKSlcXG5uZXQvZHNhL2NvbmR1aXQuYy0yNDYtXFx0XFx0XFx0Y29udGludWU7XFxubmV0L2RzYS9jb25kdWl0LmMtMjQ3LVxcbm5ldC9kc2EvY29uZHVpdC5jOjI0ODpcXHRcXHRjb3VudCA9IGRzYV9jb25kdWl0X2FwcGVuZF9wb3J0X3N0cmluZ3MoZHAtXFx1MDAzZWRzLCBkcC1cXHUwMDNlaW5kZXgsXFxubmV0L2RzYS9jb25kdWl0LmMtMjQ5LVxcdFxcdFxcdFxcdFxcdFxcdFxcdHN0cmluZ3NldCwgZGF0YSxcXG4tLVxcbm5ldC9kc2EvY29uZHVpdC5jLTI2MC0gKi9cXG5uZXQvZHNhL2NvbmR1aXQuYzoyNjE6aW50IF9fZHNhX2NvbmR1aXRfaHd0c3RhbXBfdmFsaWRhdGUoc3RydWN0IG5ldF9kZXZpY2UgKmRldixcXG5uZXQvZHNhL2NvbmR1aXQuYy0yNjItXFx0XFx0XFx0XFx0ICAgIGNvbnN0IHN0cnVjdCBrZXJuZWxfaHd0c3RhbXBfY29uZmlnICpjb25maWcsXFxuLS1cXG5uZXQvZHNhL2NvbmR1aXQuYy0yNjQte1xcbm5ldC9kc2EvY29uZHVpdC5jOjI2NTpcXHRzdHJ1Y3QgZHNhX3BvcnQgKmNwdV9kcCA9IGRldi1cXHUwMDNlZHNhX3B0cjtcXG5uZXQvZHNhL2NvbmR1aXQuYzoyNjY6XFx0c3RydWN0IGRzYV9zd2l0Y2ggKmRzID0gY3B1X2RwLVxcdTAwM2VkcztcXG5uZXQvZHNhL2NvbmR1aXQuYzoyNjc6XFx0c3RydWN0IGRzYV9zd2l0Y2hfdHJlZSAqZHN0O1xcbm5ldC9kc2EvY29uZHVpdC5jOjI2ODpcXHRzdHJ1Y3QgZHNhX3BvcnQgKmRwO1xcbm5ldC9kc2EvY29uZHVpdC5jLTI2OS1cXG4tLVxcbm5ldC9kc2EvY29uZHVpdC5jLTI3Mi1cXHRsaXN0X2Zvcl9lYWNoX2VudHJ5KGRwLCBcXHUwMDI2ZHN0LVxcdTAwM2Vwb3J0cywgbGlzdCkge1xcbm5ldC9kc2EvY29uZHVpdC5jOjI3MzpcXHRcXHRpZiAoZHNhX3BvcnRfc3VwcG9ydHNfaHd0c3RhbXAoZHApKSB7XFxubmV0L2RzYS9jb25kdWl0LmMtMjc0LVxcdFxcdFxcdE5MX1NFVF9FUlJfTVNHKGV4dGFjayxcXG4tLVxcbm5ldC9kc2EvY29uZHVpdC5jLTI4Mi1cXG5uZXQvZHNhL2NvbmR1aXQuYzoyODM6c3RhdGljIGludCBkc2FfY29uZHVpdF9ldGh0b29sX3NldHVwKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpXFxubmV0L2RzYS9jb25kdWl0LmMtMjg0LXtcXG5uZXQvZHNhL2NvbmR1aXQuYzoyODU6XFx0c3RydWN0IGRzYV9wb3J0ICpjcHVfZHAgPSBkZXYtXFx1MDAzZWRzYV9wdHI7XFxubmV0L2RzYS9jb25kdWl0LmM6Mjg2OlxcdHN0cnVjdCBkc2Ffc3dpdGNoICpkcyA9IGNwdV9kcC1cXHUwMDNlZHM7XFxubmV0L2RzYS9jb25kdWl0LmMtMjg3LVxcdHN0cnVjdCBldGh0b29sX29wcyAqb3BzO1xcbi0tXFxubmV0L2RzYS9jb25kdWl0LmMtMjk5LVxcbm5ldC9kc2EvY29uZHVpdC5jOjMwMDpcXHRvcHMtXFx1MDAzZWdldF9yZWdzX2xlbiA9IGRzYV9jb25kdWl0X2dldF9yZWdzX2xlbjtcXG5uZXQvZHNhL2NvbmR1aXQuYzozMDE6XFx0b3BzLVxcdTAwM2VnZXRfcmVncyA9IGRzYV9jb25kdWl0X2dldF9yZWdzO1xcbm5ldC9kc2EvY29uZHVpdC5jOjMwMjpcXHRvcHMtXFx1MDAzZWdldF9zc2V0X2NvdW50ID0gZHNhX2NvbmR1aXRfZ2V0X3NzZXRfY291bnQ7XFxubmV0L2RzYS9jb25kdWl0LmM6MzAzOlxcdG9wcy1cXHUwMDNlZ2V0X2V0aHRvb2xfc3RhdHMgPSBkc2FfY29uZHVpdF9nZXRfZXRodG9vbF9zdGF0cztcXG5uZXQvZHNhL2NvbmR1aXQuYzozMDQ6XFx0b3BzLVxcdTAwM2VnZXRfc3RyaW5ncyA9IGRzYV9jb25kdWl0X2dldF9zdHJpbmdzO1xcbm5ldC9kc2EvY29uZHVpdC5jOjMwNTpcXHRvcHMtXFx1MDAzZWdldF9ldGh0b29sX3BoeV9zdGF0cyA9IGRzYV9jb25kdWl0X2dldF9ldGh0b29sX3BoeV9zdGF0cztcXG5uZXQvZHNhL2NvbmR1aXQuYy0zMDYtXFxuLS1cXG5uZXQvZHNhL2NvbmR1aXQuYy0zMTEtXFxubmV0L2RzYS9jb25kdWl0LmM6MzEyOnN0YXRpYyB2b2lkIGRzYV9jb25kdWl0X2V0aHRvb2xfdGVhcmRvd24oc3RydWN0IG5ldF9kZXZpY2UgKmRldilcXG5uZXQvZHNhL2NvbmR1aXQuYy0zMTMte1xcbm5ldC9kc2EvY29uZHVpdC5jOjMxNDpcXHRzdHJ1Y3QgZHNhX3BvcnQgKmNwdV9kcCA9IGRldi1cXHUwMDNlZHNhX3B0cjtcXG5uZXQvZHNhL2NvbmR1aXQuYy0zMTUtXFxuLS1cXG5uZXQvZHNhL2NvbmR1aXQuYy0zMjctICovXFxubmV0L2RzYS9jb25kdWl0LmM6MzI4OnN0YXRpYyB2b2lkIGRzYV9jb25kdWl0X3NldF9wcm9taXNjdWl0eShzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBpbnQgaW5jKVxcbm5ldC9kc2EvY29uZHVpdC5jLTMyOS17XFxubmV0L2RzYS9jb25kdWl0LmM6MzMwOlxcdGNvbnN0IHN0cnVjdCBkc2FfZGV2aWNlX29wcyAqb3BzID0gZGV2LVxcdTAwM2Vkc2FfcHRyLVxcdTAwM2V0YWdfb3BzO1xcbm5ldC9kc2EvY29uZHVpdC5jLTMzMS1cXG4tLVxcbm5ldC9kc2EvY29uZHVpdC5jPTM0MD1zdGF0aWMgc3NpemVfdCB0YWdnaW5nX3Nob3coc3RydWN0IGRldmljZSAqZCwgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKmF0dHIsXFxuLS1cXG5uZXQvZHNhL2NvbmR1aXQuYy0zNDMtXFx0c3RydWN0IG5ldF9kZXZpY2UgKmRldiA9IHRvX25ldF9kZXYoZCk7XFxubmV0L2RzYS9jb25kdWl0LmM6MzQ0OlxcdHN0cnVjdCBkc2FfcG9ydCAqY3B1X2RwID0gZGV2LVxcdTAwM2Vkc2FfcHRyO1xcbm5ldC9kc2EvY29uZHVpdC5jLTM0NS1cXG5uZXQvZHNhL2NvbmR1aXQuYy0zNDYtXFx0cmV0dXJuIHN5c2ZzX2VtaXQoYnVmLCBcXFwiJXNcXFxcblxcXCIsXFxubmV0L2RzYS9jb25kdWl0LmM6MzQ3OlxcdFxcdCAgICAgICBkc2FfdGFnX3Byb3RvY29sX3RvX3N0cihjcHVfZHAtXFx1MDAzZXRhZ19vcHMpKTtcXG5uZXQvZHNhL2NvbmR1aXQuYy0zNDgtfVxcbi0tXFxubmV0L2RzYS9jb25kdWl0LmM9MzUwPXN0YXRpYyBzc2l6ZV90IHRhZ2dpbmdfc3RvcmUoc3RydWN0IGRldmljZSAqZCwgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKmF0dHIsXFxuLS1cXG5uZXQvZHNhL2NvbmR1aXQuYy0zNTIte1xcbm5ldC9kc2EvY29uZHVpdC5jOjM1MzpcXHRjb25zdCBzdHJ1Y3QgZHNhX2RldmljZV9vcHMgKm5ld190YWdfb3BzLCAqb2xkX3RhZ19vcHM7XFxubmV0L2RzYS9jb25kdWl0LmMtMzU0LVxcdGNvbnN0IGNoYXIgKmVuZCA9IHN0cmNocm51bChidWYsICdcXFxcbicpLCAqbmFtZTtcXG5uZXQvZHNhL2NvbmR1aXQuYy0zNTUtXFx0c3RydWN0IG5ldF9kZXZpY2UgKmRldiA9IHRvX25ldF9kZXYoZCk7XFxubmV0L2RzYS9jb25kdWl0LmM6MzU2OlxcdHN0cnVjdCBkc2FfcG9ydCAqY3B1X2RwID0gZGV2LVxcdTAwM2Vkc2FfcHRyO1xcbm5ldC9kc2EvY29uZHVpdC5jLTM1Ny1cXHRzaXplX3QgbGVuID0gZW5kIC0gYnVmO1xcbi0tXFxubmV0L2RzYS9jb25kdWl0LmMtMzY4LVxcdG9sZF90YWdfb3BzID0gY3B1X2RwLVxcdTAwM2V0YWdfb3BzO1xcbm5ldC9kc2EvY29uZHVpdC5jOjM2OTpcXHRuZXdfdGFnX29wcyA9IGRzYV90YWdfZHJpdmVyX2dldF9ieV9uYW1lKG5hbWUpO1xcbm5ldC9kc2EvY29uZHVpdC5jLTM3MC1cXHRrZnJlZShuYW1lKTtcXG4tLVxcbm5ldC9kc2EvY29uZHVpdC5jLTM4MC1cXG5uZXQvZHNhL2NvbmR1aXQuYzozODE6XFx0ZXJyID0gZHNhX3RyZWVfY2hhbmdlX3RhZ19wcm90byhjcHVfZHAtXFx1MDAzZWRzLVxcdTAwM2Vkc3QsIG5ld190YWdfb3BzLFxcbm5ldC9kc2EvY29uZHVpdC5jLTM4Mi1cXHRcXHRcXHRcXHRcXHRvbGRfdGFnX29wcyk7XFxuLS1cXG5uZXQvZHNhL2NvbmR1aXQuYy0zODYtXFx0XFx0ICovXFxubmV0L2RzYS9jb25kdWl0LmM6Mzg3OlxcdFxcdGRzYV90YWdfZHJpdmVyX3B1dChuZXdfdGFnX29wcyk7XFxubmV0L2RzYS9jb25kdWl0LmMtMzg4LVxcdFxcdHJldHVybiBlcnI7XFxuLS1cXG5uZXQvZHNhL2NvbmR1aXQuYy0zOTMtb3V0Olxcbm5ldC9kc2EvY29uZHVpdC5jOjM5NDpcXHRkc2FfdGFnX2RyaXZlcl9wdXQob2xkX3RhZ19vcHMpO1xcbm5ldC9kc2EvY29uZHVpdC5jLTM5NS1cXHRyZXR1cm4gY291bnQ7XFxuLS1cXG5uZXQvZHNhL2NvbmR1aXQuYz0zOTc9c3RhdGljIERFVklDRV9BVFRSX1JXKHRhZ2dpbmcpO1xcbm5ldC9kc2EvY29uZHVpdC5jLTM5OC1cXG5uZXQvZHNhL2NvbmR1aXQuYzozOTk6c3RhdGljIHN0cnVjdCBhdHRyaWJ1dGUgKmRzYV91c2VyX2F0dHJzW10gPSB7XFxubmV0L2RzYS9jb25kdWl0LmMtNDAwLVxcdFxcdTAwMjZkZXZfYXR0cl90YWdnaW5nLmF0dHIsXFxuLS1cXG5uZXQvZHNhL2NvbmR1aXQuYy00MDMtXFxubmV0L2RzYS9jb25kdWl0LmM6NDA0OnN0YXRpYyBjb25zdCBzdHJ1Y3QgYXR0cmlidXRlX2dyb3VwIGRzYV9ncm91cCA9IHtcXG5uZXQvZHNhL2NvbmR1aXQuYzo0MDU6XFx0Lm5hbWVcXHQ9IFxcXCJkc2FcXFwiLFxcbm5ldC9kc2EvY29uZHVpdC5jOjQwNjpcXHQuYXR0cnNcXHQ9IGRzYV91c2VyX2F0dHJzLFxcbm5ldC9kc2EvY29uZHVpdC5jLTQwNy19O1xcbm5ldC9kc2EvY29uZHVpdC5jLTQwOC1cXG5uZXQvZHNhL2NvbmR1aXQuYzo0MDk6c3RhdGljIHZvaWQgZHNhX2NvbmR1aXRfcmVzZXRfbXR1KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpXFxubmV0L2RzYS9jb25kdWl0LmMtNDEwLXtcXG4tLVxcbm5ldC9kc2EvY29uZHVpdC5jLTQxOC1cXG5uZXQvZHNhL2NvbmR1aXQuYzo0MTk6aW50IGRzYV9jb25kdWl0X3NldHVwKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIHN0cnVjdCBkc2FfcG9ydCAqY3B1X2RwKVxcbm5ldC9kc2EvY29uZHVpdC5jLTQyMC17XFxubmV0L2RzYS9jb25kdWl0LmM6NDIxOlxcdGNvbnN0IHN0cnVjdCBkc2FfZGV2aWNlX29wcyAqdGFnX29wcyA9IGNwdV9kcC1cXHUwMDNldGFnX29wcztcXG5uZXQvZHNhL2NvbmR1aXQuYzo0MjI6XFx0c3RydWN0IGRzYV9zd2l0Y2ggKmRzID0gY3B1X2RwLVxcdTAwM2VkcztcXG5uZXQvZHNhL2NvbmR1aXQuYy00MjMtXFx0c3RydWN0IGRldmljZV9saW5rICpjb25zdW1lcl9saW5rO1xcbi0tXFxubmV0L2RzYS9jb25kdWl0LmMtNDI1LVxcbm5ldC9kc2EvY29uZHVpdC5jOjQyNjpcXHRtdHUgPSBFVEhfREFUQV9MRU4gKyBkc2FfdGFnX3Byb3RvY29sX292ZXJoZWFkKHRhZ19vcHMpO1xcbm5ldC9kc2EvY29uZHVpdC5jLTQyNy1cXG4tLVxcbm5ldC9kc2EvY29uZHVpdC5jLTQzOC1cXHQvKiBUaGUgc3dpdGNoIGRyaXZlciBtYXkgbm90IGltcGxlbWVudCAtXFx1MDAzZXBvcnRfY2hhbmdlX210dSgpLCBjYXNlIGluXFxubmV0L2RzYS9jb25kdWl0LmM6NDM5OlxcdCAqIHdoaWNoIGRzYV91c2VyX2NoYW5nZV9tdHUoKSB3aWxsIG5vdCB1cGRhdGUgdGhlIGNvbmR1aXQgTVRVIGVpdGhlcixcXG5uZXQvZHNhL2NvbmR1aXQuYy00NDAtXFx0ICogc28gd2UgbmVlZCB0byBkbyB0aGF0IGhlcmUuXFxuLS1cXG5uZXQvZHNhL2NvbmR1aXQuYy00NTItXFxubmV0L2RzYS9jb25kdWl0LmM6NDUzOlxcdGRldi1cXHUwMDNlZHNhX3B0ciA9IGNwdV9kcDtcXG5uZXQvZHNhL2NvbmR1aXQuYy00NTQtXFxubmV0L2RzYS9jb25kdWl0LmM6NDU1OlxcdGRzYV9jb25kdWl0X3NldF9wcm9taXNjdWl0eShkZXYsIDEpO1xcbm5ldC9kc2EvY29uZHVpdC5jLTQ1Ni1cXG5uZXQvZHNhL2NvbmR1aXQuYzo0NTc6XFx0cmV0ID0gZHNhX2NvbmR1aXRfZXRodG9vbF9zZXR1cChkZXYpO1xcbm5ldC9kc2EvY29uZHVpdC5jLTQ1OC1cXHRpZiAocmV0KVxcbi0tXFxubmV0L2RzYS9jb25kdWl0LmMtNDYwLVxcbm5ldC9kc2EvY29uZHVpdC5jOjQ2MTpcXHRyZXQgPSBzeXNmc19jcmVhdGVfZ3JvdXAoXFx1MDAyNmRldi1cXHUwMDNlZGV2LmtvYmosIFxcdTAwMjZkc2FfZ3JvdXApO1xcbm5ldC9kc2EvY29uZHVpdC5jLTQ2Mi1cXHRpZiAocmV0KVxcbi0tXFxubmV0L2RzYS9jb25kdWl0LmMtNDY3LW91dF9lcnJfZXRodG9vbF90ZWFyZG93bjpcXG5uZXQvZHNhL2NvbmR1aXQuYzo0Njg6XFx0ZHNhX2NvbmR1aXRfZXRodG9vbF90ZWFyZG93bihkZXYpO1xcbm5ldC9kc2EvY29uZHVpdC5jLTQ2OS1vdXRfZXJyX3Jlc2V0X3Byb21pc2M6XFxubmV0L2RzYS9jb25kdWl0LmM6NDcwOlxcdGRzYV9jb25kdWl0X3NldF9wcm9taXNjdWl0eShkZXYsIC0xKTtcXG5uZXQvZHNhL2NvbmR1aXQuYy00NzEtXFx0cmV0dXJuIHJldDtcXG4tLVxcbm5ldC9kc2EvY29uZHVpdC5jLTQ3My1cXG5uZXQvZHNhL2NvbmR1aXQuYzo0NzQ6dm9pZCBkc2FfY29uZHVpdF90ZWFyZG93bihzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KVxcbm5ldC9kc2EvY29uZHVpdC5jLTQ3NS17XFxubmV0L2RzYS9jb25kdWl0LmM6NDc2OlxcdHN5c2ZzX3JlbW92ZV9ncm91cChcXHUwMDI2ZGV2LVxcdTAwM2VkZXYua29iaiwgXFx1MDAyNmRzYV9ncm91cCk7XFxubmV0L2RzYS9jb25kdWl0LmM6NDc3OlxcdGRzYV9jb25kdWl0X2V0aHRvb2xfdGVhcmRvd24oZGV2KTtcXG5uZXQvZHNhL2NvbmR1aXQuYzo0Nzg6XFx0ZHNhX2NvbmR1aXRfcmVzZXRfbXR1KGRldik7XFxubmV0L2RzYS9jb25kdWl0LmM6NDc5OlxcdGRzYV9jb25kdWl0X3NldF9wcm9taXNjdWl0eShkZXYsIC0xKTtcXG5uZXQvZHNhL2NvbmR1aXQuYy00ODAtXFxubmV0L2RzYS9jb25kdWl0LmM6NDgxOlxcdGRldi1cXHUwMDNlZHNhX3B0ciA9IE5VTEw7XFxubmV0L2RzYS9jb25kdWl0LmMtNDgyLVxcbi0tXFxubmV0L2RzYS9jb25kdWl0LmMtNDg5LVxcbm5ldC9kc2EvY29uZHVpdC5jOjQ5MDppbnQgZHNhX2NvbmR1aXRfbGFnX3NldHVwKHN0cnVjdCBuZXRfZGV2aWNlICpsYWdfZGV2LCBzdHJ1Y3QgZHNhX3BvcnQgKmNwdV9kcCxcXG5uZXQvZHNhL2NvbmR1aXQuYy00OTEtXFx0XFx0XFx0ICBzdHJ1Y3QgbmV0ZGV2X2xhZ191cHBlcl9pbmZvICp1aW5mbyxcXG4tLVxcbm5ldC9kc2EvY29uZHVpdC5jLTQ5Ni1cXG5uZXQvZHNhL2NvbmR1aXQuYzo0OTc6XFx0aWYgKCFuZXRkZXZfdXNlc19kc2EobGFnX2RldikpIHtcXG5uZXQvZHNhL2NvbmR1aXQuYzo0OTg6XFx0XFx0ZXJyID0gZHNhX2NvbmR1aXRfc2V0dXAobGFnX2RldiwgY3B1X2RwKTtcXG5uZXQvZHNhL2NvbmR1aXQuYy00OTktXFx0XFx0aWYgKGVycilcXG4tLVxcbm5ldC9kc2EvY29uZHVpdC5jLTUwNC1cXG5uZXQvZHNhL2NvbmR1aXQuYzo1MDU6XFx0ZXJyID0gZHNhX3BvcnRfbGFnX2pvaW4oY3B1X2RwLCBsYWdfZGV2LCB1aW5mbywgZXh0YWNrKTtcXG5uZXQvZHNhL2NvbmR1aXQuYy01MDYtXFx0aWYgKGVycikge1xcbi0tXFxubmV0L2RzYS9jb25kdWl0LmMtNTE0LVxcdGlmIChjb25kdWl0X3NldHVwKVxcbm5ldC9kc2EvY29uZHVpdC5jOjUxNTpcXHRcXHRkc2FfY29uZHVpdF90ZWFyZG93bihsYWdfZGV2KTtcXG5uZXQvZHNhL2NvbmR1aXQuYy01MTYtXFx0cmV0dXJuIGVycjtcXG4tLVxcbm5ldC9kc2EvY29uZHVpdC5jLTUyMS0gKi9cXG5uZXQvZHNhL2NvbmR1aXQuYzo1MjI6dm9pZCBkc2FfY29uZHVpdF9sYWdfdGVhcmRvd24oc3RydWN0IG5ldF9kZXZpY2UgKmxhZ19kZXYsXFxubmV0L2RzYS9jb25kdWl0LmM6NTIzOlxcdFxcdFxcdCAgICAgIHN0cnVjdCBkc2FfcG9ydCAqY3B1X2RwKVxcbm5ldC9kc2EvY29uZHVpdC5jLTUyNC17XFxuLS1cXG5uZXQvZHNhL2NvbmR1aXQuYy01MjctXFxubmV0L2RzYS9jb25kdWl0LmM6NTI4OlxcdGRzYV9wb3J0X2xhZ19sZWF2ZShjcHVfZHAsIGxhZ19kZXYpO1xcbm5ldC9kc2EvY29uZHVpdC5jLTUyOS1cXG5uZXQvZHNhL2NvbmR1aXQuYy01MzAtXFx0bmV0ZGV2X2Zvcl9lYWNoX3VwcGVyX2Rldl9yY3UobGFnX2RldiwgdXBwZXIsIGl0ZXIpXFxubmV0L2RzYS9jb25kdWl0LmM6NTMxOlxcdFxcdGlmIChkc2FfdXNlcl9kZXZfY2hlY2sodXBwZXIpKVxcbm5ldC9kc2EvY29uZHVpdC5jLTUzMi1cXHRcXHRcXHRyZXR1cm47XFxubmV0L2RzYS9jb25kdWl0LmMtNTMzLVxcbm5ldC9kc2EvY29uZHVpdC5jOjUzNDpcXHRkc2FfY29uZHVpdF90ZWFyZG93bihsYWdfZGV2KTtcXG5uZXQvZHNhL2NvbmR1aXQuYy01MzUtfVxcbi0tXFxubmV0L2RzYS9jb25kdWl0LmgtNS1cXG5uZXQvZHNhL2NvbmR1aXQuaDo2OnN0cnVjdCBkc2FfcG9ydDtcXG5uZXQvZHNhL2NvbmR1aXQuaC03LXN0cnVjdCBuZXRfZGV2aWNlO1xcbi0tXFxubmV0L2RzYS9jb25kdWl0Lmg9OT1zdHJ1Y3QgbmV0bGlua19leHRfYWNrO1xcbm5ldC9kc2EvY29uZHVpdC5oLTEwLVxcbm5ldC9kc2EvY29uZHVpdC5oOjExOmludCBkc2FfY29uZHVpdF9zZXR1cChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBzdHJ1Y3QgZHNhX3BvcnQgKmNwdV9kcCk7XFxubmV0L2RzYS9jb25kdWl0Lmg6MTI6dm9pZCBkc2FfY29uZHVpdF90ZWFyZG93bihzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KTtcXG5uZXQvZHNhL2NvbmR1aXQuaDoxMzppbnQgZHNhX2NvbmR1aXRfbGFnX3NldHVwKHN0cnVjdCBuZXRfZGV2aWNlICpsYWdfZGV2LCBzdHJ1Y3QgZHNhX3BvcnQgKmNwdV9kcCxcXG5uZXQvZHNhL2NvbmR1aXQuaC0xNC1cXHRcXHRcXHQgIHN0cnVjdCBuZXRkZXZfbGFnX3VwcGVyX2luZm8gKnVpbmZvLFxcbm5ldC9kc2EvY29uZHVpdC5oLTE1LVxcdFxcdFxcdCAgc3RydWN0IG5ldGxpbmtfZXh0X2FjayAqZXh0YWNrKTtcXG5uZXQvZHNhL2NvbmR1aXQuaDoxNjp2b2lkIGRzYV9jb25kdWl0X2xhZ190ZWFyZG93bihzdHJ1Y3QgbmV0X2RldmljZSAqbGFnX2RldixcXG5uZXQvZHNhL2NvbmR1aXQuaDoxNzpcXHRcXHRcXHQgICAgICBzdHJ1Y3QgZHNhX3BvcnQgKmNwdV9kcCk7XFxubmV0L2RzYS9jb25kdWl0Lmg6MTg6aW50IF9fZHNhX2NvbmR1aXRfaHd0c3RhbXBfdmFsaWRhdGUoc3RydWN0IG5ldF9kZXZpY2UgKmRldixcXG5uZXQvZHNhL2NvbmR1aXQuaC0xOS1cXHRcXHRcXHRcXHQgICAgY29uc3Qgc3RydWN0IGtlcm5lbF9od3RzdGFtcF9jb25maWcgKmNvbmZpZyxcXG4tLVxcbm5ldC9kc2EvZGV2bGluay5jLTUtXFxubmV0L2RzYS9kZXZsaW5rLmM6NjojaW5jbHVkZSBcXHUwMDNjbmV0L2RzYS5oXFx1MDAzZVxcbm5ldC9kc2EvZGV2bGluay5jLTctI2luY2x1ZGUgXFx1MDAzY25ldC9kZXZsaW5rLmhcXHUwMDNlXFxuLS1cXG5uZXQvZHNhL2RldmxpbmsuYy0xMC1cXG5uZXQvZHNhL2RldmxpbmsuYzoxMTpzdGF0aWMgaW50IGRzYV9kZXZsaW5rX2luZm9fZ2V0KHN0cnVjdCBkZXZsaW5rICpkbCxcXG5uZXQvZHNhL2RldmxpbmsuYy0xMi1cXHRcXHRcXHRcXHRzdHJ1Y3QgZGV2bGlua19pbmZvX3JlcSAqcmVxLFxcbi0tXFxubmV0L2RzYS9kZXZsaW5rLmMtMTQte1xcbm5ldC9kc2EvZGV2bGluay5jOjE1OlxcdHN0cnVjdCBkc2Ffc3dpdGNoICpkcyA9IGRzYV9kZXZsaW5rX3RvX2RzKGRsKTtcXG5uZXQvZHNhL2RldmxpbmsuYy0xNi1cXG4tLVxcbm5ldC9kc2EvZGV2bGluay5jLTIyLVxcbm5ldC9kc2EvZGV2bGluay5jOjIzOnN0YXRpYyBpbnQgZHNhX2Rldmxpbmtfc2JfcG9vbF9nZXQoc3RydWN0IGRldmxpbmsgKmRsLFxcbm5ldC9kc2EvZGV2bGluay5jLTI0LVxcdFxcdFxcdFxcdCAgIHVuc2lnbmVkIGludCBzYl9pbmRleCwgdTE2IHBvb2xfaW5kZXgsXFxuLS1cXG5uZXQvZHNhL2RldmxpbmsuYy0yNi17XFxubmV0L2RzYS9kZXZsaW5rLmM6Mjc6XFx0c3RydWN0IGRzYV9zd2l0Y2ggKmRzID0gZHNhX2RldmxpbmtfdG9fZHMoZGwpO1xcbm5ldC9kc2EvZGV2bGluay5jLTI4LVxcbi0tXFxubmV0L2RzYS9kZXZsaW5rLmMtMzUtXFxubmV0L2RzYS9kZXZsaW5rLmM6MzY6c3RhdGljIGludCBkc2FfZGV2bGlua19zYl9wb29sX3NldChzdHJ1Y3QgZGV2bGluayAqZGwsIHVuc2lnbmVkIGludCBzYl9pbmRleCxcXG5uZXQvZHNhL2RldmxpbmsuYy0zNy1cXHRcXHRcXHRcXHQgICB1MTYgcG9vbF9pbmRleCwgdTMyIHNpemUsXFxuLS1cXG5uZXQvZHNhL2RldmxpbmsuYy00MC17XFxubmV0L2RzYS9kZXZsaW5rLmM6NDE6XFx0c3RydWN0IGRzYV9zd2l0Y2ggKmRzID0gZHNhX2RldmxpbmtfdG9fZHMoZGwpO1xcbm5ldC9kc2EvZGV2bGluay5jLTQyLVxcbi0tXFxubmV0L2RzYS9kZXZsaW5rLmMtNDktXFxubmV0L2RzYS9kZXZsaW5rLmM6NTA6c3RhdGljIGludCBkc2FfZGV2bGlua19zYl9wb3J0X3Bvb2xfZ2V0KHN0cnVjdCBkZXZsaW5rX3BvcnQgKmRscCxcXG5uZXQvZHNhL2RldmxpbmsuYy01MS1cXHRcXHRcXHRcXHRcXHR1bnNpZ25lZCBpbnQgc2JfaW5kZXgsIHUxNiBwb29sX2luZGV4LFxcbi0tXFxubmV0L2RzYS9kZXZsaW5rLmMtNTMte1xcbm5ldC9kc2EvZGV2bGluay5jOjU0OlxcdHN0cnVjdCBkc2Ffc3dpdGNoICpkcyA9IGRzYV9kZXZsaW5rX3BvcnRfdG9fZHMoZGxwKTtcXG5uZXQvZHNhL2RldmxpbmsuYzo1NTpcXHRpbnQgcG9ydCA9IGRzYV9kZXZsaW5rX3BvcnRfdG9fcG9ydChkbHApO1xcbm5ldC9kc2EvZGV2bGluay5jLTU2LVxcbi0tXFxubmV0L2RzYS9kZXZsaW5rLmMtNjMtXFxubmV0L2RzYS9kZXZsaW5rLmM6NjQ6c3RhdGljIGludCBkc2FfZGV2bGlua19zYl9wb3J0X3Bvb2xfc2V0KHN0cnVjdCBkZXZsaW5rX3BvcnQgKmRscCxcXG5uZXQvZHNhL2RldmxpbmsuYy02NS1cXHRcXHRcXHRcXHRcXHR1bnNpZ25lZCBpbnQgc2JfaW5kZXgsIHUxNiBwb29sX2luZGV4LFxcbi0tXFxubmV0L2RzYS9kZXZsaW5rLmMtNjgte1xcbm5ldC9kc2EvZGV2bGluay5jOjY5OlxcdHN0cnVjdCBkc2Ffc3dpdGNoICpkcyA9IGRzYV9kZXZsaW5rX3BvcnRfdG9fZHMoZGxwKTtcXG5uZXQvZHNhL2RldmxpbmsuYzo3MDpcXHRpbnQgcG9ydCA9IGRzYV9kZXZsaW5rX3BvcnRfdG9fcG9ydChkbHApO1xcbm5ldC9kc2EvZGV2bGluay5jLTcxLVxcbi0tXFxubmV0L2RzYS9kZXZsaW5rLmM9Nzk9c3RhdGljIGludFxcbm5ldC9kc2EvZGV2bGluay5jOjgwOmRzYV9kZXZsaW5rX3NiX3RjX3Bvb2xfYmluZF9nZXQoc3RydWN0IGRldmxpbmtfcG9ydCAqZGxwLFxcbm5ldC9kc2EvZGV2bGluay5jLTgxLVxcdFxcdFxcdFxcdHVuc2lnbmVkIGludCBzYl9pbmRleCwgdTE2IHRjX2luZGV4LFxcbi0tXFxubmV0L2RzYS9kZXZsaW5rLmMtODQte1xcbm5ldC9kc2EvZGV2bGluay5jOjg1OlxcdHN0cnVjdCBkc2Ffc3dpdGNoICpkcyA9IGRzYV9kZXZsaW5rX3BvcnRfdG9fZHMoZGxwKTtcXG5uZXQvZHNhL2RldmxpbmsuYzo4NjpcXHRpbnQgcG9ydCA9IGRzYV9kZXZsaW5rX3BvcnRfdG9fcG9ydChkbHApO1xcbm5ldC9kc2EvZGV2bGluay5jLTg3LVxcbi0tXFxubmV0L2RzYS9kZXZsaW5rLmM9OTY9c3RhdGljIGludFxcbm5ldC9kc2EvZGV2bGluay5jOjk3OmRzYV9kZXZsaW5rX3NiX3RjX3Bvb2xfYmluZF9zZXQoc3RydWN0IGRldmxpbmtfcG9ydCAqZGxwLFxcbm5ldC9kc2EvZGV2bGluay5jLTk4LVxcdFxcdFxcdFxcdHVuc2lnbmVkIGludCBzYl9pbmRleCwgdTE2IHRjX2luZGV4LFxcbi0tXFxubmV0L2RzYS9kZXZsaW5rLmMtMTAyLXtcXG5uZXQvZHNhL2RldmxpbmsuYzoxMDM6XFx0c3RydWN0IGRzYV9zd2l0Y2ggKmRzID0gZHNhX2RldmxpbmtfcG9ydF90b19kcyhkbHApO1xcbm5ldC9kc2EvZGV2bGluay5jOjEwNDpcXHRpbnQgcG9ydCA9IGRzYV9kZXZsaW5rX3BvcnRfdG9fcG9ydChkbHApO1xcbm5ldC9kc2EvZGV2bGluay5jLTEwNS1cXG4tLVxcbm5ldC9kc2EvZGV2bGluay5jLTExNC1cXG5uZXQvZHNhL2RldmxpbmsuYzoxMTU6c3RhdGljIGludCBkc2FfZGV2bGlua19zYl9vY2Nfc25hcHNob3Qoc3RydWN0IGRldmxpbmsgKmRsLFxcbm5ldC9kc2EvZGV2bGluay5jLTExNi1cXHRcXHRcXHRcXHQgICAgICAgdW5zaWduZWQgaW50IHNiX2luZGV4KVxcbm5ldC9kc2EvZGV2bGluay5jLTExNy17XFxubmV0L2RzYS9kZXZsaW5rLmM6MTE4OlxcdHN0cnVjdCBkc2Ffc3dpdGNoICpkcyA9IGRzYV9kZXZsaW5rX3RvX2RzKGRsKTtcXG5uZXQvZHNhL2RldmxpbmsuYy0xMTktXFxuLS1cXG5uZXQvZHNhL2RldmxpbmsuYy0xMjUtXFxubmV0L2RzYS9kZXZsaW5rLmM6MTI2OnN0YXRpYyBpbnQgZHNhX2Rldmxpbmtfc2Jfb2NjX21heF9jbGVhcihzdHJ1Y3QgZGV2bGluayAqZGwsXFxubmV0L2RzYS9kZXZsaW5rLmMtMTI3LVxcdFxcdFxcdFxcdFxcdHVuc2lnbmVkIGludCBzYl9pbmRleClcXG5uZXQvZHNhL2RldmxpbmsuYy0xMjgte1xcbm5ldC9kc2EvZGV2bGluay5jOjEyOTpcXHRzdHJ1Y3QgZHNhX3N3aXRjaCAqZHMgPSBkc2FfZGV2bGlua190b19kcyhkbCk7XFxubmV0L2RzYS9kZXZsaW5rLmMtMTMwLVxcbi0tXFxubmV0L2RzYS9kZXZsaW5rLmMtMTM2LVxcbm5ldC9kc2EvZGV2bGluay5jOjEzNzpzdGF0aWMgaW50IGRzYV9kZXZsaW5rX3NiX29jY19wb3J0X3Bvb2xfZ2V0KHN0cnVjdCBkZXZsaW5rX3BvcnQgKmRscCxcXG5uZXQvZHNhL2RldmxpbmsuYy0xMzgtXFx0XFx0XFx0XFx0XFx0ICAgIHVuc2lnbmVkIGludCBzYl9pbmRleCxcXG4tLVxcbm5ldC9kc2EvZGV2bGluay5jLTE0MS17XFxubmV0L2RzYS9kZXZsaW5rLmM6MTQyOlxcdHN0cnVjdCBkc2Ffc3dpdGNoICpkcyA9IGRzYV9kZXZsaW5rX3BvcnRfdG9fZHMoZGxwKTtcXG5uZXQvZHNhL2RldmxpbmsuYzoxNDM6XFx0aW50IHBvcnQgPSBkc2FfZGV2bGlua19wb3J0X3RvX3BvcnQoZGxwKTtcXG5uZXQvZHNhL2RldmxpbmsuYy0xNDQtXFxuLS1cXG5uZXQvZHNhL2RldmxpbmsuYz0xNTI9c3RhdGljIGludFxcbm5ldC9kc2EvZGV2bGluay5jOjE1Mzpkc2FfZGV2bGlua19zYl9vY2NfdGNfcG9ydF9iaW5kX2dldChzdHJ1Y3QgZGV2bGlua19wb3J0ICpkbHAsXFxubmV0L2RzYS9kZXZsaW5rLmMtMTU0LVxcdFxcdFxcdFxcdCAgICB1bnNpZ25lZCBpbnQgc2JfaW5kZXgsIHUxNiB0Y19pbmRleCxcXG4tLVxcbm5ldC9kc2EvZGV2bGluay5jLTE1Ny17XFxubmV0L2RzYS9kZXZsaW5rLmM6MTU4OlxcdHN0cnVjdCBkc2Ffc3dpdGNoICpkcyA9IGRzYV9kZXZsaW5rX3BvcnRfdG9fZHMoZGxwKTtcXG5uZXQvZHNhL2RldmxpbmsuYzoxNTk6XFx0aW50IHBvcnQgPSBkc2FfZGV2bGlua19wb3J0X3RvX3BvcnQoZGxwKTtcXG5uZXQvZHNhL2RldmxpbmsuYy0xNjAtXFxuLS1cXG5uZXQvZHNhL2RldmxpbmsuYy0xNjktXFxubmV0L2RzYS9kZXZsaW5rLmM6MTcwOnN0YXRpYyBjb25zdCBzdHJ1Y3QgZGV2bGlua19vcHMgZHNhX2Rldmxpbmtfb3BzID0ge1xcbm5ldC9kc2EvZGV2bGluay5jOjE3MTpcXHQuaW5mb19nZXRcXHRcXHRcXHQ9IGRzYV9kZXZsaW5rX2luZm9fZ2V0LFxcbm5ldC9kc2EvZGV2bGluay5jOjE3MjpcXHQuc2JfcG9vbF9nZXRcXHRcXHRcXHQ9IGRzYV9kZXZsaW5rX3NiX3Bvb2xfZ2V0LFxcbm5ldC9kc2EvZGV2bGluay5jOjE3MzpcXHQuc2JfcG9vbF9zZXRcXHRcXHRcXHQ9IGRzYV9kZXZsaW5rX3NiX3Bvb2xfc2V0LFxcbm5ldC9kc2EvZGV2bGluay5jOjE3NDpcXHQuc2JfcG9ydF9wb29sX2dldFxcdFxcdD0gZHNhX2Rldmxpbmtfc2JfcG9ydF9wb29sX2dldCxcXG5uZXQvZHNhL2RldmxpbmsuYzoxNzU6XFx0LnNiX3BvcnRfcG9vbF9zZXRcXHRcXHQ9IGRzYV9kZXZsaW5rX3NiX3BvcnRfcG9vbF9zZXQsXFxubmV0L2RzYS9kZXZsaW5rLmM6MTc2OlxcdC5zYl90Y19wb29sX2JpbmRfZ2V0XFx0XFx0PSBkc2FfZGV2bGlua19zYl90Y19wb29sX2JpbmRfZ2V0LFxcbm5ldC9kc2EvZGV2bGluay5jOjE3NzpcXHQuc2JfdGNfcG9vbF9iaW5kX3NldFxcdFxcdD0gZHNhX2Rldmxpbmtfc2JfdGNfcG9vbF9iaW5kX3NldCxcXG5uZXQvZHNhL2RldmxpbmsuYzoxNzg6XFx0LnNiX29jY19zbmFwc2hvdFxcdFxcdD0gZHNhX2Rldmxpbmtfc2Jfb2NjX3NuYXBzaG90LFxcbm5ldC9kc2EvZGV2bGluay5jOjE3OTpcXHQuc2Jfb2NjX21heF9jbGVhclxcdFxcdD0gZHNhX2Rldmxpbmtfc2Jfb2NjX21heF9jbGVhcixcXG5uZXQvZHNhL2RldmxpbmsuYzoxODA6XFx0LnNiX29jY19wb3J0X3Bvb2xfZ2V0XFx0XFx0PSBkc2FfZGV2bGlua19zYl9vY2NfcG9ydF9wb29sX2dldCxcXG5uZXQvZHNhL2RldmxpbmsuYzoxODE6XFx0LnNiX29jY190Y19wb3J0X2JpbmRfZ2V0XFx0PSBkc2FfZGV2bGlua19zYl9vY2NfdGNfcG9ydF9iaW5kX2dldCxcXG5uZXQvZHNhL2RldmxpbmsuYy0xODItfTtcXG5uZXQvZHNhL2RldmxpbmsuYy0xODMtXFxubmV0L2RzYS9kZXZsaW5rLmM6MTg0OmludCBkc2FfZGV2bGlua19wYXJhbV9nZXQoc3RydWN0IGRldmxpbmsgKmRsLCB1MzIgaWQsXFxubmV0L2RzYS9kZXZsaW5rLmMtMTg1LVxcdFxcdFxcdCAgc3RydWN0IGRldmxpbmtfcGFyYW1fZ3NldF9jdHggKmN0eCxcXG4tLVxcbm5ldC9kc2EvZGV2bGluay5jLTE4Ny17XFxubmV0L2RzYS9kZXZsaW5rLmM6MTg4OlxcdHN0cnVjdCBkc2Ffc3dpdGNoICpkcyA9IGRzYV9kZXZsaW5rX3RvX2RzKGRsKTtcXG5uZXQvZHNhL2RldmxpbmsuYy0xODktXFxuLS1cXG5uZXQvZHNhL2RldmxpbmsuYy0xOTQtfVxcbm5ldC9kc2EvZGV2bGluay5jOjE5NTpFWFBPUlRfU1lNQk9MX0dQTChkc2FfZGV2bGlua19wYXJhbV9nZXQpO1xcbm5ldC9kc2EvZGV2bGluay5jLTE5Ni1cXG5uZXQvZHNhL2RldmxpbmsuYzoxOTc6aW50IGRzYV9kZXZsaW5rX3BhcmFtX3NldChzdHJ1Y3QgZGV2bGluayAqZGwsIHUzMiBpZCxcXG5uZXQvZHNhL2RldmxpbmsuYy0xOTgtXFx0XFx0XFx0ICBzdHJ1Y3QgZGV2bGlua19wYXJhbV9nc2V0X2N0eCAqY3R4LFxcbi0tXFxubmV0L2RzYS9kZXZsaW5rLmMtMjAwLXtcXG5uZXQvZHNhL2RldmxpbmsuYzoyMDE6XFx0c3RydWN0IGRzYV9zd2l0Y2ggKmRzID0gZHNhX2RldmxpbmtfdG9fZHMoZGwpO1xcbm5ldC9kc2EvZGV2bGluay5jLTIwMi1cXG4tLVxcbm5ldC9kc2EvZGV2bGluay5jLTIwNy19XFxubmV0L2RzYS9kZXZsaW5rLmM6MjA4OkVYUE9SVF9TWU1CT0xfR1BMKGRzYV9kZXZsaW5rX3BhcmFtX3NldCk7XFxubmV0L2RzYS9kZXZsaW5rLmMtMjA5LVxcbm5ldC9kc2EvZGV2bGluay5jOjIxMDppbnQgZHNhX2RldmxpbmtfcGFyYW1zX3JlZ2lzdGVyKHN0cnVjdCBkc2Ffc3dpdGNoICpkcyxcXG5uZXQvZHNhL2RldmxpbmsuYy0yMTEtXFx0XFx0XFx0XFx0Y29uc3Qgc3RydWN0IGRldmxpbmtfcGFyYW0gKnBhcmFtcyxcXG4tLVxcbm5ldC9kc2EvZGV2bGluay5jLTIxNS19XFxubmV0L2RzYS9kZXZsaW5rLmM6MjE2OkVYUE9SVF9TWU1CT0xfR1BMKGRzYV9kZXZsaW5rX3BhcmFtc19yZWdpc3Rlcik7XFxubmV0L2RzYS9kZXZsaW5rLmMtMjE3LVxcbm5ldC9kc2EvZGV2bGluay5jOjIxODp2b2lkIGRzYV9kZXZsaW5rX3BhcmFtc191bnJlZ2lzdGVyKHN0cnVjdCBkc2Ffc3dpdGNoICpkcyxcXG5uZXQvZHNhL2RldmxpbmsuYy0yMTktXFx0XFx0XFx0XFx0ICAgY29uc3Qgc3RydWN0IGRldmxpbmtfcGFyYW0gKnBhcmFtcyxcXG4tLVxcbm5ldC9kc2EvZGV2bGluay5jLTIyMy19XFxubmV0L2RzYS9kZXZsaW5rLmM6MjI0OkVYUE9SVF9TWU1CT0xfR1BMKGRzYV9kZXZsaW5rX3BhcmFtc191bnJlZ2lzdGVyKTtcXG5uZXQvZHNhL2RldmxpbmsuYy0yMjUtXFxubmV0L2RzYS9kZXZsaW5rLmM6MjI2OmludCBkc2FfZGV2bGlua19yZXNvdXJjZV9yZWdpc3RlcihzdHJ1Y3QgZHNhX3N3aXRjaCAqZHMsXFxubmV0L2RzYS9kZXZsaW5rLmMtMjI3LVxcdFxcdFxcdFxcdCAgY29uc3QgY2hhciAqcmVzb3VyY2VfbmFtZSxcXG4tLVxcbm5ldC9kc2EvZGV2bGluay5jLTI0Mi19XFxubmV0L2RzYS9kZXZsaW5rLmM6MjQzOkVYUE9SVF9TWU1CT0xfR1BMKGRzYV9kZXZsaW5rX3Jlc291cmNlX3JlZ2lzdGVyKTtcXG5uZXQvZHNhL2RldmxpbmsuYy0yNDQtXFxubmV0L2RzYS9kZXZsaW5rLmM6MjQ1OnZvaWQgZHNhX2RldmxpbmtfcmVzb3VyY2VzX3VucmVnaXN0ZXIoc3RydWN0IGRzYV9zd2l0Y2ggKmRzKVxcbm5ldC9kc2EvZGV2bGluay5jLTI0Ni17XFxuLS1cXG5uZXQvZHNhL2RldmxpbmsuYy0yNDgtfVxcbm5ldC9kc2EvZGV2bGluay5jOjI0OTpFWFBPUlRfU1lNQk9MX0dQTChkc2FfZGV2bGlua19yZXNvdXJjZXNfdW5yZWdpc3Rlcik7XFxubmV0L2RzYS9kZXZsaW5rLmMtMjUwLVxcbm5ldC9kc2EvZGV2bGluay5jOjI1MTp2b2lkIGRzYV9kZXZsaW5rX3Jlc291cmNlX29jY19nZXRfcmVnaXN0ZXIoc3RydWN0IGRzYV9zd2l0Y2ggKmRzLFxcbm5ldC9kc2EvZGV2bGluay5jLTI1Mi1cXHRcXHRcXHRcXHRcXHQgICB1NjQgcmVzb3VyY2VfaWQsXFxuLS1cXG5uZXQvZHNhL2RldmxpbmsuYy0yNjAtfVxcbm5ldC9kc2EvZGV2bGluay5jOjI2MTpFWFBPUlRfU1lNQk9MX0dQTChkc2FfZGV2bGlua19yZXNvdXJjZV9vY2NfZ2V0X3JlZ2lzdGVyKTtcXG5uZXQvZHNhL2RldmxpbmsuYy0yNjItXFxubmV0L2RzYS9kZXZsaW5rLmM6MjYzOnZvaWQgZHNhX2RldmxpbmtfcmVzb3VyY2Vfb2NjX2dldF91bnJlZ2lzdGVyKHN0cnVjdCBkc2Ffc3dpdGNoICpkcyxcXG5uZXQvZHNhL2RldmxpbmsuYy0yNjQtXFx0XFx0XFx0XFx0XFx0ICAgICB1NjQgcmVzb3VyY2VfaWQpXFxuLS1cXG5uZXQvZHNhL2RldmxpbmsuYy0yNjktfVxcbm5ldC9kc2EvZGV2bGluay5jOjI3MDpFWFBPUlRfU1lNQk9MX0dQTChkc2FfZGV2bGlua19yZXNvdXJjZV9vY2NfZ2V0X3VucmVnaXN0ZXIpO1xcbm5ldC9kc2EvZGV2bGluay5jLTI3MS1cXG5uZXQvZHNhL2RldmxpbmsuYz0yNzI9c3RydWN0IGRldmxpbmtfcmVnaW9uICpcXG5uZXQvZHNhL2RldmxpbmsuYzoyNzM6ZHNhX2RldmxpbmtfcmVnaW9uX2NyZWF0ZShzdHJ1Y3QgZHNhX3N3aXRjaCAqZHMsXFxubmV0L2RzYS9kZXZsaW5rLmMtMjc0LVxcdFxcdFxcdCAgY29uc3Qgc3RydWN0IGRldmxpbmtfcmVnaW9uX29wcyAqb3BzLFxcbi0tXFxubmV0L2RzYS9kZXZsaW5rLmMtMjc5LX1cXG5uZXQvZHNhL2RldmxpbmsuYzoyODA6RVhQT1JUX1NZTUJPTF9HUEwoZHNhX2RldmxpbmtfcmVnaW9uX2NyZWF0ZSk7XFxubmV0L2RzYS9kZXZsaW5rLmMtMjgxLVxcbm5ldC9kc2EvZGV2bGluay5jPTI4Mj1zdHJ1Y3QgZGV2bGlua19yZWdpb24gKlxcbm5ldC9kc2EvZGV2bGluay5jOjI4Mzpkc2FfZGV2bGlua19wb3J0X3JlZ2lvbl9jcmVhdGUoc3RydWN0IGRzYV9zd2l0Y2ggKmRzLFxcbm5ldC9kc2EvZGV2bGluay5jLTI4NC1cXHRcXHRcXHQgICAgICAgaW50IHBvcnQsXFxuLS1cXG5uZXQvZHNhL2RldmxpbmsuYy0yODcte1xcbm5ldC9kc2EvZGV2bGluay5jOjI4ODpcXHRzdHJ1Y3QgZHNhX3BvcnQgKmRwID0gZHNhX3RvX3BvcnQoZHMsIHBvcnQpO1xcbm5ldC9kc2EvZGV2bGluay5jLTI4OS1cXG4tLVxcbm5ldC9kc2EvZGV2bGluay5jLTI5My19XFxubmV0L2RzYS9kZXZsaW5rLmM6Mjk0OkVYUE9SVF9TWU1CT0xfR1BMKGRzYV9kZXZsaW5rX3BvcnRfcmVnaW9uX2NyZWF0ZSk7XFxubmV0L2RzYS9kZXZsaW5rLmMtMjk1LVxcbm5ldC9kc2EvZGV2bGluay5jOjI5Njp2b2lkIGRzYV9kZXZsaW5rX3JlZ2lvbl9kZXN0cm95KHN0cnVjdCBkZXZsaW5rX3JlZ2lvbiAqcmVnaW9uKVxcbm5ldC9kc2EvZGV2bGluay5jLTI5Ny17XFxuLS1cXG5uZXQvZHNhL2RldmxpbmsuYy0yOTktfVxcbm5ldC9kc2EvZGV2bGluay5jOjMwMDpFWFBPUlRfU1lNQk9MX0dQTChkc2FfZGV2bGlua19yZWdpb25fZGVzdHJveSk7XFxubmV0L2RzYS9kZXZsaW5rLmMtMzAxLVxcbm5ldC9kc2EvZGV2bGluay5jOjMwMjppbnQgZHNhX3BvcnRfZGV2bGlua19zZXR1cChzdHJ1Y3QgZHNhX3BvcnQgKmRwKVxcbm5ldC9kc2EvZGV2bGluay5jLTMwMy17XFxubmV0L2RzYS9kZXZsaW5rLmMtMzA0LVxcdHN0cnVjdCBkZXZsaW5rX3BvcnQgKmRscCA9IFxcdTAwMjZkcC1cXHUwMDNlZGV2bGlua19wb3J0O1xcbm5ldC9kc2EvZGV2bGluay5jOjMwNTpcXHRzdHJ1Y3QgZHNhX3N3aXRjaF90cmVlICpkc3QgPSBkcC1cXHUwMDNlZHMtXFx1MDAzZWRzdDtcXG5uZXQvZHNhL2RldmxpbmsuYy0zMDYtXFx0c3RydWN0IGRldmxpbmtfcG9ydF9hdHRycyBhdHRycyA9IHt9O1xcbm5ldC9kc2EvZGV2bGluay5jLTMwNy1cXHRzdHJ1Y3QgZGV2bGluayAqZGwgPSBkcC1cXHUwMDNlZHMtXFx1MDAzZWRldmxpbms7XFxubmV0L2RzYS9kZXZsaW5rLmM6MzA4OlxcdHN0cnVjdCBkc2Ffc3dpdGNoICpkcyA9IGRwLVxcdTAwM2VkcztcXG5uZXQvZHNhL2RldmxpbmsuYy0zMDktXFx0Y29uc3QgdW5zaWduZWQgY2hhciAqaWQ7XFxuLS1cXG5uZXQvZHNhL2RldmxpbmsuYy0zNTQtXFxubmV0L2RzYS9kZXZsaW5rLmM6MzU1OnZvaWQgZHNhX3BvcnRfZGV2bGlua190ZWFyZG93bihzdHJ1Y3QgZHNhX3BvcnQgKmRwKVxcbm5ldC9kc2EvZGV2bGluay5jLTM1Ni17XFxubmV0L2RzYS9kZXZsaW5rLmMtMzU3LVxcdHN0cnVjdCBkZXZsaW5rX3BvcnQgKmRscCA9IFxcdTAwMjZkcC1cXHUwMDNlZGV2bGlua19wb3J0O1xcblxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yMFQyMDo0ODoxNC43MzI5NjU1NDZaIiwiU2VxIjoyOSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NzQ4NjY2MzEyNCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipNeSBMaW5lIG9mIFJlYXNvbmluZyoqXG5cbk9rYXksIGRlZXAgYnJlYXRoLiBMZXQncyBicmVhayB0aGlzIGRvd24uIERTQSDigJMgdGhhdCdzIGEgKmNvcmUqIHN1YnN5c3RlbS4gSW1wb3J0YW50IHN0dWZmLiBCdXQgc3BlY2lmaWNhbGx5LCB3ZSdyZSB0YWxraW5nIGFib3V0IHRoZSBgbXQ3NTMwYCBkcml2ZXIsIHdoaWNoLCBpZiBtZW1vcnkgc2VydmVzLCBpcyBNZWRpYVRlayBzcGVjaWZpYy4gQSBxdWljayBtZW50YWwgY2hlY2suLi4geWVhaCwgdGhhdCByaW5ncyB0cnVlLiBOb3csIHRoZSBwcm9ibGVtLiBJIGNhbid0IGZ1enogaXQgdW5sZXNzIEkgY2FuIGdldCBpdCBwcm9iZWQgaW4gYSB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudC4gVGhhdCdzIHRoZSBmaXJzdCBodXJkbGUuIENhbiBJIGV2ZW4gZ2V0IHRoaXMgdGhpbmcgcnVubmluZyBpbiBRRU1VP1xuXG4uLi5Obywgbm90IGRpcmVjdGx5LiBRRU1VIGRvZXNuJ3Qgc2VlbSB0byBoYXZlIG91dC1vZi10aGUtYm94IHN1cHBvcnQgZm9yIHRoZSBNZWRpYVRlayBNVDc1MzAgb3IgTVQ3NjIxIHN3aXRjaGVzLiBEYW1uLiBSaWdodCwgc28gdGhhdCBtZWFucyBJJ20gZ29pbmcgdG8gaGF2ZSB0byBkbyBzb21ldGhpbmcgZWxzZS5cblxuT2theSwgbGV0J3Mgc3RlcCBiYWNrLiBTeXprYWxsZXIuLi4gaXQncyBwb3dlcmZ1bCwgYnV0IGl0J3Mgbm90IGEgbWFnaWMgYnVsbGV0LiBJdCBkb2Vzbid0IGFsbG93IGFyYml0cmFyeSBoYXJkd2FyZSBpbmplY3Rpb24gdmlhIGRldmljZSB0cmVlIG5vZGVzIHVubGVzcyB0aGVyZSdzIGV4cGxpY2l0IHN1cHBvcnQuIFNvLCBteSBuZXh0IGxvZ2ljYWwgc3RlcCBpcyB0byBzZWUgaWYgSSBjYW4gZXZlbiBiZWdpbiB0byBpbmplY3QgdGhpcyBkZXZpY2UuIFRoZSBmaXJzdCB0aGluZyBJJ2xsIGNoZWNrIGlzIHRoZSBzeXprYWxsZXIgZGVzY3JpcHRpb25zLiBEbyB0aGV5IGhhdmUgYW55dGhpbmcgZm9yIGBtZWRpYXRlayxtdDc2MjFgIG9yIGBtZWRpYXRlayxtdDc1MzBgPyBJJ2xsIGNoZWNrIGFuZCBzZWUuIE1heWJlIHRoZXJlIGlzIHNvbWV0aGluZyBhbHJlYWR5IHNldCB1cCFcblxuXG4iLCJJbnB1dFRva2VucyI6MjQ4NDAsIk91dHB1dFRva2VucyI6MjgsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxNDYsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjBUMjA6NDg6MjIuMjE5NjMxOTNaIiwiU2VxIjozMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE1NDc3NDk4NzAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwibWVkaWF0ZWssbXQ3NjIxXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcIlwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJEb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvYnVzL3BhbG1idXMueWFtbD01Nj1leGFtcGxlczpcXG4tLVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9idXMvcGFsbWJ1cy55YW1sLTY5LSAgICAgICAgICAgICNpbnRlcnJ1cHQtY2VsbHMgPSBcXHUwMDNjMlxcdTAwM2U7XFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2J1cy9wYWxtYnVzLnlhbWw6NzA6ICAgICAgICAgICAgY29tcGF0aWJsZSA9IFxcXCJtZWRpYXRlayxtdDc2MjEtZ3Bpb1xcXCI7XFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2J1cy9wYWxtYnVzLnlhbWwtNzEtICAgICAgICAgICAgZ3Bpby1jb250cm9sbGVyO1xcbi0tXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2Nsb2NrL21lZGlhdGVrLG10NzYyMS1zeXNjLnlhbWwtMy0tLS1cXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvY2xvY2svbWVkaWF0ZWssbXQ3NjIxLXN5c2MueWFtbDo0OiRpZDogaHR0cDovL2RldmljZXRyZWUub3JnL3NjaGVtYXMvY2xvY2svbWVkaWF0ZWssbXQ3NjIxLXN5c2MueWFtbCNcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvY2xvY2svbWVkaWF0ZWssbXQ3NjIxLXN5c2MueWFtbC01LSRzY2hlbWE6IGh0dHA6Ly9kZXZpY2V0cmVlLm9yZy9tZXRhLXNjaGVtYXMvY29yZS55YW1sI1xcbi0tXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2Nsb2NrL21lZGlhdGVrLG10NzYyMS1zeXNjLnlhbWw9MzA9cHJvcGVydGllczpcXG4tLVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9jbG9jay9tZWRpYXRlayxtdDc2MjEtc3lzYy55YW1sLTMyLSAgICBpdGVtczpcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvY2xvY2svbWVkaWF0ZWssbXQ3NjIxLXN5c2MueWFtbDozMzogICAgICAtIGNvbnN0OiBtZWRpYXRlayxtdDc2MjEtc3lzY1xcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9jbG9jay9tZWRpYXRlayxtdDc2MjEtc3lzYy55YW1sLTM0LSAgICAgIC0gY29uc3Q6IHN5c2Nvblxcbi0tXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2Nsb2NrL21lZGlhdGVrLG10NzYyMS1zeXNjLnlhbWw9Njc9ZXhhbXBsZXM6XFxuLS1cXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvY2xvY2svbWVkaWF0ZWssbXQ3NjIxLXN5c2MueWFtbC03MS0gICAgc3lzYzogc3lzY0AwIHtcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvY2xvY2svbWVkaWF0ZWssbXQ3NjIxLXN5c2MueWFtbDo3MjogICAgICBjb21wYXRpYmxlID0gXFxcIm1lZGlhdGVrLG10NzYyMS1zeXNjXFxcIiwgXFxcInN5c2NvblxcXCI7XFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2Nsb2NrL21lZGlhdGVrLG10NzYyMS1zeXNjLnlhbWwtNzMtICAgICAgcmVnID0gXFx1MDAzYzB4MCAweDEwMFxcdTAwM2U7XFxuLS1cXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvZ3Bpby9tZWRpYXRlayxtdDc2MjEtZ3Bpby55YW1sLTMtLS0tXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2dwaW8vbWVkaWF0ZWssbXQ3NjIxLWdwaW8ueWFtbDo0OiRpZDogaHR0cDovL2RldmljZXRyZWUub3JnL3NjaGVtYXMvZ3Bpby9tZWRpYXRlayxtdDc2MjEtZ3Bpby55YW1sI1xcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9ncGlvL21lZGlhdGVrLG10NzYyMS1ncGlvLnlhbWwtNS0kc2NoZW1hOiBodHRwOi8vZGV2aWNldHJlZS5vcmcvbWV0YS1zY2hlbWFzL2NvcmUueWFtbCNcXG4tLVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9ncGlvL21lZGlhdGVrLG10NzYyMS1ncGlvLnlhbWw9MTk9cHJvcGVydGllczpcXG4tLVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9ncGlvL21lZGlhdGVrLG10NzYyMS1ncGlvLnlhbWwtMjMtICBjb21wYXRpYmxlOlxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9ncGlvL21lZGlhdGVrLG10NzYyMS1ncGlvLnlhbWw6MjQ6ICAgIGNvbnN0OiBtZWRpYXRlayxtdDc2MjEtZ3Bpb1xcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9ncGlvL21lZGlhdGVrLG10NzYyMS1ncGlvLnlhbWwtMjUtXFxuLS1cXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvZ3Bpby9tZWRpYXRlayxtdDc2MjEtZ3Bpby55YW1sPTU1PWV4YW1wbGVzOlxcbi0tXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2dwaW8vbWVkaWF0ZWssbXQ3NjIxLWdwaW8ueWFtbC02MC0gICAgZ3Bpb0A2MDAge1xcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9ncGlvL21lZGlhdGVrLG10NzYyMS1ncGlvLnlhbWw6NjE6ICAgICAgY29tcGF0aWJsZSA9IFxcXCJtZWRpYXRlayxtdDc2MjEtZ3Bpb1xcXCI7XFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2dwaW8vbWVkaWF0ZWssbXQ3NjIxLWdwaW8ueWFtbC02Mi0gICAgICByZWcgPSBcXHUwMDNjMHg2MDAgMHgxMDBcXHUwMDNlO1xcbi0tXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2kyYy9tZWRpYXRlayxtdDc2MjEtaTJjLnlhbWwtMy0tLS1cXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvaTJjL21lZGlhdGVrLG10NzYyMS1pMmMueWFtbDo0OiRpZDogaHR0cDovL2RldmljZXRyZWUub3JnL3NjaGVtYXMvaTJjL21lZGlhdGVrLG10NzYyMS1pMmMueWFtbCNcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvaTJjL21lZGlhdGVrLG10NzYyMS1pMmMueWFtbC01LSRzY2hlbWE6IGh0dHA6Ly9kZXZpY2V0cmVlLm9yZy9tZXRhLXNjaGVtYXMvY29yZS55YW1sI1xcbi0tXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2kyYy9tZWRpYXRlayxtdDc2MjEtaTJjLnlhbWw9MTU9cHJvcGVydGllczpcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvaTJjL21lZGlhdGVrLG10NzYyMS1pMmMueWFtbC0xNi0gIGNvbXBhdGlibGU6XFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2kyYy9tZWRpYXRlayxtdDc2MjEtaTJjLnlhbWw6MTc6ICAgIGNvbnN0OiBtZWRpYXRlayxtdDc2MjEtaTJjXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2kyYy9tZWRpYXRlayxtdDc2MjEtaTJjLnlhbWwtMTgtXFxuLS1cXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvaTJjL21lZGlhdGVrLG10NzYyMS1pMmMueWFtbD00Mz1leGFtcGxlczpcXG4tLVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9pMmMvbWVkaWF0ZWssbXQ3NjIxLWkyYy55YW1sLTQ4LSAgICBpMmM6IGkyY0A5MDAge1xcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9pMmMvbWVkaWF0ZWssbXQ3NjIxLWkyYy55YW1sOjQ5OiAgICAgIGNvbXBhdGlibGUgPSBcXFwibWVkaWF0ZWssbXQ3NjIxLWkyY1xcXCI7XFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2kyYy9tZWRpYXRlayxtdDc2MjEtaTJjLnlhbWwtNTAtICAgICAgcmVnID0gXFx1MDAzYzB4OTAwIDB4MTAwXFx1MDAzZTtcXG4tLVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9tZW1vcnktY29udHJvbGxlcnMvbWVkaWF0ZWssbXQ3NjIxLW1lbWMueWFtbC0zLS0tLVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9tZW1vcnktY29udHJvbGxlcnMvbWVkaWF0ZWssbXQ3NjIxLW1lbWMueWFtbDo0OiRpZDogaHR0cDovL2RldmljZXRyZWUub3JnL3NjaGVtYXMvbWVtb3J5LWNvbnRyb2xsZXJzL21lZGlhdGVrLG10NzYyMS1tZW1jLnlhbWwjXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL21lbW9yeS1jb250cm9sbGVycy9tZWRpYXRlayxtdDc2MjEtbWVtYy55YW1sLTUtJHNjaGVtYTogaHR0cDovL2RldmljZXRyZWUub3JnL21ldGEtc2NoZW1hcy9jb3JlLnlhbWwjXFxuLS1cXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbWVtb3J5LWNvbnRyb2xsZXJzL21lZGlhdGVrLG10NzYyMS1tZW1jLnlhbWw9MTI9cHJvcGVydGllczpcXG4tLVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9tZW1vcnktY29udHJvbGxlcnMvbWVkaWF0ZWssbXQ3NjIxLW1lbWMueWFtbC0xNC0gICAgaXRlbXM6XFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL21lbW9yeS1jb250cm9sbGVycy9tZWRpYXRlayxtdDc2MjEtbWVtYy55YW1sOjE1OiAgICAgIC0gY29uc3Q6IG1lZGlhdGVrLG10NzYyMS1tZW1jXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL21lbW9yeS1jb250cm9sbGVycy9tZWRpYXRlayxtdDc2MjEtbWVtYy55YW1sLTE2LSAgICAgIC0gY29uc3Q6IHN5c2Nvblxcbi0tXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL21lbW9yeS1jb250cm9sbGVycy9tZWRpYXRlayxtdDc2MjEtbWVtYy55YW1sPTI3PWV4YW1wbGVzOlxcbi0tXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL21lbW9yeS1jb250cm9sbGVycy9tZWRpYXRlayxtdDc2MjEtbWVtYy55YW1sLTI5LSAgICBtZW1vcnktY29udHJvbGxlckA1MDAwIHtcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbWVtb3J5LWNvbnRyb2xsZXJzL21lZGlhdGVrLG10NzYyMS1tZW1jLnlhbWw6MzA6ICAgICAgICBjb21wYXRpYmxlID0gXFxcIm1lZGlhdGVrLG10NzYyMS1tZW1jXFxcIiwgXFxcInN5c2NvblxcXCI7XFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL21lbW9yeS1jb250cm9sbGVycy9tZWRpYXRlayxtdDc2MjEtbWVtYy55YW1sLTMxLSAgICAgICAgcmVnID0gXFx1MDAzYzB4NTAwMCAweDEwMDBcXHUwMDNlO1xcbi0tXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL21pcHMvcmFsaW5rLnlhbWw9MTU9cHJvcGVydGllczpcXG4tLVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9taXBzL3JhbGluay55YW1sLTgzLSAgICAgICAgICAgICAgLSB0cGxpbmssaGMyMjAtZzUtdjFcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbWlwcy9yYWxpbmsueWFtbDo4NDogICAgICAgICAgLSBjb25zdDogbWVkaWF0ZWssbXQ3NjIxLXNvY1xcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9taXBzL3JhbGluay55YW1sLTg1LVxcbi0tXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9kc2EvbWVkaWF0ZWssbXQ3NTMwLnlhbWw9NzY9cHJvcGVydGllczpcXG4tLVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvZHNhL21lZGlhdGVrLG10NzUzMC55YW1sLTg4LSAgICAgICAgICBNdWx0aS1jaGlwIG1vZHVsZSBNVDc1MzAgaW4gTVQ3NjIxQVQsIE1UNzYyMURBVCBhbmQgTVQ3NjIxU1QgU29Dc1xcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvZHNhL21lZGlhdGVrLG10NzUzMC55YW1sOjg5OiAgICAgICAgY29uc3Q6IG1lZGlhdGVrLG10NzYyMVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvZHNhL21lZGlhdGVrLG10NzUzMC55YW1sLTkwLVxcbi0tXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9kc2EvbWVkaWF0ZWssbXQ3NTMwLnlhbWw9MjY5PWFsbE9mOlxcbi0tXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9kc2EvbWVkaWF0ZWssbXQ3NTMwLnlhbWwtMzA3LSAgICAgICAgY29tcGF0aWJsZTpcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2RzYS9tZWRpYXRlayxtdDc1MzAueWFtbDozMDg6ICAgICAgICAgIGNvbnN0OiBtZWRpYXRlayxtdDc2MjFcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2RzYS9tZWRpYXRlayxtdDc1MzAueWFtbC0zMDktICAgIHRoZW46XFxuLS1cXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2RzYS9tZWRpYXRlayxtdDc1MzAueWFtbD0zMzA9ZXhhbXBsZXM6XFxuLS1cXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2RzYS9tZWRpYXRlayxtdDc1MzAueWFtbC01MjgtICAgICAgICBzd2l0Y2hAMWYge1xcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvZHNhL21lZGlhdGVrLG10NzUzMC55YW1sOjUyOTogICAgICAgICAgICBjb21wYXRpYmxlID0gXFxcIm1lZGlhdGVrLG10NzYyMVxcXCI7XFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9kc2EvbWVkaWF0ZWssbXQ3NTMwLnlhbWwtNTMwLSAgICAgICAgICAgIHJlZyA9IFxcdTAwM2MweDFmXFx1MDAzZTtcXG4tLVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvZHNhL21lZGlhdGVrLG10NzUzMC55YW1sLTYxNC0gICAgICAgICAgICBzd2l0Y2hAMWYge1xcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvZHNhL21lZGlhdGVrLG10NzUzMC55YW1sOjYxNTogICAgICAgICAgICAgICAgY29tcGF0aWJsZSA9IFxcXCJtZWRpYXRlayxtdDc2MjFcXFwiO1xcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvZHNhL21lZGlhdGVrLG10NzUzMC55YW1sLTYxNi0gICAgICAgICAgICAgICAgcmVnID0gXFx1MDAzYzB4MWZcXHUwMDNlO1xcbi0tXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9kc2EvbWVkaWF0ZWssbXQ3NTMwLnlhbWwtNzA0LSAgICAgICAgICAgIHN3aXRjaEAxZiB7XFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9kc2EvbWVkaWF0ZWssbXQ3NTMwLnlhbWw6NzA1OiAgICAgICAgICAgICAgICBjb21wYXRpYmxlID0gXFxcIm1lZGlhdGVrLG10NzYyMVxcXCI7XFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9kc2EvbWVkaWF0ZWssbXQ3NTMwLnlhbWwtNzA2LSAgICAgICAgICAgICAgICByZWcgPSBcXHUwMDNjMHgxZlxcdTAwM2U7XFxuLS1cXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2RzYS9tZWRpYXRlayxtdDc1MzAueWFtbC03ODQtICAgICAgICAgICAgc3dpdGNoQDFmIHtcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2RzYS9tZWRpYXRlayxtdDc1MzAueWFtbDo3ODU6ICAgICAgICAgICAgICAgIGNvbXBhdGlibGUgPSBcXFwibWVkaWF0ZWssbXQ3NjIxXFxcIjtcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2RzYS9tZWRpYXRlayxtdDc1MzAueWFtbC03ODYtICAgICAgICAgICAgICAgIHJlZyA9IFxcdTAwM2MweDFmXFx1MDAzZTtcXG4tLVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvbWVkaWF0ZWssbmV0LnlhbWw9MTc9cHJvcGVydGllczpcXG4tLVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvbWVkaWF0ZWssbmV0LnlhbWwtMjEtICAgICAgLSBtZWRpYXRlayxtdDc2MjMtZXRoXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9tZWRpYXRlayxuZXQueWFtbDoyMjogICAgICAtIG1lZGlhdGVrLG10NzYyMS1ldGhcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L21lZGlhdGVrLG5ldC55YW1sLTIzLSAgICAgIC0gbWVkaWF0ZWssbXQ3NjIyLWV0aFxcbi0tXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9tZWRpYXRlayxuZXQueWFtbD0xMzg9YWxsT2Y6XFxuLS1cXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L21lZGlhdGVrLG5ldC55YW1sLTE4My0gICAgICAgICAgICBlbnVtOlxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvbWVkaWF0ZWssbmV0LnlhbWw6MTg0OiAgICAgICAgICAgICAgLSBtZWRpYXRlayxtdDc2MjEtZXRoXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9tZWRpYXRlayxuZXQueWFtbC0xODUtICAgIHRoZW46XFxuLS1cXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvcGNpL21lZGlhdGVrLG10NzYyMS1wY2llLnlhbWwtMy0tLS1cXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvcGNpL21lZGlhdGVrLG10NzYyMS1wY2llLnlhbWw6NDokaWQ6IGh0dHA6Ly9kZXZpY2V0cmVlLm9yZy9zY2hlbWFzL3BjaS9tZWRpYXRlayxtdDc2MjEtcGNpZS55YW1sI1xcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9wY2kvbWVkaWF0ZWssbXQ3NjIxLXBjaWUueWFtbC01LSRzY2hlbWE6IGh0dHA6Ly9kZXZpY2V0cmVlLm9yZy9tZXRhLXNjaGVtYXMvY29yZS55YW1sI1xcbi0tXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3BjaS9tZWRpYXRlayxtdDc2MjEtcGNpZS55YW1sPTQ4PXByb3BlcnRpZXM6XFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3BjaS9tZWRpYXRlayxtdDc2MjEtcGNpZS55YW1sLTQ5LSAgY29tcGF0aWJsZTpcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvcGNpL21lZGlhdGVrLG10NzYyMS1wY2llLnlhbWw6NTA6ICAgIGNvbnN0OiBtZWRpYXRlayxtdDc2MjEtcGNpXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3BjaS9tZWRpYXRlayxtdDc2MjEtcGNpZS55YW1sLTUxLVxcbi0tXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3BjaS9tZWRpYXRlayxtdDc2MjEtcGNpZS55YW1sPTEwNj1leGFtcGxlczpcXG4tLVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9wY2kvbWVkaWF0ZWssbXQ3NjIxLXBjaWUueWFtbC0xMTEtICAgIHBjaWU6IHBjaWVAMWUxNDAwMDAge1xcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9wY2kvbWVkaWF0ZWssbXQ3NjIxLXBjaWUueWFtbDoxMTI6ICAgICAgICBjb21wYXRpYmxlID0gXFxcIm1lZGlhdGVrLG10NzYyMS1wY2lcXFwiO1xcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9wY2kvbWVkaWF0ZWssbXQ3NjIxLXBjaWUueWFtbC0xMTMtICAgICAgICByZWcgPSBcXHUwMDNjMHgxZTE0MDAwMCAweDEwMFxcdTAwM2UsXFxuLS1cXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvcGh5L21lZGlhdGVrLG10NzYyMS1wY2ktcGh5LnlhbWwtMy0tLS1cXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvcGh5L21lZGlhdGVrLG10NzYyMS1wY2ktcGh5LnlhbWw6NDokaWQ6IGh0dHA6Ly9kZXZpY2V0cmVlLm9yZy9zY2hlbWFzL3BoeS9tZWRpYXRlayxtdDc2MjEtcGNpLXBoeS55YW1sI1xcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9waHkvbWVkaWF0ZWssbXQ3NjIxLXBjaS1waHkueWFtbC01LSRzY2hlbWE6IGh0dHA6Ly9kZXZpY2V0cmVlLm9yZy9tZXRhLXNjaGVtYXMvY29yZS55YW1sI1xcbi0tXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3BoeS9tZWRpYXRlayxtdDc2MjEtcGNpLXBoeS55YW1sPTEyPXByb3BlcnRpZXM6XFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3BoeS9tZWRpYXRlayxtdDc2MjEtcGNpLXBoeS55YW1sLTEzLSAgY29tcGF0aWJsZTpcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvcGh5L21lZGlhdGVrLG10NzYyMS1wY2ktcGh5LnlhbWw6MTQ6ICAgIGNvbnN0OiBtZWRpYXRlayxtdDc2MjEtcGNpLXBoeVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9waHkvbWVkaWF0ZWssbXQ3NjIxLXBjaS1waHkueWFtbC0xNS1cXG4tLVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9waHkvbWVkaWF0ZWssbXQ3NjIxLXBjaS1waHkueWFtbD0zND1leGFtcGxlczpcXG4tLVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9waHkvbWVkaWF0ZWssbXQ3NjIxLXBjaS1waHkueWFtbC0zNi0gICAgcGNpZTBfcGh5OiBwY2llLXBoeUAxZTE0OTAwMCB7XFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3BoeS9tZWRpYXRlayxtdDc2MjEtcGNpLXBoeS55YW1sOjM3OiAgICAgIGNvbXBhdGlibGUgPSBcXFwibWVkaWF0ZWssbXQ3NjIxLXBjaS1waHlcXFwiO1xcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9waHkvbWVkaWF0ZWssbXQ3NjIxLXBjaS1waHkueWFtbC0zOC0gICAgICByZWcgPSBcXHUwMDNjMHgxZTE0OTAwMCAweDA3MDBcXHUwMDNlO1xcbi0tXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3BpbmN0cmwvbWVkaWF0ZWssbXQ3NjIxLXBpbmN0cmwueWFtbC0zLS0tLVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9waW5jdHJsL21lZGlhdGVrLG10NzYyMS1waW5jdHJsLnlhbWw6NDokaWQ6IGh0dHA6Ly9kZXZpY2V0cmVlLm9yZy9zY2hlbWFzL3BpbmN0cmwvbWVkaWF0ZWssbXQ3NjIxLXBpbmN0cmwueWFtbCNcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvcGluY3RybC9tZWRpYXRlayxtdDc2MjEtcGluY3RybC55YW1sLTUtJHNjaGVtYTogaHR0cDovL2RldmljZXRyZWUub3JnL21ldGEtc2NoZW1hcy9jb3JlLnlhbWwjXFxuLS1cXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3Mvd2F0Y2hkb2cvbWVkaWF0ZWssbXQ3NjIxLXdkdC55YW1sLTMtLS0tXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3dhdGNoZG9nL21lZGlhdGVrLG10NzYyMS13ZHQueWFtbDo0OiRpZDogaHR0cDovL2RldmljZXRyZWUub3JnL3NjaGVtYXMvd2F0Y2hkb2cvbWVkaWF0ZWssbXQ3NjIxLXdkdC55YW1sI1xcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy93YXRjaGRvZy9tZWRpYXRlayxtdDc2MjEtd2R0LnlhbWwtNS0kc2NoZW1hOiBodHRwOi8vZGV2aWNldHJlZS5vcmcvbWV0YS1zY2hlbWFzL2NvcmUueWFtbCNcXG4tLVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy93YXRjaGRvZy9tZWRpYXRlayxtdDc2MjEtd2R0LnlhbWw9MTU9cHJvcGVydGllczpcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3Mvd2F0Y2hkb2cvbWVkaWF0ZWssbXQ3NjIxLXdkdC55YW1sLTE2LSAgY29tcGF0aWJsZTpcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3Mvd2F0Y2hkb2cvbWVkaWF0ZWssbXQ3NjIxLXdkdC55YW1sOjE3OiAgICBjb25zdDogbWVkaWF0ZWssbXQ3NjIxLXdkdFxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy93YXRjaGRvZy9tZWRpYXRlayxtdDc2MjEtd2R0LnlhbWwtMTgtXFxuLS1cXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3Mvd2F0Y2hkb2cvbWVkaWF0ZWssbXQ3NjIxLXdkdC55YW1sPTM0PWV4YW1wbGVzOlxcbi0tXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3dhdGNoZG9nL21lZGlhdGVrLG10NzYyMS13ZHQueWFtbC0zNi0gICAgd2F0Y2hkb2dAMTAwIHtcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3Mvd2F0Y2hkb2cvbWVkaWF0ZWssbXQ3NjIxLXdkdC55YW1sOjM3OiAgICAgICAgY29tcGF0aWJsZSA9IFxcXCJtZWRpYXRlayxtdDc2MjEtd2R0XFxcIjtcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3Mvd2F0Y2hkb2cvbWVkaWF0ZWssbXQ3NjIxLXdkdC55YW1sLTM4LSAgICAgICAgcmVnID0gXFx1MDAzYzB4MTAwIDB4MTAwXFx1MDAzZTtcXG4tLVxcbk1BSU5UQUlORVJTPTE2NjAzPVM6XFx0TWFpbnRhaW5lZFxcbk1BSU5UQUlORVJTOjE2NjA0OkY6XFx0RG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2Nsb2NrL21lZGlhdGVrLG10NzYyMS1zeXNjLnlhbWxcXG5NQUlOVEFJTkVSUy0xNjYwNS1GOlxcdGRyaXZlcnMvY2xrL3JhbGluay9jbGstbXQ3NjIxLmNcXG4tLVxcbk1BSU5UQUlORVJTPTE2NjA5PVM6XFx0TWFpbnRhaW5lZFxcbk1BSU5UQUlORVJTOjE2NjEwOkY6XFx0RG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3BjaS9tZWRpYXRlayxtdDc2MjEtcGNpZS55YW1sXFxuTUFJTlRBSU5FUlMtMTY2MTEtRjpcXHRkcml2ZXJzL3BjaS9jb250cm9sbGVyL3BjaWUtbXQ3NjIxLmNcXG4tLVxcbk1BSU5UQUlORVJTPTE2NjE1PVM6XFx0TWFpbnRhaW5lZFxcbk1BSU5UQUlORVJTOjE2NjE2OkY6XFx0RG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3BoeS9tZWRpYXRlayxtdDc2MjEtcGNpLXBoeS55YW1sXFxuTUFJTlRBSU5FUlMtMTY2MTctRjpcXHRkcml2ZXJzL3BoeS9yYWxpbmsvcGh5LW10NzYyMS1wY2kuY1xcbi0tXFxuTUFJTlRBSU5FUlM9MTY2MjI9UzpcXHRNYWludGFpbmVkXFxuTUFJTlRBSU5FUlM6MTY2MjM6RjpcXHREb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvaTJjL21lZGlhdGVrLG10NzYyMS1pMmMueWFtbFxcbk1BSU5UQUlORVJTLTE2NjI0LUY6XFx0ZHJpdmVycy9pMmMvYnVzc2VzL2kyYy1tdDc2MjEuY1xcbi0tXFxuTUFJTlRBSU5FUlM9MjEzMjM9RjpcXHREb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvcGluY3RybC9tZWRpYXRlayxtdDc2MjAtcGluY3RybC55YW1sXFxuTUFJTlRBSU5FUlM6MjEzMjQ6RjpcXHREb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvcGluY3RybC9tZWRpYXRlayxtdDc2MjEtcGluY3RybC55YW1sXFxuTUFJTlRBSU5FUlMtMjEzMjUtRjpcXHREb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvcGluY3RybC9tZWRpYXRlayxtdDc2eDgtcGluY3RybC55YW1sXFxuLS1cXG5hcmNoL2FybTY0L2Jvb3QvZHRzL2Fpcm9oYS9lbjc1ODEuZHRzaT0zMjI9XFx0XFx0aTJjMDogaTJjQDFmYmY4MDAwIHtcXG5hcmNoL2FybTY0L2Jvb3QvZHRzL2Fpcm9oYS9lbjc1ODEuZHRzaTozMjM6XFx0XFx0XFx0Y29tcGF0aWJsZSA9IFxcXCJtZWRpYXRlayxtdDc2MjEtaTJjXFxcIjtcXG5hcmNoL2FybTY0L2Jvb3QvZHRzL2Fpcm9oYS9lbjc1ODEuZHRzaS0zMjQtXFx0XFx0XFx0cmVnID0gXFx1MDAzYzB4MCAweDFmYmY4MDAwIDB4MCAweDEwMFxcdTAwM2U7XFxuLS1cXG5hcmNoL2FybTY0L2Jvb3QvZHRzL2Fpcm9oYS9lbjc1ODEuZHRzaT0zMzY9XFx0XFx0aTJjMTogaTJjQDFmYmY4MTAwIHtcXG5hcmNoL2FybTY0L2Jvb3QvZHRzL2Fpcm9oYS9lbjc1ODEuZHRzaTozMzc6XFx0XFx0XFx0Y29tcGF0aWJsZSA9IFxcXCJtZWRpYXRlayxtdDc2MjEtaTJjXFxcIjtcXG5hcmNoL2FybTY0L2Jvb3QvZHRzL2Fpcm9oYS9lbjc1ODEuZHRzaS0zMzgtXFx0XFx0XFx0cmVnID0gXFx1MDAzYzB4MCAweDFmYmY4MTAwIDB4MCAweDEwMFxcdTAwM2U7XFxuLS1cXG5hcmNoL21pcHMvYm9vdC9kdHMvcmFsaW5rL210NzYyMS1nbnViZWUtZ2ItcGMxLmR0cz05PS8ge1xcbmFyY2gvbWlwcy9ib290L2R0cy9yYWxpbmsvbXQ3NjIxLWdudWJlZS1nYi1wYzEuZHRzOjEwOlxcdGNvbXBhdGlibGUgPSBcXFwiZ251YmVlLGdiLXBjMVxcXCIsIFxcXCJtZWRpYXRlayxtdDc2MjEtc29jXFxcIjtcXG5hcmNoL21pcHMvYm9vdC9kdHMvcmFsaW5rL210NzYyMS1nbnViZWUtZ2ItcGMxLmR0cy0xMS1cXHRtb2RlbCA9IFxcXCJHbnVCZWUgR0ItUEMxXFxcIjtcXG4tLVxcbmFyY2gvbWlwcy9ib290L2R0cy9yYWxpbmsvbXQ3NjIxLWdudWJlZS1nYi1wYzIuZHRzPTk9LyB7XFxuYXJjaC9taXBzL2Jvb3QvZHRzL3JhbGluay9tdDc2MjEtZ251YmVlLWdiLXBjMi5kdHM6MTA6XFx0Y29tcGF0aWJsZSA9IFxcXCJnbnViZWUsZ2ItcGMyXFxcIiwgXFxcIm1lZGlhdGVrLG10NzYyMS1zb2NcXFwiO1xcbmFyY2gvbWlwcy9ib290L2R0cy9yYWxpbmsvbXQ3NjIxLWdudWJlZS1nYi1wYzIuZHRzLTExLVxcdG1vZGVsID0gXFxcIkdudUJlZSBHQi1QQzJcXFwiO1xcbi0tXFxuYXJjaC9taXBzL2Jvb3QvZHRzL3JhbGluay9tdDc2MjEtdHBsaW5rLWhjMjIwLWc1LXYxLmR0cz0xMD0vIHtcXG5hcmNoL21pcHMvYm9vdC9kdHMvcmFsaW5rL210NzYyMS10cGxpbmstaGMyMjAtZzUtdjEuZHRzOjExOlxcdGNvbXBhdGlibGUgPSBcXFwidHBsaW5rLGhjMjIwLWc1LXYxXFxcIiwgXFxcIm1lZGlhdGVrLG10NzYyMS1zb2NcXFwiO1xcbmFyY2gvbWlwcy9ib290L2R0cy9yYWxpbmsvbXQ3NjIxLXRwbGluay1oYzIyMC1nNS12MS5kdHMtMTItXFx0bW9kZWwgPSBcXFwiVFAtTGluayBIQzIyMCBHNSB2MVxcXCI7XFxuLS1cXG5hcmNoL21pcHMvYm9vdC9kdHMvcmFsaW5rL210NzYyMS5kdHNpPTc9LyB7XFxuYXJjaC9taXBzL2Jvb3QvZHRzL3JhbGluay9tdDc2MjEuZHRzaTo4OlxcdGNvbXBhdGlibGUgPSBcXFwibWVkaWF0ZWssbXQ3NjIxLXNvY1xcXCI7XFxuYXJjaC9taXBzL2Jvb3QvZHRzL3JhbGluay9tdDc2MjEuZHRzaS05LVxcbi0tXFxuYXJjaC9taXBzL2Jvb3QvZHRzL3JhbGluay9tdDc2MjEuZHRzaT0xNTU9XFx0XFx0c3lzYzogc3lzY29uQDAge1xcbmFyY2gvbWlwcy9ib290L2R0cy9yYWxpbmsvbXQ3NjIxLmR0c2k6MTU2OlxcdFxcdFxcdGNvbXBhdGlibGUgPSBcXFwibWVkaWF0ZWssbXQ3NjIxLXN5c2NcXFwiLCBcXFwic3lzY29uXFxcIjtcXG5hcmNoL21pcHMvYm9vdC9kdHMvcmFsaW5rL210NzYyMS5kdHNpLTE1Ny1cXHRcXHRcXHRyZWcgPSBcXHUwMDNjMHgwIDB4MTAwXFx1MDAzZTtcXG4tLVxcbmFyY2gvbWlwcy9ib290L2R0cy9yYWxpbmsvbXQ3NjIxLmR0c2k9MTY5PVxcdFxcdHdkdDogd2F0Y2hkb2dAMTAwIHtcXG5hcmNoL21pcHMvYm9vdC9kdHMvcmFsaW5rL210NzYyMS5kdHNpOjE3MDpcXHRcXHRcXHRjb21wYXRpYmxlID0gXFxcIm1lZGlhdGVrLG10NzYyMS13ZHRcXFwiO1xcbmFyY2gvbWlwcy9ib290L2R0cy9yYWxpbmsvbXQ3NjIxLmR0c2ktMTcxLVxcdFxcdFxcdHJlZyA9IFxcdTAwM2MweDEwMCAweDEwMFxcdTAwM2U7XFxuLS1cXG5hcmNoL21pcHMvYm9vdC9kdHMvcmFsaW5rL210NzYyMS5kdHNpPTE3NT1cXHRcXHRncGlvOiBncGlvQDYwMCB7XFxuYXJjaC9taXBzL2Jvb3QvZHRzL3JhbGluay9tdDc2MjEuZHRzaToxNzY6XFx0XFx0XFx0Y29tcGF0aWJsZSA9IFxcXCJtZWRpYXRlayxtdDc2MjEtZ3Bpb1xcXCI7XFxuYXJjaC9taXBzL2Jvb3QvZHRzL3JhbGluay9tdDc2MjEuZHRzaS0xNzctXFx0XFx0XFx0cmVnID0gXFx1MDAzYzB4NjAwIDB4MTAwXFx1MDAzZTtcXG4tLVxcbmFyY2gvbWlwcy9ib290L2R0cy9yYWxpbmsvbXQ3NjIxLmR0c2k9MTkwPVxcdFxcdGkyYzogaTJjQDkwMCB7XFxuYXJjaC9taXBzL2Jvb3QvZHRzL3JhbGluay9tdDc2MjEuZHRzaToxOTE6XFx0XFx0XFx0Y29tcGF0aWJsZSA9IFxcXCJtZWRpYXRlayxtdDc2MjEtaTJjXFxcIjtcXG5hcmNoL21pcHMvYm9vdC9kdHMvcmFsaW5rL210NzYyMS5kdHNpLTE5Mi1cXHRcXHRcXHRyZWcgPSBcXHUwMDNjMHg5MDAgMHgxMDBcXHUwMDNlO1xcbi0tXFxuYXJjaC9taXBzL2Jvb3QvZHRzL3JhbGluay9tdDc2MjEuZHRzaT0yMDk9XFx0XFx0bWVtYzogbWVtb3J5LWNvbnRyb2xsZXJANTAwMCB7XFxuYXJjaC9taXBzL2Jvb3QvZHRzL3JhbGluay9tdDc2MjEuZHRzaToyMTA6XFx0XFx0XFx0Y29tcGF0aWJsZSA9IFxcXCJtZWRpYXRlayxtdDc2MjEtbWVtY1xcXCIsIFxcXCJzeXNjb25cXFwiO1xcbmFyY2gvbWlwcy9ib290L2R0cy9yYWxpbmsvbXQ3NjIxLmR0c2ktMjExLVxcdFxcdFxcdHJlZyA9IFxcdTAwM2MweDUwMDAgMHgxMDAwXFx1MDAzZTtcXG4tLVxcbmFyY2gvbWlwcy9ib290L2R0cy9yYWxpbmsvbXQ3NjIxLmR0c2k9MzY0PVxcdGV0aGVybmV0OiBldGhlcm5ldEAxZTEwMDAwMCB7XFxuYXJjaC9taXBzL2Jvb3QvZHRzL3JhbGluay9tdDc2MjEuZHRzaTozNjU6XFx0XFx0Y29tcGF0aWJsZSA9IFxcXCJtZWRpYXRlayxtdDc2MjEtZXRoXFxcIjtcXG5hcmNoL21pcHMvYm9vdC9kdHMvcmFsaW5rL210NzYyMS5kdHNpLTM2Ni1cXHRcXHRyZWcgPSBcXHUwMDNjMHgxZTEwMDAwMCAweDEwMDAwXFx1MDAzZTtcXG4tLVxcbmFyY2gvbWlwcy9ib290L2R0cy9yYWxpbmsvbXQ3NjIxLmR0c2k9Mzg5PVxcdFxcdFxcdHN3aXRjaDA6IHN3aXRjaEAxZiB7XFxuYXJjaC9taXBzL2Jvb3QvZHRzL3JhbGluay9tdDc2MjEuZHRzaTozOTA6XFx0XFx0XFx0XFx0Y29tcGF0aWJsZSA9IFxcXCJtZWRpYXRlayxtdDc2MjFcXFwiO1xcbmFyY2gvbWlwcy9ib290L2R0cy9yYWxpbmsvbXQ3NjIxLmR0c2ktMzkxLVxcdFxcdFxcdFxcdHJlZyA9IFxcdTAwM2MweDFmXFx1MDAzZTtcXG4tLVxcbmFyY2gvbWlwcy9ib290L2R0cy9yYWxpbmsvbXQ3NjIxLmR0c2k9NDkzPVxcdHBjaWU6IHBjaWVAMWUxNDAwMDAge1xcbmFyY2gvbWlwcy9ib290L2R0cy9yYWxpbmsvbXQ3NjIxLmR0c2k6NDk0OlxcdFxcdGNvbXBhdGlibGUgPSBcXFwibWVkaWF0ZWssbXQ3NjIxLXBjaVxcXCI7XFxuYXJjaC9taXBzL2Jvb3QvZHRzL3JhbGluay9tdDc2MjEuZHRzaS00OTUtXFx0XFx0cmVnID0gXFx1MDAzYzB4MWUxNDAwMDAgMHgxMDBcXHUwMDNlLCAvKiBob3N0LXBjaSBicmlkZ2UgcmVnaXN0ZXJzICovXFxuLS1cXG5hcmNoL21pcHMvYm9vdC9kdHMvcmFsaW5rL210NzYyMS5kdHNpPTU4ND1cXHRwY2llMF9waHk6IHBjaWUtcGh5QDFlMTQ5MDAwIHtcXG5hcmNoL21pcHMvYm9vdC9kdHMvcmFsaW5rL210NzYyMS5kdHNpOjU4NTpcXHRcXHRjb21wYXRpYmxlID0gXFxcIm1lZGlhdGVrLG10NzYyMS1wY2ktcGh5XFxcIjtcXG5hcmNoL21pcHMvYm9vdC9kdHMvcmFsaW5rL210NzYyMS5kdHNpLTU4Ni1cXHRcXHRyZWcgPSBcXHUwMDNjMHgxZTE0OTAwMCAweDA3MDBcXHUwMDNlO1xcbi0tXFxuYXJjaC9taXBzL2Jvb3QvZHRzL3JhbGluay9tdDc2MjEuZHRzaT01OTM9XFx0cGNpZTJfcGh5OiBwY2llLXBoeUAxZTE0YTAwMCB7XFxuYXJjaC9taXBzL2Jvb3QvZHRzL3JhbGluay9tdDc2MjEuZHRzaTo1OTQ6XFx0XFx0Y29tcGF0aWJsZSA9IFxcXCJtZWRpYXRlayxtdDc2MjEtcGNpLXBoeVxcXCI7XFxuYXJjaC9taXBzL2Jvb3QvZHRzL3JhbGluay9tdDc2MjEuZHRzaS01OTUtXFx0XFx0cmVnID0gXFx1MDAzYzB4MWUxNGEwMDAgMHgwNzAwXFx1MDAzZTtcXG4tLVxcbmFyY2gvbWlwcy9ib290L2R0cy9yYWxpbmsvbXQ3NjI4YS5kdHNpPTEzNT1cXHRcXHR3YXRjaGRvZzogd2F0Y2hkb2dAMTAwIHtcXG5hcmNoL21pcHMvYm9vdC9kdHMvcmFsaW5rL210NzYyOGEuZHRzaToxMzY6XFx0XFx0XFx0Y29tcGF0aWJsZSA9IFxcXCJtZWRpYXRlayxtdDc2MjEtd2R0XFxcIjtcXG5hcmNoL21pcHMvYm9vdC9kdHMvcmFsaW5rL210NzYyOGEuZHRzaS0xMzctXFx0XFx0XFx0cmVnID0gXFx1MDAzYzB4MTAwIDB4MTAwXFx1MDAzZTtcXG4tLVxcbmFyY2gvbWlwcy9ib290L2R0cy9yYWxpbmsvbXQ3NjI4YS5kdHNpPTE2Nj1cXHRcXHRncGlvOiBncGlvQDYwMCB7XFxuYXJjaC9taXBzL2Jvb3QvZHRzL3JhbGluay9tdDc2MjhhLmR0c2k6MTY3OlxcdFxcdFxcdGNvbXBhdGlibGUgPSBcXFwibWVkaWF0ZWssbXQ3NjIxLWdwaW9cXFwiO1xcbmFyY2gvbWlwcy9ib290L2R0cy9yYWxpbmsvbXQ3NjI4YS5kdHNpLTE2OC1cXHRcXHRcXHRyZWcgPSBcXHUwMDNjMHg2MDAgMHgxMDBcXHUwMDNlO1xcbi0tXFxuYXJjaC9taXBzL2Jvb3QvZHRzL3JhbGluay9tdDc2MjhhLmR0c2k9MTk3PVxcdFxcdGkyYzogaTJjQDkwMCB7XFxuYXJjaC9taXBzL2Jvb3QvZHRzL3JhbGluay9tdDc2MjhhLmR0c2k6MTk4OlxcdFxcdFxcdGNvbXBhdGlibGUgPSBcXFwibWVkaWF0ZWssbXQ3NjIxLWkyY1xcXCI7XFxuYXJjaC9taXBzL2Jvb3QvZHRzL3JhbGluay9tdDc2MjhhLmR0c2ktMTk5LVxcdFxcdFxcdHJlZyA9IFxcdTAwM2MweDkwMCAweDEwMFxcdTAwM2U7XFxuLS1cXG5hcmNoL21pcHMvcmFsaW5rL210NzYyMS5jPTE2Nz12b2lkIF9faW5pdCBwcm9tX3NvY19pbml0KHN0cnVjdCByYWxpbmtfc29jX2luZm8gKnNvY19pbmZvKVxcbi0tXFxuYXJjaC9taXBzL3JhbGluay9tdDc2MjEuYy0xOTEtXFx0aWYgKG10NzYyMV9zb2NfdmFsaWQoKSlcXG5hcmNoL21pcHMvcmFsaW5rL210NzYyMS5jOjE5MjpcXHRcXHRzb2NfaW5mby1cXHUwMDNlY29tcGF0aWJsZSA9IFxcXCJtZWRpYXRlayxtdDc2MjEtc29jXFxcIjtcXG5hcmNoL21pcHMvcmFsaW5rL210NzYyMS5jLTE5My1cXHRlbHNlXFxuLS1cXG5hcmNoL21pcHMvcmFsaW5rL29mLmM9MzI9c3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgbXRtaXBzX21lbWNfbWF0Y2hbXSA9IHtcXG5hcmNoL21pcHMvcmFsaW5rL29mLmM6MzM6XFx0eyAuY29tcGF0aWJsZSA9IFxcXCJtZWRpYXRlayxtdDc2MjEtbWVtY1xcXCIgfSxcXG5hcmNoL21pcHMvcmFsaW5rL29mLmMtMzQtXFx0eyAuY29tcGF0aWJsZSA9IFxcXCJyYWxpbmssbXQ3NjIwYS1tZW1jXFxcIiB9LFxcbi0tXFxuYXJjaC9taXBzL3JhbGluay9vZi5jPTQxPXN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIG10bWlwc19zeXNjX21hdGNoW10gPSB7XFxuYXJjaC9taXBzL3JhbGluay9vZi5jOjQyOlxcdHsgLmNvbXBhdGlibGUgPSBcXFwibWVkaWF0ZWssbXQ3NjIxLXN5c2NcXFwiIH0sXFxuYXJjaC9taXBzL3JhbGluay9vZi5jLTQzLVxcdHsgLmNvbXBhdGlibGUgPSBcXFwicmFsaW5rLG10NzYyMC1zeXNjXFxcIiB9LFxcbi0tXFxuZHJpdmVycy9jbGsvcmFsaW5rL2Nsay1tdDc2MjEuYz0zNTE9c3RhdGljIHZvaWQgX19pbml0IG10NzYyMV9jbGtfaW5pdChzdHJ1Y3QgZGV2aWNlX25vZGUgKm5vZGUpXFxuLS1cXG5kcml2ZXJzL2Nsay9yYWxpbmsvY2xrLW10NzYyMS5jLTQwNy19XFxuZHJpdmVycy9jbGsvcmFsaW5rL2Nsay1tdDc2MjEuYzo0MDg6Q0xLX09GX0RFQ0xBUkVfRFJJVkVSKG10NzYyMV9jbGssIFxcXCJtZWRpYXRlayxtdDc2MjEtc3lzY1xcXCIsIG10NzYyMV9jbGtfaW5pdCk7XFxuZHJpdmVycy9jbGsvcmFsaW5rL2Nsay1tdDc2MjEuYy00MDktXFxuLS1cXG5kcml2ZXJzL2Nsay9yYWxpbmsvY2xrLW10NzYyMS5jPTU2Nj1zdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBtdDc2MjFfY2xrX29mX21hdGNoW10gPSB7XFxuZHJpdmVycy9jbGsvcmFsaW5rL2Nsay1tdDc2MjEuYzo1Njc6XFx0eyAuY29tcGF0aWJsZSA9IFxcXCJtZWRpYXRlayxtdDc2MjEtc3lzY1xcXCIgfSxcXG5kcml2ZXJzL2Nsay9yYWxpbmsvY2xrLW10NzYyMS5jLTU2OC1cXHR7fVxcbi0tXFxuZHJpdmVycy9ncGlvL2dwaW8tbXQ3NjIxLmM9NDg4PXN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIG1lZGlhdGVrX2dwaW9fbWF0Y2hbXSA9IHtcXG5kcml2ZXJzL2dwaW8vZ3Bpby1tdDc2MjEuYzo0ODk6XFx0eyAuY29tcGF0aWJsZSA9IFxcXCJtZWRpYXRlayxtdDc2MjEtZ3Bpb1xcXCIgfSxcXG5kcml2ZXJzL2dwaW8vZ3Bpby1tdDc2MjEuYy00OTAtXFx0e30sXFxuLS1cXG5kcml2ZXJzL2kyYy9idXNzZXMvaTJjLW10NzYyMS5jPTI1MD1zdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBpMmNfbXRrX2R0X2lkc1tdID0ge1xcbmRyaXZlcnMvaTJjL2J1c3Nlcy9pMmMtbXQ3NjIxLmM6MjUxOlxcdHsgLmNvbXBhdGlibGUgPSBcXFwibWVkaWF0ZWssbXQ3NjIxLWkyY1xcXCIgfSxcXG5kcml2ZXJzL2kyYy9idXNzZXMvaTJjLW10NzYyMS5jLTI1Mi1cXHR7IC8qIHNlbnRpbmVsICovIH1cXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdDc1MzAtbWRpby5jPTEzOD1zdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBtdDc1MzBfb2ZfbWF0Y2hbXSA9IHtcXG5kcml2ZXJzL25ldC9kc2EvbXQ3NTMwLW1kaW8uYzoxMzk6XFx0eyAuY29tcGF0aWJsZSA9IFxcXCJtZWRpYXRlayxtdDc2MjFcXFwiLCAuZGF0YSA9IFxcdTAwMjZtdDc1M3hfdGFibGVbSURfTVQ3NjIxXSwgfSxcXG5kcml2ZXJzL25ldC9kc2EvbXQ3NTMwLW1kaW8uYy0xNDAtXFx0eyAuY29tcGF0aWJsZSA9IFxcXCJtZWRpYXRlayxtdDc1MzBcXFwiLCAuZGF0YSA9IFxcdTAwMjZtdDc1M3hfdGFibGVbSURfTVQ3NTMwXSwgfSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a19ldGhfc29jLmM9NTY0Nz1jb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIG9mX210a19tYXRjaFtdID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a19ldGhfc29jLmMtNTY0OC1cXHR7IC5jb21wYXRpYmxlID0gXFxcIm1lZGlhdGVrLG10MjcwMS1ldGhcXFwiLCAuZGF0YSA9IFxcdTAwMjZtdDI3MDFfZGF0YSB9LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a19ldGhfc29jLmM6NTY0OTpcXHR7IC5jb21wYXRpYmxlID0gXFxcIm1lZGlhdGVrLG10NzYyMS1ldGhcXFwiLCAuZGF0YSA9IFxcdTAwMjZtdDc2MjFfZGF0YSB9LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a19ldGhfc29jLmMtNTY1MC1cXHR7IC5jb21wYXRpYmxlID0gXFxcIm1lZGlhdGVrLG10NzYyMi1ldGhcXFwiLCAuZGF0YSA9IFxcdTAwMjZtdDc2MjJfZGF0YSB9LFxcbi0tXFxuZHJpdmVycy9wY2kvY29udHJvbGxlci9wY2llLW10NzYyMS5jPTUzMT1zdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBtdDc2MjFfcGNpZV9pZHNbXSA9IHtcXG5kcml2ZXJzL3BjaS9jb250cm9sbGVyL3BjaWUtbXQ3NjIxLmM6NTMyOlxcdHsgLmNvbXBhdGlibGUgPSBcXFwibWVkaWF0ZWssbXQ3NjIxLXBjaVxcXCIgfSxcXG5kcml2ZXJzL3BjaS9jb250cm9sbGVyL3BjaWUtbXQ3NjIxLmMtNTMzLVxcdHt9LFxcbi0tXFxuZHJpdmVycy9waHkvcmFsaW5rL3BoeS1tdDc2MjEtcGNpLmM9MzQxPXN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIG10NzYyMV9wY2lfcGh5X2lkc1tdID0ge1xcbmRyaXZlcnMvcGh5L3JhbGluay9waHktbXQ3NjIxLXBjaS5jOjM0MjpcXHR7IC5jb21wYXRpYmxlID0gXFxcIm1lZGlhdGVrLG10NzYyMS1wY2ktcGh5XFxcIiB9LFxcbmRyaXZlcnMvcGh5L3JhbGluay9waHktbXQ3NjIxLXBjaS5jLTM0My1cXHR7fSxcXG4tLVxcbmRyaXZlcnMvd2F0Y2hkb2cvbXQ3NjIxX3dkdC5jPTEzOD1zdGF0aWMgaW50IG10NzYyMV93ZHRfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldilcXG4tLVxcbmRyaXZlcnMvd2F0Y2hkb2cvbXQ3NjIxX3dkdC5jLTE1MS1cXHRpZiAoSVNfRVJSKGRydmRhdGEtXFx1MDAzZXN5c2MpKSB7XFxuZHJpdmVycy93YXRjaGRvZy9tdDc2MjFfd2R0LmM6MTUyOlxcdFxcdGRydmRhdGEtXFx1MDAzZXN5c2MgPSBzeXNjb25fcmVnbWFwX2xvb2t1cF9ieV9jb21wYXRpYmxlKFxcXCJtZWRpYXRlayxtdDc2MjEtc3lzY1xcXCIpO1xcbmRyaXZlcnMvd2F0Y2hkb2cvbXQ3NjIxX3dkdC5jLTE1My1cXHRcXHRpZiAoSVNfRVJSKGRydmRhdGEtXFx1MDAzZXN5c2MpKVxcbi0tXFxuZHJpdmVycy93YXRjaGRvZy9tdDc2MjFfd2R0LmM9MjA5PXN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIG10NzYyMV93ZHRfbWF0Y2hbXSA9IHtcXG5kcml2ZXJzL3dhdGNoZG9nL210NzYyMV93ZHQuYzoyMTA6XFx0eyAuY29tcGF0aWJsZSA9IFxcXCJtZWRpYXRlayxtdDc2MjEtd2R0XFxcIiB9LFxcbmRyaXZlcnMvd2F0Y2hkb2cvbXQ3NjIxX3dkdC5jLTIxMS1cXHR7fSxcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjBUMjA6NDg6MjMuNzY3Mzg4ODAxWiIsIlNlcSI6MzEsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjgzMjc4NzE4NTIsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqTXkgQXNzZXNzbWVudDogVGhpcyBDb2RlIGlzIFVuZnV6emFibGUgaW4gVHlwaWNhbCBFbnZpcm9ubWVudHMqKlxuXG5Pa2F5LCBzbyBJJ3ZlIGxvb2tlZCBpbnRvIHRoaXMuIFRoZXJlJ3Mgbm8gU3l6a2FsbGVyIGRlc2NyaXB0aW9uIGZvciB0aGUgYG1lZGlhdGVrLG10NzYyMWAgb3IgYG1lZGlhdGVrLG10NzUzMGAgaGFyZHdhcmUsIHdoaWNoIGltbWVkaWF0ZWx5IGZsYWdzIGl0LiBUaGUgZHJpdmVyIGluIHF1ZXN0aW9uIGlzIHNwZWNpZmljYWxseSBmb3IgYSBNZWRpYVRlayBNVDc1MzAvTVQ3NjIxIHN3aXRjaC4gSXQncyBhbiBNRElPIGRyaXZlciwgd2hpY2ggbWVhbnMgaXQgcmVxdWlyZXMgYSB2ZXJ5IHNwZWNpZmljIGRldmljZSB0cmVlIG5vZGUgYW5kIGFjY2VzcyB0byB0aGUgKmFjdHVhbCogcGh5c2ljYWwgaGFyZHdhcmUgdG8gZXZlbiAqYmVnaW4qIHRvIHByb2JlLlxuXG5NeSBpbnR1aXRpb24gc2F5cyB0aGlzIGlzIGEgbm9uLXN0YXJ0ZXIgZm9yIGZ1enppbmcsIGJlY2F1c2UgaW4gZW52aXJvbm1lbnRzIGxpa2UgUUVNVSwgdGhlIGhhcmR3YXJlIGlzbid0IGVtdWxhdGVkLiBFdmVuICppZiogU3l6a2FsbGVyIHNvbWVob3cgbWFuYWdlZCB0byBpbmplY3QgYSByZWxldmFudCBkZXZpY2UgdHJlZSBub2RlICh3aGljaCBpcyBhbHJlYWR5IHVubGlrZWx5KSwgdGhlIGRyaXZlciB3b3VsZCBmYWlsIHRvIGluaXRpYWxpemUgYmVjYXVzZSB0aGUgcmVnaXN0ZXJzIGl0IGFjY2Vzc2VzIHRocm91Z2ggTURJTyBvciBNTUlPIHNpbXBseSB3b3VsZG4ndCByZXNwb25kLiBUaGUgaGFyZHdhcmUncyBqdXN0IG5vdCAqdGhlcmUqLiBUaGUgcGF0Y2ggaXRzZWxmIHNlZW1zIHRvIGNvbmZpcm0gdGhpczsgaXQgbW9kaWZpZXMgb25seSB0aGUgYG10NzUzMGAgZHJpdmVyLCBzZXR0aW5nIGEgYGJyb2tlbl9lZWVgIGZsYWcgYW5kIGRpc2FibGluZyBFRUUgYWR2ZXJ0aXNlbWVudCB3aXRoaW4gYG10NzUzMF9zZXR1cGAuIFRoaXMgaXMgY2xlYXJseSBhIGhhcmR3YXJlLXNwZWNpZmljIGZpeCBmb3IgcGh5c2ljYWwgc3dpdGNoZXMsIG5vdCBzb21ldGhpbmcgeW91J2Qgc2VlIGluIGEgdmlydHVhbGl6ZWQgc2V0dGluZy5cblxuSSBuZWVkIHRvIGNvbmZpcm0gbXkgaW5pdGlhbCBhc3N1bXB0aW9uLCBqdXN0IHRvIGJlIHRob3JvdWdoLiBUaGUgZHJpdmVyIGlzIGxvY2F0ZWQgYXQgYGRyaXZlcnMvbmV0L2RzYS9tdDc1MzAuY2AuIEFoLCB5ZXMsIGl0J3MgYSBEU0Egc3dpdGNoIGRyaXZlci4gRFNBIHN3aXRjaGVzIGFyZSBhbG1vc3QgYWx3YXlzIHBoeXNpY2FsIGhhcmR3YXJlLCB0aGF0J3MgdGhlaXIgd2hvbGUgcmVhc29uIGZvciBleGlzdGluZy4gQXMgZmFyIGFzIEkga25vdywgdGhlcmUncyBubyBzb2Z0d2FyZSBlbXVsYXRpb24gb2YgdGhlIE1UNzUzMCBpbiBRRU1VLiBTbywgdGhlIHZlcmRpY3QgaXMgYFdvcnRoRnV6emluZz1mYWxzZWAuIFRoaXMgY29kZSBpcyB1bnJlYWNoYWJsZSBpbiBhIGdlbmVyaWMgZnV6emluZyBzZXR1cC4gSSdtIGNvbmZpZGVudCBpbiB0aGF0IGFzc2Vzc21lbnQuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjM0NzQ5LCJPdXRwdXRUb2tlbnMiOjEwOCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjM4NCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0yMFQyMDo0ODozMi4wOTUyNjI5NDNaIiwiU2VxIjozMiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyMzI0MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW10sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgTWVkaWFUZWsgTVQ3NTMwL01UNzYyMSBEU0Egc3dpdGNoIGRyaXZlciB0byBkaXNhYmxlIEVFRSBhZHZlcnRpc2VtZW50IG9uIHRoZSBzd2l0Y2ggUEhZcyBkdWUgdG8gaGFyZHdhcmUgaXNzdWVzLiBUaGlzIGlzIGEgaGFyZHdhcmUtc3BlY2lmaWMgZHJpdmVyIGZvciBwaHlzaWNhbCBNZWRpYVRlayBzd2l0Y2hlcyB0aGF0IGFyZSBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVSBvciBHQ0UgZW52aXJvbm1lbnRzLiBUaGUgY29kZSBjYW5ub3QgYmUgcmVhY2hlZCBkdXJpbmcgZ2VuZXJpYyBrZXJuZWwgZnV6emluZyBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgTWVkaWFUZWsgTVQ3NTMwL01UNzYyMSBEU0Egc3dpdGNoIGRyaXZlciB0byBkaXNhYmxlIEVFRSBhZHZlcnRpc2VtZW50IG9uIHRoZSBzd2l0Y2ggUEhZcyBkdWUgdG8gaGFyZHdhcmUgaXNzdWVzLiBUaGlzIGlzIGEgaGFyZHdhcmUtc3BlY2lmaWMgZHJpdmVyIGZvciBwaHlzaWNhbCBNZWRpYVRlayBzd2l0Y2hlcyB0aGF0IGFyZSBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVSBvciBHQ0UgZW52aXJvbm1lbnRzLiBUaGUgY29kZSBjYW5ub3QgYmUgcmVhY2hlZCBkdXJpbmcgZ2VuZXJpYyBrZXJuZWwgZnV6emluZyBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yMFQyMDo0ODozMi4wOTUyODkyNzNaIiwiU2VxIjozMywiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJJZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE1NTAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9XTsKCQkJaWYgKCFyYXdEYXRhIHx8IHJhd0RhdGEubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQlkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKTsKCQkJZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSk7CgkJCWRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKSB7CgkJCWNvbnN0IHN0YXRzID0gewoJCQkJbGxtOiB7IGNvdW50OiAwLCB0b2tlbnM6IDAsIGR1cmF0aW9uOiAwIH0sCgkJCQl0b29sOiB7IGNvdW50OiAwLCBkdXJhdGlvbjogMCB9CgkJCX07CgoJCQlyYXdEYXRhLmZvckVhY2gocyA9PiB7CgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsgCgkJCQlpZiAocy5UeXBlID09PSAibGxtIikgewoJCQkJCXN0YXRzLmxsbS5jb3VudCsrOwoJCQkJCXN0YXRzLmxsbS50b2tlbnMgKz0gKHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnMpOwoJCQkJCXN0YXRzLmxsbS5kdXJhdGlvbiArPSBkdXI7CgkJCQl9IGVsc2UgaWYgKHMuVHlwZSA9PT0gInRvb2wiKSB7CgkJCQkJc3RhdHMudG9vbC5jb3VudCsrOwoJCQkJCXN0YXRzLnRvb2wuZHVyYXRpb24gKz0gZHVyOwoJCQkJfQoJCQl9KTsKCgkJCWNvbnN0IGF2Z0xsbUR1ciA9IHN0YXRzLmxsbS5jb3VudCA+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-workflowcmqhq[0].run-triage(0) Phase: Succeeded StartedAt: 2026-08-20 20:45:06 +0000 UTC FinishedAt: 2026-08-20 20:48:33 +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+CgkJCTx0ZD4yMDI2LzA4LzIwIDIwOjQ3PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MW08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7S01TQU5SZWFzb25pbmcmIzM0OzogJiMzNDsmIzM0OywKICAmIzM0O05lZWRzS01TQU4mIzM0OzogZmFsc2UsCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIE1lZGlhVGVrIE1UNzUzMC9NVDc2MjEgRFNBIHN3aXRjaCBkcml2ZXIgdG8gZGlzYWJsZSBFRUUgYWR2ZXJ0aXNlbWVudCBvbiB0aGUgc3dpdGNoIFBIWXMgZHVlIHRvIGhhcmR3YXJlIGlzc3Vlcy4gVGhpcyBpcyBhIGhhcmR3YXJlLXNwZWNpZmljIGRyaXZlciBmb3IgcGh5c2ljYWwgTWVkaWFUZWsgc3dpdGNoZXMgdGhhdCBhcmUgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUgb3IgR0NFIGVudmlyb25tZW50cy4gVGhlIGNvZGUgY2Fubm90IGJlIHJlYWNoZWQgZHVyaW5nIGdlbmVyaWMga2VybmVsIGZ1enppbmcgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yMCAyMDo0NzwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IDg3OWFmMTQ3ZDYyNDdjY2FiOWRkNjBkNDFhODI2ZDFmN2UyMGQ2NmFcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgVGh1IEF1ZyAyMCAyMDo0NzowMSAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9kc2EvbXQ3NTMwLmMgYi9kcml2ZXJzL25ldC9kc2EvbXQ3NTMwLmNcbmluZGV4IGFhMzNkOTRlMTFiNWYuLmJiMjJjMTljZjMxNGEgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9kc2EvbXQ3NTMwLmNcbiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L2RzYS9tdDc1MzAuY1xuQEAgLTI1MTgsNiAmIzQzOzI1MTgsMTUgQEAgbXQ3NTMwX3NldHVwKHN0cnVjdCBkc2Ffc3dpdGNoICpkcylcbiBcdGlmICgodmFsIFx1MDAyNiBNVDc1MzBfWFRBTF9NQVNLKSA9PSBNVDc1MzBfWFRBTF80ME1IWilcbiBcdFx0bXQ3NTMwX3BsbF9zZXR1cChwcml2KTtcbiBcbiYjNDM7XHRpZiAocHJpdi1cdTAwM2VpbmZvLVx1MDAzZWJyb2tlbl9lZWUpIHtcbiYjNDM7XHRcdC8qIERpc2FibGUgRUVFIGFkdmVydGlzZW1lbnQgb24gdGhlIHN3aXRjaCBQSFlzLiAqL1xuJiM0MztcdFx0Zm9yIChpID0gTVQ3NTNYX0NUUkxfUEhZX0FERFIocHJpdi1cdTAwM2VtZGlvZGV2LVx1MDAzZWFkZHIpO1xuJiM0MztcdFx0ICAgICBpIFx1MDAzYyBNVDc1M1hfQ1RSTF9QSFlfQUREUihwcml2LVx1MDAzZW1kaW9kZXYtXHUwMDNlYWRkcikgJiM0MzsgTVQ3NTMwX05VTV9QSFlTO1xuJiM0MztcdFx0ICAgICBpJiM0MzsmIzQzOykge1xuJiM0MztcdFx0XHRtdDc1MzBfcGh5X3dyaXRlX2M0NShwcml2LCBpLCBNRElPX01NRF9BTiwgTURJT19BTl9FRUVfQURWLCAwKTtcbiYjNDM7XHRcdH1cbiYjNDM7XHR9XG4mIzQzO1xuIFx0bXQ3NTN4X3RyYXBfZnJhbWVzKHByaXYpO1xuIFxuIFx0LyogRW5hYmxlIGFuZCByZXNldCBNSUIgY291bnRlcnMgKi9cbkBAIC0zMzg4LDYgJiM0MzszMzk3LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBwaHlsaW5rX21hY19vcHMgbXQ3NTN4X3BoeWxpbmtfbWFjX29wcyA9IHtcbiBjb25zdCBzdHJ1Y3QgbXQ3NTN4X2luZm8gbXQ3NTN4X3RhYmxlW10gPSB7XG4gXHRbSURfTVQ3NjIxXSA9IHtcbiBcdFx0LmlkID0gSURfTVQ3NjIxLFxuJiM0MztcdFx0LmJyb2tlbl9lZWUgPSB0cnVlLFxuIFx0XHQucGNzX29wcyA9IFx1MDAyNm10NzUzMF9wY3Nfb3BzLFxuIFx0XHQuc3dfc2V0dXAgPSBtdDc1MzBfc2V0dXAsXG4gXHRcdC5waHlfcmVhZF9jMjIgPSBtdDc1MzBfcGh5X3JlYWRfYzIyLFxuQEAgLTMzOTksNiAmIzQzOzM0MDksNyBAQCBjb25zdCBzdHJ1Y3QgbXQ3NTN4X2luZm8gbXQ3NTN4X3RhYmxlW10gPSB7XG4gXHR9LFxuIFx0W0lEX01UNzUzMF0gPSB7XG4gXHRcdC5pZCA9IElEX01UNzUzMCxcbiYjNDM7XHRcdC5icm9rZW5fZWVlID0gdHJ1ZSxcbiBcdFx0LnBjc19vcHMgPSBcdTAwMjZtdDc1MzBfcGNzX29wcyxcbiBcdFx0LnN3X3NldHVwID0gbXQ3NTMwX3NldHVwLFxuIFx0XHQucGh5X3JlYWRfYzIyID0gbXQ3NTMwX3BoeV9yZWFkX2MyMixcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9kc2EvbXQ3NTMwLmggYi9kcml2ZXJzL25ldC9kc2EvbXQ3NTMwLmhcbmluZGV4IGRkMzNiMGRmMzQxOWUuLjBjYTMzYjlkNDIxMDUgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9kc2EvbXQ3NTMwLmhcbiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L2RzYS9tdDc1MzAuaFxuQEAgLTg1Myw2ICYjNDM7ODUzLDcgQEAgc3RydWN0IG10NzUzeF9pbmZvIHtcbiBcdHZvaWQgKCptYWNfcG9ydF9jb25maWcpKHN0cnVjdCBkc2Ffc3dpdGNoICpkcywgaW50IHBvcnQsXG4gXHRcdFx0XHR1bnNpZ25lZCBpbnQgbW9kZSxcbiBcdFx0XHRcdHBoeV9pbnRlcmZhY2VfdCBpbnRlcmZhY2UpO1xuJiM0MztcdGJvb2wgYnJva2VuX2VlZTtcbiB9O1xuIFxuIC8qIHN0cnVjdCBtdDc1MzBfcHJpdiAtXHRUaGlzIGlzIHRoZSBtYWluIGRhdGEgc3RydWN0dXJlIGZvciBob2xkaW5nIHRoZSBzdGF0ZVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzIwIDIwOjQ3PC90ZD4KCQkJPHRkPmFnZW50PC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjFtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmJlc3QtZXhwZW5zaXZlPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogbnVsbCwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgTWVkaWFUZWsgTVQ3NTMwL01UNzYyMSBEU0Egc3dpdGNoIGRyaXZlciB0byBkaXNhYmxlIEVFRSBhZHZlcnRpc2VtZW50IG9uIHRoZSBzd2l0Y2ggUEhZcyBkdWUgdG8gaGFyZHdhcmUgaXNzdWVzLiBUaGlzIGlzIGEgaGFyZHdhcmUtc3BlY2lmaWMgZHJpdmVyIGZvciBwaHlzaWNhbCBNZWRpYVRlayBzd2l0Y2hlcyB0aGF0IGFyZSBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVSBvciBHQ0UgZW52aXJvbm1lbnRzLiBUaGUgY29kZSBjYW5ub3QgYmUgcmVhY2hlZCBkdXJpbmcgZ2VuZXJpYyBrZXJuZWwgZnV6emluZyBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmUKaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseQp1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLgoKUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczoKLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLgotIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLgotIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy4KLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsCiAgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLgotIENvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLAogIGlvbmljLCBhbWRncHUpIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLgotIERyaXZlciAucmVtb3ZlLCAuc2h1dGRvd24sIG9yIHBjaV91bnJlZ2lzdGVyX2RyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKGUuZy4sIGlnYl9yZW1vdmUpCiAgdGhhdCBhcmUgZXhlY3V0ZWQgb25seSBkdXJpbmcgUENJIGhvdC11bnBsdWcgb3Igc3lzZnMgZHJpdmVyIHVuYmluZCBvcGVyYXRpb25zLgoKSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaAp0b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS4KCldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOgoxLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLgogICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy4KICAgUHJlZmVyIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIEFQSSBlbnRyeXBvaW50IGZ1bmN0aW9ucyBvdmVyIGludGVybmFsIHN0YXRpYyBoZWxwZXIgZnVuY3Rpb25zCiAgICh3aGljaCBhcmUgaW5saW5lZCBieSB0aGUgY29tcGlsZXIgYW5kIGRvIG5vdCBoYXZlIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMpLgoyLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS4KICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLgogICBBbHNvIGNoZWNrICYjMzQ7ZGVwZW5kcyBvbiYjMzQ7IGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlncwogICBuZWVkZWQgZm9yIEtidWlsZCB0byBjb21waWxlIHRoZSBjb2RlIHN0YXRpY2FsbHkgaW50byB2bWxpbnV4LiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3MKICAgb3V0cHV0IGFycmF5LCBhbmQgRE8gTk9UIGFkZCBhICYjMzk7Q09ORklHXyYjMzk7IHByZWZpeCAoZS5nLiwgcmV0dXJuICYjMzQ7TkVUX0lQVjQmIzM0OyBpbnN0ZWFkIG9mICYjMzQ7Q09ORklHX05FVF9JUFY0JiMzNDspLgpQcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy4KCgpVc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLgpJdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS4KSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlByb21wdDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOgpjb21taXQgODc5YWYxNDdkNjI0N2NjYWI5ZGQ2MGQ0MWE4MjZkMWY3ZTIwZDY2YQpBdXRob3I6IHN5ei1jbHVzdGVyICZsdDt0cmlhZ2VAc3l6a2FsbGVyLmNvbSZndDsKRGF0ZTogICBUaHUgQXVnIDIwIDIwOjQ3OjAxIDIwMjYgJiM0MzswMDAwCgogICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3CgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZHNhL210NzUzMC5jIGIvZHJpdmVycy9uZXQvZHNhL210NzUzMC5jCmluZGV4IGFhMzNkOTRlMTFiNWYuLmJiMjJjMTljZjMxNGEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2RzYS9tdDc1MzAuYwomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC9kc2EvbXQ3NTMwLmMKQEAgLTI1MTgsNiAmIzQzOzI1MTgsMTUgQEAgbXQ3NTMwX3NldHVwKHN0cnVjdCBkc2Ffc3dpdGNoICpkcykKIAlpZiAoKHZhbCAmYW1wOyBNVDc1MzBfWFRBTF9NQVNLKSA9PSBNVDc1MzBfWFRBTF80ME1IWikKIAkJbXQ3NTMwX3BsbF9zZXR1cChwcml2KTsKIAomIzQzOwlpZiAocHJpdi0mZ3Q7aW5mby0mZ3Q7YnJva2VuX2VlZSkgewomIzQzOwkJLyogRGlzYWJsZSBFRUUgYWR2ZXJ0aXNlbWVudCBvbiB0aGUgc3dpdGNoIFBIWXMuICovCiYjNDM7CQlmb3IgKGkgPSBNVDc1M1hfQ1RSTF9QSFlfQUREUihwcml2LSZndDttZGlvZGV2LSZndDthZGRyKTsKJiM0MzsJCSAgICAgaSAmbHQ7IE1UNzUzWF9DVFJMX1BIWV9BRERSKHByaXYtJmd0O21kaW9kZXYtJmd0O2FkZHIpICYjNDM7IE1UNzUzMF9OVU1fUEhZUzsKJiM0MzsJCSAgICAgaSYjNDM7JiM0MzspIHsKJiM0MzsJCQltdDc1MzBfcGh5X3dyaXRlX2M0NShwcml2LCBpLCBNRElPX01NRF9BTiwgTURJT19BTl9FRUVfQURWLCAwKTsKJiM0MzsJCX0KJiM0MzsJfQomIzQzOwogCW10NzUzeF90cmFwX2ZyYW1lcyhwcml2KTsKIAogCS8qIEVuYWJsZSBhbmQgcmVzZXQgTUlCIGNvdW50ZXJzICovCkBAIC0zMzg4LDYgJiM0MzszMzk3LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBwaHlsaW5rX21hY19vcHMgbXQ3NTN4X3BoeWxpbmtfbWFjX29wcyA9IHsKIGNvbnN0IHN0cnVjdCBtdDc1M3hfaW5mbyBtdDc1M3hfdGFibGVbXSA9IHsKIAlbSURfTVQ3NjIxXSA9IHsKIAkJLmlkID0gSURfTVQ3NjIxLAomIzQzOwkJLmJyb2tlbl9lZWUgPSB0cnVlLAogCQkucGNzX29wcyA9ICZhbXA7bXQ3NTMwX3Bjc19vcHMsCiAJCS5zd19zZXR1cCA9IG10NzUzMF9zZXR1cCwKIAkJLnBoeV9yZWFkX2MyMiA9IG10NzUzMF9waHlfcmVhZF9jMjIsCkBAIC0zMzk5LDYgJiM0MzszNDA5LDcgQEAgY29uc3Qgc3RydWN0IG10NzUzeF9pbmZvIG10NzUzeF90YWJsZVtdID0gewogCX0sCiAJW0lEX01UNzUzMF0gPSB7CiAJCS5pZCA9IElEX01UNzUzMCwKJiM0MzsJCS5icm9rZW5fZWVlID0gdHJ1ZSwKIAkJLnBjc19vcHMgPSAmYW1wO210NzUzMF9wY3Nfb3BzLAogCQkuc3dfc2V0dXAgPSBtdDc1MzBfc2V0dXAsCiAJCS5waHlfcmVhZF9jMjIgPSBtdDc1MzBfcGh5X3JlYWRfYzIyLApkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZHNhL210NzUzMC5oIGIvZHJpdmVycy9uZXQvZHNhL210NzUzMC5oCmluZGV4IGRkMzNiMGRmMzQxOWUuLjBjYTMzYjlkNDIxMDUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2RzYS9tdDc1MzAuaAomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC9kc2EvbXQ3NTMwLmgKQEAgLTg1Myw2ICYjNDM7ODUzLDcgQEAgc3RydWN0IG10NzUzeF9pbmZvIHsKIAl2b2lkICgqbWFjX3BvcnRfY29uZmlnKShzdHJ1Y3QgZHNhX3N3aXRjaCAqZHMsIGludCBwb3J0LAogCQkJCXVuc2lnbmVkIGludCBtb2RlLAogCQkJCXBoeV9pbnRlcmZhY2VfdCBpbnRlcmZhY2UpOwomIzQzOwlib29sIGJyb2tlbl9lZWU7CiB9OwogCiAvKiBzdHJ1Y3QgbXQ3NTMwX3ByaXYgLQlUaGlzIGlzIHRoZSBtYWluIGRhdGEgc3RydWN0dXJlIGZvciBob2xkaW5nIHRoZSBzdGF0ZQo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yMCAyMDo0NzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyNjQ5CgkJCQkJCQlvdXRwdXQ6IDQxCgkJCQkJCQl0aG91Z2h0czogMjY1CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKk15IEFzc2Vzc21lbnQgb2YgdGhlIE1UNzUzMCBEcml2ZXIgUGF0Y2gqKgoKT2theSwgc28gSSYjMzk7dmUgZ290IHRoaXMgcGF0Y2ggaGVyZSB0aGF0IHNlZW1zIHRvIGJlIHR3ZWFraW5nIHRoZSBNZWRpYVRlayBNVDc1MzAgRFNBIHN3aXRjaCBkcml2ZXIsIHNwZWNpZmljYWxseSBpbiBgZHJpdmVycy9uZXQvZHNhL210NzUzMC5jYCBhbmQgYC5oYC4gVGhleSYjMzk7cmUgYWRkaW5nIGEgYGJyb2tlbl9lZWVgIGZsYWcgdG8gdGhlIGBtdDc1M3hfaW5mb2Agc3RydWN0IGFuZCBoYXJkY29kaW5nIGl0IHRvIGB0cnVlYCBmb3IgYElEX01UNzYyMWAgYW5kIGBJRF9NVDc1MzBgIC0gaW50ZXJlc3RpbmcuIFRoZSBtZWF0IG9mIGl0IGFwcGVhcnMgdG8gYmUgaW4gYG10NzUzMF9zZXR1cCgpYCwgd2hlcmUgdGhpcyBgYnJva2VuX2VlZWAgZmxhZyBpcyB1c2VkIHRvIGRpc2FibGUgRUVFIGFkdmVydGlzZW1lbnQgdGhyb3VnaCBgbXQ3NTMwX3BoeV93cml0ZV9jNDUoKWAuIFNlZW1zIGxpa2UgaXQmIzM5O3MgYWRkcmVzc2luZyBhbiBpc3N1ZSB3aGVyZSBFRUUgaXNuJiMzOTt0IHdvcmtpbmcgY29ycmVjdGx5IG9uIHRob3NlIHNwZWNpZmljIHN3aXRjaCB2YXJpYW50cy4KCk15IGluaXRpYWwgdGhvdWdodCBpcywgaG93IGRvIEkgYWN0dWFsbHkgKnRlc3QqIHRoaXM/IFRoaXMgaXMgYSBEU0Egc3dpdGNoIGRyaXZlciwgd2hpY2ggbWVhbnMgaXQmIzM5O3MgZGVzaWduZWQgdG8gaW50ZXJhY3Qgd2l0aCBwaHlzaWNhbCBoYXJkd2FyZS4gRFNBIHN3aXRjaGVzIGFyZSBnZW5lcmFsbHkgbm90IHNvbWV0aGluZyB5b3UgY2FuIGp1c3QgY29uanVyZSB1cCBpbiBhIHN0YW5kYXJkIHZpcnR1YWwgZW52aXJvbm1lbnQgbGlrZSBRRU1VLiBUaGV54oCZcmUgaGFyZHdpcmVkIGludG8gdGhlIHN5c3RlbS4gSXQmIzM5O3MgbGlrZWx5IHRoYXQgYSBRRU1VIHNldHVwIHdvdWxkbiYjMzk7dCB0cmlnZ2VyIGFueSBvZiB0aGlzIGNvZGUuCgpJIG5lZWQgdG8gY29uZmlybSBpZiB0aGVyZSBpcyBzb21lIHdheSB0byBlbXVsYXRlIG9yIHRyaWdnZXIgdGhlIGNvZGUuIEkmIzM5O2xsIG5lZWQgdG8gZGlnIGludG8gYGRyaXZlcnMvbmV0L2RzYS9tdDc1MzAuY2AgdG8gbG9vayBmb3IgaG9va3MgaW50byB0aGUgbmV0d29yayBzdGFjaywgb3Igd2F5cyB0aGUgTURJTyBjb3VsZCBiZSB1c2VkIHRvIHdyaXRlIHRoZSB0aGUgUEhZIHJlZ2lzdGVycy4gSSYjMzk7bGwgYWxzbyBjaGVjayBpZiBpdCYjMzk7cyBhIHBsYXRmb3JtIGRyaXZlciBvciBNRElPIGRyaXZlci4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yMCAyMDo0NzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDttdDc1MzBfc2V0dXAmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9kc2EvbXQ3NTMwLmMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZHNhL210NzUzMC5jPTM3Mz1zdGF0aWMgdm9pZFxuZHJpdmVycy9uZXQvZHNhL210NzUzMC5jOjM3NDptdDc1MzBfc2V0dXBfcG9ydDYoc3RydWN0IGRzYV9zd2l0Y2ggKmRzLCBwaHlfaW50ZXJmYWNlX3QgaW50ZXJmYWNlKVxuZHJpdmVycy9uZXQvZHNhL210NzUzMC5jLTM3NS17XG4tLVxuZHJpdmVycy9uZXQvZHNhL210NzUzMC5jPTEwNDY9c3RhdGljIGNvbnN0IGNoYXIgKm10NzUzMF9wNV9tb2RlX3N0cih1bnNpZ25lZCBpbnQgbW9kZSlcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXQ3NTMwLmMtMTA1Ny1cbmRyaXZlcnMvbmV0L2RzYS9tdDc1MzAuYzoxMDU4OnN0YXRpYyB2b2lkIG10NzUzMF9zZXR1cF9wb3J0NShzdHJ1Y3QgZHNhX3N3aXRjaCAqZHMsIHBoeV9pbnRlcmZhY2VfdCBpbnRlcmZhY2UpXG5kcml2ZXJzL25ldC9kc2EvbXQ3NTMwLmMtMTA1OS17XG4tLVxuZHJpdmVycy9uZXQvZHNhL210NzUzMC5jPTE2NDM9c3RhdGljIGludFxuZHJpdmVycy9uZXQvZHNhL210NzUzMC5jOjE2NDQ6bXQ3NTMwX3NldHVwX3ZsYW4wKHN0cnVjdCBtdDc1MzBfcHJpdiAqcHJpdilcbmRyaXZlcnMvbmV0L2RzYS9tdDc1MzAuYy0xNjQ1LXtcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXQ3NTMwLmM9MTY2MD1tdDc1MzBfcG9ydF9zZXRfdmxhbl91bmF3YXJlKHN0cnVjdCBkc2Ffc3dpdGNoICpkcywgaW50IHBvcnQpXG4tLVxuZHJpdmVycy9uZXQvZHNhL210NzUzMC5jLTE2OTctXHRcdG11dGV4X2xvY2soXHUwMDI2cHJpdi1cdTAwM2VyZWdfbXV0ZXgpO1xuZHJpdmVycy9uZXQvZHNhL210NzUzMC5jOjE2OTg6XHRcdG10NzUzMF9zZXR1cF92bGFuMChwcml2KTtcbmRyaXZlcnMvbmV0L2RzYS9tdDc1MzAuYy0xNjk5LVx0XHRtdXRleF91bmxvY2soXHUwMDI2cHJpdi1cdTAwM2VyZWdfbXV0ZXgpO1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9tdDc1MzAuYz0xOTkyPW10NzUzMF9wb3J0X3ZsYW5fYWRkKHN0cnVjdCBkc2Ffc3dpdGNoICpkcywgaW50IHBvcnQsXG4tLVxuZHJpdmVycy9uZXQvZHNhL210NzUzMC5jLTIwMDItXG5kcml2ZXJzL25ldC9kc2EvbXQ3NTMwLmM6MjAwMzpcdC8qIFZJRCAwIGlzIG1hbmFnZWQgZXhjbHVzaXZlbHkgYnkgbXQ3NTMwX3NldHVwX3ZsYW4wKCkgZm9yXG5kcml2ZXJzL25ldC9kc2EvbXQ3NTMwLmMtMjAwNC1cdCAqIFZMQU4tdW5hd2FyZSBicmlkZ2Ugb3BlcmF0aW9uLiBEb24mIzM5O3QgbGV0IHRoZSBicmlkZ2Ugb3ZlcndyaXRlXG4tLVxuZHJpdmVycy9uZXQvZHNhL210NzUzMC5jPTIwNDY9bXQ3NTMwX3BvcnRfdmxhbl9kZWwoc3RydWN0IGRzYV9zd2l0Y2ggKmRzLCBpbnQgcG9ydCxcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXQ3NTMwLmMtMjA1My1cbmRyaXZlcnMvbmV0L2RzYS9tdDc1MzAuYzoyMDU0Olx0LyogVklEIDAgaXMgbWFuYWdlZCBleGNsdXNpdmVseSBieSBtdDc1MzBfc2V0dXBfdmxhbjAoKS4gKi9cbmRyaXZlcnMvbmV0L2RzYS9tdDc1MzAuYy0yMDU1LVx0aWYgKHZsYW4tXHUwMDNldmlkID09IDApXG4tLVxuZHJpdmVycy9uZXQvZHNhL210NzUzMC5jPTIyMjk9c3RhdGljIGludFxuZHJpdmVycy9uZXQvZHNhL210NzUzMC5jOjIyMzA6bXQ3NTMwX3NldHVwX2dwaW8oc3RydWN0IG10NzUzMF9wcml2ICpwcml2KVxuZHJpdmVycy9uZXQvZHNhL210NzUzMC5jLTIyMzEte1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9tdDc1MzAuYz0yMjU5PXN0YXRpYyB2b2lkXG5kcml2ZXJzL25ldC9kc2EvbXQ3NTMwLmM6MjI2MDptdDc1MzBfc2V0dXBfbWRpb19pcnEoc3RydWN0IG10NzUzMF9wcml2ICpwcml2KVxuZHJpdmVycy9uZXQvZHNhL210NzUzMC5jLTIyNjEte1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9tdDc1MzAuYz0yMzA5PXN0YXRpYyBpbnRcbmRyaXZlcnMvbmV0L2RzYS9tdDc1MzAuYzoyMzEwOm10NzUzMF9zZXR1cF9pcnEoc3RydWN0IG10NzUzMF9wcml2ICpwcml2KVxuZHJpdmVycy9uZXQvZHNhL210NzUzMC5jLTIzMTEte1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9tdDc1MzAuYz0yMzYwPXN0YXRpYyBpbnRcbmRyaXZlcnMvbmV0L2RzYS9tdDc1MzAuYzoyMzYxOm10NzUzMF9zZXR1cF9tZGlvKHN0cnVjdCBtdDc1MzBfcHJpdiAqcHJpdilcbmRyaXZlcnMvbmV0L2RzYS9tdDc1MzAuYy0yMzYyLXtcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXQ3NTMwLmMtMjM5NC1cdGlmIChwcml2LVx1MDAzZWlycV9kb21haW4gXHUwMDI2XHUwMDI2ICFtbnApXG5kcml2ZXJzL25ldC9kc2EvbXQ3NTMwLmM6MjM5NTpcdFx0bXQ3NTMwX3NldHVwX21kaW9faXJxKHByaXYpO1xuZHJpdmVycy9uZXQvZHNhL210NzUzMC5jLTIzOTYtXG4tLVxuZHJpdmVycy9uZXQvZHNhL210NzUzMC5jPTI0MDk9c3RhdGljIGludFxuZHJpdmVycy9uZXQvZHNhL210NzUzMC5jOjI0MTA6bXQ3NTMwX3NldHVwKHN0cnVjdCBkc2Ffc3dpdGNoICpkcylcbmRyaXZlcnMvbmV0L2RzYS9tdDc1MzAuYy0yNDExLXtcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXQ3NTMwLmMtMjU2OC1cdC8qIFNldHVwIFZMQU4gSUQgMCBmb3IgVkxBTi11bmF3YXJlIGJyaWRnZXMgKi9cbmRyaXZlcnMvbmV0L2RzYS9tdDc1MzAuYzoyNTY5Olx0cmV0ID0gbXQ3NTMwX3NldHVwX3ZsYW4wKHByaXYpO1xuZHJpdmVycy9uZXQvZHNhL210NzUzMC5jLTI1NzAtXHRpZiAocmV0KVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9tdDc1MzAuYy0yNjEzLVx0XHRcdG10NzUzMF9jbGVhcihwcml2LCBNVDc1M1hfTVRSQVAsIE1UNzUzMF9QNV9ESVMpO1xuZHJpdmVycy9uZXQvZHNhL210NzUzMC5jOjI2MTQ6XHRcdFx0bXQ3NTMwX3NldHVwX3BvcnQ1KGRzLCBpbnRlcmZhY2UpO1xuZHJpdmVycy9uZXQvZHNhL210NzUzMC5jLTI2MTUtXHRcdH1cbi0tXG5kcml2ZXJzL25ldC9kc2EvbXQ3NTMwLmMtMjYxOS1cdGlmIChvZl9wcm9wZXJ0eV9yZWFkX2Jvb2wocHJpdi1cdTAwM2VkZXYtXHUwMDNlb2Zfbm9kZSwgXCYjMzQ7Z3Bpby1jb250cm9sbGVyXCYjMzQ7KSkge1xuZHJpdmVycy9uZXQvZHNhL210NzUzMC5jOjI2MjA6XHRcdHJldCA9IG10NzUzMF9zZXR1cF9ncGlvKHByaXYpO1xuZHJpdmVycy9uZXQvZHNhL210NzUzMC5jLTI2MjEtXHRcdGlmIChyZXQpXG4tLVxuZHJpdmVycy9uZXQvZHNhL210NzUzMC5jPTI2MzU9bXQ3NTMxX3NldHVwX2NvbW1vbihzdHJ1Y3QgZHNhX3N3aXRjaCAqZHMpXG4tLVxuZHJpdmVycy9uZXQvZHNhL210NzUzMC5jLTI3MDEtXHQvKiBTZXR1cCBWTEFOIElEIDAgZm9yIFZMQU4tdW5hd2FyZSBicmlkZ2VzICovXG5kcml2ZXJzL25ldC9kc2EvbXQ3NTMwLmM6MjcwMjpcdHJldHVybiBtdDc1MzBfc2V0dXBfdmxhbjAocHJpdik7XG5kcml2ZXJzL25ldC9kc2EvbXQ3NTMwLmMtMjcwMy19XG4tLVxuZHJpdmVycy9uZXQvZHNhL210NzUzMC5jPTI5MTU9bXQ3NTMwX21hY19jb25maWcoc3RydWN0IGRzYV9zd2l0Y2ggKmRzLCBpbnQgcG9ydCwgdW5zaWduZWQgaW50IG1vZGUsXG4tLVxuZHJpdmVycy9uZXQvZHNhL210NzUzMC5jLTI5MjAtXHRpZiAocG9ydCA9PSA1KVxuZHJpdmVycy9uZXQvZHNhL210NzUzMC5jOjI5MjE6XHRcdG10NzUzMF9zZXR1cF9wb3J0NShwcml2LVx1MDAzZWRzLCBpbnRlcmZhY2UpO1xuZHJpdmVycy9uZXQvZHNhL210NzUzMC5jLTI5MjItXHRlbHNlIGlmIChwb3J0ID09IDYpXG5kcml2ZXJzL25ldC9kc2EvbXQ3NTMwLmM6MjkyMzpcdFx0bXQ3NTMwX3NldHVwX3BvcnQ2KHByaXYtXHUwMDNlZHMsIGludGVyZmFjZSk7XG5kcml2ZXJzL25ldC9kc2EvbXQ3NTMwLmMtMjkyNC19XG4tLVxuZHJpdmVycy9uZXQvZHNhL210NzUzMC5jPTMxODU9bXQ3NTN4X3NldHVwKHN0cnVjdCBkc2Ffc3dpdGNoICpkcylcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXQ3NTMwLmMtMzE5My1cbmRyaXZlcnMvbmV0L2RzYS9tdDc1MzAuYzozMTk0Olx0cmV0ID0gbXQ3NTMwX3NldHVwX2lycShwcml2KTtcbmRyaXZlcnMvbmV0L2RzYS9tdDc1MzAuYy0zMTk1LVx0aWYgKHJldClcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXQ3NTMwLmMtMzE5Ny1cbmRyaXZlcnMvbmV0L2RzYS9tdDc1MzAuYzozMTk4Olx0cmV0ID0gbXQ3NTMwX3NldHVwX21kaW8ocHJpdik7XG5kcml2ZXJzL25ldC9kc2EvbXQ3NTMwLmMtMzE5OS1cdGlmIChyZXQpXG4tLVxuZHJpdmVycy9uZXQvZHNhL210NzUzMC5jPTMzOTc9Y29uc3Qgc3RydWN0IG10NzUzeF9pbmZvIG10NzUzeF90YWJsZVtdID0ge1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9tdDc1MzAuYy0zNDAxLVx0XHQucGNzX29wcyA9IFx1MDAyNm10NzUzMF9wY3Nfb3BzLFxuZHJpdmVycy9uZXQvZHNhL210NzUzMC5jOjM0MDI6XHRcdC5zd19zZXR1cCA9IG10NzUzMF9zZXR1cCxcbmRyaXZlcnMvbmV0L2RzYS9tdDc1MzAuYy0zNDAzLVx0XHQucGh5X3JlYWRfYzIyID0gbXQ3NTMwX3BoeV9yZWFkX2MyMixcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXQ3NTMwLmMtMzQxMy1cdFx0LnBjc19vcHMgPSBcdTAwMjZtdDc1MzBfcGNzX29wcyxcbmRyaXZlcnMvbmV0L2RzYS9tdDc1MzAuYzozNDE0Olx0XHQuc3dfc2V0dXAgPSBtdDc1MzBfc2V0dXAsXG5kcml2ZXJzL25ldC9kc2EvbXQ3NTMwLmMtMzQxNS1cdFx0LnBoeV9yZWFkX2MyMiA9IG10NzUzMF9waHlfcmVhZF9jMjIsXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjAgMjA6NDc8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNTc4MwoJCQkJCQkJb3V0cHV0OiAzOQoJCQkJCQkJdGhvdWdodHM6IDExNgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipJbnZlc3RpZ2F0aW5nIHRoZSBSZWFjaGFiaWxpdHkgb2YgdGhlIE1UNzUzMC9NVDc1MzEvTVQ3NjIxIE1ESU8gRHJpdmVyIGluIFFFTVUqKgoKT2theSwgc28gSSYjMzk7bSB0cnlpbmcgdG8gZmlndXJlIG91dCBpZiBJIGNhbiBnZXQgdGhpcyBNVDc1MzAvTVQ3NTMxL01UNzYyMSBNRElPIGRyaXZlciB0byBmaXJlIHVwIHdpdGhpbiBhIFFFTVUgZW52aXJvbm1lbnQuIEl0JiMzOTtzIGFuIE1ESU8gZHJpdmVyLCB3aGljaCBtZWFucyBpdCYjMzk7cyByZXNwb25zaWJsZSBmb3IgbWFuYWdpbmcgZGV2aWNlcyBjb25uZWN0ZWQgdmlhIHRoZSBNRElPIGludGVyZmFjZS4gTm93LCB0aGUgY3JpdGljYWwgcXVlc3Rpb24gaXMgd2hldGhlciBRRU1VJiMzOTtzIHNldHVwIHdpbGwgYWxsb3cgbWUgdG8gZXZlbiBoaXQgdGhpcyBjb2RlLiBNeSBleHBlcmllbmNlIHN1Z2dlc3RzIHRoYXQgTURJTyBkZXZpY2VzIGFyZSB0eXBpY2FsbHkgYnJvdWdodCBvbmxpbmUgdGhyb3VnaCB0aGUgZGV2aWNlIHRyZWUuIElmIHRoZSBkZXZpY2UgdHJlZSBjb25maWd1cmF0aW9uIGRvZXNuJiMzOTt0IGV4cGxpY2l0bHkgZGVmaW5lIGEgbm9kZSBmb3IgdGhpcyBwYXJ0aWN1bGFyIGhhcmR3YXJlLCB0aGUgZHJpdmVyIHdpbGwgbGlrZWx5IHJlbWFpbiBkb3JtYW50IOKAkyBub3QgZ2V0dGluZyBwcm9iZWQgYXQgYWxsLgoKU28sIHRoZSBuZXh0IGxvZ2ljYWwgc3RlcCBpcyB0byBkaXZlIGludG8gdGhlIGRyaXZlciYjMzk7cyBjb2RlLCBzcGVjaWZpY2FsbHkgYGRyaXZlcnMvbmV0L2RzYS9tdDc1MzAuY2AsIGFuZCBodW50IGZvciBjbHVlcy4gSSYjMzk7bSBsb29raW5nIGZvciBhIGBNT0RVTEVfREVWSUNFX1RBQkxFYCBvciBhbiBgb2ZfbWF0Y2hfdGFibGVgIHdpdGhpbiB0aGF0IGZpbGUuIFRoZXNlIHRhYmxlcyBhcmUgdGhlIGtleS4gVGhleSBkZWZpbmUgdGhlIGhhcmR3YXJlIGlkZW50aWZpZXJzIHRoYXQgdGhlIGRyaXZlciBpcyBkZXNpZ25lZCB0byByZWNvZ25pemUuIElmIEkgY2FuIGZpbmQgb25lIHRoYXQgYWxpZ25zIHdpdGggd2hhdCBRRU1VIHByb3ZpZGVzIG9yIGNhbiBiZSBjb25maWd1cmVkIHRvIGVtdWxhdGUsIEkmIzM5O20gaW4gYnVzaW5lc3MuIElmIG5vdCwgSSYjMzk7bGwgbmVlZCB0byBsb29rIGF0IGVpdGhlciBtb2RpZnlpbmcgdGhlIGRldmljZSB0cmVlIHdpdGhpbiBRRU1VLCBvciBwb3RlbnRpYWxseSBjcmVhdGluZyBhIG1pbmltYWwgZGV2aWNlIHRyZWUgb3ZlcnJpZGUuIEkmIzM5O2xsIG5lZWQgdG8gYXNzZXNzIHRoZSBwb3NzaWJpbGl0aWVzIQoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzIwIDIwOjQ3PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5FcnJvcjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm5vIG1hdGNoZXM8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7b2ZfbWF0Y2hfdGFibGUmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9kc2EvbXQ3NTMwLmMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7ZXJyb3ImIzM0OzogJiMzNDtubyBtYXRjaGVzJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzIwIDIwOjQ3PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDYyNzIKCQkJCQkJCW91dHB1dDogNDEKCQkJCQkJCXRob3VnaHRzOiAyMwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+SGVyZSYjMzk7cyBteSBhdHRlbXB0IGF0IHN1bW1hcml6aW5nIHRoZSB0aG91Z2h0IHByb2Nlc3MsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2UgYW5kIHdyaXR0ZW4gaW4gdGhlIGZpcnN0IHBlcnNvbjoKCioqTURJTyBEcml2ZXIgSW52ZXN0aWdhdGlvbjogSW5pdGlhbCBTdGVwcyoqCgpPa2F5LCBzbyB3ZSYjMzk7cmUgZGVhbGluZyB3aXRoIGFuIE1ESU8gZHJpdmVyLiBNeSBpbml0aWFsIGluc3RpbmN0IGlzIHRvIGp1bXAgc3RyYWlnaHQgdG8gdGhlIHByb2JlIGZ1bmN0aW9uLCBwYXJ0aWN1bGFybHkgYG10NzUzMF9wcm9iZWAuIFRoYXQmIzM5O3Mgd2hlcmUgdGhlIGNyaXRpY2FsIGluaXRpYWxpemF0aW9uIGFuZCBkZXZpY2Ugc2V0dXAgdHlwaWNhbGx5IGhhcHBlbnMsIGFuZCB3aGVyZSB0aGUgZHJpdmVyIHNob3VsZCBiZSBpZGVudGlmeWluZyBhbmQgY29uZmlndXJpbmcgdGhlIHNwZWNpZmljIGhhcmR3YXJlLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCB3aGF0JiMzOTtzIGhhcHBlbmluZyBhdCB0aGUgcG9pbnQgb2YgZGV0ZWN0aW9uLiBMZXQmIzM5O3Mgc2VlIHdoYXQmIzM5O3MgZ29pbmcgb24gdGhlcmUuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjAgMjA6NDc8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7bXQ3NTMwX3Byb2JlJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZHNhL210NzUzMC5jJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2RzYS9tdDc1MzAuYz0zNDY2PWludFxuZHJpdmVycy9uZXQvZHNhL210NzUzMC5jOjM0Njc6bXQ3NTMwX3Byb2JlX2NvbW1vbihzdHJ1Y3QgbXQ3NTMwX3ByaXYgKnByaXYpXG5kcml2ZXJzL25ldC9kc2EvbXQ3NTMwLmMtMzQ2OC17XG4tLVxuZHJpdmVycy9uZXQvZHNhL210NzUzMC5jLTM0OTctfVxuZHJpdmVycy9uZXQvZHNhL210NzUzMC5jOjM0OTg6RVhQT1JUX1NZTUJPTF9HUEwobXQ3NTMwX3Byb2JlX2NvbW1vbik7XG5kcml2ZXJzL25ldC9kc2EvbXQ3NTMwLmMtMzQ5OS1cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD45LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yMCAyMDo0NzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA2NjM2CgkJCQkJCQlvdXRwdXQ6IDM2CgkJCQkJCQl0aG91Z2h0czogMjcKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgYSBzdW1tYXJ5IG9mIG15IHRob3VnaHQgcHJvY2VzczoKCioqRGl2aW5nIGludG8gdGhlIGBtdDc1MzBfcHJvYmVfY29tbW9uYCBGdW5jdGlvbioqCgpPa2F5LCBzbyBgbXQ3NTMwX3Byb2JlX2NvbW1vbmAgaXMgYW4gZXhwb3J0ZWQgZnVuY3Rpb24sIHdoaWNoIG1lYW5zIGl0JiMzOTtzIGF2YWlsYWJsZSBmb3Igb3RoZXIgcGFydHMgb2YgdGhlIGtlcm5lbCB0byB1c2UuIFRoYXQgaW1tZWRpYXRlbHkgcGlxdWVzIG15IGludGVyZXN0LiBJIG5lZWQgdG8gdW5kZXJzdGFuZCBpdHMgY29udGV4dCBhbmQgaG93IGl0JiMzOTtzIGJlaW5nIGxldmVyYWdlZCB3aXRoaW4gdGhlIHN5c3RlbS4gTXkgbmV4dCBzdGVwLCBuYXR1cmFsbHksIGlzIHRvIGZpZ3VyZSBvdXQgdGhlIGNhbGwgc2l0ZXMuIEkgbmVlZCB0byB0cmFjayBkb3duIGV2ZXJ5d2hlcmUgdGhpcyBwYXJ0aWN1bGFyIGZ1bmN0aW9uIGlzIGJlaW5nIGludm9rZWQgdG8gZ2V0IGEgZ3Jhc3Agb2YgaXRzIHJvbGUgYW5kIHNpZ25pZmljYW5jZS4gVW5kZXJzdGFuZGluZyB3aGVyZSBpdCYjMzk7cyB1c2VkIGlzIGtleSB0byB1bmRlcnN0YW5kaW5nIHdoYXQgaXQgZG9lcy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjAgMjA6NDc8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7bXQ3NTMwX3Byb2JlX2NvbW1vbiYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2RzYS8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZHNhL210NzUzMC1tZGlvLmM9MTU1PW10NzUzMF9wcm9iZShzdHJ1Y3QgbWRpb19kZXZpY2UgKm1kaW9kZXYpXG4tLVxuZHJpdmVycy9uZXQvZHNhL210NzUzMC1tZGlvLmMtMTcwLVxuZHJpdmVycy9uZXQvZHNhL210NzUzMC1tZGlvLmM6MTcxOlx0cmV0ID0gbXQ3NTMwX3Byb2JlX2NvbW1vbihwcml2KTtcbmRyaXZlcnMvbmV0L2RzYS9tdDc1MzAtbWRpby5jLTE3Mi1cdGlmIChyZXQpXG4tLVxuZHJpdmVycy9uZXQvZHNhL210NzUzMC1tbWlvLmM9Mjk9bXQ3OTg4X3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpXG4tLVxuZHJpdmVycy9uZXQvZHNhL210NzUzMC1tbWlvLmMtNDEtXG5kcml2ZXJzL25ldC9kc2EvbXQ3NTMwLW1taW8uYzo0MjpcdHJldCA9IG10NzUzMF9wcm9iZV9jb21tb24ocHJpdik7XG5kcml2ZXJzL25ldC9kc2EvbXQ3NTMwLW1taW8uYy00My1cdGlmIChyZXQpXG4tLVxuZHJpdmVycy9uZXQvZHNhL210NzUzMC5jPTM0NjY9aW50XG5kcml2ZXJzL25ldC9kc2EvbXQ3NTMwLmM6MzQ2NzptdDc1MzBfcHJvYmVfY29tbW9uKHN0cnVjdCBtdDc1MzBfcHJpdiAqcHJpdilcbmRyaXZlcnMvbmV0L2RzYS9tdDc1MzAuYy0zNDY4LXtcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXQ3NTMwLmMtMzQ5Ny19XG5kcml2ZXJzL25ldC9kc2EvbXQ3NTMwLmM6MzQ5ODpFWFBPUlRfU1lNQk9MX0dQTChtdDc1MzBfcHJvYmVfY29tbW9uKTtcbmRyaXZlcnMvbmV0L2RzYS9tdDc1MzAuYy0zNDk5LVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9tdDc1MzAuaD05NDE9c3RhdGljIGlubGluZSB2b2lkIElOSVRfTVQ3NTMwX0RVTU1ZX1BPTEwoc3RydWN0IG10NzUzMF9kdW1teV9wb2xsICpwLFxuLS1cbmRyaXZlcnMvbmV0L2RzYS9tdDc1MzAuaC05NDctXG5kcml2ZXJzL25ldC9kc2EvbXQ3NTMwLmg6OTQ4OmludCBtdDc1MzBfcHJvYmVfY29tbW9uKHN0cnVjdCBtdDc1MzBfcHJpdiAqcHJpdik7XG5kcml2ZXJzL25ldC9kc2EvbXQ3NTMwLmgtOTQ5LXZvaWQgbXQ3NTMwX3JlbW92ZV9jb21tb24oc3RydWN0IG10NzUzMF9wcml2ICpwcml2KTtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjAgMjA6NDc8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNzQzOAoJCQkJCQkJb3V0cHV0OiA0MgoJCQkJCQkJdGhvdWdodHM6IDUxCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBsZXQmIzM5O3MgZGl2ZSBpbnRvIHRoaXMuIEhlcmUmIzM5O3MgaG93IEkmIzM5O2QgYXBwcm9hY2ggdGhpcyB0YXNrLCBhcyBpZiB0aGVzZSB3ZXJlIG15IGludGVybmFsIHRob3VnaHRzOgoKKipDaGVja2luZyBEZXZpY2UgVHJlZSBCaW5kaW5nIGluIE1UNzUzMCBEcml2ZXIgQ29kZSoqCgpSaWdodCwgc28gSSBuZWVkIHRvIHVuZGVyc3RhbmQgaG93IHRoZSBNVDc1MzAgc3dpdGNoIGRyaXZlciBpbnRlcmFjdHMgd2l0aCB0aGUgZGV2aWNlIHRyZWUuIE15IGZpcnN0IGluc3RpbmN0LCBnaXZlbiB0aGUgY29udGV4dCwgaXMgdG8gY2hlY2sgdGhlIGBvZl9tYXRjaF90YWJsZWAgaW1wbGVtZW50YXRpb24gaW4gdGhlIE1UNzUzMCBkcml2ZXIgY29kZS4gU3BlY2lmaWNhbGx5LCBJJiMzOTtsbCBiZSBsb29raW5nIGluIHRoZSBgZHJpdmVycy9uZXQvZHNhL210NzUzMC1tZGlvLmNgIGFuZCBgZHJpdmVycy9uZXQvZHNhL210NzUzMC1tbWlvLmNgIGZpbGVzLiBJJiMzOTttIGZvY3VzaW5nIG9uIHRob3NlIHR3byBiZWNhdXNlIHRoZXkgbGlrZWx5IGhhbmRsZSB0aGUgZGlmZmVyZW50IGNvbW11bmljYXRpb24gaW50ZXJmYWNlcyBmb3IgdGhlIHN3aXRjaDogTURJTyAobWFuYWdlbWVudCBkYXRhIEkvTykgYW5kIE1NSU8gKG1lbW9yeS1tYXBwZWQgSS9PKS4gVGhlIGBvZl9tYXRjaF90YWJsZWAgaXMsIG9mIGNvdXJzZSwgdGhlIGtleSBkYXRhIHN0cnVjdHVyZS4gSSBuZWVkIHRvIHNlZSBob3cgdGhlIGRyaXZlciBpZGVudGlmaWVzIGFuZCBiaW5kcyB0byB0aGUgY29ycmVjdCBkZXZpY2Ugbm9kZXMgaW4gdGhlIGRldmljZSB0cmVlLiBJJiMzOTttIGV4cGVjdGluZyB0byBmaW5kIGVudHJpZXMgdGhhdCBtYXRjaCBzcGVjaWZpYyAmIzM0O2NvbXBhdGlibGUmIzM0OyBzdHJpbmdzIG9yIG90aGVyIHByb3BlcnRpZXMgZGVmaW5lZCBmb3IgdGhlIE1UNzUzMCwgYWxsb3dpbmcgdGhlIGRyaXZlciB0byBpbml0aWFsaXplIGNvcnJlY3RseS4gSXQmIzM5O3MgYSBmdW5kYW1lbnRhbCBwYXJ0IG9mIHRoZSBkZXZpY2UgZHJpdmVyJiMzOTtzIGJvb3RzdHJhcCBzZXF1ZW5jZS4gSSYjMzk7bGwgbmVlZCB0byByZXZpZXcgaG93IHRoZXNlIGBvZl9tYXRjaF90YWJsZWAgZW50cmllcyBhcmUgc3RydWN0dXJlZCwgYW55IGNvcnJlc3BvbmRpbmcgaW5pdGlhbGl6YXRpb24gb3IgcHJvYmUgZnVuY3Rpb25zIHRoYXQgcmVseSBvbiB0aGVtLCBhbmQgaG93IHRoZSBkcml2ZXIgdWx0aW1hdGVseSBoYW5kbGVzIHJlc291cmNlIGFsbG9jYXRpb24gYmFzZWQgb24gdGhlIERUIGJpbmRpbmcuIEkgd2lsbCBlbnN1cmUgdGhhdCB0aGUgZHJpdmVyIHdpbGwgYmUgYm91bmQgY29ycmVjdGx5IGFuZCB0aGF0IHJlc291cmNlcyBhcmUgaW5pdGlhbGl6ZWQuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTIvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzIwIDIwOjQ3PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O29mX21hdGNoX3RhYmxlJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZHNhL210NzUzMC1tZGlvLmMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZHNhL210NzUzMC1tZGlvLmM9MjU4PXN0YXRpYyBzdHJ1Y3QgbWRpb19kcml2ZXIgbXQ3NTMwX21kaW9fZHJpdmVyID0ge1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9tdDc1MzAtbWRpby5jLTI2My1cdFx0Lm5hbWUgPSBcJiMzNDttdDc1MzAtbWRpb1wmIzM0OyxcbmRyaXZlcnMvbmV0L2RzYS9tdDc1MzAtbWRpby5jOjI2NDpcdFx0Lm9mX21hdGNoX3RhYmxlID0gbXQ3NTMwX29mX21hdGNoLFxuZHJpdmVycy9uZXQvZHNhL210NzUzMC1tZGlvLmMtMjY1LVx0fSxcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMy8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjAgMjA6NDc8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogODAyMQoJCQkJCQkJb3V0cHV0OiA0NgoJCQkJCQkJdGhvdWdodHM6IDEyCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIHRoZSBzdW1tYXJ5LCByZW5kZXJlZCBhcyBpZiBJJiMzOTttIHRoZSBvbmUgdGhpbmtpbmcgaXQ6CgoqKkNvbnNpZGVyaW5nIHRoZSBtdDc1MzBfb2ZfbWF0Y2ggRnVuY3Rpb24qKgoKQWxyaWdodCwgbGV0JiMzOTtzIGJyZWFrIGRvd24gdGhpcyBgbXQ3NTMwX29mX21hdGNoYCBmdW5jdGlvbi4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzLCB0aGlzIGlzIHByb2JhYmx5IGEgY3J1Y2lhbCBwaWVjZSBvZiBkZXZpY2UgdHJlZSBoYW5kbGluZyBmb3IgYW4gTVQ3NTMwLWJhc2VkIHN5c3RlbS4gR2l2ZW4gbXkgYmFja2dyb3VuZCwgSSYjMzk7bSBleHBlY3RpbmcgdGhpcyBmdW5jdGlvbiB0byBiZSBpbnZvbHZlZCBpbiBwcm9iaW5nLCBhbmQgbWF0Y2hpbmcgYSBkZXZpY2Ugbm9kZSBpbiB0aGUgZGV2aWNlIHRyZWUgdG8gYSBkcml2ZXIgaW5zdGFuY2UuIFNwZWNpZmljYWxseSwgaXQmIzM5O3MgdmVyeSBsaWtlbHkgYWN0aW5nIGFzIHRoZSBjYWxsYmFjayBmdW5jdGlvbiB3aXRoaW4gdGhlICYjMzQ7b2ZfbWF0Y2hfdGFibGUmIzM0OyBzdHJ1Y3R1cmUsIGxpa2VseSBjb21wYXJpbmcgc29tZSBwcm9wZXJ0aWVzIHdpdGhpbiB0aGUgZGV2aWNlIHRyZWUgbm9kZSAocGVyaGFwcyBjb21wYXRpYmxlIHN0cmluZ3MsIG9yIHNvbWUgY3VzdG9tIHBsYXRmb3JtIGRhdGEpIGFnYWluc3QgYSBwcmVkZWZpbmVkIHRhYmxlIG9mIHN1cHBvcnRlZCBjb25maWd1cmF0aW9ucy4KCkkmIzM5O20gbWVudGFsbHkgcnVubmluZyB0aHJvdWdoIHRoZSB0eXBpY2FsIHNlcXVlbmNlOiB0aGUga2VybmVsIGlkZW50aWZpZXMgYSBkZXZpY2UsIHRyaWVzIHRvIGZpbmQgYSBzdWl0YWJsZSBkcml2ZXIuIEl0IGNoZWNrcyB0aGUgZGV2aWNlJiMzOTtzIHByb3BlcnRpZXMgYWdhaW5zdCB0aGUgY29tcGF0aWJsZSBzdHJpbmdzIGRlZmluZWQgaW4gYSBtYXRjaCB0YWJsZS4gV2hlbiB0aGVyZSBpcyBhIG1hdGNoLCB0aGVuIHRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkLCB0byBjb25maXJtIHRoZSBkcml2ZXIgc2hvdWxkIGF0dGFjaCB0byB0aGlzIGRldmljZS4gTXkgZXhwZXJpZW5jZSB0ZWxscyBtZSB0aGF0IHRoaXMgZnVuY3Rpb24gZG9lcyBub3QgYWN0dWFsbHkgcHJvYmUgdGhlIGhhcmR3YXJlLiBJdCBpcyBmb3IgZGV2aWNlIHRyZWUgbWF0Y2hpbmcuCgpJIG5lZWQgdG8gY29uZmlybSB3aGV0aGVyIHRoZSBmdW5jdGlvbiBpcyBtZWFudCB0byBqdXN0IGJlIGEgc2ltcGxlICYjMzQ7Y29tcGF0aWJsZSYjMzQ7IHN0cmluZyBtYXRjaCBvciBpZiBpdCYjMzk7cyBkZXNpZ25lZCB0byBkbyBhIHNsaWdodGx5IG1vcmUgY29tcGxleCBjaGVjaywgcGVyaGFwcyB2YWxpZGF0aW5nIG90aGVyIGFzcGVjdHMgb2YgdGhlIGRldmljZSB0cmVlIG5vZGUgYmV5b25kIGp1c3QgdGhlICYjMzQ7Y29tcGF0aWJsZSYjMzQ7IHByb3BlcnR5LiBUaGlzIGNvdWxkIGludm9sdmUgY2hlY2tpbmcgZm9yIHRoZSBwcmVzZW5jZS9hYnNlbmNlIG9mIHNwZWNpZmljIHByb3BlcnRpZXMsIHZlcmlmeWluZyB0aGVpciB2YWx1ZXMsIG9yIGV2ZW4gcG90ZW50aWFsbHkgcmV0cmlldmluZyBzb21lIGluaXRpYWwgY29uZmlndXJhdGlvbiBwYXJhbWV0ZXJzLiBJIHdhbnQgdG8gbG9vayBtb3JlIGRlZXBseSBpbnRvIHRoZSBzb3VyY2UgY29kZSB0byBnZXQgYSBjb21wcmVoZW5zaXZlIHVuZGVyc3RhbmRpbmcgb2YgdGhlIGxvZ2ljLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE0LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yMCAyMDo0NzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDttdDc1MzBfb2ZfbWF0Y2gmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9kc2EvbXQ3NTMwLW1kaW8uYyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9kc2EvbXQ3NTMwLW1kaW8uYz05MT1tdDc1MzFfY3JlYXRlX3NnbWlpKHN0cnVjdCBtdDc1MzBfcHJpdiAqcHJpdilcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXQ3NTMwLW1kaW8uYy0xMzctXG5kcml2ZXJzL25ldC9kc2EvbXQ3NTMwLW1kaW8uYzoxMzg6c3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgbXQ3NTMwX29mX21hdGNoW10gPSB7XG5kcml2ZXJzL25ldC9kc2EvbXQ3NTMwLW1kaW8uYy0xMzktXHR7IC5jb21wYXRpYmxlID0gXCYjMzQ7bWVkaWF0ZWssbXQ3NjIxXCYjMzQ7LCAuZGF0YSA9IFx1MDAyNm10NzUzeF90YWJsZVtJRF9NVDc2MjFdLCB9LFxuLS1cbmRyaXZlcnMvbmV0L2RzYS9tdDc1MzAtbWRpby5jLTE0My19O1xuZHJpdmVycy9uZXQvZHNhL210NzUzMC1tZGlvLmM6MTQ0Ok1PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIG10NzUzMF9vZl9tYXRjaCk7XG5kcml2ZXJzL25ldC9kc2EvbXQ3NTMwLW1kaW8uYy0xNDUtXG4tLVxuZHJpdmVycy9uZXQvZHNhL210NzUzMC1tZGlvLmM9MjU4PXN0YXRpYyBzdHJ1Y3QgbWRpb19kcml2ZXIgbXQ3NTMwX21kaW9fZHJpdmVyID0ge1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9tdDc1MzAtbWRpby5jLTI2My1cdFx0Lm5hbWUgPSBcJiMzNDttdDc1MzAtbWRpb1wmIzM0OyxcbmRyaXZlcnMvbmV0L2RzYS9tdDc1MzAtbWRpby5jOjI2NDpcdFx0Lm9mX21hdGNoX3RhYmxlID0gbXQ3NTMwX29mX21hdGNoLFxuZHJpdmVycy9uZXQvZHNhL210NzUzMC1tZGlvLmMtMjY1LVx0fSxcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjAgMjA6NDc8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogODg0NAoJCQkJCQkJb3V0cHV0OiA0MwoJCQkJCQkJdGhvdWdodHM6IDIwOQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIEZlYXNpYmlsaXR5IG9mIEZ1enppbmcgYSBIYXJkd2FyZSBTd2l0Y2ggRHJpdmVyKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGUgZHJpdmVyIGZvciB0aGlzIE1lZGlhVGVrIHN3aXRjaCDigJMgc3BlY2lmaWNhbGx5IHRoZSBNVDc2MjEsIE1UNzUzMCwgYW5kIE1UNzUzMSB2YXJpYW50cy4gTXkgaW1tZWRpYXRlIGNvbmNlcm4gaXMsIGNhbiBJIGV2ZW4gKnJlYWNoKiB0aGlzIGNvZGUgaW4gYSBzdGFuZGFyZCBmdXp6aW5nIHNldHVwPyBJdCByZWxpZXMgb24gYSBzcGVjaWZpYyBkZXZpY2UgdHJlZSBub2RlLCBhbmQgbW9yZSBpbXBvcnRhbnRseSwgaXQmIzM5O3MgaW50ZXJhY3Rpbmcgd2l0aCBwaHlzaWNhbCBNRElPIG9yIE1NSU8gcmVnaXN0ZXJzLiBNeSBpbml0aWFsIGd1dCBmZWVsaW5nIGlzIGEgZmlybSAmIzM0O25vJiMzNDsuIFFFTVUsIGFzIGZhciBhcyBJIGtub3csIGRvZXNuJiMzOTt0IGVtdWxhdGUgdGhlc2Ugc3BlY2lmaWMgTWVkaWFUZWsgc3dpdGNoZXMsIHNvIHN0cmFpZ2h0IGF3YXksIEkmIzM5O20gdGhpbmtpbmcgYSBnZW5lcmljIGZ1enppbmcgZW52aXJvbm1lbnQgbGlrZSBzeXprYWxsZXIgaXMgYSBkZWFkIGVuZC4KCkkmIzM5O20gcHJldHR5IHN1cmUgdGhhdCB1bmxlc3Mgd2UmIzM5O3JlIGZ1enppbmcgZGlyZWN0bHkgb24gYWN0dWFsIE1lZGlhVGVrIGhhcmR3YXJlLCBvciBRRU1VICpzb21laG93KiBhZGRzIHN1cHBvcnQgZm9yIHRoZXNlICpzcGVjaWZpYyogYm9hcmRzL3N3aXRjaGVzICh3aGljaCBpcyBpbmNyZWRpYmx5IHVubGlrZWx5IGZvciBnZW5lcmljIGZ1enppbmcgcHVycG9zZXMpLCB0aGlzIGNvZGUgcGF0aCBpcyB1bnJlYWNoYWJsZS4KCldhaXQgYSBzZWNvbmQsIHN5emthbGxlciBkb2VzIGhhdmUgZGV2aWNlIHRyZWUgaW5qZWN0aW9uIGNhcGFiaWxpdGllcyEgTWF5YmUgdGhlcmUmIzM5O3MgYSBnbGltbWVyIG9mIGhvcGUuIEJ1dCBldmVuIHdpdGggdGhhdCwgaXQgdXN1YWxseSAqZG9lc24mIzM5O3QqIGVtdWxhdGUgdGhlIGhhcmR3YXJlIHJlZ2lzdGVycy4gU28gaWYgdGhlIGRyaXZlciB0cmllcyB0byByZWFkIGEgaGFyZHdhcmUgSUQgb3IgaW50ZXJhY3Qgd2l0aCB0aGUgaGFyZHdhcmUgcmVnaXN0ZXJzLCB3ZSYjMzk7cmUgbGlrZWx5IGdvaW5nIHRvIGdldCBhIGZhaWx1cmUgb3IgYSBjcmFzaCBiZWNhdXNlIHRoZSBoYXJkd2FyZSB3b24mIzM5O3QgYmUgdGhlcmUuCgpBbHJpZ2h0LCBsZXQmIzM5O3MgYmFjayB1cCBhIGJpdC4gRmlyc3QgdGhpbmcmIzM5O3MgZmlyc3Q6IEkgbmVlZCB0byBjaGVjayBpZiB0aGlzIGRyaXZlciAqYWN0dWFsbHkqIHJlYWRzIGhhcmR3YXJlIHJlZ2lzdGVycyBkdXJpbmcgdGhlIHByb2JlIHByb2Nlc3MuIFRoYXQmIzM5O3MgdGhlIG1ha2Utb3ItYnJlYWsgcXVlc3Rpb24gcmlnaHQgbm93LiBJZiBpdCBkb2VzbiYjMzk7dCBuZWVkIHRvIHJlYWQgYW55IHJlZ2lzdGVycyBmb3IgYmFzaWMgc2V0dXAsIGl0IG1pZ2h0IGp1c3QgKndvcmsqLiBCdXQgSSBoYXZlIHRvIHZlcmlmeSB0aGF0LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE2LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yMCAyMDo0NzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDttdDc1MzBfcHJvYmVfY29tbW9uJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZHNhL210NzUzMC5jJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2RzYS9tdDc1MzAuYz0zNDY2PWludFxuZHJpdmVycy9uZXQvZHNhL210NzUzMC5jOjM0Njc6bXQ3NTMwX3Byb2JlX2NvbW1vbihzdHJ1Y3QgbXQ3NTMwX3ByaXYgKnByaXYpXG5kcml2ZXJzL25ldC9kc2EvbXQ3NTMwLmMtMzQ2OC17XG4tLVxuZHJpdmVycy9uZXQvZHNhL210NzUzMC5jLTM0OTctfVxuZHJpdmVycy9uZXQvZHNhL210NzUzMC5jOjM0OTg6RVhQT1JUX1NZTUJPTF9HUEwobXQ3NTMwX3Byb2JlX2NvbW1vbik7XG5kcml2ZXJzL25ldC9kc2EvbXQ3NTMwLmMtMzQ5OS1cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNy8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjAgMjA6NDc8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogOTYzNwoJCQkJCQkJb3V0cHV0OiA0MwoJCQkJCQkJdGhvdWdodHM6IDE4CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5IZXJlJiMzOTtzIG15IGF0dGVtcHQgYXQgc3VtbWFyaXppbmcgdGhlIHRob3VnaHQgcHJvY2VzcywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZToKCioqRGl2aW5nIGludG8gdGhlIGBtdDc1MzBfcHJvYmVfY29tbW9uYCBGdW5jdGlvbioqCgpPa2F5LCBzbyBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGlzIGBtdDc1MzBfcHJvYmVfY29tbW9uYCBmdW5jdGlvbi4gR2l2ZW4gdGhlIG5hbWluZyBjb252ZW50aW9uLCBJJiMzOTttIGd1ZXNzaW5nIGl0JiMzOTtzIGEgY29tbW9uIHByb2JlIGZ1bmN0aW9uIHNwZWNpZmljYWxseSBmb3IgdGhlIE1lZGlhVGVrIE1UNzUzMCBzd2l0Y2ggY2hpcC4gVGhhdCBsaWtlbHkgbWVhbnMgaXQgaGFuZGxlcyB0aGUgaW5pdGlhbCBzZXR1cCBhbmQgY29uZmlndXJhdGlvbiB0YXNrcyBzaGFyZWQgYWNyb3NzIHZhcmlvdXMgZHJpdmVyIGltcGxlbWVudGF0aW9ucyBmb3IgdGhpcyBoYXJkd2FyZS4gSSB3YW50IHRvIHNlZSB3aGF0IGluaXRpYWxpemF0aW9uIHRoZSBwcm9iZSBmdW5jdGlvbiBoYW5kbGVzLgoKSSYjMzk7bSBwcm9iYWJseSBnb2luZyB0byBiZSBsb29raW5nIGZvciB0aGluZ3MgbGlrZToKCiogICAqKlJlc291cmNlIGFsbG9jYXRpb24qKjogQ2hlY2tpbmcgaG93IGl0IGhhbmRsZXMgSVJRcywgbWVtb3J5IHJlZ2lvbnMsIGFuZCBhbnkgb3RoZXIgcmVxdWlyZWQgcmVzb3VyY2VzIHVzaW5nIHBsYXRmb3JtIGRhdGEuCiogICAqKkhhcmR3YXJlIHJlc2V0Kio6IERvZXMgaXQgcGVyZm9ybSBhbnkgaGFyZHdhcmUgcmVzZXQgc2VxdWVuY2U/IFRoaXMgaXMgYSBwcmV0dHkgc3RhbmRhcmQgcGFydCBvZiBwcm9iaW5nLgoqICAgKipSZWdpc3RlciBhY2Nlc3MqKjogSSBuZWVkIHRvIHNlZSBob3cgaXQgc2V0cyB1cCBhbnkgYmFzZSBhZGRyZXNzIHJlZ2lzdGVycyB0byB0YWxrIHRvIHRoZSBjaGlwLiBJcyBpdCB1c2luZyBNTUlPIG9yIEkyQy9TUEk/CiogICAqKkNsb2NrIHNldHVwKio6IFRoaXMgaXMgdmVyeSBpbXBvcnRhbnQuIEkgZXhwZWN0IHRoZXJlIHRvIGJlIHNvbWUgY2xvY2sgaW5pdGlhbGl6YXRpb24gdG8gbWFrZSBzdXJlIHRoZSBzd2l0Y2ggaGFzIGEgc3RhYmxlIGNsb2NrIGJlZm9yZSBwcm9jZWVkaW5nIHdpdGggYW55dGhpbmcgZWxzZS4KKiAgICoqRHJpdmVyIGRhdGEgc3RydWN0dXJlcyoqOiBMaWtlbHksIHRoZXJlJiMzOTtsbCBiZSBpbml0aWFsIGFsbG9jYXRpb24gYW5kIHNldHVwIG9mIGRhdGEgc3RydWN0dXJlcyBzcGVjaWZpYyB0byB0aGUgbXQ3NTMwLgoqICAgKipJbnRlcnJ1cHQgSGFuZGxpbmcqKjogU2V0dGluZyB1cCBpbnRlcnJ1cHQgaGFuZGxlcnMsIGVuYWJsaW5nIGludGVycnVwdHMgb24gdGhlIHN3aXRjaC4KKiAgICoqUGh5IGNvbmZpZ3VyYXRpb24qKjogUG9zc2libHkgcmVsYXRlZCB0byB0aGUgaW50ZXJuYWwgUEhZLgoKSSYjMzk7bSBhbHNvIGN1cmlvdXMgYWJvdXQgZXJyb3IgaGFuZGxpbmcuIEkgaG9wZSB0byBzZWUgcm9idXN0IGVycm9yIGNoZWNrcyBhbmQgcmVwb3J0aW5nLCBlc3BlY2lhbGx5IGFyb3VuZCByZXNvdXJjZSBhbGxvY2F0aW9uLiBJZGVhbGx5LCBpdCBoYW5kbGVzIHBvdGVudGlhbCBoYXJkd2FyZSBmYWlsdXJlcyBncmFjZWZ1bGx5LCBwZXJoYXBzIGJ5IGZhbGxpbmcgYmFjayB0byBhIHNhZmUgbW9kZSBvciByZXR1cm5pbmcgYW4gYXBwcm9wcmlhdGUgZXJyb3IgY29kZS4gRmluYWxseSwgSSYjMzk7bGwgYmUgbG9va2luZyBmb3IgcmVmZXJlbmNlcyB0byBhbnkgb3RoZXIgZnVuY3Rpb25zIHRoYXQgYXJlIGNhbGxlZCwgdG8gc2VlIGhvdyB0aGUgb3ZlcmFsbCBwcm9iZSBwcm9jZXNzIGlzIHN0cnVjdHVyZWQuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzIwIDIwOjQ3PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+cmVhZC1maWxlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtGaWxlJiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZHNhL210NzUzMC5jJiMzNDssCiAgJiMzNDtGaXJzdExpbmUmIzM0OzogMzQ2NiwKICAmIzM0O0xpbmVDb3VudCYjMzQ7OiA1MAp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7Q29udGVudHMmIzM0OzogJiMzNDszNDY2Olx0aW50XG4zNDY3Olx0bXQ3NTMwX3Byb2JlX2NvbW1vbihzdHJ1Y3QgbXQ3NTMwX3ByaXYgKnByaXYpXG4zNDY4Olx0e1xuMzQ2OTpcdFx0c3RydWN0IGRldmljZSAqZGV2ID0gcHJpdi1cdTAwM2VkZXY7XG4zNDcwOlx0XG4zNDcxOlx0XHRwcml2LVx1MDAzZWRzID0gZGV2bV9remFsbG9jKGRldiwgc2l6ZW9mKCpwcml2LVx1MDAzZWRzKSwgR0ZQX0tFUk5FTCk7XG4zNDcyOlx0XHRpZiAoIXByaXYtXHUwMDNlZHMpXG4zNDczOlx0XHRcdHJldHVybiAtRU5PTUVNO1xuMzQ3NDpcdFxuMzQ3NTpcdFx0cHJpdi1cdTAwM2Vkcy1cdTAwM2VkZXYgPSBkZXY7XG4zNDc2Olx0XHRwcml2LVx1MDAzZWRzLVx1MDAzZW51bV9wb3J0cyA9IE1UNzUzMF9OVU1fUE9SVFM7XG4zNDc3Olx0XG4zNDc4Olx0XHQvKiBHZXQgdGhlIGhhcmR3YXJlIGlkZW50aWZpZXIgZnJvbSB0aGUgZGV2aWNldHJlZSBub2RlLlxuMzQ3OTpcdFx0ICogV2Ugd2lsbCBuZWVkIGl0IGZvciBzb21lIG9mIHRoZSBjbG9jayBhbmQgcmVndWxhdG9yIHNldHVwLlxuMzQ4MDpcdFx0ICovXG4zNDgxOlx0XHRwcml2LVx1MDAzZWluZm8gPSBvZl9kZXZpY2VfZ2V0X21hdGNoX2RhdGEoZGV2KTtcbjM0ODI6XHRcdGlmICghcHJpdi1cdTAwM2VpbmZvKVxuMzQ4MzpcdFx0XHRyZXR1cm4gLUVJTlZBTDtcbjM0ODQ6XHRcbjM0ODU6XHRcdHByaXYtXHUwMDNlaWQgPSBwcml2LVx1MDAzZWluZm8tXHUwMDNlaWQ7XG4zNDg2Olx0XHRwcml2LVx1MDAzZWRldiA9IGRldjtcbjM0ODc6XHRcdHByaXYtXHUwMDNlZHMtXHUwMDNlcHJpdiA9IHByaXY7XG4zNDg4Olx0XHRwcml2LVx1MDAzZWRzLVx1MDAzZW9wcyA9IFx1MDAyNm10NzUzMF9zd2l0Y2hfb3BzO1xuMzQ4OTpcdFx0cHJpdi1cdTAwM2Vkcy1cdTAwM2VwaHlsaW5rX21hY19vcHMgPSBcdTAwMjZtdDc1M3hfcGh5bGlua19tYWNfb3BzO1xuMzQ5MDpcdFx0bXV0ZXhfaW5pdChcdTAwMjZwcml2LVx1MDAzZXJlZ19tdXRleCk7XG4zNDkxOlx0XHRzcGluX2xvY2tfaW5pdChcdTAwMjZwcml2LVx1MDAzZXN0YXRzX2xvY2spO1xuMzQ5MjpcdFx0SU5JVF9ERUxBWUVEX1dPUksoXHUwMDI2cHJpdi1cdTAwM2VzdGF0c193b3JrLCBtdDc1MzBfc3RhdHNfcG9sbCk7XG4zNDkzOlx0XG4zNDk0Olx0XHRkZXZfc2V0X2RydmRhdGEoZGV2LCBwcml2KTtcbjM0OTU6XHRcbjM0OTY6XHRcdHJldHVybiAwO1xuMzQ5NzpcdH1cbjM0OTg6XHRFWFBPUlRfU1lNQk9MX0dQTChtdDc1MzBfcHJvYmVfY29tbW9uKTtcbjM0OTk6XHRcbjM1MDA6XHR2b2lkXG4zNTAxOlx0bXQ3NTMwX3JlbW92ZV9jb21tb24oc3RydWN0IG10NzUzMF9wcml2ICpwcml2KVxuMzUwMjpcdHtcbjM1MDM6XHRcdGlmIChwcml2LVx1MDAzZWlycV9kb21haW4pXG4zNTA0Olx0XHRcdG10NzUzMF9mcmVlX21kaW9faXJxKHByaXYpO1xuMzUwNTpcdFxuMzUwNjpcdFx0ZHNhX3VucmVnaXN0ZXJfc3dpdGNoKHByaXYtXHUwMDNlZHMpO1xuMzUwNzpcdFxuMzUwODpcdFx0bXV0ZXhfZGVzdHJveShcdTAwMjZwcml2LVx1MDAzZXJlZ19tdXRleCk7XG4zNTA5Olx0fVxuMzUxMDpcdEVYUE9SVF9TWU1CT0xfR1BMKG10NzUzMF9yZW1vdmVfY29tbW9uKTtcbjM1MTE6XHRcbjM1MTI6XHRNT0RVTEVfQVVUSE9SKFwmIzM0O1NlYW4gV2FuZyBcdTAwM2NzZWFuLndhbmdAbWVkaWF0ZWsuY29tXHUwMDNlXCYjMzQ7KTtcbjM1MTM6XHRNT0RVTEVfREVTQ1JJUFRJT04oXCYjMzQ7RHJpdmVyIGZvciBNZWRpYXRlayBNVDc1MzAgU3dpdGNoXCYjMzQ7KTtcbjM1MTQ6XHRNT0RVTEVfTElDRU5TRShcJiMzNDtHUExcJiMzNDspO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE5LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yMCAyMDo0NzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxMDg2NAoJCQkJCQkJb3V0cHV0OiAzOAoJCQkJCQkJdGhvdWdodHM6IDM5CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBsZXQgbWUgdGhpbmsgdGhpcyB0aHJvdWdoLi4uCgoqKkFuYWx5emluZyB0aGUgbXQ3NTMwIERyaXZlciBJbml0aWFsaXphdGlvbioqCgpIb2xkIG9uIGEgc2Vjb25kLCB0aGF0IGBtdDc1MzBfcHJvYmVfY29tbW9uYCBmdW5jdGlvbiBkb2VzbiYjMzk7dCBhY3R1YWxseSAqcmVnaXN0ZXIqIHRoZSBzd2l0Y2ggd2l0aCB0aGUgRFNBIHN1YnN5c3RlbS4gSXQganVzdCBzZXRzIHVwIHRoZSBpbnRlcm5hbCBzdHJ1Y3R1cmVzLCBpbml0aWFsaXNpbmcgZXZlcnl0aGluZy4gSXQmIzM5O3MgdGhlIGJ1aWxkaW5nIGJsb2Nrcywgbm90IHRoZSBmaW5pc2hlZCBwcm9kdWN0LiBPa2F5Li4uc28gd2hlcmUgaXMgdGhlIHJlZ2lzdHJhdGlvbiBoYXBwZW5pbmc/IEkgbmVlZCB0byBmaW5kIHRoZSBjYWxsIHRvIGBkc2FfcmVnaXN0ZXJfc3dpdGNoYC4gVGhhdCYjMzk7cyB0aGUgY3J1Y2lhbCBzdGVwLiBJIGNhbiYjMzk7dCBiZSBvdmVybG9va2luZyBhIG1pc2ludGVycHJldGF0aW9uIG9mIGEgZnVuY3Rpb24gY2FsbC4gTmVlZCB0byB0cmFjZSB0aGlzIHRocm91Z2gsIHVuZGVyc3RhbmQgdGhlIGNvbnRyb2wgZmxvdywgZmluZCB3aGVyZSB0aGUgc3dpdGNoIG9mZmljaWFsbHkgYmVjb21lcyBrbm93biB0byB0aGUgc3lzdGVtLiBXaGVyZSBpcyB0aGF0IGNydWNpYWwgcmVnaXN0cmF0aW9uIG9jY3VycmluZz8gR290dGEgdHJhY2UgdGhlIGNhbGwgc3RhY2sgbm93Li4uCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzIwIDIwOjQ3PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5FcnJvcjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm5vIG1hdGNoZXM8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7ZHNhX3JlZ2lzdGVyX3N3aXRjaCYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2RzYS9tdDc1MzAmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7ZXJyb3ImIzM0OzogJiMzNDtubyBtYXRjaGVzJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIxLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yMCAyMDo0NzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxMTExNAoJCQkJCQkJb3V0cHV0OiA0MwoJCQkJCQkJdGhvdWdodHM6IDM4CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IGludGVycHJldGF0aW9uIG9mIHRob3NlIHRob3VnaHRzLCBzdW1tYXJpemVkIGZyb20gYSBmaXJzdC1wZXJzb24gZXhwZXJ0IHBlcnNwZWN0aXZlOgoKKipJbnZlc3RpZ2F0aW5nIFN3aXRjaCBEcml2ZXIgUmVnaXN0cmF0aW9uKioKClJpZ2h0LCBzbyBJIG5lZWQgdG8gZGlnIGludG8gaG93IHRoaXMgc3dpdGNoIGRyaXZlciBpcyBiZWluZyByZWdpc3RlcmVkLiBTaW5jZSB3ZSYjMzk7cmUgZGVhbGluZyB3aXRoIGEgTWVkaWFUZWsgTVQ3NTMwLWJhc2VkIHN3aXRjaCwgSSYjMzk7bSBnb2luZyB0byBzdGFydCBieSBleGFtaW5pbmcgdGhlIGNvcmUgZHJpdmVyIGZpbGVzLiBTcGVjaWZpY2FsbHksIEkgbmVlZCB0byBjaGVjayBgbXQ3NTMwLW1kaW8uY2AgYW5kIGBtdDc1MzAtbW1pby5jYC4gVGhlIGNyaXRpY2FsIGZ1bmN0aW9uIEkmIzM5O20gbG9va2luZyBmb3IgaW4gZWl0aGVyIG9yIGJvdGggb2YgdGhlc2UgZmlsZXMgd2lsbCBiZSBgZHNhX3JlZ2lzdGVyX3N3aXRjaGAuIFRoYXQmIzM5O3MgdGhlIGtleSB0byB1bmRlcnN0YW5kaW5nIGhvdyB0aGUgc3dpdGNoIGl0c2VsZiBpcyBpbnRlZ3JhdGVkIGludG8gdGhlIERTQSBmcmFtZXdvcmsgYW5kIGluaXRpYWxpemVkIHdpdGhpbiB0aGUga2VybmVsLiBJJiMzOTtsbCBiZSBsb29raW5nIGF0IHRoZSBhcmd1bWVudHMgaXQgdGFrZXMsIHRoZSBzZXF1ZW5jZSBvZiBvcGVyYXRpb25zIGJlZm9yZSBhbmQgYWZ0ZXIgaXQmIzM5O3MgY2FsbGVkLCBhbmQgaG93IGl0IGhhbmRsZXMgcG90ZW50aWFsIGVycm9ycy4gVGhpcyB3aWxsIGhlbHAgbWUgdW5kZXJzdGFuZCB0aGUgZHJpdmVyJiMzOTtzIG92ZXJhbGwgaW5pdGlhbGl6YXRpb24gcHJvY2Vzcy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yMi8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjAgMjA6NDc8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7ZHNhX3JlZ2lzdGVyX3N3aXRjaCYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2RzYS9tdDc1MzAtbWRpby5jJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2RzYS9tdDc1MzAtbWRpby5jPTE1NT1tdDc1MzBfcHJvYmUoc3RydWN0IG1kaW9fZGV2aWNlICptZGlvZGV2KVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9tdDc1MzAtbWRpby5jLTIxNy1cbmRyaXZlcnMvbmV0L2RzYS9tdDc1MzAtbWRpby5jOjIxODpcdHJldHVybiBkc2FfcmVnaXN0ZXJfc3dpdGNoKHByaXYtXHUwMDNlZHMpO1xuZHJpdmVycy9uZXQvZHNhL210NzUzMC1tZGlvLmMtMjE5LX1cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yMy8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjAgMjA6NDc8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTE1MzEKCQkJCQkJCW91dHB1dDogNDUKCQkJCQkJCXRob3VnaHRzOiAyNgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+SGVyZSYjMzk7cyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlOgoKKipEaXZpbmcgaW50byB0aGUgTVQ3NTMwIFByb2JlIEZ1bmN0aW9uKioKCk9rYXksIHRpbWUgdG8gZ2V0IG15IGhhbmRzIGRpcnR5LiBJIG5lZWQgdG8gdGFrZSBhIGxvb2sgYXQgdGhlIGBtdDc1MzBfcHJvYmVgIGZ1bmN0aW9uLiBTcGVjaWZpY2FsbHksIEkmIzM5O20gaGVhZGluZyBvdmVyIHRvIGBtdDc1MzAtbWRpby5jYC4gVGhpcyBpcyB3aGVyZSB0aGUgaW5pdGlhbCBicmluZy11cCBsb2dpYyByZXNpZGVzLCBzbyBJJiMzOTttIGV4cGVjdGluZyB0byBmaW5kIHRoZSBzdGFuZGFyZCBkZXZpY2UgcmVnaXN0cmF0aW9uLCByZXNvdXJjZSBhbGxvY2F0aW9uLCBhbmQgbGlrZWx5IHNvbWUgYmFzaWMgaGFyZHdhcmUgaW5pdGlhbGl6YXRpb24gc2VxdWVuY2VzLiBJJiMzOTttIGtlZW4gdG8gc2VlIGhvdyB0aGUgTURJTyBidXMgaXMgYmVpbmcgaGFuZGxlZCDigJMgaG93IHRoZXkmIzM5O3JlIGFjY2Vzc2luZyB0aGUgUEhZIHJlZ2lzdGVycyBhbmQgc2V0dGluZyB1cCBjb21tdW5pY2F0aW9uLiBHaXZlbiB0aGUgY29tcGxleGl0eSBvZiB0aGVzZSBzd2l0Y2ggY2hpcHMsIEkmIzM5O2xsIGJlIGtlZXBpbmcgYW4gZXllIG91dCBmb3IgcG90ZW50aWFsIHBpdGZhbGxzIHJlbGF0ZWQgdG8gY2xvY2sgY29uZmlndXJhdGlvbiwgaW50ZXJydXB0IGhhbmRsaW5nLCBhbmQgYW55IHF1aXJreSBNZWRpYVRlay1zcGVjaWZpYyByZWdpc3RlciBzZXR0aW5ncyB0aGF0IG1pZ2h0IG5lZWQgY2FyZWZ1bCBhdHRlbnRpb24uIEkgd2FudCB0byBzZWUgaG93IHRoZSBwcm9iZSBoYW5kbGVzIGRpZmZlcmVudCByZXZpc2lvbnMgb2YgdGhlIE1UNzUzMCBhcyB3ZWxsLCBpZiB0aGV5IGFyZSBtYWtpbmcgdGhhdCBraW5kIG9mIGRpc3RpbmN0aW9uIHdpdGhpbiB0aGUgY29kZS4gTGV0JiMzOTtzIGRpZyBpbiBhbmQgc2VlIHdoYXQmIzM5O3Mgd2hhdC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yNC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjAgMjA6NDc8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5yZWFkLWZpbGU8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGUmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9kc2EvbXQ3NTMwLW1kaW8uYyYjMzQ7LAogICYjMzQ7Rmlyc3RMaW5lJiMzNDs6IDE1NSwKICAmIzM0O0xpbmVDb3VudCYjMzQ7OiA2NQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7Q29udGVudHMmIzM0OzogJiMzNDsgMTU1Olx0bXQ3NTMwX3Byb2JlKHN0cnVjdCBtZGlvX2RldmljZSAqbWRpb2RldilcbiAxNTY6XHR7XG4gMTU3Olx0XHRzdHJ1Y3QgbXQ3NTMwX3ByaXYgKnByaXY7XG4gMTU4Olx0XHRzdHJ1Y3QgZGV2aWNlX25vZGUgKmRuO1xuIDE1OTpcdFx0aW50IHJldDtcbiAxNjA6XHRcbiAxNjE6XHRcdGRuID0gbWRpb2Rldi1cdTAwM2VkZXYub2Zfbm9kZTtcbiAxNjI6XHRcbiAxNjM6XHRcdHByaXYgPSBkZXZtX2t6YWxsb2MoXHUwMDI2bWRpb2Rldi1cdTAwM2VkZXYsIHNpemVvZigqcHJpdiksIEdGUF9LRVJORUwpO1xuIDE2NDpcdFx0aWYgKCFwcml2KVxuIDE2NTpcdFx0XHRyZXR1cm4gLUVOT01FTTtcbiAxNjY6XHRcbiAxNjc6XHRcdHByaXYtXHUwMDNlYnVzID0gbWRpb2Rldi1cdTAwM2VidXM7XG4gMTY4Olx0XHRwcml2LVx1MDAzZWRldiA9IFx1MDAyNm1kaW9kZXYtXHUwMDNlZGV2O1xuIDE2OTpcdFx0cHJpdi1cdTAwM2VtZGlvZGV2ID0gbWRpb2RldjtcbiAxNzA6XHRcbiAxNzE6XHRcdHJldCA9IG10NzUzMF9wcm9iZV9jb21tb24ocHJpdik7XG4gMTcyOlx0XHRpZiAocmV0KVxuIDE3MzpcdFx0XHRyZXR1cm4gcmV0O1xuIDE3NDpcdFxuIDE3NTpcdFx0LyogVXNlIG1lZGF0ZWssbWNtIHByb3BlcnR5IHRvIGRpc3Rpbmd1aXNoIGhhcmR3YXJlIHR5cGUgdGhhdCB3b3VsZFxuIDE3NjpcdFx0ICogY2F1c2UgYSBsaXR0bGUgYml0IGRpZmZlcmVuY2VzIG9uIHBvd2VyLW9uIHNlcXVlbmNlLlxuIDE3NzpcdFx0ICogTm90IE1DTSB0aGF0IGluZGljYXRlcyBzd2l0Y2ggd29ya3MgYXMgdGhlIHJlbW90ZSBzdGFuZGFsb25lXG4gMTc4Olx0XHQgKiBpbnRlZ3JhdGVkIGNpcmN1aXQgc28gdGhlIEdQSU8gcGluIHdvdWxkIGJlIHVzZWQgdG8gY29tcGxldGVcbiAxNzk6XHRcdCAqIHRoZSByZXNldCwgb3RoZXJ3aXNlIG1lbW9yeS1tYXBwZWQgcmVnaXN0ZXIgYWNjZXNzaW5nIHVzZWRcbiAxODA6XHRcdCAqIHRocm91Z2ggc3lzY29uIHByb3ZpZGVzIGluIHRoZSBjYXNlIG9mIE1DTS5cbiAxODE6XHRcdCAqL1xuIDE4MjpcdFx0cHJpdi1cdTAwM2VtY20gPSBvZl9wcm9wZXJ0eV9yZWFkX2Jvb2woZG4sIFwmIzM0O21lZGlhdGVrLG1jbVwmIzM0Oyk7XG4gMTgzOlx0XHRpZiAocHJpdi1cdTAwM2VtY20pIHtcbiAxODQ6XHRcdFx0ZGV2X2luZm8oXHUwMDI2bWRpb2Rldi1cdTAwM2VkZXYsIFwmIzM0O01UNzUzMCBhZGFwdHMgYXMgbXVsdGktY2hpcCBtb2R1bGVcXG5cJiMzNDspO1xuIDE4NTpcdFxuIDE4NjpcdFx0XHRwcml2LVx1MDAzZXJzdGMgPSBkZXZtX3Jlc2V0X2NvbnRyb2xfZ2V0KFx1MDAyNm1kaW9kZXYtXHUwMDNlZGV2LCBcJiMzNDttY21cJiMzNDspO1xuIDE4NzpcdFx0XHRpZiAoSVNfRVJSKHByaXYtXHUwMDNlcnN0YykpIHtcbiAxODg6XHRcdFx0XHRkZXZfZXJyKFx1MDAyNm1kaW9kZXYtXHUwMDNlZGV2LCBcJiMzNDtDb3VsZG4mIzM5O3QgZ2V0IG91ciByZXNldCBsaW5lXFxuXCYjMzQ7KTtcbiAxODk6XHRcdFx0XHRyZXR1cm4gUFRSX0VSUihwcml2LVx1MDAzZXJzdGMpO1xuIDE5MDpcdFx0XHR9XG4gMTkxOlx0XHR9IGVsc2Uge1xuIDE5MjpcdFx0XHRwcml2LVx1MDAzZXJlc2V0ID0gZGV2bV9ncGlvZF9nZXRfb3B0aW9uYWwoXHUwMDI2bWRpb2Rldi1cdTAwM2VkZXYsIFwmIzM0O3Jlc2V0XCYjMzQ7LFxuIDE5MzpcdFx0XHRcdFx0XHRcdCAgICAgIEdQSU9EX09VVF9MT1cpO1xuIDE5NDpcdFx0XHRpZiAoSVNfRVJSKHByaXYtXHUwMDNlcmVzZXQpKSB7XG4gMTk1Olx0XHRcdFx0ZGV2X2VycihcdTAwMjZtZGlvZGV2LVx1MDAzZWRldiwgXCYjMzQ7Q291bGRuJiMzOTt0IGdldCBvdXIgcmVzZXQgbGluZVxcblwmIzM0Oyk7XG4gMTk2Olx0XHRcdFx0cmV0dXJuIFBUUl9FUlIocHJpdi1cdTAwM2VyZXNldCk7XG4gMTk3Olx0XHRcdH1cbiAxOTg6XHRcdH1cbiAxOTk6XHRcbiAyMDA6XHRcdGlmIChwcml2LVx1MDAzZWlkID09IElEX01UNzUzMCkge1xuIDIwMTpcdFx0XHRwcml2LVx1MDAzZWNvcmVfcHdyID0gZGV2bV9yZWd1bGF0b3JfZ2V0KFx1MDAyNm1kaW9kZXYtXHUwMDNlZGV2LCBcJiMzNDtjb3JlXCYjMzQ7KTtcbiAyMDI6XHRcdFx0aWYgKElTX0VSUihwcml2LVx1MDAzZWNvcmVfcHdyKSlcbiAyMDM6XHRcdFx0XHRyZXR1cm4gUFRSX0VSUihwcml2LVx1MDAzZWNvcmVfcHdyKTtcbiAyMDQ6XHRcbiAyMDU6XHRcdFx0cHJpdi1cdTAwM2Vpb19wd3IgPSBkZXZtX3JlZ3VsYXRvcl9nZXQoXHUwMDI2bWRpb2Rldi1cdTAwM2VkZXYsIFwmIzM0O2lvXCYjMzQ7KTtcbiAyMDY6XHRcdFx0aWYgKElTX0VSUihwcml2LVx1MDAzZWlvX3B3cikpXG4gMjA3Olx0XHRcdFx0cmV0dXJuIFBUUl9FUlIocHJpdi1cdTAwM2Vpb19wd3IpO1xuIDIwODpcdFx0fVxuIDIwOTpcdFxuIDIxMDpcdFx0cHJpdi1cdTAwM2VyZWdtYXAgPSBkZXZtX3JlZ21hcF9pbml0KHByaXYtXHUwMDNlZGV2LCBcdTAwMjZtdDc1MzBfcmVnbWFwX2J1cywgcHJpdixcbiAyMTE6XHRcdFx0XHRcdFx0XHUwMDI2cmVnbWFwX2NvbmZpZyk7XG4gMjEyOlx0XHRpZiAoSVNfRVJSKHByaXYtXHUwMDNlcmVnbWFwKSlcbiAyMTM6XHRcdFx0cmV0dXJuIFBUUl9FUlIocHJpdi1cdTAwM2VyZWdtYXApO1xuIDIxNDpcdFxuIDIxNTpcdFx0aWYgKHByaXYtXHUwMDNlaWQgPT0gSURfTVQ3NTMxKVxuIDIxNjpcdFx0XHRwcml2LVx1MDAzZWNyZWF0ZV9zZ21paSA9IG10NzUzMV9jcmVhdGVfc2dtaWk7XG4gMjE3Olx0XG4gMjE4Olx0XHRyZXR1cm4gZHNhX3JlZ2lzdGVyX3N3aXRjaChwcml2LVx1MDAzZWRzKTtcbiAyMTk6XHR9XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzIwIDIwOjQ3PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDEyOTI2CgkJCQkJCQlvdXRwdXQ6IDI5CgkJCQkJCQl0aG91Z2h0czogMjU4CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKk15IEFzc2Vzc21lbnQgb2YgdGhlIE1UNzUzMCBEcml2ZXIgYW5kIFN5emthbGxlciYjMzk7cyBQb3RlbnRpYWwqKgoKT2theSwgc28gSSYjMzk7bSB0aGlua2luZyBhYm91dCBob3cgdGhlIGBtdDc1MzBgIHN3aXRjaCBnZXRzIGluaXRpYWxpemVkIHdpdGhpbiB0aGUgRFNBIGZyYW1ld29yay4gSXQgc2VlbXMgbGlrZSBgbXQ3NTMwX3Byb2JlYCBpcyB0aGUgc3RhcnRpbmcgcG9pbnQsIHJlZ2lzdGVyaW5nIHRoZSBzd2l0Y2guIFRoZW4sIERTQSwgYXMgZXhwZWN0ZWQsIGNhbGxzIGBtdDc1MzBfc2V0dXBgIHRocm91Z2ggYHByaXYtJmd0O2luZm8tJmd0O3N3X3NldHVwKGRzKWAuIFRoYXQgbWFrZXMgc2Vuc2UuIE5vdywgYG10NzUzMF9zZXR1cGAgcmVsaWVzIG9uIGBtdDc1MzBfcmVhZGAgYW5kIGBtdDc1MzBfd3JpdGVgIHRvIGludGVyYWN0IHdpdGggdGhlIGhhcmR3YXJlLCB1c2luZyB0aGUgTURJTyBidXMuCgpNeSBpbW1lZGlhdGUgY29uY2VybiBpcyBoYXJkd2FyZSBwcmVzZW5jZS4gSWYgdGhlIE1ESU8gYnVzIGlzbiYjMzk7dCBjb25uZWN0ZWQgdG8gYSByZWFsIGRldmljZSwgdGhvc2UgcmVhZC93cml0ZSBvcGVyYXRpb25zIHdpbGwgZWl0aGVyIGZhaWwgb3IsIHdvcnNlLCByZXR1cm4gcmFuZG9tIGdhcmJhZ2UuIFRoYXQgaW1tZWRpYXRlbHkgbWFrZXMgbWUgY29uc2lkZXIgc3l6a2FsbGVyLiBEb2VzIGl0IGhhdmUgYSBtZWNoYW5pc20gdG8gaW5qZWN0IG9yIGVtdWxhdGUgTURJTyBkZXZpY2VzPyBJIGtub3cgc3l6a2FsbGVyIGlzIGZhbnRhc3RpYyBmb3IgZnV6emluZyBhbmQgaGFzIGRlZXAga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwsIGJ1dCBJIGRvbiYjMzk7dCByZWNhbGwgc2VlaW5nIGdlbmVyYWwgTURJTyBkZXZpY2UgaW5qZWN0aW9uIGNhcGFiaWxpdGllcy4gSXQgY2FuIGluamVjdCBVU0IsIFBDSSwgYW5kIHNvbWUgdmlydHVhbCBuZXQgZGV2aWNlcywgYnV0IE1ESU8gc2VlbXMgZGlmZmVyZW50LiBJIHRob3VnaHQgSSByZW1lbWJlcmVkIHNvbWV0aGluZyBhYm91dCBsb2FkaW5nIGRldmljZSB0cmVlcyB3aXRoIGBzeXpfbW91bnRfaW1hZ2VgIG9yIGEgc2ltaWxhciBmdW5jdGlvbi4gQnV0IG5vLCBzeXprYWxsZXIgZG9lc24mIzM5O3QgZ2VuZXJhbGx5IGxvYWQgYXJiaXRyYXJ5IGRldmljZSB0cmVlcyBvbiB0aGUgZmx5IHRvIHByb2JlIHBsYXRmb3JtL01ESU8gZHJpdmVycyB1bmxlc3MgaXQmIzM5O3MgYSB2ZXJ5IHNwZWNpZmljIHRlc3QgY2FzZS4KClRoZW4sIHRoZXJlIGFyZSB0aGUgc3l6a2FsbGVyIGNhbGxzIGxpa2UgYHN5el9nZW5ldGxpbmtfZ2V0X2ZhbWlseV9pZGAuIEkgd29uZGVyIGlmIHRoZXJlIGFyZSBhbnkgc3l6a2FsbGVyIGRlc2NyaXB0aW9ucyBmb3IgTURJTyBvciBEU0EgdGhhdCBtaWdodCBzaGVkIHNvbWUgbGlnaHQgb24gdGhlIHN1YmplY3QuIEkgbmVlZCB0byBkZXRlcm1pbmUgaWYgdGhlIGBtdDc1MzBgIGRyaXZlciBvciB0aGUgTURJTyBidXMgaXRzZWxmIGlzIHJlYWNoYWJsZSB0aHJvdWdoIHN5emthbGxlci4gSSBzaG91bGQgY2hlY2sgaWYgdGhlcmUgYXJlIGFueSBzeXprYWxsZXIgZGVmaW5pdGlvbnMgcmVsYXRlZCB0byB0aG9zZSBhcmVhcy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yNi8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjAgMjA6NDg8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkVycm9yOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bm8gbWF0Y2hlczwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDttdDc1MzAmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtuZXQvZHNhJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O2Vycm9yJiMzNDs6ICYjMzQ7bm8gbWF0Y2hlcyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yNy8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjAgMjA6NDg8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTM2MzIKCQkJCQkJCW91dHB1dDogMjYKCQkJCQkJCXRob3VnaHRzOiAxNQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+SGVyZSYjMzk7cyBteSBhdHRlbXB0IGF0IHN1bW1hcml6aW5nIHRoZSB0aG91Z2h0IHByb2Nlc3MsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2U6CgoqKkNoZWNraW5nIGZvciBFeGlzdGluZyBTeXprYWxsZXIgQ292ZXJhZ2Ugb2YgRFNBKioKCk9rYXksIGZpcnN0IHRoaW5ncyBmaXJzdCwgYmVmb3JlIEkgZGl2ZSBpbnRvIGFueSBuZXcgRFNBIGZ1enppbmcgYWR2ZW50dXJlcywgSSBuZWVkIHRvIHNlZSB3aGVyZSB3ZSBzdGFuZCB3aXRoIGV4aXN0aW5nIHN5emthbGxlciBjb3ZlcmFnZS4gSSYjMzk7bSBhc3N1bWluZyB0aGVyZSAqc2hvdWxkKiBiZSBzb21lIGV4aXN0aW5nIGRlc2NyaXB0aW9ucywgZ2l2ZW4gdGhlIHViaXF1aXR5IG9mIERTQSBpbXBsZW1lbnRhdGlvbnMuIEJ1dCBJIG5lZWQgdG8gYmUgc3VyZSBiZWZvcmUgSSBzdGFydCBmcm9tIHNjcmF0Y2guCgpTbywgSSYjMzk7bSB0aGlua2luZywgJiMzNDtMZXQmIzM5O3MgY2hlY2sgdGhlIHN5emthbGxlciByZXBvc2l0b3J5IGFuZCBhbnkgcmVsYXRlZCBmdXp6aW5nIGluZnJhc3RydWN0dXJlLiBMZXQmIzM5O3Mgc3RhcnQgd2l0aCBhIGZvY3VzZWQga2V5d29yZCBzZWFyY2ggb24gJiMzNDtEU0EmIzM0OyB0byBzZWUgaWYgYW55IHJlbGV2YW50IHN5c2NhbGwgZGVmaW5pdGlvbnMsIHJlc291cmNlIGRlZmluaXRpb25zLCBvciBldmVuIGV4aXN0aW5nIHRlc3QgY2FzZXMganVtcCBvdXQuIEkgYWxzbyBuZWVkIHRvIGNvbnNpZGVyIG90aGVyIHJlbGF0ZWQga2V5d29yZHMgb3IgYWJicmV2aWF0aW9ucyBsaWtlICYjMzQ7Y3J5cHRvJiMzNDssICYjMzQ7c2VjdXJpdHkmIzM0Oywgb3Igc3BlY2lmaWMgRFNBLXJlbGF0ZWQgZnVuY3Rpb25zLCBiZWNhdXNlIHN5emthbGxlciYjMzk7cyBjb3ZlcmFnZSBjYW4gc29tZXRpbWVzIGJlIGEgYml0IGZyYWdtZW50ZWQuIE1heWJlIHRoZXJlJiMzOTtzIERTQSBpbXBsZW1lbnRlZCBhcyBhIHBhcnQgb2YgYSBsYXJnZXIgY3J5cHRvLW1vZHVsZTsgSSBuZWVkIHRvIGtlZXAgdGhhdCBpbiBtaW5kLiBVbHRpbWF0ZWx5LCB0aGlzIHdpbGwgZ2l2ZSBtZSBhIGJhc2VsaW5lIGZvcjogMSkgV2hhdCBoYXMgYWxyZWFkeSBiZWVuIGRvbmUsIDIpIFdoaWNoIERTQS1yZWxhdGVkIHByaW1pdGl2ZXMgYXJlIHRhcmdldGVkLCBhbmQgMykgV2hldGhlciB0aGUgZXhpc3RpbmcgY292ZXJhZ2UgaXMgYnJvYWQgZW5vdWdoIHRvIGJlIGEgc29saWQgc3RhcnRpbmcgcG9pbnQgZm9yIGEgbW9yZSBmb2N1c2VkIGZ1enppbmcgY2FtcGFpZ24uIERlcGVuZGluZyBvbiBob3cgbXVjaCBJIGZpbmQsIHRoaXMgcHJlbGltaW5hcnkgY2hlY2sgaXMgZ29pbmcgdG8gaGVhdmlseSBpbmZsdWVuY2UgdGhlIGRpcmVjdGlvbiBJIHRha2UuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzIwIDIwOjQ4PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2RzYSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O25ldC9kc2EmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7XG5GdWxsIG91dHB1dCBpcyB0b28gbG9uZywgc2hvd2luZyA1MDAgb3V0IG9mIDgxMDQgbGluZXMuXG5Vc2UgbW9yZSBwcmVjaXNlIGV4cHJlc3Npb24gaWYgcG9zc2libGUuXG5cbm5ldC9kc2EvTWFrZWZpbGU9Nj1lbmRpZlxuLS1cbm5ldC9kc2EvTWFrZWZpbGUtOC0jIHRoZSBjb3JlXG5uZXQvZHNhL01ha2VmaWxlOjk6b2JqLSQoQ09ORklHX05FVF9EU0EpICYjNDM7PSBkc2FfY29yZS5vXG5uZXQvZHNhL01ha2VmaWxlOjEwOmRzYV9jb3JlLXkgJiM0Mzs9IFxcXG5uZXQvZHNhL01ha2VmaWxlLTExLVx0Y29uZHVpdC5vIFxcXG5uZXQvZHNhL01ha2VmaWxlLTEyLVx0ZGV2bGluay5vIFxcXG5uZXQvZHNhL01ha2VmaWxlOjEzOlx0ZHNhLm8gXFxcbm5ldC9kc2EvTWFrZWZpbGUtMTQtXHRuZXRsaW5rLm8gXFxcbi0tXG5uZXQvZHNhL01ha2VmaWxlPTI0PW9iai0kKENPTkZJR19ORVRfRFNBX1RBR19CUkNNX0NPTU1PTikgJiM0Mzs9IHRhZ19icmNtLm9cbm5ldC9kc2EvTWFrZWZpbGU6MjU6b2JqLSQoQ09ORklHX05FVF9EU0FfVEFHX0RTQV9DT01NT04pICYjNDM7PSB0YWdfZHNhLm9cbm5ldC9kc2EvTWFrZWZpbGUtMjYtb2JqLSQoQ09ORklHX05FVF9EU0FfVEFHX0dTV0lQKSAmIzQzOz0gdGFnX2dzd2lwLm9cbi0tXG5uZXQvZHNhL2NvbmR1aXQuYy0xMS0jaW5jbHVkZSBcdTAwM2NsaW51eC9uZXRsaW5rLmhcdTAwM2Vcbm5ldC9kc2EvY29uZHVpdC5jOjEyOiNpbmNsdWRlIFx1MDAzY25ldC9kc2EuaFx1MDAzZVxubmV0L2RzYS9jb25kdWl0LmMtMTMtI2luY2x1ZGUgXHUwMDNjbmV0L25ldGRldl9sb2NrLmhcdTAwM2Vcbi0tXG5uZXQvZHNhL2NvbmR1aXQuYy0xNS0jaW5jbHVkZSBcJiMzNDtjb25kdWl0LmhcJiMzNDtcbm5ldC9kc2EvY29uZHVpdC5jOjE2OiNpbmNsdWRlIFwmIzM0O2RzYS5oXCYjMzQ7XG5uZXQvZHNhL2NvbmR1aXQuYy0xNy0jaW5jbHVkZSBcJiMzNDtwb3J0LmhcJiMzNDtcbi0tXG5uZXQvZHNhL2NvbmR1aXQuYy0xOS1cbm5ldC9kc2EvY29uZHVpdC5jOjIwOnN0YXRpYyBpbnQgZHNhX2NvbmR1aXRfZ2V0X3JlZ3NfbGVuKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpXG5uZXQvZHNhL2NvbmR1aXQuYy0yMS17XG5uZXQvZHNhL2NvbmR1aXQuYzoyMjpcdHN0cnVjdCBkc2FfcG9ydCAqY3B1X2RwID0gZGV2LVx1MDAzZWRzYV9wdHI7XG5uZXQvZHNhL2NvbmR1aXQuYy0yMy1cdGNvbnN0IHN0cnVjdCBldGh0b29sX29wcyAqb3BzID0gY3B1X2RwLVx1MDAzZW9yaWdfZXRodG9vbF9vcHM7XG5uZXQvZHNhL2NvbmR1aXQuYzoyNDpcdHN0cnVjdCBkc2Ffc3dpdGNoICpkcyA9IGNwdV9kcC1cdTAwM2Vkcztcbm5ldC9kc2EvY29uZHVpdC5jLTI1LVx0aW50IHBvcnQgPSBjcHVfZHAtXHUwMDNlaW5kZXg7XG4tLVxubmV0L2RzYS9jb25kdWl0LmMtNDgtXG5uZXQvZHNhL2NvbmR1aXQuYzo0OTpzdGF0aWMgdm9pZCBkc2FfY29uZHVpdF9nZXRfcmVncyhzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LFxubmV0L2RzYS9jb25kdWl0LmMtNTAtXHRcdFx0XHQgc3RydWN0IGV0aHRvb2xfcmVncyAqcmVncywgdm9pZCAqZGF0YSlcbm5ldC9kc2EvY29uZHVpdC5jLTUxLXtcbm5ldC9kc2EvY29uZHVpdC5jOjUyOlx0c3RydWN0IGRzYV9wb3J0ICpjcHVfZHAgPSBkZXYtXHUwMDNlZHNhX3B0cjtcbm5ldC9kc2EvY29uZHVpdC5jLTUzLVx0Y29uc3Qgc3RydWN0IGV0aHRvb2xfb3BzICpvcHMgPSBjcHVfZHAtXHUwMDNlb3JpZ19ldGh0b29sX29wcztcbm5ldC9kc2EvY29uZHVpdC5jOjU0Olx0c3RydWN0IGRzYV9zd2l0Y2ggKmRzID0gY3B1X2RwLVx1MDAzZWRzO1xubmV0L2RzYS9jb25kdWl0LmMtNTUtXHRzdHJ1Y3QgZXRodG9vbF9kcnZpbmZvICpjcHVfaW5mbztcbi0tXG5uZXQvZHNhL2NvbmR1aXQuYy02OS1cdGNwdV9pbmZvID0gKHN0cnVjdCBldGh0b29sX2RydmluZm8gKilkYXRhO1xubmV0L2RzYS9jb25kdWl0LmM6NzA6XHRzdHJzY3B5KGNwdV9pbmZvLVx1MDAzZWRyaXZlciwgXCYjMzQ7ZHNhXCYjMzQ7LCBzaXplb2YoY3B1X2luZm8tXHUwMDNlZHJpdmVyKSk7XG5uZXQvZHNhL2NvbmR1aXQuYy03MS1cdGRhdGEgJiM0Mzs9IHNpemVvZigqY3B1X2luZm8pO1xuLS1cbm5ldC9kc2EvY29uZHVpdC5jLTgzLVxubmV0L2RzYS9jb25kdWl0LmM6ODQ6c3RhdGljIHNzaXplX3QgZHNhX2NvbmR1aXRfYXBwZW5kX3BvcnRfc3RhdHMoc3RydWN0IGRzYV9zd2l0Y2ggKmRzLCBpbnQgcG9ydCxcbm5ldC9kc2EvY29uZHVpdC5jLTg1LVx0XHRcdFx0XHQgICAgIHU2NCAqZGF0YSwgc2l6ZV90IHN0YXJ0KVxuLS1cbm5ldC9kc2EvY29uZHVpdC5jLTEwMS1cbm5ldC9kc2EvY29uZHVpdC5jOjEwMjpzdGF0aWMgdm9pZCBkc2FfY29uZHVpdF9nZXRfZXRodG9vbF9zdGF0cyhzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LFxubmV0L2RzYS9jb25kdWl0LmMtMTAzLVx0XHRcdFx0XHQgIHN0cnVjdCBldGh0b29sX3N0YXRzICpzdGF0cyxcbi0tXG5uZXQvZHNhL2NvbmR1aXQuYy0xMDUte1xubmV0L2RzYS9jb25kdWl0LmM6MTA2Olx0c3RydWN0IGRzYV9wb3J0ICpkcCwgKmNwdV9kcCA9IGRldi1cdTAwM2Vkc2FfcHRyO1xubmV0L2RzYS9jb25kdWl0LmMtMTA3LVx0Y29uc3Qgc3RydWN0IGV0aHRvb2xfb3BzICpvcHMgPSBjcHVfZHAtXHUwMDNlb3JpZ19ldGh0b29sX29wcztcbm5ldC9kc2EvY29uZHVpdC5jOjEwODpcdHN0cnVjdCBkc2Ffc3dpdGNoX3RyZWUgKmRzdCA9IGNwdV9kcC1cdTAwM2Vkc3Q7XG5uZXQvZHNhL2NvbmR1aXQuYy0xMDktXHRpbnQgY291bnQsIG1jb3VudCA9IDA7XG4tLVxubmV0L2RzYS9jb25kdWl0LmMtMTE2LVx0bGlzdF9mb3JfZWFjaF9lbnRyeShkcCwgXHUwMDI2ZHN0LVx1MDAzZXBvcnRzLCBsaXN0KSB7XG5uZXQvZHNhL2NvbmR1aXQuYzoxMTc6XHRcdGlmICghZHNhX3BvcnRfaXNfZHNhKGRwKSBcdTAwMjZcdTAwMjYgIWRzYV9wb3J0X2lzX2NwdShkcCkpXG5uZXQvZHNhL2NvbmR1aXQuYy0xMTgtXHRcdFx0Y29udGludWU7XG5uZXQvZHNhL2NvbmR1aXQuYy0xMTktXG5uZXQvZHNhL2NvbmR1aXQuYzoxMjA6XHRcdGNvdW50ID0gZHNhX2NvbmR1aXRfYXBwZW5kX3BvcnRfc3RhdHMoZHAtXHUwMDNlZHMsIGRwLVx1MDAzZWluZGV4LFxubmV0L2RzYS9jb25kdWl0LmMtMTIxLVx0XHRcdFx0XHRcdCAgICAgIGRhdGEsIG1jb3VudCk7XG4tLVxubmV0L2RzYS9jb25kdWl0LmMtMTI4LVxubmV0L2RzYS9jb25kdWl0LmM6MTI5OnN0YXRpYyB2b2lkIGRzYV9jb25kdWl0X2dldF9ldGh0b29sX3BoeV9zdGF0cyhzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LFxubmV0L2RzYS9jb25kdWl0LmMtMTMwLVx0XHRcdFx0XHQgICAgICBzdHJ1Y3QgZXRodG9vbF9zdGF0cyAqc3RhdHMsXG4tLVxubmV0L2RzYS9jb25kdWl0LmMtMTMyLXtcbm5ldC9kc2EvY29uZHVpdC5jOjEzMzpcdHN0cnVjdCBkc2FfcG9ydCAqY3B1X2RwID0gZGV2LVx1MDAzZWRzYV9wdHI7XG5uZXQvZHNhL2NvbmR1aXQuYy0xMzQtXHRjb25zdCBzdHJ1Y3QgZXRodG9vbF9vcHMgKm9wcyA9IGNwdV9kcC1cdTAwM2VvcmlnX2V0aHRvb2xfb3BzO1xubmV0L2RzYS9jb25kdWl0LmM6MTM1Olx0c3RydWN0IGRzYV9zd2l0Y2ggKmRzID0gY3B1X2RwLVx1MDAzZWRzO1xubmV0L2RzYS9jb25kdWl0LmMtMTM2LVx0aW50IHBvcnQgPSBjcHVfZHAtXHUwMDNlaW5kZXg7XG4tLVxubmV0L2RzYS9jb25kdWl0LmMtMTU0LVxubmV0L2RzYS9jb25kdWl0LmM6MTU1OnN0YXRpYyB2b2lkIGRzYV9jb25kdWl0X2FwcGVuZF9wb3J0X3NzZXRfY291bnQoc3RydWN0IGRzYV9zd2l0Y2ggKmRzLCBpbnQgcG9ydCxcbm5ldC9kc2EvY29uZHVpdC5jLTE1Ni1cdFx0XHRcdFx0ICAgICAgIGludCBzc2V0LCBpbnQgKmNvdW50KVxuLS1cbm5ldC9kc2EvY29uZHVpdC5jLTE2MS1cbm5ldC9kc2EvY29uZHVpdC5jOjE2MjpzdGF0aWMgaW50IGRzYV9jb25kdWl0X2dldF9zc2V0X2NvdW50KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIGludCBzc2V0KVxubmV0L2RzYS9jb25kdWl0LmMtMTYzLXtcbm5ldC9kc2EvY29uZHVpdC5jOjE2NDpcdHN0cnVjdCBkc2FfcG9ydCAqZHAsICpjcHVfZHAgPSBkZXYtXHUwMDNlZHNhX3B0cjtcbm5ldC9kc2EvY29uZHVpdC5jLTE2NS1cdGNvbnN0IHN0cnVjdCBldGh0b29sX29wcyAqb3BzID0gY3B1X2RwLVx1MDAzZW9yaWdfZXRodG9vbF9vcHM7XG5uZXQvZHNhL2NvbmR1aXQuYzoxNjY6XHRzdHJ1Y3QgZHNhX3N3aXRjaF90cmVlICpkc3QgPSBjcHVfZHAtXHUwMDNlZHN0O1xubmV0L2RzYS9jb25kdWl0LmMtMTY3LVx0aW50IGNvdW50ID0gMDtcbi0tXG5uZXQvZHNhL2NvbmR1aXQuYy0xNzgtXHRsaXN0X2Zvcl9lYWNoX2VudHJ5KGRwLCBcdTAwMjZkc3QtXHUwMDNlcG9ydHMsIGxpc3QpIHtcbm5ldC9kc2EvY29uZHVpdC5jOjE3OTpcdFx0aWYgKCFkc2FfcG9ydF9pc19kc2EoZHApIFx1MDAyNlx1MDAyNiAhZHNhX3BvcnRfaXNfY3B1KGRwKSlcbm5ldC9kc2EvY29uZHVpdC5jLTE4MC1cdFx0XHRjb250aW51ZTtcbm5ldC9kc2EvY29uZHVpdC5jLTE4MS1cbm5ldC9kc2EvY29uZHVpdC5jOjE4MjpcdFx0ZHNhX2NvbmR1aXRfYXBwZW5kX3BvcnRfc3NldF9jb3VudChkcC1cdTAwM2VkcywgZHAtXHUwMDNlaW5kZXgsIHNzZXQsXG5uZXQvZHNhL2NvbmR1aXQuYy0xODMtXHRcdFx0XHRcdFx0ICAgXHUwMDI2Y291bnQpO1xuLS1cbm5ldC9kc2EvY29uZHVpdC5jLTE4OC1cbm5ldC9kc2EvY29uZHVpdC5jOjE4OTpzdGF0aWMgc3NpemVfdCBkc2FfY29uZHVpdF9hcHBlbmRfcG9ydF9zdHJpbmdzKHN0cnVjdCBkc2Ffc3dpdGNoICpkcywgaW50IHBvcnQsXG5uZXQvZHNhL2NvbmR1aXQuYy0xOTAtXHRcdFx0XHRcdCAgICAgICB1MzIgc3RyaW5nc2V0LCB1OCAqZGF0YSxcbi0tXG5uZXQvZHNhL2NvbmR1aXQuYy0yMjEtXG5uZXQvZHNhL2NvbmR1aXQuYzoyMjI6c3RhdGljIHZvaWQgZHNhX2NvbmR1aXRfZ2V0X3N0cmluZ3Moc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgdTMyIHN0cmluZ3NldCxcbm5ldC9kc2EvY29uZHVpdC5jLTIyMy1cdFx0XHRcdCAgICB1OCAqZGF0YSlcbm5ldC9kc2EvY29uZHVpdC5jLTIyNC17XG5uZXQvZHNhL2NvbmR1aXQuYzoyMjU6XHRzdHJ1Y3QgZHNhX3BvcnQgKmRwLCAqY3B1X2RwID0gZGV2LVx1MDAzZWRzYV9wdHI7XG5uZXQvZHNhL2NvbmR1aXQuYy0yMjYtXHRjb25zdCBzdHJ1Y3QgZXRodG9vbF9vcHMgKm9wcyA9IGNwdV9kcC1cdTAwM2VvcmlnX2V0aHRvb2xfb3BzO1xubmV0L2RzYS9jb25kdWl0LmM6MjI3Olx0c3RydWN0IGRzYV9zd2l0Y2hfdHJlZSAqZHN0ID0gY3B1X2RwLVx1MDAzZWRzdDtcbm5ldC9kc2EvY29uZHVpdC5jLTIyOC1cdGludCBjb3VudCwgbWNvdW50ID0gMDtcbi0tXG5uZXQvZHNhL2NvbmR1aXQuYy0yNDQtXHRsaXN0X2Zvcl9lYWNoX2VudHJ5KGRwLCBcdTAwMjZkc3QtXHUwMDNlcG9ydHMsIGxpc3QpIHtcbm5ldC9kc2EvY29uZHVpdC5jOjI0NTpcdFx0aWYgKCFkc2FfcG9ydF9pc19kc2EoZHApIFx1MDAyNlx1MDAyNiAhZHNhX3BvcnRfaXNfY3B1KGRwKSlcbm5ldC9kc2EvY29uZHVpdC5jLTI0Ni1cdFx0XHRjb250aW51ZTtcbm5ldC9kc2EvY29uZHVpdC5jLTI0Ny1cbm5ldC9kc2EvY29uZHVpdC5jOjI0ODpcdFx0Y291bnQgPSBkc2FfY29uZHVpdF9hcHBlbmRfcG9ydF9zdHJpbmdzKGRwLVx1MDAzZWRzLCBkcC1cdTAwM2VpbmRleCxcbm5ldC9kc2EvY29uZHVpdC5jLTI0OS1cdFx0XHRcdFx0XHRcdHN0cmluZ3NldCwgZGF0YSxcbi0tXG5uZXQvZHNhL2NvbmR1aXQuYy0yNjAtICovXG5uZXQvZHNhL2NvbmR1aXQuYzoyNjE6aW50IF9fZHNhX2NvbmR1aXRfaHd0c3RhbXBfdmFsaWRhdGUoc3RydWN0IG5ldF9kZXZpY2UgKmRldixcbm5ldC9kc2EvY29uZHVpdC5jLTI2Mi1cdFx0XHRcdCAgICBjb25zdCBzdHJ1Y3Qga2VybmVsX2h3dHN0YW1wX2NvbmZpZyAqY29uZmlnLFxuLS1cbm5ldC9kc2EvY29uZHVpdC5jLTI2NC17XG5uZXQvZHNhL2NvbmR1aXQuYzoyNjU6XHRzdHJ1Y3QgZHNhX3BvcnQgKmNwdV9kcCA9IGRldi1cdTAwM2Vkc2FfcHRyO1xubmV0L2RzYS9jb25kdWl0LmM6MjY2Olx0c3RydWN0IGRzYV9zd2l0Y2ggKmRzID0gY3B1X2RwLVx1MDAzZWRzO1xubmV0L2RzYS9jb25kdWl0LmM6MjY3Olx0c3RydWN0IGRzYV9zd2l0Y2hfdHJlZSAqZHN0O1xubmV0L2RzYS9jb25kdWl0LmM6MjY4Olx0c3RydWN0IGRzYV9wb3J0ICpkcDtcbm5ldC9kc2EvY29uZHVpdC5jLTI2OS1cbi0tXG5uZXQvZHNhL2NvbmR1aXQuYy0yNzItXHRsaXN0X2Zvcl9lYWNoX2VudHJ5KGRwLCBcdTAwMjZkc3QtXHUwMDNlcG9ydHMsIGxpc3QpIHtcbm5ldC9kc2EvY29uZHVpdC5jOjI3MzpcdFx0aWYgKGRzYV9wb3J0X3N1cHBvcnRzX2h3dHN0YW1wKGRwKSkge1xubmV0L2RzYS9jb25kdWl0LmMtMjc0LVx0XHRcdE5MX1NFVF9FUlJfTVNHKGV4dGFjayxcbi0tXG5uZXQvZHNhL2NvbmR1aXQuYy0yODItXG5uZXQvZHNhL2NvbmR1aXQuYzoyODM6c3RhdGljIGludCBkc2FfY29uZHVpdF9ldGh0b29sX3NldHVwKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpXG5uZXQvZHNhL2NvbmR1aXQuYy0yODQte1xubmV0L2RzYS9jb25kdWl0LmM6Mjg1Olx0c3RydWN0IGRzYV9wb3J0ICpjcHVfZHAgPSBkZXYtXHUwMDNlZHNhX3B0cjtcbm5ldC9kc2EvY29uZHVpdC5jOjI4NjpcdHN0cnVjdCBkc2Ffc3dpdGNoICpkcyA9IGNwdV9kcC1cdTAwM2Vkcztcbm5ldC9kc2EvY29uZHVpdC5jLTI4Ny1cdHN0cnVjdCBldGh0b29sX29wcyAqb3BzO1xuLS1cbm5ldC9kc2EvY29uZHVpdC5jLTI5OS1cbm5ldC9kc2EvY29uZHVpdC5jOjMwMDpcdG9wcy1cdTAwM2VnZXRfcmVnc19sZW4gPSBkc2FfY29uZHVpdF9nZXRfcmVnc19sZW47XG5uZXQvZHNhL2NvbmR1aXQuYzozMDE6XHRvcHMtXHUwMDNlZ2V0X3JlZ3MgPSBkc2FfY29uZHVpdF9nZXRfcmVncztcbm5ldC9kc2EvY29uZHVpdC5jOjMwMjpcdG9wcy1cdTAwM2VnZXRfc3NldF9jb3VudCA9IGRzYV9jb25kdWl0X2dldF9zc2V0X2NvdW50O1xubmV0L2RzYS9jb25kdWl0LmM6MzAzOlx0b3BzLVx1MDAzZWdldF9ldGh0b29sX3N0YXRzID0gZHNhX2NvbmR1aXRfZ2V0X2V0aHRvb2xfc3RhdHM7XG5uZXQvZHNhL2NvbmR1aXQuYzozMDQ6XHRvcHMtXHUwMDNlZ2V0X3N0cmluZ3MgPSBkc2FfY29uZHVpdF9nZXRfc3RyaW5ncztcbm5ldC9kc2EvY29uZHVpdC5jOjMwNTpcdG9wcy1cdTAwM2VnZXRfZXRodG9vbF9waHlfc3RhdHMgPSBkc2FfY29uZHVpdF9nZXRfZXRodG9vbF9waHlfc3RhdHM7XG5uZXQvZHNhL2NvbmR1aXQuYy0zMDYtXG4tLVxubmV0L2RzYS9jb25kdWl0LmMtMzExLVxubmV0L2RzYS9jb25kdWl0LmM6MzEyOnN0YXRpYyB2b2lkIGRzYV9jb25kdWl0X2V0aHRvb2xfdGVhcmRvd24oc3RydWN0IG5ldF9kZXZpY2UgKmRldilcbm5ldC9kc2EvY29uZHVpdC5jLTMxMy17XG5uZXQvZHNhL2NvbmR1aXQuYzozMTQ6XHRzdHJ1Y3QgZHNhX3BvcnQgKmNwdV9kcCA9IGRldi1cdTAwM2Vkc2FfcHRyO1xubmV0L2RzYS9jb25kdWl0LmMtMzE1LVxuLS1cbm5ldC9kc2EvY29uZHVpdC5jLTMyNy0gKi9cbm5ldC9kc2EvY29uZHVpdC5jOjMyODpzdGF0aWMgdm9pZCBkc2FfY29uZHVpdF9zZXRfcHJvbWlzY3VpdHkoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgaW50IGluYylcbm5ldC9kc2EvY29uZHVpdC5jLTMyOS17XG5uZXQvZHNhL2NvbmR1aXQuYzozMzA6XHRjb25zdCBzdHJ1Y3QgZHNhX2RldmljZV9vcHMgKm9wcyA9IGRldi1cdTAwM2Vkc2FfcHRyLVx1MDAzZXRhZ19vcHM7XG5uZXQvZHNhL2NvbmR1aXQuYy0zMzEtXG4tLVxubmV0L2RzYS9jb25kdWl0LmM9MzQwPXN0YXRpYyBzc2l6ZV90IHRhZ2dpbmdfc2hvdyhzdHJ1Y3QgZGV2aWNlICpkLCBzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSAqYXR0cixcbi0tXG5uZXQvZHNhL2NvbmR1aXQuYy0zNDMtXHRzdHJ1Y3QgbmV0X2RldmljZSAqZGV2ID0gdG9fbmV0X2RldihkKTtcbm5ldC9kc2EvY29uZHVpdC5jOjM0NDpcdHN0cnVjdCBkc2FfcG9ydCAqY3B1X2RwID0gZGV2LVx1MDAzZWRzYV9wdHI7XG5uZXQvZHNhL2NvbmR1aXQuYy0zNDUtXG5uZXQvZHNhL2NvbmR1aXQuYy0zNDYtXHRyZXR1cm4gc3lzZnNfZW1pdChidWYsIFwmIzM0OyVzXFxuXCYjMzQ7LFxubmV0L2RzYS9jb25kdWl0LmM6MzQ3Olx0XHQgICAgICAgZHNhX3RhZ19wcm90b2NvbF90b19zdHIoY3B1X2RwLVx1MDAzZXRhZ19vcHMpKTtcbm5ldC9kc2EvY29uZHVpdC5jLTM0OC19XG4tLVxubmV0L2RzYS9jb25kdWl0LmM9MzUwPXN0YXRpYyBzc2l6ZV90IHRhZ2dpbmdfc3RvcmUoc3RydWN0IGRldmljZSAqZCwgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKmF0dHIsXG4tLVxubmV0L2RzYS9jb25kdWl0LmMtMzUyLXtcbm5ldC9kc2EvY29uZHVpdC5jOjM1MzpcdGNvbnN0IHN0cnVjdCBkc2FfZGV2aWNlX29wcyAqbmV3X3RhZ19vcHMsICpvbGRfdGFnX29wcztcbm5ldC9kc2EvY29uZHVpdC5jLTM1NC1cdGNvbnN0IGNoYXIgKmVuZCA9IHN0cmNocm51bChidWYsICYjMzk7XFxuJiMzOTspLCAqbmFtZTtcbm5ldC9kc2EvY29uZHVpdC5jLTM1NS1cdHN0cnVjdCBuZXRfZGV2aWNlICpkZXYgPSB0b19uZXRfZGV2KGQpO1xubmV0L2RzYS9jb25kdWl0LmM6MzU2Olx0c3RydWN0IGRzYV9wb3J0ICpjcHVfZHAgPSBkZXYtXHUwMDNlZHNhX3B0cjtcbm5ldC9kc2EvY29uZHVpdC5jLTM1Ny1cdHNpemVfdCBsZW4gPSBlbmQgLSBidWY7XG4tLVxubmV0L2RzYS9jb25kdWl0LmMtMzY4LVx0b2xkX3RhZ19vcHMgPSBjcHVfZHAtXHUwMDNldGFnX29wcztcbm5ldC9kc2EvY29uZHVpdC5jOjM2OTpcdG5ld190YWdfb3BzID0gZHNhX3RhZ19kcml2ZXJfZ2V0X2J5X25hbWUobmFtZSk7XG5uZXQvZHNhL2NvbmR1aXQuYy0zNzAtXHRrZnJlZShuYW1lKTtcbi0tXG5uZXQvZHNhL2NvbmR1aXQuYy0zODAtXG5uZXQvZHNhL2NvbmR1aXQuYzozODE6XHRlcnIgPSBkc2FfdHJlZV9jaGFuZ2VfdGFnX3Byb3RvKGNwdV9kcC1cdTAwM2Vkcy1cdTAwM2Vkc3QsIG5ld190YWdfb3BzLFxubmV0L2RzYS9jb25kdWl0LmMtMzgyLVx0XHRcdFx0XHRvbGRfdGFnX29wcyk7XG4tLVxubmV0L2RzYS9jb25kdWl0LmMtMzg2LVx0XHQgKi9cbm5ldC9kc2EvY29uZHVpdC5jOjM4NzpcdFx0ZHNhX3RhZ19kcml2ZXJfcHV0KG5ld190YWdfb3BzKTtcbm5ldC9kc2EvY29uZHVpdC5jLTM4OC1cdFx0cmV0dXJuIGVycjtcbi0tXG5uZXQvZHNhL2NvbmR1aXQuYy0zOTMtb3V0OlxubmV0L2RzYS9jb25kdWl0LmM6Mzk0Olx0ZHNhX3RhZ19kcml2ZXJfcHV0KG9sZF90YWdfb3BzKTtcbm5ldC9kc2EvY29uZHVpdC5jLTM5NS1cdHJldHVybiBjb3VudDtcbi0tXG5uZXQvZHNhL2NvbmR1aXQuYz0zOTc9c3RhdGljIERFVklDRV9BVFRSX1JXKHRhZ2dpbmcpO1xubmV0L2RzYS9jb25kdWl0LmMtMzk4LVxubmV0L2RzYS9jb25kdWl0LmM6Mzk5OnN0YXRpYyBzdHJ1Y3QgYXR0cmlidXRlICpkc2FfdXNlcl9hdHRyc1tdID0ge1xubmV0L2RzYS9jb25kdWl0LmMtNDAwLVx0XHUwMDI2ZGV2X2F0dHJfdGFnZ2luZy5hdHRyLFxuLS1cbm5ldC9kc2EvY29uZHVpdC5jLTQwMy1cbm5ldC9kc2EvY29uZHVpdC5jOjQwNDpzdGF0aWMgY29uc3Qgc3RydWN0IGF0dHJpYnV0ZV9ncm91cCBkc2FfZ3JvdXAgPSB7XG5uZXQvZHNhL2NvbmR1aXQuYzo0MDU6XHQubmFtZVx0PSBcJiMzNDtkc2FcJiMzNDssXG5uZXQvZHNhL2NvbmR1aXQuYzo0MDY6XHQuYXR0cnNcdD0gZHNhX3VzZXJfYXR0cnMsXG5uZXQvZHNhL2NvbmR1aXQuYy00MDctfTtcbm5ldC9kc2EvY29uZHVpdC5jLTQwOC1cbm5ldC9kc2EvY29uZHVpdC5jOjQwOTpzdGF0aWMgdm9pZCBkc2FfY29uZHVpdF9yZXNldF9tdHUoc3RydWN0IG5ldF9kZXZpY2UgKmRldilcbm5ldC9kc2EvY29uZHVpdC5jLTQxMC17XG4tLVxubmV0L2RzYS9jb25kdWl0LmMtNDE4LVxubmV0L2RzYS9jb25kdWl0LmM6NDE5OmludCBkc2FfY29uZHVpdF9zZXR1cChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBzdHJ1Y3QgZHNhX3BvcnQgKmNwdV9kcClcbm5ldC9kc2EvY29uZHVpdC5jLTQyMC17XG5uZXQvZHNhL2NvbmR1aXQuYzo0MjE6XHRjb25zdCBzdHJ1Y3QgZHNhX2RldmljZV9vcHMgKnRhZ19vcHMgPSBjcHVfZHAtXHUwMDNldGFnX29wcztcbm5ldC9kc2EvY29uZHVpdC5jOjQyMjpcdHN0cnVjdCBkc2Ffc3dpdGNoICpkcyA9IGNwdV9kcC1cdTAwM2Vkcztcbm5ldC9kc2EvY29uZHVpdC5jLTQyMy1cdHN0cnVjdCBkZXZpY2VfbGluayAqY29uc3VtZXJfbGluaztcbi0tXG5uZXQvZHNhL2NvbmR1aXQuYy00MjUtXG5uZXQvZHNhL2NvbmR1aXQuYzo0MjY6XHRtdHUgPSBFVEhfREFUQV9MRU4gJiM0MzsgZHNhX3RhZ19wcm90b2NvbF9vdmVyaGVhZCh0YWdfb3BzKTtcbm5ldC9kc2EvY29uZHVpdC5jLTQyNy1cbi0tXG5uZXQvZHNhL2NvbmR1aXQuYy00MzgtXHQvKiBUaGUgc3dpdGNoIGRyaXZlciBtYXkgbm90IGltcGxlbWVudCAtXHUwMDNlcG9ydF9jaGFuZ2VfbXR1KCksIGNhc2UgaW5cbm5ldC9kc2EvY29uZHVpdC5jOjQzOTpcdCAqIHdoaWNoIGRzYV91c2VyX2NoYW5nZV9tdHUoKSB3aWxsIG5vdCB1cGRhdGUgdGhlIGNvbmR1aXQgTVRVIGVpdGhlcixcbm5ldC9kc2EvY29uZHVpdC5jLTQ0MC1cdCAqIHNvIHdlIG5lZWQgdG8gZG8gdGhhdCBoZXJlLlxuLS1cbm5ldC9kc2EvY29uZHVpdC5jLTQ1Mi1cbm5ldC9kc2EvY29uZHVpdC5jOjQ1MzpcdGRldi1cdTAwM2Vkc2FfcHRyID0gY3B1X2RwO1xubmV0L2RzYS9jb25kdWl0LmMtNDU0LVxubmV0L2RzYS9jb25kdWl0LmM6NDU1Olx0ZHNhX2NvbmR1aXRfc2V0X3Byb21pc2N1aXR5KGRldiwgMSk7XG5uZXQvZHNhL2NvbmR1aXQuYy00NTYtXG5uZXQvZHNhL2NvbmR1aXQuYzo0NTc6XHRyZXQgPSBkc2FfY29uZHVpdF9ldGh0b29sX3NldHVwKGRldik7XG5uZXQvZHNhL2NvbmR1aXQuYy00NTgtXHRpZiAocmV0KVxuLS1cbm5ldC9kc2EvY29uZHVpdC5jLTQ2MC1cbm5ldC9kc2EvY29uZHVpdC5jOjQ2MTpcdHJldCA9IHN5c2ZzX2NyZWF0ZV9ncm91cChcdTAwMjZkZXYtXHUwMDNlZGV2LmtvYmosIFx1MDAyNmRzYV9ncm91cCk7XG5uZXQvZHNhL2NvbmR1aXQuYy00NjItXHRpZiAocmV0KVxuLS1cbm5ldC9kc2EvY29uZHVpdC5jLTQ2Ny1vdXRfZXJyX2V0aHRvb2xfdGVhcmRvd246XG5uZXQvZHNhL2NvbmR1aXQuYzo0Njg6XHRkc2FfY29uZHVpdF9ldGh0b29sX3RlYXJkb3duKGRldik7XG5uZXQvZHNhL2NvbmR1aXQuYy00Njktb3V0X2Vycl9yZXNldF9wcm9taXNjOlxubmV0L2RzYS9jb25kdWl0LmM6NDcwOlx0ZHNhX2NvbmR1aXRfc2V0X3Byb21pc2N1aXR5KGRldiwgLTEpO1xubmV0L2RzYS9jb25kdWl0LmMtNDcxLVx0cmV0dXJuIHJldDtcbi0tXG5uZXQvZHNhL2NvbmR1aXQuYy00NzMtXG5uZXQvZHNhL2NvbmR1aXQuYzo0NzQ6dm9pZCBkc2FfY29uZHVpdF90ZWFyZG93bihzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KVxubmV0L2RzYS9jb25kdWl0LmMtNDc1LXtcbm5ldC9kc2EvY29uZHVpdC5jOjQ3NjpcdHN5c2ZzX3JlbW92ZV9ncm91cChcdTAwMjZkZXYtXHUwMDNlZGV2LmtvYmosIFx1MDAyNmRzYV9ncm91cCk7XG5uZXQvZHNhL2NvbmR1aXQuYzo0Nzc6XHRkc2FfY29uZHVpdF9ldGh0b29sX3RlYXJkb3duKGRldik7XG5uZXQvZHNhL2NvbmR1aXQuYzo0Nzg6XHRkc2FfY29uZHVpdF9yZXNldF9tdHUoZGV2KTtcbm5ldC9kc2EvY29uZHVpdC5jOjQ3OTpcdGRzYV9jb25kdWl0X3NldF9wcm9taXNjdWl0eShkZXYsIC0xKTtcbm5ldC9kc2EvY29uZHVpdC5jLTQ4MC1cbm5ldC9kc2EvY29uZHVpdC5jOjQ4MTpcdGRldi1cdTAwM2Vkc2FfcHRyID0gTlVMTDtcbm5ldC9kc2EvY29uZHVpdC5jLTQ4Mi1cbi0tXG5uZXQvZHNhL2NvbmR1aXQuYy00ODktXG5uZXQvZHNhL2NvbmR1aXQuYzo0OTA6aW50IGRzYV9jb25kdWl0X2xhZ19zZXR1cChzdHJ1Y3QgbmV0X2RldmljZSAqbGFnX2Rldiwgc3RydWN0IGRzYV9wb3J0ICpjcHVfZHAsXG5uZXQvZHNhL2NvbmR1aXQuYy00OTEtXHRcdFx0ICBzdHJ1Y3QgbmV0ZGV2X2xhZ191cHBlcl9pbmZvICp1aW5mbyxcbi0tXG5uZXQvZHNhL2NvbmR1aXQuYy00OTYtXG5uZXQvZHNhL2NvbmR1aXQuYzo0OTc6XHRpZiAoIW5ldGRldl91c2VzX2RzYShsYWdfZGV2KSkge1xubmV0L2RzYS9jb25kdWl0LmM6NDk4Olx0XHRlcnIgPSBkc2FfY29uZHVpdF9zZXR1cChsYWdfZGV2LCBjcHVfZHApO1xubmV0L2RzYS9jb25kdWl0LmMtNDk5LVx0XHRpZiAoZXJyKVxuLS1cbm5ldC9kc2EvY29uZHVpdC5jLTUwNC1cbm5ldC9kc2EvY29uZHVpdC5jOjUwNTpcdGVyciA9IGRzYV9wb3J0X2xhZ19qb2luKGNwdV9kcCwgbGFnX2RldiwgdWluZm8sIGV4dGFjayk7XG5uZXQvZHNhL2NvbmR1aXQuYy01MDYtXHRpZiAoZXJyKSB7XG4tLVxubmV0L2RzYS9jb25kdWl0LmMtNTE0LVx0aWYgKGNvbmR1aXRfc2V0dXApXG5uZXQvZHNhL2NvbmR1aXQuYzo1MTU6XHRcdGRzYV9jb25kdWl0X3RlYXJkb3duKGxhZ19kZXYpO1xubmV0L2RzYS9jb25kdWl0LmMtNTE2LVx0cmV0dXJuIGVycjtcbi0tXG5uZXQvZHNhL2NvbmR1aXQuYy01MjEtICovXG5uZXQvZHNhL2NvbmR1aXQuYzo1MjI6dm9pZCBkc2FfY29uZHVpdF9sYWdfdGVhcmRvd24oc3RydWN0IG5ldF9kZXZpY2UgKmxhZ19kZXYsXG5uZXQvZHNhL2NvbmR1aXQuYzo1MjM6XHRcdFx0ICAgICAgc3RydWN0IGRzYV9wb3J0ICpjcHVfZHApXG5uZXQvZHNhL2NvbmR1aXQuYy01MjQte1xuLS1cbm5ldC9kc2EvY29uZHVpdC5jLTUyNy1cbm5ldC9kc2EvY29uZHVpdC5jOjUyODpcdGRzYV9wb3J0X2xhZ19sZWF2ZShjcHVfZHAsIGxhZ19kZXYpO1xubmV0L2RzYS9jb25kdWl0LmMtNTI5LVxubmV0L2RzYS9jb25kdWl0LmMtNTMwLVx0bmV0ZGV2X2Zvcl9lYWNoX3VwcGVyX2Rldl9yY3UobGFnX2RldiwgdXBwZXIsIGl0ZXIpXG5uZXQvZHNhL2NvbmR1aXQuYzo1MzE6XHRcdGlmIChkc2FfdXNlcl9kZXZfY2hlY2sodXBwZXIpKVxubmV0L2RzYS9jb25kdWl0LmMtNTMyLVx0XHRcdHJldHVybjtcbm5ldC9kc2EvY29uZHVpdC5jLTUzMy1cbm5ldC9kc2EvY29uZHVpdC5jOjUzNDpcdGRzYV9jb25kdWl0X3RlYXJkb3duKGxhZ19kZXYpO1xubmV0L2RzYS9jb25kdWl0LmMtNTM1LX1cbi0tXG5uZXQvZHNhL2NvbmR1aXQuaC01LVxubmV0L2RzYS9jb25kdWl0Lmg6NjpzdHJ1Y3QgZHNhX3BvcnQ7XG5uZXQvZHNhL2NvbmR1aXQuaC03LXN0cnVjdCBuZXRfZGV2aWNlO1xuLS1cbm5ldC9kc2EvY29uZHVpdC5oPTk9c3RydWN0IG5ldGxpbmtfZXh0X2Fjaztcbm5ldC9kc2EvY29uZHVpdC5oLTEwLVxubmV0L2RzYS9jb25kdWl0Lmg6MTE6aW50IGRzYV9jb25kdWl0X3NldHVwKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIHN0cnVjdCBkc2FfcG9ydCAqY3B1X2RwKTtcbm5ldC9kc2EvY29uZHVpdC5oOjEyOnZvaWQgZHNhX2NvbmR1aXRfdGVhcmRvd24oc3RydWN0IG5ldF9kZXZpY2UgKmRldik7XG5uZXQvZHNhL2NvbmR1aXQuaDoxMzppbnQgZHNhX2NvbmR1aXRfbGFnX3NldHVwKHN0cnVjdCBuZXRfZGV2aWNlICpsYWdfZGV2LCBzdHJ1Y3QgZHNhX3BvcnQgKmNwdV9kcCxcbm5ldC9kc2EvY29uZHVpdC5oLTE0LVx0XHRcdCAgc3RydWN0IG5ldGRldl9sYWdfdXBwZXJfaW5mbyAqdWluZm8sXG5uZXQvZHNhL2NvbmR1aXQuaC0xNS1cdFx0XHQgIHN0cnVjdCBuZXRsaW5rX2V4dF9hY2sgKmV4dGFjayk7XG5uZXQvZHNhL2NvbmR1aXQuaDoxNjp2b2lkIGRzYV9jb25kdWl0X2xhZ190ZWFyZG93bihzdHJ1Y3QgbmV0X2RldmljZSAqbGFnX2Rldixcbm5ldC9kc2EvY29uZHVpdC5oOjE3Olx0XHRcdCAgICAgIHN0cnVjdCBkc2FfcG9ydCAqY3B1X2RwKTtcbm5ldC9kc2EvY29uZHVpdC5oOjE4OmludCBfX2RzYV9jb25kdWl0X2h3dHN0YW1wX3ZhbGlkYXRlKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsXG5uZXQvZHNhL2NvbmR1aXQuaC0xOS1cdFx0XHRcdCAgICBjb25zdCBzdHJ1Y3Qga2VybmVsX2h3dHN0YW1wX2NvbmZpZyAqY29uZmlnLFxuLS1cbm5ldC9kc2EvZGV2bGluay5jLTUtXG5uZXQvZHNhL2RldmxpbmsuYzo2OiNpbmNsdWRlIFx1MDAzY25ldC9kc2EuaFx1MDAzZVxubmV0L2RzYS9kZXZsaW5rLmMtNy0jaW5jbHVkZSBcdTAwM2NuZXQvZGV2bGluay5oXHUwMDNlXG4tLVxubmV0L2RzYS9kZXZsaW5rLmMtMTAtXG5uZXQvZHNhL2RldmxpbmsuYzoxMTpzdGF0aWMgaW50IGRzYV9kZXZsaW5rX2luZm9fZ2V0KHN0cnVjdCBkZXZsaW5rICpkbCxcbm5ldC9kc2EvZGV2bGluay5jLTEyLVx0XHRcdFx0c3RydWN0IGRldmxpbmtfaW5mb19yZXEgKnJlcSxcbi0tXG5uZXQvZHNhL2RldmxpbmsuYy0xNC17XG5uZXQvZHNhL2RldmxpbmsuYzoxNTpcdHN0cnVjdCBkc2Ffc3dpdGNoICpkcyA9IGRzYV9kZXZsaW5rX3RvX2RzKGRsKTtcbm5ldC9kc2EvZGV2bGluay5jLTE2LVxuLS1cbm5ldC9kc2EvZGV2bGluay5jLTIyLVxubmV0L2RzYS9kZXZsaW5rLmM6MjM6c3RhdGljIGludCBkc2FfZGV2bGlua19zYl9wb29sX2dldChzdHJ1Y3QgZGV2bGluayAqZGwsXG5uZXQvZHNhL2RldmxpbmsuYy0yNC1cdFx0XHRcdCAgIHVuc2lnbmVkIGludCBzYl9pbmRleCwgdTE2IHBvb2xfaW5kZXgsXG4tLVxubmV0L2RzYS9kZXZsaW5rLmMtMjYte1xubmV0L2RzYS9kZXZsaW5rLmM6Mjc6XHRzdHJ1Y3QgZHNhX3N3aXRjaCAqZHMgPSBkc2FfZGV2bGlua190b19kcyhkbCk7XG5uZXQvZHNhL2RldmxpbmsuYy0yOC1cbi0tXG5uZXQvZHNhL2RldmxpbmsuYy0zNS1cbm5ldC9kc2EvZGV2bGluay5jOjM2OnN0YXRpYyBpbnQgZHNhX2Rldmxpbmtfc2JfcG9vbF9zZXQoc3RydWN0IGRldmxpbmsgKmRsLCB1bnNpZ25lZCBpbnQgc2JfaW5kZXgsXG5uZXQvZHNhL2RldmxpbmsuYy0zNy1cdFx0XHRcdCAgIHUxNiBwb29sX2luZGV4LCB1MzIgc2l6ZSxcbi0tXG5uZXQvZHNhL2RldmxpbmsuYy00MC17XG5uZXQvZHNhL2RldmxpbmsuYzo0MTpcdHN0cnVjdCBkc2Ffc3dpdGNoICpkcyA9IGRzYV9kZXZsaW5rX3RvX2RzKGRsKTtcbm5ldC9kc2EvZGV2bGluay5jLTQyLVxuLS1cbm5ldC9kc2EvZGV2bGluay5jLTQ5LVxubmV0L2RzYS9kZXZsaW5rLmM6NTA6c3RhdGljIGludCBkc2FfZGV2bGlua19zYl9wb3J0X3Bvb2xfZ2V0KHN0cnVjdCBkZXZsaW5rX3BvcnQgKmRscCxcbm5ldC9kc2EvZGV2bGluay5jLTUxLVx0XHRcdFx0XHR1bnNpZ25lZCBpbnQgc2JfaW5kZXgsIHUxNiBwb29sX2luZGV4LFxuLS1cbm5ldC9kc2EvZGV2bGluay5jLTUzLXtcbm5ldC9kc2EvZGV2bGluay5jOjU0Olx0c3RydWN0IGRzYV9zd2l0Y2ggKmRzID0gZHNhX2RldmxpbmtfcG9ydF90b19kcyhkbHApO1xubmV0L2RzYS9kZXZsaW5rLmM6NTU6XHRpbnQgcG9ydCA9IGRzYV9kZXZsaW5rX3BvcnRfdG9fcG9ydChkbHApO1xubmV0L2RzYS9kZXZsaW5rLmMtNTYtXG4tLVxubmV0L2RzYS9kZXZsaW5rLmMtNjMtXG5uZXQvZHNhL2RldmxpbmsuYzo2NDpzdGF0aWMgaW50IGRzYV9kZXZsaW5rX3NiX3BvcnRfcG9vbF9zZXQoc3RydWN0IGRldmxpbmtfcG9ydCAqZGxwLFxubmV0L2RzYS9kZXZsaW5rLmMtNjUtXHRcdFx0XHRcdHVuc2lnbmVkIGludCBzYl9pbmRleCwgdTE2IHBvb2xfaW5kZXgsXG4tLVxubmV0L2RzYS9kZXZsaW5rLmMtNjgte1xubmV0L2RzYS9kZXZsaW5rLmM6Njk6XHRzdHJ1Y3QgZHNhX3N3aXRjaCAqZHMgPSBkc2FfZGV2bGlua19wb3J0X3RvX2RzKGRscCk7XG5uZXQvZHNhL2RldmxpbmsuYzo3MDpcdGludCBwb3J0ID0gZHNhX2RldmxpbmtfcG9ydF90b19wb3J0KGRscCk7XG5uZXQvZHNhL2RldmxpbmsuYy03MS1cbi0tXG5uZXQvZHNhL2RldmxpbmsuYz03OT1zdGF0aWMgaW50XG5uZXQvZHNhL2RldmxpbmsuYzo4MDpkc2FfZGV2bGlua19zYl90Y19wb29sX2JpbmRfZ2V0KHN0cnVjdCBkZXZsaW5rX3BvcnQgKmRscCxcbm5ldC9kc2EvZGV2bGluay5jLTgxLVx0XHRcdFx0dW5zaWduZWQgaW50IHNiX2luZGV4LCB1MTYgdGNfaW5kZXgsXG4tLVxubmV0L2RzYS9kZXZsaW5rLmMtODQte1xubmV0L2RzYS9kZXZsaW5rLmM6ODU6XHRzdHJ1Y3QgZHNhX3N3aXRjaCAqZHMgPSBkc2FfZGV2bGlua19wb3J0X3RvX2RzKGRscCk7XG5uZXQvZHNhL2RldmxpbmsuYzo4NjpcdGludCBwb3J0ID0gZHNhX2RldmxpbmtfcG9ydF90b19wb3J0KGRscCk7XG5uZXQvZHNhL2RldmxpbmsuYy04Ny1cbi0tXG5uZXQvZHNhL2RldmxpbmsuYz05Nj1zdGF0aWMgaW50XG5uZXQvZHNhL2RldmxpbmsuYzo5Nzpkc2FfZGV2bGlua19zYl90Y19wb29sX2JpbmRfc2V0KHN0cnVjdCBkZXZsaW5rX3BvcnQgKmRscCxcbm5ldC9kc2EvZGV2bGluay5jLTk4LVx0XHRcdFx0dW5zaWduZWQgaW50IHNiX2luZGV4LCB1MTYgdGNfaW5kZXgsXG4tLVxubmV0L2RzYS9kZXZsaW5rLmMtMTAyLXtcbm5ldC9kc2EvZGV2bGluay5jOjEwMzpcdHN0cnVjdCBkc2Ffc3dpdGNoICpkcyA9IGRzYV9kZXZsaW5rX3BvcnRfdG9fZHMoZGxwKTtcbm5ldC9kc2EvZGV2bGluay5jOjEwNDpcdGludCBwb3J0ID0gZHNhX2RldmxpbmtfcG9ydF90b19wb3J0KGRscCk7XG5uZXQvZHNhL2RldmxpbmsuYy0xMDUtXG4tLVxubmV0L2RzYS9kZXZsaW5rLmMtMTE0LVxubmV0L2RzYS9kZXZsaW5rLmM6MTE1OnN0YXRpYyBpbnQgZHNhX2Rldmxpbmtfc2Jfb2NjX3NuYXBzaG90KHN0cnVjdCBkZXZsaW5rICpkbCxcbm5ldC9kc2EvZGV2bGluay5jLTExNi1cdFx0XHRcdCAgICAgICB1bnNpZ25lZCBpbnQgc2JfaW5kZXgpXG5uZXQvZHNhL2RldmxpbmsuYy0xMTcte1xubmV0L2RzYS9kZXZsaW5rLmM6MTE4Olx0c3RydWN0IGRzYV9zd2l0Y2ggKmRzID0gZHNhX2RldmxpbmtfdG9fZHMoZGwpO1xubmV0L2RzYS9kZXZsaW5rLmMtMTE5LVxuLS1cbm5ldC9kc2EvZGV2bGluay5jLTEyNS1cbm5ldC9kc2EvZGV2bGluay5jOjEyNjpzdGF0aWMgaW50IGRzYV9kZXZsaW5rX3NiX29jY19tYXhfY2xlYXIoc3RydWN0IGRldmxpbmsgKmRsLFxubmV0L2RzYS9kZXZsaW5rLmMtMTI3LVx0XHRcdFx0XHR1bnNpZ25lZCBpbnQgc2JfaW5kZXgpXG5uZXQvZHNhL2RldmxpbmsuYy0xMjgte1xubmV0L2RzYS9kZXZsaW5rLmM6MTI5Olx0c3RydWN0IGRzYV9zd2l0Y2ggKmRzID0gZHNhX2RldmxpbmtfdG9fZHMoZGwpO1xubmV0L2RzYS9kZXZsaW5rLmMtMTMwLVxuLS1cbm5ldC9kc2EvZGV2bGluay5jLTEzNi1cbm5ldC9kc2EvZGV2bGluay5jOjEzNzpzdGF0aWMgaW50IGRzYV9kZXZsaW5rX3NiX29jY19wb3J0X3Bvb2xfZ2V0KHN0cnVjdCBkZXZsaW5rX3BvcnQgKmRscCxcbm5ldC9kc2EvZGV2bGluay5jLTEzOC1cdFx0XHRcdFx0ICAgIHVuc2lnbmVkIGludCBzYl9pbmRleCxcbi0tXG5uZXQvZHNhL2RldmxpbmsuYy0xNDEte1xubmV0L2RzYS9kZXZsaW5rLmM6MTQyOlx0c3RydWN0IGRzYV9zd2l0Y2ggKmRzID0gZHNhX2RldmxpbmtfcG9ydF90b19kcyhkbHApO1xubmV0L2RzYS9kZXZsaW5rLmM6MTQzOlx0aW50IHBvcnQgPSBkc2FfZGV2bGlua19wb3J0X3RvX3BvcnQoZGxwKTtcbm5ldC9kc2EvZGV2bGluay5jLTE0NC1cbi0tXG5uZXQvZHNhL2RldmxpbmsuYz0xNTI9c3RhdGljIGludFxubmV0L2RzYS9kZXZsaW5rLmM6MTUzOmRzYV9kZXZsaW5rX3NiX29jY190Y19wb3J0X2JpbmRfZ2V0KHN0cnVjdCBkZXZsaW5rX3BvcnQgKmRscCxcbm5ldC9kc2EvZGV2bGluay5jLTE1NC1cdFx0XHRcdCAgICB1bnNpZ25lZCBpbnQgc2JfaW5kZXgsIHUxNiB0Y19pbmRleCxcbi0tXG5uZXQvZHNhL2RldmxpbmsuYy0xNTcte1xubmV0L2RzYS9kZXZsaW5rLmM6MTU4Olx0c3RydWN0IGRzYV9zd2l0Y2ggKmRzID0gZHNhX2RldmxpbmtfcG9ydF90b19kcyhkbHApO1xubmV0L2RzYS9kZXZsaW5rLmM6MTU5Olx0aW50IHBvcnQgPSBkc2FfZGV2bGlua19wb3J0X3RvX3BvcnQoZGxwKTtcbm5ldC9kc2EvZGV2bGluay5jLTE2MC1cbi0tXG5uZXQvZHNhL2RldmxpbmsuYy0xNjktXG5uZXQvZHNhL2RldmxpbmsuYzoxNzA6c3RhdGljIGNvbnN0IHN0cnVjdCBkZXZsaW5rX29wcyBkc2FfZGV2bGlua19vcHMgPSB7XG5uZXQvZHNhL2RldmxpbmsuYzoxNzE6XHQuaW5mb19nZXRcdFx0XHQ9IGRzYV9kZXZsaW5rX2luZm9fZ2V0LFxubmV0L2RzYS9kZXZsaW5rLmM6MTcyOlx0LnNiX3Bvb2xfZ2V0XHRcdFx0PSBkc2FfZGV2bGlua19zYl9wb29sX2dldCxcbm5ldC9kc2EvZGV2bGluay5jOjE3MzpcdC5zYl9wb29sX3NldFx0XHRcdD0gZHNhX2Rldmxpbmtfc2JfcG9vbF9zZXQsXG5uZXQvZHNhL2RldmxpbmsuYzoxNzQ6XHQuc2JfcG9ydF9wb29sX2dldFx0XHQ9IGRzYV9kZXZsaW5rX3NiX3BvcnRfcG9vbF9nZXQsXG5uZXQvZHNhL2RldmxpbmsuYzoxNzU6XHQuc2JfcG9ydF9wb29sX3NldFx0XHQ9IGRzYV9kZXZsaW5rX3NiX3BvcnRfcG9vbF9zZXQsXG5uZXQvZHNhL2RldmxpbmsuYzoxNzY6XHQuc2JfdGNfcG9vbF9iaW5kX2dldFx0XHQ9IGRzYV9kZXZsaW5rX3NiX3RjX3Bvb2xfYmluZF9nZXQsXG5uZXQvZHNhL2RldmxpbmsuYzoxNzc6XHQuc2JfdGNfcG9vbF9iaW5kX3NldFx0XHQ9IGRzYV9kZXZsaW5rX3NiX3RjX3Bvb2xfYmluZF9zZXQsXG5uZXQvZHNhL2RldmxpbmsuYzoxNzg6XHQuc2Jfb2NjX3NuYXBzaG90XHRcdD0gZHNhX2Rldmxpbmtfc2Jfb2NjX3NuYXBzaG90LFxubmV0L2RzYS9kZXZsaW5rLmM6MTc5Olx0LnNiX29jY19tYXhfY2xlYXJcdFx0PSBkc2FfZGV2bGlua19zYl9vY2NfbWF4X2NsZWFyLFxubmV0L2RzYS9kZXZsaW5rLmM6MTgwOlx0LnNiX29jY19wb3J0X3Bvb2xfZ2V0XHRcdD0gZHNhX2Rldmxpbmtfc2Jfb2NjX3BvcnRfcG9vbF9nZXQsXG5uZXQvZHNhL2RldmxpbmsuYzoxODE6XHQuc2Jfb2NjX3RjX3BvcnRfYmluZF9nZXRcdD0gZHNhX2Rldmxpbmtfc2Jfb2NjX3RjX3BvcnRfYmluZF9nZXQsXG5uZXQvZHNhL2RldmxpbmsuYy0xODItfTtcbm5ldC9kc2EvZGV2bGluay5jLTE4My1cbm5ldC9kc2EvZGV2bGluay5jOjE4NDppbnQgZHNhX2RldmxpbmtfcGFyYW1fZ2V0KHN0cnVjdCBkZXZsaW5rICpkbCwgdTMyIGlkLFxubmV0L2RzYS9kZXZsaW5rLmMtMTg1LVx0XHRcdCAgc3RydWN0IGRldmxpbmtfcGFyYW1fZ3NldF9jdHggKmN0eCxcbi0tXG5uZXQvZHNhL2RldmxpbmsuYy0xODcte1xubmV0L2RzYS9kZXZsaW5rLmM6MTg4Olx0c3RydWN0IGRzYV9zd2l0Y2ggKmRzID0gZHNhX2RldmxpbmtfdG9fZHMoZGwpO1xubmV0L2RzYS9kZXZsaW5rLmMtMTg5LVxuLS1cbm5ldC9kc2EvZGV2bGluay5jLTE5NC19XG5uZXQvZHNhL2RldmxpbmsuYzoxOTU6RVhQT1JUX1NZTUJPTF9HUEwoZHNhX2RldmxpbmtfcGFyYW1fZ2V0KTtcbm5ldC9kc2EvZGV2bGluay5jLTE5Ni1cbm5ldC9kc2EvZGV2bGluay5jOjE5NzppbnQgZHNhX2RldmxpbmtfcGFyYW1fc2V0KHN0cnVjdCBkZXZsaW5rICpkbCwgdTMyIGlkLFxubmV0L2RzYS9kZXZsaW5rLmMtMTk4LVx0XHRcdCAgc3RydWN0IGRldmxpbmtfcGFyYW1fZ3NldF9jdHggKmN0eCxcbi0tXG5uZXQvZHNhL2RldmxpbmsuYy0yMDAte1xubmV0L2RzYS9kZXZsaW5rLmM6MjAxOlx0c3RydWN0IGRzYV9zd2l0Y2ggKmRzID0gZHNhX2RldmxpbmtfdG9fZHMoZGwpO1xubmV0L2RzYS9kZXZsaW5rLmMtMjAyLVxuLS1cbm5ldC9kc2EvZGV2bGluay5jLTIwNy19XG5uZXQvZHNhL2RldmxpbmsuYzoyMDg6RVhQT1JUX1NZTUJPTF9HUEwoZHNhX2RldmxpbmtfcGFyYW1fc2V0KTtcbm5ldC9kc2EvZGV2bGluay5jLTIwOS1cbm5ldC9kc2EvZGV2bGluay5jOjIxMDppbnQgZHNhX2RldmxpbmtfcGFyYW1zX3JlZ2lzdGVyKHN0cnVjdCBkc2Ffc3dpdGNoICpkcyxcbm5ldC9kc2EvZGV2bGluay5jLTIxMS1cdFx0XHRcdGNvbnN0IHN0cnVjdCBkZXZsaW5rX3BhcmFtICpwYXJhbXMsXG4tLVxubmV0L2RzYS9kZXZsaW5rLmMtMjE1LX1cbm5ldC9kc2EvZGV2bGluay5jOjIxNjpFWFBPUlRfU1lNQk9MX0dQTChkc2FfZGV2bGlua19wYXJhbXNfcmVnaXN0ZXIpO1xubmV0L2RzYS9kZXZsaW5rLmMtMjE3LVxubmV0L2RzYS9kZXZsaW5rLmM6MjE4OnZvaWQgZHNhX2RldmxpbmtfcGFyYW1zX3VucmVnaXN0ZXIoc3RydWN0IGRzYV9zd2l0Y2ggKmRzLFxubmV0L2RzYS9kZXZsaW5rLmMtMjE5LVx0XHRcdFx0ICAgY29uc3Qgc3RydWN0IGRldmxpbmtfcGFyYW0gKnBhcmFtcyxcbi0tXG5uZXQvZHNhL2RldmxpbmsuYy0yMjMtfVxubmV0L2RzYS9kZXZsaW5rLmM6MjI0OkVYUE9SVF9TWU1CT0xfR1BMKGRzYV9kZXZsaW5rX3BhcmFtc191bnJlZ2lzdGVyKTtcbm5ldC9kc2EvZGV2bGluay5jLTIyNS1cbm5ldC9kc2EvZGV2bGluay5jOjIyNjppbnQgZHNhX2RldmxpbmtfcmVzb3VyY2VfcmVnaXN0ZXIoc3RydWN0IGRzYV9zd2l0Y2ggKmRzLFxubmV0L2RzYS9kZXZsaW5rLmMtMjI3LVx0XHRcdFx0ICBjb25zdCBjaGFyICpyZXNvdXJjZV9uYW1lLFxuLS1cbm5ldC9kc2EvZGV2bGluay5jLTI0Mi19XG5uZXQvZHNhL2RldmxpbmsuYzoyNDM6RVhQT1JUX1NZTUJPTF9HUEwoZHNhX2RldmxpbmtfcmVzb3VyY2VfcmVnaXN0ZXIpO1xubmV0L2RzYS9kZXZsaW5rLmMtMjQ0LVxubmV0L2RzYS9kZXZsaW5rLmM6MjQ1OnZvaWQgZHNhX2RldmxpbmtfcmVzb3VyY2VzX3VucmVnaXN0ZXIoc3RydWN0IGRzYV9zd2l0Y2ggKmRzKVxubmV0L2RzYS9kZXZsaW5rLmMtMjQ2LXtcbi0tXG5uZXQvZHNhL2RldmxpbmsuYy0yNDgtfVxubmV0L2RzYS9kZXZsaW5rLmM6MjQ5OkVYUE9SVF9TWU1CT0xfR1BMKGRzYV9kZXZsaW5rX3Jlc291cmNlc191bnJlZ2lzdGVyKTtcbm5ldC9kc2EvZGV2bGluay5jLTI1MC1cbm5ldC9kc2EvZGV2bGluay5jOjI1MTp2b2lkIGRzYV9kZXZsaW5rX3Jlc291cmNlX29jY19nZXRfcmVnaXN0ZXIoc3RydWN0IGRzYV9zd2l0Y2ggKmRzLFxubmV0L2RzYS9kZXZsaW5rLmMtMjUyLVx0XHRcdFx0XHQgICB1NjQgcmVzb3VyY2VfaWQsXG4tLVxubmV0L2RzYS9kZXZsaW5rLmMtMjYwLX1cbm5ldC9kc2EvZGV2bGluay5jOjI2MTpFWFBPUlRfU1lNQk9MX0dQTChkc2FfZGV2bGlua19yZXNvdXJjZV9vY2NfZ2V0X3JlZ2lzdGVyKTtcbm5ldC9kc2EvZGV2bGluay5jLTI2Mi1cbm5ldC9kc2EvZGV2bGluay5jOjI2Mzp2b2lkIGRzYV9kZXZsaW5rX3Jlc291cmNlX29jY19nZXRfdW5yZWdpc3RlcihzdHJ1Y3QgZHNhX3N3aXRjaCAqZHMsXG5uZXQvZHNhL2RldmxpbmsuYy0yNjQtXHRcdFx0XHRcdCAgICAgdTY0IHJlc291cmNlX2lkKVxuLS1cbm5ldC9kc2EvZGV2bGluay5jLTI2OS19XG5uZXQvZHNhL2RldmxpbmsuYzoyNzA6RVhQT1JUX1NZTUJPTF9HUEwoZHNhX2RldmxpbmtfcmVzb3VyY2Vfb2NjX2dldF91bnJlZ2lzdGVyKTtcbm5ldC9kc2EvZGV2bGluay5jLTI3MS1cbm5ldC9kc2EvZGV2bGluay5jPTI3Mj1zdHJ1Y3QgZGV2bGlua19yZWdpb24gKlxubmV0L2RzYS9kZXZsaW5rLmM6MjczOmRzYV9kZXZsaW5rX3JlZ2lvbl9jcmVhdGUoc3RydWN0IGRzYV9zd2l0Y2ggKmRzLFxubmV0L2RzYS9kZXZsaW5rLmMtMjc0LVx0XHRcdCAgY29uc3Qgc3RydWN0IGRldmxpbmtfcmVnaW9uX29wcyAqb3BzLFxuLS1cbm5ldC9kc2EvZGV2bGluay5jLTI3OS19XG5uZXQvZHNhL2RldmxpbmsuYzoyODA6RVhQT1JUX1NZTUJPTF9HUEwoZHNhX2RldmxpbmtfcmVnaW9uX2NyZWF0ZSk7XG5uZXQvZHNhL2RldmxpbmsuYy0yODEtXG5uZXQvZHNhL2RldmxpbmsuYz0yODI9c3RydWN0IGRldmxpbmtfcmVnaW9uICpcbm5ldC9kc2EvZGV2bGluay5jOjI4Mzpkc2FfZGV2bGlua19wb3J0X3JlZ2lvbl9jcmVhdGUoc3RydWN0IGRzYV9zd2l0Y2ggKmRzLFxubmV0L2RzYS9kZXZsaW5rLmMtMjg0LVx0XHRcdCAgICAgICBpbnQgcG9ydCxcbi0tXG5uZXQvZHNhL2RldmxpbmsuYy0yODcte1xubmV0L2RzYS9kZXZsaW5rLmM6Mjg4Olx0c3RydWN0IGRzYV9wb3J0ICpkcCA9IGRzYV90b19wb3J0KGRzLCBwb3J0KTtcbm5ldC9kc2EvZGV2bGluay5jLTI4OS1cbi0tXG5uZXQvZHNhL2RldmxpbmsuYy0yOTMtfVxubmV0L2RzYS9kZXZsaW5rLmM6Mjk0OkVYUE9SVF9TWU1CT0xfR1BMKGRzYV9kZXZsaW5rX3BvcnRfcmVnaW9uX2NyZWF0ZSk7XG5uZXQvZHNhL2RldmxpbmsuYy0yOTUtXG5uZXQvZHNhL2RldmxpbmsuYzoyOTY6dm9pZCBkc2FfZGV2bGlua19yZWdpb25fZGVzdHJveShzdHJ1Y3QgZGV2bGlua19yZWdpb24gKnJlZ2lvbilcbm5ldC9kc2EvZGV2bGluay5jLTI5Ny17XG4tLVxubmV0L2RzYS9kZXZsaW5rLmMtMjk5LX1cbm5ldC9kc2EvZGV2bGluay5jOjMwMDpFWFBPUlRfU1lNQk9MX0dQTChkc2FfZGV2bGlua19yZWdpb25fZGVzdHJveSk7XG5uZXQvZHNhL2RldmxpbmsuYy0zMDEtXG5uZXQvZHNhL2RldmxpbmsuYzozMDI6aW50IGRzYV9wb3J0X2Rldmxpbmtfc2V0dXAoc3RydWN0IGRzYV9wb3J0ICpkcClcbm5ldC9kc2EvZGV2bGluay5jLTMwMy17XG5uZXQvZHNhL2RldmxpbmsuYy0zMDQtXHRzdHJ1Y3QgZGV2bGlua19wb3J0ICpkbHAgPSBcdTAwMjZkcC1cdTAwM2VkZXZsaW5rX3BvcnQ7XG5uZXQvZHNhL2RldmxpbmsuYzozMDU6XHRzdHJ1Y3QgZHNhX3N3aXRjaF90cmVlICpkc3QgPSBkcC1cdTAwM2Vkcy1cdTAwM2Vkc3Q7XG5uZXQvZHNhL2RldmxpbmsuYy0zMDYtXHRzdHJ1Y3QgZGV2bGlua19wb3J0X2F0dHJzIGF0dHJzID0ge307XG5uZXQvZHNhL2RldmxpbmsuYy0zMDctXHRzdHJ1Y3QgZGV2bGluayAqZGwgPSBkcC1cdTAwM2Vkcy1cdTAwM2VkZXZsaW5rO1xubmV0L2RzYS9kZXZsaW5rLmM6MzA4Olx0c3RydWN0IGRzYV9zd2l0Y2ggKmRzID0gZHAtXHUwMDNlZHM7XG5uZXQvZHNhL2RldmxpbmsuYy0zMDktXHRjb25zdCB1bnNpZ25lZCBjaGFyICppZDtcbi0tXG5uZXQvZHNhL2RldmxpbmsuYy0zNTQtXG5uZXQvZHNhL2RldmxpbmsuYzozNTU6dm9pZCBkc2FfcG9ydF9kZXZsaW5rX3RlYXJkb3duKHN0cnVjdCBkc2FfcG9ydCAqZHApXG5uZXQvZHNhL2RldmxpbmsuYy0zNTYte1xubmV0L2RzYS9kZXZsaW5rLmMtMzU3LVx0c3RydWN0IGRldmxpbmtfcG9ydCAqZGxwID0gXHUwMDI2ZHAtXHUwMDNlZGV2bGlua19wb3J0O1xuXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjkvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzIwIDIwOjQ4PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDI0ODQwCgkJCQkJCQlvdXRwdXQ6IDI4CgkJCQkJCQl0aG91Z2h0czogMTQ2CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKk15IExpbmUgb2YgUmVhc29uaW5nKioKCk9rYXksIGRlZXAgYnJlYXRoLiBMZXQmIzM5O3MgYnJlYWsgdGhpcyBkb3duLiBEU0Eg4oCTIHRoYXQmIzM5O3MgYSAqY29yZSogc3Vic3lzdGVtLiBJbXBvcnRhbnQgc3R1ZmYuIEJ1dCBzcGVjaWZpY2FsbHksIHdlJiMzOTtyZSB0YWxraW5nIGFib3V0IHRoZSBgbXQ3NTMwYCBkcml2ZXIsIHdoaWNoLCBpZiBtZW1vcnkgc2VydmVzLCBpcyBNZWRpYVRlayBzcGVjaWZpYy4gQSBxdWljayBtZW50YWwgY2hlY2suLi4geWVhaCwgdGhhdCByaW5ncyB0cnVlLiBOb3csIHRoZSBwcm9ibGVtLiBJIGNhbiYjMzk7dCBmdXp6IGl0IHVubGVzcyBJIGNhbiBnZXQgaXQgcHJvYmVkIGluIGEgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnQuIFRoYXQmIzM5O3MgdGhlIGZpcnN0IGh1cmRsZS4gQ2FuIEkgZXZlbiBnZXQgdGhpcyB0aGluZyBydW5uaW5nIGluIFFFTVU/CgouLi5Obywgbm90IGRpcmVjdGx5LiBRRU1VIGRvZXNuJiMzOTt0IHNlZW0gdG8gaGF2ZSBvdXQtb2YtdGhlLWJveCBzdXBwb3J0IGZvciB0aGUgTWVkaWFUZWsgTVQ3NTMwIG9yIE1UNzYyMSBzd2l0Y2hlcy4gRGFtbi4gUmlnaHQsIHNvIHRoYXQgbWVhbnMgSSYjMzk7bSBnb2luZyB0byBoYXZlIHRvIGRvIHNvbWV0aGluZyBlbHNlLgoKT2theSwgbGV0JiMzOTtzIHN0ZXAgYmFjay4gU3l6a2FsbGVyLi4uIGl0JiMzOTtzIHBvd2VyZnVsLCBidXQgaXQmIzM5O3Mgbm90IGEgbWFnaWMgYnVsbGV0LiBJdCBkb2VzbiYjMzk7dCBhbGxvdyBhcmJpdHJhcnkgaGFyZHdhcmUgaW5qZWN0aW9uIHZpYSBkZXZpY2UgdHJlZSBub2RlcyB1bmxlc3MgdGhlcmUmIzM5O3MgZXhwbGljaXQgc3VwcG9ydC4gU28sIG15IG5leHQgbG9naWNhbCBzdGVwIGlzIHRvIHNlZSBpZiBJIGNhbiBldmVuIGJlZ2luIHRvIGluamVjdCB0aGlzIGRldmljZS4gVGhlIGZpcnN0IHRoaW5nIEkmIzM5O2xsIGNoZWNrIGlzIHRoZSBzeXprYWxsZXIgZGVzY3JpcHRpb25zLiBEbyB0aGV5IGhhdmUgYW55dGhpbmcgZm9yIGBtZWRpYXRlayxtdDc2MjFgIG9yIGBtZWRpYXRlayxtdDc1MzBgPyBJJiMzOTtsbCBjaGVjayBhbmQgc2VlLiBNYXliZSB0aGVyZSBpcyBzb21ldGhpbmcgYWxyZWFkeSBzZXQgdXAhCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MzAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzIwIDIwOjQ4PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O21lZGlhdGVrLG10NzYyMSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0OyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtEb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvYnVzL3BhbG1idXMueWFtbD01Nj1leGFtcGxlczpcbi0tXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvYnVzL3BhbG1idXMueWFtbC02OS0gICAgICAgICAgICAjaW50ZXJydXB0LWNlbGxzID0gXHUwMDNjMlx1MDAzZTtcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9idXMvcGFsbWJ1cy55YW1sOjcwOiAgICAgICAgICAgIGNvbXBhdGlibGUgPSBcJiMzNDttZWRpYXRlayxtdDc2MjEtZ3Bpb1wmIzM0OztcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9idXMvcGFsbWJ1cy55YW1sLTcxLSAgICAgICAgICAgIGdwaW8tY29udHJvbGxlcjtcbi0tXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvY2xvY2svbWVkaWF0ZWssbXQ3NjIxLXN5c2MueWFtbC0zLS0tLVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2Nsb2NrL21lZGlhdGVrLG10NzYyMS1zeXNjLnlhbWw6NDokaWQ6IGh0dHA6Ly9kZXZpY2V0cmVlLm9yZy9zY2hlbWFzL2Nsb2NrL21lZGlhdGVrLG10NzYyMS1zeXNjLnlhbWwjXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvY2xvY2svbWVkaWF0ZWssbXQ3NjIxLXN5c2MueWFtbC01LSRzY2hlbWE6IGh0dHA6Ly9kZXZpY2V0cmVlLm9yZy9tZXRhLXNjaGVtYXMvY29yZS55YW1sI1xuLS1cbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9jbG9jay9tZWRpYXRlayxtdDc2MjEtc3lzYy55YW1sPTMwPXByb3BlcnRpZXM6XG4tLVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2Nsb2NrL21lZGlhdGVrLG10NzYyMS1zeXNjLnlhbWwtMzItICAgIGl0ZW1zOlxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2Nsb2NrL21lZGlhdGVrLG10NzYyMS1zeXNjLnlhbWw6MzM6ICAgICAgLSBjb25zdDogbWVkaWF0ZWssbXQ3NjIxLXN5c2NcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9jbG9jay9tZWRpYXRlayxtdDc2MjEtc3lzYy55YW1sLTM0LSAgICAgIC0gY29uc3Q6IHN5c2NvblxuLS1cbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9jbG9jay9tZWRpYXRlayxtdDc2MjEtc3lzYy55YW1sPTY3PWV4YW1wbGVzOlxuLS1cbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9jbG9jay9tZWRpYXRlayxtdDc2MjEtc3lzYy55YW1sLTcxLSAgICBzeXNjOiBzeXNjQDAge1xuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2Nsb2NrL21lZGlhdGVrLG10NzYyMS1zeXNjLnlhbWw6NzI6ICAgICAgY29tcGF0aWJsZSA9IFwmIzM0O21lZGlhdGVrLG10NzYyMS1zeXNjXCYjMzQ7LCBcJiMzNDtzeXNjb25cJiMzNDs7XG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvY2xvY2svbWVkaWF0ZWssbXQ3NjIxLXN5c2MueWFtbC03My0gICAgICByZWcgPSBcdTAwM2MweDAgMHgxMDBcdTAwM2U7XG4tLVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2dwaW8vbWVkaWF0ZWssbXQ3NjIxLWdwaW8ueWFtbC0zLS0tLVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2dwaW8vbWVkaWF0ZWssbXQ3NjIxLWdwaW8ueWFtbDo0OiRpZDogaHR0cDovL2RldmljZXRyZWUub3JnL3NjaGVtYXMvZ3Bpby9tZWRpYXRlayxtdDc2MjEtZ3Bpby55YW1sI1xuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2dwaW8vbWVkaWF0ZWssbXQ3NjIxLWdwaW8ueWFtbC01LSRzY2hlbWE6IGh0dHA6Ly9kZXZpY2V0cmVlLm9yZy9tZXRhLXNjaGVtYXMvY29yZS55YW1sI1xuLS1cbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9ncGlvL21lZGlhdGVrLG10NzYyMS1ncGlvLnlhbWw9MTk9cHJvcGVydGllczpcbi0tXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvZ3Bpby9tZWRpYXRlayxtdDc2MjEtZ3Bpby55YW1sLTIzLSAgY29tcGF0aWJsZTpcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9ncGlvL21lZGlhdGVrLG10NzYyMS1ncGlvLnlhbWw6MjQ6ICAgIGNvbnN0OiBtZWRpYXRlayxtdDc2MjEtZ3Bpb1xuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2dwaW8vbWVkaWF0ZWssbXQ3NjIxLWdwaW8ueWFtbC0yNS1cbi0tXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvZ3Bpby9tZWRpYXRlayxtdDc2MjEtZ3Bpby55YW1sPTU1PWV4YW1wbGVzOlxuLS1cbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9ncGlvL21lZGlhdGVrLG10NzYyMS1ncGlvLnlhbWwtNjAtICAgIGdwaW9ANjAwIHtcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9ncGlvL21lZGlhdGVrLG10NzYyMS1ncGlvLnlhbWw6NjE6ICAgICAgY29tcGF0aWJsZSA9IFwmIzM0O21lZGlhdGVrLG10NzYyMS1ncGlvXCYjMzQ7O1xuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2dwaW8vbWVkaWF0ZWssbXQ3NjIxLWdwaW8ueWFtbC02Mi0gICAgICByZWcgPSBcdTAwM2MweDYwMCAweDEwMFx1MDAzZTtcbi0tXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvaTJjL21lZGlhdGVrLG10NzYyMS1pMmMueWFtbC0zLS0tLVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2kyYy9tZWRpYXRlayxtdDc2MjEtaTJjLnlhbWw6NDokaWQ6IGh0dHA6Ly9kZXZpY2V0cmVlLm9yZy9zY2hlbWFzL2kyYy9tZWRpYXRlayxtdDc2MjEtaTJjLnlhbWwjXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvaTJjL21lZGlhdGVrLG10NzYyMS1pMmMueWFtbC01LSRzY2hlbWE6IGh0dHA6Ly9kZXZpY2V0cmVlLm9yZy9tZXRhLXNjaGVtYXMvY29yZS55YW1sI1xuLS1cbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9pMmMvbWVkaWF0ZWssbXQ3NjIxLWkyYy55YW1sPTE1PXByb3BlcnRpZXM6XG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvaTJjL21lZGlhdGVrLG10NzYyMS1pMmMueWFtbC0xNi0gIGNvbXBhdGlibGU6XG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvaTJjL21lZGlhdGVrLG10NzYyMS1pMmMueWFtbDoxNzogICAgY29uc3Q6IG1lZGlhdGVrLG10NzYyMS1pMmNcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9pMmMvbWVkaWF0ZWssbXQ3NjIxLWkyYy55YW1sLTE4LVxuLS1cbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9pMmMvbWVkaWF0ZWssbXQ3NjIxLWkyYy55YW1sPTQzPWV4YW1wbGVzOlxuLS1cbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9pMmMvbWVkaWF0ZWssbXQ3NjIxLWkyYy55YW1sLTQ4LSAgICBpMmM6IGkyY0A5MDAge1xuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2kyYy9tZWRpYXRlayxtdDc2MjEtaTJjLnlhbWw6NDk6ICAgICAgY29tcGF0aWJsZSA9IFwmIzM0O21lZGlhdGVrLG10NzYyMS1pMmNcJiMzNDs7XG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvaTJjL21lZGlhdGVrLG10NzYyMS1pMmMueWFtbC01MC0gICAgICByZWcgPSBcdTAwM2MweDkwMCAweDEwMFx1MDAzZTtcbi0tXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbWVtb3J5LWNvbnRyb2xsZXJzL21lZGlhdGVrLG10NzYyMS1tZW1jLnlhbWwtMy0tLS1cbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9tZW1vcnktY29udHJvbGxlcnMvbWVkaWF0ZWssbXQ3NjIxLW1lbWMueWFtbDo0OiRpZDogaHR0cDovL2RldmljZXRyZWUub3JnL3NjaGVtYXMvbWVtb3J5LWNvbnRyb2xsZXJzL21lZGlhdGVrLG10NzYyMS1tZW1jLnlhbWwjXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbWVtb3J5LWNvbnRyb2xsZXJzL21lZGlhdGVrLG10NzYyMS1tZW1jLnlhbWwtNS0kc2NoZW1hOiBodHRwOi8vZGV2aWNldHJlZS5vcmcvbWV0YS1zY2hlbWFzL2NvcmUueWFtbCNcbi0tXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbWVtb3J5LWNvbnRyb2xsZXJzL21lZGlhdGVrLG10NzYyMS1tZW1jLnlhbWw9MTI9cHJvcGVydGllczpcbi0tXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbWVtb3J5LWNvbnRyb2xsZXJzL21lZGlhdGVrLG10NzYyMS1tZW1jLnlhbWwtMTQtICAgIGl0ZW1zOlxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL21lbW9yeS1jb250cm9sbGVycy9tZWRpYXRlayxtdDc2MjEtbWVtYy55YW1sOjE1OiAgICAgIC0gY29uc3Q6IG1lZGlhdGVrLG10NzYyMS1tZW1jXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbWVtb3J5LWNvbnRyb2xsZXJzL21lZGlhdGVrLG10NzYyMS1tZW1jLnlhbWwtMTYtICAgICAgLSBjb25zdDogc3lzY29uXG4tLVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL21lbW9yeS1jb250cm9sbGVycy9tZWRpYXRlayxtdDc2MjEtbWVtYy55YW1sPTI3PWV4YW1wbGVzOlxuLS1cbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9tZW1vcnktY29udHJvbGxlcnMvbWVkaWF0ZWssbXQ3NjIxLW1lbWMueWFtbC0yOS0gICAgbWVtb3J5LWNvbnRyb2xsZXJANTAwMCB7XG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbWVtb3J5LWNvbnRyb2xsZXJzL21lZGlhdGVrLG10NzYyMS1tZW1jLnlhbWw6MzA6ICAgICAgICBjb21wYXRpYmxlID0gXCYjMzQ7bWVkaWF0ZWssbXQ3NjIxLW1lbWNcJiMzNDssIFwmIzM0O3N5c2NvblwmIzM0OztcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9tZW1vcnktY29udHJvbGxlcnMvbWVkaWF0ZWssbXQ3NjIxLW1lbWMueWFtbC0zMS0gICAgICAgIHJlZyA9IFx1MDAzYzB4NTAwMCAweDEwMDBcdTAwM2U7XG4tLVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL21pcHMvcmFsaW5rLnlhbWw9MTU9cHJvcGVydGllczpcbi0tXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbWlwcy9yYWxpbmsueWFtbC04My0gICAgICAgICAgICAgIC0gdHBsaW5rLGhjMjIwLWc1LXYxXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbWlwcy9yYWxpbmsueWFtbDo4NDogICAgICAgICAgLSBjb25zdDogbWVkaWF0ZWssbXQ3NjIxLXNvY1xuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL21pcHMvcmFsaW5rLnlhbWwtODUtXG4tLVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9kc2EvbWVkaWF0ZWssbXQ3NTMwLnlhbWw9NzY9cHJvcGVydGllczpcbi0tXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2RzYS9tZWRpYXRlayxtdDc1MzAueWFtbC04OC0gICAgICAgICAgTXVsdGktY2hpcCBtb2R1bGUgTVQ3NTMwIGluIE1UNzYyMUFULCBNVDc2MjFEQVQgYW5kIE1UNzYyMVNUIFNvQ3NcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvZHNhL21lZGlhdGVrLG10NzUzMC55YW1sOjg5OiAgICAgICAgY29uc3Q6IG1lZGlhdGVrLG10NzYyMVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9kc2EvbWVkaWF0ZWssbXQ3NTMwLnlhbWwtOTAtXG4tLVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9kc2EvbWVkaWF0ZWssbXQ3NTMwLnlhbWw9MjY5PWFsbE9mOlxuLS1cbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvZHNhL21lZGlhdGVrLG10NzUzMC55YW1sLTMwNy0gICAgICAgIGNvbXBhdGlibGU6XG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2RzYS9tZWRpYXRlayxtdDc1MzAueWFtbDozMDg6ICAgICAgICAgIGNvbnN0OiBtZWRpYXRlayxtdDc2MjFcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvZHNhL21lZGlhdGVrLG10NzUzMC55YW1sLTMwOS0gICAgdGhlbjpcbi0tXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2RzYS9tZWRpYXRlayxtdDc1MzAueWFtbD0zMzA9ZXhhbXBsZXM6XG4tLVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9kc2EvbWVkaWF0ZWssbXQ3NTMwLnlhbWwtNTI4LSAgICAgICAgc3dpdGNoQDFmIHtcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvZHNhL21lZGlhdGVrLG10NzUzMC55YW1sOjUyOTogICAgICAgICAgICBjb21wYXRpYmxlID0gXCYjMzQ7bWVkaWF0ZWssbXQ3NjIxXCYjMzQ7O1xuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9kc2EvbWVkaWF0ZWssbXQ3NTMwLnlhbWwtNTMwLSAgICAgICAgICAgIHJlZyA9IFx1MDAzYzB4MWZcdTAwM2U7XG4tLVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9kc2EvbWVkaWF0ZWssbXQ3NTMwLnlhbWwtNjE0LSAgICAgICAgICAgIHN3aXRjaEAxZiB7XG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2RzYS9tZWRpYXRlayxtdDc1MzAueWFtbDo2MTU6ICAgICAgICAgICAgICAgIGNvbXBhdGlibGUgPSBcJiMzNDttZWRpYXRlayxtdDc2MjFcJiMzNDs7XG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2RzYS9tZWRpYXRlayxtdDc1MzAueWFtbC02MTYtICAgICAgICAgICAgICAgIHJlZyA9IFx1MDAzYzB4MWZcdTAwM2U7XG4tLVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9kc2EvbWVkaWF0ZWssbXQ3NTMwLnlhbWwtNzA0LSAgICAgICAgICAgIHN3aXRjaEAxZiB7XG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2RzYS9tZWRpYXRlayxtdDc1MzAueWFtbDo3MDU6ICAgICAgICAgICAgICAgIGNvbXBhdGlibGUgPSBcJiMzNDttZWRpYXRlayxtdDc2MjFcJiMzNDs7XG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2RzYS9tZWRpYXRlayxtdDc1MzAueWFtbC03MDYtICAgICAgICAgICAgICAgIHJlZyA9IFx1MDAzYzB4MWZcdTAwM2U7XG4tLVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9kc2EvbWVkaWF0ZWssbXQ3NTMwLnlhbWwtNzg0LSAgICAgICAgICAgIHN3aXRjaEAxZiB7XG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2RzYS9tZWRpYXRlayxtdDc1MzAueWFtbDo3ODU6ICAgICAgICAgICAgICAgIGNvbXBhdGlibGUgPSBcJiMzNDttZWRpYXRlayxtdDc2MjFcJiMzNDs7XG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2RzYS9tZWRpYXRlayxtdDc1MzAueWFtbC03ODYtICAgICAgICAgICAgICAgIHJlZyA9IFx1MDAzYzB4MWZcdTAwM2U7XG4tLVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9tZWRpYXRlayxuZXQueWFtbD0xNz1wcm9wZXJ0aWVzOlxuLS1cbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvbWVkaWF0ZWssbmV0LnlhbWwtMjEtICAgICAgLSBtZWRpYXRlayxtdDc2MjMtZXRoXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L21lZGlhdGVrLG5ldC55YW1sOjIyOiAgICAgIC0gbWVkaWF0ZWssbXQ3NjIxLWV0aFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9tZWRpYXRlayxuZXQueWFtbC0yMy0gICAgICAtIG1lZGlhdGVrLG10NzYyMi1ldGhcbi0tXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L21lZGlhdGVrLG5ldC55YW1sPTEzOD1hbGxPZjpcbi0tXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L21lZGlhdGVrLG5ldC55YW1sLTE4My0gICAgICAgICAgICBlbnVtOlxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9tZWRpYXRlayxuZXQueWFtbDoxODQ6ICAgICAgICAgICAgICAtIG1lZGlhdGVrLG10NzYyMS1ldGhcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvbWVkaWF0ZWssbmV0LnlhbWwtMTg1LSAgICB0aGVuOlxuLS1cbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9wY2kvbWVkaWF0ZWssbXQ3NjIxLXBjaWUueWFtbC0zLS0tLVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3BjaS9tZWRpYXRlayxtdDc2MjEtcGNpZS55YW1sOjQ6JGlkOiBodHRwOi8vZGV2aWNldHJlZS5vcmcvc2NoZW1hcy9wY2kvbWVkaWF0ZWssbXQ3NjIxLXBjaWUueWFtbCNcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9wY2kvbWVkaWF0ZWssbXQ3NjIxLXBjaWUueWFtbC01LSRzY2hlbWE6IGh0dHA6Ly9kZXZpY2V0cmVlLm9yZy9tZXRhLXNjaGVtYXMvY29yZS55YW1sI1xuLS1cbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9wY2kvbWVkaWF0ZWssbXQ3NjIxLXBjaWUueWFtbD00OD1wcm9wZXJ0aWVzOlxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3BjaS9tZWRpYXRlayxtdDc2MjEtcGNpZS55YW1sLTQ5LSAgY29tcGF0aWJsZTpcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9wY2kvbWVkaWF0ZWssbXQ3NjIxLXBjaWUueWFtbDo1MDogICAgY29uc3Q6IG1lZGlhdGVrLG10NzYyMS1wY2lcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9wY2kvbWVkaWF0ZWssbXQ3NjIxLXBjaWUueWFtbC01MS1cbi0tXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvcGNpL21lZGlhdGVrLG10NzYyMS1wY2llLnlhbWw9MTA2PWV4YW1wbGVzOlxuLS1cbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9wY2kvbWVkaWF0ZWssbXQ3NjIxLXBjaWUueWFtbC0xMTEtICAgIHBjaWU6IHBjaWVAMWUxNDAwMDAge1xuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3BjaS9tZWRpYXRlayxtdDc2MjEtcGNpZS55YW1sOjExMjogICAgICAgIGNvbXBhdGlibGUgPSBcJiMzNDttZWRpYXRlayxtdDc2MjEtcGNpXCYjMzQ7O1xuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3BjaS9tZWRpYXRlayxtdDc2MjEtcGNpZS55YW1sLTExMy0gICAgICAgIHJlZyA9IFx1MDAzYzB4MWUxNDAwMDAgMHgxMDBcdTAwM2UsXG4tLVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3BoeS9tZWRpYXRlayxtdDc2MjEtcGNpLXBoeS55YW1sLTMtLS0tXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvcGh5L21lZGlhdGVrLG10NzYyMS1wY2ktcGh5LnlhbWw6NDokaWQ6IGh0dHA6Ly9kZXZpY2V0cmVlLm9yZy9zY2hlbWFzL3BoeS9tZWRpYXRlayxtdDc2MjEtcGNpLXBoeS55YW1sI1xuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3BoeS9tZWRpYXRlayxtdDc2MjEtcGNpLXBoeS55YW1sLTUtJHNjaGVtYTogaHR0cDovL2RldmljZXRyZWUub3JnL21ldGEtc2NoZW1hcy9jb3JlLnlhbWwjXG4tLVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3BoeS9tZWRpYXRlayxtdDc2MjEtcGNpLXBoeS55YW1sPTEyPXByb3BlcnRpZXM6XG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvcGh5L21lZGlhdGVrLG10NzYyMS1wY2ktcGh5LnlhbWwtMTMtICBjb21wYXRpYmxlOlxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3BoeS9tZWRpYXRlayxtdDc2MjEtcGNpLXBoeS55YW1sOjE0OiAgICBjb25zdDogbWVkaWF0ZWssbXQ3NjIxLXBjaS1waHlcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9waHkvbWVkaWF0ZWssbXQ3NjIxLXBjaS1waHkueWFtbC0xNS1cbi0tXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvcGh5L21lZGlhdGVrLG10NzYyMS1wY2ktcGh5LnlhbWw9MzQ9ZXhhbXBsZXM6XG4tLVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3BoeS9tZWRpYXRlayxtdDc2MjEtcGNpLXBoeS55YW1sLTM2LSAgICBwY2llMF9waHk6IHBjaWUtcGh5QDFlMTQ5MDAwIHtcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9waHkvbWVkaWF0ZWssbXQ3NjIxLXBjaS1waHkueWFtbDozNzogICAgICBjb21wYXRpYmxlID0gXCYjMzQ7bWVkaWF0ZWssbXQ3NjIxLXBjaS1waHlcJiMzNDs7XG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvcGh5L21lZGlhdGVrLG10NzYyMS1wY2ktcGh5LnlhbWwtMzgtICAgICAgcmVnID0gXHUwMDNjMHgxZTE0OTAwMCAweDA3MDBcdTAwM2U7XG4tLVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3BpbmN0cmwvbWVkaWF0ZWssbXQ3NjIxLXBpbmN0cmwueWFtbC0zLS0tLVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3BpbmN0cmwvbWVkaWF0ZWssbXQ3NjIxLXBpbmN0cmwueWFtbDo0OiRpZDogaHR0cDovL2RldmljZXRyZWUub3JnL3NjaGVtYXMvcGluY3RybC9tZWRpYXRlayxtdDc2MjEtcGluY3RybC55YW1sI1xuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3BpbmN0cmwvbWVkaWF0ZWssbXQ3NjIxLXBpbmN0cmwueWFtbC01LSRzY2hlbWE6IGh0dHA6Ly9kZXZpY2V0cmVlLm9yZy9tZXRhLXNjaGVtYXMvY29yZS55YW1sI1xuLS1cbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy93YXRjaGRvZy9tZWRpYXRlayxtdDc2MjEtd2R0LnlhbWwtMy0tLS1cbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy93YXRjaGRvZy9tZWRpYXRlayxtdDc2MjEtd2R0LnlhbWw6NDokaWQ6IGh0dHA6Ly9kZXZpY2V0cmVlLm9yZy9zY2hlbWFzL3dhdGNoZG9nL21lZGlhdGVrLG10NzYyMS13ZHQueWFtbCNcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy93YXRjaGRvZy9tZWRpYXRlayxtdDc2MjEtd2R0LnlhbWwtNS0kc2NoZW1hOiBodHRwOi8vZGV2aWNldHJlZS5vcmcvbWV0YS1zY2hlbWFzL2NvcmUueWFtbCNcbi0tXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3Mvd2F0Y2hkb2cvbWVkaWF0ZWssbXQ3NjIxLXdkdC55YW1sPTE1PXByb3BlcnRpZXM6XG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3Mvd2F0Y2hkb2cvbWVkaWF0ZWssbXQ3NjIxLXdkdC55YW1sLTE2LSAgY29tcGF0aWJsZTpcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy93YXRjaGRvZy9tZWRpYXRlayxtdDc2MjEtd2R0LnlhbWw6MTc6ICAgIGNvbnN0OiBtZWRpYXRlayxtdDc2MjEtd2R0XG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3Mvd2F0Y2hkb2cvbWVkaWF0ZWssbXQ3NjIxLXdkdC55YW1sLTE4LVxuLS1cbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy93YXRjaGRvZy9tZWRpYXRlayxtdDc2MjEtd2R0LnlhbWw9MzQ9ZXhhbXBsZXM6XG4tLVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3dhdGNoZG9nL21lZGlhdGVrLG10NzYyMS13ZHQueWFtbC0zNi0gICAgd2F0Y2hkb2dAMTAwIHtcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy93YXRjaGRvZy9tZWRpYXRlayxtdDc2MjEtd2R0LnlhbWw6Mzc6ICAgICAgICBjb21wYXRpYmxlID0gXCYjMzQ7bWVkaWF0ZWssbXQ3NjIxLXdkdFwmIzM0OztcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy93YXRjaGRvZy9tZWRpYXRlayxtdDc2MjEtd2R0LnlhbWwtMzgtICAgICAgICByZWcgPSBcdTAwM2MweDEwMCAweDEwMFx1MDAzZTtcbi0tXG5NQUlOVEFJTkVSUz0xNjYwMz1TOlx0TWFpbnRhaW5lZFxuTUFJTlRBSU5FUlM6MTY2MDQ6RjpcdERvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9jbG9jay9tZWRpYXRlayxtdDc2MjEtc3lzYy55YW1sXG5NQUlOVEFJTkVSUy0xNjYwNS1GOlx0ZHJpdmVycy9jbGsvcmFsaW5rL2Nsay1tdDc2MjEuY1xuLS1cbk1BSU5UQUlORVJTPTE2NjA5PVM6XHRNYWludGFpbmVkXG5NQUlOVEFJTkVSUzoxNjYxMDpGOlx0RG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3BjaS9tZWRpYXRlayxtdDc2MjEtcGNpZS55YW1sXG5NQUlOVEFJTkVSUy0xNjYxMS1GOlx0ZHJpdmVycy9wY2kvY29udHJvbGxlci9wY2llLW10NzYyMS5jXG4tLVxuTUFJTlRBSU5FUlM9MTY2MTU9UzpcdE1haW50YWluZWRcbk1BSU5UQUlORVJTOjE2NjE2OkY6XHREb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvcGh5L21lZGlhdGVrLG10NzYyMS1wY2ktcGh5LnlhbWxcbk1BSU5UQUlORVJTLTE2NjE3LUY6XHRkcml2ZXJzL3BoeS9yYWxpbmsvcGh5LW10NzYyMS1wY2kuY1xuLS1cbk1BSU5UQUlORVJTPTE2NjIyPVM6XHRNYWludGFpbmVkXG5NQUlOVEFJTkVSUzoxNjYyMzpGOlx0RG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2kyYy9tZWRpYXRlayxtdDc2MjEtaTJjLnlhbWxcbk1BSU5UQUlORVJTLTE2NjI0LUY6XHRkcml2ZXJzL2kyYy9idXNzZXMvaTJjLW10NzYyMS5jXG4tLVxuTUFJTlRBSU5FUlM9MjEzMjM9RjpcdERvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9waW5jdHJsL21lZGlhdGVrLG10NzYyMC1waW5jdHJsLnlhbWxcbk1BSU5UQUlORVJTOjIxMzI0OkY6XHREb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvcGluY3RybC9tZWRpYXRlayxtdDc2MjEtcGluY3RybC55YW1sXG5NQUlOVEFJTkVSUy0yMTMyNS1GOlx0RG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3BpbmN0cmwvbWVkaWF0ZWssbXQ3Nng4LXBpbmN0cmwueWFtbFxuLS1cbmFyY2gvYXJtNjQvYm9vdC9kdHMvYWlyb2hhL2VuNzU4MS5kdHNpPTMyMj1cdFx0aTJjMDogaTJjQDFmYmY4MDAwIHtcbmFyY2gvYXJtNjQvYm9vdC9kdHMvYWlyb2hhL2VuNzU4MS5kdHNpOjMyMzpcdFx0XHRjb21wYXRpYmxlID0gXCYjMzQ7bWVkaWF0ZWssbXQ3NjIxLWkyY1wmIzM0OztcbmFyY2gvYXJtNjQvYm9vdC9kdHMvYWlyb2hhL2VuNzU4MS5kdHNpLTMyNC1cdFx0XHRyZWcgPSBcdTAwM2MweDAgMHgxZmJmODAwMCAweDAgMHgxMDBcdTAwM2U7XG4tLVxuYXJjaC9hcm02NC9ib290L2R0cy9haXJvaGEvZW43NTgxLmR0c2k9MzM2PVx0XHRpMmMxOiBpMmNAMWZiZjgxMDAge1xuYXJjaC9hcm02NC9ib290L2R0cy9haXJvaGEvZW43NTgxLmR0c2k6MzM3Olx0XHRcdGNvbXBhdGlibGUgPSBcJiMzNDttZWRpYXRlayxtdDc2MjEtaTJjXCYjMzQ7O1xuYXJjaC9hcm02NC9ib290L2R0cy9haXJvaGEvZW43NTgxLmR0c2ktMzM4LVx0XHRcdHJlZyA9IFx1MDAzYzB4MCAweDFmYmY4MTAwIDB4MCAweDEwMFx1MDAzZTtcbi0tXG5hcmNoL21pcHMvYm9vdC9kdHMvcmFsaW5rL210NzYyMS1nbnViZWUtZ2ItcGMxLmR0cz05PS8ge1xuYXJjaC9taXBzL2Jvb3QvZHRzL3JhbGluay9tdDc2MjEtZ251YmVlLWdiLXBjMS5kdHM6MTA6XHRjb21wYXRpYmxlID0gXCYjMzQ7Z251YmVlLGdiLXBjMVwmIzM0OywgXCYjMzQ7bWVkaWF0ZWssbXQ3NjIxLXNvY1wmIzM0OztcbmFyY2gvbWlwcy9ib290L2R0cy9yYWxpbmsvbXQ3NjIxLWdudWJlZS1nYi1wYzEuZHRzLTExLVx0bW9kZWwgPSBcJiMzNDtHbnVCZWUgR0ItUEMxXCYjMzQ7O1xuLS1cbmFyY2gvbWlwcy9ib290L2R0cy9yYWxpbmsvbXQ3NjIxLWdudWJlZS1nYi1wYzIuZHRzPTk9LyB7XG5hcmNoL21pcHMvYm9vdC9kdHMvcmFsaW5rL210NzYyMS1nbnViZWUtZ2ItcGMyLmR0czoxMDpcdGNvbXBhdGlibGUgPSBcJiMzNDtnbnViZWUsZ2ItcGMyXCYjMzQ7LCBcJiMzNDttZWRpYXRlayxtdDc2MjEtc29jXCYjMzQ7O1xuYXJjaC9taXBzL2Jvb3QvZHRzL3JhbGluay9tdDc2MjEtZ251YmVlLWdiLXBjMi5kdHMtMTEtXHRtb2RlbCA9IFwmIzM0O0dudUJlZSBHQi1QQzJcJiMzNDs7XG4tLVxuYXJjaC9taXBzL2Jvb3QvZHRzL3JhbGluay9tdDc2MjEtdHBsaW5rLWhjMjIwLWc1LXYxLmR0cz0xMD0vIHtcbmFyY2gvbWlwcy9ib290L2R0cy9yYWxpbmsvbXQ3NjIxLXRwbGluay1oYzIyMC1nNS12MS5kdHM6MTE6XHRjb21wYXRpYmxlID0gXCYjMzQ7dHBsaW5rLGhjMjIwLWc1LXYxXCYjMzQ7LCBcJiMzNDttZWRpYXRlayxtdDc2MjEtc29jXCYjMzQ7O1xuYXJjaC9taXBzL2Jvb3QvZHRzL3JhbGluay9tdDc2MjEtdHBsaW5rLWhjMjIwLWc1LXYxLmR0cy0xMi1cdG1vZGVsID0gXCYjMzQ7VFAtTGluayBIQzIyMCBHNSB2MVwmIzM0Oztcbi0tXG5hcmNoL21pcHMvYm9vdC9kdHMvcmFsaW5rL210NzYyMS5kdHNpPTc9LyB7XG5hcmNoL21pcHMvYm9vdC9kdHMvcmFsaW5rL210NzYyMS5kdHNpOjg6XHRjb21wYXRpYmxlID0gXCYjMzQ7bWVkaWF0ZWssbXQ3NjIxLXNvY1wmIzM0OztcbmFyY2gvbWlwcy9ib290L2R0cy9yYWxpbmsvbXQ3NjIxLmR0c2ktOS1cbi0tXG5hcmNoL21pcHMvYm9vdC9kdHMvcmFsaW5rL210NzYyMS5kdHNpPTE1NT1cdFx0c3lzYzogc3lzY29uQDAge1xuYXJjaC9taXBzL2Jvb3QvZHRzL3JhbGluay9tdDc2MjEuZHRzaToxNTY6XHRcdFx0Y29tcGF0aWJsZSA9IFwmIzM0O21lZGlhdGVrLG10NzYyMS1zeXNjXCYjMzQ7LCBcJiMzNDtzeXNjb25cJiMzNDs7XG5hcmNoL21pcHMvYm9vdC9kdHMvcmFsaW5rL210NzYyMS5kdHNpLTE1Ny1cdFx0XHRyZWcgPSBcdTAwM2MweDAgMHgxMDBcdTAwM2U7XG4tLVxuYXJjaC9taXBzL2Jvb3QvZHRzL3JhbGluay9tdDc2MjEuZHRzaT0xNjk9XHRcdHdkdDogd2F0Y2hkb2dAMTAwIHtcbmFyY2gvbWlwcy9ib290L2R0cy9yYWxpbmsvbXQ3NjIxLmR0c2k6MTcwOlx0XHRcdGNvbXBhdGlibGUgPSBcJiMzNDttZWRpYXRlayxtdDc2MjEtd2R0XCYjMzQ7O1xuYXJjaC9taXBzL2Jvb3QvZHRzL3JhbGluay9tdDc2MjEuZHRzaS0xNzEtXHRcdFx0cmVnID0gXHUwMDNjMHgxMDAgMHgxMDBcdTAwM2U7XG4tLVxuYXJjaC9taXBzL2Jvb3QvZHRzL3JhbGluay9tdDc2MjEuZHRzaT0xNzU9XHRcdGdwaW86IGdwaW9ANjAwIHtcbmFyY2gvbWlwcy9ib290L2R0cy9yYWxpbmsvbXQ3NjIxLmR0c2k6MTc2Olx0XHRcdGNvbXBhdGlibGUgPSBcJiMzNDttZWRpYXRlayxtdDc2MjEtZ3Bpb1wmIzM0OztcbmFyY2gvbWlwcy9ib290L2R0cy9yYWxpbmsvbXQ3NjIxLmR0c2ktMTc3LVx0XHRcdHJlZyA9IFx1MDAzYzB4NjAwIDB4MTAwXHUwMDNlO1xuLS1cbmFyY2gvbWlwcy9ib290L2R0cy9yYWxpbmsvbXQ3NjIxLmR0c2k9MTkwPVx0XHRpMmM6IGkyY0A5MDAge1xuYXJjaC9taXBzL2Jvb3QvZHRzL3JhbGluay9tdDc2MjEuZHRzaToxOTE6XHRcdFx0Y29tcGF0aWJsZSA9IFwmIzM0O21lZGlhdGVrLG10NzYyMS1pMmNcJiMzNDs7XG5hcmNoL21pcHMvYm9vdC9kdHMvcmFsaW5rL210NzYyMS5kdHNpLTE5Mi1cdFx0XHRyZWcgPSBcdTAwM2MweDkwMCAweDEwMFx1MDAzZTtcbi0tXG5hcmNoL21pcHMvYm9vdC9kdHMvcmFsaW5rL210NzYyMS5kdHNpPTIwOT1cdFx0bWVtYzogbWVtb3J5LWNvbnRyb2xsZXJANTAwMCB7XG5hcmNoL21pcHMvYm9vdC9kdHMvcmFsaW5rL210NzYyMS5kdHNpOjIxMDpcdFx0XHRjb21wYXRpYmxlID0gXCYjMzQ7bWVkaWF0ZWssbXQ3NjIxLW1lbWNcJiMzNDssIFwmIzM0O3N5c2NvblwmIzM0OztcbmFyY2gvbWlwcy9ib290L2R0cy9yYWxpbmsvbXQ3NjIxLmR0c2ktMjExLVx0XHRcdHJlZyA9IFx1MDAzYzB4NTAwMCAweDEwMDBcdTAwM2U7XG4tLVxuYXJjaC9taXBzL2Jvb3QvZHRzL3JhbGluay9tdDc2MjEuZHRzaT0zNjQ9XHRldGhlcm5ldDogZXRoZXJuZXRAMWUxMDAwMDAge1xuYXJjaC9taXBzL2Jvb3QvZHRzL3JhbGluay9tdDc2MjEuZHRzaTozNjU6XHRcdGNvbXBhdGlibGUgPSBcJiMzNDttZWRpYXRlayxtdDc2MjEtZXRoXCYjMzQ7O1xuYXJjaC9taXBzL2Jvb3QvZHRzL3JhbGluay9tdDc2MjEuZHRzaS0zNjYtXHRcdHJlZyA9IFx1MDAzYzB4MWUxMDAwMDAgMHgxMDAwMFx1MDAzZTtcbi0tXG5hcmNoL21pcHMvYm9vdC9kdHMvcmFsaW5rL210NzYyMS5kdHNpPTM4OT1cdFx0XHRzd2l0Y2gwOiBzd2l0Y2hAMWYge1xuYXJjaC9taXBzL2Jvb3QvZHRzL3JhbGluay9tdDc2MjEuZHRzaTozOTA6XHRcdFx0XHRjb21wYXRpYmxlID0gXCYjMzQ7bWVkaWF0ZWssbXQ3NjIxXCYjMzQ7O1xuYXJjaC9taXBzL2Jvb3QvZHRzL3JhbGluay9tdDc2MjEuZHRzaS0zOTEtXHRcdFx0XHRyZWcgPSBcdTAwM2MweDFmXHUwMDNlO1xuLS1cbmFyY2gvbWlwcy9ib290L2R0cy9yYWxpbmsvbXQ3NjIxLmR0c2k9NDkzPVx0cGNpZTogcGNpZUAxZTE0MDAwMCB7XG5hcmNoL21pcHMvYm9vdC9kdHMvcmFsaW5rL210NzYyMS5kdHNpOjQ5NDpcdFx0Y29tcGF0aWJsZSA9IFwmIzM0O21lZGlhdGVrLG10NzYyMS1wY2lcJiMzNDs7XG5hcmNoL21pcHMvYm9vdC9kdHMvcmFsaW5rL210NzYyMS5kdHNpLTQ5NS1cdFx0cmVnID0gXHUwMDNjMHgxZTE0MDAwMCAweDEwMFx1MDAzZSwgLyogaG9zdC1wY2kgYnJpZGdlIHJlZ2lzdGVycyAqL1xuLS1cbmFyY2gvbWlwcy9ib290L2R0cy9yYWxpbmsvbXQ3NjIxLmR0c2k9NTg0PVx0cGNpZTBfcGh5OiBwY2llLXBoeUAxZTE0OTAwMCB7XG5hcmNoL21pcHMvYm9vdC9kdHMvcmFsaW5rL210NzYyMS5kdHNpOjU4NTpcdFx0Y29tcGF0aWJsZSA9IFwmIzM0O21lZGlhdGVrLG10NzYyMS1wY2ktcGh5XCYjMzQ7O1xuYXJjaC9taXBzL2Jvb3QvZHRzL3JhbGluay9tdDc2MjEuZHRzaS01ODYtXHRcdHJlZyA9IFx1MDAzYzB4MWUxNDkwMDAgMHgwNzAwXHUwMDNlO1xuLS1cbmFyY2gvbWlwcy9ib290L2R0cy9yYWxpbmsvbXQ3NjIxLmR0c2k9NTkzPVx0cGNpZTJfcGh5OiBwY2llLXBoeUAxZTE0YTAwMCB7XG5hcmNoL21pcHMvYm9vdC9kdHMvcmFsaW5rL210NzYyMS5kdHNpOjU5NDpcdFx0Y29tcGF0aWJsZSA9IFwmIzM0O21lZGlhdGVrLG10NzYyMS1wY2ktcGh5XCYjMzQ7O1xuYXJjaC9taXBzL2Jvb3QvZHRzL3JhbGluay9tdDc2MjEuZHRzaS01OTUtXHRcdHJlZyA9IFx1MDAzYzB4MWUxNGEwMDAgMHgwNzAwXHUwMDNlO1xuLS1cbmFyY2gvbWlwcy9ib290L2R0cy9yYWxpbmsvbXQ3NjI4YS5kdHNpPTEzNT1cdFx0d2F0Y2hkb2c6IHdhdGNoZG9nQDEwMCB7XG5hcmNoL21pcHMvYm9vdC9kdHMvcmFsaW5rL210NzYyOGEuZHRzaToxMzY6XHRcdFx0Y29tcGF0aWJsZSA9IFwmIzM0O21lZGlhdGVrLG10NzYyMS13ZHRcJiMzNDs7XG5hcmNoL21pcHMvYm9vdC9kdHMvcmFsaW5rL210NzYyOGEuZHRzaS0xMzctXHRcdFx0cmVnID0gXHUwMDNjMHgxMDAgMHgxMDBcdTAwM2U7XG4tLVxuYXJjaC9taXBzL2Jvb3QvZHRzL3JhbGluay9tdDc2MjhhLmR0c2k9MTY2PVx0XHRncGlvOiBncGlvQDYwMCB7XG5hcmNoL21pcHMvYm9vdC9kdHMvcmFsaW5rL210NzYyOGEuZHRzaToxNjc6XHRcdFx0Y29tcGF0aWJsZSA9IFwmIzM0O21lZGlhdGVrLG10NzYyMS1ncGlvXCYjMzQ7O1xuYXJjaC9taXBzL2Jvb3QvZHRzL3JhbGluay9tdDc2MjhhLmR0c2ktMTY4LVx0XHRcdHJlZyA9IFx1MDAzYzB4NjAwIDB4MTAwXHUwMDNlO1xuLS1cbmFyY2gvbWlwcy9ib290L2R0cy9yYWxpbmsvbXQ3NjI4YS5kdHNpPTE5Nz1cdFx0aTJjOiBpMmNAOTAwIHtcbmFyY2gvbWlwcy9ib290L2R0cy9yYWxpbmsvbXQ3NjI4YS5kdHNpOjE5ODpcdFx0XHRjb21wYXRpYmxlID0gXCYjMzQ7bWVkaWF0ZWssbXQ3NjIxLWkyY1wmIzM0OztcbmFyY2gvbWlwcy9ib290L2R0cy9yYWxpbmsvbXQ3NjI4YS5kdHNpLTE5OS1cdFx0XHRyZWcgPSBcdTAwM2MweDkwMCAweDEwMFx1MDAzZTtcbi0tXG5hcmNoL21pcHMvcmFsaW5rL210NzYyMS5jPTE2Nz12b2lkIF9faW5pdCBwcm9tX3NvY19pbml0KHN0cnVjdCByYWxpbmtfc29jX2luZm8gKnNvY19pbmZvKVxuLS1cbmFyY2gvbWlwcy9yYWxpbmsvbXQ3NjIxLmMtMTkxLVx0aWYgKG10NzYyMV9zb2NfdmFsaWQoKSlcbmFyY2gvbWlwcy9yYWxpbmsvbXQ3NjIxLmM6MTkyOlx0XHRzb2NfaW5mby1cdTAwM2Vjb21wYXRpYmxlID0gXCYjMzQ7bWVkaWF0ZWssbXQ3NjIxLXNvY1wmIzM0OztcbmFyY2gvbWlwcy9yYWxpbmsvbXQ3NjIxLmMtMTkzLVx0ZWxzZVxuLS1cbmFyY2gvbWlwcy9yYWxpbmsvb2YuYz0zMj1zdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBtdG1pcHNfbWVtY19tYXRjaFtdID0ge1xuYXJjaC9taXBzL3JhbGluay9vZi5jOjMzOlx0eyAuY29tcGF0aWJsZSA9IFwmIzM0O21lZGlhdGVrLG10NzYyMS1tZW1jXCYjMzQ7IH0sXG5hcmNoL21pcHMvcmFsaW5rL29mLmMtMzQtXHR7IC5jb21wYXRpYmxlID0gXCYjMzQ7cmFsaW5rLG10NzYyMGEtbWVtY1wmIzM0OyB9LFxuLS1cbmFyY2gvbWlwcy9yYWxpbmsvb2YuYz00MT1zdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBtdG1pcHNfc3lzY19tYXRjaFtdID0ge1xuYXJjaC9taXBzL3JhbGluay9vZi5jOjQyOlx0eyAuY29tcGF0aWJsZSA9IFwmIzM0O21lZGlhdGVrLG10NzYyMS1zeXNjXCYjMzQ7IH0sXG5hcmNoL21pcHMvcmFsaW5rL29mLmMtNDMtXHR7IC5jb21wYXRpYmxlID0gXCYjMzQ7cmFsaW5rLG10NzYyMC1zeXNjXCYjMzQ7IH0sXG4tLVxuZHJpdmVycy9jbGsvcmFsaW5rL2Nsay1tdDc2MjEuYz0zNTE9c3RhdGljIHZvaWQgX19pbml0IG10NzYyMV9jbGtfaW5pdChzdHJ1Y3QgZGV2aWNlX25vZGUgKm5vZGUpXG4tLVxuZHJpdmVycy9jbGsvcmFsaW5rL2Nsay1tdDc2MjEuYy00MDctfVxuZHJpdmVycy9jbGsvcmFsaW5rL2Nsay1tdDc2MjEuYzo0MDg6Q0xLX09GX0RFQ0xBUkVfRFJJVkVSKG10NzYyMV9jbGssIFwmIzM0O21lZGlhdGVrLG10NzYyMS1zeXNjXCYjMzQ7LCBtdDc2MjFfY2xrX2luaXQpO1xuZHJpdmVycy9jbGsvcmFsaW5rL2Nsay1tdDc2MjEuYy00MDktXG4tLVxuZHJpdmVycy9jbGsvcmFsaW5rL2Nsay1tdDc2MjEuYz01NjY9c3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgbXQ3NjIxX2Nsa19vZl9tYXRjaFtdID0ge1xuZHJpdmVycy9jbGsvcmFsaW5rL2Nsay1tdDc2MjEuYzo1Njc6XHR7IC5jb21wYXRpYmxlID0gXCYjMzQ7bWVkaWF0ZWssbXQ3NjIxLXN5c2NcJiMzNDsgfSxcbmRyaXZlcnMvY2xrL3JhbGluay9jbGstbXQ3NjIxLmMtNTY4LVx0e31cbi0tXG5kcml2ZXJzL2dwaW8vZ3Bpby1tdDc2MjEuYz00ODg9c3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgbWVkaWF0ZWtfZ3Bpb19tYXRjaFtdID0ge1xuZHJpdmVycy9ncGlvL2dwaW8tbXQ3NjIxLmM6NDg5Olx0eyAuY29tcGF0aWJsZSA9IFwmIzM0O21lZGlhdGVrLG10NzYyMS1ncGlvXCYjMzQ7IH0sXG5kcml2ZXJzL2dwaW8vZ3Bpby1tdDc2MjEuYy00OTAtXHR7fSxcbi0tXG5kcml2ZXJzL2kyYy9idXNzZXMvaTJjLW10NzYyMS5jPTI1MD1zdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBpMmNfbXRrX2R0X2lkc1tdID0ge1xuZHJpdmVycy9pMmMvYnVzc2VzL2kyYy1tdDc2MjEuYzoyNTE6XHR7IC5jb21wYXRpYmxlID0gXCYjMzQ7bWVkaWF0ZWssbXQ3NjIxLWkyY1wmIzM0OyB9LFxuZHJpdmVycy9pMmMvYnVzc2VzL2kyYy1tdDc2MjEuYy0yNTItXHR7IC8qIHNlbnRpbmVsICovIH1cbi0tXG5kcml2ZXJzL25ldC9kc2EvbXQ3NTMwLW1kaW8uYz0xMzg9c3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgbXQ3NTMwX29mX21hdGNoW10gPSB7XG5kcml2ZXJzL25ldC9kc2EvbXQ3NTMwLW1kaW8uYzoxMzk6XHR7IC5jb21wYXRpYmxlID0gXCYjMzQ7bWVkaWF0ZWssbXQ3NjIxXCYjMzQ7LCAuZGF0YSA9IFx1MDAyNm10NzUzeF90YWJsZVtJRF9NVDc2MjFdLCB9LFxuZHJpdmVycy9uZXQvZHNhL210NzUzMC1tZGlvLmMtMTQwLVx0eyAuY29tcGF0aWJsZSA9IFwmIzM0O21lZGlhdGVrLG10NzUzMFwmIzM0OywgLmRhdGEgPSBcdTAwMjZtdDc1M3hfdGFibGVbSURfTVQ3NTMwXSwgfSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfZXRoX3NvYy5jPTU2NDc9Y29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBvZl9tdGtfbWF0Y2hbXSA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a19ldGhfc29jLmMtNTY0OC1cdHsgLmNvbXBhdGlibGUgPSBcJiMzNDttZWRpYXRlayxtdDI3MDEtZXRoXCYjMzQ7LCAuZGF0YSA9IFx1MDAyNm10MjcwMV9kYXRhIH0sXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfZXRoX3NvYy5jOjU2NDk6XHR7IC5jb21wYXRpYmxlID0gXCYjMzQ7bWVkaWF0ZWssbXQ3NjIxLWV0aFwmIzM0OywgLmRhdGEgPSBcdTAwMjZtdDc2MjFfZGF0YSB9LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX2V0aF9zb2MuYy01NjUwLVx0eyAuY29tcGF0aWJsZSA9IFwmIzM0O21lZGlhdGVrLG10NzYyMi1ldGhcJiMzNDssIC5kYXRhID0gXHUwMDI2bXQ3NjIyX2RhdGEgfSxcbi0tXG5kcml2ZXJzL3BjaS9jb250cm9sbGVyL3BjaWUtbXQ3NjIxLmM9NTMxPXN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIG10NzYyMV9wY2llX2lkc1tdID0ge1xuZHJpdmVycy9wY2kvY29udHJvbGxlci9wY2llLW10NzYyMS5jOjUzMjpcdHsgLmNvbXBhdGlibGUgPSBcJiMzNDttZWRpYXRlayxtdDc2MjEtcGNpXCYjMzQ7IH0sXG5kcml2ZXJzL3BjaS9jb250cm9sbGVyL3BjaWUtbXQ3NjIxLmMtNTMzLVx0e30sXG4tLVxuZHJpdmVycy9waHkvcmFsaW5rL3BoeS1tdDc2MjEtcGNpLmM9MzQxPXN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIG10NzYyMV9wY2lfcGh5X2lkc1tdID0ge1xuZHJpdmVycy9waHkvcmFsaW5rL3BoeS1tdDc2MjEtcGNpLmM6MzQyOlx0eyAuY29tcGF0aWJsZSA9IFwmIzM0O21lZGlhdGVrLG10NzYyMS1wY2ktcGh5XCYjMzQ7IH0sXG5kcml2ZXJzL3BoeS9yYWxpbmsvcGh5LW10NzYyMS1wY2kuYy0zNDMtXHR7fSxcbi0tXG5kcml2ZXJzL3dhdGNoZG9nL210NzYyMV93ZHQuYz0xMzg9c3RhdGljIGludCBtdDc2MjFfd2R0X3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpXG4tLVxuZHJpdmVycy93YXRjaGRvZy9tdDc2MjFfd2R0LmMtMTUxLVx0aWYgKElTX0VSUihkcnZkYXRhLVx1MDAzZXN5c2MpKSB7XG5kcml2ZXJzL3dhdGNoZG9nL210NzYyMV93ZHQuYzoxNTI6XHRcdGRydmRhdGEtXHUwMDNlc3lzYyA9IHN5c2Nvbl9yZWdtYXBfbG9va3VwX2J5X2NvbXBhdGlibGUoXCYjMzQ7bWVkaWF0ZWssbXQ3NjIxLXN5c2NcJiMzNDspO1xuZHJpdmVycy93YXRjaGRvZy9tdDc2MjFfd2R0LmMtMTUzLVx0XHRpZiAoSVNfRVJSKGRydmRhdGEtXHUwMDNlc3lzYykpXG4tLVxuZHJpdmVycy93YXRjaGRvZy9tdDc2MjFfd2R0LmM9MjA5PXN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIG10NzYyMV93ZHRfbWF0Y2hbXSA9IHtcbmRyaXZlcnMvd2F0Y2hkb2cvbXQ3NjIxX3dkdC5jOjIxMDpcdHsgLmNvbXBhdGlibGUgPSBcJiMzNDttZWRpYXRlayxtdDc2MjEtd2R0XCYjMzQ7IH0sXG5kcml2ZXJzL3dhdGNoZG9nL210NzYyMV93ZHQuYy0yMTEtXHR7fSxcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zMS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjAgMjA6NDg8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzQ3NDkKCQkJCQkJCW91dHB1dDogMTA4CgkJCQkJCQl0aG91Z2h0czogMzg0CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKk15IEFzc2Vzc21lbnQ6IFRoaXMgQ29kZSBpcyBVbmZ1enphYmxlIGluIFR5cGljYWwgRW52aXJvbm1lbnRzKioKCk9rYXksIHNvIEkmIzM5O3ZlIGxvb2tlZCBpbnRvIHRoaXMuIFRoZXJlJiMzOTtzIG5vIFN5emthbGxlciBkZXNjcmlwdGlvbiBmb3IgdGhlIGBtZWRpYXRlayxtdDc2MjFgIG9yIGBtZWRpYXRlayxtdDc1MzBgIGhhcmR3YXJlLCB3aGljaCBpbW1lZGlhdGVseSBmbGFncyBpdC4gVGhlIGRyaXZlciBpbiBxdWVzdGlvbiBpcyBzcGVjaWZpY2FsbHkgZm9yIGEgTWVkaWFUZWsgTVQ3NTMwL01UNzYyMSBzd2l0Y2guIEl0JiMzOTtzIGFuIE1ESU8gZHJpdmVyLCB3aGljaCBtZWFucyBpdCByZXF1aXJlcyBhIHZlcnkgc3BlY2lmaWMgZGV2aWNlIHRyZWUgbm9kZSBhbmQgYWNjZXNzIHRvIHRoZSAqYWN0dWFsKiBwaHlzaWNhbCBoYXJkd2FyZSB0byBldmVuICpiZWdpbiogdG8gcHJvYmUuCgpNeSBpbnR1aXRpb24gc2F5cyB0aGlzIGlzIGEgbm9uLXN0YXJ0ZXIgZm9yIGZ1enppbmcsIGJlY2F1c2UgaW4gZW52aXJvbm1lbnRzIGxpa2UgUUVNVSwgdGhlIGhhcmR3YXJlIGlzbiYjMzk7dCBlbXVsYXRlZC4gRXZlbiAqaWYqIFN5emthbGxlciBzb21laG93IG1hbmFnZWQgdG8gaW5qZWN0IGEgcmVsZXZhbnQgZGV2aWNlIHRyZWUgbm9kZSAod2hpY2ggaXMgYWxyZWFkeSB1bmxpa2VseSksIHRoZSBkcml2ZXIgd291bGQgZmFpbCB0byBpbml0aWFsaXplIGJlY2F1c2UgdGhlIHJlZ2lzdGVycyBpdCBhY2Nlc3NlcyB0aHJvdWdoIE1ESU8gb3IgTU1JTyBzaW1wbHkgd291bGRuJiMzOTt0IHJlc3BvbmQuIFRoZSBoYXJkd2FyZSYjMzk7cyBqdXN0IG5vdCAqdGhlcmUqLiBUaGUgcGF0Y2ggaXRzZWxmIHNlZW1zIHRvIGNvbmZpcm0gdGhpczsgaXQgbW9kaWZpZXMgb25seSB0aGUgYG10NzUzMGAgZHJpdmVyLCBzZXR0aW5nIGEgYGJyb2tlbl9lZWVgIGZsYWcgYW5kIGRpc2FibGluZyBFRUUgYWR2ZXJ0aXNlbWVudCB3aXRoaW4gYG10NzUzMF9zZXR1cGAuIFRoaXMgaXMgY2xlYXJseSBhIGhhcmR3YXJlLXNwZWNpZmljIGZpeCBmb3IgcGh5c2ljYWwgc3dpdGNoZXMsIG5vdCBzb21ldGhpbmcgeW91JiMzOTtkIHNlZSBpbiBhIHZpcnR1YWxpemVkIHNldHRpbmcuCgpJIG5lZWQgdG8gY29uZmlybSBteSBpbml0aWFsIGFzc3VtcHRpb24sIGp1c3QgdG8gYmUgdGhvcm91Z2guIFRoZSBkcml2ZXIgaXMgbG9jYXRlZCBhdCBgZHJpdmVycy9uZXQvZHNhL210NzUzMC5jYC4gQWgsIHllcywgaXQmIzM5O3MgYSBEU0Egc3dpdGNoIGRyaXZlci4gRFNBIHN3aXRjaGVzIGFyZSBhbG1vc3QgYWx3YXlzIHBoeXNpY2FsIGhhcmR3YXJlLCB0aGF0JiMzOTtzIHRoZWlyIHdob2xlIHJlYXNvbiBmb3IgZXhpc3RpbmcuIEFzIGZhciBhcyBJIGtub3csIHRoZXJlJiMzOTtzIG5vIHNvZnR3YXJlIGVtdWxhdGlvbiBvZiB0aGUgTVQ3NTMwIGluIFFFTVUuIFNvLCB0aGUgdmVyZGljdCBpcyBgV29ydGhGdXp6aW5nPWZhbHNlYC4gVGhpcyBjb2RlIGlzIHVucmVhY2hhYmxlIGluIGEgZ2VuZXJpYyBmdXp6aW5nIHNldHVwLiBJJiMzOTttIGNvbmZpZGVudCBpbiB0aGF0IGFzc2Vzc21lbnQuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MzIvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzIwIDIwOjQ4PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+c2V0LXJlc3VsdHM8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogW10sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIE1lZGlhVGVrIE1UNzUzMC9NVDc2MjEgRFNBIHN3aXRjaCBkcml2ZXIgdG8gZGlzYWJsZSBFRUUgYWR2ZXJ0aXNlbWVudCBvbiB0aGUgc3dpdGNoIFBIWXMgZHVlIHRvIGhhcmR3YXJlIGlzc3Vlcy4gVGhpcyBpcyBhIGhhcmR3YXJlLXNwZWNpZmljIGRyaXZlciBmb3IgcGh5c2ljYWwgTWVkaWFUZWsgc3dpdGNoZXMgdGhhdCBhcmUgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUgb3IgR0NFIGVudmlyb25tZW50cy4gVGhlIGNvZGUgY2Fubm90IGJlIHJlYWNoZWQgZHVyaW5nIGdlbmVyaWMga2VybmVsIGZ1enppbmcgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IG51bGwsCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIE1lZGlhVGVrIE1UNzUzMC9NVDc2MjEgRFNBIHN3aXRjaCBkcml2ZXIgdG8gZGlzYWJsZSBFRUUgYWR2ZXJ0aXNlbWVudCBvbiB0aGUgc3dpdGNoIFBIWXMgZHVlIHRvIGhhcmR3YXJlIGlzc3Vlcy4gVGhpcyBpcyBhIGhhcmR3YXJlLXNwZWNpZmljIGRyaXZlciBmb3IgcGh5c2ljYWwgTWVkaWFUZWsgc3dpdGNoZXMgdGhhdCBhcmUgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUgb3IgR0NFIGVudmlyb25tZW50cy4gVGhlIGNvZGUgY2Fubm90IGJlIHJlYWNoZWQgZHVyaW5nIGdlbmVyaWMga2VybmVsIGZ1enppbmcgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zMy8xPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjAgMjA6NDg8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPklmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA4LTIwVDIwOjQ3OjAzLjIzNDE2MTY3NVoiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjg4ODYxMTM3MTM4LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIktNU0FOUmVhc29uaW5nXCI6IFwiXCIsXG4gIFwiTmVlZHNLTVNBTlwiOiBmYWxzZSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIE1lZGlhVGVrIE1UNzUzMC9NVDc2MjEgRFNBIHN3aXRjaCBkcml2ZXIgdG8gZGlzYWJsZSBFRUUgYWR2ZXJ0aXNlbWVudCBvbiB0aGUgc3dpdGNoIFBIWXMgZHVlIHRvIGhhcmR3YXJlIGlzc3Vlcy4gVGhpcyBpcyBhIGhhcmR3YXJlLXNwZWNpZmljIGRyaXZlciBmb3IgcGh5c2ljYWwgTWVkaWFUZWsgc3dpdGNoZXMgdGhhdCBhcmUgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUgb3IgR0NFIGVudmlyb25tZW50cy4gVGhlIGNvZGUgY2Fubm90IGJlIHJlYWNoZWQgZHVyaW5nIGdlbmVyaWMga2VybmVsIGZ1enppbmcgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjBUMjA6NDc6MDMuMjM0MTY1Nzc1WiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMzcyMTc4NTgyLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJQYXRjaERpZmZcIjogXCJjb21taXQgODc5YWYxNDdkNjI0N2NjYWI5ZGQ2MGQ0MWE4MjZkMWY3ZTIwZDY2YVxcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXFx1MDAzZVxcbkRhdGU6ICAgVGh1IEF1ZyAyMCAyMDo0NzowMSAyMDI2ICswMDAwXFxuXFxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xcblxcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9kc2EvbXQ3NTMwLmMgYi9kcml2ZXJzL25ldC9kc2EvbXQ3NTMwLmNcXG5pbmRleCBhYTMzZDk0ZTExYjVmLi5iYjIyYzE5Y2YzMTRhIDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvbmV0L2RzYS9tdDc1MzAuY1xcbisrKyBiL2RyaXZlcnMvbmV0L2RzYS9tdDc1MzAuY1xcbkBAIC0yNTE4LDYgKzI1MTgsMTUgQEAgbXQ3NTMwX3NldHVwKHN0cnVjdCBkc2Ffc3dpdGNoICpkcylcXG4gXFx0aWYgKCh2YWwgXFx1MDAyNiBNVDc1MzBfWFRBTF9NQVNLKSA9PSBNVDc1MzBfWFRBTF80ME1IWilcXG4gXFx0XFx0bXQ3NTMwX3BsbF9zZXR1cChwcml2KTtcXG4gXFxuK1xcdGlmIChwcml2LVxcdTAwM2VpbmZvLVxcdTAwM2Vicm9rZW5fZWVlKSB7XFxuK1xcdFxcdC8qIERpc2FibGUgRUVFIGFkdmVydGlzZW1lbnQgb24gdGhlIHN3aXRjaCBQSFlzLiAqL1xcbitcXHRcXHRmb3IgKGkgPSBNVDc1M1hfQ1RSTF9QSFlfQUREUihwcml2LVxcdTAwM2VtZGlvZGV2LVxcdTAwM2VhZGRyKTtcXG4rXFx0XFx0ICAgICBpIFxcdTAwM2MgTVQ3NTNYX0NUUkxfUEhZX0FERFIocHJpdi1cXHUwMDNlbWRpb2Rldi1cXHUwMDNlYWRkcikgKyBNVDc1MzBfTlVNX1BIWVM7XFxuK1xcdFxcdCAgICAgaSsrKSB7XFxuK1xcdFxcdFxcdG10NzUzMF9waHlfd3JpdGVfYzQ1KHByaXYsIGksIE1ESU9fTU1EX0FOLCBNRElPX0FOX0VFRV9BRFYsIDApO1xcbitcXHRcXHR9XFxuK1xcdH1cXG4rXFxuIFxcdG10NzUzeF90cmFwX2ZyYW1lcyhwcml2KTtcXG4gXFxuIFxcdC8qIEVuYWJsZSBhbmQgcmVzZXQgTUlCIGNvdW50ZXJzICovXFxuQEAgLTMzODgsNiArMzM5Nyw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgcGh5bGlua19tYWNfb3BzIG10NzUzeF9waHlsaW5rX21hY19vcHMgPSB7XFxuIGNvbnN0IHN0cnVjdCBtdDc1M3hfaW5mbyBtdDc1M3hfdGFibGVbXSA9IHtcXG4gXFx0W0lEX01UNzYyMV0gPSB7XFxuIFxcdFxcdC5pZCA9IElEX01UNzYyMSxcXG4rXFx0XFx0LmJyb2tlbl9lZWUgPSB0cnVlLFxcbiBcXHRcXHQucGNzX29wcyA9IFxcdTAwMjZtdDc1MzBfcGNzX29wcyxcXG4gXFx0XFx0LnN3X3NldHVwID0gbXQ3NTMwX3NldHVwLFxcbiBcXHRcXHQucGh5X3JlYWRfYzIyID0gbXQ3NTMwX3BoeV9yZWFkX2MyMixcXG5AQCAtMzM5OSw2ICszNDA5LDcgQEAgY29uc3Qgc3RydWN0IG10NzUzeF9pbmZvIG10NzUzeF90YWJsZVtdID0ge1xcbiBcXHR9LFxcbiBcXHRbSURfTVQ3NTMwXSA9IHtcXG4gXFx0XFx0LmlkID0gSURfTVQ3NTMwLFxcbitcXHRcXHQuYnJva2VuX2VlZSA9IHRydWUsXFxuIFxcdFxcdC5wY3Nfb3BzID0gXFx1MDAyNm10NzUzMF9wY3Nfb3BzLFxcbiBcXHRcXHQuc3dfc2V0dXAgPSBtdDc1MzBfc2V0dXAsXFxuIFxcdFxcdC5waHlfcmVhZF9jMjIgPSBtdDc1MzBfcGh5X3JlYWRfYzIyLFxcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9kc2EvbXQ3NTMwLmggYi9kcml2ZXJzL25ldC9kc2EvbXQ3NTMwLmhcXG5pbmRleCBkZDMzYjBkZjM0MTllLi4wY2EzM2I5ZDQyMTA1IDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvbmV0L2RzYS9tdDc1MzAuaFxcbisrKyBiL2RyaXZlcnMvbmV0L2RzYS9tdDc1MzAuaFxcbkBAIC04NTMsNiArODUzLDcgQEAgc3RydWN0IG10NzUzeF9pbmZvIHtcXG4gXFx0dm9pZCAoKm1hY19wb3J0X2NvbmZpZykoc3RydWN0IGRzYV9zd2l0Y2ggKmRzLCBpbnQgcG9ydCxcXG4gXFx0XFx0XFx0XFx0dW5zaWduZWQgaW50IG1vZGUsXFxuIFxcdFxcdFxcdFxcdHBoeV9pbnRlcmZhY2VfdCBpbnRlcmZhY2UpO1xcbitcXHRib29sIGJyb2tlbl9lZWU7XFxuIH07XFxuIFxcbiAvKiBzdHJ1Y3QgbXQ3NTMwX3ByaXYgLVxcdFRoaXMgaXMgdGhlIG1haW4gZGF0YSBzdHJ1Y3R1cmUgZm9yIGhvbGRpbmcgdGhlIHN0YXRlXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTIwVDIwOjQ3OjA0LjYwNzE0MjU4N1oiLCJTZXEiOjIsIk5lc3RpbmciOjEsIlR5cGUiOiJhZ2VudCIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImJlc3QtZXhwZW5zaXZlIiwiRHVyYXRpb24iOjg3NDg4MTQ0OTc2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgTWVkaWFUZWsgTVQ3NTMwL01UNzYyMSBEU0Egc3dpdGNoIGRyaXZlciB0byBkaXNhYmxlIEVFRSBhZHZlcnRpc2VtZW50IG9uIHRoZSBzd2l0Y2ggUEhZcyBkdWUgdG8gaGFyZHdhcmUgaXNzdWVzLiBUaGlzIGlzIGEgaGFyZHdhcmUtc3BlY2lmaWMgZHJpdmVyIGZvciBwaHlzaWNhbCBNZWRpYVRlayBzd2l0Y2hlcyB0aGF0IGFyZSBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVSBvciBHQ0UgZW52aXJvbm1lbnRzLiBUaGUgY29kZSBjYW5ub3QgYmUgcmVhY2hlZCBkdXJpbmcgZ2VuZXJpYyBrZXJuZWwgZnV6emluZyBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiJZb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci5cbllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lXG5pZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXG5cbklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpblxueW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5XG51c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLlxuXG5SZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOlxuLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLlxuLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy5cbi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LlxuLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsXG4gIGV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS5cbi0gQ29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsXG4gIGlvbmljLCBhbWRncHUpIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLlxuLSBEcml2ZXIgLnJlbW92ZSwgLnNodXRkb3duLCBvciBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzIChlLmcuLCBpZ2JfcmVtb3ZlKVxuICB0aGF0IGFyZSBleGVjdXRlZCBvbmx5IGR1cmluZyBQQ0kgaG90LXVucGx1ZyBvciBzeXNmcyBkcml2ZXIgdW5iaW5kIG9wZXJhdGlvbnMuXG5cbklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2hcbnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLlxuXG5XaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzpcbjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuXG4gICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy5cbiAgIFByZWZlciBub24tc3RhdGljLCBub24taW5saW5lZCBBUEkgZW50cnlwb2ludCBmdW5jdGlvbnMgb3ZlciBpbnRlcm5hbCBzdGF0aWMgaGVscGVyIGZ1bmN0aW9uc1xuICAgKHdoaWNoIGFyZSBpbmxpbmVkIGJ5IHRoZSBjb21waWxlciBhbmQgZG8gbm90IGhhdmUgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcykuXG4yLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS5cbiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy5cbiAgIEFsc28gY2hlY2sgXCJkZXBlbmRzIG9uXCIgbGluZXMgaW4gS2NvbmZpZyB0byBpbmNsdWRlIGFueSBub24tc3RhbmRhcmQgcGFyZW50IHN1YnN5c3RlbSBjb25maWdzXG4gICBuZWVkZWQgZm9yIEtidWlsZCB0byBjb21waWxlIHRoZSBjb2RlIHN0YXRpY2FsbHkgaW50byB2bWxpbnV4LiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3NcbiAgIG91dHB1dCBhcnJheSwgYW5kIERPIE5PVCBhZGQgYSAnQ09ORklHXycgcHJlZml4IChlLmcuLCByZXR1cm4gXCJORVRfSVBWNFwiIGluc3RlYWQgb2YgXCJDT05GSUdfTkVUX0lQVjRcIikuXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCA4NzlhZjE0N2Q2MjQ3Y2NhYjlkZDYwZDQxYTgyNmQxZjdlMjBkNjZhXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFRodSBBdWcgMjAgMjA6NDc6MDEgMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9kc2EvbXQ3NTMwLmMgYi9kcml2ZXJzL25ldC9kc2EvbXQ3NTMwLmNcbmluZGV4IGFhMzNkOTRlMTFiNWYuLmJiMjJjMTljZjMxNGEgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9kc2EvbXQ3NTMwLmNcbisrKyBiL2RyaXZlcnMvbmV0L2RzYS9tdDc1MzAuY1xuQEAgLTI1MTgsNiArMjUxOCwxNSBAQCBtdDc1MzBfc2V0dXAoc3RydWN0IGRzYV9zd2l0Y2ggKmRzKVxuIFx0aWYgKCh2YWwgXHUwMDI2IE1UNzUzMF9YVEFMX01BU0spID09IE1UNzUzMF9YVEFMXzQwTUhaKVxuIFx0XHRtdDc1MzBfcGxsX3NldHVwKHByaXYpO1xuIFxuK1x0aWYgKHByaXYtXHUwMDNlaW5mby1cdTAwM2Vicm9rZW5fZWVlKSB7XG4rXHRcdC8qIERpc2FibGUgRUVFIGFkdmVydGlzZW1lbnQgb24gdGhlIHN3aXRjaCBQSFlzLiAqL1xuK1x0XHRmb3IgKGkgPSBNVDc1M1hfQ1RSTF9QSFlfQUREUihwcml2LVx1MDAzZW1kaW9kZXYtXHUwMDNlYWRkcik7XG4rXHRcdCAgICAgaSBcdTAwM2MgTVQ3NTNYX0NUUkxfUEhZX0FERFIocHJpdi1cdTAwM2VtZGlvZGV2LVx1MDAzZWFkZHIpICsgTVQ3NTMwX05VTV9QSFlTO1xuK1x0XHQgICAgIGkrKykge1xuK1x0XHRcdG10NzUzMF9waHlfd3JpdGVfYzQ1KHByaXYsIGksIE1ESU9fTU1EX0FOLCBNRElPX0FOX0VFRV9BRFYsIDApO1xuK1x0XHR9XG4rXHR9XG4rXG4gXHRtdDc1M3hfdHJhcF9mcmFtZXMocHJpdik7XG4gXG4gXHQvKiBFbmFibGUgYW5kIHJlc2V0IE1JQiBjb3VudGVycyAqL1xuQEAgLTMzODgsNiArMzM5Nyw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgcGh5bGlua19tYWNfb3BzIG10NzUzeF9waHlsaW5rX21hY19vcHMgPSB7XG4gY29uc3Qgc3RydWN0IG10NzUzeF9pbmZvIG10NzUzeF90YWJsZVtdID0ge1xuIFx0W0lEX01UNzYyMV0gPSB7XG4gXHRcdC5pZCA9IElEX01UNzYyMSxcbitcdFx0LmJyb2tlbl9lZWUgPSB0cnVlLFxuIFx0XHQucGNzX29wcyA9IFx1MDAyNm10NzUzMF9wY3Nfb3BzLFxuIFx0XHQuc3dfc2V0dXAgPSBtdDc1MzBfc2V0dXAsXG4gXHRcdC5waHlfcmVhZF9jMjIgPSBtdDc1MzBfcGh5X3JlYWRfYzIyLFxuQEAgLTMzOTksNiArMzQwOSw3IEBAIGNvbnN0IHN0cnVjdCBtdDc1M3hfaW5mbyBtdDc1M3hfdGFibGVbXSA9IHtcbiBcdH0sXG4gXHRbSURfTVQ3NTMwXSA9IHtcbiBcdFx0LmlkID0gSURfTVQ3NTMwLFxuK1x0XHQuYnJva2VuX2VlZSA9IHRydWUsXG4gXHRcdC5wY3Nfb3BzID0gXHUwMDI2bXQ3NTMwX3Bjc19vcHMsXG4gXHRcdC5zd19zZXR1cCA9IG10NzUzMF9zZXR1cCxcbiBcdFx0LnBoeV9yZWFkX2MyMiA9IG10NzUzMF9waHlfcmVhZF9jMjIsXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZHNhL210NzUzMC5oIGIvZHJpdmVycy9uZXQvZHNhL210NzUzMC5oXG5pbmRleCBkZDMzYjBkZjM0MTllLi4wY2EzM2I5ZDQyMTA1IDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvZHNhL210NzUzMC5oXG4rKysgYi9kcml2ZXJzL25ldC9kc2EvbXQ3NTMwLmhcbkBAIC04NTMsNiArODUzLDcgQEAgc3RydWN0IG10NzUzeF9pbmZvIHtcbiBcdHZvaWQgKCptYWNfcG9ydF9jb25maWcpKHN0cnVjdCBkc2Ffc3dpdGNoICpkcywgaW50IHBvcnQsXG4gXHRcdFx0XHR1bnNpZ25lZCBpbnQgbW9kZSxcbiBcdFx0XHRcdHBoeV9pbnRlcmZhY2VfdCBpbnRlcmZhY2UpO1xuK1x0Ym9vbCBicm9rZW5fZWVlO1xuIH07XG4gXG4gLyogc3RydWN0IG10NzUzMF9wcml2IC1cdFRoaXMgaXMgdGhlIG1haW4gZGF0YSBzdHJ1Y3R1cmUgZm9yIGhvbGRpbmcgdGhlIHN0YXRlXG4iLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yMFQyMDo0NzowNC42MDcxNDQwMDdaIiwiU2VxIjozLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo2OTMwNzM3Nzk3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKk15IEFzc2Vzc21lbnQgb2YgdGhlIE1UNzUzMCBEcml2ZXIgUGF0Y2gqKlxuXG5Pa2F5LCBzbyBJJ3ZlIGdvdCB0aGlzIHBhdGNoIGhlcmUgdGhhdCBzZWVtcyB0byBiZSB0d2Vha2luZyB0aGUgTWVkaWFUZWsgTVQ3NTMwIERTQSBzd2l0Y2ggZHJpdmVyLCBzcGVjaWZpY2FsbHkgaW4gYGRyaXZlcnMvbmV0L2RzYS9tdDc1MzAuY2AgYW5kIGAuaGAuIFRoZXkncmUgYWRkaW5nIGEgYGJyb2tlbl9lZWVgIGZsYWcgdG8gdGhlIGBtdDc1M3hfaW5mb2Agc3RydWN0IGFuZCBoYXJkY29kaW5nIGl0IHRvIGB0cnVlYCBmb3IgYElEX01UNzYyMWAgYW5kIGBJRF9NVDc1MzBgIC0gaW50ZXJlc3RpbmcuIFRoZSBtZWF0IG9mIGl0IGFwcGVhcnMgdG8gYmUgaW4gYG10NzUzMF9zZXR1cCgpYCwgd2hlcmUgdGhpcyBgYnJva2VuX2VlZWAgZmxhZyBpcyB1c2VkIHRvIGRpc2FibGUgRUVFIGFkdmVydGlzZW1lbnQgdGhyb3VnaCBgbXQ3NTMwX3BoeV93cml0ZV9jNDUoKWAuIFNlZW1zIGxpa2UgaXQncyBhZGRyZXNzaW5nIGFuIGlzc3VlIHdoZXJlIEVFRSBpc24ndCB3b3JraW5nIGNvcnJlY3RseSBvbiB0aG9zZSBzcGVjaWZpYyBzd2l0Y2ggdmFyaWFudHMuXG5cbk15IGluaXRpYWwgdGhvdWdodCBpcywgaG93IGRvIEkgYWN0dWFsbHkgKnRlc3QqIHRoaXM/IFRoaXMgaXMgYSBEU0Egc3dpdGNoIGRyaXZlciwgd2hpY2ggbWVhbnMgaXQncyBkZXNpZ25lZCB0byBpbnRlcmFjdCB3aXRoIHBoeXNpY2FsIGhhcmR3YXJlLiBEU0Egc3dpdGNoZXMgYXJlIGdlbmVyYWxseSBub3Qgc29tZXRoaW5nIHlvdSBjYW4ganVzdCBjb25qdXJlIHVwIGluIGEgc3RhbmRhcmQgdmlydHVhbCBlbnZpcm9ubWVudCBsaWtlIFFFTVUuIFRoZXnigJlyZSBoYXJkd2lyZWQgaW50byB0aGUgc3lzdGVtLiBJdCdzIGxpa2VseSB0aGF0IGEgUUVNVSBzZXR1cCB3b3VsZG4ndCB0cmlnZ2VyIGFueSBvZiB0aGlzIGNvZGUuXG5cbkkgbmVlZCB0byBjb25maXJtIGlmIHRoZXJlIGlzIHNvbWUgd2F5IHRvIGVtdWxhdGUgb3IgdHJpZ2dlciB0aGUgY29kZS4gSSdsbCBuZWVkIHRvIGRpZyBpbnRvIGBkcml2ZXJzL25ldC9kc2EvbXQ3NTMwLmNgIHRvIGxvb2sgZm9yIGhvb2tzIGludG8gdGhlIG5ldHdvcmsgc3RhY2ssIG9yIHdheXMgdGhlIE1ESU8gY291bGQgYmUgdXNlZCB0byB3cml0ZSB0aGUgdGhlIFBIWSByZWdpc3RlcnMuIEknbGwgYWxzbyBjaGVjayBpZiBpdCdzIGEgcGxhdGZvcm0gZHJpdmVyIG9yIE1ESU8gZHJpdmVyLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyNjQ5LCJPdXRwdXRUb2tlbnMiOjQxLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjY1LCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjBUMjA6NDc6MTEuNTM3ODg1ODA0WiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQ0NTM1NTE1LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIm10NzUzMF9zZXR1cFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC9kc2EvbXQ3NTMwLmNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvZHNhL210NzUzMC5jPTM3Mz1zdGF0aWMgdm9pZFxcbmRyaXZlcnMvbmV0L2RzYS9tdDc1MzAuYzozNzQ6bXQ3NTMwX3NldHVwX3BvcnQ2KHN0cnVjdCBkc2Ffc3dpdGNoICpkcywgcGh5X2ludGVyZmFjZV90IGludGVyZmFjZSlcXG5kcml2ZXJzL25ldC9kc2EvbXQ3NTMwLmMtMzc1LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdDc1MzAuYz0xMDQ2PXN0YXRpYyBjb25zdCBjaGFyICptdDc1MzBfcDVfbW9kZV9zdHIodW5zaWduZWQgaW50IG1vZGUpXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXQ3NTMwLmMtMTA1Ny1cXG5kcml2ZXJzL25ldC9kc2EvbXQ3NTMwLmM6MTA1ODpzdGF0aWMgdm9pZCBtdDc1MzBfc2V0dXBfcG9ydDUoc3RydWN0IGRzYV9zd2l0Y2ggKmRzLCBwaHlfaW50ZXJmYWNlX3QgaW50ZXJmYWNlKVxcbmRyaXZlcnMvbmV0L2RzYS9tdDc1MzAuYy0xMDU5LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdDc1MzAuYz0xNjQzPXN0YXRpYyBpbnRcXG5kcml2ZXJzL25ldC9kc2EvbXQ3NTMwLmM6MTY0NDptdDc1MzBfc2V0dXBfdmxhbjAoc3RydWN0IG10NzUzMF9wcml2ICpwcml2KVxcbmRyaXZlcnMvbmV0L2RzYS9tdDc1MzAuYy0xNjQ1LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdDc1MzAuYz0xNjYwPW10NzUzMF9wb3J0X3NldF92bGFuX3VuYXdhcmUoc3RydWN0IGRzYV9zd2l0Y2ggKmRzLCBpbnQgcG9ydClcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdDc1MzAuYy0xNjk3LVxcdFxcdG11dGV4X2xvY2soXFx1MDAyNnByaXYtXFx1MDAzZXJlZ19tdXRleCk7XFxuZHJpdmVycy9uZXQvZHNhL210NzUzMC5jOjE2OTg6XFx0XFx0bXQ3NTMwX3NldHVwX3ZsYW4wKHByaXYpO1xcbmRyaXZlcnMvbmV0L2RzYS9tdDc1MzAuYy0xNjk5LVxcdFxcdG11dGV4X3VubG9jayhcXHUwMDI2cHJpdi1cXHUwMDNlcmVnX211dGV4KTtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdDc1MzAuYz0xOTkyPW10NzUzMF9wb3J0X3ZsYW5fYWRkKHN0cnVjdCBkc2Ffc3dpdGNoICpkcywgaW50IHBvcnQsXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXQ3NTMwLmMtMjAwMi1cXG5kcml2ZXJzL25ldC9kc2EvbXQ3NTMwLmM6MjAwMzpcXHQvKiBWSUQgMCBpcyBtYW5hZ2VkIGV4Y2x1c2l2ZWx5IGJ5IG10NzUzMF9zZXR1cF92bGFuMCgpIGZvclxcbmRyaXZlcnMvbmV0L2RzYS9tdDc1MzAuYy0yMDA0LVxcdCAqIFZMQU4tdW5hd2FyZSBicmlkZ2Ugb3BlcmF0aW9uLiBEb24ndCBsZXQgdGhlIGJyaWRnZSBvdmVyd3JpdGVcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdDc1MzAuYz0yMDQ2PW10NzUzMF9wb3J0X3ZsYW5fZGVsKHN0cnVjdCBkc2Ffc3dpdGNoICpkcywgaW50IHBvcnQsXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXQ3NTMwLmMtMjA1My1cXG5kcml2ZXJzL25ldC9kc2EvbXQ3NTMwLmM6MjA1NDpcXHQvKiBWSUQgMCBpcyBtYW5hZ2VkIGV4Y2x1c2l2ZWx5IGJ5IG10NzUzMF9zZXR1cF92bGFuMCgpLiAqL1xcbmRyaXZlcnMvbmV0L2RzYS9tdDc1MzAuYy0yMDU1LVxcdGlmICh2bGFuLVxcdTAwM2V2aWQgPT0gMClcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdDc1MzAuYz0yMjI5PXN0YXRpYyBpbnRcXG5kcml2ZXJzL25ldC9kc2EvbXQ3NTMwLmM6MjIzMDptdDc1MzBfc2V0dXBfZ3BpbyhzdHJ1Y3QgbXQ3NTMwX3ByaXYgKnByaXYpXFxuZHJpdmVycy9uZXQvZHNhL210NzUzMC5jLTIyMzEte1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL210NzUzMC5jPTIyNTk9c3RhdGljIHZvaWRcXG5kcml2ZXJzL25ldC9kc2EvbXQ3NTMwLmM6MjI2MDptdDc1MzBfc2V0dXBfbWRpb19pcnEoc3RydWN0IG10NzUzMF9wcml2ICpwcml2KVxcbmRyaXZlcnMvbmV0L2RzYS9tdDc1MzAuYy0yMjYxLXtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdDc1MzAuYz0yMzA5PXN0YXRpYyBpbnRcXG5kcml2ZXJzL25ldC9kc2EvbXQ3NTMwLmM6MjMxMDptdDc1MzBfc2V0dXBfaXJxKHN0cnVjdCBtdDc1MzBfcHJpdiAqcHJpdilcXG5kcml2ZXJzL25ldC9kc2EvbXQ3NTMwLmMtMjMxMS17XFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXQ3NTMwLmM9MjM2MD1zdGF0aWMgaW50XFxuZHJpdmVycy9uZXQvZHNhL210NzUzMC5jOjIzNjE6bXQ3NTMwX3NldHVwX21kaW8oc3RydWN0IG10NzUzMF9wcml2ICpwcml2KVxcbmRyaXZlcnMvbmV0L2RzYS9tdDc1MzAuYy0yMzYyLXtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdDc1MzAuYy0yMzk0LVxcdGlmIChwcml2LVxcdTAwM2VpcnFfZG9tYWluIFxcdTAwMjZcXHUwMDI2ICFtbnApXFxuZHJpdmVycy9uZXQvZHNhL210NzUzMC5jOjIzOTU6XFx0XFx0bXQ3NTMwX3NldHVwX21kaW9faXJxKHByaXYpO1xcbmRyaXZlcnMvbmV0L2RzYS9tdDc1MzAuYy0yMzk2LVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL210NzUzMC5jPTI0MDk9c3RhdGljIGludFxcbmRyaXZlcnMvbmV0L2RzYS9tdDc1MzAuYzoyNDEwOm10NzUzMF9zZXR1cChzdHJ1Y3QgZHNhX3N3aXRjaCAqZHMpXFxuZHJpdmVycy9uZXQvZHNhL210NzUzMC5jLTI0MTEte1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL210NzUzMC5jLTI1NjgtXFx0LyogU2V0dXAgVkxBTiBJRCAwIGZvciBWTEFOLXVuYXdhcmUgYnJpZGdlcyAqL1xcbmRyaXZlcnMvbmV0L2RzYS9tdDc1MzAuYzoyNTY5OlxcdHJldCA9IG10NzUzMF9zZXR1cF92bGFuMChwcml2KTtcXG5kcml2ZXJzL25ldC9kc2EvbXQ3NTMwLmMtMjU3MC1cXHRpZiAocmV0KVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL210NzUzMC5jLTI2MTMtXFx0XFx0XFx0bXQ3NTMwX2NsZWFyKHByaXYsIE1UNzUzWF9NVFJBUCwgTVQ3NTMwX1A1X0RJUyk7XFxuZHJpdmVycy9uZXQvZHNhL210NzUzMC5jOjI2MTQ6XFx0XFx0XFx0bXQ3NTMwX3NldHVwX3BvcnQ1KGRzLCBpbnRlcmZhY2UpO1xcbmRyaXZlcnMvbmV0L2RzYS9tdDc1MzAuYy0yNjE1LVxcdFxcdH1cXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdDc1MzAuYy0yNjE5LVxcdGlmIChvZl9wcm9wZXJ0eV9yZWFkX2Jvb2wocHJpdi1cXHUwMDNlZGV2LVxcdTAwM2VvZl9ub2RlLCBcXFwiZ3Bpby1jb250cm9sbGVyXFxcIikpIHtcXG5kcml2ZXJzL25ldC9kc2EvbXQ3NTMwLmM6MjYyMDpcXHRcXHRyZXQgPSBtdDc1MzBfc2V0dXBfZ3Bpbyhwcml2KTtcXG5kcml2ZXJzL25ldC9kc2EvbXQ3NTMwLmMtMjYyMS1cXHRcXHRpZiAocmV0KVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL210NzUzMC5jPTI2MzU9bXQ3NTMxX3NldHVwX2NvbW1vbihzdHJ1Y3QgZHNhX3N3aXRjaCAqZHMpXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXQ3NTMwLmMtMjcwMS1cXHQvKiBTZXR1cCBWTEFOIElEIDAgZm9yIFZMQU4tdW5hd2FyZSBicmlkZ2VzICovXFxuZHJpdmVycy9uZXQvZHNhL210NzUzMC5jOjI3MDI6XFx0cmV0dXJuIG10NzUzMF9zZXR1cF92bGFuMChwcml2KTtcXG5kcml2ZXJzL25ldC9kc2EvbXQ3NTMwLmMtMjcwMy19XFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXQ3NTMwLmM9MjkxNT1tdDc1MzBfbWFjX2NvbmZpZyhzdHJ1Y3QgZHNhX3N3aXRjaCAqZHMsIGludCBwb3J0LCB1bnNpZ25lZCBpbnQgbW9kZSxcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdDc1MzAuYy0yOTIwLVxcdGlmIChwb3J0ID09IDUpXFxuZHJpdmVycy9uZXQvZHNhL210NzUzMC5jOjI5MjE6XFx0XFx0bXQ3NTMwX3NldHVwX3BvcnQ1KHByaXYtXFx1MDAzZWRzLCBpbnRlcmZhY2UpO1xcbmRyaXZlcnMvbmV0L2RzYS9tdDc1MzAuYy0yOTIyLVxcdGVsc2UgaWYgKHBvcnQgPT0gNilcXG5kcml2ZXJzL25ldC9kc2EvbXQ3NTMwLmM6MjkyMzpcXHRcXHRtdDc1MzBfc2V0dXBfcG9ydDYocHJpdi1cXHUwMDNlZHMsIGludGVyZmFjZSk7XFxuZHJpdmVycy9uZXQvZHNhL210NzUzMC5jLTI5MjQtfVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL210NzUzMC5jPTMxODU9bXQ3NTN4X3NldHVwKHN0cnVjdCBkc2Ffc3dpdGNoICpkcylcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdDc1MzAuYy0zMTkzLVxcbmRyaXZlcnMvbmV0L2RzYS9tdDc1MzAuYzozMTk0OlxcdHJldCA9IG10NzUzMF9zZXR1cF9pcnEocHJpdik7XFxuZHJpdmVycy9uZXQvZHNhL210NzUzMC5jLTMxOTUtXFx0aWYgKHJldClcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdDc1MzAuYy0zMTk3LVxcbmRyaXZlcnMvbmV0L2RzYS9tdDc1MzAuYzozMTk4OlxcdHJldCA9IG10NzUzMF9zZXR1cF9tZGlvKHByaXYpO1xcbmRyaXZlcnMvbmV0L2RzYS9tdDc1MzAuYy0zMTk5LVxcdGlmIChyZXQpXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXQ3NTMwLmM9MzM5Nz1jb25zdCBzdHJ1Y3QgbXQ3NTN4X2luZm8gbXQ3NTN4X3RhYmxlW10gPSB7XFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXQ3NTMwLmMtMzQwMS1cXHRcXHQucGNzX29wcyA9IFxcdTAwMjZtdDc1MzBfcGNzX29wcyxcXG5kcml2ZXJzL25ldC9kc2EvbXQ3NTMwLmM6MzQwMjpcXHRcXHQuc3dfc2V0dXAgPSBtdDc1MzBfc2V0dXAsXFxuZHJpdmVycy9uZXQvZHNhL210NzUzMC5jLTM0MDMtXFx0XFx0LnBoeV9yZWFkX2MyMiA9IG10NzUzMF9waHlfcmVhZF9jMjIsXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXQ3NTMwLmMtMzQxMy1cXHRcXHQucGNzX29wcyA9IFxcdTAwMjZtdDc1MzBfcGNzX29wcyxcXG5kcml2ZXJzL25ldC9kc2EvbXQ3NTMwLmM6MzQxNDpcXHRcXHQuc3dfc2V0dXAgPSBtdDc1MzBfc2V0dXAsXFxuZHJpdmVycy9uZXQvZHNhL210NzUzMC5jLTM0MTUtXFx0XFx0LnBoeV9yZWFkX2MyMiA9IG10NzUzMF9waHlfcmVhZF9jMjIsXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTIwVDIwOjQ3OjExLjU4MjQyNDkxOVoiLCJTZXEiOjUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQ1Nzk3NzEyMzQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqSW52ZXN0aWdhdGluZyB0aGUgUmVhY2hhYmlsaXR5IG9mIHRoZSBNVDc1MzAvTVQ3NTMxL01UNzYyMSBNRElPIERyaXZlciBpbiBRRU1VKipcblxuT2theSwgc28gSSdtIHRyeWluZyB0byBmaWd1cmUgb3V0IGlmIEkgY2FuIGdldCB0aGlzIE1UNzUzMC9NVDc1MzEvTVQ3NjIxIE1ESU8gZHJpdmVyIHRvIGZpcmUgdXAgd2l0aGluIGEgUUVNVSBlbnZpcm9ubWVudC4gSXQncyBhbiBNRElPIGRyaXZlciwgd2hpY2ggbWVhbnMgaXQncyByZXNwb25zaWJsZSBmb3IgbWFuYWdpbmcgZGV2aWNlcyBjb25uZWN0ZWQgdmlhIHRoZSBNRElPIGludGVyZmFjZS4gTm93LCB0aGUgY3JpdGljYWwgcXVlc3Rpb24gaXMgd2hldGhlciBRRU1VJ3Mgc2V0dXAgd2lsbCBhbGxvdyBtZSB0byBldmVuIGhpdCB0aGlzIGNvZGUuIE15IGV4cGVyaWVuY2Ugc3VnZ2VzdHMgdGhhdCBNRElPIGRldmljZXMgYXJlIHR5cGljYWxseSBicm91Z2h0IG9ubGluZSB0aHJvdWdoIHRoZSBkZXZpY2UgdHJlZS4gSWYgdGhlIGRldmljZSB0cmVlIGNvbmZpZ3VyYXRpb24gZG9lc24ndCBleHBsaWNpdGx5IGRlZmluZSBhIG5vZGUgZm9yIHRoaXMgcGFydGljdWxhciBoYXJkd2FyZSwgdGhlIGRyaXZlciB3aWxsIGxpa2VseSByZW1haW4gZG9ybWFudCDigJMgbm90IGdldHRpbmcgcHJvYmVkIGF0IGFsbC5cblxuU28sIHRoZSBuZXh0IGxvZ2ljYWwgc3RlcCBpcyB0byBkaXZlIGludG8gdGhlIGRyaXZlcidzIGNvZGUsIHNwZWNpZmljYWxseSBgZHJpdmVycy9uZXQvZHNhL210NzUzMC5jYCwgYW5kIGh1bnQgZm9yIGNsdWVzLiBJJ20gbG9va2luZyBmb3IgYSBgTU9EVUxFX0RFVklDRV9UQUJMRWAgb3IgYW4gYG9mX21hdGNoX3RhYmxlYCB3aXRoaW4gdGhhdCBmaWxlLiBUaGVzZSB0YWJsZXMgYXJlIHRoZSBrZXkuIFRoZXkgZGVmaW5lIHRoZSBoYXJkd2FyZSBpZGVudGlmaWVycyB0aGF0IHRoZSBkcml2ZXIgaXMgZGVzaWduZWQgdG8gcmVjb2duaXplLiBJZiBJIGNhbiBmaW5kIG9uZSB0aGF0IGFsaWducyB3aXRoIHdoYXQgUUVNVSBwcm92aWRlcyBvciBjYW4gYmUgY29uZmlndXJlZCB0byBlbXVsYXRlLCBJJ20gaW4gYnVzaW5lc3MuIElmIG5vdCwgSSdsbCBuZWVkIHRvIGxvb2sgYXQgZWl0aGVyIG1vZGlmeWluZyB0aGUgZGV2aWNlIHRyZWUgd2l0aGluIFFFTVUsIG9yIHBvdGVudGlhbGx5IGNyZWF0aW5nIGEgbWluaW1hbCBkZXZpY2UgdHJlZSBvdmVycmlkZS4gSSdsbCBuZWVkIHRvIGFzc2VzcyB0aGUgcG9zc2liaWxpdGllcyFcblxuXG4iLCJJbnB1dFRva2VucyI6NTc4MywiT3V0cHV0VG9rZW5zIjozOSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjExNiwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0yMFQyMDo0NzoxNi4xNjIxOTkyMDNaIiwiU2VxIjo2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDQ0Mjk2NzUsIkVycm9yIjoibm8gbWF0Y2hlcyIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIm9mX21hdGNoX3RhYmxlXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L2RzYS9tdDc1MzAuY1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJlcnJvclwiOiBcIm5vIG1hdGNoZXNcIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjBUMjA6NDc6MTYuMjA2NjQwNjE3WiIsIlNlcSI6NywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzI2NzA1OTE4NywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiSGVyZSdzIG15IGF0dGVtcHQgYXQgc3VtbWFyaXppbmcgdGhlIHRob3VnaHQgcHJvY2VzcywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZSBhbmQgd3JpdHRlbiBpbiB0aGUgZmlyc3QgcGVyc29uOlxuXG4qKk1ESU8gRHJpdmVyIEludmVzdGlnYXRpb246IEluaXRpYWwgU3RlcHMqKlxuXG5Pa2F5LCBzbyB3ZSdyZSBkZWFsaW5nIHdpdGggYW4gTURJTyBkcml2ZXIuIE15IGluaXRpYWwgaW5zdGluY3QgaXMgdG8ganVtcCBzdHJhaWdodCB0byB0aGUgcHJvYmUgZnVuY3Rpb24sIHBhcnRpY3VsYXJseSBgbXQ3NTMwX3Byb2JlYC4gVGhhdCdzIHdoZXJlIHRoZSBjcml0aWNhbCBpbml0aWFsaXphdGlvbiBhbmQgZGV2aWNlIHNldHVwIHR5cGljYWxseSBoYXBwZW5zLCBhbmQgd2hlcmUgdGhlIGRyaXZlciBzaG91bGQgYmUgaWRlbnRpZnlpbmcgYW5kIGNvbmZpZ3VyaW5nIHRoZSBzcGVjaWZpYyBoYXJkd2FyZS4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgd2hhdCdzIGhhcHBlbmluZyBhdCB0aGUgcG9pbnQgb2YgZGV0ZWN0aW9uLiBMZXQncyBzZWUgd2hhdCdzIGdvaW5nIG9uIHRoZXJlLlxuXG5cbiIsIklucHV0VG9rZW5zIjo2MjcyLCJPdXRwdXRUb2tlbnMiOjQxLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjMsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjBUMjA6NDc6MTkuNDczNzAxODc1WiIsIlNlcSI6OCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQ1Mjc0NTg0LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIm10NzUzMF9wcm9iZVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC9kc2EvbXQ3NTMwLmNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvZHNhL210NzUzMC5jPTM0NjY9aW50XFxuZHJpdmVycy9uZXQvZHNhL210NzUzMC5jOjM0Njc6bXQ3NTMwX3Byb2JlX2NvbW1vbihzdHJ1Y3QgbXQ3NTMwX3ByaXYgKnByaXYpXFxuZHJpdmVycy9uZXQvZHNhL210NzUzMC5jLTM0Njgte1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL210NzUzMC5jLTM0OTctfVxcbmRyaXZlcnMvbmV0L2RzYS9tdDc1MzAuYzozNDk4OkVYUE9SVF9TWU1CT0xfR1BMKG10NzUzMF9wcm9iZV9jb21tb24pO1xcbmRyaXZlcnMvbmV0L2RzYS9tdDc1MzAuYy0zNDk5LVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yMFQyMDo0NzoxOS41MTg5Nzk2NVoiLCJTZXEiOjksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjM3NjU4NzMzNjAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBhIHN1bW1hcnkgb2YgbXkgdGhvdWdodCBwcm9jZXNzOlxuXG4qKkRpdmluZyBpbnRvIHRoZSBgbXQ3NTMwX3Byb2JlX2NvbW1vbmAgRnVuY3Rpb24qKlxuXG5Pa2F5LCBzbyBgbXQ3NTMwX3Byb2JlX2NvbW1vbmAgaXMgYW4gZXhwb3J0ZWQgZnVuY3Rpb24sIHdoaWNoIG1lYW5zIGl0J3MgYXZhaWxhYmxlIGZvciBvdGhlciBwYXJ0cyBvZiB0aGUga2VybmVsIHRvIHVzZS4gVGhhdCBpbW1lZGlhdGVseSBwaXF1ZXMgbXkgaW50ZXJlc3QuIEkgbmVlZCB0byB1bmRlcnN0YW5kIGl0cyBjb250ZXh0IGFuZCBob3cgaXQncyBiZWluZyBsZXZlcmFnZWQgd2l0aGluIHRoZSBzeXN0ZW0uIE15IG5leHQgc3RlcCwgbmF0dXJhbGx5LCBpcyB0byBmaWd1cmUgb3V0IHRoZSBjYWxsIHNpdGVzLiBJIG5lZWQgdG8gdHJhY2sgZG93biBldmVyeXdoZXJlIHRoaXMgcGFydGljdWxhciBmdW5jdGlvbiBpcyBiZWluZyBpbnZva2VkIHRvIGdldCBhIGdyYXNwIG9mIGl0cyByb2xlIGFuZCBzaWduaWZpY2FuY2UuIFVuZGVyc3RhbmRpbmcgd2hlcmUgaXQncyB1c2VkIGlzIGtleSB0byB1bmRlcnN0YW5kaW5nIHdoYXQgaXQgZG9lcy5cblxuXG4iLCJJbnB1dFRva2VucyI6NjYzNiwiT3V0cHV0VG9rZW5zIjozNiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjI3LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTIwVDIwOjQ3OjIzLjI4NDg1NTExWiIsIlNlcSI6MTAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0NzQ1MjA5NSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJtdDc1MzBfcHJvYmVfY29tbW9uXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L2RzYS9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvZHNhL210NzUzMC1tZGlvLmM9MTU1PW10NzUzMF9wcm9iZShzdHJ1Y3QgbWRpb19kZXZpY2UgKm1kaW9kZXYpXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXQ3NTMwLW1kaW8uYy0xNzAtXFxuZHJpdmVycy9uZXQvZHNhL210NzUzMC1tZGlvLmM6MTcxOlxcdHJldCA9IG10NzUzMF9wcm9iZV9jb21tb24ocHJpdik7XFxuZHJpdmVycy9uZXQvZHNhL210NzUzMC1tZGlvLmMtMTcyLVxcdGlmIChyZXQpXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXQ3NTMwLW1taW8uYz0yOT1tdDc5ODhfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldilcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdDc1MzAtbW1pby5jLTQxLVxcbmRyaXZlcnMvbmV0L2RzYS9tdDc1MzAtbW1pby5jOjQyOlxcdHJldCA9IG10NzUzMF9wcm9iZV9jb21tb24ocHJpdik7XFxuZHJpdmVycy9uZXQvZHNhL210NzUzMC1tbWlvLmMtNDMtXFx0aWYgKHJldClcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdDc1MzAuYz0zNDY2PWludFxcbmRyaXZlcnMvbmV0L2RzYS9tdDc1MzAuYzozNDY3Om10NzUzMF9wcm9iZV9jb21tb24oc3RydWN0IG10NzUzMF9wcml2ICpwcml2KVxcbmRyaXZlcnMvbmV0L2RzYS9tdDc1MzAuYy0zNDY4LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdDc1MzAuYy0zNDk3LX1cXG5kcml2ZXJzL25ldC9kc2EvbXQ3NTMwLmM6MzQ5ODpFWFBPUlRfU1lNQk9MX0dQTChtdDc1MzBfcHJvYmVfY29tbW9uKTtcXG5kcml2ZXJzL25ldC9kc2EvbXQ3NTMwLmMtMzQ5OS1cXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdDc1MzAuaD05NDE9c3RhdGljIGlubGluZSB2b2lkIElOSVRfTVQ3NTMwX0RVTU1ZX1BPTEwoc3RydWN0IG10NzUzMF9kdW1teV9wb2xsICpwLFxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL210NzUzMC5oLTk0Ny1cXG5kcml2ZXJzL25ldC9kc2EvbXQ3NTMwLmg6OTQ4OmludCBtdDc1MzBfcHJvYmVfY29tbW9uKHN0cnVjdCBtdDc1MzBfcHJpdiAqcHJpdik7XFxuZHJpdmVycy9uZXQvZHNhL210NzUzMC5oLTk0OS12b2lkIG10NzUzMF9yZW1vdmVfY29tbW9uKHN0cnVjdCBtdDc1MzBfcHJpdiAqcHJpdik7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTIwVDIwOjQ3OjIzLjMzMjMxMDc2NVoiLCJTZXEiOjExLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0NTUwMTQ5NDExLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBsZXQncyBkaXZlIGludG8gdGhpcy4gSGVyZSdzIGhvdyBJJ2QgYXBwcm9hY2ggdGhpcyB0YXNrLCBhcyBpZiB0aGVzZSB3ZXJlIG15IGludGVybmFsIHRob3VnaHRzOlxuXG4qKkNoZWNraW5nIERldmljZSBUcmVlIEJpbmRpbmcgaW4gTVQ3NTMwIERyaXZlciBDb2RlKipcblxuUmlnaHQsIHNvIEkgbmVlZCB0byB1bmRlcnN0YW5kIGhvdyB0aGUgTVQ3NTMwIHN3aXRjaCBkcml2ZXIgaW50ZXJhY3RzIHdpdGggdGhlIGRldmljZSB0cmVlLiBNeSBmaXJzdCBpbnN0aW5jdCwgZ2l2ZW4gdGhlIGNvbnRleHQsIGlzIHRvIGNoZWNrIHRoZSBgb2ZfbWF0Y2hfdGFibGVgIGltcGxlbWVudGF0aW9uIGluIHRoZSBNVDc1MzAgZHJpdmVyIGNvZGUuIFNwZWNpZmljYWxseSwgSSdsbCBiZSBsb29raW5nIGluIHRoZSBgZHJpdmVycy9uZXQvZHNhL210NzUzMC1tZGlvLmNgIGFuZCBgZHJpdmVycy9uZXQvZHNhL210NzUzMC1tbWlvLmNgIGZpbGVzLiBJJ20gZm9jdXNpbmcgb24gdGhvc2UgdHdvIGJlY2F1c2UgdGhleSBsaWtlbHkgaGFuZGxlIHRoZSBkaWZmZXJlbnQgY29tbXVuaWNhdGlvbiBpbnRlcmZhY2VzIGZvciB0aGUgc3dpdGNoOiBNRElPIChtYW5hZ2VtZW50IGRhdGEgSS9PKSBhbmQgTU1JTyAobWVtb3J5LW1hcHBlZCBJL08pLiBUaGUgYG9mX21hdGNoX3RhYmxlYCBpcywgb2YgY291cnNlLCB0aGUga2V5IGRhdGEgc3RydWN0dXJlLiBJIG5lZWQgdG8gc2VlIGhvdyB0aGUgZHJpdmVyIGlkZW50aWZpZXMgYW5kIGJpbmRzIHRvIHRoZSBjb3JyZWN0IGRldmljZSBub2RlcyBpbiB0aGUgZGV2aWNlIHRyZWUuIEknbSBleHBlY3RpbmcgdG8gZmluZCBlbnRyaWVzIHRoYXQgbWF0Y2ggc3BlY2lmaWMgXCJjb21wYXRpYmxlXCIgc3RyaW5ncyBvciBvdGhlciBwcm9wZXJ0aWVzIGRlZmluZWQgZm9yIHRoZSBNVDc1MzAsIGFsbG93aW5nIHRoZSBkcml2ZXIgdG8gaW5pdGlhbGl6ZSBjb3JyZWN0bHkuIEl0J3MgYSBmdW5kYW1lbnRhbCBwYXJ0IG9mIHRoZSBkZXZpY2UgZHJpdmVyJ3MgYm9vdHN0cmFwIHNlcXVlbmNlLiBJJ2xsIG5lZWQgdG8gcmV2aWV3IGhvdyB0aGVzZSBgb2ZfbWF0Y2hfdGFibGVgIGVudHJpZXMgYXJlIHN0cnVjdHVyZWQsIGFueSBjb3JyZXNwb25kaW5nIGluaXRpYWxpemF0aW9uIG9yIHByb2JlIGZ1bmN0aW9ucyB0aGF0IHJlbHkgb24gdGhlbSwgYW5kIGhvdyB0aGUgZHJpdmVyIHVsdGltYXRlbHkgaGFuZGxlcyByZXNvdXJjZSBhbGxvY2F0aW9uIGJhc2VkIG9uIHRoZSBEVCBiaW5kaW5nLiBJIHdpbGwgZW5zdXJlIHRoYXQgdGhlIGRyaXZlciB3aWxsIGJlIGJvdW5kIGNvcnJlY3RseSBhbmQgdGhhdCByZXNvdXJjZXMgYXJlIGluaXRpYWxpemVkLlxuXG5cbiIsIklucHV0VG9rZW5zIjo3NDM4LCJPdXRwdXRUb2tlbnMiOjQyLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NTEsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjBUMjA6NDc6MjcuODgyNDY2Mjc2WiIsIlNlcSI6MTIsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0NTE0NDQ2NSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJvZl9tYXRjaF90YWJsZVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC9kc2EvbXQ3NTMwLW1kaW8uY1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC9kc2EvbXQ3NTMwLW1kaW8uYz0yNTg9c3RhdGljIHN0cnVjdCBtZGlvX2RyaXZlciBtdDc1MzBfbWRpb19kcml2ZXIgPSB7XFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXQ3NTMwLW1kaW8uYy0yNjMtXFx0XFx0Lm5hbWUgPSBcXFwibXQ3NTMwLW1kaW9cXFwiLFxcbmRyaXZlcnMvbmV0L2RzYS9tdDc1MzAtbWRpby5jOjI2NDpcXHRcXHQub2ZfbWF0Y2hfdGFibGUgPSBtdDc1MzBfb2ZfbWF0Y2gsXFxuZHJpdmVycy9uZXQvZHNhL210NzUzMC1tZGlvLmMtMjY1LVxcdH0sXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTIwVDIwOjQ3OjI3LjkyNzYxNDk3MVoiLCJTZXEiOjEzLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0NTQxNTY3MTQwLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgdGhlIHN1bW1hcnksIHJlbmRlcmVkIGFzIGlmIEknbSB0aGUgb25lIHRoaW5raW5nIGl0OlxuXG4qKkNvbnNpZGVyaW5nIHRoZSBtdDc1MzBfb2ZfbWF0Y2ggRnVuY3Rpb24qKlxuXG5BbHJpZ2h0LCBsZXQncyBicmVhayBkb3duIHRoaXMgYG10NzUzMF9vZl9tYXRjaGAgZnVuY3Rpb24uIE15IGluaXRpYWwgdGhvdWdodCBpcywgdGhpcyBpcyBwcm9iYWJseSBhIGNydWNpYWwgcGllY2Ugb2YgZGV2aWNlIHRyZWUgaGFuZGxpbmcgZm9yIGFuIE1UNzUzMC1iYXNlZCBzeXN0ZW0uIEdpdmVuIG15IGJhY2tncm91bmQsIEknbSBleHBlY3RpbmcgdGhpcyBmdW5jdGlvbiB0byBiZSBpbnZvbHZlZCBpbiBwcm9iaW5nLCBhbmQgbWF0Y2hpbmcgYSBkZXZpY2Ugbm9kZSBpbiB0aGUgZGV2aWNlIHRyZWUgdG8gYSBkcml2ZXIgaW5zdGFuY2UuIFNwZWNpZmljYWxseSwgaXQncyB2ZXJ5IGxpa2VseSBhY3RpbmcgYXMgdGhlIGNhbGxiYWNrIGZ1bmN0aW9uIHdpdGhpbiB0aGUgXCJvZl9tYXRjaF90YWJsZVwiIHN0cnVjdHVyZSwgbGlrZWx5IGNvbXBhcmluZyBzb21lIHByb3BlcnRpZXMgd2l0aGluIHRoZSBkZXZpY2UgdHJlZSBub2RlIChwZXJoYXBzIGNvbXBhdGlibGUgc3RyaW5ncywgb3Igc29tZSBjdXN0b20gcGxhdGZvcm0gZGF0YSkgYWdhaW5zdCBhIHByZWRlZmluZWQgdGFibGUgb2Ygc3VwcG9ydGVkIGNvbmZpZ3VyYXRpb25zLlxuXG5JJ20gbWVudGFsbHkgcnVubmluZyB0aHJvdWdoIHRoZSB0eXBpY2FsIHNlcXVlbmNlOiB0aGUga2VybmVsIGlkZW50aWZpZXMgYSBkZXZpY2UsIHRyaWVzIHRvIGZpbmQgYSBzdWl0YWJsZSBkcml2ZXIuIEl0IGNoZWNrcyB0aGUgZGV2aWNlJ3MgcHJvcGVydGllcyBhZ2FpbnN0IHRoZSBjb21wYXRpYmxlIHN0cmluZ3MgZGVmaW5lZCBpbiBhIG1hdGNoIHRhYmxlLiBXaGVuIHRoZXJlIGlzIGEgbWF0Y2gsIHRoZW4gdGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQsIHRvIGNvbmZpcm0gdGhlIGRyaXZlciBzaG91bGQgYXR0YWNoIHRvIHRoaXMgZGV2aWNlLiBNeSBleHBlcmllbmNlIHRlbGxzIG1lIHRoYXQgdGhpcyBmdW5jdGlvbiBkb2VzIG5vdCBhY3R1YWxseSBwcm9iZSB0aGUgaGFyZHdhcmUuIEl0IGlzIGZvciBkZXZpY2UgdHJlZSBtYXRjaGluZy5cblxuSSBuZWVkIHRvIGNvbmZpcm0gd2hldGhlciB0aGUgZnVuY3Rpb24gaXMgbWVhbnQgdG8ganVzdCBiZSBhIHNpbXBsZSBcImNvbXBhdGlibGVcIiBzdHJpbmcgbWF0Y2ggb3IgaWYgaXQncyBkZXNpZ25lZCB0byBkbyBhIHNsaWdodGx5IG1vcmUgY29tcGxleCBjaGVjaywgcGVyaGFwcyB2YWxpZGF0aW5nIG90aGVyIGFzcGVjdHMgb2YgdGhlIGRldmljZSB0cmVlIG5vZGUgYmV5b25kIGp1c3QgdGhlIFwiY29tcGF0aWJsZVwiIHByb3BlcnR5LiBUaGlzIGNvdWxkIGludm9sdmUgY2hlY2tpbmcgZm9yIHRoZSBwcmVzZW5jZS9hYnNlbmNlIG9mIHNwZWNpZmljIHByb3BlcnRpZXMsIHZlcmlmeWluZyB0aGVpciB2YWx1ZXMsIG9yIGV2ZW4gcG90ZW50aWFsbHkgcmV0cmlldmluZyBzb21lIGluaXRpYWwgY29uZmlndXJhdGlvbiBwYXJhbWV0ZXJzLiBJIHdhbnQgdG8gbG9vayBtb3JlIGRlZXBseSBpbnRvIHRoZSBzb3VyY2UgY29kZSB0byBnZXQgYSBjb21wcmVoZW5zaXZlIHVuZGVyc3RhbmRpbmcgb2YgdGhlIGxvZ2ljLlxuXG5cbiIsIklucHV0VG9rZW5zIjo4MDIxLCJPdXRwdXRUb2tlbnMiOjQ2LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTIsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjBUMjA6NDc6MzIuNDY5MTg0NDcxWiIsIlNlcSI6MTQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMjIyODcxOTIsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwibXQ3NTMwX29mX21hdGNoXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L2RzYS9tdDc1MzAtbWRpby5jXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L2RzYS9tdDc1MzAtbWRpby5jPTkxPW10NzUzMV9jcmVhdGVfc2dtaWkoc3RydWN0IG10NzUzMF9wcml2ICpwcml2KVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL210NzUzMC1tZGlvLmMtMTM3LVxcbmRyaXZlcnMvbmV0L2RzYS9tdDc1MzAtbWRpby5jOjEzODpzdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBtdDc1MzBfb2ZfbWF0Y2hbXSA9IHtcXG5kcml2ZXJzL25ldC9kc2EvbXQ3NTMwLW1kaW8uYy0xMzktXFx0eyAuY29tcGF0aWJsZSA9IFxcXCJtZWRpYXRlayxtdDc2MjFcXFwiLCAuZGF0YSA9IFxcdTAwMjZtdDc1M3hfdGFibGVbSURfTVQ3NjIxXSwgfSxcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdDc1MzAtbWRpby5jLTE0My19O1xcbmRyaXZlcnMvbmV0L2RzYS9tdDc1MzAtbWRpby5jOjE0NDpNT0RVTEVfREVWSUNFX1RBQkxFKG9mLCBtdDc1MzBfb2ZfbWF0Y2gpO1xcbmRyaXZlcnMvbmV0L2RzYS9tdDc1MzAtbWRpby5jLTE0NS1cXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdDc1MzAtbWRpby5jPTI1OD1zdGF0aWMgc3RydWN0IG1kaW9fZHJpdmVyIG10NzUzMF9tZGlvX2RyaXZlciA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdDc1MzAtbWRpby5jLTI2My1cXHRcXHQubmFtZSA9IFxcXCJtdDc1MzAtbWRpb1xcXCIsXFxuZHJpdmVycy9uZXQvZHNhL210NzUzMC1tZGlvLmM6MjY0OlxcdFxcdC5vZl9tYXRjaF90YWJsZSA9IG10NzUzMF9vZl9tYXRjaCxcXG5kcml2ZXJzL25ldC9kc2EvbXQ3NTMwLW1kaW8uYy0yNjUtXFx0fSxcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjBUMjA6NDc6MzIuNTkxNDc1MDUzWiIsIlNlcSI6MTUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjg3ODQ5NDA1MTksIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBGZWFzaWJpbGl0eSBvZiBGdXp6aW5nIGEgSGFyZHdhcmUgU3dpdGNoIERyaXZlcioqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoZSBkcml2ZXIgZm9yIHRoaXMgTWVkaWFUZWsgc3dpdGNoIOKAkyBzcGVjaWZpY2FsbHkgdGhlIE1UNzYyMSwgTVQ3NTMwLCBhbmQgTVQ3NTMxIHZhcmlhbnRzLiBNeSBpbW1lZGlhdGUgY29uY2VybiBpcywgY2FuIEkgZXZlbiAqcmVhY2gqIHRoaXMgY29kZSBpbiBhIHN0YW5kYXJkIGZ1enppbmcgc2V0dXA/IEl0IHJlbGllcyBvbiBhIHNwZWNpZmljIGRldmljZSB0cmVlIG5vZGUsIGFuZCBtb3JlIGltcG9ydGFudGx5LCBpdCdzIGludGVyYWN0aW5nIHdpdGggcGh5c2ljYWwgTURJTyBvciBNTUlPIHJlZ2lzdGVycy4gTXkgaW5pdGlhbCBndXQgZmVlbGluZyBpcyBhIGZpcm0gXCJub1wiLiBRRU1VLCBhcyBmYXIgYXMgSSBrbm93LCBkb2Vzbid0IGVtdWxhdGUgdGhlc2Ugc3BlY2lmaWMgTWVkaWFUZWsgc3dpdGNoZXMsIHNvIHN0cmFpZ2h0IGF3YXksIEknbSB0aGlua2luZyBhIGdlbmVyaWMgZnV6emluZyBlbnZpcm9ubWVudCBsaWtlIHN5emthbGxlciBpcyBhIGRlYWQgZW5kLlxuXG5JJ20gcHJldHR5IHN1cmUgdGhhdCB1bmxlc3Mgd2UncmUgZnV6emluZyBkaXJlY3RseSBvbiBhY3R1YWwgTWVkaWFUZWsgaGFyZHdhcmUsIG9yIFFFTVUgKnNvbWVob3cqIGFkZHMgc3VwcG9ydCBmb3IgdGhlc2UgKnNwZWNpZmljKiBib2FyZHMvc3dpdGNoZXMgKHdoaWNoIGlzIGluY3JlZGlibHkgdW5saWtlbHkgZm9yIGdlbmVyaWMgZnV6emluZyBwdXJwb3NlcyksIHRoaXMgY29kZSBwYXRoIGlzIHVucmVhY2hhYmxlLlxuXG5XYWl0IGEgc2Vjb25kLCBzeXprYWxsZXIgZG9lcyBoYXZlIGRldmljZSB0cmVlIGluamVjdGlvbiBjYXBhYmlsaXRpZXMhIE1heWJlIHRoZXJlJ3MgYSBnbGltbWVyIG9mIGhvcGUuIEJ1dCBldmVuIHdpdGggdGhhdCwgaXQgdXN1YWxseSAqZG9lc24ndCogZW11bGF0ZSB0aGUgaGFyZHdhcmUgcmVnaXN0ZXJzLiBTbyBpZiB0aGUgZHJpdmVyIHRyaWVzIHRvIHJlYWQgYSBoYXJkd2FyZSBJRCBvciBpbnRlcmFjdCB3aXRoIHRoZSBoYXJkd2FyZSByZWdpc3RlcnMsIHdlJ3JlIGxpa2VseSBnb2luZyB0byBnZXQgYSBmYWlsdXJlIG9yIGEgY3Jhc2ggYmVjYXVzZSB0aGUgaGFyZHdhcmUgd29uJ3QgYmUgdGhlcmUuXG5cbkFscmlnaHQsIGxldCdzIGJhY2sgdXAgYSBiaXQuIEZpcnN0IHRoaW5nJ3MgZmlyc3Q6IEkgbmVlZCB0byBjaGVjayBpZiB0aGlzIGRyaXZlciAqYWN0dWFsbHkqIHJlYWRzIGhhcmR3YXJlIHJlZ2lzdGVycyBkdXJpbmcgdGhlIHByb2JlIHByb2Nlc3MuIFRoYXQncyB0aGUgbWFrZS1vci1icmVhayBxdWVzdGlvbiByaWdodCBub3cuIElmIGl0IGRvZXNuJ3QgbmVlZCB0byByZWFkIGFueSByZWdpc3RlcnMgZm9yIGJhc2ljIHNldHVwLCBpdCBtaWdodCBqdXN0ICp3b3JrKi4gQnV0IEkgaGF2ZSB0byB2ZXJpZnkgdGhhdC5cblxuXG4iLCJJbnB1dFRva2VucyI6ODg0NCwiT3V0cHV0VG9rZW5zIjo0MywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjIwOSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0yMFQyMDo0Nzo0MS4zNzY0MTgyNDNaIiwiU2VxIjoxNiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjUxMDQ2ODM1LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIm10NzUzMF9wcm9iZV9jb21tb25cIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvZHNhL210NzUzMC5jXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L2RzYS9tdDc1MzAuYz0zNDY2PWludFxcbmRyaXZlcnMvbmV0L2RzYS9tdDc1MzAuYzozNDY3Om10NzUzMF9wcm9iZV9jb21tb24oc3RydWN0IG10NzUzMF9wcml2ICpwcml2KVxcbmRyaXZlcnMvbmV0L2RzYS9tdDc1MzAuYy0zNDY4LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdDc1MzAuYy0zNDk3LX1cXG5kcml2ZXJzL25ldC9kc2EvbXQ3NTMwLmM6MzQ5ODpFWFBPUlRfU1lNQk9MX0dQTChtdDc1MzBfcHJvYmVfY29tbW9uKTtcXG5kcml2ZXJzL25ldC9kc2EvbXQ3NTMwLmMtMzQ5OS1cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjBUMjA6NDc6NDEuNDI3NDY4OTY4WiIsIlNlcSI6MTcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQ5NTI5NzU5MTMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBteSBhdHRlbXB0IGF0IHN1bW1hcml6aW5nIHRoZSB0aG91Z2h0IHByb2Nlc3MsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2U6XG5cbioqRGl2aW5nIGludG8gdGhlIGBtdDc1MzBfcHJvYmVfY29tbW9uYCBGdW5jdGlvbioqXG5cbk9rYXksIHNvIEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoaXMgYG10NzUzMF9wcm9iZV9jb21tb25gIGZ1bmN0aW9uLiBHaXZlbiB0aGUgbmFtaW5nIGNvbnZlbnRpb24sIEknbSBndWVzc2luZyBpdCdzIGEgY29tbW9uIHByb2JlIGZ1bmN0aW9uIHNwZWNpZmljYWxseSBmb3IgdGhlIE1lZGlhVGVrIE1UNzUzMCBzd2l0Y2ggY2hpcC4gVGhhdCBsaWtlbHkgbWVhbnMgaXQgaGFuZGxlcyB0aGUgaW5pdGlhbCBzZXR1cCBhbmQgY29uZmlndXJhdGlvbiB0YXNrcyBzaGFyZWQgYWNyb3NzIHZhcmlvdXMgZHJpdmVyIGltcGxlbWVudGF0aW9ucyBmb3IgdGhpcyBoYXJkd2FyZS4gSSB3YW50IHRvIHNlZSB3aGF0IGluaXRpYWxpemF0aW9uIHRoZSBwcm9iZSBmdW5jdGlvbiBoYW5kbGVzLlxuXG5JJ20gcHJvYmFibHkgZ29pbmcgdG8gYmUgbG9va2luZyBmb3IgdGhpbmdzIGxpa2U6XG5cbiogICAqKlJlc291cmNlIGFsbG9jYXRpb24qKjogQ2hlY2tpbmcgaG93IGl0IGhhbmRsZXMgSVJRcywgbWVtb3J5IHJlZ2lvbnMsIGFuZCBhbnkgb3RoZXIgcmVxdWlyZWQgcmVzb3VyY2VzIHVzaW5nIHBsYXRmb3JtIGRhdGEuXG4qICAgKipIYXJkd2FyZSByZXNldCoqOiBEb2VzIGl0IHBlcmZvcm0gYW55IGhhcmR3YXJlIHJlc2V0IHNlcXVlbmNlPyBUaGlzIGlzIGEgcHJldHR5IHN0YW5kYXJkIHBhcnQgb2YgcHJvYmluZy5cbiogICAqKlJlZ2lzdGVyIGFjY2VzcyoqOiBJIG5lZWQgdG8gc2VlIGhvdyBpdCBzZXRzIHVwIGFueSBiYXNlIGFkZHJlc3MgcmVnaXN0ZXJzIHRvIHRhbGsgdG8gdGhlIGNoaXAuIElzIGl0IHVzaW5nIE1NSU8gb3IgSTJDL1NQST9cbiogICAqKkNsb2NrIHNldHVwKio6IFRoaXMgaXMgdmVyeSBpbXBvcnRhbnQuIEkgZXhwZWN0IHRoZXJlIHRvIGJlIHNvbWUgY2xvY2sgaW5pdGlhbGl6YXRpb24gdG8gbWFrZSBzdXJlIHRoZSBzd2l0Y2ggaGFzIGEgc3RhYmxlIGNsb2NrIGJlZm9yZSBwcm9jZWVkaW5nIHdpdGggYW55dGhpbmcgZWxzZS5cbiogICAqKkRyaXZlciBkYXRhIHN0cnVjdHVyZXMqKjogTGlrZWx5LCB0aGVyZSdsbCBiZSBpbml0aWFsIGFsbG9jYXRpb24gYW5kIHNldHVwIG9mIGRhdGEgc3RydWN0dXJlcyBzcGVjaWZpYyB0byB0aGUgbXQ3NTMwLlxuKiAgICoqSW50ZXJydXB0IEhhbmRsaW5nKio6IFNldHRpbmcgdXAgaW50ZXJydXB0IGhhbmRsZXJzLCBlbmFibGluZyBpbnRlcnJ1cHRzIG9uIHRoZSBzd2l0Y2guXG4qICAgKipQaHkgY29uZmlndXJhdGlvbioqOiBQb3NzaWJseSByZWxhdGVkIHRvIHRoZSBpbnRlcm5hbCBQSFkuXG5cbkknbSBhbHNvIGN1cmlvdXMgYWJvdXQgZXJyb3IgaGFuZGxpbmcuIEkgaG9wZSB0byBzZWUgcm9idXN0IGVycm9yIGNoZWNrcyBhbmQgcmVwb3J0aW5nLCBlc3BlY2lhbGx5IGFyb3VuZCByZXNvdXJjZSBhbGxvY2F0aW9uLiBJZGVhbGx5LCBpdCBoYW5kbGVzIHBvdGVudGlhbCBoYXJkd2FyZSBmYWlsdXJlcyBncmFjZWZ1bGx5LCBwZXJoYXBzIGJ5IGZhbGxpbmcgYmFjayB0byBhIHNhZmUgbW9kZSBvciByZXR1cm5pbmcgYW4gYXBwcm9wcmlhdGUgZXJyb3IgY29kZS4gRmluYWxseSwgSSdsbCBiZSBsb29raW5nIGZvciByZWZlcmVuY2VzIHRvIGFueSBvdGhlciBmdW5jdGlvbnMgdGhhdCBhcmUgY2FsbGVkLCB0byBzZWUgaG93IHRoZSBvdmVyYWxsIHByb2JlIHByb2Nlc3MgaXMgc3RydWN0dXJlZC5cblxuXG4iLCJJbnB1dFRva2VucyI6OTYzNywiT3V0cHV0VG9rZW5zIjo0MywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE4LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTIwVDIwOjQ3OjQ2LjM4MDQ0NzQwMVoiLCJTZXEiOjE4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJyZWFkLWZpbGUiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNDYxMjAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJGaWxlXCI6IFwiZHJpdmVycy9uZXQvZHNhL210NzUzMC5jXCIsXG4gIFwiRmlyc3RMaW5lXCI6IDM0NjYsXG4gIFwiTGluZUNvdW50XCI6IDUwXG59IiwiUmVzdWx0cyI6IntcbiAgXCJDb250ZW50c1wiOiBcIjM0NjY6XFx0aW50XFxuMzQ2NzpcXHRtdDc1MzBfcHJvYmVfY29tbW9uKHN0cnVjdCBtdDc1MzBfcHJpdiAqcHJpdilcXG4zNDY4OlxcdHtcXG4zNDY5OlxcdFxcdHN0cnVjdCBkZXZpY2UgKmRldiA9IHByaXYtXFx1MDAzZWRldjtcXG4zNDcwOlxcdFxcbjM0NzE6XFx0XFx0cHJpdi1cXHUwMDNlZHMgPSBkZXZtX2t6YWxsb2MoZGV2LCBzaXplb2YoKnByaXYtXFx1MDAzZWRzKSwgR0ZQX0tFUk5FTCk7XFxuMzQ3MjpcXHRcXHRpZiAoIXByaXYtXFx1MDAzZWRzKVxcbjM0NzM6XFx0XFx0XFx0cmV0dXJuIC1FTk9NRU07XFxuMzQ3NDpcXHRcXG4zNDc1OlxcdFxcdHByaXYtXFx1MDAzZWRzLVxcdTAwM2VkZXYgPSBkZXY7XFxuMzQ3NjpcXHRcXHRwcml2LVxcdTAwM2Vkcy1cXHUwMDNlbnVtX3BvcnRzID0gTVQ3NTMwX05VTV9QT1JUUztcXG4zNDc3OlxcdFxcbjM0Nzg6XFx0XFx0LyogR2V0IHRoZSBoYXJkd2FyZSBpZGVudGlmaWVyIGZyb20gdGhlIGRldmljZXRyZWUgbm9kZS5cXG4zNDc5OlxcdFxcdCAqIFdlIHdpbGwgbmVlZCBpdCBmb3Igc29tZSBvZiB0aGUgY2xvY2sgYW5kIHJlZ3VsYXRvciBzZXR1cC5cXG4zNDgwOlxcdFxcdCAqL1xcbjM0ODE6XFx0XFx0cHJpdi1cXHUwMDNlaW5mbyA9IG9mX2RldmljZV9nZXRfbWF0Y2hfZGF0YShkZXYpO1xcbjM0ODI6XFx0XFx0aWYgKCFwcml2LVxcdTAwM2VpbmZvKVxcbjM0ODM6XFx0XFx0XFx0cmV0dXJuIC1FSU5WQUw7XFxuMzQ4NDpcXHRcXG4zNDg1OlxcdFxcdHByaXYtXFx1MDAzZWlkID0gcHJpdi1cXHUwMDNlaW5mby1cXHUwMDNlaWQ7XFxuMzQ4NjpcXHRcXHRwcml2LVxcdTAwM2VkZXYgPSBkZXY7XFxuMzQ4NzpcXHRcXHRwcml2LVxcdTAwM2Vkcy1cXHUwMDNlcHJpdiA9IHByaXY7XFxuMzQ4ODpcXHRcXHRwcml2LVxcdTAwM2Vkcy1cXHUwMDNlb3BzID0gXFx1MDAyNm10NzUzMF9zd2l0Y2hfb3BzO1xcbjM0ODk6XFx0XFx0cHJpdi1cXHUwMDNlZHMtXFx1MDAzZXBoeWxpbmtfbWFjX29wcyA9IFxcdTAwMjZtdDc1M3hfcGh5bGlua19tYWNfb3BzO1xcbjM0OTA6XFx0XFx0bXV0ZXhfaW5pdChcXHUwMDI2cHJpdi1cXHUwMDNlcmVnX211dGV4KTtcXG4zNDkxOlxcdFxcdHNwaW5fbG9ja19pbml0KFxcdTAwMjZwcml2LVxcdTAwM2VzdGF0c19sb2NrKTtcXG4zNDkyOlxcdFxcdElOSVRfREVMQVlFRF9XT1JLKFxcdTAwMjZwcml2LVxcdTAwM2VzdGF0c193b3JrLCBtdDc1MzBfc3RhdHNfcG9sbCk7XFxuMzQ5MzpcXHRcXG4zNDk0OlxcdFxcdGRldl9zZXRfZHJ2ZGF0YShkZXYsIHByaXYpO1xcbjM0OTU6XFx0XFxuMzQ5NjpcXHRcXHRyZXR1cm4gMDtcXG4zNDk3OlxcdH1cXG4zNDk4OlxcdEVYUE9SVF9TWU1CT0xfR1BMKG10NzUzMF9wcm9iZV9jb21tb24pO1xcbjM0OTk6XFx0XFxuMzUwMDpcXHR2b2lkXFxuMzUwMTpcXHRtdDc1MzBfcmVtb3ZlX2NvbW1vbihzdHJ1Y3QgbXQ3NTMwX3ByaXYgKnByaXYpXFxuMzUwMjpcXHR7XFxuMzUwMzpcXHRcXHRpZiAocHJpdi1cXHUwMDNlaXJxX2RvbWFpbilcXG4zNTA0OlxcdFxcdFxcdG10NzUzMF9mcmVlX21kaW9faXJxKHByaXYpO1xcbjM1MDU6XFx0XFxuMzUwNjpcXHRcXHRkc2FfdW5yZWdpc3Rlcl9zd2l0Y2gocHJpdi1cXHUwMDNlZHMpO1xcbjM1MDc6XFx0XFxuMzUwODpcXHRcXHRtdXRleF9kZXN0cm95KFxcdTAwMjZwcml2LVxcdTAwM2VyZWdfbXV0ZXgpO1xcbjM1MDk6XFx0fVxcbjM1MTA6XFx0RVhQT1JUX1NZTUJPTF9HUEwobXQ3NTMwX3JlbW92ZV9jb21tb24pO1xcbjM1MTE6XFx0XFxuMzUxMjpcXHRNT0RVTEVfQVVUSE9SKFxcXCJTZWFuIFdhbmcgXFx1MDAzY3NlYW4ud2FuZ0BtZWRpYXRlay5jb21cXHUwMDNlXFxcIik7XFxuMzUxMzpcXHRNT0RVTEVfREVTQ1JJUFRJT04oXFxcIkRyaXZlciBmb3IgTWVkaWF0ZWsgTVQ3NTMwIFN3aXRjaFxcXCIpO1xcbjM1MTQ6XFx0TU9EVUxFX0xJQ0VOU0UoXFxcIkdQTFxcXCIpO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yMFQyMDo0Nzo0Ni4zODA1OTUzODFaIiwiU2VxIjoxOSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NTI0NDgyMjI1MywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgbGV0IG1lIHRoaW5rIHRoaXMgdGhyb3VnaC4uLlxuXG4qKkFuYWx5emluZyB0aGUgbXQ3NTMwIERyaXZlciBJbml0aWFsaXphdGlvbioqXG5cbkhvbGQgb24gYSBzZWNvbmQsIHRoYXQgYG10NzUzMF9wcm9iZV9jb21tb25gIGZ1bmN0aW9uIGRvZXNuJ3QgYWN0dWFsbHkgKnJlZ2lzdGVyKiB0aGUgc3dpdGNoIHdpdGggdGhlIERTQSBzdWJzeXN0ZW0uIEl0IGp1c3Qgc2V0cyB1cCB0aGUgaW50ZXJuYWwgc3RydWN0dXJlcywgaW5pdGlhbGlzaW5nIGV2ZXJ5dGhpbmcuIEl0J3MgdGhlIGJ1aWxkaW5nIGJsb2Nrcywgbm90IHRoZSBmaW5pc2hlZCBwcm9kdWN0LiBPa2F5Li4uc28gd2hlcmUgaXMgdGhlIHJlZ2lzdHJhdGlvbiBoYXBwZW5pbmc/IEkgbmVlZCB0byBmaW5kIHRoZSBjYWxsIHRvIGBkc2FfcmVnaXN0ZXJfc3dpdGNoYC4gVGhhdCdzIHRoZSBjcnVjaWFsIHN0ZXAuIEkgY2FuJ3QgYmUgb3Zlcmxvb2tpbmcgYSBtaXNpbnRlcnByZXRhdGlvbiBvZiBhIGZ1bmN0aW9uIGNhbGwuIE5lZWQgdG8gdHJhY2UgdGhpcyB0aHJvdWdoLCB1bmRlcnN0YW5kIHRoZSBjb250cm9sIGZsb3csIGZpbmQgd2hlcmUgdGhlIHN3aXRjaCBvZmZpY2lhbGx5IGJlY29tZXMga25vd24gdG8gdGhlIHN5c3RlbS4gV2hlcmUgaXMgdGhhdCBjcnVjaWFsIHJlZ2lzdHJhdGlvbiBvY2N1cnJpbmc/IEdvdHRhIHRyYWNlIHRoZSBjYWxsIHN0YWNrIG5vdy4uLlxuXG5cbiIsIklucHV0VG9rZW5zIjoxMDg2NCwiT3V0cHV0VG9rZW5zIjozOCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjM5LCJUb29sQ2FsbHMiOlsicmVhZC1maWxlIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjBUMjA6NDc6NTEuNjI1NDIwNzU0WiIsIlNlcSI6MjAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1NDIwNTU3NSwiRXJyb3IiOiJubyBtYXRjaGVzIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiZHNhX3JlZ2lzdGVyX3N3aXRjaFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC9kc2EvbXQ3NTMwXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcImVycm9yXCI6IFwibm8gbWF0Y2hlc1wiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yMFQyMDo0Nzo1MS42Nzk2MzE0MDlaIiwiU2VxIjoyMSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6Mzg1MjgzMTU5OSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IGludGVycHJldGF0aW9uIG9mIHRob3NlIHRob3VnaHRzLCBzdW1tYXJpemVkIGZyb20gYSBmaXJzdC1wZXJzb24gZXhwZXJ0IHBlcnNwZWN0aXZlOlxuXG4qKkludmVzdGlnYXRpbmcgU3dpdGNoIERyaXZlciBSZWdpc3RyYXRpb24qKlxuXG5SaWdodCwgc28gSSBuZWVkIHRvIGRpZyBpbnRvIGhvdyB0aGlzIHN3aXRjaCBkcml2ZXIgaXMgYmVpbmcgcmVnaXN0ZXJlZC4gU2luY2Ugd2UncmUgZGVhbGluZyB3aXRoIGEgTWVkaWFUZWsgTVQ3NTMwLWJhc2VkIHN3aXRjaCwgSSdtIGdvaW5nIHRvIHN0YXJ0IGJ5IGV4YW1pbmluZyB0aGUgY29yZSBkcml2ZXIgZmlsZXMuIFNwZWNpZmljYWxseSwgSSBuZWVkIHRvIGNoZWNrIGBtdDc1MzAtbWRpby5jYCBhbmQgYG10NzUzMC1tbWlvLmNgLiBUaGUgY3JpdGljYWwgZnVuY3Rpb24gSSdtIGxvb2tpbmcgZm9yIGluIGVpdGhlciBvciBib3RoIG9mIHRoZXNlIGZpbGVzIHdpbGwgYmUgYGRzYV9yZWdpc3Rlcl9zd2l0Y2hgLiBUaGF0J3MgdGhlIGtleSB0byB1bmRlcnN0YW5kaW5nIGhvdyB0aGUgc3dpdGNoIGl0c2VsZiBpcyBpbnRlZ3JhdGVkIGludG8gdGhlIERTQSBmcmFtZXdvcmsgYW5kIGluaXRpYWxpemVkIHdpdGhpbiB0aGUga2VybmVsLiBJJ2xsIGJlIGxvb2tpbmcgYXQgdGhlIGFyZ3VtZW50cyBpdCB0YWtlcywgdGhlIHNlcXVlbmNlIG9mIG9wZXJhdGlvbnMgYmVmb3JlIGFuZCBhZnRlciBpdCdzIGNhbGxlZCwgYW5kIGhvdyBpdCBoYW5kbGVzIHBvdGVudGlhbCBlcnJvcnMuIFRoaXMgd2lsbCBoZWxwIG1lIHVuZGVyc3RhbmQgdGhlIGRyaXZlcidzIG92ZXJhbGwgaW5pdGlhbGl6YXRpb24gcHJvY2Vzcy5cblxuXG4iLCJJbnB1dFRva2VucyI6MTExMTQsIk91dHB1dFRva2VucyI6NDMsIk91dHB1dFRob3VnaHRzVG9rZW5zIjozOCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0yMFQyMDo0Nzo1NS41MzI0NjUzNjhaIiwiU2VxIjoyMiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQ0OTg1MTM1LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImRzYV9yZWdpc3Rlcl9zd2l0Y2hcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvZHNhL210NzUzMC1tZGlvLmNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvZHNhL210NzUzMC1tZGlvLmM9MTU1PW10NzUzMF9wcm9iZShzdHJ1Y3QgbWRpb19kZXZpY2UgKm1kaW9kZXYpXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXQ3NTMwLW1kaW8uYy0yMTctXFxuZHJpdmVycy9uZXQvZHNhL210NzUzMC1tZGlvLmM6MjE4OlxcdHJldHVybiBkc2FfcmVnaXN0ZXJfc3dpdGNoKHByaXYtXFx1MDAzZWRzKTtcXG5kcml2ZXJzL25ldC9kc2EvbXQ3NTMwLW1kaW8uYy0yMTktfVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yMFQyMDo0Nzo1NS41Nzc0NTQzODNaIiwiU2VxIjoyMywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDEyOTQzNDg3NywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiSGVyZSdzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2U6XG5cbioqRGl2aW5nIGludG8gdGhlIE1UNzUzMCBQcm9iZSBGdW5jdGlvbioqXG5cbk9rYXksIHRpbWUgdG8gZ2V0IG15IGhhbmRzIGRpcnR5LiBJIG5lZWQgdG8gdGFrZSBhIGxvb2sgYXQgdGhlIGBtdDc1MzBfcHJvYmVgIGZ1bmN0aW9uLiBTcGVjaWZpY2FsbHksIEknbSBoZWFkaW5nIG92ZXIgdG8gYG10NzUzMC1tZGlvLmNgLiBUaGlzIGlzIHdoZXJlIHRoZSBpbml0aWFsIGJyaW5nLXVwIGxvZ2ljIHJlc2lkZXMsIHNvIEknbSBleHBlY3RpbmcgdG8gZmluZCB0aGUgc3RhbmRhcmQgZGV2aWNlIHJlZ2lzdHJhdGlvbiwgcmVzb3VyY2UgYWxsb2NhdGlvbiwgYW5kIGxpa2VseSBzb21lIGJhc2ljIGhhcmR3YXJlIGluaXRpYWxpemF0aW9uIHNlcXVlbmNlcy4gSSdtIGtlZW4gdG8gc2VlIGhvdyB0aGUgTURJTyBidXMgaXMgYmVpbmcgaGFuZGxlZCDigJMgaG93IHRoZXkncmUgYWNjZXNzaW5nIHRoZSBQSFkgcmVnaXN0ZXJzIGFuZCBzZXR0aW5nIHVwIGNvbW11bmljYXRpb24uIEdpdmVuIHRoZSBjb21wbGV4aXR5IG9mIHRoZXNlIHN3aXRjaCBjaGlwcywgSSdsbCBiZSBrZWVwaW5nIGFuIGV5ZSBvdXQgZm9yIHBvdGVudGlhbCBwaXRmYWxscyByZWxhdGVkIHRvIGNsb2NrIGNvbmZpZ3VyYXRpb24sIGludGVycnVwdCBoYW5kbGluZywgYW5kIGFueSBxdWlya3kgTWVkaWFUZWstc3BlY2lmaWMgcmVnaXN0ZXIgc2V0dGluZ3MgdGhhdCBtaWdodCBuZWVkIGNhcmVmdWwgYXR0ZW50aW9uLiBJIHdhbnQgdG8gc2VlIGhvdyB0aGUgcHJvYmUgaGFuZGxlcyBkaWZmZXJlbnQgcmV2aXNpb25zIG9mIHRoZSBNVDc1MzAgYXMgd2VsbCwgaWYgdGhleSBhcmUgbWFraW5nIHRoYXQga2luZCBvZiBkaXN0aW5jdGlvbiB3aXRoaW4gdGhlIGNvZGUuIExldCdzIGRpZyBpbiBhbmQgc2VlIHdoYXQncyB3aGF0LlxuXG5cbiIsIklucHV0VG9rZW5zIjoxMTUzMSwiT3V0cHV0VG9rZW5zIjo0NSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjI2LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTIwVDIwOjQ3OjU5LjcwNjg5MTI1WiIsIlNlcSI6MjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InJlYWQtZmlsZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjgxNzUwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRmlsZVwiOiBcImRyaXZlcnMvbmV0L2RzYS9tdDc1MzAtbWRpby5jXCIsXG4gIFwiRmlyc3RMaW5lXCI6IDE1NSxcbiAgXCJMaW5lQ291bnRcIjogNjVcbn0iLCJSZXN1bHRzIjoie1xuICBcIkNvbnRlbnRzXCI6IFwiIDE1NTpcXHRtdDc1MzBfcHJvYmUoc3RydWN0IG1kaW9fZGV2aWNlICptZGlvZGV2KVxcbiAxNTY6XFx0e1xcbiAxNTc6XFx0XFx0c3RydWN0IG10NzUzMF9wcml2ICpwcml2O1xcbiAxNTg6XFx0XFx0c3RydWN0IGRldmljZV9ub2RlICpkbjtcXG4gMTU5OlxcdFxcdGludCByZXQ7XFxuIDE2MDpcXHRcXG4gMTYxOlxcdFxcdGRuID0gbWRpb2Rldi1cXHUwMDNlZGV2Lm9mX25vZGU7XFxuIDE2MjpcXHRcXG4gMTYzOlxcdFxcdHByaXYgPSBkZXZtX2t6YWxsb2MoXFx1MDAyNm1kaW9kZXYtXFx1MDAzZWRldiwgc2l6ZW9mKCpwcml2KSwgR0ZQX0tFUk5FTCk7XFxuIDE2NDpcXHRcXHRpZiAoIXByaXYpXFxuIDE2NTpcXHRcXHRcXHRyZXR1cm4gLUVOT01FTTtcXG4gMTY2OlxcdFxcbiAxNjc6XFx0XFx0cHJpdi1cXHUwMDNlYnVzID0gbWRpb2Rldi1cXHUwMDNlYnVzO1xcbiAxNjg6XFx0XFx0cHJpdi1cXHUwMDNlZGV2ID0gXFx1MDAyNm1kaW9kZXYtXFx1MDAzZWRldjtcXG4gMTY5OlxcdFxcdHByaXYtXFx1MDAzZW1kaW9kZXYgPSBtZGlvZGV2O1xcbiAxNzA6XFx0XFxuIDE3MTpcXHRcXHRyZXQgPSBtdDc1MzBfcHJvYmVfY29tbW9uKHByaXYpO1xcbiAxNzI6XFx0XFx0aWYgKHJldClcXG4gMTczOlxcdFxcdFxcdHJldHVybiByZXQ7XFxuIDE3NDpcXHRcXG4gMTc1OlxcdFxcdC8qIFVzZSBtZWRhdGVrLG1jbSBwcm9wZXJ0eSB0byBkaXN0aW5ndWlzaCBoYXJkd2FyZSB0eXBlIHRoYXQgd291bGRcXG4gMTc2OlxcdFxcdCAqIGNhdXNlIGEgbGl0dGxlIGJpdCBkaWZmZXJlbmNlcyBvbiBwb3dlci1vbiBzZXF1ZW5jZS5cXG4gMTc3OlxcdFxcdCAqIE5vdCBNQ00gdGhhdCBpbmRpY2F0ZXMgc3dpdGNoIHdvcmtzIGFzIHRoZSByZW1vdGUgc3RhbmRhbG9uZVxcbiAxNzg6XFx0XFx0ICogaW50ZWdyYXRlZCBjaXJjdWl0IHNvIHRoZSBHUElPIHBpbiB3b3VsZCBiZSB1c2VkIHRvIGNvbXBsZXRlXFxuIDE3OTpcXHRcXHQgKiB0aGUgcmVzZXQsIG90aGVyd2lzZSBtZW1vcnktbWFwcGVkIHJlZ2lzdGVyIGFjY2Vzc2luZyB1c2VkXFxuIDE4MDpcXHRcXHQgKiB0aHJvdWdoIHN5c2NvbiBwcm92aWRlcyBpbiB0aGUgY2FzZSBvZiBNQ00uXFxuIDE4MTpcXHRcXHQgKi9cXG4gMTgyOlxcdFxcdHByaXYtXFx1MDAzZW1jbSA9IG9mX3Byb3BlcnR5X3JlYWRfYm9vbChkbiwgXFxcIm1lZGlhdGVrLG1jbVxcXCIpO1xcbiAxODM6XFx0XFx0aWYgKHByaXYtXFx1MDAzZW1jbSkge1xcbiAxODQ6XFx0XFx0XFx0ZGV2X2luZm8oXFx1MDAyNm1kaW9kZXYtXFx1MDAzZWRldiwgXFxcIk1UNzUzMCBhZGFwdHMgYXMgbXVsdGktY2hpcCBtb2R1bGVcXFxcblxcXCIpO1xcbiAxODU6XFx0XFxuIDE4NjpcXHRcXHRcXHRwcml2LVxcdTAwM2Vyc3RjID0gZGV2bV9yZXNldF9jb250cm9sX2dldChcXHUwMDI2bWRpb2Rldi1cXHUwMDNlZGV2LCBcXFwibWNtXFxcIik7XFxuIDE4NzpcXHRcXHRcXHRpZiAoSVNfRVJSKHByaXYtXFx1MDAzZXJzdGMpKSB7XFxuIDE4ODpcXHRcXHRcXHRcXHRkZXZfZXJyKFxcdTAwMjZtZGlvZGV2LVxcdTAwM2VkZXYsIFxcXCJDb3VsZG4ndCBnZXQgb3VyIHJlc2V0IGxpbmVcXFxcblxcXCIpO1xcbiAxODk6XFx0XFx0XFx0XFx0cmV0dXJuIFBUUl9FUlIocHJpdi1cXHUwMDNlcnN0Yyk7XFxuIDE5MDpcXHRcXHRcXHR9XFxuIDE5MTpcXHRcXHR9IGVsc2Uge1xcbiAxOTI6XFx0XFx0XFx0cHJpdi1cXHUwMDNlcmVzZXQgPSBkZXZtX2dwaW9kX2dldF9vcHRpb25hbChcXHUwMDI2bWRpb2Rldi1cXHUwMDNlZGV2LCBcXFwicmVzZXRcXFwiLFxcbiAxOTM6XFx0XFx0XFx0XFx0XFx0XFx0XFx0ICAgICAgR1BJT0RfT1VUX0xPVyk7XFxuIDE5NDpcXHRcXHRcXHRpZiAoSVNfRVJSKHByaXYtXFx1MDAzZXJlc2V0KSkge1xcbiAxOTU6XFx0XFx0XFx0XFx0ZGV2X2VycihcXHUwMDI2bWRpb2Rldi1cXHUwMDNlZGV2LCBcXFwiQ291bGRuJ3QgZ2V0IG91ciByZXNldCBsaW5lXFxcXG5cXFwiKTtcXG4gMTk2OlxcdFxcdFxcdFxcdHJldHVybiBQVFJfRVJSKHByaXYtXFx1MDAzZXJlc2V0KTtcXG4gMTk3OlxcdFxcdFxcdH1cXG4gMTk4OlxcdFxcdH1cXG4gMTk5OlxcdFxcbiAyMDA6XFx0XFx0aWYgKHByaXYtXFx1MDAzZWlkID09IElEX01UNzUzMCkge1xcbiAyMDE6XFx0XFx0XFx0cHJpdi1cXHUwMDNlY29yZV9wd3IgPSBkZXZtX3JlZ3VsYXRvcl9nZXQoXFx1MDAyNm1kaW9kZXYtXFx1MDAzZWRldiwgXFxcImNvcmVcXFwiKTtcXG4gMjAyOlxcdFxcdFxcdGlmIChJU19FUlIocHJpdi1cXHUwMDNlY29yZV9wd3IpKVxcbiAyMDM6XFx0XFx0XFx0XFx0cmV0dXJuIFBUUl9FUlIocHJpdi1cXHUwMDNlY29yZV9wd3IpO1xcbiAyMDQ6XFx0XFxuIDIwNTpcXHRcXHRcXHRwcml2LVxcdTAwM2Vpb19wd3IgPSBkZXZtX3JlZ3VsYXRvcl9nZXQoXFx1MDAyNm1kaW9kZXYtXFx1MDAzZWRldiwgXFxcImlvXFxcIik7XFxuIDIwNjpcXHRcXHRcXHRpZiAoSVNfRVJSKHByaXYtXFx1MDAzZWlvX3B3cikpXFxuIDIwNzpcXHRcXHRcXHRcXHRyZXR1cm4gUFRSX0VSUihwcml2LVxcdTAwM2Vpb19wd3IpO1xcbiAyMDg6XFx0XFx0fVxcbiAyMDk6XFx0XFxuIDIxMDpcXHRcXHRwcml2LVxcdTAwM2VyZWdtYXAgPSBkZXZtX3JlZ21hcF9pbml0KHByaXYtXFx1MDAzZWRldiwgXFx1MDAyNm10NzUzMF9yZWdtYXBfYnVzLCBwcml2LFxcbiAyMTE6XFx0XFx0XFx0XFx0XFx0XFx0XFx1MDAyNnJlZ21hcF9jb25maWcpO1xcbiAyMTI6XFx0XFx0aWYgKElTX0VSUihwcml2LVxcdTAwM2VyZWdtYXApKVxcbiAyMTM6XFx0XFx0XFx0cmV0dXJuIFBUUl9FUlIocHJpdi1cXHUwMDNlcmVnbWFwKTtcXG4gMjE0OlxcdFxcbiAyMTU6XFx0XFx0aWYgKHByaXYtXFx1MDAzZWlkID09IElEX01UNzUzMSlcXG4gMjE2OlxcdFxcdFxcdHByaXYtXFx1MDAzZWNyZWF0ZV9zZ21paSA9IG10NzUzMV9jcmVhdGVfc2dtaWk7XFxuIDIxNzpcXHRcXG4gMjE4OlxcdFxcdHJldHVybiBkc2FfcmVnaXN0ZXJfc3dpdGNoKHByaXYtXFx1MDAzZWRzKTtcXG4gMjE5OlxcdH1cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjBUMjA6NDc6NTkuNzA2OTc0MzVaIiwiU2VxIjoyNSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6ODQxNTczOTMwMSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipNeSBBc3Nlc3NtZW50IG9mIHRoZSBNVDc1MzAgRHJpdmVyIGFuZCBTeXprYWxsZXIncyBQb3RlbnRpYWwqKlxuXG5Pa2F5LCBzbyBJJ20gdGhpbmtpbmcgYWJvdXQgaG93IHRoZSBgbXQ3NTMwYCBzd2l0Y2ggZ2V0cyBpbml0aWFsaXplZCB3aXRoaW4gdGhlIERTQSBmcmFtZXdvcmsuIEl0IHNlZW1zIGxpa2UgYG10NzUzMF9wcm9iZWAgaXMgdGhlIHN0YXJ0aW5nIHBvaW50LCByZWdpc3RlcmluZyB0aGUgc3dpdGNoLiBUaGVuLCBEU0EsIGFzIGV4cGVjdGVkLCBjYWxscyBgbXQ3NTMwX3NldHVwYCB0aHJvdWdoIGBwcml2LVx1MDAzZWluZm8tXHUwMDNlc3dfc2V0dXAoZHMpYC4gVGhhdCBtYWtlcyBzZW5zZS4gTm93LCBgbXQ3NTMwX3NldHVwYCByZWxpZXMgb24gYG10NzUzMF9yZWFkYCBhbmQgYG10NzUzMF93cml0ZWAgdG8gaW50ZXJhY3Qgd2l0aCB0aGUgaGFyZHdhcmUsIHVzaW5nIHRoZSBNRElPIGJ1cy5cblxuTXkgaW1tZWRpYXRlIGNvbmNlcm4gaXMgaGFyZHdhcmUgcHJlc2VuY2UuIElmIHRoZSBNRElPIGJ1cyBpc24ndCBjb25uZWN0ZWQgdG8gYSByZWFsIGRldmljZSwgdGhvc2UgcmVhZC93cml0ZSBvcGVyYXRpb25zIHdpbGwgZWl0aGVyIGZhaWwgb3IsIHdvcnNlLCByZXR1cm4gcmFuZG9tIGdhcmJhZ2UuIFRoYXQgaW1tZWRpYXRlbHkgbWFrZXMgbWUgY29uc2lkZXIgc3l6a2FsbGVyLiBEb2VzIGl0IGhhdmUgYSBtZWNoYW5pc20gdG8gaW5qZWN0IG9yIGVtdWxhdGUgTURJTyBkZXZpY2VzPyBJIGtub3cgc3l6a2FsbGVyIGlzIGZhbnRhc3RpYyBmb3IgZnV6emluZyBhbmQgaGFzIGRlZXAga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwsIGJ1dCBJIGRvbid0IHJlY2FsbCBzZWVpbmcgZ2VuZXJhbCBNRElPIGRldmljZSBpbmplY3Rpb24gY2FwYWJpbGl0aWVzLiBJdCBjYW4gaW5qZWN0IFVTQiwgUENJLCBhbmQgc29tZSB2aXJ0dWFsIG5ldCBkZXZpY2VzLCBidXQgTURJTyBzZWVtcyBkaWZmZXJlbnQuIEkgdGhvdWdodCBJIHJlbWVtYmVyZWQgc29tZXRoaW5nIGFib3V0IGxvYWRpbmcgZGV2aWNlIHRyZWVzIHdpdGggYHN5el9tb3VudF9pbWFnZWAgb3IgYSBzaW1pbGFyIGZ1bmN0aW9uLiBCdXQgbm8sIHN5emthbGxlciBkb2Vzbid0IGdlbmVyYWxseSBsb2FkIGFyYml0cmFyeSBkZXZpY2UgdHJlZXMgb24gdGhlIGZseSB0byBwcm9iZSBwbGF0Zm9ybS9NRElPIGRyaXZlcnMgdW5sZXNzIGl0J3MgYSB2ZXJ5IHNwZWNpZmljIHRlc3QgY2FzZS5cblxuVGhlbiwgdGhlcmUgYXJlIHRoZSBzeXprYWxsZXIgY2FsbHMgbGlrZSBgc3l6X2dlbmV0bGlua19nZXRfZmFtaWx5X2lkYC4gSSB3b25kZXIgaWYgdGhlcmUgYXJlIGFueSBzeXprYWxsZXIgZGVzY3JpcHRpb25zIGZvciBNRElPIG9yIERTQSB0aGF0IG1pZ2h0IHNoZWQgc29tZSBsaWdodCBvbiB0aGUgc3ViamVjdC4gSSBuZWVkIHRvIGRldGVybWluZSBpZiB0aGUgYG10NzUzMGAgZHJpdmVyIG9yIHRoZSBNRElPIGJ1cyBpdHNlbGYgaXMgcmVhY2hhYmxlIHRocm91Z2ggc3l6a2FsbGVyLiBJIHNob3VsZCBjaGVjayBpZiB0aGVyZSBhcmUgYW55IHN5emthbGxlciBkZWZpbml0aW9ucyByZWxhdGVkIHRvIHRob3NlIGFyZWFzLlxuXG5cbiIsIklucHV0VG9rZW5zIjoxMjkyNiwiT3V0cHV0VG9rZW5zIjoyOSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjI1OCwiVG9vbENhbGxzIjpbInJlYWQtZmlsZSJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTIwVDIwOjQ4OjA4LjEyMjcxNTgyMVoiLCJTZXEiOjI2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NTEyMTMzNjYsIkVycm9yIjoibm8gbWF0Y2hlcyIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIm10NzUzMFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJuZXQvZHNhXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcImVycm9yXCI6IFwibm8gbWF0Y2hlc1wiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yMFQyMDo0ODowOC4xNzM5MzQ5MDdaIiwiU2VxIjoyNywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NjUxMTExNzQ0NCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiSGVyZSdzIG15IGF0dGVtcHQgYXQgc3VtbWFyaXppbmcgdGhlIHRob3VnaHQgcHJvY2VzcywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZTpcblxuKipDaGVja2luZyBmb3IgRXhpc3RpbmcgU3l6a2FsbGVyIENvdmVyYWdlIG9mIERTQSoqXG5cbk9rYXksIGZpcnN0IHRoaW5ncyBmaXJzdCwgYmVmb3JlIEkgZGl2ZSBpbnRvIGFueSBuZXcgRFNBIGZ1enppbmcgYWR2ZW50dXJlcywgSSBuZWVkIHRvIHNlZSB3aGVyZSB3ZSBzdGFuZCB3aXRoIGV4aXN0aW5nIHN5emthbGxlciBjb3ZlcmFnZS4gSSdtIGFzc3VtaW5nIHRoZXJlICpzaG91bGQqIGJlIHNvbWUgZXhpc3RpbmcgZGVzY3JpcHRpb25zLCBnaXZlbiB0aGUgdWJpcXVpdHkgb2YgRFNBIGltcGxlbWVudGF0aW9ucy4gQnV0IEkgbmVlZCB0byBiZSBzdXJlIGJlZm9yZSBJIHN0YXJ0IGZyb20gc2NyYXRjaC5cblxuU28sIEknbSB0aGlua2luZywgXCJMZXQncyBjaGVjayB0aGUgc3l6a2FsbGVyIHJlcG9zaXRvcnkgYW5kIGFueSByZWxhdGVkIGZ1enppbmcgaW5mcmFzdHJ1Y3R1cmUuIExldCdzIHN0YXJ0IHdpdGggYSBmb2N1c2VkIGtleXdvcmQgc2VhcmNoIG9uIFwiRFNBXCIgdG8gc2VlIGlmIGFueSByZWxldmFudCBzeXNjYWxsIGRlZmluaXRpb25zLCByZXNvdXJjZSBkZWZpbml0aW9ucywgb3IgZXZlbiBleGlzdGluZyB0ZXN0IGNhc2VzIGp1bXAgb3V0LiBJIGFsc28gbmVlZCB0byBjb25zaWRlciBvdGhlciByZWxhdGVkIGtleXdvcmRzIG9yIGFiYnJldmlhdGlvbnMgbGlrZSBcImNyeXB0b1wiLCBcInNlY3VyaXR5XCIsIG9yIHNwZWNpZmljIERTQS1yZWxhdGVkIGZ1bmN0aW9ucywgYmVjYXVzZSBzeXprYWxsZXIncyBjb3ZlcmFnZSBjYW4gc29tZXRpbWVzIGJlIGEgYml0IGZyYWdtZW50ZWQuIE1heWJlIHRoZXJlJ3MgRFNBIGltcGxlbWVudGVkIGFzIGEgcGFydCBvZiBhIGxhcmdlciBjcnlwdG8tbW9kdWxlOyBJIG5lZWQgdG8ga2VlcCB0aGF0IGluIG1pbmQuIFVsdGltYXRlbHksIHRoaXMgd2lsbCBnaXZlIG1lIGEgYmFzZWxpbmUgZm9yOiAxKSBXaGF0IGhhcyBhbHJlYWR5IGJlZW4gZG9uZSwgMikgV2hpY2ggRFNBLXJlbGF0ZWQgcHJpbWl0aXZlcyBhcmUgdGFyZ2V0ZWQsIGFuZCAzKSBXaGV0aGVyIHRoZSBleGlzdGluZyBjb3ZlcmFnZSBpcyBicm9hZCBlbm91Z2ggdG8gYmUgYSBzb2xpZCBzdGFydGluZyBwb2ludCBmb3IgYSBtb3JlIGZvY3VzZWQgZnV6emluZyBjYW1wYWlnbi4gRGVwZW5kaW5nIG9uIGhvdyBtdWNoIEkgZmluZCwgdGhpcyBwcmVsaW1pbmFyeSBjaGVjayBpcyBnb2luZyB0byBoZWF2aWx5IGluZmx1ZW5jZSB0aGUgZGlyZWN0aW9uIEkgdGFrZS5cblxuXG4iLCJJbnB1dFRva2VucyI6MTM2MzIsIk91dHB1dFRva2VucyI6MjYsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxNSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0yMFQyMDo0ODoxNC42ODUwNTUwMjFaIiwiU2VxIjoyOCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQ3OTAyMjA0LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImRzYVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJuZXQvZHNhXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIlxcbkZ1bGwgb3V0cHV0IGlzIHRvbyBsb25nLCBzaG93aW5nIDUwMCBvdXQgb2YgODEwNCBsaW5lcy5cXG5Vc2UgbW9yZSBwcmVjaXNlIGV4cHJlc3Npb24gaWYgcG9zc2libGUuXFxuXFxubmV0L2RzYS9NYWtlZmlsZT02PWVuZGlmXFxuLS1cXG5uZXQvZHNhL01ha2VmaWxlLTgtIyB0aGUgY29yZVxcbm5ldC9kc2EvTWFrZWZpbGU6OTpvYmotJChDT05GSUdfTkVUX0RTQSkgKz0gZHNhX2NvcmUub1xcbm5ldC9kc2EvTWFrZWZpbGU6MTA6ZHNhX2NvcmUteSArPSBcXFxcXFxubmV0L2RzYS9NYWtlZmlsZS0xMS1cXHRjb25kdWl0Lm8gXFxcXFxcbm5ldC9kc2EvTWFrZWZpbGUtMTItXFx0ZGV2bGluay5vIFxcXFxcXG5uZXQvZHNhL01ha2VmaWxlOjEzOlxcdGRzYS5vIFxcXFxcXG5uZXQvZHNhL01ha2VmaWxlLTE0LVxcdG5ldGxpbmsubyBcXFxcXFxuLS1cXG5uZXQvZHNhL01ha2VmaWxlPTI0PW9iai0kKENPTkZJR19ORVRfRFNBX1RBR19CUkNNX0NPTU1PTikgKz0gdGFnX2JyY20ub1xcbm5ldC9kc2EvTWFrZWZpbGU6MjU6b2JqLSQoQ09ORklHX05FVF9EU0FfVEFHX0RTQV9DT01NT04pICs9IHRhZ19kc2Eub1xcbm5ldC9kc2EvTWFrZWZpbGUtMjYtb2JqLSQoQ09ORklHX05FVF9EU0FfVEFHX0dTV0lQKSArPSB0YWdfZ3N3aXAub1xcbi0tXFxubmV0L2RzYS9jb25kdWl0LmMtMTEtI2luY2x1ZGUgXFx1MDAzY2xpbnV4L25ldGxpbmsuaFxcdTAwM2VcXG5uZXQvZHNhL2NvbmR1aXQuYzoxMjojaW5jbHVkZSBcXHUwMDNjbmV0L2RzYS5oXFx1MDAzZVxcbm5ldC9kc2EvY29uZHVpdC5jLTEzLSNpbmNsdWRlIFxcdTAwM2NuZXQvbmV0ZGV2X2xvY2suaFxcdTAwM2VcXG4tLVxcbm5ldC9kc2EvY29uZHVpdC5jLTE1LSNpbmNsdWRlIFxcXCJjb25kdWl0LmhcXFwiXFxubmV0L2RzYS9jb25kdWl0LmM6MTY6I2luY2x1ZGUgXFxcImRzYS5oXFxcIlxcbm5ldC9kc2EvY29uZHVpdC5jLTE3LSNpbmNsdWRlIFxcXCJwb3J0LmhcXFwiXFxuLS1cXG5uZXQvZHNhL2NvbmR1aXQuYy0xOS1cXG5uZXQvZHNhL2NvbmR1aXQuYzoyMDpzdGF0aWMgaW50IGRzYV9jb25kdWl0X2dldF9yZWdzX2xlbihzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KVxcbm5ldC9kc2EvY29uZHVpdC5jLTIxLXtcXG5uZXQvZHNhL2NvbmR1aXQuYzoyMjpcXHRzdHJ1Y3QgZHNhX3BvcnQgKmNwdV9kcCA9IGRldi1cXHUwMDNlZHNhX3B0cjtcXG5uZXQvZHNhL2NvbmR1aXQuYy0yMy1cXHRjb25zdCBzdHJ1Y3QgZXRodG9vbF9vcHMgKm9wcyA9IGNwdV9kcC1cXHUwMDNlb3JpZ19ldGh0b29sX29wcztcXG5uZXQvZHNhL2NvbmR1aXQuYzoyNDpcXHRzdHJ1Y3QgZHNhX3N3aXRjaCAqZHMgPSBjcHVfZHAtXFx1MDAzZWRzO1xcbm5ldC9kc2EvY29uZHVpdC5jLTI1LVxcdGludCBwb3J0ID0gY3B1X2RwLVxcdTAwM2VpbmRleDtcXG4tLVxcbm5ldC9kc2EvY29uZHVpdC5jLTQ4LVxcbm5ldC9kc2EvY29uZHVpdC5jOjQ5OnN0YXRpYyB2b2lkIGRzYV9jb25kdWl0X2dldF9yZWdzKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsXFxubmV0L2RzYS9jb25kdWl0LmMtNTAtXFx0XFx0XFx0XFx0IHN0cnVjdCBldGh0b29sX3JlZ3MgKnJlZ3MsIHZvaWQgKmRhdGEpXFxubmV0L2RzYS9jb25kdWl0LmMtNTEte1xcbm5ldC9kc2EvY29uZHVpdC5jOjUyOlxcdHN0cnVjdCBkc2FfcG9ydCAqY3B1X2RwID0gZGV2LVxcdTAwM2Vkc2FfcHRyO1xcbm5ldC9kc2EvY29uZHVpdC5jLTUzLVxcdGNvbnN0IHN0cnVjdCBldGh0b29sX29wcyAqb3BzID0gY3B1X2RwLVxcdTAwM2VvcmlnX2V0aHRvb2xfb3BzO1xcbm5ldC9kc2EvY29uZHVpdC5jOjU0OlxcdHN0cnVjdCBkc2Ffc3dpdGNoICpkcyA9IGNwdV9kcC1cXHUwMDNlZHM7XFxubmV0L2RzYS9jb25kdWl0LmMtNTUtXFx0c3RydWN0IGV0aHRvb2xfZHJ2aW5mbyAqY3B1X2luZm87XFxuLS1cXG5uZXQvZHNhL2NvbmR1aXQuYy02OS1cXHRjcHVfaW5mbyA9IChzdHJ1Y3QgZXRodG9vbF9kcnZpbmZvICopZGF0YTtcXG5uZXQvZHNhL2NvbmR1aXQuYzo3MDpcXHRzdHJzY3B5KGNwdV9pbmZvLVxcdTAwM2Vkcml2ZXIsIFxcXCJkc2FcXFwiLCBzaXplb2YoY3B1X2luZm8tXFx1MDAzZWRyaXZlcikpO1xcbm5ldC9kc2EvY29uZHVpdC5jLTcxLVxcdGRhdGEgKz0gc2l6ZW9mKCpjcHVfaW5mbyk7XFxuLS1cXG5uZXQvZHNhL2NvbmR1aXQuYy04My1cXG5uZXQvZHNhL2NvbmR1aXQuYzo4NDpzdGF0aWMgc3NpemVfdCBkc2FfY29uZHVpdF9hcHBlbmRfcG9ydF9zdGF0cyhzdHJ1Y3QgZHNhX3N3aXRjaCAqZHMsIGludCBwb3J0LFxcbm5ldC9kc2EvY29uZHVpdC5jLTg1LVxcdFxcdFxcdFxcdFxcdCAgICAgdTY0ICpkYXRhLCBzaXplX3Qgc3RhcnQpXFxuLS1cXG5uZXQvZHNhL2NvbmR1aXQuYy0xMDEtXFxubmV0L2RzYS9jb25kdWl0LmM6MTAyOnN0YXRpYyB2b2lkIGRzYV9jb25kdWl0X2dldF9ldGh0b29sX3N0YXRzKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsXFxubmV0L2RzYS9jb25kdWl0LmMtMTAzLVxcdFxcdFxcdFxcdFxcdCAgc3RydWN0IGV0aHRvb2xfc3RhdHMgKnN0YXRzLFxcbi0tXFxubmV0L2RzYS9jb25kdWl0LmMtMTA1LXtcXG5uZXQvZHNhL2NvbmR1aXQuYzoxMDY6XFx0c3RydWN0IGRzYV9wb3J0ICpkcCwgKmNwdV9kcCA9IGRldi1cXHUwMDNlZHNhX3B0cjtcXG5uZXQvZHNhL2NvbmR1aXQuYy0xMDctXFx0Y29uc3Qgc3RydWN0IGV0aHRvb2xfb3BzICpvcHMgPSBjcHVfZHAtXFx1MDAzZW9yaWdfZXRodG9vbF9vcHM7XFxubmV0L2RzYS9jb25kdWl0LmM6MTA4OlxcdHN0cnVjdCBkc2Ffc3dpdGNoX3RyZWUgKmRzdCA9IGNwdV9kcC1cXHUwMDNlZHN0O1xcbm5ldC9kc2EvY29uZHVpdC5jLTEwOS1cXHRpbnQgY291bnQsIG1jb3VudCA9IDA7XFxuLS1cXG5uZXQvZHNhL2NvbmR1aXQuYy0xMTYtXFx0bGlzdF9mb3JfZWFjaF9lbnRyeShkcCwgXFx1MDAyNmRzdC1cXHUwMDNlcG9ydHMsIGxpc3QpIHtcXG5uZXQvZHNhL2NvbmR1aXQuYzoxMTc6XFx0XFx0aWYgKCFkc2FfcG9ydF9pc19kc2EoZHApIFxcdTAwMjZcXHUwMDI2ICFkc2FfcG9ydF9pc19jcHUoZHApKVxcbm5ldC9kc2EvY29uZHVpdC5jLTExOC1cXHRcXHRcXHRjb250aW51ZTtcXG5uZXQvZHNhL2NvbmR1aXQuYy0xMTktXFxubmV0L2RzYS9jb25kdWl0LmM6MTIwOlxcdFxcdGNvdW50ID0gZHNhX2NvbmR1aXRfYXBwZW5kX3BvcnRfc3RhdHMoZHAtXFx1MDAzZWRzLCBkcC1cXHUwMDNlaW5kZXgsXFxubmV0L2RzYS9jb25kdWl0LmMtMTIxLVxcdFxcdFxcdFxcdFxcdFxcdCAgICAgIGRhdGEsIG1jb3VudCk7XFxuLS1cXG5uZXQvZHNhL2NvbmR1aXQuYy0xMjgtXFxubmV0L2RzYS9jb25kdWl0LmM6MTI5OnN0YXRpYyB2b2lkIGRzYV9jb25kdWl0X2dldF9ldGh0b29sX3BoeV9zdGF0cyhzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LFxcbm5ldC9kc2EvY29uZHVpdC5jLTEzMC1cXHRcXHRcXHRcXHRcXHQgICAgICBzdHJ1Y3QgZXRodG9vbF9zdGF0cyAqc3RhdHMsXFxuLS1cXG5uZXQvZHNhL2NvbmR1aXQuYy0xMzIte1xcbm5ldC9kc2EvY29uZHVpdC5jOjEzMzpcXHRzdHJ1Y3QgZHNhX3BvcnQgKmNwdV9kcCA9IGRldi1cXHUwMDNlZHNhX3B0cjtcXG5uZXQvZHNhL2NvbmR1aXQuYy0xMzQtXFx0Y29uc3Qgc3RydWN0IGV0aHRvb2xfb3BzICpvcHMgPSBjcHVfZHAtXFx1MDAzZW9yaWdfZXRodG9vbF9vcHM7XFxubmV0L2RzYS9jb25kdWl0LmM6MTM1OlxcdHN0cnVjdCBkc2Ffc3dpdGNoICpkcyA9IGNwdV9kcC1cXHUwMDNlZHM7XFxubmV0L2RzYS9jb25kdWl0LmMtMTM2LVxcdGludCBwb3J0ID0gY3B1X2RwLVxcdTAwM2VpbmRleDtcXG4tLVxcbm5ldC9kc2EvY29uZHVpdC5jLTE1NC1cXG5uZXQvZHNhL2NvbmR1aXQuYzoxNTU6c3RhdGljIHZvaWQgZHNhX2NvbmR1aXRfYXBwZW5kX3BvcnRfc3NldF9jb3VudChzdHJ1Y3QgZHNhX3N3aXRjaCAqZHMsIGludCBwb3J0LFxcbm5ldC9kc2EvY29uZHVpdC5jLTE1Ni1cXHRcXHRcXHRcXHRcXHQgICAgICAgaW50IHNzZXQsIGludCAqY291bnQpXFxuLS1cXG5uZXQvZHNhL2NvbmR1aXQuYy0xNjEtXFxubmV0L2RzYS9jb25kdWl0LmM6MTYyOnN0YXRpYyBpbnQgZHNhX2NvbmR1aXRfZ2V0X3NzZXRfY291bnQoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgaW50IHNzZXQpXFxubmV0L2RzYS9jb25kdWl0LmMtMTYzLXtcXG5uZXQvZHNhL2NvbmR1aXQuYzoxNjQ6XFx0c3RydWN0IGRzYV9wb3J0ICpkcCwgKmNwdV9kcCA9IGRldi1cXHUwMDNlZHNhX3B0cjtcXG5uZXQvZHNhL2NvbmR1aXQuYy0xNjUtXFx0Y29uc3Qgc3RydWN0IGV0aHRvb2xfb3BzICpvcHMgPSBjcHVfZHAtXFx1MDAzZW9yaWdfZXRodG9vbF9vcHM7XFxubmV0L2RzYS9jb25kdWl0LmM6MTY2OlxcdHN0cnVjdCBkc2Ffc3dpdGNoX3RyZWUgKmRzdCA9IGNwdV9kcC1cXHUwMDNlZHN0O1xcbm5ldC9kc2EvY29uZHVpdC5jLTE2Ny1cXHRpbnQgY291bnQgPSAwO1xcbi0tXFxubmV0L2RzYS9jb25kdWl0LmMtMTc4LVxcdGxpc3RfZm9yX2VhY2hfZW50cnkoZHAsIFxcdTAwMjZkc3QtXFx1MDAzZXBvcnRzLCBsaXN0KSB7XFxubmV0L2RzYS9jb25kdWl0LmM6MTc5OlxcdFxcdGlmICghZHNhX3BvcnRfaXNfZHNhKGRwKSBcXHUwMDI2XFx1MDAyNiAhZHNhX3BvcnRfaXNfY3B1KGRwKSlcXG5uZXQvZHNhL2NvbmR1aXQuYy0xODAtXFx0XFx0XFx0Y29udGludWU7XFxubmV0L2RzYS9jb25kdWl0LmMtMTgxLVxcbm5ldC9kc2EvY29uZHVpdC5jOjE4MjpcXHRcXHRkc2FfY29uZHVpdF9hcHBlbmRfcG9ydF9zc2V0X2NvdW50KGRwLVxcdTAwM2VkcywgZHAtXFx1MDAzZWluZGV4LCBzc2V0LFxcbm5ldC9kc2EvY29uZHVpdC5jLTE4My1cXHRcXHRcXHRcXHRcXHRcXHQgICBcXHUwMDI2Y291bnQpO1xcbi0tXFxubmV0L2RzYS9jb25kdWl0LmMtMTg4LVxcbm5ldC9kc2EvY29uZHVpdC5jOjE4OTpzdGF0aWMgc3NpemVfdCBkc2FfY29uZHVpdF9hcHBlbmRfcG9ydF9zdHJpbmdzKHN0cnVjdCBkc2Ffc3dpdGNoICpkcywgaW50IHBvcnQsXFxubmV0L2RzYS9jb25kdWl0LmMtMTkwLVxcdFxcdFxcdFxcdFxcdCAgICAgICB1MzIgc3RyaW5nc2V0LCB1OCAqZGF0YSxcXG4tLVxcbm5ldC9kc2EvY29uZHVpdC5jLTIyMS1cXG5uZXQvZHNhL2NvbmR1aXQuYzoyMjI6c3RhdGljIHZvaWQgZHNhX2NvbmR1aXRfZ2V0X3N0cmluZ3Moc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgdTMyIHN0cmluZ3NldCxcXG5uZXQvZHNhL2NvbmR1aXQuYy0yMjMtXFx0XFx0XFx0XFx0ICAgIHU4ICpkYXRhKVxcbm5ldC9kc2EvY29uZHVpdC5jLTIyNC17XFxubmV0L2RzYS9jb25kdWl0LmM6MjI1OlxcdHN0cnVjdCBkc2FfcG9ydCAqZHAsICpjcHVfZHAgPSBkZXYtXFx1MDAzZWRzYV9wdHI7XFxubmV0L2RzYS9jb25kdWl0LmMtMjI2LVxcdGNvbnN0IHN0cnVjdCBldGh0b29sX29wcyAqb3BzID0gY3B1X2RwLVxcdTAwM2VvcmlnX2V0aHRvb2xfb3BzO1xcbm5ldC9kc2EvY29uZHVpdC5jOjIyNzpcXHRzdHJ1Y3QgZHNhX3N3aXRjaF90cmVlICpkc3QgPSBjcHVfZHAtXFx1MDAzZWRzdDtcXG5uZXQvZHNhL2NvbmR1aXQuYy0yMjgtXFx0aW50IGNvdW50LCBtY291bnQgPSAwO1xcbi0tXFxubmV0L2RzYS9jb25kdWl0LmMtMjQ0LVxcdGxpc3RfZm9yX2VhY2hfZW50cnkoZHAsIFxcdTAwMjZkc3QtXFx1MDAzZXBvcnRzLCBsaXN0KSB7XFxubmV0L2RzYS9jb25kdWl0LmM6MjQ1OlxcdFxcdGlmICghZHNhX3BvcnRfaXNfZHNhKGRwKSBcXHUwMDI2XFx1MDAyNiAhZHNhX3BvcnRfaXNfY3B1KGRwKSlcXG5uZXQvZHNhL2NvbmR1aXQuYy0yNDYtXFx0XFx0XFx0Y29udGludWU7XFxubmV0L2RzYS9jb25kdWl0LmMtMjQ3LVxcbm5ldC9kc2EvY29uZHVpdC5jOjI0ODpcXHRcXHRjb3VudCA9IGRzYV9jb25kdWl0X2FwcGVuZF9wb3J0X3N0cmluZ3MoZHAtXFx1MDAzZWRzLCBkcC1cXHUwMDNlaW5kZXgsXFxubmV0L2RzYS9jb25kdWl0LmMtMjQ5LVxcdFxcdFxcdFxcdFxcdFxcdFxcdHN0cmluZ3NldCwgZGF0YSxcXG4tLVxcbm5ldC9kc2EvY29uZHVpdC5jLTI2MC0gKi9cXG5uZXQvZHNhL2NvbmR1aXQuYzoyNjE6aW50IF9fZHNhX2NvbmR1aXRfaHd0c3RhbXBfdmFsaWRhdGUoc3RydWN0IG5ldF9kZXZpY2UgKmRldixcXG5uZXQvZHNhL2NvbmR1aXQuYy0yNjItXFx0XFx0XFx0XFx0ICAgIGNvbnN0IHN0cnVjdCBrZXJuZWxfaHd0c3RhbXBfY29uZmlnICpjb25maWcsXFxuLS1cXG5uZXQvZHNhL2NvbmR1aXQuYy0yNjQte1xcbm5ldC9kc2EvY29uZHVpdC5jOjI2NTpcXHRzdHJ1Y3QgZHNhX3BvcnQgKmNwdV9kcCA9IGRldi1cXHUwMDNlZHNhX3B0cjtcXG5uZXQvZHNhL2NvbmR1aXQuYzoyNjY6XFx0c3RydWN0IGRzYV9zd2l0Y2ggKmRzID0gY3B1X2RwLVxcdTAwM2VkcztcXG5uZXQvZHNhL2NvbmR1aXQuYzoyNjc6XFx0c3RydWN0IGRzYV9zd2l0Y2hfdHJlZSAqZHN0O1xcbm5ldC9kc2EvY29uZHVpdC5jOjI2ODpcXHRzdHJ1Y3QgZHNhX3BvcnQgKmRwO1xcbm5ldC9kc2EvY29uZHVpdC5jLTI2OS1cXG4tLVxcbm5ldC9kc2EvY29uZHVpdC5jLTI3Mi1cXHRsaXN0X2Zvcl9lYWNoX2VudHJ5KGRwLCBcXHUwMDI2ZHN0LVxcdTAwM2Vwb3J0cywgbGlzdCkge1xcbm5ldC9kc2EvY29uZHVpdC5jOjI3MzpcXHRcXHRpZiAoZHNhX3BvcnRfc3VwcG9ydHNfaHd0c3RhbXAoZHApKSB7XFxubmV0L2RzYS9jb25kdWl0LmMtMjc0LVxcdFxcdFxcdE5MX1NFVF9FUlJfTVNHKGV4dGFjayxcXG4tLVxcbm5ldC9kc2EvY29uZHVpdC5jLTI4Mi1cXG5uZXQvZHNhL2NvbmR1aXQuYzoyODM6c3RhdGljIGludCBkc2FfY29uZHVpdF9ldGh0b29sX3NldHVwKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpXFxubmV0L2RzYS9jb25kdWl0LmMtMjg0LXtcXG5uZXQvZHNhL2NvbmR1aXQuYzoyODU6XFx0c3RydWN0IGRzYV9wb3J0ICpjcHVfZHAgPSBkZXYtXFx1MDAzZWRzYV9wdHI7XFxubmV0L2RzYS9jb25kdWl0LmM6Mjg2OlxcdHN0cnVjdCBkc2Ffc3dpdGNoICpkcyA9IGNwdV9kcC1cXHUwMDNlZHM7XFxubmV0L2RzYS9jb25kdWl0LmMtMjg3LVxcdHN0cnVjdCBldGh0b29sX29wcyAqb3BzO1xcbi0tXFxubmV0L2RzYS9jb25kdWl0LmMtMjk5LVxcbm5ldC9kc2EvY29uZHVpdC5jOjMwMDpcXHRvcHMtXFx1MDAzZWdldF9yZWdzX2xlbiA9IGRzYV9jb25kdWl0X2dldF9yZWdzX2xlbjtcXG5uZXQvZHNhL2NvbmR1aXQuYzozMDE6XFx0b3BzLVxcdTAwM2VnZXRfcmVncyA9IGRzYV9jb25kdWl0X2dldF9yZWdzO1xcbm5ldC9kc2EvY29uZHVpdC5jOjMwMjpcXHRvcHMtXFx1MDAzZWdldF9zc2V0X2NvdW50ID0gZHNhX2NvbmR1aXRfZ2V0X3NzZXRfY291bnQ7XFxubmV0L2RzYS9jb25kdWl0LmM6MzAzOlxcdG9wcy1cXHUwMDNlZ2V0X2V0aHRvb2xfc3RhdHMgPSBkc2FfY29uZHVpdF9nZXRfZXRodG9vbF9zdGF0cztcXG5uZXQvZHNhL2NvbmR1aXQuYzozMDQ6XFx0b3BzLVxcdTAwM2VnZXRfc3RyaW5ncyA9IGRzYV9jb25kdWl0X2dldF9zdHJpbmdzO1xcbm5ldC9kc2EvY29uZHVpdC5jOjMwNTpcXHRvcHMtXFx1MDAzZWdldF9ldGh0b29sX3BoeV9zdGF0cyA9IGRzYV9jb25kdWl0X2dldF9ldGh0b29sX3BoeV9zdGF0cztcXG5uZXQvZHNhL2NvbmR1aXQuYy0zMDYtXFxuLS1cXG5uZXQvZHNhL2NvbmR1aXQuYy0zMTEtXFxubmV0L2RzYS9jb25kdWl0LmM6MzEyOnN0YXRpYyB2b2lkIGRzYV9jb25kdWl0X2V0aHRvb2xfdGVhcmRvd24oc3RydWN0IG5ldF9kZXZpY2UgKmRldilcXG5uZXQvZHNhL2NvbmR1aXQuYy0zMTMte1xcbm5ldC9kc2EvY29uZHVpdC5jOjMxNDpcXHRzdHJ1Y3QgZHNhX3BvcnQgKmNwdV9kcCA9IGRldi1cXHUwMDNlZHNhX3B0cjtcXG5uZXQvZHNhL2NvbmR1aXQuYy0zMTUtXFxuLS1cXG5uZXQvZHNhL2NvbmR1aXQuYy0zMjctICovXFxubmV0L2RzYS9jb25kdWl0LmM6MzI4OnN0YXRpYyB2b2lkIGRzYV9jb25kdWl0X3NldF9wcm9taXNjdWl0eShzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBpbnQgaW5jKVxcbm5ldC9kc2EvY29uZHVpdC5jLTMyOS17XFxubmV0L2RzYS9jb25kdWl0LmM6MzMwOlxcdGNvbnN0IHN0cnVjdCBkc2FfZGV2aWNlX29wcyAqb3BzID0gZGV2LVxcdTAwM2Vkc2FfcHRyLVxcdTAwM2V0YWdfb3BzO1xcbm5ldC9kc2EvY29uZHVpdC5jLTMzMS1cXG4tLVxcbm5ldC9kc2EvY29uZHVpdC5jPTM0MD1zdGF0aWMgc3NpemVfdCB0YWdnaW5nX3Nob3coc3RydWN0IGRldmljZSAqZCwgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKmF0dHIsXFxuLS1cXG5uZXQvZHNhL2NvbmR1aXQuYy0zNDMtXFx0c3RydWN0IG5ldF9kZXZpY2UgKmRldiA9IHRvX25ldF9kZXYoZCk7XFxubmV0L2RzYS9jb25kdWl0LmM6MzQ0OlxcdHN0cnVjdCBkc2FfcG9ydCAqY3B1X2RwID0gZGV2LVxcdTAwM2Vkc2FfcHRyO1xcbm5ldC9kc2EvY29uZHVpdC5jLTM0NS1cXG5uZXQvZHNhL2NvbmR1aXQuYy0zNDYtXFx0cmV0dXJuIHN5c2ZzX2VtaXQoYnVmLCBcXFwiJXNcXFxcblxcXCIsXFxubmV0L2RzYS9jb25kdWl0LmM6MzQ3OlxcdFxcdCAgICAgICBkc2FfdGFnX3Byb3RvY29sX3RvX3N0cihjcHVfZHAtXFx1MDAzZXRhZ19vcHMpKTtcXG5uZXQvZHNhL2NvbmR1aXQuYy0zNDgtfVxcbi0tXFxubmV0L2RzYS9jb25kdWl0LmM9MzUwPXN0YXRpYyBzc2l6ZV90IHRhZ2dpbmdfc3RvcmUoc3RydWN0IGRldmljZSAqZCwgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKmF0dHIsXFxuLS1cXG5uZXQvZHNhL2NvbmR1aXQuYy0zNTIte1xcbm5ldC9kc2EvY29uZHVpdC5jOjM1MzpcXHRjb25zdCBzdHJ1Y3QgZHNhX2RldmljZV9vcHMgKm5ld190YWdfb3BzLCAqb2xkX3RhZ19vcHM7XFxubmV0L2RzYS9jb25kdWl0LmMtMzU0LVxcdGNvbnN0IGNoYXIgKmVuZCA9IHN0cmNocm51bChidWYsICdcXFxcbicpLCAqbmFtZTtcXG5uZXQvZHNhL2NvbmR1aXQuYy0zNTUtXFx0c3RydWN0IG5ldF9kZXZpY2UgKmRldiA9IHRvX25ldF9kZXYoZCk7XFxubmV0L2RzYS9jb25kdWl0LmM6MzU2OlxcdHN0cnVjdCBkc2FfcG9ydCAqY3B1X2RwID0gZGV2LVxcdTAwM2Vkc2FfcHRyO1xcbm5ldC9kc2EvY29uZHVpdC5jLTM1Ny1cXHRzaXplX3QgbGVuID0gZW5kIC0gYnVmO1xcbi0tXFxubmV0L2RzYS9jb25kdWl0LmMtMzY4LVxcdG9sZF90YWdfb3BzID0gY3B1X2RwLVxcdTAwM2V0YWdfb3BzO1xcbm5ldC9kc2EvY29uZHVpdC5jOjM2OTpcXHRuZXdfdGFnX29wcyA9IGRzYV90YWdfZHJpdmVyX2dldF9ieV9uYW1lKG5hbWUpO1xcbm5ldC9kc2EvY29uZHVpdC5jLTM3MC1cXHRrZnJlZShuYW1lKTtcXG4tLVxcbm5ldC9kc2EvY29uZHVpdC5jLTM4MC1cXG5uZXQvZHNhL2NvbmR1aXQuYzozODE6XFx0ZXJyID0gZHNhX3RyZWVfY2hhbmdlX3RhZ19wcm90byhjcHVfZHAtXFx1MDAzZWRzLVxcdTAwM2Vkc3QsIG5ld190YWdfb3BzLFxcbm5ldC9kc2EvY29uZHVpdC5jLTM4Mi1cXHRcXHRcXHRcXHRcXHRvbGRfdGFnX29wcyk7XFxuLS1cXG5uZXQvZHNhL2NvbmR1aXQuYy0zODYtXFx0XFx0ICovXFxubmV0L2RzYS9jb25kdWl0LmM6Mzg3OlxcdFxcdGRzYV90YWdfZHJpdmVyX3B1dChuZXdfdGFnX29wcyk7XFxubmV0L2RzYS9jb25kdWl0LmMtMzg4LVxcdFxcdHJldHVybiBlcnI7XFxuLS1cXG5uZXQvZHNhL2NvbmR1aXQuYy0zOTMtb3V0Olxcbm5ldC9kc2EvY29uZHVpdC5jOjM5NDpcXHRkc2FfdGFnX2RyaXZlcl9wdXQob2xkX3RhZ19vcHMpO1xcbm5ldC9kc2EvY29uZHVpdC5jLTM5NS1cXHRyZXR1cm4gY291bnQ7XFxuLS1cXG5uZXQvZHNhL2NvbmR1aXQuYz0zOTc9c3RhdGljIERFVklDRV9BVFRSX1JXKHRhZ2dpbmcpO1xcbm5ldC9kc2EvY29uZHVpdC5jLTM5OC1cXG5uZXQvZHNhL2NvbmR1aXQuYzozOTk6c3RhdGljIHN0cnVjdCBhdHRyaWJ1dGUgKmRzYV91c2VyX2F0dHJzW10gPSB7XFxubmV0L2RzYS9jb25kdWl0LmMtNDAwLVxcdFxcdTAwMjZkZXZfYXR0cl90YWdnaW5nLmF0dHIsXFxuLS1cXG5uZXQvZHNhL2NvbmR1aXQuYy00MDMtXFxubmV0L2RzYS9jb25kdWl0LmM6NDA0OnN0YXRpYyBjb25zdCBzdHJ1Y3QgYXR0cmlidXRlX2dyb3VwIGRzYV9ncm91cCA9IHtcXG5uZXQvZHNhL2NvbmR1aXQuYzo0MDU6XFx0Lm5hbWVcXHQ9IFxcXCJkc2FcXFwiLFxcbm5ldC9kc2EvY29uZHVpdC5jOjQwNjpcXHQuYXR0cnNcXHQ9IGRzYV91c2VyX2F0dHJzLFxcbm5ldC9kc2EvY29uZHVpdC5jLTQwNy19O1xcbm5ldC9kc2EvY29uZHVpdC5jLTQwOC1cXG5uZXQvZHNhL2NvbmR1aXQuYzo0MDk6c3RhdGljIHZvaWQgZHNhX2NvbmR1aXRfcmVzZXRfbXR1KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpXFxubmV0L2RzYS9jb25kdWl0LmMtNDEwLXtcXG4tLVxcbm5ldC9kc2EvY29uZHVpdC5jLTQxOC1cXG5uZXQvZHNhL2NvbmR1aXQuYzo0MTk6aW50IGRzYV9jb25kdWl0X3NldHVwKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIHN0cnVjdCBkc2FfcG9ydCAqY3B1X2RwKVxcbm5ldC9kc2EvY29uZHVpdC5jLTQyMC17XFxubmV0L2RzYS9jb25kdWl0LmM6NDIxOlxcdGNvbnN0IHN0cnVjdCBkc2FfZGV2aWNlX29wcyAqdGFnX29wcyA9IGNwdV9kcC1cXHUwMDNldGFnX29wcztcXG5uZXQvZHNhL2NvbmR1aXQuYzo0MjI6XFx0c3RydWN0IGRzYV9zd2l0Y2ggKmRzID0gY3B1X2RwLVxcdTAwM2VkcztcXG5uZXQvZHNhL2NvbmR1aXQuYy00MjMtXFx0c3RydWN0IGRldmljZV9saW5rICpjb25zdW1lcl9saW5rO1xcbi0tXFxubmV0L2RzYS9jb25kdWl0LmMtNDI1LVxcbm5ldC9kc2EvY29uZHVpdC5jOjQyNjpcXHRtdHUgPSBFVEhfREFUQV9MRU4gKyBkc2FfdGFnX3Byb3RvY29sX292ZXJoZWFkKHRhZ19vcHMpO1xcbm5ldC9kc2EvY29uZHVpdC5jLTQyNy1cXG4tLVxcbm5ldC9kc2EvY29uZHVpdC5jLTQzOC1cXHQvKiBUaGUgc3dpdGNoIGRyaXZlciBtYXkgbm90IGltcGxlbWVudCAtXFx1MDAzZXBvcnRfY2hhbmdlX210dSgpLCBjYXNlIGluXFxubmV0L2RzYS9jb25kdWl0LmM6NDM5OlxcdCAqIHdoaWNoIGRzYV91c2VyX2NoYW5nZV9tdHUoKSB3aWxsIG5vdCB1cGRhdGUgdGhlIGNvbmR1aXQgTVRVIGVpdGhlcixcXG5uZXQvZHNhL2NvbmR1aXQuYy00NDAtXFx0ICogc28gd2UgbmVlZCB0byBkbyB0aGF0IGhlcmUuXFxuLS1cXG5uZXQvZHNhL2NvbmR1aXQuYy00NTItXFxubmV0L2RzYS9jb25kdWl0LmM6NDUzOlxcdGRldi1cXHUwMDNlZHNhX3B0ciA9IGNwdV9kcDtcXG5uZXQvZHNhL2NvbmR1aXQuYy00NTQtXFxubmV0L2RzYS9jb25kdWl0LmM6NDU1OlxcdGRzYV9jb25kdWl0X3NldF9wcm9taXNjdWl0eShkZXYsIDEpO1xcbm5ldC9kc2EvY29uZHVpdC5jLTQ1Ni1cXG5uZXQvZHNhL2NvbmR1aXQuYzo0NTc6XFx0cmV0ID0gZHNhX2NvbmR1aXRfZXRodG9vbF9zZXR1cChkZXYpO1xcbm5ldC9kc2EvY29uZHVpdC5jLTQ1OC1cXHRpZiAocmV0KVxcbi0tXFxubmV0L2RzYS9jb25kdWl0LmMtNDYwLVxcbm5ldC9kc2EvY29uZHVpdC5jOjQ2MTpcXHRyZXQgPSBzeXNmc19jcmVhdGVfZ3JvdXAoXFx1MDAyNmRldi1cXHUwMDNlZGV2LmtvYmosIFxcdTAwMjZkc2FfZ3JvdXApO1xcbm5ldC9kc2EvY29uZHVpdC5jLTQ2Mi1cXHRpZiAocmV0KVxcbi0tXFxubmV0L2RzYS9jb25kdWl0LmMtNDY3LW91dF9lcnJfZXRodG9vbF90ZWFyZG93bjpcXG5uZXQvZHNhL2NvbmR1aXQuYzo0Njg6XFx0ZHNhX2NvbmR1aXRfZXRodG9vbF90ZWFyZG93bihkZXYpO1xcbm5ldC9kc2EvY29uZHVpdC5jLTQ2OS1vdXRfZXJyX3Jlc2V0X3Byb21pc2M6XFxubmV0L2RzYS9jb25kdWl0LmM6NDcwOlxcdGRzYV9jb25kdWl0X3NldF9wcm9taXNjdWl0eShkZXYsIC0xKTtcXG5uZXQvZHNhL2NvbmR1aXQuYy00NzEtXFx0cmV0dXJuIHJldDtcXG4tLVxcbm5ldC9kc2EvY29uZHVpdC5jLTQ3My1cXG5uZXQvZHNhL2NvbmR1aXQuYzo0NzQ6dm9pZCBkc2FfY29uZHVpdF90ZWFyZG93bihzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KVxcbm5ldC9kc2EvY29uZHVpdC5jLTQ3NS17XFxubmV0L2RzYS9jb25kdWl0LmM6NDc2OlxcdHN5c2ZzX3JlbW92ZV9ncm91cChcXHUwMDI2ZGV2LVxcdTAwM2VkZXYua29iaiwgXFx1MDAyNmRzYV9ncm91cCk7XFxubmV0L2RzYS9jb25kdWl0LmM6NDc3OlxcdGRzYV9jb25kdWl0X2V0aHRvb2xfdGVhcmRvd24oZGV2KTtcXG5uZXQvZHNhL2NvbmR1aXQuYzo0Nzg6XFx0ZHNhX2NvbmR1aXRfcmVzZXRfbXR1KGRldik7XFxubmV0L2RzYS9jb25kdWl0LmM6NDc5OlxcdGRzYV9jb25kdWl0X3NldF9wcm9taXNjdWl0eShkZXYsIC0xKTtcXG5uZXQvZHNhL2NvbmR1aXQuYy00ODAtXFxubmV0L2RzYS9jb25kdWl0LmM6NDgxOlxcdGRldi1cXHUwMDNlZHNhX3B0ciA9IE5VTEw7XFxubmV0L2RzYS9jb25kdWl0LmMtNDgyLVxcbi0tXFxubmV0L2RzYS9jb25kdWl0LmMtNDg5LVxcbm5ldC9kc2EvY29uZHVpdC5jOjQ5MDppbnQgZHNhX2NvbmR1aXRfbGFnX3NldHVwKHN0cnVjdCBuZXRfZGV2aWNlICpsYWdfZGV2LCBzdHJ1Y3QgZHNhX3BvcnQgKmNwdV9kcCxcXG5uZXQvZHNhL2NvbmR1aXQuYy00OTEtXFx0XFx0XFx0ICBzdHJ1Y3QgbmV0ZGV2X2xhZ191cHBlcl9pbmZvICp1aW5mbyxcXG4tLVxcbm5ldC9kc2EvY29uZHVpdC5jLTQ5Ni1cXG5uZXQvZHNhL2NvbmR1aXQuYzo0OTc6XFx0aWYgKCFuZXRkZXZfdXNlc19kc2EobGFnX2RldikpIHtcXG5uZXQvZHNhL2NvbmR1aXQuYzo0OTg6XFx0XFx0ZXJyID0gZHNhX2NvbmR1aXRfc2V0dXAobGFnX2RldiwgY3B1X2RwKTtcXG5uZXQvZHNhL2NvbmR1aXQuYy00OTktXFx0XFx0aWYgKGVycilcXG4tLVxcbm5ldC9kc2EvY29uZHVpdC5jLTUwNC1cXG5uZXQvZHNhL2NvbmR1aXQuYzo1MDU6XFx0ZXJyID0gZHNhX3BvcnRfbGFnX2pvaW4oY3B1X2RwLCBsYWdfZGV2LCB1aW5mbywgZXh0YWNrKTtcXG5uZXQvZHNhL2NvbmR1aXQuYy01MDYtXFx0aWYgKGVycikge1xcbi0tXFxubmV0L2RzYS9jb25kdWl0LmMtNTE0LVxcdGlmIChjb25kdWl0X3NldHVwKVxcbm5ldC9kc2EvY29uZHVpdC5jOjUxNTpcXHRcXHRkc2FfY29uZHVpdF90ZWFyZG93bihsYWdfZGV2KTtcXG5uZXQvZHNhL2NvbmR1aXQuYy01MTYtXFx0cmV0dXJuIGVycjtcXG4tLVxcbm5ldC9kc2EvY29uZHVpdC5jLTUyMS0gKi9cXG5uZXQvZHNhL2NvbmR1aXQuYzo1MjI6dm9pZCBkc2FfY29uZHVpdF9sYWdfdGVhcmRvd24oc3RydWN0IG5ldF9kZXZpY2UgKmxhZ19kZXYsXFxubmV0L2RzYS9jb25kdWl0LmM6NTIzOlxcdFxcdFxcdCAgICAgIHN0cnVjdCBkc2FfcG9ydCAqY3B1X2RwKVxcbm5ldC9kc2EvY29uZHVpdC5jLTUyNC17XFxuLS1cXG5uZXQvZHNhL2NvbmR1aXQuYy01MjctXFxubmV0L2RzYS9jb25kdWl0LmM6NTI4OlxcdGRzYV9wb3J0X2xhZ19sZWF2ZShjcHVfZHAsIGxhZ19kZXYpO1xcbm5ldC9kc2EvY29uZHVpdC5jLTUyOS1cXG5uZXQvZHNhL2NvbmR1aXQuYy01MzAtXFx0bmV0ZGV2X2Zvcl9lYWNoX3VwcGVyX2Rldl9yY3UobGFnX2RldiwgdXBwZXIsIGl0ZXIpXFxubmV0L2RzYS9jb25kdWl0LmM6NTMxOlxcdFxcdGlmIChkc2FfdXNlcl9kZXZfY2hlY2sodXBwZXIpKVxcbm5ldC9kc2EvY29uZHVpdC5jLTUzMi1cXHRcXHRcXHRyZXR1cm47XFxubmV0L2RzYS9jb25kdWl0LmMtNTMzLVxcbm5ldC9kc2EvY29uZHVpdC5jOjUzNDpcXHRkc2FfY29uZHVpdF90ZWFyZG93bihsYWdfZGV2KTtcXG5uZXQvZHNhL2NvbmR1aXQuYy01MzUtfVxcbi0tXFxubmV0L2RzYS9jb25kdWl0LmgtNS1cXG5uZXQvZHNhL2NvbmR1aXQuaDo2OnN0cnVjdCBkc2FfcG9ydDtcXG5uZXQvZHNhL2NvbmR1aXQuaC03LXN0cnVjdCBuZXRfZGV2aWNlO1xcbi0tXFxubmV0L2RzYS9jb25kdWl0Lmg9OT1zdHJ1Y3QgbmV0bGlua19leHRfYWNrO1xcbm5ldC9kc2EvY29uZHVpdC5oLTEwLVxcbm5ldC9kc2EvY29uZHVpdC5oOjExOmludCBkc2FfY29uZHVpdF9zZXR1cChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBzdHJ1Y3QgZHNhX3BvcnQgKmNwdV9kcCk7XFxubmV0L2RzYS9jb25kdWl0Lmg6MTI6dm9pZCBkc2FfY29uZHVpdF90ZWFyZG93bihzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KTtcXG5uZXQvZHNhL2NvbmR1aXQuaDoxMzppbnQgZHNhX2NvbmR1aXRfbGFnX3NldHVwKHN0cnVjdCBuZXRfZGV2aWNlICpsYWdfZGV2LCBzdHJ1Y3QgZHNhX3BvcnQgKmNwdV9kcCxcXG5uZXQvZHNhL2NvbmR1aXQuaC0xNC1cXHRcXHRcXHQgIHN0cnVjdCBuZXRkZXZfbGFnX3VwcGVyX2luZm8gKnVpbmZvLFxcbm5ldC9kc2EvY29uZHVpdC5oLTE1LVxcdFxcdFxcdCAgc3RydWN0IG5ldGxpbmtfZXh0X2FjayAqZXh0YWNrKTtcXG5uZXQvZHNhL2NvbmR1aXQuaDoxNjp2b2lkIGRzYV9jb25kdWl0X2xhZ190ZWFyZG93bihzdHJ1Y3QgbmV0X2RldmljZSAqbGFnX2RldixcXG5uZXQvZHNhL2NvbmR1aXQuaDoxNzpcXHRcXHRcXHQgICAgICBzdHJ1Y3QgZHNhX3BvcnQgKmNwdV9kcCk7XFxubmV0L2RzYS9jb25kdWl0Lmg6MTg6aW50IF9fZHNhX2NvbmR1aXRfaHd0c3RhbXBfdmFsaWRhdGUoc3RydWN0IG5ldF9kZXZpY2UgKmRldixcXG5uZXQvZHNhL2NvbmR1aXQuaC0xOS1cXHRcXHRcXHRcXHQgICAgY29uc3Qgc3RydWN0IGtlcm5lbF9od3RzdGFtcF9jb25maWcgKmNvbmZpZyxcXG4tLVxcbm5ldC9kc2EvZGV2bGluay5jLTUtXFxubmV0L2RzYS9kZXZsaW5rLmM6NjojaW5jbHVkZSBcXHUwMDNjbmV0L2RzYS5oXFx1MDAzZVxcbm5ldC9kc2EvZGV2bGluay5jLTctI2luY2x1ZGUgXFx1MDAzY25ldC9kZXZsaW5rLmhcXHUwMDNlXFxuLS1cXG5uZXQvZHNhL2RldmxpbmsuYy0xMC1cXG5uZXQvZHNhL2RldmxpbmsuYzoxMTpzdGF0aWMgaW50IGRzYV9kZXZsaW5rX2luZm9fZ2V0KHN0cnVjdCBkZXZsaW5rICpkbCxcXG5uZXQvZHNhL2RldmxpbmsuYy0xMi1cXHRcXHRcXHRcXHRzdHJ1Y3QgZGV2bGlua19pbmZvX3JlcSAqcmVxLFxcbi0tXFxubmV0L2RzYS9kZXZsaW5rLmMtMTQte1xcbm5ldC9kc2EvZGV2bGluay5jOjE1OlxcdHN0cnVjdCBkc2Ffc3dpdGNoICpkcyA9IGRzYV9kZXZsaW5rX3RvX2RzKGRsKTtcXG5uZXQvZHNhL2RldmxpbmsuYy0xNi1cXG4tLVxcbm5ldC9kc2EvZGV2bGluay5jLTIyLVxcbm5ldC9kc2EvZGV2bGluay5jOjIzOnN0YXRpYyBpbnQgZHNhX2Rldmxpbmtfc2JfcG9vbF9nZXQoc3RydWN0IGRldmxpbmsgKmRsLFxcbm5ldC9kc2EvZGV2bGluay5jLTI0LVxcdFxcdFxcdFxcdCAgIHVuc2lnbmVkIGludCBzYl9pbmRleCwgdTE2IHBvb2xfaW5kZXgsXFxuLS1cXG5uZXQvZHNhL2RldmxpbmsuYy0yNi17XFxubmV0L2RzYS9kZXZsaW5rLmM6Mjc6XFx0c3RydWN0IGRzYV9zd2l0Y2ggKmRzID0gZHNhX2RldmxpbmtfdG9fZHMoZGwpO1xcbm5ldC9kc2EvZGV2bGluay5jLTI4LVxcbi0tXFxubmV0L2RzYS9kZXZsaW5rLmMtMzUtXFxubmV0L2RzYS9kZXZsaW5rLmM6MzY6c3RhdGljIGludCBkc2FfZGV2bGlua19zYl9wb29sX3NldChzdHJ1Y3QgZGV2bGluayAqZGwsIHVuc2lnbmVkIGludCBzYl9pbmRleCxcXG5uZXQvZHNhL2RldmxpbmsuYy0zNy1cXHRcXHRcXHRcXHQgICB1MTYgcG9vbF9pbmRleCwgdTMyIHNpemUsXFxuLS1cXG5uZXQvZHNhL2RldmxpbmsuYy00MC17XFxubmV0L2RzYS9kZXZsaW5rLmM6NDE6XFx0c3RydWN0IGRzYV9zd2l0Y2ggKmRzID0gZHNhX2RldmxpbmtfdG9fZHMoZGwpO1xcbm5ldC9kc2EvZGV2bGluay5jLTQyLVxcbi0tXFxubmV0L2RzYS9kZXZsaW5rLmMtNDktXFxubmV0L2RzYS9kZXZsaW5rLmM6NTA6c3RhdGljIGludCBkc2FfZGV2bGlua19zYl9wb3J0X3Bvb2xfZ2V0KHN0cnVjdCBkZXZsaW5rX3BvcnQgKmRscCxcXG5uZXQvZHNhL2RldmxpbmsuYy01MS1cXHRcXHRcXHRcXHRcXHR1bnNpZ25lZCBpbnQgc2JfaW5kZXgsIHUxNiBwb29sX2luZGV4LFxcbi0tXFxubmV0L2RzYS9kZXZsaW5rLmMtNTMte1xcbm5ldC9kc2EvZGV2bGluay5jOjU0OlxcdHN0cnVjdCBkc2Ffc3dpdGNoICpkcyA9IGRzYV9kZXZsaW5rX3BvcnRfdG9fZHMoZGxwKTtcXG5uZXQvZHNhL2RldmxpbmsuYzo1NTpcXHRpbnQgcG9ydCA9IGRzYV9kZXZsaW5rX3BvcnRfdG9fcG9ydChkbHApO1xcbm5ldC9kc2EvZGV2bGluay5jLTU2LVxcbi0tXFxubmV0L2RzYS9kZXZsaW5rLmMtNjMtXFxubmV0L2RzYS9kZXZsaW5rLmM6NjQ6c3RhdGljIGludCBkc2FfZGV2bGlua19zYl9wb3J0X3Bvb2xfc2V0KHN0cnVjdCBkZXZsaW5rX3BvcnQgKmRscCxcXG5uZXQvZHNhL2RldmxpbmsuYy02NS1cXHRcXHRcXHRcXHRcXHR1bnNpZ25lZCBpbnQgc2JfaW5kZXgsIHUxNiBwb29sX2luZGV4LFxcbi0tXFxubmV0L2RzYS9kZXZsaW5rLmMtNjgte1xcbm5ldC9kc2EvZGV2bGluay5jOjY5OlxcdHN0cnVjdCBkc2Ffc3dpdGNoICpkcyA9IGRzYV9kZXZsaW5rX3BvcnRfdG9fZHMoZGxwKTtcXG5uZXQvZHNhL2RldmxpbmsuYzo3MDpcXHRpbnQgcG9ydCA9IGRzYV9kZXZsaW5rX3BvcnRfdG9fcG9ydChkbHApO1xcbm5ldC9kc2EvZGV2bGluay5jLTcxLVxcbi0tXFxubmV0L2RzYS9kZXZsaW5rLmM9Nzk9c3RhdGljIGludFxcbm5ldC9kc2EvZGV2bGluay5jOjgwOmRzYV9kZXZsaW5rX3NiX3RjX3Bvb2xfYmluZF9nZXQoc3RydWN0IGRldmxpbmtfcG9ydCAqZGxwLFxcbm5ldC9kc2EvZGV2bGluay5jLTgxLVxcdFxcdFxcdFxcdHVuc2lnbmVkIGludCBzYl9pbmRleCwgdTE2IHRjX2luZGV4LFxcbi0tXFxubmV0L2RzYS9kZXZsaW5rLmMtODQte1xcbm5ldC9kc2EvZGV2bGluay5jOjg1OlxcdHN0cnVjdCBkc2Ffc3dpdGNoICpkcyA9IGRzYV9kZXZsaW5rX3BvcnRfdG9fZHMoZGxwKTtcXG5uZXQvZHNhL2RldmxpbmsuYzo4NjpcXHRpbnQgcG9ydCA9IGRzYV9kZXZsaW5rX3BvcnRfdG9fcG9ydChkbHApO1xcbm5ldC9kc2EvZGV2bGluay5jLTg3LVxcbi0tXFxubmV0L2RzYS9kZXZsaW5rLmM9OTY9c3RhdGljIGludFxcbm5ldC9kc2EvZGV2bGluay5jOjk3OmRzYV9kZXZsaW5rX3NiX3RjX3Bvb2xfYmluZF9zZXQoc3RydWN0IGRldmxpbmtfcG9ydCAqZGxwLFxcbm5ldC9kc2EvZGV2bGluay5jLTk4LVxcdFxcdFxcdFxcdHVuc2lnbmVkIGludCBzYl9pbmRleCwgdTE2IHRjX2luZGV4LFxcbi0tXFxubmV0L2RzYS9kZXZsaW5rLmMtMTAyLXtcXG5uZXQvZHNhL2RldmxpbmsuYzoxMDM6XFx0c3RydWN0IGRzYV9zd2l0Y2ggKmRzID0gZHNhX2RldmxpbmtfcG9ydF90b19kcyhkbHApO1xcbm5ldC9kc2EvZGV2bGluay5jOjEwNDpcXHRpbnQgcG9ydCA9IGRzYV9kZXZsaW5rX3BvcnRfdG9fcG9ydChkbHApO1xcbm5ldC9kc2EvZGV2bGluay5jLTEwNS1cXG4tLVxcbm5ldC9kc2EvZGV2bGluay5jLTExNC1cXG5uZXQvZHNhL2RldmxpbmsuYzoxMTU6c3RhdGljIGludCBkc2FfZGV2bGlua19zYl9vY2Nfc25hcHNob3Qoc3RydWN0IGRldmxpbmsgKmRsLFxcbm5ldC9kc2EvZGV2bGluay5jLTExNi1cXHRcXHRcXHRcXHQgICAgICAgdW5zaWduZWQgaW50IHNiX2luZGV4KVxcbm5ldC9kc2EvZGV2bGluay5jLTExNy17XFxubmV0L2RzYS9kZXZsaW5rLmM6MTE4OlxcdHN0cnVjdCBkc2Ffc3dpdGNoICpkcyA9IGRzYV9kZXZsaW5rX3RvX2RzKGRsKTtcXG5uZXQvZHNhL2RldmxpbmsuYy0xMTktXFxuLS1cXG5uZXQvZHNhL2RldmxpbmsuYy0xMjUtXFxubmV0L2RzYS9kZXZsaW5rLmM6MTI2OnN0YXRpYyBpbnQgZHNhX2Rldmxpbmtfc2Jfb2NjX21heF9jbGVhcihzdHJ1Y3QgZGV2bGluayAqZGwsXFxubmV0L2RzYS9kZXZsaW5rLmMtMTI3LVxcdFxcdFxcdFxcdFxcdHVuc2lnbmVkIGludCBzYl9pbmRleClcXG5uZXQvZHNhL2RldmxpbmsuYy0xMjgte1xcbm5ldC9kc2EvZGV2bGluay5jOjEyOTpcXHRzdHJ1Y3QgZHNhX3N3aXRjaCAqZHMgPSBkc2FfZGV2bGlua190b19kcyhkbCk7XFxubmV0L2RzYS9kZXZsaW5rLmMtMTMwLVxcbi0tXFxubmV0L2RzYS9kZXZsaW5rLmMtMTM2LVxcbm5ldC9kc2EvZGV2bGluay5jOjEzNzpzdGF0aWMgaW50IGRzYV9kZXZsaW5rX3NiX29jY19wb3J0X3Bvb2xfZ2V0KHN0cnVjdCBkZXZsaW5rX3BvcnQgKmRscCxcXG5uZXQvZHNhL2RldmxpbmsuYy0xMzgtXFx0XFx0XFx0XFx0XFx0ICAgIHVuc2lnbmVkIGludCBzYl9pbmRleCxcXG4tLVxcbm5ldC9kc2EvZGV2bGluay5jLTE0MS17XFxubmV0L2RzYS9kZXZsaW5rLmM6MTQyOlxcdHN0cnVjdCBkc2Ffc3dpdGNoICpkcyA9IGRzYV9kZXZsaW5rX3BvcnRfdG9fZHMoZGxwKTtcXG5uZXQvZHNhL2RldmxpbmsuYzoxNDM6XFx0aW50IHBvcnQgPSBkc2FfZGV2bGlua19wb3J0X3RvX3BvcnQoZGxwKTtcXG5uZXQvZHNhL2RldmxpbmsuYy0xNDQtXFxuLS1cXG5uZXQvZHNhL2RldmxpbmsuYz0xNTI9c3RhdGljIGludFxcbm5ldC9kc2EvZGV2bGluay5jOjE1Mzpkc2FfZGV2bGlua19zYl9vY2NfdGNfcG9ydF9iaW5kX2dldChzdHJ1Y3QgZGV2bGlua19wb3J0ICpkbHAsXFxubmV0L2RzYS9kZXZsaW5rLmMtMTU0LVxcdFxcdFxcdFxcdCAgICB1bnNpZ25lZCBpbnQgc2JfaW5kZXgsIHUxNiB0Y19pbmRleCxcXG4tLVxcbm5ldC9kc2EvZGV2bGluay5jLTE1Ny17XFxubmV0L2RzYS9kZXZsaW5rLmM6MTU4OlxcdHN0cnVjdCBkc2Ffc3dpdGNoICpkcyA9IGRzYV9kZXZsaW5rX3BvcnRfdG9fZHMoZGxwKTtcXG5uZXQvZHNhL2RldmxpbmsuYzoxNTk6XFx0aW50IHBvcnQgPSBkc2FfZGV2bGlua19wb3J0X3RvX3BvcnQoZGxwKTtcXG5uZXQvZHNhL2RldmxpbmsuYy0xNjAtXFxuLS1cXG5uZXQvZHNhL2RldmxpbmsuYy0xNjktXFxubmV0L2RzYS9kZXZsaW5rLmM6MTcwOnN0YXRpYyBjb25zdCBzdHJ1Y3QgZGV2bGlua19vcHMgZHNhX2Rldmxpbmtfb3BzID0ge1xcbm5ldC9kc2EvZGV2bGluay5jOjE3MTpcXHQuaW5mb19nZXRcXHRcXHRcXHQ9IGRzYV9kZXZsaW5rX2luZm9fZ2V0LFxcbm5ldC9kc2EvZGV2bGluay5jOjE3MjpcXHQuc2JfcG9vbF9nZXRcXHRcXHRcXHQ9IGRzYV9kZXZsaW5rX3NiX3Bvb2xfZ2V0LFxcbm5ldC9kc2EvZGV2bGluay5jOjE3MzpcXHQuc2JfcG9vbF9zZXRcXHRcXHRcXHQ9IGRzYV9kZXZsaW5rX3NiX3Bvb2xfc2V0LFxcbm5ldC9kc2EvZGV2bGluay5jOjE3NDpcXHQuc2JfcG9ydF9wb29sX2dldFxcdFxcdD0gZHNhX2Rldmxpbmtfc2JfcG9ydF9wb29sX2dldCxcXG5uZXQvZHNhL2RldmxpbmsuYzoxNzU6XFx0LnNiX3BvcnRfcG9vbF9zZXRcXHRcXHQ9IGRzYV9kZXZsaW5rX3NiX3BvcnRfcG9vbF9zZXQsXFxubmV0L2RzYS9kZXZsaW5rLmM6MTc2OlxcdC5zYl90Y19wb29sX2JpbmRfZ2V0XFx0XFx0PSBkc2FfZGV2bGlua19zYl90Y19wb29sX2JpbmRfZ2V0LFxcbm5ldC9kc2EvZGV2bGluay5jOjE3NzpcXHQuc2JfdGNfcG9vbF9iaW5kX3NldFxcdFxcdD0gZHNhX2Rldmxpbmtfc2JfdGNfcG9vbF9iaW5kX3NldCxcXG5uZXQvZHNhL2RldmxpbmsuYzoxNzg6XFx0LnNiX29jY19zbmFwc2hvdFxcdFxcdD0gZHNhX2Rldmxpbmtfc2Jfb2NjX3NuYXBzaG90LFxcbm5ldC9kc2EvZGV2bGluay5jOjE3OTpcXHQuc2Jfb2NjX21heF9jbGVhclxcdFxcdD0gZHNhX2Rldmxpbmtfc2Jfb2NjX21heF9jbGVhcixcXG5uZXQvZHNhL2RldmxpbmsuYzoxODA6XFx0LnNiX29jY19wb3J0X3Bvb2xfZ2V0XFx0XFx0PSBkc2FfZGV2bGlua19zYl9vY2NfcG9ydF9wb29sX2dldCxcXG5uZXQvZHNhL2RldmxpbmsuYzoxODE6XFx0LnNiX29jY190Y19wb3J0X2JpbmRfZ2V0XFx0PSBkc2FfZGV2bGlua19zYl9vY2NfdGNfcG9ydF9iaW5kX2dldCxcXG5uZXQvZHNhL2RldmxpbmsuYy0xODItfTtcXG5uZXQvZHNhL2RldmxpbmsuYy0xODMtXFxubmV0L2RzYS9kZXZsaW5rLmM6MTg0OmludCBkc2FfZGV2bGlua19wYXJhbV9nZXQoc3RydWN0IGRldmxpbmsgKmRsLCB1MzIgaWQsXFxubmV0L2RzYS9kZXZsaW5rLmMtMTg1LVxcdFxcdFxcdCAgc3RydWN0IGRldmxpbmtfcGFyYW1fZ3NldF9jdHggKmN0eCxcXG4tLVxcbm5ldC9kc2EvZGV2bGluay5jLTE4Ny17XFxubmV0L2RzYS9kZXZsaW5rLmM6MTg4OlxcdHN0cnVjdCBkc2Ffc3dpdGNoICpkcyA9IGRzYV9kZXZsaW5rX3RvX2RzKGRsKTtcXG5uZXQvZHNhL2RldmxpbmsuYy0xODktXFxuLS1cXG5uZXQvZHNhL2RldmxpbmsuYy0xOTQtfVxcbm5ldC9kc2EvZGV2bGluay5jOjE5NTpFWFBPUlRfU1lNQk9MX0dQTChkc2FfZGV2bGlua19wYXJhbV9nZXQpO1xcbm5ldC9kc2EvZGV2bGluay5jLTE5Ni1cXG5uZXQvZHNhL2RldmxpbmsuYzoxOTc6aW50IGRzYV9kZXZsaW5rX3BhcmFtX3NldChzdHJ1Y3QgZGV2bGluayAqZGwsIHUzMiBpZCxcXG5uZXQvZHNhL2RldmxpbmsuYy0xOTgtXFx0XFx0XFx0ICBzdHJ1Y3QgZGV2bGlua19wYXJhbV9nc2V0X2N0eCAqY3R4LFxcbi0tXFxubmV0L2RzYS9kZXZsaW5rLmMtMjAwLXtcXG5uZXQvZHNhL2RldmxpbmsuYzoyMDE6XFx0c3RydWN0IGRzYV9zd2l0Y2ggKmRzID0gZHNhX2RldmxpbmtfdG9fZHMoZGwpO1xcbm5ldC9kc2EvZGV2bGluay5jLTIwMi1cXG4tLVxcbm5ldC9kc2EvZGV2bGluay5jLTIwNy19XFxubmV0L2RzYS9kZXZsaW5rLmM6MjA4OkVYUE9SVF9TWU1CT0xfR1BMKGRzYV9kZXZsaW5rX3BhcmFtX3NldCk7XFxubmV0L2RzYS9kZXZsaW5rLmMtMjA5LVxcbm5ldC9kc2EvZGV2bGluay5jOjIxMDppbnQgZHNhX2RldmxpbmtfcGFyYW1zX3JlZ2lzdGVyKHN0cnVjdCBkc2Ffc3dpdGNoICpkcyxcXG5uZXQvZHNhL2RldmxpbmsuYy0yMTEtXFx0XFx0XFx0XFx0Y29uc3Qgc3RydWN0IGRldmxpbmtfcGFyYW0gKnBhcmFtcyxcXG4tLVxcbm5ldC9kc2EvZGV2bGluay5jLTIxNS19XFxubmV0L2RzYS9kZXZsaW5rLmM6MjE2OkVYUE9SVF9TWU1CT0xfR1BMKGRzYV9kZXZsaW5rX3BhcmFtc19yZWdpc3Rlcik7XFxubmV0L2RzYS9kZXZsaW5rLmMtMjE3LVxcbm5ldC9kc2EvZGV2bGluay5jOjIxODp2b2lkIGRzYV9kZXZsaW5rX3BhcmFtc191bnJlZ2lzdGVyKHN0cnVjdCBkc2Ffc3dpdGNoICpkcyxcXG5uZXQvZHNhL2RldmxpbmsuYy0yMTktXFx0XFx0XFx0XFx0ICAgY29uc3Qgc3RydWN0IGRldmxpbmtfcGFyYW0gKnBhcmFtcyxcXG4tLVxcbm5ldC9kc2EvZGV2bGluay5jLTIyMy19XFxubmV0L2RzYS9kZXZsaW5rLmM6MjI0OkVYUE9SVF9TWU1CT0xfR1BMKGRzYV9kZXZsaW5rX3BhcmFtc191bnJlZ2lzdGVyKTtcXG5uZXQvZHNhL2RldmxpbmsuYy0yMjUtXFxubmV0L2RzYS9kZXZsaW5rLmM6MjI2OmludCBkc2FfZGV2bGlua19yZXNvdXJjZV9yZWdpc3RlcihzdHJ1Y3QgZHNhX3N3aXRjaCAqZHMsXFxubmV0L2RzYS9kZXZsaW5rLmMtMjI3LVxcdFxcdFxcdFxcdCAgY29uc3QgY2hhciAqcmVzb3VyY2VfbmFtZSxcXG4tLVxcbm5ldC9kc2EvZGV2bGluay5jLTI0Mi19XFxubmV0L2RzYS9kZXZsaW5rLmM6MjQzOkVYUE9SVF9TWU1CT0xfR1BMKGRzYV9kZXZsaW5rX3Jlc291cmNlX3JlZ2lzdGVyKTtcXG5uZXQvZHNhL2RldmxpbmsuYy0yNDQtXFxubmV0L2RzYS9kZXZsaW5rLmM6MjQ1OnZvaWQgZHNhX2RldmxpbmtfcmVzb3VyY2VzX3VucmVnaXN0ZXIoc3RydWN0IGRzYV9zd2l0Y2ggKmRzKVxcbm5ldC9kc2EvZGV2bGluay5jLTI0Ni17XFxuLS1cXG5uZXQvZHNhL2RldmxpbmsuYy0yNDgtfVxcbm5ldC9kc2EvZGV2bGluay5jOjI0OTpFWFBPUlRfU1lNQk9MX0dQTChkc2FfZGV2bGlua19yZXNvdXJjZXNfdW5yZWdpc3Rlcik7XFxubmV0L2RzYS9kZXZsaW5rLmMtMjUwLVxcbm5ldC9kc2EvZGV2bGluay5jOjI1MTp2b2lkIGRzYV9kZXZsaW5rX3Jlc291cmNlX29jY19nZXRfcmVnaXN0ZXIoc3RydWN0IGRzYV9zd2l0Y2ggKmRzLFxcbm5ldC9kc2EvZGV2bGluay5jLTI1Mi1cXHRcXHRcXHRcXHRcXHQgICB1NjQgcmVzb3VyY2VfaWQsXFxuLS1cXG5uZXQvZHNhL2RldmxpbmsuYy0yNjAtfVxcbm5ldC9kc2EvZGV2bGluay5jOjI2MTpFWFBPUlRfU1lNQk9MX0dQTChkc2FfZGV2bGlua19yZXNvdXJjZV9vY2NfZ2V0X3JlZ2lzdGVyKTtcXG5uZXQvZHNhL2RldmxpbmsuYy0yNjItXFxubmV0L2RzYS9kZXZsaW5rLmM6MjYzOnZvaWQgZHNhX2RldmxpbmtfcmVzb3VyY2Vfb2NjX2dldF91bnJlZ2lzdGVyKHN0cnVjdCBkc2Ffc3dpdGNoICpkcyxcXG5uZXQvZHNhL2RldmxpbmsuYy0yNjQtXFx0XFx0XFx0XFx0XFx0ICAgICB1NjQgcmVzb3VyY2VfaWQpXFxuLS1cXG5uZXQvZHNhL2RldmxpbmsuYy0yNjktfVxcbm5ldC9kc2EvZGV2bGluay5jOjI3MDpFWFBPUlRfU1lNQk9MX0dQTChkc2FfZGV2bGlua19yZXNvdXJjZV9vY2NfZ2V0X3VucmVnaXN0ZXIpO1xcbm5ldC9kc2EvZGV2bGluay5jLTI3MS1cXG5uZXQvZHNhL2RldmxpbmsuYz0yNzI9c3RydWN0IGRldmxpbmtfcmVnaW9uICpcXG5uZXQvZHNhL2RldmxpbmsuYzoyNzM6ZHNhX2RldmxpbmtfcmVnaW9uX2NyZWF0ZShzdHJ1Y3QgZHNhX3N3aXRjaCAqZHMsXFxubmV0L2RzYS9kZXZsaW5rLmMtMjc0LVxcdFxcdFxcdCAgY29uc3Qgc3RydWN0IGRldmxpbmtfcmVnaW9uX29wcyAqb3BzLFxcbi0tXFxubmV0L2RzYS9kZXZsaW5rLmMtMjc5LX1cXG5uZXQvZHNhL2RldmxpbmsuYzoyODA6RVhQT1JUX1NZTUJPTF9HUEwoZHNhX2RldmxpbmtfcmVnaW9uX2NyZWF0ZSk7XFxubmV0L2RzYS9kZXZsaW5rLmMtMjgxLVxcbm5ldC9kc2EvZGV2bGluay5jPTI4Mj1zdHJ1Y3QgZGV2bGlua19yZWdpb24gKlxcbm5ldC9kc2EvZGV2bGluay5jOjI4Mzpkc2FfZGV2bGlua19wb3J0X3JlZ2lvbl9jcmVhdGUoc3RydWN0IGRzYV9zd2l0Y2ggKmRzLFxcbm5ldC9kc2EvZGV2bGluay5jLTI4NC1cXHRcXHRcXHQgICAgICAgaW50IHBvcnQsXFxuLS1cXG5uZXQvZHNhL2RldmxpbmsuYy0yODcte1xcbm5ldC9kc2EvZGV2bGluay5jOjI4ODpcXHRzdHJ1Y3QgZHNhX3BvcnQgKmRwID0gZHNhX3RvX3BvcnQoZHMsIHBvcnQpO1xcbm5ldC9kc2EvZGV2bGluay5jLTI4OS1cXG4tLVxcbm5ldC9kc2EvZGV2bGluay5jLTI5My19XFxubmV0L2RzYS9kZXZsaW5rLmM6Mjk0OkVYUE9SVF9TWU1CT0xfR1BMKGRzYV9kZXZsaW5rX3BvcnRfcmVnaW9uX2NyZWF0ZSk7XFxubmV0L2RzYS9kZXZsaW5rLmMtMjk1LVxcbm5ldC9kc2EvZGV2bGluay5jOjI5Njp2b2lkIGRzYV9kZXZsaW5rX3JlZ2lvbl9kZXN0cm95KHN0cnVjdCBkZXZsaW5rX3JlZ2lvbiAqcmVnaW9uKVxcbm5ldC9kc2EvZGV2bGluay5jLTI5Ny17XFxuLS1cXG5uZXQvZHNhL2RldmxpbmsuYy0yOTktfVxcbm5ldC9kc2EvZGV2bGluay5jOjMwMDpFWFBPUlRfU1lNQk9MX0dQTChkc2FfZGV2bGlua19yZWdpb25fZGVzdHJveSk7XFxubmV0L2RzYS9kZXZsaW5rLmMtMzAxLVxcbm5ldC9kc2EvZGV2bGluay5jOjMwMjppbnQgZHNhX3BvcnRfZGV2bGlua19zZXR1cChzdHJ1Y3QgZHNhX3BvcnQgKmRwKVxcbm5ldC9kc2EvZGV2bGluay5jLTMwMy17XFxubmV0L2RzYS9kZXZsaW5rLmMtMzA0LVxcdHN0cnVjdCBkZXZsaW5rX3BvcnQgKmRscCA9IFxcdTAwMjZkcC1cXHUwMDNlZGV2bGlua19wb3J0O1xcbm5ldC9kc2EvZGV2bGluay5jOjMwNTpcXHRzdHJ1Y3QgZHNhX3N3aXRjaF90cmVlICpkc3QgPSBkcC1cXHUwMDNlZHMtXFx1MDAzZWRzdDtcXG5uZXQvZHNhL2RldmxpbmsuYy0zMDYtXFx0c3RydWN0IGRldmxpbmtfcG9ydF9hdHRycyBhdHRycyA9IHt9O1xcbm5ldC9kc2EvZGV2bGluay5jLTMwNy1cXHRzdHJ1Y3QgZGV2bGluayAqZGwgPSBkcC1cXHUwMDNlZHMtXFx1MDAzZWRldmxpbms7XFxubmV0L2RzYS9kZXZsaW5rLmM6MzA4OlxcdHN0cnVjdCBkc2Ffc3dpdGNoICpkcyA9IGRwLVxcdTAwM2VkcztcXG5uZXQvZHNhL2RldmxpbmsuYy0zMDktXFx0Y29uc3QgdW5zaWduZWQgY2hhciAqaWQ7XFxuLS1cXG5uZXQvZHNhL2RldmxpbmsuYy0zNTQtXFxubmV0L2RzYS9kZXZsaW5rLmM6MzU1OnZvaWQgZHNhX3BvcnRfZGV2bGlua190ZWFyZG93bihzdHJ1Y3QgZHNhX3BvcnQgKmRwKVxcbm5ldC9kc2EvZGV2bGluay5jLTM1Ni17XFxubmV0L2RzYS9kZXZsaW5rLmMtMzU3LVxcdHN0cnVjdCBkZXZsaW5rX3BvcnQgKmRscCA9IFxcdTAwMjZkcC1cXHUwMDNlZGV2bGlua19wb3J0O1xcblxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yMFQyMDo0ODoxNC43MzI5NjU1NDZaIiwiU2VxIjoyOSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NzQ4NjY2MzEyNCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipNeSBMaW5lIG9mIFJlYXNvbmluZyoqXG5cbk9rYXksIGRlZXAgYnJlYXRoLiBMZXQncyBicmVhayB0aGlzIGRvd24uIERTQSDigJMgdGhhdCdzIGEgKmNvcmUqIHN1YnN5c3RlbS4gSW1wb3J0YW50IHN0dWZmLiBCdXQgc3BlY2lmaWNhbGx5LCB3ZSdyZSB0YWxraW5nIGFib3V0IHRoZSBgbXQ3NTMwYCBkcml2ZXIsIHdoaWNoLCBpZiBtZW1vcnkgc2VydmVzLCBpcyBNZWRpYVRlayBzcGVjaWZpYy4gQSBxdWljayBtZW50YWwgY2hlY2suLi4geWVhaCwgdGhhdCByaW5ncyB0cnVlLiBOb3csIHRoZSBwcm9ibGVtLiBJIGNhbid0IGZ1enogaXQgdW5sZXNzIEkgY2FuIGdldCBpdCBwcm9iZWQgaW4gYSB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudC4gVGhhdCdzIHRoZSBmaXJzdCBodXJkbGUuIENhbiBJIGV2ZW4gZ2V0IHRoaXMgdGhpbmcgcnVubmluZyBpbiBRRU1VP1xuXG4uLi5Obywgbm90IGRpcmVjdGx5LiBRRU1VIGRvZXNuJ3Qgc2VlbSB0byBoYXZlIG91dC1vZi10aGUtYm94IHN1cHBvcnQgZm9yIHRoZSBNZWRpYVRlayBNVDc1MzAgb3IgTVQ3NjIxIHN3aXRjaGVzLiBEYW1uLiBSaWdodCwgc28gdGhhdCBtZWFucyBJJ20gZ29pbmcgdG8gaGF2ZSB0byBkbyBzb21ldGhpbmcgZWxzZS5cblxuT2theSwgbGV0J3Mgc3RlcCBiYWNrLiBTeXprYWxsZXIuLi4gaXQncyBwb3dlcmZ1bCwgYnV0IGl0J3Mgbm90IGEgbWFnaWMgYnVsbGV0LiBJdCBkb2Vzbid0IGFsbG93IGFyYml0cmFyeSBoYXJkd2FyZSBpbmplY3Rpb24gdmlhIGRldmljZSB0cmVlIG5vZGVzIHVubGVzcyB0aGVyZSdzIGV4cGxpY2l0IHN1cHBvcnQuIFNvLCBteSBuZXh0IGxvZ2ljYWwgc3RlcCBpcyB0byBzZWUgaWYgSSBjYW4gZXZlbiBiZWdpbiB0byBpbmplY3QgdGhpcyBkZXZpY2UuIFRoZSBmaXJzdCB0aGluZyBJJ2xsIGNoZWNrIGlzIHRoZSBzeXprYWxsZXIgZGVzY3JpcHRpb25zLiBEbyB0aGV5IGhhdmUgYW55dGhpbmcgZm9yIGBtZWRpYXRlayxtdDc2MjFgIG9yIGBtZWRpYXRlayxtdDc1MzBgPyBJJ2xsIGNoZWNrIGFuZCBzZWUuIE1heWJlIHRoZXJlIGlzIHNvbWV0aGluZyBhbHJlYWR5IHNldCB1cCFcblxuXG4iLCJJbnB1dFRva2VucyI6MjQ4NDAsIk91dHB1dFRva2VucyI6MjgsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxNDYsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjBUMjA6NDg6MjIuMjE5NjMxOTNaIiwiU2VxIjozMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE1NDc3NDk4NzAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwibWVkaWF0ZWssbXQ3NjIxXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcIlwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJEb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvYnVzL3BhbG1idXMueWFtbD01Nj1leGFtcGxlczpcXG4tLVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9idXMvcGFsbWJ1cy55YW1sLTY5LSAgICAgICAgICAgICNpbnRlcnJ1cHQtY2VsbHMgPSBcXHUwMDNjMlxcdTAwM2U7XFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2J1cy9wYWxtYnVzLnlhbWw6NzA6ICAgICAgICAgICAgY29tcGF0aWJsZSA9IFxcXCJtZWRpYXRlayxtdDc2MjEtZ3Bpb1xcXCI7XFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2J1cy9wYWxtYnVzLnlhbWwtNzEtICAgICAgICAgICAgZ3Bpby1jb250cm9sbGVyO1xcbi0tXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2Nsb2NrL21lZGlhdGVrLG10NzYyMS1zeXNjLnlhbWwtMy0tLS1cXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvY2xvY2svbWVkaWF0ZWssbXQ3NjIxLXN5c2MueWFtbDo0OiRpZDogaHR0cDovL2RldmljZXRyZWUub3JnL3NjaGVtYXMvY2xvY2svbWVkaWF0ZWssbXQ3NjIxLXN5c2MueWFtbCNcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvY2xvY2svbWVkaWF0ZWssbXQ3NjIxLXN5c2MueWFtbC01LSRzY2hlbWE6IGh0dHA6Ly9kZXZpY2V0cmVlLm9yZy9tZXRhLXNjaGVtYXMvY29yZS55YW1sI1xcbi0tXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2Nsb2NrL21lZGlhdGVrLG10NzYyMS1zeXNjLnlhbWw9MzA9cHJvcGVydGllczpcXG4tLVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9jbG9jay9tZWRpYXRlayxtdDc2MjEtc3lzYy55YW1sLTMyLSAgICBpdGVtczpcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvY2xvY2svbWVkaWF0ZWssbXQ3NjIxLXN5c2MueWFtbDozMzogICAgICAtIGNvbnN0OiBtZWRpYXRlayxtdDc2MjEtc3lzY1xcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9jbG9jay9tZWRpYXRlayxtdDc2MjEtc3lzYy55YW1sLTM0LSAgICAgIC0gY29uc3Q6IHN5c2Nvblxcbi0tXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2Nsb2NrL21lZGlhdGVrLG10NzYyMS1zeXNjLnlhbWw9Njc9ZXhhbXBsZXM6XFxuLS1cXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvY2xvY2svbWVkaWF0ZWssbXQ3NjIxLXN5c2MueWFtbC03MS0gICAgc3lzYzogc3lzY0AwIHtcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvY2xvY2svbWVkaWF0ZWssbXQ3NjIxLXN5c2MueWFtbDo3MjogICAgICBjb21wYXRpYmxlID0gXFxcIm1lZGlhdGVrLG10NzYyMS1zeXNjXFxcIiwgXFxcInN5c2NvblxcXCI7XFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2Nsb2NrL21lZGlhdGVrLG10NzYyMS1zeXNjLnlhbWwtNzMtICAgICAgcmVnID0gXFx1MDAzYzB4MCAweDEwMFxcdTAwM2U7XFxuLS1cXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvZ3Bpby9tZWRpYXRlayxtdDc2MjEtZ3Bpby55YW1sLTMtLS0tXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2dwaW8vbWVkaWF0ZWssbXQ3NjIxLWdwaW8ueWFtbDo0OiRpZDogaHR0cDovL2RldmljZXRyZWUub3JnL3NjaGVtYXMvZ3Bpby9tZWRpYXRlayxtdDc2MjEtZ3Bpby55YW1sI1xcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9ncGlvL21lZGlhdGVrLG10NzYyMS1ncGlvLnlhbWwtNS0kc2NoZW1hOiBodHRwOi8vZGV2aWNldHJlZS5vcmcvbWV0YS1zY2hlbWFzL2NvcmUueWFtbCNcXG4tLVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9ncGlvL21lZGlhdGVrLG10NzYyMS1ncGlvLnlhbWw9MTk9cHJvcGVydGllczpcXG4tLVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9ncGlvL21lZGlhdGVrLG10NzYyMS1ncGlvLnlhbWwtMjMtICBjb21wYXRpYmxlOlxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9ncGlvL21lZGlhdGVrLG10NzYyMS1ncGlvLnlhbWw6MjQ6ICAgIGNvbnN0OiBtZWRpYXRlayxtdDc2MjEtZ3Bpb1xcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9ncGlvL21lZGlhdGVrLG10NzYyMS1ncGlvLnlhbWwtMjUtXFxuLS1cXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvZ3Bpby9tZWRpYXRlayxtdDc2MjEtZ3Bpby55YW1sPTU1PWV4YW1wbGVzOlxcbi0tXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2dwaW8vbWVkaWF0ZWssbXQ3NjIxLWdwaW8ueWFtbC02MC0gICAgZ3Bpb0A2MDAge1xcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9ncGlvL21lZGlhdGVrLG10NzYyMS1ncGlvLnlhbWw6NjE6ICAgICAgY29tcGF0aWJsZSA9IFxcXCJtZWRpYXRlayxtdDc2MjEtZ3Bpb1xcXCI7XFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2dwaW8vbWVkaWF0ZWssbXQ3NjIxLWdwaW8ueWFtbC02Mi0gICAgICByZWcgPSBcXHUwMDNjMHg2MDAgMHgxMDBcXHUwMDNlO1xcbi0tXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2kyYy9tZWRpYXRlayxtdDc2MjEtaTJjLnlhbWwtMy0tLS1cXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvaTJjL21lZGlhdGVrLG10NzYyMS1pMmMueWFtbDo0OiRpZDogaHR0cDovL2RldmljZXRyZWUub3JnL3NjaGVtYXMvaTJjL21lZGlhdGVrLG10NzYyMS1pMmMueWFtbCNcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvaTJjL21lZGlhdGVrLG10NzYyMS1pMmMueWFtbC01LSRzY2hlbWE6IGh0dHA6Ly9kZXZpY2V0cmVlLm9yZy9tZXRhLXNjaGVtYXMvY29yZS55YW1sI1xcbi0tXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2kyYy9tZWRpYXRlayxtdDc2MjEtaTJjLnlhbWw9MTU9cHJvcGVydGllczpcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvaTJjL21lZGlhdGVrLG10NzYyMS1pMmMueWFtbC0xNi0gIGNvbXBhdGlibGU6XFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2kyYy9tZWRpYXRlayxtdDc2MjEtaTJjLnlhbWw6MTc6ICAgIGNvbnN0OiBtZWRpYXRlayxtdDc2MjEtaTJjXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2kyYy9tZWRpYXRlayxtdDc2MjEtaTJjLnlhbWwtMTgtXFxuLS1cXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvaTJjL21lZGlhdGVrLG10NzYyMS1pMmMueWFtbD00Mz1leGFtcGxlczpcXG4tLVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9pMmMvbWVkaWF0ZWssbXQ3NjIxLWkyYy55YW1sLTQ4LSAgICBpMmM6IGkyY0A5MDAge1xcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9pMmMvbWVkaWF0ZWssbXQ3NjIxLWkyYy55YW1sOjQ5OiAgICAgIGNvbXBhdGlibGUgPSBcXFwibWVkaWF0ZWssbXQ3NjIxLWkyY1xcXCI7XFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2kyYy9tZWRpYXRlayxtdDc2MjEtaTJjLnlhbWwtNTAtICAgICAgcmVnID0gXFx1MDAzYzB4OTAwIDB4MTAwXFx1MDAzZTtcXG4tLVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9tZW1vcnktY29udHJvbGxlcnMvbWVkaWF0ZWssbXQ3NjIxLW1lbWMueWFtbC0zLS0tLVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9tZW1vcnktY29udHJvbGxlcnMvbWVkaWF0ZWssbXQ3NjIxLW1lbWMueWFtbDo0OiRpZDogaHR0cDovL2RldmljZXRyZWUub3JnL3NjaGVtYXMvbWVtb3J5LWNvbnRyb2xsZXJzL21lZGlhdGVrLG10NzYyMS1tZW1jLnlhbWwjXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL21lbW9yeS1jb250cm9sbGVycy9tZWRpYXRlayxtdDc2MjEtbWVtYy55YW1sLTUtJHNjaGVtYTogaHR0cDovL2RldmljZXRyZWUub3JnL21ldGEtc2NoZW1hcy9jb3JlLnlhbWwjXFxuLS1cXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbWVtb3J5LWNvbnRyb2xsZXJzL21lZGlhdGVrLG10NzYyMS1tZW1jLnlhbWw9MTI9cHJvcGVydGllczpcXG4tLVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9tZW1vcnktY29udHJvbGxlcnMvbWVkaWF0ZWssbXQ3NjIxLW1lbWMueWFtbC0xNC0gICAgaXRlbXM6XFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL21lbW9yeS1jb250cm9sbGVycy9tZWRpYXRlayxtdDc2MjEtbWVtYy55YW1sOjE1OiAgICAgIC0gY29uc3Q6IG1lZGlhdGVrLG10NzYyMS1tZW1jXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL21lbW9yeS1jb250cm9sbGVycy9tZWRpYXRlayxtdDc2MjEtbWVtYy55YW1sLTE2LSAgICAgIC0gY29uc3Q6IHN5c2Nvblxcbi0tXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL21lbW9yeS1jb250cm9sbGVycy9tZWRpYXRlayxtdDc2MjEtbWVtYy55YW1sPTI3PWV4YW1wbGVzOlxcbi0tXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL21lbW9yeS1jb250cm9sbGVycy9tZWRpYXRlayxtdDc2MjEtbWVtYy55YW1sLTI5LSAgICBtZW1vcnktY29udHJvbGxlckA1MDAwIHtcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbWVtb3J5LWNvbnRyb2xsZXJzL21lZGlhdGVrLG10NzYyMS1tZW1jLnlhbWw6MzA6ICAgICAgICBjb21wYXRpYmxlID0gXFxcIm1lZGlhdGVrLG10NzYyMS1tZW1jXFxcIiwgXFxcInN5c2NvblxcXCI7XFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL21lbW9yeS1jb250cm9sbGVycy9tZWRpYXRlayxtdDc2MjEtbWVtYy55YW1sLTMxLSAgICAgICAgcmVnID0gXFx1MDAzYzB4NTAwMCAweDEwMDBcXHUwMDNlO1xcbi0tXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL21pcHMvcmFsaW5rLnlhbWw9MTU9cHJvcGVydGllczpcXG4tLVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9taXBzL3JhbGluay55YW1sLTgzLSAgICAgICAgICAgICAgLSB0cGxpbmssaGMyMjAtZzUtdjFcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbWlwcy9yYWxpbmsueWFtbDo4NDogICAgICAgICAgLSBjb25zdDogbWVkaWF0ZWssbXQ3NjIxLXNvY1xcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9taXBzL3JhbGluay55YW1sLTg1LVxcbi0tXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9kc2EvbWVkaWF0ZWssbXQ3NTMwLnlhbWw9NzY9cHJvcGVydGllczpcXG4tLVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvZHNhL21lZGlhdGVrLG10NzUzMC55YW1sLTg4LSAgICAgICAgICBNdWx0aS1jaGlwIG1vZHVsZSBNVDc1MzAgaW4gTVQ3NjIxQVQsIE1UNzYyMURBVCBhbmQgTVQ3NjIxU1QgU29Dc1xcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvZHNhL21lZGlhdGVrLG10NzUzMC55YW1sOjg5OiAgICAgICAgY29uc3Q6IG1lZGlhdGVrLG10NzYyMVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvZHNhL21lZGlhdGVrLG10NzUzMC55YW1sLTkwLVxcbi0tXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9kc2EvbWVkaWF0ZWssbXQ3NTMwLnlhbWw9MjY5PWFsbE9mOlxcbi0tXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9kc2EvbWVkaWF0ZWssbXQ3NTMwLnlhbWwtMzA3LSAgICAgICAgY29tcGF0aWJsZTpcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2RzYS9tZWRpYXRlayxtdDc1MzAueWFtbDozMDg6ICAgICAgICAgIGNvbnN0OiBtZWRpYXRlayxtdDc2MjFcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2RzYS9tZWRpYXRlayxtdDc1MzAueWFtbC0zMDktICAgIHRoZW46XFxuLS1cXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2RzYS9tZWRpYXRlayxtdDc1MzAueWFtbD0zMzA9ZXhhbXBsZXM6XFxuLS1cXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2RzYS9tZWRpYXRlayxtdDc1MzAueWFtbC01MjgtICAgICAgICBzd2l0Y2hAMWYge1xcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvZHNhL21lZGlhdGVrLG10NzUzMC55YW1sOjUyOTogICAgICAgICAgICBjb21wYXRpYmxlID0gXFxcIm1lZGlhdGVrLG10NzYyMVxcXCI7XFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9kc2EvbWVkaWF0ZWssbXQ3NTMwLnlhbWwtNTMwLSAgICAgICAgICAgIHJlZyA9IFxcdTAwM2MweDFmXFx1MDAzZTtcXG4tLVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvZHNhL21lZGlhdGVrLG10NzUzMC55YW1sLTYxNC0gICAgICAgICAgICBzd2l0Y2hAMWYge1xcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvZHNhL21lZGlhdGVrLG10NzUzMC55YW1sOjYxNTogICAgICAgICAgICAgICAgY29tcGF0aWJsZSA9IFxcXCJtZWRpYXRlayxtdDc2MjFcXFwiO1xcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvZHNhL21lZGlhdGVrLG10NzUzMC55YW1sLTYxNi0gICAgICAgICAgICAgICAgcmVnID0gXFx1MDAzYzB4MWZcXHUwMDNlO1xcbi0tXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9kc2EvbWVkaWF0ZWssbXQ3NTMwLnlhbWwtNzA0LSAgICAgICAgICAgIHN3aXRjaEAxZiB7XFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9kc2EvbWVkaWF0ZWssbXQ3NTMwLnlhbWw6NzA1OiAgICAgICAgICAgICAgICBjb21wYXRpYmxlID0gXFxcIm1lZGlhdGVrLG10NzYyMVxcXCI7XFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9kc2EvbWVkaWF0ZWssbXQ3NTMwLnlhbWwtNzA2LSAgICAgICAgICAgICAgICByZWcgPSBcXHUwMDNjMHgxZlxcdTAwM2U7XFxuLS1cXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2RzYS9tZWRpYXRlayxtdDc1MzAueWFtbC03ODQtICAgICAgICAgICAgc3dpdGNoQDFmIHtcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2RzYS9tZWRpYXRlayxtdDc1MzAueWFtbDo3ODU6ICAgICAgICAgICAgICAgIGNvbXBhdGlibGUgPSBcXFwibWVkaWF0ZWssbXQ3NjIxXFxcIjtcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2RzYS9tZWRpYXRlayxtdDc1MzAueWFtbC03ODYtICAgICAgICAgICAgICAgIHJlZyA9IFxcdTAwM2MweDFmXFx1MDAzZTtcXG4tLVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvbWVkaWF0ZWssbmV0LnlhbWw9MTc9cHJvcGVydGllczpcXG4tLVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvbWVkaWF0ZWssbmV0LnlhbWwtMjEtICAgICAgLSBtZWRpYXRlayxtdDc2MjMtZXRoXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9tZWRpYXRlayxuZXQueWFtbDoyMjogICAgICAtIG1lZGlhdGVrLG10NzYyMS1ldGhcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L21lZGlhdGVrLG5ldC55YW1sLTIzLSAgICAgIC0gbWVkaWF0ZWssbXQ3NjIyLWV0aFxcbi0tXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9tZWRpYXRlayxuZXQueWFtbD0xMzg9YWxsT2Y6XFxuLS1cXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L21lZGlhdGVrLG5ldC55YW1sLTE4My0gICAgICAgICAgICBlbnVtOlxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvbWVkaWF0ZWssbmV0LnlhbWw6MTg0OiAgICAgICAgICAgICAgLSBtZWRpYXRlayxtdDc2MjEtZXRoXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9tZWRpYXRlayxuZXQueWFtbC0xODUtICAgIHRoZW46XFxuLS1cXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvcGNpL21lZGlhdGVrLG10NzYyMS1wY2llLnlhbWwtMy0tLS1cXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvcGNpL21lZGlhdGVrLG10NzYyMS1wY2llLnlhbWw6NDokaWQ6IGh0dHA6Ly9kZXZpY2V0cmVlLm9yZy9zY2hlbWFzL3BjaS9tZWRpYXRlayxtdDc2MjEtcGNpZS55YW1sI1xcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9wY2kvbWVkaWF0ZWssbXQ3NjIxLXBjaWUueWFtbC01LSRzY2hlbWE6IGh0dHA6Ly9kZXZpY2V0cmVlLm9yZy9tZXRhLXNjaGVtYXMvY29yZS55YW1sI1xcbi0tXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3BjaS9tZWRpYXRlayxtdDc2MjEtcGNpZS55YW1sPTQ4PXByb3BlcnRpZXM6XFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3BjaS9tZWRpYXRlayxtdDc2MjEtcGNpZS55YW1sLTQ5LSAgY29tcGF0aWJsZTpcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvcGNpL21lZGlhdGVrLG10NzYyMS1wY2llLnlhbWw6NTA6ICAgIGNvbnN0OiBtZWRpYXRlayxtdDc2MjEtcGNpXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3BjaS9tZWRpYXRlayxtdDc2MjEtcGNpZS55YW1sLTUxLVxcbi0tXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3BjaS9tZWRpYXRlayxtdDc2MjEtcGNpZS55YW1sPTEwNj1leGFtcGxlczpcXG4tLVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9wY2kvbWVkaWF0ZWssbXQ3NjIxLXBjaWUueWFtbC0xMTEtICAgIHBjaWU6IHBjaWVAMWUxNDAwMDAge1xcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9wY2kvbWVkaWF0ZWssbXQ3NjIxLXBjaWUueWFtbDoxMTI6ICAgICAgICBjb21wYXRpYmxlID0gXFxcIm1lZGlhdGVrLG10NzYyMS1wY2lcXFwiO1xcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9wY2kvbWVkaWF0ZWssbXQ3NjIxLXBjaWUueWFtbC0xMTMtICAgICAgICByZWcgPSBcXHUwMDNjMHgxZTE0MDAwMCAweDEwMFxcdTAwM2UsXFxuLS1cXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvcGh5L21lZGlhdGVrLG10NzYyMS1wY2ktcGh5LnlhbWwtMy0tLS1cXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvcGh5L21lZGlhdGVrLG10NzYyMS1wY2ktcGh5LnlhbWw6NDokaWQ6IGh0dHA6Ly9kZXZpY2V0cmVlLm9yZy9zY2hlbWFzL3BoeS9tZWRpYXRlayxtdDc2MjEtcGNpLXBoeS55YW1sI1xcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9waHkvbWVkaWF0ZWssbXQ3NjIxLXBjaS1waHkueWFtbC01LSRzY2hlbWE6IGh0dHA6Ly9kZXZpY2V0cmVlLm9yZy9tZXRhLXNjaGVtYXMvY29yZS55YW1sI1xcbi0tXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3BoeS9tZWRpYXRlayxtdDc2MjEtcGNpLXBoeS55YW1sPTEyPXByb3BlcnRpZXM6XFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3BoeS9tZWRpYXRlayxtdDc2MjEtcGNpLXBoeS55YW1sLTEzLSAgY29tcGF0aWJsZTpcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvcGh5L21lZGlhdGVrLG10NzYyMS1wY2ktcGh5LnlhbWw6MTQ6ICAgIGNvbnN0OiBtZWRpYXRlayxtdDc2MjEtcGNpLXBoeVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9waHkvbWVkaWF0ZWssbXQ3NjIxLXBjaS1waHkueWFtbC0xNS1cXG4tLVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9waHkvbWVkaWF0ZWssbXQ3NjIxLXBjaS1waHkueWFtbD0zND1leGFtcGxlczpcXG4tLVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9waHkvbWVkaWF0ZWssbXQ3NjIxLXBjaS1waHkueWFtbC0zNi0gICAgcGNpZTBfcGh5OiBwY2llLXBoeUAxZTE0OTAwMCB7XFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3BoeS9tZWRpYXRlayxtdDc2MjEtcGNpLXBoeS55YW1sOjM3OiAgICAgIGNvbXBhdGlibGUgPSBcXFwibWVkaWF0ZWssbXQ3NjIxLXBjaS1waHlcXFwiO1xcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9waHkvbWVkaWF0ZWssbXQ3NjIxLXBjaS1waHkueWFtbC0zOC0gICAgICByZWcgPSBcXHUwMDNjMHgxZTE0OTAwMCAweDA3MDBcXHUwMDNlO1xcbi0tXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3BpbmN0cmwvbWVkaWF0ZWssbXQ3NjIxLXBpbmN0cmwueWFtbC0zLS0tLVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9waW5jdHJsL21lZGlhdGVrLG10NzYyMS1waW5jdHJsLnlhbWw6NDokaWQ6IGh0dHA6Ly9kZXZpY2V0cmVlLm9yZy9zY2hlbWFzL3BpbmN0cmwvbWVkaWF0ZWssbXQ3NjIxLXBpbmN0cmwueWFtbCNcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvcGluY3RybC9tZWRpYXRlayxtdDc2MjEtcGluY3RybC55YW1sLTUtJHNjaGVtYTogaHR0cDovL2RldmljZXRyZWUub3JnL21ldGEtc2NoZW1hcy9jb3JlLnlhbWwjXFxuLS1cXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3Mvd2F0Y2hkb2cvbWVkaWF0ZWssbXQ3NjIxLXdkdC55YW1sLTMtLS0tXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3dhdGNoZG9nL21lZGlhdGVrLG10NzYyMS13ZHQueWFtbDo0OiRpZDogaHR0cDovL2RldmljZXRyZWUub3JnL3NjaGVtYXMvd2F0Y2hkb2cvbWVkaWF0ZWssbXQ3NjIxLXdkdC55YW1sI1xcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy93YXRjaGRvZy9tZWRpYXRlayxtdDc2MjEtd2R0LnlhbWwtNS0kc2NoZW1hOiBodHRwOi8vZGV2aWNldHJlZS5vcmcvbWV0YS1zY2hlbWFzL2NvcmUueWFtbCNcXG4tLVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy93YXRjaGRvZy9tZWRpYXRlayxtdDc2MjEtd2R0LnlhbWw9MTU9cHJvcGVydGllczpcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3Mvd2F0Y2hkb2cvbWVkaWF0ZWssbXQ3NjIxLXdkdC55YW1sLTE2LSAgY29tcGF0aWJsZTpcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3Mvd2F0Y2hkb2cvbWVkaWF0ZWssbXQ3NjIxLXdkdC55YW1sOjE3OiAgICBjb25zdDogbWVkaWF0ZWssbXQ3NjIxLXdkdFxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy93YXRjaGRvZy9tZWRpYXRlayxtdDc2MjEtd2R0LnlhbWwtMTgtXFxuLS1cXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3Mvd2F0Y2hkb2cvbWVkaWF0ZWssbXQ3NjIxLXdkdC55YW1sPTM0PWV4YW1wbGVzOlxcbi0tXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3dhdGNoZG9nL21lZGlhdGVrLG10NzYyMS13ZHQueWFtbC0zNi0gICAgd2F0Y2hkb2dAMTAwIHtcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3Mvd2F0Y2hkb2cvbWVkaWF0ZWssbXQ3NjIxLXdkdC55YW1sOjM3OiAgICAgICAgY29tcGF0aWJsZSA9IFxcXCJtZWRpYXRlayxtdDc2MjEtd2R0XFxcIjtcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3Mvd2F0Y2hkb2cvbWVkaWF0ZWssbXQ3NjIxLXdkdC55YW1sLTM4LSAgICAgICAgcmVnID0gXFx1MDAzYzB4MTAwIDB4MTAwXFx1MDAzZTtcXG4tLVxcbk1BSU5UQUlORVJTPTE2NjAzPVM6XFx0TWFpbnRhaW5lZFxcbk1BSU5UQUlORVJTOjE2NjA0OkY6XFx0RG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2Nsb2NrL21lZGlhdGVrLG10NzYyMS1zeXNjLnlhbWxcXG5NQUlOVEFJTkVSUy0xNjYwNS1GOlxcdGRyaXZlcnMvY2xrL3JhbGluay9jbGstbXQ3NjIxLmNcXG4tLVxcbk1BSU5UQUlORVJTPTE2NjA5PVM6XFx0TWFpbnRhaW5lZFxcbk1BSU5UQUlORVJTOjE2NjEwOkY6XFx0RG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3BjaS9tZWRpYXRlayxtdDc2MjEtcGNpZS55YW1sXFxuTUFJTlRBSU5FUlMtMTY2MTEtRjpcXHRkcml2ZXJzL3BjaS9jb250cm9sbGVyL3BjaWUtbXQ3NjIxLmNcXG4tLVxcbk1BSU5UQUlORVJTPTE2NjE1PVM6XFx0TWFpbnRhaW5lZFxcbk1BSU5UQUlORVJTOjE2NjE2OkY6XFx0RG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3BoeS9tZWRpYXRlayxtdDc2MjEtcGNpLXBoeS55YW1sXFxuTUFJTlRBSU5FUlMtMTY2MTctRjpcXHRkcml2ZXJzL3BoeS9yYWxpbmsvcGh5LW10NzYyMS1wY2kuY1xcbi0tXFxuTUFJTlRBSU5FUlM9MTY2MjI9UzpcXHRNYWludGFpbmVkXFxuTUFJTlRBSU5FUlM6MTY2MjM6RjpcXHREb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvaTJjL21lZGlhdGVrLG10NzYyMS1pMmMueWFtbFxcbk1BSU5UQUlORVJTLTE2NjI0LUY6XFx0ZHJpdmVycy9pMmMvYnVzc2VzL2kyYy1tdDc2MjEuY1xcbi0tXFxuTUFJTlRBSU5FUlM9MjEzMjM9RjpcXHREb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvcGluY3RybC9tZWRpYXRlayxtdDc2MjAtcGluY3RybC55YW1sXFxuTUFJTlRBSU5FUlM6MjEzMjQ6RjpcXHREb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvcGluY3RybC9tZWRpYXRlayxtdDc2MjEtcGluY3RybC55YW1sXFxuTUFJTlRBSU5FUlMtMjEzMjUtRjpcXHREb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvcGluY3RybC9tZWRpYXRlayxtdDc2eDgtcGluY3RybC55YW1sXFxuLS1cXG5hcmNoL2FybTY0L2Jvb3QvZHRzL2Fpcm9oYS9lbjc1ODEuZHRzaT0zMjI9XFx0XFx0aTJjMDogaTJjQDFmYmY4MDAwIHtcXG5hcmNoL2FybTY0L2Jvb3QvZHRzL2Fpcm9oYS9lbjc1ODEuZHRzaTozMjM6XFx0XFx0XFx0Y29tcGF0aWJsZSA9IFxcXCJtZWRpYXRlayxtdDc2MjEtaTJjXFxcIjtcXG5hcmNoL2FybTY0L2Jvb3QvZHRzL2Fpcm9oYS9lbjc1ODEuZHRzaS0zMjQtXFx0XFx0XFx0cmVnID0gXFx1MDAzYzB4MCAweDFmYmY4MDAwIDB4MCAweDEwMFxcdTAwM2U7XFxuLS1cXG5hcmNoL2FybTY0L2Jvb3QvZHRzL2Fpcm9oYS9lbjc1ODEuZHRzaT0zMzY9XFx0XFx0aTJjMTogaTJjQDFmYmY4MTAwIHtcXG5hcmNoL2FybTY0L2Jvb3QvZHRzL2Fpcm9oYS9lbjc1ODEuZHRzaTozMzc6XFx0XFx0XFx0Y29tcGF0aWJsZSA9IFxcXCJtZWRpYXRlayxtdDc2MjEtaTJjXFxcIjtcXG5hcmNoL2FybTY0L2Jvb3QvZHRzL2Fpcm9oYS9lbjc1ODEuZHRzaS0zMzgtXFx0XFx0XFx0cmVnID0gXFx1MDAzYzB4MCAweDFmYmY4MTAwIDB4MCAweDEwMFxcdTAwM2U7XFxuLS1cXG5hcmNoL21pcHMvYm9vdC9kdHMvcmFsaW5rL210NzYyMS1nbnViZWUtZ2ItcGMxLmR0cz05PS8ge1xcbmFyY2gvbWlwcy9ib290L2R0cy9yYWxpbmsvbXQ3NjIxLWdudWJlZS1nYi1wYzEuZHRzOjEwOlxcdGNvbXBhdGlibGUgPSBcXFwiZ251YmVlLGdiLXBjMVxcXCIsIFxcXCJtZWRpYXRlayxtdDc2MjEtc29jXFxcIjtcXG5hcmNoL21pcHMvYm9vdC9kdHMvcmFsaW5rL210NzYyMS1nbnViZWUtZ2ItcGMxLmR0cy0xMS1cXHRtb2RlbCA9IFxcXCJHbnVCZWUgR0ItUEMxXFxcIjtcXG4tLVxcbmFyY2gvbWlwcy9ib290L2R0cy9yYWxpbmsvbXQ3NjIxLWdudWJlZS1nYi1wYzIuZHRzPTk9LyB7XFxuYXJjaC9taXBzL2Jvb3QvZHRzL3JhbGluay9tdDc2MjEtZ251YmVlLWdiLXBjMi5kdHM6MTA6XFx0Y29tcGF0aWJsZSA9IFxcXCJnbnViZWUsZ2ItcGMyXFxcIiwgXFxcIm1lZGlhdGVrLG10NzYyMS1zb2NcXFwiO1xcbmFyY2gvbWlwcy9ib290L2R0cy9yYWxpbmsvbXQ3NjIxLWdudWJlZS1nYi1wYzIuZHRzLTExLVxcdG1vZGVsID0gXFxcIkdudUJlZSBHQi1QQzJcXFwiO1xcbi0tXFxuYXJjaC9taXBzL2Jvb3QvZHRzL3JhbGluay9tdDc2MjEtdHBsaW5rLWhjMjIwLWc1LXYxLmR0cz0xMD0vIHtcXG5hcmNoL21pcHMvYm9vdC9kdHMvcmFsaW5rL210NzYyMS10cGxpbmstaGMyMjAtZzUtdjEuZHRzOjExOlxcdGNvbXBhdGlibGUgPSBcXFwidHBsaW5rLGhjMjIwLWc1LXYxXFxcIiwgXFxcIm1lZGlhdGVrLG10NzYyMS1zb2NcXFwiO1xcbmFyY2gvbWlwcy9ib290L2R0cy9yYWxpbmsvbXQ3NjIxLXRwbGluay1oYzIyMC1nNS12MS5kdHMtMTItXFx0bW9kZWwgPSBcXFwiVFAtTGluayBIQzIyMCBHNSB2MVxcXCI7XFxuLS1cXG5hcmNoL21pcHMvYm9vdC9kdHMvcmFsaW5rL210NzYyMS5kdHNpPTc9LyB7XFxuYXJjaC9taXBzL2Jvb3QvZHRzL3JhbGluay9tdDc2MjEuZHRzaTo4OlxcdGNvbXBhdGlibGUgPSBcXFwibWVkaWF0ZWssbXQ3NjIxLXNvY1xcXCI7XFxuYXJjaC9taXBzL2Jvb3QvZHRzL3JhbGluay9tdDc2MjEuZHRzaS05LVxcbi0tXFxuYXJjaC9taXBzL2Jvb3QvZHRzL3JhbGluay9tdDc2MjEuZHRzaT0xNTU9XFx0XFx0c3lzYzogc3lzY29uQDAge1xcbmFyY2gvbWlwcy9ib290L2R0cy9yYWxpbmsvbXQ3NjIxLmR0c2k6MTU2OlxcdFxcdFxcdGNvbXBhdGlibGUgPSBcXFwibWVkaWF0ZWssbXQ3NjIxLXN5c2NcXFwiLCBcXFwic3lzY29uXFxcIjtcXG5hcmNoL21pcHMvYm9vdC9kdHMvcmFsaW5rL210NzYyMS5kdHNpLTE1Ny1cXHRcXHRcXHRyZWcgPSBcXHUwMDNjMHgwIDB4MTAwXFx1MDAzZTtcXG4tLVxcbmFyY2gvbWlwcy9ib290L2R0cy9yYWxpbmsvbXQ3NjIxLmR0c2k9MTY5PVxcdFxcdHdkdDogd2F0Y2hkb2dAMTAwIHtcXG5hcmNoL21pcHMvYm9vdC9kdHMvcmFsaW5rL210NzYyMS5kdHNpOjE3MDpcXHRcXHRcXHRjb21wYXRpYmxlID0gXFxcIm1lZGlhdGVrLG10NzYyMS13ZHRcXFwiO1xcbmFyY2gvbWlwcy9ib290L2R0cy9yYWxpbmsvbXQ3NjIxLmR0c2ktMTcxLVxcdFxcdFxcdHJlZyA9IFxcdTAwM2MweDEwMCAweDEwMFxcdTAwM2U7XFxuLS1cXG5hcmNoL21pcHMvYm9vdC9kdHMvcmFsaW5rL210NzYyMS5kdHNpPTE3NT1cXHRcXHRncGlvOiBncGlvQDYwMCB7XFxuYXJjaC9taXBzL2Jvb3QvZHRzL3JhbGluay9tdDc2MjEuZHRzaToxNzY6XFx0XFx0XFx0Y29tcGF0aWJsZSA9IFxcXCJtZWRpYXRlayxtdDc2MjEtZ3Bpb1xcXCI7XFxuYXJjaC9taXBzL2Jvb3QvZHRzL3JhbGluay9tdDc2MjEuZHRzaS0xNzctXFx0XFx0XFx0cmVnID0gXFx1MDAzYzB4NjAwIDB4MTAwXFx1MDAzZTtcXG4tLVxcbmFyY2gvbWlwcy9ib290L2R0cy9yYWxpbmsvbXQ3NjIxLmR0c2k9MTkwPVxcdFxcdGkyYzogaTJjQDkwMCB7XFxuYXJjaC9taXBzL2Jvb3QvZHRzL3JhbGluay9tdDc2MjEuZHRzaToxOTE6XFx0XFx0XFx0Y29tcGF0aWJsZSA9IFxcXCJtZWRpYXRlayxtdDc2MjEtaTJjXFxcIjtcXG5hcmNoL21pcHMvYm9vdC9kdHMvcmFsaW5rL210NzYyMS5kdHNpLTE5Mi1cXHRcXHRcXHRyZWcgPSBcXHUwMDNjMHg5MDAgMHgxMDBcXHUwMDNlO1xcbi0tXFxuYXJjaC9taXBzL2Jvb3QvZHRzL3JhbGluay9tdDc2MjEuZHRzaT0yMDk9XFx0XFx0bWVtYzogbWVtb3J5LWNvbnRyb2xsZXJANTAwMCB7XFxuYXJjaC9taXBzL2Jvb3QvZHRzL3JhbGluay9tdDc2MjEuZHRzaToyMTA6XFx0XFx0XFx0Y29tcGF0aWJsZSA9IFxcXCJtZWRpYXRlayxtdDc2MjEtbWVtY1xcXCIsIFxcXCJzeXNjb25cXFwiO1xcbmFyY2gvbWlwcy9ib290L2R0cy9yYWxpbmsvbXQ3NjIxLmR0c2ktMjExLVxcdFxcdFxcdHJlZyA9IFxcdTAwM2MweDUwMDAgMHgxMDAwXFx1MDAzZTtcXG4tLVxcbmFyY2gvbWlwcy9ib290L2R0cy9yYWxpbmsvbXQ3NjIxLmR0c2k9MzY0PVxcdGV0aGVybmV0OiBldGhlcm5ldEAxZTEwMDAwMCB7XFxuYXJjaC9taXBzL2Jvb3QvZHRzL3JhbGluay9tdDc2MjEuZHRzaTozNjU6XFx0XFx0Y29tcGF0aWJsZSA9IFxcXCJtZWRpYXRlayxtdDc2MjEtZXRoXFxcIjtcXG5hcmNoL21pcHMvYm9vdC9kdHMvcmFsaW5rL210NzYyMS5kdHNpLTM2Ni1cXHRcXHRyZWcgPSBcXHUwMDNjMHgxZTEwMDAwMCAweDEwMDAwXFx1MDAzZTtcXG4tLVxcbmFyY2gvbWlwcy9ib290L2R0cy9yYWxpbmsvbXQ3NjIxLmR0c2k9Mzg5PVxcdFxcdFxcdHN3aXRjaDA6IHN3aXRjaEAxZiB7XFxuYXJjaC9taXBzL2Jvb3QvZHRzL3JhbGluay9tdDc2MjEuZHRzaTozOTA6XFx0XFx0XFx0XFx0Y29tcGF0aWJsZSA9IFxcXCJtZWRpYXRlayxtdDc2MjFcXFwiO1xcbmFyY2gvbWlwcy9ib290L2R0cy9yYWxpbmsvbXQ3NjIxLmR0c2ktMzkxLVxcdFxcdFxcdFxcdHJlZyA9IFxcdTAwM2MweDFmXFx1MDAzZTtcXG4tLVxcbmFyY2gvbWlwcy9ib290L2R0cy9yYWxpbmsvbXQ3NjIxLmR0c2k9NDkzPVxcdHBjaWU6IHBjaWVAMWUxNDAwMDAge1xcbmFyY2gvbWlwcy9ib290L2R0cy9yYWxpbmsvbXQ3NjIxLmR0c2k6NDk0OlxcdFxcdGNvbXBhdGlibGUgPSBcXFwibWVkaWF0ZWssbXQ3NjIxLXBjaVxcXCI7XFxuYXJjaC9taXBzL2Jvb3QvZHRzL3JhbGluay9tdDc2MjEuZHRzaS00OTUtXFx0XFx0cmVnID0gXFx1MDAzYzB4MWUxNDAwMDAgMHgxMDBcXHUwMDNlLCAvKiBob3N0LXBjaSBicmlkZ2UgcmVnaXN0ZXJzICovXFxuLS1cXG5hcmNoL21pcHMvYm9vdC9kdHMvcmFsaW5rL210NzYyMS5kdHNpPTU4ND1cXHRwY2llMF9waHk6IHBjaWUtcGh5QDFlMTQ5MDAwIHtcXG5hcmNoL21pcHMvYm9vdC9kdHMvcmFsaW5rL210NzYyMS5kdHNpOjU4NTpcXHRcXHRjb21wYXRpYmxlID0gXFxcIm1lZGlhdGVrLG10NzYyMS1wY2ktcGh5XFxcIjtcXG5hcmNoL21pcHMvYm9vdC9kdHMvcmFsaW5rL210NzYyMS5kdHNpLTU4Ni1cXHRcXHRyZWcgPSBcXHUwMDNjMHgxZTE0OTAwMCAweDA3MDBcXHUwMDNlO1xcbi0tXFxuYXJjaC9taXBzL2Jvb3QvZHRzL3JhbGluay9tdDc2MjEuZHRzaT01OTM9XFx0cGNpZTJfcGh5OiBwY2llLXBoeUAxZTE0YTAwMCB7XFxuYXJjaC9taXBzL2Jvb3QvZHRzL3JhbGluay9tdDc2MjEuZHRzaTo1OTQ6XFx0XFx0Y29tcGF0aWJsZSA9IFxcXCJtZWRpYXRlayxtdDc2MjEtcGNpLXBoeVxcXCI7XFxuYXJjaC9taXBzL2Jvb3QvZHRzL3JhbGluay9tdDc2MjEuZHRzaS01OTUtXFx0XFx0cmVnID0gXFx1MDAzYzB4MWUxNGEwMDAgMHgwNzAwXFx1MDAzZTtcXG4tLVxcbmFyY2gvbWlwcy9ib290L2R0cy9yYWxpbmsvbXQ3NjI4YS5kdHNpPTEzNT1cXHRcXHR3YXRjaGRvZzogd2F0Y2hkb2dAMTAwIHtcXG5hcmNoL21pcHMvYm9vdC9kdHMvcmFsaW5rL210NzYyOGEuZHRzaToxMzY6XFx0XFx0XFx0Y29tcGF0aWJsZSA9IFxcXCJtZWRpYXRlayxtdDc2MjEtd2R0XFxcIjtcXG5hcmNoL21pcHMvYm9vdC9kdHMvcmFsaW5rL210NzYyOGEuZHRzaS0xMzctXFx0XFx0XFx0cmVnID0gXFx1MDAzYzB4MTAwIDB4MTAwXFx1MDAzZTtcXG4tLVxcbmFyY2gvbWlwcy9ib290L2R0cy9yYWxpbmsvbXQ3NjI4YS5kdHNpPTE2Nj1cXHRcXHRncGlvOiBncGlvQDYwMCB7XFxuYXJjaC9taXBzL2Jvb3QvZHRzL3JhbGluay9tdDc2MjhhLmR0c2k6MTY3OlxcdFxcdFxcdGNvbXBhdGlibGUgPSBcXFwibWVkaWF0ZWssbXQ3NjIxLWdwaW9cXFwiO1xcbmFyY2gvbWlwcy9ib290L2R0cy9yYWxpbmsvbXQ3NjI4YS5kdHNpLTE2OC1cXHRcXHRcXHRyZWcgPSBcXHUwMDNjMHg2MDAgMHgxMDBcXHUwMDNlO1xcbi0tXFxuYXJjaC9taXBzL2Jvb3QvZHRzL3JhbGluay9tdDc2MjhhLmR0c2k9MTk3PVxcdFxcdGkyYzogaTJjQDkwMCB7XFxuYXJjaC9taXBzL2Jvb3QvZHRzL3JhbGluay9tdDc2MjhhLmR0c2k6MTk4OlxcdFxcdFxcdGNvbXBhdGlibGUgPSBcXFwibWVkaWF0ZWssbXQ3NjIxLWkyY1xcXCI7XFxuYXJjaC9taXBzL2Jvb3QvZHRzL3JhbGluay9tdDc2MjhhLmR0c2ktMTk5LVxcdFxcdFxcdHJlZyA9IFxcdTAwM2MweDkwMCAweDEwMFxcdTAwM2U7XFxuLS1cXG5hcmNoL21pcHMvcmFsaW5rL210NzYyMS5jPTE2Nz12b2lkIF9faW5pdCBwcm9tX3NvY19pbml0KHN0cnVjdCByYWxpbmtfc29jX2luZm8gKnNvY19pbmZvKVxcbi0tXFxuYXJjaC9taXBzL3JhbGluay9tdDc2MjEuYy0xOTEtXFx0aWYgKG10NzYyMV9zb2NfdmFsaWQoKSlcXG5hcmNoL21pcHMvcmFsaW5rL210NzYyMS5jOjE5MjpcXHRcXHRzb2NfaW5mby1cXHUwMDNlY29tcGF0aWJsZSA9IFxcXCJtZWRpYXRlayxtdDc2MjEtc29jXFxcIjtcXG5hcmNoL21pcHMvcmFsaW5rL210NzYyMS5jLTE5My1cXHRlbHNlXFxuLS1cXG5hcmNoL21pcHMvcmFsaW5rL29mLmM9MzI9c3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgbXRtaXBzX21lbWNfbWF0Y2hbXSA9IHtcXG5hcmNoL21pcHMvcmFsaW5rL29mLmM6MzM6XFx0eyAuY29tcGF0aWJsZSA9IFxcXCJtZWRpYXRlayxtdDc2MjEtbWVtY1xcXCIgfSxcXG5hcmNoL21pcHMvcmFsaW5rL29mLmMtMzQtXFx0eyAuY29tcGF0aWJsZSA9IFxcXCJyYWxpbmssbXQ3NjIwYS1tZW1jXFxcIiB9LFxcbi0tXFxuYXJjaC9taXBzL3JhbGluay9vZi5jPTQxPXN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIG10bWlwc19zeXNjX21hdGNoW10gPSB7XFxuYXJjaC9taXBzL3JhbGluay9vZi5jOjQyOlxcdHsgLmNvbXBhdGlibGUgPSBcXFwibWVkaWF0ZWssbXQ3NjIxLXN5c2NcXFwiIH0sXFxuYXJjaC9taXBzL3JhbGluay9vZi5jLTQzLVxcdHsgLmNvbXBhdGlibGUgPSBcXFwicmFsaW5rLG10NzYyMC1zeXNjXFxcIiB9LFxcbi0tXFxuZHJpdmVycy9jbGsvcmFsaW5rL2Nsay1tdDc2MjEuYz0zNTE9c3RhdGljIHZvaWQgX19pbml0IG10NzYyMV9jbGtfaW5pdChzdHJ1Y3QgZGV2aWNlX25vZGUgKm5vZGUpXFxuLS1cXG5kcml2ZXJzL2Nsay9yYWxpbmsvY2xrLW10NzYyMS5jLTQwNy19XFxuZHJpdmVycy9jbGsvcmFsaW5rL2Nsay1tdDc2MjEuYzo0MDg6Q0xLX09GX0RFQ0xBUkVfRFJJVkVSKG10NzYyMV9jbGssIFxcXCJtZWRpYXRlayxtdDc2MjEtc3lzY1xcXCIsIG10NzYyMV9jbGtfaW5pdCk7XFxuZHJpdmVycy9jbGsvcmFsaW5rL2Nsay1tdDc2MjEuYy00MDktXFxuLS1cXG5kcml2ZXJzL2Nsay9yYWxpbmsvY2xrLW10NzYyMS5jPTU2Nj1zdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBtdDc2MjFfY2xrX29mX21hdGNoW10gPSB7XFxuZHJpdmVycy9jbGsvcmFsaW5rL2Nsay1tdDc2MjEuYzo1Njc6XFx0eyAuY29tcGF0aWJsZSA9IFxcXCJtZWRpYXRlayxtdDc2MjEtc3lzY1xcXCIgfSxcXG5kcml2ZXJzL2Nsay9yYWxpbmsvY2xrLW10NzYyMS5jLTU2OC1cXHR7fVxcbi0tXFxuZHJpdmVycy9ncGlvL2dwaW8tbXQ3NjIxLmM9NDg4PXN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIG1lZGlhdGVrX2dwaW9fbWF0Y2hbXSA9IHtcXG5kcml2ZXJzL2dwaW8vZ3Bpby1tdDc2MjEuYzo0ODk6XFx0eyAuY29tcGF0aWJsZSA9IFxcXCJtZWRpYXRlayxtdDc2MjEtZ3Bpb1xcXCIgfSxcXG5kcml2ZXJzL2dwaW8vZ3Bpby1tdDc2MjEuYy00OTAtXFx0e30sXFxuLS1cXG5kcml2ZXJzL2kyYy9idXNzZXMvaTJjLW10NzYyMS5jPTI1MD1zdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBpMmNfbXRrX2R0X2lkc1tdID0ge1xcbmRyaXZlcnMvaTJjL2J1c3Nlcy9pMmMtbXQ3NjIxLmM6MjUxOlxcdHsgLmNvbXBhdGlibGUgPSBcXFwibWVkaWF0ZWssbXQ3NjIxLWkyY1xcXCIgfSxcXG5kcml2ZXJzL2kyYy9idXNzZXMvaTJjLW10NzYyMS5jLTI1Mi1cXHR7IC8qIHNlbnRpbmVsICovIH1cXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdDc1MzAtbWRpby5jPTEzOD1zdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBtdDc1MzBfb2ZfbWF0Y2hbXSA9IHtcXG5kcml2ZXJzL25ldC9kc2EvbXQ3NTMwLW1kaW8uYzoxMzk6XFx0eyAuY29tcGF0aWJsZSA9IFxcXCJtZWRpYXRlayxtdDc2MjFcXFwiLCAuZGF0YSA9IFxcdTAwMjZtdDc1M3hfdGFibGVbSURfTVQ3NjIxXSwgfSxcXG5kcml2ZXJzL25ldC9kc2EvbXQ3NTMwLW1kaW8uYy0xNDAtXFx0eyAuY29tcGF0aWJsZSA9IFxcXCJtZWRpYXRlayxtdDc1MzBcXFwiLCAuZGF0YSA9IFxcdTAwMjZtdDc1M3hfdGFibGVbSURfTVQ3NTMwXSwgfSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a19ldGhfc29jLmM9NTY0Nz1jb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIG9mX210a19tYXRjaFtdID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a19ldGhfc29jLmMtNTY0OC1cXHR7IC5jb21wYXRpYmxlID0gXFxcIm1lZGlhdGVrLG10MjcwMS1ldGhcXFwiLCAuZGF0YSA9IFxcdTAwMjZtdDI3MDFfZGF0YSB9LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a19ldGhfc29jLmM6NTY0OTpcXHR7IC5jb21wYXRpYmxlID0gXFxcIm1lZGlhdGVrLG10NzYyMS1ldGhcXFwiLCAuZGF0YSA9IFxcdTAwMjZtdDc2MjFfZGF0YSB9LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a19ldGhfc29jLmMtNTY1MC1cXHR7IC5jb21wYXRpYmxlID0gXFxcIm1lZGlhdGVrLG10NzYyMi1ldGhcXFwiLCAuZGF0YSA9IFxcdTAwMjZtdDc2MjJfZGF0YSB9LFxcbi0tXFxuZHJpdmVycy9wY2kvY29udHJvbGxlci9wY2llLW10NzYyMS5jPTUzMT1zdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBtdDc2MjFfcGNpZV9pZHNbXSA9IHtcXG5kcml2ZXJzL3BjaS9jb250cm9sbGVyL3BjaWUtbXQ3NjIxLmM6NTMyOlxcdHsgLmNvbXBhdGlibGUgPSBcXFwibWVkaWF0ZWssbXQ3NjIxLXBjaVxcXCIgfSxcXG5kcml2ZXJzL3BjaS9jb250cm9sbGVyL3BjaWUtbXQ3NjIxLmMtNTMzLVxcdHt9LFxcbi0tXFxuZHJpdmVycy9waHkvcmFsaW5rL3BoeS1tdDc2MjEtcGNpLmM9MzQxPXN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIG10NzYyMV9wY2lfcGh5X2lkc1tdID0ge1xcbmRyaXZlcnMvcGh5L3JhbGluay9waHktbXQ3NjIxLXBjaS5jOjM0MjpcXHR7IC5jb21wYXRpYmxlID0gXFxcIm1lZGlhdGVrLG10NzYyMS1wY2ktcGh5XFxcIiB9LFxcbmRyaXZlcnMvcGh5L3JhbGluay9waHktbXQ3NjIxLXBjaS5jLTM0My1cXHR7fSxcXG4tLVxcbmRyaXZlcnMvd2F0Y2hkb2cvbXQ3NjIxX3dkdC5jPTEzOD1zdGF0aWMgaW50IG10NzYyMV93ZHRfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldilcXG4tLVxcbmRyaXZlcnMvd2F0Y2hkb2cvbXQ3NjIxX3dkdC5jLTE1MS1cXHRpZiAoSVNfRVJSKGRydmRhdGEtXFx1MDAzZXN5c2MpKSB7XFxuZHJpdmVycy93YXRjaGRvZy9tdDc2MjFfd2R0LmM6MTUyOlxcdFxcdGRydmRhdGEtXFx1MDAzZXN5c2MgPSBzeXNjb25fcmVnbWFwX2xvb2t1cF9ieV9jb21wYXRpYmxlKFxcXCJtZWRpYXRlayxtdDc2MjEtc3lzY1xcXCIpO1xcbmRyaXZlcnMvd2F0Y2hkb2cvbXQ3NjIxX3dkdC5jLTE1My1cXHRcXHRpZiAoSVNfRVJSKGRydmRhdGEtXFx1MDAzZXN5c2MpKVxcbi0tXFxuZHJpdmVycy93YXRjaGRvZy9tdDc2MjFfd2R0LmM9MjA5PXN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIG10NzYyMV93ZHRfbWF0Y2hbXSA9IHtcXG5kcml2ZXJzL3dhdGNoZG9nL210NzYyMV93ZHQuYzoyMTA6XFx0eyAuY29tcGF0aWJsZSA9IFxcXCJtZWRpYXRlayxtdDc2MjEtd2R0XFxcIiB9LFxcbmRyaXZlcnMvd2F0Y2hkb2cvbXQ3NjIxX3dkdC5jLTIxMS1cXHR7fSxcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjBUMjA6NDg6MjMuNzY3Mzg4ODAxWiIsIlNlcSI6MzEsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjgzMjc4NzE4NTIsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqTXkgQXNzZXNzbWVudDogVGhpcyBDb2RlIGlzIFVuZnV6emFibGUgaW4gVHlwaWNhbCBFbnZpcm9ubWVudHMqKlxuXG5Pa2F5LCBzbyBJJ3ZlIGxvb2tlZCBpbnRvIHRoaXMuIFRoZXJlJ3Mgbm8gU3l6a2FsbGVyIGRlc2NyaXB0aW9uIGZvciB0aGUgYG1lZGlhdGVrLG10NzYyMWAgb3IgYG1lZGlhdGVrLG10NzUzMGAgaGFyZHdhcmUsIHdoaWNoIGltbWVkaWF0ZWx5IGZsYWdzIGl0LiBUaGUgZHJpdmVyIGluIHF1ZXN0aW9uIGlzIHNwZWNpZmljYWxseSBmb3IgYSBNZWRpYVRlayBNVDc1MzAvTVQ3NjIxIHN3aXRjaC4gSXQncyBhbiBNRElPIGRyaXZlciwgd2hpY2ggbWVhbnMgaXQgcmVxdWlyZXMgYSB2ZXJ5IHNwZWNpZmljIGRldmljZSB0cmVlIG5vZGUgYW5kIGFjY2VzcyB0byB0aGUgKmFjdHVhbCogcGh5c2ljYWwgaGFyZHdhcmUgdG8gZXZlbiAqYmVnaW4qIHRvIHByb2JlLlxuXG5NeSBpbnR1aXRpb24gc2F5cyB0aGlzIGlzIGEgbm9uLXN0YXJ0ZXIgZm9yIGZ1enppbmcsIGJlY2F1c2UgaW4gZW52aXJvbm1lbnRzIGxpa2UgUUVNVSwgdGhlIGhhcmR3YXJlIGlzbid0IGVtdWxhdGVkLiBFdmVuICppZiogU3l6a2FsbGVyIHNvbWVob3cgbWFuYWdlZCB0byBpbmplY3QgYSByZWxldmFudCBkZXZpY2UgdHJlZSBub2RlICh3aGljaCBpcyBhbHJlYWR5IHVubGlrZWx5KSwgdGhlIGRyaXZlciB3b3VsZCBmYWlsIHRvIGluaXRpYWxpemUgYmVjYXVzZSB0aGUgcmVnaXN0ZXJzIGl0IGFjY2Vzc2VzIHRocm91Z2ggTURJTyBvciBNTUlPIHNpbXBseSB3b3VsZG4ndCByZXNwb25kLiBUaGUgaGFyZHdhcmUncyBqdXN0IG5vdCAqdGhlcmUqLiBUaGUgcGF0Y2ggaXRzZWxmIHNlZW1zIHRvIGNvbmZpcm0gdGhpczsgaXQgbW9kaWZpZXMgb25seSB0aGUgYG10NzUzMGAgZHJpdmVyLCBzZXR0aW5nIGEgYGJyb2tlbl9lZWVgIGZsYWcgYW5kIGRpc2FibGluZyBFRUUgYWR2ZXJ0aXNlbWVudCB3aXRoaW4gYG10NzUzMF9zZXR1cGAuIFRoaXMgaXMgY2xlYXJseSBhIGhhcmR3YXJlLXNwZWNpZmljIGZpeCBmb3IgcGh5c2ljYWwgc3dpdGNoZXMsIG5vdCBzb21ldGhpbmcgeW91J2Qgc2VlIGluIGEgdmlydHVhbGl6ZWQgc2V0dGluZy5cblxuSSBuZWVkIHRvIGNvbmZpcm0gbXkgaW5pdGlhbCBhc3N1bXB0aW9uLCBqdXN0IHRvIGJlIHRob3JvdWdoLiBUaGUgZHJpdmVyIGlzIGxvY2F0ZWQgYXQgYGRyaXZlcnMvbmV0L2RzYS9tdDc1MzAuY2AuIEFoLCB5ZXMsIGl0J3MgYSBEU0Egc3dpdGNoIGRyaXZlci4gRFNBIHN3aXRjaGVzIGFyZSBhbG1vc3QgYWx3YXlzIHBoeXNpY2FsIGhhcmR3YXJlLCB0aGF0J3MgdGhlaXIgd2hvbGUgcmVhc29uIGZvciBleGlzdGluZy4gQXMgZmFyIGFzIEkga25vdywgdGhlcmUncyBubyBzb2Z0d2FyZSBlbXVsYXRpb24gb2YgdGhlIE1UNzUzMCBpbiBRRU1VLiBTbywgdGhlIHZlcmRpY3QgaXMgYFdvcnRoRnV6emluZz1mYWxzZWAuIFRoaXMgY29kZSBpcyB1bnJlYWNoYWJsZSBpbiBhIGdlbmVyaWMgZnV6emluZyBzZXR1cC4gSSdtIGNvbmZpZGVudCBpbiB0aGF0IGFzc2Vzc21lbnQuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjM0NzQ5LCJPdXRwdXRUb2tlbnMiOjEwOCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjM4NCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0yMFQyMDo0ODozMi4wOTUyNjI5NDNaIiwiU2VxIjozMiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyMzI0MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW10sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgTWVkaWFUZWsgTVQ3NTMwL01UNzYyMSBEU0Egc3dpdGNoIGRyaXZlciB0byBkaXNhYmxlIEVFRSBhZHZlcnRpc2VtZW50IG9uIHRoZSBzd2l0Y2ggUEhZcyBkdWUgdG8gaGFyZHdhcmUgaXNzdWVzLiBUaGlzIGlzIGEgaGFyZHdhcmUtc3BlY2lmaWMgZHJpdmVyIGZvciBwaHlzaWNhbCBNZWRpYVRlayBzd2l0Y2hlcyB0aGF0IGFyZSBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVSBvciBHQ0UgZW52aXJvbm1lbnRzLiBUaGUgY29kZSBjYW5ub3QgYmUgcmVhY2hlZCBkdXJpbmcgZ2VuZXJpYyBrZXJuZWwgZnV6emluZyBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgTWVkaWFUZWsgTVQ3NTMwL01UNzYyMSBEU0Egc3dpdGNoIGRyaXZlciB0byBkaXNhYmxlIEVFRSBhZHZlcnRpc2VtZW50IG9uIHRoZSBzd2l0Y2ggUEhZcyBkdWUgdG8gaGFyZHdhcmUgaXNzdWVzLiBUaGlzIGlzIGEgaGFyZHdhcmUtc3BlY2lmaWMgZHJpdmVyIGZvciBwaHlzaWNhbCBNZWRpYVRlayBzd2l0Y2hlcyB0aGF0IGFyZSBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVSBvciBHQ0UgZW52aXJvbm1lbnRzLiBUaGUgY29kZSBjYW5ub3QgYmUgcmVhY2hlZCBkdXJpbmcgZ2VuZXJpYyBrZXJuZWwgZnV6emluZyBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yMFQyMDo0ODozMi4wOTUyODkyNzNaIiwiU2VxIjozMywiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJJZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE1NTAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9XTsKCQkJaWYgKCFyYXdEYXRhIHx8IHJhd0RhdGEubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQlkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKTsKCQkJZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSk7CgkJCWRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKSB7CgkJCWNvbnN0IHN0YXRzID0gewoJCQkJbGxtOiB7IGNvdW50OiAwLCB0b2tlbnM6IDAsIGR1cmF0aW9uOiAwIH0sCgkJCQl0b29sOiB7IGNvdW50OiAwLCBkdXJhdGlvbjogMCB9CgkJCX07CgoJCQlyYXdEYXRhLmZvckVhY2gocyA9PiB7CgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsgCgkJCQlpZiAocy5UeXBlID09PSAibGxtIikgewoJCQkJCXN0YXRzLmxsbS5jb3VudCsrOwoJCQkJCXN0YXRzLmxsbS50b2tlbnMgKz0gKHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnMpOwoJCQkJCXN0YXRzLmxsbS5kdXJhdGlvbiArPSBkdXI7CgkJCQl9IGVsc2UgaWYgKHMuVHlwZSA9PT0gInRvb2wiKSB7CgkJCQkJc3RhdHMudG9vbC5jb3VudCsrOwoJCQkJCXN0YXRzLnRvb2wuZHVyYXRpb24gKz0gZHVyOwoJCQkJfQoJCQl9KTsKCgkJCWNvbnN0IGF2Z0xsbUR1ciA9IHN0YXRzLmxsbS5jb3VudCA+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-workflowcmqhq[1] Phase: Running StartedAt: 2026-08-20 20:48:43 +0000 UTC FinishedAt: 0001-01-01 00:00:00 +0000 UTC Input: nil Output: nil --------- Name: series-workflowcmqhq[1].abort-on-skip-outcome Phase: Failed StartedAt: 2026-08-20 20:48:43 +0000 UTC FinishedAt: 2026-08-20 20:48:48 +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,}